V*Bench Benchmark Implementation | ASET - Arcadia Impact

-- (!) Draft and under review by ASET --
closes #5
This PR contains
Addition of V*Bench benchmark from V*: Guided Visual Search as a Core Mechanism in Multimodal LLMs
Evaluation
The V* paper evaluated several commercial multimodal LLMs available at the time of research including GPT-4V, Gemini Pro and Bard. It is not clear what version of OpenAI model GPT-4V refers to, most likely it was the first multimodal GPT-4 circa fall 2023. Unfortunately, at this time most of the older GPT-4 models are either deprecated or do not accept image input. The oldest model in terms of base model introduction that works with image input is openai/gpt-4-turbo-2024-04-09 and the latest non-preview one is openai/gpt-4o-2024-05-13. Both of these models were tested using original prompts in dataset without any modification.
Evaluation summary is shown below and demonstrates large (but within the ballpark) discrepancies likely caused by difference in evaluated models:

Model
Attribute Recognition Accuracy
Spatial Relationship Accuracy

GPT4-V (paper)
0.513
0.605

openai/gpt-4-turbo-2024-04-09
0.357  stderr: 0.045
0.421  stderr: 0.057

openai/gpt-4o-2024-05-13
0.591  stderr: 0.046
0.526  stderr: 0.057

Results of both runs were checked for evaluation methodology errors (e.g. correctly parsing model response).
2024-10-28 Update
Benchmark has been updated to use the standard multiple_choice() solver and choice() scorer for better compatibility with other (including future) models.
Below are results of evaluation on the gpt-4o-2024-05-13 model using new methodology:

Model
Attribute Recognition Accuracy
Spatial Relationship Accuracy

openai/gpt-4o-2024-05-13
0.574  stderr: 0.0463
0.579  stderr: 0.057

openai/gpt-4o-2024-05-13, temperature=0
0.652  stderr: 0.0446
0.592  stderr: 0.0567

Due to a large standard error, variations do not appear to be statistically significant.

@bienehito we can change the status of the PR to open as it's ready to be merged. Thank you!


@conda-forge-admin please add bot automerge

please add bot automerge

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/circuitq-feedstock#4.


Gizmo appearance

http://www.html5gamedevs.com/topic/37860-sample-code-for-features-in-babyloneditor/?tab=comments#comment-221888

Hi @deltakosh ,
Facing gizmo error with latest version of npm.
http://www.html5gamedevs.com/topic/37860-sample-code-for-features-in-babyloneditor/
When are you planning to release this feature on npm?
Thanks
Regards,
Varsha

It will be in a couple of days :)


Simplify :matches and :not selectors

A few examples:

:matches(h1, h2):matches(h1) => :matches(h1)
p:not(p.tag) => p:not(.tag)

These are unsafe optimization because specificity will change.

Closing this due to being of dubious value and, as @Justineo mentioned, unsafe, which is against our current policy of only accepting safe optimisations.


Query: reuse include pipeline for queries projecting uncomposed collection navigations

ctx.Customers.Select(c => c.Orders)

currently produces N+1 queries, however, similar query:
ctx.Customers.Include(c => c.Orders)

is much better, producing only 2 queries.
We should be able to leverage the include pipeline for the first query

related to #8229

fixed in 0075cb7c831bb3618bee4a84c9bfa86a499ddc6c


Define simple standard

Need to decide on the following issues.

[x] #5
[x] #7
[ ] #8
[ ] #6
[ ] #9
[ ] #10
[ ] #17
[ ] #15
[ ] #18
[ ] #12
[ ] #19
[ ] #16
[ ] #14
[ ] #11
[ ] #20
[ ] #13

After completing above items, we will be ready for development. @onurmenal I need your help for completing items. 🆘

After completing above items, we will be ready for development. @onurmenal I need your help for completing items. 🆘

I complete my review for above list.


Add Caasp 4.5 support

Update repos and packages name.
Also ensure zypper does accept the license automatically.

I updated doc to reflect SP2 everywhere.
However I'm wondering if we should keep the image reference in examples, as it is already present in config/$BACKEND.yaml


Time for a refresh?

Hi... It's a useful little lib for PyCharm etc.
Have you thought about a refresh? There's some new classes etc.
Appreciate your efforts
Dom

Thanks for your interest, Dom, glad to see someone using it. I'll take a look the latest version of pyb.

Updated as per latest documentation. I don't quite understand the ADCAll Object so didn't include it.
Let me know if you see something I missed.
Closing.


Add application name to all HTTP protocols

What is the purpose of the change
Add application name to all HTTP protocols, not just grpc HTTP/2.
Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

@oxsean PTAL

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

Project coverage is 39.24%. Comparing base (cb92fcc) to head (03c791b).
Report is 10 commits behind head on 3.3.

:exclamation: Current head 03c791b differs from pull request most recent head 9fe2b23. Consider uploading reports for the commit 9fe2b23 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##              3.3   #13906      +/-   ##
==========================================
+ Coverage   38.90%   39.24%   +0.33%
==========================================
  Files        1897     1897
  Lines       79321    79319       -2
  Branches    11530    11530
==========================================
+ Hits        30861    31129     +268
+ Misses      44146    43848     -298
- Partials     4314     4342      +28

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Creating Helm Chart

For

automated deployment
simple release update

of Dynatrace Oneagent Operator it would be very helpfull if a working helm chart would be provided which can be parameterize minimum for

image name
image tag
apiToken
passToken
apiUrl
install_path
APP_LOG_CONTENT_ACCESS

Hey!
We now have a Helm Chart for the Dynatrace OneAgent Operator:
https://github.com/Dynatrace/helm-charts/tree/master/dynatrace-oneagent-operator
Feel free to use it and let us if you need help with it.
Thanks!


feat(appsync): update AppSync example integration with the latest v2 schema changes

This PR implement latest changes requested by #166  as requested by #179
ftv1 still not supported

Awesome! Thanks!


TypeIdentifier: Stub unions

In general, we can't tell which member is active in a union so it is not safe to try and measure any of them.

Could you please check that alignment of union is followed. I think we do it today in old codegen.
Basically if
union {char a; uint64_t b;}

We need to make sure when the union is padded out, that it has an alignment of 8 in the above case. Otherwise some cases where alignment matters can start to break.

Yeah, I just discovered that this change does break union alignment. I'm adding a test and fixing this now

Converted back to a draft as the new approach which handles alignment properly now depends on a stack of other PRs:
#247
#248
#249

Codecov Report

Merging #243 (b4d3646) into main (1334e08) will increase coverage by 0.10%.
The diff coverage is 87.61%.

@@            Coverage Diff             @@
##             main     #243      +/-   ##
==========================================
+ Coverage   66.76%   66.87%   +0.10%
==========================================
  Files          99       99
  Lines       10353    10390      +37
  Branches     1721     1735      +14
==========================================
+ Hits         6912     6948      +36
+ Misses       2557     2551       -6
- Partials      884      891       +7

Impacted Files
Coverage Δ

oi/type_graph/AddChildren.h
100.00% <ø> (ø)

oi/type_graph/AddPadding.h
100.00% <ø> (ø)

oi/type_graph/AlignmentCalc.h
100.00% <ø> (ø)

oi/type_graph/Flattener.h
100.00% <ø> (ø)

oi/type_graph/NameGen.h
100.00% <ø> (ø)

oi/type_graph/RemoveTopLevelPointer.h
100.00% <ø> (ø)

oi/type_graph/TypeIdentifier.cpp
100.00% <ø> (ø)

oi/type_graph/TypeIdentifier.h
100.00% <ø> (ø)

test/test_add_padding.cpp
93.05% <ø> (ø)

test/test_type_identifier.cpp
90.41% <ø> (+4.04%)
:arrow_up:

... and 7 more

... and 1 file with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

This PR is back, now including an alignas specifier for unions and with tests for union alignment already checked in: https://github.com/facebookexperimental/object-introspection/blob/2d1cc92bb4935d5eb44edb142571349f30ba448c/test/integration/unions.toml#L57


how to set deleted_at is nil?

Your Question

in  gorm v2 : how to  set deleted_at field is nil? is difflent in v1.
The document you expected this should be explained

https://gorm.io/docs/delete.html
Expected answer

i expected set deleted_at is nil.

https://gorm.io/docs/delete.html#Soft-Delete

Your Question
in gorm v2 : how to set deleted_at field is nil? is difflent in v1.
The document you expected this should be explained
https://gorm.io/docs/delete.html
Expected answer
i expected set deleted_at is nil.

type DeletedAt sql.NullTime

// Scan implements the Scanner interface.
func (n *DeletedAt) Scan(value interface{}) error {
	return (*sql.NullTime)(n).Scan(value)
}

// Value implements the driver Valuer interface.
func (n DeletedAt) Value() (driver.Value, error) {
	if !n.Valid {
		return nil, nil
	}
	return n.Time, nil
}

if !n.Valid will return nil


Fatal error when using -q  argument on picoquicdemo

When running the picoquicdemo along with the -q  argument, the endpoint throws a fatal error.
Error message: FATAL ERROR: no protocol operation with id set_qlog_file and hash hash_value

This indeed lacks documentation. When you use the argument "-q", you need to load the qlog plugin (+ associated qlog additions for other extensions if needed, such as multipath_qlog.plugin).

I see, thank you for your comment, loading the plugin indeed does fix this error, closing the issue now.


Heatmap Application Names Are Getting Concatenated

First pic shows the second and fourth app names getting concatenated. The second pic shows the original timeseries chart with the app names.

Underlying chart needs unique coloring...


test new ci jobs

Signed-off-by: Adam D. Cornett<EMAIL_ADDRESS>

Coverage: 81.792%. Remained the same when pulling ce5ff934820dc66bf9d910e887c6366b62c407e3 on acornett21:test_new_jobs into be3f9b6644331c7f6f615a0bb2440dc8d0c2a485 on redhat-openshift-ecosystem:main.

/retest

/retest

/retest

/retest

/retest


Add a catchall route and show a 404 message on it

refs #213
cc @sandersonet

