Rename repository

The idea is made a portable code and compatible with other platforms, like macOS and Windows. Because of this, must  be removed the "-linux"  suffix of the repository name.

Done


Update the about section

There are only 28 calculators listed in the about section, but in reality there are more than 48 calculators in the recent version, I want to update this and also in the card of yours, the description contains lorem ipsum text, I can fix that with your LinkedIn about maybe or whatever you feel appropriate under JWOC'23.

@zugzwang03 Yeah add the calculators. And change the styling of the profile card and any other change in css you want to do.


Update homepage design 🏠

Migrate the changes from /acm_beta/src/routes/index.svelte to this repository.

Closed by #132.


Fundamental Problem

Hi Rob,
I just got around to testing the wrapper. Unfortunately it doesn't work and I'm afraid, there is a fundamental problem. The requestFrom functions of TwoWire are not virtual so calls to these functions (e.g. in SHT31, which I used to test) are bound early by gcc. When SHT31.cpp is compiled the only implementation of  requestFrom known to gcc is the one in TwoWire and as it is not declared virtual, the compiler inserts a call directly to this implementation.

Sorry for the late reaction, my agenda has filled up and I hope to find some time later this week.

found a split second ;)
did some reading and you are 100% right - https://www.programiz.com/cpp-programming/function-overriding

you can override non-virtual functions only if called directly from the derived class object
if you assign a derived class (Pointer) to a base class pointer - which is done in this "experiment" - then the base class function is called. This is not only for the requestFrom() functions and all non-virtual TwoWire functions.

So indeed it will not work.
Now think really hard .........

So it will only work if the base class has its functions declared virtual
So I did just that - as experiment in Wire.h
class TwoWire : public Stream
{
  private:
    static uint8_t rxBuffer[];
    static uint8_t rxBufferIndex;
    static uint8_t rxBufferLength;

    static uint8_t txAddress;
    static uint8_t txBuffer[];
    static uint8_t txBufferIndex;
    static uint8_t txBufferLength;

    static uint8_t transmitting;
    static void (*user_onRequest)(void);
    static void (*user_onReceive)(int);
    static void onRequestService(void);
    static void onReceiveService(uint8_t*, int);
  public:
    TwoWire();
    virtual void begin();
    void begin(uint8_t);
    void begin(int);
    virtual void end();
    virtual void setClock(uint32_t);
    virtual void setWireTimeout(uint32_t timeout = 25000, bool reset_with_timeout = false);
    virtual bool getWireTimeoutFlag(void);
    virtual void clearWireTimeoutFlag(void);
    virtual void beginTransmission(uint8_t);
    virtual void beginTransmission(int);
    virtual uint8_t endTransmission(void);
    virtual uint8_t endTransmission(uint8_t);
    virtual uint8_t requestFrom(uint8_t, uint8_t);
    virtual uint8_t requestFrom(uint8_t, uint8_t, uint8_t);
    virtual uint8_t requestFrom(uint8_t, uint8_t, uint32_t, uint8_t, uint8_t);
    virtual uint8_t requestFrom(int, int);
    virtual uint8_t requestFrom(int, int, int);
    virtual size_t write(uint8_t);
    virtual size_t write(const uint8_t *, size_t);
    virtual int available(void);
    virtual int read(void);
    virtual int peek(void);
    virtual void flush(void);
    void onReceive( void (*)(int) );
    void onRequest( void (*)(void) );

    inline size_t write(unsigned long n) { return write((uint8_t)n); }
    inline size_t write(long n) { return write((uint8_t)n); }
    inline size_t write(unsigned int n) { return write((uint8_t)n); }
    inline size_t write(int n) { return write((uint8_t)n); }
    using Print::write;
};

extern TwoWire Wire;

#endif

Tested with a DHT20 sensor
Type	Humidity (%)	Temp (°C)	Time (µs)	Status
DHT20 	57.2		17.7		46596		OK
ADDR1:56ET1:DHT20 	57.2		17.7		46600		OK
ADDR1:56ET1:DHT20 	57.1		17.7		46592		OK
ADDR1:56ET1:DHT20 	57.0		17.7		46600		OK
ADDR1:56ET1:DHT20 	56.9		17.7		46600		OK
ADDR1:56ET1:DHT20 	56.9		17.7		46600		OK
ADDR1:56ET1:DHT20 	56.8		17.7		46596		OK
ADDR1:56ET1:DHT20 	56.8		17.7		46600		OK
ADDR1:56ET1:DHT20 	56.7		17.7		46600		OK
ADDR1:56ET1:DHT20 	56.6		17.7		46600		OK

So that works...
Question is: how to continue....

A solution not discussed is to create a SoftwareWire specific SHT31 class that does not derive from the current SHT31.
As I have already many libraries, maintaining one more is not a problem (not more than the others), especially as the SHT31 class itself is pretty stable. Not much big issues or PR's (OK this one is  :)
This solution

wont affect the original SHT31 lib in size or dependencies (important for the smaller AVR devices).
could be optimized for SoftwareWire
could reuse a lot of the SHT31 code - you already did 90% of that in the derived version, just copy / paste the inherited functions..

It might be an option to start from the SHT85 library as this has a base SHT class and 4 derived ones = SHT30/31/35/85 = so it would provide the family of 4 sensors the SoftwareWire interface. Similar to this class the "missing ones" could be derived from the SHT31_SW base class.
This solution would create a nice result and I am curious to your opinion?
Shall I create a SHT31_SW repo?

(added a label for my own admin)

I've just updated my PR to your SHT31 repo. It now adds virtual to three functions and two variables protected instead of private in your original class. If we just throw out the rest (i.e. the SHT31sw class) you could either implement a derived class (SHT31sw or how ever you want to call it) in a separate library or users could derive their own class from your library.

As this solution path is not possible I close this issue.


trainer.fit() Object Memory Error in Local Machine

I run out of memory in trainer.fit(), I have 8gb RAM and i7 8th gen 12 core CPU. I also see error in trainer.fit(). Is there any way to reduce the load on RAM or will I need another RAM to be able to run this.

reducing the batch_size in train_loop_config helped me

Yes, I changed the batch size and I could get it to run on ubuntu. However in windows I couldn't run it even with these changes. The path manipulations are causing some problems.

Same issue here, on both laptops (powerfull Dell XPS 15, and weaker HP from work). After using num_workers=1 and batch_size=32 I could run just fine.
If I work on a single machine, does the num_workers affect this OOM problem, or all i have to do is manipulate batch_size variable ? Does changing to 2 workers allow me to use larger batch size? ? Or does my computer(each core) just cannot handle more that batch_size=32 ?
Would love to get explanation about how does num_workers and batch_size relate to my RAM.

@capmichal @totovivi  This issue sparked these very same questions and reactions - glad to find curious fellows here 😄
After a bit of research and chatting with GPT, here's what I gathered :

When we're training a model, we have to load it in memory. Here, we're using scibert which weighs around 442mb according the HG page for the model. This weight roughly corresponds to the weight of all the model's parameters (110 million).
One foward pass of one sample loads in memory all the network's associated activations and gradients. When we pass a batch, we have to multiply this load by the batch size. Memory load is therefore a big function of model size, and increases linearly with batch size.

So I guess the main issue regarding memory is how much data is passed by iteration (batch_size * num_workers). Using less workers should however be better as each worker has overhead and must load its own copy of the model.

The thing that worked for me was reducing all the params like batch size etc. in training.


Vultr: Multiple Instances for Single Machine

Problem
My team uses an older fork of the Vultr cloud provider, and we've now seen an issue on more than one occasion where Vultr tag state gets duplicated. What we tend to see is two Vultr instances, both with a tag for the same Machine UID.
Our best guess is that tags are only eventually consistent in Vultr, and it is possible for reconciliation to result in rare cases where two Vultr instances are tagged for the same machine. This predictably causes a variety of issues.
We are looking at potentially working on a PR to resolve this scenario, but wanted to verify our approach, so would love any feedback on this issue!
Planned Approach
Since Vultr returns a unique ID on every create call, we were looking to do something like the anexia provider, where rather than relying on the tag in vultr, the provider attaches the Vultr UID into the ProviderStatus payload and favors that. The tag would still be set in Vultr (which helps with diagnostics) and could still be used as a fallback, which makes for clean migration to the new tracking model over time.
There are some other advantages to this approach, such as making it easier to find the instance Vultr when a Get is performed.

Since Vultr is a community provider, we very much welcome contributions to the Vultr provider to make it more robust. The approach seems sensible if tagging is unreliable, but opens up the possibility that machine-controller fails to update the status resource and reconciles the Machine again. So I wonder if this trades one potential source of "double VM" with another.
I would also like to hear if @2000yeshu as the original author of the provider has any thoughts on this matter.

Issue is definitely regarding the eventual consistency of labels. But not sure if it is only on the instance GET by labels side. Since this is a recent issue, i have a feeling that they might have started maintaining a reverse map of labels -> instance.
So one thing we could do to verify is get all instances and filter by label to ensure instance.

I think we could work on a patch to try that.
I saw the droplet code in digital ocean has something similar to this concept where it polls for tag acknowledgement: https://github.com/kubermatic/machine-controller/blob/d69e4e9d19e34b41b22d9ac9ab25c12a0f8f786a/pkg/cloudprovider/provider/digitalocean/provider.go#L329C2-L346
What's the failure state in this scenario? If we timeout waiting for the tag to show up, is the only option in this case a terminal error?

The other complication is that my team also uses bare metal machines (our older fork of the Vultr provider has support for that), so separately we also want to submit upstream support for MachineType as an optional configuration parameter, allowing for picking bare metal over cloud instances. We think this bug exists for both, however; the API just varies slightly, so both flavors would need this logic I'd think.

I just verified that polling for all machines and filtering on tags doesn't work as well.
I can try the digital ocean as well in a couple of hours. That looks like a good temporary solution.
The solution that you suggested feels a little anti-operator-pattern to me. The operator shouldn't use it's own controlled CRD's status to make global state consistent. Instead, it should use the Spec to make the global state consistent and Status subresource should be a sideeffect of the global state.
@embik described a precise reason of that antipatterness for that.
As for your baremetal question, my team is already using a solution for that. I can make PR for that by tomm.

Excellent news, thank you @2000yeshu ! Please let us know if we can help in any way!

For sure, as the bare metal sol'n is specific to our use case, I might need input from you to make it GA.

For sure, as the bare metal sol'n is specific to our use case, I might need input from you to make it GA.

Definitely, happy to discuss on another issue or on the PR or wherever. In short, we use it just like the cloud instances - we just added a MachineType property to the provider RawConfig that can be cloud-instance (default if unset) or bare-metal, and the logic just switches between the various APIs accordingly.

@realjenius Can you review #1706 ?

