Feature Request: add option to handle simple clicks as paths not as circles

Do you want to request a feature or report a bug?
Feature Request.
What is the current behavior?
Single clicks in SignaturePad generate svg:circle instead of svg:path on method SignaturePad.prototype._toSVG.
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
	<circle r="1.5" cx="38" cy="67" fill="rgb(22, 90, 175)"/>
</svg>

This would lead me to implement also svg:circle in an other component on my project.
Could you change the general behaviour (or add an option) to use svg:path instead of svg:circle?
It would simplify my further processing of the signature/svg.
This code would be sufficient, in method SignaturePad.prototype._toSVG:
function (rawPoint) {
	      var path = document.createElement('path');
	      var attr = 'M ' + rawPoint.x.toFixed(3) + ' ' + rawPoint.y.toFixed(3) + ' l 1 1';

	      path.setAttribute('d', attr);
	      path.setAttribute('stroke-width', '2');
	      path.setAttribute('stroke', _this2.penColor);
	      path.setAttribute('fill', 'none');
	      path.setAttribute('stroke-linecap', 'round');

	      svg.appendChild(path);
  }

Which versions of SignaturePad, and which browser / device are affected by this issue? Did this work in previous versions of SignaturePad?
SignaturePad: current
browser/os: all

closing as stale

Hi,
I know it's an old request, but can it please be implemented?
I'm working on a project where I can only use svg paths.
So I converted the signature's svg base64 to paths by doing a DOMParser, and because dots created as circles, they are not showing up in the final result.
this is what i'm trying to do, it works fine for the paths, but it won't include the circles.
var svgurl = signaturePad.toDataURL('image/svg+xml');

var svgbase64 = svgurl.split(",")[1]
let svg = atob(svgbase64)
let parser = new DOMParser();
let xmlDoc = parser.parseFromString(svg, 'image/svg+xml');
let d = xmlDoc.getElementsByTagName('path');
for (i = 0; i < d.length; i++) {
      let text = d[i].getAttribute('d');
      console.log(text)
    }

thanks.


Saving JSON data with embedded objects fails

OrientDB Version, operating system, or hardware. v2.2.10
Operating System

[X] Linux
[X] MacOSX

Expected behavior and actual behavior
Expected to save serialized JSON classes with embedded classes when they one-to-one have the same structure as classes in orientdb, but it doesn't work. Per Luigi's request, I'm pasting the issue here from the google groups. Just for the reference, my original question can be found here: https://groups.google.com/forum/#!topic/orient-database/hFhYyE5da-A
I'm working on the application, which will need to store different objects of complex structure (objects inside of objects). For example, Person object may have Address object, Contacts, and may need to link to some other objects, etc. Sometimes these objects may go few levels deep. I created the class with an embedded class and it all works good when I run query in the console. I have to use these extra fields ("@type":"d", "@class":"Address") in the embedded object in order for the query to understand the embedded object.
Here is example of a working query:
insert into Account (company, website, address) values ('Seller 0', 'http://www.seller0.com', {"@type":"d", "@class":"Address", "street":"1234 Sunset Dr.", "city":"Santa Monica", "state":"CA", "zip":"90046"})

The problem I"m running into, is that I will need to do this functionality dynamically in Java and I have modeled my java classes to be exact as the classes in the database, which makes sense to me and would save a lot of time. However, when I serialize my Java object into JSON and create ODocument object from this JSON, on save() the database is not taking it. Here is example of one simple serialized java object:
json =
{
    "account": "#25:0",
    "meta": {
        "created": "2016-10-03T21:10:21.77-07:00",
        "ip": "0:0:0:0:0:0:0:1",
        "contentType": "application/x-www-form-urlencoded",
        "userAgent": "PostmanRuntime/2.5.2"
    },
    "data": "firstName=Jessica&lastName=Smith"
}

When I use this logic it fails:
**ODocument d = new ODocument("RawLead").fromJSON(json);
d.save();**

I get Java error: **Error: Error during saving of record with rid #-1:-1**
For the above JSON I have the following "RawLead" class with embedded "LeadMetadata" class:
CLASS 'RawLead'
PROPERTIES
+----+-------+--------+-----------------+---------+--------+--------+----+----+-------+-------+

|#   |NAME   |TYPE    |LINKED-TYPE/CLASS|MANDATORY|READONLY|NOT-NULL|MIN |MAX |COLLATE|DEFAULT|
+----+-------+--------+-----------------+---------+--------+--------+----+----+-------+-------+
|0   |data   |STRING  |                 |true     |false   |true    |    |    |default|       |
|1   |meta   |EMBEDDED|LeadMetadata     |true     |false   |true    |    |    |default|       |
|2   |account|LINK    |Account          |true     |false   |true    |    |    |default|       |
+----+-------+--------+-----------------+---------+--------+--------+----+----+-------+-------+

CLASS 'LeadMetadata'
PROPERTIES

+----+-----------+--------+-----------------+---------+--------+--------+----+----+-------+---------+
|#   |NAME       |TYPE    |LINKED-TYPE/CLASS|MANDATORY|READONLY|NOT-NULL|MIN |MAX |COLLATE|DEFAULT  |
+----+-----------+--------+-----------------+---------+--------+--------+----+----+-------+---------+
|0   |created    |DATETIME|                 |false    |true    |false   |    |    |default|sysdate()|
|1   |ip         |STRING  |                 |true     |false   |true    |7   |40  |default|         |
|2   |userAgent  |STRING  |                 |true     |false   |true    |1   |100 |default|         |
|3   |contentType|STRING  |                 |true     |false   |true    |4   |50  |default|         |
+----+-----------+--------+-----------------+---------+--------+--------+----+----+-------+---------+

I assume it's because I don't have the magic fields ("@type":"d", "@class":"Meta") in my JSON. If this is correct, I need an advise on how to go around it or maybe there is a different and more straight forward way of doing it? I was hopping that I can simply serialize my exact Java objects into JSON format then create ODocument and simply save it in the database. That would be so awesome.
Let me know if you need any additional info or if you want me to try anything. Thanks.

Hi @borov333
I just pushed a fix on 2.2.x, the fix will be released in 2.2.12
Thanks
Luigi

Great - thanks, looking forward!

@luigidellaquila
Do you know when the 2.2.12 will be available? I have so many logic elements depend on this bug fix.
Thanks.

Hi @borov333
I hope we'll be able to do it this week
Thanks
Luigi

Luigi,
I just upgraded to v 2.2.12 and executed my tests to create a document using fromJson(...), but it seems to me that the bug is still there. Look at these 2 tests below:
This one is a plain JSON as it is generated by the Gson parser. All fields are identical to the class structure. It just sadly fails.
Raw Lead JSON:
{
    "account": "#25:0",
    "meta": {
        "created": "2016-10-21T20:49:54.943Z",
        "categoryId": 1,
        "source": "AAA",
        "subSource": "sub-aaa",
        "ip": "<IP_ADDRESS>",
        "contentType": "application/x-www-form-urlencoded",
        "userAgent": "Mozilla - Firefox"
    },
    "data": "categoryId=2&firstName=Mike&lastName=Smith"
}
Error: Error during saving of record with rid #-1:-1
	DB name="Customers"

This one has "@type":"d", "@class":"RawLead" for the outer class and  "@type":"d", "@class":"RawLeadMeta" for the inner class added. Only with these magic I can create document from JSON directly.
Raw Lead JSON:
{
    "@type":"d", "@class":"RawLead",
    "account": "#25:0",
    "meta": {
        "@type":"d", "@class":"RawLeadMeta",
        "created": "2016-10-21T20:49:54.943Z",
        "categoryId": 1,
        "source": "AAA",
        "subSource": "sub-aaa",
        "ip": "<IP_ADDRESS>",
        "contentType": "application/x-www-form-urlencoded",
        "userAgent": "Mozilla - Firefox"
    },
    "data": "categoryId=2&firstName=Mike&lastName=Smith"
}
Raw lead saved

Here is my java logic:
        try (ODatabaseDocumentTx db = DbPool.getConnection()) {
            String json = Json.toJson(lead);
            System.out.println("Raw Lead JSON:\n"+ json);

            ODocument d = new ODocument("RawLead").fromJSON(json);
            try {
                d.save();
                System.out.println("Raw lead saved");
            } catch (Exception e) {
                System.out.println("Error: " + e.getMessage());
            }
        }

Here are the 2 participating classes:
orientdb {db=Customers}> info class RawLead
CLASS 'RawLead'
Records..............: 4
Super classes........: [V]
Default cluster......: rawlead (id=57)
Supported clusters...: rawlead(57), rawlead_1(58), rawlead_2(59), rawlead_3(60)
Cluster selection....: round-robin
Oversize.............: 0.0

PROPERTIES
+----+----------+--------+-----------------+---------+--------+--------+----+----+-------+-------+
|#   |NAME      |TYPE    |LINKED-TYPE/CLASS|MANDATORY|READONLY|NOT-NULL|MIN |MAX |COLLATE|DEFAULT|
+----+----------+--------+-----------------+---------+--------+--------+----+----+-------+-------+
|0   |statusNote|STRING  |                 |false    |false   |false   |    |    |default|       |
|1   |data      |STRING  |                 |true     |false   |true    |    |    |default|       |
|2   |meta      |EMBEDDED|RawLeadMeta      |true     |false   |true    |    |    |default|       |
|3   |account   |LINK    |Account          |true     |false   |true    |    |    |default|       |
|4   |status    |STRING  |                 |false    |false   |false   |    |    |default|NEW    |
+----+----------+--------+-----------------+---------+--------+--------+----+----+-------+-------+
orientdb {db=Customers}> info class RawLeadMeta
CLASS 'RawLeadMeta'
Records..............: 0
Super classes........: [V]
Default cluster......: rawleadmeta (id=53)
Supported clusters...: rawleadmeta(53), rawleadmeta_1(54), rawleadmeta_2(55), rawleadmeta_3(56)
Cluster selection....: round-robin
Oversize.............: 0.0

PROPERTIES
+----+-----------+--------+-----------------+---------+--------+--------+----+----+-------+---------+
|#   |NAME       |TYPE    |LINKED-TYPE/CLASS|MANDATORY|READONLY|NOT-NULL|MIN |MAX |COLLATE|DEFAULT  |
+----+-----------+--------+-----------------+---------+--------+--------+----+----+-------+---------+
|0   |subSource  |STRING  |                 |false    |false   |false   |    |    |default|         |
|1   |created    |DATETIME|                 |false    |true    |false   |    |    |default|sysdate()|
|2   |ip         |STRING  |                 |true     |false   |true    |7   |45  |default|         |
|3   |userAgent  |STRING  |                 |true     |false   |true    |1   |256 |default|         |
|4   |source     |STRING  |                 |false    |false   |false   |    |    |default|         |
|5   |categoryId |INTEGER |                 |false    |false   |false   |    |    |default|0        |
|6   |contentType|STRING  |                 |true     |false   |true    |4   |50  |default|         |
+----+-----------+--------+-----------------+---------+--------+--------+----+----+-------+---------+