@sandersonet Is this what you had in mind for #213?
Any url that ember attempts and fails to route will display this not-found template.
Looks like this:

:+1: Perfect!


NDRS-168: Don't rely on event order in deploy buffer; fix block handling.

https://casperlabs.atlassian.net/browse/NDRS-168
This implements CEP-20.

This PR implements the CEP but it also deviates from the original design in a few places. We should either update the CEP or add a description in this PR. When in the future someone has to work on it, it would be nice to know where it came from. I know it's not a norm (i.e. we are not doing it everywhere) but the description of the PR says that it implements the CEP.

bors r+


(BKR-225) rsync module_utils method source is always nil

The rsync method uses 'source' as the variable to rsync from, but sadly it's nil

Can one of the admins verify this patch?

:+1:

@puppetlabs-jenkins test this please

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/772/
Test PASSed.


events

Is it possible to add a "changed" event so that I can register a callback for when the selected file (or folder) gets changed?  (or is there a way to do this already using the widgets framework?)
Thanks for the very useful widget!

All widgets already use a callback whenever a trait changes (filename, path dropdown, or file list) so changing that handler would most likely break the code. What I can try however is to allow you to specify a callback function of your own that I then execute at the end of the existing callback function for each widget.
I've got some time over the weekend to look into this in more detail and will also try and add a fix for https://github.com/crahan/ipyfilechooser/issues/3
As always, thank you for your feedback!

Hi @majulier, I'll close this in favor of https://github.com/crahan/ipyfilechooser/issues/6 which appears to be a similar request. I'll track all updates there.

That works for me. Thanks for your great work.


Support triggering update sha workflow manually

Signed-off-by: Ben Ye<EMAIL_ADDRESS>

[ ] I added CHANGELOG entry for this change.
[ ] Change is not relevant to the end user.

Changes
Now the workflow is triggered by a cron job every day. But if the busybox image is updated after running the cron job that day, then the CI will be broken until the next day.
To support better control on this, I added support to trigger it manually. See doc https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_dispatch.
Verification

I am not sure if the current syntax is correct or not so would be great to have more eyes for review.

CI failure seems unrelated?


AnimControl refactored to be a promise

Closes #10
2 integration tests are failing, gonna investigate:

example
operations/filter_tutorial_data/filter_off_anim

ok, sorry they were broken here even on main, updated the hashes, now they seem to be OK

forgot method chaining, please wait


Matching Issues

Description
I'm not getting an identifier to go to the second matching string. Is this a bug ? or I'm not understanding something.

-------------------
--lightspeed.nvim
-- NOTE: This is just illustration - there is no need to copy/paste the
-- defaults, or call `setup` at all, if you do not want to change anything.

require("lightspeed").setup {
  ignore_case = false,
  exit_after_idle_msecs = { unlabeled = nil, labeled = nil },
  --- s/x ---
  jump_to_unique_chars = { safety_timeout = 400 },
  match_only_the_start_of_same_char_seqs = true,
  force_beacons_into_match_width = false,
  -- Display characters in a custom way in the highlighted matches.
  substitute_chars = { ["\r"] = "¬" },
  -- Leaving the appropriate list empty effectively disables "smart" mode,
  -- and forces auto-jump to be on or off.
  safe_labels = {},
  labels = {},
  -- These keys are captured directly by the plugin at runtime.
  special_keys = {
    next_match_group = "<space>",
    prev_match_group = "<tab>",
  },
  --- f/t ---
  limit_ft_matches = 4,
  repeat_ft_with_target_char = false,
}

--------------------
-- init.lua
  ["ggandor/lightspeed.nvim"] = {
    requires = { "tpope/vim-repeat" },
    config = function()
      require "custom.configs.lightspeed"
    end,
  },

You've emptied out both label lists:
safe_labels = {},
labels = {},

(I explicitly noted above the snippet that you should not copy-paste it from the Readme just for the heck of it ;) )

Okay that makes sense. Looks like it's working with just the default import.
    requires = { "tpope/vim-repeat" },
    config = function()
      require "lightspeed"
    end,
  },


Add step for setting document attributes

Based on discussion thread
Adds a new step type DocAttrStep and the related transform method setDocAttribute.

This looks great. Merging.

Followed up with 4fd69e4 and released.


Add support for /31 and /32 subnets

/31 subnets are defined by RFC 3021 and are intended for point-to-point links;
they do not reserve an IP for the network number or the broadcast address.
/32 subnets are loopback IPs.

Initial glance is this looks REALLY good to me. Thanks for your contribution. I'll do some testing and merge as soon as possible.
Having not used /31 networks in practice, is it worth placing a note somewhere that these have a specific purpose? I've reviewed RFC3021 and my concern is someone splitting beyond /30 and intending to use a /31 in a NON-point-to-point scenario. Maybe an asterisk, or otherwise highlighting these subnets?

Maybe an asterisk under Usable IPs or Hosts?
(my CSS is not really good enough to prototype this :D)

a NON-point-to-point scenario

There's no physical limitation on this, it's all software support - both ends need to be RFC3021 compliant.
So maybe a note indicating "RFC3021 (P-t-P) network" would work.

Or perhaps a checkbox to:

Enable subnets smaller than /30 (/31 RFC 3021 Point-to-Point networks, and /32 single IPs)

oh bollocks @ckabalan an unintentional change snuck into f1970bde - I accidentally committed the absolute path change I had made to be able to test it locally

No problem, I went back and forth on this. Relative paths are the right choice here, during development I just didn't want to bother figuring out how to make WebStorm behave correctly. I switched to using the node webserver and forgot to go back it's all good.
This is live on the website with a few other small changes. v1.1.0 - 52e14b8
Thanks for your contribution! Any other feedback is absolutely welcome.

I also decided to forego a note about PtP/Loopback. I'll keep it in mind but I think it's an edge case that would affect the visual clarity/consistency. Leading thought was an asterisk with relevant mouseover text next to the network/host portion of the table.


Homebridge can't start because of curve25519

Please release your last commit like hap-nodejs did already. There is a mismatch caused by curve25519 preventing homebridge from starting!

@Burmi66 hap-nodejs 0.4.22 is already published. What's the error you are seeing?

Thnx for reply.
module.js:457
throw err;
^
Error: Cannot find module 'curve25519-n'
at Function.Module._resolveFilename (module.js:455:15)
at Function.Module._load (module.js:403:25)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object. (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/encryption.js:3:18)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)

Please make sure you updated dependent hap-nodejs. This should already be fixed in hap-nodejs 0.4.22
Sent from my iPhone

On Apr 8, 2017, at 12:10 PM, Burmi66<EMAIL_ADDRESS>wrote:
Thnx for reply.
module.js:457
throw err;
^
Error: Cannot find module 'curve25519-n'
at Function.Module._resolveFilename (module.js:455:15)
at Function.Module._load (module.js:403:25)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object. (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/encryption.js:3:18)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Hmm, ok. Using the docker image benzman81/homebridge-docker:develop.
I think i have to build it by myself.
Thnx again @KhaosT.

Yes, rebuilding the image solved the problem. Issue can be closed, family has a smart home again ;)

Good to know :)


pycrypto dependence missing?

with a fresh install, (pip3 install uptick), user can't run uptick until  manual installation of pycrypto. seems missing depends in setup.py but I am not sure.

fixed


Don't call changeset version in the publish command

Ok, so if I understand correctly, this one action actually does two things:

If a PR with changesets is merged to main, this opens a PR with the version bumps
If that PR with the version bump is merged, it publishes the release?

If multiple PRs with changesets are merged, does it just update the open "Version packages" PR?

Ok, so if I understand correctly

Yes, you got everything right.

If multiple PRs with changesets are merged, does it just update the open "Version packages" PR?

Yes, if there is a "pending" Version Packages PR open already then it's just being force-pushed with the new content when more changeset files "arrive" at the target branch.


it seems conflict with the plugin "calendar"

when this plugin is active,when i want to open a calendar When I hover over the date number in the calendar panel (using the calendar plugin), I can't preview the day's diary properly

This was issue was just raised one issue before yours #67. Please review the existing issues before raising new ones.


Gemini's Gambit can be used to crash servers & kick clients

Affected version: Playing on latest release 0.9.4
Forge Version 40.1.84
Description: Running Gemini's gambit with values around ~1Mil, even over an empty list, will kick you from the server from getting too large of a packet.
Running Gemini's gambit with values around ~1Bil is enough to crash my 10gb server from OutOfMemory.
Neither of these values seem sane to reach in normal gameplay, so I assume this is as simple as capping it to a reasonable number.

Sorry, meant to include this in the main post:
Server crashlog: https://gist.github.com/RedRaspberry/727073a321b58ae02e73112b2f6b9741
The person who is responsible for the crash couldn't find the details in their client log but sent me a screenshot of the disconnect screen:

... Huh, the iota limit is supposed to stop that. Good catch!


App Crash on add(:_ update: true) method swift

Goals

I am saving the data to realm. It works fine. But When I delete data and save again app get crash. App is not crash all times when I a re-saving data. it crash once in 4-5 tries.
do {
      try! currentRealm.write({
        currentRealm.add(items, update: true)
      })
    }

When App crash Pointer takes me 'object_accessor.hpp' file. Below is code of object_accessor.hpp file. Pointer points where line starts with >>>> in below code.
template<typename ValueType, typename ContextType>
size_t Object::get_for_primary_key_impl(ContextType& ctx, Table const& table,
                                        const Property &primary_prop,
                                        ValueType primary_value) {
    bool is_null = ctx.is_null(primary_value);
    if (is_null && !primary_prop.is_nullable)
        throw std::logic_error("Invalid null value for non-nullable primary key.");
    if (primary_prop.type == PropertyType::String) {
>>>>        return table.find_first(primary_prop.table_column,
                                ctx.template unbox<StringData>(primary_value));
    }
    if (primary_prop.is_nullable)
        return table.find_first(primary_prop.table_column,
                                ctx.template unbox<util::Optional<int64_t>>(primary_value));
    return table.find_first(primary_prop.table_column,
                            ctx.template unbox<int64_t>(primary_value));
}

