Show template arguments in type hierarchy items where possible

Currently, if an item in the type hierarchy is an implicit instantiation of a class template, the name for that entry only includes the template-name. It would be better if it also included the template arguments where possible.
(Originally suggested in this review comment).

An example of this would be in the testcase RecursiveHierarchyUnbounded being added in this patch:
  template <int N>
  struct S : S<N + 1> {};

  S^<0> s;

(where the ^ indicates the position at which the type hierarchy is queried). We would like to see the root item in the hierarchy presented as S<0>, and its parent item as S<1>.

In the current implementation, things start to diverge from this goal very quickly: already when we call getSymbolAtPosition() to determine the starting point of the type hierarchy computation, the declaration in that result is the templated-decl of the class template S, i.e. information about the template argument list <0> is already lost.
I'm not exactly clear on the details of the AST representation here: do implicit instantiations get their own Decl nodes? If so, is there a way to modify getSymbolAtPosition() to return the Decl node representing the instantiation?

I'm not exactly clear on the details of the AST representation here: do implicit instantiations get their own Decl nodes? If so, is there a way to modify getSymbolAtPosition() to return the Decl node representing the instantiation?

Answering my own questions: yes, it looks implicit instantiations get their own Decl nodes, of type ClassTemplateSpecializationDecl, and now that getSymbolAtPosition() (now called getDeclAtPosition()) is implemented using targetDecl(), it should be possible to arrange for it to return that specialization decl for type hierarchy.

Proposed fix


Counterintuitive property initialization

When I initialize an entity property like so:
    public string Name {
        get { return this._name; }
        set { this.SetValue(ref this._name, value, nameof(this.Name)); }
    }
    private string _name = "";

then the SetValue method is called by the initializing assignment ( _name = "" ).
It seems counterintuitive.
If it is of any interest I am using change-tracking proxies:
        ChangeTrackingStrategy strategy = ChangeTrackingStrategy.ChangingAndChangedNotificationsWithOriginalValues;
        modelBuilder.HasChangeTrackingStrategy(strategy);

I am also using the default property access mode.

EF Team Triage: Closing this issue as the requested additional details have not been provided and we have been unable to reproduce it.
BTW this is a canned response and may have info or details that do not directly apply to this particular issue. While we'd like to spend the time to uniquely address every incoming issue, we get a lot traffic on the EF projects and that is not practical. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we use canned responses for common triage decisions.

Comment, this could have been due to a navigation property being set through a property setter, during a materialization that in other respects bypasses the property setters.
See https://github.com/aspnet/EntityFramework.Docs/issues/1007


High perfomance Server using pond?

Hi, I am very interesting create an open source high perfomance server using rmnp.
I have thought about using the pond library, but I am unable to integrate it properly. Do you have a skeleton or a prototype to recommend? A cordial greeting and I hope you will be able to answer me. This project is really cool!
https://github.com/alitto/pond

Hey, I think this depends on what you want to achieve. Part of rmnp's design is that is uses callback functions instead of channels because it spins up goroutines itself internally for every connection to allow processing multiple clients in parallel. If you look at handleServerPacket in example/server.go, that means that this callback function will be called concurrently whenever packets arrive and each handler can take as long as it wants to process the packets.
The design goal was to make it easy to implement server logic without worrying about goroutines and concurrency. Currently, I do not see the benefit of introducing the library you are suggesting. Can you elaborate on what you are hoping to gain from it?

Thank you very much to answer!
In light of what he said to me, I think I have completely misunderstood. I had hypothesized where to manage a pool capable of parallelizing the execution and interpretation of packets in the packet reception handle. But I don't have to do that because everything is already managed by the library (if I understand correctly ;-) My goal is to create a classic client-server architecture for a relay server to be used with Unity clients using your C # rmnp client implementation. The relay server will keep in memory a cmap (https://github.com/lrita/cmap) of all the connected clients and, according to the channel, it will send the relative payload to all or to the single client. For serialization I would like to use flatbuffers or messagepack so that they are quite optimized. I will publish the repo as soon as I reach stable code. Thanks again for everything!


0.4.0 - Running Gulp does not start the server Grunt works fine.

Running Gulp gives error.
[21:21:24] Starting 'nodemon'...
[21:21:24] Finished 'nodemon' after 36 ms
[21:21:24] Starting 'watch'...
[21:21:24] Finished 'watch' after 266 ms
[21:21:24] Finished 'default' after 1.53 s
[21:21:24] Live reload server listening on: 35729
[gulp] [nodemon] v1.3.0-7
[gulp] [nodemon] to restart at any time, enter `rs`
[gulp] [nodemon] watching: gruntfile.js server.js config/**/*.js modules/*/server/**/*.js
[gulp] [nodemon] starting `grunt server.js`
Warning: Task "server.js" not found. Used --force, continuing.

Done, but with warnings.
[gulp] [nodemon] clean exit - waiting for changes before restart

Same issue...

@lirantal @NeverOddOrEven why are we running the watch task when gulp-nodemon comes with watch support?

