context deadline not respected if backends are down

Expected Behavior
When a context deadline is provided, and all backends are down, calls to ClusterClient.Get (and others) return shortly by the deadline or shortly after, with an error.
Current Behavior
Calls to ClusterClient.Get block for N * D, where N is the number of backends configured, and D is the DialTimeout.
Steps to Reproduce
package main

import (
	"context"
	"log"
	"time"

	"github.com/go-redis/redis/v8"
)

func main() {
	rdb := redis.NewClusterClient(&redis.ClusterOptions{
		Addrs: []string{
			"<IP_ADDRESS>:999",
			"<IP_ADDRESS>:999",
			"<IP_ADDRESS>:999",
			"<IP_ADDRESS>:999",
			"<IP_ADDRESS>:999",
			"<IP_ADDRESS>:999",
		},
		DialTimeout:  time.Second,
		ReadTimeout:  time.Second,
		WriteTimeout: time.Second,
	})
	ctx, cancel := context.WithTimeout(context.Background(), 100*time.Millisecond)
	defer cancel()
	resp, err := rdb.Get(ctx, "example").Result()
	if err != nil {
		log.Fatal(err)
	}
	log.Print(resp)
}

$ time go run main.go
dial error: dial tcp <IP_ADDRESS>:999: i/o timeout
dial error: dial tcp <IP_ADDRESS>:999: i/o timeout
dial error: dial tcp <IP_ADDRESS>:999: i/o timeout
dial error: dial tcp <IP_ADDRESS>:999: i/o timeout
dial error: dial tcp <IP_ADDRESS>:999: i/o timeout
dial error: dial tcp <IP_ADDRESS>:999: i/o timeout
2022/07/06 11:31:31 context deadline exceeded
exit status 1

real    0m6.532s
user    0m0.925s
sys     0m0.281s

Expected: real time is less than 500ms, based on the 100ms context timeout. Actual: real time is 6.5s.
Note: the dial errors are present because I added a Println call to go-redis' dial code to make it clearer what's going on.
Context (Environment)
go version go1.18 linux/amd64
github.com/go-redis/redis/v8 v8.11.5
This is a simplified version of a problem we encountered when bringing up the OCSP responder for https://github.com/letsencrypt/boulder/ with a set of backends that could not be reached.
Possible Implementation
It's reasonable to keep trying to dial in the background, but the user-facing call should return based on the deadline.

Here's a stack trace of where the dial calls are coming from. Notably one of the stack frames is in cmdsInfo, which loops through the available nodes without checking for a context deadline each time: https://github.com/go-redis/redis/blob/9f5aacde23f23a9c45b59b675680e7d375c27de2/cluster.go#L1563-L1588
This is particularly an issue because cmdsInfo is called within an internal.Once.Do, which holds a mutex. And mutexes can't obey context deadlines, so all other goroutines block on that same mutex, for longer than their intended deadline.
goroutine 1 [running]:
runtime/debug.Stack()
        /home/jsha/go1.18/src/runtime/debug/stack.go:24 +0x65
runtime/debug.PrintStack()
        /home/jsha/go1.18/src/runtime/debug/stack.go:16 +0x19
github.com/go-redis/redis/v8/internal/pool.(*ConnPool).dialConn(0xc0000b6280, {0x68fe48, 0xc0000a2000}, 0x1)
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/internal/pool/pool.go:199 +0xc6
github.com/go-redis/redis/v8/internal/pool.(*ConnPool).newConn(0xc0000b6280, {0x68fe48?, 0xc0000a2000?}, 0x1)
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/internal/pool/pool.go:163 +0x6e
github.com/go-redis/redis/v8/internal/pool.(*ConnPool).Get(0xc0000b6280, {0x68fe48, 0xc0000a2000})
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/internal/pool/pool.go:279 +0x16b
github.com/go-redis/redis/v8.(*baseClient)._getConn(0xc0000d01a0, {0x68fe48, 0xc0000a2000})
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/redis.go:194 +0x38
github.com/go-redis/redis/v8.(*baseClient).getConn(0xc0000d01a0, {0x68fe48?, 0xc0000a2000?})
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/redis.go:182 +0x69
github.com/go-redis/redis/v8.(*baseClient).withConn(0xc0000d01a0, {0x68fe48?, 0xc0000a2000}, 0xc00009c780)
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/redis.go:274 +0x73
github.com/go-redis/redis/v8.(*baseClient)._process(0xc0000d01a0, {0x68fe48, 0xc0000a2000}, {0x6909d0?, 0xc0000b4190}, 0x0?)
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/redis.go:329 +0x114
github.com/go-redis/redis/v8.(*baseClient).process(0xc0000d01a0, {0x68fe48, 0xc0000a2000}, {0x6909d0, 0xc0000b4190})
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/redis.go:311 +0x79
github.com/go-redis/redis/v8.hooks.process({{0x0?, 0x10?, 0xc0000cf960?}}, {0x68fe48?, 0xc0000a2000?}, {0x6909d0, 0xc0000b4190}, 0x50?)
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/redis.go:54 +0x7a
github.com/go-redis/redis/v8.(*Client).Process(0xc0000cf9a8?, {0x68fe48?, 0xc0000a2000?}, {0x6909d0?, 0xc0000b4190?})
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/redis.go:596 +0x70
github.com/go-redis/redis/v8.cmdable.Command(0xc0000987a0, {0x68fe48?, 0xc0000a2000})
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/commands.go:467 +0xd7
github.com/go-redis/redis/v8.(*ClusterClient).cmdsInfo(0xc0000e8000, {0x68fe48, 0xc0000a2000})
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/cluster.go:1602 +0x13b
github.com/go-redis/redis/v8.(*cmdsInfoCache).Get.func1()
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/command.go:3341 +0x3f
github.com/go-redis/redis/v8/internal.(*Once).Do(0xc0000d0168, 0xc00009edd0?)
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/internal/once.go:54 +0xaa
github.com/go-redis/redis/v8.(*cmdsInfoCache).Get(0xc0000d0160, {0x68fe48?, 0xc0000a2000?})
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/command.go:3340 +0x5d
github.com/go-redis/redis/v8.(*ClusterClient).cmdInfo(0xc0000e8000, {0x62fc63, 0x3})
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/cluster.go:1618 +0x47
github.com/go-redis/redis/v8.(*ClusterClient).process(0xc0000e8000, {0x68fe80?, 0xc0000b2180}, {0x690f10, 0xc0000b21e0})
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/cluster.go:772 +0x75
github.com/go-redis/redis/v8.hooks.process({{0x0?, 0xc000098760?, 0x7ff15901dc40?}}, {0x68fe80?, 0xc0000b2180?}, {0x690f10, 0xc0000b21e0}, 0x60?)
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/redis.go:54 +0x7a
github.com/go-redis/redis/v8.(*ClusterClient).Process(0xc0000cfeb0?, {0x68fe80?, 0xc0000b2180?}, {0x690f10?, 0xc0000b21e0?})
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/cluster.go:768 +0x6d
github.com/go-redis/redis/v8.cmdable.Get(0xc000098740, {0x68fe80?, 0xc0000b2180}, {0x630463, 0x7})
        /home/jsha/boulder/vendor/github.com/go-redis/redis/v8/commands.go:786 +0x122
main.main()
        /home/jsha/boulder/redis-lookup/main.go:23 +0x10c

@jsha having same issue with v8 client getting context deadline exceeded Any luck with your issue? i did check redis docs and found this https://blog.uptrace.dev/posts/go-context-timeout.html even with individual ctx no luck

@jsha mine got resolved when I got the URL and port corrected from localhost to use <IP_ADDRESS> in case any one stumbles the same could try this fix.

well you should try Ping() first before trying to do operations on redis. after i setup the client, i usually try to ping the redis connection, if failed, then i send panic().


[Flaky Test] Periodic E2E upgrade test job ci-gardener-e2e-kind-ha-single-zone-upgrade-release-v1-67

How to categorize this issue?

/area testing
/kind flake
Which test(s)/suite(s) are flaking:
Periodic E2E upgrade test job ci-gardener-e2e-kind-ha-single-zone-upgrade-release-v1-67 failed to upgrade from version v1.66.1 to v1.67.1-dev with timeout error.
CI link:

1639716504339484672
1640260091452067840
1639716504339484672
1639656105766293504
1639414511217676288
1639293714234871808

Reason for failure:
Seed is not getting upgraded due to the seed's conditions are failing.
    conditions:
    - lastTransitionTime: "2023-03-25T20:18:59Z"
      lastUpdateTime: "2023-03-25T20:17:50Z"
      message: 'Some extensions are not installed: map[networking-calico-2fgn6:condition
        ResourcesApplied of managed resource garden/networking-calico-2fgn6 is False:
        error during apply of object "apps/v1/Deployment/extension-networking-calico-2fgn6/gardener-extension-networking-calico":
        Internal error occurred: failed calling webhook "high-availability-config.resources.gardener.cloud":
        failed to call webhook: Post "https://gardener-resource-manager.garden.svc:443/webhooks/high-availability-config?timeout=10s":
        dial tcp <IP_ADDRESS>:443: connect: connection refused provider-local-p7jnc:condition
        ResourcesApplied of managed resource garden/provider-local-p7jnc is False:
        error during apply of object "apps/v1/Deployment/extension-provider-local-p7jnc/gardener-extension-provider-local":
        Internal error occurred: failed calling webhook "high-availability-config.resources.gardener.cloud":
        failed to call webhook: Post "https://gardener-resource-manager.garden.svc:443/webhooks/high-availability-config?timeout=10s":
        dial tcp <IP_ADDRESS>:443: connect: connection refused]'
      reason: NotAllExtensionsInstalled
      status: "False"
      type: ExtensionsReady

Anything else we need to know:
cc: @rfranzke

We no longer maintain the release-1.67 branch and the upgrade test works fine on other branches. So issues was maybe because of some specific change in 1.67.
Based on the above comment, we should not invest time in this issue.
/close


simple fixes

mainly about compile problem on mac osx

Your PR is too large for me to merge.
First, there is no memory leak in test. All that will be freed when the main function returns.
Second the intents belongs to coding style not bug.
Only commit https://github.com/begeekmyfriend/skiplist/pull/4/commits/0d845258c39e87c50ab47244d045962609d75067 can be accepted.