@realjenius Can you review #1706 ?

First scan through looks really good!
I'd like to try to upgrade a canary environment in our system to this branch. I'm working on that now - we also have some general "upgrade machine-controller" stuff to work through as well so it's going to take me a little bit.

Hey @2000yeshu ! I just tried the latest as of this morning, and had some similar results, it seems. I've got two Vultr bare-metal servers with the same labels and tags (different IPs) and only one machine:

kubectl get machines -n kube-system
NAME                                 PROVIDER   OS       NODE                                 KUBELET   ADDRESS        AGE
vultr-dfw-9b9d6589-hx2gh             vultr      ubuntu   vultr-dfw-9b9d6589-hx2gh             1.24.12   <IP_ADDRESS>   19m

The underlying provider spec for this MachineDeployment:
      providerSpec:
        value:
          sshPublicKeys: []
          cloudProvider: "vultr"
          cloudProviderSpec:
            apiKey:
              secretKeyRef:
                namespace: kube-system
                name: machine-controller-vultr
                key: token
            physicalMachine: true
            region: "{{ $location }}"
            plan: "{{ $plan }}"
            osId: 387
            tags:
              - [omitted]-node
          operatingSystem: "ubuntu"
          operatingSystemSpec:
            disableAutoUpdate: true

I'm still hunting down if it could be something on my side, but thoughts would be welcome!

I added some logs, it looks like the Poll didn't retry for some reason - it failed after the first 10 second sleep and error in the wait for instance creation. I'll keep investigating.
23
2023-09-20T14:47:25.721Z	info	machine-controller	vultr/provider.go:429	Creating a machine: "15d07445-cb07-44f0-bcd0-95f5ad46cd84"	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t", "provider": "vultr"}
22
2023-09-20T14:47:25.721Z	info	machine-controller	vultr/provider.go:419	Creating a physical machine for machine "15d07445-cb07-44f0-bcd0-95f5ad46cd84"	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t", "provider": "vultr"}
21
2023-09-20T14:47:36.232Z	info	machine-controller	vultr/provider.go:356	Waiting for instance creation of: %q15d07445-cb07-44f0-bcd0-95f5ad46cd84	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t", "provider": "vultr"}
20
2023-09-20T14:47:46.430Z	error	machine-controller	machine/controller.go:407	Reconciling failed	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t", "error": "failed to create machine at cloudprovider, due to instance \"vultr-dfw-9b9d6589-h4t2t\" created but controller failed to fetch instance details"}
19
2023-09-20T14:47:46.431Z	debug	machine-controller	machine/controller.go:382	Reconciling	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t"}
18
2023-09-20T14:47:46.431Z	debug	events	record/event.go:327	failed to create machine at cloudprovider, due to instance "vultr-dfw-9b9d6589-h4t2t" created but controller failed to fetch instance details	{"type": "Warning", "object": {"kind":"Machine","namespace":"kube-system","name":"vultr-dfw-9b9d6589-h4t2t","uid":"15d07445-cb07-44f0-bcd0-95f5ad46cd84","apiVersion":"cluster.k8s.io/v1alpha1","resourceVersion":"354465"}, "reason": "ReconcilingError"}
17
2023-09-20T14:47:46.431Z	debug	machine-controller	machine/controller.go:800	Requesting instance for machine from cloudprovider because no associated node with status ready found...	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t", "provider": "vultr"}
16
2023-09-20T14:47:46.626Z	debug	machine-controller	machine/controller.go:808	Validated machine spec	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t", "provider": "vultr"}
15
2023-09-20T14:47:46.652Z	info	machine-controller	vultr/provider.go:429	Creating a machine: "15d07445-cb07-44f0-bcd0-95f5ad46cd84"	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t", "provider": "vultr"}
14
2023-09-20T14:47:46.652Z	info	machine-controller	vultr/provider.go:419	Creating a physical machine for machine "15d07445-cb07-44f0-bcd0-95f5ad46cd84"	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t", "provider": "vultr"}
13
2023-09-20T14:47:57.078Z	info	machine-controller	vultr/provider.go:356	Waiting for instance creation of: %q15d07445-cb07-44f0-bcd0-95f5ad46cd84	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t", "provider": "vultr"}
12
2023-09-20T14:48:07.422Z	error	machine-controller	machine/controller.go:407	Reconciling failed	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t", "error": "failed to create machine at cloudprovider, due to instance \"vultr-dfw-9b9d6589-h4t2t\" created but controller failed to fetch instance details"}
11
2023-09-20T14:48:07.422Z	debug	machine-controller	machine/controller.go:382	Reconciling	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t"}
10
2023-09-20T14:48:07.422Z	debug	machine-controller	machine/controller.go:800	Requesting instance for machine from cloudprovider because no associated node with status ready found...	{"machine": "kube-system/vultr-dfw-9b9d6589-h4t2t", "provider": "vultr"}
9
2023-09-20T14:48:07.423Z	debug	events	record/event.go:327	failed to create machine at cloudprovider, due to instance "vultr-dfw-9b9d6589-h4t2t" created but controller failed to fetch instance details	{"type": "Warning", "object": {"kind":"Machine","namespace":"kube-system","name":"vultr-dfw-9b9d6589-h4t2t","uid":"15d07445-cb07-44f0-bcd0-95f5ad46cd84","apiVersion":"cluster.k8s.io/v1alpha1","resourceVersion":"354482"}, "reason": "ReconcilingError"}
8
2023-09-20T14:48:08.133Z	debug	events	record/event.go:327	Found instance at cloud provider, addresses: map[<IP_ADDRESS>:ExternalIP]	{"type": "Normal", "object": {"kind":"Machine","namespace":"kube-system","name":"vultr-dfw-9b9d6589-h4t2t","uid":"15d07445-cb07-44f0-bcd0-95f5ad46cd84","apiVersion":"cluster.k8s.io/v1alpha1","resourceVersion":"354482"}, "reason": "InstanceFound"}

@realjenius Can you please pull the latest commit and try again? Made a big mistake in checking for instance creation.

Took a while to hunt down what I was seeing @2000yeshu but I commented on the PR. I think there were still a couple edges I was hitting.

@2000yeshu I've taken the latest patch, and have re-enabled a subset of our Vultr clusters. I will be gradually scaling back up these environments over the next day, but so far so good!

@2000yeshu I've taken the latest patch, and have re-enabled a subset of our Vultr clusters. I will be gradually scaling back up these environments over the next day, but so far so good!

Cool, I am also testing on my clusters. Will keep you updated.

#1706 looks good to me now. @realjenius @2000yeshu would you prefer to keep it open until you have validated for a bit or do you think the PR should be merged?

I will do a final run with this on my cluster by tonight(IST).
On Fri, 22 Sep 2023 at 2:14 PM, Marvin Beckers @.***>
wrote:

#1706 https://github.com/kubermatic/machine-controller/pull/1706 looks
good to me now. @realjenius https://github.com/realjenius @2000yeshu
https://github.com/2000yeshu would you prefer to keep it open until you
have validated for a bit or do you think the PR should be merged?
—
Reply to this email directly, view it on GitHub
https://github.com/kubermatic/machine-controller/issues/1704#issuecomment-1731045942,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APEZAT4ODBDWKNLQED4U32LX3VFXJANCNFSM6AAAAAA4YHBV4A
.
You are receiving this because you were mentioned.Message ID:
@.***>

Think this can be merged now.


Remove breadcrumbs on notification unsub journeys

Description
Ticket # and link
For GAP-1984
Summary of the changes and the related issue. List any dependencies that are required for this change:
Type of change
Please check the relevant options.

[ ] Bug fix (non-breaking change which fixes an issue).
[ ] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).
[ ] This change requires a documentation update.

How Has This Been Tested?
Please describe the tests that you ran to verify your changes:

[ ] Unit Test

[ ] Integration Test (if applicable)

[ ] End to End Test (if applicable)

Screenshots (if appropriate):
Please attach screenshots of the change if it is a UI change:
Checklist:

[ ] If I have listed dependencies above, I have ensured that they are present in the target branch.
[ ] I have performed a self-review of my code.
[ ] I have commented my code in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation where applicable.
[ ] I have ran cypress tests and they all pass locally.

linting errors in pipeline
./pages/newsletter/unsubscribe/[slug].tsx
3:10  Error: 'BreadCrumbs' is defined but never used.  @typescript-eslint/no-unused-vars
7:3  Error: 'newsletterRoutes' is defined but never used.  @typescript-eslint/no-unused-vars


Ability to pass in location of config file.

Add a -c="/etc/something.json" flag.

Implemented using the flags package. Also includes a helpful -h flag.


Getting an Uncaught TypeError: _ is not a constructor

i don't know what to do on this error please any one who help, i will deeply appreciate . Thanks in advance.

Are you using underscore library?


Metric: Total Packet Processing time

We now have per-filter metrics processing time (#262), but we don't currently track the total processing time from packet receive to send from local port to endpoint to back again.
I don't think we can use a sum of the filter processing times, since we would want to observe the general Quilkin overhead that gets added on top of filters (also, sometimes, there is no filter!).
Design idea:
On receipt of a incoming packet, we can attach at prometheus::HistogramTimer to the data structure we create, and then called observe_duration() just prior to the packet being sent.

Working on this next. Been wanting this for a while.
Worklist:

[ ] Metrics for data coming into the local post (read)
[ ] Metrics for data coming into an Endpoint (write)
[ ] Example chart for the Grafana dashboard with these metrics.


libdabsdr distributed as binaries

Hello, I wanted to try doing something similar to abracadabra but from a command line application, and I saw that in the lib folder there are a bunch of binary shared object files for libdabsdr. I was wondering why you're distributing those as binaries instead of source? Are these binaries not open source?

Hello, these binaries are not open source, but you are free to use them, they are distributed under MIT license.

thanks for the quick answer, but I think the follow up question is: why are they not open source? did you make them? are they using some tainted data that you cannot redistribute?

I am developing the library and I have decided not to disclose the source code.

That makes things a bit harder for packaging and redistributing, particularly if one wants to support other architectures like riscv or wants to package this for downstream distributions or even flatpak. Can you elaborate on why you're not sharing the library source?

I want to keep my know-how. I have developend the library from the scratch, I have spent a lot of time with optimizations of the reception performance and CPU usage and the library is what makes AbracaDABra unique.

That's definitely a thing to be proud of, and something I can appreciate, but I don't think closing it down will achieve anything but reduce adoption. If you're afraid of third party companies profiting from your hard work, you can use a more "restrictive" license like GPL3 or AGPL3, this way anyone can use it but they have to share the derived source code (don't take this as legal advice, I'm not a lawyer). Besides if a scummy third party wants to use this they can already do so since the shared object and headers are available.
Another issue is that this way all the work on this library is delegated to you, with no possibility of external contributions or forks. If at some point you get busy with other stuff and cannot develop it anymore it would effectively waste all the work you've put into it, particularly if at some point the DAB standard changes in a way that breaks existing implementations.
I greatly appreciate your work, and the effort you've put in the library and the app, it's evidently a labor of love and it shows, but unless you have some commercial ambitions for it, I think this is ultimately hurting the project overall.

I do not have commercial ambitions, that is why it is under MIT that allows anyone to use it as it is without restrictions or payments. Maybe I will change my mind in teh future. Originally I did not even have any ambitions to make the application available to public, I developed it primiarily for myself because I was not satisfied with freely available tools (both open and closed source) and I wanted do develop my own DAB library to understand how it works but then I decided to publish it because others may like it too but it is still primary my toy to play width :-)

