Manipulate user context functionality is absent (IDFGH-5989)

I've found that switching context functionality for C/C++ developer is absent.
This is fundamental functionality to write modern code by me.
The functionality is present in:

makecontext/swapcontext (POSIX)
CreateFiber/SwitchToFiber (WINAPI)

...but implementation is missing for ESP32.
There is FreeRTOS co-routines but I need manual switching like swapcontext.
My device is ESP32 DEVKIT V1 (ESP-WROOM-32) and installer is "esp-idf-tools-setup-offline-2.11.exe"

Thanks for hint to use FreeRTOS/posix threads on ESP32 as coroutines!
But in this required additional overhead to synchronize (cpu cycles for signalling and RAM for sychronizing primitives).
It is better not use additional RAM on the nice and small chip.
Is it safe to call any functions from different thread context?
Note: sometimes it is not possible. For example:
android:

you must not manipulate your UI from a worker thread—you must do all manipulation to your user interface from the UI thread

taisei-project game uses INVOKE_TASK macro with underlying context switch library.
So there are multiple scenarios where it will be usefull.
In my case makecontext/swapcontext will be used for multiple blocking operations at same time.
For example blocking operations are:

connecting to TCP-server
sending/receiving bytes to TCP-server

Example of my software that uses TCP-server
void testIpV6Support(Fiber& fiber)
{
  // step 1
  auto server = std::make_shared<TcpServer>();
  auto clientFlowExecuter = std::make_shared<FiberExecuter>([&](Fiber& fiber)
  {
    TRACEF("port=$1",server->getPort());
    string ipAddressToConnect = "::1";
    // step 3
    ByteFlowPtr flow = connectToTcpServer(fiber,ipAddressToConnect,server->getPort()); // context switching is here
    // step 5
  });
  // step 2
  ByteFlowPtr flow = accept(fiber,server); // context switching is here
  // step 4
  waitForComplete(fiber,clientFlowExecuter); // context switching is here
  // step 6
}

Actually, I'm using boost::context::detail::make_fcontext/jump_fcontext in my software.

I have found that using FreeRTOS threads to emulate context switching will break C++ thread_local work as expected.
Note if boost::context::detail::make_fcontext will be implemented for ESP32, then boost library users will be able to use boost library functionality on ESP32. That will be good news.

"swapcontext" is removed from new posix but it is very useful. So I think it will be back like "C++ pragma once".
Makecontext obsolescent rationale is here.
As I understand a reason only: declarators with empty parentheses is an obsolescent feature in C-lang.
Next, obsolescent rationale reason

There later "There are very few applications today that use the *context() routines"

is not true, because of examples above.


Are there any benchmarks?

Hi all,
I've looked around a bit and can't find any benchmarks of shainet with deep learning frameworks torch, tensorflow, etc..
I know benchmarks are generally not that important, but out of curiosity, are any publicly available?

Hi @sancarn, thanks for taking interest in our project.
We did not create any benchmarks comparing SHAInet to other frameworks as we feel it is not mature enough for that yet.
Since it is a free-time project we are currently focusing on implementing all the ideas that hopefully will set this framework apart from the others (i.e special neurons).
If you feel like adding a benchmark is something you would want to do, we would be grateful and will happily accept a PR. Please keep in mind though that currently we take a considerably longer time to train since we do not use matrices in SHAInet (yet). Our hope is that the end result of the trained models will justify the longer wait :) However it means there is still some trial and error ahead to see how to best take advantage of our ideas with some interesting models


Add worker namespace

Added in commit 84718c5 in branch worker-dev

Added in commit 84718c5 in branch worker-dev


Improve scripting reference Methods example

The Methods section talks about a method call that calls a function scoped to a value's type. It's structure is value.method(..args) and the equivalent full function call is type(value).method(value, ..args). Setting the value name to array in this context is unnecessarily confusing as that is the same name as it's type, array.
This change makes clear that a method call is being used here.

True!


Minimal how-to guide for component model schemas

Based on https://github.com/jlalmes/trpc-openapi/pull/417#issuecomment-1957253254 it looks like this fork does support the definition of model schemas that go into the components section of the final openapi doc?
I read over the readme but could not find any hints how this fork makes this available as a library user, could you provide a minimal example on how to do this?
Much appreciated!

Ended up implementing it myself: https://github.com/devidw/trpc-openapi


(Question) Apply tranlate-text to the existed fields.

Hi, I'm trying to use the translate-text for my project. I found that this extension only works for the document which is created after the installation of the extension. Could you let me know the way to apply this extension to my previous documents which have the same field name for the extension?

Hey @ssohymind, I'm afraid it isn't possible to translate existing records as the cloud function onWrite is triggered on create, update or deleting of records.
You could write your own script. Here's a sample how to implement translation of a string.
In your script, you would query your Firestore records, loop through them and update the field of your choice with the translation.
If you have a lot of records, you will need to query your database in batches following Firestore best practices.
The import script from the big query extension uses a cursor to write documents in batches.
This example on Stack Overflow is also pretty good but it is written in Java.


Binding image in card with relative url

Os: linux
Node: 8.11.3
Vuesax: 3.1.43
PM: yarn 1.7
The API returns image thumbnail  relative url:
"/uploads/images/photo1_thumb.jpg"
It works when consumed within clean Vue:
<img v-bind:src='image.thumb' >
but not when I try using it in in Vuesax like this:
<vs-card-media vs-media='image.thumb'></vs-card-media>
or
<vs-card-media vs-media={{ image.thumb }}></vs-card-media>

In the update of the vs-card component, I will solve the problem. Thank you very much when you update it.

It works.


Detach hosted elements

After investigating a user-reported bug, I found that hosted elements (which include items inside a model groups) are not being detached this leads the converter to max out on very large groups, see example file (confidential).
I'd like to propose changing every "elements" prop instance to be detached with "@elements", with some extra code for backward compatibility. We would need to verify how this affects other connectors (and viewer) who are consuming Revit data (PowerBI, Excel etc).
Initial tests indicate that this would overcome the "Object is too large" issue reported by the user: revit/host-face-instances
These are some of the responsible lines: https://github.com/specklesystems/speckle-sharp/blob/main/Objects/Converters/ConverterRevit/ConverterRevitShared/ConversionUtils.cs#L145

Temp fix in: https://github.com/specklesystems/speckle-sharp/pull/2456


change base image to SUSE BCI

Ref: https://github.com/longhorn/longhorn/issues/2939
Signed-off-by: Mohamed Eldafrawi<EMAIL_ADDRESS>

I've changed the golang version in Dockerfile.dapper to the latest v1.13.15 to match the version defined in go.mod


Elgato.StreamDeck version <IP_ADDRESS>52

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

I am unsure of the issue; I have tried troubleshooting and testing on my end, and everything comes back positive. If I could get some assistance that would be greatly appreciated.

Late answer, try to close and reopen the PR. (The bot is being childish and requires another /AzurePipelines run)

Late answer, try to close and reopen the PR. (The bot is being childish and requires another /AzurePipelines run)

ahh alrighty thank you I'll resubmit it

Late answer, try to close and reopen the PR. (The bot is being childish and requires another /AzurePipelines run)

ahh alrighty thank you I'll resubmit it

https://github.com/microsoft/winget-pkgs/pull/17528

🤦♂ The button you used to close the PR becomes a Open PR button when you click it :D
Npnp


Upgrade dependencies

Selenium to version 2.53.1
Scala version to 2.11.8
sbt to version 0.13.12
play to version 2.5.4

Also, remove htmlunit since selenium-java 2.53.1 already adds this version transitively.

Build failed because log length has exceeded the limit:
https://travis-ci.org/playframework/scalatestplus-play/builds/153166811#L25765


Step "Setting up Cuda" on Win10 for training with instant-ngp shows errors

I can train on my own data using nerfacto but when I want to use instant-ngp it crashes at the step "Setting up cuda"

RuntimeError: Error building extension 'nerfacc_cuda': [1/6] C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin\nvcc --generate-dependencies-with-compile --dependency-output contraction.cuda.o.d -Xcudafe --diag_suppress=dll_interface_conflict_dllexport_assumed -Xc

My command: ns-train instant-ngp --data .\data\nerfstudio\nighttest\colmap\
Additional context

I use instant-ngp without problems on Win10 but I had to follow _https://github.com/bycloudai/instant-ngp-Windows_
I have cuda 11.6

Thank you and congrats for this brillant project! :)

I had the same problem.

This was likely a nerfacc issue. Nerfacc has been updated a number of times since this issue was raised so this is now out of date.


feat: kurtosis github login

Description:

Is this change user facing?
YES/NO

References (if applicable):

re. the GitGuardian secrets: the secrets were my own personal access tokens which were revoked and the client secret of the Kurtosis CLI OAuth app which was revoked when I transferred ownership to KurtosisTech. Nonetheless, I've cleaned them from the git history.


PascalVOC 2012 Download Error

Error when downloading Pascal VOC2012, seems there is some corrupted data (checksum failure), see below:
System Software Overview:
System Version: macOS 13.4.1 (c) (22F770820d)
Kernel Version: Darwin 22.5.0

Steps to reproduce:
python3.9 -m venv env
source env/bin/activate
pip install geti-sdk
pip install datumaro[tf,tfds,defualt]
datum project create
mkdir pvoc/
datum download get -i tfds:voc/2012 -o pvoc

