Using mixed cluster with linux managed instances and windows self managed instances, windows containers can't resolve DNS.

Description
Im running a mixed cluster with both linux and windows instances. My linux instances can resolve DNS normally, but the windows instances can't.
When i search on the AWS console, i see the difference between the SG and change the SG of the windows instances to be the same of the linux managed node group instances, this resolved the problem. I also see that the SG for self managed instances are created here: https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/node_groups.tf#L55.

[x] ✋ I have searched the open/closed issues and my issue is not listed.

Versions

Module version [Required]: "v18.26.6"

Terraform version:
Terraform v1.2.2

Provider version(s):
required_providers {
aws = {
source  = "hashicorp/aws"
version = ">= 3.72"
}
kubernetes = {
source  = "hashicorp/kubernetes"
version = ">= 2.10"
}
helm = {
source  = "hashicorp/helm"
version = ">= 2.4.1"
}
kubectl = {
source  = "gavinbunney/kubectl"
version = ">= 1.14"
}
}

Reproduction Code [Required]
https://github.com/IgorEulalio/eks-gitops-infrastructure-poc
Steps to reproduce the behavior:
access the repository above, terraform init and apply, this will create the entire EKS cluster with mixed instances.
Expected behavior
After change the SG:
nslookup sts.us-east-1.amazonaws.com
Server: kube-dns.kube-system.svc.cluster.local
Non-authoritative answer:
Name: sts.us-east-1.amazonaws.com
Address: xx.xxx.xx.xx
Actual behavior
Before change the SG:
nslookup sts.us-east-1.amazonaws.com
DNS request timed out.

your repository appears to be private

Sorry, its public now.

Searching more, i can see that just adding the SG of Linux Worker Nodes on the Windows Instances make it works.

ah, ok so you are using https://github.com/aws-ia/terraform-aws-eks-blueprints
Currently, EKS Blueprints defaults to using the default launch template for EKS manged node groups which means the cluster primary security group is attached to nodes created by EKS MNG. Your self managed node group is using the security group created by this module which contains the bare minimum network connectivity to create a non-windows based cluster successfully (most will need to add additional rules to support their workloads though). It looks like for Windows based nodes, additional ports are required and you will need to add those in via node_security_group_additional_rules

Description
Im running a mixed cluster with both linux and windows instances. My linux instances can resolve DNS normally, but the windows instances can't.
When i search on the AWS console, i see the difference between the SG and change the SG of the windows instances to be the same of the linux managed node group instances, this resolved the problem. I also see that the SG for self managed instances are created here: https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/node_groups.tf#L55.

[x]  ✋ I have searched the open/closed issues and my issue is not listed.

Versions

Module version [Required]: "v18.26.6"
Terraform version:
Terraform v1.2.2
Provider version(s):
required_providers {
aws = {
source  = "hashicorp/aws"
version = ">= 3.72"
}
kubernetes = {
source  = "hashicorp/kubernetes"
version = ">= 2.10"
}
helm = {
source  = "hashicorp/helm"
version = ">= 2.4.1"
}
kubectl = {
source  = "gavinbunney/kubectl"
version = ">= 1.14"
}
}

Reproduction Code [Required]
https://github.com/IgorEulalio/eks-gitops-infrastructure-poc
Steps to reproduce the behavior: access the repository above, terraform init and apply, this will create the entire EKS cluster with mixed instances.
Expected behavior
After change the SG: nslookup sts.us-east-1.amazonaws.com Server: kube-dns.kube-system.svc.cluster.local
Non-authoritative answer: Name: sts.us-east-1.amazonaws.com Address: xx.xxx.xx.xx
Actual behavior
Before change the SG: nslookup sts.us-east-1.amazonaws.com DNS request timed out.

from what i know self-managed Windows nodes are not supported with Linux managed nodes,
the only way to support mixed modes is to created both windows and linux as EKS managed nodes.
create IAM role for windows nodes and attach 3 policies (like linux) and also
you need to implement this in the aws_auth_configmap_yaml:
- rolearn: arn:aws:iam::92929392333232:role/win-ec2-role
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
- eks:kube-proxy-windows
the apply this using kubectl:
apiVersion: v1
kind: ConfigMap
metadata:
name: amazon-vpc-cni
namespace: kube-system
data:
enable-windows-ipam: "true"


Persistence storage

Hi,
We have just implement this app in our CI environment and it seems to be working quiet well.
Is there any option to enable persistence storage so that the cache is not lost on a server reboot?

Are you using a service like Travis CI? If so, it might be better to set the Buck cache mode to a directory somewhere on disk and then tell the CI service to cache that.

I thought the purpose of this cache server would be to share cache between multiple developers and CI build agents.
I had no idea it loses the cache when server is restarted...
@njlr If I use dir cache mode, then I don't really need the http cache (the two options are exclusive).


README instructions gives an error while trying to run the controller

I am just following the instructions in README. I see the following error:
$ go run *.go -kubeconfig=$HOME/.kube/config
E0129 22:06:44.562026    1469 reflector.go:205] github.com/hvishwanath/sample-controller/vendor/k8s.io/client-go/informers/factory.go:87: Failed to list *v1.Deployment: the server could not find the requested resource
E0129 22:06:45.578094    1469 reflector.go:205] github.com/hvishwanath/sample-controller/vendor/k8s.io/client-go/informers/factory.go:87: Failed to list *v1.Deployment: the server could not find the requested resource
E0129 22:06:46.620581    1469 reflector.go:205] github.com/hvishwanath/sample-controller/vendor/k8s.io/client-go/informers/factory.go:87: Failed to list *v1.Deployment: the server could not find the requested resource

@hvishwanath Sorry for getting back so late on this but the release-1.9 branch does not use apps/v1 so that branch should work fine with previous versions.
(Mentioning this here since it might useful for anyone who comes across this)


Configuring Alfen Wallbox not working, weird login info

It's not really clear from the installation description what the login information should be.
Typically, one should have a "User level" which is either one of these 3:

Owner
Temporary
Secure service access
and a password. Just like the ACE Service Installer requires to access an Alfen device.

I have tried the "Owner" + password, which returns this error:
Error: "Unexpected error creating device."
So what the h*** is the username here?

Sorry if this sounds nooby, but please update the documentation! I'm probably not the only one with this issue ;-)

username should admin

Yeah I know :-) That's also very unclear from the doc, but I could find it in other issues reported here.

I think you found your answer here? If so, you can mark this as 'Done'.

Sorry Peter, the reason I opened that ticket was about the poor documentation…______________On 11 Jul 2024, at 00:33, Peter Hulstaert @.***> wrote:
I think you found your answer here? If so, you can mark this as 'Done'.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

Sorry Peter, the reason I opened that ticket was about the poor documentation…______________On 11 Jul 2024, at 00:33, Peter Hulstaert @.> wrote: I think you found your answer here? If so, you can mark this as 'Done'. —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.>

be my guest to write some documentation with your experience. that can save each other times


Improve performance of SDG tracker

Step data://garden/sdg/latest/sdg takes a long time to build and it is rebuilt quite often as its backported dependencies change. We should optimise it or at least parallelise it, but it is very likely there's some trivial performance bottleneck that could be solved by caching or preloading.

sounds good! assigned myself

Alright, was new to Python profiling so it took me a sec, but here it is! https://github.com/owid/owid-catalog-py/pull/49

Alright, was new to Python profiling so it took me a sec

Just out of curiosity - what tools did you use? I'm used to %lprun and %cprun from jupyter notebook, but I guess there must be better tools now.

I used cProfile then chipped away at the output with pstats (e.g. sorting by cumulative time). Just what was recommended in pydocs. I haven't done it in Jupyter and I don't know if this is actually better!


Drizzle add relational objects during insert/update?

Is it possible to get relations in the mutations (insert/update) as well, like lets say we have a user and a post table currently when i do a query i can request the posts as well however i would also like to be able to add posts during the creation of the user object.
when i create a user, i would like to also add posts as a subfield in the generated UserInsertInput type so when i create the user object, i can attach posts to it instead of doing 2 different inserts.
This might not be a good example with user and post, but i have other data where this would be the easiest way to insert a lot of data at once, and i have many different relations aswell

I'll check if and how that's possible to implement, would likely need Drizzle RQB to support such actions to begin with.

Thank you for your quick response

It's not something I can implement without Drizzle doing it first in the RQB, so until then this issue is on hold.


MongoDB: could not retrieve data while using .Out or .In

I'm using cayley with mongodb and gremlin query language to manipulate data. I'm able to insert the values and view all of them in my localhost:64210 when I use g.V().All(). I'm also getting the right values when I use g.V().Out().All(). When I use g.V("node").Out("relation").All(), I'm getting the desired result. But, when I use 'g.V("node").Out().All()', its returning null. But its supposed to return a list of nodes. Its logging the below error message in the command prompt (the one where I used cayley http).

E0927 18:36:19.299326 07360 quadstore.go:329] Error: Couldn't retrieve node 12c6fc06c99a462375eeb3f43dfd832b08ca9e17 not found

Note: I'm able to achieve the above things when I use 'leveldb'.
BTW, below is my cayley.cfg
{
"database": "mongo",
"db_path": "<IP_ADDRESS>:27017",
"read_only": false
}

It's should be fixed upstream, if you are using Cayley v0.5.

What do you mean by upstream? I'm using Cayley v0.5.

Meaning our master branch. We should upload v0.6RC1 to our release page, I think.

So, isn't there a solution to this issue in v0.5?

One more update, when I use 'g.V("node").Out("relation1").Out().All()', I'm getting right results. But when I do, 'g.V("node").Out("relation1").Out("relation2").All()', I get null as results. Where am I going wrong?

The reason because I mentioned new release is because there's nothing wrong with your query. This might be a bug, but I haven't seen it in current dev version. We will release v0.6 today or tomorrow at most, so you can try to reproduce it on a new version.

When shall we expect the v0.6 release. It's not yet out.

Release is out: v0.6

.In() and .Out doesn't work in any combination when working with v0.6. Also, g.V("node").All() doesn't work in v0.6.

@SharmilaRavi I guess that you have a <node> in your quad file, right? If so, then your query is incorrect, and you should write it this way: g.V("<node>").All(). Check release notes for why this is necessary.
@harirehm I still cannot reproduce your case, at least for MongoDB v3 and path lib (which Gremlin uses).

Yeah we already found the issue. We missed the double quotes. Now it is working fine.
Thanks for your concern.

@dennwc, after updating cayley v0.6, we are not able to reproduce the defect. Not sure whether we have to follow a different format for v0.5 or it's a bug in v0.5. But as of now, .In() and .Out works perfectly with v0.6. And we followed the same procedure in v0.6 as we did in v0.5.

