Select port over command line

Would be very convinient to chose the serial port over the command line directly like
huhnitor -p COM3

When first initiating Huhnitor, the prompt shows available serial ports

@xkey10x Hi, is a support request and doesn't belong here, please check out the discord server and ask for help there if you need it.

Implemented in PR #21


ag3.snp_allele_frequencies()

Given a transcript, a populations of interest (dict), site_mask, site_filters, species_calls and sample_sets returns a dataframe with allele frequencies per variant per population.
Tests are included.

Hi @alimanfoo, this is ready for another review.

One more thing, there is a print() statement in the Ag3.snp_effects() method left over from debugging, let's remove that.


fix bugs

There are multiple issues fixed by this PR.

"GRCh38" is not used as a key, so data.get_data("GRCh38") fails. It needs to be data.get_data("GRCh38-rna"). And data.get_data("hashing-hashing").

np.log10(x) should be np.log10(1 + x) to avoid errors.

zarr_zipstore = True is not a valid argument for pegasusio.write_output()

These are due to the inconsistency with latest PegasusIO API. Thank you for bringing it up!
Our way of fixing these bugs tries to follow PegasusIO API, which is thus different from this pull request. Please see here for details.
For your second point, in the hashtag CSV generated by cumulus_feature_barcoding, it is impossible to have any cell with summation 0 when feeding to np.log10.

I created this issue is because demuxEM failed with a matrix generated by cumulus_adt.
Please consider re-opening this issue and addressing the bug that I mentioned. Here are some options for you to consider:

Use log10(1 + x).
Change the code to discard cells with 0 sum.

@slowkow , can you share a CSV file generated by cumulus_adt that can trigger the error?  By design, cumulus_adt will not report  a cell barcode with 0 UMIs.
Thanks,
Bo

https://job-manager.dsde-prod.broadinstitute.org/jobs/dc1de87c-9caa-47ae-9a8b-0e346cba2d32
gs://fc-545c2194-e71d-4ff5-be80-7f12f101e9b7/batch_1-4_5p/data_output/batch1_5p_adt

csv=batch1_5p_adt.csv.gz
hto=${csv%.csv.gz}_hto.csv.gz
(
  zcat $csv | head -n1
  zcat $csv | tail -n+1 | grep "^HT"
) | gzip > $hto

> f <- 'batch1_5p_adt_hto.csv.gz'
> d <- fread(f)
> d[1:5,1:5]
   Antibody AAACCTGAGAAACCAT AAACCTGAGAAACCGC AAACCTGAGAAACCTA AAACCTGAGAAACGAG
1: HT_C0251                0                0               12                8
2: HT_C0252                0                0              189                6
3: HT_C0254                1                1             1055               15
4: HT_C0256                1                1               72             1440
5: HT_C0257                2                0               13                9
> sum(colSums(d[,2:ncol(d)]) == 0)
[1] 6514


Make remaining Quickstart docs consistent

What type of PR is this:
/area documentation
/kind documentation

What does this PR do / why we need it:
Which issue(s) this PR fixes:
Fixes part of #6143

PR acceptance criteria:

[ ] Unit test

[ ] Integration test

[X] Documentation

How to test changes / Special notes to the reviewer:

Hi @valaparthvi , I have pushed your suggested change, please take another look when you are free. Thanks,

/lgtm
/approve
Thank you for working on this @SD-13!

/override windows-integration-test/Windows-test
It's a Docs PR.

/ok-to-test


New Feature Request: Community Resources

Community Resources
https://techqueria.org/career

should include speaking opportunities/conference discounts
goals/milestones/career advice/path
gamified career path
this gamification could be enhanced by highlight/giving props (HeyTaco) to folks that have helped you complete career milestones

Example Verbiage

Upgrade your skills with these Women Who Code recommended coding resources.
Benefit from the $1,000,000 in conference tickets and scholarships we award annually.
Tutorials, articles, videos, and other educational materials to excel.
Find leadership opportunities that expand your skills and enhance your career.

idea: content created by community, curated by community - all featuring blog posts/resources written out by Latinx in tech


BibSched: add filter for done tasks

Originally on 2013-04-02
Whenever going through the done tasks in bibsched, a quite common use case is to just want to see the tasks that had an error (or were ACKd)
Currently it is a tedious process to find those tasks so a command (say F) could be added an a prompt shown to the user to decide how to filter the tasks.
Some ways of filtering could be only ERROR tasks, only bibuploads, ...

The issue seems to be stalled for 3 years. Lot of improvements have been added since then ;)
cc @inveniosoftware/triagers


Impossible to train without using IMU masks

Hello all, I'm pretty new to AI so I'm not fully aware of its configuration
The problem
I can launch a training with the mastr1325 dataset, all my dependencies seem okay, however:
I have many datasets to use for trainings (plus the mastr1325 one) but my datasets don't have any IMU masks for the images. From what I have read in the README.md, there are models that use IMU and models that don't. Even by choosing an "non IMU" model, I can't run the train.py script without having a complete folder of IMU masks set in the config files.
Launching a training without the IMU
My directory
I have created four folders in the eWaSR root directory (same level as train.py, predict.py etc.) :

images, the mastr1325 images
gt_masks, the mastr1325 ground truth annotations
imu_masks, the mastr1325 IMU masks
empty_folder, the name speaks for itself, for tests purposes

Config files
mastr1325_train.yaml
image_dir: ../images
mask_dir: ../gt_masks
imu_dir: ../empty_folder
image_list: train_images.txt

mastr1325_val.yaml
image_dir: ../images
mask_dir: ../gt_masks
imu_dir: ../imu_masks
image_list: val_images.txt

I let the imu_dir of this file be the directory for the validation process.
Modifications to the files
models.py (starting at line 31)
    elif model_name.startswith('wasr_resnet18'):
        model = wasr_deeplabv2_resnet18(num_classes=num_classes, imu=False) # imu=imu
    elif model_name.startswith('ewasr'):
        backbone = model_name.split("_")[1].split("_")[0]
        model = ewasr(num_classes = num_classes, imu = False, backbone=backbone, **kwargs) # imu=imu
    else:
        raise ValueError('Unknown model: %s' % model_name)

As I want to use eWaSR_resnet18, I edited the parameters of the associated defs from imu to False.
train.py (line 27)
MODEL = "ewasr_resnet18"#'wasr_resnet18_imu'

Command
python3 train.py --train_config configs/mastr1325_train.yaml --val_config configs/mastr1325_val.yaml \
--model_name my_ewasr --validation --batch_size 4 --epochs 2 --model ewasr_resnet18

