Adding a new parameter in the class AugmentedDataloader to send transformation to the device.

As suggested by @martinwimpff, this PR tries to close issue https://github.com/braindecode/braindecode/issues/404.

I agree with you @robintibor! I incorporated this suggestion into the code and improved the documentation a bit. See if it's good for the merge.

@bruAristimunha from your experience how much speed up do you observe with this? can you give us some details on practical impact? 🙏

@bruAristimunha from your experience how much speed up do you observe with this? can you give us some details on practical impact? 🙏

One additional thing that I observed for the GaussianNoise augmentation is that there is no speed up on the GPU if we keep using the numpy rng (from sklearns check_random_state). This rng always generates the random numbers on the cpu and then transfers them to the gpu.
rng = check_random_state(random_state)
if isinstance(std, torch.Tensor):
    std = std.to(X.device)
noise = torch.from_numpy(
      rng.normal(
          loc=np.zeros(X.shape),
          scale=1
      ),
  ).float().to(X.device) * std
transformed_X = X + noise
return transformed_X, y

Using something like
noise = torch.normal(mean=torch.zeros_like(X, device=X.device), std=torch.as_tensor(std, device=X.device), generator=rng)

instead would result in a substantial speed up. The rng would have to be a torch.Generator.
So it might be good to also change the rng class to benefit from this change in augmentations with large random tensors.

@bruAristimunha from your experience how much speed up do you observe with this? can you give us some details on practical impact? 🙏

One additional thing that I observed for the GaussianNoise augmentation is that there is no speed up on the GPU if we keep using the numpy rng (from sklearns check_random_state). This rng always generates the random numbers on the cpu and then transfers them to the gpu.
rng = check_random_state(random_state)
if isinstance(std, torch.Tensor):
    std = std.to(X.device)
noise = torch.from_numpy(
      rng.normal(
          loc=np.zeros(X.shape),
          scale=1
      ),
  ).float().to(X.device) * std
transformed_X = X + noise
return transformed_X, y

Using something like
noise = torch.normal(mean=torch.zeros_like(X, device=X.device), std=torch.as_tensor(std, device=X.device), generator=rng)

instead would result in a substantial speed up. The rng would have to be a torch.Generator. So it might be good to also change the rng class to benefit from this change in augmentations with large random tensors.

Good point @martinwimpff!
But we are potentially touching a point involving way more modifications to the code, because this remark involves all augmentations :)
Indeed, the torch.from_numpy is there because, when these augmentations were created, torch did not have the torch.Generator class yet and we wanted to be able to control the RNG object passed to the augmentation. But of course, pytorch has evolved and we should take advantage of it.
However, it is still probably worth seeing whether there are indeed any speed ups before doing the change.

@bruAristimunha from your experience how much speed up do you observe with this? can you give us some details on practical impact? 🙏

One additional thing that I observed for the GaussianNoise augmentation is that there is no speed up on the GPU if we keep using the numpy rng (from sklearns check_random_state). This rng always generates the random numbers on the cpu and then transfers them to the gpu.
rng = check_random_state(random_state)
if isinstance(std, torch.Tensor):
    std = std.to(X.device)
noise = torch.from_numpy(
      rng.normal(
          loc=np.zeros(X.shape),
          scale=1
      ),
  ).float().to(X.device) * std
transformed_X = X + noise
return transformed_X, y

Using something like
noise = torch.normal(mean=torch.zeros_like(X, device=X.device), std=torch.as_tensor(std, device=X.device), generator=rng)

instead would result in a substantial speed up. The rng would have to be a torch.Generator. So it might be good to also change the rng class to benefit from this change in augmentations with large random tensors.

Good point @martinwimpff!
But we are potentially touching a point involving way more modifications to the code, because this remark involves all augmentations :) Indeed, the torch.from_numpy is there because, when these augmentations were created, torch did not have the torch.Generator class yet and we wanted to be able to control the RNG object passed to the augmentation. But of course, pytorch has evolved and we should take advantage of it.
However, it is still probably worth seeing whether there are indeed any speed ups before doing the change.

Hello @agramfort, @martinwimpff and @cedricrommel,
I conducted a little analysis for each augmentation method listed below, performing a runtime analysis with five repetitions, passing either the GPU or the CPU as the device to the AugmentedDataLoader class.

BandstopFilter,
ChannelsDropout,
ChannelsShuffle,
ChannelsSymmetry,
FrequencyShift,
FTSurrogate,
GaussianNoise,
SensorsXRotation,
SignFlip,
SmoothTimeMask,
TimeReverse

The code to do the analysis is in the end. I studied using the entire BCI competition 4a dataset to stress memory consumption and see how the model behaves in a scenario closer to the real one. I ran my research computer with i7-9700K CPU @ 3.60GHz and GPU: GeForce RTX 2080 Ti 11Gb. The expected is increase the the time when the augmentation is sent to the GPU.
The improvement ratio can be seen below:

It seems that for some raises, there is a good gain in general, except for Sensor*Rotation. I think this is related to Martin's discussion with Cedric. Some methods need to be GPU optimized, possibly in another PR.
Code:
import time
from functools import partial
from itertools import product

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
import mne
import torch

from tqdm import tqdm
from memory_profiler import memory_usage
from skorch.callbacks import LRScheduler
from skorch.helper import predefined_split

from braindecode import EEGClassifier
from braindecode.augmentation import AugmentedDataLoader, BandstopFilter, ChannelsDropout, ChannelsShuffle, \
    ChannelsSymmetry, FrequencyShift, FTSurrogate, GaussianNoise, SensorsXRotation, SignFlip, SmoothTimeMask, \
    TimeReverse
from braindecode.datasets import MOABBDataset
from braindecode.models import ShallowFBCSPNet
from braindecode.preprocessing import create_windows_from_events, exponential_moving_standardize, preprocess, \
    Preprocessor, scale
from braindecode.util import set_random_seeds

mne.set_config("MNE_LOGGING_LEVEL", "ERROR")

subject_id = None
dataset = MOABBDataset(dataset_name="BNCI2014001", subject_ids=subject_id)

low_cut_hz = 4.  # low cut frequency for filtering
high_cut_hz = 38.  # high cut frequency for filtering
# Parameters for exponential moving standardization
factor_new = 1e-3
init_block_size = 1000

preprocessors = [
    Preprocessor('pick_types', eeg=True, meg=False, stim=False),  # Keep EEG sensors
    Preprocessor(scale, factor=1e6, apply_on_array=True),  # Convert from V to uV
    Preprocessor('filter', l_freq=low_cut_hz, h_freq=high_cut_hz, verbose=False),  # Bandpass filter
    Preprocessor(exponential_moving_standardize,  # Exponential moving standardization
                 factor_new=factor_new, init_block_size=init_block_size)
]

dataset = preprocess(dataset, preprocessors)

trial_start_offset_seconds = -0.5
# Extract sampling frequency, check that they are same in all datasets
sfreq = dataset.datasets[0].raw.info['sfreq']
assert all([ds.raw.info['sfreq'] == sfreq for ds in dataset.datasets])
# Calculate the trial start offset in samples.
trial_start_offset_samples = int(trial_start_offset_seconds * freq)

# Create windows using braindecode function for this. It needs parameters to
# define how trials should be used.
windows_dataset = create_windows_from_events(
    dataset,
    trial_start_offset_samples=trial_start_offset_samples,
    trial_stop_offset_samples=0,
    preload=True,
    verbose=False)

splitted = windows_dataset.split('session')
train_set = splitted['session_T']
valid_set = splitted['session_E']

cuda = torch.cuda.is_available()  # check if GPU is available, if True chooses to use it
device = 'Cuda' if Cuda else 'CPU'
if cuda:
    torch.backends.cudnn.benchmark = True

# Set random seed to be able to roughly reproduce results
# Note that with cudnn benchmark set to True, GPU indeterminism
# may still make results substantially different between runs.
# To obtain more consistent results at the cost of increased computation time,
# you can set `cudnn_benchmark=False` in `set_random_seeds`
# or remove `torch.backends.cudnn.benchmark = True`
seed = 20200220
set_random_seeds(seed=seed, cuda=cuda)

n_classes = 4

# Extract number of chans and time steps from dataset
n_channels = train_set[0][0].shape[0]
input_window_samples = train_set[0][0].shape[1]

model = ShallowFBCSPNet(
    n_channels,
    n_classes,
    input_window_samples=input_window_samples,
    final_conv_length='auto',
)

transforms = []
probability = 1
random_state = 0

MONTAGE_10_20 = ['Fz',
                 'FC3',
                 'FC1',
                 'FCz',
                 'FC2',
                 'FC4',
                 'C5',
                 'C3',
                 'C1',
                 'Cz',
                 'C2',
                 'C4',
                 'C6',
                 'CP3',
                 'CP1',
                 'CPz',
                 'CP2',
                 'CP4',
                 'P1',
                 'Pz',
                 'P2',
                 'POz']

transform = TimeReverse(probability=probability, random_state=random_state)
transforms.append(transform)

transform = SignFlip(probability=probability, random_state=random_state)
transforms.append(transform)

transform = FTSurrogate(probability=probability,
                        phase_noise_magnitude=1, random_state=0)
transforms.append(transform)

transform = ChannelsDropout(probability=probability,
                            p_drop=probability, random_state=random_state)
transforms.append(transform)

transform = ChannelsShuffle(probability=probability,
                            p_shuffle=probability, random_state=random_state)
transforms.append(transform)

transform = GaussianNoise(probability=probability, std=0.1, random_state=random_state)
transforms.append(transform)

transform = ChannelsSymmetry(probability=probability,
                             ordered_ch_names=MONTAGE_10_20, random_state=random_state)
transforms.append(transform)

transform = SmoothTimeMask(probability=probability, random_state=random_state)
transforms.append(transform)

transform = BandstopFilter(probability=probability, sfreq=sfreq, random_state=random_state,
                           bandwidth=0.2)
transforms.append(transform)

transform = FrequencyShift(probability=probability, sfreq=sfreq,
                           random_state=random_state, max_delta_freq=2.)
transforms.append(transform)

# transform = SensorsZRotation(probability=probability,
#                             ordered_ch_names=MONTAGE_10_20, random_state=random_state)
# transforms.append(transform)

# transform = SensorsYRotation(probability=probability,
#                             ordered_ch_names=MONTAGE_10_20, random_state=random_state)
# transforms.append(transform)

transform = SensorsXRotation(probability=probability,
                             ordered_ch_names=MONTAGE_10_20, random_state=random_state)
transforms.append(transform)