Thank you for your immediate response.
First, the test main function does not free int* key and it makes my test procedure fail as it uses your test procedure.
Second, i understand it's sort of coding style problem but your codes are using tab and spaces at the same time so i just make it to one style.


Add create-testnet-data command

Changelog
- description: |
    Add `create-testnet-data` command, that generates files for starting a testnet, with a UI that is more conveninent than `create-staked`
# uncomment types applicable to the change:
  type:
  - feature        # introduces a new feature
  # - breaking       # the API has changed in a breaking way
  - compatible     # the API has changed but is non-breaking
  # - optimisation   # measurable performance improvements
  # - improvement    # QoL changes e.g. refactoring
  # - bugfix         # fixes a defect
  # - test           # fixes/modifies tests
  # - maintenance    # not directly related to the code
  # - release        # related to a new release preparation
  # - documentation  # change in code docs, haddocks...

Context
Fixes https://github.com/input-output-hk/cardano-cli/issues/473
How to trust this PR

Code that is moved from Run/Genesis.hs to Run/CreateTestnetData.hs is not modified
Hence, existing behavior of Run/Genesis.hs is unchanged.
The structure of the files created by create-testnet-data is in a golden file, and it is consistent with what we said we would do.

Checklist

[X] Commit sequence broadly makes sense and commits have useful messages
[X] New tests are added if needed and existing tests are updated. See Running tests for more details
[X] Self-reviewed the diff

Questions/comments to reviewers:

Do we want the new create-testnet-data command to be available in all eras? Right now it is, I followed the same pattern as create-staked.
This is v1 version. For example I intentionally did not tackle this comment nor this one. This can be done in later PRs and I wanted this one to be merged sooner than later. Long-running PRs are harder for authors (damn I should get this merged!) and for reviewers (this PR again!?).


Interested in Advanced Features?

I've been running my personal "advanced macro" branch for awhile now and just merged it to my "master".  It contains a number of nifty features, such as being able to toggle a status variable to keep track of a device's status when the remote would normally toggle.  Or you can ping a device to see if it's online before you turn it on.   Conditional logic and loops are supported, external shell commands, parameter substitution, wake on lan, etc.
Rather than just rest API to send an IR command, it's more of a home automation middle-ware that sits between apps like IFTTT and your IR devices, capable of rather complex decisions.  The existing settings file format remains the same.
Let me if you are interested and I can issue a PR, or just check out my repo and give it a whirl.

I'll have to consider how to modularize things, but the macro parsing and such are pretty fundamental.  Next I plan on adding psuedo-variables for time of day and maybe GPIO control and look into threading it.  Maybe I'll rename it, keeping a "based on code by ..." line since I imagine its going to be changing quite a bit


Contextual menu action appears even when right clicking in DITA files

Marius from QA reported this issue.
I guess we could use the "ro.sync.exml.workspace.api.editor.WSEditorBase.getDocumentTypeInformation()" API and only add the contextual menu action if the XML has some document type information attached and if the name of the document type contains "docbook" in it. Even if we are wrong, the end user can continue using it from the toolbar so no big deal...

I think it's not a good idea because the users can define documents types with other names.

Implemented in: e5dc10fc5c6bbcf301e43b880795aee3e4995b25

You can first lowercase the strings and check the contains to possibly catch more document type names. Indeed they might rename their Docbook framework to something else but they will still have the toolbar button. This action is not really a contextual menu action, it does not depend on the caret position or the selection so it's no big loss if it disappears sometimes.

Did you also make the lowercase contains verification? So that if the framework has "docbook" or "DOCBOOK" in its name it would still be matched?

I fixed the verification in : ab22638b7f19c58635ce0cac42b2ccc0b4fad862.


Rails 6.1 stack level too deep if used alongside DatabaseCleaner

Took the weekend to upgrade an app from Rails 5.2 to Rails 6.1.
On cypress/support/index.js, we have a cy.app('clean_database'); call; in clean_database.rb, we have:
DatabaseCleaner.strategy = :truncation, { except: %w(
   some
   table
   names
) }
DatabaseCleaner.clean

The exception we're getting is stack level too deep; tracking this down, the exception occurs when we call results.to_json in lib/cypress_on_rails/middleware.rb#handle_command.
On rails 5.2, results was an array with 1 element, containing:
 [[#<DatabaseCleaner::Base:0x00007f8a67f1fe48
   @db=:default,
   @orm=:active_record,
   @orm_autodetector=#<DatabaseCleaner::ORMAutodetector:0x00007f8a67f1fe20 @autodetected=true>,
   @strategy=
    #<DatabaseCleaner::ActiveRecord::Truncation:0x00007f8a67f1cd38
     @cache_tables=true,
     @connection_class=ActiveRecord::Base,
     @db=:default,
     @only=nil,
     @pre_count=nil,
     @reset_ids=nil,
     @tables_to_exclude=["some", "tables"]>>]]