Results
Namespace(batch_size=4, enricher='SS', epochs=2, focal_loss_scale='labels', gpus='auto', learning_rate=1e-06, log_steps=20, lr_decay_pow=0.9, mixer='CCCCSS', model='ewasr_resnet18', model_name='my_ewasr', momentum=0.9, monitor_metric='val/loss', monitor_metric_mode='min', no_augmentation=False, no_separation_loss=False, num_classes=3, output_dir='output', patience=None, precision=32, pretrained=True, pretrained_weights=None, project=False, random_seed=None, resume_from=None, separation_loss_lambda=0.01, train_config='configs/mastr1325_train.yaml', val_config='configs/mastr1325_val.yaml', validation=True, weight_decay=1e-06, workers=8)
/home/user/.local/lib/python3.8/site-packages/lightning_fabric/utilities/seed.py:40: No seed found, seed set to<PHONE_NUMBER>
Seed set to<PHONE_NUMBER>
/home/user/.local/lib/python3.8/site-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.
  warnings.warn(
/home/user/.local/lib/python3.8/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet18_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet18_Weights.DEFAULT` to get the most up-to-date weights.
  warnings.warn(msg)
/home/user/.local/lib/python3.8/site-packages/torch/cuda/__init__.py:611: UserWarning: Can't initialize NVML
  warnings.warn("Can't initialize NVML")
/home/user/.local/lib/python3.8/site-packages/torch/cuda/__init__.py:740: UserWarning: CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero. (Triggered internally at ../c10/cuda/CUDAFunctions.cpp:108.)
  return torch._C._cuda_getDeviceCount() if nvml_count < 0 else nvml_count
Invalid MIT-MAGIC-COOKIE-1 keyGPU available: False, used: False
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs

  | Name         | Type          | Params
-----------------------------------------------
0 | model        | WaSR          | 60.3 M
1 | val_accuracy | PixelAccuracy | 0
2 | val_iou_0    | ClassIoU      | 0
3 | val_iou_1    | ClassIoU      | 0
4 | val_iou_2    | ClassIoU      | 0
-----------------------------------------------
60.3 M    Trainable params
0         Non-trainable params
60.3 M    Total params
241.013   Total estimated model params size (MB)
Sanity Checking DataLoader 0:   0%|                       | 0/2 [00:00<?, ?it/s]/home/user/.local/lib/python3.8/site-packages/torchvision/transforms/functional.py:1603: UserWarning: The default value of the antialias parameter of all the resizing transforms (Resize(), RandomResizedCrop(), etc.) will change from None to True in v0.17, in order to be consistent across the PIL and Tensor backends. To suppress this warning, directly pass antialias=True (recommended, future default), antialias=None (current default, which means False for Tensors and True for PIL), or antialias=False (only works on Tensors - PIL will still use antialiasing). This also applies if you are using the inference transforms from the models weights: update the call to weights.transforms(antialias=True).
  warnings.warn(
/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/utilities/data.py:77: Trying to infer the `batch_size` from an ambiguous collection. The batch size we found is 4. To avoid any miscalculations, use `self.log(..., batch_size=batch_size)`.
Epoch 0:   0%|                                          | 0/324 [00:00<?, ?it/s]Traceback (most recent call last):
  File "train.py", line 155, in <module>
    main()
  File "train.py", line 151, in main
    train_wasr(args)
  File "train.py", line 144, in train_wasr
    trainer.fit(model, train_dl, val_dl)
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 544, in fit
    call._call_and_handle_interrupt(
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/trainer/call.py", line 44, in _call_and_handle_interrupt
    return trainer_fn(*args, **kwargs)
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 580, in _fit_impl
    self._run(model, ckpt_path=ckpt_path)
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 989, in _run
    results = self._run_stage()
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1035, in _run_stage
    self.fit_loop.run()
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/loops/fit_loop.py", line 202, in run
    self.advance()
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/loops/fit_loop.py", line 359, in advance
    self.epoch_loop.run(self._data_fetcher)
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/loops/training_epoch_loop.py", line 136, in run
    self.advance(data_fetcher)
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/loops/training_epoch_loop.py", line 202, in advance
    batch, _, __ = next(data_fetcher)
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/loops/fetchers.py", line 127, in __next__
    batch = super().__next__()
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/loops/fetchers.py", line 56, in __next__
    batch = next(self.iterator)
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/utilities/combined_loader.py", line 326, in __next__
    out = next(self._iterator)
  File "/home/user/.local/lib/python3.8/site-packages/pytorch_lightning/utilities/combined_loader.py", line 74, in __next__
    out[i] = next(self.iterators[i])
  File "/home/user/.local/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 630, in __next__
    data = self._next_data()
  File "/home/user/.local/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1345, in _next_data
    return self._process_data(data)
  File "/home/user/.local/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1371, in _process_data
    data.reraise()
  File "/home/user/.local/lib/python3.8/site-packages/torch/_utils.py", line 694, in reraise
    raise exception
FileNotFoundError: Caught FileNotFoundError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/home/user/.local/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 308, in _worker_loop
    data = fetcher.fetch(index)
  File "/home/user/.local/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 51, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/user/.local/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 51, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/user/Documents/Semseg/eWaSR/datasets/mastr.py", line 89, in __getitem__
    imu_mask = np.array(Image.open(imu_path))
  File "/home/user/.local/lib/python3.8/site-packages/PIL/Image.py", line 3243, in open
    fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/Documents/Semseg/eWaSR/empty_folder/0546.png'

Epoch 0:   0%|          | 0/324 [00:00<?, ?it/s]

My question
Is it really possible to run a training without IMU masks or is it a deprecated feature from WaSR?
Additional question
I've also tried to reverse engineering the code and in mastr.py I saw a few things like:
# line 51
self.imu_dir = (self.dataset_dir / Path(data['imu_dir'])).resolve() if 'imu_dir' in data else None
...
# line 85
        if self.imu_dir is not None:
            imu_path = str(self.imu_dir / ('%s.png' % img_name))
            imu_mask = np.array(Image.open(imu_path))
            data['imu_mask'] = imu_mask

So this file seems to read the line 'imu_dir' in the .yaml files and get the path, from which the file opens each mask.
# line 102
        features = {'image': img}
        labels = {}

        if self.include_original:
            features['image_original'] = torch.from_numpy(img_original.transpose(2,0,1))

        if 'segmentation' in data:
            labels['segmentation'] = torch.from_numpy(data['segmentation'].transpose(2,0,1))

        if 'imu_mask' in data:
            features['imu_mask'] = torch.from_numpy(data['imu_mask'].astype(bool))

So I thought if I set the .yaml 'imu_dir' lines to null, no 'imu_dir' index would be used and so no IMU masks.
Config files
mastr1325_train.yaml
image_dir: ../images
mask_dir: ../gt_masks
imu_dir: null
image_list: train_images.txt

mastr1325_val.yaml
image_dir: ../images
mask_dir: ../gt_masks
imu_dir: null
image_list: val_images.txt

Modifications to the files
models.py (starting at line 31)
    elif model_name.startswith('wasr_resnet18'):
        model = wasr_deeplabv2_resnet18(num_classes=num_classes, imu=False) # imu=imu
    elif model_name.startswith('ewasr'):
        backbone = model_name.split("_")[1].split("_")[0]
        model = ewasr(num_classes = num_classes, imu = False, backbone=backbone, **kwargs) # imu=imu
    else:
        raise ValueError('Unknown model: %s' % model_name)

As I want to use eWaSR_resnet18, I edited the parameters of the associated defs from imu to False.
train.py (line 27)
MODEL = "ewasr_resnet18"#'wasr_resnet18_imu'

Command
python3 train.py --train_config configs/mastr1325_train.yaml --val_config configs/mastr1325_val.yaml \
--model_name my_ewasr --validation --batch_size 4 --epochs 2 --model ewasr_resnet18

Results
Namespace(batch_size=4, enricher='SS', epochs=2, focal_loss_scale='labels', gpus='auto', learning_rate=1e-06, log_steps=20, lr_decay_pow=0.9, mixer='CCCCSS', model='ewasr_resnet18', model_name='my_ewasr', momentum=0.9, monitor_metric='val/loss', monitor_metric_mode='min', no_augmentation=False, no_separation_loss=False, num_classes=3, output_dir='output', patience=None, precision=32, pretrained=True, pretrained_weights=None, project=False, random_seed=None, resume_from=None, separation_loss_lambda=0.01, train_config='configs/mastr1325_train.yaml', val_config='configs/mastr1325_val.yaml', validation=True, weight_decay=1e-06, workers=8)
/home/user/.local/lib/python3.8/site-packages/lightning_fabric/utilities/seed.py:40: No seed found, seed set to<PHONE_NUMBER>
Seed set to<PHONE_NUMBER>
Traceback (most recent call last):
  File "train.py", line 155, in <module>
    main()
  File "train.py", line 151, in main
    train_wasr(args)
  File "train.py", line 102, in train_wasr
    train_ds = MaSTr1325Dataset(args.train_config, transform=transform,
  File "/home/user/Documents/Semseg/eWaSR/datasets/mastr.py", line 51, in __init__
    self.imu_dir = (self.dataset_dir / Path(data['imu_dir'])).resolve() if 'imu_dir' in data else None
  File "/usr/lib/python3.8/pathlib.py", line 1042, in __new__
    self = cls._from_parts(args, init=False)
  File "/usr/lib/python3.8/pathlib.py", line 683, in _from_parts
    drv, root, parts = self._parse_args(args)
  File "/usr/lib/python3.8/pathlib.py", line 667, in _parse_args
    a = os.fspath(a)
TypeError: expected str, bytes or os.PathLike object, not NoneType

I thought that because I set the 'imu_dir' to null, it would be None in Python so no 'imu_dir' attribute would be created in the class MaSTr1325Dataset. But again, it does not work.\
Is it possible to run eWaSR training without IMU masks, if yes, how?
Thank you for taking in consideration my request.

Hey @romada1901 ,
Thanks for reporting this issue. This is indeed the case. Currently, the limitation lies here as eWaSR creates the WaSR object under the hood. If you inspect it, you will see that it always requires (L69) the "imu_mask" to be present. When we train on MaSTr1325 this is not an issue, as we simply ignore the IMU mask in the decoder itself.
A fix for your use case would be to make a copy of the MaSTr1325Dataset, and set the data["imu_mask"] to an array of zeros. You would then have to register the dataset in the training file. Even quicker fix would be to just set the data["imu_mask"] to an array of zeros if IMU dir is not provided in the config, and then when training just not provide the IMU dir. So, in you additional question you would completely remove the imu_dir: null line.
Proper fix would likely require detecting whether a model with IMU is selected during the training, then initializing dataset in a proper way. I won't have enough time to get to that soon enough, but feel free to make a PR if you manage. Otherwise a quick fix would be recommended. Let me know if you manage to get it working!
Note: you don't need to change L27, simply specifying the --model flag should be enough.

Hello @tersekmatija,
Thanks a lot for your answer.
I tried the quick fix:

I commented the line "imu_dir" in the configs/ files
I added the following lines to mastr.py:

        else:
            data['imu_mask'] = np.zeros((384, 512))

I ran the training and no problem occurred. So, I have one last question: what exactly is the purpose of these IMU masks?

Sounds good, glad that you have resolved it @romada1901 !
For IMU masks, feel free to refer to the paper for additional details. But in short, we show that at times injecting additional information such as binary mask obtained from the IMU can help in certain conditions (e.g. improved water/sky edge under bad weather where horizon is not visible). This was explored and described in more details in the WaSR paper as well where they've tried different encodings of IMU.

I will read it. Thank you for your explanations :)


Unable to import 'tape' v4 or v5 after lockdown

This program:
// install-ses.js consists of:
//  import { lockdown } from 'ses';
//  lockdown();
import './install-ses.js';
import { test } from 'tape';

when run against SES-0.7.7, with a node_modules that has tape-4.11.0, fails like this:
$ node -r esm fail-import-tape.js
/home/warner/stuff/agoric/agoric-sdk/node_modules/string.prototype.trim/node_modules/es-abstract/helpers/callBind.js:1
TypeError: Cannot assign to read only property 'apply' of function 'function callBind() {
	return bind.apply($call, arguments);
}'
    at Object.<anonymous> (/home/warner/stuff/agoric/agoric-sdk/node_modules/string.prototype.trim/node_modules/es-abstract/helpers/callBind.js:15:22)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1196:10)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1196:10)

I tried disabling various taming options in lockdown() and it didn't help.
I'm guessing that tape is using some module (es-abstract?) which thinks it can modify the primordials. We could find a way to accomodate that, or find a way to make it stop.
I'm able to import tape before lockdown, and tests seem to work normally, which is what I'll do for now. That makes it a 'vetted shim', though, and it's neither vetted nor a shim. Discuss.

This is the override mistake. It is not an attempt to modify a primordial. The relevant code in callBind.js is
module.exports = function callBind() {
	return bind.apply($call, arguments);
};

module.exports.apply = function applyBind() {
	return bind.apply($apply, arguments);

This is merely trying to create an own apply property on the callBind function, which inherits from Function.prototype. This own property would override the Function.prototype.apply. When lockdown makes Function.prototype.apply a non-writable data property, due to the override mistake, that causes an assignment that would merely override the property to fail.
At https://github.com/Agoric/SES-shim/blob/master/packages/ses/src/enablements.js is our whitelist of primordial properties for loackdown to repair, prior to hardening the primordials, so that these properties act as if JS had no override mistake. Under FunctionPrototype we see it repairs bind but not apply.
Try adding apply to this whitelist. This might not work because apply itself may be involved in the mechanism by which the override mistake is fixed. But try it first. If it seems to work it probably does.

Repairing apply, even if it works, is expensive. Long term, better would be to push a change upstream to tape to create the callBind.apply property by using defineProperty semantics rather than assignment semantics.

I think I ran into the identity-discontinuity problem when importing tape (4.11.0) before lockdown(). Tape has an assertion named t.throws(), which takes a closure and asserts that running it throws an exception. The following program:
import { test } from 'tape';
import './install-ses.js';

function parse() {
  throw TypeError('Error parsing');
}

test('parse', t => {
  t.throws(parse, /Error parsing/, 'expected failure');
  t.end();
});

fails with:
not ok 1 expected failure
  ---
    operator: throws
    expected: '/Error parsing/'
    actual:   [TypeError]

and I believe it's because tape is stashing the original Error object, and using it to somehow examine the exception that was raised (which uses a different Error object as its base). I can replace tape's t.throws with the built-in assert module's assert.throws and the test works normally.

I tried upgrading to tape-5.0.0 (released just a few weeks ago) to see if it helps anything. I get the same error when attempting to install SES first, then import tape. And unfortunately I get a new problem when importing tape before lockdown(): when t.throws is called, I get this error:
TypeError <Object <Object <[Object: null prototype] {}>>>: Cannot assign to read only property 'message' of object ''
    at Test.throws (/home/warner/stuff/agoric/agoric-sdk/packages/SwingSet/node_modules/tape/lib/test.js:584:25)
    at Test.bound [as throws] (/home/warner/stuff/agoric/agoric-sdk/packages/SwingSet/node_modules/tape/lib/test.js:84:32)

which feels like another instance of the override mistake, as tape is (for some reason I don't understand) replacing the error's message with itself:
(tape/lib/test.js around line 584)
try {
  fn();
} catch (err) {
  caught = { error: err };
  if (Object(err) === err && (!isEnumerable(err, 'message') || !has(err, 'message'))) {
    var message = err.message;
    delete err.message;
    err.message = message;
  }
}

Is fn at https://github.com/Agoric/SES-shim/issues/293#issuecomment-627041476 the same as parse at https://github.com/Agoric/SES-shim/issues/293#issuecomment-627037799 ? I see it throws a TypeError
I see at https://github.com/Agoric/SES-shim/blob/23d21d185f3a6e067b44ae9f5652136916510efe/packages/ses/src/enablements.js#L78 that we repair Error.prototype.message but not TypeError.prototype.message.
We should add to the whitelist a repair of message for all the builtin error types.
On the identity discontinuity, the only good solution is to load tape after lockdown(), so I'm glad we're headed in that direction.

As you expand this whitelist, please continue the tradition of adding a comment saying what case triggered the need for each additional repair.

Yes, I believe fn should be the same as parse.

Adding apply: t // set by "tape" to the enablements list allows tape (4.11.0) to be imported after lockdown(), without the TypeError: Cannot assign to read only property 'apply' of function 'function callBind() error. However t.throws still fails. I'll explore further.

Adding apply: t and TypeErrorPrototype.message: t to enablements, calling lockdown(), and then importing tape-5.0.0 (which I'm testing in parallel) gets me to this error:
$ node -r esm fail-tape-types.js
/home/warner/stuff/agoric/agoric-sdk/node_modules/define-properties/index.js:1
TypeError: Cannot define property getPolyfill, object is not extensible
    at defineProperty (<anonymous>)
    at defineProperty (/home/warner/stuff/agoric/agoric-sdk/node_modules/define-properties/index.js:34:3)
    at defineProperties (/home/warner/stuff/agoric/agoric-sdk/node_modules/define-properties/index.js:52:3)
    at Object.<anonymous> (/home/warner/stuff/agoric/agoric-sdk/node_modules/object.assign/index.js:11:1)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1196:10)

I'm still investigating what it's trying to do. The code in object.assign is:
'use strict';

var defineProperties = require('define-properties');

var implementation = require('./implementation');
var getPolyfill = require('./polyfill');
var shim = require('./shim');

var polyfill = getPolyfill();

defineProperties(polyfill, {
	getPolyfill: getPolyfill,
	implementation: implementation,
	shim: shim
});

module.exports = polyfill;

and it's the defineProperties call that's triggering the failure. That polyfill variable renders as:
[Function: assign] Function <Function <[Object: null prototype] {}>>

The export of ./polyfill is:

module.exports = function getPolyfill() {
	if (!Object.assign) {
		return implementation;
	}
	if (lacksProperEnumerationOrder()) {
		return implementation;
	}
	if (assignHasPendingExceptions()) {
		return implementation;
	}
	return Object.assign;
};

which means it's trying to modify properties of the (frozen) Object.assign, as some sort of default case or reaction to Object.assign not being present or behaving in some bad way.
Feels like a shim gone wrong.

Adding FunctionPrototype.apply: t and TypeErrorPrototype.message: t to enablements, calling lockdown(), and then importing tape-4.13.2, appears to work normally, including t.throws. I'll add a PR for that.
Still don't know how to make tape-5.0.0 work.

From the code you show, I think you diagnosed the tape 5 problem correctly. Is the following summary correct?
This is not the override mistake. Rather, it is an attempt to directly modify a primordial in a way that is publicly visible, that modifies the primordial API surface in a way that does not serve to shim and proposed standard. Specifically, it will make the following properties visible on the Object.assign method: getPolyfill, implementation, and shim. This is not part of any proposed standard for enhancing Object.assign. It is probably not their intention to make any such proposal. Thus, this is simply a severe bug in tape 5. We should report it to them.
If we are in a hurry to switch to tape 5, we should fork, repair, and then send them a PR citing our bug report. Otherwise we should just wait for them to fix the bug.

Moved from "Backlog" to "Reassess" to determine whether we still care about Tape 5.

cc @ljharb This is the issue that we encountered while using tape under ses. This motivated our prior solution, fixing overrides.

I just checked briefly, the same error is currently reported in both tape-4.13.3 and tape-5.0.1, running against ses-0.10.4
$ cat t.js
import '@agoric/install-ses'; // calls lockdown()
import { test } from 'tape';

test('demo', t => {
  t.ok(true);
  t.end();
});

$ node -r esm t.js
[/home/warner/stuff/agoric/agoric-sdk/packages/tap5/node_modules/es-abstract/helpers/callBind.js:1
TypeError: Cannot assign to read only property 'apply' of function 'function callBind() {
	return $reflectApply(bind, $call, arguments);
}'
  at Object.<anonymous> (/home/warner/stuff/agoric/agoric-sdk/packages/tap5/node_modules/es-abstract/helpers/callBind.js:15:22)
  at Object.Module._extensions..js (internal/modules/cjs/loader.js:1272:10)
  at Object.Module._extensions..js (internal/modules/cjs/loader.js:1272:10)]

It looks like the specific assignment is happening in es-abstract, here:
$ cat node_modules/es-abstract/helpers/callBind.js
'use strict';

var bind = require('function-bind');

var GetIntrinsic = require('../GetIntrinsic');

var $apply = GetIntrinsic('%Function.prototype.apply%');
var $call = GetIntrinsic('%Function.prototype.call%');
var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);

module.exports = function callBind() {
	return $reflectApply(bind, $call, arguments);
};

module.exports.apply = function applyBind() {
	return $reflectApply(bind, $apply, arguments);
};

In summary, we discussed this at the Agoric SES meeting, and we do care about about tape versions running under SES.

I plan to publish a fixed object.assign, and es-abstract, later this week. Hopefully that will also include running their full test suite both with and without SES, to prevent future regressions.

Does the closing of https://github.com/ljharb/object.assign/issues/79 mean we can now close this one too? Who wants to check?
(Also, @ljharb , thanks for https://github.com/ljharb/object.assign/issues/79 !)

It should! I've published es-abstract as both v1.17.7 and v1.18.0-next.1, so all dep graphs should automatically update to include the fix, modulo lockfiles.

@warner @kriskowal I'm closing this as irrelevant, but reopen if I'm missing something or you disagree.


feature/VCLTJV-3 add release workflow

commit1: dynamically set release version or snapshot version by if gradle uploadArchives command has release tag or not
and add pom config as requested by Nexux release repository
commit2: refactor gradle build and gradle upload to a reusable workflow and add release workflow to use it
commit3: test release 0.5.0
commit4: remove the part for testing release
commit5: write a small release process to show step by step how to release vaultclient-java

Hello xinliscality,
My role is to assist you with the merge of this
pull request. Please type @bert-e help to get information
on this process, or consult the user documentation.
Status report is not available.

Incorrect fix version
The Fix Version/s in issue VCLTJV-5 contains:

None

Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:

1.0.0

Please check the Fix Version/s of VCLTJV-5, or the target
branch of this pull request.

Codecov Report

Merging #24 (6f1342f) into development/1.0 (122471c) will not change coverage.
The diff coverage is n/a.

@@                Coverage Diff                 @@
##             development/1.0      #24   +/-   ##
==================================================
  Coverage              84.69%   84.69%
  Complexity                32       32
==================================================
  Files                      5        5
  Lines                     98       98
==================================================
  Hits                      83       83
  Misses                    15       15

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

Waiting for approval
The following approvals are needed before I can proceed with the merge:

the author

one peer

Waiting for approval
The following approvals are needed before I can proceed with the merge:

the author

one peer

The following reviewers are expecting changes from the author, or must review again:

@anurag4dsb

Waiting for approval
The following approvals are needed before I can proceed with the merge:

the author

one peer

/approve

I have successfully merged the changeset of this pull request
into targetted development branches:

:heavy_check_mark: development/1.0

Please check the status of the associated issue VCLTJV-5.
Goodbye xinliscality.


Please add content to the README of this repo

Currently this repo README is very sparse. We need to add links & explanations. Please create PRs to do that!

From Today's (June 24th)

Compile a list of where things occur and put it in a doc in the group repository

Prior awareness of happenings in this space
Should also capture any group members that are participating in bodies outside of this group.

Bring repository up to date, it’s been stale (also Jay, Emily)

Review, refresh, and incorporate previous document on focus areas

This should be closed as completed and a new issue opened given the discussion on Mon Sep 30 2024 call


readme typo

README file typo!

Closing because this was already merged in #794
Thank you for the fix!


bugfix/IIA-991: Swap the Semantic meaning  and Semantic purpose fields in the Pattern definition section

Fixes this issue: https://ikmdev.atlassian.net/browse/IIA-991

@carldea thanks Carl, glad you like it! :)


Add support for CSV

As a KC user,
I need to import content items in the CSV format,
because

I migrate data from applications that support only relational (tabular) formats (like Excel), or
My content consists of a large amount of items of smaller size, or
My content production process does not require the validation and formatting features of the Content inventory service UI, etc.

Support for CSV has been added. You can import data as well as generate blueprints. Please see the readme file for more information.


Build is fine, however running a container throws an error

First thanks for this great repo
So I downloaded both Dockerfile and docker-entrypoint.sh and build an image using this command.
docker build .
that builds fine.
then using the resulting imageid I try to run a container with this command
docker run e7474737b073
that throws an error
no such file or directory docker: Error response from daemon: Container command not found or does not exist..

I'm doing something wrong?
Thanks
P.S. Key server was not responding so I changed them to hkp://p80.pool.sks-keyservers.net:80 I don't know if this has anything to do with the problem I'm facing
System: Boot2docker
Windows 10
$ docker version
Client:
Version:      1.10.3
API version:  1.22
Go version:   go1.5.3
Git commit:   20f81dd
Built:        Thu Mar 10 21:49:11 2016
OS/Arch:      windows/amd64
Server:
Version:      1.10.3
API version:  1.22
Go version:   go1.5.3
Git commit:   20f81dd
Built:        Thu Mar 10 21:49:11 2016
OS/Arch:      linux/amd64

That sounds suspiciously like a boot2docker-specific problem.  Before going too far into the specifics of what's happening when you build -- any particular reason you need to build this image instead of using the existing artifacts as-is?  With automated builds (https://docs.docker.com/docker-hub/builds/) and repository links (https://docs.docker.com/docker-hub/builds/#repository-links) it's reasonably easy to have an up-to-date image built FROM this one with whatever you need added.

Thanks for your reply. Needless to mention that I'm new to Docker.
I just need to edit the Dockerfile to remove the data Volumes. The reason I want to do that is to backup my container with its databases so if I remove it and reload it move with it.
This was a long discussion in a question I posted in the stack overflow link below
http://stackoverflow.com/questions/35952601/backup-a-postgres-container-with-its-databases/35952782#35952782

You should be able to do ENV PGDATA /somewhere/else in order to get this outside of the volume, but it is kind of strange (and will have a performance impact) to keep that data inside the layering filesystem (so I'd really strongly recommend an out-of-band backup solution instead of trying to keep the container and the data in the same backup).

Thanks Tianon,
I'm still trying to understand the performance implication here as its critical to me.

So what I do is spawn a new 9.3 postgres db container
Use a special software to author the database (ArcGIS)
use Build Commit to commit the changes to the image.
Now I have an image with "good" data.
I have around 100 tests that should run against this data and each test make some changes to this data.
For Each test I will create a new container out of my image. Run the Test, then destroy my container since the data is now invalid.
I do the same for the second test I would reload a fresh container out of my image, run the test and so on
The Problem is If I use volume, and I create a container out of this image, somehow my database is not showing up when I connect to my postgres instance in the container. So I solved that by removing the volume all together, this will include my database "inside" the image.

How would that affect performance? Is it because the data has to get extracted from the image every time I run a container?
if there is another solution to this please do suggest it.
Thank you again,
-Hussein

Sorry for the massive delay -- this affects performance because by doing so, your database ends up being stored in the read-write layer of the graph driver of Docker, which does a lot of extra accounting to track changes (which you don't care about for a database).
Since the original issue here is solved, I'm going to close.  In the future, these sorts of questions/requests would be more appropriately posted to the Docker Community Forums, the Docker Community Slack, or Stack Overflow.


Prevent open on focus

Is there a way to prevent the dropdown from opening onFocus? I need it to only open when the user enters a search term.

Hi
Just pass dataSet like in remote dropdown example https://github.com/onmotion/react-native-autocomplete-dropdown/blob/main/example/components/RemoteDataSetExample2.js

Hi @verbowersock Can you share example for this task. I'm using the dropdown Controller to handle this situation, but did not work proper.
Thanks!

Hi @verbowersock Can you share example for this task. I'm using the dropdown Controller to handle this situation, but did not work proper.
Thanks!


pip install failing with no matching distribution found error

Hi,
I am using python:3.10.14-bullseye image and "pip install mysqlite3-binary" throws the following error.
ERROR: Could not find a version that satisfies the requirement pysqlite3-binary (from versions: none)
ERROR: No matching distribution found for pysqlite3-binary
However, the same setup was working fine a few days back. I am not sure what changed recently. Could you please guide how to solve this issue?
Thanks

Not sure try installing the sqlite3 and python headers and just compiling pysqlite3.


Safari 5.1 (snow leopard) adding and removing items to cart bug

From the feedback:

On Safari 5.1.10 under Mac OS X 10.6.8 (but not under current Firefox or Chrome on the same machine), the "add item to cart" and "remove item from cart" buttons don't work. What's the range of intended browser support?

Is this within our range of support? Unfortunately, I know a fair number of people still on Snow Leopard. Hopefully this is just an easy javascript incompatibility?

Also will probably be fixed by the ractive shop.


Added revoke-token endpoint

Added revoke-token endpoint and updated README.rst to include instructions for revoking token.

Good job on that one !

Glad to be able to help. Would you mind replying to this thread once this new version has released on PyPi?
Thanks for creating this too! It's been fantastic.

It's already on pypi ! ;)


CommandLine.setSeparator() is ignored when generating usage text.

Title says it all. A call to cmd.usage(system.err) will print the default or annotated separator and ignores the value set by cmd.setSeparator("XXX").

Thanks for looking at picocli.
This behaviour is documented in the user manual.
Please see http://picocli.info/#_option_parameter_separators and http://picocli.info/#_custom_separators
Basically, the setSeparator is for the parser only, not for the usage help message.
Declaratively setting a separator via annotations like @Command(separator = ":") impacts both the usage help message and the parser.
The idea was to allow users to separately control the usage help and the parser separator.

I realize now that this could be confusing, but on the other hand I would like to support allowing  users to separately control the usage help and the parser separator.
I just saw that the javadoc on CommandLine.setSeparator is not very explicit about this. I will improve the javadoc.
I hope that will be sufficient, what do you think?

Updated the javadoc.
Closing this issue; please reopen if more work is required.

I have come to my senses after realizing I could not think of any scenario where it would be useful for users to have a different separator in the parser and the usage help. It would only be confusing.
I will make changes such that the separator set programmatically via CommandLine.setSeparator will be reflected in the usage help message. If different separator values are specified declaratively (in @Command(separator="xxx") and programmatically, the programmatically set value will be used.


Fixes #24111: Memory leak in crypto/conf/conf_mod.c

Moved the statement from line 520 to line 525, so we only allocate after the if loop that possibly can return
Before
    to_delete = sk_CONF_MODULE_new_null();

    if (new_modules == NULL) {
        ossl_rcu_write_unlock(module_list_lock);
        return;
    }

After
    // to_delete = sk_CONF_MODULE_new_null();

    if (new_modules == NULL) {
        ossl_rcu_write_unlock(module_list_lock);
        return;
    }

    to_delete = sk_CONF_MODULE_new_null();

Checklist

[ ] documentation is added or updated
[ ] tests are added or updated

This PR is waiting for the creator to make requested changes but it has not been updated for 30 days.  If you have made changes or commented to the reviewer please make sure you re-request a review (see icon in the 'reviewers' section).

@coolshrid this pr is waiting on you to make some requested changes.  If you do not respond we will have to close this PR

Fixed

Please drop the merge commit. git reset --hard HEAD~ ; git push --force should help.

Done

This pull request is ready to merge

Squashed and merged to the master and 3.3 branches. Thank you for your contribution.


remove updates to cluster configs post den launch

If we save the cluster object properly in the den launcher immediately after launching, we can save the need to have to update any SSH creds or launched property fields.
Have a launcher PR up which saves the cluster to Den immediately after it is launched, saving us the need to reload or resave those attributes on the client

#1443  👈 (View in Graphite)
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

I don't think we can remove this code if you want to be able to work with the cluster after launching. We need to return and set the configuration from the Launcher so that the cluster can be used afterwards. E.g. cluster.restart_server() or .to(cluster)


[SMALLFIX] Add @Nullable Annotation

Use the @nullable annotation for all methods which may return null in /alluxio/core/server/common/src/main/java/alluxio/RpcUtils.java

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/2963/
Test PASSed.

alluxio-bot, merge this please


Update doc stub_paths

Update the description of the option, c.f. https://github.com/phpactor/phpactor/pull/1123

The build is failing because of "phpstan" and an error which no longer needs to be ignored

You want me to take care of it here or do you prefer to do a separate PR yourself ?

I will check it


please edit this  >>> Nerfies_Capture_Processing.ipynb  as its throwing error

##https://colab.research.google.com/github/google/nerfies/blob/main/notebooks/Nerfies_Capture_Processing.ipynb#scrollTo=rjnL6FdlCGhE
@title Flatten into images.
import cv2
@markdown Flattens the video into images. The results will be saved to rgb_raw_dir.
video_path = next(iter(uploaded.keys()))
@markdown Adjust max_scale to something smaller for faster processing.
max_scale = 1.0  # @param {type:'number'}
@markdown A smaller FPS will be much faster for bundle adjustment, but at the expensive of a lower sampling density for training. For the paper we used ~15 fps but we default to something lower here to get you started faster.
@markdown If given an fps of -1 we will try to auto-compute it.
fps = -1  # @param {type:'number'}
target_num_frames = 100 # @param {type: 'number'}
cap = cv2.VideoCapture(video_path)
input_fps = cap.get(cv2.CAP_PROP_FPS)
num_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
if num_frames < target_num_frames:
raise RuntimeError(
'The video is too short and has fewer frames than the target.')
if fps == -1:
fps = int(target_num_frames / num_frames * input_fps)
print(f"Auto-computed FPS = {fps}")
@markdown Check this if you want to reprocess the frames.
overwrite = False  # @param {type:'boolean'}
if (1):
filters = f"mpdecimate,setpts=N/FRAME_RATE/TB,scale=iw*{max_scale}:ih*{max_scale}"
tmp_rgb_raw_dir = 'rgb-raw'
rgb_raw_dir = 'rgb_raw_dir'
out_pattern = str('rgb-raw/%06d.png')
!mkdir -p "$tmp_rgb_raw_dir"
!ffmpeg -i "$video_path" -r $fps -vf $filters "$out_pattern"
!mkdir -p "$rgb_raw_dir"
!rsync -av "$tmp_rgb_raw_dir/" "$rgb_raw_dir/"
to remove the files >> !rm -rf /content/rgb-raw
@title Resize images into different scales.
@markdown Here we save the input images at various resolutions (downsample by a factor of 1, 2, 4, 8). We use area relation interpolation to prevent moire artifacts.
import concurrent.futures
import numpy as np
import cv2
import imageio
from PIL import Image
from pathlib import Path
def save_image(path, image: np.ndarray) -> None:
print(f'Saving {path}')
if not path.parent.exists():
path.parent.mkdir(exist_ok=True, parents=True)
with path.open('wb') as f:
image = Image.fromarray(np.asarray(image))
image.save(f, format=path.suffix.lstrip('.'))
def image_to_uint8(image: np.ndarray) -> np.ndarray:
"""Convert the image to a uint8 array."""
if image.dtype == np.uint8:
return image
if not issubclass(image.dtype.type, np.floating):
raise ValueError(
f'Input image should be a floating type but is of type {image.dtype!r}')
return (image * 255).clip(0.0, 255).astype(np.uint8)
def make_divisible(image: np.ndarray, divisor: int) -> np.ndarray:
"""Trim the image if not divisible by the divisor."""
height, width = image.shape[:2]
if height % divisor == 0 and width % divisor == 0:
return image
new_height = height - height % divisor
new_width = width - width % divisor
return image[:new_height, :new_width]
def downsample_image(image: np.ndarray, scale: int) -> np.ndarray:
"""Downsamples the image by an integer factor to prevent artifacts."""
if scale == 1:
return image
height, width = image.shape[:2]
if height % scale > 0 or width % scale > 0:
raise ValueError(f'Image shape ({height},{width}) must be divisible by the'
f' scale ({scale}).')
out_height, out_width = height // scale, width // scale
resized = cv2.resize(image, (out_width, out_height), cv2.INTER_AREA)
return resized
image_scales = "1,2,4,8"  # @param {type: "string"}
image_scales = [int(x) for x in image_scales.split(',')]
tmp_rgb_dir = Path('/content/rgb-raw')
for image_path in Path(tmp_rgb_raw_dir).glob('*.png'):
image = make_divisible(imageio.imread(image_path), max(image_scales))
for scale in image_scales:
save_image(
tmp_rgb_dir / f'{scale}x/{image_path.stem}.png',
image_to_uint8(downsample_image(image, scale)))
!rsync -av "$tmp_rgb_dir/" "$rgb_dir/"
#again
@title Example frame.
@markdown Make sure that the video was processed correctly.
@markdown If this gives an exception, try running the preceding cell one more time--sometimes uploading to Google Drive can fail.
from pathlib import Path
import imageio
from PIL import Image
rgb_dir = Path('/content/rgb-raw')
image_paths = list((rgb_dir / '1x').iterdir())
Image.open(image_paths[0])
#all other cells below them throws error >>>>

https://github.com/google/nerfies/blob/main/notebooks/Nerfies_Capture_Processing.ipynb
compare >>>
please add the


测试vgg_16_cifar.py报错

ubuntu 14.04， cuda 7.5, cudnn 5.1.5 安装成功
但是跑demo/image_classification/train.sh时报错，错误信息如下：
[INFO 2016-08-31 17:20:21,497 layers.py:1430] channels=512 size=8192
[INFO 2016-08-31 17:20:21,497 layers.py:1430] output size for conv_8 is 4
[INFO 2016-08-31 17:20:21,498 layers.py:1430] channels=512 size=8192
[INFO 2016-08-31 17:20:21,499 layers.py:1430] output size for conv_9 is 4
[INFO 2016-08-31 17:20:21,501 layers.py:1490] output size for pool_3 is 22
[INFO 2016-08-31 17:20:21,502 layers.py:1490] output size for pool_4 is 11
[INFO 2016-08-31 17:20:21,507 networks.py:960] The input order is [image, label]
[INFO 2016-08-31 17:20:21,507 networks.py:963] The output order is [cost_0]
I0831 17:20:21.523936 13974 Trainer.cpp:169] trainer mode: Normal
I0831 17:20:21.546594 13974 PyDataProvider2.cpp:219] loading dataprovider image_provider::processData
[INFO 2016-08-31 17:20:21,682 image_provider.py:52] Image size: 32
[INFO 2016-08-31 17:20:21,682 image_provider.py:53] Meta path: data/cifar-out/batches/batches.meta
[INFO 2016-08-31 17:20:21,682 image_provider.py:58] DataProvider Initialization finished
I0831 17:20:21.682675 13974 PyDataProvider2.cpp:219] loading dataprovider image_provider::processData
[INFO 2016-08-31 17:20:21,682 image_provider.py:52] Image size: 32
[INFO 2016-08-31 17:20:21,682 image_provider.py:53] Meta path: data/cifar-out/batches/batches.meta
[INFO 2016-08-31 17:20:21,682 image_provider.py:58] DataProvider Initialization finished
I0831 17:20:21.683006 13974 GradientMachine.cpp:134] Initing parameters..
I0831 17:20:22.312453 13974 GradientMachine.cpp:141] Init parameters done.
.........
I0831 17:20:52.894659 13974 TrainerInternal.cpp:162]  Batch=100 samples=12800 AvgCost=2.35864 CurrentCost=2.35864 Eval: classification_error_evaluator=0.833906  CurrentEval: classification_error_evaluator=0.833906
.........
I0831 17:21:00.884374 13974 TrainerInternal.cpp:162]  Batch=200 samples=25600 AvgCost=2.15774 CurrentCost=1.95684 Eval: classification_error_evaluator=0.792148  CurrentEval: classification_error_evaluator=0.750391
.........

Please use command paddle version to print compile flag, and paste them here~~ Thanks.

Hi, Can you post your GPU type name? For instance, K40?

 But we don't have gtx titanx environment and wasn't able to to replicate this problem. We will solve it later.

I have added a change list to fix it.

@quietsmile We have fixed this problem in GTX 980, see https://github.com/baidu/Paddle/commit/341486d54ddb5d25685593ec3fda361338d68a7b .

Fixed #107, and close issue.


Add content to Day 2

Select the Day of Content
Day 2
What information is missing?
I would like to add about how to add new line in C++ using endl and its advantages and disadvantages.
Please assign me this issue to work on it.

@subhadipbhowmik I have opened pull request #216  to this issue. If you feel the content is more valuable, please assign the label level2

Please close this issue as the pull request related to this issue is merged.


C#: Generate instance types for singletons

Singleton classes in C# are currently exposed as static classes. In some cases these classes are inherited (e.g.: PhysicsServer2DExtension derives from the singleton class PhysicsServer2D).
We currently ignore these classes and don't generate them, because C# doesn't allow inheriting static classes. In order to fix this, with this PR C# now generates additional Instance classes for every singleton. E.g.:
// Good old static singleton class. Still generated.
public static class PhysicsServer2D { ... }

// New singleton instance class.
public class PhysicsServer2DInstance { ... }

// Now we can generate PhysicsServer2DExtension, deriving from the instance class.
public class PhysicsServer2DExtension : PhysicsServer2DInstance { ... }

Constants and enums remain in the static singleton class (e.g.: Input.MouseModeEnum).
Paves the way to eventually remove the static singleton classes[^1].

Previous attempt: https://github.com/godotengine/godot/pull/59208

Considerably simplifies the implementation of https://github.com/godotengine/godot/pull/73730 for the singleton classes, since it can reuse the existing system used by instance classes to raise the events.

[^1]: This would break compatibility and won't happen in 4.x, but in 5.0 we could remove the static classes, rename the instance classes to remove the Instance suffix and create a Singletons static class that can be used with global using. Similar to how singletons are exposed in GDScript using @GlobalScope. See https://github.com/godotengine/godot/pull/59208#issuecomment-1069583895.

Does this help with resolving compatibility issues from https://github.com/godotengine/godot/pull/75694 ?

As I understand it, https://github.com/godotengine/godot/pull/75694 changes EditorInterface to be a singleton. This means in C# the EditorInterface becomes static which breaks compat. This PR doesn't help with that, the EditorInterface would still be generated as a static class after https://github.com/godotengine/godot/pull/75694.
However, with this PR we generate an additional EditorInterfaceInstance class which is not static and would be essentially the same class that existed in 4.1. So I could hardcode this class so it doesn't add the Instance suffix and to avoid generating the static class, then it should avoid breaking compat.

However, with this PR we generate an additional EditorInterfaceInstance class which is not static and would be essentially the same class that existed in 4.1. So I could hardcode this class so it doesn't add the Instance suffix and to avoid generating the static class, then it should avoid breaking compat.

That sounds like a great idea, if it's possible. I think if we are going to merge this PR, we should merge it first, then you can suggest me how to update mine to make address the issue.

I've added a commit with the some of the changes suggested by @neikeq in https://github.com/godotengine/godot/pull/75694#issuecomment-1501944555. This means that now EditorInterface will still be generated as a non-static class, but your PR should not remove the get_editor_interface() methods to avoid breaking compat entirely.

Thanks!


[Loans] Catch up on adds and removes from nonzero list as soon as distributions complete.

Loans currently accumulates additions and removals from the nonzero list throughout the day and only catches up with them at the start of the next day in order to calculate the mining state for each position. It could cause trouble for the system if these lists get too long. To mitigate this it is suggested to only hold the changes to the nonzero list while the distributions are happening, which is when they need to be snapshotted for calculation of the mining state for all positions.
This concern is particularly notable for first day activity when the add_to_nonzero list could get very large as everyone joins. If there are removals from that list when it is large we could have failing transactions, but it probably would not happen if the number of additions is lower than 1000. Even then, in the worst case it would only cause transactions to fail if a person is paying off all of their debt. Other transactions would proceed just fine and the total payoff transaction would work the next day.
With this fix, changes to the nonzero list would only be cached during distributions and distributions will only be considered complete once the nonzero list has been brought up to date with those changes. Then changes during the rest of the day will be applied directly to the nonzero list.

Might not need to do this if we convert to block-by-block rewards

This will be made irrelevant when we remove the debt requirement for mining and rebalance over the entire borrower list.


Update Guice to 4.2.0

Guice 4.0 released in April 2015! Next version of Guice - 4.1.0 released in June 2016.
I tried to simply bump version and run tests, but there are few failed tests. Looks like there are changes around how ProvisionException populated with error messages. So to update guice version we need to fix few tests, and try on real world apps that there are no other regressions.

It will be really important to upgrade Guice to a version that supports Java 9 properly per https://github.com/google/guice/issues/1085 . Looks like it is coming soon.

http://mvnrepository.com/artifact/com.google.inject/guice/4.2.0


Failure to provide response

In the current hover docs many things have changed.
This app can't process the actions following your tutorial in Medium.
If possible can you update this app and functions.

Sure i will work on it

Okay
Let’s me see to it, if you can give me access
On Fri, Aug 7, 2020 at 2:57 PM LockwoodTech<EMAIL_ADDRESS>wrote:

Sure i will work on it
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/LockwoodTech/Flutter_USSD_SDK/issues/1#issuecomment-670502878,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIXJSSMTOU5FAY52OTF7YSLR7P22LANCNFSM4PXPQXYQ
.

Clone the repo. And follow some basic steps in installation to see the problem.

@LockwoodTech I have configured and it seems like working well but i got a problem here

As you can see the mobile data is on.
The app is allowed on all needed permissions.
I think the problem is coming from Hover version or other error from hover.

Okay dear
On Fri, Aug 7, 2020 at 9:01 PM Chatter Tech<EMAIL_ADDRESS>wrote:

As you can see the mobile data is on.
The app is allowed on all needed permissions.
I think the problem is coming from Hover version or other error from hover.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/LockwoodTech/Flutter_USSD_SDK/issues/1#issuecomment-670663840,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIXJSSKVUO6QHLVRFNIKFT3R7RFQVANCNFSM4PXPQXYQ
.

Check your internet connection
On Fri, Aug 7, 2020 at 9:04 PM Samuel Chukwuemeka<EMAIL_ADDRESS>wrote:

Okay dear
On Fri, Aug 7, 2020 at 9:01 PM Chatter Tech<EMAIL_ADDRESS>wrote:

As you can see the mobile data is on.
The app is allowed on all needed permissions.
I think the problem is coming from Hover version or other error from
hover.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/LockwoodTech/Flutter_USSD_SDK/issues/1#issuecomment-670663840,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIXJSSKVUO6QHLVRFNIKFT3R7RFQVANCNFSM4PXPQXYQ
.

There is internet connection so I don't know what's the problem

Hover needs to update actions from time to time so just uninstall the demo and run a new install with internet connected

Okay dear
On Fri, Aug 7, 2020 at 9:17 PM LockwoodTech<EMAIL_ADDRESS>wrote:

Hover needs to update actions from time to time so just uninstall the demo
and run a new install with internet connected
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/LockwoodTech/Flutter_USSD_SDK/issues/1#issuecomment-670672284,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIXJSSJX356H4K4337WKMH3R7RHM7ANCNFSM4PXPQXYQ
.

@LockwoodTech I tried with but it returns the same as the screenshot above.

I have resolved this issue I will have a pull request in order to provide fixes and addition of the current flutter and hover upgrades.

Have you fit the problem and can we collaborate together
On Fri, Aug 7, 2020 at 9:21 PM Samuel Chukwuemeka<EMAIL_ADDRESS>wrote:

Okay dear
On Fri, Aug 7, 2020 at 9:17 PM LockwoodTech<EMAIL_ADDRESS>wrote:

Hover needs to update actions from time to time so just uninstall the
demo and run a new install with internet connected
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/LockwoodTech/Flutter_USSD_SDK/issues/1#issuecomment-670672284,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIXJSSJX356H4K4337WKMH3R7RHM7ANCNFSM4PXPQXYQ
.


added podcast entry

The NoSQL Database Podcast, episode from May 2017

@mgroves : Thanks for your contribution to the Azure documentation! The author, @aliuy, has been notified to review your proposed change.

#sign-off

#sign-off


Daisy: Use ListUsable instead of List for Subnetworks

In Shared VPC environments the "Network User" role can be granted at different levels: project or subnet. In the case that the IAM role is granted at the subnet level the user will not have the ability to call Subnetworks.List for the project. Instead, Subnetworks.ListUsable will list the subnets within the project they have the ability to use.  ListUsable is more versatile as it works for both cases.

@EricEdens PTAL when you have a chance, I've updated the code based on our discussion last week.


[8.x] Support calling BelongsToMany::firstOrNew/Create without parameters

This PR makes BelongsToMany consistent with HasOneOrMany and Builder (c.f. https://github.com/laravel/framework/pull/33334).

These are unfortunately breaking changes to the methods signatures. Please send this to master. Thanks

✅ #37791


[AST] A couple of PatternBindingInitializer cleanups

Remove SerializedPatternBindingInitializer & SerializedDefaultArgumentInitializer since we can deserialize PatternBindingInitializer & DefaultArgumentInitializer directly (as I understand it, the SerializedXXX decl contexts only exist for cases where we don't want to serialize e.g a full ClosureExpr/TopLevelDecl, that doesn't apply here). This then allows us to clean up PatternBindingDecl's handling of PatternBindingInitializer a bit.

@swift-ci please test

@swift-ci please test source compatibility

@swift-ci please test source compatibility

@swift-ci please test

@swift-ci please test source compatibility

@swift-ci please test

@swift-ci please test source compatibility

@swift-ci please test

@swift-ci please test source compatibility

Source compat failures are unrelated


Supported pinocchio with cppadcg installation

This enables us to install example-robot-data when Pinocchio has been installed with CppADCogen

Hi ! This project doesn't usually accept pull requests on the main branch.
If this wasn't intentionnal, you can change the base branch of this PR to devel
(No need to close it for that). Best, a bot.

This should be fixed in pinocchio packaging, not here, and in each package dependent on pinocchio

This should be fixed in pinocchio packaging, not here, and in each package dependent on pinocchio

Agreed! I created an issue and compromise to handle it when is possible. Is this enough for now? Or would you prefer to revert this PR?


LazyServiceFactory class_exists feature

Hello, in the lazy_services configuration is a class_map array.
That array looks for most of my services like this:
[
    Foo::class => Foo::class,
    Bar::class => Bar::class,
]

For one Service i need a factories entry, a delegators entry and a class_map entry to the service_manager configuration.
Is it possible to add a class_exists option as "feature" to the LazyServiceFactory?
if (isset($this->servicesMap[$name])) {
    return $this->proxyFactory->createProxy($this->servicesMap[$name], $initializer);
} elseif ($this->useClassExists && class_exists($name)) {
    return $this->proxyFactory->createProxy($name, $initializer);
}

To be honest, this could easily be the default settings, but the service manager provides no type guarantees, so it is quite risky to apply. Could you check if we could add return type hints to the lazy loafing proxy initializers?

This repository has been closed and moved to laminas/laminas-servicemanager; a new issue has been opened at https://github.com/laminas/laminas-servicemanager/issues/17.


Hoist upgrade handler into current scope by using an arrow function

Makes sure that the scope for this is correct when calling the socketUpgradeHandler function.
Closes #26

:shipit:

Thanks for tackling that! 😄


Fix the IsLoopback check

IsLoopback() is an incorrect check. It will be true if a local proxy (on the same machine as the Kudu server) forwards requests to Kudu as it would be a local connection.
Instead, checking for the Host header is a better check for mocking APIs

@jvano @suwatch

it looks good to me
:shipit:


Deleted my Cex.io acocunt

Hi, please tell me how to recover my CEX.io account. All my money is there. I accidentally deleted it from the list.

Either restore from a backup or use this form to recover your account. https://support.cex.io/hc/en-us/requests/new?ticket_form_id=87564


Rewrite plugin to act as an authentication provider for WordPress API

Proposing that the implementation be changed so that it acts as an authentication provider.

https://github.com/georgestephanis/application-passwords and https://github.com/WP-API/OAuth1 are examples of implementation

Here is another example https://github.com/Tmeister/wp-api-jwt-auth

I have actually now done this.


Routing doesn't match routes of the url is uppercase

Need to fix the issue by setting every url to lowercase for matching with the defined routes.

I will leave this as it is, as url should be lowercased and if it is not it should throw 404 error as it currently does.


support break in suspend blocks

Internally, await is a suspend block that reaches into the coroutine's frame, atomically modifies the awaiter pointer, and then based on the previous value of the awaiter pointer, might decide not to suspend after all.
We could expose this ability to zig programmers, like this:
suspend |p| {
    const prev_value = @atomicRmw(usize, &something, AtomicRmwOp.Xchg, something_else, AtomicOrder.SeqCst);
    if (prev_value == 0) {
        queue(p);
    } else {
        break;
    }
}

This feature can be used in a couple of interesting ways with a thread pool:
Switch the current function to running in another thread, and run another function in the current thread:
suspend |p| {
    threadPoolResume(p);
    anotherFunction();
    break;
}

Fork the current function, running it in 2 kernel threads simultaneously:
suspend |p| {
    threadPoolResume(p);
    break;
}

Also related is what to do when returning from a suspend block:
        suspend |p| {
            var ev = std.os.linux.epoll_event {
                .events = EPOLLIN|EPOLLET,
                .data = std.os.linux.epoll_data {
                    .ptr = @ptrToInt(p),
                },
            };
            try epoll_ctl(self.epollfd, EPOLL_CTL_ADD, fd, &ev);
        }

[x] labeled suspend blocks
[x] ability to break from labeled suspend block
[ ] handle returning from suspend block (think about try carefully). it might already work correctly actually. return/try just cancels the suspend and then does a normal return/try. but let's add some test cases.
[ ] update std.zig.parser to handle the new syntax


License?

Your notes say "feel free to use". Can you add a license file to explicitly grant this permission?
MIT is a good choice if want a copyright attached: https://tldrlegal.com/license/mit-license
WTFPL is a good choice if you don't care: https://tldrlegal.com/license/do-wtf-you-want-to-public-license-v2-(wtfpl-2.0)

Just did that, it's explicitly MIT now. (See LICENSE.md)


Tokens not revoked in APIM  GW

Description
Hi Team,
We have observed the following behavior in APIM 3.1.0 with IS-as-KM setup with is 5.10.0 [1]: users are able to invoke APIs using the old access token (JWT) even after it has been renewed using the refresh_token grant.
In the IDN_OAUTH2_ACCESS_TOKEN_AUDIT table, the previous token is in the INACTIVE state, while in the IDN_OAUTH2_ACCESS_TOKEN table, we have the new token in the ACTIVE state. Please refer to the following screenshot from the database.

Steps to reproduce

Get the APIM 3.1.0 u2 217 pack and create an API
Generate the JWT token and invoke the API (use the following curl)
curl -k -X POST https://localhost:8243/token -d "grant_type=password&username=admin&password=admin" -H "Authorization: Basic VzdPT3pCbHQ3bEFhenE3alBCRVRLeFNOM2ZnYTpvX2dETXlKNXp4cHNGQVN5ZXZid2ZNUk1vWVVh"

3.Then renew the access token using refresh_grant and invoke the API.
curl -k -d "grant_type=refresh_token&refresh_token=<refresh token>" -H "Authorization: Basic VzdPT3pCbHQ3bEFhenE3alBCRVRLeFNOM2ZnYTpvX2dETXlKNXp4cHNGQVN5ZXZid2ZNUk1vWVVh" -H "Content-Type: application/x-www-form-urlencoded" https://localhost:8243/token

Then try to invoke the API again using the access token generated in step 2, as we have renewed this token at step 3, this invocation should give the following error with 401 status code, but we were able to invoke api without any error using this old token.

<ams:fault xmlns:ams="http://wso2.org/apimanager/security">
  <ams:code>900901</ams:code>
  <ams:message>Invalid Credentials</ams:message>
  <ams:description>Invalid JWT token. Make sure you have provided the correct security credentials</ams:description>
</ams:fault>

Hope we need to fix this
Setup details
APIM 3.1.0 - U2 217
wso2is-km-5.10.0 - U2 223
[1] https://apim.docs.wso2.com/en/3.1.0/install-and-setup/setup/distributed-deployment/configuring-wso2-identity-server-as-a-key-manager/
Thanks,
Vikum
Steps to Reproduce
N/A
Affected Component
APIM
Version
3.1.0
Environment Details (with versions)
No response
Relevant Log Output
No response
Related Issues
No response
Suggested Labels
No response

Hi all,
Since this U2 update has already been released, we are closing this public git issue.
Thanks,
Dulith


[Bug] 页面报错

Describe the bug
点击设置界面，出现以下报错。

Deployment

[x] Docker
[ ] Vercel
[ ] Server

Desktop (please complete the following information):
iOS的Safari、window端的Chrome、Edge均出现

I have the same problem, but i dont how to make it. If you resolve this problem, please remind me

Describe the bug 点击设置界面，出现以下报错。
Deployment

[x]  Docker
[ ]  Vercel
[ ]  Server

Desktop (please complete the following information): iOS的Safari、window端的Chrome、Edge均出现

这个错误百分百会出现吗?

@Miykah Could you tell me more specifically how to reproduce this problem? Tried but cannot reproduce this issue for now

Docker 部署出现该问题时，请优先检查网络问题，请确保你的 nginx 配置放行了静态文件。


How to fine tune the model

Hi @TobyPDE
I have use train.py to train a new model, but if I would like to fine tune the pre trained model, how should I do?
Thanks!!

Hi,
We performed finetuning as follows: Switch from ADAM to plain SGD with a very small learning rate (e.g. < 1e-4), perform minority oversampling (i.e. select images that contain rare classes more often. Maybe I can add the corresponding data provider to the repository), slightly decrease the strength of the data augmentation.
That being said, the provided model has already been extensively finetuned and it has been selected using early stopping by looking at the validation error. Hence, I don't think that it's possible to improve the score any further without making some adjustments to the architecture and or the augmentation pipeline.

Hi @TobyPDE ,
Thanks for your reply.
I will change the class to less than 19 and add more training data for finetuning the model " frrn_b.npz ".
So, just change the ADAM to SGD and reset learning rate can enhance the model.
Because, I don't want to retrain model from cityscapes training data that you used, just want to use new training data to enhance your model.
Thanks~~

Hi @LemonAniLabs,
we trained the model from scratch for about 7 days and fine-tuned it for a futher 2-3 days on a Titan X (Pascal) GPU.
How do you determine that it hasn't finished? Can you maybe send me an email<EMAIL_ADDRESS>with a more detailed description of what you are trying to achieve? Maybe I can give some better assistance then.
Best,
Toby

Hi @TobyPDE ,
Nice device~
My device is GTX 1080 8G, so I have to reduce the sample_factor to 4.
This model is fine-tuning on iterator 250000.....  seems endless.
Is the training  will be auto finishing? I find lot of .npz files in logs/ that size is only 200 bytes
How can I find the model snapshot?
Thanks~
LemonAniLabs

Hi, no the training does not terminate automatically. You have to perform early-stopping my watching the validation IoU score in the training monitor. Also, the logging solution has been overhauled and now all logs are written to a single file. If x is your specified model file, then x_snapshot_n.npz is the model snapshot from iteration n.
250000 seems really high. The model usually converges within 40000 - 60000 iterations.

Oh, I see.
But in the dltools/hooks.py have a little problem.
I can get the snapshot by replace
if len(set(self.tags).intersection(kwargs.keys())) > 0 and kwargs["update_counter"] % self.frequency == 0:
to
if True and kwargs["update_counter"] % self.frequency == 0:
Where should be setting for before_get_data tag?
Thanks

This was a bug that happened when I refactored some code. I fixed it. Sorry for the inconvenience.

Cool!!
Thanks for your help~~!!!
Probably, I think we can close this issue.


Can't see primal zaps in Damus

I'm noticing I can't see zaps on primal addresses in damus. I'm guessing this is either because:

The primal zapper is not zapping to the relay list in the zap request
The primal zapper is creating invalid zaps

I haven't dug deep enough to determine if this is 1 or 2
client initiating action
Damus
client receiving or observing action (or lack thereof)
Damus
timestamp
what happens
Can't see zap
suggestion
Investigate common sources of errors:
a. Is the nostrPubkey set properly on the endpoint and zaps are enabled.
b. Determine the primal zapper and see if zaps are making it to the zap request relays

@mbrat1
@moysa

just to let everyone know. i'm looking into this. i developed primal wallet server which is broadcasting zap receipts to relays. i have just installed macos VM to run Damus. we will know more soon..

just to let everyone know. i'm looking into this. i developed primal wallet server which is broadcasting zap receipts to relays. i have just installed macos VM to run Damus. we will know more soon..

Благодаря 🤝

this also seems to be a problem with npub.cash lightning addresses https://njump.me/nevent1qqst0ecyf3j3wx9xrv7u00sud0dgerl0ty20r28vn5eppprrmsqnd6qzyruwd3jrgtc7q5jgqccwylsszmwwxh7r5c2wvpp5lm625fgrx2x2j52zm27

this also seems to be a problem with npub.cash lightning addresses njump.me/nevent1qqst0ecyf3j3wx9xrv7u00sud0dgerl0ty20r28vn5eppprrmsqnd6qzyruwd3jrgtc7q5jgqccwylsszmwwxh7r5c2wvpp5lm625fgrx2x2j52zm27

they don't put the P tag or the preimage tag

this also seems to be a problem with npub.cash lightning addresses njump.me/nevent1qqst0ecyf3j3wx9xrv7u00sud0dgerl0ty20r28vn5eppprrmsqnd6qzyruwd3jrgtc7q5jgqccwylsszmwwxh7r5c2wvpp5lm625fgrx2x2j52zm27

they don't put the P tag or the preimage tag

@callebtc  👀

On Thu, Mar 07, 2024 at 07:55:04AM -0800, alltheseas wrote:

this also seems to be a problem with npub.cash lightning addresses njump.me/nevent1qqst0ecyf3j3wx9xrv7u00sud0dgerl0ty20r28vn5eppprrmsqnd6qzyruwd3jrgtc7q5jgqccwylsszmwwxh7r5c2wvpp5lm625fgrx2x2j52zm27

they don't put the P tag or the preimage tag

Damus doesn't validate preimages or care about P tags. It only ensures
description hashes match.
All we need is someone to paste an example primal or npub.cash zap in
here and I can debug. What are their zapper pubkeys?

I think this is zap receipt for a zap to someone with a primal lightning address.
{
  "content": "",
  "created_at":<PHONE_NUMBER>,
  "id": "02439a4794f9c8e76c9bebb601848da802962f868d4b5f657c931d30775edea9",
  "kind": 9735,
  "pubkey": "f81611363554b64306467234d7396ec88455707633f54738f6c4683535098cd3",
  "sig": "8dba6ddeee08bb5c5e3c16f8f2edbceb4c1d1faf72efb742099c8e7df8172624987ceb1916cbb5d586f5d17f547d28ca51af5171b90ec236ef3df669e8e5f5b5",
  "tags": [
    [
      "p",
      "805b34f708837dfb3e7f05815ac5760564628b58d5a0ce839ccbb6ef3620fac3"
    ],
    [
      "e",
      "b9ce96fca6e1726fcb7d509879edc02d1a291aaa035cf47a92e5ae9e862acce4"
    ],
    [
      "bolt11",
      "lnbc210n1pj7hdfcpp5asu2f5natzge76l983jhcjc2suje548kqhukhzj552yhmeczjncsdqv0fshqurfdenscqzzsxqrrs0sp5mdg7k35r0t36hnv9dyr3zwwj2s8c8qe0w7dp4d6xal9d2zd64zcs9qyyssqwxs0yl80l926vqvwz7tqcm55hnxd0smrr0xp4mvzfy3c0efffd896j349gymwmlhau0j9xhp4xpe6xf6lc72cht98pkm2t0rw4j5u0qq3q949e"
    ],
    [
      "description",
      "{\"id\":\"a569dae3a5bdf41d80b46651dfa5ebe8d2bb670b5863b950933ab2122a69e2fd\",\"pubkey\":\"84580515242fc91b6bec5988b6f43e46f05c2de55612e0ec41cecdb4a2059f18\",\"created_at\":1709946166,\"kind\":9734,\"tags\":[[\"e\",\"b9ce96fca6e1726fcb7d509879edc02d1a291aaa035cf47a92e5ae9e862acce4\"],[\"p\",\"805b34f708837dfb3e7f05815ac5760564628b58d5a0ce839ccbb6ef3620fac3\"],[\"relays\",\"wss://creatr.nostr.wine\",\"wss://eden.nostr.land\",\"wss://filter.nostr.wine/npub1s3vq29fy9ly3k6lvtxytdap7gmc9ct092cfwpmzpemxmfgs9nuvq4uexqx?broadcast=true\",\"wss://nos.lol\",\"wss://nostr.mutinywallet.com\",\"wss://nostr.wine\",\"wss://relay.damus.io\",\"wss://relay.nostr.band\"]],\"content\":\"🤙\",\"sig\":\"469e298c61f131fd3f0a28997345a9edd0200f8d4d486da8de174bc3e79e6b4f20331ff4ebfc66138d56c8a79558df2d9901dc96a12143f751044cc0b50e6529\"}"
    ],
    [
      "P",
      "84580515242fc91b6bec5988b6f43e46f05c2de55612e0ec41cecdb4a2059f18"
    ]
  ]
}

Looks like the problem is that the invoice has a description of "zapping" and not the proper description hash

Hey everyone, npub.cash maintainer here.
I'll look into this over the weekend. I did implement proper description hashes in npub.cash, but maybe I made a mistake somewhere. Here is a zap receipt generated by npub.cash for debugging.
{
  "content": "",
  "created_at":<PHONE_NUMBER>,
  "id": "933ba84249d90ae5305a2ef70d5787fc69829087621098e283f223c26b8ac8db",
  "kind": 9735,
  "pubkey": "8576fd19bfe693cba6f0aee33b8427334306846ec61b65e2d617209e1c021046",
  "sig": "63388104841992e9f394bacba26389d200b733c3485bddb7d5ffe946c5d7762c03da5fe8743f4614f356af6e91a2d31523ccc667d90b7934e209dac0d2476646",
  "tags": [
    [
      "p",
      "139137969c1c56bf8306cd71272f681ed54206be15eeceb9eb98956d2fd9f7ef"
    ],
    [
      "bolt11",
      "lnbc110n1pj7csvkpp580l5ffl0qgqj3c66hxhaykhhq7wd6agqx79pv20x5phx6y57j4nqhp5ryuhtw8z7e6wmpes3kwvyxgunr5es4jeasmfpupv2kn7z94wjy7qcqzpuxqyz5vqsp5ugngxxsdcjmxdllaxekgg3dn25plhwt3p4q70mf29cm3yudu00sq9qyyssq4rp6t07y3y9mzhwlmekw6wcys46jmc5jw9ll7gn92dsshf0qtcspe26rq2f7kl5szekez7h0t9vplugrvaaxm7wxefwynsgupvnaefqp52v0mz"
    ],
    [
      "description",
      "{\"id\":\"78f0f984286cd86039691142ee4c9cde60e92adf94289c2d5d5b0531b2c7a88a\",\"sig\":\"389d0aa50906732b07478b7d7b75ec0a838f88b502406d53b84b64caec9d59f328a43e97255e33b9088739c6b497724da9e467ea9885641c2b2eb774afcdf1f3\",\"kind\":9734,\"tags\"[[\"p\",\"139137969c1c56bf8306cd71272f681ed54206be15eeceb9eb98956d2fd9f7ef\"],[\"relays\",\"wss://pyramid.fiatjaf.com/\",\"wss://reactions.v0l.io\",\"wss://bostr.lecturify.net/?accept=0%2C1\",\"wss://e.nos.lol/\",\"wss://relay.nostrplebs.com/\",\"wss://relay.nostr.band/\",\"wss://nos.lol/\",\"wss://studio314.nostr1.com/\",\"wss://nostr.mutinywallet.com/\"],[\"amount\",\"11000\"],[\"e\",\"910088cb5f961c6e3cbcab9a24d0a1ab0ff83cdd793abf537fba7ec97357e020\"]],\"pubkey\":\"6e75f7972397ca3295e0f4ca0fbc6eb9cc79be85bafdd56bd378220ca8eee74e\",\"content\":\"\",\"created_at\":1709982100}"
    ],
    [
      "e",
      "910088cb5f961c6e3cbcab9a24d0a1ab0ff83cdd793abf537fba7ec97357e020"
    ]
  ]
}

from now on we should be using correct description hash in invoices for zaps sent to Primal wallet users. after this correction i am able to see received zaps in Damus.

@Egge21M when I hash the description event I get 0f6e74ebd6262fe4052c1cb5fa170f8c1847a133e4db7387abd9c16b1d118c3f but when I decode the invoice it has the description hash 193975b8e2f674ed87308d9cc2191c98e9985659ec3690f02c55a7e116ae913c

@Egge21M when I hash the description tag I get 0f6e74ebd6262fe4052c1cb5fa170f8c1847a133e4db7387abd9c16b1d118c3f but when I decode the invoice it has the description hash 193975b8e2f674ed87308d9cc2191c98e9985659ec3690f02c55a7e116ae913c

Thanks for looking into this. There must be some issue with decoding and encoding in my code. I'll try to figure out where things go wrong.


[Drawer] Port component

[ ] Component
[ ] Tests (at least unit tests)
[ ] Docs
[ ] Demo

Started this for the docs site, it needs finishing

Can I get some context about what needs to be done here? Would love to help.

Anyone working on this issue? I'd like to help out.

I am using material-ui@next Drawer component. Why there is no width prop for Drawer component? Is Drawer component not migrated fully to v1-beta?


DNM - Verify new CRC image

This commit is just to trigger CI to verify new CRC image.

recheck

recheck

recheck

recheck

recheck

recheck

recheck

recheck

recheck

recheck

recheck

check-github

recheck

recheck

recheck

recheck

want to take job merics from the cri-o: crictl stats -a -s 10 |  (sed -u 1q; sort -k 2 -h -r)

recheck


Add Non Racked Spaces

Proposed Functionality
Create new organization objects:
(1)'Rooms', equivalent in hierarchy to Rack Groups
(2)'Spaces,' equivalent to Racks, without rack units specified
(1) may refer to a storage room, loading dock, cubicle, etc
(2) may refer to a shelf, bin, bench, desk, etc
Use Case
All data center owning companies have store rooms and cubicles, and many have labs with benches and loading docks. For companies using Nautobot for asset management, that can represent millions of dollars of assets which can't easily be tracked in Nautobot/Netbox, and necessitates augmenting the system with spreadsheets, and in many cases, other asset management tools like Service NOW.
Creating non racked spaces can enable end to end asset management.
Additional use cases include a place to hook in RFID tracking systems and similar.
Database Changes
TBD
External Dependencies
None

This sounds like a great idea.

Thank you for the feature request! To my mind this aligns closely with some of the ideas we're also considering in #230.

I'm going to mark this as a duplicate of #774 as it falls within the scope of that broader epic. We'll make sure this gets addressed as a part of that. Thank you!


Fix #7394 and #6550 & Added test & improved error message

also renames range_iter_len -> comprehension_iter_len
As discussed with @stuartarchibald, this adds the code he suggest in both the issues to (the renamed) comprehension_iter_len and gives a better error message. It might be worth considering to move comprehension_iter_len to another module, since it is now even less tightly coupled to the rangeobj.

Thanks for the patch @MegaIng.
As this contains my patch from https://github.com/numba/numba/issues/7394#issuecomment-916865579 please could one of you take a look at this @esc @sklam @gmarkall ? Thanks!

also renames range_iter_len -> comprehension_iter_len

@MegaIng RE: the above, I've left some comments here on the original issue: https://github.com/numba/numba/issues/7394#issuecomment-916904842


api / bindings for Perl?

Any plans to make Gemini-bindings for Perl?
//Pär L

Gemini is written in python, so unfortunately, we won't have bindings for perl.


[feature request] Function printing the error location in source json would be beneficial

Here is an example what it might print:

                                 {["a","b","c",]}
 (expecting array element) --------------------^

This would be very convenient for quick identification of problems in jsons.

I added a proof of concept. The errors are not as specific as described in this ticket, but that's inherent from how Jansson parses I guess. Anyway, it simply uses the contents of json_error_t

Oh and btw, does error.position refer to the bytes or character points for UTF-8?

error.position is just plain bytes.


Wall extends beyond right edge when fitwidth is used

I am having problems trying to keep my blocks (different widths, but same height) from extending past the right side of the enclosing div.   I have tried many kinds of settings such as position/display/width for the enclosing div, and I have checked that the blocks have the correct style and data width.  How can I get freewall to always keep the full blocks visible even if it means leaving a large space at the end of the line.
Thanks!

Bump.


IPFS Support

Perhaps you can implement IPFS Support? https://ipfs.io
It's a bit complicated I am guessing but I think you can do it somehow

It would be pretty cool to see Distributed Gemini Capsules on the dweb

Peer-to-peer networks are pretty cool, but this seems too far removed from "standard Gemini" to be in the scope of the project at this time.
I would also imagine that serverside peer-to-peer content distribution would be generally more useful so it would work with all clients.

Makes sense

Hello!
I think it makes sense to not implement a full IPFS stack, but just proxy-like interaction with ipfs://$HASH links. Lagrange just needs to fetch http[s]://$GATEWAY_DOMAIN/ipfs/$HASH content and render it.
User can choose local or remote IPFS gateway to access such pages.


Dramatic performance difference between blade component vs blade helper

There is a huge speed difference depending on which method you use to include an icon using this package.
The two methods I have checked are:

Blade Component <x-heroicon-o-arrow-right/>
Blade Helper @svg('hero icon-o-arrow-up')

Using the "helper method" is on average 10 times faster to render than using the "component method". It can be up to 20 times faster on the very first page load.

1st page load values
2nd page load (and after) values

The speed differences aren't much when loading a single icon. However on my website I have a page that lists 80 products per page, with each one having 3 icons. Here it makes sense for me to use @svg as the load time quickly adds up.
Why is using @svg so much faster than <x-heroicon-xxxxx/>?
I have created a sample repo so anyone can easily run the tests for themselves.
https://github.com/MaxGiting/blade-ui-performance
To get the sample repo to work you will need to clone, run composer update, artisan serve and visit the homepage.

Closed as I moved this issue to the base repo
https://github.com/blade-ui-kit/blade-ui-kit/issues/130


Tests workflow returns error (fails) when no tests are present

No tests should just report coverage 0% - not a red cross

Do you have an example action where this occurs? Where does it error?

I looked a little bit into it and pytest responds error code 5 if this happens - if there is an easy way to ignore this great, otherwise a dummy test
def test_dummy():
    pass

can be used as a workaround and we can close this.

Let me run a few quick tests to see how hard this would be to address. Though, I'm honestly a little tempted to say that this is a feature not a bug i.e. a test workflow should fail if no tests are found. In that case I'd expect the user to delete the test workflow, or fix the issue that's causing tests to not be found.

Right - so I don't think there's any way to work around it other than as you suggested creating a dummy test, or explicitly capturing exit code 5 and ignoring it, either in the action or in a conftest.py.
To me, putting either solution in the template seems like it adds complexity without being very helpful and I'd suggest considering this failure a "feature".


Merge prTesting_201906021115 branch to master branch

Docs Build status updates of commit f55b7e1:
:clock10: Pending: waiting for processors (15 builds ahead of you)
:warning: Docs Build is busy, currently there are 15 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit f55b7e1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

split/updateTestCon.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Multiple use of -v flag

The SA user guide states that "the argument can be passed multiple times".
But the Python **kwargs are mapped to a dictionary, which does not allow duplicate keys.
A work around such as say v_i and v_o for input and output variables may be needed for passing arguments to the PySPARQL cli.
These can then be normalised in the implementation before being passed to the SA main method.
@enridaga wdyt?

We can process python arguments before passing them to the CLI. In the case of -v we could also support a dictionary as the argument value. If a dictionary {'param1':'val1','param2':'val2'} is passed, then we serialise it as  -v param1=value1 -v param2=value2.
A more general approach is to develop a class with a specific method for each one of the CLI parameters. The class will collect all the info and then have the methods select(), ask(), etc... with no argument (because it will use the ones collected before) that pre-process parameters and calls the methods already developed.
Example:
b = sparqlanything.client()
b.query(path to query)
b.outputFile(path to output file)
b.format(JSON)
...
data=b.select()

Addressed this  in commit 13a9c1c


Set all package targets to ES2015

This explicitly sets all TypeScript compile targets to es2015 (= alias of es6). In the case of @liveblocks/react, this means an upgrade from es5 to es2015. This upgrade is necessary to avoid TypeScript errors like the one below:

To avoid errors like above, the targeted version of @liveblocks/react (and other secondary packages) should never be higher than the targeted ES version of @liveblocks/client.
In most other packages, the targeted version wasn't specified explicitly, i.e. esnext, which may make the compiled code not useable for developers that cannot use the latest ES version yet. This PR effectively “downgrades” the targeted ES version in those packages.
Whether we pick es2015, or perhaps want to target a higher runtime is a trade-off between compiled bundle size and support in more code bases.
I therefore think es2015 is a good pick for now, but lmk if you think we should aim higher here!

Targeting es2015 makes sense! Thanks for adjusting that everywhere.
I didn't verify but does it impact the bundle size? We're using babel for cjs and esbuild for esm and I don't think they're using tsconfig target option.
I didn't find great best practices for modern library bundling so most of it is inspired by https://github.com/pmndrs/zustand/blob/main/rollup.config.js
It's still not clear to me if our bundle should include some polyfills or we should assume that developers will setup global polyfill based on their target.

Oh wow, you're right, this change doesn't have any impact on the build output at all. Seems like this setting is completely ignored from the bundle's perspective. However, the TypeScript error above goes away for me locally, more of an editor setting when interpreting the compiled client/lib/index.d.ts files when working inside react/src/index.ts locally then, I guess.

I didn't find great best practices for modern library bundling so most of it is inspired by https://github.com/pmndrs/zustand/blob/main/rollup.config.js

Yeah, there are just too many options for bundling NPM packages. Each with so many settings and config files that it's dazzling.

I guess it's fine to merge this in then, since there is no impact on the produced bundle here at all. It just fixes TypeScript errors in my local editor.


Clarify CUE_FS_ROOT and fix for macOS.

Fixes #148

Specify a new location for logs to be written. The default locations of /shots no longer works on macOS.

This also has the side effect of demonstrating this feature for the user, which is extremely helpful when figuring out how to create an actual production deployment.

Maintaining the concept of CUE_FS_ROOT, write logs into a logs/ subdirectory. In the event a user uses their actual NFS for this, we don't want to pollute that directory with a bunch of project folders. IMO it's obvious enough how you could adapt your actual project directory structure to match this, once you see the directory structure that gets created in logs/.

Note that this depends on https://github.com/AcademySoftwareFoundation/OpenCue/pull/627 which adds support for --log.frame-log-root.

Let's hold on merging this until https://github.com/AcademySoftwareFoundation/OpenCue/pull/627 is merged.

AcademySoftwareFoundation/OpenCue#627 is merged now, and is included in today's OpenCue release.
I QA'd the release by following the version of the Getting Started guide contained in this PR, and all looks good. Merging.


Up arrow

In current build, up arrow not registering with single tap. It only shows up after tapping the key 3 times. Left, Right and Down are fine.

see this issue for info on why this is happening: https://github.com/Code52/carnac/issues/341


Fix/side bar parent active

Closes BUG Plmg-SideBar: Parent component should be styled when child is active
Summary of changes included in this PR

Adds a mutation observer. When sideBarItem is parent, the mutation observer watches for changes in the child sideBarItem(s) active state and updates active attribute / styles in parent.
Tests are disabled (see known issues)

Known Issues

Tests disabled as unable to mock the mutation observer in Jest with Puppeteer. Waiting for a Stencil update.

Reviewer checklist:

Tests for

accessibility
rendered HTML (spec)

Storybook stories for all variants
JSDoc documentation for component
Update Example app (React, ...)

Shouldn't this be marked as active as well?

Here the current deployed storybook for example

I'd expect the same behavior