In package.json change
 "scripts": {     "start": "grunt",
to
 "scripts": {     "start": "node",
and it will work

@Kulver he is using Gulp as far as I can tell, not npm start...

@ilanbiala when you run gulp, it launch gulp nodemon and if you look at the code of nodemon it runs as
 gulp.start.apply(gulp, tasks)...

"scripts": { "start": "node"} in package.json works for me. Thanks.

I cannot reproduce this issue. I am using gulp and the development server is coming up like expected. I tested this with version 0.4-dev.
$ gulp
[...]
Application loaded using the "development" environment configuration

MEAN.JS application started on port 3000

@Kulver I am unable to reproduce this in 0.4.0 and the current master branch does not have a gulpfile. Is this still an issue or has it been resolved?

@codydaig @ilanbiala : this is an old one and I personally don't think we should be spending our effort trying to keep up with both gulp and grunt maintenance. I vote for closing this.

No, let's just go with Gulp.

I don't know who worked on the gulp support for 0.4.0, maybe Amos. I think the gulp settings there are not 100% compatible with the grunt config we have so I suggest we don't invest time on the 0.4.0 release on gulp, and can consider moving to it after we release 0.4.0
Let's create a Roadmap page for 0.5.0 and start stuffing items there.


Consider running a flake in a subdirectory

In process of setting up devenv via flake.nix I noticed that my nix store gained 50 gb in size. Turned out Nix is copying the whole source tree into the store for evaluation (I've just started using Nix and didn't know that) and my project is 2 GB so getting it copied on every change in flake.nix makes it very slow and bloats the nix store. In my case I do not need my repo in the nix store because I just need some packages (php) and services (mysql, php-fpm, httpd) and do not want to build the project.
To avoid this I moved flake.nix into a subdirectory (nix) and refer to that flake via path: in .envrc config (use flake path:nix --impure instead of use flake --impure) or run nix develop path:nix --impure. Referring to a flake via path: ignores whatever is tracked in git repo and instead copies all the file tree where flake.nix is located. So having flake.nix in an empty subdirectory will result into copying only nix/flake.nix and nix/flake.lock into the store.
This solves the problem of running nix develop or using direnv but it doesn't solve devenv up because I can't run it from root of the project and in that script flake.nix is referred via git so that if I cd into my subdirectory (nix) and run devenv up it will copy the whole project into the nix store.
To solve this I just created a similar script in my repo and added it into the flake as a module to have it accessible from the terminal as devenv-custom.
The change I made to the script:
...
 command=$1
  if [[ ! -z $command ]]; then
    shift
  fi

+ flakePath=$1
+ if [[ $flakePath == "path:"* ]]; then
+   shift
+ else
+   flakePath="."
+ fi

  case $command in
    up)
-     procfilescript=$(nix build '.#${shellPrefix (config._module.args.name or "default")}devenv-up' --no-link --print-out-paths --impure)
+     procfilescript=$(nix build $flakePath#'${shellPrefix (config._module.args.name or "default")}devenv-up' --no-link --print-out-paths --impure)
      if [ "$(cat $procfilescript|tail -n +2)" = "" ]; then
        echo "No 'processes' option defined: https://devenv.sh/processes/"
        exit 1
      else
...

This allows me to

run devenv-custom up path:nix from project root
refer to my flake.nix via path:nix to avoid copying the whole repo into the nix store
still use it as originally intended

I am ok running my own script but I propose to consider this change at least until this PR is merged.

If you use devenv binary you won't have this issue.

@domenkozar when I run nix develop path:nix --impure I am entering shell where I get a different version of devenv (bash script) which has only up and version commands.
Even if I use the devenv binary (installed in my nix profile) I think I will get into the same problems:

I won't be able to do devenv up from root of my project when flake.nix is located in ./nix dir.
If I cd into my subdirectory and run up cmd it will copy all the files tracked by git into the store because rust binary calls nix build command in a similar way as bash scripted devenv. So it still refers to flake via .#procfileScript meaning it refers to it via git+file: and that will copy all the files tracked by my local git repo.

Both devenv script and binary will work in my case if I would not have a git repo. In a non-git project nix build .#procfileScript will be treated as nix build path:.#procfileScript wile in git repo it's treated as nix build git+file:.#procfileScript (See Path-like syntax) so if I want to still refer to it as path: while in git repo I need to do that explicitly.


Feature/fit to coordinates

Overview

Adds a fitToCoordinates method to <MapView />
Adds documentation for the method
Adds an example

Demo

Why?
I'm implementing a UI that requires the map to focus on a polyline or mix of polyline and markers.  The current fitToSuppliedMarkers method comes short as it only supports markers.  At first, I thought about adding and identifier prop to polylines, but I decided against it since one might want to focus on a specific part of a polyline.  I settled on coordinates as I feel it's a more flexible API that covers a wider range of use cases.
Questions
I can see some people omitting edgePadding which would have function calls look like fitToCoordinates(coords, null, true).  It's not the prettiest, so I was hoping to get feedback on adding a second method for developers that require edgePadding.  Something like:
class MapView extends React.Component {
  // ...

  fitToCoordinates(coordinates, animated) {
    this.fitToCoordinates(coordinates, undefined, animated);
  }

  fitToCoordinatesWithEdgePadding(coordinates, edgePadding, animated) {
    this._runCommand('fitToCoordinates', [coordinates, edgePadding, animated]);
  }

  // ...
}

To do

[x] Validate API - @naoufal
[x] Add Android support - @chrisknepper
[x] Update readme with example - @naoufal

@naoufal wow, this looks really good!  Is there any way you'd be willing to tackle adding this API to android as well? We are trying our best to keep this component have feature parity cross-platform.

@lelandrichardson Yeah, I can give it a shot this weekend.
What are you thoughts on fitToCoordinatesvsfitToCoordinatesWithEdgePadding`?

Looks really nice!  I'm partial to just a single fitToCoordinates() with default arguments, but I could be convinced either way.

@spikebrehm I'm also for a single fitToCoordinates.

fitToCoordinates is fine, as long as we preserve the option for providing a padding amount

@naoufal Let me know if you'd like any assistance with the Android stuff!
This would be a great feature for sure. I implemented similar behavior for my project in JS but if we can make it a native feature of the plugin, all the better.

@chrisknepper That'd be great!  I'm struggling to get my Android environment setup. You can get in touch with me on the Reactiflux chat if you have any questions.

@naoufal I think I have gotten this working on Android (except for edgePadding). I'll be contacting you shortly over at Reactiflux.

@chrisknepper Looks great!

@chrisknepper Is the Android part ready for review?

@naoufal Now ready for review. I'm not sure where the conflicts are but we should merge in the latest from here into your fork.

@chrisknepper The conflicts seem to be coming from android/src/main/java/com/airbnb/android/react/maps/AirMapView.java.  Mind taking a look?

@spikebrehm, @lelandrichardson Alright, so I updated my changes based on the feedback provided, added an example to the main README and I rebased off master to resolve the conflicts. @chrisknepper and I have both tested the example on our respective Android and iOS environments.
Can you run the examples on your machines and let me know if there's anything else I can do to help move this PR forward.

I have one suggestion for this. IMO, edgePadding should come after animated in the parameters. For the case when a user doesn't want to use edgePadding but wants animated to be true, they will have to explicitly pass null as the argument for edgePadding
This results in the call looking like this: fitToCoordinates(coords, null, true).
If animated was the 2nd parameter, it could be fitToCoordinates(coords, true).
This isn't a big deal and is just a semantics preference, but I envision this being frequently used without edgePadding. Just my two cents.

I'm in favour of keeping animated as the last argument for consistency.  In my experience, edgePadding is used more frequently than animated for this use case.  Not passing an edgePadding cuts the surrounding markers, so you typically need to add edgePadding to get the result you're looking for.  You can see this first hand in the [example](https://github.com/airbnb/react-native-maps/pull/545/files#diff-218c7392a17180cda7a16429d00018aeR35).  So I feel like passing null` might be a rarer use case than you might think. I'd also prefer to have animated be the last argument in our methods, similarly to Cocoa methods.
I'd like to hear @spikebrehm and @lelandrichardson's thoughts on this.

Boolean parameters make me sad. I wonder if a better approach is fitToCoordinates(coordinates, options).
option could specify animated: false (animated: true would be default).
option could also have edgePadding: { ... } which would default to null, or 0, 0.
Just an idea. What do you all think?

options is a good idea for optional parameters.  That's my vote as well, but I don't feel strongly either way.
Also: note there's a merge conflict in example/App.js.

@lelandrichardson an options argument would solve this.  My only concern is what it means for consistency since none of the other APIs accept options.    I'm going to hold off fixing them until we've decided on the final API to avoid duplicating work.

In #495 I was working on adding props to the map component to set pixel insets. The work there isn't complete, but I'm wondering if maybe having those inset props and a fitToCoordinates function that doesn't need to accept an edge padding argument might be a better design.

We can probably go back and forth with this though, so I'll let you guys decide which interface you prefer and I'll gladly adjust the PR.

@naoufal sounds good! @lelandrichardson and I can migrate the other methods to take options before we cut the next breaking change.

@athaeryn

In #495 I was working on adding props to the map component to set pixel insets. The work there isn't complete, but I'm wondering if maybe having those inset props and a fitToCoordinates function that doesn't need to accept an edge padding argument might be a better design.

Good point! If this gets merged before #495, we can cut a new release that utilizes pixel insets.
@naoufal let's go with the options arg, rebase this from master, and get this merged!

@spikebrehm Sounds good to me.  I'll make the changes tonight and ping you 👍

@spikebrehm Added the options argument and rebased.  I'm good to go on my end.

Beautiful, thank you! 🍻

@naoufal I'm trying to use fitToCoordinates but without success. I'm on Mac OS and building to an iOS simulator. I can add markers but this method doesn't work. Here it's part of my code:
`const MARKER_COORDINATES = [ {latitude: -27.570351,longitude: -48.513944},
{latitude: -27.574329,longitude: -48.526673} ];
...
const DEFAULT_PADDING = { top: 40, right: 40, bottom: 40, left: 40 };
export default class TesteMapa extends Component {
fitAllMarkers() {
console.log()
console.log( this.map );
console.log( MARKER_COORDINATES.map );
this.map.fitToCoordinates(MARKER_COORDINATES, {
edgePadding: DEFAULT_PADDING,
animated: true,
});
console.log( "Method finished" );
}
`
I can see the log messages, etc. What am I missing?
Thanks

Zoom level is too bug, when passing only one coordinate
_fitToCoordinates = (destSnapPoint) => {
        this.mapRef.current._component.fitToCoordinates(
            [{
                latitude: 59.978315,
                longitude: 30.314519,
                latitudeDelta: 0.02,
                longitudeDelta: 0.02,
            }],
            {
                edgePadding: {
                    top: 0,
                    right: 0,
                    bottom: destSnapPoint,
                    left: 0,
                },
                animated: true,
            },
        );
    };

https://github.com/react-native-community/react-native-maps/issues/2629

@naoufal Can you help me with fitToCoordinates, because it are ignoring mapPadding
https://github.com/react-native-community/react-native-maps/issues/3308


Feature request: customer grouping of storage accounts in Quick Access

This is a feature request from Coca-Cola.

I spend a lot of my time in SE and ever with this ‘cleaned up’ version, I get crossed eyed and sometimes select the wrong one (structure is similar).
It would be nice to have like a custom directory structure or grouping on top of the file systems themselves (lol…sounds ridiculous but would be of some help).
I would lean to the side of just a visual aid like a hierarchy, at the end user’s perspective (the SE app itself).  Hmm, might be cool to also have an option auto group by the region or location the account resides in too.  Just some thoughts.

Might also be good to think about groupings outside of quick access as talked about in #3759

From #4389:

It would be nice to be able to group Quick Access items either by tag(metadata) or folders as only the storage object name is brought across in the UI. A generic blob container name is difficult to identify and at that point the standard nav is faster.

From #4795:

I have many storage accounts for solutions, across subscriptions/environments which are pinned in the quick access section and finding/selecting the desired account becomes difficult when viewed in a long list.

The ability to create folders within quick access to organise items into logical groups.

+1 would be nice to have the same custom grouping as in Azure Data Studio https://docs.microsoft.com/en-us/sql/azure-data-studio/server-groups?view=sql-server-ver16

I can only agree with suggestion above. It would be nice to have the same custom grouping as in Azure Data Studio https://docs.microsoft.com/en-us/sql/azure-data-studio/server-groups?view=sql-server-ver16
Having multiple envs. (DEV, QA, STAGING, PROD), visually it will help to recognize which I am connecting to.

Just adding another vote here... @MRayermannMSFT it looks like this is slated for the next release is that still the plan? (no one seems assigned) Even just having an MVP implementation with folders would be great for the reasons mentioned above.


Update the bug template

Update the bug template, based on o11y team.

@kimwnasptd This repo requires signed commits. We cannot merge this PR due to unverified commits.


Do not use replica if /setactive sets active to true

What does this pull request do? Explain your changes. (required)
If stream starts streaming right after creation sometimes stream object is not propagated to replica yet, so /setactive handler can't find it and rejects stream.
Specific updates (required)
Do not use replica /setactive sets stream to active

-

How did you test each of these updates (required)

Does this pull request close any open issues?

Screenshots (optional):

Checklist:

[ ] I have read the CONTRIBUTING document.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.

@iameli
It is IN blocking workflow - that's why this PR is needed.
Currently REWRITE trigger does two API calls - first to just find stream, and second to /setactive (both of course blocking)
I'm thinking of creating separate /start_stream endpoint that will combine two, but that's the next step.

Oh, I see, so this actually makes it have less latency — we'll be using the replica less often. That makes sense to me, then. :+1:


Affects

[ ] Designer
[X] Blocks editor
[ ] Companion
[ ] Compiled apps
[ ] Buildserver
[ ] Other... (please describe)

Expected behavior

There are a couple of options I can think of.

Don't allow top-level disabled blocks to be added to the backpack.
Enable top-level disabled blocks when they are added to the backpack.
Keep the blocks as disabled, but allow them to be dragged from the flyout. Also fix the appearance.

For the trashcan, core first went with option 3 (https://github.com/google/blockly/pull/2241), but later switched to option 2 (https://github.com/google/blockly/pull/3255).
Steps to reproduce

Grab a block.
Disable it via the context menu.
Add it to the backpack via the context menu.
Open the backpack.
Observe how the block isn't colored correctly.
Drag the block out of the flyout.
Observe how it is not disabled.

I would recommend option 3. It is the case the disabled blocks can be moved in App Inventor, so I don't see why that should prevent people from being able to drag disabled blocks into or out of the backpack.

I don't see why that should prevent people from being able to drag disabled blocks into or out of the backpack.

@ewpatton That's a special flyout-specific thing. If you have a disabled block in a flyout that means it can't be dragged out -- actually pretty weird behavior now that I think about it lol. It was originally used for implementing that 'maxBlocks' functionality. Here's the relevant code.
To fix it for the trashcan I added an isBlockCreatable_ function to the flyout. But in this case I'd probably have to override createBlockFunc_.

@BeksOmega Thanks. I don't like the idea of disabled being a substitute for maxBlocks (especially since the latter is not a feature of Blocky we use in App Inventor). I'm wondering if we can get this changed upstream?

Thanks. I don't like the idea of disabled being a substitute for maxBlocks (especially since the latter is not a feature of Blocky we use in App Inventor). I'm wondering if we can get this changed upstream?

@ewpatton If we wanted to make disabled blocks instantiable by default, I don't think that change would be accepted :/ (even though I think it's a good idea). The problem is that this is documented as a feature so I doubt that core would be willing to change it.
But if we can't change the default I think another option would be to add a flag to the flyout. Something to say "yes /this/ flyout can instantiate disabled blocks".
I checked, and isBlockCreatable_ does still exist in core. So overriding that could act as the flag. Or we could try to add an explicit boolean property (e.g. "canCreateDisabled"). I don't think it would be too tricky to implement, and I think it would have a pretty good chance of getting accepted.

Let's just override isBlockCreatable_ to always return true in App Inventor. That's sufficient for what we need.

@ewpatton I'm not sure if anyone watches the mit-cml/blockly repo, so I wanted to give you a ping.
I put up a PR over there because I believe doing it that way will make it easier to upgrade (you should be able to just drop the commit).

@BeksOmega Thanks, but you should also update the submodule in lib/blockly and make a PR here so that our master will be in sync. Once you submit the PR here I can review both.

@ewpatton Done! See https://github.com/mit-cml/appinventor-sources/pull/2164


Performance improvement

Previously, all bytes received were passed trough an map operation
that is not required, since the bytes are already UInt8. This change
improves performance for large transfers considerably.
Improves https://github.com/vapor/vapor/issues/734

Great find. Tests failed on macOS, though. Re-rerunning to make sure it wasn't a network issue.

I've had tests on CI failing for no reason in the last few weeks – tests that succeeded every time when run locally. I think we're pushing the boundaries of Travis with all this TCP stuff. :)
In general, I think it's best to create sockets in tests on any available port instead of a specific one.

Yeah, I'm almost sure it's their issue. The tests were written by the original author of this package so hopefully they don't need to be reworked just for Travis.

I'm not sure why these lines are failing on osx:
https://github.com/vapor/socks/blob/ea09c395312e772ae9ad9a8834c61411fcaec10a/Tests/SocksCoreTests/OptionsTests.swift#L29
https://github.com/vapor/socks/blob/ea09c395312e772ae9ad9a8834c61411fcaec10a/Tests/SocksCoreTests/OptionsTests.swift#L33

Current coverage is 64.93% (diff: 75.63%)

No coverage report found for master at bd9af15.

Powered by Codecov. Last update bd9af15...bcdcabe


How to use variables in filter parameter

I am using GraphQLRequest(graphql-java-generator API)  for running GraphQL queries. I have trouble understanding on how to pass parameters in filters(I can pass first and offset as params but not filter params)
Could you please provide an example of how to pass filters with parameters. My example graphql query I am working on is as follows.
{
allMtColumns(first: ?, offset: ?, filter: {
and: {
mtEntityByEntityId: {
mtSchemaBySchemaId: {
name: { equalTo: ?schema}
mtDatabasisByDatabaseId: { name: { equalTo: ?database } }
}
}
}}) {
edges {
node {
name
id
mtEntityByEntityId {
id
name
mtSchemaBySchemaId {
id
name
cqName
type
mtDatabasisByDatabaseId {
id
name
}
}
cqName
}
entityId
cqName
}
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
}
}

Hum,
It's quite hard to reply without the GraphQL schema.
AFAIU:

allMtColumns is a query, that has three parameters: first, offset and filter.
filter is an InputType
Right ?

So the plugin should have generated:

A query type from the Query object in your GraphQL schema. I'll name it Query, here below.
This Query class should contain a getAllMtColumnsGraphQLRequest method that allows you to prepare a Partial Request for the allMtColumns query.
This Query class should contain a allMtColumns method to execute this query

It would look to something like this:
GraphQLRequest allMtColumnsRequest;
void setup() {
// Create the Partial GraphQL request
// This below will execute: allMtColumns(first:?first, offset: ?offset, filter: ?filter) { edges [...] startCursor } }
allMtColumnsRequest = queryType.getAllMtColumnsGraphQLRequest("{ edges { node { name id mtEntityByEntityId { id name mtSchemaBySchemaId { id name cqName type mtDatabasisByDatabaseId { id name } } cqName } entityId cqName } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } }");
}
void exec() {
first = 0;
offset = 100;
filter = new Filter(...);
List<MtColumns> mtColumns = queryType.allMtColumns(allMtColumnsRequest, first, offset, filter);

// Do something with mtColumns
...

}
You can also use a Full request like this:
GraphQLRequest allMtColumnsRequest;
void setup() {
// Create the Full GraphQL request
// This below will execute: allMtColumns(first:?first, offset: ?offset, filter: ?filter) { edges [...] startCursor } }
allMtColumnsRequest = new GraphQLRequest("{allMtColumns(first:?first, offset: ?offset, filter: ?filter) { edges { node { name id mtEntityByEntityId { id name mtSchemaBySchemaId { id name cqName type mtDatabasisByDatabaseId { id name } } cqName } entityId cqName } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } }}");
}
void exec() {
first = 0;
offset = 100;
filter = new Filter(...);
List<MtColumns> mtColumns = allMtColumnsRequest.execQuery(first, offset, filter).getAllMtColumns;

// Do something with mtColumns
...

}
Hope this helps.
If not, can you provide me the GraphQL schema, so that I answer with a working response ?
Etienne

Hi Etienne,
Thanks for your response. I am a beginner to use this GraphQLRequest API.
I need help in preparing filter with variables so that I can send any values when I run.
I provided schema, query, and GraphQLRequest code I am trying to test.
Could you please correct the GraphQLRequest code so that I will be able to pass filter with variables.
I would provide a simple schema with just 2 properties
schema
entity{
id
name
}
SQL query
select id, name from entities where id=1
Postgraphile query with filter
query filterQuery {
allEntities(filter: {id: {equalTo: "1"}}) {
edges {
node {
name
id
}
}
}
}
query with id as variable so I can pass any value in params
query filterQuery {
allEntities(filter: {id: {equalTo: ?id}}) {
edges {
node {
name
id
}
}
}
}
GraphQLRequest code I am trying
fun filterQuery(idValue: Int){
var params = HashMap<String, Any>()
params.put("id", idValue)
val request = GraphQLRequest("{ allEntities(filter: {id: {equalTo: ?id}}) {
edges {
node {
name
id
}
}
}
}")
var response =request.execQuery(params).getAllEntities()
print(response)
}

Hello,
The issue is on this line :

val request = GraphQLRequest("{ allEntities(filter: {id: {equalTo: ?id}}) {
...

The whole filter should be in a bind variable.
Si it would be something like:

fun filterQuery(idValue: Int){
var filter = ...
var params = HashMap<String, Any>()
params.put("filter", filter)
val request = GraphQLRequest("{ allEntities(filter: ?filter) {
edges {
node {
name
id
}
}
}
}")
var response =request.execQuery(params).getAllEntities()
print(response)
}

The issue here, is the there must be a generated class for the filter.
Where is the GraphQL schema for Filter ?
Etienne

Thank you so much Etienne. Now I understand we have a separate class for each Filter.
I found the filter class for my query.
Could you please provide a few examples on how to prepare Filter with multiple conditions. I see builder class in that.

Yes I can.
But please provide your filter GraphQL type definition...

I managed to write the filter using the builder class. Thanks again for your help.


Bumped requests library to 2.32.3

What's Changed?

Bumped requests library to 2.32.3 to resolve security alert

Note: The severity is medium, so this will be included in the next thin client release.
PR Checklist

[ ] Updated unit tests
[X] Ran unit tests

✅🚀


Error when running KEPTestBPPICEF.jl on Preflib instance

Assuming that .wmd/.dat file loading from the branch 16-file-format-description-seems-off is incorporated, I am getting the following error when running julia ../../KEPTestBPPICEF.jl 00036-00000001 3 2
ERROR: LoadError: An edge of the solution is not in the KEP graph

I include full output when using Gurobi as a solver below, but the same happens if I use HiGHS so I'm guessing it's not a solver issue. Also I can confirm that KEPTestBP.jl does not exhibit this behaviour.
Full output
julia ../../KEPTestBPPICEF.jl 00036-00000001 3 2

********************************************************************************
 Solve 00036-00000001 with (K,L) = (3,2) using branch-and-price
 - master model uses PIEF = true
 - time limit is 7200.0 seconds
********************************************************************************

----------------------------------------------------------
 Parse the input file
----------------------------------------------------------

the instance is not vertex weighted!

----------------------------------------------------------
 Preprocessing: compute the graph copies
----------------------------------------------------------

----------------------------------------------------------
 Solve with branch-and-price
----------------------------------------------------------

Initialize column pool with 2-cycles when using PIEF
- number of initial columns: 37

Set parameter Username
Academic license - for non-commercial use only - expires 2025-03-01
Set parameter Username
Academic license - for non-commercial use only - expires 2025-03-01
Set parameter TimeLimit to value 3.5993404879570007e+03
Set parameter Threads to value 1
Processing node 1

Set parameter Threads to value 1
Set parameter TimeLimit to value 7.1958913240432739e+03

Iteration 1:
- current master value: 9.0
- nb of cycles added = 0

Node relaxation is solved to optimality
- node upper bound is 9.0, tree lower bound is 0.0

The number of columns increased:
 search for a feasible solution at node 1
- number of columns in master IP: 37

Set parameter Threads to value 1
Set parameter TimeLimit to value 3.5993404879570007e+03
Gurobi Optimizer version 11.0.0 build v11.0.0rc2 (linux64 - "Debian GNU/Linux 12 (bookworm)")

CPU model: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz, instruction set [SSE2|AVX|AVX2|AVX512]
Thread count: 4 physical cores, 8 logical processors, using up to 1 threads

Optimize a model with 32 rows, 96 columns and 192 nonzeros
Model fingerprint: 0x3712d882
Variable types: 0 continuous, 96 integer (96 binary)
Coefficient statistics:
  Matrix range     [1e+00, 1e+00]
  Objective range  [1e+00, 2e+00]
  Bounds range     [0e+00, 0e+00]
  RHS range        [1e+00, 1e+00]
Found heuristic solution: objective 6.3750000
Presolve removed 16 rows and 59 columns
Presolve time: 0.00s
Presolved: 16 rows, 37 columns, 74 nonzeros
Variable types: 0 continuous, 37 integer (37 binary)
Found heuristic solution: objective 7.4375000

Root relaxation: objective 9.562500e+00, 3 iterations, 0.00 seconds (0.00 work units)

    Nodes    |    Current Node    |     Objective Bounds      |     Work
 Expl Unexpl |  Obj  Depth IntInf | Incumbent    BestBd   Gap | It/Node Time

*    0     0               0       9.5625000    9.56250  0.00%     -    0s

Explored 1 nodes (3 simplex iterations) in 0.00 seconds (0.00 work units)
Thread count was 1 (of 8 available processors)

Solution count 3: 9.5625 7.4375 6.375

Optimal solution found (tolerance 1.00e-04)
Best objective 9.562500000000e+00, best bound 9.562500000000e+00, gap 0.0000%

User-callback calls 169, time in user-callback 0.00 sec

New incumbent found with value 9.0 found by solving the IP with every column of the pool
Termination status : OPTIMAL
Set parameter TimeLimit to value 40
After processing root node: LB = 9.0, UB = 9.0
The node is either infeasible or pruned by bound
LB = 9.0, UB = 9.0

----------------------------------------------------------
 The execution of the branch-and-price is complete
- the solution is optimal
- best solution found: value 9.0 with gap 0.0 %
----------------------------------------------------------

Numbers of cycles per cycle length
- k = 2: 7 cycles
In total, 14 pairs are covered by cycles

ERROR: LoadError: An edge of the solution is not in the KEP graph
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] print_and_check_solution(cycles::Vector{Vector{Int64}}, chains::Vector{Vector{Int64}}, instance::KidneyExchange.Instance, verbose::Bool)
   @ KidneyExchange ~/.julia/packages/KidneyExchange/jZR8E/src/utils.jl:75
 [3] solve_with_BP(filename::String, K::Int64, L::Int64, bp_params::BP_params, timer::TimerOutput, time_limit::Float64)
   @ KidneyExchange ~/.julia/packages/KidneyExchange/jZR8E/src/branch&price/branch_and_price.jl:51
 [4] top-level scope
   @ ~/src/git/KidneyExchange.jl/KEPTestBPPICEF.jl:33