I personally think that unless you're doing something you're planning to sell and don't want to open source, sharing the source should be the default: in the best case it will make someone else happy, and in the worst case it'll just be out there, no harm done. I really hope you do make up your mind about sharing the source :slightly_smiling_face:


Downloading deb file from release is impossible

When I click terminus-1.0.110-linux.deb on https://github.com/Eugeny/terminus/releases, I get this:

I tried also to downloading file via wget, but I get error 403 in terminal.

I also can't download other older versions, because of same error.

Works now.


Use getRandomMessage function to request message from servlet

Started week 3 walkthroughs. Made getRandomMessage function in script.js to fetch response from url "/data". getRandomMessage is called by a button in index.html and adds the message to  message-container. Current message is hard-coded and says "Hello Alisa!".

Is this branch still alive for review?

Yes, the branch is still alive.


Allow acceptable return codes to be passed

We have some nodes out of our control which do not always shut down properly. Until we fixed these upstream, it would be nice if we could still test stuff.

Although perhaps a boolean option to accept all might be more clear? Up to your preference.

Looks good!


Example presets

The PIR FHE example is still the default, but now the user can choose other examples (currently just PIR FHE and Sudoku ZKP). You can also link to an example, e.g. playground.sunscreen.tech/?example=sudoku.
Also, take a look at the explanation in this commit msg. One unfortunate side effect is that if you have navigated to a particular example (or followed a link with an example set), so that &example=_ is present in the URL, refreshing your browser will now refresh the example code. Previously local storage would take precedent. But I don't see a great way around that...
screenshots

I wasn't a big fan of the local storage on the standard rust playground because I often want to open it up and try something random. For an example I think it is especially ok if it resets, since then the URL will point to a known state.


Lots of warnings during x64 compilation using Ninja + Visual Studio v16.8.6 under Windows

What version of gRPC and what language are you using?
gRPC v1.36.0, C++ language
What operating system (Linux, Windows,...) and version?
Windows 10 Pro 20H2
What runtime / compiler are you using (e.g. python version or version of gcc)
Ninja as build system + MSVC 19.28.29337 for x64 (Visual Studio Professional v16.8.6)
What did you do?
I'm compiling gRPC from sources using the following commands, run from grpc directory after cloning the repo
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"
cd cmake
mkdir build
cd build
cmake ..\.. -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=..\..\install\x64\Release
cmake --build .

What did you expect to see?
No (or a few) warnings
What did you see instead?
Lots of warning, mainly C4334 and C4090, but also quite a few of other types (C4715, C4146 and others), mainly coming from files in the third_party\upb directory.

@amasciotta Thank you for the issue but we generally fix the warnings issue since we cannot remove them entirely on all compilers but having tons of them might be caused by single code which we can do. Can you attach a full log having warnings so that we can take a look at?

Here you are! The log has been produced by piping to file the output of the following commands:
echo off
rem Run from grpc directory after cloning the repo with --recursive or updating submodules.
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"
cd cmake
rem Building x64 Release
mkdir build_x64_Release
cd build_x64_Release
cmake ..\.. -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=..\..\install\x64\Release
cmake --build .

log.txt

I think this may be fixed because most of warnings came from upb which has been upgraded since then.


Added control for maximum number of transforms in a reference

Transforms can be cpu intensive. By limiting them to 10 or less we reduce the possibility of a DOC attack.

I think you can be even more strict. In real world examples, I've never seen more than two: Enveloped transform and the canonicalization.
There's also an automatic white-list of allowed transforms through those that are implemented. Which is good. There are transforms (I'm looking at you XPath) that are bad to allow.
From the SAML2 spec:

5.4.4 Transforms
Signatures in SAML messages SHOULD NOT contain transforms other than the enveloped signature transform (with the identifier http://www.w3.org/2000/09/xmldsig#enveloped-signature) or the exclusive canonicalization transforms (with the identifier http://www.w3.org/2001/10/xml-exc-c14n# or http://www.w3.org/2001/10/xml-exc-c14n#WithComments). Verifiers of signatures MAY reject signatures that contain other transform algorithms as invalid. If they do not, verifiers MUST ensure that no content of the SAML message is excluded from the signature. This can be accomplished by establishing out-of-band agreement as to what transforms are acceptable, or by applying the transforms manually to the content and reverifying the result as consisting of the same SAML message.

@AndersAbel do you think 10 is too many? TransformFactory only supports Enveloped, c14n, c14nWithComments.
https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/72f03a9c62215688b759ea180263db8b498280ea/src/Microsoft.IdentityModel.Xml/TransformFactory.cs#L36

@AndersAbel do you think 10 is too many? TransformFactory only supports Enveloped, c14n, c14nWithComments.

Would there be any reasonable use case where any of those transforms is applied more than once? And would there be any reasonable use case to combine c14n and c14nWithComments? To keep some room for unexpected stuff (there are some really strange implementations out there) some margin is probably good. But I'd say 3 as the limit, not 10. That reduces the DoS attack surface.

@AndersAbel These are good points. I would go for '5' max.
I opened https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/1154.
I marked it for 6.x.

@AndersAbel These are good points. Can we agree on '5' max as a default?
I opened #1154 for 6.x.

Yes, 5 works, should reduce DoS risk.

@AndersAbel thanks. On a side note, we are thinking of adding some sort of 'AppContext' similar to what is available here: https://docs.microsoft.com/en-us/dotnet/api/system.appcontext?view=netcore-2.2
So users can control runtime settings. Would that be of value to you?

@AndersAbel thanks. On a side note, we are thinking of adding some sort of 'AppContext' similar to what is available here: https://docs.microsoft.com/en-us/dotnet/api/system.appcontext?view=netcore-2.2
So users can control runtime settings. Would that be of value to you?

No, I don't think so. As a library author, I wouldn't touch anything that alters global behaviour - that's up to the application developer to handle. And I would be a bit concerned if there were ways for the application developer to alter behaviour without my library being able to detect so.


Invoke-RestMethod and Invoke-WebRequest Encoding bug2

1 I have  already report this bug:
https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/13685217-invoke-restmethod-and-invoke-webrequest-encoding-b
2 I give "not all examples",so that the bug part repaired.(Utf8 web page incorrectly identified as iso8859-1.)
3 Now i added "gb2312 and all other page encodings are not correctly identified as iso8859-1".
Steps to reproduce
(Invoke-WebRequest -Uri 'http://ip138.com').BaseResponse.CharacterSet  #return ISO-8859-1,but wrong,correct is gb2312.
Return garbled
Invoke-WebRequest -Uri 'http://ip138.com'
Invoke-RestMethod -Uri 'http://ip138.com'
How to returns the correct encoded string
$gbk = [System.Text.Encoding]::GetEncoding(936)
$utf8 = [System.Text.Encoding]::GetEncoding(65001)
$iso88591 = [System.Text.Encoding]::GetEncoding(28591) #ISO 8859-1 ,Latin-1
$wrong_string = Invoke-RestMethod -Uri 'http://ip138.com'
$wrong_bytes = $utf8.GetBytes($wrong_string)
$right_bytes = [System.Text.Encoding]::Convert($utf8,$iso88591,$wrong_bytes)
$right_string = $gbk.GetString($right_bytes)
write-host $right_string
Environment data
win7 + powershell 5.1 rtm:          tested,have this bug
win10 + powershell 5.1.14393.693:   tested,have this bug
cenos 7.x + v6.0.0-alpha.15:        tested,have this bug
reporter
By the chinese powershell study & research group. QQ group No. is 183173532
in 'vscode' or other open source project,in version release notes,bug reporter should be thank.
So I left a group name.

The problem is that http://ip138.com doesn't return a charset as part of it's content-type header:
PS /home/steve> $o.BaseResponse.Content.Headers

Key              Value
---              -----
Content-Length   {19215}
Content-Type     {text/html}
Content-Location {http://ip138.com/index.htm}
Last-Modified    {Wed, 01 Mar 2017 02:09:16 GMT}

Without this, the cmdlet uses ISO-8859-1 per HTTP1.1 RFC.
In comparison, http://baidu.com does return a charset so it's received correctly:
PS /home/steve> $o2.BaseResponse.Content.Headers

Key          Value
---          -----
Content-Type {text/html; charset=utf-8}
Expires      {Sun, 05 Mar 2017 05:28:55 GMT}

In this case, the cmdlet has no way to determine the correct charset without parsing the HTML which doesn't seem like the right thing to do:
PS /home/steve> $o

StatusCode        : 200
StatusDescription : OK
Content           : <!DOCTYPE html>
                    <html>
                    	<head>
                    		<meta charset="gb2312">

The best we can do here might be to expose a -CharSet parameter.

1 html 【http://ip138.com】 can return string 【】
2 【.BaseResponse.CharacterSet】 is default html page encoding Property，
2.1 don't tell me 【.BaseResponse.Content.Headers】Property,
nobody know , nobody use, even Microsoft do not use,see:
$o3 = Invoke-WebRequest -Uri 'http://www.msn.com'
$o3.BaseResponse.Content.Headers
#return null
3 Both【http://www.baidu.com】and【http://www.msn.com】is utf8 encoding.but baidu encoding wrong.
Invoke-WebRequest -Uri 'http://www.baidu.com' #utf8 encoding, chinese language web page.
Invoke-WebRequest -Uri 'http://www.msn.com'   #utf8 encoding, chinese language web page.
(Invoke-RestMethod -Uri 'http://www.baidu.com') -split "`n" | Select-String 'charset'
#baidu can return string 【】
4 It is not 'Issue-Enhancement',is 'Microsoft.PowerShell.Utility bug' i think.
5 To powershell team:
Too many html is not standardized, since IE browser can be explained through a 【COMPATIBLE】 method, powershell can also.
With the right properties, good way to solve this problem, need powershell team to bother to consider.
6 Happy 15th Birthday .NET!     Let powershell be strong again！

My tests:
PS C:\Program Files\PowerShell\<IP_ADDRESS>> $o3 = Invoke-WebRequest -Uri 'http://www.msn.com'
PS C:\Program Files\PowerShell\<IP_ADDRESS>> $o3.BaseResponse.Content.Headers

Key          Value
---          -----
Content-Type {text/html; charset=utf-8}
Expires      {-1}

PS C:\Program Files\PowerShell\<IP_ADDRESS>> $o4 = Invoke-WebRequest -Uri 'http://www.baidu.com'
PS C:\Program Files\PowerShell\<IP_ADDRESS>> $o4.BaseResponse.Content.Headers

Key          Value
---          -----
Content-Type {text/html; charset=utf-8}
Expires      {Mon, 06 Mar 2017 14:14:29 GMT}

PS C:\Program Files\PowerShell\<IP_ADDRESS>> $o5 = Invoke-WebRequest -Uri 'http://ip138.com'
PS C:\Program Files\PowerShell\<IP_ADDRESS>> $o5.BaseResponse.Content.Headers

Key              Value
---              -----
Content-Length   {19215}
Content-Type     {text/html}
Content-Location {http://ip138.com/index.htm}
Last-Modified    {Wed, 01 Mar 2017 02:10:49 GMT}

From RFC 7231:

A sender that generates a message containing a payload body SHOULD
generate a Content-Type header field in that message unless the
intended media type of the enclosed representation is unknown to the
sender.  If a Content-Type header field is not present, the recipient
MAY either assume a media type of "application/octet-stream"
([RFC2046], Section 4.5.1) or examine the data to determine its type.

So ip138.com should generate a Content-Type header field.
Our Web cmdlets is simple, it is not a full-weight browser, it can not do full parsing HTML response. You can compare the cmdlets with wget or curl. If you need in-depth automatic behavior you should use a browser API.
@SteveL-MSFT I like  -CharSet  parameter. I believe we would open a separate Issue for it. Point to the fix here

@iSazonov agree, -CharSet should be a separate issue https://github.com/PowerShell/PowerShell/issues/3267
Since the RFC is a SHOULD and not a MUST, I don't think any error should be generated.  A warning at best, perhaps use a verbose message is sufficient.

@chuanjiao10 I don't believe the webcmdlets should be parsing html.  I think what you really want is a convertfrom-html cmdlet.  Feel free to open an issue for this.

@SteveL-MSFT If a cmdlet return corrupted data is warning best way to inform user? I believe it is even a terminating error.

@iSazonov I don't know if we can make any definitive statements if the data is corrupted since the RFC doesn't require it but recommends it

I believe this is already a Powershell field.
If we read a corrupted zip file we get terminating error. Can we apply the same rule for web page with corrupted/undefined encoding? I think yes.

1   Users only need to get the correct results,no matter RFC ,no matter powershell how to do it.
2  【http://ip138.com】 can return string 【meta charset="gb2312"】,curl can correct explanation.
Look this pic:

3   There are all like powershell fans,do not be perfunctory.I disagree "-CharSet", do not push this question to the users.
Think:
If the browser does not recognize 【meta charset="gb2312"】,every time you need to manually select...
4 Too many html is not standardized,my point is 【COMPATIBLE】.
iSazonov:
Perhaps a url jump
$o3 = Invoke-WebRequest -Uri 'http://www.msn.com/zh-cn'
$o3.BaseResponse.Content.Headers
#return null,i tested again.

@chuanjiao10

Users only need to get the correct results

To achieve this we will be forced to use browser. Windows Powershell use HTMLDocument - Internet Explorer to parse HTML response (-UseBasicParsing:$false). PowerShell Core is portable and can not use Internet Explorer.
I do not know when .Net Core will have a ported HTMLDocument if will. This is a huge work I believe.
So today we are forced to use a compromise (defaults and parameter for charset). I believe it is acceptable for us (specially for REST) because the purpose of Web cmdlets is a management, working with remote web services and Cloud. In this case, all quite pre-determined and encoding too.

@chuanjiao10 I'm still of the opinion that if you want html parsing, that should be a separate convertfrom-html cmdlet which can understand <meta content="...">.

@chuanjiao10 It looks liek this is being worked on under #3267 I'm going to close this issue. If I'm mistaken and this is somehow separate, we can re-open.


mod_logid: random logid

Codecov Report

Merging #63 into develop will decrease coverage by 0.05%.
The diff coverage is 0%.

@@             Coverage Diff             @@
##           develop      #63      +/-   ##
===========================================
- Coverage    52.67%   52.62%   -0.06%
===========================================
  Files          196      195       -1
  Lines        20491    20472      -19
===========================================
- Hits         10794    10773      -21
  Misses        8515     8515
- Partials      1182     1184       +2

Impacted Files
Coverage Δ

bfe_modules/mod_header/action_header_var.go
0% <0%> (ø)
:arrow_up:

bfe_balance/bal_gslb/sub_cluster.go
48.14% <0%> (-7.41%)
:arrow_down:

bfe_websocket/server_conn.go
74.24% <0%> (-3.79%)
:arrow_down:

...e_modules/mod_trust_clientip/mod_trust_clientip.go
42.85% <0%> (-3.3%)
:arrow_down:

bfe_spdy/server_conn.go
78.53% <0%> (-0.45%)
:arrow_down:

Continue to review full report at Codecov.

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


Update props.md

renderItem() returns the mapped item under key "item" rather than "data"
Update the props documentation to reflect this.

Thx for your contribution, could you modify props.zh-CN.md as well? Thanks!

Thanks. 🍻

Thanks for the library!


Update rd-teams.md

Added Ian Tao

Summary

Ticket Link

@comharris Looks like he's already added in the Toolkit team section.

Thanks, Amy!


Adds --test_lang_filters into the iBazel proxied flags list

Docs here: https://bazel.build/reference/command-line-reference#flag--test_lang_filters
Basing this pull request on https://github.com/bazelbuild/bazel-watcher/pull/452

I've also triggered v0.21.4 to be released with this change. Thanks!


Media Key Issue

OS: Windows 10
Issue Descriptions: Using the Media keys on my Logitech G510s (I.E skip) it duplicates the action. So it will skip two songs when I press this button.
This happened when Windows Media Service Integration was implemented.

Do a seach next time this is a duplicate topic and has already been addressed and corrected and will be rolling out in the next version updated.
https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/issues/2107

Duplicate #2107

Ohh sorry I didn't see anything when I looked around. Thanks for the link 👍


"Support" link in the footer connecting to this issue tracker

A very good suggestion, thanks a lot, @mr-c.


Phrase entity type

Addresses an ambiguity surrounding Line: Depending on the underlying OCR engine, Line entities can have different definitions. MSRAPI v3 seems to return "lines" which are contiguous sequences of words on the same line, while other OCR engines may simply return "lines" consisting of a horizontal scan line of words in an image.
In order to distinguish "sequences of words contiguous on the same line" from the more ambiguous "OCR line", this PR introduces a Phrase entity type which guarantees that invariant. On the other hand, we could just directly enforce that invariant on Line and do away with the need for Phrase but that might confuse people writing converters from OCR output to foundation types.
In the case where OCR lines mean the same thing conveyed by Phrase, it's up to the user of Foundation to choose what they want to get as entities. (@andrey-ib not to be too Blueprint-specific, but this would let us trivially cast Lines from MSRAPI to Phrase, or construct Phrases via clustering/etc when we don't have MSRAPI lines, in the entity generation step -- the idea is for Blueprint not to know/care what OCR engine our Line entities came from)
Also renames Entity.ocr_words() to Entity.words(), to reflect the previous renaming of OcrWordEntity to Word.

I don't see why we need both -- what you are calling a line seems useless, the equivalent of a column of words. If a horizontally-arranged row of words is semantically tied together then it should be a phrase (or a table row or something).

I agree with this, it would be better to redefine a line into something useful, and the name "phrase" does imply semantic relatedness. I'm not sure which approach would be least confusing -- I can definitely see a user of foundation expecting the Line entity to correspond exactly to the info coming out of OCR's lines.

I don't see why we need both -- what you are calling a line seems useless, the equivalent of a column of words. If a horizontally-arranged row of words is semantically tied together then it should be a phrase (or a table row or something).

I agree with this, it would be better to redefine a line into something useful, and the name "phrase" does imply semantic relatedness. I'm not sure which approach would be least confusing -- I can definitely see a user of foundation expecting the Line entity to correspond exactly to the info coming out of OCR's lines.

@ad2476 @andrey-ib not sure if I entirely agree or I might just be misunderstanding. As a user of Foundation I have already encountered situations where there is a distinction between a Line and a Phrase (but yes maybe we can name them differently). For instance, MSFT OCR will return Lines and Phrases, while Abbyy only returns Lines. If we use only phrases, then I am not entirely sure how a user would figure out, for instance, how to construct a string for a set of phrases given that they would need to write quite a bit of code to construct lines from phrases based on pixel position.
Maybe a better description would be Line and LineSegment?

@ad2476 @andrey-ib not sure if I entirely agree or I might just be misunderstanding. As a user of Foundation I have already encountered situations where there is a distinction between a Line and a Phrase (but yes maybe we can name them differently). For instance, MSFT OCR will return Lines and Phrases, while Abbyy only returns Lines. If we use only phrases, then I am not entirely sure how a user would figure out, for instance, how to construct a string for a set of phrases given that they would need to write quite a bit of code to construct lines from phrases based on pixel position.
Maybe a better description would be Line and LineSegment?

When I have used MS OCR, it returns only words and something it calls
"lines", which correspond to what we in Foundation are calling "phrases".
Does this not match your experience with it?
On Fri, Jan 8, 2021 at 12:41 PM Aaron Vontell<EMAIL_ADDRESS>wrote:

@ad2476 https://github.com/ad2476 @andrey-ib
https://github.com/andrey-ib not sure if I entirely agree or I might
just be misunderstanding. As a user of Foundation I have already
encountered situations where there is a distinction between a Line and a
Phrase (but yes maybe we can name them differently). For instance, MSFT OCR
will return Lines and Phrases, while Abbyy only returns Lines. If we use
only phrases, then I am not entirely sure how a user would figure out, for
instance, how to construct a string for a set of phrases given that they
would need to write quite a bit of code to construct lines from phrases
based on pixel position.
Maybe a better description would be Line and LineSegment?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/instabase/foundation/pull/26#issuecomment-756900636,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOORA22AUXJLFYD5NNO5ECLSY47TPANCNFSM4VZ7PWPQ
.

When I have used MS OCR, it returns only words and something it calls
"lines", which correspond to what we in Foundation are calling "phrases".
Does this not match your experience with it?
On Fri, Jan 8, 2021 at 12:41 PM Aaron Vontell<EMAIL_ADDRESS>wrote:

@ad2476 https://github.com/ad2476 @andrey-ib
https://github.com/andrey-ib not sure if I entirely agree or I might
just be misunderstanding. As a user of Foundation I have already
encountered situations where there is a distinction between a Line and a
Phrase (but yes maybe we can name them differently). For instance, MSFT OCR
will return Lines and Phrases, while Abbyy only returns Lines. If we use
only phrases, then I am not entirely sure how a user would figure out, for
instance, how to construct a string for a set of phrases given that they
would need to write quite a bit of code to construct lines from phrases
based on pixel position.
Maybe a better description would be Line and LineSegment?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/instabase/foundation/pull/26#issuecomment-756900636,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOORA22AUXJLFYD5NNO5ECLSY47TPANCNFSM4VZ7PWPQ
.

As a user of Foundation I have already encountered situations where there is a distinction between a Line and a Phrase (but yes maybe we can name them differently). For instance, MSFT OCR will return Lines and Phrases, while Abbyy only returns Lines. If we use only phrases, then I am not entirely sure how a user would figure out, for instance, how to construct a string for a set of phrases given that they would need to write quite a bit of code to construct lines from phrases based on pixel position.

Yeah I'll clarify my comment to address the issues separately as I see them:

It's important to distinguish between "OCR lines as a horizontal row of text spanning the entire image" and "A contiguous sequence of words on the same line, such that there's no significant whitespace between them". The introduction of a new data type such as Phrase would allow for Foundation to express that distinction.
It's unclear whether we need to keep around the "OCR lines" if the sheer number of possible ways that can be interpreted results in the concept being mostly useless for all practical purposes. After all, if we don't really know what to expect in a Line, what's the point? On the other hand, foundation users might want to be able to pass around more "low-level" outputs of OCR, beyond just OCR words, and that would include "lines".
In the case that we decide we don't need both (@andrey-ib 's position, I think?), it would probably make sense to enforce the "Sequence of contiguous words on the same line" invariant on Line directly.

Maybe a better description would be Line and LineSegment?

Lastly, the question is what to name this type. One of the harder problems in CS.

As a user of Foundation I have already encountered situations where there is a distinction between a Line and a Phrase (but yes maybe we can name them differently). For instance, MSFT OCR will return Lines and Phrases, while Abbyy only returns Lines. If we use only phrases, then I am not entirely sure how a user would figure out, for instance, how to construct a string for a set of phrases given that they would need to write quite a bit of code to construct lines from phrases based on pixel position.

Yeah I'll clarify my comment to address the issues separately as I see them:

It's important to distinguish between "OCR lines as a horizontal row of text spanning the entire image" and "A contiguous sequence of words on the same line, such that there's no significant whitespace between them". The introduction of a new data type such as Phrase would allow for Foundation to express that distinction.
It's unclear whether we need to keep around the "OCR lines" if the sheer number of possible ways that can be interpreted results in the concept being mostly useless for all practical purposes. After all, if we don't really know what to expect in a Line, what's the point? On the other hand, foundation users might want to be able to pass around more "low-level" outputs of OCR, beyond just OCR words, and that would include "lines".
In the case that we decide we don't need both (@andrey-ib 's position, I think?), it would probably make sense to enforce the "Sequence of contiguous words on the same line" invariant on Line directly.