I am using Realm Swift 2.8.3
xcode 8.3.3
MacOs 10.12.5
Thanks
Expected Results

Actual Results

Steps to Reproduce

Code Sample

Version of Realm and Tooling

Realm framework version: ?
Realm Object Server version: ?
Xcode version: ?
iOS/OSX version: ?
Dependency manager + version: ?

Thanks for getting in touch with us. What is the error you are seeing when the app crashes? What sort of data are you passing into add(:_, update:), and what is your model class? A simple reproduction case that we could run to see this issue ourselves would be best. Thanks.

When App crashes red pointer points to following line
return table.find_first(primary_prop.table_column,
ctx.template unbox(primary_value));
on the right side it shows > Thread 17:EXC_BAD_ACCESS(code=1, address=0x54)
I have also tried to print values passed in above line in console
(lldb) po primary_prop.type
String
(lldb) po primary_prop.table_column

(lldb) po primary_value
fd405c97-beee-4d30-9a07-bb2258e1abb2-0000216d
I am passing Array(Dictionary<String, Item>)
My Item Class is as below
import UIKit
import ObjectMapper
import RealmSwift
class Item: Object, Mappable {
dynamic var id = ""
dynamic var name: String? = nil
dynamic var group: String = ""
dynamic var category: String = ""
override static func primaryKey() -> String? {
return "id"
}
override class func indexedProperties() -> [String] {
return ["name","group"]
}
//Impl. of Mappable protocol
required convenience init?(map: Map) {
self.init()
}
//mapping function for object mapper
func mapping(map: Map) {
id <- map["_id"]
name <- map["name"]
group <- map["group"]
category <- map["category"]
}
}
App is NOT crashing everytime when I am deleting and resaving data. It happen sometimes.

It doesn't look like you are doing anything incorrectly. Unfortunately, it's not possible to troubleshoot this issue further based on the information you've provided. We can try building a reproduction case, but if you can provide one that would be even better.

Thank you for your reply. As I told you App is not crashing everytime when I am resaving data. That's why I am not able to give you exact crash reproduction case. I have provided information which I have found. As I get exact reproduction case I will provide information to you. Thanks Again.

Thanks for the information you've provided. We don't require a repro case that always reproduces the problem, something that crashes once in a while is fine. We'll continue investigating as well.

@rromanchuk did you ever resolve this? I have the same situation as you (user logs out, logs back in) and this exception consistently happens.

Some more detail as this is happening every time a user logs out and logs back in and it crashes the app

on logout, I call realm.deleteAll()
user logs back in and I create a new user object via Realm
crash happens at exact same point that saurabh put
after crash, user opens the app and that line gets hit again and returns fine

@roe I actually did solve this, funny enough I already forgot what it was. I posted the fix/problem somewhere on github, let me track it down. It was something simple/silly

@roe found it https://github.com/realm/realm-cocoa/issues/4155#issuecomment-362871660
Similar to your steps, on user logout i call deleteAll() but it wasn't actually the problem.  I was also cleaning up the users cache data, but didn't realize i was wiping out the realm file.

Hah, I'm doing the exact same thing :) Thanks so much!


Preparation of meeting and guide for usage of 'dgeometry' module to drawing of geometrical objects

The following actions are to do, in order to prepare the meeting and the guide:

[x] #1076

[x] #1077

[x] #1078

All done.


Fix a Pendulum date time object to have correct typing

removed handler that vas coercing it to native datetime values
added test to verify correct typing after parsing

@yezz123 This is ready to merge


[Feature] Improve reading image original bytes performance

Firstly thank you for a very convenient library. IMHO I would like to suggest a bit improvement on your great library
iOS Read asset entity bytes without using File
You can improve performance of the getOriginBytes(plugin.dart)/getFullFileWithCall(ios native) while saving to file(in native) before read it back(in flutter), as file operation is slow.
My point
At file ImageScanner.m Line 408 you can return the image bytes, and from flutter you can decode returned bytes. And from plugin.dart/getOriginBytes() you can get the bytes:
    decodeImageFromList(originalBytes, callback: (Image image) {
        print(image.width);
        print(image.height);
    });

If you just need images of the same size and don't care about exif information, you can use this API:
Uint8List thumbDataWithSize = await entity.thumbDataWithSize(entity.width,entity.height);

But because it is a thumbnail, it is impossible to get exif.
If you can improve the performance without affecting the api, welcome to provide pull  request.


Implement templates for covers

Description:
Implement templates for cover elements
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#https://github.com/home-assistant/home-assistant/pull/2842
Example entry for configuration.yaml (if applicable):
cover:
  - platform: template
    cover:
      garage_door:
        friendly_name: "Garage Door"
        value_template: "{% raw %}{{is_state('sensor.garage_door > 0'}}{% endraw %}"
        open_cover:
          service: script.open_garage_door
        close_cover:
          service: script.close_garage_door
        stop_cover:
          service: script.stop_garage_door

Checklist:
If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.github.io

If the code does not interact with devices:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] Tests have been added to verify that the new code works.

You may have to push another commit to fix the travis timeout error.

Great work! This is very close to be ready to be merged 💃


Location

Hi, thank you so much for sharing! I wonder if the location can be scraped using this method with some adaption.

I think so, u just have to look for it in the scrapped json files :) .


Pre-roll ad continuously loops on mobile

I've got a pre-roll ad that works great on desktop, but on Chrome on iOS it plays in a loop and there's no way to stop it.  Is there a certain setting that would cause this?

I am not sure, this may be the source video which is not properly restored after ad playback.
Are you using the playInline option with video element recycle feature ?
Example :
var player = new Clappr.Player({
    // [...]
    playback: {
        playInline: true,
        recycleVideo: Clappr.Browser.isMobile,
    },
    // [...]
});


Add lifecycle + terminationgracepriod to GW Chart

Please provide a description of this PR:
The intention of this PR is to provide support for lifecycle (preStop hooks) and terminationGracePeriodSeconds to the Gateway deployment Helm chart.

Hi @iainbowman. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

see https://github.com/istio/istio/issues/38912#issuecomment-1126512011

Thanks, I wasn't aware of https://github.com/istio/istio/issues/38912#issuecomment-1126512011 and I understand your position on not adding lots of new fields. Would love to give this a try but unfortunately as we are using ArgoCD to deploy and it currently does not support helm post-render this solution will not work for my use case.

Seems it could be done via https://argo-cd.readthedocs.io/en/stable/user-guide/kustomize/#kustomizing-helm-charts

Seems it could be done via https://argo-cd.readthedocs.io/en/stable/user-guide/kustomize/#kustomizing-helm-charts

Thanks I'll look into this 👍


#423 Avoidance of multiple parallel etl processes

Revised the /etl/scripts/run_etel.sh script to create a lockfile called ETLlock which prevents parallel execution of the script.
Closes #423

Looks good!


CMakeLists.txt minimum cmake version