On rails 6.1, this becomes a huge object, because DatabaseCleaner::Base#strategy contains a enormous DatabaseCleaner::ActiveRecord::Truncation object, because of it's @connection instance variable:
[[#<DatabaseCleaner::Cleaner:0x00007ff23fd228f8
   @db=:default,
   @orm=:active_record,
   @strategy=
    #<DatabaseCleaner::ActiveRecord::Truncation:0x00007ff2472bd4a0
     @cache_tables=true,
     @connection=
      #<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter:0x00007ff2472571c8
       @advisory_locks_enabled=true,
       @config={:adapter=>"postgresql", :database=>"xxxx", :username=>"xxxx", :encoding=>"unicode", :pool=>25, :host=>"localhost", :port=>5432},
       @connection=#<PG::Connection:0x00007ff247257ad8>,
       @connection_parameters={:user=>"xxxx", :dbname=>"xxxxx", :host=>"localhost", :port=>5432},
       @default_timezone=:utc,
       @idle_since=3202867.25819,
       @instrumenter=
        #<ActiveSupport::Notifications::Instrumenter:0x00007ff241833070
         @id="fcd073bdb4c06c97144c",
         @notifier=
          #<ActiveSupport::Notifications::Fanout:0x00007ff23a944128
           @_mutex=#<Thread::Mutex:0x00007ff23fa03f50>,
           @listeners_for=#<Concurrent::Map:0x00007ff23a944060 entries=6 default_proc=nil>,
           @other_subscribers=
            [#<ActiveSupport::Notifications::Fanout::Subscribers::Timed:0x00007ff240a90710
              @can_publish=false,
              @delegate=#<Proc:0x00007ff240a90788 /Users/xxxx/.rbenv/versions/2.7.4/lib/ruby/gems/2.7.0/gems/dotenv-rails-2.7.6/lib/dotenv/rails.rb:24>,
              @pattern=#<ActiveSupport::Notifications::Fanout::Subscribers::Matcher:0x00007ff240a906e8 @exclusions=#<Set: {}>, @pattern=/^dotenv/>>],
           @string_subscribers=
            {"service_mirror.active_storage"=>
              [#<ActiveSupport::Notifications::Fanout::Subscribers::Evented:0x00007ff23fbd2598

Calling .to_json on this results array results in a stack level too deep.
Is anyone else facing this, and what do the maintainers think, should we handle this on this gem or try to solve it upstream?

I obviously wasn't think straight when I opened this.
cypress-on-rails will try to render as json the return of the command called.
It was a simple matter of making our clean_database.rb return true in the last line, instead of returning the call to DatabaseCleaner.clean.
So instead of
DatabaseCleaner.clean

Just
DatabaseCleaner.clean
true


Why the default kong_admin_url feature is disabled in all project?

Hello Konga guys,
First of all thanks for your work, this looks a great project, very useful to manage Kong, and I think is better than other alternatives.
I think having an ENV VAR to define a default Kong admin url is very useful for fast docker installations
The combination of the users seed feature and a default kong admin url allows to have a ready out-of-the box Konga. Why has been disabled in the source code? Some examples:
https://github.com/pantsel/konga/blob/0bbccc8b68fd19c942897b0ea94fc20c9ffc1531/api/models/KongNode.js#L118
or
https://github.com/pantsel/konga/blob/master/config/env/production.js#L24
Thanks!

I think would be great a "kong-nodes" seed feature

Bumping this. Would love to see this as a feature in a future release. I had to fork Konga to re-enable this functionality: https://github.com/b-ggs/konga/commit/b0cc22f58c7b16c66786b0c1b2fe2fb38c69f4c7

@b-ggs 's , addition will be available in the upcoming 0.14.4 version. For now, everyone that needs to use this functionality, can switch to the next branch or use pantsel:konga/next from docker hub.
Thanks a lot for the contribution.


Make the circuitbreaking tests XFail instead of Fail

The circuit breaker tests are just too excessively flaky right now, so make them XFail instead of Fail when something goes wrong. Obviously this isn't a good idea, and they need attention: this is tracked in #1945.

LGTM, to the degree that I'm qualified to say that.


troubleshooting.md translations

We should create troubleshooting_ko.md and troubleshooting_es.md files before doing the next npm release.
Currently I get this error when the verify command fails and I have a language selected that doesn't have a troubleshooting_xx.md file:
Error: ENOENT, no such file or directory '/Users/sethvincent/workspace/javascript-modules/nodeschool/javascripting/troubleshooting_es.md'

I'll update some of the spanish translations and I'll include the troublesthooting_es with the pull request when I finish.

see https://github.com/sethvincent/javascripting/pull/94

#93 I added a troubleshooting_es in that pull request too :S
Also made some modifications to the existing spanish translations (the code examples are now in english) so the command 'javascript verify' would work on it.

@esalinas00 I didn't knew about that PR, my bad. Two things, could you separe that in two PRs? One for troubleshooting_es.md and another one for the code examples corrections. Good catch, but we need just to keep the same string literals, not necessarily the name of the variables (i.e. verify would work with var ejemplo = "some string"; console.log(ejemplo) too).

@a0viedo I decided to change the variable names because in the other language translations the variable names are in english. I though it was a convention, but maybe they are in english because the other languages available use special characters. I'll change the variables' names back to spanish if you think that would be better.
I have no problem leaving your troubleshooting_es.md, it will mean less merges.

@esalinas00 maybe we could make the best from both :)

@a0viedo cool, I commented on your pull request.


Read Promotion

As a Customer
I need to read the promotion
So that I can apply the promotion to my total
Details and Assumptions

The customer is aware of the promotion

Acceptance Criteria
Given the promotion is valid
When the customer is ready to purchase
Then the promotion is executed

Currently a pull request. Updated routes.py file for reading a promotion. In the Get Index section of the file.


[24.05] php83: 8.3.14 -> 8.3.15

ChangeLog: https://www.php.net/ChangeLog-8.php#8.3.15 (cherry picked from commit 1f57576570725394c1f22eec4ec863338b426202)
cc @NixOS/php
Backport of #367151.

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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/)
25.05 Release Notes (or backporting 24.11 and 25.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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

So, we backport everything until 24.05 ?

So, my personal stance is: patch-level updates fit our backporting criteria and 24.05 is still supported until Dec 31, so I make sure backportable changes get backported :)


Update to version 4.0.1

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

@proinsias any chance you could merge this?

@conda-forge-admin please rerender


Added User Email to Claims

I thought about adding UserName but for now UserEmail is the most used.

I think you can use Subject Id for UserEmail so I'm closing this Pull Request.

I think you can use Subject Id for UserEmail so I'm closing this Pull Request.


What's the project status?

Hi!
First of all - awesome idea, exactly the solution we need. Thank you for coming up with this!
I wonder what's the status of the project? I see the only release was RC and already some time ago, but at the same time there is something going on on dev branch regularly - so I guess it's not dead, just release cycle is very long? Or was it just some kind of PoC? Do you recommend using it in production environments? Do you know/recommend any alternatives to Drago?
Additionally, I was able to configure it only after accidentally finding out "demo" directory. Before, I had to scan all of the source code to find out what are the possibilities, configuration options etc.. Unfortunately, docs page is empty. Are you looking for contribution when it comes to the documentation?
After playing with Drago a little bit, I'd also have some issues to open - but as with the documentation, I'm not sure whether you are expecting it or not.
Looking forward to hear from you and, once again - great project!

Hi!
Many thanks for the feedback!
I'm sorry to hear you faced difficulties in getting the configurations right. Please understand that the project is still under active development, and despite the limitations when it comes to manpower, we do want to reduce the release cycle as much as possible.
As you have probably seen, the current version still lacks some advanced security features which might limit its applicability in more serious production environments. Additionally, there are no well-defined process to allow for a smooth update of the agent, which will certainly jeopardize your experience, especially in such environments. As we plan to use the tool ourselves in production environments, this will definitely be possible in the future.
That said, we are preparing a new release, which includes significant refactoring, and a bunch of new functionalities targeting production environments. More specifically:

We replaced Postgres with Etcd as the primary storage backend. Etcd will be embedded in the Drago server, hence allowing operation in cluster mode;
We added an ACL system for fine-grained access control. The HTTP API was modified to expose endpoints for issuing and managing tokens and policies. The whole experience was heavily inspired on Hashicorp Nomad.
We did some major refactoring on the client, mostly on the node registration and reconciliation mechanisms in order to make them more secure and robust (if you're curious, please check the dev branch);
We're working on supporting plugins (for IP leasing, meshing, discovery, anomaly detection, as well for integrating with other tools we're developing). The idea is to move all non-core functionality to a plugin. As it requires a bit more work, this is probably not going to be ready in the next version, though.

We definitely welcome any kind of contribution. If you are willing to help, just let us know what you'd like to do, and let's discuss how to proceed 😊. Also, If you're OK with sharing a bit more of your use case and specific needs, that would be of great help, as it would help us prioritize features.
Finally, regarding similar projects, if you're using k8s, check out kilo. If all you need is a tool for generating static WireGuard configurations for your nodes, there are (plenty of solutions)[https://github.com/search?q=wireguard+configuration] out there. If you all you want is a VPN based on WireGuard, check out Tailscale.
Looking forward to hearing back from you!

Hi!
Many thanks for the feedback!
I'm sorry to hear you faced difficulties in getting the configurations right. Please understand that the project is still under active development, and despite the limitations when it comes to manpower, we do want to reduce the release cycle as much as possible.
As you have probably seen, the current version still lacks some advanced security features which might limit its applicability in more serious production environments. Additionally, there are no well-defined process to allow for a smooth update of the agent, which will certainly jeopardize your experience, especially in such environments. As we plan to use the tool ourselves in production environments, this will definitely be possible in the future.
That said, we are preparing a new release, which includes significant refactoring, and a bunch of new functionalities targeting production environments. More specifically:

We replaced Postgres with Etcd as the primary storage backend. Etcd will be embedded in the Drago server, hence allowing operation in cluster mode;
We added an ACL system for fine-grained access control. The HTTP API was modified to expose endpoints for issuing and managing tokens and policies. The whole experience was heavily inspired on Hashicorp Nomad.
We did some major refactoring on the client, mostly on the node registration and reconciliation mechanisms in order to make them more secure and robust (if you're curious, please check the dev branch);
We're working on supporting plugins (for IP leasing, meshing, discovery, anomaly detection, as well for integrating with other tools we're developing). The idea is to move all non-core functionality to a plugin. As it requires a bit more work, this is probably not going to be ready in the next version, though.

We definitely welcome any kind of contribution. If you are willing to help, just let us know what you'd like to do, and let's discuss how to proceed 😊. Also, If you're OK with sharing a bit more of your use case and specific needs, that would be of great help, as it would help us prioritize features.
Finally, regarding similar projects, if you're using k8s, check out kilo. If all you need is a tool for generating static WireGuard configurations for your nodes, there are (plenty of solutions)[https://github.com/search?q=wireguard+configuration] out there. If you all you want is a VPN based on WireGuard, check out Tailscale.
Looking forward to hearing back from you!

Thanks for quick answer :)

we are preparing a new release
Great to hear that!
I think maybe what I'm missing (and that's why I had slight impression that the project is abandoned) is some kind of transparency when it comes to development - there are no issues and/or PRs documenting the plans, bugs, progress etc.. But of course it's completely up to you and your workflow - just saying because maybe more people had the same impression as I did.

just let us know what you'd like to do
I could help with the documentation, but as more changes are still to come, I'm not sure it makes sense to start right now. Although, maybe with some basics that will not change very soon?

a bit more of your use case and specific needs
We basically run multi-cloud setup (AWS, Hetzner Cloud, Google Cloud)

Thanks for quick answer :)

we are preparing a new release
Great to hear that!
I think maybe what I'm missing (and that's why I had slight impression that the project is abandoned) is some kind of transparency when it comes to development - there are no issues and/or PRs documenting the plans, bugs, progress etc.. But of course it's completely up to you and your workflow - just saying because maybe more people had the same impression as I did.

just let us know what you'd like to do
I could help with the documentation, but as more changes are still to come, I'm not sure it makes sense to start right now. Although, maybe with some basics that will not change very soon?

a bit more of your use case and specific needs
We basically run multi-cloud setup (AWS, Hetzner Cloud, Google Cloud)

Thanks again for the valuable feedback! We will definitely try to increase the transparency in the project. In this direction, we have just created a Gitter channel, and we'll be available there as well. Hopefully this will help foster discussions about the project.

I could help with the documentation, but as more changes are still to come, I'm not sure it makes sense to start right now. Although, maybe with some basics that will not change very soon?

Feel free to edit the docs and submit a PR. I agree it is a good idea to start with the basics, and then complement it after the changes are released and we reach a more stable state.

Thanks again for the valuable feedback! We will definitely try to increase the transparency in the project. In this direction, we have just created a Gitter channel, and we'll be available there as well. Hopefully this will help foster discussions about the project.

I could help with the documentation, but as more changes are still to come, I'm not sure it makes sense to start right now. Although, maybe with some basics that will not change very soon?

Feel free to edit the docs and submit a PR. I agree it is a good idea to start with the basics, and then complement it after the changes are released and we reach a more stable state.

Hi, I took some time to structure the project docs, and will start working on documenting everything, starting with the features. It's online at seashell.github.io/drago, with the source available in the dev branch. Feel free to share your thoughts and suggest any changes you see fit.


Login through beeper.com fails with no messages

Attempting to login through my home server of beeper.com does not work and there's no indication of why.

Hi, thanks for opening an issue!
Could you provide more information about the issue? What version are you running? Were you able to enter your credentials but after the app goes blank? Did you login with username/password or something else? Sometimes it can take a while for the initial sync to run so you may not see anything for a few minutes depending on how many rooms you're in and the size of those rooms.

I logged in using my access token. Immediately after hitting "log in with access token", it went to the "recent conversations" screen. I left that for 10 mins to see if any conversations synced. When I came back, nothing changed, and I clicked "inbox" and the app crashed.
I'm on version 0.2.0 (1)


mongodb extension required to setup monolog after cloning the repo

Monolog version 2.3.1
In resume, just cloned the repo, then executed composer install and I got th following output:
No lock file found. Updating dependencies instead of installing from lock file. Use composer update over composer install if you do not have a lock file.
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - mongodb/mongodb 1.8.0 requires ext-mongodb ^1.8.1 -> it is missing from your system. Install or enable PHP's mongodb extension.
    - mongodb/mongodb 1.9.0 requires ext-mongodb ^1.10.0 -> it is missing from your system. Install or enable PHP's mongodb extension.
    - Root composer.json requires mongodb/mongodb ^1.8 -> satisfiable by mongodb/mongodb[1.8.0, 1.9.0].