Let me know if I can get you any other info. Really hope that this bug can be fixed ASAP as I have my project stalled on it.
Thanks,

Hi guys, are you looking at it and will re-open this issue or shall I re-submit it as a new issue? Thanks.

Hi @borov333
I'm reopening this for a check
Thanks
Luigi

Let me know if I can run any additional tests on my end to help you speedup and narrow down the bug.
Also just curious, I'm the only one trying to create documents this way directly from JSON? Seems to me that this is one of the most viable features and advantages of OrientDB, but I didn't see others complaining.

Hi @luigidellaquila, can you please look into this bug. We really stalled in the project here.
Thanks.

Hi @borov333
@tglman is checking it
Thanks
Luigi

hi @borov333,
I think your finding are correct, and there is actually a reason behind it. so as you said:
"This one has "@type":"d", "@class":"RawLead" for the outer class and "@type":"d", "@class":"RawLeadMeta" for the inner class added. Only with these magic I can create document from JSON directly."
This is correct you need to specify a class with "@class" if you don't do so, orient should give you an error in the same way if you specify a class that is not the same of the one specified in the schema.
Silent automatic conversion cannot be done because would mean hide a mistake in the application logic.
one thing that can come to your help is:
 ODocument d = new ODocument("RawLead").fromJSON(json, "noMap");
the "noMap" is a setting for our json parser to force it to create ODocument from "{}" json block instead of Map, without need to specify "@type":"d"
for inject the @class field you can try to play with the Gson Type adepter: https://google.github.io/gson/apidocs/com/google/gson/TypeAdapterFactory.html
Another suggestion, in case of updated is better to use the merge for case like your:
ODocument d = new ODocument("RawLead").fromJSON(json);
ODocument fromDb = db.load(d.getIdentity());
fromDb.merge(d);
db.save(fromDb);

hope this help.

Hi @luigidellaquila and @tglman,
Wow! I didn't expect that behavior by design. I was able to traverse the JSON tree and insert the @class along with @type properties for every object - took me some time to do the logic so that it's dynamic for different json structures.
I can understand that for the internal mechanics you may need to have these 2 magic fields in for every object and perhaps its really not a big deal when you construct a ODocument object manually once in code.
I don't want to push my thinking forward as you're more experienced and better understand how the DB shall function internally, but wanted to share my thoughts, since I just went through this use case and perhaps other users may have similar needs.
We have many Classes where each represents a specific data structure (all have multiple tiers of embedded objects and some are embedded lists). For example an AutoInsuranceLead, which has structure like in the picture below:

Now, imagine that there are literally hundreds of objects to represent different types of leads for different verticals.
Our users will submit data via and API in exact JSON structure as we defined in our database. What would really be nice is to simply take that JSON and save it in the database (since we know which class the JSON is for in each API call). If database can't understand it's structure or one of the embedded objects is not what it shall be it is perfectly fine for the database to through an exception with a message. However, because of the magic fields, we had to create a custom logic to get the actual class schema from the database (extra db call). Then, traverse the given JSON and match each node with a class name from the schema for each embedded object just to inject the proper @class field.
First, this logic is complex, second it is unnecessary and third we're doing something that could be done inside of the database itself since all info is available in the schema for each class.
Again, maybe most OrientDB users don't have similar use cases and it's not needed or if there's a better way to achieve the same functionality please share.
Thanks for your help and explanation on how db is working internally.

This sounds like a weakness in your API and not the database. Not even MongoDB will do what you are asking for, or rather, not in that manner. I might be going out on a limb here, but it sounds like you are confounding the NoSQL concept a bit. I don't mean to be insulting. Please don't take it that way. 😄 I'll try to explain myself, but will probably fail, as I often do. LOL! In the end, I think we are both looking for similar things from ODB.
You wrote

in exact JSON structure as we defined in our database

ODB's internal structure or schema isn't defined through JSON, nor is it determinable out of JSON. In other words, if you send JSON to ODB, ODB simply stores that data as it is and expects you and your application to keep up the the data structures, aka the schema. ODB, as you have found out, won't bother with those structures in JSON objects and them meeting any schema definitions. That is the way any schemaless design is actually supposed to work. The schema is in the application. That is also how MongoDB works and was primarily designed to do. It is also something I am asking for here too.
Someone from ODB please correct me if I am wrong in my assumption above.
I am not sure if you realize this, but if you do store data through JSON objects in ODB, and avoid schema definitions (because they aren't enforced anyway), that data isn't indexable at all either. You will have a doozy of a time doing queries on that data, namely, if it gets anywhere near big, you will be screwed. This is something I personally find a shame. To me, it means ODB must take the "schemaless" out of their marketing, because storing schemaless data in ODB and be able to query on it simply isn't going to work at all.
I'd suggest looking for ways to abstract the data structures in your application better.
One other idea is to use GraphQL as your API. This, from what I take of your use case, might simplify (by giving you that abstraction) to simplify your API. Just an idea. It sounds like you've already invested a ton of work already. I hope I am not disappointing you.
Scott

hi @borov333,
Can we consider this solved for you ?
Bye

Hi @smolinari,
I appreciate you taking your time to explain the details and raising concerns. I believe I may've confused you in few of my earlier statements which led you to believe that we're storing the data based on the JSON format in schema-less way. It is actually the complete opposite. We are not using schema-less design in any parts of our application (at least for now we haven't had a need for it).
All classes are created in a complete schema-full manner. In fact, almost all properties have further constraints, which are referenced in the internal data validation,  and indexes placed on the most commonly queried properties.
What I really meant by "Our users will submit data via and API in exact JSON structure as we defined in our database", is that we use JSON only as a means of inserting the data into well structured schema-full classes. We derive the JSON format from the classes structure. We then give our users specs on what data and structure we expect to get via API and asking them to send it to us in the JSON format.
This way, we can quickly save the data utilizing fromJson(...) method of an ODocument object. It works fine, because we receive the data for so many classes and we don't have to code each class separately to just insert its data. With such flexibility, we can always update the data structure or add new classes into the database. All that we'll have to do is to simply update the specs for our users and all without touching the line of code.
The only caveat I ran in was that we need to inject @class into each JSON object in order to create ODocument using fromJson(...) method. This seems to be a short coming of the database, since the class structure is already known to the database and it could simply take the JSON string in the fromJson(...) method and parse it by referencing the given class name and its schema. If it runs into issues with the structure it can through an exception, but if not, it can build the class by referencing the internal class schema.
We succeeded to code this outside to just inject @class into each object inside of the JSON structure and then we use fromJson(...) method to successfully store the data. But, it would be nice if db could do it internally, just take the JSON string and if it is correctly structure as defined in the Class store it.
Again, maybe our use case is too specific for us and there is no real need for others. Just sharing my thoughts here :)

Hi @tglman,
Yes, please close this issue. Thanks.

@borov333 - maybe it is my misunderstanding with how the fromJson() method works. If it actually takes the defined schema into account, then my whole premise was wrong (and why I asked for correction). I am not a Java dev. 😄
One thing does still leave an open question for me.
You said

it can build the class by referencing the internal class schema.

Can you explain that a bit more? Are you expecting ODB to build schema from the JSON?
Scott

Gladly @smolinari,

it can build the class by referencing the internal class schema

I think I typed it too fast :) Should be instead "it (the database) can create a class data (vertex) by referencing the internal class schema. Here is a simple example:
Class Person has property contact (embedded class) and vehicles (embedded list). I can ask our users to simply send us a JSON like this:
{
    "contact": {
        "firstName": "Mike",
        "lastName": "Stivenson",
        "email"<EMAIL_ADDRESS>    },
    "vehicles": [
        {
            "year": 2015,
            "make": "Toyota",
            "model": "Prius",
            "subModel": "LX"
        }
    ]
}

If the JSON is in the correct structure as the class person expects, which designed in a complete schema-full way, then I'd expect OrientDB to take this JSON and create the class data (vertex). If the JSON has something that is not defined by the Class Person schema, through an exception.
I hope you can see how simple it would be to use the fromJson(...) method and give it the JSON string in the format which represents the Class's properties structure. This way we can have many different classes defined in different formats and as long as we know the class's name we can drop the JSON string and viola - we got a new record inserted into schema-full class. We can create and change classes in the OrientDB without needing to touch the code again - full flexibility. Instead, we had to create a custom logic which must retrieve the class's schema from the db first, then traverse both the given JSON and the schema object to find a right class name from the schema for each embedded object and insert it as @class into each JSON object. All that effort just because we can't use fromJson(...) method without the @class magic field.
So, in the end we achieve the same result we aimed at but now our JSON must look like this in order for fromJson(...) to even work:
{
    "@type": "d",
    "@class": "Person",
    "contact": {
        "@type": "d",
        "@class": "Contact",
        "firstName": "Mike",
        "lastName": "Stivenson",
        "email"<EMAIL_ADDRESS>    },
    "vehicles": [
        {
            "@type": "d",
            "@class": "Vehicle",
            "year": 2015,
            "make": "Toyota",
            "model": "Prius",
            "subModel": "LX"
        }
    ]
}

The reason I originally raised this question is because we doing all this logic just to inject @class fields into the JSON and we reference Class's schema for it to be dynamic. The thing is, OrientDB already has the schema for each class and it knows the class name for each of the embedded objects (assuming they are defined) and therefore it could theoretically perform this action internally during the un-marshaling process when processing the given JSON in fromJson(...) method. That would be less buggy than our custom code and make things simple.
Maybe there's a good reason why it's not working this way that internal developers can share? Or maybe it can be implemented in the future releases?

That's right. To find out which class does a JSON belongs to we require user to send a special category id in the API call, which is internally mapped to a class name. We use that category id for other validation purposes, such as permissions check, etc. prior to even saving the JSON.
So, when we get to the point of saving the record we already know the class name and simply doing this:
save(String className, String json) {
    ....
    ODocument d = new ODocument(className).fromJSON(json);
    d.save();
}

Your suggestion to embed "person" right into the JSON structure is also great and flexible. A developer can just grab the first JSON object and use it's name for the class name and further select the JSON's sub-structure as the actual class structure to pass into fromJSON(...) method. Or, even better, would be nice to have the fromJSON2(...) method which would use the first JSON object as the class name if the class name is not provided in new ODocument() constructor, but that's even more to ask for :)
Now do you see how helpful would it be for us to avoid going through the extra custom JSON and Class Schema traversing logic for @class field injection into the given JSON?