(env) ~/Documents/end-to-end$ datum download get -i tfds:voc/2012 -o pvoc
2024-03-20 17:53:13,376 INFO: Downloading the dataset
2024-03-20 17:53:13,862 INFO: Load pre-computed DatasetInfo (eg: splits, num examples,...) from GCS: voc/2012/4.0.0
2024-03-20 17:53:15,028 INFO: Load dataset info from /var/folders/wk/k02s52zj5ls80jdjqwbpj9f40000gn/T/tmprab7ltpatfds
2024-03-20 17:53:15,038 INFO: For 'voc/2012/4.0.0': fields info.[description, config_name, config_description, citation, splits, module_name] differ on disk and in the code. Keeping the one from code.
2024-03-20 17:53:15,039 INFO: Generating dataset voc (/Users/alfie/tensorflow_datasets/voc/2012/4.0.0)
Downloading and preparing dataset 3.59 GiB (download: 3.59 GiB, generated: Unknown size, total: 3.59 GiB) to /Users/alfie/tensorflow_datasets/voc/2012/4.0.0...
Dl Completed...: 0 url [00:00, ? url/s]          2024-03-20 17:53:15,399 INFO: Downloading http://pjreddie.com/media/files/VOC2012test.tar into /Users/alfie/tensorflow_datasets/downloads/pjreddie.com_media_files_VOC2012testSc40bSzLCI9xUDzIh-tQzx9zaTEmX0PKoAD-berNkm0.tar.tmp.c9883184834b43eaa52a5a24a1e0ecd4...ed...: 0 file [00:00, ? file/s]
Dl Completed...:   0%|                           2024-03-20 17:53:15,402 INFO: Downloading http://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar into /Users/alfie/tensorflow_datasets/downloads/pjredd.com_media_files_VOCtra_11-May-2012_SKxIa1HVZJ7bc2YyTlJDGn_RJHSyFnsUqChVOhOMZs.tar.tmp.1bb981155ca145989a7a82080c38a690...:00, ? file/s]
Extraction completed...: 0 file [10:26, ? file/s]██████████████████▌                                             | 1/2 [10:26<10:26, 626.89s/ url]
Dl Size...:  26%|████████████████████████▎                                                                   | 969/3671 [10:26<29:08,  1.55 MiB/s]
Dl Completed...:  50%|█████████████████████████████████████████████▌                                             | 1/2 [10:26<10:26, 626.90s/ url]
2024-03-20 18:03:42,297 ERROR: Artifact http://pjreddie.com/media/files/VOC2012test.tar, downloaded to /Users/alfie/tensorflow_datasets/downloads/pjreddie.com_media_files_VOC2012testSc40bSzLCI9xUDzIh-tQzx9zaTEmX0PKoAD-berNkm0.tar.tmp.c9883184834b43eaa52a5a24a1e0ecd4/VOC2012test.tar, has wrong checksum:
* Expected: UrlInfo(size=1.72 GiB, checksum='f08582b1935816c5eab3bbb1eb6d06201a789eaa173cdf1cf400c26f0cac2fb3', filename='VOC2012test.tar')
* Got: UrlInfo(size=500.25 MiB, checksum='95c6c7d4bca6f0bc5968cd453f932aefd937a1b952007065ec19743b9c3c2fb6', filename='VOC2012test.tar')
To debug, see: https://www.tensorflow.org/datasets/overview#fixing_nonmatchingchecksumerror
Traceback (most recent call last):
  File "/Users/alfie/Documents/end-to-end/env/bin/datum", line 8, in <module>
    sys.exit(main())
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/datumaro/cli/__main__.py", line 150, in main
    retcode = args.command(args)
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/datumaro/cli/commands/download.py", line 185, in download_command
    extractor = extractor_factory()
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/datumaro/components/extractor_tfds.py", line 573, in make_extractor
    return _TfdsExtractor(self._tfds_ds_name)
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/datumaro/components/extractor_tfds.py", line 489, in __init__
    tfds_builder.download_and_prepare()
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/tensorflow_datasets/core/logging/__init__.py", line 166, in __call__
    return function(*args, **kwargs)
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/tensorflow_datasets/core/dataset_builder.py", line 691, in download_and_prepare
    self._download_and_prepare(
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/tensorflow_datasets/core/dataset_builder.py", line 1547, in _download_and_prepare
    split_generators = self._split_generators(  # pylint: disable=unexpected-keyword-arg
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/tensorflow_datasets/object_detection/voc.py", line 199, in _split_generators
    paths = dl_manager.download_and_extract(
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/tensorflow_datasets/core/download/download_manager.py", line 688, in download_and_extract
    return _map_promise(self._download_extract, url_or_urls)
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/tensorflow_datasets/core/download/download_manager.py", line 831, in _map_promise
    res = tree_utils.map_structure(
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/tree/__init__.py", line 435, in map_structure
    [func(*args) for args in zip(*map(flatten, structures))])
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/tree/__init__.py", line 435, in <listcomp>
    [func(*args) for args in zip(*map(flatten, structures))])
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/tensorflow_datasets/core/download/download_manager.py", line 832, in <lambda>
    lambda p: p.get(), all_promises
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/promise/promise.py", line 512, in get
    return self._target_settled_value(_raise=True)
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/promise/promise.py", line 516, in _target_settled_value
    return self._target()._settled_value(_raise)
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/promise/promise.py", line 226, in _settled_value
    reraise(type(raise_val), raise_val, self._traceback)
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/six.py", line 719, in reraise
    raise value
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/promise/promise.py", line 87, in try_catch
    return (handler(*args, **kwargs), None)
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/tensorflow_datasets/core/download/download_manager.py", line 408, in <lambda>
    lambda dl_result: self._register_or_validate_checksums(  # pylint: disable=g-long-lambda
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/tensorflow_datasets/core/download/download_manager.py", line 465, in _register_or_validate_checksums
    _validate_checksums(
  File "/Users/alfie/Documents/end-to-end/env/lib/python3.9/site-packages/tensorflow_datasets/core/download/download_manager.py", line 809, in _validate_checksums
    raise NonMatchingChecksumError(msg)
tensorflow_datasets.core.download.download_manager.NonMatchingChecksumError: Artifact http://pjreddie.com/media/files/VOC2012test.tar, downloaded to /Users/alfie/tensorflow_datasets/downloads/pjreddie.com_media_files_VOC2012testSc40bSzLCI9xUDzIh-tQzx9zaTEmX0PKoAD-berNkm0.tar.tmp.c9883184834b43eaa52a5a24a1e0ecd4/VOC2012test.tar, has wrong checksum:
* Expected: UrlInfo(size=1.72 GiB, checksum='f08582b1935816c5eab3bbb1eb6d06201a789eaa173cdf1cf400c26f0cac2fb3', filename='VOC2012test.tar')
* Got: UrlInfo(size=500.25 MiB, checksum='95c6c7d4bca6f0bc5968cd453f932aefd937a1b952007065ec19743b9c3c2fb6', filename='VOC2012test.tar')
To debug, see: https://www.tensorflow.org/datasets/overview#fixing_nonmatchingchecksumerror

Any help would be greatly appreciated.

Possibly a TensorflowDataset issue and not datumaro's, apologies if so.

Looks like it is a problem with tensorflow dataset...
https://www.tensorflow.org/datasets/overview#fixing_nonmatchingchecksumerror
https://github.com/tensorflow/datasets/issues/5232
Will close issue but might be an idea to add a warning in docs :).

@alfieroddan, thank you for letting us know this issue and your interests to Datumaro :)


Add dynamic Hardfork variant

Describe the feature
Currently the hardfork type is an enum of known ethereum hardforks
https://github.com/paradigmxyz/reth/blob/20aa3c45c452749015cbd0b28c9065040daba518/crates/ethereum-forks/src/hardfork.rs#L22-L22
this makes it difficult to integrate L2 hardforks without introducing feature flags.
this can be changed by introducing a hardfork type that has a name and a prev hardfork, we need the prev hardfork, because we need Ord
something like:
struct NamedHardfork {
  name: &'static str,
  prev: HardFork,
}

// new Hardfork variant:
Other(Box<NamedHardFork>)

and then this would be another variant of the hardfork enum:
https://github.com/paradigmxyz/reth/blob/20aa3c45c452749015cbd0b28c9065040daba518/crates/ethereum-forks/src/hardfork.rs#L22-L22
TODO
investigate named hardfork integration
this will require a lot of manual impls
an alternative approach would be trait based but this would complicate things a lot
@rakita we could try to do something similar with SpecId in revm
Additional context
No response

Ref: https://github.com/bluealloy/revm/issues/918
We are already trait bases in Revm. But i need to thinker a little to find best option. Last think that i had in my mind is to use u64 as SpecId and and every standard fork is a one bit,this would allow setting external bits without disruption common ones.
How would you handle if you have two consecutive external forks?

I can give it a try

@rakita  you mean this approach right?
struct HardforkManager {
    hardforks: Vec<u64>,
}

impl HardforkManager {
    // Creates a new HardforkManager with enough space to handle a given number of hardforks
    fn new(total_hardforks: usize) -> Self {
        let num_u64s = (total_hardforks + 63) / 64;  // Calculate how many u64s are needed
        HardforkManager {
            hardforks: vec![0; num_u64s],
        }
    }

    // Activate a hardfork by setting the corresponding bit
    fn activate_hardfork(&mut self, index: usize) {
        let array_index = index / 64;  // Determine which u64 in the array
        let bit_index = index % 64;    // Determine which bit in the u64
        self.hardforks[array_index] |= 1 << bit_index;
    }

    // Deactivate a hardfork by clearing the corresponding bit
    fn deactivate_hardfork(&mut self, index: usize) {
        let array_index = index / 64;
        let bit_index = index % 64;
        self.hardforks[array_index] &= !(1 << bit_index);
    }

    // Check if a hardfork is active
    fn is_hardfork_active(&self, index: usize) -> bool {
        let array_index = index / 64;
        let bit_index = index % 64;
        (self.hardforks[array_index] & (1 << bit_index)) != 0
    }
}

May I?
cc @mattsse

Hello, I have started my research on this topic
If my understanding is correct, we would like to have the ability to introduce new hardforks without the need to add new fields to the enum, am I right?
In my opinion, the introduction of Other(NamedHardFork) could create a mess inside the codebase in the long term
An alternative would be to introduce additional enums for different chains, but this should still be carefully considered
So right now we are choosing between explicit or implicit (through the NamedHardFork) options
What do you think? Or am I going in the wrong direction?

If my understanding is correct, we would like to have the ability to introduce new hardforks without the need to add new fields to the enum, am I right?

yes, non ethereum native hardfork should then be constants

In my opinion, the introduction of Other(NamedHardFork) could create a mess inside the codebase in the long term

hmm, I need to think about this, maybe we also need to abstract the chainspec away, then rolling separate hardfork enums wouldn't be an issue
we almost never use hardfork enums directly, instead the chainspec uses them to check activation

So right now we are choosing between explicit or implicit (through the NamedHardFork) options

yeah
I guess I need to think about this a bit more because this could impact a lot of things

Hello, I am continuing to dive into the issue
What do you think if I create a Draft PR with an implementation that was originally suggested? I believe it should be similar to how it is implemented for ErrorData enum -- Custom field
What do you think?

cc @mattsse

What do you think if I create a Draft PR with an implementation that was originally suggested?

that'd be great!
I'm leaning more and more towards this solution actually, because this would make things a lot easier

Got it, will do

Hello, so I a little bit stuck with this
There are a few options

As was suggested, I created following structure:

#[cfg_attr(feature = "serde", derive(Serialize))]
#[derive(Debug, Copy, Clone, Eq, PartialEq, PartialOrd, Ord, Hash)]
pub struct HardforkData {
    pub name: &'static str,
    pub block: u64,
    pub timestamp: u64,
}

But, it is tricky to deal with the lifetimes, this is way I needed to implement deserialize independently:
#[cfg(feature = "serde")]
impl<'de> Deserialize<'de> for HardforkData {
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
        where
            D: serde::Deserializer<'de>,
    {
        #[derive(Deserialize)]
        struct Helper<'a> {
            name: &'a str,
            block: u64,
            timestamp: u64,
        }

        let helper = Helper::deserialize(deserializer)?;
        Ok(HardforkData {
            name: helper.name.to_owned().leak(),
            block: helper.block,
            timestamp: helper.timestamp,
        })
    }
}

Which is uses .leak() thing, it says for itself (kinda memory leak😅)

Second option is to use String, but drop Copy trait

Another option is to use fixed size array of bytes (also could be tricky during conversions)

Maybe use something like this: https://crates.io/crates/fixedstr. But it's yet another dep, and I'm not sure that's what we want

I think we only need this part:
pub struct HardforkData {
    pub name: &'static str,

because the other values are configured separately

Ok(HardforkData {
    name: helper.name.to_owned().leak(),

Is it ok to leave it like this?

ah this is for deserialize impl?
we can do Cow<'static, str>

we can do Cow<'static, str>

It won't work because of the Copy trait
cc @mattsse


Add Checks to checkForAccessFault

Revise the checkForAccessFault (rename to checkForFault) so that it returns a 2 bit vector that specifies which, if any, of the following errors occured:

[x] pmp error
[x] physical address bound
[x] memory device range match (is a function - make it check the range, the width and pma
permissions and misaligned. Return 4 Bools)
[x] device width discrepancy
[x] device pma permission error
[x] address misaligned

Returns 2 Bools: access fault or misaligned error.

[ ] Added support for lrsc check

[ ] Raise the correct exception based on the error code returned by checkForAccessFault.

79bccef


bug: LazyVim default keymaps can't be overriden anymore

Did you check docs and existing issues?

[X] I have read all the LazyVim docs
[X] I have searched the existing issues of LazyVim
[X] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
NVIM v0.9.2
Operating system/version
Ubuntu 20.04
Describe the bug
I used to be able to override LazyVim default keymap in the plugin spec, but after some updates (either LazyVim or lazy.nvim), I can't do this anymore.
Steps To Reproduce

Have the following plugin spec of toggleterm.nvim

local termcodes = function(sequence) return vim.api.nvim_replace_termcodes(sequence, true, true, true) end
local termesc = function(sequence) return termcodes("<C-\\><C-N>" .. (sequence or "")) end

return {
  "akinsho/toggleterm.nvim",
  dependencies = { "nvim-tree/nvim-tree.lua" },
  config = function()
    local Terminal = require("toggleterm.terminal").Terminal
    ---@diagnostic disable-next-line: missing-fields
    local main = Terminal:new({
      hidden = false,
      start_in_insert = true,
      on_create = function(term)
        local config = { buffer = term.bufnr, silent = true }

        vim.keymap.set("t", "<Esc>", termesc(), config)
        vim.keymap.set("t", "<C-h>", termesc("<C-w>h"), config)
        vim.keymap.set("t", "<C-j>", termesc("<C-w>j"), config)
        vim.keymap.set("t", "<C-k>", termesc("<C-w>k"), config)
        vim.keymap.set("t", "<C-l>", termesc("<C-w>l"), config)
        vim.keymap.set({ "n", "t" }, "<M-s>", function()
          term.auto_scroll = not term.auto_scroll
          vim.notify(term.auto_scroll and "Autoscroll enabled" or "Autoscroll disabled")
        end, vim.tbl_extend("force", config, { desc = "Toggle auto scroll" }))
        vim.keymap.set("n", "q", function() term:toggle() end, config)
      end,
    })
    local lazygit = Terminal:new({
      cmd = "lazygit",
      direction = "float",
      hidden = true,
      exit_on_close = true,
      on_close = function() require("nvim-tree.api").tree.reload() end,
    })

    require("toggleterm").setup({})

    vim.keymap.set("n", "<leader>ft", function() main:toggle() end, { desc = "Open main terminal" })
    vim.keymap.set("n", "<leader>fl", function() lazygit:open() end, { desc = "Open lazygit" })
  end,
  keys = {
    { "<leader>ft", desc = "Open main terminal" },
    { "<leader>fl", desc = "Open lazygit" },
  },
}

Open nvim and enter < Space >ft
LazyVim default keymap is used instead of the keymap declared here

Expected Behavior
The keymap of the plugin spec is used instead of LayzVim's default
Repro
No response

I have to go here, but will look into later tonight.

Just to be sure, you did upgrade everything to the latest version right?

yes, LazyVim and lazy.nvim are both at the latest release

Fixed in https://github.com/folke/lazy.nvim/commit/9d92e65fd17d35f97bed43dc92810576a57376fc
Will make a new release later.


Code of screen tracking example

We used this code on my project, but we had a bug: on some screens, analytics were not sent.
We used the fix I propose in this PR:routeNameRef.current has to be updated before  the analytic is sent. If we do it after, the user has the time to navigate to a new screen during the time the analytic is sent. But it will be undetected, because previousRouteName would not have been updated already.
We also can move this line in the "if" block because if they are identical, we don't need to update the reference.
An other solution to achieve the same result is to delete the "await" before Analytics.setCurrentScreen. But I find it more confusing: we "hide" the fact that sending analytics is asynchronous. Especially if some action has to be performed after.
OK read
No screen-tracking.md file exists. Only the versioned file has been modified.

I don't know why Semantic Pull Request is blocking the merge :/ I can rename my commit if needed!


Cannot  "import { NameValueUnits } from"

NOTE:  See issue 322 first.
See branch "AddVS15" of https://github.com/kevinpas/Klib6
There are two imports in the startup file "Klib6/Tests/Core/CoreTests.ts".  If you comment out the second one you can successfully run and debug/step through the tests in the startup file.
If you uncomment the second import and uncomment the two lines near the bottom:
//var units           = "mm";
//var nameValueUnits  = new NameValueUnits( name, value, units );
when you try to run it you get the exception (on win7):
Debugger listening on port 5858
module.js:338
throw err;
^
Error: Cannot find module 'NameValue'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object. (C:\ ... \Git\GitHub\Klib6\Source\Core
\NameValueUnits.js:46:19)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
Press any key to continue...

This issue, for me, is only related to the visual studio 15 project in the repo described above.
And I forgot.  In Issue 322 I showed that the vs 15 project is in the Tools folder.

I think the problem is in line 45 of Source/Core/NameValueUnits.ts.
Try
import { NameValue } from "./NameValue";

Without the path node will try to resolve to its own module library, e.g to fs, util, path etc.

Voted wrong location


loadAll(Collection objects, int depth); does not maintain input collection's sequence

when calling <T> Collection<T> loadAll(Collection<T> objects, int depth);, given a collection input, the resulted collection does not maintain the original sequence.

Hi Jonation,
List order is arbitrary unless you do a query which specifies order. If you try doing a simple query in Neo4j itself you will not necessarily get a list back in a repeatable order.
You can get around this by doing a custom query and specifying an order by clause. This way you should always get the list back the way you want.
Let me know how you get on.

@mangrish this applies when a collection of objects is supplied. If the collection preserves ordering, the OGM can do so too. But all bets are off if the collection supplied does not preserve insert order.

Hi Mark,
Luanne said it. Basically in my case: I did a query returning whatever is
bare minimum (definitely without adjacent nodes projected). This query was
paged and sorted. While continuing with the logic I wanted to re-hydrate
the objects (depth = 1). I tried to pass the previous (sorted) result to
OGM for re-hydration, But the resulted (and hydrated) collection no longer
maintains the ordering.
Jonathan.
On Wed, Aug 3, 2016 at 3:03 AM, Luanne Misquitta<EMAIL_ADDRESS>wrote:

@mangrish https://github.com/mangrish this applies when a collection of
objects is supplied. If the collection preserves ordering, the OGM can do
so too. But all bets are off if the collection supplied does not preserve
insert order.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/neo4j/neo4j-ogm/issues/196#issuecomment-237008602,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEOm5gdIr630ngx9FELNjIWPbKkVll1zks5qb5RsgaJpZM4JOrw8
.

Hey there,
any chance, this feature will be implemented in the near future?
Would be quite helpful!
Thanks in advance,
Hendrik


[QUESTION] How to connect using an AD Domain user from Linux

Question
I recently ran into an issue where the end user wanted to connect using the MS SQL Server JDBC driver, and no matter what permutation of DOMAIN\user or passing the domain in the connection string we used, the server was reporting that "SQL Server authentication was requested using a domain user".
We can't use integrated security for a linux system not on the AD and there may or may not be the possibility of having a hardware appliance join the domain, and with the open source JTDS driver this does work when passing the NTLMv2 flag.
So is there a way to pass a domain user to the SQL Server and request something other than SQL Server authentication from Linux?
Relevant Issues and Pull Requests
#2127 is loosely related - but they were joining the domain so not quite the same.

Could you provide the server logs for when the login attempt was made? And also, what does your connection string look like? Thanks.
Just a FYI incase:
https://docs.microsoft.com/en-us/sql/relational-databases/performance/view-the-sql-server-error-log-sql-server-management-studio?view=sql-server-ver15

The connection string value is very basic:
jdbc:sqlserver://hostname:port;databaseName=databaseName;encrypt=false;;statementPoolingCacheSize=10;queryTimeout=300
Username and password are passed in when building the connection and the domain is prepended in DOMAIN\user format still as the driver didn't previous have an explicit domain field (but does now).
Unfortunately it's not our SQL Server but a customer's, but while on the log error we received was:
Attempting to use an NT account name with SQL Server authentication
I had asked them if this error was related to something on the SQL Server itself but they indicated they didn't believe that it was, and switching over to using JTDS instead with NTLM we were able to login with the DOMAIN\user which leads me to believe it's not a setting on the SQL Server.
It seems like the driver is explicitly trying to use SQL Server Authentication instead of NTLM, and reading the connection properties available to control the authentication it appears that parameters such as authenticationScheme are only applicable when using integratedSecurity which isn't available in Linux especially when not on a domain.
That being said, reading a little further I see the authentication parameter seems to indicate maybe something there could be used specifically authentication=ActiveDirectoryPassword. Is this the value we need to include if a user wants to auth via Active Directory vs SQL Server Authentication?

I was able to re-create this with a test SQL Server as well. Created a local user (not domain, but still windows auth)
Login failed for user 'EC2AMAZ-L1Q0M0K\dbUser'. Reason: Attempting to use an NT account name with SQL Server Authentication. [CLIENT: 172.XX.XX.XXX]
I tried adding authentication=ActiveDirectoryPassword to the connection string but got some SSL errors indicating that although encrypt=false was used maybe it's mandatory when using this auth?
Some guidance would be appreciated but this test coincides with what we were seeing on the customer system.

I'll try the user/pass in the connection string manually along with the domain pulled out into the proper field to see.
I did find the doc above you referenced but since it uses integratedSecurity that won't work as the driver throws an error.
ds.setAuthenticationScheme("NTLM");```

Any followup on this @tkyc?

Per the doc, I believe integratedSecurity=true is also required. Try jdbc:sqlserver://<hostname>;integratedSecurity=true;authenticationScheme=NTLM;domain=<server_domain>;user=<userName>;password=<password>

Per the doc, I believe integratedSecurity=true is also required. Try jdbc:sqlserver://<hostname>;integratedSecurity=true;authenticationScheme=NTLM;domain=<server_domain>;user=<userName>;password=<password>

Hi David,
As I mentioned in a previous comment this doesn't work on Linux:

I did find the doc above you referenced but since it uses integratedSecurity that won't work as the driver throws an error.
ds.setIntegratedSecurity(true);
ds.setAuthenticationScheme("NTLM");
If you try to enable it, you get this:
Unable to communicate with a database for the following reason : This driver is not configured for integrated authentication., likely because no mssql-jdbc_auth--.dll will be available on a Linux system

@ChrisCollinsIBM
Apologies for the delay. I was occupied with another issue and was setting things up to verify NTLM on a linux client. I can 100% confirm that NTLM works. I was able to successfully authenticate with NTLM using the driver.
This is the connection string I used:
jdbc:sqlserver://my-sql-server.mydomain.ad;integratedSecurity=true;authenticationScheme=NTLM;domain=mydomain.ad;user=domainUser;password=domainUserPassword;encrypt=false;trustServerCertificate=true;
Since this works with JTDS, I don't think it's any problem with group policies, permissions or any fault with the domain user and domain controller. Maybe the driver version you're using doesn't have NTLM support? Starting with 7.3.1 was when mssql-jdbc supported NTLM. What's the exact driver version you are using?

@ChrisCollinsIBM
Apologies for the delay. I was occupied with another issue and was setting things up to verify NTLM on a linux client. I can 100% confirm that NTLM works. I was able to successfully authenticate with NTLM using the driver.
This is the connection string I used:
jdbc:sqlserver://my-sql-server.mydomain.ad;integratedSecurity=true;authenticationScheme=NTLM;domain=mydomain.ad;user=domainUser;password=domainUserPassword;encrypt=false;trustServerCertificate=true;
Since this works with JTDS, I don't think it's any problem with group policies, permissions or any fault with the domain user and domain controller. Maybe the driver version you're using doesn't have NTLM support? Starting with 7.3.1 was when mssql-jdbc supported NTLM. What's the exact driver version you are using?

Was this on a Linux system? If I try to use integratedSecurity I get the error I've posted a few times now in previous comment.

@ChrisCollinsIBM
That's right. I didn't get that error. That error shouldn't be thrown because if authenticationScheme=NTLM, it should skip the logic that does native auth. This is the reason that's making me think you might be using an older driver version that doesn't support NTLM. What's your driver version?

Ok that's something I can't believe I didn't check before now, "am I on the latest" should be the first thing.
I'll check that tomorrow and get back to you, appreciate the follow up.

@tkyc - Latest results. It was using 7.2 which doesn't have the NTLM flag, my bad!
I swapped out the driver for 12.4 with the following connection string:
jdbc:sqlserver://172.XX.XX.XX:1433;integratedSecurity=true;authenticationScheme=NTLM;databaseName=testDb;statementPoolingCacheSize=10;queryTimeout=300

New error:
Unable to communicate with a database for the following reason : Login failed. The login is from an untrusted domain and cannot be used with Integrated authentication.

I as mentioned back at the start, using the JTDS driver I can do an NTLM authentication without having to have the source Linux machine join the domain, which is the behaviour I'm trying to re-create with the Microsoft Driver.

Ok I think I figured out the secret formula.
Passing the domain field in the user yields the untrusted domain error, but passing the domain IN the domain field in the connection string works.
jdbc:sqlserver://172.XX.XX.XX:1433;integratedSecurity=true;authenticationScheme=NTLM;domain=XXXXXX-XXXXXX;databaseName=testDb;statementPoolingCacheSize=10;queryTimeout=300

That gives me what I need and I can schedule a JDBC driver update in a future release as well as ensuring we present the domain field and document how to connect via NTLM.
Thanks @tkyc and @David-Engel for your assistance and prompt feedback.

According to a previous issue related to this it looks like you indicated that the Linux machine MUST join the domain for this to work.

Oops. I'll retract that. Incase anyone else stumbles on this thread or the other.

Using connection string
jdbc:sqlserver://172.XX.XX.XX:1433;integratedSecurity=true;authenticationScheme=NTLM;domain=XXXXXX-XXXXXX;databaseName=testDb
(especially integratedSecurity=true;authenticationScheme=NTLM part)
works if you want to login as any AD user from linux with username and password.
Even though no "integrated security" ot NTLM is actually happening there. Right?
Or am I missing something?

@rdk
That's the correct connection string to use.

Even though no "integrated security" ot NTLM is actually happening there. Right?

NTLM is occurring. If you do a "select auth_scheme from sys.dm_exec_connections where session_id=@@spid" it should say you used NTLM.

@rdk That certainly is part of the confusion. Having to specify integratedSecurity=true for authenticationScheme=NTLM to function when you're not actually using integrated security (since you're not in windows or joined to the domain) is a bit unintuitive.
So NTLM is occurring as @tkyc says, but integrated security is not.


Example please

Hello, I found your project is very promising.
Can you please provide any working sample?

i have no time to do it , the source code is readability，and u can easy to use

I'm using in Windows.
It throw GetMaxMemory not implementedException message.
At Devices.cs, you coded only android, it needs modificaton like below bolded italic code.
-code start-
public static long GetMaxMemory()
{
#if UNITY_ANDROID
using (AndroidJavaClass runtime = new AndroidJavaClass("java.lang.Runtime"))
{
using (AndroidJavaObject run = runtime.CallStatic("getRuntime"))
{
long maxMemory = run.Call("maxMemory");
return maxMemory;
}
}
#elif (UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN)
return SystemInfo.systemMemorySize;
//throw new NotImplementedException();
#endif
}
-code end-

I've already fixed the issue and sorry about letting you wait a long time. And you mentioned to provide any working example, please see the README in the project.

Thanks, very helpful.


Template nodejs-mongo: 'azd infra delete' failure

Describe the bug
Trying to delete the infrastructure throws an error. I got the same error twice..
To Reproduce
In this example, I did init and then immediately tried to delete:
azd up --template todo-nodejs-mongo
Creation process....
? Please enter a new environment name: ax0428
? Please select an Azure location to use: 44. (US) East US 2 (eastus2)
? Please select an Azure Subscription to use: XXXXX
View progress in Azure Portal: XXXX
Created Azure resources
Deployed service ax0428web

Endpoint: https://ax0428web.azurewebsites.net/
Deployed service ax0428api
Endpoint: https://ax0428api.azurewebsites.net/

azd infra delete
Deletion process...
? This will delete 8 resources, are you sure you want to continue? Yes
Error: Command Failed: listing keyvault ax0428keyvault properties: failed running az keyvault show: exit code: 3, stdout: , stderr: ERROR: (ResourceGroupNotFound) Resource group 'learn-9097dc5e-c393-43c4-8f0a-b87ded81d7e6' could not be found.
Code: ResourceGroupNotFound
Message: Resource group 'learn-9097dc5e-c393-43c4-8f0a-b87ded81d7e6' could not be found.
: exit status 3
Note:  'learn-9097dc5e-c393-43c4-8f0a-b87ded81d7e6'  does not exist in any of my subscriptions, and I cannot find it in my folder if I do a text search.x
Expected behavior
Resource group with all resources are deleted.

The UX of azd has changed quite a bit from when this was filed and as such, I can no longer repro. Please reopen if you can repro.


Upgrade python-markdown

Automated message from Dropbox CLA bot
@umkay, it looks like you've already signed the Dropbox CLA. Thanks!

Thanks for working on this @umkay!  It looks like this fails tests with Python 3, can you investigate?

@timabbott I would like to point out that the latest version of pygments inserts an extra span in the begining -- [https://bitbucket.org/birkenfeld/pygments-main/issues/1111]. I can change the test_bugdown_fixtures test to reflect this new behavior, or modify the htmlformatter. thoughts?

Thanks for working on this @umkay!  I merged the two preliminary commits, after cleaning up the commit messages and comments a bit :)
I also posted a couple small comments on the last commit.

@timabbott, ptal, comments addressed and missing type comments added

@rahuldeve Heads-up in case you can take a look at this and give a nonbinding code review. :)

@timabbott what's the status on this?

Can you add a commit on top that removes our fork of codehilite, and a test for the new hl_lines feature we're getting (in zerver/fixtures/bugdown-data.json, probably)?

Both of those can be commit on top; I'm going to play with this and try to merge what you have.

sounds good, for reference there's an old wip version  of the changes made to fenced_code at umkay/old-markdown-update.

I'm testing this out on zulip.tabbott.net to see if we can find any regressions that way.

Merged as c0288153853d25368b3cae0cb09c534629d4e68c, thanks @umkay!  I also went ahead and deleted our fork of codehilite.
Can you still do the follow-up project of adding hl_lines support + tests?

Opened that issue as https://github.com/zulip/zulip/issues/2036.

Also opened the safe_mode deprecation issue as https://github.com/zulip/zulip/issues/2037


Validation bug in vkCmdCopyImage between compressed and uncompressed image formats

The spec says this on vkCmdCopyImage:
When copying between compressed and uncompressed formats the extent members represent the texel dimensions of the source image and not the destination. When copying from a compressed image to an uncompressed image the image texel dimensions written to the uncompressed image will be source extent divided by the compressed texel block dimensions. When copying from an uncompressed image to a compressed image the image texel dimensions written to the compressed image will be the source extent multiplied by the compressed texel block dimensions. In both cases the number of bytes read and the number of bytes written will be identical.
However, trying to copy from 512x512 BCH6 image into 128x128 A32R32G32B32 image raises this validation error:
VULKAN DEBUG: ERROR:  [IMAGE, 419430646]: vkCmdCopyImage: Dest pRegion[0] with mipLevel [ 0 ], offset [ 0, 0, 0 ], extent [ 512, 512, 1 ] exceeds the destination image dimensions. The spec valid usage text states 'The destination region specified by a given element of pRegions must be a region that is contained within dstImage' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdCopyImage-pRegions-00123)

Resolved with PR #2274. Closed.
Thanks @strandborg for the bug report!


The count of members in org is wrong

Description
No response
Gitea Version
latest
Can you reproduce the bug on the Gitea demo site?
Yes
Log Gist
No response
Screenshots

Git Version
No response
Operating System
No response
How are you running Gitea?
build
Database
None

#23970 also mentioned the wrong member count

An unexpected record appeared in the org_user table. The record's uid is zero.
I haven't figured it that how this row was inserted into the table out now.
I guess it was probably inserted when I was synchronizing LDAP user with wrong configuration (maybe related to enbale LDAP group), I will try to reproduce this.
But anyway, we have to prevent  the row which uid = 0 to be inserted into table.

Ive done nothing since except updating to dev and the issue seems to have been fixed


Issue#122 dockerize an application

dev
ZenHub

Main ZenHub ticket

Code reviewers

[ ] @github_username

Second Level Review

[ ] @github_username

Summary of issue
ToDo
Summary of change
ToDo
Testing approach
ToDo
CHECK LIST

[ ]  СI passed
[ ]  Сode coverage >=95%
[ ]  PR is reviewed manually again (to make sure you have 100% ready code)
[ ]  All reviewers agreed to merge the PR
[ ]  I've checked new feature as logged in and logged out user if needed
[ ]  PR meets all conventions

Can we use our docker images in home-api-tests?

Can we use our docker images in home-api-tests?

Sure, done.


Usage example for meshopt_simplify()

There is no usage example of meshopt_simplify().
How to properly do compactification of vertices after simplification?

Yeah meshopt_simplify is still experimental so it's not really reflected in the readme - the interface might change.
You can see examples of usage in https://github.com/zeux/meshoptimizer/blob/master/demo/main.cpp#L391.
This assumes that you need all levels of detail; if you just want to simplify your mesh and you don't need a high-resolution version, you can call meshopt_simplify which will give you a new index buffer, and then call meshopt_optimizeVertexFetch which will compact the vertex buffer and change the index buffer to refer to just vertices that are used.


Example of decoding Gif frames into PNGs.

Hi, we are migrating to using gifwrap to extract Gif frames, and we seem to be having a lot of trouble getting a correct frame.
Would it be possible to provide some simple sample code that shows how to handle using the frame bitmap to generate a sequence of Pngs. One for each frame.
This is the result we get now. After decoding a few frames we get extensive tearing, indicating we have something incorrect.

I'm getting the same thing.

We ended up migrating to the amusingly named gifuct
https://github.com/matt-way/gifuct-js

Sorry to take so long to get back with you. This looks like the sort of bug that #18 would have fixed. If you can provide the problem gif, I'd be happy to test it.

Not sure if this is the same issue, but this GIF seems to get messed up when I read and then write it: https://media.tenor.com/images/c674ba98c40f6793eaf10a1356c1c36a/tenor.gif
Screenshot of output:


Cleaner failure reports

This PR resolves #61.

disables traceback when not set to verbose
makes path to file relative (on compile_failure)

Thanks for opening this PR! I'll take a look at the TextTestResult solution and see if there's an easy way to get that working.
There are actually several other spots where we report the name of the source file on failure, including build_error_message, compile_success, common.build_msg and probably a few others. Would you be willing to update those too? I think you should be able to find any others by just grepping for self.assert.
(Some error messages don't include a filename at all and probably should, but that can wait for another PR.)

Your POC TextTestResult code seems to work for me - what Python version are you using?

Would you be willing to update those too?

yes, looking at this now.

Your POC TextTestResult code seems to work for me - what Python version are you using?

3.11.4 is the version it failed. I just also installed and tried 3.12.4, which failed similarly. Maybe your code looks subtly different than mine?

I added relative paths to:

build_error_message

Here I wasn't really sure how it should look like. I now added the relative source file, and left the absolute exe_name. I currently don't have the ability to try this out and see how I like it -- maybe it's better to turn exe_name into a relative one instead.

compile_success
common.build_msg
validate_no_output
library_test_helper
copy_prop.retval_test

I'm now not anymore entirely sure whether using relative paths (to TEST_DIR) is a good idea... The upside of an absolute path is that it's very portable. Another "portable" way would be to print the path relative to where it was called, then I can directly copy it to a tool as well without thinking too much where to find it.
Also, as written in the first sub-bullet, I haven't really tried all my changes. I'm not far enough with the content to test all the scenarios. Could still work, but please really double check my code 😅

Thanks for updating this!

I was able to reproduce your issue with MyTextTestResult in Python 3.9.13 (the default Python version on my Mac). It looks like _write_status was added in a later Python version. I'm not sure why you're seeing this issue in more recent versions (it sounds like you might somehow being using the standard library from the system Python...or something?) but the bottom line is we need to either avoid _write_status or provide a fallback for Python versions that don't support it.
This seems to work in all versions, though I'd need to test it further to be sure:
class MyTextTestResult(unittest.TextTestResult):

def addFailure(self, test: Any, err: Any) -> None:
    super(MyTextTestResult, self).addFailure(test, (err[0], err[1], None))

The err argument is a tuple (type, value, traceback), so I've just replaced the traceback with None.
Want to update the PR to give that a try, or should we deal with tracebacks in a separate PR?

I see what you mean about full paths being more portable. What do you think of using the relative path as a test name/description, and displaying the absolute path in the error message, like this:

======================================================================
FAIL: chapter_1/invalid_lex/return_2.c
----------------------------------------------------------------------
AssertionError: Didn't catch error in /absolute/path/to/writing-a-c-compiler-tests/tests/chapter_1/invalid_lex/return_2.c

======================================================================
FAIL: chapter_1/valid/multi_digit.c
----------------------------------------------------------------------
AssertionError: Incorrect behavior in /absolute/path/to/writing-a-c-compiler-tests/tests/chapter_1/valid/multi_digit built from /absolute/path/to/writing-a-c-compiler-tests/tests/chapter_1/valid/multi_digit.c
* Bad return code: expected 100 and got 0

======================================================================
FAIL: chapter_1/valid/return_2.c
----------------------------------------------------------------------
AssertionError: Incorrect behavior in /absolute/path/to/writing-a-c-compiler-tests/tests/chapter_1/valid/return_2 built from /absolute/path/to/writing-a-c-compiler-tests/tests/chapter_1/valid/return_2.c
* Bad return code: expected 2 and got 0

----------------------------------------------------------------------
Ran 28 tests in 8.494s

FAILED (failures=3)

We can do this by 1) setting each test's docstring to be the file's relative path:
   index f6812e6..dc401fc 100644
--- a/test_framework/basic.py
+++ b/test_framework/basic.py
@@ -596,6 +596,8 @@ def make_invalid_test(program: Path) -> Callable[[TestChapter], None]:
     def test_invalid(self: TestChapter) -> None:
         self.compile_failure(program)

+    test_invalid.__doc__ = str(program.relative_to(TEST_DIR))
+
     return test_invalid

@@ -725,6 +727,7 @@ def make_valid_tests(
             else:
                 # for stages besides "run", just test that compilation succeeds
                 test_method = make_test_valid(program)
+            test_method.__doc__ = str(program.relative_to(TEST_DIR))
             tests.append((test_name, test_method))
     return tests

and 2) overriding MyTextTestResult.getDescription to just return the short description, which is the docstring (the default implementation returns test name + short description):
class MyTextTestResult(unittest.TextTestResult):

    def addFailure(self, test: Any, err: Any) -> None:
        super(MyTextTestResult, self).addFailure(test, (None, err[1], None))

    def getDescription(self, test: unittest.TestCase) -> str:
        return test.shortDescription() or "MISSING"

In build_error_message, I think you're right to include the names of both the exe and source file. If we're giving the full path for source files in other tests (e.g. using my idea from the previous bullet point) I'd use them here too. We can just use a relative path (or even just the name without a path) for the executable - it gets deleted during teardown anyway so there's no point in including a full path to it.
Side note - it might be nice to have an option to keep the executable for failed tests, like we have an option to keep the assembly file - in which case printing the full path to that executable would make sense. But let's save that for a follow-up PR.

Thanks for updating this! I left some nitpicky comments (and we'll need to set docstrings for the Part III tests) but on the whole this is looking good! And not squashing commits yet is useful, thank you.
It would be helpful to have a way to re-enable stack traces. We could either add a new flag, or turn them on when the verbosity level is 3 or higher.  (Increasing the verbosity past 2 doesn't impact the default test runner behavior, so people could still use -vv to get the normal verbose output.) Including that in this PR would be great, but I'm also fine with leaving it for a follow-up PR if you don't want to deal with it.

Adding a note that it might make sense to address #82 as part of this PR


Unable to create Newsletter

I've tried to create new newsletter.
Input:
Address<EMAIL_ADDRESS>Name: Private Mailing List
Description: Use it for testing purposes
Deployed using docker.
But got.
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Traceback (most recent call last)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2000, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1991, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1567, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1988, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1641, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1544, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1639, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1625, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/src/app/app/models/Login.py", line 11, in wrap
return f(*args, **kwargs)
File "/usr/src/app/app/controllers/mailing_lists.py", line 30, in mailing_lists_submit
mailgun_create_group(address, name, description)
File "/usr/src/app/app/models/Mailgun_Internal.py", line 59, in mailgun_create_group
data = response.json()
File "/usr/local/lib/python3.6/site-packages/requests/models.py", line 850, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/lib/python3.6/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.
To switch between the interactive traceback and the plaintext one, you can click on the "Traceback" headline. From the text traceback you can also create a paste of it. For code execution mouse-over the frame you want to debug and click on the console icon on the right side.

You can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:

dump() shows all variables in the frame
dump(obj) dumps all that's known about the object

Do you have proper mailgun account account info configured in Profile > Edit Mailgun Account

Try it now. Yesterday(Jan. 13 2017) had Mailgun a massive service failures.

Hi, exactly, I saw an outage on time when i tried to use your service. Now everything works fine, so i manage to close the issue.


Output of service show has the parameters

Acceptance Criteria
It should be clear from the service show output how to access the service secrets, i.e. where they are mounted, from their application.

Better wait for #802 and #836


Add more documentation on building the tools

The instructions for building the writer app don't include the filename. Adding this makes the following steps which assume the file is named "writer.cpp" work seamlessly.
There are no instructions on building the tools and unless you've used cmake you would be stuck wondering.

Apologies for letting this sit, but we would indeed like to accept your submission. The ASWF project policy is to require a signed contributor license agreement. Can you click on the red "NOT COVERED" link above and fill out the form? Thanks.

The confusion cited here and the suggestions for explicitly-named downloadable files are hopefully address by #1620 and #1622


Jordan Springs NSW - Error

Hi, this looks wrong.

Do you have a specific address that the map is showing incorrect data?  It looks like "OptiComm delivers a fibre network to this area", which is not NBN, so we don't have any data to use.

Visually confusing, but it makes sense


New project request archival sync

Describe the solution you'd like
Currently there are no automated processes in place to archive any new project requests that were rejected at GH approval stage.
It would be great to develop a callback from GH when a new project request PR is closed but not merged.
This would kick off an archival process for the specific project within the registry, ensuring profile, namespace and corresponding contacts are all marked archived = t. This ensures the DB reflects any rejections within GH.
Definition of done
This feature would be complete when marking a new project request in GH will update the project within the registry as archived (deleted)

With the upcoming changes to enable Multi-cluster support this ticket is no longer necessary.


pin the proton image version for those case where init sql script nee…

there seems some issue introduced from 1.5.9 that the init sql script will cause proton down.
this PR use 1.5.8 as proton image versions for those examples that need init sql script.
An other fix is required to check why the init script cause proton down

let's merge ?

(Jove Github Bot) added it to the current sprint.

(Jove Github Bot) moved this ticket out of the GitHub project(up to 1200 tickets for one project).


sse3 decoder

2 instructions fewer than the current version.
I was unable to run the benchmark on Windows, though.
sanity check:
https://gist.github.com/aqrit/a2ccea48d7cac7e9d4d99f19d4759666
code golf forever! @WojciechMula

@aqrit Just skimmed through your commit and can say you did something weird, congratulations. :) Is it significantly faster? @lemire

I'd be interested in a benchmark.

I will have some fresh benchmarks soon on i7 and edison (tesed with code from commit 0a69845). Spoiler alert: on i7 we are already memory bandwidth limited. We might be able to speed by making more efficient use of the cache, i.e. not waste the cache on cache the data buffer, but making all fixed data tables are loaded into the cache. On Edison we are CPU limited (slow 500MHz Atom, with relatively fast memory), so we might expect a little improvement there.

This PR is probably a step backwards on Atom because pshufb is slow there.

Nice work, this does appear to be slightly faster in my benchmarks, and it passes the test suite. Normally I'd merge it by that metric alone. However, maintaining a library takes more than just clever code, so I have to put on my schoolmaster/reviewer hat and note:

The commit is a bit messy. The commit title is uninformative, there are whitespace errors, and there's a comment which was started but not finished. I pushed a branch called 'aqritm' which has a commit that I "fixed" according to how I think it should look.
More importantly: I do not understand anything that's going on in this commit. Of course it may be because I'm just not clever enough, but from this comment thread it looks like I'm not the only one. The commit deletes all the exposition about hash tables and such, and replaces it with extremely clever code presented in a style of "deal with it". So we have code that passes the benchmarks and the tests, and that I'm still hesitant to merge because it's fundamentally not maintainable for me... One example are the four constant lookup tables. They might have well been presented by God on stone tablets written in gold, because I have no way of verifying or reproducing their contents.

Is it perhaps possible to add some comments to explain the basic ideas behind this code and why it works the way it does? As the maintainer I have to ask that question, because there is more to programming than just cleverness (although an important part). That aside, again props for the achievement.

@aqrit a previous commit already regressed the performance on Atom, see my PR #44 any idea what causes that exactly?

delta_hash for 0 .. 7F
1 1 1 1 1 1 1 1 1 1 1 1 1 8 1 8
2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 9
3 3 3 3 3 3 3 3 3 3 3 3 3 A 3 A
4 4 4 4 4 4 4 4 4 4 4 4 4 B 4 B
5 5 5 5 5 5 5 5 5 5 5 5 5 C 5 C
6 6 6 6 6 6 6 6 6 6 6 6 6 D 6 D
7 7 7 7 7 7 7 7 7 7 7 7 7 E 7 E
8 8 8 8 8 8 8 8 8 8 8 8 8 F 8 F

so the mapping is:
3 = plus (0x2B)
A = slash (0x2F)
B = equal sign (0x3D)
4 = numbers (0x30 .. 0x39)
5 6 C = upper case letters (0x41 .. 05A)
7 8 E = lower case letters (0x61 .. 0x7A)
===========================
check_hash for 0 .. 7F
7 1 1 1 1 1 1 1 1 1 2 4 6 6 6 8
8 2 2 2 2 2 2 2 2 2 3 5 7 7 7 9
9 3 3 3 3 3 3 3 3 3 4 6 8 8 8 A
A 4 4 4 4 4 4 4 4 4 5 7 9 9 9 B
B 5 5 5 5 5 5 5 5 5 6 8 A A A C
C 6 6 6 6 6 6 6 6 6 7 9 B B B D
D 7 7 7 7 7 7 7 7 7 8 A C C C E
E 8 8 8 8 8 8 8 8 8 9 B D D D F

so the mapping is:
0 1 2 3 B D F = invalid
4 = invalid below 31
5 = invalid below 41
6 = invalid below 2B
7 = invalid below 5A
8 = invalid below 4B
9 = invalid below 7A
A = invalid below 2F
C = invalid below 4F
E = invalid below 6F
for 80 .. FF (signed input):
the check_value will either be signed or 0
so...
_mm_adds_epi8( signed, signed) = signed
_mm_adds_epi8( 0, signed) = signed
===============

regressed the performance on Atom... any idea?

3 pshufb + pmovmskb = ~20 cycles ?
I  wonder if the new packing code is slower on old hardware as well.
It trades out logic/shift for mul.

comments added, tried to keep them to just 2 pages worth.

On the three platforms where I've benchmarked this code, performance seems equal to the previous code. Is there a platform where performance is significantly enhanced?

Nice work, this does appear to be slightly faster in my benchmarks

On the three platforms where I've benchmarked this code, performance seems equal to the previous code. Is there a platform where performance is significantly enhanced?

significantly? No.
It was slightly faster on my Westmere.
The newer CPUs only have one shuffle port, so it might bottleneck on that.

I can try this on NUC baytrail / edison (both silvermont). Maybe this weekend.

Yeah, I also noticed my own inconsistency there :smile_cat: That's why I asked - I retested this codec this morning on three machines I had at hand (i5 4590S, Atom N270 and an old Xeon) and could not find noticeable improvement compared to master.
As said before, I'm not warming much to this algorithm change. While I admire the cleverness and tenacity that it takes to solve a puzzle in a surprising way like this (which admittedly is most of what we do here), this code crosses a line for me in terms of how unintuitive it is. This is even after the good writeup that was added later on my request. I find it very hard to reason about what's going on, which is not a position I like being in as maintainer of the code :blush:
I'm still willing to merge the code on the principle of "it works and passes all tests, so just shut up and accept your defeat", but it will need to bring real improvement. So far the evidence is not there.

I benchmarked on Ubuntu 19.10 using gcc version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2). Hashes and Short log  as a legend to the graphs (aqri/atom and aqrit/master last) :

35109ad
ab7a48b
71a3509
fb336ed
67ee3fd
0a69845
15e59e66
4cfed1c52

V0.3.0
Improve SSSE3 and AVX2 decoding speed
Fix invalid input handling
Add AVX code path
SSSE3->AVX2 encoding optimization
SSSE3->AVX2, NEON32 decoding optimization
aqrit/atom “add SSE2 dec_loop.c”
aqrit/master “comment SSSE3 dec_loop.c”

Decode benchmarks on the left, encode on the right:

On the encoding sidenot much change over time.
When decoding Plain saw a large improvement from 67ee3fd, AVX and SSE variants reach the current state at 0a69845.

On NUC (Atom Baytrail Silvermont) encoding improved with 67ee3fd.
When decoding SSSE3 reached its peak at ab7a48b, remained there until 67ee3fd. Then with 0a69845 AVX and SSE decoding regressed hard, so much even that it has the same speed as Plain.
On Atom Silvermont 67ee3fd has optimum speed for both encode and decode.
Also aqrits work neither speeds up, nor hurts performance on i7/atom architectures.

Thanks for the benchmarking. A few thoughts:

On the i7, I find it strange that the AVX2 codec is not significantly faster than the others. It's definitely much faster on my 4th gen i5. Perhaps a bug in the benchmark?
Decoding speeds on the NUC seem to have suffered over time. Maybe we can improve the platform check to include the processor. Then again, if you want the fastest decoding, don't use an Atom :wink:
The SSE4 codecs have been simple aliases for SSSE3 since 67ee3fd. Although I think an SSE4 codec could still bring some speedups by employing _mm_testz_si128().
In terms of performance, the low hanging fruit is probably to overhaul the scaffolding code. Get rid of Duff's Device, promote the enc_loop snippets to actual functions, etc. This is on my roadmap.
I take it that the benchmarks support not merging the commits on this branch for the time being.

On the i7, I find it strange that the AVX2 codec is not significantly faster than the others. It's definitely much faster on my 4th gen i5. Perhaps a bug in the benchmark?

AVX2 decode has been much faster in the past. But after 0a69845 SSSE3 has caught up. May be there is another bottle neck (RAM is only DDR1600) .

Decoding speeds on the NUC seem to have suffered over time.

Not exactly. Plain improved with 67ee3fd. SSSE3 regressed with 0a69845, the same commit  that brings improvement on i7. So, not a gradual degradation.
I found on SLM in particular in 64b mode, certain instructions incur a penalty. It seems to be something like that, a 50% improvement due to more clever algorithm combined by a 2x penalty.  Looking at Edison benchmarks here https://github.com/htot/base64 we see that indeed 64b is slower then 32b.

Maybe we can improve the platform check to include the processor family. Then again, if you want the fastest decoding, don't use an Atom wink

My earlier benchmarks were on Edison (same core, no cache, 500MHz). I guess it's more of a perf/Watt game for me.

Get rid of Duff's Device, promote the enc_loop snippets to actual functions, etc. This is on my roadmap.

I like Duff's device. I took that idea from you and applied in crc32c. I managed to achieve same speed in C as in the original asm code.

I take it that the benchmarks support not merging the commits on this branch for the time being.

There seems to be no performance improvement on either platform.

Alright, I just had to try running 32b. On i7 there really is not much to see, but on SLM (Atom):

To make it build 32b I added CFLAGS+=-m32 on the make line but needed -fno-pie as well. And -m elf_i386 for ld.
Note the cases where running -m32-no-pie version is faster  then 64 bits. Nevertheless 67ee3fd remains faster than 0a69845 for SSSE3 decoding. So apparently there are 2 effects, possibly an instruction is used that is not HW implemented on Atom. And there is the 64b penalty I mentioned.


getting dial code from phone number

Is it possible to get the dial code from the phone number?
The following code will give me the phone number along with the dial code:
txtPhoneNumber.phoneNumber
Is there any way to get the phone number without dial code, and get dial code without phone number?

I use the following code to get the dial code :
txtPhoneNumber.code
Is there is a way to get phone number without the dial code ?
Currently, I am counting the number of index in dial code and remove it from the txtPhoneNumber.phoneNumber

Hi) You have a code, you have a whole phone number. Think what to do next )))
You would need something like:
let onlyNumber = phoneNumber!.dropFirst(phoneNumber!.count)


Update version in various docs

yea, a good first step will be at least figuring out what all the changes are that need to be made, i'm starting to write that all down in #1502.

yea, a good first step will be at least figuring out what all the changes are that need to be made, i'm starting to write that all down in #1502.


Feature Request: Pin Repos

Hi,
I love your app -- thanks for making our life a bit easier.
It would be really cool, if we could pin repos in the app so that they show in the list (e.g. at the bottom). Clicking on the repo could then open the repo in the browser.
It is often a pain to navigate to a repo through the Github menu and this would be a really neat time saver.

+1

+1

This would be overcomplicating the UI just a tad. If it gets more traction, maybe we can reconsider.


Update dependecies

Upgrade the dependencies to the newest Kotlin version. Current dependencies:
+--- com.github.vjames19.kotlin-futures:kotlin-futures-jdk8:0.4.0
|    --- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-5
|         --- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-5
|              --- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-5
ToDo:

Update Kotlin dependency to version 1.2.51
Change "jre" dependencies to "jdk" ("jre" seems to be deprecated).

Great lib, thanks!

Hi, I will be able to update this next Sunday. As soon as it is done I will
update you.
On Mon, Jul 23, 2018, 5:50 AM Beni Bachmann<EMAIL_ADDRESS>wrote:

Upgrade the dependencies to the newest Kotlin version. Current
dependencies:
+--- com.github.vjames19.kotlin-futures:kotlin-futures-jdk8:0.4.0
| --- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-5
| --- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-5
| --- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-5
ToDo:

Update Kotlin dependency to version 1.2.51
Change "jre" dependencies to "jdk" ("jre" seems to be deprecated).

Great lib, thanks!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/vjames19/kotlin-futures/issues/6, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABFijXKwjwuL809V4JPm9PoE39C2HBMqks5uJZxpgaJpZM4VasQT
.

@brookman Just updated the library.
Let me know if there is anything else you would like to see added to the library.


Question about mask strategy.

the mask strategy relevant code at: https://github.com/google-research/bert/blob/master/create_pretraining_data.py#L335
randome mask 15% tokens of every sequence , and 20% probability of each token will not be masked as [MASK],
So,  supppose a sequence with 100 tokens,  then the number of the random seleced tokens will be 15% * 100 = 15tokens, then the probabolty of the sequence without [MASK] is 20% ^ (15) . This probabilty is so small.
So, how to understanding " The first is that we are creating a mismatch between pre-training and finetuning, since the [MASK] token is never seen during fine-tuning." ?
Thanks!

Hi, @jacobdevlin-google , could you answer this question for me?   Thanks.

This is more relevant to the token-level representation for tasks like SQuAD and NER, not sentence level tasks. We've run some more experiments which we'll report in the next version of the paper where we show that if you replace with [MASK] 100% of the time it hurts feature-based token-level approach, but doesn't hurt sentence level tasks like GLUE.


HBASE-25213 Should request Compaction when bulkLoadHFiles is done (addendum)

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m 20s
Docker mode activated.


Treemap updates

[x]  Hover values should be rounded to 3.s.f
[x]  Hover value should include units e.g. "<FoodItem>: <Value> <micronutrient.unit>/capita/day".  Data from the "/micronutrient" endpoint called in the sidebar.  E.g. "Freshwater Fish: 484 mcg/capita/day"
[x] Investigate fixing text wrapping or alternative options
[ ] If text wrapping not possible, look at individually colouring each cell with a legend below the chart

The developer of the treemap has said that the ability to add text wrapping is not currently possible :( https://github.com/kurkle/chartjs-chart-treemap/issues/20 , the issue is currently logged as a requested enhancement.

Text wrapping the titles is not possible, another solution may be to introduce abbreviations associated with each food group, this would require some input from @LouiseAnder? on names and table update from @rbroth. The change on the front end would be very small.

Might it be possible to shrink the text size?


⚠ Bofrost.at has degraded performance

In 8bf96db, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1864 ms

Resolved: Bofrost.at performance has improved in e0d6322 after 38 minutes.


Building a Row does not set the Settings for the Cells leading to a NullPointerException

Hello :)
I think I found a bug with the new Settings object.  This used to work in version 0.1.0.
If I first call tableBuilder.build() and row.getHeight() afterwards, it works just fine.
I've identified that this is caused by the Cell Settings being filled with fillingMergeBy when the Table is built. But when the Row is built the Cells Settings remain empty.
Edit: I just noticed that it's not as easy as filling the Cells when the Rows are built. We still can't get the correct height because at that time we don't know yet if the Table will have line breaking :/

Hey @AdrianMiska, thanks a lot for reporting this and also thanks for already analysing! :)
I will have a look as soon as I find time for it, which will most probably be next week ...

This is a tricky one. The basic issue is that there are inter-dependencies between the table and row settings as well as the column widths: In order to know the height of a cell we would need to know the column it is located in, but that only the table knows. But at the time we are building the row we don't know the table yet.
I think that I initially planned not to expose the getHeight() methods from the Row and Cell classes (ie let them be package visible only) but I refactored the code at one point so that the structure itself is in a package of its own, not together with the TableDrawer. But since it is needed from there, I had to make it public. The idea of having builders for the rows and cells is merely to collect their properties (background color etc.) in a simple way, but not really to pre-calculate their height ;)
So I would rather opt for either throwing an exception in case the cell is not yet rendered (ie the build() method of the TableBuilder has not yet been called) and only return a value if that is the case already.
But what exactly is your use case? Maybe we can find a way to cover it in a different way?
And still: of course getting a NullPointerException is not acceptable, we will need to fix that. ;)

Tricky indeed.
The implementation of my pull request allows a workaround by building an empty dummy table with the same columns and manually setting a dummy column for each cell when building it. Pretty hacky and I agree that a cleaner solution would be preferable.
My use case is rendering long tables over multiple pages. I'm looping over my data creating rows and for each row determine its height because the data is variable and so the height depends on margins, line breaks, etc. When the start point + the height of all rows reaches the footer of the page, I draw the table, create a new page and start a new table with the remaining data (or do the same thing again).

I added one commit to your pull request: that's how I would deal with it for now, because from my point of view the builders for the cells and rows are just some means of collecting their properties.
Regarding your use case: Could the "endY/multipage feature" be of use for you? I mean:
final PDDocument document = new PDDocument();

TableDrawer drawer = TableDrawer.builder()
        .table(tableBuilder.build())
        .startX(50)
        .startY(100F)
        .endY(50F) // note: if not set, table is drawn over the end of the page
        .build();

do {
    PDPage page = new PDPage(PDRectangle.A4);
    document.addPage(page);
    try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) {
        drawer.contentStream(contentStream).draw();
    }

    drawer.startY(page.getMediaBox().getHeight() - 50);
} while (!drawer.isFinished());

document.save("target/twoPageTable.pdf");
document.close();

Also see this file. Just run it and see how the output looks like. Maybe that would help already?
PS: Looks like I pushed some of my branches to your forked repo accidentally by not specifying the branch name, sorry for that.

Yeah, your changes make sense ^^
Wow, I didn't know about endY/isFinished.
Looks a lot cleaner than what I'm currently doing. I'll try it.

Ok, I will merge the pull request then and close this issue. I hope you get your stuff done with the endY thingy ;) If this is useful for you or if you think there is something missing, let me know. Also I am always looking for nice examples, so if you think your table/document is worth sharing, also let me know and I will add it to the examples.


Tweak make authorsfile script and remove duplicate authors

👋  I'm new here! I saw a tiny thing I may be able to help with. Feel free to ignore :)
When generating the AUTHORS file the Makefile relies on a git log that may or may not be representative of the valuable data. It's very easy to omit configuration of the git config which easily makes for duplicate authors.
This change tweaks the output of the sorted git log, pipes the values into egrep that relies on an inverse filter that's easily extended. This change should not be seen as a long-term solution as the regex could quickly grow out of hand.

Hi @alexlehner! Welcome to the project! Please feel free to contribute any way you think you can help, and feel free to add issues to the back log or take a crack at coding them.

LGTM
We might want to come up with a way of doing the dupe check on the name string, and not hard coding things to ignore - but this looks good for now! Thanks!

@kris-nova Totally agree that dupe checking by name sounds mucho better. Where I ran into trouble was figuring out programmatically which one was correct. For instance @k4k has two valid email addresses, I didn't know of way to do that without some kind of white/black list. We could go with the first (or last) but that's not very transparent to folks casually viewing the AUTHORS file.
Plus, we'd need to check dupes on both emails and first names since the repo has a git history of @Kris__Nova and Kris Nova.
Suddenly a manually managed AUTHORS file doesn't sound so bad. 😆
Thank you again for the welcome and super fast merge!


Update concepts-firewall-rules.md

This kind of change is what was being requested in #40491. It's misleading to say "To allow applications from Azure to connect to your Azure Database for MySQL server, Azure connections must be enabled," unless I am grossly misunderstanding how the firewall works.
I think it would be much preferable to strongly recommend whitelisting only your own services, while explaining that you can allow all Azure IPs if you want (the existing Important note is good).
Feel free to adjust wording as needed.
We have an advisory support case where I believe this wording may have confused the customer into turning on the Azure access and unnecessarily opening their DB.

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

@dcbrown16 I recall several Azure services don't reveal the range of IP addresses per region, or the IP addresses change at times, so I think that makes it hard to do what you suggest?

@JasonWHowell certainly true of some services, but "To allow applications from Azure to connect to your Azure Database for MySQL server, Azure connections must be enabled" is just not true when there are many services, particularly commonly used services like Web Apps and VMs, that may want to connect to MySQL and do have knowable IP addresses that can be configured to be static.
As a relevant example, consider something like "Set Allow access to Azure services to OFF for the most secure configuration" from the SQL tutorial below.
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-security-tutorial
Certainly open to changes in the wording but it is my understanding that opening to all Azure connections is typically not the best practice unless absolutely required, and as support staff trying to provide best practice documentation, it's important on my end that the docs are clear. As I mentioned, the current wording resulted in an avoidable support case.

@dcbrown, let me circulate this change with the team. May have some suggestions after discussing.

Thanks @ajlam, feel free to reach out to me at v-dibr internally if needed!


New covergen tool

cc @shermp @NiLuJe

TODO:

[ ] Additional filter options
[ ] Actually test it
[ ] Some refactoring
[ ] Merge geek1011/koboutils#1
[ ] Documentation

I've tested this, and it works well on my Mini and Aura2v1. For epubs, it now shows the actual cover instead of a screenshot of the first page with a black border. For kepubs, it now consistently shows the cover image, even for books without the cover-image property or the meta tag. There also isn't an extra black border around the covers anymore either, and the cover fills the space properly. I've checked it on the view details, the home screen, the sleep screen, the library list, and the library grid.
To regenerate the covers from nothing, it seems to be just under twice as fast as the built-in cover generation.
P.S. One slightly unrelated thing I noticed is that nickel seems to like segfaulting if you delete .kobo-images from under it and have PDF books.
This still needs to be tested on Windows to make sure the path handling is correct. I'd also appreciate it if someone with a Libra and a wide variety of books could test this out (use the --regenerate option) to make sure it works.

I've added an option to set the aspect ratio of the covers. I personally like 1.5, but 1.6 fills the space on the home screen better (but it looks too stretched to me).

Do you have any plans to support PNG and/or SVG (input) cover images?

Yes, those are supported right now (in terms of the format itself), but for the color encoding, I'll need to add conversion so rez can use it.

Ah yes. See that now.
Was looking at the resize code, which only deals with YCbCr colourspace.

BTW: I'm happy for you to re-license any of the image code from KU if you wish. By this point, it's mostly all your code anyway :p
Main reason for using AGPL3 in KU is because of FBInk. And FBInk has been re-licensed to plain GPL now, so I can probably change KU.

Was looking at the resize code, which only deals with YCbCr colourspace.

I was considering switching resize libraries, as all are pretty fast on x86, but then I realized some of my scripts run kepubify and seriesmeta on the Kobo itself. I also don't want to pull in too many dependencies.

BTW: I'm happy for you to re-license any of the image code from KU if you wish. By this point, it's mostly all your code anyway :p

Yes, at first I did pull it from KU, but I realized since I was re-doing the research again, I might as well write it from scratch.

I just tested this while setting up my Clara, and it worked perfectly and had a huge performance benefit to looking through the library. I'm going to merge it and make a release once I merge the koboutils PR.


[live] <= [master]

Applying @cmaneu's profile in production.

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

File
Status
Preview URL
Details

advocates/christopher-maneu.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


iOS with cocoapods error - "Unknown receiver 'LAAnimationView'; did you mean 'LOTAnimationView'?"

On version 1.0.5 - I'm getting the specified error (Unknown receiver 'LAAnimationView'; did you mean 'LOTAnimationView'?) when trying to run my project from Xcode.
The problematic file is:

myProject/node_modules/lottie-react-native/lib/ios/LottieReactNative

When replacing all occurrences of LAAnimationView with LOTAnimationView the project compiles and I'm able to display animations correctly.
But still I can't use it this way since the repo is shared by a lot of developers and every npm install will result in compilation error.
Any solution?

I am seeing the same issue

The lottie-ios team made some name changes about 5 days ago. I opened a pull-request about 4 days ago, and unless there is some subtle detail I'm missing, the fix is trivial

Fixed in 1.0.6

Thanks @lelandrichardson, that did solve the error, however I am now getting a new error:
.../node_modules/lottie-react-native/lib/ios/LottieReactNative/LRNAnimationViewManager.m:57:37:
error: incompatible block pointer types sending 'void (^)(RCTUIManager *__strong,
NSDictionary<NSNumber *,UIView *> *__strong)' to parameter of type 'RCTViewManagerUIBlock'
(aka 'void (^)(RCTUIManager *__strong, RCTSparseArray *__strong)')

I have no idea what to make of this one (I'm not an Obj-C developer).

Still an issue for me, on master and v1.0.6 in lottie-react-native/lib/ios/LottieReactNative/LRNContainerView.m and lottie-react-native/example/ios/Pods/Headers/Public/lottie-ios/Lottie/LAAnimationView.h.
Any Ideas?

Doesn't work for me either, I got the issue in the subject, "auto-fix"ed it by replacing LA with LOT.
and then I got what @samcorcos has...
any news?

@lelandrichardson I'm encountering a similar issue, but the naming is the other way around. More over at #79


Update precommit config

Use consistent indentation
Update black version

Thanks. Outdated. Sorry it took so long.


Update JSON spec to point out escaping of <, >, &

...and add blurb about not relying on canonicalization to ensure
identical output.
Signed-off-by: Aaron Lehmann<EMAIL_ADDRESS>

LGTM


[GSSOC '23] : Add a 'Back to Top' button at the footer

Before creating an issue, go through all open/closed issues to avoid getting your issue/suggestion marked as duplicate##
Issue and Steps to Reproduce:
Screenshots:
Expected:
Actual:
Additional Details:

Working on it.

Any one who perform this task please let me know in this comment .
I am a beginner and tried to this contribution first time .
I wrote my function in a local project of mine it works perfectly but in this project that code is not working  I do a little search but can't find the exact answer . I think it is due to some issue in other code.
Anyone Who perform this task please let me know it'll be very helpful for me
Thanks>

I want to perform @hassaanistic

Sure bro, let me know it'll help a lot💫

Hii @akshitagupta15june ,Please assign me this issue under GSSOC'23


Pass arguments to command

Hello,
how can i pass something like "-e 123123 -d hallohallo" to my execute-command .sh script?
`
Thanks for your reply..

This should be documented, but you can pass simple string parameters to the command using the string source:
"parameter":
{
  "source": "string",
  "name": "-e"
},
"parameter":
{
  "source": "string",
  "name": "123123"
}


play store listing: is there any way to exclude for non-e-ink devices, or show a warning before installing?

[ ] spec ready for first development
[ ] technical tasks defined
[ ] first app store release
[ ] tested and approved in app store

Closing after time boxed initial investigation: Onyx devices are not listed in Google's device catalog, so no luck the easy way.
Comment and I'll re-open if you have any other leads.


Internal URL string when using paths

Using a root domain this all worked fine but it would be helpful to run multiple copies on paths behind a single domain
eg
https://bio.example.com/user1
https://bio.example.com/user2
I notice that in some places when the internal reference has a forward slash and in others it does not.
I think the static content has a / prefixing it which if it were removed should allow for multiple copies of this behind a traefik front end (I hope)
I took a look at the code on a docker install vs what's here and obviously the code is compressed so could not test it but am guessing the Razzle assets all have a leading / which could simply be handled with a substring command!?

I think the reverse proxy in front of this should handle this fine?  You probably need to create a rule in traefik as middleware for the path.

Yeah a stripPrefix removes the extra path component but for example/static does not have the path component on it and then there is no distinction between site a and site b!!

Would adding a rewrite work?  TBH this is something that most reverse proxies should be able to handle without the need to change how the site is hosted.  All paths should be relative.  Sounds like a rewrite might be needed too.

You have the answer there ... All paths should be relative .... css is relative but /static is absolute.
The absolute ignores the path I added and tries to go to the root.
I have switched to a different implementation so no worries for me. But if you want to enhance it then the issue I believe is still there

Thanks!  Will take a look when I have some time!

+1 on this, would love to be able to run it on a subpath. I tried using Traefik with prefix stripping, but for some reason the page goes blank as soon as the JS loads in (only if I access it from the subpath, accessing it on root works fine)

I think I know how to fix this, not straight forward but I think I know how


pose_estimation sample compile error

Repro steps

Create jupyter instance through provided CF template for running test utility

Open pose_estimation sample and run first cell which contains 'import gluoncv'

import fails because no installed related packages.

pip install gluoncv mxnet (1.9.0)

unable to locate 'libarmpl_lp64_mp.so' while import gluoncv again

Install arm performance lib from https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-performance-libraries and add lib path to ld_library_path

model import fail on
people_detection_model = gluoncv.model_zoo.get_model('yolo3_mobilenet1.0_coco', pretrained=True)
message:
MXNetError: MXNetError: Invalid Parameter format for layout expect int or None but value='', in operator Convolution(name="", stride="(2, 2)", no_bias="True", kernel="(3, 3)", layout="NCHW", num_group="1", dilate="(1, 1)", pad="(1, 1)", num_filter="32")

downgrade mxnet==1.6.0 and import gluoncv again and fail with following message
OSError: /usr/local/lib/python3.6/dist-packages/mxnet/libmxnet.so: cannot open shared object file:

But if I try this sample on sagemaker with conda_python3_mxnet kernel, it does not fail but eventually not run on testing stage
(Probably arch mismatch)

@jk1333 , We need to add an instruction to install MXNET and Gluoncv in the environment. Let me confirm the steps and update by tomorrow.

@jk1333 ,
Here is the steps to install mxnet and gluoncv on the environment.
install:
$ mkdir install_mxnet
$ cd install_mxnet
$ sudo apt-get install -y libopencv-dev
$ wget https://archive.apache.org/dist/incubator/mxnet/1.8.0/apache-mxnet-src-1.8.0-incubating.tar.gz
$ tar xvzf apache-mxnet-src-1.8.0-incubating.tar.gz
$ cd apache-mxnet-src-1.8.0-incubating
$ make -j8
$ cd python
$ sudo python3 setup.py install
$ sudo pip3 install gluoncv

verify installation:
$ python3
>>> import gluoncv
>>> exit()

After confirming you can import gluoncv module within Python interactive shell, please confirm that Pose estimation sample runs correctly. It uses gluoncv module to export models from the model zoo.
We will incorporate this information in the sample or document soon.
Thank you for your feedback.

@shimomut
Thanks it works well!
I'll try this on my appliance and share if there are problems.

I added a Markdown in the pose estimation sample notebook, how to install these libraries.
Closing this ticket.


Check email containing link to show anon order

After an order an email will be sent with a link to order confirmation (for guest and regular). This should be tested to see if the email points to the old accelerator or spartacus.
If the email points to the accelerator it should be fixed. If it points to spartacus, there are no changes to be made.

Displaying the anon order is already taken care of?
Also see order expired #1224

I took a look into this. Emails are pointing to the old accelerator and they have a hardcoded URL.
We'll need to create a new email template and override it via spartacusssampledata

URL in email is [host]/guest/order/[order_id]. This won't work with the current API.


[feature][493] add meta description and set mobile view meta tags

Trello card URL:
https://trello.com/c/8xlm4kc8/493-optimise-meta-description-of-individual-vacancy
Changes in this PR:

add missing content_for :page_description to mobile view to ensure both open graph and other met tags are correctly populated
populate meta 'description' similar to 'og:description' for Google card view to be optimised
add specs to verify all meta tags in both browser and mobile vacancy views

 Optimise meta description of individual vacancy.