To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/7.4/cli/php.ini
    - /etc/php/7.4/cli/conf.d/10-opcache.ini
    - /etc/php/7.4/cli/conf.d/10-pdo.ini
    - /etc/php/7.4/cli/conf.d/15-xml.ini
    - /etc/php/7.4/cli/conf.d/20-calendar.ini
    - /etc/php/7.4/cli/conf.d/20-ctype.ini
    - /etc/php/7.4/cli/conf.d/20-curl.ini
    - /etc/php/7.4/cli/conf.d/20-dom.ini
    - /etc/php/7.4/cli/conf.d/20-exif.ini
    - /etc/php/7.4/cli/conf.d/20-ffi.ini
    - /etc/php/7.4/cli/conf.d/20-fileinfo.ini
    - /etc/php/7.4/cli/conf.d/20-ftp.ini
    - /etc/php/7.4/cli/conf.d/20-gd.ini
    - /etc/php/7.4/cli/conf.d/20-gettext.ini
    - /etc/php/7.4/cli/conf.d/20-iconv.ini
    - /etc/php/7.4/cli/conf.d/20-json.ini
    - /etc/php/7.4/cli/conf.d/20-mbstring.ini
    - /etc/php/7.4/cli/conf.d/20-pdo_sqlite.ini
    - /etc/php/7.4/cli/conf.d/20-phar.ini
    - /etc/php/7.4/cli/conf.d/20-posix.ini
    - /etc/php/7.4/cli/conf.d/20-readline.ini
    - /etc/php/7.4/cli/conf.d/20-shmop.ini
    - /etc/php/7.4/cli/conf.d/20-simplexml.ini
    - /etc/php/7.4/cli/conf.d/20-sockets.ini
    - /etc/php/7.4/cli/conf.d/20-sqlite3.ini
    - /etc/php/7.4/cli/conf.d/20-sysvmsg.ini
    - /etc/php/7.4/cli/conf.d/20-sysvsem.ini
    - /etc/php/7.4/cli/conf.d/20-sysvshm.ini
    - /etc/php/7.4/cli/conf.d/20-tokenizer.ini
    - /etc/php/7.4/cli/conf.d/20-xmlreader.ini
    - /etc/php/7.4/cli/conf.d/20-xmlwriter.ini
    - /etc/php/7.4/cli/conf.d/20-xsl.ini
    - /etc/php/7.4/cli/conf.d/20-zip.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Do we really, really, need this extension in order to satisfy the requirement to contribute to the project? - even though this question I think this is a bug in the setup of the project, as I believe this non-neccesary extension should not block contributors to install monolog locally.

Yes we kinda do as mongodb/mongodb requires it.. So without it we can't run the tests against mongodb/mongodb. I realize it's a bit annoying but you can also run composer install --ignore-platform-req=ext-mongodb

thanks for the reply

maybe some notes in the README might help future developers :)


Font / Font Size

Firstly, thank you so much for this script.
I need to change the font family and font size. Is there a chance to tweak them?

 These options were mostly for debugging, so I may remove them in the future and implement proper style options like in file-browser.

Can the size of the search box be increased?

That box is controlled by mpv-user-input. It has the same settings as console.lua, just name the config file user_input.conf instead of console.conf. I haven't actually tested those options, but they should work. Play around with them and let me know.

Changing the font of the list in ASS and the user input worked fine for me. Thank you for this script.


Improve missing JDBC driver error for lookups

Description
If the JDBC drivers are missing from the lookup extensions, throw an exception that directs the user how to resolve the issue. This change is a follow up to #8825 and will help users understand what to do when the postgres JDBC driver version is later updated to address security vulnerabilities.

This PR has:

[x] been self-reviewed.
[x] added documentation for new or modified features or behaviors.
[x] added unit tests or modified existing tests to cover new code paths.

Travis failure is due to flaky EmitterTest.


how long may GPU version of C#/C++/C be available?

we are planing a windows desktop project which need the GPU versioin of C#/C++/C, any language would be great. The status now is coming soon or TBD. We would want to know, how long we can expect to use the features.
And last, Great thanks for your work!

@xinheblue you should be able to build the GPU version of onnxruntime for C/C++ today; you don't have to wait. C# is being currently worked on by @shahasad.

@pranavsharma  thinks, that's great


Flags falsely on a googleAnalytics ID

Message:
"UA-37662566-1" does not match "(UA-\d{6}-\d)|(G-\w+)"Even Better TOML
My Google Anayltics ID is correct and I verified it in the portal. The rule/regex is invalid

Any spec reference? And PR welcome.

Weirdly Google seems to be non-specific, I got that from querying various LLMs/searches.
I was going to do a pull request but had trouble finding (even with a search) where that regex string is located.

What file are you editing? Mostly you should PR to https://github.com/schemastore/schemastore


WIP #197: add rules to interpret number literals as character sequences

WIP #197: add rules to interpret number literals as character sequences
I think this fixes the problem, but this isn't the final test case yet, so, WIP.

Closed in favor of #200.

Actually, I see that #200 breaks #141, so I leave my solution in the race.

There is a problem with regexes like [01-89] which mean one of 0, 1-8, 9.  If we already have numbers (NUM), then this is hard to parse.  Maybe NUM should only be lexed inside the multiplication brances {nnn,mmm}, using lexer states.

Closing in favor of #202.


Oauth Get Token Update

This removes the duplicate implementation of the OfflineToken and OnlineToken classes.

Do we still want to move forward with this PR? @hillairet

Since this is not starting from a clear issue and I'm not sure where it was going, let's just start over.


Input should be event based

Use events to handle input, game logic, etc.
One of the first practical usages would be to react upon keyboard and mouse events. Consider this task done when:

game can quit using keyboard key event
scrolling is done using mouse events hitting border of screen

done, thx @arjenvanderende for reviewing


Format dates to ISO8601 in ingestion

Adds arguments to convert_data_to_flat function for the current date format and timezone.
On ingestion dates/datetimes are converted to the ISO8601 standard.
Missing:

validation checks within FHIRflat for ISO compatibility when resources are created

Partially addresses #32 , #33

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

Project coverage is 92.23%. Comparing base (a029781) to head (829830c).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #37      +/-   ##
==========================================
+ Coverage   92.08%   92.23%   +0.14%
==========================================
  Files          39       39
  Lines        1580     1610      +30
==========================================
+ Hits         1455     1485      +30
  Misses        125      125

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


Youtube video about an exciting application of Tigris Vector Search feature

If you know an exciting application of Tigris' Vector Search feature and want to tell people about it, let's make a video!
It could be a tutorial, a description of a use case, or a talk about the technology.
We will help you with any technical questions and provide you with free access to Tigris Cloud.
Bounty details

Comment below to let us know you're interested, and we'll get back to you to start.
We will reward multiple submissions for this content bounty.

Acceptance criteria

should be in Tigris, Next.js, Typescript 🧨 TNT stack 🧨
should be deployed to either Fly, Vercel, or Netlify
should showcase an application of vector search with Tigris
should cover setting up & deploying the app as well as using Tigris Cloud
can be with or without your face in the video
should include a link to the public repository (we'll feature it in Tigris Data Community)

Getting started

Quickstart: Vector search with OpenAI and Tigris
Concept: Vector Search
Guide: Using Tigris with your Next.js project
Deploying your app

Guide: Deploying to Vercel
Guide: Deploying to Netlify

Ideas
Tigris is a general-purpose vector search engine. It can be used for a variety of use cases, including:

Similarity search: You can generate vector embeddings from your documents and index and search through the vectors using Tigris to power your similarity search application.
Product recommendations: You can store product information and embeddings in Tigris and use it to power your product recommendations for e-commerce.
Hybrid search: You can combine vector search with attribute filtering in Tigris for more relevant search results.
Image search: You can generate vector embeddings for image data and index them in Tigris to power your image search application.
Generative question answering: You can use Tigris to index relevant context in the form of vector embeddings and use it to supplement a generative model to generate more accurate answers

Examples could include showcasing a product catalog search or a movie search, or a reviews search. Feel free to get creative!
Examples
📸 Get started with the TERN Stack: Tigris, Express.js, React, and Node.js
📸 Build a Data-Driven Site with Astro.build and Tigris

/content

/attempt #23


chore: eslint fixes

Some ESLint related fixes

fix globals (is a top-level property, not a rule)
add overrides for Mocha globals
add lint script
add eslint dependency
add elsintignore for minified/built files
ignore pnpm-lock.yaml file
add editorconfig to enforce tabs in IDEs

Still have a ton of errors (including many that can be autofixed), but this might help orient for cleaning up.
Note that the test Empty strings should be read as empty strings, not 0 in /test/test621.js is failing for me, mentioning a 404 (though I didn't change source code, and bumping the timeout didn't help).
I was also only able to install using pnpm, not yarn or npm. Getting this error:

error An unexpected error occurred: "ENOENT: no such file or directory, copyfile '/Users/brett/Library/Caches/Yarn/v6/npm-escape-string-regexp-4.0.0-14ba83a5d373e3d311e5afca29cf5bfad965bf34-integrity/node_modules/escape-string-regexp/index.d.ts' -> '/Users/brett/alasql/node_modules/eslint/node_modules/escape-string-regexp/index.d.ts'".

Please run npx yarn to update the dependencies.

Looks like your yarn cache folder got out of sync. I suggest removing and installing yarn, or see if this works yarn cache clean && yarn install

The latter was sufficient in this case, thanks!


🙃 - Complete rewrite!

⚠ - Warning!

For the 'public' folder to work, use either Netlify or any other hosting service which allows custom URL directories. Merging doesn't work if you don't use any of the above.

Overview:
Quality of life:

⬆ - Moved the social icons to the upper right corner.
🗺 - Made the navigation bar a little cleaner.
🗣 - Fixed some typos and grammar mistakes.
✨ - Added particles to the site using Particles.JS.

Optimization:

🔐 - Removed HTTP redirection using JS.

You should rather do this using CloudFlare's setting to automatically redirect HTTP to HTTPS.

okay, that's cool, but... Please send me your rewritten design preview.
Thank you.


timeout error with SDK

I'm trying to process a medium large file (~300MB) but keep running into this error.
Edit: it seems to timeout on hume's side after 30 seconds, despite my timeout setting of 3600 on the BatchClient - see code below
client = HumeBatchClient(
api_key="<my_key>",
timeout=3600. # for testing reasons
)
Any help is appreciated.
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.hume.ai', port=443): Max retries exceeded with url: /v0/batch/jobs (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:2396)')))

Hi!
Were you successful doing this same call with a smaller file? I ask as it looks like the issue you are seeing is related to SSL not the timeout.
Could you also share a bit about your environment? Are you doing through a jupyter notebook or a conda environment?

It looks like you found your way to our support Discord channel. Closing this issue in favor of communicating there.


Duration limit customisation

🐣 Is your feature request related to a problem? Please describe.
I'm confused when I see long duration in stats and it just gone.
💡 Describe the solution you'd like
I would like to have an option to set another duration limit. After code analysis, I know the limit is 30 minutes.
The perfect solution would have dedicated section in Settings panel, between Events and Permanent Tokens sections.
The section should have nice UI, including:

integer value range input from 1 to 60
switch/select for unit - minutes or hours

As far I noticed, the change will have an impact in API resolvers:

Facts.activeVisitors
DomainStatistics.durations