def train_fit(AugmentedDataLoader, transformation, train_set, valid_set):
    lr = 0.0625 * 0.01
    weight_decay = 0

    batch_size = 64
    n_epochs = 3

    clf = EEGClassifier(
        model,
        iterator_train=AugmentedDataLoader,  # This tells EEGClassifier to use a custom DataLoader
        iterator_train__transforms=transformation,  # This sets the augmentations to use
        criterion=torch.nn.NLLLoss,
        optimizer=torch.optim.AdamW,
        train_split=predefined_split(valid_set),  # using valid_set for validation
        optimizer__lr=lr,
        optimizer__weight_decay=weight_decay,
        batch_size=batch_size,
        callbacks=[
            "accuracy",
            ("lr_scheduler", LRScheduler('CosineAnnealingLR', T_max=n_epochs - 1)),
        ],
        device=device,
    )
    # Model training for a specified number of epochs. `y` is None as it is already
    # supplied in the dataset.
    clf.verbose = False
    clf.fit(train_set, y=None, epochs=n_epochs)
    return clf

AugmentedDataLoader_gpu = partial(AugmentedDataLoader, device='cuda')
AugmentedDataLoader_cpu = partial(AugmentedDataLoader, device='cpu')

n_repets = 5  # Number of repetitions
augmentation_type = [AugmentedDataLoader_gpu, AugmentedDataLoader_cpu]
results = list()
products_list = list(product(range(n_repets), augmentation_type, transforms))

for n_rep, cpu_gpu, trans in tqdm(products_list, total=len(products_list)):
    start = time.time()
    mem = max(memory_usage(proc=(train_fit, [cpu_gpu, trans, train_set, valid_set], {})))
    time_taken = time.time() - start

    results.append({
        'idx_rep': n_rep,
        'max_mem': mem,
        'time': time_taken,
        'transf': str(trans),
        'cpu_or_gpu': str(cpu_gpu)})

data_type = pd.DataFrame(results)
data_type.to_csv("raw_data.csv")

data_type['cpu_or_gpu'] = [type_cpu_gpu[-6:-2].replace("'", "")
                           for type_cpu_gpu in data_type['cpu_or_gpu']]

analyse = data_type.groupby(["transf", "cpu_or_gpu"])['time'].apply(np.mean).unstack()
analyse = analyse.reset_index()
analyse['gpu_improving'] = 100 - ((analyse['cuda'] / analyse['cpu']) * 100)

sns.set_theme(style="white", context="talk")
f, ax = plt.subplots(1, 1, figsize=(15, 10))

sns.barplot(x=analyse.transf, y=analyse.gpu_improving, palette="icefire", ax=ax)
ax.axhline(0, color="k", clip_on=False)
plt.ylabel("Ratio gpu/cpu time.")
plt.xticks(rotation=90)
plt.tight_layout(h_pad=0)
plt.savefig("gpu_improving.png", dpi=300)

It was necessary to test MixUp, as it has a slightly different logic, I could not run with this code.

thx @bruAristimunha
@cedricrommel I let you merge if you're happy

I'm happy :) Thanks @bruAristimunha
Indeed, not only does SensorsRotation not benefit from GPU, it is also the worst transform currently in terms of computation. One day I'll take some time and optimize it haha
LGTM, merging!
Let's leave the rng stuff for another PR as proposed. Not obvious either whether the proposed change is worth in terms of computation.


[Feature Request]: mqtt support

What feature would you like to see added to TallyArbiter?
Would be cool if TA supported mqtt for data listening and control. Keeping up to date on sources, devices, and current tally data.

This definitely should be added. Most of my smart home runs through MQTT.

You use tally arbiter in your house?

Haha no, I was just using it as an example of how widely used and ubiquitous MQTT is in the IOT world. However, I do actually run Home Assistant in my studio to control permanent studio lights attached to smart switches. They communicate wirelessly via Zigbee2MQTT and Mosquitto.
The main reason I'm asking for this feature is to be able to control an On-Air light hooked up to a smart switch outside the studio door. It would be much easier to integrate with an already existing system than try and develop listeners for each and every device type. All ESP8266 and ESP32 chips have MQTT libraries pre-made for this kind of event-based communication.
There is also a great NodeJS library as well, so I don't think this feature would be too difficult to integrate. It would simply publish messages to a broker on topics referring to bus, device, etc.


Better introduction for how to build Docker images

This intro on docker's website really helped us understand how to build a docker image better than the article linked to in the story (https://www.pivotaltracker.com/story/show/143145055). We ended up installing Docker for Mac and using it that way.

Resolved in 2c7a190. Thanks for the suggestion!


Show error message on API request failure

If the API goes down while you're browsing through the Manager, and you browse to the Linodes page, you'll see this:

We should probably show an error message to avoid scaring people, since this makes it look like all their Linodes disappeared.

Thanks! I think this is a bug actually. We've got some beautiful error pages, but they definitely don't appear to be showing up correctly. Will tag and rename so we can handle it appropriately.


Integration preparation

General cleanup
Added method to get {id} from url

Merge, will address later.


Tests not passing

I'm trying to learn how to create an alt-coin with your repo but the tests don't pass. Can you please help me out. Perhaps I'm doing something incorrectly.
Using network 'development'.

Compiling ./contracts/HumanStandardToken.sol...
Compiling ./contracts/HumanStandardTokenFactory.sol...
Compiling ./contracts/StandardToken.sol...
Compiling ./contracts/Token.sol...
Compiling ./contracts/TokenTester.sol...

  Contract: HumanStandardToken
    ✓ creation: should create an initial balance of 10000 for the creator
    ✓ creation: test correct setting of vanity information (110135ms)
    ✓ creation: should succeed in creating over 2^256 - 1 (max) tokens (19030ms)
    ✓ transfers: ether transfer should be reversed. (41641ms)
    1) transfers: should transfer 10000 to accounts[1] with accounts[0] having 10000

    Events emitted during test:
    ---------------------------

    Transfer(_from: <indexed>, _to: <indexed>, _value: 1999445)

    ---------------------------
    2) transfers: should fail when trying to transfer 10001 to accounts[1] with accounts[0] having 10000

    Events emitted during test:
    ---------------------------

    ---------------------------
    3) transfers: should handle zero-transfers normally
    > No events were emitted
    4) approvals: msg.sender should approve 100 to accounts[1]

    Events emitted during test:
    ---------------------------

    ---------------------------
    ✓ approvals: msg.sender should approve 100 to SampleRecipient and then NOTIFY SampleRecipient. It should succeed. (87628ms)
    ✓ approvals: msg.sender should approve 100 to SampleRecipient and then NOTIFY SampleRecipient and throw. (76595ms)
    5) approvals: msg.sender approves accounts[1] of 100 & withdraws 20 once.

    Events emitted during test:
    ---------------------------

    ---------------------------
    6) approvals: msg.sender approves accounts[1] of 100 & withdraws 20 twice.
    > No events were emitted
    7) approvals: msg.sender approves accounts[1] of 100 & withdraws 50 & 60 (2nd tx should fail)

    Events emitted during test:
    ---------------------------

    ---------------------------
    8) approvals: attempt withdrawal from acconut with no allowance (should fail)

    Events emitted during test:
    ---------------------------

    ---------------------------
    9) approvals: allow accounts[1] 100 to withdraw from accounts[0]. Withdraw 60 and then approve 0 & attempt transfer.

    Events emitted during test:
    ---------------------------

    ---------------------------
    10) approvals: approve max (2^256 - 1)
    > No events were emitted
    11) events: should fire Transfer event properly

    Events emitted during test:
    ---------------------------

    ---------------------------
    12) events: should fire Transfer event normally on a zero transfer
    > No events were emitted
    13) events: should fire Approval event properly
    > No events were emitted

  Contract: HumanStandardTokenFactory
    ✓ Verify a Human Standard Token once deployed using both verification functions. (75175ms)

  7 passing (17m)
  13 failing

  1) Contract: HumanStandardToken transfers: should transfer 10000 to accounts[1] with accounts[0] having 10000:
     Error: Error: Invalid number of arguments to Solidity function
      at HumanStandardToken.new.then.then.then.catch (test/humanStandardToken.js:74:31)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  2) Contract: HumanStandardToken transfers: should fail when trying to transfer 10001 to accounts[1] with accounts[0] having 10000:
     AssertionError: the EVM did not throw an error or did not throw the expected error
      at HumanStandardToken.new.then.then.catch (test/humanStandardToken.js:85:7)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  3) Contract: HumanStandardToken transfers: should handle zero-transfers normally:
     Error: Error: Invalid number of arguments to Solidity function
      at HumanStandardToken.new.then.then.catch (test/humanStandardToken.js:97:31)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  4) Contract: HumanStandardToken approvals: msg.sender should approve 100 to accounts[1]:
     Error: Error: Invalid number of arguments to Solidity function
      at HumanStandardToken.new.then.then.then.catch (test/humanStandardToken.js:115:31)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  5) Contract: HumanStandardToken approvals: msg.sender approves accounts[1] of 100 & withdraws 20 once.:
     Error: Error: Invalid number of arguments to Solidity function
      at HumanStandardToken.new.then.then.then.then.then.then.then.then.then.then.catch (test/humanStandardToken.js:181:31)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  6) Contract: HumanStandardToken approvals: msg.sender approves accounts[1] of 100 & withdraws 20 twice.:
     Error: Error: Invalid number of arguments to Solidity function
      at HumanStandardToken.new.then.then.then.then.then.then.then.then.then.then.then.catch (test/humanStandardToken.js:218:31)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  7) Contract: HumanStandardToken approvals: msg.sender approves accounts[1] of 100 & withdraws 50 & 60 (2nd tx should fail):
     AssertionError: the EVM did not throw an error or did not throw the expected error
      at HumanStandardToken.new.then.then.then.then.then.then.then.then.catch (test/humanStandardToken.js:248:7)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  8) Contract: HumanStandardToken approvals: attempt withdrawal from acconut with no allowance (should fail):
     AssertionError: the EVM did not throw an error or did not throw the expected error
      at HumanStandardToken.new.then.then.catch (test/humanStandardToken.js:261:7)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  9) Contract: HumanStandardToken approvals: allow accounts[1] 100 to withdraw from accounts[0]. Withdraw 60 and then approve 0 & attempt transfer.:
     AssertionError: the EVM did not throw an error or did not throw the expected error
      at HumanStandardToken.new.then.then.then.then.then.catch (test/humanStandardToken.js:280:7)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  10) Contract: HumanStandardToken approvals: approve max (2^256 - 1):
     Error: Error: Invalid number of arguments to Solidity function
      at HumanStandardToken.new.then.then.then.catch (test/humanStandardToken.js:295:31)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  11) Contract: HumanStandardToken events: should fire Transfer event properly:
     Error: Error: Invalid number of arguments to Solidity function
      at HumanStandardToken.new.then.then.catch (test/humanStandardToken.js:311:31)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  12) Contract: HumanStandardToken events: should fire Transfer event normally on a zero transfer:
     Error: Error: Invalid number of arguments to Solidity function
      at HumanStandardToken.new.then.then.catch (test/humanStandardToken.js:327:31)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  13) Contract: HumanStandardToken events: should fire Approval event properly:
     Error: Error: Invalid number of arguments to Solidity function
      at HumanStandardToken.new.then.then.catch (test/humanStandardToken.js:343:31)
      at process._tickCallback (internal/process/next_tick.js:103:7)

