Error in version conflict between dependencies.

I tried installing the required packages via pip3 install -r requirement.txt but it returned an error as.
ERROR: Cannot install -r requirements.txt (line 14), -r requirements.txt (line 20), -r requirements.txt (line 21), -r requirements.txt (line 26), -r requirements.txt (line 35), -r requirements.txt (line 36), numpy==1.19.0 and tensorflow==2.3.1 because these package versions have conflicting dependencies.

The conflict is caused by:
    The user requested numpy==1.19.0
    h5py 2.10.0 depends on numpy>=1.7
    keras-applications 1.0.8 depends on numpy>=1.9.1
    keras-preprocessing 1.1.2 depends on numpy>=1.9.1
    opt-einsum 3.2.1 depends on numpy>=1.7
    scikit-learn 0.23.1 depends on numpy>=1.13.3
    scipy 1.5.1 depends on numpy>=1.14.5
    tensorflow 2.3.1 depends on numpy<1.19.0 and >=1.16.0

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

Please help me in resolving this conflict, almost every package is having a version issue.

Gentle reminder
This Github Repository is under apache license by which you cannot directly
run it without owners permission.
On Wed, 22 Mar 2023 at 22:33, Samar Pratap Singh @.***>
wrote:

I tried installing the required packages via pip3 install -r
requirement.txt but it returned an error as.
ERROR: Cannot install -r requirements.txt (line 14), -r requirements.txt (line 20), -r requirements.txt (line 21), -r requirements.txt (line 26), -r requirements.txt (line 35), -r requirements.txt (line 36), numpy==1.19.0 and tensorflow==2.3.1 because these package versions have conflicting dependencies.
The conflict is caused by:
The user requested numpy==1.19.0
h5py 2.10.0 depends on numpy>=1.7
keras-applications 1.0.8 depends on numpy>=1.9.1
keras-preprocessing 1.1.2 depends on numpy>=1.9.1
opt-einsum 3.2.1 depends on numpy>=1.7
scikit-learn 0.23.1 depends on numpy>=1.13.3
scipy 1.5.1 depends on numpy>=1.14.5
tensorflow 2.3.1 depends on numpy<1.19.0 and >=1.16.0
To fix this you could try to:

loosen the range of package versions you've specified
remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
Please help me in resolving this conflict, almost every package is having
a version issue.
—
Reply to this email directly, view it on GitHub
https://github.com/Karanmehra7107/Medical_Diagnosis/issues/1, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AOZGVI4LWE6XQWOGGVTJRZLW5MWHXANCNFSM6AAAAAAWEDI7LA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
*Karan Mehra  *® 12105221
Researcher MCA @ School of Computer Applications
Lovely Professional University
📞<PHONE_NUMBER>
Karan mehra linkedin https://www.linkedin.com/in/karanmehra786/
Karan mehra github https://github.com/Karanmehra7107
KaranMehra.io http://KaranMehra.io


Hi there

This is test
https://muziboodemo.supportbee.com/tickets/10971764

@nisanth074 please stop doing this. its not funny anymore.

@iffyuva Just noticed that I've been opening these dummy issues for a while. Sorry about this.
I must have accidentally opened issues here instead of our own repo while testing our Github integration. Will see to it that this won't happen again.
Sorry for the trouble.


Running multiple instances concurrently

Hello, I'm trying to execute multiple instances (between 40~60) at the same time but I've had some issues with this approach (high increase in execution time, random errors, etc).
Apart from the power of the machine, what is the best way to achieve a good performance and minimize errors from puppeteer?
There are libraries with this purpose written in javascript, like puppeteer-cluster. I wonder if the same can be applied to .NET?

This is hard to answer because you might find different possible solutions. The main issue is generally chrome. Try opening 60 instances of chrome in your machine, and you will find that your computer will start burning up. Give that power to a piece of code would be killing :p
I'd love to see a Puppeteer-Cluster for puppeteer-sharp implementation someday. In the meantime, One thing you can do is trying to reuse your browser as puppeteer-cluster does. Open one browser and then open new pages there.
I saw a few solutions where devs would open 20/30/40 pages and then build a queue. So the process X number of pages at a time. This would give you more control over chrome and your RAM.

Closed due to inactivity. Feel free to reopen it if needed.


New page on each level 1 header

I am writing a book and I have multiple files markdown, then I build single HTML from it and then generate PDF. So far I am ok with what I get. The only thing I would like to have it the option to start every level 1 header with a new page. For me, every H1 is a new chapter.
Is it hard to do?

I've solved it by adding

in front of every


Update Composer dependencies (2020-12-05-00-04)

Visual regression test passed!
View the visual regression test report


Allow Robot to turn-while-moving

by adding an optional curve parameter to the forward() and backward() methods.
I also added a few more Robot test-cases while I was at it ;-)

[Current coverage][cc-pull] is 73.24%

Merging [#306][cc-pull] into [master][cc-base-branch] will increase coverage by +0.65%

File tests/test_boards.py was modified. more

Misses +1
Partials 0
Hits -1

@@             master       #306   diff @@
==========================================
  Files            28         28
  Lines          4154       4260   +106
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           3015       3120   +105
- Misses         1139       1140     +1
  Partials          0          0

Powered by Codecov. Last updated by [7e6cc39...4fa7871][cc-compare]
[cc-base-branch]: https://codecov.io/gh/RPi-Distro/python-gpiozero/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/RPi-Distro/python-gpiozero/compare/7e6cc39d719f823675a8f4a2ba586a5f1c436685...4fa787116c76944e962fc731c42d69f9b1d3666c
[cc-pull]: https://codecov.io/gh/RPi-Distro/python-gpiozero/pull/306?src=pr

It's good stuff (love the extra robot tests!), and the idea is great. My one concern is whether we can come up with a slightly better API. Specifically, I'm not sure -1=left and +1=right on forward() and backward() is that intuitive or easy to think about.
Perhaps it'd be better to incorporate this functionality into the left() and right() methods? Something like an optional curve parameter there which as it varies between 0..1 (or -1..+1) affects whether one motor works in total opposition to the other or in the same direction at a different speed? Just seems a little easier to comprehend than assigning directions to numeric signs (however intuitive it may be for us thinking about a number line running left-to-right, negative-to-positive).

I dunno... is -1 for left and +1 for right any less confusing than -1 for backwards and +1 for forwards? ;-)
At the moment, forward() does forwards-in-a-straight-line, backward() does backwards-in-a-straight-line, right() does rotate-right-on-the-spot, and left() does rotate-left-on-the-spot.
IMHO it seemed more natural to extend forward() to include turn-left-while-moving-forwards, than it did to extend left() to mean move-forwards-while-turning-left. *shrug*
And the reason I added a -1..+1 curve parameter, is that I was imagining it might be fun in future to have a robot controlled by a slider-potentiometer for the speed (with the 0..1 of the slider scaled to -1..+1 for both backwards & forwards) and a rotary-potentiometer for the 'amount of curve' i.e. left/right (again with the 0..1 of the pot scaled to -1..+1 for both left and right). I.e. similar to a traditional RC-car controller (this is what gave me the original idea for this PR).
But if the consensus is that forward(speed=1, curve=-0.5) meaning turn-left-while-moving-forwards and forward(speed=1, curve=0.5) meaning turn-right-while-moving-forwards is too confusing (see also the docstrings I added in the PR); what about forward(speed=1, curve_left=0.5) and forward(speed=1, curve_right=0.5) ? (with an Exception raised if both curve_left and curve_right are non-zero)
Any comments? @bennuttall @martinohanlon @MrHarcombe @goloplo @SteveAmor

I see what @waveform80 means by confusion - having two -1->1 ranges in the same parameter list could confuse those, like myself, bears of very little brain.
But I do like your idea of separate named parameters for the curve left xor right. I haven't checked your code, but presume there would be a similar addition to reverse? That would be a useful method for those messing with distance sensors, perhaps - if you detect an obstruction, reverse and curve then try to proceed. (on a tangent... I seem to recall having a remote controlled car as a child that, to me, confusingly had forwards, but then only a reverse-and-turn button).

Hmmm, I hadn't added 'curve' to reverse() but I had added it to backward() (but perhaps that's what you meant?).
With the way the code works currently, if you did forward(speed=0.8, curve=0.4) and then did reverse() then the combined effect will be identical to backward(speed=0.8, curve=0.4) - I just checked. Which at least to me seems to make perfect sense. Which is purely by luck, as I hadn't considered the case of calling reverse() while driving in a curve ;-) Once we decide what the desired behaviour should be, I'll add a unit-test for it.

I seem to recall having a remote controlled car as a child that, to me, confusingly had forwards, but then only a reverse-and-turn button).