in expression starting at /home/wpette/src/git/KidneyExchange.jl/KEPTestBPPICEF.jl:33

poke  @jeremyomer @aysnrarsln

I added an example to reproduce the error
https://github.com/jeremyomer/KidneyExchange.jl/blob/16-file-format-descriptions-seem-off/examples/solve_with_bp.jl

related to #16

Strange it works for me on branch master
$ julia --project examples/solve_with_bppicef.jl

********************************************************************************
 Solve 00036-00000001 with (K,L) = (3,2) using branch-and-price
 - master model uses PIEF = true
 - time limit is 7200.0 seconds
********************************************************************************

----------------------------------------------------------
 Parse the input file
----------------------------------------------------------

----------------------------------------------------------
 Preprocessing: compute the graph copies
----------------------------------------------------------

----------------------------------------------------------
 Solve with branch-and-price
----------------------------------------------------------

Initialize column pool with 2-cycles when using PIEF
- number of initial columns: 2

Processing node 1

Iteration 1:
- current master value: 4.0
- nb of cycles added = 0

Node relaxation is solved to optimality
- node upper bound is 4.0, tree lower bound is 0.0

The number of columns increased:
 search for a feasible solution at node 1
- number of columns in master IP: 2

Running HiGHS 1.7.0 (git hash: 50670fd4c): Copyright (c) 2024 HiGHS under MIT licence terms
Coefficient ranges:
  Matrix [1e+00, 1e+00]
  Cost   [1e+00, 2e+00]
  Bound  [1e+00, 1e+00]
  RHS    [1e+00, 1e+00]
