Remove RevenueCat.com

Hey! 👋🏻 I work for RevenueCat.com and we just noticed that we were added to this list.
RevenueCat is an in-app purchase processing system and is not used to serve ads to users (actually, some apps use us to let users remove ads!) Blocking our API prevents people from being able to make purchases and unlock great content and features on thousands of apps.
It would be great if we could remove RevenueCat from this list, since lots of users would be getting errors and asking for support from both RC and our customers, with us being unable to help. Actually, we have been getting some reports already that some of our customers' apps are broken because of this.
Let us know your thoughts, I’m happy to answer any questions about our service if you need it.
Thanks!

ping @jawz101 for assist and evaluation. Thanks 👍

According to the FAQ's you are not a payment processor
https://www.revenuecat.com/faq
According to the revenuecat site, it is used to segment users based on purchases and demographic identifiers to influence purchasing decisions.
Examples in the documentation include letting apps collect age, name, phone number, favorite food, email, hair color, and what sounds like anything an app wants to collect.
https://docs.revenuecat.com/docs/subscriber-attributes
These blocklists aren't just about blocking an ad on a webpage.  The more pernicious problem is there is no universal law that let me prevent collection of, notify of what has been collected, as well as request my data be removed from company A, their 3rd parties, nor the 3rd parties of their 3rd parties.  The next thing I know, my name, favorite food, hair color, and whatever is known by 1,000 companies because one company thought it was OK for them to pass it around to make money off of that info for the sake of raising a price on me, upselling me stuff I don't want, keeping my attention on something I don't want.
How about focusing on contextual marketing instead of behavioral marketing?  That is, instead of knowing that my identity (including characteristics and behaviors) is using a product- focus on the product and its relevant, related thingies.  50 years ago if you picked up a Men's magazine the ads were for car parts, cologne, workout supplements, and such because it was a magazine for dudes.    And 100 companies know it as well.