Great! Considering as resolved, then.


License of mantl-elasticsearch-client docker image

I can't find and direct information about this image license on its repository https://github.com/CiscoCloud/mantl-elasticsearch-client/issues/2. Is it a Mantl framework license? Please add note about it.

I would suggest we just put up the Apache license and be done with it. Any objections? Alternatives?

Apache

What are the benefits with continuing to use Apache instead of MIT or BSD?
The Apache license may be useless related to patents, copyrights, and trademarks, until we transfer the trademarks from Cisco. Unless their lawyers agree that the trademark "mantl" is no longer part of Cisco, they could come tomorrow and tell us that since the license has not changed, we have to either rename the project or we have infringed on their trademark. Is that correct?
Changing the license also protect us from liability if we let the Cisco lawyers know in advance that the license of this project has changed going forward.
Until then, we should license everything as MIT or BSD for free use. If we cannot get in touch with their lawyers and have them agree, then we can't own the trademark of "mantl." If we send a letter with the license changing, and the letter is not refuted, the license going forward is the new license of the project.

While I agree with you @Cryptophobia -- right now we have to continue using the existing license until we take those steps. As far as Mantl going forward, I have created a new repo (Mantl3) which is going to be a rewrite of Mantl from the ground-up. I am probably going to change the name eventually but I think forking the project and giving it a new name is the best course of action to avoid any legal issues. My goal right now is just to get Mantl 2 to a stable place so people can continue using the current platform as-is.

... but I think forking the project and giving it a new name is the best course of action to avoid any legal issues.

Agreed.


Where/when is the Remove attribute valid?

It's not clear whether the Remove attribute was only supported until MSBuild 15, or whether the attribute became usable outside of targets starting in MSBuild 15.
Attributes for items in an ItemGroup of a Target > Remove attribute

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

ID: 2d4c1957-1da1-073e-e5d2-b88dbb6e4f0c
Version Independent ID: da079116-5827-d486-271b-9e2cb10bf063
Content: MSBuild Items - Visual Studio
Content Source: docs/msbuild/msbuild-items.md
Product: visual-studio-windows
Technology: msbuild
GitHub Login: @Mikejo5000
Microsoft Alias: mikejo

@addestroyer24 Thank you for the question.
From the text:
This attribute was introduced in the .NET Framework 3.5, but was only supported inside targets until MSBuild 15.0.

...I'm not sure I understand your question.  The Remove attribute was supported from .NET 3.5 until MSBuild 15 (inside targets only).  After MSBuild 15 it was supported both inside and outside targets.

Thank you, that is the clarification I was looking for. I originally read
the wording (until MsBuild 15.0) as saying that the remove attribute was no
longer supported at all, which is what I was hoping to have clarified in
the docs.
On Mon, Sep 16, 2019, 8:05 PM Matthew Sebolt<EMAIL_ADDRESS>wrote:

@addestroyer24 https://github.com/addestroyer24 Thank you for the
question.
From the text:
This attribute was introduced in the .NET Framework 3.5, but was only supported inside targets until MSBuild 15.0.
...I'm not sure I understand your question. The Remove attribute was
supported from .NET 3.5 until MSBuild 15 (inside targets only). After
MSBuild 15 it was supported both inside and outside targets.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/visualstudio-docs/issues/3940?email_source=notifications&email_token=AFJ4MK6YLUNJTDEL6S7LE63QKANODA5CNFSM4IXEPHO2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD623Z4Q#issuecomment-532004082,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFJ4MK3CZ6JW2DBVRO4LTPLQKANODANCNFSM4IXEPHOQ
.

You're welcome, I see what you mean now.  The documentation has been updated.


Make it possible to execute demo with Java 11

Under some circumstances, it was not possible to run the demos with Java 11. Now by executing the mvn exec:java goal, it should be possible in every way.

Codecov Report

Merging #12 into master-11 will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           master-11    #12   +/-   ##
========================================
  Coverage          0%     0%
========================================
  Files             20     20
  Lines           1331   1331
  Branches          82     82
========================================
  Misses          1331   1331

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 3f10dcd...5510363. Read the comment docs.


Add alignment option for DataColumn and DataCell

There should be an option for alignment of the content of DataColumn and DataCell. Need to align like center or center right.

Use alignment widgets


Starts on Contentful Campaign content type

What's this PR do?

Updates code per latest changes to the Gambit Contentful content structure: The campaignId text field has been refactored as a Object reference to a newly created campaign Content type.

Refactors the contentful helper class to return the entire Contentful response instead of only the fields, since an Object reference field also contains similar sys and fields properties.

How should this be reviewed?
Upon deploy to Thor:

Test passing broadcast_id=123 and responding with both yes/no
Test staging keywords
Verify http://ds-mdata-responder-staging.herokuapp.com/v1/campaigns is no longer broken

Any background context you want to provide?
The campaign content type will store chatbot message overrides, as well as the messaging to use for relative reminders.
Relevant tickets
#775
Checklist

[ ] Documentation added for new features/changed endpoints.
[x] Update data for Thor keywords, campaigns
[x] Tested on staging.
[x] Update data for Production keywords, campaigns

Tested on Thor with a dummy broadcast I've set up (ID 456) and all looks good:

Yes

No


Suggestion: GitHub bot to auto update and render files

Hi!
I had a suggestion, a github bot, that commits to your project, automatically updating the excalidraw file, if it exists, and then updating a rendered photo.
So lets say this:
I draw a box with hello in it, I link it up to the project, you give it a branch to go on, and then it adds those files to the branch.
Now lets say I change the text to say how are you
The github bot would automatically update those files on the github repo
Pointless but cool for projects that like to have automated sketch ups, and would be very useful for some of my projects.
Keep up the great work!

Actually, something similar was planned and I meant to work on this but stuff got in the way.
/cc @gr2m what do you think about the bot idea? Is it a feasible alternative to the extension (after all, how many people will have it installed)?

I mean a server for a github bot doesn't need to have a lot of resources, especially for something like this, everything is down on excalidraw's servers for the website.

See https://github.com/excalidraw/excalidraw/discussions/2716 for the previous discussions on that topic, it was partly implemented in https://github.com/excalidraw/excalidraw/pull/2726 (the open excalidraw file by URL part). What's left is to write an updated Excalidraw file back to GitHub. I'm not sure if a server part is needed for that, it's been a while since I wrapped by head around it.
Milo, can you check if what we discussed would cover your use case, and if you have anything to add?

I shall have a look!

Yes, that covers everything I imagine. I think there needs to be a way to import from a hosted provider to make changes. Ie, import from github then provide a repo URL with a branch and path to the file, you can then authenticate with github, and if you have perms to commit on the repo, commit on the repo, if not, fork, make new branch, and create a pr.

@dwelle maybe the next step would be to create an actionable issue as follow up to this one and the discussion at #2716 which what still needs to be done, and how it would work?
If I understand it correctly, excalidraw.com is deployed to Vercel. Would you mind adding a stateless serverless function to the deployment? Then we could implement an OAuth login. If yes, then I'd suggest to work on this with a separate repository / vercel deployment for now, for quicker iteration. Then once we are happy with how things work, add the function to the excalidraw.com deployment.
I think the function would only need to take care of the OAuth flow, everything else could work from the browser app.
If the source file on GitHUb is an SVG or PNG, can you generate both file and embed the source JSON into the files in the browser? Or is that something that can only be done serverside right now?

Oh by the way, I'm happy to help work on this. I've personally used https://next-auth.js.org/ but since excalidraw doesn't use next (and I'm sure it is compatible) it won't work.
If you can let me know how I can help, that'd be great!


Log route path if error is uncaught.

This change is

Cannot use log.error here since plenty of tests start to fail because if this error logged.
Should we think about providing a way to turn this log message off?

Review status: 0 of 1 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Also decided to leave throw new Error(Failed to load bundle '${route.bundle}'); in router.js as is since it's very easy to show that specific information.

Comments from Reviewable

I'd say that configurable logging is something for the future, not necessary to add it now.
I'd also remove the Failed to load bundle '${route.bundle}' part, since it essentially repeats the same info what the browser logs to the console.

Review status: 0 of 1 files reviewed at latest revision, all discussions resolved, some commit checks failed.

