Do we need a separate ReadOnly/Computed Atom type?

Overview
It's odd to me that (computed) Atoms like atom(read => read($count) * 2) still have .set and .update methods.
As a "consumer" of the above Atom (without knowledge of its underlying initialization), I'm lead to believe I can mutate it and it won't be an issue. It works fine and subscribers are notified, but state becomes out of sync. If/when the underlying $count is mutated then the prior change is lost but the state is back in sync.
Here is a simplified example:
const createCounter = (initial = 0) => {
  const $count = atom(initial);
  const $double = atom(read => read($count) * 2);

  const increment = () => $count.update(s => s + 1);
  const decrement = () => $count.update(s => s - 1);
  const reset = () => $count.set(initial);

  return {
    $count,
    $double,
    increment,
    decrement,
    reset,
  };
};

const counter = createCounter(0);
counter.$count.subscribe(next => console.log('[Count] Changed:', next));
counter.$double.subscribe(next => console.log('[Double] Changed:', next));

counter.increment();
// [Count] Changed: 1
// [Double] Changed: 2
// -- { count: 1, double: 2 } ✅

counter.$double.set(10);
// [Double] Changed: 10
// -- { count: 2, double: 10 } ❌-- state out of sync

counter.increment();
// [Count] Changed: 2
// [Double] Changed: 4
// -- { count: 2, double: 4 } ❌ -- back in sync, but can be unexpected

Additional Context
I'm a big fan of xoid and its API, and have been using it on and off for a while now. Mainly just for basic/small state machines in side projects, so I hadn't really butted up against this issue until now.
Recently I needed to build a bunch of separate objects with inter-dependent states where 80% of the props were computed. Traditionally this is really easy with Classes and Getters, but using those objects in a reactive (and performant) way in React/Vue becomes a real pain. I decided to give it a shot with xoid and it was honestly a real joy.
Personally I really liked the approach of using a factory to construct a single Computed Atom with all my mutation actions on it (directly on the value, or optionally via the .actions prop, using the second argument). This allowed me to subscribe to the main object itself or focus on any nested children, and also have control over what can be mutated (via only the actions).
const createCounter = (initial = 0) => {
  // Internal State
  const $count = atom(initial);
  const $double = atom(read => read($count) * 2);

  // Instance
  return atom(read => ({
    count: read($count),
    double: read($double),
    increment: () => $count.update(s => s + 1),
    decrement: () => $count.update(s => s - 1),
    reset: () => $count.set(initial),
  }));
}

const $counter = createCounter(0);
$counter.subscribe(next => console.log(`[*] Changed, ${JSON.stringify(next)}`));
$counter.focus('count').subscribe(next => console.log('[Count] Changed:', next));
$counter.focus('double').subscribe(next => console.log('[Double] Changed:', next));

// NOTE: that in this example trying to mutate either `count` or `double` would cause issues

Everything went well, but when making use of the Atoms I noticed I had access to those .set and .update methods so decided to try them out to see what would happen. That's when I noticed this behavior.
Another potential pitfall here (mainly with my favored approach), is that it can seem like you can mix and match mutable state and computed state on the same Atom, but if you do, you will lose any manually mutated changes. e.g..
const createPerson = (options: { firstName: string, lastName: string }) => {
  const $firstName = atom(options.firstName);
  const $lastName = atom(options.lastName);
  const $fullName = atom(read => `${read($firstName)} ${read($lastName)}`);

  return atom(read => ({
    title: '', // <--- ⛔ Not obviously problematic
    firstName: read($firstName),
    lastName: read($lastName),
    fullName: read($fullName),
    setFirstName: (value: string) => $firstName.set(value),
    setLastName: (value: string) => $lastName.set(value),
  }));
};

const $person = createPerson({ firstName: 'Adam', lastName: 'Ant' });
$person.focus('title').set('Mr.'); // <--- ⛔ Succeeds
$person.value.setFirstName('Beth'); // <--- ⛔ Title changes lost

console.log('Title: ', $person.value.title);

While I don't think there is anything that can be done to prevent someone from creating that title: '' property, if the Computed Atom wasn't mutable it would be quickly obvious this prop was actually readonly.
I guess another approach would be to avoid returning the single Computed Atom and instead implement something like your finite state machines example. But, I'm not entirely sure how you'd make use of computed values?
Suggestion
I don't know if there is a simple way to maybe remove .set and .update from computed Atoms, but I think it might be a good idea if it doesn't really serve any purpose or might mislead.
Additionally, I'm wondering if atom() is trying to do too many things with its ability to take a function. I know nanostores has a separate computed() function as does both Vue and Svelte. Maybe there is a good reason for this separation?

Hi @is-jonreeves , thank you for sharing your views, and your kind words about xoid. 🙂 I think you've made points here that are difficult to refute. Also thank you for taking the time to explain them in a very clear manner.
I'll start with this one:

Additionally, I'm wondering if atom() is trying to do too many things with its ability to take a function.

This is something I think about once in a while, especially for "better tree-shaking" purposes. I cannot say I disagree with this. This was an early decision I have made, because it was attractive to say "xoid has only 1 export!" (Before inject and effect exports were added). I think it helped making the first introduction to the library exciting for learning, and it was a nice selling point. Also Jotai as a popular library was doing the same thing.
To discuss this better, I need to inform you about my vision for xoid in the close future: I'll add the following exports to the main package. (which are under @xoid/reactive package at the moment) After this, xoid will be comparable to a subset of @vue/reactivity, but it'll keep focusing on small size and API.

So, xoid's exports are currently 3 (the center column), but there will be 6 more exports soon (right column). (The leftmost column will not be exported from the root. They'll only be in xoid/core route for advanced usage.) With this in mind, I think there are these disadvantages to create a separate export, let's say "derived", for the ability to take a function:

Naming the new export as derived, would be inaccurate because the function form is sometimes used just for lazy evaluation: const $my = atom(() => expensiveComputation()), ie, it's not always derived state.
derived will introduce an extra export which we try to avoid if possible
Adding an extra derived function also implies a Derived type similar to Atom. I also try to introducing new types if possible.
Developer experience concerns:

There will be a computed export (for implicit dependency collection), a new export with a similar name can be confusing.
It's easier to think of atom as the "powerhouse" that aggregates all the "core" functionalities. (This one might be too personal, but with all the other functions, and especially the "computed", I want our nomenclature to shrink for cognitive reasons)
Last but not least, all these being said, it doesn't seem strong enough to make a breaking change

Also maybe this is off-topic, but I think atoms having .focus and .map methods can also be considered as trying to do many things (Sometimes I think this way too). To me, their existence is justified for the following reason. When you have them as methods, you can nicely chain them:
const $derivedAtom = $atom
  .focus('event')
  .map((e) => ({ x: e.clientX, y: e.clientY }))
  .map(calculateOffset)

If they were exports instead, the sam would look like:
import { map, focus } from 'xoid'

const $derivedAtom = map(
  map(
    focus($atom, 'event'),
    (e) => ({ x: e.clientX, y: e.clientY })
  ),
  calculateOffset
)

I hope this was a satisfying response for one of your concerns.
Your case for .set and .update in derived atoms is much more complex. I definitely understand the concerns there. It's not immediately obvious what's wrong with the second example, it requires thinking for a while. I'll try to reason/experiment about it more, but my immediate thinking is that since I can come up with scenarios where the developer should be able to update a derived atom (ie. writable derived atoms should exist), it doesn't make sense to ban writability right away when creating derived atoms. I thought maybe the answer to your concern is introducing a readonly export, just like Vue does, but this seems deeper than that. I need to think about this more.
Again, thank you so much for your contribution! 🙂


kong oauth2 route with GET method

Summary
Hi Kong Team,
I have been working on kong APIM recently and facing an issue related routes that are defined with GET method and using OAUTH2 plugin.
Routes that are defined with only GET method does not allow for requesting an access token.
Maybe I can better explain with an example that I was trying.
Steps To Reproduce
1. Service definition:
curl -i -X POST --url http://localhost:8001/services/ --data 'name=ReadOnlyService' --data 'url=http://<IP_ADDRESS>:7890'
2. Route added with only GET method:
curl -i -X POST --url http://localhost:8001/services/ReadOnlyService/routes --data-urlencode 'paths[]=/test123/cat' --data 'methods[]=GET' --data 'strip_path=true'
3. OAUTH plugin added to "ReadOnlyService"
curl -X POST -d "name=oauth2" -d "config.scopes=read" -d "config.mandatory_scope=true" -d "config.enable_password_grant=true" http://<IP_ADDRESS>:8001/services/ReadOnlyService/plugins
4. Adding new consumer
curl -d "username=RO_Consumers" http://<IP_ADDRESS>:8001/consumers/
5. Creating an OAUTH2 application
curl -d "name=Foo_1" -d "redirect_uri=http://httpbin.org" -d "client_id=RO_client" -d "client_secret=ro_client" http://<IP_ADDRESS>:8001/consumers/RO_Consumers/oauth2/
6. Requesting access token:
curl -d "client_id=RO_client" -d "client_secret=ro_client" -d "grant_type=password" -d "scope=read" -d "provision_key=rZzFaLPtQtxxXOadO7ZR3vGDXsQTagga" -d "authenticated_userid=ro_123" https://<IP_ADDRESS>:8443/test123/cat/oauth2/token --insecure
Here response received is as => {“message”:“no route and no API found with those values”}
In the access.log it shows => <IP_ADDRESS> - - [11/Jul/2018:15:54:53 +0530] "POST /test123/cat/oauth2/token HTTP/1.1" 404 69 "-" "curl/7.35.0"
Am I missing out something here?
Additional Details & Logs

Kong version (0.13)

Any update on this issue?

You need to add a route /test123/cat/oauth2/token for getting OAuth token too with the same service that you created.

 I will close this for now.
Please re-open if you feel like this was not solved properly.


[BUG] : Conda installation failed: problem with ResolvePackageNotFound: keras-tuner==1.0.1

Describe the bug
Fail to install via conda.
To Reproduce
In terminal create a fresh environment:
conda create --name joss_HARDy
Activate the environment:
conda activate joss_HARDy
then run:
conda install -c pozzorg hardy
It gives:

Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: -
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed
ResolvePackageNotFound:

keras-tuner==1.0.1

System information

OS: Manjaro Linux x86_64
Host: 20AWS1J001 ThinkPad T440p
Kernel: 5.4.173-1-MANJARO
conda 4.11.0

Hi @alberto-battistel,
When you create the environment, can you enforce python==3.7 into the conda argument, like the one below?
conda create --name joss_HARDy python==3.7