Sure. Your request is a similar to my OEP I linked to above. I'm just coming at it from a different angle. The basic premise is, the schema metadata should be in the background and ODB should be taking care of it automatically. That is what makes a NoSQL database NoSQL. LOL!
If I may ask, why can't the API use class names directly? Why the need for the conversion from cat ids?
Also, how and when do relationships enter your scenario?
Scott

We debated for sometime internally if we need the conversion from id to a class name. Ideally we don't need to use the conversion and can reference the class names directly that's true. The reasoning behind was not to expose the internal structure to external users.
Our clients need to indicate what data they submitting. If we tell them to use the class name (inside or outside of JSON), what if we decide to rename the class internally? In that case we'll have to inform all users to use the new name and for some it'll require to reprogram API on their end. IDs allow us to provide that layer of indirection. That's pretty much the only reason for the conversion.
Regarding the "how and when do relationships enter your scenario", can you please explain what do you mean?

Currently we're talking about storing documents, but nothing about storing relationships between the documents. In the diagram you posted above about the lead, you have a number of relationships. Some could be embedded, like the address, but what about the rest? Or are they all embedded?
Scott

O, I see. Yes, all of them are embedded. They simply define the structure of the document for at least for this use case. We did however brainstormed about a possibility to create a real graph from different parts of the incoming documents, but at this time we don't have the need for it yet.

Interesting you took OrientDB for your use case. MongoDB sounds like a much better fit from a document storage perspective. But certainly, if you intend to use relationships later, OrientDB is a great choice too. I came from wanting to use MongoDB in my "dream" project to OrientDB and I am still sticking with them. I think Version 3 will be a breakthrough, as they have gained a lot of experience over the few years with the first two version. They now know, where to tighten the screws to get ODB to be a main player. I would even say, it will blow past Neo4J and even could fight with MongoDB, should they get the quality, performance and intuitiveness of the APIs down pat, which is what they are heading for from what I can tell. The only thing I wish for more is the NoSQL model be better supported with self-determining schema and indexing (as explained in my OEP). If they get that done too, ODB will represent one of the most and modern multi-model databases on the market. I can't wait! 😄
Scott

I like the approach OrientDB took by combining graph and document databases in one. I think it's smart and can solve real business problems more efficiently. We used MySQL for years and recently used Redis for speed and caching, but once we started to operate in multi million records space things with MySQL started to degrade. Of course we could invest more in re-architecting certain logic and get faster servers, but it just didn't feel right. From my analysis we can dramatically benefit with graphs in some parts of the system and with documents in the other. We get a lot of data in JSON format and before we had to just drop it into tables and later process them in code. With OrientDB I really like the idea of schema and schema-less concepts and it seems like a perfect fit for our use cases.
Again, I'm personally really fresh to graphs and documents databases, I'm coming from the relational world and there is obviously a learning curve. But, so far what Orient does feels right and simple enough to get up to speed. I feel their vision and simplicity approach. Those are primary reasons for us to select them. We working on this new project and from ground up decided to architect it with graph and documents db. So far Orient really seems as the right choice we made. They do have few kinks here and there that should be ironed down, but I love the fact that the guys are responsive. The fact that they are on top of the issue and question boards really gives us confidence that we're going with the right team.
I'm really looking forward to 3.0. Hope it won't be hard to migrate though.

Interesting. Was MySQL sharding not a possible solution?
And yes. The ODB team do have their hearts in the right place. If 3.0 turns out like I think it will and more people like us can support them monetarily too, I think OrientDB will become a more prominent player in the DB industry.
Scott


Looking to grab the event id from sentryInstance.captureException

Hey, this middleware made it really easy for me, they only thing is that I'm looking to get the eventId to attach to the forwarded error and pass to the client.

Added a pull request for this https://github.com/BrunoScheufler/graphql-middleware-sentry/pull/100

@ryankauk hey! Sorry for getting back to you this late, I'll immediately have a look at your PR 👍


No Script File

Hey I cant seem to get this to work. Im doing everything in the setup, although my Program.cs file has some more things to it:

// Add services to the container.
builder.Services.AddRazorComponents().AddInteractiveServerComponents();

builder.Services.AddHttpContextAccessor();
builder.Services.AddDistributedMemoryCache();
builder.Services.AddAntiforgery();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error", createScopeForErrors: true);
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseStaticFiles();
app.UseAntiforgery();

app.MapRazorComponents<App>().AddInteractiveServerRenderMode();

app.Run();

I there anything in here that might interfer with how this package works?
DOM looks like this:

Home.razor file:
@page "/"

<PageTitle>Home</PageTitle>
<PageScript Src="./Components/Pages/Home.razor.js" />
<h1 class="text-sm text-blue-800 m-auto w-fit z-10">
    Home
</h1>

Home.razor.js:
// Called when the script first gets loaded on the page.
export function onLoad() {
    console.log('Load');
}

// Called when an enhanced page update occurs, plus once immediately after
// the initial load.
export function onUpdate() {
    console.log('Update');
}

// Called when an enhanced page update removes the script from the page.
export function onDispose() {
    console.log('Dispose');
}

Tried to clone project as well, doesn't work.

Hm, looks fine to me. Some questions:

How are you getting the <PageScript /> component into your app? Are you consuming the NuGet package or copying the source code into your project?
Are there any errors in the console? That might point to the problem.

If you could link to a minimal repro project hosted as a GitHub repository, I would be able to look into it more to find out what's going on. Thanks!

Closing this out since I haven't heard back in a while. If you can trace the problem back to an issue with the library, please feel free to open a new issue. Thanks!


Will it be possible in the future to add a time filter?

Requested Feature
On https://dxsurvey.com/Home/MySurveys an option that the survey is just available during a certain time span would be really cool, so that the creator can set a start date and an end date and when a user user comes to the site with the survey before it starts it won't be initialized and when he comes on that site after the survey is over there could be an option to set a text that says something like - "the survey is already over" and another option that the survey won't initialize at all or just display the results.

@vanBersie Yes, it makes sence. I have added this suggestion to our TODO list.
Thank you,
Andrew

@andrewtelnov Sound great! I'm looking forward to it. Thank you very much! :)


Update interface to 0.0.18

Updates io.get-coursier:interface from 0.0.17 to 0.0.18.
Release Notes/Changelog
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.get-coursier", artifactId = "interface" } ]

labels: library-update, semver-patch

CI is actually green.


chore(main): release 2.6.0

:robot: I have created a release beep boop
2.6.0 (2024-12-29)
Features