@jawz101 thanks for this ☝ ❤ !!!!
And one more thing(it's off topic so apologies Steve),i saw that invitation too late(sorry about that),so if you want to resend it i'll make sure to activate it ASAP 👍

We do provide some general purpose data storage facilities for apps that want to use them, but none of that collection is done by us automatically. Do you block all general purpose databases? Do you block every app's backend? Just curious where the line is. Do you block Firebase and Supabase?
As for us "not being a payment processor." Without being pedantic, blocking RevenueCat will be cutting off the revenue stream. Our service hosts the SKUs, facilitates the payment, verifies the purchase, and unlocks entitlement. If preventing a commercial relationship with apps is your goal, then so be it. We are just trying to help our developers make money here, so they don't have to do things like sell your data.

api.revenuecat.com looks to be the 6,926 most requested DNS lookup of the 100's of millions of users who use Cisco Umbrella/OpenDNS resolvers in the world.  Congratulations.  That's not the top 6,926 websites- it's DNS lookups.  That's like more than people search for cruises on Carnival Cruise, plan for trips on Trip Advisor, download updates from Microsoft, visit Hulu, Vudu, American Express, Fox Business, Verizon WIreless... you get the idea.
These lists are nothing and users are well aware they can allow something that they want to allow.

Well, wow. Thanks for this @jawz101.
So Jacob @jeiting here's the deal. We serve users who don't want to be traded or tracked and, of course, assailed by ads, phished, and worse. It's really that simple.
I understand what you guys do.  I'm sure that's legit, and I understand why.
You're just on the wrong side of the line.  We make decisions like this all the time. I hope you understand where we're coming from. People depend on us, and one of the things we do is, draw the line.
Closing.

Steven, I appreciate your respectful tone over being talked down to because our service doesn’t outrank Carnival Cruises.
It’s fine if you have a line, and it’s fine if you hold it. I’d just appreciate some consistency. Developers use our infrastructure to make money in a very honest, direct, and privacy conscious way. Our SDK is designed by default to be collect as little information as possible to do the job.
If this is your line, that any service that can collect IID, belongs on your list, I’d ask that you apply it equally, and block Firebase as well. It’s Google after all and they are blatant about their harvesting of data for profit.
Anyway, this is the last time I’ll ask you to reconsider. Thanks for your time.

Thanks Jacob @jeiting.

Really, I don’t think you should block this since Firebase is a useful tool (that can be used in harmful ways) and it would harm a ton of developers and users if it were blocked. Just pointing it out as a weird arbitrary line.

HOLD THE LINE STEVO.....HOOOOOLD THE LINE 😉 👍

I understand you need to draw a line somewhere - let me know if there's any info we can provide to help you make an informed decision. I previously worked on a "developer tool" that was an ad-tech data sausage factory on the backend. One of the main reasons I started working on RevenueCat was to build 100% open-source SDKs that only exist to help developers with no ulterior motives, you can go through the code yourself and verify that no data is collected by the system.
Congrats on developing and maintaining such a popular block list - there are a ton of people getting value from this. It does seem irresponsible though to merge PRs without fact checking the claims though since you have the power to hurt consumers as well.
The tracking done by RevenueCat is for in-app purchases that's stored against an anonymous UUID that is not persisted across installs. IP address is dropped from the RevenueCat servers to be COPPA compliant in kids apps. We do not want to track users, it's a big compliance headache and not our business. We track subscription status, which by the design of Apple/Google cannot be linked back to any individual device to preserve privacy on those platforms. All RevenueCat cares about is the subscription status and what anonymous UUID it's tied back to.
The subscriber attributes referenced in the PR to block api.revenuecat.com are an arbitrary key-value store, no different than Stripe metadata which does not appear to be blocked. Yes, some developers choose to use this metadata to collect things that would be "across your line" - just like with Stripe - and I can acknowledge that. But it's still not clear to me how that is different than any other database that you don't know how it's being used?
The reports we're getting from developers now is that customers who paid money to access premium features of their app are not getting access. Consumers are getting ripped off and developers trying to earn a living by building quality apps people want to pay for are losing money and getting bad reviews. If someone is getting value from a subscription app, there's probably a chance they disable any blocking tool before they cancel their subscription (sorry) which then opens them up to actual ad/data tracking.

According to the FAQ's you are not a payment processor

Sure. So is Chargebee, Recurly, etc. that use Stripe under-the-hood.

According to the revenuecat site, it is used to segment users based on purchases and demographic identifiers to influence purchasing decisions.

The segmentation is done based off of subscription status. (e.g. show me all of my subscriptions that were paid in USD and started between these dates) There's no tools in RevenueCat used to "influence purchasing decisions" and no demographic identifiers associated with a subscription.

Examples in the documentation include letting apps collect age, name, phone number, favorite food, email, hair color, and what sounds like anything an app wants to collect.

None of this data is provided by RevenueCat, developers need to collect it. Meaning if a fitness app asks for someone's age, and the customer agrees to give it to them, the developer can choose to to store it in a key-value store inside of RevenueCat. The key here is all of this information would need to be provided by some other means outside of RevenueCat.

How about focusing on contextual marketing instead of behavioral marketing?

RevenueCat does not serve any ads or participate in any of the advertising data exchanges you're referencing here. We focus on empowering developers with free and open-source SDKs to charge for their product instead of having to rely on advertising based models.

We serve users who don't want to be traded or tracked and, of course, assailed by ads, phished, and worse. It's really that simple.

Amazing! We're all fans of that! Then block the companies that do the tracking/trading/ads. For example Appsflyer: If a developer chose to have a RevenueCat -> Appsflyer integration set up, then by blocking Appsflyer the integration wouldn't work and the consumer is protected.

I walked into this discussion to an immediate false statement.  We're a payment processor..  we're not a payment processor.  A small army of people with vested interests in this company rush to upvote each other's comments. A CEO says I'm talking down to them and proceeds to tell me their product is a general database.  I guess like MySQL?  I also said their DNS was MORE popular than Carnival Cruise- which he misread as less popular implying I was giving an insult- which is confusing.  I said RevenueCat DNS lookups get more traffic than (insert any big company) implying that being on this list has a miniscule effect in the world.  I hope that makes sense.
The only thing I'm looking at is the Revenue Cat website to see how the service is marketed.  The comments on here will not change my understanding of what I see is shown in product materials.
If this repo wants to whitelist it- that is their decision. If it becomes a thing that causes issues for AdAway I will address it there.  If AdAway users came to the AdAway list and said "something broke my Acme Co. subscription" it would've been a different situation.  Instead, RevenueCat tells me something is affecting their revenue.  It feels aggressive and concerning for RevenueCat to bring this up instead of someone who uses the list saying something is not working for them.
Regardless, your company can make these sorts of lists ineffective or unmaintainable.    Your industry is all about finding ways to keep getting around these sort of hangups.

Ah, re-reading your initial message I see now what you were saying. I must admit we feel unfairly maligned and probably are a bit defensive. Especially given we're very privacy conscious and are actively trying to help developers move away from the ads/data collection industry.
Apologies for brigading you. This is affecting lots of our developers, who are receiving elevated customer service tickets, and so our default reaction is to jump to their defense.

If AdAway users came to the AdAway list and said "something broke my Acme Co. subscription" it would've been a different situation.

I didn't go this route because I didn't want to flood you with inbound. Kind of happened anyway. Sorry.
Anyway, the world isn't on fire. Most end users of RevenueCat likely don't know what RevenueCat is though and won't make the connection that AdAway is breaking their ability to purchase.
Have a good holiday and thanks.

I honestly....from my heart...DO HOPE that is the END of it !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

@jawz101

I walked into this discussion to an immediate false statement. We're a payment processor.. we're not a payment processor.

I understand your confusion, the entire purpose of RevenueCat is hard to understand if you aren't a mobile app developer who has dealt with in app purchases before.
Payment processors like Stripe have a beautiful API with webhooks when events happen (such as a customer upgrading, cancelling, etc). It is a joy to develop subscription services on their platform. On the other hand, Apple and Google have some of the worst payment APIs on the planet. Subscriptions weren't a thing when they were designed, so you have 10+ years of shoddy refactorings done to their payment services to "support" subscriptions. They are convoluted with lots of edge cases and completely idiotic design decisions. (see step 6 in this article.
RevenueCat is a wrapper around these APIs that lets you write your payment code once, and have it work across both platforms using much more friendly APIs. They handle all of the crazy integration work (that would be too much for solo developers like myself to handle) on their end.

If AdAway users came to the AdAway list and said "something broke my Acme Co. subscription" it would've been a different situation.

I am an app developer who uses RevenueCat for the above reason and we are seeing issues because of this. AdWay users are likely not going to come to you about this issue, they are going to go to the app developer (or Apple/Google), if they even contact anyone at all (most users will just give up and move on). So I am coming to you on behalf of them to say, yes, it is breaking their subscriptions.

A CEO says I'm talking down to them and proceeds to tell me their product is a general database. I guess like MySQL?

Many payment platforms allow you to include arbitrary data with payment profiles for quality of life purposes. Some companies want customer service to be able to see info (e.g. email or name) on a payment profile to make lookups either and reduce human error, although plenty of others roll their own (I have a dashboard to look up customers on my end, and pull up their payment profile from there). It is purely a convenience thing, and in a way you are right, similar to MySQL - since apps are storing this data in their own database anyways if they collect it. (Yes, I am in a regulated industry and must collect user info)
I understand that your time is limited and that you must rely on the public facing websites to understand and make a decision on if a domain is ad/tracking related or not, I cannot expect you to be an expert in every industry. However I believe @rkotzy has accurately addressed some initial misconceptions you had from reading the website and I hope you will re-consider.

I've been obsessed with this issue ever since it was mentioned.  And read and reread it all.  To understand my sensitivity, I work in an industry that deals with PII and when I see the data that goes into it.  When I see apps using anonymous uids that sounds like something the app industry moved towards.  But then it's this particular page with its particular screenshots and examples that I ams sensitive to.
Purchases.shared.setAttributes(["age" : "24",                               "custom_group_id" : "abc123"])

I think I understand what your primary business is.  I'm even listening to your podcast out of curiousity.  If this was just to manage subscriptions and act as a passthrough for other attribution and marketing platforms it would be fine.  If it breaks your company operational structure (e.g. your support portals) or the customer-to-company subscription service - which it sounds like it does break - I wouldn't want to block that.  But you have a component of your service with developer documentation where you give an example that age and hair color are the sorts of things that they can store on their end users in there accounts.  When I think of the principles of data minimization - one of Google's own tenets - why does a magazine, workout, whatever subscription need my age and hair color?  Everything else about your product isn't these things and elsewhere you explain where your product fits into the app monetization puzzle.
If you were a payment processor and this broke payment processing, that sounds important.  Your FAQs says you're not.  If your a middleman (subscription management) that sounds important but I don't know why you need my shoe size to manage a subscription.  That particular subscriber attribute feature and/or documentation examples bugs me.
As for this
The subscriber attributes referenced in the PR to block api.revenuecat.com are an arbitrary key-value store, no different than Stripe metadata which does not appear to be blocked. Yes, some developers choose to use this metadata to collect things that would be "across your line" - just like with Stripe - and I can acknowledge that. But it's still not clear to me how that is different than any other database that you don't know how it's being used?
Exactly.    I don't like that my personal attributes are sprinkled around on thousands of servers unaware with no way to opt-in vs opt-out, be notified what is there, or claw my data back.
In summary, scrap the shitty picture with my hair color and the age thing and I'd have never gone down this rabbit hole.  Maybe question if opt-in should be a required feature for this marginally insignificant user attributes function.  I mean come on.  If you knew your name, email, phone, age, hair color was stored on a magazine subscription wouldn't you think that's odd?

I'm a one-man indie shop and found this thread trying to find the solution to more and more users reporting problems restoring purchases in my app. I integrated my in-app purchases + subscriptions with RevenueCat since late 2020 and it's made life a ton easier for me as a developer as I've been able to launch IAPs in just one day on iOS, and since integrated Stripe Checkout, and now Google Play. I do 0 creepy things with data, and only use that attribute system which you mention @jawz101 to know which screen in the app triggered the purchase flow.
The only way I can help these users at this point is to have them turn off PiHole, AdGuard, etc in order to restore a purchase.  RevenueCat is literally the only third party piece of code I have in my entire app because I wanted to avoid exactly these kinds of issues, and their business model is simple and direct, I pay them a small % of the IAP revenue that they manage to make for a better user experience for all users -- buy once on any store, have access to all features across all platforms.
I really, really hope that RevenueCat can be removed from this blocklist, they're not one of the bad guys, and this decision is hurting a lot of indie developers like me.

I know a developer using RevenueCat that built an app for hairstylists to save color combinations for their clients. I can see hair_color being an attribute those developers may want to save 🤷♂. Again, RevenueCat gives you a mechanism to store data, it doesn't collect data. And if it really comes down to that screenshot in the docs about Garfield's attributes, that can be changed.

If you were a payment processor and this broke payment processing, that sounds important. Your FAQs says you're not. If your a middleman (subscription management) that sounds important but I don't know why you need my shoe size to manage a subscription. That particular subscriber attribute feature and/or documentation examples bugs me.

You're 100% breaking the usability of apps that use RevenueCat because an api call to api.revenuecat.com is used to answer the question "Is this customer subscribed". Developers can't answer that question now from the app so paying customers lose access to content their entitled to. I don't think Stripe actually processed payments in the early days, they built clean APIs on top of legacy gateways and banks.

Maybe question if opt-in should be a required feature for this marginally insignificant user attributes function. I mean come on. If you knew your name, email, phone, age, hair color was stored on a magazine subscription wouldn't you think that's odd?

Would definitely be open for suggestions here. We thought making these opt-in for the developer would be sufficient. In the example of hair_color, the developer would need to ask the customer what their hair color was, the customer would need to provide that info, then the developer would store it in their database and could pass it to RevenueCat as well. Personally if I'm using an app and they start asking for creepy info I find unnecessary, I try to see if there's an option to not provide the info or delete the app.
It's the background stuff that freaks me out too, which is why I use PiHole.

@rkotzy well I'm removing it from the blocklist.  Clearly this is a feature that has its place but it might at least be nice to make some of those particular use cases within the documentation actually walk through a particular and less creepy example.  That is, instead of just making up "here's where you can store their name, email, age, number, hair color." Maybe use a video store and their taste in horror films.  Having so many demographics in the examples scares the shit out of me and it conditions some developers to go ahead and follow your documentation word-for-word and add all of these fields as if they are your standard app fields.  It just doesn't encourage data minimization to use arbitrary examples.
I don't know what liabilities come with storing data as a hosting provider for someone else's company but I'd encourage at least having a sensible example for a particular, bland product instead of personal info.
I mean here's an example  of a concern where Amazon got attention for 3rd party Amazon Skills on Echo Dots.  You may want to consider having a less arbitrary example and saying something about data minimization principles somewhere.  I just don't like the example there.
Sorry I'm being picky but that's where my head goes.  Anyways, I removed the entry but hopefully I made a little sense.

I think we can all agree the hair color thing is creepy. There are better, more appropriate examples we should use since it will suggest to our users how to use the feature. Sorry, it was just a bad "foo" value.

Thank you so much for working through this, restoring RevenueCat on PiHole and other services is going to make our support lives a lot easier. Thank goodness I don't have to deal with all the app receipt mess myself across 3 platforms, dev life is hard enough as it is. Really appreciate it, hope you have a great new year!


Update or replace dependencies to be compatible with Vue3

Description
As an outcome of an earlier investigation, several libraries must be replaced to complete the migration to Vue3.

[ ] https://github.com/rancher/dashboard/issues/9536
[ ] https://github.com/rancher/dashboard/issues/8207
[ ] https://github.com/rancher/dashboard/issues/9537
[ ] https://github.com/rancher/dashboard/issues/9538
[ ] https://github.com/rancher/dashboard/issues/11486
[x] https://github.com/rancher/dashboard/issues/11596
[ ] Replace vue-shortkey

I think that we should remove #8207 from this issue - merging the modals shouldn't have an impact on finalizing the Vue3 implementation.


Add Headlamp integration post to blog

This is a proposal for a repost of the blog post https://headlamp.dev/blog/2024/08/08/opencost-plugin .
I wasn't sure about who to add as an author, so I added the OpenCost team. Please let me know if you need some changes to give a better idea that the post is a repost from Headlamp's context.

cc/ @yolossn

Thanks @dwbrown2 / @KC-Jenn  . I have updated the post. Let me know if these changes address what you requested or you need something different.

Hi @joaquimrocha - one final suggestion: you might want to add a couple of sentences at the top covering what Headlamp is and the benefit of using it. The audience will be familiar with OpenCost and Kubecost, but might not know much about the Headlamp app or your K8s UI.

@joe-terrible , makes sense. Done.

Updated the date for the post as agreed by email.


nwwin.isDevToolsOpen is not a function

Followed the installation instructions, added node_modules/nw-dev/lib/dev.js to my project. Immediately upon startup, nw crashes with
chrome-extension://clpmodkidojamblhiaibbmdpdmpiojnj/node_modules/nw-dev/lib/dev.js:22
      if (!nwwin.isDevToolsOpen()) {
                 ^

TypeError: nwwin.isDevToolsOpen is not a function
    at process.<anonymous> (chrome-extension://clpmodkidojamblhiaibbmdpdmpiojnj/node_modules/nw-dev/lib/dev.js:22:18)

I'm running nw version 51.0.2704.29 on Ubuntu 15.10.

You mean nw 0.15.0 beta? You'll need the "SDK version" for devtools, i.e. npm i<EMAIL_ADDRESS>although I haven't tested this version yet, so the API could be removed for all I know.

Yes, 0.15.0-beta2. Not sure why the output of nw --version is different.
I am using the SDK version, although I wonder if this issue I filed upstream is the culprit.
I guess this is what I get for choosing a beta version my first time using nw :)

The API method is apparently removed.
I've published<EMAIL_ADDRESS>which should work for the most part with 0.15.0.


Add assigning USER_ASSIGNED_CLIENT_ID before creating SA

Hi!
Create Kubernetes service account step suggests creating a resource using USER_ASSIGNED_CLIENT_ID variable name.
Can you add assigning of this variable in the suggested bash command with this env variable assigning section:
export SERVICE_ACCOUNT_NAME="workload-identity-sa"
export SERVICE_ACCOUNT_NAMESPACE="my-namespace"
export USER_ASSIGNED_CLIENT_ID="$(az identity show --resource-group "${RG_NAME}" --name "${USER_ASSIGNED_IDENTITY_NAME}" --query 'clientId' -otsv)"

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

ID: 773aa5fa-a931-f6f1-f339-6367cef12209
Version Independent ID: 48c7d57f-55a0-5894-5379-ef7d6ed1e24d
Content: Deploy and configure an Azure Kubernetes Service (AKS) cluster with workload identity (preview) - Azure Kubernetes Service
Content Source: articles/aks/workload-identity-deploy-cluster.md
Service: azure-kubernetes-service
GitHub Login: @MGoedtel
Microsoft Alias: magoedte

@Bafff
Thanks for your feedback! We will investigate and update as appropriate.

@Bafff - The variable USER_ASSIGNED_IDENTITY_NAME is already assigned in the previous step when creating the managed identity, so not sure why you're suggesting to create it again unless you close that session and create a new one for the step to create the K8s service account. If that's the case, you can certainly refine the bash script to meet your needs.

@MGoedtel Please check my request. I'm asking about creating variable USER_ASSIGNED_CLIENT_ID which is needed in this yaml and you are talking about USER_ASSIGNED_IDENTITY_NAME

@Bafff - Sorry, you did say that and I had a dyslexic moment. I'll bug this and get it updated by the end of this week. Thanks.

This has been addressed in PR https://github.com/MicrosoftDocs/azure-docs-pr/pull/234227 along with some other change. It goes live later today. #please-close

@MGoedtel Sorry, still not great.  So mine is:
export USER_ASSIGNED_CLIENT_ID="$(az identity show --resource-group "${RG_NAME}" --name "${USER_ASSIGNED_IDENTITY_NAME}" --query 'clientId' -otsv)"
your:
export USER_ASSIGNED_CLIENT_ID="$(az identity show --resource-group "${RESOURCE_GROUP}" --name "${UAID}" --query 'clientId' -otsv)"
But there are no ${RESOURCE_GROUP}  and ${UAID} vars in this article. I know those values are somewhere in the other docs. So can you be consistent and choose 1 variable to use at least across 1 article?

@AjayBathini-MSFT Do I need to create a new issue for this or we would reopen this one?

@MGoedtel
Can you add your comments.

Seems all my requests fixed, @MGoedtel  ?
Maybe you can suggest other Azure Workload Identity articles for me to check (actually to read them, lol :)

@Bafff - Yes, late last week I completed editing and revising the code samples between the Tutorial and the Deploy Cluster article, along with some other minor things I came across. If you want to review other articles on this topic, head over to the Azure AD content for all of their articles on the topic :)


Is it good to have "on_delete: :cascade" on edge foreign_key ?

It is often to have "on_delete: :cascade" on association. In typed_dag, it would be on the edge AR.
This is not mentioned in the README. I wonder whether it is a good practice or not to add "on_delete: :cascade" on edge migration like this:
    add_foreign_key :edges, :nodes, column: :from_id, on_delete: :cascade
    add_foreign_key :edges, :nodes, column: :to_id, on_delete: :cascade

Thanks !!

Admittedly I haven't thought about it before and thus haven't tested it.
I'd assume that having a cascade on the edges is ok.
What is not supported however, is having anything that deletes the edge database records without going through Rails. So a delete on the edge class or an on_delete: :cascade on anything referencing the edges will break the DAG.

Could you please elaborate on deleting edges through Rails ?  Thanks !!


Cargo preliminary support

Finally, we're ready to introduce basic Cargo project support.
Well, almost.
It still wouldn't be possible without HUGE amount of effort from @winger. Taking hat off for your contribution.
P.S. DO NOT MERGE

@alexeykudinkin I haven't tried running this branch yet, but it looks like there is now a settings option for the cargo executable. Can't we use the SdkType stuff to automatically look for and provide this?

@Turbo87 i've completely missed this! We definitely need to meld this two things.

BTW this is similar to how the gradle importer works. After choosing gradle you have the option to choose the jdk that is used for running gradle.

@Turbo87 exactly. Except we do not need to choose JDK after all.

no, not the JDK, but the Rust SDK that contains the cargo executable to be used.

So, as to now we're particularly bonded by the @winger's metadata awesome subcommand to come the crates.io land.

In theory, you should be able to cargo install --git https://github.com/winger/cargo-metadata.git  it.

In practice it fails to compile :(

Ok, I've updated metadata command for the latest cargo version, here it is:
https://github.com/matklad/cargo-metadata.
It should be installable via cargo install --git, if your cargo version is >=
0.6 (0.5 is bundled with rust 1.4, but you can use multirust to try a more
recent toolchain)
The only step left is to push it to crates.io. Seems like @winger is busy and
cannot maintain the subcommand at the moment :(
We need to implement some solid maintenance strategy.
One option is to create a github organization for cargo-metadata and maybe the
plugin itself.

@matklad sounds reasonable.

I will transfer my fork of metadata now

Could we detect if the metadata plugin is not  installed and install it automatically if necessary?

Could we detect if the metadata plugin is not installed and install it automatically if necessary?

I think we can, but I'm not sure that we should implement this. Ideally, metadata should be available in Cargo.

@Turbo87 we could, but for now we'd fallback asking users to make it themselves.

Could we merge this branch?

It's not possible to upload cargo-metadata to crates.io now because it depends on the development version of cargo, so you'll have to use cargo install --git https://github.com/intellij-rust/cargo-metadata

I was able to setup Rust SDK, it detected cargo metadata successfully, started module import and then failed with
Caused by: java.lang.IllegalArgumentException: Argument for @NotNull parameter 'componentManager' of com/intellij/openapi/components/ServiceManager.doGetService must not be null
	at com.intellij.openapi.components.ServiceManager.doGetService(ServiceManager.java)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:37)
	at com.intellij.openapi.module.ModuleTypeManager.getInstance(ModuleTypeManager.java:23)
	at org.rust.lang.module.RustModuleType.<clinit>(RustModuleType.kt:33)

@matklad yep, we're bond to the cargo 0.7.

Unfortunately my metadata build fails.

Unfortunately my metadata build fails.

o_O
Deps are pinned now and the build does not depend on any external C libraries, so it should be absolutelly repeatable. Are you using rustc 1.4.0? Build error log would help a lot here =)

Deps are pinned now and the build does not depend on any external C libraries

It do unfortunately rely (internally) on some stripped version of the OpenSSL.

@matklad it was failing due to the fact that it has been 'linked' against outdated version of OpenSSL. Otherwise installation process seems flawless.

We've successfully imported the first Cargo project! :tada:

Though we don't have any tests for that yet, i believe that we're ready to merge.

Wow, it even detects cargo subprojects!

It's not important, but you can tidy up
        return object : Function<Project, CargoSettings> {
            override fun `fun`(project: Project): CargoSettings {
                return CargoSettings.getInstance(project)
            }
        }

Done.

Done

It is still there: https://github.com/intellij-rust/intellij-rust/pull/155/files#diff-2cf1e62fa2e7994784452d64070b7e42R34

@alexeykudinkin there is a special syntax in Kotlin to avoid fun, let me dig it up

Here is it https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions

Wow, missed that option! Done.

let's merge after CI succeeds. And take a look on use PR: there is a lot of work I want to do in that area after it is merged =)


Add a method to get the current orientation of the StatusBar [iOS only]

This new method for StatusBar uses the native way to get the current orientation of the app's status bar:
[[UIApplication sharedApplication] statusBarOrientation]

This is useful to get device orientation easily, or as a fallback method when other device orientation techniques fail.
Example usage:
import { StatusBar } from 'react-native';
StatusBar.getStatusBarOrientation(orientation => console.log(orientation));

Thanks for adding it! Please use Promises instead of callbacks. Look at other native modules, for example: https://github.com/facebook/react-native/blob/9ee815f6b52e0c2417c04e5a05e1e31df26daed2/Libraries/Linking/Linking.js

Thanks for the review @mkonicek, I changed callbacks to promises in this new commit

@shergin, thanks for the review. Only the 'setter' of statusBarOrientation is deprecated since iOS 9 but the getter is working ok without warnings up to 10.3. interfaceOrientation is deprecated since iOS 8.
statusBarOrientation returns the UIInterfaceOrientation enum. And the main intention to expose this method is to use as a fallback method when other device orientation 'getters' failed (like accelerometer without movement). I used it to deal with video recording orientation and rotation.

Yeah, seems you are right about setStatusBarOrientation.
// Explicit setting of the status bar orientation is more limited in iOS 6.0 and later.
@property(readwrite, nonatomic) UIInterfaceOrientation statusBarOrientation NS_DEPRECATED_IOS(2_0, 9_0, "Explicit setting of the status bar orientation is more limited in iOS 6.0 and later") __TVOS_PROHIBITED;
- (void)setStatusBarOrientation:(UIInterfaceOrientation)interfaceOrientation animated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 9_0, "Explicit setting of the status bar orientation is more limited in iOS 6.0 and later") __TVOS_PROHIBITED;