Hi @alberto-battistel,
After you activate the environment, can you run either:
pip install . from the hardy directory or
python3.7 setup.py install instead of conda install.

Ok, both pip install . and python3.7 setup.py install worked.
running python -c "import hardy" gives:

Using TensorFlow backend.

running from the hardy folder:
jupyter notebook
and selecting How_to_make_predictions_using_trained_model.ipynb works as expected in both cases.
Thank you very much!


UpdateData and DeleteData statements are not batched in migrations

In migrations, InsertData statements are batched. However, UpdateData and DeleteData statements are not batched as far as I can see, even with minBatchSize set to 1 for SQL Server.
Steps to reproduce

Create an entity:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}

Create a context that uses SQL Server with minimum batch size 1 (just in case), and add data:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseSqlServer("Server=localhost;Database=testdb;Trusted_Connection=True;", options => options.MinBatchSize(1));
}

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Person>().HasData(
        new Person { Id = 1, Name = "Andrew" },
        new Person { Id = 2, Name = "Bob" },
        new Person { Id = 3, Name = "Charlie" },
        new Person { Id = 4, Name = "Dave" },
        new Person { Id = 5, Name = "Ed" }
    );
}

Add initial migration:

dotnet ef migrations add InitialCreate

As expected, the generated migration file inserts the data as a batch:
migrationBuilder.InsertData(
    table: "People",
    columns: new[] { "Id", "Name" },
    values: new object[,]
    {
        { 1, "Andrew" },
        { 2, "Bob" },
        { 3, "Charlie" },
        { 4, "Dave" },
        { 5, "Ed" }
    });

Add column to Person class:

public int Age { get; set; }

Populate column in OnModelCreating:

    modelBuilder.Entity<Person>().HasData(
        new Person { Id = 1, Name = "Andrew", Age = 12 },
        new Person { Id = 2, Name = "Bob", Age = 24 },
        new Person { Id = 3, Name = "Charlie", Age = 36 },
        new Person { Id = 4, Name = "Dave", Age = 48 },
        new Person { Id = 5, Name = "Ed", Age = 60 }
    );

Add migration:

dotnet ef migrations add Age

I think the generated migration should update the data as a batch, but it does not:
migrationBuilder.UpdateData(
    table: "People",
    keyColumn: "Id",
    keyValue: 1,
    column: "Age",
    value: 12);

migrationBuilder.UpdateData(
    table: "People",
    keyColumn: "Id",
    keyValue: 2,
    column: "Age",
    value: 24);

migrationBuilder.UpdateData(
    table: "People",
    keyColumn: "Id",
    keyValue: 3,
    column: "Age",
    value: 36);

migrationBuilder.UpdateData(
    table: "People",
    keyColumn: "Id",
    keyValue: 4,
    column: "Age",
    value: 48);

migrationBuilder.UpdateData(
    table: "People",
    keyColumn: "Id",
    keyValue: 5,
    column: "Age",
    value: 60);

Delete 4 of the rows from the HasData statement.

Add migration:

dotnet ef migrations add Age

Again no batching in the generated migration:
migrationBuilder.DeleteData(
    table: "People",
    keyColumn: "Id",
    keyValue: 2);

migrationBuilder.DeleteData(
    table: "People",
    keyColumn: "Id",
    keyValue: 3);

migrationBuilder.DeleteData(
    table: "People",
    keyColumn: "Id",
    keyValue: 4);

migrationBuilder.DeleteData(
    table: "People",
    keyColumn: "Id",
    keyValue: 5);

In our project we've just updated a table with hundreds of rows - the main issue without batching is an increase in compilation time (we've been needing to watch compilation time as the number of migrations increases). Obviously it also reduces readability.
I get that the Generate method for the UpdateDataOperation would need to generate multiple UPDATE SQL statements, maybe you'd rather not do this? The DeleteDataOperation can be done in one DELETE statement though.
In case it's related, I note that if you switch provider to SQLite, the InsertData statements are not batched either (and looks like insert statement batching has been supported in SQLite since 3.7.11).
Further technical details
EF Core version: 2.2.2
.NET SDK: 2.2.104
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Windows 10 Enterprise
IDE: Visual Studio 15.9.7

Note from triage: when we initially implemented grouping of CUD operations we only did it for inserts because that is the only case in which grouping can lead to sending a smaller number of commands to the database.
We will now use this issue to track grouping other operations. The motivation in this case is only to have a smaller number of calls generated in migrations. The number and batching of DELETE and UPDATE commands shouldn't be affected.

Thanks - seems to me that potentially DELETE statements could be batched as well (e.g. in the above example, DELETE FROM People WHERE Id IN (2, 3, 4, 5)).

@edwiles That is dependent on #795 being implemented.


Location Update issue

When I am updating location on home page from emulator it's not  working.

Updated to the new version


ESSIFI-72 add same subject check for evaluation

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

What is the current behavior? (You can also link to an open issue here)

What is the new behavior (if this is a feature change)?

Other information:

Conflicts. Creating a new PR


Add event log to the dashboard

https://github.com/rancher/longhorn/issues/186
Tested with backend https://github.com/rancher/longhorn-manager/pull/172

@yasker


feat(utils/interface): use vectored write

This PR gets rid of an unnecessary Bytes copy on MacOS using vectored write.
Currently uses unstable feature for advancing a slice of IoSlices, which is not ideal, but it is necessary.

There is no notable performance benefit to using vectored writes here, as there are much more significant performance bottlenecks.


figure out sessions

https://github.com/gorilla/sessions
https://github.com/gofiber/fiber/tree/a5b2b8989b071e8da47e185514e84f983e40a632/middleware/session
https://github.com/unrolled/secure

https://docs.djangoproject.com/en/4.0/topics/http/sessions/

If we decide to use memory store, we'll run into issue of sticky/non-sticky sessions

maybe we should just stay out of the session business; it's up to app developers to figure that out with their databases.

https://gist.github.com/komuw/4d44a25e1b6786100ffe0308106e80f2

Assume we're trying to minimize the fraction of requests that have to hit the database.
Mainstream web application frameworks tend to already have features that help with this.

Give them a bag of attributes and get back a tamper-proof (optionally encrypted) string,
using HMAC-SHA2 and AES-CBC. Put the string in a cookie.
The server only remembers a root secret, and can pull user data out of the cookie instead of the database.
This is how Rails sessions work.

You can’t generally use general-purpose user sessions for API tokens.
But you can use the same features to build API tokens.
Share the root secret among multiple services - maybe that's fine -
and microservices don't have to rely on a central service.

These tokens are relatively simple, and can be stateless. What's the catch?
You’re effectively using tokens as a database cache, and cache consistency is frustrating.
You’ve lost the simplest form of token revocation.
You're not validating tokens against the database,
so now you have to come up with another way to tell if they’ve been revoked.
A pattern I’ve seen a bunch here, and one that I kind of like, is to “version” the users.
Stick a token version in the user table, have tokens bear the current version.
To revoke, bump the version in the database; outstanding tokens are now invalid.
Of course, you need to keep state to do that, but the state is very cheap;
a Redis cache of user versions, falling back to the database, does the trick.

from https://fly.io/blog/api-tokens-a-tedious-survey/#platform-tokens

https://paragonie.com/blog/2015/04/secure-authentication-php-with-long-term-persistence
https://paragonie.com/blog/2016/09/untangling-forget-me-knot-secure-account-recovery-made-simple
https://paragonie.com/blog/2016/02/how-safely-store-password-in-2016

JWT fails miserably at invalidation, or How do you log out the user?
The answer is, you don't. You can't.
You (the server) can tell the user's client software to forget their JWT and
hope they'll do it, but you can never be sure.

from https://apibakery.com/blog/tech/no-jwt/
Normal sessions that are not backed by a db and rely solely on cookies also have the same issue.
You can delete the cookie, but a malicious client can decide not to honour the delition.

To solve this problem, save this in the cookie.
{
 ... stuff
 expires: timestamp
}

Of course, all this is authenticated and encrypted.
However, what if you set the timestamp to 2weeks, and then you decide you want to logout the user today(maybe to fix a security issue)?

see also: https://docs.djangoproject.com/en/4.1/topics/http/sessions/#using-cookie-based-sessions on replay attacks


Change "Show code cell output" could to "Show output"

And "Show code" instead of "Show code cell source"

this will need to be overwritten from sphinx-book-theme


Infer Checkpoint Placement Automatically

Checkpoint placement is very rigid. There's really no reason for someone to have to write this down manually.
Basically we should insert this right before end(mem) and make it conditional based on the paths in which verify, invalidate and update will be called in future stages (i.e., the conditions currently being checked in the Speculation Checker).

Resolved by #64


ISSUE-574: fix infinte loop on tcpListener delete

Codecov Report

Merging #575 (e73aa0c) into main (6767c68) will decrease coverage by 0.00%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #575      +/-   ##
==========================================
- Coverage   25.05%   25.05%   -0.01%
==========================================
  Files         117      117
  Lines       28895    28905      +10
  Branches     4685     4686       +1
==========================================
  Hits         7241     7241
- Misses      20684    20694      +10
  Partials      970      970

Flag
Coverage Δ

unittests
25.05% <0.00%> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/adaptors/adaptor_listener.c
5.22% <0.00%> (-0.37%)
:arrow_down:

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 6767c68...e73aa0c. Read the comment docs.


Installation through Carthage fails with Xcode 10

New Issue Checklist

[ y] I have read and understood the CONTRIBUTING guide
[ y] I have read the Documentation
[ y] I have searched for a similar issue in the project and found none

Issue Info

Info
Value

Platform Name
iOS

Platform Version
12.0

SDWebImage Version
4.4.2

Integration Method
Carthage 0.30.1

Xcode Version
Xcode 10(final and betas)

Repro rate
all the time (100%)

Issue Description and Steps
I get the following error when I try to update and build with Carthage:
*** Building scheme "SDWebImage iOS" in SDWebImage.xcworkspace
*** Building scheme "SDWebImage watchOS" in SDWebImage.xcworkspace
Build Failed
Task failed with exit code 70:
/usr/bin/xcrun xcodebuild -workspace /Users/user/Documents/work/application/Carthage/Checkouts/SDWebImage/SDWebImage.xcworkspace -scheme SDWebImage\ watchOS -configuration Release -derivedDataPath /Users/user/Library/Caches/org.carthage.CarthageKit/DerivedData/10.0_10A255/SDWebImage/4.4.2 -sdk watchsimulator -destination platform=watchOS\ Simulator,id=B35EB6D9-8741-4DE3-9C02-D7D3D60AE244 -destination-timeout 3 ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES build (launched in /Users/user/Documents/work/application/Carthage/Checkouts/SDWebImage)
This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/l6/4zrqf_m91mzcx175p7t8klq40000gn/T/carthage-xcodebuild.6LPWsm.log
Thanks!