extras: Add Ghostty theme (#269) (3c25f33)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v2.6.0
:sunflower:


Linters. Pylint.

Motivation and context
A written script for static code analysis using pylint of all files in PR.
For check failed verification:
https://github.com/dvkruchinin/cvat/actions/runs/571765274
How has this been tested?

Checklist

[x] I submit my changes into the develop branch
[ ] I have added description of my changes into CHANGELOG file
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (read github docs)
[ ] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[ ] I have updated the license header for each file (see an example below)

# Copyright (C) 2021 Intel Corporation
#
# SPDX-License-Identifier: MIT

Coverage decreased (-0.02%) to 70.776% when pulling b3c39abe77d7213b793a8c4a2bec49241024e6df on dvkruchinin:dkru/linters-pylint-ci-check into daedff420404977226604090a1ebb8e45ed7367f on openvinotoolkit:develop.

@dvkruchinin , what is the best known methods? Should we have for every linter a separate pipeline? For example, know we have Linters check / linters_check. Why not Linter / eslint, Linter / pylint, Linter / ...?

@dvkruchinin , what is the best known methods? Should we have for every linter a separate pipeline? For example, know we have Linters check / linters_check. Why not Linter / eslint, Linter / pylint, Linter / ...?

Initially, I planned to add these linters in one PR. Andrey asked me to start with eslint, so I divided it into three PRs. I may have misunderstood him. As a result, all linter checks will be in one workflow.


vite plugin

Describe what kind of template
A clear and concise description of what you want to happen.
vite plugin template

not related to neo


[master] Fix remove duplicate method

remove duplicate method on DubboBootstrap#destroy()

Codecov Report

Merging #8925 (26888d2) into master (db17589) will decrease coverage by 0.74%.
The diff coverage is 100.00%.

:exclamation: Current head 26888d2 differs from pull request most recent head df10351. Consider uploading reports for the commit df10351 to get more accurate results

@@             Coverage Diff              @@
##             master    #8925      +/-   ##
============================================
- Coverage     60.76%   60.02%   -0.75%
+ Complexity      446      445       -1
============================================
  Files          1100     1100
  Lines         44428    44378      -50
  Branches       6471     6439      -32
============================================
- Hits          26997    26636     -361
- Misses        14459    14771     +312
+ Partials       2972     2971       -1

Impacted Files
Coverage Δ

.../apache/dubbo/config/bootstrap/DubboBootstrap.java
43.84% <100.00%> (-10.90%)
:arrow_down:

...ookeeper/ZookeeperDynamicConfigurationFactory.java
0.00% <0.00%> (-66.67%)
:arrow_down:

...gcenter/wrapper/CompositeDynamicConfiguration.java
0.00% <0.00%> (-63.34%)
:arrow_down:

...pport/zookeeper/ZookeeperDynamicConfiguration.java
0.00% <0.00%> (-60.00%)
:arrow_down:

...fig/configcenter/TreePathDynamicConfiguration.java
31.42% <0.00%> (-54.29%)
:arrow_down:

.../dubbo/metadata/report/MetadataReportInstance.java
12.50% <0.00%> (-40.63%)
:arrow_down:

.../configcenter/support/zookeeper/CacheListener.java
0.00% <0.00%> (-32.44%)
:arrow_down:

...gistry/client/migration/MigrationRuleListener.java
55.88% <0.00%> (-23.53%)
:arrow_down:

...mmon/config/configcenter/DynamicConfiguration.java
68.18% <0.00%> (-18.19%)
:arrow_down:

...ient/metadata/store/RemoteMetadataServiceImpl.java
38.59% <0.00%> (-17.55%)
:arrow_down:

... and 65 more

Continue to review full report at Codecov.

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


refactor: make Nats JetStream scale

Current Impl

Our current NATS JetStream implementation tracks progress through each message’s sequence ID and creates an ephemeral consumer upon each startup to guarantee exactly-once message consumption.
However, due to NATS API limitations, we are only able to consume messages using a single worker, which significantly limits read efficiency.
The ephemeral consumer is memory-bound on the broker, and creating new consumers during failover puts pressure on the broker.
Customers have also reported data loss issues, which we need to address by improving ACK mechanism.

Our primary goal is to enable multiple workers to consume a single subject (the smallest unit in NATS) or a group of subjects (described using wildcards).
Challenges and Solutions

This objective requires the use of durable consumers, as the NATS documentation explicitly states: "Ephemeral consumers are meant to be used by a single instance of an application (e.g., to get its own replay of the messages in the stream)." Therefore, ephemeral consumers cannot share progress across multiple instances. ref
Durable consumers operate similarly to a consumer group, so we need to acknowledge each message (or batch acknowledgment) to prevent the broker from sending the same message to other workers.

The broker will dispatch messages across workers without a guarantee of the distribution.

We will entrust offset management entirely to the broker. By using the durable consumer name, we can retrieve previous progress. This allows us to scale workers horizontally and dynamically align the number of workers (splits) with the operator’s parallelism.

Drawback

Each worker will independently pull data from the broker, and when the number of workers changes, the broker may rebalance, causing data duplication for a short period.

This rebalancing process cannot be controlled by RisingWave, so we need to accept a degradation of message consumption semantics from exactly-once to at-least-once.

TODO List

[ ] impl ACK for Nats JetStream according to ack_policy https://github.com/risingwavelabs/risingwave/pull/18873
[ ] migrate from ephemeral consumer to durable consumer (by adding durable name parameter)
[ ] refactor scale controller and source manager on meta, to get the real-time fragment parallelism.
[ ] (maybe later) supporting Nats Core, more real-time.

Thanks for providing the context. Now I can understand  #18873 better.
And I had also thought about this for Kafka (rely on consumer group, and use manual commit), and yes the largest drawback seems to be exactly-once -> at-least-once.
(But there seem to be no many benefits for Kafka to do the change.)
(And I'm not sure whether group rebalancing causes duplication, but was more thinking that failover will cause duplication. i.e., crash after checkpoint, but before ack)
But I found there's a "partitioning" mechanism in NATS https://docs.nats.io/nats-concepts/subject_mapping (not delved into the details), which makes me think whether NATS's parallelism mechanism is like Pulsar.

Their diagram tells the story. Subject Mapping does things inside broker, you can dynamically route messages into different subjects. RW, on the consumer side, does not need to care much about it. The consumer just needs to know which subject to consume, no matter foo or foo.*.

which makes me think whether NATS's parallelism mechanism is like Pulsar

Yes, I have the same feeling. But Pulsar offers API to list sub-partitions, giving us a way to consume in Kafka's way.

(But there seem to be no many benefits for Kafka to do the change.)

Yes, I am just proposing changes just to Nats JetStream (maybe Pubsub later).

(And I'm not sure whether group rebalancing causes duplication, but was more thinking that failover will cause duplication. i.e., crash after checkpoint, but before ack)

Kafka pauses the consumption during rebalancing. It is not designed for rapidly changing parallelism.

I am still confuse about one point:

The broker will dispatch messages across workers without a guarantee of the distribution.

If we have several works A,B,C to read message from one broker in the future. Then B batch ACK the message and A C crashed. When A and C recovery, what message they will get from Nats Jetstream?

I am still confuse about one point:

The broker will dispatch messages across workers without a guarantee of the distribution.

If we have several works A,B,C to read message from one broker in the future. Then B batch ACK the message and A C crashed. When A and C recovery, what message they will get from Nats Jetstream?

B just acks messages sent to B, it does not involves messages sent to A and C. The broker records each message sent to which consumer.
After A and C recovery, the broker sends the un-acked messages waiting in the queue. It does not guarantee there is no overlap in A's, B's, and C's messages.


Improve scroll bar looks

Right now, on Chromium based browser, the scroll bars for the livesplit view on the live page look TERRIBLE. On firefox it's fine. They could use a revamp.

Commited a change to rework scrollbar styles
See: #86 for more information and screenshots


cuDNN RNN support

Hey! I've added support for bringing cuDNN RNNs from Torch7 to PyTorch. It does involve an extra RNN processing script and hopefully I've documented it well enough. Let me know of any feedback!

I have a script for a full system test however not sure if I should include this in the repo. I've added a gist here for this (just add this to the repo and run).

Hi @SeanNaren, thanks for your PR.
Can you provide and test some classic or useful RNN torch model in the Validated section.
This make others know the capability of the scripts clearly. Some fine-tuning work can be started immediately.

I'll try to find examples of using RNNs, but it's quite difficult honestly... any suggestions? (I know this is useful, because it's useful internally for us!).


[DO NOT MERGE] Publish TakePart items to the Publishing API

With this PR TakePartPage now publishes to the publishing API. This has been implemented in after_commit callbacks which causes some artefacts in the tests but it was done like this after discussion as this will keep the calls to save, update, destroy consistent when the move to solely 'saving' to the Publishing API is made.
This PR depends on this version of gds_api_adapters which has some breaking changes.
trello

I've fixed most things from the comments above now other than those I've replied to.

:+1:

:shipit: :ship:


API changes

It looks like the API at https://opensubtitles.stoplight.io/docs/opensubtitles-api/e3750fd63a100-getting-started has been changed, or it was still not final when this Go library was made. Now there are /features and /subtitles endpoints but there are no /find and /search that this library uses.

Yeah, looks like they introduced many small changes. I also wanted to use this package, but i had to fix it first.
It works now. Also, I added more comprehensive example.
Also i must note that unfortunately this is not an OOP style package. Some refactoring would be beneficial.


Realm Needs Parameters to Some Methods to Prevent Waiting

Some methods like getting the volume of an index space can wait on Realm events internally. For some client applications like Legion this isn't acceptable, so there need to be parameters to tell Realm that it is not safe to do such things.

@lightsighter would Legion ever make calls that tell Realm it is safe to wait internally?  I'm inclined to just rip all those wait() calls out and instead insist that the caller handling the waiting when and how it needs to.

In the Legion case it's not safe to do that with user-level threading on because we take care of saving and restoring the few thread-local variables around all wait calls. So the answer in this case is no, we would never tell Realm that it is safe to wait internally.

Changes to both Realm and Legion merged in with commit e1dde6e.


Fix item duplication

Fix issue where every file added to tree creates a new parent

Nice contribution! Thank you!
I'm going to take the chance to say that your ctop is really amazing! I've being using it to monitor my containers and i am really glad by having a pull request made by you.

Thanks; glad you like it!


Update to Ghost 0.11.7

Updating to latest ghost LTS release, 0.11.7.

Thank you so much :clap:

Thanks for making it easy to use ghost + azure : )


Add maintenance as device status

Environment

Python version:  3.7.3
NetBox version:  2.5.10

Proposed Functionality
We want to add a "Maintenance" status to the device status list. At the moment we are using tags to manage the status, which isn't ideal.

Use Case
When a technician is doing maintenance on a device, the device will be going online and offline multiple times. This will make a monitoring tool think that the device is down or has problems. If we add a maintenance status to netbox the device can be ignored by the monitoring tool, since the monitoring tool can see the status of the device.

Database Changes
Line 318-336 in /netbox/netbox/dcim/constants.py will be extended to:
# Device statuses
DEVICE_STATUS_OFFLINE = 0
DEVICE_STATUS_ACTIVE = 1
DEVICE_STATUS_PLANNED = 2
DEVICE_STATUS_STAGED = 3
DEVICE_STATUS_FAILED = 4
DEVICE_STATUS_INVENTORY = 5
DEVICE_STATUS_DECOMMISSIONING = 6
DEVICE_STATUS_MAINTENANCE = 7
DEVICE_STATUS_CHOICES = [
    [DEVICE_STATUS_ACTIVE, 'Active'],
    [DEVICE_STATUS_OFFLINE, 'Offline'],
    [DEVICE_STATUS_PLANNED, 'Planned'],
    [DEVICE_STATUS_STAGED, 'Staged'],
    [DEVICE_STATUS_FAILED, 'Failed'],
    [DEVICE_STATUS_INVENTORY, 'Inventory'],
    [DEVICE_STATUS_DECOMMISSIONING, 'Decommissioning'],
    [DEVICE_STATUS_MAINTENANCE, 'Maintenance']
]

External Dependencies
No external dependencies added.

Netbox is meant to be a steady state of the current system.
Maintenance is a transient state and shouldn't be documented.

When a technician is doing maintenance on a device, the device will be going online and offline multiple times.
To clarify, the device would be offline in a maintenance window by this description.

I have also accomplished this in the past with a monitoring custom field.


Some user's songs result in Uncaught InvalidStateError and will not play.

Uncaught InvalidStateError: Failed to execute 'start' on 'AudioBufferSourceNode': Start time must be a finite non-negative number: -0.088
Examples here
http://song-of-github.herokuapp.com/?username=getify
and here
http://song-of-github.herokuapp.com/?username=bf4
Tested on Firefox/Chrome/Safari.  Same error on all three.

I ran into this as well and discovered it's dependent on how long it takes the audio API to initialize. I will send a PR with a fix.


Getting Started:  library otel doesn’t have function Meter()

In this section https://opentelemetry.io/docs/go/getting-started/#creating-metric-instruments, it shows library otel doesn’t have function Meter().
// Create metrics instruments
	lemonsKey := attribute.Key("ex.com/lemons")
	anotherKey := attribute.Key("ex.com/another")

	commonAttributes := []attribute.KeyValue{lemonsKey.Int(10), attribute.String("A", "1"), attribute.String("B", "2"), attribute.String("C", "3")}

	meter := otel.Meter("ex.com/basic")

	observerCallback := func(_ context.Context, result metric.Float64ObserverResult) {
		result.Observe(1, commonAttributes...)
	}
	_ = metric.Must(meter).NewFloat64ValueObserver("ex.com.one", observerCallback,
		metric.WithDescription("A ValueObserver set to 1.0"),
	)

	valueRecorder := metric.Must(meter).NewFloat64ValueRecorder("ex.com.two")

	boundRecorder := valueRecorder.Bind(commonAttributes...)
	defer boundRecorder.Unbind()

It seems we should create a meter by meter := pusher.MeterProvider().Meter("example").

I believe that this is reporting the same issue as https://github.com/open-telemetry/opentelemetry-go/issues/2087? It has been fixed (https://github.com/open-telemetry/opentelemetry-go/pull/2093), but the updated docs haven't been ported.
I'm going to mark this as a duplicate, but leave it open until the docs are updated in this repo.
/cc @Aneurysm9 @lastchiliarch

Oh, I'm going to close this in favor of #644, which was opened earlier.


Added pipelining to methods pop,setdefault

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 97.16%. Comparing base (6f25c5d) to head (9ec412f).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #61      +/-   ##
==========================================
+ Coverage   97.14%   97.16%   +0.02%
==========================================
  Files           1        1
  Lines         245      247       +2
==========================================
+ Hits          238      240       +2
  Misses          7        7

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


Inject env variables into project.json  [@nx-extend/e2e-runner:run]

Hi! First of all, thanks for creating this plugin!
Do you know if there is possibility to inject .env variables into plugin config?
Instead of having static values in "checkUrl", I'd like values from .env file. Especially in checkUrl field.
I checked nx docs but I didn't find info about this.
{
  "root": "apps/my-front/",
  "targets": {
    "e2e": {
      "executor": "@nx-extend/e2e-runner:run",
      "options": {
        "runner": "cypress",
        "cypressConfig": "./cypress.config.ts",
        "devServerTarget": "my-front:serve",
        "testingType": "e2e",
        "targets": [
          {
            "target": "my-api:serve",
            "checkUrl": "http://localhost:3555", // Use a dynamic value different for local and CI based on .env
            "checkMaxTries": 50,
            "rejectUnauthorized": false
          }
        ]
      }
    }
  }
}

That's a good idea! We could do something like "checkUrl": "$ENV_VARIABLE"

Yes, it looks that this should work.
When nx command is executed env variables are loaded automatically (in my case from .env).
We can check if the value starts with an alias for example as you suggested $  and override certain key in this._options.
Actually, I'm not sure if this is the best solution but it should work.

Yea a PR would be awesome!


Responses with different cmd

Had a lot of looping packages: Write response is replied to indefinitely with another write response and unknown command get answered with another unknown command message.
Main reason for https://github.com/bipropellant/hbprotocol/issues/2
Responses are now being answered with lowercase cmd codes. Added callback for Responses.

1/ separate response command: yes.
2/ in case PROTOCOL_CMD_READVALRESPONSE:
When code not found, I don't think it should return 'PROTOCOL_CMD_UNKNOWN' - this should be reserved for actual unknown commands.  In fact, I'm not sure that a received PROTOCOL_CMD_READVALRESPONSE should send any response ever? - pls elaborate your use case?
3/ typo:
                writevals->content[0] = 1; // say we did not write it
should be:
                writevals->content[0] = 0; // say we did not write it
4/ typo (depending on (2) :) ) :
              writevals->cmd = PROTOCOL_CMD_UNKNOWN; should really be               readvals->cmd = PROTOCOL_CMD_UNKNOWN;

2/ in case PROTOCOL_CMD_READVALRESPONSE:
When code not found, I don't think it should return 'PROTOCOL_CMD_UNKNOWN' - this should be reserved for actual unknown commands. In fact, I'm not sure that a received PROTOCOL_CMD_READVALRESPONSE should send any response ever? - pls elaborate your use case?

Yeah, wasn't sure about this one (Same with PROTOCOL_CMD_WRITEVALRESPONSE). A response with an unknown command would just indicate an incomplete implementation on the requester side or a bug. Let's not reply at all.

4/ typo (depending on (2) :) ) :
 writevals->cmd = PROTOCOL_CMD_UNKNOWN;
should really be
 readvals->cmd = PROTOCOL_CMD_UNKNOWN;

Well.. this confused me multiple times. For simplicity, we could just use writevals all over the function. Not necessary to use *readvals or *bytes.

5/ good spot on the PROTOCOL_CMD_UNKNOWN looping! - maybe add a generic callback on receipt of this?

Callback or just count the event (like unwanted ACKs?). Could do the same with (2), since this can only happen due to bugs or incomplete implementations.

agreed on all; merge when done then I'll pull, update my NodeRed flow, and do a quick test.
I should try to make a 'mirror' of the code in javascript so it's as similar as it can be.


Move to fsprojects?

Hi Kevin,
If you like you can move this to "fsprojects" org to have it somewhere neutral with multiple maintainers.
Best
Don

So I wouldn't be the main maintainer for the project? How would the process look like?

You would be main maintainer, plus anyone else you decide - it's more there would always be backup maintainers per the policies :)
Policies are here: https://github.com/fsprojects/fsprojects-admin/blob/master/README.md

I accept! How would that work specifically, the process?

First see if you can transfer it in, via settings, at the bottom of the main page. If you're a member of the fsprojects org you will be able to. If not check for an invite, I'll send one now

Sent. Accept the invitation then you should be able to transfer. We may have to fix up permissions once you transfer it

@dsyme the move was completed!

What's the next step?

That's it really! We can send tweets and messages around announcing it's fine. The redirects  happen automatically

See https://mobile.twitter.com/dsymetweets/status/1481027138140708864
You still have full admin rights over the repo, please make sure everyone you want has maintener rights :)