Is there a reason we need to set the minimum cmake version to 3.24 (i.e. https://github.com/CHIP-SPV/H4I-MKLShim/blob/4b9a4a27b51cc5608fa0cb4c410101f2e97f0492/CMakeLists.txt#L4)? That is, is there a feature in 3.24 that is needed? Otherwise, could we change it to 3.23 or something lower depending on the needs? Just personally, 3.23 has been working fine. I can install 3.24 but if we don't need it to be 3.24 I'd rather just downgrade it so people don't get unnecessary errors.
(And the same for the other H4I-* repos!)
Thanks!

Closed with version 0.1.0.


Test failure:  Migration specs fail with ERROR:  relation "metrics" does not exist/debug_failures

AddStartAddressToPartitions#up with empty tables
Failure/Error: yield
ActiveRecord::StatementInvalid:
PGError: ERROR:  relation "metrics" does not exist
LINE 5:              WHERE a.attrelid = '"metrics"'::regclass
^
:             SELECT a.attname, format_type(a.atttypid, a.atttypmod),
pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"metrics"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
./app/models/metric/capture.rb:7:in `module:Capture'
./app/models/metric/capture.rb:1:in `<top (required)>'
./app/models/metric/common.rb:82:in `module:Common'
./app/models/metric/common.rb:1:in `<top (required)>'
./app/models/metric.rb:4:in `class:Metric'
./app/models/metric.rb:1:in `<top (required)>'
./app/models/vm_or_template.rb:257:in `class:VmOrTemplate'
./app/models/vm_or_template.rb:5:in `<top (required)>'
./app/models/ems_refresh/vc_updates.rb:250:in `module:VcUpdates'
./app/models/ems_refresh/vc_updates.rb:1:in `<top (required)>'
./app/models/ems_refresh.rb:11:in `module:EmsRefresh'
./app/models/ems_refresh.rb:1:in `<top (required)>'
./spec/support/migration_spec_helper.rb:61:in `clearing_caches'
./spec/support/migration_spec_helper.rb:10:in `block (2 levels) in migration_context'

AddStartAddressToPartitions#up extracts the start_address from the reserved column
Failure/Error: Unable to find matching line from backtrace
NoMethodError:
undefined method `debug_failures=' for EmsRefresh:Module
./spec/support/migration_spec_helper.rb:61:in `clearing_caches'
./spec/support/migration_spec_helper.rb:10:in `block (2 levels) in migration_context'

Randomized with seed 25853
on PR: https://github.com/ManageIQ/manageiq/pull/2290

thanks. I had to rebuild my test database all the time. hoping this fixes it.


Use analytical solver for BitLengthSet instead of numerical computation

Fixes #23
This change request slightly alters the BitLengthSet API by adding handles for the underlying solver but the old entries are kept in place to not break existing applications. The old entries are still susceptible to combinatorial explosion so in order to take advantage of the solver, existing applications (Nunavut) should be updated. The update amounts to ditching all calls to BitLengthSet.__iter__, BitLengthSet.__len__, BitLengthSet.__eq__ because they trigger numerical expansion. Instead, new attributes min, max, fixed_length, and __mod__ should be used as they are evaluated in linear time (also the results are cached).
If PyDSDL is asked to perform a slow numerical expansion, the stack trace of the request is logged to help one hunt down dependencies on the old API.
I am going to update the Nunavut templates soon. While doing that, I am likely to find deficiencies of the new implementation so the version is set to dev for now.
DSDL expressions evaluated for @assert, @print, @sealed, [...] etc always trigger numerical expansion for now so one should be careful with these. It is possible to update the expression evaluation logic to take advantage of the solver where possible but this has not been done yet and it is not on my roadmap because it doesn't seem important. I did, however, put a TODO comment or two.
This is how you can install it for testing locally:
pip install git+https://github.com/UAVCAN/pydsdl@combinatorial-explosion

@thirtytwobits I tagged you for review but it is not really necessary to dig into the code. Rather, a high-level response like "yup it makes sense" (or don't) is needed. I linked the new docs in the OP post.


asp.net core 2.2 Session BUG

Describe the bug
并发 Session 赋值时丢失数据。
To Reproduce
Steps to reproduce the behavior:

Using this version of ASP.NET Core '2.2'
Run this code 'WebApplication7.zip'
ERROR：abs(key1) != abs(key2)

Expected behavior
abs(key1) == abs(key2)
Screenshots

I think I understand. Your page loads two images with different query parameters and each of these requests updates session.

Problem: The browser executes these requests in parallel and some of the state changes are lost.
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state?view=aspnetcore-2.2#session-options
"Session state is non-locking. If two requests simultaneously attempt to modify the contents of a session, the last request overrides the first. Session is implemented as a coherent session, which means that all the contents are stored together. When two requests seek to modify different session values, the last request may override session changes made by the first."
This is an intentional design change compared with the ASP.NET 4.x session implementation. In the prior design requests would take a lock on the session and run serially rather than in parallel. This prevented applications from scaling so we decided not to use that model in ASP.NET Core Session. The result is that parallel session modifications are not guaranteed to be safe. If there is critical state that must be maintained in parallel then you should use a database rather than Session.

I think I understand. Thank you very much.


can't get good SOCK_DIAG answers

I am trying to retrieve some data from the SOCK_DIAG family http://man7.org/linux/man-pages/man7/sock_diag.7.html similiar to whtat the linux utility ss does.
I managed to craft the exact same packets as ss but I don't get the same answer as for some reason (the last messages when filtering on netlink.family == 4 are what I expect to get):
netlink_sock_diag.pcapng.txt
but with my program https://github.com/teto/netlink_pm/tree/v5/hs, I get only "End of a dump" answers even though I create TCP connections in the background and run it with sudo:
netlink_sock_diag_bad_answer.pcapng.txt
By the way in terms of the netlink-hs library design, I send "diag request" but expect "diag messages" so the signature of queryOne etc are useless, I need to use sendPacket and check by myself for the answers.  sock diag answers are long, multipart messages,That's whyI think it's mandatory to export recvMulti from the module.
To sum up:
1/ any idea why even though my requests are exactly the same as ss requests I get different answers (I run it with sudo and TCP requests in background).
2/ could you export recvMulti from the module ? if my analysis is correct.

so I managed to get an answer but still wondering if I could do without recvMulti, will try and update this later on.


⚠ Turnos 24x7 has degraded performance

In b5684f4, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 973 ms

Resolved: Turnos 24x7 performance has improved in b7b77e0.


gửi phản hồi

sữa sản phẩm

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

ID: a743ee1c-0e09-a9d8-f211-28b308a2979e
Version Independent ID: 4a829c6a-b5ba-cff6-5eba-c7f1b688be3e
Content: Import Excel workbooks into Power BI Desktop - Power BI
Content Source: powerbi-docs/desktop-import-excel-workbooks.md
Service: powerbi
GitHub Login: @davidiseminger
Microsoft Alias: davidi

Hi, please help me to solve this problem. Why I cannot import the excel workbook in power bi? The notification is: The following Excel workbook does not contain any queries or a model to import?
Many thanks

Thanks for posting – note that we can only answer feedback related to the documentation, and can’t provide direct support or respond feature requests.
Your best venue for getting an answer or feedback on your question is from the community (https://community.powerbi.com) or from support at https://support.powerbi.com. You can also provide feedback using the Give Product Feedback button at the bottom of the article page.


Fix time picker icon missiong

It's done.
See "integration" and "taipy_integration" branches.

Thanks Ghiles


CASSANDRA-18114 Remove ProtocolVersion entirely from the CollectionSerializer ecosystem

This patch may look massive, but it's really just 1.) removing protocol version cruft around the collection serializers that's never been used in any capacity and 2.) getting rid of silly compiler warnings.

https://app.circleci.com/pipelines/github/maedhroz/cassandra?branch=CASSANDRA-18114

Committed in https://github.com/apache/cassandra/commit/530bc10bd0a053f5dcd8439fd3f5c72cd7952ea6


Evaluate Nethermind for Gnosis Chain

What is needed?
As OpenEthereum was deprecated yesterday (more info on https://github.com/safe-global/safe-pm/issues/87) the only node supported on Gnosis Chain until the merge is Nethermind
Background

Tx service for Gnosis Chain is using tracing for indexing
Nethermind should support tracing and must be fast enough to keep up with sync at least until The Merge

Related issues
https://github.com/safe-global/safe-pm/issues/87

I would love to collaborate with you on improving support for Nethermind as this is what Shyft operates on, being a POA network.
Present issues I have.

While changing safe owners, the gas estimation functions incorrectly, in that the estimated gas is not sufficient. The web interface produces a helpful warning that the transaction may fail, and indeed it does, but doubling the gasLimit causes the transaction to succeed. The gas used was in fact below the estimated gas, so I don't know why I had to raise the limit.

Just recently, new transactions (send funds) are not seen by the tx gateway. I am still working this out.

DETAIL:  Key (ethereum_tx_id, trace_address)=(\x9e04a5feaddb4eac2a6a0524f993ad3e48705822926158f9a19c4d086f246d8a, 0) already exists.

postgres=# select * from history_internaltx where ethereum_tx_id = '\x9e04a5feaddb4eac2a6a0524f993ad3e48705822926158f9a19c4d086f246d8a';
-[ RECORD 1 ]----+-------------------------------------------------------------------
id               | 182
_from            | \xeb7dc17c09df5a7afa6142c25ad5974117a4d27f
gas              | 50000
data             | \x
to               | \x0000000000000000000000000000000000000000
value            | 0
gas_used         | 50000
contract_address |
code             |
output           |
refund_address   |
tx_type          | 0
call_type        | 1
trace_address    | 0
error            |
ethereum_tx_id   | \x9e04a5feaddb4eac2a6a0524f993ad3e48705822926158f9a19c4d086f246d8a
block_number     | 6177141
timestamp        | 2022-07-20 16:50:20+00

postgres=# select * from history_internaltxdecoded where internal_tx_id =182;
-[ RECORD 1 ]--+---------------------------------------------------------------------------------------------------------------------------------------------
internal_tx_id | 182
function_name  | approveHash
arguments      | {"owner": "0x190deF14dAd5f856506C0Af7d7Ffdde78723f74e", "hashToApprove": "9f472d76ab742e632f788391e5bd6d8d052ee7a8c72b75a1364136b32c48667d"}
processed      | t

Hi @svanegmond , currently we are dealing with issues preventing us from migrating to Nethermind:

Regarding estimation, that's not something critical to us as we changed the way we estimate (from > 1.3.0 regular eth_estimateGas with gasPrice=0, safeTxGas=0 and baseGas=0 will work.
Regarding the not indexing stuff, that could be many things not related to Nethermind.

Please keep this issue only for discussing low level Ethereum RPC not working (like the issue we have with trace_filter) and not stuff like we don't see transfers in the indexer when Nethermind is configured. But for example "we see an error from the RPC when calling eth_getLogs" is very useful for us.

trace_filter is working now on an archive node using v1.14.0. I will proceed to test to sync from scratch a transaction service

We are using Nethermind since last month with no issues


coderabbit-setting

Summary by CodeRabbit

New Features

Enabled early access features for enhanced functionality.
Added new path filters to exclude .yaml files.
Introduced path-specific review instructions for Vue files in Nuxt3 projects.

@coderabbitai full review


[PO-4221] Adding deployment approvers

What does this PR do?
It adds repo approvers setting for repositories ✨ Repo approvers, similar to repo owners, consist of lists with user emails. The purpose of repo approvers is to assure that the ticket is approved in Jira by a user from the list 🛡 This PR only adds the repo approver field in the repository form; the implementation of the functionality will be added in another PR.
Any background context you want to provide?
🤷♀
Any specific implementation changes that would benefit highlighting?

repo_approvers is added to repo_ownerships table
Repo approvers are added to repositories index
Wraping of text is enabled in Repo approvers and Repo owners columns of the repositories table to make it more compact

What are the relevant tickets / PRs?

[x] JIRA :gem:: https://jira.fundingcircle.com/browse/PO-4221
[x] Related: https://jira.fundingcircle.com/browse/PO-4222

/cc @FundingCircle/prod-ops @0mega @sgerrand 🙇♀

@popovm I renamed RepoOwner to RepoAdmin, I think now it's more understandable 😃


Fix issues identified by automated audit

This pull request was created by a tool: Cake.AddinDiscoverer version 3.14.0
Resolves #9

@Jericho your changes have been merged, thanks for your contribution 👍


bool implementation is not parse->encode stable

Currently bool is read as any non 0 value, but written as 1.
This means [5] -> parse_as_bool -> true -> encode -> [1].
Having stable parse->encode would help find other issues with fuzzing (see #83)
from #77

I'm not sure I value a stable parse/encode cycle as much as I value ergonomics for users.
That said, there are facets of this that might be improved with change:
It might be that we should treat only 1 as true and 0 as false and error on any other value,
however given how closely aligned the client is with the semantics of C++ where any positive integer is true
this might be setting ourselves up for failure.


Add "Run one step" button on replay dialog

Sometimes there is no breakpoint on next of breakpointed step, seems have to set breakpoint on each step.
Or a Run one step button is more user friendly on debugging the flow.

@bradwoo8621 good advice, will have that soon.

9c0c75d8333216698592b3a227943010169c2f72

@bradwoo8621 0.8.1, enjoy


Exceptions constantly thrown in debugger

using "version": "v1.4.0"
Whenever I run my php in the debugger (vscode) and have it catch exceptions, I'm constantly getting this exception:
vendor/react/dns/src/Resolver/Resolver.php:(86)
Exception has occurred.
React\Dns\RecordNotFoundException: DNS query for discord.com did not return a valid answer (NOERROR / NODATA)

This is for a discord bot, so it connects to discord.com.
I run tcpdump and watch the dns requests and response - there are no issues, and I can always resolve the name using dig/host without any problems.
It's near-instantaneous, as soon as I click "run," it's stopped on that exception.
I hear on the discord group that anyone who debugs has this same problem, so I'm happy to dig into this and see if we can resolve it.
It may be the way the dns is invoked, if so, I'd be happy to get that cleared up for the discord coders.

@richardpickett Thanks for reporting! We're not currently aware of any such issues, so I'm curious what exactly is being reported here.
How can we best reproduce the problem you're seeing? Is this something that can be reproduced by running any of the examples included in this repository?
If this can not be reproduced by running any of the examples here, I suppose this could be related to https://github.com/reactphp/socket/issues/248 perhaps? Perhaps you can also check if you can reproduce this by running any of the examples included in the Socket component?
Ideally, we would isolate this further without relying on VSCode. I'm not a VSCode user, so I can only guess what your debugger is reporting here. It looks like this might be an internal exception that is correctly reported and properly handled by the Socket component (so it's not an actual error). This would happen because discord.com has only A records (IPv4) and no AAAA records (IPv6) and the Socket component has to check both families to figure out how to create the underlying TCP/IP connection (happy eyeballs).
Are you seeing any problems with this or does it only affect your debugging session?

I checked, discord.com doesn't have v6 records.
Is there a way to tell dns to only use v4?

That's correct.
As per https://github.com/reactphp/socket#connector, you can temporarily disable the happy eyeballs algorithm like this:
// not recommended!
$connector = new React\Socket\Connector($loop, array(
    'happy_eyeballs' => false
));

Note that this is generally not recommended in case Discord starts supporting IPv6 connections in the future and/or your system has a broken IPv4 or IPv6 setup. Additionally, this makes the connection setup much less reliable, because it will only try a single connection to one of the IPv4 addresses (randomly chosen with no retries). The happy eyeballs algorithm will avoid any of these problems and should be used unless you're absolutely sure you don't need this.
I'm still trying to understand what problem you're seeing exactly, did you make any progress in this regard?

More details - it's because HappyEyeBallsConnectionBuilder is the connector which will always try IPv4 first.
How can I tell react to not use HappyEyeBallsConnectionBuilder, and which connector can I use instead?

I'm planning to do a longer form blog post about the happy eyeballs algorithm in the future, in the mean time you may want to check out https://clue.engineering/2020/introducing-ipv6-for-reactphp and/or https://en.wikipedia.org/wiki/Happy_Eyeballs. The happy eyeballs algorithm will always check connections over both IPv6 and IPv4 and will automatically select the appropriate transport.
As per https://github.com/reactphp/socket#connector, ReactPHP uses the HappyEyeBallsConnector by default. This is a sane default that works across all systems, no matter whether you have broken IPv4 or IPv6 connectivity.
The same section in the documentation also explains how this can be disabled in case you're sure you only want IPv4 connectivity. Note that this is somewhat limited and should not be used in general, because the happy eyeballs algorithms will properly fall back to IPv4 connections itself and explicitly enforcing this limitation can be problematic for forwards compatibility in case your service ever becomes IPv6-capable.
If you can provide us a gist, we might be able to show you how you can integrate this for your particular code. For example, the React\Http\Browser class accepts an option Reacŧ\Socket\ConnectorInterface as the second argument to control the connector behavior as per https://github.com/reactphp/http#browser.
Again, I'm still trying to understand what problem you're seeing exactly, did you make any progress in this regard? It's my understanding using a different connector might be a work around at best and doesn't really address your underlying issue.

@richardpickett Which Discord bot is this, and for debugging purposes can you post the output of:
php examples/01-one.php discord.com
php examples/02-concurrent.php discord.com discord.com
php examples/11-all-ips.php discord.com
php examples/91-query-a-and-aaaa.php discord.com

The way we've build the HappyEyeBallsConnector is that it should never error out when you're using the default resolve method, as long as either A or AAAA has records

@richardpickett Which Discord bot is this, and for debugging purposes can you post the output of:

It's one that provides stats for Clash Royale.
> php examples/01-one.php discord.com
> php examples/02-concurrent.php discord.com discord.com
> php examples/11-all-ips.php discord.com
> php examples/91-query-a-and-aaaa.php discord.com

I'd be happy to run those, but my composer update pull doesn't include them, and just checking out this repo directly doesn't have the correct autoload setup, so it fails.

The way we've build the HappyEyeBallsConnector is that it should never error out when you're using the default resolve method, as long as either A or AAAA has records

It has A records.  To be clear, it's that when it doesn't get an AAAA record it throws two exceptions - which trips the debugger.  The resolver code catches the exceptions and handles them, but it's annoying that at the start of the debugging and every couple minutes I have to tell the debugger to continue for two exceptions in the code.
It would be preferable if an exception is thrown only when there's no AAAA and no A.
If you want to know the exact files/lines/exceptions thrown, I can provide them.
Instead, I'm having to initialize the connector with 'happy_eyeballs' => false.  Later when discord adopts IPv6, I'll be able to come back and use happy eyeballs.

The way we've build the HappyEyeBallsConnector is that it should never error out when you're using the default resolve method, as long as either A or AAAA has records

It has A records. To be clear, it's that when it doesn't get an AAAA record it throws two exceptions - which trips the debugger. The resolver code catches the exceptions and handles them, but it's annoying that at the start of the debugging and every couple minutes I have to tell the debugger to continue for two exceptions in the code.
It would be preferable if an exception is thrown only when there's no AAAA and no A.

It uses exceptions internally to deal with mission records,  and other errors. They are all caught and dealt with by the HappyEyeBallsConnector. So just to be clear, it stops at the line of the throw statement? Which debugger are you using?

So just to be clear, it stops at the line of the throw statement?

Yes, most debuggers will stop at every exception thrown.
My view on exceptions - they aren't "the rule," they are the exception.  I'd want my code to handle all "the rule" cases, and throw exceptions when it finds one it doesn't handle, which then I should code for so my code once again handles all the cases.
Of all my debugging, HappyEyeBalls is the first one I've come across that uses exceptions as the way it handles normal cases.  It's still common for a site to not have IPv6.

Which debugger are you using?

I'm debugging with vscode with xdebug.

So just to be clear, it stops at the line of the throw statement?

Yes, most debuggers will stop at every exception thrown.

Ok I get why that's annoying. There are a few different aspects and perspectives at play. Plus I have an idea that will get you the best of both worlds.

Of all my debugging, HappyEyeBalls is the first one I've come across that uses exceptions as the way it handles normal cases. It's still common for a site to not have IPv6.

HappyEyeBalls is a bit special as it will let different connection attempts race. At the start, it will attempt to resolve both A and AAAA at the same time. It will prefer the AAAA records so it waits for a few milliseconds before going ahead with the A records when the AAAA is slow. It will then attempt new connections every X ms, and if the AAAA records come in at some point it will start alternate between AAAA and A until it tried them all. All of this is done to favour IPv6 connections and to create an incentive for network admins with IPv6 support to have big enough bandwidth for it.
Now when there are no AAAA records an exception is tossed because there is an error while resolving. And as an error, it is handled as such with an exception. That is later discarded when an IPv4 connection succeeds. Which is a very normal way to approach this.

Which debugger are you using?

I'm debugging with vscode with xdebug.

There are a few ways of tackling this, the easiest is to just smash the run button. I'm pretty sure xdebug supports ignoring files during debugging so you could ignore the source of the exception. Thirdly you can set an environment var to control whether HappyEyeBalls is enabled or not so you can disable it during debug, but leave it on when deployed:
// not recommended!
$connector = new React\Socket\Connector($loop, array(
    'happy_eyeballs' => getenv('DISABLE_HAPPY_EYEBALLS') === null
));

The fact that there is a HappyEyeballs at all is because we assume some sites we connect with will be IPv6, and some will only be IPv4.
Throwing an exception when meeting an expected condition is annoying.
Why not only throw the exception when you can't find any record you can use to connect?  That seems more appropriate.
Imagine writing functions that instead of returning values it threw exceptions to communicate results to the call stack?
Wait.  You don't have to imagine it.
:rofl:
"But it's because of promises" will just be handwaving, there are graceful ways to handle expected conditions without throwing exceptions, even when using promises.  Especially considering that the callstack can be completely gone by the time the exception is thrown - the use of exceptions adds more complexity rather than reducing it.
I digress.
I'll have to look and see if I can have the debugger ignore certain files - but it doesn't matter since now I'm just not using HEB at all.
I like your suggestion of using an ENV setting, in my case I'm doing this with json config files, so will control it there.

The original report made it sound like there was some error in this project, so let's start with a recap: It looks like there's no error in this project and this is solely boils down to some unfortunate(?) and/or misinterpreted debugging output from VSCode debugger.
Here's a somewhat simplified version of what's going in over several thousand lines of code in interaction between the socket and DNS component:
try {
    throw new RuntimeException('Foo');
} catch (Exception $e) {
    echo $e->getMessage() . PHP_EOL;
}

While we can continue discussing this design (see next paragraph), this code works just fine without causing any problems. Consequently, I would argue that a debugger should not report an error here (I'm not sure what your debugger reports exactly, so without more information I can only guess).
At this point, we can focus on discussing the API design. I agree that vexing exceptions is not exactly a perfect design. The code in question has been introduced by me a couple of years ago (https://github.com/reactphp/dns/pull/110), in order to add support for resolving more address types. This new(er) resolveAll() method resembles the much, much older resolve() method semantics and accordingly also throws a RecordNotFoundException when no records could be found. While this is intentionally designed to resemble the existing method signatures, I agree that this could (should?) have returned an empty array in this case instead.
We're happy to accept PRs to address this if you feel it's worth it. Changing this piece of code isn't really a lot of work, but the major hindrance I'm seeing would be the BC break involved. We're committed to providing long-term support (LTS) for our component and at the moment I'm not sold breaking BC would be worth it if we're only discussing code style.
I'm open to discussing this further, but other than that, I believe this has been answered, so I'm closing this for now. Please come back with more details if this problem persists and we can always keep discussing and/or reopen this :+1:


Update README.md

One more for ya :) Apologies for the regression - I was in the process of updating my PR but you are quite fast on the merging. 🚀

@aarontam Ah, no problem :)


Missing test coverage for ListColumnChunk::lookup

This function is missing test coverage https://app.codecov.io/gh/kuzudb/kuzu/pull/3170/blob/src/storage/store/list_column_chunk.cpp#L153

This function should be covered if we add tests to read from var list under write transactions.


electron_bin variants still have issues finding lib*GL

Describe the bug
https://github.com/NixOS/nixpkgs/issues/269104 / https://github.com/NixOS/nixpkgs/pull/269345 is still present in the electron*-bin variants
Would need a fix similar to vscode/spotify/... #272028
This only really affects users of EOL electron versions, since everything recent is using the source-built electron derivation by default on Linux (and I have no idea if/how Mac OS is affected by this issue, probably not).
Steps To Reproduce
Steps to reproduce the behavior:

nix run electron_27-bin
Observe errors: ANGLE Display::initialize error 12289: Could not dlopen libGL.so.1: libGL.so.1: cannot open shared object file: No such file or directory

CC the electron-bin maintainers @travisbhartwell @manveru  @prusnak

This appears to be triggered by the libANGLE library:
https://github.com/google/angle/blob/f57ab75f096956a7b803b249bbafecfc89995456/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp#L147-L152
Specifically I believe the file libexec/electron/libGLESv2.so needs to have its rpath patched so it can find the following libraries:
❯ readelf -p .rodata /nix/store/a1fi8rf3n8mkccnn38cw6nfq9xjj6jx1-electron-27.0.0/libexec/electron/libGLESv2.so | grep "\.so"
  [ 12117]  libvulkan.so
  [ 12124]  libpci.so
  [ 37781]  libpci.so.3
  [ 3849a]  libvulkan.so.1
  [ 384a9]  libGL.so.1
  [ 384b4]  libEGL.so.1
  [ 4cd9d]  Could not dlopen libGL.so.1:

One thing I noticed is that that LD_DEBUG doesn't show any search path before init for these libraries. That leads me to believe that electron dynamically resolves the absolute path before calling dlload, ignoring any environment variables or rpath changes in the process.
We can fix this by either ensuring all the libraries included are properly patched, or perhaps replacing them with symlinks to nix-specific loaders like libglvnd or libvulkan. But I'm not sure if these libraries include additional functionality that chrome depends on.

Confirmed behavior with ltrace:
[pid 2901300] electron->dlopen("libpci.so.3", 1)                                                                                = 0x1c4c00064000
[pid 2901300] electron->dlopen("/nix/store/a1fi8rf3n8mkccnn38cw6nfq9xjj6jx1-electron-27.0.0/libexec/electron/libGLESv2.so", 1)                                = 0x1c4c00020c00
[pid 2901300] electron->dlopen("/nix/store/a1fi8rf3n8mkccnn38cw6nfq9xjj6jx1-electron-27.0.0/libexec/electron/libEGL.so", 1)                                   = 0x1c4c00021200
[pid 2901300] libEGL.so->dlopen("/nix/store/a1fi8rf3n8mkccnn38cw6nfq9xjj6jx1-electron-27.0.0/libexec/electron/libGLESv2.so", 2)                               = 0x1c4c00020c00
[pid 2901300] electron->dlopen("/nix/store/a1fi8rf3n8mkccnn38cw6nfq9xjj6jx1-electron-27.0.0/libexec/electron/libvulkan.so", 2)                                = nil
[pid 2901300] electron->dlopen("/nix/store/a1fi8rf3n8mkccnn38cw6nfq9xjj6jx1-electron-27.0.0/libexec/electron/libvulkan.so.1", 2)                              = 0x1c4c00021800
[pid 2901300] electron->dlopen("libX11.so.6", 1)                                                                                = 0x7fb74982b060
[pid 2901300] electron->dlopen("libX11-xcb.so.1", 1)                                                                                = 0x1c4c00064500
[pid 2901300] libGLESv2.so->dlopen("libGL.so.1", 2)                                                                                = nil

Note what @lilyinstarlight wrote on the issues/PRs linked above:

It was working by accident before, because cairo lib pulled in libEGL so dlopen didn't need to search rpath when called in libGLESv2. The fix should be to add the rpath to the libGLESv2 lib in the chromium-unwrapped derivation postFixup rather than on the chromium executable itself. I'm preparing a PR now


Calling setUniform on a sf::Shader results in a lock + several allocations

As the thread says, it's currently quite expensive to call sf::Shader::setUniform, so much that it dominates the performance overhead during some profiling of Open Hexagon.
void Shader::setUniform(const std::string& name, float x)
{
    UniformBinder binder(*this, name);
    if (binder.location != -1)
        glCheck(GLEXT_glUniform1f(binder.location, x));
}

The UniformBinder contains a TransientContextLock:
GlResource::TransientContextLock::TransientContextLock()
{
    priv::GlContext::acquireTransientContext();
}

GlResource::TransientContextLock::~TransientContextLock()
{
    priv::GlContext::releaseTransientContext();
}

acquireTransientContext:
void GlContext::acquireTransientContext()
{
    // Protect from concurrent access
    std::lock_guard lock(mutex); // <== GRABS LOCK (!)

    // If this is the first TransientContextLock on this thread
    // construct the state object
    if (!transientContext.has_value())
        transientContext.emplace(); // <== CREATES TRANSIENT CONTEXT (!)

    // Increase the reference count
    ++transientContext->referenceCount;
}

TransientContext:
TransientContext()
{
    if (resourceCount == 0)
    {
        context.emplace(); // <== CREATES SF CONTEXT, LOCKS, ALLOCATES, ETC (!)
    }
    else if (!currentContext)
    {
        sharedContextLock.emplace(mutex); // <== TAKES LOCK (!)
        useSharedContext = true;
        sharedContext->setActive(true);
    }
}

All of this stuff is done every time a uniform is set. This is extremely expensive especially when changing multiple uniforms multiple times per frame.
In a single-threaded application, all of this seems unnecessary. Even in a multithreaded application, it should be possible to create the context once, and then set uniforms multiple times.
Q: Is the transient context necessary in a single-threaded application? If so, why? (i.e. why can't I just call `GLEXT_glUniform1f' and be done with it?)
Q: Are all the allocations and context creation necessary? Can we somehow cache the "last accessed transient context" and avoid re-creating it until a different one is needed?

@vittorioromeo see #2456.

The provided fix seems an overall improvement, but I'm still interested in hearing whether you could also actually measure said improvement @vittorioromeo, so I'll re-open this issue and let you close it, once you get around to testing it.

@vittorioromeo Have you had a chance to test the fix in #2456?


Fix MTU issues

For larger MTU sizes, things are not quite working.

Testing large MTU setting from scratch (snaps-boot, then snaps-openstack) in lab2.  Initial finding is that hosts.yaml file does not take any customized mtu setting, we probably need to support setting mtu via hosts.yaml file.

Here are manual steps taken to make large MTU setting to work:

Had to manually set large MTU value (e.g., 8000) for tenant and data NICs for control and compute nodes before running snaps-openstack;
Set the same large MTU value (e.g., 8000) for both default and vxlan in deployment.yaml:
mtu_size:
default: 8000
vxlan: 8000
Need to create a tenant network with mtu of 7950 (original large MTU value - 50)

Seeing better network bandwidth performance in the tenant network with large MTU (> 7Gb/sec with 7950 MTU) :
[  4] local <IP_ADDRESS> port 5001 connected with <IP_ADDRESS> port 44994
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  8.93 GBytes  7.66 Gbits/sec
[  5] local <IP_ADDRESS> port 5001 connected with <IP_ADDRESS> port 44996
[  5]  0.0-10.0 sec  8.96 GBytes  7.69 Gbits/sec
[  4] local <IP_ADDRESS> port 5001 connected with <IP_ADDRESS> port 44998
[  4]  0.0-10.0 sec  8.37 GBytes  7.18 Gbits/sec
Compared with ~4.5Gb/sec with 1450 MTU:
[  4] local <IP_ADDRESS> port 5001 connected with <IP_ADDRESS> port 45000
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  5.32 GBytes  4.56 Gbits/sec
[  5] local <IP_ADDRESS> port 5001 connected with <IP_ADDRESS> port 45002
[  5]  0.0-10.0 sec  5.42 GBytes  4.65 Gbits/sec
[  4] local <IP_ADDRESS> port 5001 connected with <IP_ADDRESS> port 45004
[  4]  0.0-10.0 sec  5.25 GBytes  4.51 Gbits/sec
A couple of things to consider to make MTU setting easier to customize:

Make snaps-boot to be able to customize MTU setting specified in hosts.yaml file;
Make snaps-openstack to create a "demo-net" with the customized MTU instead of a standard MTU size.

MTU settings on the control node (tenant, data NIC, and br-ex with large MTU setting):
root@CONTROLLER2383:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet <IP_ADDRESS>/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether ec:b1:d7:7f:5a:6c brd ff:ff:ff:ff:ff:ff
inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global eno1
valid_lft forever preferred_lft forever
inet <IP_ADDRESS>/32 scope global eno1
valid_lft forever preferred_lft forever
inet6 fe80::eeb1:d7ff:fe7f:5a6c/64 scope link
valid_lft forever preferred_lft forever
6: ens1f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8000 qdisc mq state UP group default qlen 1000
link/ether 8c:dc:d4:af:75:e4 brd ff:ff:ff:ff:ff:ff
inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global ens1f0
valid_lft forever preferred_lft forever
inet6 fe80::8edc:d4ff:feaf:75e4/64 scope link
valid_lft forever preferred_lft forever
7: ens1f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8000 qdisc mq master ovs-system state UP group default qlen 1000
link/ether 8c:dc:d4:af:75:e5 brd ff:ff:ff:ff:ff:ff
inet <IP_ADDRESS>/32 scope global ens1f1
valid_lft forever preferred_lft forever
8: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:a2:c2:04:8c brd ff:ff:ff:ff:ff:ff
inet <IP_ADDRESS>/16 scope global docker0
valid_lft forever preferred_lft forever
9: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether e6:c3:0b:b9:cc:be brd ff:ff:ff:ff:ff:ff
10: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8000 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 8c:dc:d4:af:75:e5 brd ff:ff:ff:ff:ff:ff
inet <IP_ADDRESS>/24 scope global br-ex
valid_lft forever preferred_lft forever
inet <IP_ADDRESS>/32 scope global br-ex
valid_lft forever preferred_lft forever
inet6 fe80::8edc:d4ff:feaf:75e5/64 scope link
valid_lft forever preferred_lft forever
11: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 26:0a:71:0c:79:48 brd ff:ff:ff:ff:ff:ff
12: br-tun: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 9a:6c:6a:de:84:47 brd ff:ff:ff:ff:ff:ff
21: vxlan_sys_4789: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65000 qdisc noqueue master ovs-system state UNKNOWN group default qlen 1000
link/ether 46:3d:33:3b:8d:87 brd ff:ff:ff:ff:ff:ff
inet6 fe80::443d:33ff:fe3b:8d87/64 scope link
valid_lft forever preferred_lft forever

Idea of using var.yaml is to include all future  features which could be seen as add on to bare deployment.  We initially thought of including all add on features MTU, VLAN, MANO etc via var.yaml.
I found one break in code related to MTU size configuration; it  probably happened during PEP8 re-structuring. We reemerged the code and tested the complete scenario and it seems to be working fine.

Chirag,
Thanks for clarifying the right way to reconfigure MTU size.  I validated the approach in lab1.  You're right that the top of trunk code is not currently working, due to the directory renaming and PEP8 re-structuring.  I'll work with Steve to resolve it so that we can close this issue.


ControlNet on specific area

Dear great author,
Thanks for the fantastic work! I would like to ask a question.
Assume that the controlled photo contains a man and a dog.
Is it possible to apply ControlNet just on the man but not change the dog?
For instance, if my command is "add some red spots on the man's face" and the result photo is a man with red spots and the dog
Could we use positive/negative prompts to control it? Or shall we retrain ControlNet to do so?
Thanks

use a mask？

Using a mask in inpainting entirely achieves this, I do it all the time. The previews during generation show a total image being affected, but the result is mask-limited.

Using a mask in inpainting entirely achieves this, I do it all the time. The previews during generation show a total image being affected, but the result is mask-limited.

how do you use a mask? You mean just cut out your area of interest from the ControlNet result and paste it on the original image? But the edits still may affect other areas, so you might end up with a cut off object or background.

Using a mask in inpainting entirely achieves this, I do it all the time. The previews during generation show a total image being affected, but the result is mask-limited.

Hi, do you have any update on this?
Currently, I am having the same problem, I would like to keep the object and just change the background.
For example, a dog in a park picture. I want to keep the dog but change the background from park into indoor for example

Using a mask in inpainting entirely achieves this, I do it all the time. The previews during generation show a total image being affected, but the result is mask-limited.

how do you use a mask? You mean just cut out your area of interest from the ControlNet result and paste it on the original image? But the edits still may affect other areas, so you might end up with a cut off object or background.

Hi, if you find the solution, please help to share


Add localisation for Estonian.

Hi @rluiten,
Thanks for this library!
I have added localisation for Estonian, which, admittedly, is a very niche target market, but I needed it and figured I'd contribute it back.
The date/time formats are taken from http://www.eki.ee/itstandard/2000/FDCC.shtml.en.
Let me know if this needs more work or any other input.
Cheers!

Thanks! :tada:

Your quick, I'm just fixing up so all languages and locale date formats are exported properly.
Improving test cases for getConfig to cover them all.
Plan to add at least one format test case for each language as well I think, considering this.

Cool. I have vendored this library into my project for now. But I'm eager to stop using the vendored version and depend on this properly.
Let me know if you need help with anything and/or clarification.

I have some day light saving issues to track down, but I am pretty sure that will take time so am unwilling to start unless I have allocated a good block of time. So will tidy up an release this with 2 other languages in next few hours I expect.

Super! Thanks!

Published 8.2.0


Error when running application (single-tenant vs multi-tenant)

I run this app after filling in the details as instructed. I get this error after trying to Login
OpenIdConnectProtocolException: Message contains error: 'invalid_request', error_description: 'AADSTS50194: Application '{id}'({name} is not configured as a multi-tenant application. Usage of the /common endpoint is not supported for such applications created after '10/15/2018'. Use a tenant-specific endpoint or configure the application to be multi-tenant.
I did not see any instructions for this to be a multi-tenant app.

Has there been a resolution for this issue?  I am having the same problem.  My app is set to single-tenant. There is no "/common" endpoint in my code.

I am getting the same error.  Has there been any resolution? Any response would be appreciated.  Thanks

Closing issue as we are archiving this repository.
To answer your question: In single-tenant apps, MSAL must be given the tenant ID. You should be able to set the TenantId property in this section of appsettings.json:
https://github.com/microsoftgraph/aspnetcore-connect-sample/blob/4d237da78fc59d83ed358a57ab70694f810b98a1/MicrosoftGraphAspNetCoreConnectSample/appsettings.json#L2-L10


plugins: Add support for a context menu event on a marker

Short description of changes:
This PR adds support for a context menu event on a marker in the markers plugin. It contains an option to disable the native context menu from being opened (preventContextMenu, defaults to false). This is almost identical to #1844 which implements the same functionality for the regions plugin.
I've also added an example of the event to example/markers
Breaking in the external API:
None
Breaking changes in the internal API:
None
Todos/Notes:
None
Related Issues and other PRs:
#1844

@thijstriemstra Would appreciate your feedback!

Would appreciate your feedback!

Was on a holiday, sorry for the delay. Would be great if others could help me review PRs every now and then..

Coverage increased (+0.07%) to 81.375% when pulling 5cf0b492d8d23aeb1fb36bff476d2b46e7e65b98 on kpanditCtr:markers-contextmenu into 6aca3e12b542e4627512f37d387c7f291830d163 on katspaugh:master.


Add "update" array manipulator to FieldArray fields prop.

Please add function update(index: number, value: any) to fields object. The idea behind that is to support editing item of fields array in separate form like modal dialog. Of course I could use remove and insert function but it would be nice to have one atomic function to do that, similar like swap.

I honestly thought we had that. This would be useful in my project. I'd personally call it replace. Or, have both and have update do an Object.assign({}, oldValue, newValue) (if it's an object) for me. This would be ever so nice.