I try to use Carthage to build SDWebImage 4.4.2 with Xcode 10. It works without any issue. Could you please paste your console output to show what cause this issue ?
➜  SwiftDemo git:(master) ✗ xcode-select --print-path
/Applications/Xcode 10.app/Contents/Developer
➜  SwiftDemo git:(master) ✗ carthage update --platform watchos --configuration DEBUG --verbose
...
Signing Identity:     "-"

    /usr/bin/codesign --force --sign - --timestamp=none /Users/lizhuoli/Library/Caches/org.carthage.CarthageKit/DerivedData/10.0_10A255/SDWebImage/4.4.2/Build/Products/Release-watchsimulator/SDWebImage.framework

Touch /Users/lizhuoli/Library/Caches/org.carthage.CarthageKit/DerivedData/10.0_10A255/SDWebImage/4.4.2/Build/Products/Release-watchsimulator/SDWebImage.framework (in target: SDWebImage watchOS)
    cd /Users/lizhuoli/Documents/Demo/SwiftDemo/Carthage/Checkouts/SDWebImage
    /usr/bin/touch -c /Users/lizhuoli/Library/Caches/org.carthage.CarthageKit/DerivedData/10.0_10A255/SDWebImage/4.4.2/Build/Products/Release-watchsimulator/SDWebImage.framework

** BUILD SUCCEEDED **

@ivan-konov Seems Carthage bug, please see 2561.

@zhongwuzw thanks for the clarification!


Return type

Hello!
What does this return type mean? * @return \Amp\Promise<bool>
Found in Iterator.
Could not find in these standards.

https://docs.phpdoc.org/references/phpdoc/types.html
https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc.md

Simply means that a promise is returned that eventually resolves to a boolean, you should take a look at the amphp docs for promises

Thank you.


Library backprop interop

