Constantly see: "A RUM event was detected, but no view is active" in console

Hello,
I have closed prev issue since i have new details (https://github.com/GetDutchie/datadog_flutter/issues/64).
Problem is that I am warning that i see comes out of nowhere (I am using DataObserver in my navigation observers)
START VIEW: /home
I/flutter ( 7029): Connected to websocket.
V/Datadog ( 7029): Batch [9038 bytes] sent successfully (LogsOkHttpUploader).
V/Datadog ( 7029): Batch [3854 bytes] sent successfully (TracesOkHttpUploader).
W/Datadog ( 7029): A RUM event was detected, but no view is active. To track views automatically, try calling the DatadogConfig.Builder.useViewTrackingStrategy() method.
W/Datadog ( 7029): You can also track views manually using the RumMonitor.startView() and RumMonitor.stopView() methods.
V/Datadog ( 7029): Batch [985 bytes] sent successfully (RumOkHttpUploader).
W/Datadog ( 7029): A RUM event was detected, but no view is active. To track views automatically, try calling the DatadogConfig.Builder.useViewTrackingStrategy() method.
W/Datadog ( 7029): You can also track views manually using the RumMonitor.startView() and RumMonitor.stopView() methods.
V/Datadog ( 7029): Batch [9038 bytes] sent successfully (LogsOkHttpUploader).
V/Datadog ( 7029): Batch [3853 bytes] sent successfully (TracesOkHttpUploader).
V/Datadog ( 7029): Batch [984 bytes] sent successfully (RumOkHttpUploader).
W/Datadog ( 7029): A RUM event was detected, but no view is active. To track views automatically, try calling the DatadogConfig.Builder.useViewTrackingStrategy() method.
W/Datadog ( 7029): You can also track views manually using the RumMonitor.startView() and RumMonitor.stopView() methods.
W/Datadog ( 7029): A RUM event was detected, but no view is active. To track views automatically, try calling the DatadogConfig.Builder.useViewTrackingStrategy() method.
W/Datadog ( 7029): You can also track views manually using the RumMonitor.startView() and RumMonitor.stopView() methods.
W/Datadog ( 7029): A RUM event was detected, but no view is active. To track views automatically, try calling the DatadogConfig.Builder.useViewTrackingStrategy() method.
W/Datadog ( 7029): You can also track views manually using the RumMonitor.startView() and RumMonitor.stopView() methods.
W/Datadog ( 7029): A RUM event was detected, but no view is active. To track views automatically, try calling the DatadogConfig.Builder.useViewTrackingStrategy() method.

As you can see from logs above acitve page is /home but it is not detected!
Sometimes after refresh of the app this error is gone for some time and events get logged but sometimes it is starting to show again. Feels like it looses active page....
p.s. I am not even trying to add any event when this message appears...

Hi @vytautas-pranskunas- can you please provide code that produces this error messaging? I'm unable to help debug without seeing the problem's source in your implementation. I use this package on a daily basis with RUM events and view tracking and both are functional.

@tshedor viea tracking and RUM are working however i see this messages in console.

@vytautas-pranskunas- Are you calling DatadogFlutter.initialize in main?

@tshedor for sure. And this message shows not all the time. It starts after some random time and once it starts it keeps showing every few seconds - meaning that some events are catched that beying added to no RUM. However I am not doing anything special and while debugging navigation observer i see that RUM has been set.
Have no idea how to find source of this event
p.s. without DatadogFlutter.initialize events would not be sent to datadog but they are.

@vytautas-pranskunas- is there a chance that you have a screen or modal without a name? If the route doesn't have a name then the view could be stopped without a new one being set.
Otherwise, this log message is coming from the Datadog SDK and I don't have much influence over it.

Closing due to inactivity


Byte array support for load and dump

Cloud Storage implementation only supports json objects and strings. We might want to upload binary files like images and return them.
I am thinking of two functions:
byte_array = loadb("bucket", "path")
dumpb("bucket", "path", byte_array)

Yep, the PR fixes it and closes it make sense.


Windows: Use SendInput instead of mouse_event for toggleMouse

closes #420

You should also cover MOUSEEVENTF_MIDDLEUP and MOUSEEVENTF_MIDDLEDOWN. Those are supported in the current API. I have submitted a PR which has both of those also.

Thank you for your PR @MariaDima  and sorry for the delay, can you please resolve the conflicts and add some tests?

You are right, looks like it has been added a while ago there Let me know if I'm wrong @Deltatiger @MariaDima


Update to app store "The App Name you entered is already being used"

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description

I get the output "The provided entity includes an attribute with a value that has already been used on a different account. - The App Name you entered is already being used." while the upload succeeded and is visible in app store connect. This does not happen for testflight.
I've confirmed this by version bumping and reproducing.
Command executed

bundle exec fastlane ios build_ios && bundle install && bundle exec fastlane ios deploy_ios testflight:false
Complete output when running fastlane, including the stack trace and command used

Was to long for issue created a gist:
https://gist.githubusercontent.com/florisdipt/ddd5f61ece6e2ef35318d8e4622da968/raw/63fd02ac28752e2ef35bc09c6d8421a4cbd7abd0/gistfile1.txt
Environment

🚫 fastlane environment 🚫
Stack

Key
Value

OS
10.15.7

Ruby
2.6.3

Bundler?
false

Git
git version 2.24.3 (Apple Git-128)

Installation Source
/usr/local/bin/fastlane

Host
Mac OS X 10.15.7 (19H2)

Ruby Lib Dir
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib

OpenSSL Version
LibreSSL 2.8.3

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
11.6

System Locale

Error

No Locale with UTF8 found 🚫

fastlane files:
`./fastlane/Fastfile`
platform :ios do
  desc "Build & sign iOS app"
  lane :build_ios do |options|
    match(type: "appstore")
    sh "./flutter_build.sh --clean"
    build_ios_app(
      export_options: {
          provisioningProfiles: ENV['MATCH_PROVISIONING_PROFILE_MAPPING'],
          method: "app-store"
      }
    )
  end

  desc "Build & sign iOS app adhoc"
  lane :build_ios_adhoc do |options|
    match(type: "adhoc",
      app_identifier: "#REDACTED#")
    sh "./flutter_build.sh --clean"
    build_ios_app(
      export_options: {
          provisioningProfiles: ENV['MATCH_PROVISIONING_PROFILE_MAPPING'],
          method: "ad-hoc"
      }
    )
  end

  desc "Upload iOS app to app store"
  lane :deploy_ios do |options|
    # Upload to test flight or AppStore depending on caller parameters
    if options[:testflight]
      match(type: "appstore", app_identifier: "#REDACTED#")
      upload_to_testflight(
        skip_submission: true,
        # skip_metadata: false,
        # skip_screenshots: false,
        # force: true,
        ipa: "./Runner.ipa"
      )
    else
      match(type: "appstore",
      app_identifier: "#REDACTED#")
      upload_to_app_store(
        skip_metadata: false,
        skip_screenshots: false,
        submit_for_review: false,
        force: true,
        team_id: "#REDACTED#",
        ipa: "./Runner.ipa"
      )
    end
  end
end

`./fastlane/Appfile`
app_identifier("#REDACTED#") # The bundle identifier of your app
apple_id("#REDACTED#") # Your Apple email address

itc_team_id("#REDACTED#") # App Store Connect Team ID
team_id("#REDACTED#") # Developer Portal Team ID

# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile

fastlane gems

Gem
Version
Update-Status

fastlane
2.175.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.3.0

slack-notifier
2.3.2

rouge
2.0.7

xcpretty
0.3.0

terminal-notifier
2.0.0

unicode-display_width
1.7.0

terminal-table
1.8.0

addressable
2.7.0

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

artifactory
3.0.15

colored
1.2

highline
1.7.10

commander-fastlane
4.4.6

faraday_middleware
1.0.0

gh_inspector
1.1.3

rubyzip
2.3.0

security
0.1.3

dotenv
2.7.6

bundler
2.1.4

simctl
1.6.8

uber
0.1.0

declarative
0.0.20

declarative-option
0.1.0

representable
3.0.4

retriable
3.1.2

mini_mime
1.0.2

httpclient
2.8.3

google-api-client
0.38.0

nanaimo
0.3.0

colored2
3.1.2

claide
1.0.3

CFPropertyList
3.0.3

atomos
0.1.3

xcodeproj
1.19.0

plist
3.6.0

public_suffix
4.0.6

babosa
1.0.4

excon
0.79.0

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

http-cookie
1.0.3

ruby2_keywords
0.0.4

faraday-net_http
1.0.1

faraday
1.3.0

faraday-cookie_jar
0.0.7

fastimage
2.2.2

json
2.5.1

mini_magick
4.11.0

naturally
2.2.1

xcpretty-travis-formatter
1.0.1

jwt
2.2.2

multi_json
1.15.0

signet
0.14.1

os
1.1.1

memoist
0.16.2

googleauth
0.15.1

rake
13.0.3

digest-crc
0.6.3

webrick
1.7.0

rexml
3.2.4

google-apis-core
0.2.1

google-apis-storage_v1
0.2.0

google-apis-iamcredentials_v1
0.1.0

google-cloud-errors
1.0.1

google-cloud-env
1.4.0

google-cloud-core
1.5.0

google-cloud-storage
1.30.0

emoji_regex
3.2.1

aws-eventstream
1.1.0

aws-sigv4
1.2.2

aws-partitions
1.427.0

jmespath
1.4.0

aws-sdk-core
3.112.0

aws-sdk-kms
1.42.0

aws-sdk-s3
1.88.1

forwardable
1.2.0

logger
1.3.0

date
2.0.0

stringio
0.0.2

zlib
1.0.0

ipaddr
1.2.2

openssl
2.1.2

ostruct
0.1.0

strscan
1.0.0

fileutils
1.1.0

etc
1.0.1

io-console
0.4.7

libxml-ruby
3.1.0

psych
3.1.0

mutex_m
0.1.0

generated on: 2021-02-19

App names are unique. Somebody else is already using your app name. Please try to change it.

App names are unique. Somebody else is already using your app name. Please try to change it.
This is a update to a existing app. I've also verified no other apps are using the name.

Does this come directly from the Apple servers, or from fastlane? If this is a direct API response from Apple i'll try to contact their support team.

It's directly coming from Apple. What happens if you try to change something on App Store Connect and then hit save?

It's directly coming from Apple. What happens if you try to change something on App Store Connect and then hit save?

Okay thanks for the information.
While waiting for the initial response to this issue I ended up uploading another testflight version and promoting that one to a release version.
It indeed said the same thing when trying to submit on App store connect. (App name in use)
I was able to submit after changing one of my languages its app name.
Weird thing is upon deploying it bumped the app version and put all the information in but it did not upload the binary to the app store. Which i thought it did before because I saw the version being bumped.
Is this desired/documented behavior?
Imo it should upload the binary either way especially if it faults the app metadata with like in my case, because it did set the metadata which was non valid but did not set the valid binary.
For easy reading i'll drop this below
match(type: "appstore",       app_identifier: "#REDACTED#")       upload_to_app_store(         skip_metadata: false,         skip_screenshots: false,         submit_for_review: false,         force: true,         team_id: "#REDACTED#",         ipa: "./Runner.ipa"       )


Switch from Macports to Brew to install dependencies on macOS

Macports is terrible by default. The dependencies should all be available via Homebrew.

I'll see if I can write this up.


Fix To Allow Android To Work Out Of The Box

These changes allow the android to work out of the box.
A llama.cpp update was needed to bypass this llama issue https://github.com/ggerganov/llama.cpp/issues/5537
Command use to update  llama.cpp: flutter pub run ffigen

@danemadsen ^^

@danemadsen ^^

Ahh yeah I forgot to PR the update to llama.cpp

@danemadsen what do you recommend, does PR https://github.com/netdur/llama_cpp_dart/pull/23 also resolve this workaround? or should I merge both?

@danemadsen what do you recommend, does PR https://github.com/netdur/llama_cpp_dart/pull/23 also resolve this workaround? or should I merge both?

Yeah PR #23 does the same as this it just doesn't update the bindings. You can merge mine, merge both, it doesn't really matter


"Pick up held" and "Join active" calls in delegate settings

Hello,
Do you know when the new attributes "Pick up held calls" and "Join active calls" will be offered by the "Set-CsUserCallingDelegate" cmdlet?
We are starting to receive requests for these features.
Source: https://insider.microsoft365.com/en-us/blog/enhancements-for-delegation-in-teams-phone
Thanks in advance for your feedback.
Regards,
Vincent

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 6d6e47fb-b461-2cc4-ff82-58f9cea5ed85
Version Independent ID: 5995223b-6cfd-5c2d-3ada-3d576624b773
Content: Set-CsUserCallingDelegate (MicrosoftTeamsPowerShell)
Content Source: teams/teams-ps/teams/Set-CsUserCallingDelegate.md
Service: teams-powershell
GitHub Login: @JensTrier
Microsoft Alias: jenstr

Hello @vlethiec I could get information that is expected for later this year.

@get-itips Thank you very much for the contribution and sharing this explanation. @vlethiec Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


No need for fully qualified name

Looks like the fully qualified name is not necessary here, please bear in mind that you'll need to use a full name when there are naming collisions in the class you're working on.
Would you mind double checking please? If this is the case, please remove the unnecessary qualification.

Fixed!!


Popcorn Time Target

I would like to add Popcorn Time as a target.
I have a Chromebox in my living room and would like to access Popcorn Time the same way I do XBMC.
I tried to customize the XBMC target but to no avail.
It would also be nice if there was an easy way to add any program as launch target, couldn't quite figure it via just copying an existing target, as most of them are more complicated then just "run this program in full screen"
Crouton is really awesome by the way, and the only reason I have both a Chromebook and a Chromebox.

@dortzur,
With the recent addition of the 'xiwi-app' branch, you should be able to launch nearly any gui linux app/program very easily from the crosh shell command line - as long as it doesn't want to kick-off in a background process. I don't know what the 'Popcorn Time' executable is but I run a 'conky' app using this: sudo enter-chroot -b xiwi conky

Thats quite cool :)
But will the apps have GPU Acceleration?