What do you know this is an exact duplicate of #2475 besides the function name.


ci: retry command in Pod on "unable to upgrade connection" error

Sometimes executing a command in a Pod fails with "unable to upgrade
connection". This is most likely a temporary situation, and retrying
hopefully reduces the number of spurious failures because of it.

Show available bot commands
These commands are normally not required, but in case of issues, leave any of
the following bot commands in an otherwise empty comment in this PR:

/retest ci/centos/<job-name>: retest the <job-name> after unrelated
failure (please report the failure too!)
/retest all: run this in case the CentOS CI failed to start/report any test
progress or results

https://jenkins-ceph-csi.apps.ocp.ci.centos.org/blue/organizations/jenkins/mini-e2e_k8s-1.22/detail/mini-e2e_k8s-1.22/3677/pipeline/89 is one of the instances where this error was reported.

@mergifyio rebase


trigger image rebuild

Signed-off-by: Jonathan Marcantonio<EMAIL_ADDRESS>For issue, [2.5-integration] Remediate package vulnerability in multicluster-operators-channel #23512

/lgtm


GET full name of coin

Hi, I need to get the full name of a coin starting from its symbol? Is it possibile? Thanks!

I don't know if you're still trying to do that, but there's a package who does that's been published two weeks ago : https://www.npmjs.com/package/coinify