So say I have an op from a foreign library (that also has their own autodif system), and I can easily call a method to get the gradients of op's inputs w.r.t to it's output (assume it's scalar for now). How hard would be to support backprop through it's output and what might such an implementation look like? I apologize if this is difficult to answer, it's probably highly dependent on the foreign library's autodif implementation.
For context, I am looking to train a model to fit volatility surfaces for options. And I would like to use some ops from RustQuant as part of my loss function.

Not sure it would totally fit the bill but I would suggest looking at CustomOp if you haven't already done so. It's the way to add custom operations in candle and it supports specifying the backprop step for the newly introduced op.
You can see an example of this in the tests. I don't think the backward override has been used much so far so certainly keen to get some feedback based on how it goes for you.


Yosemite support

Hey, I was curious on what the intended/expected minimum OS X target is.
The README says the requirements are iOS 7.0+ / Mac OS X 10.9+ / Ubuntu 14.10 but when I use Carthage fetch and install Interstellar it results in a framework with minimum deployment target of OS X 10.11
I tried to change the Interstellar.xcodeproj to set a deployment target of 10.10, it builds fine... but I'm wondering whether its just an issue with the .xcodeproj and it should work fine or if the documentation is out of date. Any guidance would be helpful, thanks.

The only requirement for Interstellar is swift support (done in os x 10.9). This seems to be an error in the OS X target. To be honest, I don't use Carthage, so I didn't notice so far. I'll try to fix this asap.

Awesome, thanks a lot for the very-quick response.
I was originally going to just throw up a pull with the original question changing the xcode project file but I couldn't seem to figure out how to run the tests against the OS X framework (works when I select the iOS scheme in Xcode/xcodebuild but not OS X) any advice/pointers on how to do that?

Currently there are no OS X tests at all (os x code is 100% identical to iOS, therefore there are only iOS tests).

Cool, thanks for explanation. Thought I was missing something.

Deployment targets should be correct now in V2.


Feat: infer parameter types for the implementation signature of an overloaded method

Suggestion
implicitly infer parameter types for the implementation signature of an overloaded method
This issue is a complement to #7763, #34319
🔍 Search Terms
TypeScript interface with multiple signatures;
infer params from different signatures;
implementation signature of an overloaded method;
✅ Viability Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion
Add an implicit inference to the params or restricted inference in some cases
📃 Motivating Example
Before, you can achieve simple
class Some {
  async request(action: 'auth', payload: AuthPayload): Promise<AuthResponse>
  async request(action: 'pub', payload: PubPayload): Promise<PubResponse>
  async request<S extends Values<SignalingRequests>>(
    ...params: Parameters<S>
  ): Promise<ReturnType<S>> {
    const [action, payload] = params
    switch (action) { /* ... */ }
  }
}
// redundant declarations
// declare Values<T> = T[keyof T]
declare type SignalingRequests = {
  auth: (action: 'auth', payload: AuthPayload) => AuthResponse
  pub: (action: 'pub', payload: PubPayload) => PubResponse
  // ...
}

Now you can use
class Some {
  async request(action: 'auth', payload: AuthPayload): Promise<AuthResponse>
  async request(action: 'pub', payload: PubPayload): Promise<PubResponse>
  async request(...params) {
    if (params[0] == 'auth') {
      const p: AuthPayload = params[1] // this works
    }
    // or you can write:
    const [action, payload] = params
    switch (action) {
      case 'auth':
        payload // AuthPayload
        break
      case 'pub':
        break
      default:
        // exhaustive check
        const nope: never = action
        throw 'nope'
    }
  }
}

💻 Use Cases
Prevent complex type annotation workarounds, simplify codes, make TypeScript sound again!
Best regards.

I’m pretty sure this is a duplicate but I can’t find the original issue(s) at the moment.

This issue is a complement to https://github.com/microsoft/TypeScript/issues/7763, https://github.com/microsoft/TypeScript/issues/34319

Actually I think it's just a straight-up dupe of #7763.

A lot has changed since #7763 (namely, parameter tuples). We can reconsider at some point


Plugin does not react

Actually, you can't do anything wrong when configuring the plug-in. I entered the bot token, restarted the plugin in logseq (and then logseq itself). Then the bot was started.
When I send a message now, nothing arrives in logseq. The desktop app is running. Any idea what is going wrong?

Try this:
Write BotFather /setprivacy command and set it to DISABLED

Hello
I did this
BotFather, [04.01.23 16:31]
'Enable' - your bot will only receive messages that either start with the '/' symbol or mention the bot by username.
'Disable' - your bot will receive all messages that people send to groups.
Current status is: ENABLED
XXX, [04.01.23 16:32]
Disable
BotFather, [04.01.23 16:32]
Success! The new status is: DISABLED. /help
I restartet logseq and send some telegramm-Messages but nothing happens...

Try this: Write BotFather /setprivacy command and set it to DISABLED

Recently it cannot works. I tried this, it don't works either.
logseq version:0.8.15

By default it fetch new messages through 3 seconds after plugin starts and then each minute. Can you post here json settings of your plugin? Don't forget to replace bot token with other text.

No, that's not what I asked for. Go to the plugin settings, and in the top right corner, you will see a link labeled "Edit settings.json". Click on it and you will be able to view the plugin settings. Please paste them here.

If i do like you describe   I get this entrys
{
"botToken": "Her ist my bot token",
"pollingInterval": 60000,
"inboxName": "#inbox",
"authorizedUsers": [],
"addTimestamp": false,
"invertMessagesOrder": false,
"inboxByChat": [],
"isDebug": false,
"disabled": false
}

It seems correct.

Thats strange. I start the Bot  and  send several Test messages....

I'm having the same problem. I see it polling but the messages array is always empty.

Very strange. Try to open this link in your browser https://api.telegram.org/bot${botToken}/getUpdates, replace ${botToken} with you bot token. Can you see any messages?

After i set my bot token.

ok
false

error_code
404

description
"Not Found"

@shady2k I think you put an extra $ in that URL. Without it, I get:
{"ok":true,"result":[]}

But if I send a message, then reload, I do see it:
{"ok":true,"result":[{"update_id":4688632,
"message":{"message_id":34,"from":{"id":5915182488,"is_bot":false,"first_name":"Andy","last_name":"Waite","language_code":"en"},"chat":{"id":5915182488,"first_name":"Andy","last_name":"Waite","type":"private"},"date":1673217985,"text":"hello world"}}]}

(then when I refresh it shows an empty array again).

I met the same problem. Sending messages directly to the bot is not working. Then I added the bot in a private channel and set as admin. Now it works perfectly. Hope it helps.

That sounds interesting. Can you explain/describe how you did that
added the bot in a private channel and set as admin.
Thanks

Just creat a channel and add your bot

Thanks for the tip, that works for me too, so that completes the process for me.


[Bug]: When the drawer closes, the scroll position undesirably jumps to the trigger element

Bug description
As it can be noticed on the video demonstration bellow, when a Drawer gets closed, the scroll position of the screen shifts to the Trigger element it is currently positioned somewhere outside the current screen bounds:
https://github.com/user-attachments/assets/b36351a6-d65c-4a97-a705-83e147da331b
In the specific case shown in the video, this behavior isn't a significant issue because, after clicking the Trigger, scrolling the background is disabled, limiting how far the Trigger can shift off-screen. However, this becomes a considerable problem when modal is set to false and the user can interact with and scroll the screen while the Drawer is open.
Reproduction Link
https://corvu.dev/docs/primitives/drawer/
Reproduction Steps

Choose a button that triggers a Drawer and shift it out of the screen
Activate the button, either by clicking it or, if it is focused, clicking enter
Close the drawer

Expected behavior
There should be no screen shifting after closing a Drawer.
Additional context
Similar issue a React library: https://github.com/shadcn-ui/ui/issues/2272

Hey, this is expected behavior as we focus back on the trigger when the drawer closes for accessibility reasons.
You have some options if you do not want this to happen in your specific case:

Set restoreFocus to false on the <Drawer>. This disables focusing the trigger when the drawer has been closed.
In the onFinalFocus callback on the <Drawer>, call event.preventDefault() and handle focusing back on the trigger yourself with preventScroll set to true. See the focus() reference on MDN.

The drawer inherits these options from the dialog, which is documented here.

Hey, this is expected behavior as we focus back on the trigger when the drawer closes for accessibility reasons.
You have some options if you do not want this to happen in your specific case:

Set restoreFocus to false on the <Drawer>. This disables focusing the trigger when the drawer has been closed.

In the onFinalFocus callback on the <Drawer>, call event.preventDefault() and handle focusing back on the trigger yourself with preventScroll set to true. See the focus() reference on MDN.

The drawer inherits these options from the dialog, which is documented here.

Ohh, didn't know that, but that makes sense! Nice to know there is a really easy fix.
Thank you @GiyoMoon!!


[todo] switch unit test tool from AVA to TAPE

From
AVA: :rocket: Futuristic JavaScript test runner
To
TAP: Test Anything Protocol tools for node
Due to lack of typing support, we finally decided to switch to tape(actually blue-tape with Promise support) instead of tap, which has very good typing support.
See: https://github.com/tapjs/node-tap/pull/387

Done.


⚠ ClamAV has degraded performance

In b92d519, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 70 ms

Resolved: ClamAV performance has improved in f968035 after 5 minutes.


Not responding and crash

Description
What steps will reproduce the problem?

Spyder didnt respond and crash often while i am using it.
Versions

Spyder version: 4.1.5
Python version: 3.8.5
Qt version: 5.9.7
PyQt5 version: 5.9.2
Operating System: Windows 10

Dependencies

# Mandatory:
atomicwrites >=1.2.0           :  1.4.0 (OK)
chardet >=2.0.0                :  3.0.4 (OK)
cloudpickle >=0.5.0            :  1.6.0 (OK)
diff_match_patch >=20181111    :  20200713 (OK)
intervaltree                   :  None (OK)
IPython >=4.0                  :  7.19.0 (OK)
jedi =0.17.1                   :  0.17.1 (OK)
nbconvert >=4.0                :  6.0.7 (OK)
numpydoc >=0.6.0               :  1.1.0 (OK)
paramiko >=2.4.0               :  2.7.2 (OK)
parso =0.7.0                   :  0.7.0 (OK)
pexpect >=4.4.0                :  4.8.0 (OK)
pickleshare >=0.4              :  0.7.5 (OK)
psutil >=5.3                   :  5.7.2 (OK)
pygments >=2.0                 :  2.7.2 (OK)
pylint >=1.0                   :  2.6.0 (OK)
pyls >=0.34.0;<1.0.0           :  0.35.1 (OK)
qdarkstyle >=2.8               :  2.8.1 (OK)
qtawesome >=0.5.7              :  1.0.1 (OK)
qtconsole >=4.6.0              :  4.7.7 (OK)
qtpy >=1.5.0                   :  1.9.0 (OK)
rtree >=0.8.3                  :  0.9.4 (OK)
sphinx >=0.6.6                 :  3.2.1 (OK)
spyder_kernels >=1.9.4;<1.10.0 :  1.9.4 (OK)
watchdog                       :  None (OK)
zmq >=17                       :  19.0.2 (OK)

# Optional:
cython >=0.21                  :  0.29.21 (OK)
matplotlib >=2.0.0             :  3.3.2 (OK)
numpy >=1.7                    :  1.19.2 (OK)
pandas >=0.13.1                :  1.1.3 (OK)
scipy >=0.17.0                 :  1.5.2 (OK)
sympy >=0.7.3                  :  1.6.2 (OK)

Hi @archisinghal19,
I recommend you to upgrade to the latest Spyder 4 version, 4.2.5, which is the more stable. Also, I need you to track down the steps that you are doing to crash Spyder for us to try to reproduce it.
Please try upgrading first, and if you see that the error persist post here the steps you took.
Thanks for reporting!

How to update spyder in anaconda for version 4.2.5 becoz it display me the
last version 4.1.5 not above that. Please see the screenshot and guide me
how do I update to latest version as it is not responding.
On Wed, 5 May 2021 at 04:24, Stephannie Jimenez Gacha <
@.***> wrote:

Hi @archisinghal19 https://github.com/archisinghal19,
I recommend you to upgrade to the latest Spyder 4 version, 4.2.5, which is
the more stable. Also, I need you to track down the steps that you are
doing to crash Spyder for us to try to reproduce it.
Please try upgrading first, and if you see that the error persist post
here the steps you took.
Thanks for reporting!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/spyder-ide/spyder/issues/15504#issuecomment-832299064,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKWTCYPKGPANUWPFZJK3GU3TMB3KVANCNFSM44DG6NXA
.

Please update by closing Spyder, opening the Anaconda Prompt and running there
conda update anaconda
conda install spyder=4.2.5

Update spyder=4.2.5 but still it didn't respond
On Wed, 5 May 2021 at 20:47, Carlos Cordoba @.***>
wrote:

Please update by closing Spyder, opening the Anaconda Prompt and running
there
conda update anaconda
conda install spyder=4.2.5
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/spyder-ide/spyder/issues/15504#issuecomment-832773135,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKWTCYIERTRQZY2JID63JKLTMFOQFANCNFSM44DG6NXA
.

Then please use our Windows installer which you can download here.

Closing due to lack of response.


bot.api.chat.postMessage requires JSON.stringify(attachment)

Just for API Consistency -
When posting attachments, the bot.say & bot.reply commands do not require a stringified attachment, while bot.api.chat.postMessage does.

I see that a fix has been put in for bot.api.chat.postMessage. Is there going to be this same issue of needing to stringify the attachment with bot.api.chat.update?
Also is there a reason the readme.md doesn't including documentation related to bot.api.chat.postMessage or bot.api.chat.update? I would like to update a message later using update() as I would be able to do it based on a timestamp without needing the response_url as documented here: https://api.slack.com/docs/message-buttons#use_chat.update_to_modify_the_original_message_instead. Would using bot.api.chat.postMessage and bot.api.chat.update be the best approach for this still?


Mobiles and desktops

This would be amazing on mobiles.
This would allow golang code to be compiled to WASM and then updated on all devices. Huge.
Has anyone tried this yet ?

Afaik, nobody tried that.
But it does indeed sound like an interesting use case.

Rust is booming along with WASM.
Anyone done any benchmarks with gowagin to see the speed differences between golang and golang wasm running inside gowagon ?


custom domains will soon change

https://support.glitch.com/t/help-center-migration-on-5-5-also-an-opportunity-to-try-out-a-new-custom-domain-workflow/62006?u=wh0
details not yet known. supposedly it hasn't even been working for a while

the recommendation now is to use fastly. any interest in adding a command to manage this in a simplified way?


Rank feature - unknown field linear (#983)

Description
Add support for rank feature query linear
( backport as requested here https://github.com/opensearch-project/OpenSearch/pull/983#issuecomment-889366050 )
Issues Resolved
https://github.com/opensearch-project/OpenSearch/issues/977
Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

start gradle check


Separate number_density code from commits which removed kinetics_init and kinetics_final

At this moment the head of the MusicBox code does not compile as implemented in the Docker container.
In the commit, associated with "switch to number density for species concentrations" two things happened.  One was a switch to number density which will require a coordinated change to the chemistry_cafe and the MechanismToCode.  Those portions of the commit to this tool need to be backed out.  (Sorry for not having a testing framework).
Additional work was done to kinetics_utitilities.  "use kinetics_utilities, only: kinetics_init, kinetics_final".   I like these changes in that they separate some of the dependencies, but the chemistry driver still expects kinetics_utilities::kinetics_init and kinetics_final. The original design was to separate the definition of the kinetics from the solution of the kinetics into different schemes.  I doubt such a design makes sense as we move forward with CCPP.
Let's make the "master" branch compile and run.

Hi @AndrewJConley,
I moved the number density changes to a development branch of MechanismToCode. Now I'm able to compile and run the master branch of MusicBox following the instructions in the README. Do you want to check it now and see if that resolves this issue?


Fix the 'edit on github' link for stable versions of a projet

Fixes #1820
This is a naive approach, and might break things, for example for other VCS
than GitHub. Feedback welcome!
The rationale here is that the identifier of the stable build is the hash
of the tag, and not of a commit. It thus leads to a 404 when building the link
to edit on GitHub (see the comment in the original
issue).
If instead of storing the tag hash in the identifier we stored the
verbose_name of the original branch (its name), it would be used to build the
link (just the same way we use the verbose name for tags, and not commit
hashes).

Is it possible to get test for that?

Sure, any tips on where I should put it? readthedocs/rtd_tests/tests/test_sync_versions.py maybe?

@magopian let's assume test_sync_versions.py is the right location and we move on :)

Yes, readthedocs/rtd_tests/tests/test_sync_versions.py is a good place to put the test. There is already a test for the update_stable_version method so some parts of it can be reused :)

The link in the footer is actually doing the correct thing (as you can see here: http://mockingjay.readthedocs.io/en/stable/) -- so we just need to fix the variable passed to the button.

Actually looks like this has been fixed, so closing this PR :)


Doesn't work unless strict mode is used

When strict mode isn't used, it incorrectly gives you the path of the current file instead of the caller file
This is just a test to demo this. I don't have a solution, as I don't think it's possible to actually detect strict mode.
You can use CallSites directly though, without strict mode it needs to be the 1st instead of 0th call site:
CallSites()[1].getFileName() // [1] instead of [0]

Maybe in future this wouldn't be a problem anyways as ES6 modules would be in strict mode by default, I think. Still a heads up in case anyone encounters this.

I've added a note in the readme.


wasmtime: fix build on aarch64

Description of changes
The check phase failed on aarch64 because of:
$ nix-build -A wasmtime
...
buildPhase completed in 1 minutes 41 seconds
Running phase: checkPhase
Executing cargoCheckHook
++ cargo test -j 10 --profile release --target aarch64-apple-darwin --frozen -- --test-threads=10
...
       >   error: linker `rust-lld` not found
       >     |
       >     = note: No such file or directory (os error 2)
       >
       >   error: could not compile `wasi-preview1-component-adapter` (lib) due to 1 previous error

Things done
I tried to bring lld into scope and set RUSTFLAGS = "-C linker=lld but I couldn't get the tests to build. So I just disabled them on aarch64.

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] 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/)
24.11 Release Notes (or backporting 23.11 and 24.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

[ ] Fits CONTRIBUTING.md.

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

@ofborg build wasmtime


Add ability for File transport to split up logs by date

@indexzero -
How would you feel about adding an optional API parameter to the File transport so that it can split up log files by date? The idea would be that on each new day, a new log file would be created and Winston would automatically handle all of this / know which log file to write to based on the date.

There is no need to complicate the winston code when there is a standard tool for this task: Logrotate (http://linuxcommand.org/man_pages/logrotate8.html)

How to create weekly log using Winston daily rotate?


Add tool stats

Fixed comments of with rebase: https://github.com/bebatut/galaxy_tool_extractor/pull/6

Solved with: https://github.com/galaxyproject/galaxy_tool_metadata_extractor/pull/37 and https://github.com/galaxyproject/galaxy_tool_metadata_extractor/pull/36
Its part of the main script now as suggested by @bebatut.

Solved with: https://github.com/galaxyproject/galaxy_tool_metadata_extractor/pull/37 and https://github.com/galaxyproject/galaxy_tool_metadata_extractor/pull/36
Its part of the main script now as suggested by @bebatut.


Reorder elements in a list

Hello! You can add the management of a sortable list? ex. https://jqueryui.com/sortable/
Thank you in advance

Hi!
jQueryUI Sortable is already used in index.html.

Sorry. The only page that I had not seen . Dashboard 2 is the default page


Support ESM

We need to wait for the loader hooks to be stable first: https://nodejs.org/dist/latest/docs/api/esm.html#esm_hooks
https://github.com/nodejs/modules/issues/307

This is easy to implement but imperfect currently (see https://github.com/small-tech/import-fresh#readme) as Node.js cannot currently invalidate ESM modules without leaking memory.


JWT Claims: Define the claims in JWT, including user ID, username, etc., to facilitate permission verification.

#15


Facebook Source: Process Typing Indicator Events via Websocket

We should process typing indicator events so relevant conversational interfaces such as our Airy Inbox UI are able to indicate to logged in users that the relevant contact is still typing.
The sender actions message property allows you to control indicators for typing and read receipts in the conversation via the Send API. This is helpful for letting message recipients known you have seen and are processing their message.
To display a sender action in the conversation, send a POST request to the Messenger Platform with the sender_action property:
curl -X POST -H "Content-Type: application/json" -d '{
  "recipient":{
    "id":"<PSID>"
  },
  "sender_action":"typing_on"
}' "https://graph.facebook.com/v2.6/me/messages?access_token=<PAGE_ACCESS_TOKEN>"

Note: the request should only include sender_action and the recipient object. All other Send API properties, such as text and templates, should be sent in a separate request.
Supported Sender Actions
The following sender actions are supported. Typing indicators are automatically turned off after 20 seconds, or when the bot sends a message.
Sender Action + Description
typing_on: Turn typing indicators on
typing_off: Turn typing indicators off
Source: https://developers.facebook.com/docs/messenger-platform/send-messages/sender-actions/
We should process and send them via the web socket but not via the webhook to avoid noise as mostly synchronous clients benefit from such real time events (compare with Slack RTM API vs. Slack Events API).

One more thing that I just noticed. Looking at the Facebook documentation it seems like the sender_action is a one-way road: I can't find an example for the type of payload received in the webhook.
Unless I am missing something it looks like you are only able to let Facebook know that you are typing, but there is no indication for the contact doing so.

Hi @chrismatix - thank you for your suggestion and remarks.
We would prepare a separate ticket then to specify a new feature that lets people decide which events they subscribe for via the webhook. For some features like typing indicators it doesn't seem to make much sense to me that people want to receive them at all via webhooks, but if the additional effort is minimal let's rather stay agnostic and not opinionated about such things.
Regarding your suggestion for the payload - I would agree with sending a timestamp so letting the clients decide whether to still display sth or not.
@lizhutter's comment above goes beyond the initial scope of this ticket from my perspective which was ingesting typing events from a third party platform like Facebook (the contact is typing), but she actually has a fair point pointing to typing indicators for the opposite direction (the agent typing in one of our apps) to be relayed back to the relevant third party platform. However, for this we would require another endpoint in my perspective that our apps could call when the user is typing.
From the perspective of the event to be delivered via the websocket, it would be helpful to know who is typing and not automatically assume it can only be the contact.
Looking at our existing docs here: https://airy.co/docs/core/api/websocket#metadata
For a conversation where the contact is typing I assume this could like as follows:
{
  "type": "metadata",
  "payload": {
    "subject": "conversation",
    "identifier": "conversation id",
    "metadata": {
      "contact": {
        "displayName": "Grace"
      },
      "typed_at": "TIMESTAMP"
    }
  }
}

Or would you rather suggest to move the typed_at property into the contact object in that case?
Also from the perspective of the clients it might be really hard to screen the payload object for keys to determine whether typed_at is defined or not. Looking at the way you implemented tags and channel updates having their own types as documented here (https://airy.co/docs/core/api/websocket#channel) it might justify having a separate event type instead of just sending a metadata event?
Looking again at the corresponding Slack event here (https://api.slack.com/events/user_typing), we could do sth like:
{
"type": "user_typing",
"payload": {
   "conversation_id": "SOME_ID",
   "user_id": "SOME_ID", // or remove because we don't have user_ids
   "from_contact": BOOL,
   "typed_at": "TIMESTAMP"
}

Not sure what you think about this, happy to discuss. (I also know we don't have user_ids at the moment)

Thanks for your reply @steffh! I am addressing both issues separately:
Sending typing indicators to Facebook

@lizhutter's comment above goes beyond the initial scope of this ticket from my perspective which was ingesting typing events from a third party platform like Facebook (the contact is typing), but she actually has a fair point pointing to typing indicators for the opposite direction (the agent typing in one of our apps) to be relayed back to the relevant third party platform. However, for this we would require another endpoint in my perspective that our apps could call when the user is typing.

It seems like going the opposite direction (to source) is the only thing that's possible with Facebook right now. In any case: Both typing indicator tickets need to be split/edited to reflect in which way the data should flow.
Processing typing indicators on the websocket/webhook

In case the agent was typing, the contact would not be present in payload.metadata, but maybe that's rather weak and puts more pressure on the clients. Or would you rather suggest to move the typed_at property into the contact object in that case?

The entire metadata object is always present. And yes, putting typed_at on the contact field makes sense 👍

Also from the perspective of the clients it might be really hard to screen the payload object for keys to determine whether typed_at is defined or not. Looking at the way you implemented tags and channel updates having their own types as documented here (https://airy.co/docs/core/api/websocket#channel) it might justify having a separate event type instead of just sending a metadata event?

Introducing a separate event
In our taxonomy conversation metadata is any optional data associated with a conversation. That's not true for tags and channels, which is why we made them separate entities. Therefore I would not introduce a separate entity for that
Clients' ease of parsing
In Javascript languages, this is fairly easy to do, but I see how this can become cumbersome at some point. There are ways of making this look and behave a bit more like the Google userStatus webhook event, but I would discuss and plan them once we get there.

I think you are right @chrismatix - Facebook is a one way street only at this point and we don't receive typing events from the source, so I would suggest to close this ticket as this was the initial motivation for the feature.
I think your comment is very relevant, but we should continue the discussion for a source for which we actually receive these events. => https://github.com/airyhq/airy/issues/2118

That's a good idea. Hereby closing this.


npm WARN deprecated<EMAIL_ADDRESS>Deprecated.

Hi,
I'm using golang 1.5.2 and node version 5.2.0.
I generated dashboard and I'm in install phase with command "npm install" and it gives this error:
npm WARN deprecated<EMAIL_ADDRESS>Deprecated.
npm WARN install Couldn't install optional dependency: Unsupported

And at the end of install, it gives these errors:
npm WARN EPEERINVALID<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>b
ut none was installed.
npm WARN EPACKAGEJSON<EMAIL_ADDRESS>No description
npm WARN EPACKAGEJSON<EMAIL_ADDRESS>No repository field.

I tried to fix those errors, but I did not get it working yet. Could you try to fix it?
Best Regards,
xet7

This issue may more likely belong to your dashing-cli repo, I'm not sure.

@xet7 this may solve your issue https://github.com/laravel/elixir/issues/331#issuecomment-156613940


[qtbase] qdbuscpp2xml subtly broken on Windows by recent port update

qdbuscpp2xml is a tool from qtbase that "Parses the C++ source or header file containing a QObject-derived class and produces the D-Bus Introspection XML." This tool no longer works on Windows because it cannot load dbus-1-3.dll. I can see that in my project, prior to the latest vcpkg baseline update I have dbus-1-3.dll in vcpkg_installed\x64-windows\tools\Qt6\bin and after the baseline update it is no longer there. The changes in files listed in that directory is this:
6,7d5
< assistant.exe
< assistant.pdb
13d10
< dbus-1-3.dll
62,63d58
< qhelpgenerator.exe
< qhelpgenerator.pdb
132,133d126
< Qt6Help.dll
< Qt6Help.pdb
275a269,270
> svgtoqml.exe
> svgtoqml.pdb

The removal of assistant and Qt6Help is because of #38612. The addition of svgtoqml is due to #38682. I think the removal of dbus-1-3.dll is also due to #38682 because of https://github.com/microsoft/vcpkg/pull/38682/files#diff-da814fe5d578d93392e698157af490aeb2f7994eecdf94b272356ae97661ddc4L286
qdbuscpp2xml is only subtly broken as it only conditionally load libdbus-1-3.dll. It will load it if the C++ class uses custom types like QVariantMap. The code in question is https://github.com/qt/qtbase/blob/dev/src/dbus/qdbusargument.cpp#L36. If the dbus library fails to load the generated xml will have type="" instead of type="a{sv}" as it should.
Environment

OS: Windows
Compiler: Visual C++ 2022

To Reproduce
Steps to reproduce the behavior:

./vcpkg install qtbase
Set environment variable QT_LOGGING_RULES=qt.core.library.debug=true
Run vcpkg_installed\<triplet>\tools\Qt6\bin\qdbuscpp2xml.exe example.h

Expected behavior
The generated xml output should contain <arg type="a{sv}" direction="out"/> and no debug messages should be logged
Actual behavior
The generated xml output contains <arg type="" direction="out"/> (type is empty) and the following messages are logged by Qt:
qt.core.library: "dbus-1-3" cannot load: Cannot load library dbus-1-3: The specified module could not be found.
qt.core.library: "libdbus-1-3" cannot load: Cannot load library libdbus-1-3: The specified module could not be found.
qt.core.library: "dbus-1-2" cannot load: Cannot load library dbus-1-2: The specified module could not be found.
qt.core.library: "libdbus-1-2" cannot load: Cannot load library libdbus-1-2: The specified module could not be found.
qt.core.library: "dbus-1" cannot load: Cannot load library dbus-1: The specified module could not be found.
qt.core.library: "libdbus-1" cannot load: Cannot load library libdbus-1: The specified module could not be found.

example.h for the repro:
#ifndef EXAMPLE_H
#define EXAMPLE_H
#include <QObject>
#include <QVariantMap>

class MyInterface : public QObject
{
    Q_OBJECT
    Q_CLASSINFO("D-Bus Interface", "foo.MyInterface");
public Q_SLOTS:
    int getInt() const;
    QVariantMap getVariantMap() const;
};

#endif

@Neumann-A, don't you think this is likely caused by https://github.com/microsoft/vcpkg/pull/38682/files#diff-da814fe5d578d93392e698157af490aeb2f7994eecdf94b272356ae97661ddc4L286. How do you think it should be fixed?
For projects that want to use dbus on Windows, and we are probably very few that do, wouldn't it make sense to be able to use dbus=linked? That should be sufficient to pull the dbus-1-3.dll library into the vcpkg_installed\x64-windows\tools\Qt6\bin, should it not?

As an experiment I applied the following patch and that does indeed solve the problem:
diff --git a/ports/qtbase/portfile.cmake b/ports/qtbase/portfile.cmake
index d23ed5fee6..0e77740424 100644
--- a/ports/qtbase/portfile.cmake
+++ b/ports/qtbase/portfile.cmake
@@ -95,10 +95,8 @@ INVERTED_FEATURES
 list(APPEND FEATURE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Libudev:BOOL=ON)
 list(APPEND FEATURE_OPTIONS -DFEATURE_xml:BOOL=ON)

-if("dbus" IN_LIST FEATURES AND VCPKG_TARGET_IS_LINUX)
+if("dbus" IN_LIST FEATURES)
   list(APPEND FEATURE_OPTIONS -DINPUT_dbus=linked)
-elseif("dbus" IN_LIST FEATURES)
-  list(APPEND FEATURE_OPTIONS -DINPUT_dbus=runtime)
 else()
   list(APPEND FEATURE_OPTIONS -DINPUT_dbus=no)
 endif()
diff --git a/ports/qtbase/vcpkg.json b/ports/qtbase/vcpkg.json
index 87020883b3..2b7c640a2c 100644
--- a/ports/qtbase/vcpkg.json
+++ b/ports/qtbase/vcpkg.json
@@ -126,8 +126,7 @@
       "dependencies": [
         {
           "name": "dbus",
-          "default-features": false,
-          "platform": "linux"
+          "default-features": false
         },
         {
           "name": "qtbase",

I understand this may not be the solution, I am just providing this information as confirmation for what works.

three Questions:
a) what is qt's default? (since that is what people expect)
b) I feel like the dbus dll could simply be installed by qtbase into the correct folder (there are already a few other dlls which get manually moved)
c) could this be fixed by adjusting qt.conf somehow or is the dll lookup not using qt.conf paths?
and there should definitely be a test port for this use case.

three Questions: a) what is qt's default? (since that is what people expect)

Default is dbus=runtime on Windows, I believe.
b) I feel like the dbus dll could simply be installed by qtbase into the correct folder (there are already a few other dlls which get manually moved)
That works for me. What are the existing examples?
c) could this be fixed by adjusting qt.conf somehow or is the dll lookup not using qt.conf paths?
Looks like no. Grepping the Qt source code for QLibraryInfo::LibrariesPath it is not used in the QLibrary code and the documentation also says it looks in system-defined places with no mention of QLibraryInfo.

and there should definitely be a test port for this use case.

I'm not familiar with test ports, but I can see there is a directory vcpkg.git/scripts/test_ports. If I exclude all the subdirectories that start with vcpkg- that directory is very lightly populated. Am I looking at the right thing?

Am I looking at the right thing?

Yes. test_ports are ports build in CI to test usage etc.

system-defined places with no mention of QLibraryInfo.

Probably means PATH then.

That works for me. What are the existing examples?

https://github.com/microsoft/vcpkg/blob/37630acd98740f98d7e51da78c9630758835037f/ports/qtbase/portfile.cmake#L515-L525

as we would either have to run qdbuscpp2xml to test directly

That was the idea. I mean you already gave an example.

I tried this simple patch:
diff --git a/ports/qtbase/portfile.cmake b/ports/qtbase/portfile.cmake
index d23ed5fee6..06f15433bc 100644
--- a/ports/qtbase/portfile.cmake
+++ b/ports/qtbase/portfile.cmake
@@ -513,6 +513,7 @@ if(VCPKG_TARGET_IS_WINDOWS)
   # dlls owned but not automatically installed by qtbase
   # this is required to avoid ownership troubles in downstream qt modules
   set(qtbase_owned_dlls
+        dbus-1-3.dll
         double-conversion.dll
         icudt74.dll
         icuin74.dll

and discovered something ugly that I had not realized - the files become part of the built qtbase package. This is nasty for dbus-1-3.dll as the qtbase port doesn't have a dependency on the dbus port so the dbus-1-3.dll will be included and stored in the package in the binary cache if it was present when qtbase was built.
How about this: Take dbus off the list of default features and always use dbus=linked.

I'll vote for keeping it runtime since that is what upstream Qt shipps. However, I would remove it as a default feature on windows and add the dep to the feature without a platform expressions.


Having an issue with MapResult

I'm attempting to set up my Main method in the way the documentation suggests:
int Main(string[] args) {
  return Parser.Default.ParseArguments<AddOptions, CommitOptions, CloneOptions>(args)
    .MapResult(
      (AddOptions opts) => RunAddAndReturnExitCode(opts),
      (CommitOptions opts) => RunCommitAndReturnExitCode(opts),
      (CloneOptions opts) => RunCloneAndReturnExitCode(opts),
      errs => 1);
}

but I get an error when I try to build:
Error	CS0411	The type arguments for method 'ParserResultExtensions.MapResult<T1, T2, T3 TResult>(ParserResult<object>, Func<T1, TResult>, Func<T2, TResult>, Func<T3, TResult>, Func<IEnumerable<Error>, TResult>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

Try MapResult<AddOptions, CommitOptions, CloneOptions, int>(...

Having done that, it seems that what I need to do is have all of the methods (such as RunAddAndReturnExitCode) return an int. Is this necessary?

Yes, you do. You're returning MapResult in your Main method which requires an int, so each of the branches must return ints as well.

Thanks! I got it working and am super happy with the library now.

Great to hear!


fix(chart): add rbac for vacuum

This adds a service account, role, and role binding for vacuum.

Closes #301


Zoom Tools do not appear and Zoom is disabled in Bar Charts

Bug report
Codepen
https://codepen.io/ahmed-elkholy/pen/bGdQmYR
Explanation

What is the behavior you expect?
I am expecting that I should be able to zoom in bar charts and zoom tools appear.
What is happening instead?
Zooming is disabled and zoom tools do not appear in toolbars.
What error message are you getting?
No Errors

Sorry, zooming is not available in horizontal bar charts.

@junedchhipa The example I have attached is a vertical one not horizontal.

Very sorry, I didn't even look at codepen as I had to deal with so many issues today.
You will have to add the following config for category bar charts.
xaxis: {
  tickPlacement: 'on'
}

Even then, if your chart has just 2 categories, zooming won't work. You need at least 3 or more categories to zoom into.

@junedchhipa thank you so much!

This has been a solution for me too. I was wondering if this could be added to the documentation, I could not find it. Possibly just in the example of the column charts. I copied the stacked column chart in which this was not set

Couldn't find it in the docs too. @junedchhipa would it be possible to add it?


Lossless PNG?

Is there a reason why lossless PNG isn't an option? =)

No reason, just didn't need it for my own use. Feel free to add and I'll merge!


Voltage Code: Detailed Confirm / Green Pin

Looks really good, Abram.
On Fri, Apr 28, 2017 at 2:48 PM Abram Early<EMAIL_ADDRESS>wrote:

You can view, comment on, or merge this pull request online at:
https://github.com/SplitTime/OpenSplitTime/pull/74
Commit Summary

Added new delete popover / Switched to green pin

File Changes

M app/assets/javascripts/event-stage.js
https://github.com/SplitTime/OpenSplitTime/pull/74/files#diff-0 (13)
M app/views/event_staging/events/app.html.erb
https://github.com/SplitTime/OpenSplitTime/pull/74/files#diff-1 (14)

Patch Links:

https://github.com/SplitTime/OpenSplitTime/pull/74.patch
https://github.com/SplitTime/OpenSplitTime/pull/74.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/SplitTime/OpenSplitTime/pull/74, or mute the thread
https://github.com/notifications/unsubscribe-auth/AOHJ9PhTf03NL7L83-v58rK0G8mdxrixks5r0lCEgaJpZM4NL9Gt
.


Reduce object allocation while compiling

This PR reduces object allocation when compiling an api.
The function prepare_path was calling inheritable_setting.to_hash 2 times to just keep namespace_stackable and namespace_inheritable.
Current allocation / bytes
Total allocated: 62277446 bytes (334535 objects)
Total retained:  5954533 bytes (15516 objects)

Current allocation / types
allocated objects by class
-----------------------------------
    218676  Array
     89913  Hash

This PR allocation/bytes
Total allocated: 51007518 bytes (220812 objects)
Total retained:  5954325 bytes (15514 objects)

This PR allocation/types
allocated objects by class
-----------------------------------
    128512  Array
     66354  Hash

This PR also changes the following

use include instead of .send(:include)
create a helpers module only if a helper is defined otherwise it's nil
Remove || {} in favor of handling nil cases in some options passed to middlewares.

Fantastic job 👍


Options to share state between routes

What are the options to share state between multiple flows/routes in the context of single integration?
My need basically boils down to this scenario:

capture a property to something like exchangeProperty, with set-property step
be able to use the same property, like ${exchangeProperty.prop} with simple language in another unrelated route in the same integration

Currently exchangeProprty is not retained.
It is expected that this can be done with pure Camel DSL - e.g. with YAML.
I understand that this functionality can be achieved with the help of custom java bean, but I would like to avoid use of custom code.

can you provide a more concrete example ?

- from:
    uri: "salesforce:event/PlatformEvent__e"
    steps:
      - {some useful stuff}
      - {some more useful stuff}
      - set-property:   # capture the shared state here
          name: commit_replay_id
          simple: "${headers.CamelSalesforceReplayId}"
- from:
    uri: "timer:offsetHandler?fixedRate=true&period=10000&delay=10000"
    steps:
      - log: "${exchangeProperty.CamelSalesforceReplayId}"    # use the shared state here

This is the yaml config I have tried.

You could use camel-caffeine so you have a shared cache to store your bits

Maybe I am missing the whole point of camel-caffeine, but it fails to cache value between multiple executions of the same flow.
Consider the snippet below. The point of the snippet, is to display "cached" value from previous execution first, and then update the cache with the new one.
import org.apache.camel.builder.RouteBuilder;

public class Caffeine extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("timer:offsetHandler?fixedRate=true&period=10000&delay=5000")
            .to("caffeine-cache://cache?key=offset&action=GET")
            .log("Old value: ${body}")

            .setBody(simple("${headers.CamelTimerCounter}"))
            .to("caffeine-cache://cache?action=PUT&key=offset")
            .log("New value: ${body}");
    }
}

Output log indicate that value from previous execution is lost:
[1] 2021-02-03 10:13:15,031 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) Old value:
[1] 2021-02-03 10:13:15,033 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) New value: 1
[1] 2021-02-03 10:13:25,018 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) Old value:
[1] 2021-02-03 10:13:25,021 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) New value: 2
[1] 2021-02-03 10:13:35,017 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) Old value:
[1] 2021-02-03 10:13:35,018 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) New value: 3
[1] 2021-02-03 10:13:45,017 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) Old value:
[1] 2021-02-03 10:13:45,018 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) New value: 4