Maybe a better description would be Line and LineSegment?

Lastly, the question is what to name this type. One of the harder problems in CS.

I guess people will want lines of text sooner or later. Even though I don't
think it makes a lot of sense.
Phrases can also be multi-line in my mind.
On Fri, Jan 8, 2021 at 2:33 PM Arun Drelich<EMAIL_ADDRESS>wrote:

As a user of Foundation I have already encountered situations where there
is a distinction between a Line and a Phrase (but yes maybe we can name
them differently). For instance, MSFT OCR will return Lines and Phrases,
while Abbyy only returns Lines. If we use only phrases, then I am not
entirely sure how a user would figure out, for instance, how to construct a
string for a set of phrases given that they would need to write quite a bit
of code to construct lines from phrases based on pixel position.
Yeah I'll clarify my comment to address the issues separately as I see
them:

It's important to distinguish between "OCR lines as a horizontal row
of text spanning the entire image" and "A contiguous sequence of words on
the same line, such that there's no significant whitespace between them".
The introduction of a new data type such as Phrase would allow for
Foundation to express that distinction.
It's unclear whether we need to keep around the "OCR lines" if the
sheer number of possible ways that can be interpreted results in the
concept being mostly useless for all practical purposes. After all, if we
don't really know what to expect in a Line, what's the point? On the
other hand, foundation users might want to be able to pass around more
"low-level" outputs of OCR, beyond just OCR words, and that would include
"lines".
In the case that we decide we don't need both (@andrey-ib
https://github.com/andrey-ib 's position, I think?), it would
probably make sense to enforce the "Sequence of contiguous words on the
same line" invariant on Line directly.

Maybe a better description would be Line and LineSegment?

Lastly, the question is what to name this type. One of the harder
problems in CS.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/instabase/foundation/pull/26#issuecomment-756953392,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOORA26DJZTLUOIHHXQ4ULLSY5MZ7ANCNFSM4VZ7PWPQ
.

I guess people will want lines of text sooner or later. Even though I don't
think it makes a lot of sense.
Phrases can also be multi-line in my mind.
On Fri, Jan 8, 2021 at 2:33 PM Arun Drelich<EMAIL_ADDRESS>wrote:

As a user of Foundation I have already encountered situations where there
is a distinction between a Line and a Phrase (but yes maybe we can name
them differently). For instance, MSFT OCR will return Lines and Phrases,
while Abbyy only returns Lines. If we use only phrases, then I am not
entirely sure how a user would figure out, for instance, how to construct a
string for a set of phrases given that they would need to write quite a bit
of code to construct lines from phrases based on pixel position.
Yeah I'll clarify my comment to address the issues separately as I see
them:

It's important to distinguish between "OCR lines as a horizontal row
of text spanning the entire image" and "A contiguous sequence of words on
the same line, such that there's no significant whitespace between them".
The introduction of a new data type such as Phrase would allow for
Foundation to express that distinction.
It's unclear whether we need to keep around the "OCR lines" if the
sheer number of possible ways that can be interpreted results in the
concept being mostly useless for all practical purposes. After all, if we
don't really know what to expect in a Line, what's the point? On the
other hand, foundation users might want to be able to pass around more
"low-level" outputs of OCR, beyond just OCR words, and that would include
"lines".
In the case that we decide we don't need both (@andrey-ib
https://github.com/andrey-ib 's position, I think?), it would
probably make sense to enforce the "Sequence of contiguous words on the
same line" invariant on Line directly.

Maybe a better description would be Line and LineSegment?

Lastly, the question is what to name this type. One of the harder
problems in CS.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/instabase/foundation/pull/26#issuecomment-756953392,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOORA26DJZTLUOIHHXQ4ULLSY5MZ7ANCNFSM4VZ7PWPQ
.


Segfaults or memory corruption

Using the audio example (with relatively high data rate) will cause segfaults. This happened before on OSX but cannot be consistently reproduced. With Linux build, the issue shows up again.
[New Thread 0x7fffe8929700 (LWP 24830)]
*** stack smashing detected ***: /home/benzh/repos/ESP/build/ESP terminated

Thread 1 "ESP" received signal SIGABRT, Aborted.
0x00007ffff264b418 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
54	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007ffff264b418 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ffff264d01a in __GI_abort () at abort.c:89
#2  0x00007ffff268d72a in __libc_message (do_abort=do_abort@entry=1,
    fmt=fmt@entry=0x7ffff27a4c7f "*** %s ***: %s terminated\n") at ../sysdeps/posix/libc_fatal.c:175
#3  0x00007ffff272e89c in __GI___fortify_fail (msg=<optimized out>, msg@entry=0x7ffff27a4c61 "stack smashing detected")
    at fortify_fail.c:37
#4  0x00007ffff272e840 in __stack_chk_fail () at stack_chk_fail.c:28
#5  0x0000000000a8d7e9 in ofDrawBitmapString<char [47]> (textString=..., x=0, y=0, z=0)
    at /home/benzh/repos/ESP/third-party/openFrameworks/libs/openFrameworks/graphics/ofGraphics.h:1118
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb)

There should be a bug label @damellis .

Turns out the bug is caused by an array dereferencing: plot_samples_[predicted_label_ - 1] when predicted_label_ is 0.
Fixed already with https://github.com/damellis/ESP/commit/d79c38f0fd4635d555863075db3a93c02b88ff1b.


pfng-action: can't use all bootstrap btn classes with styleClass