Presolving model
0 rows, 0 cols, 0 nonzeros  0s
0 rows, 0 cols, 0 nonzeros  0s
Presolve: Optimal

Solving report
  Status            Optimal
  Primal bound      4.25
  Dual bound        4.25
  Gap               0% (tolerance: 0.01%)
  Solution status   feasible
                    4.25 (objective)
                    0 (bound viol.)
                    0 (int. viol.)
                    0 (row viol.)
  Timing            0.00 (total)
                    0.00 (presolve)
                    0.00 (postsolve)
  Nodes             0
  LP iterations     0 (total)
                    0 (strong br.)
                    0 (separation)
                    0 (heuristics)

New incumbent found with value 4.0 found by solving the IP with every column of the pool
Termination status : OPTIMAL
After processing root node: LB = 4.0, UB = 4.0
The node is either infeasible or pruned by bound
LB = 4.0, UB = 4.0

----------------------------------------------------------
 The execution of the branch-and-price is complete
- the solution is optimal
- best solution found: value 4.0 with gap 0.0 %
----------------------------------------------------------

Numbers of cycles per cycle length
- k = 2: 2 cycles
In total, 4 pairs are covered by cycles

The computed cost of the solution is 4.0
 ─────────────────────────────────────────────────────────────────────────────
                                     Time                    Allocations
                            ───────────────────────   ────────────────────────
      Tot / % measured:          5.07s /  97.8%            306MiB /  98.7%

 Section            ncalls     time    %tot     avg     alloc    %tot      avg
 ─────────────────────────────────────────────────────────────────────────────
 B&P                     1    3.60s   72.6%   3.60s    255MiB   84.4%   255MiB
   Process_Node          1    1.53s   30.9%   1.53s    124MiB   40.9%   124MiB
     Bellman-Ford        2    617ms   12.4%   308ms   30.1MiB   10.0%  15.0MiB
     opt_master          1    130ms    2.6%   130ms   12.8MiB    4.2%  12.8MiB
     IP_master           1   4.43ms    0.1%  4.43ms    113KiB    0.0%   113KiB
 Parser                  1    781ms   15.8%   781ms   13.5MiB    4.5%  13.5MiB
 Preprocessing           1    577ms   11.6%   577ms   33.7MiB   11.1%  33.7MiB
 ─────────────────────────────────────────────────────────────────────────────

Yup, sorry that was my bad. I'm still getting my head around Julia, and Julia wasn't using the new version of the code but an old version still. Sorry!

No worries William, I prefer this kind of issue 😄


feat(tag): add support for tag path as variable

Pull Request
🤨 Rationale
https://dev.azure.com/ni/DevCentral/_workitems/edit/2387168

Lets users control the tag path using a dashboard variable

👩💻 Implementation

Call into the TemplateSrv to interpolate variables

🧪 Testing

Updated setupDataSource fixture to include a mock TemplateSrv and wrote a new test

✅ Checklist

[x] This PR has a title that follows the commit message format.

:tada: This PR is included in version 1.12.0 :tada:
The release is available on:

v1.12.0
GitHub release

Your semantic-release bot :package::rocket:


⚠ Bofrost.lu has degraded performance

In 397c399, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1027 ms

Resolved: Bofrost.lu performance has improved in 6174b0e after 9 minutes.


RuntimeError: CUDA error: device-side assert triggered

请问这个要怎么解决呢，要改代码吗，如果要改的话，怎么改呢

Hi, you need to check the data prep. If you are using your own dataset, it is recommended to prepare your data according to the “Prepare your own dataset” steps. For multi-objective segmentation, you can refer to issue 14.


Implement .env based fetching of node URL for snfoundry CI

Which components does the task require to be changed? (think hard pls)
snforge
Description
It should be stored locally in .env file and on CI in secrets
We need to make sure that it's also accessible to forking repos, when we approve the run ourselves

cargo configs could potentially be used for this (instead of env files) as well https://doc.rust-lang.org/cargo/reference/config.html

@MaksymilianDemitraszek please describe the proposed solution here

Foundry should be able to resolve environmental variables from both Scarb.toml and snfoundry.toml. It means that
a value field="$ENVVAR", is read from scarb config and snfoundry.toml as a string "$ENVVAR". Later foundry should resolve all environmental variables to its values by reading and replacing them.

Closed in #2003, #2004 and #2006


illegal character in .go file triggers err msg "can't load package: package ."

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go1.11.1.linux-amd64
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
GOHOSTARCH="amd64"
GOHOSTOS="linux"
What did you do?
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
cd /path/to/test
echo "#" > test.go
go build
What did you expect to see?
Shouldn't show err with the msg:

can't load package: package

The err msg is either wrong or misleading because golang is obviously loading the test.go file in the path of "."
It's probably better to show the similar err msg when "#" is in the middle of the .go file:

/path/to/test
./test.go:3:1: invalid character U+0023 '#'

What did you see instead?

can't load package: package .:
test.go:1:1: illegal character U+0023 '#'

mostly like a misreported bug.


Protect stats with RWMutex