@reeved the "xiwi-app" branch does not have GPU Acceleration.

I think no GPU support is a major deal breaker  when trying to watch
movies, any alternatives?
On Thu, Mar 12, 2015, 04:11 Watney<EMAIL_ADDRESS>wrote:

@reeved https://github.com/reeved the "xiwi-app" branch does not have
GPU Acceleration.
—
Reply to this email directly or view it on GitHub
https://github.com/dnschneid/crouton/issues/1488#issuecomment-78411669.

@dortzur if your Chromebox has an Intel processor, as opposed to ARM, you can achieve GPU acceleration with the -t xorg. This will put you into a Ubuntu chroot, where you can install Popcorn (see this guide).

When I try to start Popcorn Time, it crashes with the error
[20841:0315/211629:ERROR:sandbox_linux.cc(142)] InitializeSandbox() called with multiple threads in process gpu-process
[20483:0315/211630:ERROR:breakpad_linux.cc(1225)] crash dump file written to /tmp/chromium-renderer-minidump-24d1074f7df0d1d7.dmp
Running exit commands...
/usr/bin/xinit: connection to X server lost

I think the issue comes from the multiple threads. A problem like that was solved for Sublime Text in #1445 but I'm not sure how to stop Node Webkit, which is powering Popcorn Time, from forking.

@Watney  @DennisLfromGA I can run Popcorn Time easily from my unity target chroot.
However what I'm looking for is a solution that would suit my girlfriend (non-technical user) similar to "startunity / startxbmc".
I would like ideally to be able to write "startpopcorn" and have a GPU enabled Popcorn Time instance run in full screen. I don't mind if it's simply a glorified launcher to my unity target chroot.
Any suggestions?

@dortzur this is a little cheesy, but Unity (along with most Linux distros) allow you to choose applications that launch on start-up. (See this guide at Ubuntu.)
Though admittedly, not the most elegant solution, you could put your "target" in the startup list, so it boots into the application automatically on sudo startunity.

@dortzur -
I successfully Popcorn-Time via modified 'xbmc' target.
My 'startpct' file is essentially this:
## ( the first part of the file doesn't change, just the last 2 lines ) ##
exec sh -e "`dirname "\`readlink -f "$0"\`"`/enter-chroot" -t xorg "$@" "" \
    exec xinit /usr/local/bin/Popcorn-Time

I've added the '-t xorg' argument to it since I think it'll probably run best in xorg but I have also run it using 'xiwi'. If you want to use a certain xmethod, you can hardcode it in the start file or enter it on the command line each time with the '-X' option.
My installation may be a bit different than yours though, I put the Popcorn-Time executable and db files in /usr/local/src/popcorn-time/, then made a softlink to it via sudo ln -s /usr/local/src/pop-corn-time/Popcorn-Time /usr/local/bin/.
Hope this works for you - and you score points your girlfriend ;)

Note: the -t with enter-chroot helps select which chroot to run based on their target list; it doesn't install any targets.
A target that automates the install akin to xbmc would be interesting, although I'm undecided whether I would add it to crouton or just keep it external (which you could use with -T...see #1027).

@dortzur,
Sorry if I confused things, I didn't mean to infer that the -t xorg accompanying enter-chroot would install the 'xorg' target/xmethod. I just meant that using it there would ensure that it was already present in the chroot.
@dnschneid,
I also think it would be best to keep it external and use a target file with '-T'.
I think trying to incorporate it in crouton and accommodate each and every condition might be too complex and unnecessary.


Alda/event dispatch crash fix

The iOS universal framework build is failing, as expected. All tests are passing locally. Will merge this for now.


Upgrade to TS version 4.8+

Closes https://github.com/ts-plugin/ts-import-plugin/issues/1392
Update API usage to work with Typescript v4.8+

Codecov Report
Patch coverage has no change and project coverage change: +1.42 :tada:

Comparison is base (637c913) 81.22% compared to head (e2ce20a) 82.64%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1393      +/-   ##
==========================================
+ Coverage   81.22%   82.64%   +1.42%
==========================================
  Files           1        1
  Lines         245      242       -3
  Branches       43       45       +2
==========================================
+ Hits          199      200       +1
+ Misses         45       42       -3
+ Partials        1        0       -1

Impacted Files
Coverage Δ