Ok, thanks!


python310Packages.gehomesdk: 0.4.25 -> 0.4.27

Description of changes
Update to latest upstream release 0.4.27

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 178707 run on x86_64-linux 1

2 packages built:

python310Packages.gehomesdk
python39Packages.gehomesdk


New if function to check if there are subfolders in data/step*

The adding of ResidualCap and NewCap didn't work when there was only one scenario, since the write out function searched for subdirectories under data/step*

@trevorb1, we missed that if there are no options in the first steps beyond step_0, then the csv file are directly under data/step_*, but the script checked for subdirectories, i.e., the updated ResidualCapacity was not written out.


Reflect current collection/folder in URL

ATM

which

makes impossible to share a URL to point to the specific collection/folder
resets to the top page upon refresh
unlike in girder

providing #anchors to point to specific collection/folder

I understand this as a request to be able to permalink to some particular resource. I've posted an issue in the upstream repo.

but this could be something we do through the frontend API not girder itself. but yes in general having a direct URL could be useful, but that may require more changes based on who has access to the URL. if you think of the get link option of dropbox


ambiguous use of the keyword "delta"

This is a bit of a trivial issue, but one putting into the record largely as a warning to users.   I just got had a confusing output from working with mspass in a workflow that used the obpsy wrapped "detrend" and did some travel time calculations to set P predicted P wave arrival times with each datum.   The problem that happened was forgetting that for obspy "delta" is a special keyword reserved for the data sample interval.   In mspass we use the internal attribute "dt" (e.g. a TimeSeries object d can fetch the sample interval as d.dt.) to define that fundamental data property.   The problem is I decided to set the field with the key "delta" as the epicentral distance from source to receiver in degrees.   Doing so caused the conversion back and forth within resample to have the sample interval wrong in the datum returned by resample.
Now, officially I did that wrong as delta is already defined in the mspass schema as the data sample interval.  This is a classic example of namespace collisions where the same word can be used to define completely different concepts.   Still, that was too easy to do as I suspect if we took a vote with seismologists about what they would guess the keyword "delta" was used for a big majority would say epicentral distance and not data sample interval.
There is no solution to this problem I can think of.  I suggest @wangyinz comment on my post and close this issue.   As I said I think the caveat is worth preserving.