Erorr with openssl and wordpress on Ubuntu 22.04

Hi so getting this error on my WordPress site after I forced an upgrade on the server from 20.04 to 22.04 in the WordPress plugin analytify
this is the error
Oops!
OpenSSL SSL_read: error:0A000126:SSL routines::unexpected eof while reading, errno 0
Don't worry, This error message is only visible to Administrators.

You'll get this error if the other side of the communication does not close the TLS communication cleanly but just terminates the connection. In most cases (depending on the protocol using the TLS) it can be ignored. I suppose this is using https and for that case it can be ignored.

I was using HTTPS on the site using Cloudflare and Cloudflare origin keys


getFeaturesAtCoordinate returns an empty array

I have some features at the same coordinate and when I check using sourceFeatures.getFeaturesAtCoordinate(coord) I get an empty array. Digging on source (ol-debug) I can see this method - it is here that things happen.
ol.source.Vector.prototype.forEachFeatureAtCoordinateDirect =
    function(coordinate, callback, opt_this) {
  var extent = [coordinate[0], coordinate[1], coordinate[0], coordinate[1]];
  return this.forEachFeatureInExtent(extent, function(feature) {
    var geometry = feature.getGeometry();
    goog.asserts.assert(goog.isDefAndNotNull(geometry),
        'feature geometry is defined and not null');
    if (geometry.containsCoordinate(coordinate)) {
      return callback.call(opt_this, feature);
    } else {
      return undefined;
    }
  });
};