❓ Describe alternatives you've considered
Minimal solution could be by adding environment variable.
But I'm not a big fun of this approach as it's not intuitive and needs documentation reading.
📋 Additional context
In my case, I have tutorial like contents on my pages so the reader could need more time to spend at my pages than half an hour.
This caused by they need to read an article first, understand it and try to apply the solution to own project.
It's time consuming and I feel 30 minutes is too short for this scenario.
I need to change it, perhaps a few times, and figure out the best duration limit for me.
I can involve to implement this feature :)

I think it's a good idea to make more generic settings. It should be called constraint in both cases, database model and GUI label.


Add Logical Boolean Operations

When solving mixed integer programs with some binary variables, it is often desirable to use logical Boolean operators like OR, AND, NOT, XOR (and also a few more complex ones).
These can all be expressed as MILP constrains, as shown e.g. here. These are simple transformations but are amenable to errors, and using operator overloading or named functions for them would simplify and clarified user code.
I think cvxpy would benefit from such an addition.

I agree that those operators would be convenient. It's also the kind of basic rewriting that cvxpy is designed to accommodate.
There are several design decisions to be made, however. One clear decision is whether such functionality would be exposed by operator overloading, or whether we would use named functions (perhaps in a namespace like cp.logicals). There are also more subtle points, such as how cvxpy verifies validity of inputs to those functions. For example, if x is a continuous variable and y is an integer, then we would probably want to raise an error if someone wrote cp.logicals.AND(x,y).
Due to bandwidth limitations of cvxpy developers, I think we would need another volunteer in order to seriously explore this possibility in the short to medium term. If anyone (including you @adishavit ) would be interested in contributing in such a way, please indicate so on this thread.

I’m not a Python expert (and quite busy) but am certainly willing to learn more about how to contribute.
I’d like to see a discussion on the design decision here first. I’ve never checked cvxpy internals.
Are the dev docs? Internals docs?

I’m guessing named functions can be added first and any overloaded operators if/when added may just call the names functions.
I would like to have the option to incrementally build an expression like x0&&x1&&...&&xn. Like an &&= operator.

@adishavit we're in the process of merging in some significantly improved documentation for contributing to CVXPY (#1020). This particular situation is more like contributing a transform. I contributed a pretty complicated atom + transform about six months ago (#860). In your case I think it would be a much simpler transform. You could define the functions in a file cvxpy/transforms/logic.py, with more or less each function being an independent implementation (no strict need to organize everything under a common class).

Looking at the simpler transforms they seem relatively straight forward though I don’t really understand if they must support any particular API.
The documentation I saw is very partial and confusing. Does you newer documentation have more details?
Is there a necessary and sufficient API the must be conformed to to create a transform?

There isn't a necessary and sufficient API, actually. From a practical perspective I think anything can go in cvxpy/transforms unless there's a definitively better place to put it. Right now all discrete constraints are enforced by properties assigned to a Variable object (i.e. there is nocvxpy/constraints/bool.py or cvxpy/constraints/integer.py). So I suppose -- in this particular case, one API requirement is that an end-user can't be provided with a single classical CVXPY Constraint. To be concrete, let's say the API is something like
val = cvxpy.transforms.logic.xor(expr1, expr2)

In this case the user can't updateconstrs.append(val) and then call prob = Problem(objective, constrs), because CVXPY will get to val when iterating over the Problem's constraints and then not know what to do with val.
One option is for these functions to return lists of CVXPY constraints. So an end-user could do something like
# constrs = [...], objective = ...
val = cvxpy.transforms.logic.xor(expr1, expr2)
constrs.extend(val)  # or constrs += val
prob = cvxpy.Problem(objective, constrs)

That has the advantage of being pretty simple to implement. However, it has a disadvantage of making it hard to interact with the abstraction of val as an XOR constraint down the line. Do you think that disadvantage would be severe?

I'm not sure I quite see the distinction unless you mean that in the former case val is a Variable and in the latter an actual constraint.
In any case, what you suggested is not so far from what I already wrote in my own code:
def cast_non_neg_bounded_integer_to_boolean(x: cp.Variable, upper_bound: int):
    """
    From: https://cs.stackexchange.com/a/12118/1813
    Cast to boolean (version 1):
        Suppose you have an integer variable x, and you want to define y so that y=1 if x≠0 and y=0 if x=0.
        If:
            0 ≤ x ≤ U
        then you can use the linear inequalities:
            0 ≤ y ≤ 1,
            y ≤ x,
            x ≤ Uy
        Note: this ONLY works if 0 ≤ x ≤ U.
    """
    y = cp.Variable(1, name=f"Is_{x.name()}_non_zero", integer=True)
    return y, [0 <= x, x <= upper_bound,
               0 <= y, y <= 1, # Would these be implied by specifying y w/ boolean=True
               y <= x,
               x <= upper_bound * y]

Here I return both new variable and the additional constraints.
IIUC, this does not have the disadvantage you are referring to. The external code may use and compose y into other/larger expressions and extend the constraints with the newly added constraints.

Hi everyone, I have the same issue. Have logical boolean operations been implemented?

Hi everyone, I have the same issue. Have logical boolean operations been implemented?

I have something along these lines, though I'm not sure where/how to add it to CVXPY:
def logical_and(y: cp.Variable, xs: List[cp.Variable or int or bool]):
    """
    define y to be the conjunction (Logical AND) of all the xs:

        y == x0 ∧ x1 ∧ ... ∧ x2

    When there is just one x0 then y==x0

    See:
    - http://yetanothermathprogrammingconsultant.blogspot.com/2016/02/xor-as-linear-inequalities.html?m=0
    - https://cs.stackexchange.com/a/43884

    :param y: a cp.Variable(1, boolean=True)
    :param xs: List[cp.Variable(1, boolean=True)]
    :returns: the constraints required for getting this relationship
    """
    assert all([x.attributes['boolean'] for x in xs if isinstance(x, cp.Variable)] + [y.attributes['boolean']])
    n = len(xs)
    expr = sum(xs) - n * y
    return [0 <= expr, expr <= n - 1]

# take a list of variables or expressions and return a boolean variable representing their conjunction, i.e. logical AND.
def and_(xs: List[cp.Variable or int or bool], cstrs: list):
    y = cp.Variable(1, boolean=True)
    cstrs += logical_and(y, xs)
    return y

Note that you must pass an in-out list of constraints to the function.
The operator or_ could be implemented similarly.

I have something along these lines, though I'm not sure where/how to add it to CVXPY:
def logical_and(y: cp.Variable, xs: List[cp.Variable or int or bool]):
    """
    define y to be the conjunction (Logical AND) of all the xs:

        y == x0 ∧ x1 ∧ ... ∧ x2

    When there is just one x0 then y==x0

    See:
    - http://yetanothermathprogrammingconsultant.blogspot.com/2016/02/xor-as-linear-inequalities.html?m=0
    - https://cs.stackexchange.com/a/43884

    :param y: a cp.Variable(1, boolean=True)
    :param xs: List[cp.Variable(1, boolean=True)]
    :returns: the constraints required for getting this relationship
    """
    assert all([x.attributes['boolean'] for x in xs if isinstance(x, cp.Variable)] + [y.attributes['boolean']])
    n = len(xs)
    expr = sum(xs) - n * y
    return [0 <= expr, expr <= n - 1]

# take a list of variables or expressions and return a boolean variable representing their conjunction, i.e. logical AND.
def and_(xs: List[cp.Variable or int or bool], cstrs: list):
    y = cp.Variable(1, boolean=True)
    cstrs += logical_and(y, xs)
    return y

Note that you must pass an in-out list of constraints to the function.
The operator or_ could be implemented similarly.


Permit setting of grafana_package prefix without using extra-vars

It's not currently possible to set grafana_package outside of using extra-vars because it's set by role vars.
If I want to install the grafana-enterprise package I currently must override the yum repo template, but then set grafana_package using extra vars. It would make it simpler for users to install the enterprise binaries if there were a flag in the normal vars for this.
If this seems like a reasonable ask, I'm happy to open a PR.

Role version:
0.17.0

Ansible version information:
ansible 2.8.13

Seems good to me, please open a PR.

This role has been deprecated in favor of a the grafana-ansible-collection collection.


Consider adding a virtual env and auto-pip install option start start.sh?

Consider having a script that automagically creates a python virtualenv for you and loads the package requirements. A small but useful thing to keep the user's python environment 'clean'. I have a small project that I use this script for:
#
# bootstrap the virtual env if necessary
#
if [ -f "v/bin/activate" ]
then
    echo virtual env already created
    source v/bin/activate
else
    virtualenv v
    source v/bin/activate
fi

# Just install dependencies by default to pick up any changes
pip install jinja2
pip install jsl
pip install jsonschema
pip install rethinkdb

#
# run the data server
#
python ucdataserver.py

Where I explicitly invoke pip install you could use the requirements.txt file instead.

We already have setup.sh for this, start.sh will activate virtualenv created by setup.sh .. Does this help ?

Yes! That helps. I didn't notice that setup.sh and start.sh had been modified to do that. Cool!


Sema: Use the availability of the extended nominal as a floor for the availability of extensions

Many API libraries contain public extension decls that don't specify availability because they introduce additional members to the extended type in the same releases that the extended type was declared. Others contain extensions where the extension itself does not have declared availability but each of the members do. In both cases, the code works as written because extension members cannot be used without referencing the extended type. With -target-min-inlining-version min specified, though, these extensions are diagnosed because the availability floor for public decls is lowered below the deployment target.
These changes in this PR make the compiler use the availability of the extended nominal as a floor when checking availability in an extension decl to avoid unnecessary diagnostics for API libraries.
Resolves rdar://93630782

@swift-ci please test

@swift-ci please test


Add SATA tests

We have no SATA tests, we should add some.

@WiktorG351 Can you link PR to this issue? i think there is some.

@macpijan
Here is a PR that adds SATA tests
and here is link with logs


So... This happened...

List indexing isn't a thing anymore! :D

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.

― Antoine de Saint-Exupéry

i would prefer b.get(0) (with your chosen token instead of . if required) but it's not a blocker.


Update TestingFrameworks.md

Summary
I added GatsbyJS test with Jest link for someone who visited this page and want to learn more about how GatsbyJS and Jest work.
Test plan
No test need for this edited.

Codecov Report

Merging #8363 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #8363   +/-   ##
=======================================
  Coverage   62.27%   62.27%