So, you are using [[UIDevice currentDevice] orientation] right now and sometimes it fails, and in this case you want to rely on statusBarOrientation?
If so, I would propose to change the name to orientation or interfaceOrientation and use RCTConvert for converting between enum values and strings (https://github.com/facebook/react-native/blob/e1577df1fd70049ce7f288f91f6e2b18d512ff4d/React/Views/RCTScrollViewManager.m#L25).

Yeah, I found this answer and it explains good the difference:
https://stackoverflow.com/a/27830166

If you want to get device orientation directly from accelerometer use [[UIDevice currentDevice] orientation]. But if you need current orientation of your application(interface orientation) use [[UIApplication sharedApplication] statusBarOrientation].

I will modify the code using RCTConvert and changing the name.

Any interest in getting this merged? Looks like it has been in the needs-revision state for two months now.

I think RCTConvert is only helpful for setter methods. I couldn't use it to reverse convert without re-declaring a dictionary. But I added constants to StatusBar component (like in Image.resizeMode) to make comparisons more clearer.


Add app icon in readme prettify it

Take icons from - https://github.com/anshumanv/ongaku-desktop/pull/18

I will add the graphic to the readme file. Do you have a preference on which version of the graphic you would like added to the readme?


Add support for SpringRouteBuilder

We should support this. Currently we don't export anything from org.apache.camel.spring so it's not usable at the moment.

Moving to milestone 2.2.0 as 2bc32c4b7339637095c925c3d305548216afe373 opens up support for this. Just need to back up with a test case.


Add test and fix for preventing a type error for props

Fixes #81 .

This PR now depends on the work in https://github.com/fork-tongue/observ/pull/84.


Feat karmadactl waitpodreadytimeout

What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@141690e). Click here to learn what that means.
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master       #1   +/-   ##
=========================================
  Coverage          ?   25.62%
=========================================
  Files             ?      184
  Lines             ?    18511
  Branches          ?        0
=========================================
  Hits              ?     4744
  Misses            ?    13421
  Partials          ?      346

Flag
Coverage Δ

unittests
25.62% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Fixing (hopefully) all three.js documentation links