Nevermind, I didn't have 2 accounts setup.


Add preview of input manager

cargo run --example input --release
InputManager logs known mapped actions and unknown keys
supports:

keyboard
mouse buttons (additional buttons too)
mouse wheel (or touchpad)

problems:

looks like winit does not support gamepad

We should decide if we need axis. Unity and UE supports input axis. It's mostly used for gamepads
https://docs.unity3d.com/ScriptReference/Input.GetAxis.html

main problem: should we use scancode or virtual_keycode for keyboard?

ScanCode work for all keys no matter what language is used but don't we know what is the key that user pressed, this would be problem in keymapping GUI.
VirtualCode not work for all keys, for example for czech ú)ů§
Scancode - Identifies the physical key pressed
This should not change if the user adjusts the host's keyboard map. Use when the physical location of the key is more important than the key's host GUI semantics, such as for movement controls in a first-person game.
VirtualCode - Identifies the semantic meaning of the key
Use when the semantics of the key are more important than the physical location of the key, such as when implementing appropriate behavior for "page up."
IntputManager is using scancode now. I think we should switch to VirtualCode or maybe use combination of both

Added new commit. Now using VirtualCode and supports secondary keys and (de)serialization.
I don't like my solution too much, especially serialization to json. Maybe I should simply serialize to .txt.
And I don't like no support for gamepads. If we'll support only pc, maybe we should have only one our enum with all keyboard keys + mouse buttons + mouse wheel


Enabled plot_solar_system to plot a 3D solar system

@Juanlu001  Please Review :)

Closing this for the moment, while we have something more solid. It's better to unify the API and then do this sort of thing, although I admit I'd love to have a 3D Solar System as well :)


Ionic 2.rc3 + AngularFire2 + Firebase "Duplicate identifier" errors

Ionic version: (check one with "x")
[ ] 1.x
[x ] 2.x
I'm submitting a ... (check one with "x")
[x] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
Trying to build for Android give several erros of 'Duplicate Identifier'.
Expected behavior:
No errors.
Description:
I've followed Jorge Vergara's tutorials about how to setup AngularFire2 and Firebase for Ionic Projects. When i ionic serve my project it works fine, give no erros and i can use firebase normally, but when i try to build it give lots of erros in ../node_modules/firebase/firebase.d.ts and ../node_modules/angularfire2/node_modules/firebase/firebase.d.ts

Here is my Package.JSON and ionic infos:
PACKAGE.JSON
{ "name": "ionic-hello-world", "author": "Ionic Framework", "homepage": "http://ionicframework.com/", "private": true, "scripts": { "ionic:build": "ionic-app-scripts build", "ionic:serve": "ionic-app-scripts serve" }, "dependencies": { "@angular/common": "2.1.1", "@angular/compiler": "2.1.1", "@angular/compiler-cli": "2.1.1", "@angular/core": "2.1.1", "@angular/forms": "2.1.1", "@angular/http": "2.1.1", "@angular/platform-browser": "2.1.1", "@angular/platform-browser-dynamic": "2.1.1", "@angular/platform-server": "2.1.1", "@ionic/storage": "1.1.6", "@types/jasmine": "^2.5.36", "angularfire2": "^2.0.0-beta.6", "firebase": "^3.6.2", "ionic-angular": "2.0.0-rc.3", "ionic-native": "2.2.3", "ionicons": "3.0.0", "rxjs": "5.0.0-beta.12", "zone.js": "0.6.26" }, "devDependencies": { "@ionic/app-scripts": "0.0.46", "@types/request": "0.0.30", "typescript": "2.0.6" }, "cordovaPlugins": [ "cordova-plugin-whitelist", "cordova-plugin-console", "cordova-plugin-statusbar", "cordova-plugin-device", "cordova-plugin-splashscreen", "ionic-plugin-keyboard" ], "cordovaPlatforms": [], "description": "dracompanha: An Ionic project" }
IONIC INFO:
Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.3
Ionic CLI Version: 2.1.13
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.45
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 10
Node Version: v6.9.1
Xcode version: Not installed
I haven't found any other post or issue about this, not on git or ionic forum.