Aha... that is a good catch I guess. Well, I think you have the point here that there is no solution, or at least no intuitive solution. Ultimately, this is a user error more or less...


Dropdown changes incorrectly when jumping over the form inputs via pressing Tab key

When you have a form with dropdown and you're tabbing through it the value of dropdown gets changed and returns a label-attribute, but not a value-attribute of source item.
Also mentioned here: https://github.com/react-toolbox/react-toolbox/issues/297#issuecomment-208665520

This is probably the result of this line:
https://github.com/react-toolbox/react-toolbox/blob/dev/lib/dropdown/Dropdown.js#L214
What I'm doing now is just using my own template template={(item) => <div>{item.label}</div>}
Basically, this renders the component inaccessible, which is obv very bad, but it stops you from being able to tab through it at all.

This is fixed now. The onChange was spread to the internal Input element causing a call when it was focused. Now the Dropdown has its own focus and call onChange only when selection really changes. Still we pass the value to Input cause that's what we want to display. It's not semantic though but changing it takes some time and I plan to improve Dropdown very soon. Still more important work to do!

Check 276e891ac14e00b09c9fa844c63d27881f8cde14


use env OR defaults, not both

@MicahZoltu per our discussion

i'll write a type for the endpoints


Implement "native" TES executor

Problem
The current GA4GH TES executor wraps every TES task in a Snakemake command, essentially making them 1-step Snakemake workflows. While this design choice aligned with that of other executors and provides a high degree of compatibility in terms of features supported by Snakemake, it comes at a considerable cost:

Performance

Running Snakemake for each task incurs an overhead on runtime, CPU, memory and storage requirements

Clarity

An additional output stream layer from the workflow engine clobbers the logs and makes debugging more difficult
The Snakemake workflow descriptor file and executor script always need to be attached, by content, to each TES call, slowing down requests and clobbering logs and working directories; in many cases, additional descriptor files, scripts and config files need to be attached by content as well
As it is difficult to ascertain which files are required by a given Snakemake-wrapped TES call, currently all files in the current working directory are attached
It requires deep introspection to understand what command is actually being executed in a given TES task as every tesTask.executors[].command is a snakemake call

Compatibility

Passing files by content may be limited by compliant TES implementations to 128 KiB, which may easily be exceeded if large files reside in the working directory
The current implementation requires all files Snakemake needs to run a given TES task to be available in the same directory, thus severely limiting the number of workflows that can be supported through this executor; in fact, this executor cannot be used to run any workflows that follow Snakemake's best practices and recommendations on directory structure or that adhere to the Snakemake Workflow Catalog's standardized usage
The compatibility benefits stemming from wrapping task's in Snakemake obfuscate the capabilities (or lack thereof) of a given TES implementation; for example, users may be suprised to find that a TES call has led to output being written to an S3 bucket, when the TES implementation doesn't know how to do that
Having to encode Snakemake storage providers (and possibly credentials) in the workflow descriptors severely limits the (re)usability of Snakemake workflows, particularly in the cloud (the auto remote plugin didn't work very well in my hands, and passing the providers via the configfile to forego changing the workflow descriptors when using different remote storage providers was not supported when I tried; admittedly, those could be errors on my side); a native TES executor could deal with cloud storage instead

Solution
Implement a "native" TES executor, i.e., implement the executor in such a way that commands to be executed are not wrapped by Snakemake. Instead, tesTask.executors[].command should take the value of the command to be executed, tesTask.executors.image should take on the value of the (Docker) image or Conda environment (for supported TES implementations) in which the command is to be executed, and tesTask.inputs[] and tesTask.outputs[] should contain the actual command inputs and outputs.
@vsmalladi @MattMcL4475 @svedziok @vschnei @kellrott

THanks for the suggestion. Indeed, there is some overhead in calling Snakemake again within the job. The benefit is the increased flexibility (works with any storage plugin, shell, as well as script, notebook and wrapper support, as well as all the different software deployment backends (conda, apptainer, later nix etc.).
I don't really see though that a change in the direction you propose needs a separate flavor of the TES executor. For the following reasons:

Uploading sources is a concern the way this executor is currently implemented, but it does not need to be like that. The other executors upload sources to a storage backend (like S3) or assume a shared FS (in cluster case). Both approaches do not put a limit on the size of the source files and given that it is only some KB, there is no performance penalty.
If one changes the way TES is used by Snakemake, I am completely fine to do that within this executor. Hence, no second version would be needed. For prototyping, it would also be fine to create a separate plugin and merge it in here once it works fine. THis is the nice thing about the plugin move.
I rather see such a change as you suggest in the main Snakemake codebase or the executor interface package. Because then, all executors benefit from it. I have thought about this several times before and it is definitely something we want to do at some point. So far it was simply not the highest priority. One possible way is to have an extremely shallow wrapper for handling storage and software deployment that does not need the entire workflow source, and strip that down even further if the job is just a shell command. It could be a Python package that just depends on snakemake-storage-plugin-interface and the upcoming snakemake-software-deployment-plugin-interface. In case an executor chooses to provide a certain storage on its own (like TES can do for some), the storage handling can be omitted as well.

All in all, yes I agree that it makes sense to go this way, I would just say it is not something we should do within a plugin but for Snakemake itself.

One final thing to note: Snakemake supports grouping jobs together (DAG partitioning). In such a case, there is really no way around a mini-workflow invocation. This feature is very important for maximizing and fine-tuning the performance real world workflows on cluster and cloud, in particular in order to limit IO and network traffic. One could simply fallback to the current approach in such case. You should keep in mind though that this feature can be used quite abundantly for sophisticated production workflows.

Thanks @johanneskoester, very useful feedback!
To comment on your points:

Agreed that the limitations on file transfers and directory layout can probably be solved in the current implementation through some workarounds. I still don't think that a TES implementation should bother with workflow-related files (strictly/semantically speaking that would rather be a case for the WES API, but then we'd end up in an infinite loop).
That makes sense, especially since, at least at this point, most TES implementers are well connected, so that we can get all the stakeholders on board to discuss the best way forward.
That's interesting! Speaking from a TES perspective, stripping things down to what's really needed makes a lot of sense, because only then we could make use of TES's potential to fully abstract away the handling of storage and software deployment from the workflow engine. The tricky part here will probably be to cover the situations where simply passing through file URIs isn't enough, e.g., if output introspection is required for job scheduling or job grouping. We would then then need to make sure that these cases are handled through the executor as well.
Very good point. DAG partioning could probably be handled through either the WES API and/or the use of multiple executors (in the TES sense). Btw, multiple executors could also be used for staging workflow or input/output files, sniffing metadata for the workflow engine etc., so it's useful to keep in mind that TES supports the execution of multiple commands in multiple environments on a common file system.

If you are interested, we would be happy to discuss this in one of the upcoming TES meetings. Please let me know if you are interested and we will reach out to schedule something.

Yes, lets meet! Very interesting thoughts. Just send me an email to the public email address.

sure, it is an iterative process to me. There will always be cases where Snakemake needs the entire source tree for a step. For example, users might have scripts that import a module, etc. These things are very hard to disentangle. Snakemake allows so many things beyond what classical approaches to WMS allow, it is just not just shell commands. So I guess we can never get rid of this entirely, but we probably can get rid of it for the vast majority of jobs.
I did not know about the multiple executors. The problem is that they are only sequentially, but Snakemake can also be configured to have parallelism within job groups (i.e DAG partitions). However, it knows whether the group is jsut sequential, and at least in that case it could be easily mapped to TES executors.

All in all, I am so happy to see TES contributors getting interest in this plugin! Would be great if you could push it to the boundaries, and I am happy to extend or upgrade the plugin interface so that it fits the needs of TES even better.

Perfect :) I will reach out with an invite after the holiday break.
Frohe Festtage dir 🎄

Would be good to look into this @uniqueg. Thoughts?

Yes, let's discuss, @vsmalladi. Sorry for not following up earlier @johanneskoester. Guess this will become even more relevant now that @vsmalladi and team will look into this for Microsoft's TES on Azure.


indentation of multiple var definitions should follow alignment of first line

VSCode Version:1.1.2
OS Version:Ubuntu 17.04

Steps to Reproduce:

use one var, let or const declaration to define multiple names on multiple lines
auto-indent all lines in the declaration

VSCode indents the line as follows
const onevar = 1,
twovar = 2;

the indentation should (I think) look like below (emacs' js2-mode indents this way),
const onevar = 1,
      twovar = 2;

Thanks. I believe that the indentation we are targeting is actually:
const onevar = 1,
    twovar = 2;

If you run the format document command, this is what we output.
The bug here looks to be that our indentation rules do not handle this case. Starting with:
const onevar = 1,|

when you press return, the cursor ends up here:
const onevar = 1,
|

@mjbvz I see --you're right about those things as far as I can see

Let's use https://github.com/Microsoft/vscode/issues/30859 to track. The root cause here is we don't have a way to support multiple line indentation rules yet, all indentation rules are single line based now.


Update sharded dataloader based on the change of dataloader

Description
Fix #274
Checklist
Essentials

[x] Changes are complete (i.e. I finished coding on this PR)
[x] All changes have test coverage
[x] Code is well-documented

Changes

update sharded dataloader

Comments

If this change is a backward incompatible change, why must this change be made.
Interesting edge cases to note here

Job PR-280/4 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-280/4/index.html

Can you shortly describe what caused the deadlock? Was it due to upstream mxnet change?

@szhengac mentioned that he'd add the option upstream to mxnet and include that in the fix.