src/index.ts
82.64% <ø> (+1.42%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Does not patch rest api

Not sure if you intended to also patch this? Anyhow you cant create REST tokens because of 2fa limitation. See response below.
{
    "message": "Please ask an administrator with sufficient access to configure 2FA first",
    "trace": "#0 [internal function]: Magento\\TwoFactorAuth\\Model\\AdminAccessTokenService->createAdminAccessToken()\n#1 /var/www/magento2/vendor/magento/module-webapi/Controller/Rest/SynchronousRequestProcessor.php(95): call_user_func_array()\n#2 /var/www/magento2/vendor/magento/module-webapi/Controller/Rest.php(188): Magento\\Webapi\\Controller\\Rest\\SynchronousRequestProcessor->process()\n#3 /var/www/magento2/vendor/magento/framework/Interception/Interceptor.php(58): Magento\\Webapi\\Controller\\Rest->dispatch()\n#4 /var/www/magento2/vendor/magento/framework/Interception/Interceptor.php(138): Magento\\Webapi\\Controller\\Rest\\Interceptor->___callParent()\n#5 /var/www/magento2/vendor/magento/framework/Interception/Interceptor.php(153): Magento\\Webapi\\Controller\\Rest\\Interceptor->Magento\\Framework\\Interception\\{closure}()\n#6 /var/www/magento2/generated/code/Magento/Webapi/Controller/Rest/Interceptor.php(26): Magento\\Webapi\\Controller\\Rest\\Interceptor->___callPlugins()\n#7 /var/www/magento2/vendor/magento/framework/App/Http.php(116): Magento\\Webapi\\Controller\\Rest\\Interceptor->dispatch()\n#8 /var/www/magento2/generated/code/Magento/Framework/App/Http/Interceptor.php(24): Magento\\Framework\\App\\Http->launch()\n#9 /var/www/magento2/vendor/magento/framework/App/Bootstrap.php(263): Magento\\Framework\\App\\Http\\Interceptor->launch()\n#10 /var/www/magento2/pub/index.php(40): Magento\\Framework\\App\\Bootstrap->run()\n#11 {main}"
}

Thanks for the issue report @Vindfrisk. Yes, I'll keep this issue open and will take any PR's that make this work. I would think this module should disable any functionality of 2FA no matter where it is.

@markshust @Vindfrisk do you guyz have any luck with it ? If not then i can create the patch and submit PR for it ?

Just left a comment on the commit that just came in a few hours ago. Once I can test this and verify code is working, I can bring this in.

We are having the same issue. Any update on this?

We are having the same issue. Any update on this?

Hi @simonmaass -- this is my first day back from a little break. I'll be spending the next couple weeks on open source stuff, so will be testing this out and merging it in shortly (hopefully within the next few hours).

Hi @simonmaass -- this is my first day back from a little break. I'll be spending the next couple weeks on open source stuff, so will be testing this out and merging it in shortly (hopefully within the next few hours).

Issue confirmed on 2.4.1. Testing out PR/commit.

Issue confirmed on 2.4.1. Testing out PR/commit.

Merged this PR, and also made some styling/coding updates on the other files to keep things consistent with the coding recommendations I made. Tagged as version 1.1.0.

Merged this PR, and also made some styling/coding updates on the other files to keep things consistent with the coding recommendations I made. Tagged as version 1.1.0.

@markshust thank you for the fast implementation!

@markshust thank you for the fast implementation!

@markshust If I try to enable it for the API i get the following error:

@markshust If I try to enable it for the API i get the following error:

Thanks for this report & info @royduin -- I'll re-open this ticket so we can fix this.

Whoah - this ticket has been sitting here for a while 😅
I really don't want to disable 2FA for API token generation by default, as I think it should be retained enabled for security purposes.
But it appears this error is occurring only when "Enable 2FA" is set to No, and "Enable 2FA for API Token Generation" is set to Yes. Is this correct?
If so, what do you think would be the best way to handle this situation?

But it appears this error is occurring only when "Enable 2FA" is set to No, and "Enable 2FA for API Token Generation" is set to Yes. Is this correct?

This is indeed what happens, for anyone who wants to work around it for the time being, you can do it via the CLI:
bin/magento config:set twofactorauth/general/enable_for_api_token_generation 0

I found out that API token generation is dependent on the main 2FA functionality. If the main 2FA is disabled, trying to use 2FA for API token generation wouldn't work properly since the underlying functionality is turned off.
It makes logical sense that API token 2FA should only work if the main 2FA is enabled, so I'll be merging in a fix to resolve this issue.

This should be resolved in the PR that I just merged. I'll tag and release a new version momentarily. Thanks for your help with this, and sorry this fell by the wayside for so long!


Creating slabs from triangular surfaces

Some triangular surfaces can't be converted to List<Contours>.
See internal support case: 18218

Duplicate of #279


nghttp2: 1.59.0 -> 1.60.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/nghttp2/nghttp2/releases.
meta.description for nghttp2 is: HTTP/2 C library and tools
meta.homepage for nghttp2 is: https://nghttp2.org/
meta.changelog for nghttp2 is: https://github.com/nghttp2/nghttp2/releases/tag/v1.60.0
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
Warning: a test defined in passthru.tests did not pass
found 1.60.0 with grep in /nix/store/6fvvz2c7qkgg7b9iaf0c1r9fghhh2w77-nghttp2-1.60.0
found 1.60.0 in filename of file in /nix/store/6fvvz2c7qkgg7b9iaf0c1r9fghhh2w77-nghttp2-1.60.0

Rebuild report (if merged into master) (click to expand)

50707 total rebuild path(s)

50707 package rebuild(s)

First fifty rebuilds by attrpath

ArchiSteamFarm
BeatSaberModManager
CHOWTapeModel
ChowCentaur
ChowKick
ChowPhaser
CuboCore.coreaction
CuboCore.corearchiver
CuboCore.corefm
CuboCore.coregarage
CuboCore.corehunt
CuboCore.coreimage
CuboCore.coreinfo
CuboCore.corekeyboard
CuboCore.corepad
CuboCore.corepaint
CuboCore.corepdf
CuboCore.corepins
CuboCore.corerenamer
CuboCore.coreshot
CuboCore.corestats
CuboCore.corestuff
CuboCore.coreterminal
CuboCore.coretime
CuboCore.coretoppings
CuboCore.coreuniverse
CuboCore.libcprime
CuboCore.libcsys
DisnixWebService
EmptyEpsilon
Fabric
HentaiAtHome
LAStools
LASzip
LASzip2
LibreArp
LibreArp-lv2
Literate
MIDIVisualizer
MMA
OSCAR
OVMF
OVMFFull
QuadProgpp
R
SDL
SDL2
SDL2_Pango
SDL2_gfx

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/6fvvz2c7qkgg7b9iaf0c1r9fghhh2w77-nghttp2-1.60.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A nghttp2 https://github.com/r-ryantm/nixpkgs/archive/c88d5bd52915e6f847f84b21132e940fb2445bde.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/c88d5bd52915e6f847f84b21132e940fb2445bde#nghttp2

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/6fvvz2c7qkgg7b9iaf0c1r9fghhh2w77-nghttp2-1.60.0
ls -la /nix/store/6fvvz2c7qkgg7b9iaf0c1r9fghhh2w77-nghttp2-1.60.0/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings
cc @c0bw3b for testing.

@GrahamcOfBorg eval


Thanks!

Hi,
No issue here. Just dropping a note to say I used your library in this project:
https://github.com/doc-rj/smartcard-reader
Without much trouble, I was able to make it look and feel like the Google Keep menu experience.
Thanks for the great work. I plan to add a thanks/credits section to my README soon.
Thanks,
-- Ryan

By the way, I already have a couple of screenshots in the README, and will add the credits.

Good to know that my work is helpful. Thank you.


Access Map object from within custom renderer:... function (Or option to prevent culling)

Problem Description
For custom renderer functions passed into Style objects,

The pixel coordinates passed to the RenderFunction may be offscreen-culled,
this breaks my custom renderer (see reason/example below)
The renderer function does not receive a reference to the Map object,
There is no documented way to obtain the Map instance from the render/State.
This means it is difficult to use the function Map.getPixelFromCoordinateInternal() (one way to solve my problem)
Because the Style object depends on a renderer function that must be passed the Map instance, it causes mess and code-order problems when initialising the Map object

Proposed solution
May I please have help with a way to:

get the Map object in custom RenderFunction
OR  a way to call getPixelFromCoordinateInternal inside RenderFunction
OR a way to prevent offscreen culling of pixel coordinates passed to RenderFunction for line strings

Maybe there is already a way and I'm just not seeing it?
Motivating Example
I write a custom renderer called custom_renderer_with_SLK_ticks and apply it to a vector layer style as shown below:
let get_layer_state_road_ticks = map => new VectorLayer({
	source: state_road_only_vector_source,
	style: new Style({
		renderer: custom_renderer_with_SLK_ticks(map)
	}),
	minZoom: 12,
});

Why does it take the parameter map?

The map object is needed only for the function getPixelFromCoordinateInternal
Manually mapping the coordinates to pixles is required because:

the argument _pixelCoordinates (see below) may already have offscreen geometry culled which makes tickmark positions inaccurate

import { RenderFunction } from 'ol/style/Style';
import { toContext } from 'ol/render'
// ...
let custom_renderer_with_SLK_ticks:(map:Map)=>RenderFunction = (map:Map) => (_pixelCoordinates, state) => {
	// ...
	// retrieve the full non-offscreen-culled pixel coordinates (will be discarded after using to calculate tickmark positions)
	let coords = state.geometry.getCoordinates()?.map(item => map.getPixelFromCoordinateInternal(item)) ?? [];
	// the following feature properties are used to set tickmark positions
	let slk_from = state.feature.get('START_SLK');
	let slk_to = state.feature.get('END_SLK');
	// ...
	let  geometry: LineString = state.geometry.clone() as LineString;
	let renderContext = toContext(state.context);
	// ...
	// for each tickmark
	geometry.setCoordinates(item)
	renderContext.drawGeometry(geometry);
	// ...
}

PS: Not shown in the snippet above, I have to manually cull offscreen tickmarks to avoid heavy performance penalty.

Click to see full custom renderer code (a bit hard to read)
let custom_renderer_with_SLK_ticks:(map:Map)=>RenderFunction = (map:Map) => (_pixelCoordinates, state) => {
	// There are a lot of bugs when the pixel ratio is not 1
	// (had issues several versions of open layers ago... maybe no problems now)
	let pixel_ratio = window.devicePixelRatio ?? 1;
	var context = state.context;

	let canvas_size_x = context.canvas.width / pixel_ratio;
	let canvas_size_y = context.canvas.height / pixel_ratio;

	let coords = state.geometry.getCoordinates()?.map(item => map.getPixelFromCoordinateInternal(item)) ?? [];
	var network_type = state.feature.get("NETWORK_TYPE");

	var slk_from = state.feature.get('START_SLK');
	var slk_to = state.feature.get('END_SLK');
	let mls = linestring_measure(coords.map(item => new Vector2(...(item as [number, number]))));
	let ticks;
	let decimal_figures;

	if (network_type === "Main Roads Controlled Path" && state.resolution > 4) {
		return;
	}

	if (state.resolution < 0.3) {
		decimal_figures = 2
		//ticks = linestring_ticks(mls, slk_from, slk_to, 0.001, 10, canvas_size_x/pixle_ratio, canvas_size_y/pixle_ratio);
		ticks = linestring_ticks(mls, slk_from, slk_to, 0.001, 10, canvas_size_x, canvas_size_y, decimal_figures);
	} else if (state.resolution < 1.4) {
		decimal_figures = 1
		//ticks = linestring_ticks(mls, slk_from, slk_to, 0.01, 10, canvas_size_x/pixle_ratio, canvas_size_y/pixle_ratio);
		ticks = linestring_ticks(mls, slk_from, slk_to, 0.01, 10, canvas_size_x, canvas_size_y, decimal_figures);
	} else if (state.resolution < 4) {
		decimal_figures = 0
		//ticks = linestring_ticks(mls, slk_from, slk_to, 0.1, 10, canvas_size_x/pixle_ratio, canvas_size_y/pixle_ratio);
		ticks = linestring_ticks(mls, slk_from, slk_to, 0.1, 10, canvas_size_x, canvas_size_y, decimal_figures);
	} else {
		decimal_figures = 0
		//ticks = linestring_ticks(mls, slk_from, slk_to, 0.1, 10, canvas_size_x/pixle_ratio, canvas_size_y/pixle_ratio);
		ticks = linestring_ticks(mls, slk_from, slk_to, 1, 1, canvas_size_x, canvas_size_y, decimal_figures);
	}
	let tickmarks = ticks.map(item => [
		[
			[item[0][0].x, item[0][0].y],
			[item[0][1].x, item[0][1].y]
		],
		item[1],
		item[2]
	]);
	context.save();
	var renderContext = toContext(context);
	(renderContext as any).extent_ = [0, 0, canvas_size_x, canvas_size_y];  // manual ovveride extent calculation to fix problems when devicePixleRatio is not == 1
	renderContext.setFillStrokeStyle(
		road_network_styles[network_type].getFill(),
		road_network_styles[network_type].getStroke()
	);
	var geometry: LineString = state.geometry.clone() as LineString;
	for (let [item, label, label_rotation] of tickmarks) {
		label_rotation += Math.PI / 2;
		geometry.setCoordinates(item)
		renderContext.drawGeometry(geometry);
		if (label && state.feature.get("CWY") != "Right") {
			let text_style = custom_render_tick_text.clone()
			text_style.setText(label)
			if (Math.abs(label_rotation) > Math.PI / 2) {
				label_rotation += Math.PI;
				text_style.setTextAlign("right");
			}
			text_style.setRotation(label_rotation);
			renderContext.setTextStyle(text_style);
			(renderContext as any).drawText_(item[1], 0, 2, 2);
			renderContext.setTextStyle(null as any);
		}
	}
	context.restore();
}

CONTEXT: the purpose of this renderer is to add special hatchings or tick marks along the length of road polylines which indicate distance along the road. The linear scale does not necessarily line up with REAL distance along the road and requires both

that I read other feature parameters to determine the scale/position
AND I need to do calculations on the FULL un-culled linestring geometry to position the tick marks

Many thanks to all for this awesome project! <3 :)