Not sure whether it is camel-caffeine problem, or a discrepancy in how Camel K vs classic Camel behaves.

Have you tried with "classic" camel ?

Tried that now - same negative result and behavior.
I believe that problem with camel-caffeine might be in CaffeineCacheEndpoint.java, L67 - cache object is retrieved from Camel Context, but I can't find any place where it is put into Camel Context in the first place.
Back to the original question. Do I understand correctly that with the current state of the Camel K, there are no Camel DSL constructs to interact with Context and share state across routes?

share state between routes is not something specifically related to camel-k, and about DSL, well, it depends on the one that you are using.
To create a bean in the registry:

use properties https://camel.apache.org/components/latest/others/main.html#_specifying_custom_beans
use beans inside YAML (not yet documented as it is largely experimental work in progress)

I do not know how easy it would be to create a caffeine cache but you can eventually use a ConcurrentHashMap and use simple|groovy language to access the value

Leaving the snippets below with a solution to the shared state problem, as a contribution to the community.
Valid for Camel K 1.3 runtime.
YAML integration definition
- from:
    uri: "salesforce:event/PlatformEvent__e"
    steps:
      - {some useful stuff}
      - {some more useful stuff}
      - to: bean:cache?method=set("offset", ${headers.CamelSalesforceReplayId})  # Capture the offset