src/resolver/resolver.js, line 145 at r1 (raw file):

      .then(() => next(true, this.root))
      .catch((error) => {
        const errorMessage = `Route with path '${currentContext.pathname}' is not properly resolved due to an error.`;

Let's add the failed route (currentContext.route.path) to the message.

Comments from Reviewable

Reviewed 3 of 3 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


GDD type to select something from CasparCG server

Sometimes one needs to be able to select an image, clip or dataset from CasparCG server. Maybe we could add GDD types for that. These would be exclusive for Caspar, as it does not make sense for vMix etc.
Maybe these listings could also be restricted to a sub-folder in Caspar. So, for instance, that the user can only choose images pr clips in one server folder, that are put there (by some external process) to be used for that purpose. Possible scenario: over the shoulder graphic or clip in news.
To be able to select a dataset is use full in situations where a system does only allow templates to have variables (MOS). The template would then invoke an update command to itself with the given dataset.

You bring up some good points!
It believe that some of this should be covered in how a client chooses to implement the gddTypes file-path or file-path/image-path.
It cannot not be up to the template to know in what context or what system it is going to be rendered in, but that is something the playout client would know, so it should be able to determine that for example: "This template is going to be rendered in CasparCG, so the files that I'm going to let the user pick from will be in the template folder".
The ability to restrict selection to some kind of a sub-folder would be a nice addition to the file-path and file-path/image-path though!


Hook up Laravel 5.8

Coverage remained the same at 97.565% when pulling 1ab21578836c4527fa30ff565c434691d7f638ac on CyberiaResurrection:HookUpLaravelFivePointEight into 0b1cb2a07c8948b2fc9eaa6b03efe2905cae8ed7 on Algo-Web:master.

Coverage remained the same at 97.565% when pulling 1ab21578836c4527fa30ff565c434691d7f638ac on CyberiaResurrection:HookUpLaravelFivePointEight into 0b1cb2a07c8948b2fc9eaa6b03efe2905cae8ed7 on Algo-Web:master.


fix: handle terminate in BulkWriter

Realized that we don't need verifyNotTerminated() since terminate() cannot be called unless BulkWriter has been closed first, which eliminates the need for the check.


Fixed wrap_gradio_gpu_call import

Small update/fix to dream_artist_main.py
I haven't used this extension in a while, but I'm assuming the import location for wrap_gradio_gpu_call was changed recently, causing the DreamArtist tab not to load at all.
Updated to import from modules.call_queue in stead of webui.  Tested and working

this happened during 1.5.x -> 1.6.x
the issue is caused by indirectly Import of wrap_gradio_gpu_call from webui
wrap_gradio_gpu_call was removed from webui.py in commit https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/95821f0132f5437ef30b0dbcac7c51e55818c18f
wrap_gradio_gpu_call should be directly import modules.call_queue

thanks, the PR installs for me, can use "install from URL" on  https://github.com/JacquesJooste/DreamArtist-sd-webui-extension.git


404 on bookmarks link

In the obsidian settings for Text Transporter, there's this link:

When I click on it, I get a 404 page not found error

This will be fixed in the next release. Thank you for reporting it.


Napari shows RGB colormap in 2D but not 3D

🐛 Bug Report
Image turns gray in 3D, but shows RGB in 2D.
💡 Steps to Reproduce
When toggling 2D/3D view.
💡 Expected Behavior
See RGB colors in 3D
🌎 Environment
napari: 0.4.19.post1
Platform: Linux-6.5.0-45-generic-x86_64-with-glibc2.10
System: Ubuntu 22.04.4 LTS
Python: 3.8.19 | packaged by conda-forge | (default, Mar 20 2024, 12:47:35) [GCC 12.3.0]
Qt: 5.15.14
PyQt5: 5.15.11
NumPy: 1.24.0
SciPy: 1.10.1
Dask: 2023.5.0
VisPy: 0.14.2
magicgui: 0.9.1
superqt: 0.6.7
in-n-out: 0.2.1
app-model: 0.2.8
npe2: 0.7.7
OpenGL:

GL version: 4.5 (Compatibility Profile) Mesa 23.2.1-1ubuntu3.1~22.04.2
MAX_TEXTURE_SIZE: 16384

💡 Additional Context
No response

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Thanks for opening the issue.
Unfortunately this is a limitation of our rendering engine vispy at the moment, that we're aware of--please see https://github.com/napari/napari/issues/3973 for more in-depth discussion and links to vispy issues.
I'm going to close this as a duplicate, but please feel free to comment on the linked issue or over in vispy.


sdk configuration view

https://issues.jboss.org/browse/AEROGEAR-2271
Create a view under the sdk configuration tab for showing information on the following things:

how to get the sdk for this type of client (iOS, Android)
how to initialize the sdk with the configuration
some basic usage samples.

These views should be code friendly and offer an option to copy the content
mcp screen https://redhat.invisionapp.com/share/3METBQE2D#/screens/278322074

@sedroche These screens do show up in the invision app. @witmicko could you add some screen shots and then ping chis shin on this pr to take a look at the design


311 Submission

Need to submit to this
https://dp.louisvillemsd.org/dpcrm8/Views/AgencyLogin.aspx

Alternate - http://dev.seeclickfix.com/

We're going to utilize SeeClickFix, working on getting a Metro account.


[Feature request] Macromedia Director 6.0

Would be nice to get Macromedia Director 6.0 compatibility.
Right now I get these errors and Director closes itself:

Or maybe I'm doing something wrong?

Movie Restorer currently only supports Director 8.0 and newer. I could add support for Director 7, but Director 5/6 predate Director API which Movie Restorer hooks to allow Director to open protected files.
You could always just use Director 8 and upgrade the movie to that version if all you would like to do is export cast members.

Movie Restorer currently only supports Director 8.0 and newer. I could add support for Director 7, but Director 5/6 predate Director API which Movie Restorer hooks to allow Director to open protected files.
You could always just use Director 8 and upgrade the movie to that version if all you would like to do is export cast members.

Thanks for the answer.
Well, what I want is to be able to open the .dcr and .cct files, edit images and protect them to the original game folder, so I don't think it's possible to use Director 8 files in a Direcot 6 game, right?

No, but there are alternate approaches to do something like that.
Generally speaking, it's a bad idea to open a movie using Movie Restorer then publish it as a protected file again. Shockwave format uses lossy compression, which means if you publish back to a DCR type file, all the assets in that file will lose quality as they've been compressed twice.
The best approach to do something like this is to use a "proxy wrapper." Here's the idea:

rename your game file from example.dcr to example_.dcr
create your own example.dcr with the same width/height, colour palette etc. (you can look at the original example.dcr with Movie Restorer in a newer Director version to find these properties)
create a script in your example.dcr which goes to example_.dcr, then imports a file into the cast member you want to replace, like so:

on exitFrame me
  go(1, "example_.dcr")
  -- now we are in the scope of the original movie
  importFileInto(member("memberName"), "example.bmp")
end

Tada! Now the image will be replaced and without even modifying any of the original game files. :)

No, but there are alternate approaches to do something like that.
Generally speaking, it's a bad idea to open a movie using Movie Restorer then publish it as a protected file again. Shockwave format uses lossy compression, which means if you publish back to a DCR type file, all the assets in that file will lose quality as they've been compressed twice.
The best approach to do something like this is to use a "proxy wrapper." Here's the idea:
1. rename your game file from example.dcr to example_.dcr

2. create your own example.dcr with the same width/height, colour palette etc. (you can look at the original example.dcr with Movie Restorer in a newer Director version to find these properties)

3. create a script in your example.dcr which goes to example_.dcr, then imports a file into the cast member you want to replace, like so:

on exitFrame me
  go(1, "example_.dcr")
  -- now we are in the scope of the original movie
  importFileInto(member("memberName"), "example.bmp")
end

Tada! Now the image will be replaced and without even modifying any of the original game files. :)

If that works you're the one :D

Would this work also with .cct files?

If the cast file is statically linked by the movie, yes. You'd just create a proxy wrapper for the movie which loads the cast file, then specify the cast when using importFileInto
importFileInto(member "memberName" of castLib 2, "example.bmp")
The one issue you might run into, is you might have to copy the frame labels from the movie you're replacing, if the game goes to particular frame labels in that movie, e.g.
      if _movie.frameLabel = 0 then
        go(1, "login013_.dcr")
      else
        go(_movie.frameLabel, "login013_.dcr")
      end if

I know this technique works, I've used it for other games before (such as RobotRage: Rearmed)

Out of curiousity, which game are you modifying? I might be able to help you

Thanks a lot, it's interesting how you can hack Director using... Director.
Well, right now I'm working on hooking GDI32.DLL calls of the Projector as I have 0 experience on Director, because I really have no idea how to implement your explaination..
if you have Discord or other messaging app I can send your the files you need, it's a really old game

Discord: LoneDev#7444

Hello!
Was this implemented or rejected?
Thank you for your hard work

This was closed because I have no intention of supporting Director 6. I
simply forgot to close it at the time.
On Fri, Oct 6, 2023, 1:15 a.m. LoneDev @.***> wrote:

Hello!
Was this implemented or rejected?
Thank you for your hard work
—
Reply to this email directly, view it on GitHub
https://github.com/tomysshadow/Movie-Restorer-Xtra/issues/1#issuecomment-1750098396,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADAH526VRQA7UG3CP2Z6HNTX56VYPAVCNFSM4K7TUXB2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCNZVGAYDSOBTHE3A
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


improvement(framework): calculate audio frame duration

Signed-off-by: pingkai<EMAIL_ADDRESS>

Codecov Report

Merging #345 into develop will decrease coverage by 4.47%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           develop     #345      +/-   ##
===========================================
- Coverage    68.80%   64.32%   -4.48%
===========================================
  Files          212      212
  Lines        11563    11567       +4
===========================================
- Hits          7956     7441     -515
- Misses        3607     4126     +519

Impacted Files
Coverage Δ

framework/demuxer/avFormatDemuxer.cpp
79.19% <100.00%> (-2.39%)
:arrow_down:

framework/tests/dataSource/ipList.h
0.00% <0.00%> (-100.00%)
:arrow_down:

framework/tests/demuxer/demuxerUnitTest.cpp
0.00% <0.00%> (-100.00%)
:arrow_down:

framework/tests/decoder/decoderUnitTest.cpp
0.00% <0.00%> (-93.62%)
:arrow_down:

framework/tests/dataSource/dataSourceUnitTest.cpp
0.00% <0.00%> (-93.39%)
:arrow_down:

framework/tests/demuxer/demuxerUtils.cpp
0.00% <0.00%> (-76.00%)
:arrow_down:

framework/base/OptionOwner.h
33.33% <0.00%> (-66.67%)
:arrow_down:

framework/data_source/ffmpeg_data_source.cpp
7.50% <0.00%> (-57.50%)
:arrow_down:

framework/demuxer/AVBSF.cpp
25.27% <0.00%> (-42.86%)
:arrow_down:

framework/data_source/curl/CURLShareInstance.cpp
69.44% <0.00%> (-27.78%)
:arrow_down:

... and 14 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 7849cad...15fa4b3. Read the comment docs.


Show a warning if gradle is about to crash because of non-ascii characters