Specifying the vector layer with a very large renderBuffer will prevent loss of offscreen pixel coordinates.

I think a render function is not the appropriate tool for what you are trying to achieve. You should be using the geometry property of the style, and return a MultiLineString with your tickmarks. Look at https://openlayers.org/en/latest/examples/line-arrows.html for inspiration.

Specifying the vector layer with a very large renderBuffer will prevent loss of offscreen pixel coordinates. See also #14427.

This will decrease performance, and the resulting tickmarks will still be inaccurate, because the geometry in pixel coordinates is quantized for the current resolution, so the tickmark positions will be inaccurate.

I think a render function is not the appropriate tool for what you are trying to achieve. You should be using the geometry property of the style, and return a MultiLineString with your tickmarks. Look at https://openlayers.org/en/latest/examples/line-arrows.html for inspiration.

@ahocevar this is a good suggestion I will investigate this approach further :)
From a quick glance though I do wonder how the performance/features will go... With my current approach I dynamically adjust the number of tick marks depending on the zoom level, and also render text labels beside some of them. The render function does feel like the right approach to avoid the overhead of storing / retrieving the generated tick geometry.
In the past I have tried adding several MultiPoint geometry layers to achieve a similar effect, but you end up having to have multiple layers for different zoom levels and it does not perform well, but it is hard to guess if this Style geometry approach might perform better?
I'll try your suggestion out next week and link some images!

@thehappycheese:

From a quick glance though I do wonder how the performance/features will go... With my current approach I dynamically adjust the number of tick marks depending on the zoom level, and also render text labels beside some of them. The render function does feel like the right approach to avoid the overhead of storing / retrieving the generated tick geometry.

The same advantages apply when you use the geometry of the style. No additional geometries will be stored or retrieved for the tick marks. They are just rendered instead of the original geometry. And you can dynamically adjust the number of tick marks depending on the zoom level just as well, when used in a style function.

Hi @ahocevar,
I have tried the Style({geometry: function (feature){...}}) approach and I have come to the conclusion that it may be unsuitable as replacement for my existing custom renderer; If I have understood everything correctly then I would suggest my original issue is still valid for this situation:

The custom geometry function can only return geometry (eg MultiPoint seems suitable); it cannot return metadata. This means I cannot archive

unique per-point text labels, on some points but not others
rotations such that I could set new Style({image:new Icon({..., rotation:???})}) for each generated point

The custom geometry function only receives a single argument 'feature',
and therefore the output geometry cannot be modified for different zoom levels
(ok a work-around may be to just add more layers and set the layers min/max zoom levels, but that really doesn't seem ideal since I want a lot of different zoom levels of detail)

Below are some images of the tickmark effect I am trying to achieve. The last screenshot with the red dots shows my best attempt to get the custom geometry: approach to work.
Custom renderer: Approach - Zoomed out:

Custom renderer: Approach - Medium zoom:

Custom renderer: Approach - Full Zoom:

geometry: Approach:
Unable to get unique label per point, rotated image for each point, or varying level of details for different zooms:

I know supporting this is a bit niche, but where I work people LOVE having these tickmarks. Finding a way to make them better/faster easier to implement in new map applications would be a big win :)
Many thanks

The solution is a style function which sets a static geometry on the Style, not a geometry function for a static style:
vectorLayer.setStyle((feature, resolution) => {
  const originalGeometry = feature.getGeometry();
  const tickMarks = calculateTickMarks(originalGeometry, resolution);
  return tickMarks.map(tickMark => new Style() {
    geometry: tickMark.geometry,
    text: new Text({
      text: tickMark.text,
      rotation: tickMark.rotation
    })
  })
};

... an array of styles (one for each tick mark):

@ahocevar whoa ok I would never have thought to try that... that's a lot of style instances!
Ok I'll try it soon and see if it performs well with lots of ticks. That is the nice clean implementation I'm looking for :)
Thanks again for your help!

@ahocevar I have tried out your suggestion and it is a nice clean approach; but performance-wise I think this doesn't work.
When panning around the performance seems to be good (I guess this is due to the clever render cache open layers does). However when zooming, the ticks are re-generated for all visible line strings at once and this introduces a heavy lag spike that is very unpleasant. Could be mitigated by having fewer tickmark levels of detail I guess... but there is no restriction when using the custom renderer.

Note for the test the custom renderer was drawing labels too. I did not yet implement the labels for the new approach... probably the difference would be even more significant with labels:
// perfectly replicates the look of custom renderer, but without labels:
var state_road_vector_layer_ticks_geometry = new ol.layer.Vector({
	source: state_road_only_vector_source,
	style:(feature, resolution) =>{
		let tick_marks = custom_style_geometry(feature, resolution);
		return tick_marks.map(tick_mark => new ol.style.Style({
			geometry: tick_mark.geometry,
			image:new ol.style.RegularShape({
				stroke: road_network_styles[feature.get("NETWORK_TYPE")].getStroke(),
				radius: tick_mark.major ? 6 : 2,
				points: 2,
				angle:  tick_mark.rotation
			})
		}));
	},
	minZoom: 16
});

I think this style-per marker technique is very tidy though and likely helpful for other use cases.
Many thanks :)

You should be able to boost performance by setting the icon cache size to a high value (maybe 1000 or 2000). See https://openlayers.org/en/latest/apidoc/module-ol_style_IconImageCache-IconImageCache.html. Or - even better - create your own cache (with stroke, radius and angle as cache keys) for the RegularShape styles, instead of creating a new instance for each tick mark.

@ahocevar thankyou so much for your patient assistance :) I will make an attempt to optimize the cache!

Hi @ahocevar,
So with icon cache the performance difference is now indiscernible during use.
When panning:
The custom renderer performs a tiny bit worse, but is generally fast enough not to cause dropped frames.
The style/geometry approach makes much better use of cache and consistently outperforms the custom renderer.
When zooming
Both the custom renderer and the style based approach cause minor stuttering / frame drops when zooming. The custom renderer is typically not as bad as the style/geometry approach... but now with the icon cache, they both feel about the same.

Click for new code with cache
function custom_style_geometry(feature, resolution){
	const coords = feature.getGeometry().getCoordinates();
	var slk_from = feature.get('START_SLK');
	var slk_to = feature.get('END_SLK');
	let tick_marks;
	let decimal_figures;
	if (resolution < 0.1) {
		decimal_figures = 2;
		tick_marks = linestring_ticks_geometry(coords, slk_from, slk_to, 0.001, 10, decimal_figures);
	} else if (resolution < 1) {
		decimal_figures = 1;
		tick_marks = linestring_ticks_geometry(coords, slk_from, slk_to, 0.01, 10, decimal_figures);
	} else if (resolution < 2){
		decimal_figures = 0;
		tick_marks = linestring_ticks_geometry(coords, slk_from, slk_to, 0.1, 10, decimal_figures);
	} else {
		decimal_figures = 0;
		tick_marks = linestring_ticks_geometry(coords, slk_from, slk_to, 1, 1, decimal_figures);
	}
	return tick_marks;
}

let tick_image_cache = {}
for(let i=-180;i<=180;i++){
	let angle = i/180*Math.PI;
	tick_image_cache[i+"true"] = new ol.style.RegularShape({
		stroke: new ol.style.Stroke({
			color: 'rgba(50, 255, 255, 255)',
			width: 2,
		}),
		radius: 6,
		points: 2,
		angle:  angle
	})
	tick_image_cache[i+"false"] = new ol.style.RegularShape({
		stroke: new ol.style.Stroke({
			color: 'rgba(50, 255, 255, 255)',
			width: 2,
		}),
		radius: 2,
		points: 2,
		angle:  angle
	})
}

let tick_text_fill_and_stroke = {
	fill: new ol.style.Fill({
		color: "#000"
	}),
	stroke: new ol.style.Stroke({
		color: '#fff',
		width: 1,
	})
}

var state_road_vector_layer_ticks_geometry = new ol.layer.Vector({
	source: state_road_only_vector_source,
	style:(feature, resolution) =>{
		let tick_marks = custom_style_geometry(feature, resolution);
		return tick_marks.map(tick_mark => {
			let text_rotation = tick_mark.rotation + Math.PI / 2;
			let text_align = "left";
			if (Math.abs(text_rotation) > Math.PI / 2) {
				text_rotation += Math.PI;
				text_align = "right";
			}
			let text = (tick_mark.major && (feature.get("CWY")==="Left" || feature.get("CWY")==="Single")) ? {
				text: new ol.style.Text({
					text      : tick_mark.text,
					textAlign : text_align,
					offsetX   : Math.cos(tick_mark.rotation+Math.PI/2)*8,
					offsetY   : Math.sin(tick_mark.rotation+Math.PI/2)*8,
					rotation  : text_rotation,
					font      : "bold 16px sans-serif",
					...tick_text_fill_and_stroke,
				})
			} : {};
			let lookup_image = tick_image_cache[Math.round(tick_mark.rotation/Math.PI*180)+""+tick_mark.major]
			return new ol.style.Style({
				geometry: tick_mark.geometry,
				image:lookup_image,
				...text,
			})
		});
	},

	minZoom: 12
});

Again really appreciate your help thanks so much
I still feel somehow both methods are a bit of a hack and it should be possible to make hatchings work with less performance impact. But I guess the issue can be closed unless you have any ideas where to go from here ?

You can definitely cache the text styles too, using text and rotation as cache keys. You'd create cache entries lazily as you need them, when they're not in the cache yet. You could even use getAnimating() and getInteracting() from the view and pause creating new texts during zooming, then use the map's moveend Event to do a final render where all missing texts are created.
Even if done on the renderer level, tick marks would not perform much better. With proper caching and performance optimisations on the application level, the style geometry approach should be appropriate.
You could also create a 3rd party library when you're happy with the result and think that it could be useful for others.

Hi @ahocevar that sounds doable. I might have a go at the library. Thanks again  :)


Consider adding "on_command" decorator

Since we already have on_event decorator, it could be also nice to have the same thing for chat commands.
Examples
# User can set command prefix during Observer initialization with the "!" as default
observer = twitchobserver.Observer(
    ...,
    command_prefix = '!',
    ...
)

# Default command
# usage: !social
@observer.on_command('social')
def social_handler(event):
    pass

# User can set multiple aliases for the same command
# usage: !song | !песня
@observer.on_command('song', 'песня')
def song_handler(event):
    pass

# User can override a prefix for specific command
# usage: %promo
@observer.on_command('promo', prefix='%')
def promo_handler(event):
    pass

# User can pass arguments to the handler context
# usage: !weather London Berlin
@observer.on_command('weather', pass_args=True)
def weather_handler(event, args):
    print(event.message)  # '!weather London Berlin'
    print(args)  # ['London', 'Berlin']