Addresses issue #175
Here's how this was done:
First I extracted all links using Ack and Vim, and removed duplicates using :sort u in Vim.
Through sheer luck I found all three.js doc pages load https://threejs.org/docs/list.js, which lists all relative doc paths, excluding method links.
Then I wrote a node script to compare all links found in the R3R project to the links from the above mentioned list.js. That script is found here
If you run this script with node test-r3r-links.js, it will not error. The assert on the last line is what verifies all links in R3R source exist in three.js's list.js index.
NOTE: I DID NOT HAND VERIFY THE METHOD SPECIFIC LINKS. As in, I know https://threejs.org/docs/#api/extras/core/Path is correct, but I did not hand verify all the method links like https://threejs.org/docs/#api/extras/core/Path.absarc
The actual change to the codebase took several search and replace sweeps in Visual Studio Code. It was made easier by the fact that the original doc links in R3R link to http, while the updated three docs all redirect to https.
Fun facts:

This was not a simple search and replace. Some things moved, for example Extras.Geometries moved to api/core/geometries
There were some links accidentally to index.html#/api which required specific hand hold replacing
New doc links have lowercase, /materials/ vs /Materials/
I considered making a quick scraper to make sure all replaced links were valid, but because threejs uses iframes, all broken links return 200s :shrug:
Going to the actual doc page in the iframes redirect to broken URLs. For example, try going to https://threejs.org/docs/api/textures/Texture :shrug:
Stop linking to things :D

Sweet! Thanks!! I'll verify and merge ASAP!

Stop linking to things :D

😅

Any updates on this? Merging the PR will improve docs expirience for the react-three-render novices.

Thanks a lot again for the PR :)


Migrations created by create command place mongodb in a constant not a variable

@afloyd
Quick fix here. Any feedback?
Thank you.


LuaMidi.get_MIDI_tracks does not set duration on NoteEvents

Example program:
local LuaMidi = require ('LuaMidi');

local tracks = LuaMidi.get_MIDI_tracks("tetris.midi");
events = tracks[2]["events"]

for i=2, #events do
	console.log(events[i]:get_duration()); --no return value
end

Tetris.midi in a zip file.
On line 147 of LuaMidi.lua, the event table created for the new NoteEvent doesn't have duration information. I gave a look at raw_note myself but it was tough to determine how to find a duration from that.
I take it what needs to happen is looking at the difference between a NoteOn and NoteOff event, but I'm not familiar enough with the MIDI spec or how the data is being digested to really discern how to figure that information out.

Yes, this is correct. The thing is I haven't implemented it because it creates a problem I couldn't find time to think about, yet.
If you check API, you'll notice that LuaMidi abstracts NoteOn/NoteOff events and compiles them to NoteEvent. However, this class isn't, currently able to intercalate notes, but, only, to make them sequencial (a melody with all notes having the same duration) or simultaneous (basically, a chord).
What happens is that I can't, with the current abstraction, import a MIDI file that contains a simple note that starts while another is playing in the same track, because it can't be described in LuaMidi.
The way I see it, I have just a good option: to add manual/arbitrary NoteOn and NoteOff events, so LuaMidi would import tracks with less abstraction and use NoteEvents only when composing new tracks.
I'm currently focused on college, but I think I could do that during my free time. If you have any other suggestion, I would appreciate to read it.

Ahh I see the problem, that does make sense. No, nothing really jumps to my mind for better solutions. For my purposes I was just going to switch to using Pete Billam's MIDI.lua. So don't stress to hard if this would take a lot of time for you.
Good luck with college too :)

Thanks, man.
I just read your link-bot repo. I have to fix this anyway to release a concise version of LuaMidi, so I'll be working on it starting tonight. If you want to migrate back in the future, it'd be nice to have some feedback, also haha

Awesome! Yeah I'll keep a watch on this, if you get things working I'll likely switch back. LuaMidi's API is much nicer :]


Question/FMR: Are buttons interrupt enabled?

Hello, I have a need for a button that can detect a press while in a do/while loop. The application is for a rock tumbler. In my code, I calculate a runtime using a 100k Pot, then use some math to calculate a total number of rotations that need to be executed. The program then hands off to a loop that commits one rotation and then loops for the number of calculated passes.
My code process is more or less like this
setup()
{
    button.setLongClickHandler(longClick);
    button.setDoubleClickHandler(doubleClick);
    button.setClickHandler(click);
}

void longClick(Button2& btn)
{
        Log("long Click, Start running\n");
        DrawSmallText(szStartRunning);

        b_RunningState = !b_RunningState;
        if (b_RunningState)
        {
           	StartRunning();
        }
 }

void doubleClick(Button2& btn)
{
    Log("double click detected, change rotation count\n");
    long lHours = 0;
    char buf[20];

    DrawSmallText(szDialHelp);

	    b_SettingRunTime = !b_SettingRunTime;

        //This is extremely ugly, I need to come up with a better way to handle getting the value and present it.
    do
    {
	    pot_val = analogRead(POT_PIN);

	    lHours = map(pot_val, 0, 1023, 5, 245);
	    sprintf(buf, "Run %u Hrs", lHours);

	    DrawSmallText(String(buf));

     } while (b_SettingRunTime);

    //Set the total number of rotations from the calculation macro
    Rotations = ROTATE(lHours);
 }

//Handle the clicks, to set the event flags, (this assumes multi threading which doesnt really exist.
//    so I need to re-evaluate how to handle this part
 void click(Button2& btn)
  {
    Log("click, do something...\n");

    if(b_SettingRunTime)
	    b_SettingRunTime = false;

    if(b_SettingRPM)
	    b_SettingRPM = false;

     if(b_RunningState)
	    b_RunningState = false;
  }

void StartRunning()
{

    digitalWrite(DIR_PIN, HIGH);	//Turn stepper clockwise
    digitalWrite(LED_RUNNING, HIGH);   // turn on the running led

    do
    {
	// Spin motor for 1 rotation
	for(int x = 0; x < stepsPerRevolution; x++)
	{
		digitalWrite(STEP_PIN, HIGH);
		delayMicroseconds(stepDelay);
		digitalWrite(STEP_PIN, LOW);
		delayMicroseconds(stepDelay);
	}
    }while (Rotations-- > 0);
    digitalWrite(LED_RUNNING, LOW);    // turn the LED off by making the voltage LOW
}

What I want to do is detect clicks from within the StartRunning(), clicks should change the display message to show remaining time running, and a long click to stop the motor.
I can do this with making my own interrupt, but I wasn't sure if I should do that, or add a detection in the loop for a DigitalRead, or if there were a way to interrupt to detect presses inside the loop using one of your apis?
Any advice or ideas would be most appreciated!
Cheers!

Well, if size is a now a "problem" get an ESP8266 or 32 (maybe a Wemos D1 Mini). Cheap, more memory and Wi-Fi. Then you "solve" the code bumming problem by getting something more powerful but cheap... 😀
Cheers.