Ok so looks like using npm install firebase angularfire2 --save as in this tutorial (https://javebratt.com/ionic2rc0-firebase-angularfire2/) makes it saves firebase 3.3.0 in angularfire node_modules folder and firebase ^3.6.x in app node_modules. Deleting the first one inside angularfire seems to make it work correctly.


bump terraform-aws-lambda version to 2.17.0

2.17.0 contains the fix my colleagues need  (specifically https://github.com/terraform-aws-modules/terraform-aws-lambda/pull/195)

@ofhouse Thanks for the quick review! :D

No problem 👍
It's now published in v11.1.2.


Finally got it working but I am unable to login

I am attempting to login using the<EMAIL_ADDRESS>and password credentials. I seeded my tables and I see the entry on the users table for<EMAIL_ADDRESS>Nothing happens after I hit Login.
My URL for testing Enzo SPA is: http://admin.digihometour.com/login

You'll have to configure in your .env SANCTUM_STATEFUL_DOMAINS=http://admin.digihometour.com
@gandesc we need to update the install steps regarding this.
Please prioritize it as much as you can.

This entry in the .env goes in the main folder or in the client folder?

It's related to Laravel Sanctum so it goes in the root .env
In dev mode add localhost, domain.test
https://laravel.com/docs/7.x/sanctum#spa-configuration

I did what you suggested and still have the same error. When I try to login to the enso demo with incorrect credentials I get an error. When I do it in my installation it doesn't return the same error, instead it does nothing. I launched the client and it said
App running at:

Local:   http://localhost:8080/
Network: unavailable

While the .env has
API_URL=http://admin.digihometour.com:8000/
I installed all dependencies and requirements and got no errors and I can't find an error in the laravel.log.

If you inspect in the console => network => api call you will see that you are missing the device_name.
This is happening because you did nou configure correctly sanctum's stateful domains.

Hi Gabriel,
In my notes below, replace enso with your project name
First, in your project root .env file, make sure you have:
...
APP_URL=http://admin.enso.test
...
SANCTUM_STATEFUL_DOMAINS=localhost,<IP_ADDRESS>,<IP_ADDRESS>:8000,localhost:8080,::1,enso.test,admin.enso.test

Second, in your client/ .env file, make sure you have:
API_URL=http://enso.test:80/

build your UI, by running client/yarn build, then you should be able to log in from admin.enso.test
use serve, by running client/yarn serve, then you shoould be able to log in from http://localhost:8080

I installed all dependencies and requirements and got no errors and I can't find an error in the laravel.log.

The error would have been in your browser's console (network).
Do let us know if you got it working.

I'm followed this instructions and after running yarn serve in the client/ directory now I get the following error:
$ vue-cli-service serve
INFO  Starting development server...
10% building 2/2 modules 0 activeevents.js:174
throw er; // Unhandled 'error' event
^
Error: ENOSPC: System limit for number of file watchers reached, watch '/var/www/html/back-end/client'
at FSWatcher.start (internal/fs/watchers.js:165:26)
at Object.watch (fs.js:1258:11)
at createFsWatchInstance (/var/www/html/back-end/client/node_modules/chokidar/lib/nodefs-handler.js:38:15)
at setFsWatchListener (/var/www/html/back-end/client/node_modules/chokidar/lib/nodefs-handler.js:81:15)
at FSWatcher.NodeFsHandler._watchWithNodeFs (/var/www/html/back-end/client/node_modules/chokidar/lib/nodefs-handler.js:233:14)
at FSWatcher.NodeFsHandler._handleDir (/var/www/html/back-end/client/node_modules/chokidar/lib/nodefs-handler.js:429:19)
at FSWatcher. (/var/www/html/back-end/client/node_modules/chokidar/lib/nodefs-handler.js:477:19)
at FSWatcher. (/var/www/html/back-end/client/node_modules/chokidar/lib/nodefs-handler.js:482:16)
at FSReqWrap.oncomplete (fs.js:154:5)
Emitted 'error' event at:
at FSWatcher._handleError (/var/www/html/back-end/client/node_modules/chokidar/index.js:260:10)
at createFsWatchInstance (/var/www/html/back-end/client/node_modules/chokidar/lib/nodefs-handler.js:40:5)
at setFsWatchListener (/var/www/html/back-end/client/node_modules/chokidar/lib/nodefs-handler.js:81:15)
[... lines matching original stack trace ...]
at FSReqWrap.oncomplete (fs.js:154:5)
error Command failed with exit code 1.

I am rebooting the system to see if that system limit of number of file watchers is reset.

Followed the instructions to the letter and when I inspect after attempting to login I get the following error:
POST http://admin.digihometour.com/api/login 422 (Unprocessable Entity)

What is the error message in the server response? You can inspect it in the browser console, on the network tab.

{message: "The given data was invalid.", errors: {device_name: ["The device name field is required."]}}
errors: {device_name: ["The device name field is required."]}
message: "The given data was invalid.
Can't find anything regarding device_name in the installation instructions.

The error is still related to SANCTUM_STATEFUL_DOMAINS and/or a misconfiguration.
So, to confirm, you have?
APP_URL=http://admin.digihometour.com
SANCTUM_STATEFUL_DOMAINS=digihometour.com,admin.digihometour.com

Keep in mind that if you're caching the configs on a live server, you may need to clear the cache / do a redeploy /etc for the new values to be considered.
Lastly, you may try the app on your local dev computer, to ensure it's not related to how the live server is setup, re domains, sub domains or something else.

I had it with .test instead of .com since in the instructions provided here it said to replace enso with homedigitour but still kept the .test domain. I am just testing the app on a brand new vps so it should not be an issue as I am installing exactly the services with the corresponding versions needed. I am not sure how device_name is related to SANCTUM_STATEFUL_DOMAINS but I will update the .env files with the correct domain (which I had originally) and run php artisan to clear the cache and try once more.

it worked now. thank you very much!


Ionic Serve on Codeanywhere container fails on ionic-app-scripts watch

Short description of the problem:
Trying to kick the tires of running this application in my codeanywhere container. I ensured I was running an updated version of node (v.6.9.1) and npm (3.10.8) managed through nvm.
What behavior are you expecting?
On my codeanywhere Node.js stack on Ubuntu 14.04 (64 bit) after installing the needed global packages (ionic, etc.) running the npm install and then ultimately trying to serve the app by running the ng serve command. I was expecting this would serve the app on a localhost:{port} same as if I was running this from my local terminal.
Steps to reproduce:

clone repo
ensured ionic, cordova were installed and ran npm install
ran - ionic serve

cabox@box-codeanywhere:~/workspace$ ionic serve

Running 'serve:before' npm script before serve

> ionic-conference-app@ watch /home/cabox/workspace
> ionic-app-scripts watch

[14:47:48]  ionic-app-scripts 0.0.36
[14:47:48]  watch started ...
[14:47:48]  build dev started ...
[14:47:48]  clean started ...
[14:47:48]  clean finished in 6 ms
[14:47:48]  copy started ...
[14:47:48]  transpile started ...
[14:47:49]  lint started ...
[14:47:52]  lint finished in 2.90 s
[14:47:55]  transpile finished in 6.29 s
[14:47:55]  bundle started ...
[14:47:55]  copy finished in 6.46 s
Killed

npm ERR! Linux 2.6.32-042stab112.15
npm ERR! argv "/home/cabox/.nvm/versions/node/v6.9.1/bin/node" "/home/cabox/.nvm/versions/node/v6.9.1/bin/npm" "run" "watch" "--color"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR! ionic-conference-app@ watch: `ionic-app-scripts watch`
npm ERR! Exit status 137
npm ERR!
npm ERR! Failed at the ionic-conference-app@ watch script 'ionic-app-scripts watch'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ionic-conference-app package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     ionic-app-scripts watch
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs ionic-conference-app
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls ionic-conference-app
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/cabox/workspace/npm-debug.log
Caught exception:
 undefined

Mind letting us know? https://github.com/driftyco/ionic-cli/issues

cabox@box-codeanywhere:~/workspace$ npm -v
3.10.8
cabox@box-codeanywhere:~/workspace$ node -v
v6.9.1

Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)
Package.json file
{
  "name": "ionic-conference-app",
  "description": "Ionic Conference App",
  "license": "Apache-2.0",
  "repository": {
    "type": "git",
    "url": "https://github.com/driftyco/ionic-conference-app.git"
  },
  "scripts": {
    "build": "ionic-app-scripts build",
    "watch": "ionic-app-scripts watch",
    "serve:before": "watch",
    "emulate:before": "build",
    "deploy:before": "build",
    "build:before": "build",
    "run:before": "build"
  },
  "dependencies": {
    "@angular/common": "^2.0.0",
    "@angular/compiler": "^2.0.0",
    "@angular/compiler-cli": "0.6.2",
    "@angular/core": "^2.0.0",
    "@angular/forms": "^2.0.0",
    "@angular/http": "^2.0.0",
    "@angular/platform-browser": "^2.0.0",
    "@angular/platform-browser-dynamic": "^2.0.0",
    "@angular/platform-server": "^2.0.0",
    "@ionic/storage": "^1.0.3",
    "ionic-angular": "^2.0.0-rc.1",
    "ionic-native": "^2.2.3",
    "ionicons": "^3.0.0",
    "moment": "^2.15.1",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "^0.6.21"
  },
  "devDependencies": {
    "@ionic/app-scripts": "^0.0.36",
    "typescript": "^2.0.3"
  },
  "cordovaPlugins": [
    "cordova-plugin-whitelist",
    {
      "locator": "https://github.com/VersoSolutions/CordovaClipboard",
      "id": "com.verso.cordova.clipboard"
    },
    {
      "locator": "https://github.com/apache/cordova-plugin-splashscreen.git",
      "id": "cordova-plugin-splashscreen"
    },
    "cordova-plugin-crosswalk-webview"
  ],
  "cordovaPlatforms": [
    "ios",
    "android"
  ]
}

Run ionic info from terminal/cmd prompt: (paste output below)

Your system information:
Cordova CLI: You have been opted out of telemetry. To change this, run: cordova telemetry on.
6.3.1
Ionic Framework Version: 2.0.0-rc.1
Ionic CLI Version: 2.1.1
Ionic App Lib Version: 2.1.1
Ionic App Scripts Version: 0.0.36
OS: Distributor ID:     Ubuntu Description:     Ubuntu 14.04 LTS
Node Version: v6.9.1

Build fails here as well.
`[10:53:05]  build dev finished in 14.33 s
[10:53:05]  ionic-app-script task: "watch"
[10:53:05]  SyntaxError:
/Applications/MAMP/htdocs/ionicConfApp/ionic-conference-app/node_modules/@ionic/app-scripts/config/watch.config.js:41
paths: copyConfig.map(f => f.src), ^^ Unexpected token =>
npm ERR! Darwin 15.6.0
npm ERR! argv "node" "/usr/local/bin/npm" "run" "watch"
npm ERR! node v0.12.7
npm ERR! npm  v3.10.9
npm ERR! code ELIFECYCLE
npm ERR! ionic-conference-app@ watch: ionic-app-scripts watch
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ionic-conference-app@ watch script 'ionic-app-scripts watch'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ionic-conference-app package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     ionic-app-scripts watch
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs ionic-conference-app
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls ionic-conference-app
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /Applications/MAMP/htdocs/ionicConfApp/ionic-conference-app/npm-debug.log`

Hello! Thanks for opening an issue with us! As this seems like more of a support question i will urge that you ask this question on our forum. Thanks for using Ionic!


FileNotFound in repairability mode for windows users

When I execute the tool in repairability mode, I face FileNotFound exception. The reason seems to be in line 74 of AbstractRepairTool.java where it is assumed that "/tmp/" path exists on the system while windows users might not have that path on their systems. @monperrus

Hi @khaes-kth
Thanks for reporting the problem.
The /tmp is harcoded here: https://github.com/SpoonLabs/coming/blob/HEAD/src/main/java/fr/inria/coming/repairability/repairtools/AbstractRepairTool.java#L74
We should use File.createTempFile when we create temporal files

Thanks for the detailed report. I guess that's an easy fix for your very first pull request!


Changing date picker through keyboard does not work anymore

Use a date picker component and type manually. A valueChange event is not anymore emitted on blur.
This functionality was added just two months ago by @rudolpho1 through pull request https://github.com/IBM/carbon-components-angular/pull/453.
These days, the datepicker inputs (https://github.com/IBM/carbon-components-angular/blob/1ee414ceeecfe9da2005e2633f708691b16a2fb7/src/datepicker/datepicker.component.ts#L46 and https://github.com/IBM/carbon-components-angular/blob/1ee414ceeecfe9da2005e2633f708691b16a2fb7/src/datepicker/datepicker.component.ts#L61) in the date picker do not anymore listen to the valueChange event.

That would be weird regression ... Which version of carbon-angular is this on? There has been a number of updates to date picker, and I'm not sure which branch the linked code refers to.

Hi @cal-smith this came in with the recent update to 3.10.0.

Strange ... I'll poke it a bit more and see what happened


compiler: Prevent topofusion of homogeneous sync Clusters

This affects only PRO.
While CI runs, I'll think about whether there's a way of testing this in OSS as well (in PRO it's tested, it's trivial)

I honestly think it's impossible because the only to trigger the faulty scenario is by having a compiler pass that injects a specific equation at a specific point in the pipeline -- an equation that shouldn't be allowed to flaot around in the sequence of Clusters, that's what the patch prevents
I can't express that equation in the user level because of the way tasks are selected, that is on an individual (Eq) basis. In other words, I can't express a task comprising two Eqns.
Eq(usave, ...)

with usave being a saved TimeFunction will be casted into an asynchronous task, but I (user) can't write
eqns = [Eq(s, 0.53),
              Eq(usave, ... s ...)]

The first eqn simply won't be part of the task (the compiler will still produce correct code, but it will pass s to the asynchrnous task as a struct member
I do realise most of this might not make sense to you if you're not familiar with the kind of streaming code that PRO generates
However, I hope the explanation is convincing enough to justify the absence of a unit test
The test is however present in PRO; for the record, it's devitopro/tests/test_abox_funcs.py::TestIsotropicAcoustic::test_forward

I think I get the gist of it , don't completely follow, but sounds sane. GTG


Android - Super resolution sample

Please change the gallery setting to work like iOS -> display the original image scaled to fit on the device screen, then allow users to drag their finger over sections to display a popup with the larger segment at run time.

Please change the gallery setting to work like iOS -> display the original image scaled to fit on the device screen, then allow users to drag their finger over sections to display a popup with the larger segment at run time.

I updated it, please help me review it.
Thank you

Replace by https://github.com/PaulTR/interpreter-samples/pull/12


Issues observed with automatic navigation and character recognition

i was planning on testing a couple different resolutions and scanner delays and using a diff checker to compare the contents of the error logs and GOOD files, so i could figure out what would reduce the number of reading errors as much as possible. but it also seems like it might help if i post what i found here!
i tested the following four configurations, each of them exactly once:

1280x720 with a delay of 0ms
1600x900 with a delay of 0ms
1600x900 with a delay of 50ms
1600x900 with a delay of 100ms

i've attached folders for each of these configurations, which contain the logging/ folder that was generated, the error log, and the resulting GOOD file.
1280x720_0ms.zip
1600x900_0ms.zip
1600x900_50ms.zip
1600x900_100ms.zip
here are some observations:

the first row of the Weapons tab was consistently ignored. in all test cases, the scanner started from the first weapon on the second row and proceeded as normal. this was not the case before, with IK V1.2.
from what i can tell, artifacts were recorded correctly every time. sometimes they were out of order in the JSON array, but their ID numbers always matched their details, and for all the recorded artifacts i compared with my actual artifacts in-game, everything was recorded correctly.
the numbers 1, 2, 4, 8, 9, 10, and 11 are misread frequently by the OCR in the Materials menu. the same materials had a tendency to get misread repeatedly, and i think this is the OCR having trouble with these digits.
for a small number of weapons, weapon ascension was misread at 1280x720, but was read correctly by all of the 1600x900 tests.
mora was misread as zero by the two 0ms tests, but was read correctly by the 50ms and 100ms tests.
the higher resolution generally resulted in fewer errors, but not by much. i used the 1600x900_0ms as the test i compare to the others because it seemed to be the most correct one.

out of my own curiosity, i wrote the correct values for a few of my materials and then cross referenced that with the two 0ms tests. the red lines in the below image indicate which materials were misread by both tests:

i don't have a huge wealth of materials since i haven't played the game for very long, which probably made my total scan times shorter than the average player. i also recognize that i would have to do a lot more tests to say anything was very consistent, but hopefully this helps in identifying problem areas!
i can provide any other information you might need if it's not already in the files i've uploaded. i also want to say thank you, optimizing genshin has been a great deal of fun for me lately and i'm super grateful that projects like these are being actively worked on!

I'll take a look at the zips you provided to figure out what's going on with the first row of weapons being skipped
Single digits and low quantities are low accuracy right now. We're working on getting that better
Mora scanning will also probably need to be readjusted for the new UI as well

Your screenshots will help in testing when I have time to take a better look at fixing things.

Duplicate of #96


reindex-textual-data: Provide a tool to reindex all text indices.

An automated tool to help address #18847.
Testing plan: Ran in a dev instance and a test prod instance, on Pg 12 and 10.

Todo:

[ ] Doc'd in the OS upgrade section
[ ] Document what to do when duplicates are found
[ ] Document that it takes a write lock
[ ] Ponder if "biggest index first" is actually right

This looks correct to me.  I would probably go with smallest index first, in that it's going to be a lot more pleasant for dealing with the duplicate row issues (which are most heavily present in smaller tables like Client).
It's possible that just doing smallest first will be good enough that we won't feel the need to build something to keep track of which indexes have already been done.

I would probably go with smallest index first, in that it's going to be a lot more pleasant for dealing with the duplicate row issues (which are most heavily present in smaller tables like Client).
It's possible that just doing smallest first will be good enough that we won't feel the need to build something to keep track of which indexes have already been done.

Makes sense -- switched that around.

This should be good to review.  It places the reason for it, and how to proceed if it fails. in the program itself, not in a docs/ file -- it felt sufficiently niche that it didn't have a good home in upgrade-or-modify.md.
I'll also put some of the same docs in the upgrading notes.
I'm not 100% sure where in the OS upgrade steps to place the command -- it needs to be late enough that reindex-textual-data exists, but putting it after the upgrade means that it's taking a lock after the server has been started.

Merged after squashing the edit commits.


chore: migrate all code docs to valid scaladoc

I saw in #15 you mentioned scala-ifying things, so I figured one part of that could be making the docs actual valid scaladoc. This will be nice for users even when using autocomplete to get the docs showing up.

Lovely! :)


Updated license report and changed the version in package.json to 1.0.0

Issue #, if available:
Description of changes:

Updated the license-report.txt. file
Deleted the yarn.lock on the top level
Updated the version from 0.6.0 to 1.0.0 in package.json.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

We have a license file on the root directory.
Lets just update that one itself?
https://github.com/awslabs/document-understanding-solution/blob/master/license-report.txt

Done.


ISO not working for me in VirtualBox

I'm new to *BSD but I've run Ubuntu and Debian in VirtualBox before from ISO files.
When I create a FreeBSD VM and try to boot from the r0.2.0-12.2 or r0.2.0-13.0 ISO files I'm just getting a dumb terminal.

Any idea what's going on? I imagine a decent amount of people looking to try out hello would take it for a spin in a VM.
macOS is my daily driver but I agree with a lot of the design philosophy and while I am fond of Linux and have contemplated switching full-time I do agree that the UX of most distros is lacking and the desktop landscape is pretty fragmented.
Any help getting hello running would be great, whether just pointing me in the right direction or adding info to the wiki. Definitely seems like an interesting project and would potentially be interested in contributing after I have a chance to check it out if I can figure out some way to help.

Which host machine and OS are you using? What I can say is that for me it works in VirtualBox on a FreeBSD host.

Can you boot in verbose mode and see what happens?

I'm running macOS Catalina 10.15.4 on a 13" Macbook Pro 2015.
I got it to boot. A couple things I was doing wrong that I realized once I tried verbose mode and read what was going on.

The VM needed to be 64-bit (I'll chalk this up to trying this before bed last night)
The boot process takes longer than I expected coming from macOS and Linux so without boot -v I didn't realize it was still going

Thanks for the help!

I am trying to reduce boot time significantly...


Tests again

Pull Request Checklist
Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:
See the detailed list in the contributing guide.

[ ] C++ Guidelines
[ ] Doxygen docs
[ ] Unit tests
[ ] No unwanted commits/changes
[ ] Descriptive title/description

[ ] PR is single purpose
[ ] Related issue listed

[ ] Comments in source
[ ] No typos
[ ] Update changelog
[ ] Not work-in-progress
[ ] External references or docs updated
[ ] Self review of PR done
[ ] Any breaking changes?

/azp run cpp - keyvault

/azp run cpp - keyvault

/azp run cpp - keyvault

/azp run cpp - keyvault

/azp run cpp - keyvault

/azp run cpp - keyvault

/azp run cpp - keyvault

Tests again

Please use more descriptive PR titles and description before, so that it is easier to understand what they are doing, especially looking back historically :)


fix: expression field loses the expression

Fixes: #722

I successfully tested locally and the expression is now kept...BUT...
the validation is now broken....see image below...

the validation is now broken....see image below...

I do not reproduce on main branch so coming from (side-effect?) changes in this PR

the validation is now broken....see image below...

I do not reproduce on main branch so coming from (side-effect?) changes in this PR

Well, I do not reproduce neither with this PR...
So specific environment? Race condition?

the validation is now broken....see image below...

I do not reproduce on main branch so coming from (side-effect?) changes in this PR

Well, I do not reproduce neither with this PR... So specific environment? Race condition?
EDIT: tried with Chrome and firefox

ah reproduced, need to change first the name, then the expression, then close the panel. And in fact, the validation is working, it is the name field which is not saved in this case

Ok, that is weird. I tried again now and I also cannot reproduce. So I guess we are fine to go.

Ah great, you catched it. I remember that I did test that way too and maybe this was the difference between today's and yesterday's test results.

Superseded by #726
I'll extract the jest tests and submit another PR


Reading edges the wrong way on interpolated legs

for some reason the code to turn interpolated transfers into legs is failing a check making sure the edge is being read in the correct direction. not sure why this is happening. graphhopper upstream might have fixed this already. we should check that. I've commented out the check for now, doesn't seem to cause any problems

I wasn't able to reproduce this with the above query and the code uncommented. The edge in question is Bailey Road in Pittsburg, and I tried routing through it to produce the exception, but all queries succeeded. Are there other ways to exercise this check?

hmm, maybe this got fixed with the change we made yesterday to the interpolated transfers? I would play around with this but if we can't replicate, I think it's fine to uncomment the check and close the issue

Just reproduced this with one of our cases (Jack London Square -> Levi's Stadium departing at 21 May 2024 14:30) that we used to debug #68. Scott's change yesterday fixes this issue too.


Proto no longers installs node version from package.json engines field

What version?
0.16.1
Which command?
proto use
What happened?
I am not sure when it happened but after some update proto no longer installs version defined inside package.json engines field. Having fields like this...
  "engines": {
    "node": "20.5.0"
  }

... and running proto use produces
git:(main) ✗ proto use
[ INFO 2023-09-08 09:31:30] proto::commands::install_all:install_all  Nothing to install!

Note that for example pnpm still works as expected.
Any logs?
logs.txt
Operating system?
MacOS
Architecture?
Arm64

@minht11 This was removed in the last version, but we've gotten enough reports of people wanting it that we're going to bring it back in 0.17.

Should be good now in 0.17.


page for hosting relevant links on one page for QR code generation

as discussed at the Core team meeting, it would be great to have a separate page on the website, like openlifesci.org/qr to host there relevant links for that period (e.g. opening for next cohort, latest preprint or whatever..) - to be able then to generate a dynamic QR code  (in comparison to relying on external services like linktree or similar)

Thanks for the idea, @msundukova! On it. :)


improve project usabilty

Build and Installation process
Documentation

https://github.com/dhyanio/discache/pull/21


Produce an upload and a download page

Create an upload page for stomach content - Login required
Create a download page for stomach data (like esas) and make it searchable by country, species, survey and year

done


ISO 22057 - various LCIA methods

I raise this change request because...

[ ] the ILCD+EPD format lacks compliance with regualtions.
[X] the ILCD+EPD format lacks conformaty with standards.
[ ] the ILCD+EPD format needs to be improved regarding existing format or master data elements.
[ ] there is another problem or use case I´m trying to address.

Problem description
LCIA methods missing in master data

Additional   inventory indicators describing emissions and removals of carbon
biogenic CO₂ (combustion of waste)   according to ISO 21930
emissions from combustion of waste   from renewable sources according to ISO 21930
3gW_Ueg55Blxy_lwebkH_V
kg CO₂ eq(100 years)

Additional   inventory indicators describing emissions and removals of carbon
biogenic CO₂ (leaving the product   system) according to ISO 21930
The biogenic carbon which is   transferred to another system when the product is recycled or reused at end   of life, measured as the mass of carbon dioxide which has been sequestered as   carbon within the biomass contained in the product
1ZvEocaTHEMPTJRnFUpYcn
kg CO₂ eq(100 years)

Additional   inventory indicators describing emissions and removals of carbon
biogenic removals and emissions   within bio-based products according to EN 15804
transfers, removals and emissions   associated with biogenic carbon content contained within bio-based products   according to EN 15804
3oBS6HUDX76wTXRpt_AYsg
kg C

Additional   inventory indicators describing emissions and removals of carbon
biogenic removals and emissions   within bio-based products according to ISO 21930
transfers, removals and emissions   associated with biogenic carbon content contained within bio-based products   according to ISO 21930
28myxJbvb6BuvbYvpDXnfK
kg CO₂ eq(100 years)

Additional   inventory indicators describing emissions and removals of carbon
biogenic removals and emissions   within packaging according to EN 15804
transfers removals and emissions   associated with biogenic carbon content contained within bio-based packaging   according to EN 15804
1Yf6QYI_f1mgIbrmD0OYae
kg C

Additional   inventory indicators describing emissions and removals of carbon
biogenic removals and emissions   within packaging according to ISO 21930
transfers, removals and emissions   associated with biogenic carbon content contained within bio-based packaging   according to ISO 21930
35jk6$uc5Dkwdakg21LDVQ
kg CO₂ eq(100 years)

Inventory   indicators describing resource use
consumption of freshwater   according to ISO 14046
net freshwater entering the   product system being studied that is not returned to the same drainage basin   from which it originated
1Z_GqIAuj3h9nUmUyL16IQ
cubic metre

Default   international characterization methods
formation potential of   tropospheric ozone according to ISO 21930: 2017
the reaction of volatile organic   compounds and nitrogen oxides in the presence of heat and sunlight
2p1a$1dbfC$e0pgz1wG9zI
kg ethene eq

TRACI   2.1 Optional Indicators
fossil fuel depletion
extraction of fossil fuel   resources at a rate higher than nature replenishes them
1ntCLcMm1Etftfa_GA03jS
MJ, net calorific value

TRACI   2.1 Optional Indicators
freshwater ecotoxicity potential   for agricultural soil emissions
the potential toxic effects of   natural soil emissions on freshwater aquatic ecosystems
22mM4mbVDDAP6QVtmn2ZSF
CTUeco

TRACI   2.1 Optional Indicators
freshwater ecotoxicity potential   for freshwater emissions
the potential toxic effects of   chemicals on freshwater aquatic ecosystems
2o0IFYowH0hPhXRmVPctlw
CTUeco

TRACI   2.1 Optional Indicators
freshwater ecotoxicity potential   for natural soil emissions
the potential toxic effects of   natural soil emissions on freshwater aquatic ecosystems
3C6wCjKiPEthe7iZrCKhs7
CTUeco

TRACI   2.1 Optional Indicators
freshwater ecotoxicity potential   for rural air emissions
the potential toxic effects of   rural air emissions on freshwater aquatic ecosystems
0QNBV8ynHENfYTcYrCakpA
CTUeco

TRACI   2.1 Optional Indicators
freshwater ecotoxicity potential   for seawater emissions
the potential toxic effects of   seawater emissions on freshwater aquatic ecosystems
3FB6yzOMj9wx7XG8TLq2Fs
CTUeco

TRACI   2.1 Optional Indicators
freshwater ecotoxicity potential   for urban air emissions
the potential toxic effects of   urban air emissions on freshwater aquatic ecosystems
2n2EMZsK555hS3d7I6m$5d
CTUeco

Waste   categories
intermediate and low-level   radioactive waste disposed according to ISO 21930:2017 (mass)
intermediate and low-level   radioactive waste, conditioned, to final repository given in mass
3V9xnnG011JRgms62QJ0NV
kilogram

Waste   categories
intermediate and low-level   radioactive waste disposed according to ISO 21930:2017 (volume)
intermediate and low-level   radioactive waste, conditioned, to final repository given in volume
0lKb5nu498P9vcSkbM2Gjh
cubic metre

TRACI   2.1 Mandatory Indicators
ozone depletion potential for air   emissions
Diminution of the stratospheric   ozone layer due to anthropogenic emissions of ozone depleting substances
2cEhZAi39FEfp5834BAvLg
kg CFC 11 eq

Inventory   indicators describing resource use
recovered energy
energy recovered from disposal of   waste in previous systems, such as energy recovery from combustion of   landfill gas or energy recovered from other systems using energy sources
1SyWBmuV59ifb3ToypPElu
MJ, net calorific value

Additional   inventory indicators describing emissions and removals of carbon
removals and emissions from   calcination and carbonation according to ISO 21930
uptake of CO2 and emissions from   calcination and carbonation, respectively
1RLz6eatD9lvXo0JNE7pr5
kg CO₂ eq(100 years)

TRACI   2.1 Mandatory Indicators
smog formation potential for air   emissions
the potential formation of ozone   at the ground level of the troposphere caused by photochemical oxidation of   Volatile Organic Compounds (VOCs) in the presence of nitrogen oxides (NOx)   and sunlight
0AEyNZq$b9fPoJkCVHS$WI
kg O₃ eq.

EN   15804:2012+A2:2019 Mandatory LCIA Indicators
tropospheric ozone concentration   increase
а measure of the amoutn of ozone   in the troposphere (at the earth's surface) where it causes summer smog
2KDnimpb10xv6PppooK8x4
kg NMVOC eq

Waste   categories
total radioactive waste disposed   (volume)
The sum, in wolume, of high-,   intermediate- and low-level radioactive waste, conditioned, to final   repository
02$78h0_z3$O9jp1Lkmmv_
cubic metre

Solution description
Check and if relevant create new master datasets
Relevance or added value
high

We checked the issue and found that beside LCIA methods we also partly have flow information, which is already part of the format. Other than that, we think information is sufficient for implementation. We should use the mandatory LCIA methods listed here to update the table of definitions.

We need to identify those items which are already covered vs. those where corresponding LCIA method datasets need to be created.

Please use this branch in the master data repo: feature/ISO_21930_indicators
You can use the template provided at https://github.com/InDataWG/ILCD-EPD-Master-Data/blob/3fd54f4b0ad6bf118ae4e6f3997a6f5993b4570d/master_data/indicators/%40template.xml

DIN EN ISO 22057_2022 Annex A_for_ILCD+EPDv1.3.xlsx

The link doesn´t open
Von: okworx @.>
Gesendet: Mittwoch, 6. November 2024 13:15
An: InDataWG/ILCD-EPD-Data-Format @.>
Cc: Robert @.>; Assign @.>
Betreff: Re: [InDataWG/ILCD-EPD-Data-Format] ISO 22057 - various LCIA methods (Issue #32)
DIN EN ISO 22057_2022 Annex A_for_ILCD+EPDv1.3.xlsx https://github.com/user-attachments/files/17646898/DIN.EN.ISO.22057_2022.Annex.A_for_ILCD%2BEPDv1.3.xlsx
—
Reply to this email directly, view it on GitHub https://github.com/InDataWG/ILCD-EPD-Data-Format/issues/32#issuecomment-2459592972 , or unsubscribe https://github.com/notifications/unsubscribe-auth/BD36QUUUAQ355PSDHG22GSDZ7IB2NAVCNFSM6AAAAABC77HCTSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJZGU4TEOJXGI .
You are receiving this because you were assigned.Message ID: @.***>


KeyError: "Unable to synchronously open object (object 'sen2_10_cloud_post' doesn't exist)"

Hello there,
Thank you for your excellent work and sharing your code and datasets.
However, the bug occurred when I tried to preprocess the meta h5 data to the machine learning-ready format.
The bug is shown in the following, which seems to be the disappearance of one 'object,'sen2_10_cloud_post'.
Do you know how I can resolve this problem?
Thanks.
--- STAGE 1 ---
(1/15) FLOGA_dataset_2019_sen2_10_mod_500.h5:   0%|      | 0/15 [01:42<?, ?it/s]
Traceback (most recent call last):
File "/FLOGA-main/create_dataset.py", line 469, in
export_patches(floga_path, out_path, out_size, args.out_format, args.sea_ratio)
File "/FLOGA-main/create_dataset.py", line 159, in export_patches
img = event_imgs[img_name][:]
~~~~~~~~~~^^^^^^^^^^
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File ".conda/envs/ai4sci/lib/python3.12/site-packages/h5py/_hl/group.py", line 357, in getitem
oid = h5o.open(self.id, self._e(name), lapl=self._lapl)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py/h5o.pyx", line 257, in h5py.h5o.open
KeyError: "Unable to synchronously open object (object 'sen2_10_cloud_post' doesn't exist)"

I found that this bug occurred when the image_name is 'sen2_{sen_gsd}_cloud_post' or 'sen2_{sen_gsd}_cloud_pre'.

Hello, thanks for catching this. The issue was that Copernicus provides Sentinel-2 cloud masks only for 20m and 60m GSD. Therefore we have not included them in the provided HDF files. I fixed the create_dataset.py script to account for this.
In the future we plan to interpolate the Sentinel-2 cloud masks to 10m GSD and add them to the HDF files.


update base distribution to 20210105

https://github.com/msys2/msys2-installer/releases/tag/2021-01-05

Thanks!

Thanks!


Back To Top Features

Hey, just curious if you guys have any plans to add this feature to Nextra? It would be super useful.

@shuding An issue was opened regarding this by me last month. See #1061

Ah, closing this one then


JRTB-13: implement deployment process

implement deployment process using docker image.
. dockerfile added to the project
. deployment process with providing environment  variables is added to the project

https://github.com/JBolivarLi/JRTelegramBot/pull/19


Update cmdkey.md - fix backtick placement in delete

it looks sorta wonky with the backtick being there, so i moved it over.
also fix the pipe not being escaped
Before:

After:

Also, I'm unsure if this will impact the rendered build on docs.microsoft.com, but the rendered build on github was messing up because of the unescaped pipe character. Butting a backslash before it to escape it works in the github rendered view at least, but this can be removed if it breaks the view on docs.microsoft.com

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

Interesting solution. Looks like it will work even on docs.microsoft.com — to my surprise. I did not expect the backslash escape character to work the same way within the MD backtick encapsulation.

@illfated yeah, i think markdown is still kinda fragmented with parsing rules (commonmark is the closest thing we have), but i googled around and found several examples that said that escaping certain characters works within a fenced code block / backticks,, because you also need to be able to escape the actual backtick character
i saw this from 2017 as an example: https://github.com/dotnet/csharplang/pull/743


:sparkles: Add cupertino spinner

Hello!
Pulling inspiration from Flutter's cross-platform widgets (e.g.  Flutter Cupertino Widgets ), I'd like to start adding "Cupertino"-style widgets to Iced (iced_aw).
This PR holds the spinner. I've attached a GIF to show it in action, and the example attached demonstrates how to get started.
Please let me know if you have any questions/feedback! This has only been tested on my Mac desktop, but it should be fine on any native. This should work for web too.
The spinner is not necessarily "official", but it's quite close, from following the Flutter implementation's constants (which are more official). If you have ideas for how to tweak any pixel/colour to get it just right, feel free to chime in!
Design
CupertinoSpinner
See

Flutter Activity Indicator
Flutter Cupertino Widgets

for reference. The Flutter source is used for constants. The implementation for this widget pulls together ideas from:
1. the mainline Clock example
2. the existing `iced_aw` Spinner
3. the Flutter Activity Indicator above
4. the QR Code widget

need to fix formatting run cargo fmt on the entire project then save any changes.


No Reference to Cloud Service resource being added to template.

The instructions for this page seem a bit disjointed - Step 2 is to add a public IP resource to your ARM Template, which then flows into step 3, "Adding a networkProfile to your cloud service". There is no step prior to this where the user adds the parent "Microsoft.Compute/cloudServices" resource. As such, people may be confused as to the location of where to put the networkProfile. The only location this is mentioned is in step 7, where Microsoft provides a full template example.
This page would flow better if there was an step between 2 & 3 to add the cloud service.

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

ID: 738edf60-4147-32ab-04ca-1f8a0d63d3c6
Version Independent ID: 9b2f7bcc-a62d-b2ba-5cc1-ef1f77716d09
Content: Deploy a Azure Cloud Service (extended support) - Templates
Content Source: articles/cloud-services-extended-support/deploy-template.md
Service: cloud-services-extended-support
GitHub Login: @gachandw
Microsoft Alias: gachandw

Have raised a pull for this document and what I believe it should look like.
https://github.com/MicrosoftDocs/azure-docs/pull/74725

Thanks for contributing to the documentation.
The PR is assigned to the author to review.

Hi @Karishma-Tiwari-MSFT .
This Issue can be closed, PR has has been merged.


Help -> About no longer opens in 1.6.0

Saw the release notes for 1.6.0 saying credits were in the Help -> About, went to try it and nothing happened. Checked version 1.5.0 and the Help -> About worked.

About seems to work when I complied the source.

Window is cutting off the contributors though... I'm going to submit that as a separate issue.
Anyway, I'm going to check the one in the Release section.

Yeah. The exe that is in the zip folder in the v1.6.0 Release Page is bad. It is not opening the About window. The easy fix for this is for @GuVAnj8Gv3RJ to recompile it and redeploy.

Should be fixed in #59 I'll check the GitHub CI version on the next build but worked locally(much faster too :D)
Thanks!

@GuVAnj8Gv3RJ The recent release v1.7.0 still exhibits this issue.

Thanks, looks like this is a CI/CD issue, re-opening.

I put in a log line on the main part of contributor fetching with a try catch included. This should give us information and also allow the window to load.
If this happens of course the contributors won't appear but we'll be further along on our journey in understanding what's going on.

2023-07-29 14:02:55.744 -07:00 [ERR] Failed to load contributor information due to: The resource avares://Neos Account Downloader/Assets/.all-contributorsrc could not be found.
Great, now we know what's up.
About window will open in 1.8 but contributor list is blank.

https://github.com/GuVAnj8Gv3RJ/NeosAccountDownloader/actions/runs/5702407141/job/15454067731#step:5:39
No errors.
I'll just put something in the CI.

Fixed in 1.8.1


added yargs in arg parsing

Changed links to "https"
Relates #3

thanks! tbh i put that there only after i got other comments that yargs was a framework. idk, i’ll rather side with you.


New Explorer functions

Everything should be calculated for values inside a given interval:

[ ] basic_stats <- average per day
[ ] basic_stats <- average per week

Even more functions:

[ ] avg bg after meals
[ ] avg bg before and after each meal
[ ] avg bg variation for each meal (variation being the difference between bg before and after a given meal)
[ ] avg applied insulin before each meal

Moved to #5

not useful for bg, but useful for things like applied_insulin


Configurable upstream idle_timeout

Please describe your use case / problem.
I'd like to configure how long keepalive connections are kept for upstream clusters.
Describe the solution you'd like
We can set the upstream cluster timeout on  https://www.envoyproxy.io/docs/envoy/v1.9.0/api-v2/api/v2/core/protocol.proto#envoy-api-msg-core-httpprotocoloptions in v2/v2cluster.py
Describe alternatives you've considered
There is currently no alternative. I believe there is no upstream timeout at all unless one is set on the cluster object.
Additional context
I think it would make sense to allow this to be per mapping, but since it would mean the generation of a new cluster for every distinct timeout, this might not be possible/advisable. Is that right? Either way, the ability to set this globally would be enough satisfy my use case in the near term.

I currently have a naive implementation but would be willing to clean it up before submitting a PR

This actually got fixed -- thanks @esmet!


feat: merge bazel-super-formatter repo here

Follow this approach where the tools must be declared in userland
Potentially replaces https://github.com/aspect-build/bazel-super-formatter/pull/49 and results in us archiving bazel-super-formatter :(
/cc @jsharpe @agluszak

Was this decided on or just a POC? Was there a discussion somewhere?

The idea came from a PR on the super-formatter to add bzlmod. Then it just magically fell together in a couple hours. Let's discuss 🥹

Adding rules_jvm_external here is fine since it goes in the users project. I'm sorry you went to all the trouble to vendor individual jar files in the other project!

My idea is to support only bzlmod here and only workspace in bazel-super-formatter.. can you say more about your idea for correspondence?


Consume the entire enumerator before letting it go out of scope

This diff seems to fix issue #614. I have replaced blnsvr.exe with a version that contains this patch, and the events are gone. I tested that blnsvr.exe built without this patch does exhibit the behavior. The service is running without any visible issues, but I have not been able to do a meaningful test of its functionality.
I compared the usage of IWbemServices:ExecQuery in memstat.cpp with other C++ code that uses the same API. The only material difference I noticed was that the other code used the form
    while(1) {
        hres = pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn);
        if(0 == uReturn) {
            break;
        }
    }

which guarantees that the enumerator is consumed in its entirety. Apparently, the API doesn't clean up its own context unless all items are consumed and throws a hissy fit later on, and quite likely only on a few of the calls.
Please review the patch carefully. I think I got the indentation right according to the "When in Rome" rule, but I'm not positive. The patch is paranoid; the check for enumerator==NULL can probably be eliminated, and it could be made shorter.
I did not run the test suite.

Keeping the PR as a reminder

We have a Jira to track this bug: https://issues.redhat.com/browse/RHEL-12116
Closing the PR for now


This site can’t be reached

Problem encountered on https://dotnet.microsoft.com/learn/aspnet/deploy-microservice-tutorial/deploy
Operating System: windows
Provide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.
win 10 pro; chrome
Using the external IP address, browse to http://[YOUR EXTERNAL IP ADDRESS]/WeatherForecast.
redid tutorial several times ; always get this at the end
This site can’t be reached<IP_ADDRESS> took too long to respond.
Try:
Checking the connection
Checking the proxy and the firewall
Running Windows Network Diagnostics
ERR_CONNECTION_TIMED_OUT
Check your Internet connection
Check any cables and reboot any routers, modems, or other network devices you may be using.
Allow Chrome to access the network in your firewall or antivirus settings.
If it is already listed as a program allowed to access the network, try removing it from the list and adding it again.
If you use a proxy server…
Check your proxy settings or contact your network administrator to make sure the proxy server is working. If you don't believe you should be using a proxy server: Go to the Chrome menu > Settings > Show advanced settings… > Change proxy settings… > LAN Settings and deselect "Use a proxy server for your LAN".

@shirhatti can you help here?

Hi @leeroyrdsouza, thank you for reaching out.
Could you please check if the service is up and running? You can do that by using the following steps:

Check the status of the deployment:
kubectl get deployment

Check the status of the service:
kubectl get svc

You can also check the log of the pod by using the following steps.

Fetch pod name :
kubectl get pods

And fetch the log using :
kubectl logs <pod_name_from_previous_step>


Drop .isDraft to new line

Bring .isDraft onto a new line, to be consistent with the other list items.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

Hello @bronzehedwick,
thank you for submitting this addition. I've merged your contribution as 333646c52d0975a0fb3911ac649defd6d66f0a7d.
Cheers,
Digitalcraftsman


Image display with w3mimgdisplay almost works (?)

I'm on x11, and this happens in a plain old session. Package manager says alacritty-unstable-2017-12-29.
Using the script from the bottom of this page: http://blog.z3bra.org/2014/01/images-in-terminal.html image display seems to almost work on alacritty. The image displays for a spit second and disappears while flickering.
Is this the current expected behavior?

This is a duplicate of #1021. Currently there are some issues with tools like w3m.

Ah, now I know that this is the huge hack I expected it to be. https://github.com/jwilm/alacritty/issues/1021#issuecomment-359184981

Calling w3m images a huge hack is a bit of an understatement. :laughing:
However it's a hack a lot of people got used to, so better support for it would be nice ofc.

I still think its pretty cool.


Property 'themeClass' does not exist on type 'OverlayContainer'.

I am currently getting the following error when running npm start: ERROR in C:/Users/....../angular-ngrx-material/src/app/app.component.ts (52,31): Property 'themeClass' does not exist on type 'OverlayContainer'.
As per the recent Angular Material changelog available here https://github.com/angular/material2/blob/master/CHANGELOG.md#200-beta11-carapace-parapet-2017-09-21

overlay: Now that the Overlay is part of the cdk rather than Angular Material directly, the themeClass property has been removed. To add a class to the overlay for theming, you can do

overlayContainer.getContainerElement().classList.add('my-theme-class');
Can you please help me with this issue. I think replacing  this.overlayContainer.themeClass = theme; inside the app.component.ts with the above code will resolve the issue but I am afraid it may break other things in the App. Thanks in advance.

Without checking the code (cant now) I think you troubleshooted the issue pretty well. I would not expect that to break anything else because that code was only concerned with that one thing.
Another thing is that now we probably have to import { OverlayContainer } from '@angular/cdk' instead of '@angular/material' feel free to try locally and run the app. If you can switch themes and dropdowns still work then thats the fix. U can try running tests and prod build too (see package.json for build.targets) Also feel free to create PR with the fix 😉  And thank you for your troubleahooting effort!  Have a great day!

Ok, was fixed in 1.13.0, thanks again.


Documentation - smallest typo correction ever

From the contribution guidelines

Not sure if that typo is worth a pull request? Do it! We will appreciate it.

Ok, so here it is.

Can you please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "patch-1" git@github.com:cyrilf/docker.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Done. I was unsure about the necessity for such a small change, but that's fine now.
(please tell me that you're usin an automated tool to detect this, you can't be that quick :wink: )

Contrary to popular belief, turtles can be really quick when they want to be  :-)

Ahah, that's impressive indeed.
It makes me want to do another PR later on, to see if this applies anytime.
But I guess that there is things which are best to keep as mysteries.

LGTM - @fredlf @jamtur01
nice catch, thank you!


Problem compiling with C++20

When building with clang-12 on macOS, with XCode 12, I am getting this error:
_deps/cxxopts-src/include/cxxopts.hpp:349:39: error: invalid operands to binary expression ('const char8_t [8]' and 'const std::string' (aka 'const basic_string<char>'))
    : OptionSpecException(u8"Option " + LQUOTE + option + RQUOTE + u8" already exists")
                          ~~~~~~~~~~~ ^ ~~~~~~

I think that C++20 concatenation rules have changed.

Actually this works well in c04f8a5 / but compilation was broken in v2.1.2

This is likely to become a stale ticket, closing it.


CASMTRIAGE-3173: Changing the netX boot order

Summary and Scope
This is to work around long delays in booting on Surtur. I made this PR on @alexanderkingh 's behalf.
I have concerns about this change because we made net2 first for a specific reason, which I cannot remember.
Issues and Related PRs
CASMTRIAGE-3173

Resolves [issue id](issue link)
Change will also be needed in <insert branch name here>
Future work required by [issue id](issue link)
Documentation changes required in [issue id](issue link)
Merge with/before/after <insert PR URL here>

Testing
List the environments in which these changes were tested.
Tested on:

<development system>
Local development environment
Virtual Shasta

Test description:
How were the changes tested and success verified? If schema changes were part of this change, how were those handled in your upgrade/downgrade testing?

Were the install/upgrade-based validation checks/tests run (goss tests/install-validation doc)?
Were continuous integration tests run? If not, why?
Was upgrade tested? If not, why?
Was downgrade tested? If not, why?
Were new tests (or test issues/Jiras) created for this change?

Risks and Mitigations
Are there known issues with these changes? Any other special considerations?
Pull Request Checklist

[ ] Version number(s) incremented, if applicable
[ ] Copyrights updated
[ ] License file intact
[ ] Target branch correct
[ ] CHANGELOG.md updated
[ ] Testing is appropriate and complete, if applicable
[ ] HPC Product Announcement prepared, if applicable

FYI please feel free to read this JIRA comment in CASMTRIAGE-3173 for a summary of the analysis and issue leading to this PR. Will be testing this via a bss config-map change from the already documented operations procedure located here Edit_the_iPXE_Embedded_Boot_Script.md

It was always my understanding that net2 was chosen as the first dhcp interface in order to minimize the dhcp request time (and therefore overall boot time) across the majority of our deployments.  IIRC net2 was likely the most common interface cabled to the node management network where the expected dhcp service was running. Based on my read of this ticket it seems net0 is now preferred, but is this ipxe now being used to boot management nodes?  And, if so, how does this proposed change affect boot times for compute or other types of non-management nodes?

It was always my understanding that net2 was chosen as the first dhcp interface in order to minimize the dhcp request time (and therefore overall boot time) across the majority of our deployments. IIRC net2 was likely the most common interface cabled to the node management network where the expected dhcp service was running. Based on my read of this ticket it seems net0 is now preferred, but is this ipxe now being used to boot management nodes? And, if so, how does this proposed change affect boot times for compute or other types of non-management nodes?

For NCNs, yes we made an explicit choice in 1.2 to change switch config and bss hand off to prefer net0 that dramatically improved initial NCN pxe boot.
Actually CMS-iPXE has been used for a long time for ncn-m001, for at least the last ~5 months I have been here but i think quite a bit longer. All the NCNs except ncn-m001 boot off of boot script info served from the PIT. ncn-m001 boots off CMS-iPXE currently because it is the pit and can't serve the boot script itself so as currently designed, needs to boot from CMS-iPXE.

I think this needs to be tested with computes and UANs.
Ideally we'd switch ncn-m001 to boot off metal-ipxe, but it isn't containerized let alone running in k8s.

Just to clarify, all management nodes boot off of csm-ipxe after initial deployment. Once the pit is deployed as m001, all subsequent reboots or rebuilds leverage kea and csm-ipxe.

I have updated the JIRA with comments and possible next steps that I would like review on. I updated the jira as more people replied in the JIRA. And I have closed PR 39 which was just used as a PR to get a change in a fork created from which this branch was created.

I don't think we need this PR.


TEP-0090: Matrix - Results

Changes

TEP-0090 proposed executing a PipelineTask in parallel TaskRuns and Runs with substitutions from combinations of Parameters in a Matrix.
In this change, we add validation that dynamic fan out of PipelineTasks through consuming Results in Matrix is not yet supported. We plan to support dynamic fan out after gathering feedback on static fan out only.
In this change, we also add validation that Results from fanned out PipelineTasks are not consumed. We plan to revisit this after array and object Results are supported.
/kind feature
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[x] Docs included if any changes are user facing
[x] Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Release notes block below has been filled in or deleted (only if no user facing changes)

Release Notes

-  Consuming `Results` in `Matrix` is invalid - will be supported soon to allow dynamic fan out.
-  Consuming `Results` from fanned out `PipelineTasks` is invalid - will be revisited soon after array and object `Results` are supported.

/lgtm


feat: add C implementation for math/base/special/fast/abs

Resolves a part of #649  .
Description

What is the purpose of this pull request?

This pull request:

adds C implementation for math/base/special/fast/abs.

double stdlib_base_fast_abs( const double x )

Related Issues

Does this pull request have any related issues?

This pull request:

resolves a part of #649.

Questions

Any questions for reviewers of this pull request?

No.
Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

No.
Checklist

Please ensure the following tasks are completed before submitting this pull request.

☑ Read, understood, and followed the contributing guidelines.

@stdlib-js/reviewers

Will have to discuss if this is needed and / or what can be suitable C API.

Adding a C implementation for the "fast" implementations is fine. Moving to "needs review".

LGTM. Thanks @gunjjoshi !
@gunjjoshi please open an issue tracking C implementation for math/base/special/fast/*

Sure, I'll do that.


Sate Diagram

Please Try to figure out it. something gone wrong.

Please Try to figure out it. something gone wrong.

not needed as per now


Add option to allow Cartesian printing of positions in POSCAR

Right now even if one sets direct=True in the Site class in the the POSCAR parser, internally it will always be transformed to direct coordinates.
This can be detrimental since there can be situations in which printing the coordinates in Cartesian coordinates is necessary.

@espenfl I was thinking of making a PR about this, and I think that the best way is to have a property of the Poscar class called direct. of this way when the file is read if direct  is True then everything continues as expected, but if direct is False then a conversion to cartesian coordinates is performed. And the Poscar is written in cartesian coordinates. What do you think?

@JPchico This choice was done to make sure the POSCAR is always in direct coordinates. Working with cartesian will always work, but you have to do this on the AiiDA side, e.g. using the routines for the StructureData etc. Then load them to VASP using the parser in direct coordinates. Is there a use case where this would not fit?

@espenfl I'm not sure I follow in the AiiDA part, what I notice is that I tried to use a structure that is in cartesian coordinates and then is always written as direct coordinates in the POSCAR, this will not work for example if you are calculating stacking fault energies using the tilting method, as the cell vectors are changed but the atomic positions are kept constant in cartesian coordinates, if you try to do this with direct coordinates, as the atomic positions are relative this will cause in one missing the physics that you are tying to capture.

@JPchico Yes, that was a quick one, and the reason why edited and added the second line :) This parser should be decoupled from AiiDA for sure.
As a side note, for this particular use case, do you use a custom script of could you use AiiDA? If that is the case, you regenerate the direct positions before launching the new calculation with the tilted new cell, so it should work fine. But if you for instance call some other script that only modifies the cell and not the positions it would not.

@JPchico would you be happy with me editing your PR with my suggestions and adding a test as well?

@espenfl Sure thing, I was planning to add what you suggested but I was very busy the last couple of weeks fixing our cluster that has crashed and I'm administrating.
I use AiiDA, what I have is a very simplistic workchain, in which I pass the initial structure and internally I generate the tilted cells. I need to check what you suggest of regenerating the direct coordinates, I thought I tried that and it failed but perhaps I was doing something wrong, will check it anyhow.

@JPchico Yes, okey. I think maybe it would make sense to add some routine to the StructureData or some other utils place for these things when we need it as more people can then use it. Then we also know people use the same code snippet. If we have it on the parser side, it is very coupled to VASP. But its functionality is pretty general. I believe it should work as we can choose the cartesian or direct as we see fit. But of course any update probably need to trigger a regeneration of the entries, in particular the positions to be representable. Happy to have a look at that part of the script to see if we can find the issue.

Closed by #52.


[wasm] wasm crate should provide useful types

the wasm crate should produce an npm package that exports useful types.
the wasm crate build currently emits a useless declaration asserting everything is "any" type.
the completely separate wasm-ts wrapper package in the web repo is essentially a shim that reintroduces type information. requiring manual type annotation by a separate wrapper package is incorrect.
type declarations should be colocated with the implementation, even if that requires additional tooling or manual annotation inside the rust code.

https://dawchihliou.github.io/articles/share-rust-types-with-typescript-for-webassembly-in-30-seconds

i've spoken to @grod220 about tsify, but iirc they suggested it was unsuitable for some reason. would be interesting to get some detail on what blocks tsify, vs what might block ts-rs (seems to have serde integration but no wasm bindgen integration) or wasm bindgen's typescript_type and typescript_custom_section

This is a very worthwhile thing to explore again. The first attempt in going through this, it became simply easier to do type annotation+validation in wrappers given we need to associate the any's with the automatically generated BufBuild types. But it’s sad we cannot simply inherit all of the correct types (somehow).

Tsify

The best rust-side solution that exists. However, all fields (recursively) must have those Rust attributes. For example, take WasmPlanner. We could not give it the tsify annotations given Serialize/Deserialize is not given to the external IdbDatabase type. This unfortunately is the case with many of these crypto libraries we are using. I ran into this blocker so many times, kinda gave up.
For things that are internal to the wasm crate (like IndexedDbConstants), this library seems like a great candidate to use.
They cannot derive types for the protobuf-rust generated types. But even if they could, I wonder how they'd compare to (or if they'd compete with) the typescript types generated directly from the protobufs 🤔. When deserialized into those, they get a bunch of utility methods too.

ts-rs

Have not tried this

wasm bindgen's string type defs

I considered this not a good option given we already have BufBuild's automatically generated typescript types. Re-typing those manually into the Rust string would drive someone to madness. Further, it wouldn't stay in sync and have to constantly be updated manually.
It doesn't do validation. In the web wasm package, we use Zod to do some minimal type validations in tests & at runtime.

Completely random thought, but what if we defined the wasm crate functions as implementing a grpc service (aka make protobuf definitions)? Then perhaps we could inherit bufbuild type annotations to calls to this service.
This would solve issues with types needing to stay updated (given they would share definitions between the other penumbra protos) and we retain the benefit of all of the BufBuild automatic type/class generation.
The only tricky thing would be writing the transport package that would route a request to a wasm function.

keeping wasm crate exports as close as possible to existing types, such as buf request/response types or service/method impl types, is the goal.
i understand it is frustrating to annotate types in the rust code that essentially duplicate a type that exists outside of the rust code, but it is worse to annotate nothing in the rust code, and then annotate types in a wrapper package that essentially duplicate etc etc
is it possible to use typescript_type independently of typescript_custom_section, or use typescript_custom_section to simply import { ExistingX } from '...'; or define a export type WasmX = ExistingX;?
and again, i assert serde wasm bindgen is capable of handling and emitting real javascript objects, not just simple json, so we should be able to use buf's constructors. at worst, if that really is impossible, we could emit json with @type annotation and then use buf tooling for reflection.
transport package is already routing to impls in the extension. complying with impl types will only simplify that.


Handling asynchronous prestashop.checkPasswordScore

Questions
Answers

Description?
Changes usePasswordPolicy.js to handle changes made in https://github.com/PrestaShop/PrestaShop/pull/30104.  prestashop.checkPasswordScore right now is returning promise instead of password score.

Type?
improvement

BC breaks?
no

Deprecations?
no

Fixed ticket?
Fixes #30088

How to test?
Follow instruction wrote here https://github.com/PrestaShop/PrestaShop/pull/30104.

Possible impacts?
Password policy feature only.

Remember that we want to load core js optionally - https://github.com/PrestaShop/PrestaShop/pull/29995 😎


Update Visual Studio SDK to VSCode SDK

Hi @jadenthomasbryan, I can't merge your PR because of the Contributor License Agreement(CLA) comment that microsoft-github-policy-service bot posted. Thank you for creating this PR, I'll use it to set up the connector with VS Code.


No PostCSS Config found in: /node_modules/sal.js/dist

Generating development JavaScript bundle failed

No PostCSS Config found in: <MY_PATH>/node_modules/sal.js/dist

File: ../../node_modules/sal.js/dist/sal.css

I'm using yarn workspaces. Any idea what's wrong?

Adding a "blank" postcss.config.js: module.exports = {};  in the dist folder work.


hostname is set after DHCP starts

Currently in the bootscript the hostname is set after DHCP client starts. The result is that all boot2docker instances report the same name box to the DHCP server. I am trying to use dnsmasq to automatically setup DNS for my boot2docker instances and this prevents that from working.
Pretty simple fix. Pull up setting the hostname to before starting the DHCP client.
PR incoming.

Hello, I can see that the boot script has the proper initialization order, but I'm still getting no luck with dnsmasq.
I also set changed the host name with the "host" kernel boot param and in /var/lib/boot2docker/etc/hostname.
The hostname command returns the correct name.
Is there a way my dhcp server can receive the hostname as part of the dhcp request? Thanks.

@up4 not sure -- we're using TCL's dhcp script as-is, but I'm not sure whether it supports that :confused:

Hi thanks for the reply. I will see if on the TCL side if people are complaining about that and will be back here if I ever find something. Thanks again.