A gradle bug causes the gradle daemon to crash if there are non-ascii characters in any environment variable and the locale is not properly set (https://github.com/gradle/gradle/issues/3117).
We bumped into this issue a few times on CI (#24935).
It would be useful for the flutter tool to detect this state and show a warning.
Repro steps (makes gradle crash):
WARNING this puts gradle in a bad state on my machine and my only way out of it was rebooting, try only if you have time to reboot 😄
unset LANG
export SOME_ENV="א"
flutter build apk

I can't reproduce this on macOS and don't want to try it remotely on a Linux box at the moment, but should we consider adding -Dfile.encoding=UTF8 to our gradle arguments?  That should force the JVM to start with UTF8 encoding even if it's not otherwise specified.

Tried running gradle with -Dfile.encoding=UTF8, it still crashes.


XGBoost quickstart

Summary
Ticket URL: https://issues.newrelic.com/browse/NR-157315
Description: Created dmlcXGBoost quickstart
A concise description of the changes being introduced. Please review the pre-merge checklist section to validate this pull request is ready for review and merge. If it is not ready, please mark the pull request as a draft.
The owners of this repo are not experts in the subject matter of the quickstarts. We review for the quickstart to be functional and for security risks. If you are seeking feedback on the content of the quickstart, please seek out a subject matter expert. If you are not an internal NR contributor, we can do our best to connect you with a content reviewer.

Pre merge checklist

[ ] Did you check you NRQL syntax? - Does it work?
[ ] Did you include a Data source and Documentation reference?
[ ] Are all documentation links publicly accessible?
[ ] Did you check your descriptive content for voice and tone?
[ ] Did you check your descriptive content for spelling and grammar errors?
[ ] Did you review your content with a subject matter expert? (e.g. a Browser agent quickstart is reviewed with a member of the Browser Agent team)

Dashboards

[ ] Does the PR contain a screenshot for each of your dashboards?
[ ] Do your screenshots show data?
[ ] Has the sanitization script been run on each dashboard?

Alerts

[ ] Did you check that your alerts actually work?

closing this PR as we have updated changes on PR: https://github.com/newrelic/newrelic-quickstarts/pull/2042


project wrongly generate restTime

when I put the probability of rest to be 0 it is fine

when I put the prob to be 0.5 it dies

How does it happen? it means that my restTime is generating a negative number?

Agree, would suggest to print out the server rest times so you can see what is happening. I think you need to double check how the done time is generated as well, there's seems to be some minusing of time going on

I am having this issue as well, for this test case 1, I did System.out.println(restTime) and it gave me 1.0 instead of 0 for restTime.

Test case 1:

Supplier.get location in Server (rest() only called once in Done event)

TC1 result:

When removing rest() from Done event the TC1 result is correct

Anyone has an idea of whats going on? hahaha

it seems a potential place where it may have gone wrong lies in the updating of serverList like what brian said you might be updating the serverList with an outdated timings. you can try using System.out.println() the rest times with shorter test cases to narrow down on where it went wrong

I agree that it maybe that your timing that you have gotten is not the most updated!

i think you might not be updating your time correctly, maybe you can check whether you update the new updated time when you create the new event


bot brok

brooken
help

thank you broken not thanking after Thank

related code @ https://github.com/yakasov/bot-rewrite-3-js/blob/master/index.js?plain=1#L207-L261

i am having this issue too it is brok

please fix thx

**### _

[ ] - > [aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa](url)

_**


what is the purpose of weights[inds] = tot / num_in_bin and weights = weights / n if momentum=0？

https://github.com/libuyu/mmdetection/blob/be06992564cc6b995b1ae86a258568e9d7b7a599/mmdet/models/losses/ghm_loss.py#L70
weights[inds] = tot / num_in_bin
https://github.com/libuyu/mmdetection/blob/be06992564cc6b995b1ae86a258568e9d7b7a599/mmdet/models/losses/ghm_loss.py#L73
weights = weights / n

You can refer to Equation 9-11 in the paper. And note that the loss is divided by the total sample number in the end:
https://github.com/libuyu/mmdetection/blob/be06992564cc6b995b1ae86a258568e9d7b7a599/mmdet/models/losses/ghm_loss.py#L75-L76
So the weights here correspond to the harmonizing parameter \beta in Equation 10 in the paper.


docker-compose: add restart policy for app

There is a restart policy for other services. Why not for app? ¯_(ツ)_/¯

Coverage remained the same at 0.0% when pulling 631d606daac0b238d16c599ab6e7d5bccb5de489 on fenekku:restart_app into ce8c12d262248c205515a7b3baacbe8f43db4076 on inveniosoftware:master.


Wrong Icons when using a language other than English

Describe the bug
When using a language other than English, some Icons are not correctly displayed, because the CSS selectors select on label names, which change with language. This might affect things other than icons, too.
To reproduce
Steps to reproduce the behavior:

Activate Minimal Theme
Observe the File Explorer icon being a House
Change language to German (or some other language)
Observe the File Explorer icon being a Folder

Expected behavior
Icons shouldn't change with language.
Screenshots

Unfortunately there is no cross-language way to target some of the icons. I would recommend opening an issue in the Obsidian forums.
You can read more about contributing a translation here:
https://github.com/kepano/obsidian-minimal/releases/tag/4.3.0

Has this been fixed?
I just noticed I now have the correct icons show up, and they don't change with language anymore (0.13.22) 🙂

Yes this is fixed as of Obsidian 0.13.22 😊


Upgrade guide for 1.0.0?

It'd be nice to have an upgrade guide from the latest skate version to skate 1.0.0
I don't know the extent of the changes, but it should at least cover the properties -> props rename

Actually, the changelog is pretty good: https://github.com/skatejs/skatejs/blob/master/CHANGELOG.md#100-unreleased


UWP support

Would it be possible to add UWP support?
It seems that SharpDX 3 supports UWP.
Cheers

Any update on this one?

At least give us hope that this is in progress, please

In case anyone doesn't know what UWP is: https://en.wikipedia.org/wiki/Universal_Windows_Platform
It's the new Windows API, used by Windows 10 and Windows 10 Phone apps.

Sorry, been really busy for the past few weeks.
On Fri, Mar 18, 2016 at 4:00 PM, alllohaaa<EMAIL_ADDRESS>wrote:

At least give us hope that this is in progress, please
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/praeclarum/NGraphics/issues/44#issuecomment-198398250

Thank you for your work!
I would like to see this too.

Because Microsoft bought Xamarin and its now free, i'm giving this another
look as well. C# just got a big boost with this.   For MSFT I would use the
universal app approach using XAML for  the UI , i think, in  a grid,
using the borders for the UI,  with the content inside.     Not sure on
this.
Not sure what i will use for a scene graph ( retained mode graphics) ,
still, but the one in Canvas is so bad i manually hide and show stuff that
is off-screen every frame.    I wish i were in a position to donate but i'm
already pushing my limits.
On Thu, Apr 7, 2016 at 8:03 PM, charlenni<EMAIL_ADDRESS>wrote:

Thank you for your work!
I would like to see this too.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/praeclarum/NGraphics/issues/44#issuecomment-206837347

It is very cool issue, any update on this one?

this would be integration of open scene graph or similar oct tree a spatial
index... someone could make a pull...   Inkscape itself has a terrible
(nonexistent ) scene graph and some many bug and regressions that is is
not that easy to keep.  I was converting to XMAL and re importing but I
would love to work directly with SVG, into Xamarin, or native WPF,
Silverlight, or whatever MSFT is doign with c#.. ( there are enough users
screaming  c++ and COM  were not fun 15 years ago and not fun today.)
just to build some stuff.. i spend over 45 minuts!!!    matching the
msvcrt.. the GLUT..   blah  GLEW... blahh...  memories from decades are
coming back.. unwelcome .  hard times....  with the gpu... i do not think
c++ has anything over c# and I will be proving it to myself all week.     Apple has retained mode.   Android does not.    I do
deep zooms and pans in 2d with a camera.     Silverlight had a deep zoom,
short sounds, some of XNA...     A proper raster engine would have been
nicer.   one that allocates at most the amount of screen memory for the
display, not the source image. ...  but we can live with the mipmaps and
weird solutions .   If you open a giant blueprint in Autocad it could take
100 Meg to load... but it uses whatever your screen needs.. or less now
with RLE... , then... it has real time pan and zoom.  These image engines
might be open source, it was hi tech 15 years ago...  BTW.. now that MSFT
has XAMARIN we can expect Android support and MacOSX to go down.
On Wed, Jul 13, 2016 at 2:55 PM, ksemenenko<EMAIL_ADDRESS>wrote:

It is very cool issue, any update on this one?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/praeclarum/NGraphics/issues/44#issuecomment-232272042,
or mute the thread
https://github.com/notifications/unsubscribe/AP_LmWod6akR2mC6WTlRYDB6jO--5mavks5qVIvmgaJpZM4Gxz0S
.

+1 - That is really needed nowadays.

yeah... just throwing in my 2 cents here. UWP support would be really great - perhaps an eta or statement of intent?

SharpDX 3 supports UWP now, so I simply recompiled this library to support UWP

Could someone add this recompiled version as Nuget package? I need it badly...

Sorry, I over-simplified the issue in my previous comment.  I'm working on a PR for this

Just completed it.  I'd appreciate any feedback. https://github.com/praeclarum/NGraphics/pull/63

+1 for this we use xamairn forms for ios, droid and uwp,

Good news! PR #63 was just merged.  Hopefully this will be released soon.

fantastic! Thanks @TomSoderling

UWP + NGraphics
"WinUniversal does not support saving to files. Please use the Stream override instead."
But I don't have stream its in canvas... any suggestions here.

Hi,
Is there any update on this.
I am trying to use NControl.Controls.NetCore in Xamarin.Forms project, but it is not working.
There is no compile time error but the controls are not rendering.
I have seen that I need to call initialization method for NControls i.e. NControls.Init(), but it seems that it is not available in UWP.
I have also tried with NControlViewRenderer.Init() but the result is same.
Any help would be appreciated.
Thanks.


Tests are taking too long

Perhaps some tests are using unnecessarily large example tables? Can we reduce the tables to speed up the testing experience?

Fixed on master.


az webapp deployment source config-zip command results in an error

Command Name
az webapp deployment source config-zip
Errors:
[Errno 2] No such file or directory: 'C:\\Windows\\system32\\outfile.zip'
Traceback (most recent call last):
Temp\pip-install-qxmmnr17\knack\knack\cli.py, ln 206, in invoke
azure\cli\core\commands\__init__.py, ln 603, in execute
azure\cli\core\commands\__init__.py, ln 661, in _run_jobs_serially
azure\cli\core\commands\__init__.py, ln 654, in _run_job
Local\Temp\pip-install-qxmmnr17\six\six.py, ln 693, in reraise
azure\cli\core\commands\__init__.py, ln 631, in _run_job
azure\cli\core\commands\__init__.py, ln 305, in __call__
azure-cli-core\azure\cli\core\__init__.py, ln 485, in default_command_handler
azure\cli\command_modules\appservice\custom.py, ln 322, in enable_zip_deploy
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Windows\\system32\\outfile.zip'

To Reproduce:
Steps to reproduce the behaviour:
-az webapp deployment source config-zip --resource-group {} --name {} --src 'C:\Windows\system32\outfile.zip'
Expected Behavior
Command should accept single '\' in the source path
Environment Summary
Windows-10-10.0.15063-SP0
Python 3.6.6
Shell: powershell.exe

azure-cli 2.0.72

Additional Context
The command tries to take double backward slash(\) in the src path instead of single slash that I have provided. This results in file not found error whereas the file is present at the specified path.

@xor-ranavikrant are you saying that if you run the command with the \ in the filePath it works?

@panchagnula  No, what I'm saying is the command that I have written (-az webapp deployment source config-zip --resource-group {} --name {} --src 'C:\Windows\system32\outfile.zip') returns me file not found error despite the file being present at that location. From the error message I tried to navigate to the path 'C:\Windows\system32\outfile.zip'  from file explorer and it gave the same error as file not found.My question is why is the command taking '\' in the path when i'm providing it a value with '' in it.

Python language uses '' for escaping special characters in string. I don't think \ is the problem here - can you try by having the same file in a different directory under your user profile & not system32 , I believe CLI doesn't have the privileges to read the file.
One more thing to check is are you running the CLI command line where you are running this command from as ADMIN.

Please re-activate if this still happens. with more info after trying the instructions above


[VL] Port CI changes to branch-1.2

What changes were proposed in this pull request?
For accelerating CI validation for PR targeting to branch-1.2.

@weiting-chen


Create TeensySdioSimplifiedWriteDemo

Simplified demo for writing to the SDI card of teensy 3.5/3.6

I will not add this!


Slower boot up time with large 'ports' folder

Hi
I've discovered that when the 'ports' folder contains a lot of (game) files, the boot up time of ArkOS is significantly longer. I have tested this on numerous devices and also with the newest build (09212023). Without the 'ports' folder in the roms partition, the boot up time is around 14 seconds, but with the 'ports' folder (containing a lot of game files) it's approximately 25 seconds (in my case at least).
It seems like EmulationStation is scanning the entire 'ports' folder for files, instead of just the root of the folder where the .sh files are located.
Would it be possbile to change this assumed behavior, so that EmulationStation only scans the root of the 'ports' folder (for .sh files) to optimize the boot up time?
/M

Go to the start menu>vram limit and try increasing the vram limit to 250Mb and see if that makes a difference.  Let me know your results.

Go to the start menu>vram limit and try increasing the vram limit to 250Mb and see if that makes a difference. Let me know your results.

I just tried increasing the vram limit to 250Mb (and higher), but is apparently did not make a difference.  When booting the device and EmulationStation is loading the different platforms, it kind of 'hangs' for a few seconds when the (large) ports folder is available in the roms partition. It  hangs on either 'Uzebox' or 'Movies', even though I don't have any files in these folders. When the ports folder is not available in the roms partition, the device boots significantly faster.
As mentioned, it seems like EmulationStation is scanning the entire 'ports' folder for files, instead of just the root of the folder where the .sh files are located.

Hi,
See if this helps with this issue on your end.

Take the attached compressed file (arkosbackup.tar.gz) and put it in your roms/backup folder. Do not uncompress the contents! Just place the file as is in your roms/backup folder. If you don't have a backup folder in the roms folder, just create it.  If you're using a 2 SD card setup on your device, this must be done from SD1(TF1 Slot).

Then go into the Emulationstation Menu, scroll to Options, hit A, then go to Advanced, hit A, then scroll all the way down to Restore Settings, hit A.

Once completed, reboot your device and see if it speeds up the load time for ES.

Let me know your results.
arkosbackup.tar.gz

Wow, that certainly resolved the issue! It boot just as fast with or without the 'ports' folder now. I wondered why the boot up time became slower over the years of using ArkOS on different devices, but It might just be due to the fact, that I've during this period have added more and more ports (and therefore a large amount of game files) to my setup. But now it's totally fixed. Thank you so much! :)