Hello,
I realized that it is not possible to use the bootstrap button classes (btn-danger and others) with pfng-action because btn-default is hardcoded.
Look at this line of code: https://github.com/patternfly/patternfly-ng/blob/master/src/app/action/action.component.html#L2
You usually override that class with the attribute styleClass of Action (https://github.com/patternfly/patternfly-ng/blob/master/src/app/action/action.ts). btn-primary is actually working though, that's why some examples do have blue buttons.

The layout for the actions follow the PatternFly design. Thus, the use of the selectors btn,  btn-default, primary-action, etc.
The stylClass attribute allows you to add your own selector. It's not meant as a replacement for the above.
You can override by creating something more like this:
.btn.btn-default.primary-action: {
&.my-selector: {
// do something...
}
}
Or, you don't have to use the actions at all. That is, you can add your own buttons directly to a list, table, etc.


M1 app deployment issues.

Hi I am having some issues deploying the app locally on an m1 mac. Was wondering if this is a known issue?
Versions:

python: 3.9.7
pyvespa: 0.14
docker: 4.3.2
macOS 12.0.1

This is what I see in docker desktop:

When I try to create a app deployment, the application will hang as follows.
from vespa.gallery import QuestionAnswering
from vespa.deployment import VespaDocker

app_package = QuestionAnswering()
vespa_docker = VespaDocker(port=8089)
app = vespa_docker.deploy(application_package=app_package)

Output

Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
Waiting for configuration server.
...

Thanks for all the work in creating a python wrapper for vespa!

Thanks for reporting! this looks similar to https://github.com/vespa-engine/vespa/issues/20516 - we have not yet been able to work on this, pending an M1 resource to test on

@Brandhsu Vespa for M1 preview is now available. For information see the blogpost in Preview of Vespa on ARM64.
Please note that it is not currently possible to select the image in pyvespa when using the VespaDocker class. I will make a feature request for this, but for testing it is possible to tag the ghcr.io/vespa-engine/vespa-arm64-preview image with vespaengine/vespa to trick pyvespa into using the native image:
$ docker pull ghcr.io/vespa-engine/vespa-arm64-preview:latest
$ docker tag ghcr.io/vespa-engine/vespa-arm64-preview:latest vespaengine/vespa:latest

Then you can try to rerun your tests.

https://github.com/vespa-engine/pyvespa/pull/292 makes it possible to specify image - pending pyvespa release before closing

https://github.com/vespa-engine/pyvespa/issues/245 is closed, please try again with pyvespa-0.16.0 using the image in the blogpost (above), refer to https://pyvespa.readthedocs.io/en/latest/reference-api.html#vespadocker, see container_image.
Reopen if you find any issues.


Unaccessible administration panel due to mixed content with NGINX reverse proxy

PHP Version
7.4
Shopware Version
v<IP_ADDRESS> Stable Version
Expected behaviour
Within a 'https' Shopware instance, the administration panel loads properly without the need for the user to disable some security feature in his browser.
Within a 'https' Shopware instance, the images in the storefront load properly without the need for the user to disable some security feature in his browser.
Actual behaviour
When trying to access the admin panel at "https://my-sw-proto.com/admin", some of the assets are being fetched in HTTP which causes a "Mixed Block" error and the page doesn't load.
Some examples of contents being fetched in HTTP:

http://my-sw-proto.com/bundles/administration/static/js/runtime.js
http://my-sw-proto.com/bundles/administration/static/js/app.js

This problem extends to the shopware customer interface. I am using shopware-pwa and my images don't load because they are being fetched in HTTP.
How to reproduce
I am trying to host Shopware (as a prototype) in a Docker container behind a NGINX reverse proxy.
I decided to use Dockware#play to do this:
version: "3"

services:
    shopware:
      image: dockware/play
      container_name: shopware
      ports:
         - "8383:80"
         - "8888:8888"
         - "9999:9999"
         - "9998:9998"
      networks:
         - web
networks:
  web:
    external: false

I configured my NGINX with X-Forwarded-Proto like so:
    server_name my-sw-proto.com;

    location / {
        proxy_hide_header Access-Control-Allow-Origin;
        proxy_hide_header Access-Control-Allow-Headers;
        proxy_hide_header Access-Control-Max-Age;
        proxy_hide_header Access-Control-Expose-Headers;
        add_header Access-Control-Allow-Origin * always;
        add_header Access-Control-Max-Age 3600;
        add_header Access-Control-Expose-Headers Content-Length;
        add_header Access-Control-Allow-Headers *;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://<IP_ADDRESS>:8383;
    }

And I have a valid SSL certificate with Let's Encrypt and serve my site through https.

For the moment I workaround this issue by overriding the following files:

/var/www/html/.env
/var/www/html/vendor/shopware/administration/Resources/views/administration/index.html.twig
/var/www/html/vendor/shopware/storefront/Framework/Routing/RequestTransformer.php
/var/www/html/vendor/shopware/core/Content/Media/Pathname/UrlGenerator.php

In the env file, I added the APP_URL variable
APP_ENV=prod
APP_SECRET=1
INSTANCE_ID=1
DATABASE_URL=mysql://root:root@localhost:3306/shopware
APP_URL=https://my-sw-proto.com
MAILER_URL=smtp://localhost:1025
COMPOSER_HOME=/var/www/html/var/cache/composer
SHOPWARE_ES_ENABLED=0
TRUSTED_PROXIES=<IP_ADDRESS>

In the index.html.twig I updated the URLs fetched with the "assets()" function to force the use of https. This modification allows me to access the admin panel.
    <link rel="stylesheet" href="{{ asset('static/css/vendors-node.css', '@Administration') | replace({'http': 'https'}) }}">

<script nonce="{{ cspNonce }}" src="{{ asset('static/js/vendors-node.js', '@Administration') | replace({'http': 'https'})  }}"></script>

I also hardcoded some URLs:
        apiContext: {
            host: '{{ app.request.host }}',
            port: {{ app.request.port }},
            scheme: 'https',
            schemeAndHttpHost: 'https://my-sw-proto.com',
            uri: 'https://my-sw-proto.com/admin',
            basePath: '{{ app.request.basePath }}',
            pathInfo: '{{ app.request.pathInfo }}',
            liveVersionId: '{{ liveVersionId }}',
            systemLanguageId: '{{ systemLanguageId }}',
            apiVersion: {{ apiVersion }},
            assetPath: 'https://my-sw-proto.com'
        },

In my UrlGenerator.php I modified the getBaseUrl() function to force the use of https. This gives me access to images in the customer frontend.
    private function getBaseUrl(): string
    {
        if (!$this->baseUrl) {
            $this->baseUrl = $this->createFallbackUrl();
        }

        // return $this->baseUrl;
        return str_replace('http', 'https', $this->baseUrl);
    }

In RequestTransformer.php I hardcoded the use of https in getSchemeAndHttpHost:
    private function getSchemeAndHttpHost(Request $request): string
    {
        return  'https://' . $this->punycode->decode($request->getHttpHost());
    }

My docker-compose looks like this in the end:
version: "3"

services:
    shopware:
      image: braincoke/dockware
      container_name: shopware
      ports:
         - "8383:80"
         - "8888:8888"
         - "9999:9999"
         - "9998:9998"
      volumes:
         - './env:/var/www/html/.env'
         - './index.html.twig:/var/www/html/vendor/shopware/administration/Resources/views/administration/index.html.twig'
         - './RequestTransformer.php:/var/www/html/vendor/shopware/storefront/Framework/Routing/RequestTransformer.php'
         - './UrlGenerator.php:/var/www/html/vendor/shopware/core/Content/Media/Pathname/UrlGenerator.php'
      networks:
         - web
networks:
  web:
    external: false

I am far from being a PHP developer, but from what I read, the app should probably use the header X-Forwarded-Proto to determine which scheme should be used.
I noticed that in Recovery/Update/src/Utils.php, it already does something similar:
    public static function getRealIpAddr()
    {
        if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
        } else {
            $ip = $_SERVER['REMOTE_ADDR'];
        }

        return $ip;
    }

Look into https://symfony.com/doc/current/deployment/proxies.html

Thanks for the help.
In the end the problem was in my environment file, I should have set TRUSTED_PROXIES to REMOTE_ADDR instead of <IP_ADDRESS>.
So now my env file looks like this:
APP_ENV=prod
APP_SECRET=1
INSTANCE_ID=1
DATABASE_URL=mysql://root:root@localhost:3306/shopware
APP_URL=https://my-sw-proto.com
MAILER_URL=smtp://localhost:1025
COMPOSER_HOME=/var/www/html/var/cache/composer
SHOPWARE_ES_ENABLED=0
TRUSTED_PROXIES=REMOTE_ADDR

And my docker-compose llke this:
version: "3"

services:
    shopware:
      image: braincoke/dockware
      container_name: shopware
      ports:
         - "8383:80"
         - "8888:8888"
         - "9999:9999"
         - "9998:9998"
      volumes:
         - './env:/var/www/html/.env'
      networks:
         - web
networks:
  web:
    external: false

Everything works fine now.
This issue helped: https://github.com/dockware/dockware/issues/63


Does .deployment file only work with git deployment?

I'm trying to use a custom deployment script for my Azure Function. I created the .deployment and deploy.cmd files with kuduscript, but then when I publish from visual studio nothing happens. Does that deployment script only work with git deployment? or should it also work when deploying via visual studio? is there anyway I can customize the deployment when deploying from visual studio?

VS deploys using msdeploy, which is separate from Kudu. .deployment files are only for Kudu based deployments.


2.0 plan

This meta issue is overview of the work for the 2.0 release.
Goals
We want to minimize the dependencies of this package. There are a few that are currently added that are not really needed. Also we want to make this package more framework agnotic and extract the Laravel code to a separate package.
Related issues
Milestone: https://github.com/swisnl/json-api-client/milestone/1
#85 - We will drop nyholm/psr7 when https://github.com/guzzle/psr7/issues/327 is resolved so the consumer can just choose their PSR-17 factory.
#83 - Remove https://github.com/jenssegers/model dependency. Since the functionality it supplies is pretty simple we will pull maintenance to this package.
#80 - Currently we use illuminate/support (also through jessegers/model also this dependency). It is now possible to use illuminate/collections and have only the parts that are needed instead of full Laravel.

How's this progress going?

Hmm, I think we actually did all the mentioned changes. :)
I made this to minimize dependencies. Kinda still want a version without any dependencies but that seems a bit hard.
I don't think we released the changes as 2.0 but as a minor.

1.3.3 was released in January 2021, before the July 2021 commit of some of the changes.
2.0.0-beta is out since July 2021, but since it hadn't come out of pre-release, it seemed like it wasn't really ready or fully/well tested.
If it is, pull the trigger and push out 2.0.0 as a release!

I'll talk to @JaZo and see if it's prudent :) thanks for reminding us 👍

I appreciate the hard work on an important project! Cheers!

We have been using 2.x in some production apps for a while now, so I think it's fair to say it's ready for a stable release. I'll cut the release today! Thanks for the reminder @ooglek!

2.0.0 is released!


Added -PolicyAppId for WDAC tag used by Firewall

PR Summary

PR Checklist

[ ] Descriptive Title: This PR's title is a synopsis of the changes it proposes.
[ ] Summary: This PR's summary describes the scope and intent of the change.
[ ] Contributor's Guide: I have read the contributors guide.
[ ] Style: This PR adheres to the style guide.

@ngangulyms

We appreciate any feedback that improves the content in the Microsoft docs but we haven't had any response from you so we are going to close this issue.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.

@tiburd
PR has been copyedited and is ready for final review, could you please check and merge? Thanks!

@ngangulyms
Hello,
Please complete the checklist at the top of this PR:

After you do that, please @ mention me, so I can review and merge the PR.
Thank you


Update http4s-core to 0.21.18

Updates org.http4s:http4s-core from 0.21.6 to 0.21.18.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s", artifactId = "http4s-core" } ]

labels: library-update, semver-patch

Superseded by #88.


Info about upcoming removal of packages in the General registry

As described in https://discourse.julialang.org/t/ann-plans-for-removing-packages-that-do-not-yet-support-1-0-from-the-general-registry/ we are planning on removing packages that do not support 1.0 from the General registry. This package has been detected to not support 1.0 and is thus slated to be removed. The removal of packages from the registry will happen approximately a month after this issue is open.
To transition to the new Pkg system using Project.toml, see https://github.com/JuliaRegistries/Registrator.jl#transitioning-from-require-to-projecttoml.
To then tag a new version of the package, see https://github.com/JuliaRegistries/Registrator.jl#via-the-github-app.
If you believe this package has erroneously been detected as not supporting 1.0 or have any other questions, don't hesitate to discuss it here or in the thread linked at the top of this post.

I am working on a much more comprehensive package in my JuliaMatlab organization.
So far MatLang is under developement:
https://github.com/juliamatlab/MatLang
So I think my packages will replace this repository.