=======================================
  Files         266      266
  Lines       10728    10728
  Branches     2609     2609
=======================================
  Hits         6681     6681
  Misses       3462     3462
  Partials      585      585

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7e1e3f8...8374347. Read the comment docs.

@SimenB Thanks for your help with this pull req.


Collector config server

As we rollout Hygieia throughout our organization, we find ourselves having to update property files to account for Jenkins or Sonar servers to pull data from, and restart corresponding applications.
This enhancement enables maintaining this list of servers in a git repository (external from the application) and have Hygieia always pull the latest list of servers in every run without having to do any restart.
I do know there are other collectors that could take advantage of the collector-config-server. I first want to see if there's interest in this enhancement. If so, I could either apply it to the other collectors or have the community consume the collector-config-server as needed. I'm cool with either approach.

@Mpluya the build is failing because of Travis CI build log limitation. The fix is coming with https://github.com/capitalone/Hygieia/pull/1137

@tabladrum thanks :)

@Mpluya can you rebase? The 1137 has been merged.

@tabladrum rebase done. Thanks for the fix on limited build log.

I am closing this pull request, given the discussion in #1409. The changes in here will be leveraged for the new pull request that @rob-miller-777 and @brennanananan are working on to move the mongo related properties to the cloudConfigServer.

I am closing this pull request, given the discussion in #1409. The changes in here will be leveraged for the new pull request that @rob-miller-777 and @brennanananan are working on to move the mongo related properties to the cloudConfigServer.


Kibana filtering for APP Unique ID

To ensure the test-ability of SSP control narratives for systems on cloud.gov, I'm requesting the following feature.
A kibana filtering command to show that logs exist for a particular APP Unique ID. This is needed because SSP testers are given Org Auditor roles in cloud.gov, and the kibana interface makes it hard to find the logs for a particular app.

As additional context for when we study this story: this sounds like it would also be helpful for the dashboard! It would allow dashboard app pages to link directly to the logs for the app you're looking at. Currently the dashboard app page links to the general logs site, so the reader has to dig a bit to find the logs they want. cc @adborden / @msecret

To search by app id you can enter the following query: @cf.app_id:":app-guid:"
If you prefer the more human friendly org/space/app name identifiers you can query for those as well; for example: @cf.org:"cloud-gov" AND @cf.space:"test" AND @cf.app:"wstest"
Both of these queries are used by putting them into the search box at the top of the kibana interface:

Most apps use some form of blue/green deploy, so the app guid will actually change on every deploy. Just want to make sure that's not an issue for this use case, otherwise, I would suggest using org/space/app name to uniquely identify an app.

Good catch @adborden . app name would be lovely.

Going to close this one as addressed. Thanks for asking, Holly!


feat: stackable outlets

With this PR we introduce multiple outlets for a single position, aka stackable outlets. Can be useful if multiple templates and/or components are defined for a single position.
closes #3462

Also is this not some form of behavioral breaking change? If a use has multiple outlet refs by accident now he will see something different.

Also is this not some form of behavioral breaking change? If a use has multiple outlet refs by accident now he will see something different.

Yes, it is. But it's a very rare case, and it would be buggy implementation, hence I vote for not making our code more complicated.


osvrClientReleaseAutoStartedServer fails to close the OSVR server

osvrClientReleaseAutoStartedServer() fails to actually stop an auto-started server.  To reproduce, merely add a call to that function to the end of the auto-start C example before the end of main.  The program will quit but the server will still be running.  Tested on multiple independent workstations in Windows 10.

osvrClientReleaseAutoStartedServer() shuts down the server on Android platforms, but leaves it running on all other platforms.
The intended use of JointClientKit is fairly narrow. May I ask why you're trying to start and stop the server from within your application? There may be a better solution or it may point to a shortcoming of the JointClientKit API.

Perhaps the naming is misleading. The osvrClientReleaseAutoStartedServer method is intended to clean up any resources (objects, threads, etc...) allocated in the client by the corresponding call to start the server. On non-android platforms, auto-starting the server doesn't leave any resources in memory or start any threads in the client, so the osvrClientReleaseAutoStartedServer call has nothing to do. On Android, osvrClientReleaseAutoStartedServer stops the in-memory plugin host and server threads.
There are no immediate plans for client-side API to shut down or restart the OSVR server in the general case. The auto-start API is meant to be opaque and implementation specific to allow multiple OSVR deployment scenarios with the same client code. Server management, e.g. managing multiple distributed servers in wide-area tracking use-cases, or changing configuration and re-starting the server, is out of scope for osvrClientKit.

While developing the software, we haven't set up the OSVR server as a background service, and for various implementation-specific reasons we can't rely on it being pre-configured to do so.  This necessitates starting the OSVR server from our application; the desired behavior of shutting it down is merely a desire to  be a good neighbor and clean up resources when we're done with them.  Furthermore, right now I don't see a way to start/host the OSVR server inside our application natively (that would of course be ideal).

For OSVR Client applications, we don't recommend attempting to shut down the OSVR server, as this in and of itself can be disruptive to other applications. By design, the OSVR Client/Server architecture allows multiple clients for a single server, including clients on other machines accessing the server over the network (wide-area-tracking, etc...). In order to discourage one client application from disrupting another, we purposely do not have API to see what other clients are accessing a server, or to shut down the server. After all, shutting down the server while another client is accessing it will cause those other clients to stop functioning. From a UI standpoint, we provide a tray application separate from any OSVR Client application, that the user can use to start and shutdown the server or see if it's running.
Server process lifetime management is therefor outside the scope of the ClientKit, by design. If you have a scenario that requires you to manage the server startup and shutdown (and typically in these scenarios you know ahead of time exactly what client applications will be running), you'll need to implement it yourself per your specific needs. The auto-start API is not intended for this purpose.

Thanks.


Annotations,labels and enabled flags on post install upgrade jobs

Motivation
Add annotations and labels on post install and upgrade jobs, also use enabled flag on the jobs values file to toggle the job creation.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Can I please get someone to take a look at this one?

Thank you @RafalKorepta, also the workflow is waiting for approval to run, could you please take a look at that as well.


Header with Constraint Layout

Hello,
It's possible to show multiple info in the header view? I try using a Constraint layout with two textviews but they are not show.
If I put text on the textview at change this text with the proper header text if the new text is smaller than previous text It not override widht.
Thank you!

Did anyone find a fix for this wrap_content issue?

There's a comment on stack overflow that says this:
One thing I would add, is that if your header layout has the title text view dynamically sized (e.g. wrap_content), You'd want to run fixLayoutSize after setting the title text as well.
I haven't tested it and haven't played with this library in years.  Please let me know if it works.


alertTitle height issue

You have a issue on sweet_alerts_dialog.dart  file at 83. code block .
When I write 2 lines of alertTitle, the ui getting error . I change the dialogHeight = deviceHeight * (2 / 5); to dialogHeight = deviceHeight * (0.45); and its work but you need solve this issue.

Hey, thanks for reporting this issue. i've never noticed it before. i will fix it.
Thanks


Consider adding asdf .tool-versions file

This would specify the rust version to use and facilitate installation of tool dependencies
Needs additional thought to keep local development and CI pipeline in sync https://github.com/asdf-vm/actions
Also research whether renovate will look at file

After discussing it with Ole, this idea was dismissed for now as it doesn't provide much value


How "Zero-Copy" is ArrayData::Slice?

Describe the usage question you have. Please include as many useful details as  possible.
Array::Slice is documented as a zero-copy view (reference)
But if we peek at the implementation, there indeed appears to be a copy: https://github.com/apache/arrow/blob/bd8fd0cb1b2f61fa80891eb68fce23a062f48e11/cpp/src/arrow/array/data.cc#L137C22-L137C22
Can I interpret zero-copy as "no dynamic allocations?" Or perhaps I am misunderstanding the docs?

 The overhead of splitting ended up being surprisingly large!  Imagine ~300K batches of 300+ columns with just a few rows. We ended up working around this by calling CombineChunks to create larger batches, but this was surprising.
A sloppy repro looks like this: https://gist.github.com/JerAguilon/1517c0ea623efee467ebeaed93e1a3c0
If I profile the above code, I do see that Array::Slice is eating a lot of the overhead:

Component(s)
C++, Integration

Hi, ArrayData::Slice doesn't copy the buffers that store the data, but does copy shared_ptrs that refer to the same buffers, along with other "control" data such as length, null_count and offset. This overhead is unfortunately unavoidable and would be significant if the data buffers are small, just like in your case.

Thanks for clarifying!


typos(lean/main/tactics.lean): some typos

I am more confident with these than with the other PR: they are probably all typos!

Nice! Can you run the Python script to update the markdown files as well please?

If I understood correctly how to use lean2md, this should be done!

Thanks!


Proxy Connection Error

Type: Bug
Whenever I try to browse for extensions, I get an error message saying, "Error while fetching extensions. Failed to fetch." I tried reinstalling the software and resetting my laptop's network settings. This is what is shown in the Developer Tools page:

I have no proxy connections enabled. I have some SSL certificate installed which the IT administrator of my university did.
VS Code version: Code 1.95.3 (f1a4fb101478ce6ec82fe9627c43efbf9e98c813, 2024-11-13T14:50:04.152Z)
OS version: Windows_NT x64 10.0.26100
Modes:

System Info

Item
Value

CPUs
AMD Ryzen 5 5600H with Radeon Graphics          (12 x 3294)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabledwebnn: disabled_off

Load (avg)
undefined

Memory (System)
7.35GB (0.59GB free)

Process Argv
--crash-reporter-id 21ad4711-9a70-4e6f-9451-057564aff545

Screen Reader
no

VM
0%

Extensions: none