Awesome!  Thanks for confirming.  I'll queue this fix for the next update for others.


Don't show broken examples

https://ampbyexample.com/components/amp-image-slider/
By default, all the examples on this page are broken. Instead of showing broken examples, either:

Allow them to work. In the try-before-you-buy model, I shouldn't have to buy before I try.
Explain to the user that the example is broken on purpose. This is less-good, but a contextual message would be better than a broken example. Ideally the button to fix the issue should accompany every deliberately-broken example.

Hi Jake,
do you mean that "enable experiment" is not clear for users to understand?
I am referring to the first bit of the page, where it says:
Experimental Mode
This example uses the following experimental feature: [amp-image-slider]. Enable the experiment via the button below. Some components require the AMP Dev Channel to be enabled as well. Learn more here.

Thanks Jake - I agree, this would be good to have.
@matthiasrohmer @pbakaus this is something would should keep in our mind for the ampproject.org re-design.


lostFollower emit breaks teleport because follower is undefined

Error on line 537 of Character.js
when emitting lostFollower, follower is undefined. Passing target instead.
This is evident in the code and causes a reproducible issue in game:
Log in, teleport limbo:black where the puppy will start following you. Go west, then teleport limbo:black again. Check your Ranvier logs for the undefined error.

Good catch! LGTM, though I haven't tested it locally yet.


The response time for the DTWAIN_SelectSourceByName method is quite long

Hello,
When I use the DTWAIN_EnumSources and DTWAIN_GetSourceProductName methods to get the product names, it always takes 10-20 seconds when I select the data source using DTWAIN_SelectSourceByName.
When I select a data source using Twack_32.exe, it is very fast. However, when I use DTWDEMO32U.exe, it takes a longer time. This happens every time I select a data source for the first time after the computer is turned on.
dtwain_20240823.log

The probable reason why the call to DTWAIN_SelectSourceByName takes a long time is that by default, DTWAIN attempts to open the source and get information.  Selecting the source and opening the source are two separate operations, and by default DTWAIN_SelectSourceByName does both.
If you do not want this to happen and instead you want to manually open the source after the selection, you have two options:

Call DTWAIN_OpenSourcesOnSelect with 0 as the argument.  Then a call to DTWAIN_SelectSourceByName will require you to also call DTWAIN_OpenSource

or

Call directly DTWAIN_SelectSourceByNameWithOpen where you specify the name of the file and a flag to determine if the source should also be opened:

DTWAIN_SelectSourceByNameWithOpen(source_name, 0);
The you will also need to call DTWAIN_OpenSource just like choice 1).
The second choice is not documented, but it exists.  The documentation for DTWAIN hasn't been updated to include this function.

To verify where the slowness comes from, looking at your log, if you check the timestamps:
[2024-08-23 15:51:29] Thread [3604]             ===>>>Entering DTWAIN_SelectSourceByName(szProduct=Canon DR-C130 TWAIN)
[2024-08-23 15:51:30] Thread [3604]                ===>>>Entering DTWAIN_OpenSource(Source=03DA97E8)
...
[2024-08-23 15:51:40] Thread [3604]                <<<===Exiting DTWAIN_OpenSource  1

So it takes a second select the source, but it takes 9-10 seconds to open the source.
Note that on opening the source, DTWAIN attempts to enumerate the capabilities of the Source.  This is to ensure that there are minimal (or no issues) when it is time to actually use the source for cap negotiation and image retrieval.  Twack32 does not ensure that this is the case.

Also just to add, from what I remember, Twack_32.exe opens and closes the source on each acquisition attempted (wasteful and error prone), unlike DTWAIN, which keeps the source open even after the acquisitions have been made.
That's why the DTWAIN API requires the user to call DTWAIN_CloseSource, regardless of how the source was originally opened.

Thank you very much for providing these two options. I have tried both of them, but it still takes a long time.
I believe the time is spent on "enumerating the capabilities of the source when opening it." I noticed that the DTWAIN_IsCapSupported function takes a long time.
[2024-08-24 15:18:49] Thread [15416]                         ===>>>Entering DTWAIN_IsCapSupported(Source=00EB4538, lCapability=4098) [2024-08-24 15:18:49] Thread [15416]                            ===>>>Entering VerifySourceHandle(DLLHandle=00E5D198, Source=00EB4538) [2024-08-24 15:18:49] Thread [15416]                            <<<===Exiting VerifySourceHandle  00EB4538 [2024-08-24 15:19:17] Thread [15416]                         <<<===Exiting DTWAIN_IsCapSupported  1
[2024-08-23 15:51:31] Thread [3604]                                     ===>>>Entering DTWAIN_IsCapSupported(Source=03DA97E8, lCapability=4098) [2024-08-23 15:51:31] Thread [3604]                                        ===>>>Entering VerifySourceHandle(DLLHandle=03D55A28, Source=03DA97E8) [2024-08-23 15:51:31] Thread [3604]                                        <<<===Exiting VerifySourceHandle  03DA97E8 [2024-08-23 15:51:40] Thread [3604]                                     <<<===Exiting DTWAIN_IsCapSupported  1
Is there a way to avoid enumerating the capabilities of the source when opening it, or any other way to reduce the time spent? This is a very poor experience for the users.

Thank you very much for providing these two options. I have tried both of them, but it still takes a long time.
I believe the time is spent on "enumerating the capabilities of the source when opening it." I noticed that the DTWAIN_IsCapSupported function takes a long time.
[2024-08-24 15:18:49] Thread [15416]                         ===>>>Entering DTWAIN_IsCapSupported(Source=00EB4538, lCapability=4098) [2024-08-24 15:18:49] Thread [15416]                            ===>>>Entering VerifySourceHandle(DLLHandle=00E5D198, Source=00EB4538) [2024-08-24 15:18:49] Thread [15416]                            <<<===Exiting VerifySourceHandle  00EB4538 [2024-08-24 15:19:17] Thread [15416]                         <<<===Exiting DTWAIN_IsCapSupported  1
[2024-08-23 15:51:31] Thread [3604]                                     ===>>>Entering DTWAIN_IsCapSupported(Source=03DA97E8, lCapability=4098) [2024-08-23 15:51:31] Thread [3604]                                        ===>>>Entering VerifySourceHandle(DLLHandle=03D55A28, Source=03DA97E8) [2024-08-23 15:51:31] Thread [3604]                                        <<<===Exiting VerifySourceHandle  03DA97E8 [2024-08-23 15:51:40] Thread [3604]                                     <<<===Exiting DTWAIN_IsCapSupported  1
Is there a way to avoid enumerating the capabilities of the source when opening it, or any other way to reduce the time spent? This is a very poor experience for the users.

Thank you very much for providing these two options. I have tried both of them, but it still takes a long time.
I believe the time is spent on "enumerating the capabilities of the source when opening it." I noticed that the DTWAIN_IsCapSupported function takes a long time.
[2024-08-24 15:18:49] Thread [15416]                         ===>>>Entering DTWAIN_IsCapSupported(Source=00EB4538, lCapability=4098)
[2024-08-24 15:18:49] Thread [15416]                            ===>>>Entering VerifySourceHandle(DLLHandle=00E5D198, Source=00EB4538)
[2024-08-24 15:18:49] Thread [15416]                            <<<===Exiting VerifySourceHandle  00EB4538
[2024-08-24 15:19:17] Thread [15416]                         <<<===Exiting DTWAIN_IsCapSupported  1

[2024-08-23 15:51:31] Thread [3604]                                     ===>>>Entering DTWAIN_IsCapSupported(Source=03DA97E8, lCapability=4098)
[2024-08-23 15:51:31] Thread [3604]                                        ===>>>Entering VerifySourceHandle(DLLHandle=03D55A28, Source=03DA97E8)
[2024-08-23 15:51:31] Thread [3604]                                        <<<===Exiting VerifySourceHandle  03DA97E8
[2024-08-23 15:51:40] Thread [3604]                                     <<<===Exiting DTWAIN_IsCapSupported  1