Dear @aminya and @KristofferC it seems that's there's an overlapping effort towards the direction MatlabCompat.jl was going. @aminya I do remember your pull requests some time ago. Unfortunately, I wasn't able to reply timely enough. MatlabCompat was aimed as group effort and is created as github organisation. I am happy to add / pass on the contributor/admin privileges to new members who are interested.

@ayakimovich I decided to start up my own organization and sets of packages organization. Because MatlabCompat is written for Julia 0.4 and updating it is like writing almost everything from the ground up, and the process is not straight forward too.
I abandoned and closed that pull request because it wasn't complete.


Document best practices for high level consumer functionality

I ran into #36 and was wondering how others build high [High level consumer] (https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example) functionality?
Would be great to document/ share some ideas/ code about

building consumer groups
persisting last message read offsets
deduplicate messages
...

And for cross-linking, here is one attempt at Kafka consumer coordination: https://github.com/zorkian/marshal
(Only commenting with this link b/c I know optiopay has expressed they won't be working on this for now, and I am generally a fan of not having huge libraries that do everything.)


cplp-1261- app subscription request notification

app subscription request notification

Just saw that we have 5 code smells, could you take a look at that?


Teva 1978 smoke test review apps

Jira ticket URL
https://dfedigital.atlassian.net/browse/TEVA-1978
Changes in this PR:

Smoke test spec - used an environment variable for which domain to be smoke tested
Merge two smoke test workflows into a single workflow with multiple triggers

Review app deployed to https://teaching-vacancies-review-pr-2834.london.cloudapps.digital


Fix save_hyperparameters for multiple inheritance and mixins

What does this PR do?
This PR slightly changes the save_hyperparameters logic.
Originally, save_hyperparameters captured the arguments from all stack frames. #14151 changed this behaviour. I believe, the intention was to only capture the arguments from the stack frames that correspond to LightningModule/LightningDataModule/etc children.
This was originally implemented by checking if the current class was a subclass of LightningModule/LightningDataModule/etc. Unfortunately, this turned out to be too restrictive of a requirement (imho) and it broke multiple inheritance and mixins in particular. (See #16206 and the added tests in tests/tests_pytorch/models/test_hparams.py)
This PR slightly relaxes this check. Instead of checking issubclass(current_class, ...) we now check isinstance(current_self, ...) which correctly accounts for multiple inheritance MRO shenanigans.
Fixes #16206
Does your PR introduce any breaking changes? If yes, please list them.
I modified the get_init_args function in src/pytorch_lightning/utilities/parsing.py to also return the self argument alongside the local_args dict. I am assuming that get_init_args is not part of the public API. If it is, then this is a breaking change. Please, let me know if this was a breaking change.
Before submitting

[x] Was this discussed/approved via a GitHub issue? (not for typos and docs)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
[x] Did you make sure to update the documentation with your changes? (if necessary)
[x] Did you write any new necessary tests? (not for typos and docs)
[x] Did you verify new and existing tests pass locally with your changes?
[x] Did you list all the breaking changes introduced by this pull request?
[ ] Did you update the CHANGELOG? (not for typos, docs, test updates, or minor internal changes/refactors)

Not sure, where is the "unreleased section" in the CHANGELOG. I am assuming, that it's currently missing because you are going through the release process for 1.9.0?
PR review
Anyone in the community is welcome to review the PR.
Before you start reviewing, make sure you have read the review guidelines. In short, see the following bullet-list:

[x] Is this pull request ready for review? (if not, please submit in draft mode)
[ ] Check that all items from Before submitting are resolved
[x] Make sure the title is self-explanatory and the description concisely explains the PR
[ ] Add labels and milestones (and optionally projects) to the PR so it can be classified

Did you have fun?

However, I believe in the future we need to be able to guarantee that calling save_hyperparameters leads to a configuration that always can restore the model instance. We can't guarantee it at the moment, because it is allowed to call save_hyperparameters multiple times (for example like here in multiple-inheritance) and this can easily break the contract unless the user handles the passing of args to super-inits in particular ways (like in the test).

To be perfectly honest, I think that the current behaviour in terms of how save_hyperparameters and inheritance interact is already fine.
class A(pl.LightningModule):
    def __init__(self, foo, bar):
        print(f"A({foo=}, {bar=})")
        super().__init__()
        self.save_hyperparameters()

class B(A):
    def __init__(self, bam):
        print(f"B({bam=})")
        super().__init__(foo=2, bar=3)
        self.save_hyperparameters()

model = B(bam=1)
print(model.hparams)
model_copy = B(**model.hparams) # Boom!

This code is broken. But I don't think that this code is broken because of our save_hyperparameters implementation. The reason, why it's broken, is that the __init__ method in B doesn't follow the Liskov substitution principle. If B inherits from A, then you should be able to pass instances of B to any place that expects an instance of A and it should work. This is not the case for the above classes.
Note, that this doesn't have anything to do with pytorch_lightning. This kind of code is broken even in pure python:
class A:
    def __init__(self, foo, bar):
        print(f"A({foo=}, {bar=})")
        super().__init__()

class B(A):
    def __init__(self, bam):
        print(f"B({bam=})")
        super().__init__(foo=2, bar=3)

kwargs_for_A = {"foo": 2, "bar": 3}
model = A(**kwargs_for_A)
model_b = B(bam=1)

# This should work under Liskov substitution:
assert isinstance(model_b, A)
model_specialization = type(model_b)(**kwargs_for_A) # Boom!

So in my opinion, we shouldn't aim to support this kind of broken inheritance. IMHO, it should be sufficient to warn the user or maybe raise an Exception, if we are able to detect such situations, but I don't think that we should try to do anything "smart" to try and "support" this kind of broken inheritance.

If it is, then this is a breaking change. Please, let me know if this was a breaking change.

This was a breaking change and it broke https://github.com/jdb78/pytorch-forecasting/blob/4ba7a6ec213c395e0903a38a1a6429517dea3464/pytorch_forecasting/models/base_model.py#L260
I'll open an issue adding back compatibility for this


Confusing PAM-AD PIM-AAD

This document is very nice overall, but it confuses me in some ways.
In the first alineas PAM is depicted as a security solutions for AD (so: onprem) but then states: PAM is an instance of PIM that is implemented using MIM. If I follow the link to PIM, PIM seems to focus on Azure AD (AAD) not AD...
secondly: in the alinea: "How does PAM work?" just before the picture it says: "The following example shows how PIM works in more detail." so shouldn't that read: The following example shows how PAM works in more detail.  (?)
So overal when I'm interested in securing our on premise AD, I'm a little confuse on the usage of PAM, or both PAM and PIM, and whether PIM only managed AAD or both AAD and AD.
Regards, Ben van Zanten

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

ID: f97232d5-629b-3ac3-7b67-4af90e70c551
Version Independent ID: e2c1c9d6-8b91-5dee-3240-668e4c3158a4
Content: Privileged Access Management for Active Directory Domain Services
Content Source: MIMDocs/pam/privileged-identity-management-for-active-directory-domain-services.md
Service: microsoft-identity-manager
GitHub Login: @barclayn
Microsoft Alias: barclayn

@BZanten PAM is for management of on-premises resources. PIM is for cloud... from https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-configure
"With Azure Active Directory (Azure AD) Privileged Identity Management, you can manage, control, and monitor access within your organization. This includes access to resources in Azure AD, Azure resources, and other Microsoft Online Services like Office 365 or Microsoft Intune."

I have a similar confusion as BZanten. So as per the clarification, PIM , which comes with EMS 5 is used for managing Azure Ad roles Azure resource roles. It cannot be used to manage privilege access for other platforms or non-Azure based applications.
PAM is a different product that is used for managing privilege access in on-prem AD. It does not come with EMS 5.
Is this understanding correct?

I think "The following example shows how PIM works in more detail." is a typo or copy/paste error and should read "The following example shows how PAM works in more detail."

The following issue is being closed due to the age. If this is still an issue, please re-submit this. Thank you.
#please-close

Well, so that is what collaboration looks like. I raise an issue where I kind of already exactly describe what is the problem. looking at the other reaction my issue is not nonsense..  then nothing is done with it for years, then it is closed 'because nothing is done' with it... why isn't it closed because the text is simply updated.  This does NOT give me the idea my contribution is valuable in any way.


Add OpenTelemetry in Focus post for April

I mean, the first day of the next month is pretty much like the last day of the prior month, right?

you know i love emdashes phil

is that new because of your birthday or

i've always loved emdashes


[BUG] 2015 esc menu not working

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
when i opened roblox the ui changed and when i pressed esc it showed the new menu and not the 2015 one i picked on bloxstrap.

We are no longer helping with fast flag related issues. Please see #1321.


No access to $stateParams in PermPermissionStore.definePermission

Maybe it's not an issue, but somehow I can't access to any $state data from PermPermissionStore.definePermission but in $stateChangePermissionStart that triggers before, this data is available.
Is it bug, or Angular configuration issue?

Well, actually I fund yesterday that using
PermPermissionStore.definePermission('PERM_NAME', function (event, toState, toParams, options) { ... });
Allow to successfully use toState to retrieve data that I need.


'Add Folder to Workspace' does nothing in an empty window

Testing #30722

File>New Window
Workspaces>Add Folder
-> nothing happens

This action is bringing up a dialog asking to pick folders. I think you tested on an older build?

verified - closing


[FluentAssertions.JSON] Contain do not work well with JObject ?

I've tried to do :
simModelViewModel.ItemStatus.Should().Contain("Graphics", JToken.Parse("{'X' : 100.0, 'Y':100.0, 'Height':100.0, 'Width':100.0, 'RotateAngle':100.0}"));
But in the end I had to do something like:
FluentAssertions.Json.JsonAssertionExtensions.Should(simModelViewModel.ItemStatus.Should().ContainKey("Graphics").WhichValue).BeEquivalentTo(JToken.Parse("{'X' : 100.0, 'Y':100.0, 'Height':100.0, 'Width':100.0, 'RotateAngle':100.0}"));
Also notice the conflicting issue between the BeEquivalentTo between the 2 namespaces...
(ItemStatus is a JObject)

After using the JTokenAssertions myself for a while now, i also noticed that the current extension methods may often clash with JObject & JValue.
The current workaround is to help the compiler by explicitly casting to JToken like this
((JToken)simModelViewModel.ItemStatus).Should(...)

But this is not so nice either. A better solution would be to just add some explicit extension methods for JObject etc.
I'm on it.

Hi @fforjan, this should be fixed with PR #434 and FluentAssertions.Json/4.11.0. Please have a look.
This resolved my issues. If this works for you too, we can close this issue and #405


Proposal: PoC for Bats integration tests

Swarm requires integration tests (#376) and @aluzzardi suggested in #400 that Swarm should use Bats to run this kind of tests. This PR follows Docker Machine's way of testing (docker/machine#615). It proposes a PoC to perform integration tests for Swarm.
There are 2 tests under test/integration directory:

A test to match version and gitcommit.
A test that uses timeout to check if Swarm fail to connect to a non-existed node.

To run these tests:

Compile swarm and make sure that there's the binary in $GOBIN.
Run bats test/integration

/cc @vieux
Signed-off-by: Chanwit Kaewkasi<EMAIL_ADDRESS>

should the directory be renamed to integration-cli(similar to docker) or test/integration? That seems to be the common directory structure, though really it's a matter of whether the dress is white and gold or blue and black.

@bacongobbler Thank you for your comments. I just follow how Docker Machine does for its testing directory. I am fine to change it to any better name.

Thanks @chanwit, this is really awesome!
I would probably do test/integration, I imagine eventually we'd have test/stress and so on.

done renaming to test/integration.

Thanks!


Crashing very ofen in vscode-1.13.0!!

VSCode Version: 1.13.0
OS Version: Ubuntu 16.04 LTS

Steps to Reproduce:

After I updated to latest (1.13.0), its crashing very often and asks for Reload!
A small changes to text is causing the crash.

I like vscode editor, but now I am very disappointed with this update.
Crashes were there even earlier, but its very often in the latest update.
Kindly help.
Thanks
Prashanth

I wonder if this issue is being caused by an installed extension. Can you try to run VS Code without extensions? From the command line (NOT the integrated terminal in Code), execute: code --disable-extensions and try your steps again to see if it reproduces. If you see it is an issue with the extension, please file it against the extension repository itself.

Hi bpasero, thanks for the response. I did as per your suggestion. It crashes even with code --disable-extensions.

Here is a checklist to find out more about the freeze/slow/crash

[ ] it reproduces with extensions disabled (code --disable-extensions from the command line - NOT the integrated terminal of Code)

if it does not reproduce with extensions disabled, you can stop testing and report this!

[ ] it was not happening in the previous stable release
[ ] it reproduces in insiders builds (get it from here)
[ ] there is no suspicious output when running from the command line (code --verbose)
[ ] there is no suspicious output in the window itself (Help | Toggle Developer Tools | Console)
[ ] it reproduces on Windows, Linux and Mac
[ ] it reproduces after deleting <appdata>/User/keybindings.json and <appdata>/User/settings.json (backup first! see below for paths)
[ ] it reproduces when opening empty (code -n from the command line)
[ ] it reproduces opening any folder
[ ] it reproduces opening any file
[ ] it reproduces when only having a single window open
[ ] it reproduces by just using Code without external tools running on the same folder
[ ] it reproduces from a workspace that is not under Git version control
[ ] it reproduces independently if a file is opened or not after startup
[ ] it reproduces when running with GPU disabled (code --disable-gpu)
[ ] it reproduces when being offline
[ ] it reproduces when disabling the file watching (set files.watcherExclude to "**/**": true)
[ ] it reproduces after uninstalling and reinstalling
[ ] it reproduces after deleting the application data directory (backup first! see below for paths)
[ ] I have not played around with permissions or ran Code as administrator
[ ] I am seeing a single CPU process spin high (please share the full command line arguments)
[ ] I am seeing Code consuming lots of memory in a short time

Application Data Directory for VS Code:

Windows: C:\Users\<user>\AppData\Roaming\Code
Mac: /Users/<user>/Library/Application Support/Code
Linux: /home/<user>/.config/Code

Application Data Directory for VS Code Insiders:

Windows: C:\Users\<user>\AppData\Roaming\Code - Insiders
Mac: /Users/<user>/Library/Application Support/Code - Insiders
Linux: /home/<user>/.config/Code - Insiders


(Optional) text does not appear for optional fields which are shown when a list item is selected

To reproduce:

Add a list with options 'A' and 'B'. Add a 'Text Field' component to option A, and make the Text Field component optional.
Add a page with a radio group using the list defined in step 1.
Access the page in the runner and select Option A.
The text field is displayed with no '(Optional)' text.

Expected outcome:
The text field should be displayed with (Optional) text
Additional Information:
From a bit of investigation it appears that the issue is actually in designer - when saving in list-edit.js we don't attempt to retrieve whether the optional / optionalText fields are set. It appears that if we do try to retrieve this we currently receive no context information about which conditional input of which list item this relates to.

forms-299
p2


Update README.rst

Updated software name on Readme.

@ajshajib: @nkhadka21 is making a PR changing all the files and I'd like not to interfere with it


Tickets data

Hello,
I am currently trying to use the Zendesk connector for Power BI and I am able to load in some data such as metrics, but I am not able to load in data about tickets. Was wondering if there is any way to fix this? Thank you!
Brenna

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

ID: 2231f5c7-c73c-0b80-d6b9-5adf207a6b62
Version Independent ID: 91e7c633-83d4-0714-e92f-e3f169549bd5
Content: Connect to Zendesk with Power BI - Power BI
Content Source: powerbi-docs/connect-data/service-connect-to-zendesk.md
Service: powerbi
Sub-service: powerbi-template-apps
GitHub Login: @paulinbar
Microsoft Alias: painbar

Thanks for your comment, @brojek92. This issue has been assigned to the doc author for review.

Hi @brojek92, thanks for reaching out with your question. @teddyberco, can you comment on this?

Hi @brojek92, I think  your best bet here is to reach out to the Power BI Community or to our support page. Thanks!


When copying via SSH, enters an infinite loop

CPU goes to 100% - even after 7 hours. Happened when moving the J2Z files down. This is probably the library's fault, unfortunately.

New library and I don't seem to be seeing this any longer.


Fixed :class:~.ShowIncreasingSubsets, :class:~.ShowSubmobjectsOneByOne, and :class:~.AddTextLetterByLetter

Changelog / Overview
At some point, the refactors to play (and the fact that the mobject associated to an animation at initialization time is automatically added to a scene -- add_mobjects_from_animations) broke the implementation of ShowIncreasingSubsets and ShowSubmobjectsOneByOne.
In this PR, an alternative implementation is proposed.

Motivation
Animations are currently broken.

Explanation for Changes
Example:
class IncreasingSubsetsEx(Scene):
    def construct(self):
        t = Text("this is a test :-)")
        self.play(ShowIncreasingSubsets(t))
        self.wait()

renders as
https://user-images.githubusercontent.com/11851593/113358094-6b783a80-9345-11eb-9bc9-f26c65637b43.mp4

Testing Status
Tried the example above for ShowIncreasingSubsets and ShowSubmobjectsOneByOne, looks good to me in general.

Further Comments
Fixes #1221.

Checklist

[x] I have read the Contributing Guidelines
[x] I have written a descriptive PR title (see top of PR template for examples)
[x] I have written a changelog entry for the PR or deem it unnecessary
[x] My new functions/classes either have a docstring or are private
[x] My new functions/classes have tests added and (optional) examples in the docs
[ ] My new documentation builds, looks correctly formatted, and adds no additional build warnings

Reviewer Checklist

[ ] The PR title is descriptive enough
[ ] The PR is labeled correctly
[ ] The changelog entry is completed if necessary
[ ] Newly added functions/classes either have a docstring or are private
[ ] Newly added functions/classes have tests added and (optional) examples in the docs
[ ] Newly added documentation builds, looks correctly formatted, and adds no additional build warnings

I'll open a new issue regarding the still broken AddTextWordByWord since this closes the other issue.

It would be helpful for me if you kept self.all_submobs around and referenced that instead of changing all the occurrences of it. You can see here where that will come into play as we start to accept more than one mobject to animations (assuming that PR gets merged). Otherwise, this fixes the animations for me and looks good. Seems like a really good fix to rush into v0.5.0.

I don't particularly like the identifier name all_submobs, but I'll comply for now. We can refactor it at a later point.
96c6f1d1 should have brought it back.

that even passing a Group of Texts breaks these animations

I'm not sure I follow. What is broken for groups? The behavior that this (currently) doesn't recurse into all of the submobject's submobjects is, as far as I can tell, intended.
(It might make sense to change the implementation, though.)

I just mean that this won't work. It adds them both to the scene immediately. This may be intended, but I was under the naive impression that all animations in manim would work on a group.
class Test(Scene):
    def construct(self):
        t = Text("this is a test :-)")
        t2 = Text("this is another test").shift(UP)
        self.play(AddTextLetterByLetter(Group(t, t2)))
        self.wait()

I just mean that this won't work. It adds them both to the scene immediately. This may be intended, but I was under the naive impression that all animations in manim would work on a group.
class Test(Scene):
    def construct(self):
        t = Text("this is a test :-)")
        t2 = Text("this is another test").shift(UP)
        self.play(AddTextLetterByLetter(Group(t, t2)))
        self.wait()

It works for me though; there is a very short moment without anything in the scene, then just the first line, and then the second line.

Indeed. It works as expected with the current implementation. In the future, AddTextLetterByLetter should if check the mobject type is a group and if so venture into the next level of submobjects to work on the actual text. Otherwise it doesn't do what the class name suggests. That's all I was saying

Indeed. It works as expected with the current implementation. In the future, AddTextLetterByLetter should if check the mobject type is a group and if so venture into the next level of submobjects to work on the actual text. Otherwise it doesn't do what the class name suggests. That's all I was saying

I fully agree!
I think it would be worthwhile to go over all of the currently implemented animations and clean them up a bit. There is a lot of confusing stuff in there. 😵

Nice, the excellent illustration in https://manimce--1224.org.readthedocs.build/en/1224/reference/manim.animation.creation.html#module-manim.animation.creation is not broken any longer. Merging this.


file "backdoor" and "safety" not found

file "backdoor" and "safety" not found

Thank you for your interest. We have packaged all code, datasets, and models for VeRe into a Docker image, which allows you to reproduce all our results using Docker. We are currently working on extending VeRe to other tasks and plan to submit it to a journal. We will update the GitHub repository once this work is completed.


Don't use ExUnit in production code

This changes the use of assert to raise on nil, and removes the commented out asserts
I'm actually not sure what tests to write to get this to fail

It's OK, I think there's no need to test it since the check is only there to ensure that, in the rare event that the caller of this module is handling it wrong, a more obscure exception won't be produced in later stages of decoding - it is indeed an assertion.
Now, for some reason CI isn't being triggered... I'm going to close and reopen the PR so see if that does it.

You can get structs to be covered by using them in pattern matches in tests, I'll push a commit with an example

Those two commits have gotten me another 1% coverage locally

You can get structs to be covered by using them in pattern matches in tests, I'll push a commit with an example

Ohh, thanks for the tip! And for your contribution as well. I’ll merge it and tag a new version tomorrow if I get a chance; if not, later this week for sure.

Closes #19

0.1.3 tagged and published to Hex :tada:

Thanks 🎉