- from:
    uri: "timer:offsetHandler?fixedRate=true&period=10000&delay=10000"
    steps:
      - to: bean:cache?method=get("offset")    # Retrieve the offset from cache
      - log: "Offset Store: ${body}"
- beans:
    - name: cache
      type: mycache.InMemoryKeyValueStore

Bean to capture state
package mycache;

import org.apache.camel.Handler;
import org.apache.camel.builder.RouteBuilder;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class InMemoryKeyValueStore extends RouteBuilder {
	@Override
	public void configure() throws Exception {
	}

    private Map<String, Object> container;

    private Map<String, Object> getContainer() {
        if (this.container == null) {
            this.container = new ConcurrentHashMap<>();
        }
        return this.container;
    }

    @Handler
    public Object get(String key) {
        Map<String, Object> container = this.getContainer();

        if (container.containsKey(key)) {
            return container.get(key);
        }

        return null;
    }

    @Handler
    public void remove(String key) {
        Map<String, Object> container = this.getContainer();

        if (container.containsKey(key)) {
            container.remove(key);
        }
    }

    @Handler
    public void set(String key, Object value) {
        Map<String, Object> container = this.getContainer();
        container.put(key, value);
    }
}

@lancerdima wonder if you can just set the type of the beans to java.util.concurrent.ConcurrentHashMap so you could avoid the need of the java code