Another important moment about events handling: order of execution. Do you allow to set multiple handlers for the same event / command? If yes, in what order they will execute? If no, which one will execute?
I was thinking about on_command implementation. I wanted to re-use some of the logic from on_event, but could not come up with solution. It is just easier to create new decorator from scratch. So, I'd like to learn something new from you :)

I'd like to keep the Observer class a pretty lightweight Twitch Message -> Python Event class.
In practice we always add this functionality so I think it would be good to add this logic in a specialized subclass. I'm thinking something like:
class SimpleChatCommandObserver(TwitchChatObserver):
    def on_command(*args, **kwargs):
        """Implementation details..."""

Then it would be used basically as you proposed (thank you for the examples!).
Thoughts?

On the one hand, it is reasonable and pretty common thing to make another class which will extend functionality of the basic class with specific features (command handling, in this case), I've seen this pattern a lot.
On the other hand, this is pretty core functionality and probably is used most of the time and correlates with event handling directly, since it is just kind of cool wrapper around it with few generalized use-cases. It also can be confusing which class to use at the first time. I believe, user will end up using CommandChatObserver anyway, because it has all the features ChatCommandObserver has and even more.
So, my point here: adding on_command decorator and a single kwarg with default into ChatObserver class won't do anything bad, since it can be easily ignored by a user and he might not even notice the changes, because code won't break.
Both of the ways are acceptable, whatever you choose will be cool. It is just a matter of taste, i think. 😋

Oh, that was a hasty example. The API will certainly be more user friendly. 😄

Personally I would prefer adding on_command to the Observer class since its just on_event with an additional if statement^^
But I get that @joshuaskelly wants to keep the initial Observer class lightweight. I think there are use cases where people aren't interested in commands and just want to listen for messages or log join/part events.
So going with the additional class is maybe the best solution for now. However, it introduces more complexity to the project.
Another thought: What about refactoring decorators (maybe we add even more in the future) to their own namespace?
from twitchobserver.decorators import on_event, on_command

Not sure how to handle the subscription process then tough.

What about refactoring decorators to their own namespace?

Since they rely on Observer's internal stuff, it is not possible or would result ugly API.

I think there are use cases where people aren't interested in commands and just want to listen for messages or log join/part events.

Still, I am not sure why is this a problem. Decorator and optional kwarg don't perform anything themselves, they just live inside of the class. Those people should and would ignore them.

Commands vs Event Listeners
A command is different from an event listener as commands are more mutable than event listeners. It's a very common use case for a chat moderator to add a new command during a stream.
Aliasing
Also, should aliases have a many to one relationship with command handlers?
Prefixing
Prefixing is useful to correctly identify user issued commands from normal chat. It is nice to allow defining custom prefix to avoid collision with other bots. Do we need a per command custom prefix, or is a global prefix fine?
Proposed Class API
from twitchobserver import Observer

class SimpleChatCommandObserver(Observer):
    def __init__(self, command_prefix='!'):
        """Constructor"""

    def add_command(self, *alias, callback):
        """Add a command handler for the given aliases"""

    def remove_command(self, alias):
        """Remove a command handler for the given alias"""

    def update_command(self, alias):
        """Modify an exisiting command"""

    def on_command(self, *alias):
        """Decorator for command handlers for given alias"""

I'd appreciate feedback.
I'm starting to worry that I'm over-engineering this. ☹

Also, should aliases have a many to one relationship with command handlers?

Yes

Do we need a per command custom prefix, or is a global prefix fine?

Both. A global one set per default and for each command a possible custom one.

I'm starting to worry that I'm over-engineering this.

Since you said that having commands change at runtime is a common use case I think you are not over-engineering it.
How about adding a decorator for the add_command and on_command methods (fusing them into one decorator) in order to have a quick access for users that do not need the fancy features like updating commands during runtime?

A command is different from an event listener as commands are more mutable than event listeners. It's a very common use case for a chat moderator to add a new command during a stream.

I can see it now. Fair enough.
But isn't opportunity to add commands on the fly requires some kind of external storage? Anyway, it is really cool thing.

@PythooonUser

How about adding a decorator for the add_command and on_command methods

I think, on_command will internally call add_command. Just like a neat shortcut.
But in this case, it is not clear, which command could be deleted (by the moderator from chat, for example) and which couldn't.


Create portable linux binaries

https://phusion.github.io/holy-build-box/ maybe?

https://github.com/wheybags/glibc_version_header ?

https://appimage.org/?

https://flatpak.org/?

Also need 32bit version


Create new one-liner that bounces

Create a different shell script, or combination of two, similar to
this one that

Checks for a private key file
Saves the private key, if it is generated
Restarts when the python command crashes, which it eventually will

Hey @microprediction, Can I work on this issue?

Join the Friday or Tue chat?

Okay sure


Libcxx.addmore.tests

Enabled 2 libcxx tests to build and PASS with clang. These were unsupported earlier as they do not build with GCC due to invoking unsupported functions.
3rdparty/libcxx/libcxx/test/libcxx/containers/unord/next_pow2.pass.cpp
3rdparty/libcxx/libcxx/test/std/utilities/template.bitset/bitset.members/count.pass.cp

This Passed with sandbox-run.
https://oe-jenkins.eastus.cloudapp.azure.com/blue/organizations/jenkins/OpenEnclave-sandbox/detail/OpenEnclave-sandbox/286/pipeline

bors r+


77 Run tests before commit as precommit hook

Implements #77

Big fan of this one :D
But if i understand correctly, we have to run a command to set up the hook?
We might want to add that to the readme

I only had to run an npm install, since there is a new dependency @woutermeuwis

I only had to run an npm install, since there is a new dependency @woutermeuwis

Then what does 'npm prepare' do? :D

Then what does 'npm prepare' do? :D

Good question :P

I only had to run an npm install, since there is a new dependency @woutermeuwis

Then what does 'npm prepare' do? :D

Sorry, did not see the updates on this repo!
npm prepare is a special lifecycle hook which is automatically run when you do an npm install. If wanted I can add info about this in the readme?

I only had to run an npm install, since there is a new dependency @woutermeuwis

Then what does 'npm prepare' do? :D

Sorry, did not see the updates on this repo! npm prepare is a special lifecycle hook which is automatically run when you do an npm install. If wanted I can add info about this in the readme?

would be great, the fact that the hook might prevent new maintainers from comitting might be confusing otherwise :)

Closes #78

Closes issue #77


Permit Loader Specification Or Relax ESLint webpack loader rule

Hi all,
I'd like to revisit #1015.
I have the need to serve some raw files for download and to render in plaintext.
That is, I want to import plaintext JS in some cases, and I also want to be able to serve JS downloads.  The issue as described in #1015 prevents me from achieving this.
I know it's niche, but a generic file is a 1st class citizen, IMHO.  Unfortunately we need some access to the underlying tooling to specify the intended consumption.  Requires & import statements will be piece of cake migrations 🍰  if we de-webpack.

In cases where you want to import plaintext, why not just use JS for this?
export default `
  any plaintext
  you like
`;

sure, but i also want to serve it for download (i can blob it, but would rather URL to it) and in some cases, actually use it as a component too!  it's nutty! :)
im okay // eslint-disable-lineing for now.

Yea, the problem is it’s not really supported, and we don’t promise even patch version changes are safe. So we can break you in any version accidentally.

definitely.  i have moderate confidence that webpack will be in here for a while & that file & url loaders will be sticking around too, so im gettin wild and taking a risk!

#tests


coda_netcdf_basic_type_new(): Convert assert & exit -> set an error and cleanup

Had to also modify coda_netcdf_type_delete() to handle when type->definition is still NULL.
Fixes #61

This is not the way to fix it. The assert means that the function should never be called with an nc_type that is out of range. The check therefore has to happen one level higher up.


Add some details about testing the DNS service

Add whitespace so the list doesn't get rendered on one line.
Update text about where to store the Grafana dashboard JSON.

@emileswarts are you still looking a this? What should we do with this branch?

@emileswarts are you still looking a this? What should we do with this branch?


Name shown in the layer list for some analysis is wrong

[ ] Link to layer analysis.
[ ] Cluster.

STR, add analysis to the layer, and go to the layer list.

Shouldn't the titles used in the layers list match the ones shown in the add-analysis modal? It's a bit weird to only read "Cluster" in the layers list and not know if it's a kmeans or moran.

but that was the object of this ticket right? I might be getting it wrong

The issue didn't have much information, but I thought it was about the layers list (since that was the only thing mentioned).
Either way, if you compare the tokens for layers list vs. options modal you can see the differences/inconsistencies, it would help to know which ones are correct, and if they should be consistent or not in the two locations.

Ok, I'll prepare the list for you
On Jul 1, 2016 3:00 PM, "Nicklas Gummesson"<EMAIL_ADDRESS>wrote:

The issue didn't have much information, but I thought it was about the
layers list (since that was the only thing mentioned).
Either way, if you compare the tokens for layers list
https://github.com/CartoDB/cartodb/blob/master/lib/assets/locale/en.json#L19-L29
vs. options modal
https://github.com/CartoDB/cartodb/blob/master/lib/assets/locale/en.json#L314-L347
you can see the differences/inconsistencies, it would help to know which
ones are correct, and if they should be consistent or not in the two
locations.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/CartoDB/cartodb/issues/8317#issuecomment-229940419,
or mute the thread
https://github.com/notifications/unsubscribe/AAIENdlfmHVB4LakgkuVDVwoWd3YUsP8ks5qRQ97gaJpZM4JBCu1
.

Bump, are there still literals that should be fixed finally or were they finally resolved in other issues/PRs?


KB files not updated

Hello,
We are using latest versions of OSS components. We are unable to map them in our blackduck server as those latest versions are not found in the KB file.
Version of OSS components we are using are
openssl - 1.1.1n
wireless-regdb - 2022.02.18-r0
Thought to pull the KB file from this project, apparently the KB files are not updated in this project.
Could you please update the KB files here?
Best Regards,
Anupama

I see the KB files are updated now. Thanks!


NOSTORY: merged both ecr public and private repository modules.

Description
The purpose of this PR is to merge the public and private ECR modules into 1 module through creation of submodules and an example for each. This PR also aims to have the standard module structure and files added.
Features/Fixes/Patches/Changes list:

ECR public sub-module
minimum and complete examples
CHANGELOG.md file
CODEOWNERS file
PR template file
README footers
ECR private module to submodule
Terraform file to versions file
Testing terraform binary to version 0.14.11
pre-commit.yml file
pre-commit-config.yaml file

PR Owners Checklist:

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[x] Have you checked there aren't open Pull Requests of upstream or parallel code that will cause conflicts?
[x] Have you updated the CHANGELOG.md?
[x] Have you updated the README.md(s)?
[x] OWNER: Does your submission pass?

[x] Pre-commit (attach logs/print screen to this PR)
[x] Checkov/terrascan (attach logs/print screen to this PR)
[x] Terraform resources examples build/destroy successfully with Terraform 0.13.7 minimum?