Added Blog Section (issue #18)

This PR addresses issue #18 by implementing the following:

Added a dedicated "Blog" section in the navigation bar.
Created a blog page to feature educational content, articles, and updates related to scholarships and career development.
Improved user engagement by offering continuous and relevant content that helps users stay informed and connected with trends and opportunities.
Updated the website layout with links to the new blog section.

Comment:
This addition is aimed at enhancing the platform by providing users with valuable resources and improving the overall user experience. The new blog section will help the platform serve as a hub for knowledge, updates, and career-related articles.
https://github.com/user-attachments/assets/a9f627bd-027a-45f8-b72f-8a87fe35f04d

@SCR01 press on commit suggestion

@SCR01 also resolve the conflicts

@SCR01 resolve conflicts

@SCR01  i told you to resolve the conflicts not to resolve the conversation

@aditya-bhaumik i didn't resolve the coversation, please check it.

@SCR01 okay but until you resolve the conflicts i cannot merge this pull request

@aditya-bhaumik i resolved it, can you please check it now.


Update to OAuth service?

Any thoughts on the update to the OAuth service? Current version works fine, but how long will Bitly support it?
Emailed Bitly about it today. Will post the answer here.

Response from Bitly:
"We do not have plans to remove API key support from those API end points that support it, but as we create new endpoints, we're not building them with API key support. So older libraries such as the one you are using won't have access to our newer functionality."

This code supports OAuth. You just need to provide your access token.


Updated to correctly find body size

Ensures that tellg doesn't return -1 because of bad bits set in an earlier operation
Fixes #725

Oops wrong place to create a PR


API Character/Person Endpoint Anomalies

I've been working with the API and I've run into a few strange occurrences, and I'm not sure if they are issues or if there is a logical explanation for what I'm experiencing.
For example, if I try to hit the following endpoint: https://api.jikan.moe/search/character/goku
I receive the expected result - a status of 200 and a JSON string with information for the character Goku.
However, if I try to hit this endpoint: https://api.jikan.moe/search/character/bulma
I receive a 500 status with an error in the console that just says "Server error" even though I know "Bulma" is a valid character.
If I change "bulma" to "buruma" (the Japanese pronounciation of Bulma) so it looks like this: https://api.jikan.moe/search/character/buruma I do receive the expected result - a 200 status and Bulma's information.  The result even has "Bulma" in the name field.  This leads me to believe the endpoint is potentially searching based on the "nickname" field rather than the "name" field but it's just a guess.  I just thought it was strange that it couldn't pull "Bulma" and there are a few other names I tried that didn't work, as well.

On a related note, a similar thing seems to be happening for certain voice actors.  If I search for Monica Rial at the following endpoint, I receive a 200 status with the relevant search results: https://api.jikan.moe/search/people/rial
But if I do a similar search looking for Vic Mignogna at the following endpoint, I get a status of 200, but no results at all: https://api.jikan.moe/search/people/mignogna
Is there something special I should be doing when searching for voice actors using the API?  I also noticed I can search for something like "Dragon Ball Z" with the https://api.jikan.moe/search/anime/:name endpoint, but I can't do a similar search like "Monica Rial" with the https://api.jikan.moe/search/people/:name endpoint.  I'm just not sure if there's something extra I should be doing to be able to pull better results from the voice actor/person/people part of the API.
I apologize if this isn't the correct place to post this, or if this is just user error.  It's entirely possible that I'm doing something wrong, but I just wanted to post in case it is an issue or just to receive clarification on what I might be doing wrong.  Thank you in advance for any help you can provide!

Hi, thank you for opening an elaborate issue.
The first one ("Bulma" character search) is actually a parser issue related to #198 and #200. We changed how the MAL IDs are to be parsed from URLs a bit back and MAL has buggy/empty links (see image). This causes the parser to throw an exception, which gives "Server Error" on the REST service.

I've patched the the MAL URL parser to return 0 for MAL IDs for these "empty links". So https://api.jikan.moe/search/character/bulma should work. Currently looking into a permanent solution going forward and into why "Server Error" is being shown instead of the parser error on the REST service.

The latter part of your issues are both actually caused by the same problem. What MAL does when there's only 1 search result is that it redirects to that item's page instead of listing the singular result.
So as an example, Jikan parses people from this MAL link: myanimelist.net/people.php?q= Hence both "Mignogna" and "Monica Rial" are plugged into there.
If you go to these link, you'll see the results:

https://myanimelist.net/people.php?q=rial
https://myanimelist.net/anime.php?q=Dragon Ball Z

However links that only have single results are redirected. Try these search links as an example, you'll be taken to their pages instead.

https://myanimelist.net/people.php?q=mignogna
https://myanimelist.net/people.php?q=Monica Rial

I'm currently working on a solution to tackle this by following the redirection and parsing it as a result item. I've opened an issue which can be tracked; #202.

Also two more things.

The base version you're using is currently v2. You can use REST v3 via https://api.jikan.moe/v3/ which has many more features but a Schema Update as well.
It's encouraged to use the search endpoint by putting your query in the ?q= GET. Search results are more accurate this way, percentage encoding is fully supported and characters such as / can be included.
https://api.jikan.moe/v3/search/character/?q=goku
https://api.jikan.moe/v3/search/anime/?q=Dragon Ball Z

And for pagination

https://api.jikan.moe/v3/search/people/?q=rial&page=2

More information here: https://jikan.docs.apiary.io/#reference/0/search
Let me know if I can help you any further

Thank you for getting back to me so quickly with a fix and for explaining the issues!  That actually makes a lot of sense now.
And thanks for letting me know about the v3 update.  I'm actually working on a small application that reads from the API so sometime soon I will likely migrate my code over to that version after checking out the documentation.
Thanks again for all your help!

Anytime!
Closing this, you can track #202 with the remaining issue.


How to add new roles

I want to add a new role to my existing work place (i.e Engineer from 2016-2023, Program Manager from 2023-Present) how would I do that?

Hi, did you find out how to do this?

follow. I admit it would be useful

I was able to figure it out (I just created my own function in order to do so). I'll paste it here:
\newcommand{\resumeNewRole}[2]{
\vspace{-2pt}\item
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textit{\small#1} & \textit{\small #2} \
\end{tabular*}\vspace{-7pt}
}
Just add this in the "custom commands" section, it works perfectly

thanks @butterboy265, appreciated!

Hi @butterboy265, thanks for the info!
I just have a small question.  Otherwise it looks like this;

I wanted to keep the bullet points only in front of the company names. How can I do that?

@erdembilgin you can try this, update your resumeNewRole :
\newcommand{\resumeNewRole}[2]{%
\vspace{-2pt}
\noindent
\begin{tabular*}{0.97\textwidth}[t]{@{}l@{\extracolsep{\fill}}r@{}}
\textit{\small#1} & \textit{\small #2} \\
\end{tabular*}%
\vspace{-7pt}
}

Other option is just uncommenting https://github.com/sb2nov/resume/blob/master/sourabh_bajaj_resume.tex#L128...L133 should just work for you.


Work around mods with non-standard archive structure

This applies mostly to bin/Data overwrites, but also to some .pak mods.
Lots of mods (sadly) have a file structure of e.g. <mod name>/bin/[…] instead of flat bin/[…] inside the mod archive. Yes, it’s annoying to support “wrong” data structures, but some leeway would be nice. E.g. you could check for */[bin|Data]/* or something.

I'm already working on a work arround for FO4 mods, I'll see if the code
works for BG3.
On Fri, 15 Sept 2023, 08:30 alterNERDtive, @.***> wrote:

This applies mostly to bin/Data overwrites, but also to some .pak mods.
Lots of mods (sadly) have a file structure of e.g. /bin/[…]
instead of flat bin/[…] inside the mod archive. Yes, it’s annoying to
support “wrong” data structures, but some leeway would be nice. E.g. you
could check for /[bin|Data]/ or something.
—
Reply to this email directly, view it on GitHub
https://github.com/CHollingworth/Lamp/issues/15, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARGLQVMQNQ5WVDPLIE2QRQDX2P72RANCNFSM6AAAAAA4ZMJMXY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Repeated flags working as intended?

Describe the bug
When using the aws mixin multiple flags don't seem to work correctly. The action I am trying to perform is create an ec2 instance with multiple security groups. This could be related to #11 ?
To Reproduce
Steps to reproduce the behavior:
There are several scenarios here:
1. Multiple items added as a YAML sequence
install:
  - aws:
      description: "Provision VM"
      service: ec2
      operation: run-instances
      flags:
        image-id: ami-xxxxxxxxxxxxxxxxx
        instance-type: t2.micro
        region: eu-west-1
        subnet-id: subnet-xxxxxx
        security-group-ids:
        - sg-xxxxxxxx
        - sg-xxxxxxxx

2. Multiple items added as a formatted string
Replace the SG sequence with:
security-group-ids: "\"sg-xxxxxxxx\" \"sg-xxxxxxxx\""

3. Multiple items added as a 'simple' string
Replace the SG sequence with:
security-group-ids: "sg-xxxxxxxx sg-xxxxxxxx"

Expected behavior
That you can add multiple items, for instance multiple SGs to a yaml config and have them all attach. Some of the above options produce the correct output in the debug console (running install with the --debug flag) but the commands don't seem to work.
Porter Command and Output
porter install --cred aws_nonprod_creds --debug

For the different scenarios:
1. Multiple items added as a YAML sequence:
This adds multiple --security-group-ids to the aws ec2 command:
aws ec2 run-instances --image-id ami-xxxxxxxxxxxxxxxxx --instance-type t2.micro --output json --region eu-west-1 --security-group-ids sg-xxxxxxxx --security-group-ids sg-xxxxxxxx --subnet-id subnet-xxxxxxxx

Only the last is chosen and applied - I think this is in the AWS docs somewhere, but can't remember where (sorry!)
2. Multiple items added as a formatted string
This would seem to produce a correctly formatted output (i.e. if you run something like this outside of porter then it will run and create you an instance as intended)
aws ec2 run-instances --image-id ami-xxxxxxxxxxxxxxxxx --instance-type t2.micro --output json --region eu-west-1 --security-group-ids "sg-xxxxxxxx" "sg-xxxxxxxx" --subnet-id subnet-xxxxxxxx

But the error that you get is: The parameter groupName cannot be used with the parameter subnet. To me this implies it is trying to do something with the default subnet or an SG that is not in the same subnet - however, I have checked on my example and it works outside of the bundle so this is not the case.
3. Multiple items added as a 'simple' string
This would also seem to produce a correctly formatted output - same as no.2 just without quotes around the SGs:
aws ec2 run-instances --image-id ami-xxxxxxxxxxxxxxxxx --instance-type t2.micro --output json --region eu-west-1 --security-group-ids sg-xxxxxxxx sg-xxxxxxxx --subnet-id subnet-xxxxxxxx

The error is the same as for no.2: The parameter groupName cannot be used with the parameter subnet
Version
porter v0.23.0-beta.1 (9c49056)
aws v0.2.1-beta.1 (can't seem to find version hash)

I don't think that the the aws cli takes repeated instances for that flag (--security-group-ids) which is why you are seeing it only use the last value passed in the first case.
I think I have a fix for this https://github.com/deislabs/porter/pull/931. Hah, I tried to post this comment this morning and GH has been fighting me today. Maybe this time it will post?

Hi @carolynvs, sorry i've not been able to get back to you for a while - was out the end of last week. Anyway, tried this out at work earlier, and I do believe that the AWS command does have multiple inputs - at least I got two SGs using two SGids.
Anyway - from the PR it looks like you have this all under control! Amazing how fast things develop on this project!

@HarveyEllis I believe that this has been fixed now in porter v0.25.0-beta.1 and the aws mixin v0.3.0-beta.1 which were just released today. 🤞
Install the latest version of porter, verify that you now have the the latest aws mixin version (installing porter will install the latest version of the mixin) and give it a go.

@HarveyEllis I believe that this has been fixed now in porter v0.25.0-beta.1 and the aws mixin v0.3.0-beta.1 which were just released today. 🤞
Install the latest version of porter, verify that you now have the the latest aws mixin version (installing porter will install the latest version of the mixin) and give it a go.

@carolynvs - just to confirm - I tried this last week and it worked! Thank you for the quick fix! :)

Hurray! 🧁


add twenty questions task

As described in the README:
This task involves two instances of a model playing twenty questions with each other.
One instance of the model, "Bob", asks a series of questions to try to identify the
concept. The second instance of the model, "Alice", is given a concept to convey in
its context window, but can only provide yes or no responces to Bob's questions.
The score reflects how many questions are required to communicate the concept, up to
some maximum number of interactions.

Correctness: I checked the task.py and also tried running a GPT model against it. Both the code and the behavior seem correct.

Specificity: The task is quite specific in that it expects two instantiations of the model to communicate and arrive at a concept which is known only to one model. It is testing multiple aspects of language models including factual correctness of answers, ability to ask questions towards a goal (while also keeping in mind that they cannot be open-ended but rather Yes/No), ability to keep memory of question/answers, and generally converse effectively in the presence of information asymmetry and a counterpart who only answers in Yes/No.

Thoroughness: There is significant variability in the underlying concepts that Bob is expected to discover (from apple to phase transition). So, I don't expect any spurious correlations to form in the task.

Difficulty: The author tried running the task on some smaller language models and found it to completely fail. I ran GPT2-XL (and some smaller models) on the task and reproduced this. Depending on the specific prompt, I found that Bob asks questions (and by design, Alice answers Yes/No) but the questions are nonsensical/random and I hypothesize that the task is unlikely to be solved even with larger models like GPT3. Further, there is gradation in the task since some concepts are naturally easier to communicate (like, apple, rather than glass micropipette).

Not solvable by memorizing the Internet: The conversation is generated by the models themselves and I don't think additional pre-training data will automatically solve this problem. Even with a network that may have perfectly (and in a generalizable way) memorized the internet, the task will remain difficult. As a side note, I don't think the task is particularly easy for humans either, including if they had access to internet. For the concept glass micropipette, an n=1 experiment with a colleague failed after 20 questions.

Novelty: From what I can tell, the task is novel. The author includes some references to related work; a few more are:

This paper by Aliannejadi et al. which discusses asking of clarifying questions for QA tasks when a certain base concept is being discussed.
QuAC by Choi et al. which discusses a conversational QA task where a teacher answers in Yes/No/No Answer to student questions who does not know the content.
This paper by Clark et al. which discusses the general difficulty of open-domain Yes/No questions.
CoQA by Reddy et al. which, similar to QuAC, introduces a new conversational QA dataset.
Please feel free to ignore the references if they don't fit the purview of your task.

Justification: The README addequately justifies the task.

Size: The task contains 40 concepts each with 100 questions allowable. I believe this is enough to probe the language model's ability on this task.

Compute resources: The task doesn't seem to require exorbitant computational resources. The number of concepts is modest and while the sequence lengths can be quite high when the maximum number of questions is high, I feel that that is by design, and is a good challenge for models.

Comments about design choices:
I wasn't sure if I was expected to comment on specific design choices but I'm including them in case they are helpful. They are merely suggestions so please don't make any changes if you disagree.

For the success case when the concept is discovered (L138), if I'm not mistaken, the comparison is case-sensitive. Perhaps this is too restrictive and we can compare .lower() of the strings instead? If the concept is apple and Bob simply replies with Apple., the round will be deemed unsuccessful.
As I mentioned above, this task isn't easy for humans either. Without any hint about what the concept might be, discovering something like glass micropipette can be very difficult. Maybe the task can be eased just a little by also including concept_type (e.g., coarse object, refined object...) in the prompt? This could, for instance, be added to the shared_prefix as The concept type that Alice is thinking of is a refined object or similar.
From the perspective of making the task a little easier for the current family of language models, I found that adding more structure to the initial prompt helps Bob ask more plausible questions. I did this by using Bob: Is the concept instead of Bob: on L132 for the first round. This constraints Bob's first question a bit, but it greatly improved the quality of the questions. With GPT2-medium, Bob's questions were random in the current implementation but in the suggested implementation were:

Bob: Is the concept ____ that you are talking about a person?
Alice: Yes
Bob: Is the concept ____ that I am talking about a child?
Alice: Yes
Bob: Is the concept ____ that you are talking about an animal?
Alice: Yes

for a random instance of the concept.
** Minor comments:**

For the paper cited in the related works section, the markdown is broken (e.g. see this (review paper)[https://arxiv.org/abs/1911.10635]).).

Thank you so much @keskarnitish for your careful review and for your good suggestions to improve the task. I believe I have now implemented all of them except for the inclusion of a hint. (I think that unusual twenty questions concept types like verbs are more interesting if the agents don't know they need to discover a verb, and I prefer that the game map more directly onto human twenty questions where there is usually no hint.) Good catch on the capitalization -- changing that will definitely make the task more fair. I wasn't aware of the references you provided, and am glad to include them. And thank you for taking the time to experiment with the task -- starting with "Is the concept" as you suggest should lead to more graded performance measurements.
Please let me know if you have any other thoughts!

I'm glad I could help! One very minor nitpick is that in the reference section one of the papers is abbreviated to CoQU (instead of CoQA). Other than that, all the changes all look good, and I also re-ran the code to make sure there is no unexpected behavior.
@chiafullo Accept

Oops. Fixed. Thank you very much for the additional catch!

@pliang279

Thanks for submitting this task @Sohl-Dickstein. The task is certainly important to test the ability of language models to hold conversations via asking and answering binary questions in order to uncover a specific hidden concept. I really like the task since it extends beyond many static tasks into one that is dynamic and interactive.
Correctness: I took a glance at the code and it seems correct. I think one issue is the lack of description in the readme file since it was not clear to me what would be a 'desirable' conversation that an LM should ideally generate to solve the task. Some descriptions and examples can help in this regard. The readme should also describe exact metrics used to evaluate the method (see specificity below.)
Specificity: There are many possible ways to ask and answer questions to uncover a concept. Are certain ones better than others? Maybe shorter conversations are better? Maybe certain questions asked and answered might capture social biases? e.g., to uncover a particular emotion what if the language model undesirably associates certain races and genders disproportionately with certain emotions? Perhaps the metrics (or future metrics) could capture the quality of the conversation in addition to the final binary success rate (which I assume is the current metric).
Thoroughness: good
Difficulty: It would be good to report performance on current language models as soon as possible so that one can evaluate whether the task is too easy or difficult for current models. At first glance, the task might be on the more difficult side for current models but it's difficult to tell without experiments.
Not solvable by memorizing the Internet: probably not.
Novelty: good
Justification: good
Size: small size (~40 concepts) but easy to scale up by adding more
Compute resources: good

@pliang279 Please tag me with comment to "accept" or "reject" by Friday, March 26th.

Thank you for your review @pliang279 !
I just edited the README to reflect your good suggestions around providing additional context and a better description of the scoring metric.
I agree that characterizing the quality of the conversation, as well as simply how efficient it is (in terms of number of rounds) would be very interesting. I think it is out of scope for the current task though, especially since I think characterizing the quantifying qualitative aspects of the conversation is an entire open research field of its own. I think it would be a very good idea for future tasks.
I will work to fill in performance from more language models, and especially from larger language models. Small language models up to 125 million parameters completely fail at the task, and get the lowest possible score. I may not be able to perform these experiments before the deadline of this Friday though.
Thank you again for your thoughtful review!

Thank you @keskarnitish for catching all my embarrassing mistakes!

Thanks @Sohl-Dickstein for the updates!
@chiafullo Accept

@ajslone for meta review and merge (if acceptable)


nil.refs error in add_validated_block function

There is an error that appear when running two separate nodes. When you run two synchronized nodes (one is mining) for the first time, everything is ok. But when you try to restart them there is an error:
[error] GenServer Aecore.Chain.Worker terminating
** (UndefinedFunctionError) function nil.refs/0 is undefined (module nil is not available)
nil.refs()
(aecore) lib/aecore/chain/worker.ex:353: anonymous fn/3 in Aecore.Chain.Worker.handle_call/3
https://github.com/aeternity/elixir-node/blob/b8c5a1e2c9db022731edae0a0aaf506c1b4a4fe4/apps/aecore/lib/aecore/chain/worker.ex#L353   -   the line where error appears

The error might be happening because for some reason the Genesis block dissapears when we exit and enter the iex again. Maybe it has something to do with the persistense? I'm not quite sure. While this check is fine, we need to fix the core of this problem which might be just the missing first block (aka Genesis block).

I added comments in the commit


Remove redundant includes

Signed-off-by: Cervenka Dusan<EMAIL_ADDRESS>Pull request
Choose Correct

[ ] bug
[X] feature

Describe the pull request

To Reproduce

Expected behavior

Screenshots

Desktop (please complete the following information):

OS:
eRPC Version:

Steps you didn't forgot to do

[X] I checked if other PR isn't solving this issue.
[X] I read Contribution details and did appropriate actions.
[X] PR code is tested.
[X] PR code is formatted.
[X] Allow edits from maintainers pull request option is set (recommended).

Additional context

I refactor includes a bit. Is there important position of rpmsg_lite.h include? I can move it to the bottom if yes.


Implement simple WL field level simulator (e.g. based on https://github.com/tlmakinen/kosmo-kompress )

I had a first pass at this and made this simulator, which is not physically correct, but still has kind of the right complexity for what we are interested in.
https://colab.research.google.com/drive/1yTFMRC9v35xo-moIeoVoJQ_YMm6uXprC?usp=sharing
It generate some fake wl maps like this:

and it allows you to compute p(x, z, \theta):

From which you can compute grad_\theta \log p(x, z | theta) i.e. the joint score. I also played a little bit with trying to train a siren to learn the marginal score, but it wasn't a huge huge success so far ....
I'm opening this issue open to discuss refinements to this toy simulation. Currently the following features are missing:

[ ] correct 2d k -> ell computations
[ ] log normal field
[ ] checking the fields have the actual expected power spectrum
[ ] try to write down an analytic marginal likelihood for this problem

And I'm gonna tag @tlmakinen on this because I stole a bunch of his code ;-P

thanks for tagging me ! I think I could easily incorporate this simulator into my compression framework for the IMNN (e.g. ) to see how my SBI shakes out... would be great to have the k -> ell conversion eventually...

Yep, I have played very quickly with training a simple compressor network, but training an IMNN would be nice. The main focus of this project is how to efficiently do the inference part, from "a" compressed statistics.

After additional tinkering, it looks like it kind of works :-) learning the posterior distribution with combination of NLL and score loss. (notebook here )
So for instance, here is the true posterior distribution:

Here is what you can estimate when using only 64 simulations and a NLL loss:

and here is what you get if you use 64 sims and a combination of NLL and score loss:

Not yet perfect (it's only 64 sims) but looks like a huge improvement already.
So I think this example should be enough for our purposes at the timescale a ~a week.

Did you manage to run the notebook @Justinezgh ? Did you run into any problems?

Yes :)
But I don't really understand why you use jax.lax.stop_gradient in the eval_model function when you compute the log p(theta | x, z)

It's because you are evaluating the at the position of the point x that had just been sampled, but as if that was a "data point" coming from outside the model i.e. you don't want the gradients to propagate through x which should remain fixed.

Since p(theta|x) = \int p(theta | x,z)p(z)dz, can I do this to get a 'real' approximation of the posterior :
def get_jointlog_posterior(params, key):
    omega_c, s8 = params

    cond_model = condition(model, {'omega_c': 0.27, 'sigma_8': 0.77})
    cond_model = seed(cond_model, key)
    m_data = cond_model()

    cond_model = condition(model, {'omega_c': omega_c, 'sigma_8': s8, 'x': m_data})
    cond_model = seed(cond_model, key)
    model_trace = trace(cond_model).get_trace()
    jointlog = jnp.array([model_trace[k]['fn'].log_prob(model_trace[k]['value']) for k in model_trace.keys()]).sum()
    return jointlog

get_log_prob = jax.jit(jax.vmap(get_jointlog_posterior, in_axes=[0, None]))

p = jnp.stack(jnp.meshgrid(jnp.linspace(0.2,0.4,64),
                 jnp.linspace(0.7,0.9,64)), axis=-1)
ps = p.reshape([-1, 2])

true_posterior = jnp.array([np.stack([get_log_prob(params, jax.random.PRNGKey(k)) for params in p], axis=0) for k in range(50)]).mean(axis = 0)

Just to get an idea of what I'm supposed to have

hmm I think this ^^^  is p(x, theta) so I have p(theta|x)*cte ?

yeah it looks ok, but remember that it's an average over the probabilities, not the log probabilities ;-)

So I trained 10 NFs for each nb of simulations (50,100,200,500,1000) and this is the results :

trained on simulations only :

trained on simulations and score :

maybe the pb can come from the weight on the score ?
and I use the same random key to init all these NFs is that a pb ?

I have the same behavior when I initialize the 10 NFs differently

Ok so

I'm trying with another weight on the score (1500)

I'm doing the same thing with different metrics on the two moons to see if the pb come from the the metric and/or the stochasticity of the wl model

Since we want to approximate the posterior sequentially at the end maybe 50 simulations are enough (and with this our posterior is much better than the one with simulations only). And as we take this posterior to become the new prior it will be easier for the nf to learn the posterior for a given x_0 since the parameter domain is smaller. Meaning that maybe for a set of parameters we will have several samples even if only 50 simulations are used. I don't know ^^

These plots are really awesome, and yeah I think the first thing to try from here is to try adding starting from no score and doing a few runs with a increasing amount of score loss.

nll + score/1500

These plots are really awesome, and yeah I think the first thing to try from here is to try adding starting from no score and doing a few runs with a increasing amount of score loss.

yes I'll try this

Hummmmm it's still kinda surprising..... how do you compute the NLL in practice?

negative log likelihood (weight = 0) :
def loss_fn(params, batch, score, weight):
  y = compressor.apply(params_compressor, batch[1])
  log_prob, out = jax.vmap(jax.value_and_grad(lambda p, x: nvp.apply(params, p.reshape([-1,2]), x.reshape([-1,2]))))(batch[0], y) # Here we extract the grad of the model
  return -jnp.mean(log_prob) + jnp.mean(jnp.sum((out - score)**2, axis=1))*weight

negative log probability :
# Metric : neg log prob
precision = 1000
oc = jnp.full(precision, 0.27)
s8 = jnp.full(precision, 0.77)
theta = jnp.stack([oc,s8], axis=1)

@jax.jit
def get_truth(theta, key):

  oc = theta[0]
  s8 = theta[1]

  cond_model = condition(seed(model, key), {'omega_c': oc, 'sigma_8': s8})
  model_trace = trace(cond_model).get_trace()
  return model_trace['x']['value']

# Negative log prob
def neg_log_prob(params, params_compressor, theta, precision):

  master_seed = hk.PRNGSequence(1)
  x = jax.vmap(get_truth)(theta, jax.random.split(next(master_seed), precision))
  y = jax.vmap(lambda x: compressor.apply(params_compressor, x.reshape([-1,64,64])))(x)

  return - jnp.mean(jax.vmap((lambda p, x: nvp.apply(params, p.reshape([-1,2]), x.reshape([-1,2]))))(theta, y))

for the two moons with 5 NFs for each nb of simu:

simulations only:

simulations+score/1000:

These plots are really awesome, and yeah I think the first thing to try from here is to try adding starting from no score and doing a few runs with a increasing amount of score loss.

Starting with weight = 0 I increase it by 1e-4  every 1000 updates during 10000 updates

ah yeah no I mean, keeping weight constant during a given run, but doing several runs each one with a little bit more score loss.
But this plot is still interesting though... looks like it helps to start from a place where you train by NLL

10 NFs for each nb of simulations (to get the uncertainty)
6 different losses corresponding to the 6 score weights: 0, 1e-3,5e-4,1e-4,5e-5,1e-5

Fantastic Justine! Ok ok so, the story seems to be, adding a little bit of score loss helps, especially when we have a limited budget, but too much score loss is detrimental to the NLL.
Is the same thing true when learning just the two moons distribution is my question now

oh sorry sorry, are these plots for the lensing simulator or the two moons?

the lensing simulator

for the two moons I have this :

But I'll do the same thing with different weights to check

did the same thing for the lensing simulator again just to check :

(I tried to do it with the two moons but I didn't take enough simulations to see the convergence at the end so tomorrow :) )

same thing for the two moons (10NFs fpr each nb of simu)


Remove Polytechnic of Namibia

Polytechnic of Namibia has been transformed into Namibia University of Science and Technology

@melkisedek Pull request merged. Thank you!


DEV: Changed skxray imports to correct (new) locations after re-org

@giltis I checked this it is working, looks like none of the fitting tools are there
(ERROR: Failure: ImportError (No module named fitting.api))


implement zarr-based caching for major classes

we need reliable state-caching for most classes to persist results to the disk, for later analysis and reuse in pipelines.
if cached results exist, they may be reused based on a flag (e.g. overwrite_cache=False)

proposal: make the __repr__ method of each Cacheable class uniquely identify that instance.
E.g., the repr(BrainScore()) should contain information about Mapping, Metric, and the encoders (all this can come from respective calls to the repr methods of these objects)


Qh/redshift estimation

Built a network that can predict redshift from ground truth color.

@georgeyfly It looks like the various continuous integration tests for your PR are failing. (see log here). Have you run pre-commit install within the bliss directory? It's easier to fix these issues locally, either as you make commits, or by running pre-commit run --all.

Please ignore my earlier comment (now deleted) about merging two files. Instead, how about adding a simple shell script that calls all the programs in this directory, in order, to demonstrate the complete workflow? For example:
https://github.com/prob-ml/bliss/blob/master/case_studies/multiband/multiband_exps.sh
A script like that would help others to recreate your results.


fix SBOM format according to CycloneDX v1.4 JSON Schema

Fixes the CycloneDX SBOM format issue described in https://github.com/CycloneDX/cyclonedx-buildroot/issues/2. Verified with:
❯ cyclonedx validate --input-file export --input-format json --input-version v1_4
Validating JSON BOM...
BOM validated successfully.

and by comparing with the official schema in https://github.com/CycloneDX/specification/blob/1.4/schema/bom-1.4.schema.json:
https://www.jsonschemavalidator.net/s/Ic3phuo8

Changes:

Fix timestamp key and value to use ISO 8601
Remove array encompassing components values
Set version value to an integer

I think I did something wrong by closing this issue. I do not see the commit locally when I fetch and when I resync my local git repo. I will try to reopen this issue.


Add co-speaker feature broken

When an organiser activates "additional speaker" in the content section the form for speakers shows two areas to enter a speaker email.
a) The top form field works as expected.
b) When the speaker adds an email in the second form field nothing happens after saving the form.
This is confusing. Why are there two areas?
However in contrast to eventyay-talk on Pretalx this seems to work. Identify the difference and fix the issue to work in the same way as Pretalx.
Organiser content form

Speaker form

Tested on https://wikimania-dev.eventyay.com/

Hi @mariobehling ,
I have checked Pretalx and see it work the same as eventyay-talk

As the first page when you submit a proposal, and fill in 'Additional Speaker', invitation will be send without any issue

But in the edit proposal, it correct as you mentioned, additional Speaker not work.

=> the addtional Speaker only work once when we submit proposal
To prevent the confusing, there're 2 options:

Remove 'Additional Speaker' as we can use this

Send invitation for 'Additional Speaker' if it added

@odkhang @lcduong Yes, I think option 2 would make sense the most for the moment: Send invitation for 'Additional Speaker' if it added

sure @mariobehling, please help me to review this PR: https://github.com/fossasia/eventyay-talk/pull/130


HTML 5 Routing

Sort of a bug, but more of a feature request.
What is the effort to convert links to HTML 5 routes versus hash routing? Angular recommends using HTML 5 routing over hash routing. Has routing also does not appear to work with auth0 although I am seeking support from them for help.
When I set hash routing to false in app.routing.ts:
export const routing = RouterModule.forRoot(routes, { useHash: false });
The initial page will load, but all links will be broken.

Have you tried changing the LocationStrategy?
Maybe try going to src/app/app.module.ts and adding the following import:
import { PathLocationStrategy, LocationStrategy } from '@angular/common';

and then add the following line to the APP_PROVIDERS
{ provide: LocationStrategy, useClass: PathLocationStrategy },

Links don't work because they do not take the location strategy into account.
Here's the culprit (theme/components/baMenu/baMenu.service.ts):
      let itemUrl = this._router.serializeUrl(this._router.createUrlTree(object.route.paths));
      object.url = object.url ? object.url : '#' + itemUrl;

// ...

  protected _selectItem(object:any):any {
    object.selected = object.url == ('#' + this._router.url);

As you can see, the hash is hardcoded. You can try removing it (simply replace it for an empty string) and see if that fixes menu links.

Removing the hash in the menu service certainly fixed the links. However, there still seems to be an issue with the routing, as clicking on any links results in a 404 error. The 404 is only visible in the developer tool console, the browser viewport itself is blank.

Could you please provide the URL that causes 404? Is it when you reload the page?
It may be a problem with the server not sending index.html when the route doesn't match any static file

All of the URLs cause an error.
When I first load the page "http://localhost:8080/", the address bar changes to "http://localhost:8080/pages/dashboard"
If I try to refresh the page, it remains blank and the console indicates there are 404 errors.

It is definitely a problem with webpack because it tries to load the path you want - /pages/dashboard, and it doesn't find that directory on your disk, so it outputs a 404.
You can alleviate this by specifying historyApiFallback in the webpack's configuration. Details can be found here.
As it's mentioned there, try setting it to true, and if it doesn't work specify your index.html file explicitly there.

Hey All, yes, unfortunately HTML5 routing is not supported at the moment out of the box. If you could provide a PR making a complete support that would be awesome. Thanks in advance.

Unfortunately, I am too new to Angular/TypeScript/Webpack, etc. that I am not versed enough to figure some of this out. The things I tried do not work.

@gregkopp have you tried setting historyApiFallback, as I mentioned?

I tried various combinations of setting that as well as the other options mentioned. Now I get errors like this:
Cannot GET /pages/tables/basictables
When trying to navigate away from the dashboard.

I will try to look into this in detail soon.

I have same issue.
When I set hash routing to false in app.routing.ts to support HTML5 routing:
export const routing = RouterModule.forRoot(routes, { useHash: false });
I do not see error 404 but see following error:
<% if (webpackConfig.htmlElements.headTags) { %> <%= webpackConfig.htmlElements.headTags %> <% } %>
<% if (webpackConfig.metadata.isDevServer && webpackConfig.metadata.HMR !== true) { %> <% } %>
any help?

@Kamalswami, I had same problem and solved it by configuring webpack-dev-server to proxy all paths to itself, to root path (/):
proxy: {
    '/**': {
        target: 'http://localhost:3000',
        secure: false,
        pathRewrite: { '^/.*': '' }
    }
},
historyApiFallback : false,

You'll need to change localhost port (3000) to port that you use.

Hey, thanks for this discussion I believe it's definitely worth merging into the project.
@DavorLovric if you would be able to provide a PR I guess everyone would be happy!

@DavorLovric in production app we could have different api which should be proxied and rewrite all paths isn't good enough
devServer: {
    contentBase: path.resolve("./dist"),
    port: 8080,
    historyApiFallback: {
        index: "/index.html"
    },
    proxy: {
        "/api": {
            target: "http://localhost:3000",
            secure: false
        }
    },
}

@AndreiShostik if you have specific api that you want to proxy to somewhere else, you can add proxy definition for that before catch-all path definition:
proxy: {
	"/api": {
		target: "http://google.com",
		secure: false
	},
    '/**': {
        target: 'http://localhost:3000',
        secure: false,
        pathRewrite: { '^/.*': '' }
    }
},
historyApiFallback : false,

Anything that starts with /api will be handled by first proxy rule, and everything else by second one.
(historyApiFallback is not useful as it makes webpack-dev-server return raw (unprocessed) file, so if there is some server-side code in it, it is not executed before file is returned. - As @Kamalswami experienced.)
Would this work for your setup?

@nnixaa thx for the invitation to join the project, I'll do it over the weekend! :)

For me, the historyapifallback fixed the 404 problems.
The main issue that I am facing is that the links work, but they do a hard refresh, reloading the entire page.
This also happens in the production build (I've hosted it on firebase which already has rewrites and also in a local express).
Can anyone provide some input on this?

@catalintoma I didn't dive deep into that but first working solution for me was:
add (click)="navigate(menuItem.url)" to https://github.com/akveo/ng2-admin/blob/master/src/app/theme/components/baMenu/components/baMenuItem/baMenuItem.html#L4
and in component.ts file add simple logic
public navigate(url) {
    this.router.navigate([url]);
    return false;
}

@AndreiShostik
You are right, this fix works.
But this should not be required, I've read the ng2 docs and it says that html5-style of routing works out of the box.
What I've done is not serialize the url and just keep the routes as on array on the bMenuItem (prepared in the baMenu.service)
After that, I've used the router-link directive.
Since the problem is reproducible in production, I still need to figure out what is it not working out of the box.

Hi guys! We just fixed this issue and  now all works properly. Could you check it on your side and let us know if it works fine.

Hey @Tibing
I've just tested it and it works perfectly.
Thank you!

Awesome, closing it then, let us know if there any issues.

@AndreiShostik when you say add to line 4 do you mean like this?
<i *ngIf="menuItem.icon" class="{{ menuItem.icon }}">(click)="navigate(menuItem.url){{ menuItem.title }}

@elviro fixed my link

hi everyone , any one can send me a code of ng2-admin with HTML 5 Routing , i tried very much but unable to convert in html 5 routing .... please share a complete code of ng2-admin.
i will be very thanks full to him. .


[fix](index compaction)Fix MOW index compaction core

In MOW table with inverted index, when the table has deleted docs, the doc_id in rowid_conversion_map will be INT32_MAX. index_compact in CLucene is not handling it correctly. It will cause doc lost in specific terms and the postings will be incorrect. The index compaction process will be fail.
Here are the changes:

Remove INT32_MAX out of destPostingsQueues in CLucene to handle deleted doc right.
Add debug code and switch for index compaction in Doris
Add debug_index_compaction operation in index_tool

Proposed changes
Issue Number: close #32084

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall


change NMS to soft_nms

Whether change nms to soft_nms for dence detection environment ?
Because we encountered many missed detection using defeat YOLOX configuration in Dense crowd detection environment.

I also want to change. The original code uses torchvision.ops.batched_nms().


TLS-Origination from workload not working, but HTTPS calls works from sidecar

Is this the right place to submit this?

[X] This is not a security vulnerability or a crashing bug
[X] This is not a question about how to use Istio

Bug Description
I have sidecar mounted certs and keys, and from within the istio-proxy sidecar, my HTTPS calls using the certs at the mount point work:
kubectl exec -it pod -c istio-proxy -- bash
cd /etc/certs/secrets
curl https://endpoint.com/foo/bar/1 --key key.key --cert cert.crt --cacert cacert
And from there, I was confident that I can rule out any cert/key issue and networking issue because my curl returns 200 and I am happy.
However, when I begin to make HTTP calls from within my main workload pod:
kubectl exec -it pod -c istio-proxy -- bash
I expect it to hit the same endpoint without any issues with TLS enabled via envoy sidecar and with those same keys/certs I have provided.  However, I get this error:
curl --request GET --url http://endpoint.com/foo/bar/1
upstream connect error or disconnect/reset before headers. retried and the latest reset reason: connection failure, transport failure reason: TLS error: 268435581:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED

Details of my set up:
How my certs are mounted:
Deployment.yaml:
        sidecar.istio.io/userVolumeMount: |
          [
            {
              "name": "my-set-of-certs-keys",
              "mountPath": "/etc/certs/secrets",
              "readOnly": true
            }
          ]

VirtualService:
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  labels:
    app.kubernetes.io/managed-by: Helm
  name: qs-cn
spec:
  exportTo:
  - .
  hosts:
  - endpoint.com
  http:
  - match:
    - port: 80
    route:
    - destination:
        host: endpoint.com
        port:
          number: 443
        subset: cdl-mtls

DestinationRule:
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
 labels:
   app.kubernetes.io/managed-by: Helm
 name: qs-cn
spec:
 exportTo:
 - .
 host: endpoint.com
 subsets:
 - name: cdl-mtls
   trafficPolicy:
     tls:
       caCertificates: /etc/certs/services/cacert.pem
       clientCertificate: /etc/certs/services/client.crt
       mode: MUTUAL
       privateKey: /etc/certs/services/client.key
       sni: endpoint.com

VirtualService:

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
 labels:
   app.kubernetes.io/managed-by: Helm
 name: qs-cn
spec:
 exportTo:
 - .
 hosts:
 - endpoint.com
 http:
 - match:
   - port: 80
   route:
   - destination:
       host: endpoint.com
       port:
         number: 443
       subset: cdl-mtls

Version
client version: 1.15.7
control plane version: 1.15.7
data plane version: 1.15.7 (11 proxies)

Client Version: v1.26.0
Kustomize Version: v4.5.7
Server Version: v1.26.11-eks-8cb36c9

v3.12.3+g3a31588

Additional Information
No response

1.15 is EOL, are you able to reproduce with latest istio?
Is endpoint.com a local istio-injected service or an external service, do you have a ServiceEntry defined?  I would check envoy proxy logs to try and get a better idea of the actual error:
istioctl pc log <client_pod_name>.<client_pod_ns> --level <debug|trace>
# perform the failed request a few times
# reset the envoy logs pack to normal - trace logs generate a lot
istioctl pc log <client_pod_name>.<client_pod_ns> --reset

Hi @GregHanson, let me try to upgrade the istio.
endpoint.com is an external service, outside of our cluster.  We have a ServiceEntry for that:
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  labels:
    app.kubernetes.io/managed-by: Helm
  name: qs-cn
spec:
  exportTo:
  - .
  hosts:
  - endpoint.com
  location: MESH_EXTERNAL
  ports:
  - name: http
    number: 443
    protocol: HTTPS
  resolution: DNS

do you have a port: 80 defined in your SE?  I think you want your ServiceEntry more in line with the TLS origination examples we have in the docs:
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  labels:
    app.kubernetes.io/managed-by: Helm
  name: qs-cn
spec:
  exportTo:
  - .
  hosts:
  - endpoint.com
  location: MESH_EXTERNAL
  ports:
  - number: 80
    name: http-port
    protocol: HTTP
  - number: 443
    name: https-port
    protocol: HTTPS
  resolution: DNS

otherwise the client curl --request GET --url http://endpoint.com/foo/bar/1 sidecar won't have a port 80 listener with hostname matching for endpoint.com

Will try that.  Thanks

Turns out with a cacert issue.
Can close.  Thanks all for help.


Overflow Menu DOM Hierarchy Issue

Detailed description

When the overflow menu opens it creates an UL element outside the DOM hierarchy of the parent we are in. This is causing a lot of issue in terms of applying styles and it also stays fixed on top of screen when the background content gets scrolled. This causes UX issues.

Is this issue related to a specific component? Yes, Overflow Menu

What browser are you working in? Google Chrome

v10

Newton Experience. Yes, we need it ASAP.

Additional information
Can't share screenshot or video online due to security reasons.

Hi 👋 is this issue against our component library or against carbondesignsystem.com site?

Hi
Its against react components library. The overflow menu component.
On Fri, Jul 5, 2019, 3:29 PM Akira Sudoh<EMAIL_ADDRESS>wrote:

Hi 👋 is this issue against our component library or against
carbondesignsystem.com site?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/carbon-design-system/carbon-website/issues/1804?email_source=notifications&email_token=ABWIQ6HXU3DWEXHCDASRGVDP54LPLA5CNFSM4H6IFSV2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZJDTIY#issuecomment-508705187,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABWIQ6D7GZU2VZGMTKQ43CTP54LPLANCNFSM4H6IFSVQ
.


image with blending mode

in AE program I have 2 images. 1 image with a blending mode (stroke-png.png), the second image gets the effect and mask into.
as you can see here

when I edit the JSON I want to change the photo dynamically so I change it
   {
        "src": "https://images.unsplash.com/photo-1501901609772-df0848060b33?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&q=809",
        "type": "image",
        "layerName": "Change this Photo"
      },

I get the photo without the effect of blending mode into

No, but docs should be of great help here! :)


A few issues

Firstly, thanks for the work involved in creating this plugin. I understand the immensity of it and I sincerely appreciate it.
I'm having an issue where the plugin doesn't seem to actually update my presence, There's no change to my status at all. If I enable the Project presence, then it shows I'm working in Godot, but after launching my game it remains the same.
The Debug GUI element shows valid data and when I print my user dict with print(DiscordSDK.get_current_user()) everything seems to be in order so it's definitely getting data from Discord. I even tried to manually call run_callbacks() even though the autoload was enabled, just to make sure it was happening.
What's the easiest way to verify that it's sending data to Discord? Is there some acknowledgement I can monitor?
OS: Windows 11
Also, I noticed this while disabling and enabling the plugin:
https://github.com/vaporvee/discord-sdk-godot/blob/e206b1184820ee1ee6e9eac5874b76718982ea4a/project/addons/discord-sdk-gd/plugin.gd#L29
"dully disable"

can you download the built demo and make sure it displays the demo activity? if not then its your discord client.

I'm not sure why but the issue was with the party_id.  If it's set to a single character string like "A" or "X" then the status never updated. However if I remove the setting completely or set it to something 2 or more characters long "AB" or "XY" or "abcd-efgh-ijkl-mnop" it worked fine.

good to know! will addvthat to the wiki soon thank you :)

@vaporvee Have you ever considered enabling Sponsorship for this repository?

yeah but i don't like stripe. but my kofi is linked :)

thank you so much <3