Yeah, I think my younger brother once had one like that - IIRC it just had a single drive wheel on a spring-mounted pivot-plate.
The first RC car I had, had one backwards-speed, two forwards speeds (normal and "TURBO", and a couple of electromagnets* to steer the front wheels. (Haha, it was the red version of this)
* yes, at some point I took it apart, and I don't think it worked properly afterwards.

I just tested this and it's an awesome feature. We just need to decide on the API and let's get it merged. Love it.
https://vine.co/v/i3UpK2AVHMv
I personally don't mind the proposal as is, but I guess curve_left and curve_right do make more sense. @lurch do you want to update the PR?

(trying to assign both @lurch and @waveform80, just waiting on @lurch's team membership)

Okay... the branch in this PR (robot_curve) has been rebased from master, and I've made a tweak to the way the Robot tests are done.
On robot_curve2 https://github.com/lurch/python-gpiozero/tree/robot_curve2 there's an extra commit which splits the single -1 -> +1 curve parameter into two separate 0 -> +1 curve_left and curve_right keyword-only parameters. Have a look, and let me know if you'd like me to push that extra commit onto this PR too.
(and I've just realised that I forgot to add the reverse-while-curving tests)

Looks good to me - if you want me to fix it up for merge I can do that quickly (only the tests need tweaking). The one thing I'd add (which I can during the rebase) is a test to throw an exception in the case of unrecognized kwargs (so that if people accidentally do something like forward(1, curveleft=0.5) they get an exception instead of silently ignoring the invalid keyword).

Sounds good :+1:

Merged in #619


Do multiple optimizer steps in one training step

What is your question?
Hi!, I'm currently trying to train a GAN with some regularization and I would need to perform multiple optimizer steps with different losses in one single training step.
My intuition tells me to define the optimizer_step function, but I keep finding errors and I don't know what I am doing wrong.

RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation
RuntimeError: Trying to backward through the graph a second time, but the buffers have already been freed. Specify retain_graph=True when calling backward the first time

Code
def training_step(self, batch, batch_idx, optimizer_idx):
    real_img = batch
    batch_size = rela_img.shape[0]
    z = torch.randn(batch_size, self.latent_dim).to(self.device)

    # Train Discriminator
    if optimizer_idx == 0:
        fake_img = self.generator(z)
        fake_pred = self.discriminator(fake_img)
        real_pred = self.discriminator(real_img)
        d_loss = losses.d_loss(real_pred, fake_pred)
        if batch_idx % self.args.d_regularize_every == 0:
            real_img.requires_grad = True
            real_pred = self.discriminator(real_img)
            self.d_reg_loss = losses.d_reg_loss(real_pred, real_img)
        return {'loss': d_loss}

    # Train Generator
    if optimizer_idx == 1:
        fake_img = self.generator(z)
        fake_pred = self.discriminator(fake_img)
        g_loss = losses.g_loss(fake_pred)
        if batch_idx % self.args.g_regularize_every == 0:
             self.g_reg_loss = losses.g_reg_loss(fake_img, z)
        return {'loss':g_loss}

def optimizer_step(self, epoch, batch_idx, optimizer, optimizer_idx, *args, **kwargs):
     # Step using d_loss or g_loss
     super().optimizer_step(epoch, batch_idx, optimizer, optimizer_idx, *args, **kwargs)
     if optimizer_idx == 0:
         self.discriminator.zero_grad()
         self.d_reg_loss.backward()
         super().optimizer_step(epoch, batch_idx, optimizer, optimizer_idx, *args, **kwargs)
     if optimizer_idx == 1:
         self.generator.zero_grad()
         self.g_reg_loss.backward()
         super().optimizer_step(epoch, batch_idx, optimizer, optimizer_idx, *args, **kwargs)

What have you tried?
I have tried to directly return the regularization losses instead of the normal losses. But then some at some steps instead of optimizing using the logistic loss I only optimize using the regularization loss. While I would like to always optimize at least one time and then optimize again at some steps.
Is it possible with lightning? Or I am doing something wrong?
What's your environment?

OS: MacOS
Packaging: pip
Version: 0.8.4

During backward intermediate results are deleted to reduce memory usage. Here it is called twice because actual loss returned in training_step function is going to backward function in LightningModule, where actual loss.backward() is happening, and then it is called again in optimizer_step explicitly in your code. due to which the intermediate results get deleted and you are getting the error above.
Try:
def training_step(self, batch, batch_idx, optimizer_idx):
    real_img = batch
    batch_size = rela_img.shape[0]
    z = torch.randn(batch_size, self.latent_dim).to(self.device)

    # Train Discriminator
    if optimizer_idx == 0:
        fake_img = self.generator(z)
        fake_pred = self.discriminator(fake_img) # use self.discriminator(fake_img.detach()) if you don't want to update generator weights here
        real_pred = self.discriminator(real_img)
        d_loss = losses.d_loss(real_pred, fake_pred)
        if batch_idx % self.args.d_regularize_every == 0:
            real_img.requires_grad = True
            real_pred = self.discriminator(real_img)
            self.d_reg_loss = losses.d_reg_loss(real_pred, real_img)
        else:
            self.d_reg_loss = None
        return {'loss': d_loss}

    # Train Generator
    if optimizer_idx == 1:
        fake_img = self.generator(z)
        fake_pred = self.discriminator(fake_img)
        g_loss = losses.g_loss(fake_pred)
        if batch_idx % self.args.g_regularize_every == 0:
             self.g_reg_loss = losses.g_reg_loss(fake_img, z)
        else:
            self.g_reg_loss = None
        return {'loss':g_loss}

def backward(self, trainer, loss, optimizer, optimizer_idx):
    if optimizer_idx == 0:
        loss.backward()
    elif optimizer_idx == 1:
        loss.backward(retain_graph=True)

def optimizer_step(self, epoch, batch_idx, optimizer, optimizer_idx, *args, **kwargs):
    # Step using d_loss or g_loss
    if optimizer_idx == 0:
        optimizer.step()
        if self.d_reg_loss is not None:
            optimizer.zero_grad()
            self.d_reg_loss.backward()
            optimizer.step()
    elif optimizer_idx == 1:
        optimizer.step()
        if self.g_reg_loss is not None:
            optimizer.zero_grad()
            self.g_reg_loss.backward()
            optimizer.step()

Thank you for the response. Now it makes sense although the error keep appearing. I think it might be for something on my code internally.
Just one doubt from seeing your code,
optimizer.zero_grad() or discriminator.zero_grad()?

If you can share a colab notebook for the same I can try resolve this issue.

Well, I could not find the exact point where the backward()function fails to compute the gradients, either when I use the suggested with torch.autograd.set_detect_anomaly(True): from the error

RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation.

But I managed to make it work by following the code snippet below (I don't know if it is achieving what I want, but the code works now).
It makes sense for me at least, when the regularization is not needed the loss returned is the previous one but in that case no backward or optimizer_step is performed. The idea is to pass 4 optimizers, which in fact there are only 2. And then define the backward and optimizer_step functions as you suggested to use the wanted loss and wanted optimizer in the right iterations.
def configure_optimizers(self):
	self.g_optim = optim.Adam(
		self.generator.parameters(),
		lr=self.args.lr * g_reg_ratio,
		betas=(0 ** g_reg_ratio, 0.99 ** g_reg_ratio),
		)
	self.d_optim = optim.Adam(
		self.discriminator.parameters(),
		lr=self.args.lr * d_reg_ratio,
		betas=(0 ** d_reg_ratio, 0.99 ** d_reg_ratio),
		)
	return self.d_optim, self.g_optim, self.d_optim, self.g_optim

def on_fit_start(self):
	# Initialize Variables
	self.d_reg = False
	self.g_reg = False

def training_step(self, batch, batch_idx, optimizer_idx):
	# Train Discriminator
	if optimizer_idx == 0:
		fake_img = self.generator(z)
		fake_pred = self.discriminator(fake_img.detach())
		real_pred = self.discriminator(real_img)
		d_loss = losses.d_loss(real_pred, fake_pred)
		return {'loss': d_loss}

	# Discriminator Regularization
	elif optimizer_idx == 1:
		if batch_idx % self.args.d_regularize_every == 0:
			self.d_reg = True
			real_img.requires_grad = True
			real_pred = self.discriminator(real_img)
			self.d_reg_loss = losses.d_reg_loss(real_pred, real_img)
			return {'loss': self.d_reg_loss}
		return {'loss': self.d_reg_loss}

	# Train Generator
	elif optimizer_idx == 2:
		fake_img = self.generator(z)
		fake_pred = self.discriminator(fake_img)
		g_loss = losses.g_loss(fake_pred)
		return {'loss':g_loss}

	# Generator Regularization
	elif optimizer_idx == 3:
		if batch_idx % self.args.g_regularize_every == 0:
			self.g_reg = True
			self.g_reg_loss = losses.g_reg_loss(fake_img, z)
			return {'loss':self.g_reg_loss}
		return {'loss':self.g_reg_loss}

def backward(self, trainer, loss, optimizer, optimizer_idx):
	if optimizer_idx == 0 or optimizer_idx == 2:
		super().backward(trainer, loss, optimizer, optimizer_idx)
	if optimizer_idx == 1 or optimizer_idx == 3:
		if self.d_reg:
			super().backward(trainer, loss, optimizer, optimizer_idx)
		if self.g_reg:
			super().backward(trainer, loss, optimizer, optimizer_idx)

def optimizer_step(self, epoch, batch_idx, optimizer, optimizer_idx, *args, **kwargs):
	if optimizer_idx == 0:
		self.d_optim.step()
	if optimizer_idx == 1 and self.d_reg:
		self.d_optim.step()
		self.d_reg = False
	if optimizer_idx == 2:
		self.g_optim.step()
	if optimizer_idx == 3 and self.g_reg:
		self.g_optim.step()
		self.g_reg = False

Hope that it's helpful for someone training a gan with multiple steps in one training_step or batch.
Thanks a lot @rohitgr7!!

Nice! @paudom, but I still think there is a way to make it work with just two optimizers. If it's possible to share a colab notebook for the same, would be really helpful :)

The code I'm using is from a private corporation which I'm part of and cannot provide the exact code.
But I can work on making a test version in colab so we can discuss how to make it with only 2 optimizers.

Hi again, sorry for the delay. I've made a colab with a dummy example using MNIST to train a GAN. I've tried to maintain as much as possible the original code. I show the three options we have discussed. I still don't understand why your option does not work.
Here is the link: https://colab.research.google.com/drive/1Z2B9nd5jUJDbOFjwegZrT8SD7ZSyH9W_?usp=sharing
If for some reason is not available, tell me so I can check the correct link

@paudom I got it why this is happening. Let's say initially your discriminator has W1 weights. While calculating d_loss you are using the discriminator so after the first d_loss.backward() and optimizer0.step() discriminator gets updated and weights become W2. Now while calculating d_reg_loss in the first step itself it's using the old discriminator weights W1 because by that time weights are not updated but while doing d_reg_loss.backward() the gradients during backprop are calculated using new weights W2 since it's happening after the first optimizer0.step() with d_loss. That's why it throwing this error because forward pass happened with W1 but backward is happening with W2. The reason it's working with different optimizers is that the discriminator weights used there within optimizer_idx=2 are the updated ones.
Also using 4 different optimizers is different from using 2 optimizers because here you are optimizing 2 different losses in each case, so you need to decide whether to use 4 or 2 optimizers because adaptive optimizers store states using gradients.
If you want just 2 optimizers, I think your workflow is something like:

d_loss = # calculate loss1 using discriminator
d_loss.backward()
optimizer1.step()
optimizer1.zero_grad()
d_reg_loss = # calculate using updated discriminator from step 4
d_reg_loss.backward()
optimizer1.step()
optimizer1.zero_grad()

Similarly for the second one...
This is not just multi-optimizer but multi-step with multi-optimizer. Now I wonder how to make this work with lightning with just 2 optimizers. I know a hacky way to make this work, maybe. Was thinking to bring optimizers here in training_step itself using self.trainer.optimizers and do backward and step manually, but not sure if it's the best way. 😅
@awaelchli any recommendations, what's a good way to structure this workflow with lightning??

Hi @rohitgr7 thanks a lot for the explanation. I thought that when calling super().optimizer_step() the weights are updated everywhere so that could not happen, but makes sense that gradients in the backward are saved using the weights of the forward pass.
For the moment I close the issue. Although it will be interesting to find a way to do this in lightning, defining only 2 optimizers.
Thanks a lot for your suggestions!

Since my question is related, I'm gonna hijack the thread
I have a model with n heads and n+1 optimizers (one for each head and one for the shared backbone).
I basically want to do one pass through the model, calculate the gradients for the n+1 different parts
of the model and then update them together (if I don't do it together, pytorch complains that the weights
change between consecutive 'backward'-calls)
This is what is approximately looks like. It works, I am just not sure though if pytorch lightning does some
magic under the hood that I am invalidating. Would be nice if someone with a bit more knowledge could have
a look.
def training_step(self, batch: dict, batch_nb: int, optimizer_idx: int) -> pl.TrainResult:

    if optimizer_idx == 0:

	# gonna run the complete model: backbone + n heads.
	# loss is a sum of all losses
        self.saved_loss = ...

    else:
        res = {'loss': self.saved_loss}

    return res

def backward(self, trainer, loss, optimizer, optimizer_idx):

    # keep the graph until the last optimizer
    if optimizer_idx < len(self.opimizers) - 1:
        loss.backward(retain_graph=True)
    else:
        loss.backward()

def optimizer_step(self, current_epoch, batch_nb, optimizer, optimizer_idx, second_order_closure=None, on_tpu=False,
                   using_native_amp=False, using_lbfgs=False):

    if optimizer_idx != len(self.task_heads):
        return

    for optimizer_idx, optimizer in enumerate(self.optimizers):

    	# enable the weights of the current optimizer & disable the rest
        for param in self.parameters():
            param.requires_grad = False
        for group in optimizer.param_groups:
            for param in group['params']:
                param.requires_grad = True

        optimizer.step()
        optimizer.zero_grad()

BTW if anyone interested you can checkout the latest update regarding optimization.https://pytorch-lightning.readthedocs.io/en/latest/optimizers.html#manual-optimization

thank you! yeah, turns out my approach does not work. pytorch lightning for instance sets the gradients to zero at some other time. But also when doing that, the training seems not to work (it runs, but it doesn't really improve). The new api should solve the problem however! Really exiting that version 1.0 is out now :)

@rohitgr7 on using your method I am getting: lightning_fabric.utilities.exceptions.MisconfigurationException: The closure hasn't been executed. HINT: did you call optimizer_closure() in your optimizer_step hook? It could also happen because the optimizer.step(optimizer_closure) call did not execute it internally.


Trove Identifier for the MIT license

Coverage remained the same at 87.168% when pulling 529439a3e9b8b2e386918d2f3712bdc9c1396897 on holmboe:patch-1 into 25137367be067cc4b09d8bc3459e4b86b8705dc3 on Grokzen:unstable.

Coverage remained the same at 87.168% when pulling 529439a3e9b8b2e386918d2f3712bdc9c1396897 on holmboe:patch-1 into 25137367be067cc4b09d8bc3459e4b86b8705dc3 on Grokzen:unstable.

Coverage remained the same at 87.168% when pulling 529439a3e9b8b2e386918d2f3712bdc9c1396897 on holmboe:patch-1 into 25137367be067cc4b09d8bc3459e4b86b8705dc3 on Grokzen:unstable.

Coverage remained the same at 87.168% when pulling 529439a3e9b8b2e386918d2f3712bdc9c1396897 on holmboe:patch-1 into 25137367be067cc4b09d8bc3459e4b86b8705dc3 on Grokzen:unstable.

Coverage remained the same at 87.168% when pulling 529439a3e9b8b2e386918d2f3712bdc9c1396897 on holmboe:patch-1 into 25137367be067cc4b09d8bc3459e4b86b8705dc3 on Grokzen:unstable.

Coverage remained the same at 87.168% when pulling 529439a3e9b8b2e386918d2f3712bdc9c1396897 on holmboe:patch-1 into 25137367be067cc4b09d8bc3459e4b86b8705dc3 on Grokzen:unstable.

Coverage remained the same at 87.168% when pulling 529439a3e9b8b2e386918d2f3712bdc9c1396897 on holmboe:patch-1 into 25137367be067cc4b09d8bc3459e4b86b8705dc3 on Grokzen:unstable.

Coverage remained the same at 87.168% when pulling 529439a3e9b8b2e386918d2f3712bdc9c1396897 on holmboe:patch-1 into 25137367be067cc4b09d8bc3459e4b86b8705dc3 on Grokzen:unstable.


Edit readme link is visible on top of delete button on certain pages

The added edit button which was meant for the readme on the front page of a repository is on top of the delete file button when looking at certain files.
E.g.

See https://github.com/sindresorhus/refined-github/blob/master/readme.md
https://github.com/sindresorhus/pageres/blob/master/contributing.md

It is not visible when looking at a specific commit reference like https://github.com/sindresorhus/pageres/blob/511d29f6c5a9b5438bd85cefe15ec6fa8074e227/contributing.md

I'm about to make a PR, but I want to call out something this issue highlights:

It is not visible when looking at a specific commit reference like https://github.com/sindresorhus/pageres/blob/511d29f6c5a9b5438bd85cefe15ec6fa8074e227/contributing.md

This is expected (you're not in the root) and is different from the other pages because you are affecting a full page refresh.
We're seeing the same issue other PRs, and it's because 'DOMContentLoaded' is not firing for many navigation-type events on GitHub. These bad edit README links disappear on their own on a page refresh, and the recurring "have to refresh to make XXX work" is the same underlying issue.
PR is coming with a CSS fix, but if there's a JS fix (bind to the load event?) then we can do that instead.

@paulmolluzzo thanks for fixing this! I also meant it's not desired the link to be there. I didn't dig deeper in the regex or the CSS, but , but just wanted to show it's not reproducible in every case.

@hkdovrev you bet! The point I was making was why two similar scenarios behaved differently. That's all.


[Dialog][DropdownMenu] Possible regression in auto focus behaviour when opening a dialog from a dropdown

Bug report
There appears to be a regression with the autofocus behaviour when opening a dialog from a dropdown. Previous suggested solutions found within Discord (thread here) worked fine in pre-1.0 solutions, i.e. 0.1.7 however when identical code is updated to use the most recent versions, the behaviour breaks.
Current Behavior
The input with the autoFocus prop does not receive focus.
Expected behavior
The input receives focus.
Reproducible example
Codesandbox containing the original suggested solution using versions 0.1.7 and 0.1.6 of the Dialog and Dropdown primitive: https://codesandbox.io/s/dropdownmenu-dialog-forked-vvb95z?file=/src/App.js
Codesandbox containing identical code with recent versions 1.0.0 of both components: https://codesandbox.io/s/dropdownmenu-dialog-forked-hvg3ii?file=/src/App.js
Your environment

Software
Name(s)
Version

Radix Package(s)
@radix-ui/react-dialog @radix-ui/react-dropdown-menu
1.0.0

I believe I am having the same issue.

I don't think we ever had any code to handle elements with autoFocus, the behaviour you see is correct, ie. the cancel button in an alert dialog should receive focus. If you want to override that, you can simply call event.preventDefault in onOpenAutoFocus.


Get wpilib_ws.yaml added to wpilib

This should be done after DeepBlueRobotics/WPIWebSocketsTemplate#7.
See this comment for where it should be placed.
Once it is accepted, change the template comments to refer to the new location and remove it from this repo (or replace it with a file that tells the reader where it has moved).

wpilib-ws.yaml is currently under review by the WPILib developers. https://github.com/wpilibsuite/allwpilib/pull/30590.

wpilib-ws.yaml is currently under review by the WPILib developers. https://github.com/wpilibsuite/allwpilib/pull/30590.


Transpiling components outside /pages?

Hello! I'm just now getting started with next (using version 1.2.3), and I have the following folder structure:

package.json
pages

index.js

lib

components

Test.js

I have a symlink: node_modules/lib -> ../lib.
I import my Test component with import Test from 'lib/components/Test'.
This works fine, but it seems to not be transpiled: if I import anything from my Test component, I get the following error: SyntaxError: Unexpected token import.
Any guidance here? I'd be fine having my /components under /pages but I don't want them to be able to be served up standalone.
Thanks!

Duplicate of https://github.com/zeit/next.js/issues/706

Short term answer is use relative paths for now. So import Test from 'lib/components/Test' would become import Test from '../lib/components/Test'

Ah, sorry for the duplicate, and makes sense about not transpiling node_modules. Thanks!

🙌


NVSHAS-7853 TLS handshake EOF

When controller's service is configured as LoadBalancer, LoadBalancer can perform health check on the endpoint and generate a lot of error messages in controller:
http: TLS handshake error from xxxxxx: EOF

This commit skips this kind of error by providing a different logger for controller's REST server.

Verified that errors other than EOF will still be printed.
2024/08/03 02:10:48 http: TLS handshake error from <IP_ADDRESS>:42412: local error: tls: bad record MAC
2024/08/03 02:10:52 http: TLS handshake error from <IP_ADDRESS>:42420: local error: tls: bad record MAC


[MRESOLVER-149] Add github actions config

Blatantly borrowed from apache/maven, trimmed to down
to the level maven-resolver needs.
https://issues.apache.org/jira/browse/MRESOLVER-149

Will pick up this week.


Update Apache dashboard to use samples

Relevant information
This PR updates the Apache dashboard to use the ApacheSample instead of Metric.
Checklist

[ ] I've read the guidelines and understand the acceptance criteria.
[ ] The value of the attribute marked as identifier will be unique and valid.
[ ] I've confirmed that my entity type wasn't already defined. If it is I'm providing an explanation above.

Sorry, I inadvertently closed the branch!


Nomie App doesn't show full Tracker Creator -> Tracker Type (missing Combine Trackers)

Nomie App on Samsung Galaxy s10e doesn't show full Tracker Creator, Tracker Type. Missing the last entry, "Combine Trackers".
Not sure if it is a zoom/sizing settings set with the phone, but I cannot scroll down to reach Combine Trackers when on Android. I can only access "Combine Trackers" on PC. The last item I see is Timer. Not sure if it is intended or not. Version 5.6.2
See attached image, for best description :)
image: Left, PC. Right, Samsung s10e.

On iPhone 5S same


(GH-14) Adding additional IconUrl check

To ensure that the IconUrl either comes from the same domain as the
ProjectUrl, or comes from the RawGit CDN
Fixes GH-14

Fix up the checks a bit so there are no null reference exceptions.

@ferventcoder ah, good shout!
I think I have corrected the logic flow.  Let me know if you spot any other problems.

Always resubmit the same commits unless the new changes add something additional. A code review is not one of them. (same comments for full effect ;) )

@ferventcoder just away to head for the night, but will follow up with any comments in the morning.  Let me know what you think.

@ferventcoder as a start (work still required) is the second commit the type of thing that you had in mind?

NOTE: Never used TinySpec before, so very much feeling my way around here, but used some examples from choco in order to create this.

@ferventcoder ok, let me know what you think.

@ferventcoder ok, so that scenario results in a failed tests, which is what I think you thought would happen :-)
I will look at the regex, and see if there is anything that can be done.

@ferventcoder I have added that scenario though, and pushed to this PR.

ok, so that scenario results in a failed tests, which is what I think you thought would happen :-)

You caught me :D

@ferventcoder what do you think of this change?

@ferventcoder what do you think about this alternative approach?

@ferventcoder I have fixed up with your comments, and re-pushed.
However... :-(
I started adding in the unhappy paths, as you suggested, and this highlighted an error in the logic.  See the failing test.
Any ideas on best approach to go forward?  It all comes down to not knowing the valid TLD's in order to move forward.  I really don't want to have to start pulling in a complete list of TLD's and comparing against them, as these lists are always changing.
What are your thoughts?

Will have to check to see it.

@ferventcoder did you have any suggestions about this one, or did you get pulled onto something else?

I didn't see the failing test yet. Might be best to comment on the PR files where the failing test is.

Is this ready to go?

@ferventcoder no, this still has a failing test :-(  I keep coming back to this one, and not liking the solutions that I come up with :-(


Force piggybacking.

I can't see a way to force piggybacked responses, which is desirable for working with motes (by reducing the amount of packets and thus the probability of loss).
Is it possible?

It is not currently possible. Piggypack will happen if you reply within 50ms: https://github.com/mcollina/node-coap/blob/master/lib/outgoing_message.js#L46.
It would be great to have this configurable at server level. Would you like to send a PR?

I've added the piggyback timeout as config value on my branch, see
https://github.com/neophob/node-coap/commit/6979b5a8a3dccf7d60eb4be869e53ecf361629e2
https://github.com/neophob/node-coap/commit/cf33119d0a4b752f18a2a50159dcd4f0b3e0c6dc
maybe this helps? Should I create a PR?

@neophob please do :)


Link to JavaScript port

Hi,
Love the library and have created a JavaScript port. Check it out if you get a chance!
https://github.com/stemail23/codenamize-js
Any chance of a back link in your readme?
Cheers,
Steven

Wow, congrats for publishing codenamize-js, and thank you :-). How great is to see open source software at work.
Merged.

Special kudos for:

Straight out of the box, Codenamize emulates the behaviour of the original Python library, and contains the same noun and adjective lists. Generated codenames with either library should be identical for a given input.

Now that codenamize-js is available, I'l have to rewrite a couple of API interfaces and put codenamize-js on the client side :-D. Wonderful.


Merge changes from glfw

This is a fork of the servo/glfw, which is a fork of the original glfw repo.
There might be Servo specific changes in this repo.
Should probably update with latest changes from the original repo.

I would suggest updating it to the latest stable tag

That would be 3.1.2 https://github.com/glfw/glfw/tree/3.1.2


Responsive UI on Publishing site

Hello,
it is possible to use the Responsive UI for a publishing site?
Thanks in advance

Hi,
Thanks for using PnP. The responsive package has been designed for the Team Site template. I think you will need to update it in order to apply it to a publishing site.


Any chance on language support ?

Hi,
great module, works like a charm.
However I need to manually go through your source code to do a localization (e.g. for German). This is a little tedious. Any chance you'd consider supporting the language translation .json files ?
Thank you very much,
Lars

Definitely something I've thought about.  Seems like it should be pretty straightforward.
The main complexity would probably be in the construction of the car status, which is built a word at a time; I could envision other languages requiring a different word ordering, which probably entails using placeholders to sub in the right words.  IIRC, German is such a language with different word ordering, so you might be in a good position to help figure that out.


Cleanup for project.json

Fixes #1792
Minor cleanup in project.json files

Hmm, AppVeyor doesn't like this. Seemed to be working locally. Checking into it now

Hmmm, when I run the following commands I get an error

dotnet restore OK
dotnet build OK
dotnet run Throws an error (see below)

@naeemsarfraz - Strange. I've just pulled it onto another machine and it seems to build and run okay for me there too. Could you please try deleting the bin and obj folder manually, the restoring and running? I've sometimes had the tooling hang onto things it shouldn't.

@stevejgordon can you confirm your dotnet --version? mine is 1.0.0-preview2-003156
Just cloned into a new directory and still getting the same result. If I rollback the recent PR it works fine.
:puzzled:

I have 1.0.0-rc3-004530 as I've been playing with VS 2017 and the current SDK in the past. But as the global.json specifies 1.0.0-preview2-003156 then it should be using that version of the SDK for me.
Looking at the error again, it's blowing inside the ConfigureAuthentication method. I can't see any direct calls to load files, but can you double check you have the version.json and config.json files in your web app directory?
Might be that I have a user secret set for some of the settings, that you don't. I'm installing VS 2017 and upgrading VS 2015 at the moment, so can't run anything up to investigate right now.

I can confirm the same issue on my machine here with 1.0.0-preview2-003156.
It appears to be an issue with the Microsoft.AspNetCore.Authentication.Facebook library (removing the code accessing that library from Authentication.ConfigureAuthentication prevents the error).
I think it comes down to an issues with Nuget not resolving dependencies correctly for libraries depending on NetStandardLibrary1.6.1, as you can see here:  https://github.com/aspnet/Security/issues/1046
The Facebook library depends on NetStandardLibarary1.6.1.

Thanks @dchristensen - I'll try and dig into this later.

@naeemsarfraz and @dchristensen - Replicated it and I believe located the issue...
"imports": [
  "portable-net45+win8+wp8+wpa81"
]

Seems having wp8 and wpa81 causes the issue - removing wp8 seems to solve it for me. Pushing a PR in 2 mins


Change Directory fails if the drive letter is different

The CD doesnt work if the drive doesn't match, resulting in the remoting.jar to not be found. the /D switch will cause the drive to change if it is different and do nothing if the drive matches.
See JENKINS-XXXXX.

Submitter checklist

[ ] JIRA issue is well described
[ ] Appropriate autotests or explanation to why this change has no tests

the change of drive is documented https://github.com/jenkinsci/ssh-slaves-plugin/blob/main/doc/TROUBLESHOOTING.md#use-remote-root-directory-in-a-no-c-drive

closed due to inactivity


Fix bqx tests

Upstream libraries have added fields.  PolicyTags and Location are causing problems, and this PR fixes those tests.
Note that go/bqx and go/bqext are deprecated.  Working on parallel PRs to remove dependencies on these so they can be deleted.

This change is

Pull Request Test Coverage Report for Build 839

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 82.757%

Totals

Change from base Build 832:
0.0%

Covered Lines:
1483

Relevant Lines:
1792

💛  - Coveralls


Dracula Theme for Windows Terminal

New Theme
Recently Microsoft released the new Windows Terminal, I added the Color scheme to the configuration json and think other people could benefit from that as well

My Repo
I hope everything is according to code so far

Hey @SebastianOner :wave: We already have a theme for the new Windows Terminal. If there's anything that could be improved/fixed, please open an issue on that repo to let the @dracula/windows-terminal know 😄


Can't install due to brew error

I'm unable to install snowcrash due to an error, i've tried everything i can think of, but can't work out how to resolve it.
When i run:
brew install --HEAD https://raw.github.com/apiaryio/snowcrash/master/tools/homebrew/snowcrash.rb

It eventually stops with the following:
libtool: unrecognized option `-static'
libtool: Try `libtool --help' for more information.
make[1]: *** [out/Release/libsundown.a] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [snowcrash] Error 2

Output of libtool --help:
host-triplet:   x86_64-apple-darwin13.1.0
shell:      /bin/sh
compiler:       gcc
compiler flags:     -g -O2
linker:     /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld (gnu? no)
libtool:    (GNU libtool) 2.4
automake:   automake (GNU automake) 1.14.1
autoconf:   autoconf (GNU Autoconf) 2.69

Output of brew --config
HOMEBREW_VERSION: 0.9.5
ORIGIN: https://github.com/Homebrew/homebrew.git
HEAD: 60e4d1bbb37b05d3da889fe1f7dfcd39f7c2a5b5
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
CPU: 8-core 64-bit ivybridge
OS X: 10.9.2-x86_64
Xcode: 5.1
CLT: <IP_ADDRESS>.1.1393561416
GCC-4.2: build 5666
Clang: 5.1 build 503
X11: 2.7.5 => /opt/X11
System Ruby: 1.8.7-358
Perl: /usr/bin/perl
Python: /usr/local/bin/python => /usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby

Same here
$ ls -las  /usr/bin/libtool
8 -rwxr-xr-x 1 root wheel 14240 May 12  2014 /usr/bin/libtool
$ ls -las /Library/Developer/CommandLineTools/usr/bin/libtool
56 -rwxr-xr-x 1 root admin 153168 Mar 11 19:26 /Library/Developer/CommandLineTools/usr/bin/libtool

Those two are really different!


[stable/redis] Fix appVersion

Remove distro from appVersion, this was an error in the pipeline. Already solved

/ok-to-test
/lgtm


Add domain repository

We will add the domain repository in the domain layer, in order to eternalize domain class instances and some logics closely related to domain class instance operations.
Currently, the store library Pinia plays a similar role, but after implementing the domain repository, a design that does not depend on Pinia will be realized.
Furthermore, it has the advantage of clearly distinguishing between data that should be exported and data that should not be exported.

Solved in v1.2.0


[WIP] Creation of models

Closes #17
Created models for post and tag and the junction table connecting them.
Added flask_session, flask_bcrypt to dependencies.

@thealphadollar Please review. @mukul-mehta is working on the other models. Once everything is updated here. We can test the models.

@grapheo12 Please resolve conflicts.


[ELWBAK] Pro Backgammon - Unable to run and shows blank menu option

Module Information

Identifier: ELWBAK
Module Name: Pro Backgammon
Version: 3.06

Describe the bug
Crashes on selection from menu, also shows up as "BLANK" (See screenshot)
To Reproduce
Steps to reproduce the behavior:

Add Pro Backgammon module to config
Start MBBSemu
Select menu item for Pro Backgammon (blank, see screenshot)

Expected behavior
Module runs without crashing
Screenshots

Unhandled exception. System.Collections.Generic.KeyNotFoundException: The given key 'sttrou' was not present in the dictionary.
   at MBBSEmu.HostProcess.MbbsHost.WorkerThread()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

Software Information:

OS: Windows Server 2019 Standard
Telnet Client: Netrunner

API REPORT
{"UniqueIdentifier":"ELWbak","File":"ELWBAK.DLL","Imports":{"DOSCALLS":[89],"PHAPI":[16],"MAJORBBS":[629,534,543,783,785,628,786,484,520,624,999,53,485,880,162,330,561,599,566,455,492,589,331,550,559,601,357,757,574,997,456,350,401,403,571,578,568,521,762,761,463,474,77,467,625,107,650,441,879,437,475,510,85,476,411,119,117,351,428,787,458,713,654,659,486,604,587,377,621,661,657,134,157,580,640,639,582,779,827,788,712,505,511,335,726,459,409,560,665,522,974,941,942,938,927,1170,68,930,996,968,943,1144,944,973,960,958,572,967,940,1172,1171,326,348,460,449,167],"GALGSBL":[40,30,53,36,72]}}

This is usually caused by the module's _INIT_ routine failing before calling register_module(), which results in MBBSEmu knowing that there is a module loaded... but not much else.
The research item here is to better understand what's causing the _INIT_ routine to exit prematurely, but also perhaps have MBBSEmu not include, and report modules that fail to register.

It appears that Backgammon is storing your demo start in GENBB.DAT, using the first segmented key to basically do a two dimensional lookup by username and module identifier to get the record for demo.
MBBSEmu's Btrieve engine doesn't handle Segmented Keys very well. Conversely, MajorBBS/WG is not aware of Key Segments either and only limited to query on one key at a time. To accommodate this, the engine appears to be pulling in the sum total of all segments lengths as a byte array for a Key query on a Segmented Key.

As you can see, the BBSGEN.DAT definition defines key 0 as:
0:1 - Length 30 (Username)
0:2 - Length 25 (Module Identifier)

TODO: The Btrieve File Processor needs to be enhance to when reading a key that is segmented, if the byte order is sequential, to just increase the size of the "parent" key. So in the case of BBSGEN.DAT, Key #0 will have a length of 55 bytes starting at byte 1. This is most likely how MajorBBS/WG handle querying segmented keys when only one key value can be specified.
If the Segments are not sequential, we'll need to display an error as that'll require some additional logic to handle.

Sold myself short on this one, MBBSEmu actually handles Segmented Keys just fine 😆
The issue is qrybtv was updated to support the sum bytes of a given key (https://github.com/enusbaum/MBBSEmu/blob/master/MBBSEmu/HostProcess/ExportedModules/Majorbbs.cs#L4764), but obtbtv was not (https://github.com/enusbaum/MBBSEmu/blob/master/MBBSEmu/HostProcess/ExportedModules/Majorbbs.cs#L2695).
In this case, only obtbtv needs to fixed 👍


preparation for consumption - slight refactor, prepare for tests, tweak graphs

Pull Request
Background prep for consumption
Description
This is all work that made sense to do prior to adding consumption, as I wanted to add some checks, tests, and updated graphs.
Tests are coming next, but this helps prepare for them.
kaleido added as a dependency to support png generation in examples.
Fixes #
How Has This Been Tested?
Ran the example scripts, the generated png files are included, with the README updated to reflect the latest

[X] Yes

If your changes affect data processing, have you plotted any changes? i.e. have you done a quick sanity check?

[X] N/A (no data processing changes)

Checklist:

[X] My code follows OCF's coding style guidelines
[X] I have performed a self-review of my own code
[X] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[X] I have checked my code and corrected any misspellings

@peterdudfield any comments on this?

Looks great, happy to merge?

Looks great, happy to merge?

yes please


IR grid for lambda >= 1e7 cause large leakage in Polarization

Describe the bug
When IR-Lambda=>1e7 there is a large leakage in obtaining polarization on fermi grid
Expected behavior
leakage should decrease with increasing lambda

#GEF-10 fixed


Feature/ch80914/improve error messages while importing

See https://app.clubhouse.io/cartoteam/story/80914
This improves import error messages for connectors by extracting information from the logs in the case of generic (9999) errors.

For all connector errors, the information returned in the import status used to be:
{ // ...
  "get_error_text": {
    "title": "Unknown",
    "what_about": "Sorry, something went wrong and we're not sure what. Try\n      uploading your file again, or contact us and we'll try to help you quickly.",
    "source": "cartodb"
  }
}

Now it is more informative:
{ // ...
  get_error_text: {
    source: "cartodb"
    title: "Connector Error"
    what_about: "Executing ODBC query to get schema↵SQL compilation error:↵syntax error line 1 at position 0 unexpected 'OOPSIE'.↵↵"
  }
}

And it appears like this in the UI:

Dear Rubocop:

You may not like the get_ in the get_error_text method, but it is part of our API, so I'm not going to change it, live with it.
Using underscores as thousands separators in numeric quantities improves legibility, but my 9999 is a code, not a numeric quantity, and I like it like that.


Hash anything signed

Only the first entry in the log is allowed to have zero hashes.

Alternatively, we could remove hash IDs from everything but Ticks, and have the tick hash all entries since the last tick.

Codecov Report

Merging #60 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master      #60   +/-   ##
=======================================
  Coverage   92.63%   92.63%
=======================================
  Files          12       12
  Lines         720      720
=======================================
  Hits          667      667
  Misses         53       53

Impacted Files
Coverage Δ

src/entry.rs
93.22% <ø> (ø)
:arrow_up:

src/event.rs
40% <0%> (ø)
:arrow_up:

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 17926ff...eba71ad. Read the comment docs.

I don't like this fix, closing. I'd rather remove hashes than add them. https://github.com/loomprotocol/silk/issues/61


Clickable http links in the term

[x] I am on the latest Hyper.app version

[x] I have searched the issues of this repo and believe that this is not a duplicate

OS version and name: OS X El Captain v 10.11.6

Hyper.app version: 1.3.1

Link of a Gist with the contents of your .hyper.js: my config

Relevant information from devtools (CMD+ALT+I on Mac OS, CTRL+SHIFT+I elsewhere): N/A

The issue is reproducible in vanilla Hyper.app: Is Vanilla

Issue
Hello there !
This issue is more of an enhancement idea : I would love to be able to click a http link directly in the term when Cmdis pressed.
This behaviour is available in iTerm.
I would love to open a PR if you are open to it !

This does what you're asking for: https://www.npmjs.com/package/hyperlinks
see the awesome https://github.com/bnb/awesome-hyper for more!

@albinekb Great thanks !

🎉  @alexandrebodin


How to integrate rocksplicator with exisiting application running on rocksdb.

I have a standalone application running on rocksdb. I want to make it distributed for hackathon. I don't want to replace rocksdb with any distributed DB so we decided to use rocksplicator.
Do we need to change our application to use rocksdplicator or it is separate process. We just need to point it to the DBs.

It's a library, so you need to compile the library into your application process.
You need to open rocksdb instances in your application code, and add opened rocksdb instance to rocksplicator library at both Master and Slave sides. The library will do the data replication for you.

you mean only rocksdb_replicator library not rocksdb_admin.
You mean opening the DB and all stay as it is but we need to add extra code to add that DB handle for replication.

Yes, opening db is still done by your application, but you need to add code to add db handlers to rocksplicator library. Also, you will need to write/read to/from db through the handlers returned from rocksplicator.


Apply Max for unstake

Expect:

On unstake screen: Max = Active stake
Disable max if account is not selected

Version test: v1.0.4(176)
Devices test: IP 11
Validation passed.


[KOGITO-8648] [KSW-Operator] Implement the Knative Addressable interf…

…ace in dev profile

Description of the change:
Motivation for the change:
Checklist

[x] Add or Modify a unit test for your change
[x] Have you verified that tall the tests are passing?

How to backport a pull request to a different branch?

In order to automatically create a backporting pull request please add one or more labels having the following format backport-<branch-name>, where <branch-name> is the name of the branch where the pull request must be backported to (e.g., backport-7.67.x to backport the original PR to the 7.67.x branch).

NOTE: backporting is an action aiming to move a change (usually a commit) from a branch (usually the main one) to another one, which is generally referring to a still maintained release branch. Keeping it simple: it is about to move a specific change or a set of them from one branch to another.

Once the original pull request is successfully merged, the automated action will create one backporting pull request per each label (with the previous format) that has been added.
If something goes wrong, the author will be notified and at this point a manual backporting is needed.

NOTE: this automated backporting is triggered whenever a pull request on main branch is labeled or closed, but both conditions must be satisfied to get the new PR created.

@davidesalerno I think you need to regen the code.

will try this afternoon

@davidesalerno could you rebase your PR ?
once done, I will test it asap

@davidesalerno could you rebase your PR ? once done, I will test it asap

Rebased. If we can test is today it will be great so tha t we can merge it

@davidesalerno just run the generate-all with vet and fmt please, so we can merge it :D

@radtriste remember me to rebase and fix the codegen tomorrow if Davide can't because of the holidays :D

@davidesalerno just run the generate-all with vet and fmt please, so we can merge it :D

I executed it yesterday and also now but there are no changes to commit

@radtriste I think that there is one issue with the bundle.Dockerfile.
Doing a make generate-all I've no changes and also doing a git status -s there are no files changed :-(

I tried on my machine and got an update to the Dockerfile:

Maybe remove your bin/ dir and retry


Add information or FAQ on criteria and guidelines

More information about how to make a Submission,  could be provided in a template submission page.
The relation among taxonomy elements such as "Methods", "Tags" and "Tasks" and other common questions could be collected in a FAQ page.

This is the link with the currently proposed Metriq User Guidelines. @WrathfulSpatula @vprusso my suggestion is to add them to to website sooner rather than later and eventually iterate on the content as we improve it.
One place I suggest adding them is in the About page or as a new Guidelines or Contributing page under the About tab in the top menu. Later on we can also include them in the wiki, but since the About page is one of the pages that a visitor first hits, they can be very helpful there.

Thank you, Nathan! For the moment, I don't seem any harm in duplicating the "About" tab information in its original home and also in the wiki, and it's probably slightly lower click depth or demand on user attention to have this information accessible in the "About" tab.
@vprusso, this might be a good issue for you to grab, but I can do this tomorrow, if I see you haven't assigned yourself.

Closing this as this task was completed in https://github.com/unitaryfund/metriq-app/pull/525


duplicate query when use filter()

Summary of problem or feature request
I use datatables with filter() method on the controller side. And when I enable this filter() method, it duplicates the first query sent to database, but if I disable that filter() feature, the query below is being sent once :
select count(*) as aggregate from (select '1' as `row_count` from `purchase_offers` where `purchase_offers`.`deleted_at` is null and `purchase_offers`.`deleted_at` is null) count_row_table;

Screenshot from duplicated query  :

Code snippet of problem
<?php
            $offers = PurchaseOffer::with('purchase');

            $now = new Carbon;

            return \Datatables::of($offers)
                ->filter(function ($query) use ($request) {

                    // filter: search in item name
                    if ($request->has('search.value')) {
                        $query->where('item_name', 'like', '%'.$request->input('search.value').'%');
                        $query->orWhere('bidder_name', 'like', '%'.$request->input('search.value').'%');
                    }

                })
                ->addColumn('id', function ($offer) {

                    return $offer->id;
                })
                ->addColumn('status', function ($offer) {

                    return $offer->colored_field('status', true);
                })
                ->rawColumns(['status'])
                ->make(true);

System details

Ubuntu
PHP 7.0
Laravel 5.4
Laravel-Datatables 7.3.0

It is the expected behavior. First count is for the totalRecords while the 2nd count is for filteredRecords. Thanks!

it happened the same as my case, thanks for the explanation


Fix warnings

Remaining warnings:

GenerateLinuxMain, should get fixed by https://github.com/apple/swift-package-manager/pull/6490
Linker warning for swiftpm-xctest-helper since XCTest on macOS has a 13.0 deployment target. Nothing we can really do right now, but we should switch our deployment target to 13.0 as soon as we can.
ObservabilityScope.makeDiagnosticsHandler() which is needed for compatibility with swift-driver

@swift-ci please smoke test

Related: I think we should do cleanups like https://github.com/apple/swift-tools-support-core/pull/413 in reverse order in the future. First get the known clients in the toolchain (or at a minimum any of SwiftPM's dependencies) off the API we'd like to deprecate and then deprecate it. If we do it in the normal order, we end up with tons of warnings in the meantime, e.g. right now there are a total of 188 warnings when building SwiftPM which are related to this.

right now there are a total of 188 warnings when building SwiftPM which are related to this.

These are already fixed in the main branch of SwiftPM, so maybe you're on an older commit? I agree about the order though, my bad merging that TSC PR first.


Player bodies are commonly sunken in floor or don't track at all

Disabled player bodies for now. Can't figure out what's wrong

too many issues with body tracking. floor level may not be correct when launching the app + body tracking only supports a flat floor level with no height variation. disabling for now.


Convert import and cleanup tasks to their own classes; separate behavior from entry and catalog

We have a Task object defined in astrocats/catalog/task.py which represents a to-do-task.  These to-do-tasks include a function name (and the submodule they're located in) which should be executed to complete the given task.  Instead, the Task object should be expanded to include the function itself.  Likely, this should be something like:
class Task:
    def __init__(self, ...):
        # setup all of the variables currently in the `Task` objects

    def load(self, ...):
        # The actual function to complete the task

A list of Task objects will be created, and each will just have a few parameters (like they do now).  If a Task is active (i.e. Task.active == True) then Task.load() will be called in the import script.
Benefits:

Make it easy to subclass the general-catalog tasks as needed by individual catalogs.
Remove the need for a tasks.json input file.  Instead all of the tasks can live in the tasks directory, which will be searched.  The default settings will be stored in the class definitions.

Continuing on the previous train of thought, Tasks (and really the whole import/processing) process might be better as its own class, instead of mixed in with the Catalog base class, to clean things up and keep them better organized.  The import class would always be given the catalog, of course, and thus access to any required attributes/functions.  Likely, the same should happen with cleanup and sanitization: instead of just being a task used during import, this might be better as its own class, which one method of triggering its use, is via one of the import tasks.  Cleaning could also be merged with exporting/saving.
For debugging and data improvements, it would really help if both directions (import and cleaning/export) had a particular function that was run on each event, in addition to each task.  That way it would be easier to target particular events.  e.g.
Preserve a Task as simply a record of the task to be done, i.e. a simple wrapper for some json-data (including module, activity, etc).  For each task, subclass a new Importer class.
class Importer:
    def __init__(self, catalog, ...):
        # setup all of the variables currently in the `Task` objects

    def import_task(self, ...):
        # Load files, source information, etc; setup progress bar
        # ...
        for entry in entry_list:
            self.import_entry(entry, ...)

    def import_entry(self, ...):
        # Load/parse each entry, add to catalog
        # ...

Similar structure could be used for cleaning/exporting with an def clean_task() function and separate def clean_entry() function.


Plugin doesn't work : "Errno::EBADF: Bad file descriptor - Bad file descriptor"

I tried with Logstash version 2.1 (With an official Docker Container from here : https://hub.docker.com/_/logstash/)
And I installed this "input-websocket" plugin :
/opt/logstash/bin/plugin install --version 2.0.2 logstash-input-websocket

With this following Logstash's setting :
input {
  websocket {
    url => "ws://<IP_ADDRESS>:3232"
  }
}

output {
  stdout {
    codec => rubydebug
  }
  elasticsearch {
    hosts => ["elasticsearch:9200"]
  }

When I run Logstash, I obtained this error message  :
websocket input client threw exception, restarting {:exception=>#<Errno::EBADF: Bad file descriptor - Bad file descriptor>, :level=>:warn}

I already tried with Logstash v1.5 and "input-websocket" v0.1.X, and I still have the same problem. What's wrong with this plugin ?
Note : Default configuration (from https://www.elastic.co/guide/en/logstash/2.1/plugins-inputs-websocket.html) doesn't work, ie :
input {
  websocket {
  }
}

=> Error message : "Addressable::URI::InvalidURIError: Hostname not supplied: '<IP_ADDRESS>'"
Could you help me please ?
Please find my entire Logstash's settings here : https://github.com/pilebones/elk-stack-docker/tree/logstash-with-input-websocket-plugin

I'm sorry but I have to ask—are you 100% sure you have a websocket server responding on port 3232? I just tested the plugin (2.0.2 with Logstash 2.1) and it works fine against https://github.com/dpallot/simple-websocket-server but if I shut down the server I get exactly the same error message that you get. Also, what kind of websocket server is it?
I've extracted your comment about the default configuration into #8.

I've realized that an upstream library can't cope with path-less URLs (a bug tracked in https://github.com/jordansissel/ruby-ftw/issues/29). Could you please try adding a trailing slash to your URL, i.e. use ws://<IP_ADDRESS>:3232/ instead of ws://<IP_ADDRESS>:3232?

Thanks for your feedbacks.
So, I wished to have a Logstash server wich listen on port 3232 with websocket to send my logs inside from my application. I don't have any other server which listenning on this port. This is why I set up :
input {
  websocket {
    url => "ws://<IP_ADDRESS>:3232"
  }
}

I didn't want a logstash-input-websocket as client. Maybe the server mode can answer my need, but I use tcp-input instead of websocket-input. I reckon I didn't understand the vocation of this plugin, sorry.
You could close this issue, thank you.

So, I wished to have a Logstash server wich listen on port 3232 with websocket to send my logs inside from my application.

Yeah, you'd need server mode for that but it isn't supported yet (see #2).


kubewatch fails on Ubuntu Server's microk8s

After running "microk8s.kubectl apply" for this Pod definition:
apiVersion: v1
kind: Pod
metadata:
  name: kubewatch
  namespace: default
spec:
  containers:
  - name: kubewatch
    image: bitnami/kubewatch
    imagePullPolicy: Always
    volumeMounts:
    - name: config-volume
      mountPath: /opt/bitnami/kubewatch/.kubewatch.yaml
      subPath: .kubewatch.yaml
  - name: proxy
    image: bitnami/kubectl
    args:
      - proxy
      - "-p"
      - "8080"
    imagePullPolicy: Always
  restartPolicy: Always
  volumes:
  - name: config-volume
    configMap:
      name: kubewatch

with configmap:
apiVersion: v1
kind: ConfigMap
metadata:
  name: kubewatch
data:
  .kubewatch.yaml: |
    namespace: ""
    handler:
      slack:
        token: "********"
        channel: "#kubernetes"
    resource:
      deployment: false
      replicationcontroller: false
      replicaset: false
      daemonset: false
      services: true
      pod: true
      secret: false
      configmap: false

it's up and running, but logging errors that seem to be related to accessing the local API:
ERROR: logging before flag.Parse: E0314 17:19:36.252188       1 reflector.go:205] github.com/bitnami-labs/kubewatch/pkg/controller/controller.go:377: Failed to list *v1.Pod: v1.PodList: Items: []v1.Pod: v1.Pod: ObjectMeta: v1.ObjectMeta: readObjectFieldAsBytes: expect : after object field, but found u, error found in #10 byte of ...|:{},"k:{"uid":"94|..., bigger context ...|"f:version":{}},"f:ownerReferences":{".":{},"k:{"uid":"94dce547-793e-44cd-b7e3-b35fd3019f86"}":{|...

I found that downgrading to the "stable" version from 1.18/beta solved the issue.


{Container} Lock azure-mgmt-containerinstance to version 10.1.0b1

Related command

Description

There's breaking change in version 10.1.0b2. So lock the version to 10.1.0.b1.
Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Container

It's a best practice that we pin a specific preview/beta version of dependencies as there is no promise to have backward compatibility from preview/beta version.

Did a quick Git Blame on https://github.com/Azure/azure-cli/blob/3d1f215455dd8e3f2ae33d7720d6c79ecc5ee32e/src/azure-cli/setup.py#L79
it was introduced by #25491.


feat: allow override of element

Also don’t throw on error

I'm curious. What this feature allows concretely? May you add some documentation on this PR? :thinking:

This PR allow anyone to override default components.
For example in my case i want labels to be my nativescript-htmllabel, buttons to be my nativescript-material-buttons...
Right now if your call registerElement and if there is already a element registered for label for example, then it will throw.
This PR make it not throw and add on optional override option. Look at the commit it shows the typings associated

@farfromrefug Looks cool. Is there any workaround to this limitation waiting the merge?


CookieStickySessions is not working with Kubernetes service discovery

Steps to Reproduce the Problem
I am using Kubernetes service discovery to discover the pods and  CookieStickySessions load balancer.
CookieStickySessions  is working fine if we are adding pod ip's in DownstreamHostAndPorts but when we are using Kubernetes service discovery the traffic is not been send to the desired pods. pods are selected randomly.
Due to some business requirement we cant use redish cache or other alternatives.
Specifications

Version:13.5.2
Platform: dot net core 2.2
Subsystem:

I think it's related to this issue #1126

fixed by #1134


Update obo-configure-hq.md

Adding missing steps and changing a title for more clarity. Might need TOC changes since title have been changed

:x: Organization membership check failed
Members of the MicrosoftDocs organization should use the private repo. Please move your changes to https://github.com/MicrosoftDocs/Dynamics-365-Operations, and close this pull request.


Check actions who needs to be re-build

As part of the continuous integration workflows I would like to know
which actions will get build as soon as the pull request will be merged.

ninja merge, because I need to move forward


Remove rustfmt

rustup component add rustfmt{-preview} sadly no longer works on Nightly, and we don't use cargo fmt --all -- --check on Travis. Let's remove it entirely for now; we can always add it back later.

Codecov Report

Merging #16 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #16   +/-   ##
=======================================
  Coverage   94.54%   94.54%
=======================================
  Files           5        5
  Lines        1265     1265
=======================================
  Hits         1196     1196
  Misses         69       69

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 802982d...6b6f00f. Read the comment docs.


Issue #141, catch security exception when the Internet permission is denied

Uses the existing AlertDialog to prompt the user with the download failure. In the case of the SecurityException getting caught, this dialog is displayed irrespective of the 'cancel' parameter. This ensure that the app starts OK and the user is prompted about the lack of Internet Permission for the app.
Missing: translations to supported languages for "Internet Permission denied".

Thanks! Afraid I've not seen that behaviour on my devices, but unfortunately everything around DownloadManager seems to be different between devices...
The added import atomic seems unnecessary and unused?
Do you mind updating your pull request? Otherwise I can merge it and remove it afterwards as well.

I'm new to github and have only limited experience with git itself. I've pushed the change to remove the import, but wasn't sure whether to squash the commits or anything else, so I've left it as is. If there's anything more that I can do, just let me know.
Thanks for keeping the project alive.

That works, thanks, merged.
Just FYI ideal workflow would involve a squash, specifically

make sure you have a branch just for the pull request
squash/"fixup" the commits that are just fixes
then force-push to update the patchset (github handles that fine and will update your pull request correctly)
However it's important to have a branch that is only for the pull request because force pushing has 2 consequences
if anyone has that branch checked out, a force-push will make them have a really bad day
force-push is one of the few operations that might end with you actually losing data in git
both mean it should only be done to throw-away branches.

Thanks for the workflow info @rdoeffinger. Saved for future reference.


Update JS API Widget

This PR:

Converts the JS API Widget sample to be a React functional style component (compared to Class based)
Uses useEffect to make sure the widget properly shows up when when copy/pasted (in the Builder) or when used in a Widget Controller.

Looks good!


Performance issues in the Components page (IE11)

Visit http://www.getmdl.io/components/index.html page on IE11, the main content panel is blank, and browser tab always shows the 'loading' indicator. Content only shows up after several minutes.

In network tab of dev tools, there are many pending HEAD requests to /assets/clippy.swf.

Although it works ok on Chrome, those '*.swf' really makes me feel that I am back to ten years ago...

We've been heavily testing in IE10, 11 and Edge and weren't able to reproduce this earlier, but I'll take another look in case a regression was introduced. Are you on Windows 8.1 or 10?.
Flash: we hate having to use it, but copy/paste is unfortunately not possible cross-browser today without using it.

Thanks @addyosmani I am on Windows 8.1. BTW, I am behind a proxy as the site is not accessible from mainland China...

Here is the details of the pending request I mentioned, in case it is helpful.

I'm going to start profiling this now.

Profiling the index of the Components page in IE11:
We're spending ~2s in DOM load atm:

~1.69s of which comes from time spent initialising ripples:

The upgrade flow here (automagical adding of ripples based on class) appears to be costing the most time here.
We spend the rest of this time initializing the Codepen buttons:

Most of which is a series of document.createElement followed by appendChild. As noted before we launched, I think most of the work for CodePen buttons should be done at build-time via the templating engine rather than doing this work in JS.

Performance is slightly better on pages like Cards, where the bottleneck seems to be our use of scrollTop. Below it's causing ~73ms of Layout work.

Spinners are averaging out at about 50fps. There's a lot of constant style recalc and paint in there otherwise:

Running into a similar issue with scrollTop costs when switching to our Menu page:

@addyosmani I think that the key issue here is that, those HEAD requests to clippy.swf are somehow blocked and never success on IE 11, and the page only shows up after request timeout.

@steven-qi I've hi-jacked this issue to document the other perf issues with this page in IE too. Sorry about that :) We should be fixing the clippy.swf issues (if they're a bottleneck) as well as the others listed. I'm going to try digging specifically into clippy issues in just a sec.

The three top items I think we need to fix here are:

Cost of switching to a component sub-page. We should work around reading scrollTop to reduce relayout costs.
Cost of using JS to inject the CodePen buttons vs doing this at build time through templating
Did deeper into the slowness caused by the ripple implementation.

Moving onto clippy.swf specifically next.

I've reproduced the issue you were initially seeing with clippy:

For some weird reason (or I'm being dumb), even after the first fetch of clippy.swf, each subsequent request appears to be taking a varied amount of time. I would have expected the first request to cache the asset and then us just deal with read-from-cache times after that.
Looking at Headers from your screenshots and my own, we're pragma: no-cache here. @marcacohen any thoughts on whether our GCS config needs some tweaking to enable caching for Flash assets?

@addyosmani pragma:no-cache looks like it's appearing in the request, not the response (i.e. client is requesting uncached copy). I wonder if that's because you're doing a page re-load. Can you retry in a new window?

Ignore, I can try this myself. I'll run with it.

If creating elements on the page for each  blocks is taking so long I'm surprised that the syntax highlighting is not also taking a while because it's creating a lot more elements (although we have less control over it so not mu ch we could do there to improve things)

If creating elements on the page for each <pre> blocks is taking so long I'm surprised that the syntax highlighting is not also taking a while because it's creating a lot more elements (although we have less control over it so not mu ch we could do there to improve things)

@marcacohen I tried doing this:
curl -X HEAD www.getmdl.io/assets/clippy.swf

And this request it hangs for a long time and then you eventually get a timeout.
It seems that GCS hangs on HEAD requests.

Can confirm, HEAD requests don’t seem to be handled. curl has been hanging for a few minutes now.

Yes this might also explain why the cache is not used: because the browser never received a valid response for the HEAD request so it re-tries every time.
@marcacohen is investigating, it seems we have to manually enable HEAD requests on the Cloud Storage bucket.

It's even stranger than this... The following works:
curl --head www.getmdl.io/assets/clippy.swf

the only difference between curl --head and curl -X HEAD is that one uses IPv6 and the other IPv4. IPv6 works.
I'm betting the 2 types of requests end up in differently configured Cloud Storage servers. Seems like this is a GCS bug, @marcacohen will try to enable HEAD requests manually though to see if this changes something. Otherwise => bug report to the GCS team...

FYI there seem to be no bugs associated with HEAD requests, we simply didn't read the curl docs:

This option only changes the actual word used in the HTTP request, it does not alter the way curl behaves. So for example if you want to make a proper HEAD request, using  -X HEAD will not suffice. You need to use the -I, --head option.

This means that basically HEAD requests to clippy.swf work fine since curl --head www.getmdl.io/assets/clippy.swf works... Not sure what's up with @steven-qi's setup then. We definitely need to try to replicate with the same browser/OS combination...

@steven-qi We're digging through logs. Can you tell me roughly when (date/time of day), you saw the hanging HEAD requests? That would help focus our examination. Thanks!

@marcacohen I tried this many times yesterday and today. For me, this is 100% reproducible. I also notice that on Chrome, it is a GET instead of HEAD. And if I copy the url of clippy.swf to browser and navigate to it directly, the swf file will be loaded instantly with no delay.

BTW, I actually tried the following, and it works fine...
 curl -x http://<--proxy-->:80 --head http://www.getmdl.io/assets/clippy.swf

And -X HEAD shows following error after a long pending:
$ curl -x http://<proxy>:80 -X HEAD http://www.getmdl.io/assets/clippy.swf

curl: (18) transfer closed with 5380 bytes remaining to read

And if I visit the site with https, it works, and the swf file is fetched over SPDY/3.

@steven-qi The fact that --head works for you and -X HEAD does not is entirely consistent with what we're seeing. As Nicolas noted upthread...
This option only changes the actual word used in the HTTP request, it does not alter the way curl behaves. So for example if you want to make a proper HEAD request, using -X HEAD will not suffice. You need to use the -I, --head option.
Given you're traversing proxies (some of which I presume are outside of your control) I have a feeling there is something subtle going on here which may not be obvious from the Chrome Devtools network view. Perhaps a packet trace would help. Do you have access to Wireshark, by any chance?

I don't think that I can run a packet trace... but I found the following facts:

by chaining up my fiddler (a local proxy) to the out-proxy, I found that the out-proxy actually respond to the HEAD request instantly, but IE still says that is is 'pending'...
after a long time, IE shows response headers from proxy in devtools correctly (which is 200 OK), but in response body tab, it shows 408 timeout:

HTTP/1.1 408 Request Timed Out
Date: Thu, 09 Jul 2015 09:35:24 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Cache-Control: no-cache, must-revalidate
Timestamp: 17:35:24.714

The client failed to send a complete request before the timeout period elapsed.

It seems that IE (or the flash plugin?) is expecting a body for HEAD request just like curl -X HEAD. Wired enough...

By letting fiddler response to clippy.swf request from a local file, IE works OK (although copy still don't work).

The only difference I call tell is that, fiddler respond with HTTP/1.1 200, while the out-proxy (or GCS) returns HTTP/1.0 200. Not sure that if any chance that HEAD might only be defined in HTTP 1.1, which cause IE to expect a response body when seeing HTTP/1.0 200 for HEAD.

On my side I get a response with HTTP/1.1 200 from GCS:
nivco> curl -v -X HEAD www.getmdl.io/assets/clippy.swf

* Hostname was NOT found in DNS cache
*   Trying <IP_ADDRESS>...
* Connected to www.getmdl.io (<IP_ADDRESS>) port 80 (#0)
> HEAD /assets/clippy.swf HTTP/1.1
> User-Agent: curl/7.37.1
> Host: www.getmdl.io
> Accept: */*
>
< HTTP/1.1 200 OK
< X-GUploader-UploadID: AEnB2Uqg4QNs6FQh9AzTPJ8GK-Cj5hwzNlTs02oPOT9rP4-uKcYPm5UeoD6guzQ8oPR4RocQyNOtAQ2A7SYJ8Uc6MWI44cK6YQ
< Date: Thu, 09 Jul 2015 10:33:21 GMT
< Expires: Thu, 09 Jul 2015 10:34:21 GMT
< Last-Modified: Tue, 07 Jul 2015 17:52:46 GMT
< ETag: "b0125fa4276f0734dc6f9345292a9176"
< x-goog-generation:<PHONE_NUMBER>492000
< x-goog-metageneration: 2
< x-goog-stored-content-encoding: identity
< x-goog-stored-content-length: 5380
< Content-Type: application/x-shockwave-flash
< x-goog-hash: crc32c=99+AVQ==
< x-goog-hash: md5=sBJfpCdvBzTcb5NFKSqRdg==
< x-goog-storage-class: STANDARD
< Accept-Ranges: bytes
< Vary: Accept-Encoding
< Content-Length: 5380
* Server UploadServer is not blacklisted
< Server: UploadServer
< Cache-Control: public,max-age=60
< Age: 7
< Alternate-Protocol: 80:quic,p=0

If you are seeing HTTP/1.0 200 maybe the proxy is changing that. Not sure at this point if that's what would cause the issue thought...

Although if you have the chance it might be worth trying all this on your side using a VPN instead of a proxy to see if the proxy may be at fault...

Well, I created a web server myself, and reproduced the same behavior.
Looks like that it is not caused by http/1.0, but the Connection: keep-alive header. As long as the header is there, I can reproduce the issue with either HTTP/1.1 or 1.0.
From your post, I guess that the header is added by the out-proxy somehow...

@nicolasgarnier I guess it will work with VPN, but I don't have a chance to try it myself. I will try to look into the out-proxy configuration (maybe a bug of squid/2.7).

Verbose output of curl.
$ curl -x http://<proxy>:80 -v --head www.getmdl.io/assets/clippy.swf
*   Trying <proxy>...
* Connected to <proxy> (<proxy>) port 80 (#0)
> HEAD HTTP://www.getmdl.io/assets/clippy.swf HTTP/1.1
> User-Agent: curl/7.41.0
> Host: www.getmdl.io
> Accept: */*
> Proxy-Connection: Keep-Alive
>
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
HTTP/1.0 200 OK
< X-GUploader-UploadID: AEnB2UqylxLAXyPy3LbTM502OscZHPef0Zfldem8obxXGkcE88NVByksIaoURx7AqYZS9P989e_Ir5prd-6oWCvzhZsVnw5-Hw
X-GUploader-UploadID: AEnB2UqylxLAXyPy3LbTM502OscZHPef0Zfldem8obxXGkcE88NVByksIaoURx7AqYZS9P989e_Ir5prd-6oWCvzhZsVnw5-Hw
< Date: Thu, 09 Jul 2015 11:23:31 GMT
Date: Thu, 09 Jul 2015 11:23:31 GMT
< Cache-Control: public,max-age=60
Cache-Control: public,max-age=60
< Expires: Thu, 09 Jul 2015 11:24:31 GMT
Expires: Thu, 09 Jul 2015 11:24:31 GMT
< Last-Modified: Tue, 07 Jul 2015 17:52:46 GMT
Last-Modified: Tue, 07 Jul 2015 17:52:46 GMT
< ETag: "b0125fa4276f0734dc6f9345292a9176"
ETag: "b0125fa4276f0734dc6f9345292a9176"
< x-goog-generation:<PHONE_NUMBER>492000
x-goog-generation:<PHONE_NUMBER>492000
< x-goog-metageneration: 2
x-goog-metageneration: 2
< x-goog-stored-content-encoding: identity
x-goog-stored-content-encoding: identity
< x-goog-stored-content-length: 5380
x-goog-stored-content-length: 5380
< Content-Type: application/x-shockwave-flash
Content-Type: application/x-shockwave-flash
< x-goog-hash: crc32c=99+AVQ==
x-goog-hash: crc32c=99+AVQ==
< x-goog-hash: md5=sBJfpCdvBzTcb5NFKSqRdg==
x-goog-hash: md5=sBJfpCdvBzTcb5NFKSqRdg==
< x-goog-storage-class: STANDARD
x-goog-storage-class: STANDARD
< Accept-Ranges: bytes
Accept-Ranges: bytes
< Vary: Accept-Encoding
Vary: Accept-Encoding
< Content-Length: 5380
Content-Length: 5380
< Server: UploadServer
Server: UploadServer
< Alternate-Protocol: 80:quic,p=0
Alternate-Protocol: 80:quic,p=0
< X-Cache: MISS from <cache-server>
X-Cache: MISS from <cache-server>
< X-Cache-Lookup: MISS from <cache-server>:80
X-Cache-Lookup: MISS from <cache-server>:80
< Via: 1.0 <cache-server>:80 (squid/2.7.STABLE8)
Via: 1.0 <cache-server>:80 (squid/2.7.STABLE8)
* HTTP/1.0 connection set to keep alive!
< Connection: keep-alive
Connection: keep-alive
* HTTP/1.0 proxy connection set to keep alive!
< Proxy-Connection: keep-alive
Proxy-Connection: keep-alive

<
* Connection #0 to host <proxy> left intact

Hey @steven-qi since this doesn't seems to be related to an issue specific to MDL lets close this bug. you can still update this thread with your findings as it may help someone and/or reopen if this appears to be an MDL issue. Also we've tested the copy paste feature after the Fix for Firefox and it seems this worked well. Furthermore we've made some performance improvements on the components page such as generating the codepen buttons at build time and removing lots of the ripples on the page. There are still more improvements we can do but we'll open a specific issue for this as it is not IE specific. Thanks for looking into this and  please let us know how this goes!

Thanks @nicolasgarnier :+1:


Add uncaught exception handler to make sure application doesn't randomly exit

To test:
Example for when the crash happens:

Start backend without starting MySQL or having an invalid MySQL configuration
Press the login button
The backend crashes

Reattempting to do this with the current branch doesn't crash the application.

I'm not sure if handling errors like that is the best practice. From what I tried to research, you shouldn't try to continue running the program in case of uncaughtException
https://nodejs.org/api/process.html#process_warning_using_uncaughtexception_correctly

I mean, we could
The problem is that we initialize the MySQL connection in the main file and not in something like an Express middleware (https://expressjs.com/en/guide/using-middleware.html)
Thus the exception will always be thrown "globally" (at least I think that's how Node.js works??)
For now I just want the backend not to crash and this is really the best option to do that right now :(

I have a way to stop the app from crashing when you try to log in without having the database running and that is wrapping querySelectUserByEmail(email) in auth.ts in a try/catch.
Don't know what the other examples of the app crashing would be 🤔

We could wrap that one in a try-catch but that would warrent a separate pull request. I think for now it's best to merge this so we don't end up in the situation were the deployed application crashes, even if we fix the login page it might happen in a random scenario and then the entire application becomes unuseable


Update UI to support multiple providers

Update UI to support multiple providers using aggregated data.
Order of cards:
#240 (THIS ticket, UI only)
#215 (Data aggregation for multiple logins)
#239 (Implement aggregation of patient data in the patient app - assigned to Sean, is this a duplicate of 215? Is Sean working on this? Should it be listed in this ticket?)
What is the MVP we want for flow? - successfully retrieve data from two providers and display it.
Baseline:

Launcher
select a provider in the provider component so that there are multiple logins
<Data aggregation for multiple logins#215>
aggregate the data within the app
process each provider data set using CQL and then display the aggregated CQL results

*Shouldn't this non-MVP be a separate, future ticket?
Next steps

Launcher
Prompt to Re-login to other providers if previously visited (based on what is in local storage)
If no previous provider, no prompt is required at this time
If patient chooses provider list from link from home page, they can do multiple logins.

Start with 4 and then reuse that component in a prompt.
If authorizations are still valid, it should read all data from all active tokens. (issue with time loading)
For MVP, when authorizations are valid, load the most recent provider and allow patient to choose more.
*next steps, can show what is already authorized and reload would be quicker

Completed in the sense that the UI is capable now. Update in dev allows selection of one or more providers. At this time I have disabled more than one until aggregation is implemented. But, the mulit option can loop through all selected, but will only display/overwrite with the final one.
*Should probably break out the 2nd half (non-MVP) and prioritize into another ticket


Surveys: Implement latitude and longitude parameters for survey stop responses

Fixes: #174 and OneBusAway/onebusaway-android/issues/1259
Changes Made

Updated controllers to handle the new latitude and longitude fields.
Updated CSV and HTML view to display latitude and longitude data.

Screenshot

The code looks good! Can you add a few specs that exercise the different scenarios here?

[x]  New survey response—stop lat/long present
[x]  New survey response—stop lat/long absent
[x]  export CSV stop lat/long present
[x]  export CSV stop lat/long absent
[x]  survey_responses#index - mixture of absent and present (for this one — just verify that it renders at all is probably sufficient)

Done.


Implementing UART Streams

Hi,
is it reasonable to have a stream interface for the UARTs ? That would ease the use of the UARTs and serialization. On the other hand streams are only available with the full Ravenscar RTS and it looks like SFP doesn't support streams.
Are there any thoughts about this?

Streams would be a useful interface.
There's no requirement that all facilities work with all the runtimes, although so far, at this lowest level, we have ensured they do. At higher levels more advanced features are reasonable, such as tagged types.

There is now a streams-oriented serial port abstraction in the examples/serial_ports project. (There are two other serial port abstractions as well.)