@lancerdima you need to bind a instance of caffeine cache into Camel Registry
import org.apache.camel.BindToRegistry;
import org.apache.camel.builder.RouteBuilder;

import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;

public class CacheTest extends RouteBuilder {
  @BindToRegistry
    public static Cache<String, Object> cache() {
      return Caffeine.newBuilder()
      .build();
    }

  @Override
  public void configure() throws Exception {

    from("timer:offsetHandler?fixedRate=true&period=10000&delay=5000")
    .to("caffeine-cache:cache?key=offset&action=GET")
    .log("Old value: ${body}")

    .setBody(simple("${headers.CamelTimerCounter}"))
    .to("caffeine-cache:cache?action=PUT&key=offset")
    .log("New value: ${body}");

  }
}

Then the result will be what you expect:
[1] 2021-04-14 09:23:00,326 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) Old value:
[1] 2021-04-14 09:23:00,330 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) New value: 1
[1] 2021-04-14 09:23:10,300 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) Old value: 1
[1] 2021-04-14 09:23:10,301 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) New value: 2
[1] 2021-04-14 09:23:20,299 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) Old value: 2
[1] 2021-04-14 09:23:20,300 INFO  [route1] (Camel (camel-1) thread #0 - timer://offsetHandler) New value: 3


Fix Overlapping Charts

Charts are overlapping on screen, and need to be moved spatially to be readable.

Redundant, other issue for exact same problem exists.


Linking errors MSVC2022

Getting a lot of errors while linking a simple webui example related with "ws2def.h" and "winsock2.h"
E0040	expected an identifier	example	C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared\ws2def.h	442	ws2def.h
........
E0338	more than one instance of overloaded function "__WSAFDIsSet" has 'C' linkage	example	C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um\WinSock2.h	141
........
So I commented both files on webui.h  and now I get a single error:
Error	LNK1104	cannot open file 'C:\webui_2.0.6\Windows\MSVC.obj'
Any clue of what's the cause of this?

This is a linking issue related to the VS project configuration that you are using. Could you give me more info about how you added WebUI lib to your project?
Meanwhile, You can try the new WebUI v2.2.0.
In general, this is how you can add WebUI (static) to your VS project:

Create a new VS project without GUI (console)
Make sure you can build and run
Add webui-2-static-x64.lib as static dependencies
Make sure you also have Ws2_32.lib, user32.lib and Advapi32.lib
Add webui.h
Change linking from console to windows

So that you know, all those steps should be done in your project proprieties.

Thanks for the answer.
I was putting the previous example into an existing project (with many libs and includes from QT), maybe it was the source of those errors. So I did all your steps and got a new example running from a new empty msvc project and also using new version WebUI_v2.2.0.
I noticed the example on docs is no longer updated because on new version the webui_window_t is now gone, but I did it this way:
`extern "C" {
#include "webui.h"
}
#include
int main()
{
void* my_window = webui_new_window();
webui_show(my_window, "Hello");
webui_wait();
return 0;
}
#if defined(_MSC_VER)
int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, PSTR cmdline, int cmdshow) {
main();
}
#endif
`

Yes, webui_window_t is removed, and many other things get optimized to make wrappers more efficient (TS, Go, Python, Nim, Zig, Rust...).
You can find v2.2.0 examples that you can use in your new project here:
https://github.com/alifcommunity/webui/tree/WebUI_v2.2.0/examples/C

I started doing some testing, passing some index.html files to webui_show, some simple site templates I had. They all start and show up and run okay but after 10 seconds the debug window is automatically shut down (if inside msvc) but app window stays up, and site is unresponsive.
Something is triggering webui_wait(); but I only let the app start and run doing nothing and it goes down automatically after 10s. What am I missing here?

I'm creating a new C++ VS2019 example project that supports WebUI v2.2.0. I will share it, and let's see if it's fixing this issue.

I'm creating a new C++ VS2019 example project that supports WebUI v2.2.0. I will share it, and let's see if it's fixing this issue.

Curious is that by creating the html content on the app like this:
const char* my_html =
        ""
        "  "
        ........
        "";

webui_show(my_window, my_html);

It works fine.
But if I save the exact html content on a html file and call it like this:
webui_show(my_window, "index.html");
The issue happens, unresponsive, 10seconds and it quits.

I just added VS2019 and VS2022 C++ examples. While doing this, I discovered a memory issue when using Visual Studio, and it got fixed, so thank you for the report.

The 10 seconds issue can be an environmental issue since it works fine using an embedded HTML. To know exactly what's going on, please follow the steps:

Start x64 Native Tools Command Prompt for VS 2022
cd webui\build
windows_build debug
Open webui\examples\C++\VS2022\serve_a_folder\my_webui_app.sln
Build in Debug mode, then run

This will trigger a console window with the full WebUI logs. Please copy the logs and share them here.
Note: windows_build debug will build WebUI in debug mode using MSVC, GCC and TCC, so ignore errors in case you don't have GCC or TCC.

I did the building and run your vs2022 solution, it worked fine. Then i did some digging on the actual html files of the examples and noticed this line here at the end of each html file:
**!-- Connect this window to the background app --
**
We're supposed to add this line to every html file that our program uses? If so I didn't see it mentioned on the docs.
After I do that I no longer have the 10s exit issue if I leave the program idle, but if I do some clicking interaction on the html file it can randomly exit or not after a while.

I still need to finish the v2.2.0 documentation, but I'm working on it today.
About the  it's already mentioned in the actual online docs, but I should clarify it.

Can you please share the logs so we can identify why the app exited after some clicks?
I already test it by clicking quickly and multiple times on almost all examples, and it always works fine.

Can you please share the logs so we can identify why the app exited after some clicks? I already test it by clicking quickly and multiple times on almost all examples, and it always works fine.

The problem is not on the examples, those also work fine here. Issues happen when I start passing some basic html site templates and play around with them using webui.
Now by inserting the "" at the end of index.html files, I don't have the 10s exit issue but I can get random exits or unresponsive behavior.

I got it. I mean, reading the WebUI logs can tell us the reason behind those random exits. It can be a WebSocket issue, a JavaScript issue, a bug in the WebUI core functionality or something else. By sharing the logs, I can help you fix your issue 👍

Actually it was kind of simple the source of random exits, when html files have href="#"

Home

when you click on that link it get disconnected and app exit. If I remove the # (change to href="") the app then reloads the page okay, disconnect and connect again, and keeps up (no exit).

You are right. It's a bug. I'm working on it.
Thank you for the report 👍

I added this javascript function to fix this issue.


Feature/work mem

Added note that work_mem is not configurable and links to resource queue sections, where memory use is now managed.

Thanks, @janebeckman !


'-y' flag for update command

Perform update without asking user for confirmation

Going to look at this.


Responders can set bot identity via module attributes

First go at implementing bot identities in responders. Responders can define @bot_name, @bot_emoji, @bot_thumbnail attributes that will be used with their messages when doing a send or emote (but not reply). The name must be overridden for this to take effect.
Identity is used (name only) in the console adapter.
Additionally, bot_identity/2 can be overridden by the individual responder to allow for custom behavior. See labzero/hedwig_simple_responders@6ff56081cf6a82e1f3e7e77c1dcc1c058968c572 for an example of this.

Coverage decreased (-0.3%) to 91.795% when pulling b27f67c68d1d645d1163a89b2e0a3e75979ba45c on labzero:master into a385e12e3d2f88d8d09cefe086562e947184688f on hedwig-im:master.

Hello @rjanja,
First off, thank you for your interest in helping to improve Hedwig! It is much appreciated.
This PR has a couple issues that I'll outline here.
Since module attributes are baked in at compile-time, if you're running multiple bots, and each are configured to use those responders, it won't work as intended.
This is a problem with one of the main goals of Hedwig (allows many bots to be running at a time).
The second issue is that things like emoji and thumbnail don't necessarily translate well to all different chat services (Slack, XMPP, IRC, etc.).
I would prefer to build a different abstraction for this. I have some things in mind, but I haven't started working on them yet. I am currently reworking the Hedwig.Robot so that it is a proper OTP behaviour and will allow greater flexibility for users.
Those changes are coming in 2.0 (no target date yet, but I have started work on that).
In the future, please feel free to create an issue to start a discussion.


auto start capability on windows macos and linux

with version 1.10.0, it supports mac and windows


Remove coma from release number

Following up this issue: https://github.com/isaacs/github/issues/1301
Remove the coma from releases numbe as it blocks reading of the release number by 'Number' class and results in showing 'NaN'.

Thank you :)