Could you install the Network Proxy Test extension (https://marketplace.visualstudio.com/items?itemName=chrmarti.network-proxy-test) and check the output of F1 > Network Proxy Test: Test Connection in VS Code?
If you cannot install the extension through the Extensions viewlet in VS Code, you can use the Download Extension link on the above linked page and then install the downloaded VSIX with F1 > Extensions: Install VSIX....

This is what I got:
Note: Make sure to replace all sensitive information with dummy values before sharing this output.
VS Code 1.95.3 (f1a4fb101478ce6ec82fe9627c43efbf9e98c813)
Network Proxy Test 0.0.13
win32 10.0.26100 x64
Settings:

http.proxy:
http.proxyAuthorization: null
http.proxyStrictSSL: true
http.proxySupport: override
http.systemCertificates: true
http.electronFetch: false
http.fetchAdditionalSupport: undefined

Environment variables:
http_proxy=<IP_ADDRESS>:59608
Sending GET request to https://example.com...
vscode-proxy-agent: PROXY <IP_ADDRESS>:59608
Received error: Failed to establish a socket connection to proxies: ["PROXY <IP_ADDRESS>:59608"]
Retrying while ignoring certificate issues to collect information on the certificate chain.
Sending GET request to https://example.com (allowing unauthorized)...
vscode-proxy-agent: PROXY <IP_ADDRESS>:59608
Received error: Failed to establish a socket connection to proxies: ["PROXY <IP_ADDRESS>:59608"]
Sending GET request to https://example.com using fetch from Electron...
Received error: net::ERR_PROXY_CONNECTION_FAILED
Sending GET request to https://example.com using fetch from Node.js...
Received response:

Status: 200 OK

Sending GET request to https://example.com using fetch from Electron...
Received error: net::ERR_PROXY_CONNECTION_FAILED
Sending GET request to https://example.com using fetch from Node.js...
Received response:

Status: 200 OK

There is a proxy configured PROXY <IP_ADDRESS>:59608 that supposedly runs on localhost. Maybe this is obsolete configuration? Node.js' fetch succeeds because that does not support proxies yet (it will in VS Code 1.96) and ignores the configured proxy.

It's working now, thanks a lot!


Performance: Xml parser allocates a String for every content character in the document.

From XmlDomBuilder.cs:
                case XmlTokenType.Character:
                {
                    var tok = (XmlCharacterToken)token;
                    CurrentNode.AppendText(tok.Data.ToString());
                    break;
                }

This creates a 20-byte string for every character, so should be avoided, as this is the most significant code path in document parsing.
Incidentally, I recently came across this Channel9 talk about how the Roslyn team converted the C#/VB compilers to managed code. It has a lot of great information - including spotting allocations like the one in this issue. I recommend watching it to anyone interested in maximizing managed code performance.
Cheers,

This is due to the specification (please read it carefully). However, in the HTML tokenizer I made a slight perf. optimization, which combines many characters into one (HTML specification also demands spitting out a single token for each character). For XML, however, I did not do that (no focus on XML). In general it requires a lot more thought. It could / should be similar to the implementation in the HTML tokenizer, but since I can't spent time thinking about it, I won't optimize it.
Maybe somebody else wants to do it.
=> Marked as "up for grab".
Remark: The 20-bytes do not hurt (they are thrown away anyway). What hurts more is the GC pressure. I did not watch that specific talk, but I am sure they must have mentioned it. A string has a char[], hence ends up on the heap. If it would have been a struct there would be no problem (besides potentially requiring more bytes per parameter than a simple 8-byte (x64) reference).

Yes, the GC pressure is the main thing. The byte size and object count both matter - the byte count causes the pressure, the number of objects is the complexity of collection.
For users that are interested in parsing, not tokenization (there's currently no way to use the tokenizer since it's internal - I'm opening a separate request for that) this optimization is perfectly legal, correct? Therefore this optimization is quite critical - do you have benchmarks for XML parsing vs other parsers?
[BTW I really recommend this talk - it's one that equals several years of experience. I've already watched it  a couple of times.]

Yes, but byte count doesn't matter that much. The allocation is really expensive. Not only because it needs to be tracked by the GC, but also context switching and synchronization barriers hurt.
The temporary string allocation you are after here could be solved temporarily by providing another method in Node (such as AppendCharacter), but even though it would alleviate the described situation it would not cure it. The cure is as described in the tokenizer. Then character tokens contain a string already and the AppendCharacter method would be obsolete again. That is why I see this as the root cause.
Unfortunately I have no timings on the XML parser, but I guess that what you say is perfectly right - large files (high character to tag ratio) should run slow(er) than the competition.
One remark (just because it came to my mind): A while ago (maybe a year) I tried around with token reusage (especially re-using the character tokens, but also tag tokens etc.). However, the result wasn't significantly better (it was even running slower for small files as far as I can remember). In the end the code readability was significantly worse and there were edge cases and unanswered questions. Hence I rejected it.

What would the problem be with having character tokens that have a character rather than a string?

You still need to create a token / character. Since the case of just a single character (e.g. between tag tokens) appearing is much less likely than multiple characters, optimizing for the latter makes sense.

I'm a bit confused by your answer.
For normal xml like <tag>abcdef</tag> currently the reason you stated that char.ToString() is used is that the character token takes a string, because tokens need to be returned one char at a time, and that tokens have a string field, is this correct? If so I'm asking why not have tokens have a character field instead.

The property Data is exposing the _data character field. Maybe we are not talking about the same thing. The token already has a character field.
What I was saying is that that character field should be a string initially. That string then needs to be used (if it is always filled with just a single character we are back at the original problem), i.e. we need to scan all characters and not just the next one.

OK, that makes sense. Agreed.

Alright I will take care of this. Will be shipped with AngleSharp v0.9.2.

Great. I will try out these fixes as soon as they are merged into master. (I'm not using nuget.)


404 error on jupyterhub (local user)

I've installed nbzip as a local user with --user option.

I've installed the extension as an admin user and then enabled the extension from the local user. It works after restarting the server. I haven't tried restarting the server the first time though.


Track the pollsets of an FD in PO_MULTI mode for pollex.

Each pollset in pollex has a lock, grabbed upon adding an FD
to the pollset. Since this is called on a per-call basis,
there is a flat array caching the FDs of the pollset, to
avoid unnecessarily calling epoll_ctl multiple times for
the same FD.
This has two problems:

When multiple threads add FDs to the same pollset,
we will have contention on the pollset lock.
When we have many FDs we simply run out of cache storage,
and call epoll_ctl().

This commit changes the caching strategy by simply storing
the epfd of pollsets of an FD inside that FD, when we are in
PO_MULTI mode. This results in address in both (1) and (2).
Moreover, this commit fixes another performance bug.
When we have a release FD callback, we do not call close().
That FD will remain in our epollset, until the new owner of
the FD actually call close(). This results in a lot of spurious
wake ups when we simply hand off gRPC FDs to other FDs.
Note that this is a revision on the reverted commit
e83e463b5a14cf0de5d8c9e1197d06f925160111 (PR #17823).
The main change is to track the epfd of the pollset
instead of the pollset pointer, so that if the pollset
is deleted we can still access the FD. It also halves
the size of the cache vector for 64-bit machines.

Tsan failure is #17335

Thank you very much @vjpai for approval!

Thank you for the feedback. Addressed them in Pull #18002


Separate plugin for handling sensubility events. Store events as metrics in Prometheus rather than Elasticsearch

Move storage of container health results as a status metric in Prometheus rather than an event in Elasticsearch. Moving this logic to a separate plugin means we can reduce the complexity of the code in the original events plugin so that it does not need to handle the edge case of sensubility events (I won't do that here).

@pleimer this looks to be checking in sg-core binary. I don't think we want that here. We should probably just mark that in .gitignore as well so that it doesn't get checked in accidentally.

Note: I will be adding smoketest updates in a different PR

Failing unit test is not actually a failure since it's an issue with ordering and is known. Will resolve in the future. Merging.


Parallax in header container

So i want to put a parallax image in the header container
(In the template). But it doesnt work in any way you try.
So if there's a solution please share if not please fix it.
With best regards,
Salty

Hi SaltyPotato,
Here's what I just did and it worked fine first go!

Starter Template

A modern responsive front-end framework based on Material Design

        Get Started

Assuming you have added your css and js, give this a try!

Thanks tmd!
See you are a fellow ubuntu user :)
With best regards,
Salty

Most welcome Salty, have been for a while, but only for coding :)
Regards
Shane (TMD)

@tmd-uk Does your example work when you resize? The image is jumping below the text, was wondering if you are having the same results?

@braginteractive Yeah I found the same results when testing mobile and tablets after the issue was closed. I'm not sure if I fixed it though, but I'll have a look.


How do you determine the omega_0

Thanks for the interesting work.
I want to know how do you determine the value of omega_0?

Hi @zzw-zwzhang,
sorry for my late response.
We treat omega_0 as a hyperparameter. In other words, we select it by trying out different values and checking the validation accuracy.
Cheers,
David

Is its initial choice related to kernel size and channel number?


Crashes on print options screen

Hi, thanks for the plugin!
Unfortunately, once I click "Download" to save the PDF, the printing options menu comes up and it just gets stuck, and after a while I get the option to force quit, so the whole Logseq crashes (see screenshot below). This is on Pop!_OS 22.04 (Ubuntu-based). Not sure where to start looking to troubleshoot this one.

Same behaviour for me, I've seen a pattern: once I embed a YouTube video on a page, Logseq starts not responding. Attaching an example file
logseq-pdf-export test page 1.md

Which option are you using?
On 9 May 2022, 1:54 PM +0400, Nick Ponomar @.***>, wrote:

Same behaviour for me, I've seen a pattern: once I embed a YouTube video on a page, Logseq starts not responding. Attaching an example file
logseq-pdf-export test page 1.md
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

I use Print with Retained Formatting. Awesome feature! It looks great for other pages.

It looks like any "embed" creates this problem, I have tried also embedding a block from other page, same behaviour

Same problem here, Linux Mint, default template, when i click on download button, Logseq crash.
Sometimes i can see the printer dialog box before it crash, sometimes it crash immediately.

Same exact issue here; Ubuntu 22.04 as PopOS.  This looks like a great plugin, and there is no native functionality for PDF exports; really hoping to get this working!

Had the same issue, I managed to "solve it" by disconnecting myself from Wifi: I am tempted to say that this crash is due to the fact that my wifi is connected to my printer (HP something) good luck with that cheers

Had the same issue, I managed to "solve it" by disconnecting myself from Wifi: I am tempted to say that this crash is due to the fact that my wifi is connected to my printer (HP something) good luck with that cheers

This also works for me and I also have a Wifi printer and am also on Ubuntu (22.10). Hope this helps someone!

Interesting. Glad it's fixed. I'll add a disclaimer in the readme.
On 17 Jan 2023 at 2:23 PM +0400, Kevin Hughes @.***>, wrote:

Had the same issue, I managed to "solve it" by disconnecting myself from Wifi: I am tempted to say that this crash is due to the fact that my wifi is connected to my printer (HP something) good luck with that cheers
This also works for me and I also have a Wifi printer and am also on Ubuntu (22.10). Hope this helps someone!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

@mpauper the truth is I have no idea whatsoever how to fix this. Looks to me like an upstream electron issue on Linux. Don't have a Linux desktop to test and I'm using the native electron print command. Hands are a bit tied. Marking this post as help wanted. Hopefully the disclaimer helps some people.

@life5ign because you commented with zero additional information, sending an email to everyone who is subscribed to this. It's seen as something very bad on GitHub and other platforms.

@alxlg  lmfao!  you thumbs downed my question as well.  get a grip man.   This is completely subjective btw; stack overflow open source won't even let me post a question on it, because AI detected that it's subjective.
Also, grouchily and lazily giving a thumbs down doesn't tell the poster any useful information about why you're doing this, and deters them from interacting with the project.  Instead, you could summon the courage to explain yourself.
Finally, for the most important point:  me indicating that I have the same issue on the same distro and version isn't zero additional information   The best you couldn't have done here was suggest that, on this project, some people (you) prefer that a thumbs up on the OP should be given, if you're having the same issue on the same platform, which most people would instantly realize is preference.
  Imagine yourself irl literally doing a thumbs down when someone offered information (yes, the distro) or asked a question.
By the way, your behavior led to three additional emails to the group watching this.  Go ahead, reply to this, and add another!
Now, I'm going to go forget about this.  Thanks to the helpful people on this thread.

The crashes I experienced werer cause by the plugin Banners. Turning it off allowed me to do a Print to PDF successfully with Retainer formatting.
If you use Tabs or Awesome Styler I recommend changing the theme to a default one and turning off TabsI as it results in a better pdf.
Tabs leaves tabs on top of each pdf page:

While Awesome Styler's theme leaves a weird border on the first page of the pdf and a bit of the same border on the second page
First page:

End of first page, beginning of second page

TLDR: Turn off Banners if you use them.

I encounter the same issue with MacOS, plugins other functionalities work great like native. but when embedding video on the page then even with retain formatting option logseq just stuck I have to force quit and relaunch :(


Possible to preserve paths on page refresh?

I'm noticing that whether I use prefs.hashbang = true; or not, when I'm on a route that isn't the root and I refresh the page, places where I use $pattern have become empty. Is there any way to make this persistent?

Hi! Not sure I fully understand the case. Could you please give some code snippets or steps to reproduce this issue? Thanks!


[stable/ignite]

If this is a FEATURE REQUEST, please:

Can we add a feature to hook this chart to just use a storage class and expect to get its storage from there?

I am looking at the template file now... It would be harder to work this into the current layout for the persistence stuff since its very aws specific. I think where we'd want to go with this is having that as an option? and then from there you can specify whether you wish to use an existent storageclass (that can dynamically provision) or create a new storageclass. What do you think?


changed visibility of overlay properties to protected

Hi,
we would like to change the visibility of the Overlay properties and functions to protected.
In the ol-cesium project created a synchronizedOverlay Class which inherits from the original ol.Overlay Class, which will only work after this PR.
We also added a function "getOptions" to retrieve the original options the overlay has been created with.
There is also a discussion in the original Pull request to ol-cesium here: https://github.com/openlayers/ol-cesium/pull/498#discussion_r140455509
Jannes

@jbo023, you should remove the trailing underscores when changing from private to protected. Otherwise it looks good to me.

@gberaudo I removed the trailing underscores

Sorry @jbo023, I did not see your message.
There is now a conflict, could you please rebase your branch?

@gberaudo I rebased and squashed the changes

Thanks @jbo023; it looks good to me. @fredj what do you think about it, is it good to merge?

(waiting for travis)

Travis appears stuck.

@jbo023, could you please try to do the following:
git commit --amend --allow-empty

Then force push the branch.

@gberaudo done

@jbo023 was still stuck, can you please try to push force again?

@fredj done,
if it helps, i could also create a new PR ?

All tests pass locally, merging


Update yarn.lock checksum

Description of Change
Update yarn.lock file due to this issue.
Checklist

[x] PR description included and stakeholders cc'd
[x] tests are changed or added
[x] yarn test passes
[x] yarn lint has been run
[x] git pre-commit hook is successfully executed.
(Please refrain from using --no-verify)
[ ] yarn changeset was run and relevant packages have been updated as a major/minor/patch bump with descriptions
(Determine version update using Semantic Versioning)
[x] relevant documentation is changed or added

Notes
I'm not sure if this will break other yarn version. Let me know if this PR is inappropriate.
© 2021 Thoughtworks, Inc.

Solved in this commit. Thanks!


Can't install

I haven't been able to install asciidoctor-pdf in my system configuration, as opposed to one tailored specifically for asciidoctor-pdf.  I  need this because I need to call /usr/bin/asciidoctor-pdf
(from a mac osx app, asciihelper.
Below is a log of my failure to install: (1) Just try to do it - fail on pdf-core (2) Install pdf-core by itself; (3) retry and fail with message that contradicts the facts: pdf-core was installed,
and Ruby is of version >= 1.9.3.
(1) Just try to do it.
$ rvm system
$ rvm list

rvm rubies

   ruby-1.9.3-p429 [ x86_64 ]
   ruby-1.9.3-p547 [ x86_64 ]
   ruby-2.0.0-p195 [ x86_64 ]
   ruby-2.0.0-p451 [ x86_64 ]
   ruby-2.1.0 [ x86_64 ]
   ruby-2.1.1 [ x86_64 ]
 * ruby-2.1.2 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

$ bundle install
Fetching gem metadata from https://rubygems.org/........
Resolving dependencies...
Enter your password to install the bundled RubyGems to your system:
Using rake (10.3.2)
Using Ascii85 (1.0.2)
Using afm (0.2.2)
Using asciidoctor (1.5.0.rc.6)
Using coderay (1.1.0)
Installing pdf-core (0.2.5)
Gem::InstallError: pdf-core requires Ruby version >= 1.9.3.
An error occurred while installing pdf-core (0.2.5), and Bundler cannot continue.
Make sure that `gem install pdf-core -v '0.2.5'` succeeds before bundling.

(2) Install pdf-core by itself
$ gem install pdf-core -v '0.2.5'
Fetching: pdf-core-0.2.5.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
$ sudo gem install pdf-core -v '0.2.5'
Fetching: pdf-core-0.2.5.gem (100%)
Successfully installed pdf-core-0.2.5
Parsing documentation for pdf-core-0.2.5
Installing ri documentation for pdf-core-0.2.5
1 gem installed

retry and fail with message that contradicts the facts: pdf-core was installed,
and Ruby is of version >= 1.9.3.

$ bundle install
Fetching gem metadata from https://rubygems.org/........
Resolving dependencies...
Using rake (10.3.2)
Using Ascii85 (1.0.2)
Using afm (0.2.2)
Using asciidoctor (1.5.0.rc.6)
Using coderay (1.1.0)
Installing pdf-core (0.2.5)
Gem::InstallError: pdf-core requires Ruby version >= 1.9.3.
An error occurred while installing pdf-core (0.2.5), and Bundler cannot continue.
Make sure that `gem install pdf-core -v '0.2.5'` succeeds before bundling.

@jxxcarlson @mojavelinux As we're prepping for Alpha 9 I was doing a little issue gardening - have all the issues/observations reported above been parsed out into their own issues yet? And if so, you know what you can do with this one :grinning:

I'm pretty sure we've captured all the feedback. If something slipped through, just file a new issue and we'll take care of it!


Support Angular Backend Proxying config

Is your feature request related to a problem? Please describe.

During local development when you want to reach your backend server it can be complicated from the served angular project. Have to setup CORS, change and handle the base URL based on the environment (test/staging/production).
Angular solves this problem with a very awesome workaround:
https://angular.io/guide/build#proxying-to-a-backend-server
Unfortunately, this doesn't work with NativeScriptHttpClientModule some reason.
Describe the solution you'd like

Please, support this feature in NativeScriptHttpClientModule
https://angular.io/guide/build#proxying-to-a-backend-server
Describe alternatives you've considered

Maybe use interceptors? But it would be awesome to support the Angular's official workaround.
Additional context

I had the same issue; got it working decently. I run a backend Laravel server on homestead. My proxy.conf.json looks like the following. Normally this is all the is needed.
{   "**/api/**": {     "target": "http://ib",     "secure": false,     "changeOrigin": true   },   "/ipay/v1/**": {     "target": "http://ib",     "secure": false,     "changeOrigin": true   },   "/sap/**": {     "target": "http://ib",     "secure": false,     "changeOrigin": true   },   "/storage/**": {     "target": "http://ib",     "secure": false,     "changeOrigin": true   } }
But to have it work with NativeScript, I had to do two additional changes.

add a host <IP_ADDRESS> to the start line in package.json. Actually, I already had it in there for when I test my website from another computer on my network. So the start line looks like:
ib-ng --configuration=development --aot --proxy-config proxy.conf.json --host <IP_ADDRESS>

Find out what my local ip4 address is before starting and set the full path to all the urls defined in  my project. e.g. apiEndpoint: 'http://<IP_ADDRESS>:4200/api/v1'

I don't think I had to change anything else, and it works.

Thank you, but I don't think this is going to work with android platform, this is going to works with ng serve only as I understand.
This is my workaround, I've added an interceptor:
import { Injectable, isDevMode} from '@angular/core';
import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
import { Observable } from 'rxjs';

import { AuthenticationService} from "../services/authentication.service";
import {isAndroid} from "tns-core-modules/platform";
import {environment} from "../../environments/environment";

@Injectable()
export class BackendProxyInterceptor implements HttpInterceptor {
  constructor(private authenticationService: AuthenticationService) { }

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    //console.log('request.url',request.url,request);
    let origReqUrl = request.url;
    //Use this only dev environment and NS otherwise proxy.json works
    let newUrl = isAndroid && isDevMode ? 'http://vagrant.mtp.travel'+request.url : request.url;
    console.log('Change the request URL:',origReqUrl,newUrl);

    request = request.clone({ url: newUrl });

    return next.handle(request);
  }
}

@NickIliev Why did you close this? It's NOT solved, only a workaround has been offered by me, but it's still very frustrating I can't initialize things before the app starts.