If I change this
if (geometry.containsCoordinate(coordinate)) {
to
if (ol.extent.containsCoordinate(extent, coordinate)) {
then I get what I expect -- 3 features
Live Example

I think this requires some attention. It is useful but doesn't work as expected.

Can you come up with a test case that fails but shouldn't?

This fails
This is modified using ol-debug.js

Thanks. I meant a unit test, but nonetheless this may be usefull. I won't have time today, but I'll probably look at this tomorrow.

As you noted, i think geometry.containsCoordinate is wrong in this situation since many geometries (points, lines etc) does not contain anything and always returns false.
However, your solution ol.extent.containsCoordinate(extent, coordinate) would generate many false positives since it would return all features whose extent intersects the coordinate.
I think the proper way to do it is testing against geometry.intersectsExtent, and created PR ol.extent.containsCoordinate(extent, coordinate)

@alvinlindstam  with your modification the number of features is as expected. Good job!

OK, so the original reason why an ol.geom.Point doesn't contain a coordinate representing itself is because ol.geom.Point inherits containsXY from ol.geom.SimpleGeometry, where it is defined as a method that always returns false.
Honestly I don't know if this is intentional or a bug. I think @elemoine or @tschaub usually know best which direction to take from now.
Here is a failing unit test:
diff --git a/test/spec/ol/source/vectorsource.test.js b/test/spec/ol/source/vectorsource.test.js
index df782e7..0a52f72 100644
--- a/test/spec/ol/source/vectorsource.test.js
+++ b/test/spec/ol/source/vectorsource.test.js
@@ -37,6 +37,24 @@ describe('ol.source.Vector', function() {

     });

+    describe('#getFeaturesAtCoordinate', function(){
+
+      it('returns empty array when on empty source', function(){
+        var got = vectorSource.getFeaturesAtCoordinate([0, 0]);
+        expect(got).to.be.an(Array);
+        expect(got).to.be.empty();
+      });
+
+      it('returns a single point at the coordinate', function() {
+        vectorSource.addFeature(pointFeature);
+        var got = vectorSource.getFeaturesAtCoordinate([0, 0]);
+        expect(got).to.be.an(Array);
+        expect(got).to.have.length(1);
+        expect(got).to.eql([pointFeature]);
+      });
+
+    });
+
     describe('#isEmpty', function() {

       it('returns true', function() {

Yes. LineString, MultiPoint and MultiLinestring also inherit the false-returning function. I assumed it was intentional.

Also, the implementation for containsXY/containsCoordinate on Polygons does not return true for all coordinates intersecting the polygon. As described in http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html#Point on an Edge the containing-algorithm will only return true for one of them, as two non overlapping polygons cannot contain the same area.
I added a test case for this at: https://github.com/alvinlindstam/ol3/commit/53154b770d2f5a11fb9b9f68c7b8c248fd49d77d#diff-c7cd06e8bd66f9197d3c2aa345c25a83R129
It uses two polygons, both with a boundary along the y-axis. Only one of them (the upper) will return true for containsCoordinate([0, 0]), while I would expect both of them to be returned on getFeaturesAtCoordinate.


[e2e]: generic workflow_dispatch branch1 default slsa3

Repo: https://github.com/slsa-framework/example-package/tree/branch1
Run: https://github.com/slsa-framework/example-package/actions/runs/8548660849
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic.workflow_dispatch.branch1.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.generic.workflow_dispatch.branch1.default.slsa3.yml
Trigger: workflow_dispatch
Branch: branch1
Date: Thu Apr  4 03:06:11 UTC 2024

Repo: https://github.com/slsa-framework/example-package/tree/branch1
Run: https://github.com/slsa-framework/example-package/actions/runs/8564381403
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic.workflow_dispatch.branch1.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.generic.workflow_dispatch.branch1.default.slsa3.yml
Trigger: workflow_dispatch
Branch: branch1
Date: Fri Apr  5 03:07:37 UTC 2024
Tests are passing now. Closing this issue.


Update tutorial-create-instance.md

the steps and screenshots under https://docs.microsoft.com/en-us/azure/active-directory-domain-services/tutorial-create-instance#update-dns-settings-for-the-azure-virtual-network are out of dae as the experience has changed.

@Arkthos : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#hold-off The pull request reports an issue instead of proposing an update; don't merge as is. Thanks.

We'll close this pull request because it doesn't propose updated text that can be merged in to the repository. Thanks.


meson: make frontends optional

I'm building for arm, in qemu, which takes forever. I don't even want ftxui, but I just spent 15 minutes building it.

fixed in #47


docs: include network payloads in API reference, restructure ipfilter docs

enabled network.payloads inclusion in the API generator and cleaned up/added doc strings to the classes
ipfilter docs were taking up too much space in the neo3.network overview page due to the included examples. Moved those to inside the IPFilter class docstrings to cut down on the overview clutter

Coverage remained the same at 80.93% when pulling 53cbf8a84e78e6df19f8d936be0b9b569d0faa98 on api-payloads into 98080642a6f12a44f1865eaaaa9a1a703b801740 on master.


[ISSUE] Install-Package: No match was found for the specified search criteria and module name 'PnP.PowerShell'

Reporting an Issue or Missing Feature
Failure to install PnP.PowerShell
Expected behavior
Successful install
Actual behavior
This has been working fine for months for us in an Azure Devops pipeline and about 2pm 04/04/2024 New Zealand Time we started seeing this error when attempting to install the package.
We initially saw it in our azure devops Pipeline running powershell core on ubuntu, we have since tried the same command on windows and a macbook both running powershell core and same error after many retries over a few hours.
# pipeline error
Install-Package: No match was found for the specified search criteria and module name
'PnP.Powershell'. Try Get-PSRepository to see all available registered module
repositories.

# error from a windows device with -debug flags
...
VERBOSE: Retry downloading 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='PnP.PowerShell'&$skip=720&$top=40' for '2' more times
VERBOSE: Retry downloading 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='PnP.PowerShell'&$skip=720&$top=40' for '1' more times
VERBOSE: Retry downloading 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='PnP.PowerShell'&$skip=720&$top=40' for '0' more times
DEBUG: 00:02:22.0606283 Could not get response from query 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='PnP.PowerShell'&$skip=720&$top=40'.
VERBOSE: Total package yield:'0' for the specified package 'PnP.PowerShell'.
DEBUG: 00:02:22.0646414 Completed iterating for 'PnP.PowerShell'.
DEBUG: 00:02:22.0653379 Calling 'NuGetRequest'::'FindRegisteredSource', 'https://www.powershellgallery.com/api/v2'.
DEBUG: 00:02:22.0666969 PowerShell Script 'PSModule' Function 'Find-Package' returns null.
DEBUG: 00:02:22.0734000 Done calling powershell «Find-Package» «PSModule»
DEBUG: 00:02:22.0808264 unmatched package name='PnP.PowerShell'
Install-Package: No match was found for the specified search criteria and module name 'PnP.PowerShell'. Try Get-PSRepository to see all available registered module
repositories.

Steps to reproduce behavior
Install-Module PnP.Powershell -Force -AllowClobber
What is the version of the Cmdlet module you are running?
Cannot determine in the pipeline as it wont install, but on the window device -> 2.2.0
Which operating system/environment are you running PnP PowerShell on?

Linux (ubuntu) for the pipeline, the agent environment is microsoft based, recreated each time, and we dont specify a version to pull the latest
Windows laptop as 2nd test
MacOS laptop as 3rd test

Other notes
Found a similar issue from a few years back but the command that solved that for them isn't working in this case -> https://github.com/pnp/powershell/issues/38

about 4-5 hours after initial issue this came right by itself, suspect upstream transient issue -> DEBUG: 00:02:22.0606283 Could not get response from query 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='PnP.PowerShell'&$skip=720&$top=40'.


Unable to connect to RabbitMQ using the example deployment

Hi,
I have created a keda sample at https://github.com/VenkateshSrini/sample-netcore-keda-rabbitmq using .NET core which is very similar to the GO Example given here. I have used the bitnami and have installed tried both the install methods
helm install rabbitmq --set auth.username=user --set auth.password=PASSWORD bitnami/rabbitmq and also
helm install rabbitmq --set auth.username=user --set auth.password=PASSWORD --set volumePermissions.enabled=true bitnami/rabbitmq
When I execute the command kubectl get secret --namespace default rabbitmq -o jsonpath="{.data.rabbitmq-password}" and I got the base 64 encoded equivalent of the "PASSWORD". But when i did a port forward of 15672 and I accessed http://localhost:15672. When I tried with user id as User and password as "PASSWORD". But  I get login failed.
I get the below error PLAIN login refused: user 'user' - invalid credentials
2020-10-18 12:37:26.574 [info] <0.1053.0> closing AMQP connection <0.1053.0> (<IP_ADDRESS>:33184 -> <IP_ADDRESS>:5672)
2020-10-18 12:37:26.574 [info] <0.1056.0> closing AMQP connection <0.1056.0> (<IP_ADDRESS>:33182 -> <IP_ADDRESS>:5672)
2020-10-18 12:37:31.581 [info] <0.1067.0> accepting AMQP connection <0.1067.0> (<IP_ADDRESS>:33232 -> <IP_ADDRESS>:5672)
I tried to apply https://github.com/VenkateshSrini/sample-netcore-keda-rabbitmq/blob/master/deploy/deploy-publisher-job.yaml. I get the below error
Unhandled Exception: RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachable ---> RabbitMQ.Client.Exceptions.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
at RabbitMQ.Client.Framing.Impl.Connection.StartAndTune()
at RabbitMQ.Client.Framing.Impl.Connection.Open(Boolean insist)
at RabbitMQ.Client.Framing.Impl.AutorecoveringConnection.Init(IFrameHandler fh)
at RabbitMQ.Client.ConnectionFactory.CreateConnection(IEndpointResolver endpointResolver, String clientProvidedName)
--- End of inner exception stack trace ---
at RabbitMQ.Client.ConnectionFactory.CreateConnection(IEndpointResolver endpointResolver, String clientProvidedName)
at Send.Send.Main(String[] args) in C:\Venkatesh\ASPNETCore10\core21\kedacore\sample-netcore-keda-rabbitmq\Send\Send.cs:line 16
I'm using Docker for windows desktop with WSL2
Can you please help in this regard?

I think happens when docker is put in WSL2 when I changed to Hyper v backed it started working.

I am facing with kind too.


nixos-version: fix syntax error and add -h

Motivation for this change
error while creating other issue
Things done

[ ] Tested using sandboxing
(nix.useChroot on NixOS,
or option build-use-chroot in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

...do'h! Sorry, thank you for fixing this, @davidak!


Packaging cleanups

This makes the package Lintian-clean,
and updates the maintainership metadata.
Please wait for the upload to reach experimental before merging.

As of 1.18, this has been integrated into the main EFL repo


Typescript import type statements are not sorted the same way in v4.0.0 and v4.1.0

Your Environment

Prettier version: 2.8.4
node version [18.4.2]:
package manager: [yarn@1]
IDE: [VScode, Webstorm, CLI]

Describe the bug
We have just updated to v4.1.0 of this library, and now it tries to sort all import type statements together at the top of the imports block.
Based on the diff between v4.0 and v4.1, this seems like an intended behavior, and there's even mentions to new <THIRD_PARTY_TS_TYPES> and <TS_TYPES> tokens for importOrder option.
However, this is a breaking change, so I would expect it to be an opt-in behavior, or at least to provide an option to keep the previous behavior.
Would you consider providing such option to retain previous behavior?
To Reproduce
This script can be used to experiment the behavior:
import type { Component } from '@bar/bar';
import classnames from 'classnames';

import type { Foo } from '../aaa';
import Menu from './Menu';
import MenuItem from './MenuItem';

Running prettier --write on the file above using the configuration provided below, results in no changes when using v4.0.0
Using v4.1.0, it results in this:
import type { FilterOption } from '../aaa';
import type { Component } from '@bar/bar';
import classnames from 'classnames';

import Menu from './Menu';
import MenuItem from './MenuItem';

Expected behavior
The plugin keeps the same behavior, and it's safe to update from v4.0.0 to v4.1.0. Behavior changes and new features are observed only when opting-in to new features.
Configuration File (cat .prettierrc, prettier.config.js, .prettier.js)
Our prettier config:
{
  "arrowParens": "avoid",
  "singleQuote": true,
  "importOrder": ["^[./]"],
  "importOrderSeparation": true
}

Contribute to @trivago/prettier-plugin-sort-imports

[x] I'm willing to fix this bug 🥇

Hi @acelaya, we mistakenly release a new breaking change feature (#153) in v4.1.0. I will release a fix now.

I see! Thanks for the quick response :)

Fixed released in v4.1., @acelaya Could you please verify the fix ?

I was just testing it. Everything back to how it was before. Thanks for the super quick fix 🙂


Example use of create_linestring

The amenity_list.py example only demonstrates how to create shapely geometries from areas. I've managed to get it working for points also, but trying to use create_linestring to create a linestring from a way raises an error:
Traceback (most recent call last):
  File "s_osm.py", line 30, in <module>
    h.apply_file(sys.argv[1], locations=True)
  File "s_osm.py", line 20, in way
    wkb = wkbfab.create_linestring(way)
Boost.Python.ArgumentError: Python argument types in
    WKBFactory.create_linestring(WKBFactory, Way)
did not match C++ signature:
    create_linestring(WKBFactory {lvalue} self, osmium::Way way, osmium::geom::use_nodes use_nodes='unique', osmium::geom::direction direction='forward')
    create_linestring(WKBFactory {lvalue} self, osmium::WayNodeList list, osmium::geom::use_nodes use_nodes='unique', osmium::geom::direction direction='forward')

I'm not familiar with python.boost, so I'm not sure if I'm calling this incorrectly, or if this is a bug.
Example code below:
import sys
import osmium
import shapely.speedups
if shapely.speedups.available:
    shapely.speedups.enable()
from shapely.wkb import loads

wkbfab = osmium.geom.WKBFactory()

class SHandler(osmium.SimpleHandler):
    def node(self, node):
        wkb = wkbfab.create_point(node)
        point = loads(wkb, hex=True)

    def way(self, way):
        wkb = wkbfab.create_linestring(way)

    def area(self, area):
        wkb = wkbfab.create_multipolygon(area)
        poly = loads(wkb, hex=True)
        centroid = poly.representative_point()

h = SHandler()
h.apply_file(sys.argv[1], locations=True)

The additional parameters of create_linestring() had been exported with the wrong type. Your example should work now. You can also find a sample use of WKBFactory.create_linestring() in the newly added test/test_geom.py.


Add DynamicPin

This PR adds a `DynamicPin which can change direction at runtime. I've also taken the liberty to refactor some duplicate code into helpers.
Also adds an example that demonstrates how to use these.
The current limitation is that the pin id is still baked into a DynamicPin's type, which makes it difficult to e.g. pass a bunch of these around in a collection to pick and reconfigure them at runtime. I'm working on a solution for this that's probably a breaking change to this PR, but am only ~halfway there.

Everything's ready to go now. Thanks again, @Lotterleben!


Add Reified set support

Part of https://github.com/jump-dev/MathOptInterface.jl/issues/1805#issuecomment-1132254501.
Adding to MiniZinc.jl first to work out the kinks before we decide to add to MOI. I think that adding the Reified set with minimal infrastructure might be the way to go. It's a pretty solid/standard set and we already have Indicator, but it'd need a lot of other stuff before it was useful to non-constraint programming solvers.
MiniZinc doesn't support reified constraints for complicated sets like Table, Path, Cumulative, etc. It's been trial and error to see which are supported and which aren't.

[x] AllDifferent
[x] BinPacking
[x] Circuit MiniZinc: evaluation error: Abort: Reified circuit/1 is not supported.
[x] CountAtLeast
[x] CountBelongs
[x] CountDistinct
[x] CountGreaterThan
[x] Cumulative
[x] Path MiniZinc: evaluation error: Abort: Reified path constraint is not supported
[x] Table
[x] LessThan
[x] GreaterThan
[x] EqualTo

Merging this for now, since MOI support might be a while away. If we decide to add Reified to MOI, we can remove from MiniZinc.jl and release a breaking v0.2 release.


feat: modernize parser

parser rewritten from the ground-up using syn idioms and more strongly-typed syn structures rather than TokenStreams. passes all test cases flawlessly, and makes the code much easier to understand.
also drops proc-macro-error for a more robust solution (proc-macro2-diagnostics) which doesn't need global state and macros.
all of the edited trybuild test-cases are either adding more information/cases or fixing some bugs.

Thanks @vidhanio!
I remember playing with the syn parser and getting stuck on diagnostics. So I'm glad that you found a solution for that.
I'm really busy at the moment so apologies for the delay. I'll try to have a look some time this weekend.

no problem!
i've since changed a bit and repackaged it into my own library, hypertext. I could port the changes backwards to this if needed! 😁

Is this ready for merge?


update grc policy automation crd

Signed-off-by: Will Kutler<EMAIL_ADDRESS>For https://github.com/stolostron/backlog/issues/20158 we added a new "jobttl" field to the GRC policy automation CRD. This PR updates the copy of the CRD in multiclusterhub-operator.

/cc @dhaiducek
/cc @mprahl


Add XTDB support to Labs

XTDB is our most capable repository for Egeria.
I propose to add support for XTDB for our Lab notebooks.
Note: this requires other changes - local configuration, docs etc
I propose to add 2 configurations:

inmemory
persistent

The latter will be a simple, single option
In our charts repo, a similar change will be made for the base chart (see https://github.com/odpi/egeria-charts/issues/125)
Over there we'll also document  the configuration to have the xtdb connector loaded (possibly via https://github.com/odpi/egeria/issues/7224 )
HA/multi replica is excluded as is generic configuration (for now)

The initial change has been made
@dwolfson not sure if you wish to add more? Assigning


Android nanohttp server, not able to play large video

Hi All,
I am using nano http in android for local video streaming. But it fails to receive range and as vide file is large it tries to send complete file and it timeouts.
can some one please help me

There have been several similar questions here before. Please browse the existing issues, you might find solutions there.
I'm closing this unless this proves to be completely unrelated to those issues.

I have searched a lot and seems that ppl have removed nanohttp and moved to Android async or nodejs. So wanted to check if nanohttp has solution for this issue

@DeepsUttekar did you solved the issue?

no im not able to solve this issue... planning to switch to android async

@DeepsUttekar have you solved it?thanks


Create cypress tests to validate version updates

Body
Background
This issue aims to automatically validate the update process of StreamPipes, as discussed in issue #1193.
Description
A Cypress test should be implemented to validate all functionalities after the update. Two workflows are required for this:

A workflow to set up the resources in the old system.
A workflow to validate that everything is still working as expected after the update.

Design & Implementation Steps

[ ] Define the steps to setup the system
[ ] Define the steps to validate the updated system
[ ] Implement the first workflow to set up the resources in the old system.
[ ] Implement the second workflow to validate that everything is still working as expected after the update.

In [1] you can find some examples with more complex test settings as an example.
[1] https://github.com/apache/streampipes/tree/dev/ui/cypress/tests/experimental
Mentoring
As this ticket is marked as good first issue: one of @dominikriemer, @tenthe, or @bossenti are happy to provide help for getting started, just tag (one of) them if you want to start working on this issue and need some help.
StreamPipes Committer
I acknowledge that I am a maintainer/committer of the Apache StreamPipes project.

@tenthe I would like to work on this issue.

Hello @CoffeeGeek101,
great. Do you have any experience with Cypress?
You can set up a local StreamPipes instance as described here [1] and run the Cypress tests in that directory [2].
In #955 I gave an example of how to set it up.
Please let me know if you have any questions.
[1] https://streampipes.apache.org/download
[2] https://github.com/apache/streampipes/tree/dev/ui/cypress

hey, @tenthe. I don't have experience with Cypress yet but willing to learn as I work on this and I can setup the project repo as described. Just let me know if it alright from your side, so I'll start working it asap.

Of course.
I suggest that you first set up the system and run the existing Cypress tests locally.
Let me know if you have any problems.

Sure!!..I'll let you know once I run the existing Cypress tests!!


enable initializer by default for e2e pilot test

We can enable the cluster-wide initializer in e2e tests now that tests are run in dedicated clusters.

@ayj: Adding do-not-merge/release-note-label-needed because the release note process has not been followed.

One of the following labels is required "release-note", "release-note-action-required", or "release-note-none".
Please see: https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#write-release-notes-if-needed.
Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

long time for this to come true. congrats :)

/assign @sebastienvas

/lgtm


Fall back to pkg-config for cryptopp

Cc @yurivict. Let me know if you find the time to try this out! Hopefully this will solve for your issue.

1b0b97b works now.
One problem though: it should be PRIVATE cryptopp, not PRIVATE cryptopp-static. Not sure why static lib isn't found, but you should only use shared libs. Static libs can be deleted, the default should be shared libs for all libraries.

1b0b97b works now.

Great!

One problem though: it should be PRIVATE cryptopp, not PRIVATE cryptopp-static. Not sure why static lib isn't found, but you should only use shared libs. Static libs can be deleted, the default should be shared libs for all libraries.

At the moment, we only building the static library in the conda package. cryptopp 8.0 is out, so I will use this occasion to build the shared library and the next major xeus will require cryptopp 8.0 shared.

I opened https://github.com/conda-forge/cryptopp-feedstock/pull/11 to build the shared library in the conda package for cryptopp.


Making rounded ends properly

i am using 7.0.4
My app works with series of selections and I would like to have rounded corners on both ends of selected cells. I have UI code but logic for making this bugs me. CellView determines the looks of the cell. For now I am passing date and CellState to manipulate UI. How can CellView determine where are the ends? Any ideas? Tips?

basically, are you saying that you wished that the cellState was attached to the CellView ?
like myCell.cellState.isSelected etc etc?

Nope. Here is my new design -> http://d.pr/i/i8pEdw/2k3BgPzP
What I want to do is to have rounded selections if a selection is first/last. I really don't have any idea how to approach this problem.

UPDATE
So I have managed to get somewhere but still, everything looks broken.
Here is a part of my ugly code:
if state.isSelected {
      let allLefts = CloudManager.instance.periods.map({ $0.startDate })
      let allRights = CloudManager.instance.periods.map({ $0.endDate })

      // FIXME: - Add case when only 1 date is in Period
      if allLefts.contains(state.date) {
           leftSelectedView(opacity: 1.0)
            print("Left for \(state.date)")
       } else if allRights.contains(state.date) {
            rightSelectedView(opacity: 1.0)
       } else {
            middleSelectedView(opacity: 1.0)
       }

This actually does something with dates I want. Here how it looks:
http://d.pr/i/YrrdMW/230rdnDK
Code for UI:
extension UIView {
    func roundCorners(_ corners: UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        let mask = CAShapeLayer()
        mask.path = path.cgPath
        self.layer.mask = mask
    }
}

My questions:

Why do cells have a greater height that width (they should be 1:1)? (they look like portrait pill)
Do you know why is this rounding thingy not working properly? I tried this code when I've just set up the calendar and it worked.

have you set the cell inset to be zero?

calendarView.minimumLineSpacing = 0
calendarView.minimumInteritemSpacing = 0

Do you have this in your view did load?

calendarView.isRangeSelectionUsed = true
calendarView.allowsMultipleSelection = true

Then when you want to configure your cell, you do this
if cellState.selectedPosition() == .left {
    // configure the rounded left
} else cellState.selectedPosition() == .right {
...
...

I didn't know about this range selection. Thanks! Now it works very nice http://d.pr/i/GbD85t/3XKlfR9g
Just one more thing. If you will watch this gif then you'll see how each section has some padding on the right. Any ideas why this happens? I checked my constraints and they are okay.

hmm. There should be no padding.
Did you make sure this?
calendarView.minimumLineSpacing = 0
calendarView.minimumInteritemSpacing = 0

Also, have you accidentally set the itemSize property on interface builder? or in code?
itemSize should be nil.

closing issue.
let me know if other help is needed.

Yeah, I still have this problem. Unfortunately, I already did everything you wrote even before I have come here asking fir help.
So there is weird space on the right side of a calendar where you can see dates in next month

hmm. I wish you'd send a sample project.
i'll get you those rounded edges

No, don't have a problem with round edges. I have a problem with other problem I addressed here. It is weird spacing on the right side of a calendar where you can see selected day in next month.
http://d.pr/i/de2xy/2PipmaA8

if the minimum spacing didnt help. Is it possible you can send a small zipped project with all your secret code removed? I just want to see whats wrong with the selection.
I'm about to release version 7.0.5 over the weekend. I'd love to add what ever fix to your problem in there.

Go to my profile and find Period Flow 💃

hmm. can you provide me the link? i went Here but both those repositories seem to have outdated code?

Thanks!
here it is: https://github.com/antonijap/Period-Flow-2/tree/Development

Ok found it. The scrolling is off because you might have accidentally set this ->

Once deleted, every thing works as expected. 🍻

YAAAAY! Only, this time I've got this http://d.pr/i/9ovqQP/1YbAOQEQ

Oh, thats because there are no constraints setup in the the cell.
Also the constraints of the CalendarView should be different.
Here is a fixed zip file of the solution ->
Period-Flow-2-Development.zip
Let me know if there is anything else wrong. cheers. 🍻

You are my hero!

Haha. thanks.


Azure for Google Cloud Professionals

Any references of Azure for GCP Professionals?
Comparison of services will be much appreciated!

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

ID: d100d43f-d48a-3d97-1aea-7a5409fdccc8
Version Independent ID: 568dcd88-b93c-1d41-44d0-8643dd057a33
Content: Azure for AWS professionals - Azure Architecture Center
Content Source: docs/aws-professional/index.md
Service: architecture-center
Sub-service: cloud-fundamentals
GitHub Login: @author
Microsoft Alias: pnp

Thanks for reporting - this issue is under review.  This is a Microsoft Internal DevOps Bug ID AB#201746

@eyusubov , look for https://docs.microsoft.com/en-us/azure/architecture/gcp-professional in the next 24 hours.  This page is being launched today.  I will close this issue and track internally for additional feedback.

Hi @absheik -
I am not able to access the gcp-professional link:
https://docs.microsoft.com/en-us/azure/architecture/gcp-professional
Getting 404 :(

Hej @absheik - i am stilling getting 404 when navigating to new url.
Could you check its status?

I was able access link last week, it is active.
Thanks for putting this reference into docs!


dotnet.exe (process 12345) exited with code -2147450751

Issue Title
dotnet.exe (process 12345) exited with code -2147450751
General
While trying to debug .net core 3.1 console application (C#) in Visual Studio 2019, It is giving the console window displaying info related to dotnet command and with following line:
dotnet.exe (process 12345) exited with code -2147450751.
This console application was upgraded to .net core 3.1 from .net core 2.2.
It was working fine in debug mode with .net core 2.2 in Visual Studio 2017.
If fresh console application created in VS 2019 with .net core 3.1, it is being debugged successfully.
With .net core 2.2, I was using following file to run the .net core application.
Directory.Build.Targets
<Project>
    <PropertyGroup Condition=" '$(OS)' == 'Windows_NT' and 'TargetFrameworkIdentifier' == '.NETCoreApp' and '$(SelfContained)' != 'true'">
          <Runcommand Condition="'$(PlatformTarget)' == 'x86'">$(MSBuildProgramFile32)\dotnet\dotnet</Runcommand>
          <Runcommand Condition="'$(PlatformTarget)' == 'x64'">$(ProgramW6432)\dotnet\dotnet</Runcommand>
</Project>

What can be the issue here???

Can you provide a small project that demonstrates this issue? Thanks.

@scalablecory With small project I m not able to simulate the issue. It's probably how Visual Studio launches dotnet.exe while debugging your code.
I also checked launchSettings.json which reads as follows:
{
    "profiles":{
    "SamplePrifle":{
          "commandName": "Project"
     }
   }
}

I also run the compiled .exe for .net core 3.1 application which is running fine. Just debugging having the issue.

@ms0713 is it possible that one of these conditions is not met and VS doesn't know what to launch?
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT' and 'TargetFrameworkIdentifier' == '.NETCoreApp' and '$(SelfContained)' != 'true'">

Closing due to the lack of response.


Does the cache_dir input to scrape functions need to be optional?

Can't we just pass the default dir to all functions? Is there a case where it needs to be None?

Sounds like a good idea to have cache_dir as default to all functions, even if there are "straggler" scrapers where we haven't applied the convention of caching raw source file(s). For example, ak.py appears to request and process a single HTML page in memory and then simply writes exports/ak.csv.
Not sure how many (if any) other states bypass cache in this way, but making the cache dir a non-optional default for all scrapers, even if the caching convention is not yet applied, seems like a helpful nudge in the right direction.


Fix current year in footer

Won't it cause a confusion if computer's date is wrong

I don't think this will be a problem. But I might be wrong

Thanks! :)

I love the product so I'm happy to help!


No source maps uploaded in dev and no events generated for iOS beta builds

I tried following the steps mentioned in https://docs.sentry.io/clients/react-native/. Integration worked fine.
I tried creating throwing an error using:-
  setTimeout(function () {
      throw new Error('We crashed!!!!!');
  }, 10);

On dev this generates event and I can see them on sentry dashboard but source maps are not uploaded in dev mode according to https://github.com/getsentry/react-native-sentry/issues/121 . So I tried adding --allow-fetch  but that also does not work.
On release(beta builds) though source maps are uploaded but I cannot see any events being fired on sentry dashboard.
I tried creating a release build on my local and in console I am seeing following:-
Sentry Started -- Version: 3.1.2
    ************************ Crash Handler Notice ************************
    *     App is running in a debugger. Masking out unsafe monitors.     *
    * This means that most crashes WILL NOT BE RECORDED while debugging! *
    **********************************************************************
2017-06-29 23:40:05.779 [error][tid:com.facebook.react.JavaScript] We crashed!!!!!
2017-06-29 23:40:05.780715 wlv1[2404:803225] We crashed!!!!!
2017-06-29 23:40:05.783 [fatal][tid:com.facebook.react.ExceptionsManagerQueue] Unhandled JS Exception: We crashed!!!!!
2017-06-29 23:40:05.783019 wlv1[2404:803215] Unhandled JS Exception: We crashed!!!!!
2017-06-29 23:40:05.928283 wlv1[2404:803215] *** Terminating app due to uncaught exception 'RCTFatalException: Unhandled JS Exception: We crashed!!!!!', reason: 'Unhandled JS Exception: We crashed!!!!!, stack:
<unknown>@365:232
callTimer@32:601
callTimers@32:1002
value@30:2603
<unknown>@30:838
<unknown>@30:106
value@30:810

Can some please help me on this?

In dev, the app does not crash if there is a JS error.
In release it does (expected behavior).
If you crash on startup after 10ms, there is no time for Sentry to actually send the crash to the server. It will however store them and send them whenever it can.


Improve Start-Process functionality to control the position and size of the new application window

Summary of the new feature / enhancement
The task
I work on several computers with different configurations and different types of monitors, but with a similar set of software. I use Windows 10 with Virtual Desktops (VD). There are three VD. First VD - Visual Studio, SSMS, Windows Terminal. The second VD used for mail, MS Edge and an excel file, the third VD used for MS Teams, another window of Edge, another excel file, telegram, whatsapp. And all this is laid out in a certain way on the VDs, because a 4k monitor allows you to organize it all very well. When I turn off the computer, I use hibernation mode, so when I turn it on, this whole order is well preserved. But when an Windows update "arrives" that requires rebooting the computer, I have to play this Tetris, starting and arranging applications on VDs, because not all applications can immediately be located where they were last time, and even if they can, they confuse the VD e.t.c...
Possible decisions
I found a script that allows me to control the position and size of the application window that is just launched, but does not allow me to specify the VD on which I would like the application to appear. In addition, it requires some work for this script to work with both "usial-way-installed" applications and applications received from the MS Store.
Add-Type @"
  using System;
  using System.Runtime.InteropServices;
  public class Win32 {
    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
    [DllImport("user32.dll")]
    public static extern IntPtr FindWindow(string ClassName, IntPtr  TitleApp);
  }
  public struct RECT
  {
    public int Left;        // x position of upper-left corner
    public int Top;         // y position of upper-left corner
    public int Right;       // x position of lower-right corner
    public int Bottom;      // y position of lower-right corner
  }
"@

start notepad
sleep -Milliseconds 50
$h =[Win32]::FindWindow("Notepad",[IntPtr]::Zero)
#$h = (Get-Process | where {$_.MainWindowTitle -match "Блокнот"}).MainWindowHandle

if ($h -eq [IntPtr]::Zero) {return "Window not found"}
$rcWindow = New-Object RECT
[void][Win32]::GetWindowRect($h,[ref]$rcWindow)
$left = 0
$top  = 0
$WndWidth  = $rcWindow.Right - $rcWindow.Left;
$WndHeight = $rcWindow.Bottom -$rcWindow.Top;
[void][Win32]::MoveWindow($h, $left, $top, $WndWidth, $WndHeight, $true)

Proposed technical implementation details (optional)
Feature Request
Now Posershell can handle "-WindowStyle" parameter of "Start-Process" comandlet. Why not go further and add parameters that would point to the exact starting position of the window, its dimensions and the index (name) of the VD on which this app must be placed. The form (i mean C# class Form) has a StartPosition property with the default value of WindowsDefaultLocation, which means Windows can easily manage these parameters, and if OS can manage them, why not allow the user running the application to manage them too? For example:
Start-Process Notepad -VirtualDesktopId 2 -InitLocation 100 250 -InitSize 1024 768
It seems to me that such a solution will be much more elegant and convenient than the hundredth invention of an unreliable bicycle.

TL/DR
PowerShell is a C# cross-platform console application. StartProcessCommand uses ProcessStartInfo which does not include any coordinates.
Long answer.
PowerShell, pwsh.exe is a console application. What that means is it does not provide any GUI, the OS must provide that through some form of Console or Terminal window, and it communicates with the user by reading from stdin and writing to stdout and stderr.
It is C# application and uses .NET 8.0. The API to start a process in .NET is Process.Start with ProcessStartInfo. This does not contain any graphical location information.
It does however contain WindowStyle.
PowerShell already exposes those options.
PS> Get-Command Start-Process -Syntax

Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-Credential <pscredential>] [-WorkingDirectory <string>] [-LoadUserProfile] [-NoNewWindow] [-PassThru] [-RedirectStandardError <string>] [-RedirectStandardInput <string>] [-RedirectStandardOutput <string>] [-WindowStyle <ProcessWindowStyle>] [-Wait] [-UseNewEnvironment] [-Environment <hashtable>] [-WhatIf] [-Confirm] [<CommonParameters>]

Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-WorkingDirectory <string>] [-PassThru] [-Verb <string>] [-WindowStyle <ProcessWindowStyle>] [-Wait] [-Environment <hashtable>] [-WhatIf] [-Confirm] [<CommonParameters>]

Now you do have the option of more control with wt.exe, the Windows Terminal is a GUI application. Type wt.exe --help and you get a dialog box, not a print out in the console window. With that you can control location of terminal windows.

The form (i mean C# class Form) has a StartPosition property

Now yes, in C# you can create Forms for a GUI program. But PowerShell is not one of those. You can write GUIs in C# in Silverlight, WinForms, WPF, XAML, UMP, Maui, WinUI3 or whatever and are welcome to.
Now if you were writing using C or C++ you could use CreateProcess with STARTUPINFO and have more options to set.
However there is no guarantee that any application will actually abide by the coordinate recommendations in STARTUPINFO.
So you are welcome to write a PowerShell cmdlet that uses DllImport etc to use CreateProcessW with STARTUPINFOW and see how far that takes you, and publish in PSGallery if you think it works well.
There is no need for it to be a core PowerShell component because it is not needed by most people, it is not cross platform, it is not what console programs need and it would always be wrong or insufficient for your needs. It is an ideal feature to add as a PowerShell module from the PSGallery.

It seems to me that such a solution will be much more elegant and convenient than the hundredth invention of an unreliable bicycle.

Don't ask console application developers to write GUI code, it makes everyone sad and disappointed. If you know what you want, write it (eg Start-ProcessWithStartInfo and Set-WindowPosition) and put it in PSGallery, at least you will be happy.

Thank you very much for wasting your time on me and giving such a detailed answer, you have slightly reduced the chaos in my mind about PS and WT. I may have cleared up my misconceptions. At least you gave a lot more useful information than I could Google. Well, or I don’t know how to Google :) Anyway, thank you very much again and don’t be so upset over nothing - doctors say that nerve cells are not restored.
Have a great day!
Kind regards.