Is there a way to avoid enumerating the capabilities of the source when opening it, or any other way to reduce the time spent? This is a very poor experience for the users.

Honestly, I have never experienced having a source take 9 to 10 seconds to load.
Also, the call to DTWAIN_IsCapSupported has an argument of 4098 for the capability.  Translated to hexadecimal is 0x1002.  This capability is CAP_FEEDERENABLED (you can see this in twain.h).  Thus your device is taking a long time processing this capability.
So in short, if you were to use the feeder anyway when acquiring images, the capability CAP_FEEDERENABLED would have needed to be called.  So it is either pay for the time spent on opening the source, or pay for the same time when actually acquiring an image from the feeder.
The only thing I can do is to actually change the source code and put settings in dtwain32(64).ini to not have this capability queried on opening the source.  But again, this capability will still need to be negotiated during the acquisition process.

Also, after going through your log file more thoroughly, it seems that the only real slowdown (except for when actually acquiring the image and saving to a file) is when attempting to negotiate the CAP_FEEDERENABLED capability.
Negotiating this capability for every device I have used doesn't take more than a second.  Maybe the issue is that something is taking time in the Canon Twain driver to actually detect if the feeder is enabled (the driver needs to actually talk to the scanner hardware).  This is more of an issue with the driver than DTWAIN.
Other than that, if you have the ability to do so, recompiling the library with coding changes may work.  The relevant lines in the DTWAIN source code are here.  Commenting out lines 75, 76, and 77 and rebuilding the source code would more than likely remove the call to query the feeder.

There are new DLL's (version 5.5.0) in the experimental branch of the source repository.  See if those DLL's make any improvement on the speed of DTWAIN_OpenSource.
In addition, make sure you are using the text resources here, as the INI files have a new setting that will optionally do the feeder-enabled test on opening the source.

Okay, I'll give it a try on my end.

I tried four different devices, but there was no change.
Here is the log using a Canon DR-C130 device.
dtwain_canon.log
Here is the log using a Kodak E1040 device.
dtwain_kodak.log
Every time I initialize (DTWAIN_SysInitialize), the first call to DTWAIN_SelectSourceByName always takes a long time.

From looking at the logs, the devices are taking a long time to negotiate basic capabilities.  This is abnormal for devices to behave this way.
For example, for the Canon scanner, the code is basically querying the pixel types and bit depths that the device supports, so that calls to DTWAIN_Acquire... do not fail on bad pixel types / bit depths, in addition to caching this information.
Also, the log files do not contain the timings for the TWAIN subsystem operations.  In the call to DTWAIN_SetTwainLog, you should add the following flags:
DTWAIN_LOG_CALLSTACK
DTWAIN_LOG_LOWLEVELTWAIN
DTWAIN_LOG_DECODE_TWEVENT
DTWAIN_LOG_DECODE_TWMEMREF

If the slowdown is within TWAIN32.DLL or TWAINDSM.DLL layer itself, then there is nothing that DTWAIN can do about this, as those are Windows components that control all attached TWAIN devices and how they communicate with the device hardware.

In the Canon log, there is this:
[2024-08-27 17:27:23.368] Thread [20812]       <<<===Exiting VerifySourceHandle returning value of 035743D8
[2024-08-27 17:27:34.224] Thread [20812]       ===>>>Entering DTWAIN_GetCapValues(Source=035743D8, lCap=257, lGetType=1, pArray=2ED1ED68)

Note the 11 second delay.  From looking at the code, this is exactly where DTWAIN makes a call to the TWAIN subsystem to attempt to open the source.  A complete log that includes the TWAIN subsystem interaction would break down the 11 second delay more granularly, and is the reason why you should add those flags to DTWAIN_SetTwainLog.

I'm sorry, I'm not familiar with TWAIN. I hope you can take a look at it.
dtwain_canon_20240828.log
Next, I will spend some time learning about TWAIN.

I looked at the log, and it seems the slowdown occurs when DTWAIN is attempting to cache the container information.
You should also add the flag DTWAIN_LOG_MISCELLANEOUS to the DTWAIN_SetTwainLog call and rerun the program, so that I get a list of all the capabilities that are available.  It looks like your scanner has very many capabilities that DTWAIN is going through, and I believe is a factor in the slow opening of the source.

Okay, here is the log after adding the DTWAIN_LOG_MISCELLANEOUS flag.
dtwain_canon_20240829.log

Ok.  Your device has 122 capabilities, with many of them as custom capabilities.  This is probably why the open of the source is slower than most other devices I've worked with.
I will add a couple of startup options in dtwain32.ini and dtwain64.ini that will optionally bypass the querying of the capabilities on opening of the source.   Note that this will need to be tested thoroughly to ensure that there are no unforeseen errors.  I will let you know when the libraries are ready (they will be in the experimental-5.5.0 branch of the twain_library_source repo).

Okay, no problem. Thank you very much.

New binaries in the experimental branch have been delivered.  You should try this version, plus you will need the updated text resources.
The major change is the handling of DTWAIN_OpenSource and capability handling in general.  See if DTWAIN_OpenSource is faster in opening the Source.

Yes, the source opens faster now.
dtwain_canon_20240831.log
dtwain_kodak_20240831.log
dtwain_other_20230831.log
Next, I will test more devices and check the functionality.

Thanks for the feedback.
Another factor is that the logging adds more time, so you can test with the logging turned off.

Closing, as version 5.5.0 and above now addresses the slow opening of TWAIN sources that contain many capabilities.


e2e: unify make-build bin/ dir and e2e search path for binaries

How many times did I miss that I have to go install instead of make build to run an e2e test via go test. This is probably the reason for half of the times where we I added RunInProcess: true to the fixture because without the test behaves differently in Goland than via make test-e2e. This PR unifies that by basing both on <repo-dir>/bin.

Why not do this in the other direction? Having to add $REPO/bin to $PATH for every repo is pretty annoying, and makes it hard to e.g. use kcp binary in kubernetes checkout, etc. go install is the normal way to create binaries on the system for reuse ...

I still have problems with installing "for every repo". I find that annoying. Tests should work without tainting my system.

Is there a way to reference the go build output somehow?

Btw, there is no need to put bin into your path. And you can of course call make install instead of make if you prefer binaries installed. My point here in the PR is that a test should not have side-effects, e.g. by installing binaries in the system. Does this make sense @stevekuznetsov ?


Serilog MSSQLSERVER got an threading issue

Hi,  I am using this nuget to write log to my database table and for demo purposed I created the console app. In this console app, I am trying to insert three logs, in the following order

Infromation Log
Information Log
Error Log
to my database but it always inserts two 1 and 3 always missing the second one. But when I put Thread.Sleep(5000) at the end of my program then it is inserting all the three logs which make me thinks that serilog internally not waiting for tasks to complete. My program code is below

class Program
    {
        public static IConfigurationRoot Configuration { get; private set; }
        public static IServiceProvider ServiceProvider { get; private set; }

        //https://github.com/serilog/serilog-sinks-mssqlserver
        static void Main(string[] args)
        {
            var mm = new LoggerBuilderClass();

            var taskList = new List<Action> { mm.SecondMessage, mm.FirstMessage, mm.ExceptionMessage };

            taskList.ForEach(x => x.Invoke());
        }

        public class LoggerBuilderClass
        {
            public LoggerBuilderClass()
            {
                var builder = new ConfigurationBuilder()
                               .SetBasePath(Directory.GetCurrentDirectory())
                               .AddJsonFile("appsettings.json");
                Configuration = builder.Build();
                Console.WriteLine(Configuration["ConnectionStrings:DefaultConnection"]);

                var connectionString = Configuration["ConnectionStrings:DefaultConnection"].ToString();  // or the name of a connection string in your .config file
                var tableName = "Logs";
                var columnOptions = new ColumnOptions
                {
                    AdditionalDataColumns = new Collection<DataColumn>
                    {
                        new DataColumn{DataType = typeof(string), ColumnName="ScreenName"},
                        new DataColumn{DataType = typeof(string), ColumnName="TabName"}
                    }
                };

                //https://andrewlock.net/using-dependency-injection-in-a-net-core-console-application/
                //setup our DI
                ServiceProvider = new ServiceCollection()
                    .AddOptions()
                    //.Configure<ViperFreightOptions>(Configuration.GetSection("ViperFreightOptions"))
                    //.Configure<RunProcessOptions>(Configuration.GetSection("RunProcessOptions"))
                    .AddLogging()
                    .AddDbContext<MyDbContext>(o => o.UseSqlServer(Configuration["ConnectionStrings:DefaultConnection"]))
                    .AddSingleton<Serilog.ILogger>(o =>
                     {
                         return new LoggerConfiguration()
                                 .WriteTo.Logger(x => x
                                 .WriteTo.MSSqlServer(connectionString, tableName, columnOptions: columnOptions, period: TimeSpan.FromSeconds(5))
                                 .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Error)
                                 .Filter.With())

                                  .WriteTo.Logger(x => x
                                 .WriteTo.MSSqlServer(connectionString, tableName, columnOptions: columnOptions, period: TimeSpan.FromSeconds(5))
                                 .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Debug)
                                 .Filter.With())

                                 .WriteTo.Logger(x => x
                                 .WriteTo.MSSqlServer(connectionString, tableName, columnOptions: columnOptions, period: TimeSpan.FromSeconds(5))
                                 .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Information)
                                 .Filter.With())
                                 .CreateLogger();
                     })
                    .BuildServiceProvider();

                //log = new LoggerConfiguration()
                //                .WriteTo.Logger(x => x
                //               .MinimumLevel.Verbose()
                //               .WriteTo.MSSqlServer(connectionString, tableName, columnOptions: columnOptions, period: TimeSpan.FromSeconds(1))
                //               .Enrich.FromLogContext()
                //               .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Error))

                //               .WriteTo.Logger(x => x
                //               .MinimumLevel.Verbose()
                //               .Enrich.FromLogContext()
                //               .WriteTo.MSSqlServer(connectionString, tableName, columnOptions: columnOptions, period: TimeSpan.FromSeconds(1))
                //               .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Information))
                //               .CreateLogger();

            }
            public void FirstMessage()
            {
                var exampleUser = new { Id = 1, Name = "Adam", Created = DateTime.Now };
                ServiceProvider.GetService<Serilog.ILogger>().Write(LogEventLevel.Information, "Created Created {@Data}, {@ScreenName}, {@TabName},{@Exception}", new object[] { exampleUser, "Program", "Connection Builder", null });
            }

            public void SecondMessage()
            {
                var exampleUser = new { Id = 2, Name = "Adam", Created = DateTime.Now };
                ServiceProvider.GetService<Serilog.ILogger>().Write(LogEventLevel.Debug, "Created Created {@Data}, {@ScreenName}, {@TabName},{@Exception}",
                new object[] { exampleUser, "Program", "Connection Builder", null });
            }
            public void ExceptionMessage()
            {
                if (1 == 1)
                {
                    try
                    {

                        throw new ArgumentException("Test Argument exception");
                    }
                    catch (Exception ex)
                    {
                        //log.Information("Created {@Exception}", new object[] { ex });
                        ServiceProvider.GetService<Serilog.ILogger>().Write(LogEventLevel.Error, "Created {@Data}, {@ScreenName}, {@TabName},{@Exception}", new object[] { new { Id = 3 }, "Program", "Connection Builder", ex });

                    }
                }
            }
        }
    }