[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your core changes, as applicable?
[ ] Have you successfully run tests with your changes locally?
[ ] First PR? Have you deleted ## How to use this template... from the root .README.md?

PR Reviewers Checklists?

[ ] Are all your comments/changes resolved?
[ ] Are you happy with the OWNER checklists and additional information provided?
[ ] Does your review tests pass?

[ ] Terraform resources examples build/destroy successfully with Terraform 0.14.11 minimum?

       _               _
   ___| |__   ___  ___| | _______   __
  / __| '_ \ / _ \/ __| |/ / _ \ \ / /
 | (__| | | |  __/ (__|   < (_) \ V /
  \___|_| |_|\___|\___|_|\_\___/ \_/

By bridgecrew.io | version: 2.0.1143

terraform_plan scan results:

Passed checks: 7, Failed checks: 0, Skipped checks: 0

Check: CKV_AWS_227: "Ensure KMS key is enabled"
        PASSED for resource: aws_kms_key.main
        File: /tf.json:0-0
Check: CKV_AWS_7: "Ensure rotation for customer created CMKs is enabled"
        PASSED for resource: aws_kms_key.main
        File: /tf.json:0-0
        Guide: https://docs.bridgecrew.io/docs/logging_8
Check: CKV_AWS_33: "Ensure KMS key policy does not contain wildcard (*) principal"
        PASSED for resource: aws_kms_key.main
        File: /tf.json:0-0
        Guide: https://docs.bridgecrew.io/docs/ensure-kms-key-policy-does-not-contain-wildcard-principal
Check: CKV_AWS_51: "Ensure ECR Image Tags are immutable"
        PASSED for resource: aws_ecr_repository.this
        File: /tf.json:0-0
        Guide: https://docs.bridgecrew.io/docs/bc_aws_general_24
Check: CKV_AWS_136: "Ensure that ECR repositories are encrypted using KMS"
        PASSED for resource: aws_ecr_repository.this
        File: /tf.json:0-0
        Guide: https://docs.bridgecrew.io/docs/ensure-that-ecr-repositories-are-encrypted
Check: CKV_AWS_163: "Ensure ECR image scanning on push is enabled"
        PASSED for resource: aws_ecr_repository.this
        File: /tf.json:0-0
        Guide: https://docs.bridgecrew.io/docs/general_8
Check: CKV_AWS_32: "Ensure ECR policy is not set to public"
        PASSED for resource: aws_ecr_repository_policy.this
        File: /tf.json:0-0
        Guide: https://docs.bridgecrew.io/docs/public_1-ecr-repositories-not-public

See my comments.
Question, should we add a module for aws_ecr_pull_through_cache_rule here (Add it to the unreleased) or make it a separate module? It is still a repo but syncs from another repo.

I think it would be best to have it as part of the module that will have the other global settings, such as registry policies.


Support unions

I think unions are not hard to support on Charon's side, the only issue is Aeneas (which is why I have always put them aside).

They cannot be meaningfully used in safe code so it's probably fine if aeneas can't support them


Add character:  to font:

Character : banner
Font : P

can you assign this issue to me I would like to work on it ? @gulshankapse

@ezhillragesh there are lots of issue you can work any one of them


Adding codebook env and cicd

Thank you, @yambottle!  I will defer to @guzman-raphael to review this work.
Prior to merging, let's decide on the discussion from pull request #56 in workflow-array-ephys.  Thanks!

Hi @yambottle - Are there still things to address here? I'm interested in getting some of these pieces implemented across other element workflows. Lmk if I can support that process

It needs a little bit change since I updated the SciOps CICD, we need to follow the same template.

Hi @yambottle, since you are now working on centralizing the CI for the Workflows and Elements, would these updates still be applicable?  If not, we can close this pull request.  Thanks!


Error when using with bootstrap 3.x

Hi,
the plugin doesn't work with bootstrap 3,
I get this error:
Uncaught TypeError: data[option] is not a function
in this bootstrap Plugin function:
if (typeof option == 'string') data[option](_relatedTarget)
Bootstrap 3.3.7
ekko-lightbox 4.0.2

v4 almost definitely does work with Bootstrap 3. Do you have an example page?

I have tried out an implementation on version 3.3.7 of bootstrap but I am getting the error Uncaught TypeError: f[b] is not a function
What is the problem, could please check my code, here
Thanks.

@snetts post a minimal example, i can't figure out what i am looking at on your site

please have a short look at
[http://www.art-in.de/share/ausstellungen/angebot.php?id=328]
the large picture didn't open. where is the problem?
ekko-lightbox 4.0.2
Bootstrap 3.0

@Karlwhct You are using the wrong version. As stated in the readme and documentation:

Note!: This version is for Bootstrap 4, for Bootstrap 3 use the older version.

For bootstrap 3: https://github.com/ashleydw/lightbox/releases/tag/v4.0.2

Thanks a lot. It works fine now.

Thanks a lot. It works fine now.

Hi,
I use bootstrap 3.3.7 and lightbox v4.0.1 in my project. But when i click on image bootstrap.js throw this exception:"0x800a01b6 - JavaScript runtime error: Object doesn't support property or method  '_handleUpdate'.
Is anybody faced this problem?
Thanks...

please post your page or jsfiddle @mehmetalidumlu

5.1.0 is BS3 compatible


game made with love using pygame

My first PR for hacktoberfest. made with love using pygame

Hey can u please add the hacktoberfest-accepted tag to this ?


Unable to Start GreenNav

HI have have setup upmy development environment for greennav as specified in the documentaion on the wiki, but when i run npm start on the greenav front end  and go to the browser to http://localhost:3000 , i get a connection error, indicating that the app has not served on port 3000,this is the output on my console when i run

npm start

`><EMAIL_ADDRESS>start C:\Users\Gaston\opensource\greenNav\GreenNav

react-scripts start`

I need help so as to get started soon

Hi @gastonche,
we need a little bit more information, because on my machine it starts automatically in my default browser. Which Browser do you use? Which OS? Have you waited long enough, because there should appear "Starting development server..."  in your terminal. Port 3000 should should not be blocked or used by another service!
Regards


Error while using varyings in Godot 3.4 beta

Godot version:

v3.4.beta.custom_build.c311b4c03
OS/device including version:

Windows 10 GTX 1060 I7-6700k
Issue description:

A shader that worked before 3.4 beta (3.3, 3.2.3) that uses varyings displays error " Varying must be assigned before using! "
This issue persists even after assigning a value to the varying.
Shader:
shader_type spatial;

varying vec2 uv;
//varying vec2 uv = vec2(1.0, 1.0); // Doesnt work either

void function() {
	1.0 * uv;
}

Steps to reproduce:
Create a mesh with a shader material, and use a varying within the shader

See also https://github.com/godotengine/godot/issues/48840.

@josefkaragoli You cannot assign value to varying inside its declaration or custom function. By default, you should do it only in the vertex function.

So I cant use varyings in a custom function anymore? This worked in prior versions

I guess this code should work:
shader_type spatial;

varying vec3 v;

void test() {
	vec3 t = v;
}

void vertex() {
	v = vec3(0, 1, 0);
}

void fragment() {

}

but after check its still write a "Varying must be assigned before using". I need to figure out the problem and fix it then..

Thanks, I wasnt aware that these changes were made to varyings in shaders.

I'm still seeing this issue despite #48961, am I the only one?

I'm still seeing this issue despite #48961, am I the only one?

That PR was not merged ("Closed") and  this issue is still open :)

I began thinking @lyuma made a mistake to port this feature to 3.4. That's minor but compatibility breakage. If anyone has this problem - all you have to do is follow the instructions and assign varying inside vertex or fragment functions. If you assign it in vertex you can later use it in fragment or light functions, or if in a fragment - light.
Note for myself: This should be properly documented on Godot Docs.

@akien-mga Sorry for the confusion, now it makes sense.
@Chaosus It seems to me all variables are assigned where I get the error
here https://github.com/Master-J/DecalCo/blob/bd4381d5e171795b003e79c27526c15fdff1af43/decalco/src/Decal.shader#L64

@Chaosus I have concerns too. I strongly objected to the original design because it overloaded an existing syntax (varying) for a different purpose, adding substantial complexity because the parser can't know which type of varying it is... but that's water over the dam now that it's implemented...
I think these usability concerns will also pop up in master, and we should take this opportunity to fix it and improve compatibility at the same time... Reverting this feature from 3.x would be a mistake because it means we are making diverging decisions in master branch for no good reason.
New issues introduced by varying
The cases ought to be reduced to two valid cases:

VERTEX: The varying is assigned in vertex but not fragment or light. This is the old usage of varying. If this happens, the varying must not be modified anywhere outside the vertex function. This is the only case where compatibility breakage can happen. It should be safe to permit referencing this variable in any function, because it is guaranteed to be in scope.

FRAGMENT: The varying is assigned in fragment but not assigned or referenced in vertex. This is the new usage of varying. Because Godot doesn't know if a given function is called by the vertex stage or fragment stage, it shouldn't allow any function other than fragment or light to reference it.

And a few other cases exist which now will cause compiler errors, but perhaps worked before:
3. Varying is assigned in vertex but never used. This should be allowed and acts as VERTEX. Bonus: optimize it away.
4. Varying is assigned in fragment but never used. This should be allowed and acts as FRAGMENT.
5. (as in the OP) Varying is used but never assigned. Treat this as the VERTEX case or treat this as a constant with default value.
6. Varying is declared but never assigned and never used. Treat this as the VERTEX case, or ignore the varying. This should be allowed.
Proposals
I'd propose three changes to the current behavior that should be safe:
First, If the varying is a VERTEX type, permit it to be referenced (but not assigned) from any function. This should fix the shader example from https://github.com/godotengine/godot/issues/48949#issuecomment-846389495
Second, if the varying is VERTEX, permit it to be used from light as well, because it is equally valid.
Third, permit these "use without assign" or "assign without use" cases.
Finally, currently, a varying shall never be assigned from a function other than vertex or fragment. I propose that FRAGMENT style varyings should be permitted to be assigned from light as well, because that is guaranteed to occur during the fragment stage and therefore safe.

@lyuma Can you re-check your concerns again? Which point is obsolete and what still needs to be fixed, (my mind is currently busy with other problems, sorry). Maybe all is fixed by the recent fixes to varyings and this issue should be closed.

As noted in rocketchat, your PR solved most of the issues. However I discovered the following shader (based on the OP) still does not work:
shader_type spatial;

varying vec2 uv;

void vertex() {
	uv = vec2(1.0,3.0);
}

vec2 function() {
	return 1.0 * uv;
}

void fragment() {
	ALBEDO = vec3(function(), 0.0);
}

producing the error, "Varying must only be used in two differnt stages, which can be 'vertex' 'fragment' and 'light'"
Adding a simple uv; to the fragment() function works around the error, so my guess is we should extend the rule of 'if a varying is assigned in the vertex function, it can be used anywhere' to include that it is not necessary to use it in fragment or light.
As for the OP's original shader, producing errors is correct: It is meaningless to use a varying without first assigning it... and the commented out line would produce a syntax error, since you cannot assign a varying variable in its own declaration.

Strange, it seems to work for me:  which version of Godot do you use?

I think this topic is no longer actual. If there are any problems with the varying system - please, open a new issue.


Parameter not used for filtering by keywords in attributes

The $keywords parameter isn't actually used...
https://github.com/concrete5/concrete5-5.7.0/blob/develop/web/concrete/src/Attribute/Controller.php#L203-L206

We actually bind the :keywords: parameter elsewhere (in the filterByKeywords method of a PageList, FileList, UserList class). We just pass the $keywords parameter into the function in case the attribute controller needs it for something.

Ah cool, was commenting and got confused...


CB-17113: Improved mock SDX resize tests by adding checks for datalake DR and validation of final SDX cluster.

Jira: https://jira.cloudera.com/browse/CB-17113
Change consists of:

Creation of new class which handles the SDX resize success test validation
Clean up of normal e2e resize test to use above validation
Addition of validation to mock resize test
Addition of checks for backup/restore steps in resize flow to mock test

This is a draft as this requires a thunderhead change which will need to go to prod before this can be merged. This is also untested until that is complete.

This change will now be a part of CB-17317.


Luigi and Cassandra

I am looking to use Luigi to ingress to Cassandra. In the docs, the example mentions loading data into Cassandra, but there is no Cassandra or CFS specific code. Do you just use the HDFS module? Do you use cassandraTable in PySpark? Any advise would be appreciated.

In Spotify's case we used github.com/spotify/hdfs2cass i.e. scheduled a
hadoop job that inserted the data. For small datasets we used pycassa iirc
2015-03-13 7:24 GMT-04:00 dmlayton<EMAIL_ADDRESS>
I am looking to use Luigi to ingress to Cassandra. In the docs, the
example mentions loading data into Cassandra, but there is no Cassandra or
CFS specific code. Do you just use the HDFS module? Do you use
cassandraTable in PySpark? Any advise would be appreciated.
—
Reply to this email directly or view it on GitHub
https://github.com/spotify/luigi/issues/848.

Thank you for the quick reply. How then does luigi know that a job has previously completed successfully? My understanding is that luigi checks that the output exists?

The easiest thing is to write a dummy file once the ingestion is complete.
Slightly more advanced is you can implement a Target subclass that checks
whether data exists in Cassandra
2015-03-13 8:11 GMT-04:00 dmlayton<EMAIL_ADDRESS>
Thank you for the quick reply. How then does luigi know that a job has
previously completed successfully? My understanding is that luigi checks
that the output exists?
—
Reply to this email directly or view it on GitHub
https://github.com/spotify/luigi/issues/848#issuecomment-78942756.

Ah, the flag technique used in the s3 module and presumably elsewhere. Thank you so much.


double check if we really need to add service_account for google

we need to double check if we really do need to add the service_account in in
https://github.com/starkandwayne/bosh-deployment/blob/master/.templates/google/resource-pools.yml
because if i did not provide this i got an error when uploading a stemcell to bosh with a 403 on storage object

@ramonskie when I was using GCP I thought you either used service accounts or you provided the JSON credentials file?

i had allot of issues with gcp at that moment
and as described with the storage part.
so if you havent had the need to use the service_account in the yml file
then it was probably my account that was messed up

I think I was using service accounts in my deployment. The gcp CPI repo.
Get Outlook for iOShttps://aka.ms/o0ukef

From: Ramon Makkelie<EMAIL_ADDRESS>Sent: Thursday, August 24, 2017 7:13:48 PM
To: starkandwayne/bosh-deployment
Cc: Dr Nic Williams; Comment
Subject: Re: [starkandwayne/bosh-deployment] double check if we really need to add service_account for google (#15)
i had allot of issues with gcp at that moment
and as described with the storage part.
so if you havent had the need to use the service_account in the yml file
then it was probably my account that was messed up
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/starkandwayne/bosh-deployment/issues/15#issuecomment-324580115, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAAAbIqvl5OOsE9NDwj-d1PGG-MzQ3Ugks5sbT7LgaJpZM4MOTen.


deploy-to-the-cloud

Codecov Report

Merging #65 (8698720) into master (6ba41e0) will decrease coverage by 0.67%.
The diff coverage is 86.11%.

@@            Coverage Diff             @@
##           master      #65      +/-   ##
==========================================
- Coverage   96.35%   95.67%   -0.68%
==========================================
  Files           6        7       +1
  Lines         329      347      +18
==========================================
+ Hits          317      332      +15
- Misses         12       15       +3

Impacted Files
Coverage Δ

config.py
81.81% <50.00%> (ø)

service/utils/error_handlers.py
84.61% <71.42%> (+0.40%)
:arrow_up:

service/__init__.py
84.21% <87.50%> (+1.85%)
:arrow_up:

service/routes.py
98.98% <94.73%> (-1.02%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us.


3.0 Preview 7: ConnectionMode to Cosmos DB is hard-coded to Direct

The Entity Framework 3.0 Preview connects to Cosmos DB using the Direct connection mode and this is non configurable by the consumer of the API. While I understand that this is the recommended connection mode to Cosmos DB moving forward, we're using Istio as a service mesh and we allow connections outside the Kubernetes cluster on a whitelist basis. Because Istio doesn't allow to specify port ranges, this would force us to write a list of all the ports in the 10,000-20,000 to allow the API to connect to the database.
While this is not a bug, it would be nice if in the future the client was allowed to alter the default connection mode to Cosmos DB.
Further technical details
EF Core version: 3.0.0-preview7.19362.6
Database Provider: Microsoft.EntityFrameworkCore.Cosmos
Operating system: Windows 10
IDE: Visual Studio 2019 16.1.6

I've encountered the same problem as well. Having Gateway mode as an configurable option would really help.
Thanks

Anything I can do to help this along? I've been looking at the EF Core source code and could work on putting together a PR to expose this setting as a context option.

@AndriySvyryd Thoughts on this?

I don't see any issues with adding an option for this in the same way as Region.

I started having a look at this: https://github.com/chiasottis/EntityFrameworkCore/tree/ConnectionModeAsOption


Support PHP 7.2

Hello,
when trying to use the plugin under PHP 7.2.10-1, then Shopware crashes when you try to go to the Backend:
Fatal error: Shopware_Plugins_Backend_Auth_Bootstrap::initLocale(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Shopware\Proxies_CG_\Shopware\Models\Shop\Locale" of the object you are trying to operate on was loaded before unserialize() gets called or provide an autoloader to load the class definition in vendor/shopware/shopware/engine/Shopware/Plugins/Default/Backend/Auth/Bootstrap.php on line 429

Problem was solved with logout and cleared Browser Cache. A little bit strange...


how can i disable ctrl+r for web Browser

Hi，
how can i disable ctrl+r for web Browser，when i must use ctrl + r to show rulers, but it will refresh browser...
i try it no work
  event.stopPropagation()
  event.preventDefault()
  event.keyCode = false
  event.returnValue = false
  window.event.keyCode = false

do you know how to disable ? thanks~

I tried and found that preventDefault has just worked. I mean there might be other problems with your code, how about show that to me?

@Dafrok about my code

      computed: {
        keymap () {
          return {
            'ctrl+esc': this.toggle,
            'ctrl+z': this.ctrlZ,
            'ctrl+shift+z': this.ctrlShift,
            'ctrl+r':this.rulers,
            'enter': {
              keydown: this.enterDown,
              keyup: this.enterUp
            }
          }
        }
      },
      methods: {
        toggle () {

        },
        ctrlZ (event) {
          console.log('event:', event)
          if (!this.ctrlZDisable) {
            console.log('撤销');
            this.preStep()
          }
        },
        ctrlShift (event) {
          if (!this.ctrlShiftDisable) {
            console.log('恢复');
            this.nextStep()
          }
        },
        rulers (event) {
          event.stopPropagation()
          event.preventDefault()
          event.keyCode = 0
          event.returnValue = false
          window.event.keyCode = false
          window.event.returnValue= false
          console.log('标尺',event)
        },
        enterDown () {
          console.log('enterDown')
        },
        enterUp () {
          console.log('enterUp')
        }
}

is preventDefault breaks in every browsers?

in electron,fuck the electron.in the browsers is work.


RP mode capable?

Is this software capable of putting an Elk M1 into Remote Programming mode? Specifically, connecting to the ElkRP2 software. After looking through the code, I don't think so, but I'm not very familiar with JS so I could've easily overlooked something.

I don't think so but if it's in the RS232 protocol I could add it. Wanna check?

I haven't seen it in any of the protocol documents from Elk, and it seems as though there is some specific handshaking going on between the M1 and ElkRP2 that seems unlikely to be documented in generic RS232 protocol. Thanks anyway!


Fix first element margin on the datasets view

I don't get you. Margin top? If so, it has 20px as we talked.


Bug fix: Removing El Capitan hotfix message

See https://trello.com/c/CDU346OZ

Pinging @jh-bate for review? (No new code, just removing temporary hotfix)

 [uploader][bug] Upload stalls at 0% when uploading Dexcom

LGTM


GNU ARM embedded toolchain compile error

in sconscript I use
        prefix = "arm-none-eabi-"

I hit the following build error:
src/core/Error.cpp: In function 'void arm_compute::error(const char*, const char*, int, const char*, ...)':
src/core/Error.cpp:35:18: error: 'snprintf' is not a member of 'std'
int offset = std::snprintf(out, sizeof(out), "in %s %s:%d: ", function, file, line);
^
src/core/Error.cpp:36:60: error: 'vsnprintf' was not declared in this scope
vsnprintf(out + offset, sizeof(out) - offset, msg, args);

This is a problem with your toolchain's libc implementation, unfortunately we can't fix it at the library's level. Please report the issue against the toolchain


Brew is hard to run in a system with glibc 2.12

When I install some package, it says glibc 2.14 required,
When I use LD_* to use library provided by brew.
Then I run brew, brew itself encounter segment fault
What should I do?
Can I install all the library required within one time and don't check requirement?

Don't use LD_LIBRARY_PATH with Linuxbrew. It will break things. Which package are you trying to install that requires glibc 2.14, and is the package in Linuxbrew?

Well, since the /etc/resolv.conf is emtpy, I must copy the origin libc.so.6 and change /etc/resolv.conf to a file I can write, then use $LD_PRELOAD to use this libc first.
Then I git clone brew and add it to $PATH and export LD_LIBRARY_PATH=$HOME/.linuxbrew/lib
After that, I brew install coreutils, it reports GLIBC_2.14 not found,
and I try to install something like vim,
it also reports something like GLIBC_2.15 not found (required by **~/.linuxbrew/lib/libxxx)**
if I delete $LD_PRELOAD, then all the things go segmentation fault (core dumped)
but gcc in brew work well, but brew itself won't work any more.

What is your end goal? What software are you trying to install?

Well, since the /etc/resolv.conf is emtpy

You can brew install glibc and edit $(brew --prefix)/etc/resolv.conf


Cannot Delete Orphaned Devices

Describe the bug
After moving some devices around, removing them from the google home app and re-adding them. The integration hasn't forgotten about them. The cannot be deleted. This clutters the UI and leads to confusion.

Version of the integration
If you are unsure about the version check the github release here.

1.9.15

Logs

Add your logs here.

I can confirm the same behavior in 1.9.15 running on 2022.12.8
Let me know if I can assist in any way.

I have the same issue, and have for at least 1 year now.
Currently running v1.10.0, and with the latest home assistant OS.

Same issue here since over a year.

Probably there is a way to remove such devices on integration level but there is hacky way if these devices really bother you.
You can remove them from .storage/core.device_registry file and restart HA. But be careful with editing this file manually and create a backup.


space-cli should get secrets before database and file config

space-cli get all gets all the resources and stores them in config files in a folder. These config files are names such that while applying the folder, the sequence is such that resources that have dependencies are applied later. For e.g. 12-secrets.yaml and 13-services.yaml.
However, we are keeping the db-configs and filestorage-config before the secrets. This might pose a problem if the database or file storage config is using a secret deployed by space cloud. So we should store secrets before these resources.

@YourTechBud This is done in v0.19.0.


Must detect external IP address and use that in our ENR

When we generate our local ENR we use the IP address in which DiscoveryService listens to (i.e. <IP_ADDRESS>). We need to somehow figure out the actual IP address that other nodes can use to connect to us, which can be either the external address of our NAT port-mapping (if one exists) or the address of any(?) externally-facing local interface.
Also, sice the NAT port-mapping is re-created periodically, we will probably need to change UPnPService to send events when that happens so that DiscoveryService can update our local ENR.
Another complication is that DiscoveryService currently updates our local ENR upon startup, so it might make sense to change it to wait a bit for an event about a NAT port-forwarding being setup, and if one doesn't arrive, use the address of any externally-facing interface.

@jannikluhn I see that in discv5 this problem has been avoided by not including any endpoint info in the local ENR. Have you thought about how to address it there?

@jannikluhn I see that in discv5 this problem has been avoided by not including any endpoint info in the local ENR. Have you thought about how to address it there?

Yes, this is in fact specified by the v5 spec, see https://github.com/ethereum/devp2p/blob/master/discv5/discv5-theory.md#maintaining-the-local-node-record
We follow the PONG aproach: Whenever we receive a PONG, we emit an EndpointVote and send it to the EndpointTracker. Once we have votes from enough peers for a particular endpoint, the tracker updates the ENR.
It looks like ip and port are included in v4 pings, so something similar might be possible for v4 as well.

One problem with using the PING msg for that is the fact that in discv4, the only situation in which a remote will ping us is when the last pong they got from us is more than 12h old, so we may end up in a situation where we get no pings for a long time. I'll see what geth does on discv4 wrt maintaining the local ENR


Add "contributes" block

The "contributes" block allows the language package to be imported by text editors and IDEs as a TextMate Bundle, providing rudimentary ZenStack support to unsupported IDEs.

Yes, I was confused by the organisation, my apologies! 😂
I can't speak for TextMate itself, but I was able to import this to WebStorm (IntelliJ Platform) using these instructions from JetBrains' docs.

Yes, I was confused by the organisation, my apologies! 😂
I can't speak for TextMate itself, but I was able to import this to WebStorm (IntelliJ Platform) using these instructions from JetBrains' docs.

Awesome! That's really great to know! Many people have asked about JetBrains support. I'll try it out and include into documentation.
Will merge the PR once CI passes.

As I said, it is very rudimentary - all it provides is basic syntax highlighting:

In terms of 'proper' JetBrains support, take a look at my comment on the IntelliJ plugin discussion.
The official JetBrains Prisma plugin is open-source (and uses LSP as well!), which is very promising as there absolutely could not be better reference material for making a ZenStack language support plugin.

As I said, it is very rudimentary - all it provides is basic syntax highlighting:

In terms of 'proper' JetBrains support, take a look at my comment on the IntelliJ plugin discussion.
The official JetBrains Prisma plugin is open-source (and uses LSP as well!), which is very promising as there absolutely could not be better reference material for making a ZenStack language support plugin.

This is GREAT news! Maybe not a huge task for ZenStack then :D.

Oops, didn't mean to do that :joy:
As you were!


[Question] Are keys intentionally returned as strings?

Looking at this sample output when requesting https://www.boredapi.com/api/activity:
{
"activity":"Go to a concert with some friends",
"accessibility":0.4,
"type":"social",
"participants":4,
"price":0.6,
"key":"4558850"
}

Most of the numeric data is being returned as numbers, like price and participants. But key field on an Activity is a string. Is this intentional? Is it safe to assume that this string contains only numbers and so can be stored in a big unsigned integer?
Thank you.

Thanks for your interest in the project! I originally did this because the keys were going to be alphanumeric, but after the fact I decided to just use numeric keys. As far as I know, the key works correctly right now, but if you see a reason to change it, feel free to submit a pull request.

Understood, thank you.


Doesn't work on Android Q ?

I tried from Q beta 1 to 5 (Q beta 6 has some other issues - I failed to root it for some reason).
In all of them it failed to convert apps to system apps.
How come?

NO, It does not instead you will end up bricked

Actually it didn't brick at all.
It just failed.

Was using this module thanks for help !
So what is the reason it had failed?? is that it tried to move to /system/app instead of /system/priv-app/ ??


Consider Optional return values

About 50% of Javalin users use Java. Some of them would probably appreciate Optional return values. This could be achieved in many ways, each more horrible than the next:

Make return values optional -> Greatly annoy Kotlin users
Make optional versions of methods, queryParamOptional -> Greatly annoy maintainers
~Make two versions of each method, with the same name, but different return values, using Kotlin trickery such as deprecation with hidden visibility and jvmsynthetic-annotations -> Greatly annoy the spaghetti monster~ DeprecationLevel.HIDDEN also hides it from Java.
Create some sort of cute static method that can be imported, like makeOptional, optionalify -> Receive a collective shrug from the community

Any other suggestions?

almost worked, but need to hide the Java version from Kotlin:

@Deprecated(message = "Test", level = DeprecationLevel.HIDDEN)
fun pathParam(pathParam: String?): Optional<String> = Optional.of(pathParam(pathParam!!)!!)

@JvmSynthetic
fun pathParam(pathParam: String): String? = pathParamMap[":" + pathParam.toLowerCase().replaceFirst(":", "")]

Consider splitting Javalin into two artifacts: Java and Kotlin
Most of the libraries do exactly that, but maintaining that should bring a particular enjoyment.

Yes

I've considered that a few times, but I really want to avoid it. It's really just the Context class.


Request: Add timing to Heatmaps

The Heatmap feature is great, but it would be even better, if you could click a Heatspot and see an time-aggregation of the previous spawns in the DB.
If there are no fixed time slots, and the spawns are kind of random, this would not make much sense, of course.

I have no idea what you're proposing. Please elaborate.

Let's assume that certain pokemons spawn in regular time intervals (like every 90 Minutes), or at fixed time slots (Like daily at 12:30).
If  there is any scheme, it would be nice to  show it when clicking on a heat spot.
A very easy solution would be to show the last x pokemons that spawned at this point and when.


Capitalization

Hi there. In converting to LuckPerms (went smoothly from GroupManager and permissionsex) all my capital lettered groups such as aGroup become agroup which breaks how the side loaded scoreboard  works/looks.

That's just a standardisation thing. All groups are considered case insensitive, and are made lowercase as a result.
If you want to change the way a group gets displayed, look into this:
https://github.com/lucko/LuckPerms/wiki/Primary-Groups#can-i-use-this-feature-to-change-the-display-name-of-a-primary-group
https://github.com/lucko/LuckPerms/wiki/Default-Groups#keep-using-the-default-group-but-just-modify-the-display-name


Upgrade pants to 2.14

Upgraded pants to the latest
Closed #100 since I was touching the README
Removed the custom pants plugin django-run since that workaround is unnecessary now
Removed a bunch of boilerplate BUILD files in the tests/ directory that aren't necessary anymore

Note: you may need to blow away the .pants.d directory, I had to pull down a new version of the pants shell script as it wasn't working correctly with new pants versions so a clean slate might be needed.
This does an upgrade to the pants library. You should still be able to run things like:
./pants lint ::
./pants fmt ::
./pants package ::
./pants test ::

Newer pants versions have added support for reloadable python apps so I removed the custom run-django target. You can now use commands in this more natural format:
# run django management scripts
./pants run tests/manage.py -- ARGS
# run a django shell
./pants run tests/manage.py -- shell
# create migrations
./pants run tests/manage.py -- makemigrations
# run a django migrate
./pants run tests/manage.py -- migrate

Getting a new app going is also easier (no need for django-admin on your host system):
NAME="[APP-NAME]"
mkdir src/mitol/$NAME
./pants run :django-admin -- startapp $NAME src/mitol/$NAME

@mbertrand fixed, you'll want to re-verify ./pants run tests/manage.py -- shell too since the change effected that


mkepub cannot parse string in html. it instead adds in rubbish text

I have generated the ebook but when I try to open it in ebook readers like calibre and sigil. it cannot read the text inside.
Here's my code to create the epub:
book3 = mkepub.Book(title="test")
book3.add_page("chapter 1", str(soup.text))
book3.save('test3.epub')

and here's the html for it

   Chapter 1-2

   "Papa … . Papa … . "

   Michael Shen [1] heard a crisp but immature voice that seemed to be calling him . He moved his hands to cover his ears to drown out the voice but instead seemed to feel something soft . His reflex actions, honed from years of survival instincts, forced him to sit up quickly and take a quick look . One look and he was stunned .

   Where am I?

   Am I safe or have I somehow be magically transported to somewhere else?

   Michael Shen could vaguely recall that he was in a private charter boat . He was very happy when he found a King Crab caught in his crab trap . He slowly lifted up the crab trap and was about to bring it on board the boat, when a strong wave suddenly hit the boat . The impact forced Michael Shen overboard . As he fell into the water, he dimly heard the sound of a woman screaming, and someone diving into the water . Then all is dark and quiet .

   “Perfect!” Michael nodded his head in great satisfaction . He was about to confirm this design when he hesitatingly asked the system, “[System], does the renovation includes designing the second floor of the building as well?”

and here's how it looks in a ebook reader.

Do you have any idea what I am doing wrong?

Thank you for bringing this to my attention. It was an encoding bug in mkepub. Fixed it in the repo. PyPI version to be updated at some later date, maybe.