This is more of a request for comments than a proper PR (and it is branched off #150  so only the last commit should be reviewed )
A RWMutex is added to protect access to  the Pinger's internal statistics.
Updates to rtts is moved to updateStats so they happen under the lock.
There's (at least) one issue however: PacketsSent and PacketsRecvDuplicates can still be updated while
Statistics() is running, and thus could yield strange results (sent<recv)
To fix this, atomics could be used, but it would require changing the types of the fields from int to int64, thus changing the public api of Pinger. (One could argue that those fields should probably not be exported to begin with, but that would break the api too)
Any thoughts?

Revisiting this, I think it could be possible to add a unexported uint64 (or int64) for packetsSent and duplicatesrecv.
Updatng them using atomic.AddUint64 and accessing them in the stats with atomic.LoadUint64.
The exported fields can stay there and be updated as they are right now, but they wouldn't be used in Statistics().
With that, I think Statistics would be safe, or at least a lot safer.

Rebased


changed SDXL to SDV

I believe any mention of SDXL on this docs page should be changed to SDV. @Zorlin Im also wondering, are there supposed to be SDXL commands under the Docker instructions or are they meant to be SDV?

Hi! So, if it's mentioning SDXL in the context of how it works - which is by first generating an image using SDXL then running that image through SDV, that's fine -
But you clearly spotted some mistakes. I'll give it a new pass and make sure I meant every word :)

Fixed the rest in https://github.com/Lilypad-Tech/lilypad-module-sdv-pipeline/pull/2


SAMZA-1714: Creating shared context factory for shared context objects

This includes changes in https://github.com/apache/samza/pull/626.
Update: PR #626 has been merged, so the diff here should no longer show those changes.

I would prefer not to make this change, is there specific reason?
–Wei
On Oct 5, 2018, at 11:18, cameronlee314 <notifications<EMAIL_ADDRESS>wrote:
@cameronlee314 commented on this pull request.

In samza-core/src/main/java/org/apache/samza/table/utils/TableMetricsUtil.javahttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fsamza%2Fpull%2F672%23discussion_r223097945&data=02|01||b43c4759baf24bdbaa5808d62aeefd32|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636743603262673159&sdata=83mwglQhL9O52kgZtb6FXnC7rBBqdoXILR9pL6dvYUw%3D&reserved=0:

 Preconditions.checkNotNull(table);

 Preconditions.checkNotNull(tableId);

this.metricsRegistry = taskContext == null // The table is at container level, when the task

   ? containerContext.metricsRegistry     // context passed in is null

   : taskContext.getMetricsRegistry();

this.metricsRegistry = context.getTaskContext().getTaskMetricsRegistry();

Thanks. We will simplify the constructor now to just use task-level metrics, since that is the only current use case. When the container-level table functionality comes in, then this can be modified or a new path can be added.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fsamza%2Fpull%2F672%23discussion_r223097945&data=02|01||b43c4759baf24bdbaa5808d62aeefd32|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636743603262673159&sdata=83mwglQhL9O52kgZtb6FXnC7rBBqdoXILR9pL6dvYUw%3D&reserved=0, or mute the threadhttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FACiwKihJDqLYS149n_VVh5xM0OgJAekVks5uh6KFgaJpZM4W9pfb&data=02|01||b43c4759baf24bdbaa5808d62aeefd32|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636743603262673159&sdata=d66oRTEyKiTl568%2FQFl0qGAQJquSDtxWu57q1sFogZA%3D&reserved=0.

@weisong44 We are updating the public APIs for task/container contexts, so the old TaskContext/SamzaContainerContext no longer exist. Now there is a single Context API which can be used to get to any context information, and we are updating the old context usages to use the new API.
Since there is currently no support for container-level tables, that check is being removed in this PR to keep the implementation clean. Once there is a concrete support for container-level tables, we can discuss how to add that check back in (e.g. maybe instead of passing null context objects, there is a different constructor and/or a config).


Readonly cells show an input

Introduced a bug with the input refactor which displays the input for readonly cells e.g. for external tools:

PR also fixes another issue introduced with the input refactor changes:
While I was in there I also found a bug whereby a programmatic change of input wasn't triggering an "onchange" event. For example, when a [0-9] key is pressed we use jQuery to set the value on the input e.g. $input.val(newValue).  In IE or Chrome this does not mark the input as 'changed'.  To resolve this we now trigger a custom javascript event and bind to this in Wicket.

Oops.. and PR also fixes the toolbar styling illustrated in the screenshot above.

Done, ready for test.

Confirmed!


Passing parameters to the workflow

In the tutorial, replacement parameter for MyFooReplaceris hard-coded in the definition of the workflow:
class MyWorkflow(sl.WorkflowTask):
    def workflow(self):
        # Initialize tasks:
        foowrt = self.new_task('foowriter', MyFooWriter)
        foorpl = self.new_task('fooreplacer', MyFooReplacer,
            replacement='bar')

        # Here we do the *magic*: Connecting outputs to inputs:
        foorpl.in_foo = foowrt.out_foo

        # Return the last task(s) in the workflow chain.
        return foorpl

Then, calling sciluigi.run_local(main_task_cls=MyWorkflow) will always replace foo by bar.
How can we pass a different value of replacement to the workflow?
Should I override MyWorkflow.__init__() with something like:
class MyWorkflow(sl.WorkflowTask):
    def __init__(self, replacement='bar'):
        super(self, MyWorkflow).__init__()
        self.replacement = replacement

and then use self.replacement in place of 'bar'?

Hi @hbredin, thanks for asking!
The MyWorkflow task is a normal luigi task at its core (although with extra stuff added by sciluigi), so you can add luigi parameters to it, and then just forward it to the tasks parameter with the same name, like so:
class MyWorkflow(sl.WorkflowTask):
    replacement = luigi.Parameter()

    def workflow(self):
        # Initialize tasks:
        foowrt = self.new_task('foowriter', MyFooWriter)
        foorpl = self.new_task('fooreplacer', MyFooReplacer,
            replacement=self.replacement)

        # Here we do the *magic*: Connecting outputs to inputs:
        foorpl.in_foo = foowrt.out_foo

        # Return the last task(s) in the workflow chain.
        return foorpl

if __name__ == '__main__':
    sciluigi.run_local(main_task_cls=MyWorkflow)

And then, you would execute this with:
python sciluigitest.py --replacement=somethingelse

(Updated the code example again ... I realized some typos in the code examples, sorry about that! Now the above full code example it should be working!

Great. Thanks a lot @samuell


Can we get motion information from the Device Access Console?

Thanks for you documentation

A "Motion" event from Google will trigger a motion Active event in HE. Since the current API does not send another event when motion is no longer detected, a preferences entry is defined for each device, which determines the amount of time before the motion is deemed Inactive. If another motion event is received before this timer expires, the Inactive transition is deferred for the specified interval.

Dose this mean that we can capture a motion active event from google smart device?

Yes, any Nest device with a camera (hello/doorbell, cam, or hub max) is compatible with the API, and Hubitat can recognize the motion events from them (and they can in turn be used as triggers for automations)


Add an option to provide externally configured Command

This will allow higher level tooling to inject their own
sandboxing.
I would like to add opinionated usage of e.g. systemd-run but
this is a useful start.

Example user in https://github.com/coreos/rpm-ostree/pull/3239
(Tested with that and... :cry: ... setenforce 0)


koreader: mark meta.sourceProvenance

Description of changes

Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

Hopefully not permanently; see also https://github.com/koreader/koreader-base/issues/1486

seems to be clobbered by 466c2e342a6887507fb5e58d8d29350a0c4b7488


app add mutiple swagger yaml files，throw blueprints that are created on the fly need unique names.

Description
app = connexion.App(name, specification_dir='./swagger/')
app.add_api('v2.yaml')
app.add_api('v2_auth.yaml')
v2.yaml
openapi: 3.0.1
info:
title: xxx
description: xxx
version: 2.0.0
servers:

url: /v2
tags:
name: xxx
description: xxx

v2_auth.yaml
openapi: 3.0.1
info:
title: xxx
description: xxx
version: 2.0.0
servers:

url: /v2
tags:
name: xxx
description: xxx

When I start app, it throws "A name collision occurred between blueprints <flask.blueprints.Blueprint object at 0x7f2379580810> and <flask.blueprints.Blueprint object at 0x7f2379580a90>. Both share the same name "/v2". Blueprints that are created on the fly need unique names."
So I would like to know if the servers.url can't be repeated in different swagger files? If so, Is it possible to load both files by modifying the code?
Expected behaviour
Run successfully.
Actual behaviour
A name collision occurred between blueprints <flask.blueprints.Blueprint object at 0x7f2379580810> and <flask.blueprints.Blueprint object at 0x7f2379580a90>. Both share the same name "/v2". Blueprints that are created on the fly need unique names.
Steps to reproduce
Additional info:
Output of the commands:

python --version  2.7.5
pip show connexion | grep "^Version\:"   2.3.0

I had the same error. Adding base_path to add_api call fixed it for me:
cxn.add_api('v1/swagger.yaml', base_path='/v1')
cxn.add_api('v2/swagger.yaml', base_path='/v2')


Compliments & a question!!

👋  Good day, GoodHertz Gente! 🙇  this is a MAD PROPS & question issue!
First the PROPS →
I'm a big fan of your plugins 👏 👏 👏 . I own 1/2 the suite, I esp love Vulf Comp, Wow Control, they appear on just about everything I write. I also love my GHz and Dither shirts! So it was to my great surprise and delight to read your blog post about Coldtype!!!
Why am I so excited about a library for programmatic & generative typography?

Well, this has been an adjacent passion of mine in addition to music production and running an indie music label.
7 years ago I wrote about my vision for  “living”, “kinetic” typographic constructions as part of my label's visual identity.
For my current label efforts, I developed a custom type using p5.js, which was very manual even though it was programmatic.
Similarly for music videos, png exports of different generative "versions" of the logo, I animate (on the beat) as part of the splash on my music videos (vid1, vid2 & older deprecated logotype → vid3 )

So given that context, I'm very excited to DIVE INTO Coldtype to see if I can more easily and quickly realize my typographic ideas for videos, annotate my dj mixes, etc etc. I'm not scared to get my hands dirty as the above examples show .....
My question is → I see many of your sketches require an actual font and as I've drawn things on a canvas using p5.js and made individual letters, would you recommend I go the extra mile to make an actual font (.tff) before diving into ColdType? or is there a way to benefit from it in the more freeform way that I've used p5.js?
thank you again and brilliant job! 🙇

Thanks for the kind words & for supporting Goodhertz — & for the very interesting questions!
You are correct to point out that a lot of Coldtype uses actual font files. This was one of the motivating factors behind its creation: to create a library that can manipulate existing fonts in complex ways. I think from what you're describing, it sounds like you could definitely benefit from creating an actual font version of the font you've made with p5.js, just in terms of reusability across projects, although I know that making fonts can be a rabbit hole of its own (and it's not particularly easy to get started in that process). I have made some generative code-only fonts using Coldtype myself, although I haven't documented the particular way in which to do that. Hopefully I can get some documentation around that up on the doc site soon.
All that said, from what you've described, I'm not sure I know of a great reason to switch from p5.js to Coldtype, especially if you're enjoying using p5.js. Is there a particular reason you're looking to switch away from p5.js?

Hi Rob!
thank you for your answers and some great context! Lemme tackle them in order:

💯 ack on the potential rabbit hole for making an actual font. Perhaps if I sandboxed font-making to a few weeks, I could explore the upside
What's wrong w/ p5.js or why am I looking at alternatives? Well part of it is language preference, I do C/C++/Python for work and have mature dev environments while for Javascript, I'm improvising/slumming it w/ p5 reference, Sublime & command-r in Chrome 😄  Overall JS has been okay to learn but my code seems "too verbose" for do the small things I want ... like draw or animate a capital R. So perhaps  I need to create more "supporting infra" for my desired tasks.
In contrast, my interest in Coldtype was peaked when I saw how compact the code using it was and thought if I can bring my font, I can directly start experimenting with text that I want to animate ... plus for "lyrics videos" ... I might not want my label logotype to write lyrics and you already have brilliant examples for all kinds motion & transforms. In p5.js, animation is much more basic and not as type specific ..
Finally, community ... I don't know anyone else doing this (let alone in p5.js) so thought it could be fun to contribute/test/discuss with others using the same framework.

Re: Font-making, do you have a preferred tool (on MacOS/*nix)?

All makes sense! I was just looking into p5 & I didn't realize how un-tuned it was for doing precise frame-by-frame animation, so I guess that's definitely one reason to switch to coldtype. And I'm a big fan of abbreviated idioms in code so there's definitely opportunity to write very short expressive code (maybe too short but who's to say).
I'll try to work up an example over the weekend of making a generative font using coldtype + defcon, which is a library that can programmatically edit UFO files, which is the font authoring format I use often in combination with coldtype. I also use the GUI app RoboFont (Mac-only), but that can be quite an up-front investment. I know Glyphs is also very good, but unfortunately the "Mini" version of Glyphs doesn't seem to support UFOs as a format (though the full version does). Either way you don't really need a GUI font editor if your goal to is do just generative fonts, but if you are looking to hand-tweak them in a GUI, either RoboFont or Glyphs is the way to go (if you're on Mac — there are some others out there that seem to be pretty good cross-platform, and runebender is an open-source one I've heard of, but I think it's still under active development).
N.B. Defcon is already included in Coldtype and available when you from coldtype import * (the Font of defcon is then available as the aliased DefconFont since there’s a Font in coldtype as well).
Also worth noting at a high level — the big upside of Python (to me) is that it's the lingua franca for font-programming (as far as I can tell), so there's lots of code out there to learn from / crib from as you get deeper into font programming / font manipulation.
Will update this thread once I've got a working example of font-generation, but basically the overall architecture is: write a coldtype animation where each frame is a DATPen representation of a glyph, i.e. frame 0 is A, frame 1 is B, etc., then you can render that animation into into serialized .pickle files (by setting fmt="pickle" on the @animation decorator), then you write a def release(_) in your coldtype source file that deserializes all the individual pickle files into defcon.Glyph objects (via the .to_glyph() method on DATPen) into a single DefconFont via the .insertGlyph function. Finally I use fontmake to turn the UFO file into, usually, an .otf font file, though .ufo files can be loaded directly in Coldtype, so that's an unnecessary step if your goal is to then use the generated font just in a coldtype script. Lots (tons) of details glossed over there, but thought it might be useful (for myself and anyone reading this) to outline it here off the top of my head.
I think in general learning about how fonts are made is super useful, since the font format can be used for all kinds of things, not just letters (I use .ufo files to catalog logos for Goodhertz, for instance).

Brilliant!  WOW! thanks sooo much for taking the time to make an example 🙇 🙏  It's like I just opened the door to a candy store full delights & tasty opportunities!
Cool, I'm checking out defcon and the UFO format details now, and I'll queue up download & evals of Robotfont & Glyphs to see which I should invest in! Thanks! I don't think I would have found these by googling! 😄  I like the idea of being multifariously manual AND programmatic 😸 as part of my font-creation deep-dive.

Cool! Here’s the full code for a script to generate the glyphs space + ABC, write those glyphs to a UFO, and then preview that UFO file. I'll admit this ended up being a little longer than I expected, and most of it could be abstracted away into a library (potentially as part of Coldtype itself), but it's nice to know that all you need for a full generative font workflow is ~150 lines of Coldtype + the code for the actual generative font glyphs. (This code is also now in the coldtype repo in the examples directory: https://github.com/goodhertz/coldtype/blob/main/examples/generative_font.py)
import datetime
from subprocess import run

from coldtype import *
from coldtype.pens.dattext import DATText

cap_height = 750
descender = -250
font_name = "Generative"
style_name = "Regular"

# decorator class to wrap glyph-building functions

class glyphfn():
    def __init__(self, width=1000, lsb=0, rsb=0):
        """lsb = left-side-bearing / rsb = right-side-bearing"""
        self.lsb = lsb
        self.rsb = rsb
        self.frame = Rect(width, cap_height)
        self.bbox = Rect(lsb + width + rsb, cap_height)

    def __call__(self, func):
        self.func = func
        self.glyph_name = func.__name__
        self.unicode = glyph_to_uni(self.glyph_name)
        return self

# !!! the important part:
# individual functions to draw glyphs
# the function names should be canonical
# "glyphNames" as in assets/glyphNamesToUnicode.txt

@glyphfn(300)
def space(r):
    return DP() # i.e. nothing (since it's a blank space)

@glyphfn(500, 10, 10)
def A(r):
    return (DATPen()
        .rect(r)
        .difference(DP(r.take(100, "mdy")
            .take(20, "mdx")
            .offset(0, 100)))
        .difference(DP(r.take(200, "mny")
            .take(20, "mdx"))))

@glyphfn(500, 10, 10)
def B(r):
    t, b = r.inset(0, 100).subdivide(2, "mxy")
    return (DATPen()
        .rect(r)
        .difference(DP(t.take(100, "mdy")
            .take(20, "mdx")))
        .difference(DP(b.take(100, "mdy")
            .take(20, "mdx")))
        .difference(DP(r.take(100, "mdy")
            .take(100, "mxx"))
            .rotate(45)
            .translate(50, 0)))

@glyphfn(500, 10, 10)
def C(r):
    return (DATPen()
        .rect(r)
        .difference(DP(r.take(20, "mdx")
            .inset(0, 250)))
        .difference(DP(r.take(0.5, "mxx")
            .take(20, "mdy"))))

# !!! end of glyph drawing functions

def find_glyph_fns():
    found = []
    itms = globals().items()
    for k, v in itms:
        if isinstance(v, glyphfn):
            found.append(v)
    return found

glyph_fns = find_glyph_fns()

# our useable output is a UFO file,
# which we should make sure exists
ufo_path:Path = __sibling__("generative_font.ufo")
if not ufo_path.exists():
    ufo = DefconFont()
    ufo.save(ufo_path)

def show_grid(render, result):
    if False: # flip to true if you don't want to see the grid
        return result

    gfn = result[0].data.get("gfn")
    if not gfn:
        print("! No glyph found")
    else:
        bbox = gfn.bbox.offset(0, 250)
        return DATPens([
            DATPens(result).translate(0, 250),
            DATPen().gridlines(render.rect).s(hsl(0.6, a=0.3)).sw(1).f(None),
            (DATPen()
                .line(bbox.es.extr(-100))
                .line(bbox.en.extr(-100))
                .line(bbox.ee.extr(-100))
                .f(None).s(hsl(0.9, 1, a=0.5)).sw(4)),
            (DATText(gfn.glyph_name, Style("Times", 48, load_font=0),
                render.rect.inset(50)))
        ])

preview_frame = Rect(1000, (-descender*2)+cap_height)

@animation(preview_frame, timeline=Timeline(len(glyph_fns)), postfn=show_grid)
def glyph_viewer(f):
    glyph_fn = glyph_fns[f.i]

    ufo = DefconFont(ufo_path)
    ufo.info.familyName = font_name
    ufo.info.styleName = style_name
    ufo.info.capHeight = cap_height
    ufo.info.ascender = cap_height
    ufo.info.descender = descender
    ufo.info.unitsPerEm = 1000

    print(f"> drawing :{glyph_fn.glyph_name}:")
    glyph_pen = glyph_fn.func(glyph_fn.frame).f(0)

    # shift over by the left-side-bearing
    glyph_pen.translate(glyph_fn.lsb, 0)
    glyph = glyph_pen.to_glyph(
        name=glyph_fn.glyph_name,
        width=glyph_fn.frame.w + glyph_fn.lsb + glyph_fn.rsb,
        allow_blank = True)
    glyph.unicode = glyph_to_uni(glyph_fn.glyph_name)
    ufo.insertGlyph(glyph)
    ufo.save()
    return glyph_pen.add_data("gfn", glyph_fn)

@renderable((1080, 300))
def font_previewer(r):
    """
    This function loads the ufo that’s been created by the code
    above and displays it "as a font" (i.e. it compiles the ufo
    to a font and then uses the actual font to do standard font-
    display logic)
    """
    ufo = Font(ufo_path)
    return (StyledString("ABC CBA",
        Style(ufo, 150))
        .pens()
        .align(r)
        .f(0))

# to run this code, go to the viewer
# app while it’s running, then hit cmd+l
# N.B. you'll need to have `fontmake`
# available in your virtualenv, which
# should be as easy as `pip install fontmake`
# with the virtualenv activated

def release(_):
    ufo = DefconFont(ufo_path)
    date = datetime.datetime.now().strftime("%y%m%d%H%M")
    font_name = "_".join([
        ufo.info.familyName.replace(" ", ""),
        ufo.info.styleName.replace(" ", ""),
        date
    ])
    fontmade_path = ufo_path.parent / f"fontmakes/{font_name}.otf"
    fontmade_path.parent.mkdir(exist_ok=True)
    run([
        "fontmake",
        "-u", str(ufo_path),
        "-o", "otf",
        "--output-path=" + str(fontmade_path)])

If you run it in a coldtype virtual environment in the coldtype rep itself, the command would be coldtype examples/generative_font.py and then an app should pop up on your screen and display something like this:

To change glyphs, you just need to hit the arrow keys in the coldtype app while it's running.
I also realized, if you'd rather skip buying a full font editor & you just want to view a UFO in a GUI, then the free app FontGoggles fits the bill, and you should be able to drag the UFO created by the script from Finder directly into FontGoggles & it should show up like this (if you type in "ABC" in the top bar).

Obviously there's a lot going on in that script — happy to answer any & all questions about it.

Amazing!!! 🙇 🙏 Thank you SO much for this amazing response and snippet, as well as the consideration about FontGoogles!!!
I'm gonna get going on this week and will report back. My sense after spending some time w/ Robofont & Glyphs is that I'm gonna spring for those when my 30-day trial is up 😄 🚀 So I'll keep a bg thread on generalized font-science-learning while looking towards getting handy with Coldtype for my living logotype & animation needs!
BTW, I also saw somewhere on your social, your recommendation for "python for designers", so thanks for that too!  👏 👏


Custom field name is not showing. It shows location by default

I had created 3 fields with different name but it shows all 3 fields with same name "Location"

Hey, yes this is a known issue that needs to be fixed.  When I get some free time I will look into it

Yeah sure kindly spare some time and did that
Very thankful ❤


Switch to different method of setting compression level, GZIP env variable is deprecated

Fixed by #11.


Type definitions for Natural 0.2.1

This is the definition file for natural, a natural language processing library. I believe I have set it up properly for contributing to DT.

@dmoonfire Thanks mate!


After valid Sign In browser tab remains opened

Expected Behavior:
After a valid Sign In, tab browser or browser it self should be closed. If Api opens a tab, Api should close it or provide another mechanism for Sig In not based on browser
Actual Behavior
After a valid Sign In tab browser or browser it self is not closed and a ugly text appears (see attachment)
Steps to Reproduce the Problem

Execute https://developers.google.com/calendar/quickstart/dotnet code as is.
Write a valid user name  and password in Sign In page

Specifications
Browsers: Edge (from Win10 v10.0.17134.286), Firefox 62
.NET version: 4.7
OS (Mac/Linux/Windows): Windows

This is the behavior of the Google APIs .NET Client Library. If you'd like to see a change in that library, please file an issue here:
https://github.com/googleapis/google-api-dotnet-client
In general my understanding is that web browsers have restrictions on when pages are allowed to close themselves that prevent it in this case where the browser is launched from the command line.

Hi @erickoledadevrel,
Do you know if it is possible to change this behavior, for example redirect the user to a custom webpage on the net?
Thanks :wink:


Chat - Link preview does not appear except google.com

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Issue found when executing PR https://github.com/Expensify/App/pull/17288
Action Performed:

Go to https://staging.new.expensify.com/
Go to any chat
Send any link

Expected Result:
Link preview appears
Actual Result:
Link preview does not appear except google.com
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/85f8d6d2-d822-4b40-806a-c9f7491bc31a
Expensify/Expensify Issue URL:
Issue reported by: Appause - Internal Team
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0139a876cca4721bb4
Upwork Job ID:<PHONE_NUMBER>143917056
Last Price Increase: 2023-06-15

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Not a blocker because it's a brand new feature, discussed here: https://expensify.slack.com/archives/C01GTK53T8Q/p1686845846653239?thread_ts=1686840921.260039&cid=C01GTK53T8Q

Not a deploy blocker.

@wojtus7 will check the backend for this to see if we need a change there or if there's some other reason this is not working.

Hmm so on first blush... this is working for me fine locally.

But the behavior is different on staging 🤔 which makes me think that we are just getting rate limited as we are still testing on the free tier usage. For now, I will add some more logs.

Oh yes the soft limit is only 50 requests per day LOL we would break that in 0.00001 seconds.

Still on my list to look into.

Still setting up the accounts.

@marcaaron we're not now seeing link previews for other sites except google. Seems like this issue is fixed? cc @hungvu193

Hmm can you clarify what exactly you are seeing? Like what platform are you testing on? Show me what you did?
To give an update - the rate limiting issue should be fixed now. But we might have CSP issues to look into on web since we are loading images and content that are outside our domain.

Sorry, I mean link preview for other sites(except google is seen). I tested right now on production and it worked!

I think we can close this one out then?


Add typeahead delay to main panel search

Performing an immediate search on panel elements causes the DM to hang (or slow way down - depending on the number of fields).  Adding a 900 ms delay allows the user to type in the content they're actually searching for.

Fixed with the PR
https://github.com/atlasmap/atlasmap/pull/680


Social Links

Describe the bug

Hey @Akshatchaube01 I noticed the links to the socials in the footer has some issue.
Twitter and Instagram links are just their website links
It lacks personalized links
If you want to add it, I can add it just give me the socials that you might put there.
If not than It should be removed because it looks unprofessional to put just website links there.

Not looking for this right now


Deployment tutorial update

Updates the walkthrough of the VDC deployment based on Nigel's walkthrough in this morning's call.  Probably still some cleanups we need to do in the configuration itself (eg. hard-coded password / authentication methods), but this should be a start...
(Also fixes a couple minor bugs in the cleanup scripts for the Coco Pharma samples metadata for IGC.)

I've tried to address the hostname hard-coding, but won't be fully-resolved until we can release updated Docker images (currently not possible per #739)...


Add app-desktop module for faster development

We are developing commonMain. Therefore, I believe it would not be difficult to create a desktop app. I think this would help us iterate more quickly than creating and deploying APKs for Android.

I wanna challenge this issue! If it is tough for me, I might say give up...

It's ok! Thank you for your challenge!

I have opened my pull request! Could you please review this PR?
https://github.com/DroidKaigi/conference-app-2024/pull/452
By the way, I challenged to add a feature module, but it may make my PR to be large because of increasing diffs in a chain reaction.
Therefore I only added the app-desktop module that includes MainApplication which refers to API in the design system module 🙏


[QUESTION] - Working with Changing File Permissions

Thanks for adding the chmod direct change feature in version 0.12.0!
I have a couple of questions (suggestions) on it:

The hot key calls up the window for changing rights, but I don’t understand how to check / uncheck it?

Tips about commands (F1) moved out in the help window.

OS: Window 11
Version termscp: 0.12.0

you should be able to do it with <SPACE>


[TEST BUG] SnapshotResilencyTests.testSnapshotPrimaryRelocations very slow

This test is extremely slow (hundreds of seconds). The number of nodes, indexes, or iterations should be toned down.

Thanks @rmuir, can you post the log of this test?  @abbashus I would link this issue with #578.

@abbashus assigning this to you because it's related to 578

Sure @CEHENKLE, will take a look.

Reproduced this with following command and different build envs:
./gardlew clean && ./gradlew ':server:test'  --no-build-cache

Checked the following reports for test run time at
file:///<path-to-OpenSearch-repo>/server/build/reports/tests/test/classes/org.opensearch.snapshots.SnapshotResiliencyTests.html

Environment
max 10 Datanodes, max 10 Shards
max 5 Datanodes, max 5 Shards

Amazon Linux  (Linux 5.11.0-1016-aws)- 48 core- 48 Gradle workers- Max JVM memory heap size 3GB- JVM 14
2m 0.355s
1.110s

Mac OS X 10.15.7- 12 core- 12 Gradle workers- Max JVM memory heap size 3GB- JVM 14
2m 37.060s
1.889s

After tuning down the max datanodes down to 5 and max shards down to 5, I was able to reduce testing time by  2 minutes for both MaOS and Amazon Linux.


Buffer() is deprecated due to security and usability issues

When I use this library like so:
function unzip(src, dest) {
    return extractZip(src, {dir: dest});
}

I get the following error:

(node:3912) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.

Please fix

Which Node version are you using?

node --version: v12.16.2 (LTS)
npm --version: 6.14.4

I'm getting this as well

It'd help if you run your script with node --throw-deprecation so it's more obvious where the Buffer deprecation warning is coming from - because there's no Buffer references in the extract-zip code base.

extract-zip is dependent on yauzl
on line 3 of yauzl's index.js:
var crc32 = require("buffer-crc32");
we see its dependent on buffer-crc32
on line 63 of buffer-crc32's index.js
var buffer = new Buffer(length);
and on line 81
return hasNewBufferAPI ? Buffer.from(input) : new Buffer(input);
We see it calls on new instances of the buffer class
Node now has this feature deprecated, instead its recommended that one should use Buffer.from(<array>)
Its been 4 years since buffer-crc32 has been updated, so i understand why its still there.
But I am unfamiliar with implementing cyclical redundancy checks (like i can even distinguish the importance of it being 32 bit), so this is where my contribution stops

Since this is an issue in a transitive dependency, there's nothing that we can do in the code here to fix it. Please subscribe to https://github.com/thejoshwolfe/yauzl/issues/114 if you want to know the status.

yauzl has had an open PR with a potential fix for this since Feb. Namely the fd-slicer2 package. (it does having breaking changes for node versions 4 and under I believe)
So using that, and as a temporary measure, in an extract-zip fork I'm aliasing a forked yauzl that is aliasing a fixed version (fd-slicer2) of the broken and no longer maintained fd-slicer package.
I post this here because this is something that extract-zip could do since it already requires node 10.17.0+, and could do it without any actual code changes to the forked yauzl (beyond aliasing fd-slicer).  So if/when yauzl is able to resolve this, this change can be reverted rather easily.
It's more of a broken transitive dependency workaround than a real solution. I agree with @malept that the real solution is yauzl resolving 114. That said, it is quick to workaround:
in forked yauzl

npm uninstall fd-slicer then alias it with npm install fd-slicer@npm:fd-slicer2

in extract-zip

npm uninstall yauzl then alias it with npm install<EMAIL_ADDRESS>
and that's it.

additionally, if you wish to fork fd-slicer2 as well, in forked yauzl just change that alias:
npm install<EMAIL_ADDRESS>and as a last note, somewhere along the way i was told to peg an aliased fork to a commit.
(Something about npm's cache and a git repo's HEAD only getting pulled when a dep is initially installed. honestly not sure if that's a relevant/current thing anymore)
To do that just append the alias with #<CommitHash> like
@<GithubUser>/yauzl.git#71c42b5ea24170eeab7147f4b77fbc2c74

It'd probably be easier to use yarn resolutions in this case. Something along the lines of (note: untested):
{
  // ...rest of package.json...
  "resolutions": {
    "extract-zip/yauzl/fd-slicer": "fd-slicer2"
  }
  // ...rest of package.json...
}

But of course, this requires you to use yarn instead of npm.

Oh I wish I could get that work, but Yarn (classic, 1xx version) doesn't seem to support resolutions in this manner (aliasing within a resolution or resolving to a different package), only resolving specific versions.
I tried previously with no luck, but would gladly adopt this instead if I've misunderstood and someone can point me to the correct syntax. (the syntax you suggested doesn't seem to do it)
It IS a feature of Yarn2 (modern), however.  The syntax there is closer to an alias:
  "resolutions": {
    "extract-zip/yauzl/fd-slicer@npm:fd-slicer2": "^1.1.0"
  },

But Yarn2 is a whole other thing, of course, and not available to me at the moment.
I simply don't know enough about it to speculate whether it's applicable to extract-zip resolving the transient dep created issue.
But cheers and thanks regardless!

Perhaps then, you could specify a git branch as a replacement version?

Perhaps then, you could specify a git branch as a replacement version?

I'm not sure which way to read the question, so apologies if I missed it.
If you're asking if that is doable:
Yes, you could:.
"dependencies": {
...
"module": "user/repo#feature\/branch"
...
}

npm install<EMAIL_ADDRESS>If you're asking if I can refer one:
Due to the nature of the error, I think it would be preferable for extract-zip to fork the yauzl repo as described above and offer a minor version bump or branch. Not at all my call, obviously, but it would keep this within the extract-zip maintainers' control until yauzl resolves their issue.
That being said, here are my forks for both extract-zip and yauzl with those single line edits. (they won't be updated once the above issue is resolved by either as I will revert back, full FYI):
my temp fork of yauzl
my temp fork of extract-zip

I do know that you can't specify a git branch in a released npm module, it'd have to specify a real version (range). So specifying that for extract-zip itself is a non-starter.
For the record, I have no interest in maintaining yet another module (I'm stretched way too thin as it is) or changing to a forked version where I don't know who the maintainer is (basically, avoid an event-stream incident).


Lag on sending messages through Android (server 0.1.10, PlayStore release, macOS 14.6, Android 10/OneUI 2.5)

I converted this video to a gif but the file size was too big to attach. See my issue here

I also receive this error when closing the app

@CSab6482 I am currently working on a nightly build to hopefully help fix this issue. I will keep the Discord updated, so go there to get the nightly build when it's available.

Thank you!


Fix failing terraform validate in pre-commit test

This commit fixes a failure in terraform validate as it requires
the GITHUB_TOKEN to be present as of (at least) version 2.8.0.

I raised the issue upstream: https://github.com/terraform-providers/terraform-provider-github/issues/503
don't think we need further steps on our side as this is fixed now by providing the token.
It still breaks local pre-commits when no token is set, but it can be set to a random value.


Query Db?

Is there a way to querry the db for a particular record?
ex. DisclosureForm.find_by(encrypted_name: params[:name])

DisclosureForm.find_by(encrypted_name: SymmetricEncryption.encrypt(params[:name]))


Calling a Soap URL from V2 issue

Does V2 supports calling soap based urls?  Currently we have our app listed in appsource under V1 and we need this to work for V2.
I am trying to call the soap webservices url but running issue when i add the content-type header.
Also how can i resolve the below issue?
i get the error attached.

This is what i have
Content.GetHeaders(Headers);
Content.WriteFrom(XMLRequestString);
RequestMessage.SetRequestUri('http://testurl.com/service1.asmx');
RequestMessage.Method('POST');
RequestMessage.Content(Content);
Headers.Remove('Content-Type');
RequestMessage.GetHeaders(Headers);
Headers.Add('Content-Type','text/xml');
Headers.Add('SOAPAction','http://tempuri.org/InsertProduct');
Client.Send(RequestMessage, ResponseMessage);
If anyone have a sample code on how to call a soap based webservices please post here.

Hi.
I had the same issue as you are having. I never figured out (or I don't remember) what the issue was. But I was able to use the Post method instead of the Send method on the HttpClient. Bellow is my code for invoking a soap web service.
// Setup the content of the web service call
HttpContentWS.WriteFrom(ContentText);
HttpContentWS.GetHeaders(HttpHeadersWS);
HttpHeadersWS.Add('SOAPAction','http://tempuri.org/GetLoginInformation');
HttpHeadersWS.Remove('Content-Type');
HttpHeadersWS.Add('Content-Type','text/xml');

// Invoke the web service
HttpClientWS.Post(GetWebServiceAddress,HttpContentWS,HttpResponseMessageWS);

Thanks Kvaldik.. This worked for me.


Support Vietnamese language translate

I found it can't Chinese cannot translate and export Vietnamese text, and Vietnamese cannot translate and export Chinese text，how deal it ？

Hi, I don't understand what you mean, do you mean Chinese to Vietnamese translation doesn't work?  In which mode do you have this problem?  WalkieTalkie or the text translation mode?


KAFKA-4432: Added support to supply custom message payloads to perf-producer script.

Current implementation of ProducerPerformance creates static payload. This is not very useful in testing compression or when you want to test with production/custom payloads. So, we decided to add support for providing payload file as an input to producer perf test script.
We made the following changes:

Added support to provide a payload file which can have the list of payloads that you actually want to send.
Moved payload generation inside the send loop for cases when payload file is provided.

Following are the changes to how the producer-performance is evoked:

You must provide "--record-size" or "--payload-file" but not both. This is because, record size cannot be guaranteed when you are using custom events.
e.g. ./kafka-producer-perf-test.sh --topic test_topic --num-records 100000 --producer-props bootstrap.servers=<IP_ADDRESS>:9092 acks=0 buffer.memory=33554432 compression.type=gzip batch.size=10240 linger.ms=10 --throughput -1 --payload-file ./test_payloads --payload-delimiter ,
Earlier "--record-size" was a required config, now you must provide exactly one of "--record-size" or "--payload-file". Providing both will result in an error.
Support for an additional parameter "--payload-delimiter" has been added which defaults to "\n"

@ijuma can you please review?

@guozhangwang @dguy @mjsax @norwood @enothereska can you please take a look?

@norwood Thanks for the review. I've removed the validation for record-size and payload-file and added them to a MutuallyExclusiveGroup as suggested.

Jenkins build job is failing due to time out.

rt

@norwood, can you please review and let me know if this can be merged?

@junrao @ijuma @guozhangwang  Can you please review and merge?

@junrao @jkreps @guozhangwang @ijuma @mumrah @sriramsub @d3fmacro : Guys, this PR has been open for a long time. It has been reviewed by @norwood . I'd really appreciate if one of you can take a look and merge this.

@SandeshKarkera : Thanks for the patch and sorry for the delay. LGTM


chore: always require native messaging permission

On chrome based browsers we can not request permissions on they fly.
Requesting the native messaging permission requires a restart
This would kick the user out of the onboarding process.
To work around this we now always require the native messaging permission.

Merging, but let me know if somebody has comments.


i cant set the velocity to axis1 , out of loop close

Hey, I have two hoverboard motors and an ODrive. I calibrated the two brushless motors as mentioned in the ODrive documentation. Now, I want to use these motors in ROS. I'm using the ODrive with the odrive_ros2_control package. However, I'm facing an issue where I can only control the velocity of axis0 (joint0). After 5 seconds of loading the controller, joint1 of axis1 goes out of closed-loop control and i cant set the velocity to this joint1

Can you suggest where the problem might be? I have used the same diffbot odrive_ros2_control. If you have any questions, please leave a comment and I will provide more information."

i have video for this because it +10 mb i cant upload

just update :
i think i got the problem where is so when i set the watchdog with same time or deseable for both of axis the axis0 run normly and the axis 1 go out but when i increase the watch dog of the axis1 the axis 0 go out so how i can solve this problem ? i use the same exemple of diffbot with the real odrive

Yes, watchdog_timeout may still be too short on some platforms. We set up the watchdog in on_init() and feed the dog in on_activate() and write(). So, if you take too long to start, you may not be able to feed the dog in time. The current problem of long startup time is most likely caused by DDS. See https://github.com/Factor-Robotics/odrive_ros2_control/issues/28#issuecomment-1406365742.

thanks for replaying @borongyuan but my problem is not take to long to startup , it start the odrive in time but one of the axis go out of control after while !
i will give u exemple i use Diffbot exmple with the real odrive and two hoverboard motor when i launch the launch file the odrive is ready and the two of the axis is in the close loop after i use teleop to send the velocity to start driving the motor the both axis start togather and after 5s the axis 1 go out of control and go out of close control (spin in the idle mode) so what's the problem here ????

this is my terminal when i launch diffbot launc file that u provide in your

and when i have to send the velocity command i use telop

and i have set my DDS communication before because i have used nav2 to this :

i have video for my similation running but i cant post it here can u give me your email to give u permition to see it in Google drive
My setUp is:
ROS Humble and my odrive firmware is 0.5.1
Ubuntu 22.04
thanks for your time :+1:

This is most likely an issue releated to watchdog and real-time communication. Linux system is not a real-time system unless the real-time patch is applied. The default configuration of DDS can also cause various problems. So you are using Cyclone DDS. Good choice. Most people find it causes less problems than Fast RTPS. You can refer to the documentation of DDS Tuning information. These will only help you reduce the chances of failures. We need to further investigate the reason. I have also encountered single axis failures before, but very occasionally. If I remember correctly, it is also under the Humble+Cyclone DDS environment. Another thing you can check is, after the failures, shut down ros processes, use odrivetool to dump_errors(). Please check if there are only watchdog related errors. If so, disable watchdog in URDF to temporarily avoid this problem. I'll change the USB communication to asynchronous later to improve performance, but I can't guarantee completion time.

hey MR @borongyuan the issue was solved by soldring capasitor in the both of the M1 and M0 (the value of capasitor is 22nF and for me i use 47nf ) u can check th odrive community the error is given [ERROR_ILLEGAL_HALL_STATE].  you can the this link  to read more about error


SVG + expression tests. Unsafe expressions in SVG

Unsafe expressions were disallowed inside the SVG context. This permits them to occur.

Please test on IE9, sez the powers that be.

This does not pass in IE9:

and it also fails in MS Edge :-( and all between.

Fighting sauce regarding a spurious Firefox failure on Sauce, but this is good to go (IE9 through Edge).
I can rewrite the tests in the style of the update tests in https://github.com/tildeio/glimmer/pull/70, but would prefer to see those approved and merged before going too far down that path.

@chancancode @wycats this is really g2g now, I believe. :tada:

Grr, rewritten tests all pass in IE9 but IE9 wants to self-close SVG in a token comparison :sob: will fix.

Awesome work! :tada: :clap: :clap: :clap:


e-mail broken : basic authentication not allowed with 2FA enabled

@justinwb @jaxoncreed @michielbdejong
Testing v5.5.3 but not related to v5.5.3
solidcommunity.net is using a sendgrid account to send mails.
Apparently the policy as from 4 quart 2020 do not allow any more basic-authentification
Invalid login: 535 Authentication failed: Basic authentication is not allowed with 2FA enabled.
To fix, see https://sendgrid.com/docs/for-developers/sending-email/authentication/#basic-authentication

Could this be part of the solution :
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-18-04

There was an issue with the mail relay account. Was able to resolve that, and just received mail from a test of forgot password reset. If you can confirm it's also working for you I think you can go ahead and resolve this.
Note that you'll need to update the mail config for the test server as well

Thanks @justinwb
resolved its working for current and test server

@justinwb Sorry in fact I mistakenly resend twice the reset passwd on solidcommunity.net
It is not resolved for solidcommunity.net:8443
I made a pm2 restart and cleared the browser cache

@bourgeoa

Note that you'll need to update the mail config for the test server as well

;)  I should've gone ahead and done that last night at the same time. Should be resolved for both now.

@justinwb Thanks. Sorry I need to learn to read slowly


[BUG]: mapWith isn't working on extras when doing relational queries with findFirst or findMany

What version of drizzle-orm are you using?
0.28.5
What version of drizzle-kit are you using?
0.19.13
Describe the Bug
extras: {
   polygon: sql`ST_AsGeoJSON(${polygon.geometry})`
   .mapWith(polygon.geometry)
   .as("polygon"),
   centroid: sql`ST_AsGeoJSON(${polygon.centroid})`
   .mapWith(polygon.centroid)
   .as("centroid"),
}

The mapWith isn't executing the fromDriver callback on the custom type:
export const geometry = customType<{ data: Geometry; driverData: string }>({
  dataType() {
    return `geometry(Polygon, 4326)`;
  },

  // BUG: this is not being executed when doing `mapWith`
  fromDriver(value: string): Geometry {
    try {
      if (typeof value === "string") {
        return JSON.parse(value);
      }
      return value;
    } catch {
      throw new Error(`Invalid geometry: ${value}`);
    }
  },
});

Expected behavior
It should parse the value received from the driver, as for now I fix the result with custom hacks.
Environment & setup
NODE: 16.19.1
POP_os: 22.04

Just figured out that if I cast it to json, there's a JSON.parse being done? Confused, maybe this might not be a bug
// This works
extras: {
   polygon: sql`ST_AsGeoJSON(${polygon.geometry})::json`
   .mapWith(polygon.geometry)
   .as("polygon"),
   centroid: sql`ST_AsGeoJSON(${polygon.centroid})::json`
   .mapWith(polygon.centroid)
   .as("centroid"),
}

I'm noticing that decoders on sql statements that are part of subqueries aren't being executed - I'm wondering if that's related?

I think I have the same issue. For example, a program table that has many(student):
const res = await db.query.program.findMany({
    extras: {
        studentsCount: sql<number>`(select count(*) from student s where s.program_id = program.id)`
            .mapWith(Number)
            .as("students_count")
        }
});

studentsCount is always returning as a string.

I am experiencing the same, where mapWith is not doing anything when used with Query API:
    const user = await db.query.users.findFirst({
      extras: (user, { sql }) => ({
        displayCorrections: sql<boolean>`COALESCE(JSON_VALUE(${user.settings}, '$.displayCorrections'), 0)`
          .mapWith({ mapFromDriverValue: (value) => value === 1 })
          .as('displayCorrections'),
        dashboardLayout: sql<object>`JSON_VALUE(${user.settings}, '$.dashboardLayout')`.as('dashboardLayout'),
      }),
       where: (user, { eq }) => eq(user.username, username),
      })

Also, I couldn't get it to work when the value is NULL, so I had to COALESCE to default to false.