I think something is wrong with my configuration because when I create configuration as below I can see all of the three logs
 logger = new LoggerConfiguration()
                                 .WriteTo.Logger(x => x
                                .MinimumLevel.Verbose()
                                .WriteTo.MSSqlServer(connectionString, tableName, columnOptions: columnOptions, period: TimeSpan.FromSeconds(1))
                                .Enrich.FromLogContext()
                                .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Error))

                                .WriteTo.Logger(x => x
                                .MinimumLevel.Verbose()
                                .WriteTo.MSSqlServer(connectionString, tableName, columnOptions: columnOptions, period: TimeSpan.FromSeconds(1))
                                .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Information))

                                 .WriteTo.Logger(x => x
                                .MinimumLevel.Verbose()
                                .WriteTo.MSSqlServer(connectionString, tableName, columnOptions: columnOptions, period: TimeSpan.FromSeconds(1))
                                .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Information))
                                .CreateLogger();

But when I try to add another information, like fourth one log it does not log that which tell me that my configuration is wrong. So can anyone help me on how do I configure it correctly?

Hi @atul221282 - you'll need to dispose the logger before the console app exits, in order to flush out any buffered log messages. I am not 100% certain, but I expect disposing the ServiceCollection should achieve this, in your first example.

I have tried Log.CloseAndFlush(); but no gain

After diving deep into the documentation and looked at this link
Documentation Link
I tried this same as per documentation but with SQL server but still now working
using (var log = getLogger())
            {
                var exampleUser = new { Id = 1, Name = "Adam", Created = DateTime.Now };
                log.Write(LogEventLevel.Information, "Created Created {@Data}, {@ScreenName}, {@TabName}", new object[] { exampleUser, "Program", "Connection Builder", null });

                exampleUser = new { Id = 2, Name = "Adam", Created = DateTime.Now };
                Log.Write(LogEventLevel.Information, "Created Created {@Data}, {@ScreenName}, {@TabName}",
                new object[] { exampleUser, "Program", "Connection Builder", null });

                exampleUser = new { Id = 3, Name = "Adam", Created = DateTime.Now };
                Log.Write(LogEventLevel.Information, "Created Created {@Data}, {@ScreenName}, {@TabName}",
                new object[] { exampleUser, "Program", "Connection Builder", null });

                try
                {
                    throw new ArgumentException("Test Argument exception");
                }
                catch (Exception ex)
                {
                    Log.Write(LogEventLevel.Error, "Created {@Data}, {@ScreenName}, {@TabName},{@Exception}", new object[] { new { Id = 3 }, "Program", "Connection Builder", ex });
                }
            }

public Logger getLogger()
            {
                var connectionString = Configuration["ConnectionStrings:DefaultConnection"].ToString();  // or the name of a connection string in your .config file
                var tableName = "Logs";
                var columnOptions = new ColumnOptions
                {
                    AdditionalDataColumns = new Collection<DataColumn>
                    {
                        new DataColumn{DataType = typeof(string), ColumnName="ScreenName"},
                        new DataColumn{DataType = typeof(string), ColumnName="TabName"}
                    }
                };

                var logger = new LoggerConfiguration()

                .MinimumLevel.Debug()
                .WriteTo
                //.File("c:/temp/log1.txt")
                .MSSqlServer(connectionString, tableName, columnOptions: columnOptions, autoCreateSqlTable: false,
                batchPostingLimit: 1)
                .CreateLogger();

                return logger;
            }

Facing the same issue. Need to use singleton, but can't...

Sounds like this one needs some debugging. Is anyone able to crack open the solution and take a look?

@atul221282 or @niaher are you still having problems with this? I'm reviewing older issues that are still open without an explanation or plan. If there is no response I'll close this one up as abandoned.
For what it's worth, I've successfully registered Serilog as a singleton in both ASP.NET Core applications and stand-alone .NET Standard libraries, so I can at least confirm it's possible and that it works.
One thing I have experienced when running under debug within VStudio that may be relevant: VS instantly kills the ASP.NET process when it decides you're done debugging (usually when the browser window closes). In this case there is no opportunity for graceful shutdown. Even finalize blocks don't run.

I confirmed the issue still exists in my project.  I am running it in a console application and my configuration is like this:

This highlighted logging statement never makes it to the SQL Server unless I use Thread.Sleep(5000).

The initial logging statement does, however.

@JakeLardinois Thanks for that. I assume this fails running outside of Visual Studio? Please post the versions of the Serilog packages you're using, and which .NET you're targeting, and the type of app this is in.

Yes the issue persists when running outside of Visual Studio.
I am using the below Serilog packages

The logging shows up in the RollingFile sink, just not the MSSqlServerCore sink...

This is a console application and it is targeting the .Net Core 2.0 Framework

@JakeLardinois the Serilog.Sinks.MSSqlServerCore is a different package (and no longer maintained). It was a fork of this package before this one added .NET Standard support. Please try the current dev version of Serilog.Sinks.MSSqlServer and let me know how it goes.
https://www.nuget.org/packages/Serilog.Sinks.MSSqlServer/5.1.3-dev-00224

Well that is embarrassing.
Your right, I swapped out those packages and the issue resolved.  Thank you for your time on this!

@JakeLardinois no problem, a lot of people make the same mistake. (I tried to get the maintaner of the old Core version to take it down or mark it deprecated but never got a response.)
Anyone else? @atul221282  or @niaher ?

All good
On 3 Oct 2018 6:10 pm, "Jon McGuire"<EMAIL_ADDRESS>wrote:
@JakeLardinois https://github.com/JakeLardinois no problem, a lot of
people make the same mistake. (I tried to get the maintaner of the old Core
version to take it down or mark it deprecated but never got a response.)
Anyone else? @atul221282 https://github.com/atul221282 or @niaher
https://github.com/niaher ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/serilog/serilog-sinks-mssqlserver/issues/85#issuecomment-426556803,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEW9GaKXcZj6xqrG74Kz2BZocBJ03pvhks5uhHgCgaJpZM4N6o57
.

Sounds like this one is wrapped up.


[NEW BONUS GUIDE] Tunnel⚡Sats (paid service)

What
A new bonus guide describing how to install and configure Tunnel⚡Sats - a paid service to enable hybrid mode with clearnet over rented VPN servers located on various continents.
Tunnel⚡Sats features

public VPNs with shared IP
port-forwarding (lightning p2p traffic)
split-traffic (interfaces gRPC, rest still usable via e.g. Tor hidden service or Tailscale)
setup and uninstall scripts for multiple projects
no reliance on Tor
increase in payment speed versus Tor
privately paid via the lightning network

Why
Although Tunnel⚡Sats provides setup and uninstall scripts for multiple node packages, this bonus guide describes setup and uninstall procedures step-by-step.
Scope

[ ] significant change to core configuration
[X] independent bonus guide
[ ] simple bug fix

Test & Maintenance
Steps have been extracted from the automated scripts provided by Tunnel⚡Sats.
Preview
https://blckbx.github.io/raspibolt/guide/bonus/lightning/tunnelsats.html
Disclaimer
As you may have noticed by the repo links to my github profile, I'm one of the founders of Tunnel⚡Sats.

Let's go to master 🎉


issue

the pretrained dataset  is  not accessible

Same. The pretrained model is not accessible.

Hello sir pretained model is not accessible.. Will you please provide me the pretrained weights... It would be very helpful for me. Please send the pretained model to<EMAIL_ADDRESS>


Poedit 3.5 stopped respecting "Prefer tabs when opening documents" system setting

Problem Description
In version 3.5 of the application on MacOS (Sonoma), opening multiple *.po files simultaneously results in each file being opened in a separate window.
Expected Behavior (As in Previous Version 3.4.4)
In version 3.4.4, when multiple *.po files were opened simultaneously, they were all opened in the same window, but in different tabs. This was more convenient for managing multiple files at once.
Actual Behavior in Version 3.5
With the update to version 3.5, the behavior has changed so that each *.po file opens in its own separate window, which can be less efficient and harder to manage.
Steps to Reproduce
On MacOS, open the application version 3.5.
Attempt to open multiple *.po files simultaneously.
Observe that each file is opened in a separate window instead of in tabs within the same window.
Environment
Application Version: 3.5
Previous Version: 3.4.4
Operating System: MacOS Sonoma

Probably related to the wx-3.2 upgrade.


Implement first version of API-M CF Tile

Description:
This task is to implement the first version of API-M CF Tile for installing API-M in single JVM mode using API-M BOSH release.
Affected Product Version:
API-M v2.1.0

The first version of API-M CF Tile was implemented at the Pivotal Partner Days workshop and it was pushed to this repository with the following commit: https://github.com/wso2/pivotal-cf-apim/commit/3b59e2356657e18421e34151c5c42042ec840285


fix: handle download and extraction errors gracefully

:tada: This PR is included in version 1.8.0-stage.6 :tada:
The release is available on:

npm package (@stage dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Is this project following sem versioning ?

Is this project following sem versioning ?
https://docs.npmjs.com/about-semantic-versioning
Is that said anywhere ? Should I expect breaking changes between version 2.22.0 and 2.29.4 ?

I don't think it's explicitly stated anywhere, but yes, this project uses semver. There shouldn't be any breaking changes within the 2.x.y range, but you can check the changelog to be sure.


DRAFT: Makefile Docker Targets

*Issue number of the reported bug or feature request: https://github.com/bloomberg/pystack/issues/83
Describe your changes
Added Makefile Targets for Docker Development Commands
Testing performed
Executing make check inside of the docker container
Additional context
None

Making this now for sanity purposes as a draft PR, still need to go back and sign commits / squash


Use dict key lookup instead of hasattr

PR related to #195
An alert's artifacts cannot be updated using the update_alert method because artifact serialization is skipped due to the incorrect usage of hasattr on the data patch dictionary.
Using the in operator instead to look up the key in the dictionary and trigger the artifact serialization if needed.

Thanks @Kamforka, testing the PR.

@nadouani thank you for the merge!
Can you please suggest a release date for 1.8.0, so I can remove the monkey patching from my code due to this bug?


wrong kubectl command in snippet

Under "Run the application" the documentation says "Use the kubectl apply command to run the application" but the code snippet says kubectl create: "kubectl create -f azure-vote.yaml"

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

ID: 965a7faf-6684-1b1e-3570-ea0b38ce02db
Version Independent ID: 2efd8393-0b5b-e827-8762-fa58d6758d93
Content: Quickstart - Create an Azure Kubernetes Service cluster in the portal
Content Source: articles/aks/kubernetes-walkthrough-portal.md
Service: container-service
GitHub Login: @iainfoulds
Microsoft Alias: iainfou

@punppis Thanks for catching it. Since we are creating the resources for the first time in our example, we can use apply or create. Still it's good to have same subcommand on the description and the actual command.
I will assign this issue to the author to do the necessary update.
More information about Object management (Imperative and declarative) in Kubernetes is here if you are interested.

@iainfoulds Please investigate further and update the document as appropriate.
cc: @MicahMcKittrick-MSFT


docs: updates to usb documentation

If your build fails  due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/edgex-go/blob/main/.github/Contributing.md
PR Checklist
Please check if your PR fulfills the following requirements:

[ ] I am not introducing a breaking change (if you are, flag in conventional commit message with BREAKING CHANGE: describing the break)
[ ] I am not introducing a new dependency (add notes below if you are)
[ ] I have added unit tests for the new feature or bug fix (if not, why?)
[ ] I have fully tested (add details below) this the new feature or bug fix (if not, why?)
[ ] I have opened a PR for the related docs change (if not, why?)

Testing Instructions

New Dependency Instructions (If applicable)

Codecov Report

Merging #115 (46b917a) into main (02bc335) will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##            main    #115   +/-   ##
=====================================
  Coverage   2.90%   2.90%
=====================================
  Files          6       6
  Lines        723     723
=====================================
  Hits          21      21
  Misses       702     702

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Appears to have a lot of duplication (though maybe you were instructed to do so?)
I tried to make the simple and custom startup guides similar to the onvif guides since that repo was already released.


is there a way to use postcss with styled-components?

Hi, is there a way to use postcss with styled-components?
I'm using postcss plugins like px-to-rem and rucksack css responsive fonts which are amazing and I would hate to give those up. Is there a way to combine the two?

At the moment there is no way to use PostCSS with styled-components.

Thank you for the quick reply. Sad to hear that. It is quite an eco-system of plugins people worked hard to develop and rely on in their projects one would have to sacrifice for being able to use styled-components... a big price to pay... any ideas for work-arounds?

You can replace many PostCSS with functions. For example a function which calculates pixel to rem could be simple const pixToRem = px => px / 16 or something like this. Other then that you could develop a babel plugin which pipes styled-components through PostCSS. The downside will be that only the static party gets transformed. With v2, styled-components relies on stylis as the CSS parser so https://github.com/thysultan/stylis.js#middleware could help you as well.
There was already a discussion at: https://github.com/styled-components/styled-components/issues/62 which might help you.

ok, just to be short about it, using your pixToRem function example, how would you integrate it into a styled-components based app? would you need to include it for each component individually? is there a central place you can pipe this function in? If this point is clear then I guess we can indeed strip out the functionality of the plugins we need and use them as functions.

maybe styled-components can expose the .use function that the parser uses to register middleware, cc @mxstbr.
A px to rem converter might look something like.
stylis.use(function (context, property) {
    switch (context) {
        case 2: return property.replace(/(\d+)px/g, (match, group) => parseFloat(group)/16 + 'rem')
    }
});

maybe styled-components can expose the .use function that the parser uses to register middleware

We probably won't do that 😊 the more configuration we allow, the less agility we have with our internals which we need to avoid.

ok, just to be short about it, using your pixToRem function example, how would you integrate it into a styled-components based app? would you need to include it for each component individually? is there a central place you can pipe this function in?

// helpers.js

const px2rem = px => `${px / 16}rem`

export {
  px2rem
}

import { px2rem } from '../helpers'

const Button = styled.button`
  font-size: ${px2rem(16)};
`

We're working on a "standard library" that'll contain all sorts of useful functions like px2rem. This will be released soon, it's almost done!

@mxstbr excited to hear about the "standard library" and can't wait to see what you have cooking!
The import of px2rem example you've included though requires developers to actually call it everywhere as was the case with compass for sass offering such mixins and functions.
I see a much greater value in the postcss plugin approach which removes the need to call this function at all!
It will simply run over your code and do it for you and you may whitelist or blacklist css properties from being affected by the process.
This approach saves so much time and effort during development and allows everyone to be MUCH more productive!
The helper looks like a step back in this sense... what do you think?
Thank you!
Ajar

@Ajar-Ajar that's a fair point, I do think there is some value in an implicit conversion of units like px2rem, but unfortunately the cost to support such a thing in Styled Components is too high to justify it. The good news is that Styled Components offers different (and imo far more valuable) abstractions over things like sizing:
import { sizes } from

const Button = styled.button`
  font-size: ${sizes.M};
  padding: ${sizes.S};
`

If you start to build up a suite of reusable constants throughout your app you might find it becomes far more visually consistent and maintainable. At least, that's been my experience.

Hello, everybody. Thank you for the answers.
I would also like to be able to apply additional transformation to the generated CSS, if possible. Alas, you can't cover everything with helper functions. For example, I would need to transform generated CSS with Autoprefixer to support CSS Grid for IE10-11 (styled-components don't do that, and the grid is broken).
What would you recommend for such use case?

I'd also like to apply more transformations to the generated CSS than the default autoprefixer.
For example, I prefer using CSS custom properties for theming (since there's less boilerplate than when using ThemeProvider), but IE can't understand CSS custom property values. A simple solutions is the postcss-custom-properties plugin (repo here), which can automatically generate fallback values.
For use cases like this, it would be great to be able to customize the postcss config that run when our CSS is generated. Since autoprefixer is already being used, hopefully there's a way to make the plugins list configurable.

I recently started using styled-components  at work.
I wrote a Babel plugin and a TypeScript transformer to resolve this problem.


Possible localization bug in BasicBlockListModel?

https://github.com/nikcio/Nikcio.UHeadless/blob/ada63c4cde62b5bc32137e61ebd680c75f11e642/src/Nikcio.UHeadless.Base/Basics/EditorsValues/BlockList/Models/BasicBlockListModel.cs#L34
Should this line pass culture like so?
var propertyValue = createPropertyValue.Property.GetValue(createPropertyValue.Culture);

I was getting cryptic error when querying blocklist, seems it was related to the culture being null:

   at Umbraco.Cms.Core.Collections.CompositeStringStringKey..ctor(String key1, String key2)
   at Umbraco.Cms.Infrastructure.PublishedCache.Property.CacheValues.For(String culture, String segment)
   at Umbraco.Cms.Infrastructure.PublishedCache.Property.GetValue(String culture, String segment)

Hi @rogalmic
Could you add what version of UHeadless and Umbraco CMS you experience this error on. And any reproduction steps that might be helpful debugging the issue.

Hi @nikcio
UHeadless version:
<PackageReference Include="Nikcio.UHeadless" Version="3.0.2" />

It is hard for me to create a test app reproducing this, since i added this as a test to already existing 2 language umbraco app.
The graphql will return following error for "Umbraco.BlockList" elements:
      "extensions": {
        "message": "Exception has been thrown by the target of an invocation.",
        "stackTrace": "   at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)\r\n   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)\r\n   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture)\r\n   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)\r\n   at Nikcio.UHeadless.Core.Reflection.Factories.DependencyReflectorFactory.GetReflectedType[T](Type typeToReflect, Object[] constructorRequiredParamerters)\r\n   at lambda_method142(Closure , IPureResolverContext )\r\n   at HotChocolate.Execution.Processing.Tasks.ResolverTaskFactory.<ResolveAndCompleteInline>g__TryExecute|4_0(Object& result, <>c__DisplayClass4_0& )"
      }

To find the actual root cause, i created a custom PropertyMap  @ PropertyMapOptions, which allowed to replace default handler with my own copy implementation of  BasicBlockListModel. I found out that createPropertyValue.Culture has proper culture string, but it is not used in GetValue call "key1 is null", which results in exception from original report.
Side questions:

is there a way to trace also inner exceptions, since the graphql returned one does not provide useful info?
maybe it is possible to replace already existing entry in PropertyMap @ PropertyMapOptions, since AddEditorMapping will only add handler if umbraco type handler is not there (hence i needed to add custom AddEditorMapping implementation to register my "Umbraco.BlockList" handler in place of default one):

    public class PropertyMapExt : PropertyMap {
        public override void AddEditorMapping<TType>(string editorName)
        {
            base.types.Remove(typeof(TType));
            base.editorPropertyMap.Remove(editorName);
            base.AddEditorMapping<TType>(editorName);
            base.AddUsedType<TType>();
        }
    }

Hi @rogalmic,
It looks like a mistake that createPropertyValue.Culture wasn't included in the getValue call. I've included it now in v3.0.3/3.0.4 and in my testing, it doesn't make a difference for the query. But with a way to reproduce the error, I cannot be certain that the error is fixed by this change. Please try updating to the new version and see if the error is resolved.
Side questions:
Is there a way to trace also inner exceptions, since the graphql returned one does not provide useful info?
Right now there's no better way to trace the errors than in the GraphQL returned one. You're welcome to create a PR implementing some kind of logging or other way to return the errors to the developers.
A starting point might be here: https://github.com/nikcio/Nikcio.UHeadless/blob/fdef65eff44993a6e194f8e1497ce8298b86b3f8/src/Nikcio.UHeadless.Core/Reflection/Factories/DependencyReflectorFactory.cs#L41
Here most errors on properties will go through I don't know if there's a great way to handle it here.
Maybe it is possible to replace already existing entry in PropertyMap @ PropertyMapOptions, since AddEditorMapping will only add handler if umbraco type handler is not there (hence i needed to add custom AddEditorMapping implementation to register my "Umbraco.BlockList" handler in place of default one):
I've fixed this in v3.0.4