React server rendering of react-boostrap-table with ajax data not working

I want table to be updated on state change, below is the code
I am getting below error, please let me know what changes i need to make?

My mistake, sorry for posting


When I run TestBot.Json, it will throw ArgumentOutOfRangeException(range.Path)

Github issues should be used for bugs and feature requests. Use Stack Overflow for general "how-to" questions.
Version
What package version of the SDK are you using.
https://github.com/microsoft/botbuilder-dotnet/commit/241536bbf08d198c94ad4cd52955b4b8c0b89719
Describe the bug
Give a clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

clone https://github.com/microsoft/botbuilder-dotnet/commit/241536bbf08d198c94ad4cd52955b4b8c0b89719
start TestBot.Json
use emulator to connect to the bot

Expected behavior
Give a clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Some investigation indicates when a $kind does not have custom converter, it will create a new SourceRange here, thus no range is set:
https://github.com/microsoft/botbuilder-dotnet/blob/241536bbf08d198c94ad4cd52955b4b8c0b89719/libraries/Microsoft.Bot.Builder.Dialogs.Declarative/Converters/InterfaceConverter.cs#L35
[bug]

Oh.. it happens after using an emulator to connect the bot

Now i can repro this in master, i must run emulator and trying to connect.

I level up this as P0, @tomlm @cleemullins


[6.0] Add the formalized Swift Testing event stream arguments to swift test.

Cherry-picks #7768 to release/6.0.
Explanation: Adds tools-facing command-line arguments for Swift Testing to swift test and swift test list. These arguments are passed through verbatim to Swift Testing and are not directly used by SwiftPM.
Scope: Affects swift test and swift test list.
Risk: Low—these arguments are wholly ignored by SwiftPM, and just need to be allowed through.
Testing: Existing test coverage for swift test, plus tests on the Swift Testing side for actually handling the arguments. Since SwiftPM ignores them, additional unit testing on the SwiftPM side would be tautological.
Issue: https://github.com/apple/swift-testing/pull/479
Reviewer: @bnbarham, @briancroom, @stmontgomery, @dennisweissmann

@swift-ci please test


Wrong command in section 4 of readme

in Section 4 the command starts with certbot-auto, but it should be just certbot
(I installed certbot following the instructions on the homepage)
this wokrs for me:
     certbot --manual \
     --text \
     --preferred-challenges dns \
     --manual-auth-hook ./hook.sh \
     -d "YOURDOMAINNAME.dedyn.io" \
     certonly

This depends on where on their page you look ;-) See https://certbot.eff.org/#ubuntuother-other
But it's true, the current phrasing is not very clear. I'll prepare a fix.


Fix: Enable Remove button functionality in Add Insurance section

Proposed Changes

Fixes #8664
Implemented functionality for the "Remove" button in the "Add Insurance" section.
Ensured that the button removes the corresponding input fields without affecting other data.

@ohcnetwork/care-fe-code-reviewers
Merge Checklist

[X] Add specs that demonstrate bug / test a new feature.
[X] Update product documentation.
[X] Ensure that UI text is kept in I18n files.
[X] Prep screenshot or demo video for changelog entry, and attach it to issue.
[X] Request for Peer Reviews
[X] Completion of QA

LGTM


Remove Warning Java Version When Server Start

I'm against this change. This message only shows on soon to be unsupported Java, there should be no "off" for this other than updating.

I thought of turning it off because currently the concern is that there are plugins that still do not work on Java 16 because they use some currently removed methods.

The warning has no effect on plugins and is merely that - a warning.
If any plugins don't work on j16 the issue should be reported and resolved, instead of ignoring the issue and pretending it doesn't exist.

Exactly what @Draycia said. Closing for that reason


enable reproducible results with random seed

closes #416; similar in spirit to #417
Issue appears to affect only ScipyOptimizer. Does not affect, e.g.,
AdamOptimizer on doc/source/notebook/classification
Appears to be due to the fact that TensorFlow variables are not stably
ordered across across replications, so var_list (and thus random
initial values for optimization) is not either.

Codecov Report

Merging #648 into master will decrease coverage by 0.02%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #648      +/-   ##
==========================================
- Coverage   98.31%   98.28%   -0.03%
==========================================
  Files          46       46
  Lines        3738     3739       +1
==========================================
  Hits         3675     3675
- Misses         63       64       +1

Impacted Files
Coverage Δ

gpflow/training/optimizer.py
100% <100%> (ø)
:arrow_up:

gpflow/params/parameterized.py
98.2% <0%> (-0.45%)
:arrow_down:

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 a8f487a...78199da. Read the comment docs.

@awav doesn't this code originate somewhere in tf.contrib?

@jameshensman, nope. Fixed code from our repo.
@jmxpearson, I can see the issue: hashes for set elements changes depending on global python seed, so the order of var_list is different. The main question is how it affects ScipyOptimizer and why. Do you know answers?
#416 is a bit different and not only about optimizers.

There are two key pieces:

ScipyOptimizer is responsible for intializing the vector of parameters using numpy. The random piece of this is, of course, repeatable if one sets the numpy random seed.

However, the function that packs Parameters into a single vector relies on the order in which the relevant tf.Variables come out of var_list. So if this ordering isn’t stable, the various pieces of the vector x in the optimization are reordered from one run to the next and so initialized differently.

In the case of the TensorFlow optimizers, the Variable packing is handled by tf, and if one sets the random seed in TensorFlow, this is done correctly and repeatably.
My understanding was that #416 was just about getting repeatable results from setting random seeds. I only ran a subset of models, so it’s quite possible there are other factors influencing the repeatability from other models.

Hello @jmxpearson. I apologize for not answering sooner. Can you show a case (mwe) when your change fixes the issue and w/o your fix breaks it. Thanks!

As noted in the original PR, this notebook
produces inconsistent numerical results without the change and exactly the
same results with.
On Sun, Mar 11, 2018 at 19:18 Artem Artemev<EMAIL_ADDRESS>wrote:

Hello @jmxpearson https://github.com/jmxpearson. I apologize for not
answering sooner. Can you show a case (mwe) when your change fixes the
issue and w/o your fix breaks it. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GPflow/GPflow/pull/648#issuecomment-372158899, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADBM59XHt1IbdhDplgt7fMr1Oc4ch9WSks5tdbDfgaJpZM4R_Uoy
.


Describe flow in the state machine

Description
As a follow up to #31 describe the flow in Redux
Acceptance criteria

Tasks

[ ] Create a state change and state machine flow diagram
[ ] Describing the patterns for asynchronous operations inside the state machine

Story Points

Outdated


GPSD socket streaming possible?

Hi,
I came across your project, and I would like to know if it is possible to use it with GPSD? I'm using GPSD to feed my NTP-server, and I would like to parse GPSD's output on port 2947, instead of using serial input.
But I'm just learning Python, so please bear with me :)
Thanks

Hi. I'm afraid the simple answer is 'No'. As I understand it, gpsd essentially parses the generic NMEA0183 output from a GPS device to a TCP/IP stream in a bespoke JSON format, so its output would be unrecognisable to pynmeagps (even assuming the latter could communicate via TCP). You could if you wanted write a Python TCP wrapper around pynmeagps if your objective is to monitor GPS output via TCP/IP rather than serial, but you'd effectively be replicating what gpsd already does.

Just an afterthought... This won't help you with your gpsd integration problem, but for what it's worth I've uploaded a very simple HTTP web server wrapper example that I was messing around with a while back which illlustrates how you might go about streaming the parsed output from pynmeagps over TCP/IP (in this case to a dynamically updated web page via a REST API). This might provide some general pointers - it's in the /examples/webserver folder.


Unclear steps

Not clear how to perform step 7 to get custom redirect uri

which app is it?
secret is supposed to be 'secret' - is it safe to put it in plain text?

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

ID: bac43716-ce54-d6bf-8a2a-0260a8b8f1d3
Version Independent ID: 5f836302-e4f3-897a-c964-c3a60d39ff6b
Content: Getting started with the App Center Auth Service - Visual Studio App Center
Content Source: docs/auth/getting-started.md
Service: vs-appcenter
GitHub Login: @amchew
Microsoft Alias: amchew

Hi @agrabhi , can you please specify what 'step 7' in the documentation are you referring to?

Hey @blparr, I synced with @agrabhi - he's referring to step 7 of https://docs.microsoft.com/en-us/appcenter/auth/getting-started#register-the-application-and-grant-the-application-permissions-on-azure-ad-b2c. Will make the steps clearer.

Thanks @amchew , and thanks @agrabhi for the feedback. I will close this issue then.


Refurbish the tutorial on Booleans

In this PR, I have upgraded the tutorial on Booleans to the same format as hello world and the integers tutorials. So this tutorial is now in two formats: CodeTour and Markdown.

[x] Entries added to the respective CHANGELOG.md for any new functionality
[x] Feature table on README.md updated for any listed functionality

I agree that that the format is ad-hoc. The main reason was the integration of CodeTour and markdown. At some point, we would be able to converge at a common format for: tutorials, reference manuals, protocol specifications, and (maybe) integration tests.


docs: Clarify OIDC create/update documentation

The current oidc reference doc states that OIDC can only be setup at cluster creation. That is not true for VMWare and Cloudstack.
Issue #, if available: None, sorry
Description of changes:
The current oidc reference doc states that OIDC can only be setup at cluster creation. That is not true for VMWare and Cloudstack.
Testing (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/cherry-pick release-0.12