Add support for long-writes

Summary
Ex: http://stackoverflow.com/questions/24135682/android-sending-data-20-bytes-by-ble
Need to send data > 20 bytes via BLE. It works normally if I using common Android BLE API. But I get only first part (20 bytes) with RxAndroidBle. Behavior is the same in case with .setupNotification, readCharacteristic, writeCharacteristic.
How can I handle it with RxAndroidBle and\or what I'm doing wrong?
Preconditions
Steps to reproduce actual result

Send any data from BLE device > 20 bytes

Actual result
Only fiirst part receiving

Expected result
Get all data by parts

Thanks!

now I face the same problem, any solution?

Sorry for such a long wait. As for now you have to chunk the data yourself. I am currently chasing bugs mostly and unfortunately don't have enough time to research the problem and possible use cases.
Feel free to describe it to me in greater detail. :)

If it can help others, here the code I use to do the split. I release this to public domain without restrictions. Use (and adapt) at your own risk (note this is a slightly modified version of the class I use in my own project):
Usage:
bleClient.establishConnection().flatMap(connection -> {
  return new PacketWriter(connection).write(characteristic, bytes);
});

// PacketWriter.java
package co.acme.ble;

import com.google.common.annotations.VisibleForTesting;
import com.polidea.rxandroidble.RxBleConnection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;

import rx.Observable;

public class PacketWriter {

  private static final int MAX_BLE_PACKET_BYTE_COUNT = 20;

  private RxBleConnection mBleConnection;

  public PacketWriter(RxBleConnection bleConnection) {
    mBleConnection = bleConnection;
  }

  /**
   * FIXME: Make this more efficient by keeping a 20 bytes buffer that is re-used for full packet send instead of
   * copying to a new array over and over. We could even think about a specialized {@link Iterable} that would do the
   * split and caching "magically" and we would simply need to iterate over it.
   */
  public Observable<Void> write(UUID characteristic, byte[] bytes) {
    if (bytes == null || bytes.length <= 0) {
      return Observable.just(null);
    }

    return Observable.concat(computeWritePacketObservables(characteristic, bytes));
  }

  @VisibleForTesting
  int computePacketCount(byte[] bytes) {
    return (int) Math.ceil(bytes.length / (double) MAX_BLE_PACKET_BYTE_COUNT);
  }

  @VisibleForTesting
  List<Observable<Void>> computeWritePacketObservables(UUID characteristic, byte[] bytes) {
    int packetCount = computePacketCount(bytes);
    int lastPacketIndex = packetCount - 1;

    List<Observable<Void>> observables = new ArrayList<>();
    for (int i = 0; i < packetCount; ++i) {
      boolean isLastPacket = i == lastPacketIndex;

      int dataStartIndexInclusive = i * 20;
      int dataEndIndexInclusive = isLastPacket ? bytes.length : dataStartIndexInclusive + MAX_BLE_PACKET_BYTE_COUNT;

      observables.add(writeToCharacteristic(characteristic, bytes, dataStartIndexInclusive, dataEndIndexInclusive));
    }

    return observables;
  }

  private Observable<Void> writeToCharacteristic(UUID characteristic,
                                                 byte[] bytes,
                                                 int startIndexInclusive,
                                                 int endIndexExclusive) {
    return Observable.fromCallable(() -> Arrays.copyOfRange(bytes, startIndexInclusive, endIndexExclusive))
                     .flatMap(data -> {
                       return mBleConnection.writeCharacteristic(characteristic, data);
                     })
                     .map(ignore -> null);
  }
}

And the test class I used:
// PacketWriterTest.java
package co.acme.ble;

import com.polidea.rxandroidble.RxBleConnection;

import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import rx.Observable;
import rx.Subscriber;

import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.verify;
import static org.mockito.internal.verification.VerificationModeFactory.times;

public class PacketWriterTest {

  @Mock
  RxBleConnection mBleConnection;

  private PacketWriter mPacketWriter;
  private RecordingSubscriber<Void> mRecordingSubscriber = new RecordingSubscriber<>();

  @Before
  public void setUp() {
    MockitoAnnotations.initMocks(this);

    given(mBleConnection.writeCharacteristic(any(UUID.class),
                                             any(byte[].class))).willReturn(Observable.just(new byte[]{}));

    mPacketWriter = new PacketWriter(mBleConnection);
  }

  @Test
  public void testWriteSinglePacket() throws Exception {
    writePacket("0102");

    ArgumentCaptor<byte[]> captor = ArgumentCaptor.forClass(byte[].class);
    verify(mBleConnection, times(1)).writeCharacteristic(any(UUID.class), captor.capture());

    assertThat(captor.getValue(), is(payload("0102")));
  }

  @Test
  public void testWriteSinglePacketFlush() throws Exception {
    writePacket("0102030405060708091011121314151617181920");

    ArgumentCaptor<byte[]> captor = ArgumentCaptor.forClass(byte[].class);
    verify(mBleConnection, times(1)).writeCharacteristic(any(UUID.class), captor.capture());

    assertThat(captor.getValue(), is(payload("0102030405060708091011121314151617181920")));
  }

  @Test
  public void testWriteTwoPacket() throws Exception {
    writePacket("010203040506070809101112131415161718192021222324252627282930");

    ArgumentCaptor<byte[]> captor = ArgumentCaptor.forClass(byte[].class);
    verify(mBleConnection, times(2)).writeCharacteristic(any(UUID.class), captor.capture());

    assertThat(captor.getAllValues().get(0), is(payload("0102030405060708091011121314151617181920")));
    assertThat(captor.getAllValues().get(1), is(payload("21222324252627282930")));
  }

  @Test
  public void testWriteTwoPacketFlush() throws Exception {
    writePacket("01020304050607080910111213141516171819200102030405060708091011121314151617181920");

    ArgumentCaptor<byte[]> captor = ArgumentCaptor.forClass(byte[].class);
    verify(mBleConnection, times(2)).writeCharacteristic(any(UUID.class), captor.capture());

    assertThat(captor.getAllValues().get(0), is(payload("0102030405060708091011121314151617181920")));
    assertThat(captor.getAllValues().get(1), is(payload("0102030405060708091011121314151617181920")));
  }

  @Test
  public void testComputePacketCount() {
    assertThat(mPacketWriter.computePacketCount(payload("01")), is(1));
    assertThat(mPacketWriter.computePacketCount(payload("01020304050607080910111213141516171819")), is(1));
    assertThat(mPacketWriter.computePacketCount(payload("0102030405060708091011121314151617181920")), is(1));

    assertThat(mPacketWriter.computePacketCount(payload("010203040506070809101112131415161718192021")), is(2));
    assertThat(mPacketWriter.computePacketCount(payload("0102030405060708091011121314151617181920" +
                                                        "0102030405060708091011121314151617181920")), is(2));

    assertThat(mPacketWriter.computePacketCount(payload("0102030405060708091011121314151617181920" +
                                                        "010203040506070809101112131415161718192021")), is(3));
  }

  private void writePacket(String hexadecimalValue) throws Exception {
    mPacketWriter.write(UUID.randomUUID(), payload(hexadecimalValue)).toBlocking().subscribe(mRecordingSubscriber);

    if (mRecordingSubscriber.getOnErrorException() != null) {
      throw (Exception) mRecordingSubscriber.getOnErrorException();
    }
  }

  private byte[] payload(String input) {
    int length = input.length();
    byte[] data = new byte[length / 2];
    for (int i = 0; i < length; i += 2) {
      data[i / 2] = (byte) ((Character.digit(input.charAt(i), 16) << 4) + Character.digit(input.charAt(i + 1), 16));
    }

    return data;
  }

  private static class RecordingSubscriber<T> extends Subscriber<T> {

    private List<T> mEmittedElements = new ArrayList<>();
    private Throwable mOnErrorException;
    private boolean mIsCompletedCalled;

    @Override
    public void onCompleted() {
      mIsCompletedCalled = true;
    }

    @Override
    public void onError(Throwable exception) {
      mOnErrorException = exception;
    }

    @Override
    public void onNext(T element) {
      mEmittedElements.add(element);
    }

    public List<T> getEmittedElements() {
      return mEmittedElements;
    }

    public T getFirstElement() {
      return mEmittedElements.get(0);
    }

    public Throwable getOnErrorException() {
      return mOnErrorException;
    }

    public boolean isCompletedCalled() {
      return mIsCompletedCalled;
    }
  }
}

Good luck.
Regards,
Matt

this could be managed changing the MTU

I have put somewhere what I do use for byte splitting but cannot find it for reference so I will put it here again:
public class ByteSplitter extends Observable<byte[]> {

    protected ByteSplitter(@NonNull byte[] bytes) {
        super(new SyncOnSubscribe<ByteBuffer, byte[]>() {

            private static final int MAX_PACKET_LENGTH = 20;

            @Override
            protected ByteBuffer generateState() {
                return ByteBuffer.wrap(bytes);
            }

            @Override
            protected ByteBuffer next(ByteBuffer state, Observer<? super byte[]> observer) {
                final int remainingBytes = state.remaining();
                final int bytePackageLength = Math.min(remainingBytes, MAX_PACKET_LENGTH);
                if (bytePackageLength > 0) {
                    final byte[] bytesPacket = new byte[bytePackageLength];
                    state.get(bytesPacket);
                    observer.onNext(bytesPacket);
                }
                if (state.remaining() == 0) {
                    observer.onCompleted();
                }
                return state;
            }
        });
    }
}

@dariuszseweryn #99 Here comes the reference.

@nister Could you elaborate more on how did you managed to send more than 20 bytes of data using the Android BLE API? The topic on stackoverflow is describing a custom BLE protocol in order to introduce some flow control in the communication. It describes nothing that the library is not supporting.

Are we getting this support soon? Byte>20 transmit? How can we achieve it with current library, with bytesplitter

If you are using Android 5.x or later you can set the MTU > 20 before sending the data

And if you use 4.3 / 4.4 or your peripheral does not support larger MTUs - you can just make several writes one after another with the next batches of what you want to transmit. The bytesplitter just splits your large byte array into batches that can be written at once - one after another.
I have finished a helper but it is still under a code review.

Functionality added with:
a2e85fc31cc2b4650e2240a1fbbb2e97d402ac12
and
b85fbf24552396bd724bb01dd15246a875322a68

Thanks!


discord.command_group() does not work.

According to the documentation syntax like the following can be used:
comic = discord.command_group("comic")

@comic.command()
def xkcd(ctx, number: int):
    return f"https://xkcd.com/{number}/"

However doing this results in the following in the logs:
AttributeError: 'SlashCommandGroup' object has no attribute 'default_permission'
if discord.update_slash_commands() is being used

Looks like this bug was introduced here, as the permissions registration code assumes that all Commands will have a permissions array.
I've pushed a new release, v1.0.1, that should resolve this issue. pip3 install Flask-Discord-Interactions=1.0.1 should download this new version.

Can confirm the issue is fixed. 👍


Show appointments between today and 3 working days

As a MRC employee I want to be able to see the appointments between now and 3 working days, so I can confirm to patients if they also have an appointment before the one in 3 working days. Note that these appointments can't be rescheduled but serve only as a confirmation when calling.
Requires rewrite of NiFi flow, API and Dashboard

Alternative plan:
Instead of the current approach (first get list of patients that have an appointment in 3 working days then retrieve all their appointments from 3 working days until the next 2 weeks) we could also just retrieve all appointments in the next 2 weeks and make predictions for all of those appointments? That way we have all appointments in the coming 2 weeks, including today and in the dashboard we can simply check if the selected date is in the future, show the appointments between now and then without the predictions or call status?


[Menu Entry Swapper] Add an override of fairy rings setting for POH Spirit Tree & Fairy ring to make tree left-click

This may be a duplicate of the closed issue of #4251. I'd like to propose it again or at least something similar as I've played quite a bit with multiple settings to alleviate my annoyance and still found it frustrating. Right now I can either left-click my POH tree and always right click to configure every fairy ring OR I can always left-click configure fairy rings but I need to right click to use my POH tree.
I would very much appreciate the ability to left click the tree in my house with right click for configure, and then have left click configure for every other fairy ring. It would be easiest to probably add a toggle to disable the re-ordering on the tree & ring in the POH, or an alternative menu swap could take place without removing tree from the top however that may make things messy.
I've played with the fairy ring setting to 'configure' for a long time, I got my own spirit tree & fairy ring, continued for a month or so on that but found it increasingly annoying. I switched to 'off', however this doesn't actually solve the issue, instead replacing it with another one making fairy rings as a whole more clicks to use

FWIW the custom object left-click swap doesn't seem to work here to override the "Fairy ring" setting in menu entry swapper, because: 1) you can't use it to swap the option that is already the default, which "Tree" is, and 2) since the fairy ring's id changes based on what the last-destination is set to, it wouldn't work otherwise unless you set it for ever last-destination.

Hi, I just read your issue and might be able to help with a workaround. Using the "Hotkeyable Menu Swaps" plugin from the plugin hub might work for you. Not exactly what you ask for but it would give you the option to have tree as left click and configure fairy ring as shift-left click for example, which still amounts to 1 "click". Can also set last destination to Ctrl-left click and more. Hope that helps.


Getting not a valid selector error using package in Vitest

I'm using this package in one of my projects and just recently started seeing a bunch of test errors being thrown after updating the version of nwsapi which gets used by jsdom. Are you aware of any workarounds for this? I realize this isn't actually an issue with this package, it works great! Just having a hard time figuring out a fix.
I was previously overriding the version to 2.2.2 which didn't throw these errors but recently needed to add suport for :focus-visible which only exists in newer versions of nwsapi.
SyntaxError: '[inert] *):not([tabindex^="-"]):not(:disabled' is not a valid selector
 ❯ emit node_modules/nwsapi/src/nwsapi.js:575:17
 ❯ Object._matches [as match] node_modules/nwsapi/src/nwsapi.js:1417:9
 ❯ Array.Resolver node_modules/nwsapi/src/nwsapi.js:777:17
 ❯ collect node_modules/nwsapi/src/nwsapi.js:1573:21
 ❯ Object._querySelectorAll [as select] node_modules/nwsapi/src/nwsapi.js:1528:36
 ❯ HTMLDivElementImpl.querySelectorAll node_modules/jsdom/lib/jsdom/living/nodes/ParentNode-impl.js:78:26
 ❯ HTMLDivElement.querySelectorAll node_modules/jsdom/lib/jsdom/living/generated/Element.js:1119:58

Hello! Looks like it’s related to https://github.com/dperini/nwsapi/issues/72, which they decided to close last year. :(

Aww, that's a bummer. No worries, I'll try and find a workaround. Thank you very much for the reply and your work on this project!

Wait, actually I just checked the code, and the only selector using :has() is commented out, so it cannot be that. What you could do is copy and paste the array of selectors in your project and comment them out one by one to find the faulty one. And then we can open an issue on the nswapi repo.

Oh, good catch! I was able to narrow it down to these three selectors:
const focusableSelectors = [
    `button${notInert}${notNegTabIndex}${notDisabled}`, // BAD
    `[contenteditable]${notInert}${notNegTabIndex}`, // BAD
    `[tabindex]${notInert}${notNegTabIndex}`, // BAD
]

It's not really clear to me why these are a problem tho? They're all doing very similar things to the other selectors.

Could you try removing :not([inert] *)? I suspect it doesn’t support complex selectors.

Yup, that fixed it! It's odd because the other places you were using :not([inert] *) were working as expected, but just button, [contenteditable] and [tabindex] were casing the error :-/

I would recommend you open an issue on the nwsapi repository with the fault selector so they can explore the problem.

Will do that for sure, thank you!


eth_sendUserOperation RPC needs a queue system

Problem: Right now, multiple transactions submitted with the same sponsor conflict with each other due to nonces.
Solution:

Accept the user operations and push them into a queue
Process the queue 1 transaction or 1 batch of transactions at a time

Needed for push notifications as well.

On further discussion with @xdamman, an in-memory queue would be preferable:

Reduce external dependencies
Easy setup of an indexer (executable + postgres db)

We would lose out on horizontal scaling. However, since it's an indexer per community, vertical scaling should be enough.


Custom Server docs are lacking

Ive tried to follow the docs, but i can't seem to figure out how to get next-serverless to actually run my custom server handler

+1


Error in forward method of ResPath?

In the init method of class ResPath, the ModuleList module is filled with 2*self.length elements but in the forward method only the first half is called:
for i in range(self.length-1):
            shortcut = out
            shortcut = self.module[i](shortcut)
            out = self.module[i+1](out)
            out = torch.add(shortcut, out)
            out = F.relu(out)
            out = self.bn(out)

I believe that it should be:
for i in range(self.length-1):
            shortcut = out
            shortcut = self.module[i*2](shortcut)
            out = self.module[i*2+1](out)
            out = torch.add(shortcut, out)
            out = F.relu(out)
            out = self.bn(out)

Thank you for your issue, I applied your suggestion to code already and it worked as expected. I must have overlooked this small bug and because I do not have much time I stopped developing this repo.


UnicodeEncodeError

Hi,
I have an error when running the make file. I have pasted the message below.
It seems as though I have an encoding issue, however I have been very careful to encode everything using utf8 (including filenames) and am therefore not so sure the issue is with my content.
Any help will be greatly appreciated.
python OneClick.py database_metadata
Making a SQL table to hold the catalog data
loading data into catalog using LOAD DATA LOCAL INFILE...
/var/www/html/mccallum/bookworm/CreateDatabase.py:79: Warning: Row 3516 doesn't contain data for all columns
  cursor.execute(sql)
/var/www/html/mccallum/bookworm/CreateDatabase.py:84: Warning: Row 3516 doesn't contain data for all columns
  cursor.execute(sql)
Traceback (most recent call last):
  File "OneClick.py", line 211, in <module>
    getattr(program,method)()
  File "OneClick.py", line 88, in database_metadata
    Bookworm.load_book_list()
  File "/var/www/html/mccallum/bookworm/CreateDatabase.py", line 180, in load_book_list
    self.variableSet.loadMetadata()
  File "/var/www/html/mccallum/bookworm/variableSet.py", line 682, in loadMetadata
    db.query(loadcode)
  File "/var/www/html/mccallum/bookworm/CreateDatabase.py", line 84, in query
    cursor.execute(sql)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 176, in execute
    if not self._defer_warnings: self._warning_check()
  File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 92, in _warning_check
    warn(w[-1], self.Warning, 3)
  File "/usr/lib/python2.7/warnings.py", line 29, in _show_warning
    file.write(formatwarning(message, category, filename, lineno, line))
  File "/usr/lib/python2.7/warnings.py", line 38, in formatwarning
    s =  "%s:%s: %s: %s\n" % (filename, lineno, category.__name__, message)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 43-44: ordinal not in range(128)
make: *** [files/targets/database_metadata] Error 1

This seems to involve not the ingested data itself, but the MySQL query used to load it in.
Is it possible that one of the metadata fields on your bookworm is identified with a unicode key ("nóm_de_plume", or something)? It looks like the current code may require those to be ASCII. (Which is not ideal or documented.)

Hi Ben, thanks for the speedy reply. I really appreciate your assistance.
How would I check the metadata field? I am not sure how to resolve this at present.
FYI as previously mentioned I converted all to the data to UTF8 (do I need to perform a hack to get around this error?)
Please see examples of my files below; hope this helps
This is my JSON descriptions file
[
{"field":"date","datatype":"time","type":"numeric","unique":true,"derived":[{"resolution":"year"}]},
{"field":"searchstring","datatype":"searchstring","type":"text","unique":true}
]

This is the JSON descriptions derived file
[{"datatype": "searchstring", "field": "searchstring", "unique": true, "type": "text"}, {"datatype": "time", "field": "date_year", "unique": true, "type": "integer"}]

This is an excerpt from the catalog.txt file
1       httpsdoajorgarticlece1cd34775a44f9ba6dca9579bcdd60a     Causes, epidemiology, and long-term outcome of traumatic cataracts in children in rural India - 2012    2012

This is an excerpt from the jsoncatalog.txt

Thanks again
Tim

I managed to get this to work with a minute amount of records (hand selected) I need to figure out why it breaks with the complete data set and my guess is that I have a character somewhere in my data which is the cause of this.
Any suggestions of cleaning all files/data (a way of scripting which throws away anything which will break the make file)?

Ok I found the culprit. It seems that when I was creating json catalog file the json.dumps was returning non utf-8.
def createJsonCatalogTxt(year, filename, searchString):
    jsonObject1 = {u"date": int(year), u"filename": filename, u"searchstring": searchString}
    return json.dumps(jsonObject1)

All of the other text was written to files using codecs etc so very clean. The json.dumps seems to make it impossible to return utf-8.
I tried using the following
json.dumps(jsonObject1, ensure_ascii=False).encode('utf8'))

but that gives me the same error
UnicodeDecodeError: 'ascii' codec can't decode byte ...

##Can anyone offer advice on how to ensure utf8 is returned from the function above?
Other than actually knowing what encoding I am fetching from the web when harvesting (and encoding, decoding explicitly) I am out of ideas, however I did come up with a way to clean the files before running the bookworm make file.
the code in a nutshell
note that I am changing the default encoding and therefore recommend running this in the console as a one off.
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

import os
import sys
import shutil
import os.path
import codecs

def convert2utf8(fullPathy):
    newfilename = fullPathy + '.bak'
    shutil.copy(fullPathy, newfilename)
    ready = codecs.open(newfilename, 'rb')
    writy = codecs.open(fullPathy, 'wb', 'utf-8')
    for line in ready:
        writy.write(line)
    ready.close()
    writy.close()

currentDir = os.getcwd()
textFilesDir = os.path.join(currentDir, "textFiles")
for root, dirs, files in os.walk(textFilesDir):
    for file in files:
        fullPathy = os.path.join(textFilesDir, file)
        print fullPathy
        convert2utf8(fullPathy)

OK, trying to remember my unicode rules.
Valid JSON should be in ASCII with unicode characters represented as points. So here's a dict with one non-unicode point (a windows-1232 curly quote at point 96) and one unicode point (a smiley, at point 263A.)
import json

mixed_encodings = {"Windows-1232":"\x96","Unicode":"☺"}
json.dumps(mixed_encodings)

There's no way to represent point `\x96' in unicode, so the best choice is just to replace it with a � character, which you can do by decoding to utf-8 with the "replace" option.
def coerce_to_utf(mystery_string):
    return mystery_string.decode("utf-8","replace").encode("utf-8")

mixed_encodings = {"Windows-1232":"\x96","Unicode":"☺"}

for key,val in mixed_encodings.iteritems():
    mixed_encodings[key] = coerce_to_utf(val)

print json.dumps(mixed_encodings)

So to plow through data of unknown character encoding, what about just something like this: strip out all non-unicode characters in the decode, and then re-encode as utf-8.
def createJsonCatalogTxt(year, filename, searchString):
    jsonObject1 = {u"date": int(year), u"filename": filename.decode("utf-8","ignore").encode("utf-8"), u"searchstring": searchString.decode("utf-8","ignore").encode("utf-8")}
    return json.dumps(jsonObject1)

I don't know if this kind of coercion should be done automatically--we actually try to do it on the texts currently, but not on the metadata because it's technically illegal to create JSON with invalid characters.
Just a note for the record: this is vaguely connected to the closed backslash issue, because it has to do with the validity of the jsoncatalog.txt file.

Thanks Ben,
I have started modifying my code, I am spending some time gathering more data and will re run this in the next few days.
Chat soon
Tim


WIP: Don't Review : Changes to support trust incoming spans

https://github.com/open-telemetry/opentelemetry-cpp-contrib/tree/main/instrumentation/nginx#opentelemetry_trust_incoming_spans
The changes are for supporting above feature opentelemetry_trust_incoming_spans

/easycla

Given the WIP: Don't Review part of the PR title, changing PR to draft.


pm:drag for vertex

i study on project with leaflet.pm and i can achieve when one of the vertex is moving, i can fire event multiple times. pm:drag provide this functionality for layer all but i am looking for this for vertex. Are there anybody out there to help me ?

as soon as a vertex marker is added to the map, you can grab it and add the pm:drag event to the marker of that vertex.
// listen to vertexes being added to currently drawn layer (called workingLayer)
map.on('pm:drawstart', ({ workingLayer }) => {
  // working layer should include the markers of all vertexes. You can add the `pm:drag` event to them.
});

Let me know if this helps.


Rocks.nvim install - checkhealth Hotpot Module Searcher index mismatch error

Fresh install into clean nvim instance using Rocks.nvim results in error when running checkhealth. As far as I can tell does not cause any issues with hotpot besides the error itself?
hotpot: require("hotpot.health").check()

Hotpot Cache Data ~
- Cache root path: /home/ghost/.cache/hotpot/hotpot
- Cache size: 1 files, 4kb

Hotpot Log ~
- Log path: /home/ghost/.local/state/hotpot/hotpot.log
- Log size: 0

Hotpot Module Searcher ~
- ERROR package.loader index: 3, requires: 2

This happens on my main config, but I started a new NVIM_APPNAME instance to reproduce this with fresh/minimal config as shown below:

init.lua
do
  local install_location = vim.fs.joinpath(vim.fn.stdpath("data"), "rocks")
  local rocks_config = { ["rocks-path"] = vim.fs.normalize(install_location) }
  vim.g.rocks_nvim = rocks_config
  local luarocks_path = {
    vim.fs.joinpath(rocks_config["rocks-path"], "share", "lua", "5.1", "?.lua"),
    vim.fs.joinpath(rocks_config["rocks-path"], "share", "lua", "5.1", "?", "init.lua"),
  }
  package.path = (package.path .. ";" .. table.concat(luarocks_path, ";"))
  local luarocks_cpath = {
    vim.fs.joinpath(rocks_config["rocks-path"], "lib", "lua", "5.1", "?.so"),
    vim.fs.joinpath(rocks_config["rocks-path"], "lib64", "lua", "5.1", "?.so"),
  }
  package.cpath = (package.cpath .. ";" .. table.concat(luarocks_cpath, ";"))
  vim.opt.runtimepath:append(
    vim.fs.joinpath(rocks_config["rocks-path"], "lib", "luarocks", "rocks-5.1", "rocks.nvim", "*")
  )
end

if not pcall(require, "rocks") then
  local rocks_location = vim.fs.joinpath(vim.fn.stdpath("cache"), "rocks.nvim")
  if not vim.uv.fs_stat(rocks_location) then
    vim.fn.system({
      "git",
      "clone",
      "--filter=blob:none",
      "https://github.com/nvim-neorocks/rocks.nvim",
      rocks_location,
    })
  else
  end
  assert((vim.v.shell_error == 0), "rocks.nvim installation failed. Try exiting and re-entering Neovim!")
  vim.cmd.source(vim.fs.joinpath(rocks_location, "bootstrap.lua"))
  vim.fn.delete(rocks_location, "rf")
else
end

require("hotpot")

rocks.toml
[rocks]

[plugins]
"rocks.nvim" = "2.40.1"
"hotpot.nvim" = "0.14.5"

Yeah, from what I can recall, this is a know "issue" because rocks calls require luarocks.loader, which always installs itself as index 1 in the searchers. Then depending on when hotpot was required/setup, we might install ourselves at 2, or have been pushed back to 3.
I have intended to improve that message.
The issue was I would rather check if luarocks was injected vs rocks.nvim specifically but I can't check if the functions ahead of us == the luarocks loader is without calling require luarocks.loader to get the function,which installs the loader and the user might not want that.
I could copy the table and put it back after checking but I wasn't sure of any other side effects luarocks might do, it felt brittle.

This should be improved in 0.14.6.

Appreciate the insight and feedback as well as your time and efforts in sharing this phenomenal project.


Broken Download Links on coreos

The download link given in the tutorial is broken.
This came up on Stack Overflow

i think Redhat strategy to move to  openshift may be disrupting. not a clue but i dont see kubernetes 1.9 as mentioned in march  is not available even today ?

The sandbox has been lagging behind the regular Tectonic releases, and with the acquisition, we don't plan to update it further, which is why the download has been removed. All of the docs were supposed to have been removed, but clearly that is not the case ;)
If you want to check out the old version (1.7.5) you can, but note that it doesn't reflect the latest Tectonic. If you'd like to check that out, I recommend using AWS with 1.9.6, which was just released today.
You can also check out Minishift, a local version of OpenShift. For more info on how Tectonic technology is being integrated, check out this blog post.


wasm and clvm_tools-js integration

@richardkiss
I've just confirmed that the wasm of clvm_rs can be successfully integrated into clvm_tools-js!
clvm_tools-js#clvm_rs
# Terminal
git clone https://github.com/Chia-Mine/clvm_tools-js
cd clvm_tools-js
git checkout clvm_rs
npm install
npm run build
node .dist/npm/bin/cli.js brun --experiment-backend rust --time "(+ 1 (q . 3))" "2"

However, I'm aware that current wasm API is not fully aligned with Python's clvm_rs API.
At wasm, run_clvm Rust function is exposed to wasm, which accepts only clvm program and arguments, and returns only program result without value of cost.
#[wasm_bindgen]
pub fn run_clvm(program: &[u8], args: &[u8]) -> Vec<u8> {
// ...

On the other hand, Python's API accepts additional parameters and also return cost.
#[allow(clippy::too_many_arguments)]
#[pyfunction]
pub fn deserialize_and_run_program2(
    py: Python,
    program: &[u8],
    args: &[u8],
    quote_kw: u8,
    apply_kw: u8,
    opcode_lookup_by_name: HashMap<String, Vec<u8>>,
    max_cost: Cost,
    flags: u32,
) -> PyResult<(Cost, LazyNode)> {
// ...

At a quick glance, I think arguments quote_kw, apply_kw, opcode_lookup_by_name in deserialize_and_run_program2 are not necessary for wasm's run_clvm because those arguments seem always the same value and no user interference.
Question is whether the above assuption is correct or not.
As for max_cost and flags, I'll find the good way/appropriate type to connect to JavaScript. (JavaScript built-in number cannot represent unsigned int 64bit as is. So u64 of Rust should be represented in uint8array in JavaScript or something)
P.S.
In case you are interested, I'll attach the benchmark result among

clvm_tools(js)-clvm(js)
clvm_tools(js)-clvm(rust)
clvm_tools(python)-clvm(python)
clvm_tools(python)-clvm(rust)

bump (to avoid being labeled as stale)

Resetting stale timer...
We need<EMAIL_ADDRESS>for npm.

There is now an npm package automatically created whenever we do new releases of clvm_rs. It has a very bad and limited API right now, mostly because I am the only one who has worked on this and I don't know very much about how to create wasm APIs that bridge to JS. If you want to create some pull requests that improve the wasm API, I would be very happy to merge them.

There is now a Dialect object which may make it easier to provide a useful API to wasm. The main problem is I am not an expert on how to export a new complex rust type like Dialect to JS. Take a look at https://github.com/Chia-Network/clvm_rs/blob/main/src/dialect.rs and https://github.com/Chia-Network/clvm_rs/blob/main/src/chia_dialect.rs to get started.

It's OK. I'll take a look into it soon.


Reflected XSS at luci/admin/filebrowser in path and 'field' parameter

The file browser is vulnerable to a few XSS issues. One in the path (first one) and the two other use the field parameter.
First (path)
http://<IP_ADDRESS>/cgi-bin/luci/admin/filebrowser/boot/grub%2500">`-alert(1)</script><script>`
Second (field parameter - reflected in <script>-context)
http://<IP_ADDRESS>/cgi-bin/luci/admin/filebrowser/boot/grub?field=')}}%0aalert(1)%0afunction%20a(path,input){if%20(true){//
Third (field parameter)
http://<IP_ADDRESS>/cgi-bin/luci/admin/filebrowser/boot/grub?field=">`-alert`1`]]></script><svg><script>`<![CDATA[
First and third should be blocked by IE XSS filter. Replace http://<IP_ADDRESS>/cgi-bin/luci/ with URL to luci.
Tested on:

Powered by LuCI Master (git-18.096.36616-14da6e8) / OpenWrt SNAPSHOT r6626-f27336e

To fix first and third, which are reflections in <a href=-context, i.e html attribute, the value should probably be url-encoded then HTML entity-encoded.
To fix the second, the value should be escaped / encoded so it's not possible to escape the javascript string context OR end the script tag with </script>.

5c31937a0f0bf8fa2f0161cadae9688fff9c227e

From my preliminary investigation this only affects leaf nodes because other invalid urls are running into a 404 code paths. This particular attack vector should've been closed with b194b8882e4d335a265f44c478ea8e3d7b2a99fc

@jow- I tested it a bit more and it seems to work. Unless you know somewhere else this should be patch, shall the bug be closed?

Closing.


[Resolver] Add optimization for deps where theres a path/gemspec source

Closes https://github.com/bundler/bundler/issues/3732.

merging presuming travis passes


Filter collections by group

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: jasonrobwebster:x: MaximSchoemakerYou have signed the CLA already but the status is still pending? Let us recheck it.


List of Publications using BibTeX source

Added support for including publications through BibLaTeX, based on Fancy CV template created by Adrien Friggeri.
Closes #271.

This feature would be awesome!

The bibliography part of the friggeri cv template broke with the last update of biblatex, threw lots of warnings before, and does some real strange stuff. I would advice against merging that in its current state.

Fixed the issue caused by changes in \DeclareNameFormat in biblatex (see plk/biblatex#372). This should be working fine now.

Nice addition, folks! Any idea on how to match the Publications font to the rest of the document?

@thiagoveloso You can use \setmainfont.
See https://github.com/aminmkhan/Awesome-CV/blob/6c08ff11ff1c388460d60046a1ad0c8b96b2465e/awesome-cv.cls#L202-L209

@aminmkhan, thank you very much. Haven't used the \setmainfont command, but the changes merged from @jckegelman made my CV's "Publications" section look much better. Help much appreciated.

Any way to get hyperlinks to the urls?

@andrewcassidy One quick workaround could be to use the note field in *.bib entries.
Better solution would be to play around with \DeclareFieldFormat in the class file awesome-cv.cls.

I wanted more of the Awesome look for the bibtex entries and took a swipe at achieving that. See here for the end result:

I don't want to tread on anyone's toes but I'm happy to share my changes. If anyone is interested then let me know and I'll see if I can figure out how to add my changes to this pull request.
Awesome job everybody!

Thanks @SiggiSmara. For now you can push your changes to a pull request similar to aminmkhan/Awesome-CV#2, and we'll see.

Cool @aminmkhan . Pushed the changes to you. First time for me to push from one fork to another so let me know if I managed to make a mistake along the way.

@SiggiSmara can you kindly share an example of how you create a publication entry?
Am I missing it inside @aminmkhan repository? Couldn't find it.

Sorry @omrysendik  I missed your comment. Are you still having trouble?  In the examples/cv folder you should see a bibtex file (references.bib) and a publications.tex file.  The bibtex file contains the reference information itself while the publications.tex file imports the references that you want to appear.
Let me know if I can help...

@omrysendik You can check the Usage section in README here or in PR.

Thanks for these commits. I made my publication section work based on the latest commit in this thread.

There is one thing I cannot figure out is how to use first initials instead of full first names. Based on some search, it seems I have to use giveninits=true somewhere. My best guess are these mods to awesome-cv.cls:
\RequirePackage[ % BibLaTeX
sorting=ydnt, % Sorts entries by year (descending order), name, title
style=verbose,
doi=false,
isbn=true,
url=false,
eprint=false,
backref = false, % include back references in bibliography
maxcitenames=3, % affects only the citations in the document body
maxbibnames=99, % affects only the bibliography, pass 99 to print all
hyperref=true,
block=none,
uniquename=init,
giveninits=true,
backend=biber % {Options: bibtex, biber}
]{biblatex}

However, the changes have completely no effect (I am using sharelatex.com). Additionally, I tried putting the options in different places; however, my publications section seems to ignore it.
How I can use first initials instead of full first names?
I would appreciate any help

@syoh the giveninits=true option is ignored because awesome-cv.cls has its own \DeclareNameFormat that uses \namepartgiven. If you always want to use initials, you can replace \namepartgiven with \namepartgiveni. If you want it to honor the giveninits option, you can use \ifgiveninits{\namepartgiveni}{\namepartgiven}

@syoh Your changes look really elegant. Can you commit and push them online?

Is there a way to format an author in bold? Also a way to number publications?

@ShanSabri You can try numerical, though there could be some issues.
You'll have to play with custom code to change formatting for the author.

@syoh How did you get your publication title to be bold?

@ShanSabri aminmkhan/Awesome-CV#6

Thanks @ashwinvis, I will try to integrate this and update the #23.

@aminmkhan Unfortunately I am running into some issues trying to numerate publications. Any additional advice or working example would be greatly appreciated.

@ShanSabri You can try having a look at some recent pull requests, I haven't used numbered list in this style myself.

Thanks @aminmkhan for contributing such a useful feature to the template.
However, if using this template for research statements where numerical citations are required references may appear like this:

To fix the period between entries, define the following:
\renewcommand*\newunitpunct{}

It's up to you whether you want to integrate this into the PR @aminmkhan :smile:

Thanks @jamesadevine, also mentioned in https://github.com/aminmkhan/Awesome-CV/issues/5.

Hi, Thanks for the great template.
I was wondering if there is any way to underlining or bold-texting one of the author of the paper. It is more clear to indicate the applicant's contribution to the paper when presented to the highering manager.

@hyyoonzvolti
Hi, would you like to see this issue that I answered by myself?

@hyyoonzvolti
Hi, would you like to see this issue that I answered by myself?

Hi, Thanks for the suggestion.
As stated in the link, the none of the solutions provided here work for biblatex > 3.11. I am using "3.14", so it does not for my case.
The alternative to use function forcsvlist does NOT work too.
\forcsvlist{\listadd\boldnames}   {{Pospiech, Matthias}, {Pospiech, M.}}

Hi
I was wondering if there is a way to show the numbers in reverse order.
[3] Most recent
[2] Middle
[1] Older

@CBornes always search online first :smile:

@CBornes always search online first 😄

Ups sorry I've found some answers (not this) and all of them broke the formatting. But this one works like a charm thanks.

So how to add the list of publication from a bib file?
Thanks

I wanted more of the Awesome look for the bibtex entries and took a swipe at achieving that. See here for the end result:

I don't want to tread on anyone's toes but I'm happy to share my changes. If anyone is interested then let me know and I'll see if I can figure out how to add my changes to this pull request.
Awesome job everybody!
@ SiggiSmara, I am pretty new to Latex, I used the new files which included the publications but none of them work for me. Not sure what is missed. Is it possible that you could share the code package you used to make your publications so I can use it as my resume tempelate? Many thanks in advance.

Hi
I was wondering if there is a way to show the numbers in reverse order.
[3] Most recent
[2] Middle
[1] Older

I have solved this publication problem. See the attached.

Hi @donadviser, you can use "reversenumbering=true" in the biblatex package options

Hello everyone, I am pretty new to Latex,  I am trying to add the publications to my resume but cannot figure how and the publication section appears as empty! I would appreciate it if anyone can help me with this issue.

I wanted more of the Awesome look for the bibtex entries and took a swipe at achieving that. See here for the end result:

Thanks @navidlilian, you can push your code changes as pull request here: https://github.com/aminmkhan/Awesome-CV/pulls
The merge and clean-up is long overdue, but do push your changes and we can see how best to integrate. Thank you!

Is it possible that you could share the code package you used to make your publications so I can use it as my resume template? Many thanks in advance.

To include publications, you need to include them as *.bib file, like the example here: https://github.com/aminmkhan/Awesome-CV/blob/feature/publications-biblatex/examples/cv/references.bib
If you are unfamiliar, check BibLaTeX and there are tools like JabRef that help creating and managing bibliography easier!

Hi @donadviser, you can use "reversenumbering=true" in the biblatex package options

You are right. That's what I did. I'm OK what how mine looked. Thanks

Hi
I was wondering if there is a way to show the numbers in reverse order.
[3] Most recent
[2] Middle
[1] Older

I have solved this publication problem. See the attached.

How did you define this style?

Hi @donadviser, you can use "reversenumbering=true" in the biblatex package options

Have you tried this method? Let me know if it didn't solve it, then the next option is to use calculating the total number of entries in each reference section.

Hi @donadviser, you can use "reversenumbering=true" in the biblatex package options

Have you tried this method? Let me know if it didn't solve it, then the next option is to use calculating the total number of entries in each reference section.

Sorry I meant the entire style with the numbering, author, "title", journal (italics). etc.
Currently, I have this\DeclareBibliographyDriver{article}{%   \setlength{\parskip}{0pt}   \fontsize{9pt}{1em}\bodyfont\color{black}%   {\bullet\hspace{1.5ex}}\printfield{title}%   \newblock%   \printnames{author}%   \par%   \newblock%   {%     \fontsize{8pt}{1em}\bodyfont\scshape\color{graytext}%     \usebibmacro{journal+issuetitle}%     \setunit{\space}%     \printfield{pages}%     \newunit%     \printlist{publisher}%     \setunit*{\addcomma\space}%     \printfield{year}%     \setunit*{\addcomma\space}%     \color{awesome}\printfield{note}%     \newunit%   }   \par\vspace{0.8\baselineskip} }

Hi @donadviser, you can use "reversenumbering=true" in the biblatex package options

Have you tried this method? Let me know if it didn't solve it, then the next option is to use calculating the total number of entries in each reference section.

Sorry I meant the entire style with the numbering, author, "title", journal (italics). etc.
Currently, I have this\DeclareBibliographyDriver{article}{% \setlength{\parskip}{0pt} \fontsize{9pt}{1em}\bodyfont\color{black}% {\bullet\hspace{1.5ex}}\printfield{title}% \newblock% \printnames{author}% \par% \newblock% {% \fontsize{8pt}{1em}\bodyfont\scshape\color{graytext}% \usebibmacro{journal+issuetitle}% \setunit{\space}% \printfield{pages}% \newunit% \printlist{publisher}% \setunit*{\addcomma\space}% \printfield{year}% \setunit*{\addcomma\space}% \color{awesome}\printfield{note}% \newunit% } \par\vspace{0.8\baselineskip} }

For my article, I used the following
\DeclareBibliographyDriver{article}{%
\fontsize{10pt}{1.0em}\bodyfontlight\upshape\color{text}
\usebibmacro{bibindex}%
\newunit
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{bytranslator+others}%
\newunit\newblock
\printfield{version}%
\newunit\newblock%
\usebibmacro{journal+issuetitle}%
\newunit
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit
\usebibmacro{note+pages}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}
\par\vspace{0.5\baselineskip}}

@donadviser Doesnt give me the same output as your screenshot. I dont get numbers and the journal appears in the new line. Would you mind sharing your cls file?
Thanks for your help!

@avalada, can you show what it looks like?

@donadviser Also attached my cls file

@avalada Let me know if the below will fix your publications
%-------------------------------------------------------------------------------
%                Bibliography
%-------------------------------------------------------------------------------
\RequirePackage[ % BibLaTeX
sorting=ydnt, % Sorts entries by year (descending order), name, title
bibstyle=numeric,
doi=false,
isbn=true,
url=false,
eprint=false,
backref = false, % include back references in bibliography
maxcitenames=3, % affects only the citations in the document body
maxbibnames=99, % affects only the bibliography, pass 99 to print all
hyperref=true,
block=none,
backend=biber % {Options: bibtex, biber}
]{biblatex}
%
%--------------------------------------------------------------
% Count total number of entries in each refsection
\AtDataInput{%
\csnumgdef{entrycount:\therefsection}{%
\csuse{entrycount:\therefsection}+1}
}
% Print the labelnumber as the total number of entries in the
% current refsection, minus the actual labelnumber, plus one
\DeclareFieldFormat{labelnumber}{\mkbibdesc{#1}}
\newrobustcmd*{\mkbibdesc}[1]{%
\number\numexpr\csuse{entrycount:\therefsection}+1-#1\relax}
%-------------------------------------------------------------
% Avoid splitting entries across page break (only for 3 or fewer lines)
% Tip: http://tex.stackexchange.com/a/51261
\AtBeginEnvironment{thebibliography}{%
\clubpenalty10000
@clubpenalty \clubpenalty
\widowpenalty10000
\interlinepenalty5000}
\DeclareBibliographyDriver{article}{%
\fontsize{10pt}{1.0em}\bodyfontlight\upshape\color{text}
\usebibmacro{bibindex}%
\newunit
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{bytranslator+others}%
\newunit\newblock
\printfield{version}%
\newunit\newblock%
\usebibmacro{journal+issuetitle}%
\newunit
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit
\usebibmacro{note+pages}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}
\par\vspace{0.5\baselineskip}
}

@donadviser almost! Some of the entries have an indentation as in the sceeenshot, any idea how to remove this ident?

Closes #271

publication with numbering

@avalada and @donadviser  That's great to see it working, if you want you can submit your changes as pull request either here, or at: https://github.com/aminmkhan/Awesome-CV/pulls
Thank you.

Please do submit here, or update yours if merged in your repo @aminmkhan. This is a very long-standing PR but seems like an excellent addition, I do mean to review properly with a view to merging soon. Thanks.

Thank a lot @OJFord. I have now updated this pull request, with fresh rebase from master and squashing all commits.
Ready to review and land this! 🚀
I have moved some of the suggestions and conversations as issues to aminmkhan#11, aminmkhan#12, aminmkhan#13, aminmkhan#14, and will update in future pull requests.

Just checking @OJFord, can we proceed with the review and merging this PR? Thanks!

Awesome work! Looking forward to being merged!

Apart from that I just want to test a couple of CVs myself and I think good to merge. 👍 Thanks!

I have tested this pr and believe that it is ready to be merged.👍

Any news on merging this @OJFord?

I'm not able to get the bibliography section to work for my CV. I copied the entire Bibliography section from the awesome-cv.cls of @aminmkhan into my awesome-cv.cls (I have made some other formatting edits for my own use) and then added a references.tex file, following the example, and put \addbibresource{references.bib} in the preamble of my cv.tex file. However, I am left with just the section and subsection headings; the references are not filled in (see screenshot).

I'm using TeXStudio on Ubuntu 22.04 and have a full and up-to-date texlive installation.

@JJGabe you also need to include the references.bib file with some entries in BibTeX format. The examples/cv/references.bib included is empty.

@aminmkhan Sorry, I should have been clearer. I did include my own BibTex file, which I exported from Zotero as a BetterBibTex, but I renamed it references.bib to match your template. Even when I have compiled the CV once, with the \addbibresource included, the autofill options don't show up when I start a nocite() command in the references.tex file, as they usually do with the other articles I have written.

@JJGabe Not sure what's happening, perhaps cross-check that the path to bib file is correct, or check the output log of make / xelatex command for any errors.
\addbibresource{cv/references.bib}

If still not resolved, perhaps report an issue at aminmkhan/Awesome-CV/issues to follow-up. Thanks.

@aminmkhan, thanks for the response. I made a couple of changes, including adding an extra Biber compile in my build process (xelatex -> Biber -> Biber -> xelatex) and moving the \addbibresource{} call to the awesome-cv.cls file, immediately following the \RequirePackage{biblatex} block. My references are now working, though I'm not sure which change was responsible....maybe a combination of both.


Include time taken during minimization

In Webpack 4, we specify the minimizer like so:
  optimization: {
    minimizer: [
      new TerserPlugin({
        sourceMap: true,
        parallel: true,
        cache: './.build_cache/terser',
        exclude: /transpiledLibs/,
        terserOptions: {
          warnings: false,
          ie8: false
        }
      })
    ]
  },

Meaning that it is no longer included in the SMP output time. This would be a nice addition to the plugin :)

Ah, yes. This wouldn't be too big a change, it should just be specifying an extra source for proxying.
I'll try and raise a PR this week for the change, unless anyone else wanted to give this one a go :)

Thanks @anton164 - would be awesome if you had any time to have a look :smile:
If you look at https://github.com/stephencookdev/speed-measure-webpack-plugin/blob/master/index.js#L41 you can see how we map through config.plugins, and wrap plugin with WrappedPlugin
We should just need to add an extra bit doing similarly for any extra plugins that webpack.optimization allows the specification of

@stephencookdev I did some tests:
1. No any changes:
 SMP  ⏱
General output time took 26.73 secs

 SMP  ⏱  Plugins
HtmlWebpackPlugin took 5.74 secs
CaseSensitivePathsPlugin took 3.082 secs
LodashModuleReplacementPlugin took 0.166 secs
ProgressPlugin took 0.079 secs
MiniCssExtractPlugin took 0.04 secs
ProvidePlugin took 0.002 secs
DefinePlugin took 0 secs

2. Changes the optimization in webpack.config.js:
let optimization = {
    minimize: true,
    minimizer: [
        new UglifyJsPlugin()
    ].map(plugin => env.MEASURE ? new WrappedPlugin(plugin, plugin.constructor.name, smp) : plugin)
};

 SMP  ⏱
General output time took 26.73 secs

 SMP  ⏱  Plugins
HtmlWebpackPlugin took 5.74 secs
CaseSensitivePathsPlugin took 2.99 secs
LodashModuleReplacementPlugin took 0.202 secs
ProgressPlugin took 0.08 secs
MiniCssExtractPlugin took 0.05 secs
ProvidePlugin took 0.002 secs
DefinePlugin took 0.002 secs

3. Changes the wrap function like this:
 config.plugins = (config.plugins || []).concat(config.optimization.minimizer).map(plugin => {
  const pluginName =
    Object.keys(this.options.pluginNames || {}).find(
      pluginName => plugin === this.options.pluginNames[pluginName]
    ) ||
    (plugin.constructor && plugin.constructor.name) ||
    "(unable to deduce plugin name)";
  return new WrappedPlugin(plugin, pluginName, this);
});

 SMP  ⏱
General output time took 42.35 secs

 SMP  ⏱  Plugins
UglifyJsPlugin took 19.62 secs
HtmlWebpackPlugin took 5.73 secs
CaseSensitivePathsPlugin took 3.08 secs
LodashModuleReplacementPlugin took 0.145 secs
ProgressPlugin took 0.069 secs
MiniCssExtractPlugin took 0.054 secs
ProvidePlugin took 0.001 secs
DefinePlugin took 0 secs

4. Changes the wrap function like this:
 config.plugins = (config.plugins || []).map(plugin => {
  const pluginName =
    Object.keys(this.options.pluginNames || {}).find(
      pluginName => plugin === this.options.pluginNames[pluginName]
    ) ||
    (plugin.constructor && plugin.constructor.name) ||
    "(unable to deduce plugin name)";
  return new WrappedPlugin(plugin, pluginName, this);
});

if (config.optimization && config.optimization.minimize) {
  config.optimization.minimizer = config.optimization.minimizer.map(plugin => {
      return new WrappedPlugin(plugin, plugin.constructor.name, this);
  }) ;
}

 SMP  ⏱
General output time took 26.58 secs

 SMP  ⏱  Plugins
UglifyJsPlugin took 19.11 secs
HtmlWebpackPlugin took 5.53 secs
CaseSensitivePathsPlugin took 3.036 secs
LodashModuleReplacementPlugin took 0.149 secs
ProgressPlugin took 0.086 secs
MiniCssExtractPlugin took 0.055 secs
ProvidePlugin took 0.001 secs
DefinePlugin took 0.001 secs

I am confuse with test2 and test3.
I think test2 should work, but it does not output UglifyJsPlugin's time.
And it seems test3 run twice UglifyJsPlugin, but I am not sure about it.

I just tested your test4 in one of my projects and it worked.
You should however not check for config.optimization.minimize. People may not have set minimize=true in their production webpack config, as this is true by default in production, but this is set after the wrap method.
I replaced the check withconfig.optimization.minimizer and it worked just fine for both cases with and without this setting.

Thanks for your help with this @scarletsky and @Kruemelkatze :slightly_smiling_face: I agree that test4 but with the if statement changed to if (config.optimization && config.optimization.minimizer) { is probably the best way forwards here
Would one of you like to raise a PR to fix this?


[Question] Filter on Tablet

Config:
var gridOptions = {
enableFilter: false
};
In Desktop, Menu Filter do not show.
But Menu Filter will show on Table when touch long.
Can i disable Menu Filter show on Tablet?

Can i disable Menu Filter show on Table?

no, this is an issue we need to fix.


Change title of photo info page

This is a lower priority item but.... Can we make the title of the photo info page "Photo Info"? Here's a sample URL. http://www.inaturalist.org/photos/8581736 I don't think the number needs to be in the title nor the photos rights as all that info is on the right. I remember it taking me forever to figure out what this page was when I first started using iNat. Now that it's more prominent, I suspect more people will be clicking on it.
Lastly, since the link to get to this page is an "info" link, it would be a nice follow through if the title was more aligned with the link.

I'm fine with something like Info for Photo 1234 but I think the photo ID should be in there so the title is unique. We don't want a browser history that looks like
Photo Info
Photo Info
Photo Info
Photo Info
Photo Info

if they're all different photos.


BUG: Don't delete namespace if import fails.

datashape should be optional, this ensures it is actually optional.

merging on pass! Thank you!


About Azure Template Configuration

Hello, I am deploying this project on Azure. However, I found that some services in the default Azure template is very expensive. The most cost service are Azure Cognitive Search and Azure App Service, can you provided the minimum requirements of these two services. The default config for Azure App Service is P0v3, I hope I can know the minimum CPU and memory requirements to run web app; and the default config for Azure Cognitive Search is standard s1, I wonder whether free plan for this service is adequate to run service.

Hi @Chester-Luo, please refer to the doc page here: https://github.com/microsoft/azurechat/blob/main/docs/1-introduction.md#azure-deployment-costs which lists at the very last paragraph how you can switch over to the free SKUs to save on costs.


chore(Core): Ignore phpstan static analysis for Guzzel5HttpHandler

As this class is deprecated and we use phpstan-deprecation-rules, thus it's usage is giving static analysis failure. (fails)

As we are moving towards removal of Guzzel5HttpHandler logic altogether, thus this PR becomes obsolete.


Package.loadSettings is deprecated.

Store package settings files in the settings/ directory instead of scoped-properties/
Package.loadSettings (/Applications/Atom.app/Contents/Resources/app/src/package.js:565:9)
<unknown> (/Applications/Atom.app/Contents/Resources/app/src/package.js:187:43)

Thanks for the heads up, updated!


Proposed fix for #28

As far as I was able to test, it seems that this solves #28
Regards.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Review status: 0 of 1 files reviewed at latest revision, all discussions resolved.

vaadin-context-menu-addon/src/main/java/com/vaadin/contextmenu/client/MyVMenuBar.java, line 276 at r1 (raw file):

        }
    }

Extra spaces

Comments from Reviewable

Review status: 0 of 1 files reviewed at latest revision, 1 unresolved discussion.

vaadin-context-menu-addon/src/main/java/com/vaadin/contextmenu/client/MyVMenuBar.java, line 276 at r1 (raw file):
Previously, elmot (Ilia Motornyi) wrote…
Extra spaces

Done.

Comments from Reviewable

Review status: 0 of 1 files reviewed at latest revision, all discussions resolved.

a discussion (no related file):
Unfortunately, the fix breaks context menus completely.
Steps to reproduce broken behavior:

Run the demo
Right click Button2
Hover Submenu
SubItems are shown
Close the submenu
Right click Button2
Hover Submenu
SubItems are not shown anymore until refresh

Comments from Reviewable

There is no activity related to this PR. I am closing it. @mlopezFC, if you have another solution, please make a new PR.


Add support for laravel 8

thx. can you also add Laravel 8 to .travis.yml so it gets tested?

@felixkiss done!

@felixkiss Laravel 8 has been tagged and released https://github.com/laravel/framework/releases/tag/v8.0.0

resolve #117

@felixkiss A gentle followup ... hope you can merge and releases new version for the support for Laravel 8. Thanks~!

You added Laravel 8 to PHP 7.1 and 7.2 in travis.yml while Laravel 8's composer mentions php": "^7.3". So this is not a realistic test.

@rickgoemans

You added Laravel 8 to PHP 7.1 and 7.2 in travis.yml while Laravel 8's composer mentions php": "^7.3". So this is not a realistic test.

No, the code in question excludes Laravel 8 from testing with PHP 7.1 and 7.2 (since Laravel 8 is PHP ^7.3 only)

@rickgoemans

You added Laravel 8 to PHP 7.1 and 7.2 in travis.yml while Laravel 8's composer mentions php": "^7.3". So this is not a realistic test.

No, the code in question excludes Laravel 8 from testing with PHP 7.1 and 7.2 (since Laravel 8 is PHP ^7.3 only)

Oops my bad, I read over the exclude part. Ignore my comment(s).

Any news on this?

Please merge this!

Please merge this!!!

Hello?

@felixkiss Merging or any feedback related to this PR would be great!

@felixkiss please merge this!

@felixkiss Please merge this. Other packages depend on this.

please merge this! We need it.

Sorry. Didn't find the time yet to look at it. In the meantime use it like this:
{
    "repositories": [
            {
                "type": "vcs",
                "url": "https://github.com/lloricode/uniquewith-validator"
            }
    ],
    "require": {
        "felixkiss/uniquewith-validator": "dev-patch-1"
    }
}

@felixkiss can you merge this please? Thanks!

I'm amazed by how bad this is managed. If a simple answer takes a month, I wonder how long a merge takes... Sorry but I hardly doubt you can't find a couple of minutes over 2 months of time for such task.

@rickgoemans Seems a bit harsh, seeing as I'm sure Felix does this work without compensation. In any case, thanks for the hard work Felix and good luck with the merge!

@felixkiss ping! Would love a merge whenever you can. Thanks.

Help!? @felixkiss

I've been using @lloricode fork for the last month without any kind of troubles and giving it an intensive usage in production. I think it's completely safe to just merge it @felixkiss. Thanks.

When I try to use the lloricode fork I get this error when running composer install.
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package felixkiss/uniquewith-validator dev-patch-1 exists as felixkiss/uniquewith-validator[1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 2.0.8, 3.0.0, 3.1.0, 3.1.1, 3.1.2, 3.2.0, 3.3.0, 3.3.1, 3.4.0, dev-add-recent-laravel-versions, dev-master] but these are rejected by your constraint.

This is what the relevant parts of my composer.json look like:
"repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/lloricode/uniquewith-validator"
    }
  ],
  "require": {
    "felixkiss/uniquewith-validator": "dev-patch-1"
}

This is my composer install command. We're using composer 1, and haven't been able to upgrade to composer 2 yet.:
composer install --no-scripts --no-autoloader --no-suggest --prefer-dist

Anyone have any ideas on what I'm doing wrong? Thanks! @devngl @lloricode @felixkiss

up

Anyone have any ideas on what I'm doing wrong? Thanks! @devngl @lloricode @felixkiss

if any issue occur, try to fork my PR branch, then make a release then you can use your own version to your project.
note: if this merge and finally released, just run composer clear-cache to remove custome version in you local cache.

Sorry for the hold up.
@lloricode What release does this require? Just a new patch version? (3.4.1)

Sorry for the hold up.
@lloricode What release does this require? Just a new patch version? (3.4.1)

yes, since no minor/major update in your library, and its just a patch to support laravel 8

anyone who use my fork branch, I'm suggesting to use the original repository, I will delete my fork sooner after a couple weeks time give time adjust yours
thank you


fixed dates for TWIA posts

That was a pesky bug! Thanks for the help, @LucioFranco and @Aceeri. Merging.


🐞 Filtering not working well

if you select an item and start searching for the item you have selected you cannot de-select that item

fixed


How do I send e object to progress function?

Hi Chad,
How do I send XML/e object type to progress, if my request response type is html?
tq.
royhg

I'm not sure I understand the question. e is the event object that the browser creates for the XHR progress event.

Hi Chad,
Sorry for my questions,
If I send ajax request that returns html,
how do I count el.dom inside has been retrieved by user during successful request?
like example if the data request is big that needs some time to wait untill complete..
My question is how do I count or catch successfull respons from server before it show to user?
tq.
royhg

All XHR requests are the same while in-flight, your data type doesn't matter. The e is the event from the browser that tells you how much data has downloaded and how much still needs to be downloaded. Until the download completes there is no context as to what the contents of the request are.
Are you experiencing an issue? Because the code on the README should be everything you should need.


Control-Clicking (goto definition) disrupts multi-cursor shortcut

Lapce Version
Version 0.2.0
System information
Windows 11 Pro 22H2 Build 22621.590
Describe the bug
Ctrl+Click goes to definition, so trying to click to add multi-cursor (Ctrl+Alt+Click) gets tedious as it also opens definition.
It does add a _n_th cursor, but it's annoying to be brought to the definition each time.

You don't need Ctrl for multi-cursor. It's Alt+Click.

Wow, I am dumb, apologies.


Can't store connection information as a favorite

Expected Behavior
Any connection information can be stored as a favorite normally.
Actual Behavior
When storing connection information with SSH key, it can't be stored.
Other
This issue was reported by @fransdw

It seems that this cause is the limitation of chrome.storage.sync storage.
Currently, the limitation is 8,192 bytes (https://developer.chrome.com/apps/storage). Each byte length of SSH private key is about 1,680 bytes. If we assume that the byte length of other items is 100 bytes, the byte length of each connection information is 1,780 bytes. That is, in the current version of this app, users can store only four connection information...

To solve the root cause, I might need to change the chrome.storage.sync to chrome.storage.local to increase the capacity. Of course, the connection information will not be shared between multiple devices, but I think that to solve this issue is important than the sharing functionality.

I have released a new version 4.8.0 to migrate the storage to store configurations from chrome.storage.sync to chrome.storage.local. All configurations are kept by moving sync to local automatically. By migrating, the configurations no longer shared, but we could get a large storage to store them. Thus, I think that this issue was fixed.

@fransdw Could you confirm whether this issue is fixed on your environment with the latest version?

I am on my other account here ...
I can confirm, this works in my situation.  Thanks!!!


Add Blurb/Link To Using .markdownlint to customize rules

Came about as I wanted customize which rules were enfored
a good example to add is the following as this is the default on VS Code extension:
{
  "MD013": false
}

Was looking for how to do this, you legend @alfredoihernandez !


Issue when installing Fritzing

When I do > brew cask install fritzing
I receive the following:
Already downloaded: /Library/Caches/Homebrew/fritzing-0.9.1b.dmg
Error: no implicit conversion of nil into String
Please report this bug:
    https://github.com/caskroom/homebrew-cask/issues
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/digest.rb:44:in `initialize'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/digest.rb:44:in `open'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/digest.rb:44:in `file'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/digest.rb:29:in `file'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/download.rb:39:in `block in _check_sums'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/download.rb:37:in `each'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/download.rb:37:in `_check_sums'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/download.rb:30:in `perform'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/installer.rb:56:in `download'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/installer.rb:33:in `install'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/cli/install.rb:20:in `block in install_casks'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/cli/install.rb:17:in `each'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/cli/install.rb:17:in `install_casks'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/cli/install.rb:6:in `run'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/cli.rb:80:in `run_command'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/cli.rb:120:in `process'
/usr/local/bin/brew-cask.rb:42:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Library/brew.rb:58:in `require?'
/usr/local/Library/brew.rb:141:in `<main>'

Any suggestions as to what the problem here is?

Hi there!  Your homebrew-cask installation is out of date, running the following should set you straight:
brew update && brew upgrade brew-cask && brew cleanup && brew cask cleanup

Thanks for helping! :)
brew upgrade brew-cask returns Error: No available formula for brew-cask
brew-cask is listed in when I do brew list - any ideas?

If you run brew doctor, does it warn about broken symlinks?  Try running brew prune and see if that works.  If not, you can also try retapping and reinstalling.
brew uninstall brew-cask && brew untap caskroom/cask && brew install caskroom/cask/brew-cask

Thanks! :beers:


Fails to update index.js when using webpack-dev-server

Bug report
I was following the webpack documentation guide.
After installing webpack-dev-server, It's supposed to refresh in place.
However, that is not happening. I got the following error:
Uncaught TypeError: Cannot set properties of undefined (setting './src/index.js')
at self.webpackHotUpdatewebkack_guide (jsonp chunk loading:44:1)
at index.17c225e1ecf28bdb9b74.hot-update.js:2:38
HMR] Update failed: ChunkLoadError: Loading hot update chunk index failed.
(missing: http://localhost:8080/index.17c225e1ecf28bdb9b74.hot-update.js)
I do not understand what could be wrong. It only works after I refresh the page.
Interestingly, I could change any other file than index.js and it refreshes correctly.
The problem appears when I change anything inside index.js
Any suggestion?
Other relevant information:
node v14.16.1
// package.json
{
"name": "webkack-guide",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"watch": "webpack --watch",
"build": "webpack",
"start": "webpack serve --open"
},
"keywords": [],
"author": "",
"license": "ISC",
"private": true,
"devDependencies": {
"html-webpack-plugin": "^5.5.0",
"webpack": "^5.70.0",
"webpack-cli": "^4.9.2",
"webpack-dev-server": "^4.7.4"
},
"dependencies": {
"lodash": "^4.17.21"
}
}
// index.js
import _ from "lodash";
import printMe from "./print";
function component() {
const element = document.createElement("div");
const btn = document.createElement("button");
element.innerHTML = _.join(["hello", "webpack"], " ");
btn.innerHTML = "click me and check the console";
btn.onclick = printMe;
element.appendChild(btn);
return element;
}
document.body.appendChild(component());
// print.js
export default function printMe() {
console.log("I get called from print.js 5");
}
// webpack.config
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
mode: "development",
entry: {
index: "./src/index.js",
print: "./src/print.js",
},
devServer: {
static: "./dist",
},
devtool: "inline-source-map",
plugins: [new HtmlWebpackPlugin({ title: "Output Management" })],
output: {
filename: "[name].bundle.js",
path: path.resolve(__dirname, "dist"),
clean: true,
},
};

please create reproducible repo

This is a valid documentation issue.
In the Development Guide under Using Watch Mode section the content says:

The only downside is that you have to refresh your browser in order to see the changes. It would be much nicer if that would happen automatically as well, so let's try webpack-dev-server which will do exactly that.

The follow-on section about webpack-dev-server is expected to provide guidance about creating a setup that would reload new code as it is written and refresh the browser to show the changes. But the code example doesnot do so. The problem is in the webpack.config.js code example. The devServer configuration as mentioned will not refresh the browser. To actually refresh the page the minimal configuration that needs to be added to devServer is
watchFiles: ['src/**/*.*'],

What do you mean - refresh?
refresh the browser means reload the browser with the new changed code.> What do you mean - refresh?
refresh the browser means reload the browser with the new changed code.

watchFiles only for reload when you change externals files (i.e. not used in bundle, for example .php/.py/etc)
I don't think that is the case. If it is so the documentation must state the same. And there is no code anywhere which will prevent us from mentioning a file that is bundled in the watchFiles list.

Anyways, let's focus on the issue at hand. It is simple. The mentioned Guide and associated example doesn't reload the browser with changed code as stated. It needs to be rectified. My PR tries to do that. If there's a different solution let's apply that and rectify the Guide.

Please create reproducible repo with example of a problem


WIP multi test-harness

[x] Add reward generator to the rusk command
[ ] ~Send transfer from faucet to provisioner~
[ ] ~Stake from each provisioner~
[ ] Include more stakers in the genesis block

Resolves #1317

Codecov Report

Merging #1318 (3d47f7a) into master (828364b) will decrease coverage by 8.76%.
The diff coverage is n/a.

:exclamation: Current head 3d47f7a differs from pull request most recent head 053afb9. Consider uploading reports for the commit 053afb9 to get more accurate results

@@            Coverage Diff             @@
##           master    #1318      +/-   ##
==========================================
- Coverage   50.51%   41.75%   -8.77%
==========================================
  Files         145      144       -1
  Lines        7544     9173    +1629
==========================================
+ Hits         3811     3830      +19
- Misses       3066     4758    +1692
+ Partials      667      585      -82

Impacted Files
Coverage Δ

pkg/core/consensus/testing/node.go
0.00% <0.00%> (-93.55%)
:arrow_down:

...ore/consensus/blockgenerator/candidate/testutil.go
0.00% <0.00%> (-90.91%)
:arrow_down:

pkg/core/consensus/testing/utils.go
0.00% <0.00%> (-75.61%)
:arrow_down:

...core/consensus/blockgenerator/candidate/genesis.go
0.00% <0.00%> (-69.24%)
:arrow_down:

...nsensus/blockgenerator/candidate/blockgenerator.go
0.00% <0.00%> (-64.29%)
:arrow_down:

pkg/gql/query/transactions.go
13.27% <0.00%> (-52.71%)
:arrow_down:

pkg/rpc/client/session.go
21.42% <0.00%> (-47.15%)
:arrow_down:

pkg/util/nativeutils/eventbus/eventbus.go
57.14% <0.00%> (-42.86%)
:arrow_down:

pkg/rpc/client/client.go
3.73% <0.00%> (-36.61%)
:arrow_down:

pkg/core/consensus/reduction/aggregator.go
56.25% <0.00%> (-35.06%)
:arrow_down:

... and 165 more

Continue to review full report at Codecov.

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


Support base URL using request headers

Support customization of the base URL using headers like Playground does here: https://github.com/asyncapi/playground/blob/master/src/server/routes/html.js#L23.

As we are going in the direction of a simple SPA and we are not going to have a projects/organizations/users database (for now), I am closing this issue, because it is related to the old Studio implementation.


Publish examples

The examples was updated recently, at least as recently as this PR. Please republish to the website.

This has been done in the meantime


reevaluate check when the base branch of a pull request was changed

:tada: This issue has been resolved in version 1.20.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


.Net: [Draft] main -> feature-connectors-assemblyai

DRAFT PR FOR VISIBILITY ONLY (IN PROGRESS)

@RogerBarreto closing this for now as we move to adopt M.E.AI abstractions


Fixed Arabic

Add all my changes

Hey, thanks for your work, I would suggest using the i18n aiogram module.
https://docs.aiogram.dev/en/v2.25.1/examples/i18n_example.html


Fix undefined index persistent_id on RedisResourceManager

Probably a typo

Why isn't this caught by tests? Maybe missing coverage?

Test cover only the possibility that is set a persistent_id or a persistend_id (docs) and that is found after been setted, but there are no test of the persistent_id about the connect method of RedisResourceManager (connect)

Is it possible to merge this?

@pensiero As you explained yourself this wasn't covered by a test -> please add a test case for it.

I can try doing it in the next days, but meanwhile is it important to fix this typo that is very clear

Moved to #9


stm32f107: Ethernet and USB OTG support

friendly nudge? :)
There are some seemingly duplicate stuff in this PR: eth_mmc/mac/dma. But there are slight differences in the specification of ethernet registers in the f107 vs the other mcu:s with ethernet, so this is my attempt at how to fix that. Is there a better way to do this?
(I have an implementation of Ethernet support for the stm32f107, and it depends on these changes before I can make a PR of that in the other repos (eth and 1xx).)

Hi! Thanks for the nudge, sorry I haven't got to this sooner. I'll try and get it reviewed in the next few days, it's certainly next in the queue.

Is there a better way to do this?

In other peripherals, where things are mostly the same we have a _common.yaml containing the parts that are the same, and then e.g. _f4.yaml and _f107.yaml that include the _common.yaml and extend it with the part-specific features. It depends how much is similar or different compared to the existing ones. If it's only a few fields then it's a shame to duplicate everything else, but if lots of fields are different it might be simplest to just have totally separate files.

No worries! To let you know: I am working on de-duplicating the eth_xxx.yml things now into common and addition now. The 107 have a few less registers than the other ones, so it seems like it will work.

Ok, I think this ended up better.


IDA IPython no longer crashes if IDAPython is not present. Closes #22.

In addition, the warning messages are now prefixed to indicate they come from IDA IPython.

Nice work! It looks really good. Another way of doing the plugin check that i was looking at was using the load_plugin api. It might be a bit cleaner because you will only need one check. In addition, it would also deal with case when the plugins are loaded out of order.

For some reason, this does work in out-of-order scenarios. But using load_plugin seems be a better way to go.

Included in  #25


feature/daef 226 new receive screen with support for hd wallets

This PR introduces new "Wallet Receive" screen with support for HD wallets.

TODO:

[ ] Integrate with new HD wallets API
[ ] Add missing translations (Japanese)

This was merged in HD wallet branch. Closing this PR.


not support Chinese ?

Tabula  not support Chinese  pdf file ? Chinese words not recognized !    it seems  font file problem, who can help me ?  Thanks a lot !~
report.pdf

Hi @trheyi,
Thanks for your report.
Unfortunately, that document is a bit of a pathological case. Numerals are encoded as text, but Chinese characters are bitmaps (images). Tabula will not be able to process that.

@jazzido  thanks .


Convert JSON to YAML

Description
Create a script that takes a JSON file as input and converts it into a YAML file.
Type of issue

[x] Feature (New Script)

Checklist:

[x] I have read the project guidelines.
[x] I have checked all the existing projects, before submitting a new project issue.
[x] I have checked previous issues to avoid duplicates.
[x] This issue will be meaningful for the project.

Hi, can I take this one? Thanks.

Hi, can I take this one? Thanks.

Sure buddy go for it


using #pragma once and ifndef

Shouldn't we use both pragma once and ifndef gaurds ?

We are following Google C++ guide strictly, you can send a pull request to https://github.com/google/styleguide/ to improve it.


Update homepage

User story
As a MDN maintainer, I want to replace the "Get Involved" section with "Help improve MDN", to promote the links and improve performance.
References

bug 1450922 - [FrontEnd] Improve homepage layout for hacks and help MDN

Acceptance criteria

"Globe" image is removed
"Get Involved" section is column 2 in desktop width
Layout still works in mobile widths

Tasks

[ ] Approve new designs
[x] Implement new homepage

@jwhitlock From our dev planning meeting it sounds like @atopal would prefer to not have this one in this sprint, because of the other potential change that is coming up. Should we move it out of Q3S3>

I agree, let's go back to the backlog. We can bring it in again if time allows.

Actually, backlog looks extreme. Moving to Review/Test, just not in the milestone.

Here are some stats post the updates:
https://speedcurve.com/mozilla-add-ons/mdn/deploy/?b=chrome-%40-3g&dl=307548&dp=307365&r=us-west-1&s=85742&u=128695
Looking good.


VOICE command broken in version 3.1.3

XC=BASIC compiler version v3.1.3 (Mar 15 2023)
(On Windows 10 64bit)

Target: C64
A single-line program like this:
VOICE 1 ON
generates a runtime error from XCB:
C:\Users\xxx\Software\XCB_fresh\bin\Windows\xcbasic3 -dC:\Users\xxx\Software\XCB_fresh\bin\Windows\dasm "sidtest.bas" sidtest.prg (in directory: C:\Users\xxx\Software\xc-basic3-v3.1\_progs\)

core.exception.SwitchError@source\compiler\number.d(26): No appropriate switch clause found
----------------
0x00007FF6C822ABB7
0x00007FF6C7D47D8B
0x00007FF6C7D47D24
0x00007FF6C7FF1A70
0x00007FF6C80CBE0B
0x00007FF6C7FEE254
0x00007FF6C7FEF8CA
0x00007FF6C7FEF942
0x00007FF6C7FEF942
0x00007FF6C7FEFA58
0x00007FF6C7FEF6EB
0x00007FF6C7D27A26
0x00007FF6C8254DC3
0x00007FF6C8254BBF
0x00007FF6C8254CDF
0x00007FF6C8254BBF
0x00007FF6C8254990
0x00007FF6C822AA79
0x00007FF6C7D2D942
0x00007FF6C831C1DC
0x00007FFC54207614 in BaseThreadInitThunk
0x00007FFC546426A1 in RtlUserThreadStart

I'm using a fresh install to make sure that is not because I had messed up with the _lib files or something like that.
I also tried the Jun 4 2023 build: in that case, nothing is printed, but there's still an error condition (the compiler exits with an error code).
(Going back to version 3.1.2 which seems to work fine, as I need to put my game out this week :)

Hi @JJFlash-IT
Thanks. It is failing because 3.1.13 was built with 3.2 grammar. I'll fix that.
Let me know when you release your game.
Cheers

I had a feeling it had something to do with the beta version :)
Thank you for the new version!
I'm sticking to 3.1.2 , though, till I put the game out (oh and don't worry, I'll tell the world when it comes out), then I'll find some time to test 3.1.4.
By the way, in order to go back to 3.1.2, simply downloading the corresponding release was not enough: the xc-basic.exe file was actually 3.1 .1 and the compiler threw weird errors once I compiled my program. I had to go to the commit history and "extract" the .exe and .pdb files from February 2023, then things worked again.
This isn't the first time I see an XCB release that is broken like I described, Unfortunately I'm ignorant about Git and everything around it, otherwise I'd be glad to help diagnosing why that happened more than once.


Unable to import matplotlib

Environment data

VS Code version: 1.25.1
Extension version (available under the Extensions sidebar): Python 2018.7.1
OS and version: macOS 10.13.6
Python version (& distribution if applicable, e.g. Anaconda): 2.7.15
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): XXX
Relevant/affected Python packages and their versions: XXX
I'm a Python/VS Code newbie...

Actual behavior
Followed the instructions on https://code.visualstudio.com/docs/python/python-tutorial
pip3 install matplotlib
in VS Code still "Unable to import matplotlib" and "Unable to import matplotlib.pyplot"
MacBook-Pro-3:~ jps$ python /Users/jps/Projects/python_plot/standardplot.py
Traceback (most recent call last):
File "/Users/jps/Projects/python_plot/standardplot.py", line 1, in
import matplotlib.pyplot as plt
ImportError: No module named matplotlib.pyplot
Expected  behavior
sinus graph when I right-click/run the code, as described in chapter Install and use packages
Steps to reproduce:
as described in chapter Install and use packages

We are actively discussing actually changing/removing that part of the tutorial as it's too ambiguous to guarantee things will work as expected. E.g. if you ran pip3 install matplotlib and then ran python … then things won't work as pip3 installed into some installation of Python 3 but python would have probably pointed at Python 2 as distributed by Apple. If you try using python3 to launch things then it should work as expected.


How to change ListView background color?

Just wrap it with a
new Container(
    color: const Color(0xFF00FF00),
    child: ListView ...

Please consider asking how-to questions on StackOverflow.

Thank you!

Just as a note on this. The Container option works well, however, as I often put the ListView in a Scaffold, which is in turn often used as part of a MaterialApp that's themeable, you can:
class MainWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        scaffoldBackgroundColor: Colors.red,
      ),
      home: WelcomeRoute(),
    );
  }
}

This will change the scaffold color within the whole material app (which could be what you want).

@zoechi
but if we want to add 2 avatar in different lines in it impossible.cause it is a container and put avatars in the same line.
do you know how it can be fixed?

@zoechi
but if we want to add 2 avatar in different lines in it impossible.cause it is a container and put avatars in the same line.
do you know how it can be fixed?
Have you tried using a Column for the avatars?

Have you tried using a Column for the avatars?

Wrapping it in a container doesn't always make it, especially for SliverGrid. Look for the workaround in the meantime here: https://github.com/flutter/flutter/issues/62818

Wrap it with Ink Widget:
Ink(       color: Colors.white,       child: ListView(),)


Plan for removing the sovrin token.

For reviewers: a convenient link to the PR for the Indy HIPEs that are linked in the SIP.

For reviewers: a convenient link to the PR for the Indy HIPEs that are linked in the SIP.

Without the plugin (once the ledger has been frozen and the plugin removed) how can the ledger history be validated when there have been transactions processed by it?

The SIP explains:

Sovrin StagingNet is a stable ledger for demonstration and testing purposes. It is widely used even though no guarantees are made about the history of StagingNet. It is intended to be reset regularly but has never been reset in practice.

Sovrin BuilderNet is used to test new Indy releases for stability before the other Sovrin networks. It is useful for developers building solutions, but makes no guarantees about preserving history. BuilderNet was reset in June of 2020. It has an initialized token ledger and a history of only a few token transactions that include two SET_FEE transactions.

But per @WadeBarnes 's suggestion, I made it more explicit here:

The history of transfers of value will be unrecoverably lost when the token ledger is dropped during the plugin removal. This is appropriate, because token transactions are only on the test networks (StagingNet and BuilderNet) where the history is not expected to be permanent.

This covers the scenario where the ledger is dropped. What if the ledger is retained? i.e Ledger frozen, ledger (data) retained, plug-in removed (uninstalled).

I don't see how that is relevant to this SIP. Operation of the network is unaffected either way. We put in the extra effort to cleanly remove the data by dropping the ledger, because we want to leave the ledger in the best state for long term maintenance.

On MainNet, keeping an additional empty ledger around forever could cause us future complications simply due to the added complexity. Years in the future, it won't be obvious what the unused empty ledger is for.
On StagingNet and BuilderNet, I don't see why we would retain test data on a test network that by policy can be deleted at any time.

But it doesn't really matter either way.


reduce padding size

The spacing looks too big between sections. I don't know HTML/CSS very well so there might be a better way to do this but when I reduced the size below pt-20 it resolved. The weird thing is that the adjustments from pt-1 to pt-19 didnt really  change much but then at pt-20 it jumps and the gap is too big so I couldnt get anything in between.
Before:

After:

I'd like either @javajunky or @cjohnhanson to take a look. I'm not a huge fan of the adjustment b/c the headers are just too close to the text above them.

@tayloramurphy same. I would love something in between the two but I couldnt get it to work.

@javajunky @cjohnhanson friendly reminder 😄 . Do either of you know how to implement this? It seems like it should be a simple change.

@pnadolny13 I think pt-8 looks good. pt-20 is 80px. pt-8 is 32px. pt-15 isn't a supported value which is why it is so close to the previous line.
This is pt-8:

@javajunky thanks for the suggestion! That looks great, I updated the PR with the suggested change.


In demo, reverse direction of sliders?

I'm expecting the picture to get brighter as the sliders go up (and the thick part of the slider gets longer). I'm also not sure that the numbers in the control are useful... but maybe they are during development?

I think we need some user stories for this - as you can see in the attached image from a public OMERO image, their sliders also range from 0 to the maximum value, and get brighter as they go down.  The next release will add in minimum-range sliders, but my guess is that if someone is using this, they know what the sliders mean/do:

After playing with that link a little bit, I think their metaphor is 'select a range in the data channel and we'll colorize it with this color'. I didn't get that impression with the current viv demo. Should we adopt a similar approach/try to make that more clear?

Yes, fully agree - that is what I was saying about adding in a lower bound, as well, to the demo.  I think also adding channel names will help clarify this.

I've asked Jennifer to look at #34 for overall slider UI design, and I've assigned myself #42 to add labels.


Changed join link to discord as old form is broken

Looks good to me, I changed a few more links that were still pointing to the google form, and fixed Ioana's name


Settings get deleted upon PowerToys upgrade

ℹ Computer information

PowerToys version:
PowerToy Utility:
Running PowerToys as Admin:
Windows build number: [run "winver"]

📝 Provide detailed reproduction steps (if any)

Install PowerToys, set some non-default settings
Upgrade to newer version of PowerToys

✔ Expected result
Settings need to be preserved across updates
❌ Actual result
All settings are lost and reverted to default
📷 Screenshots
Are there any useful screenshots? WinKey+Shift+S and then just paste them directly into the form

Have started the installer as other user? Then the setup starts PT after installation as this user and you have tge settings from the wrong user loaded.

Have started the installer as other user? Then the setup starts PT after installation as this user and you have tge settings from the wrong user loaded.

no, there's only one user in my case.

no, there's only one user in my case.

Not until I SPEAK WITH SOMEONE WHO DOESNT ACT SHADY OR ADK ME TO VIOLATE POLICY/code of conduct

Not until I SPEAK WITH SOMEONE WHO DOESNT ACT SHADY OR ADK ME TO VIOLATE POLICY/code of conduct

Sent from my iPhone

Sent from my iPhone

@asklar
Could you specify which settings get deleted? I try to reproduce it and it would be helpful to have few settings that get deleted as there should be settings that are not deleted on upgrade.

@asklar
Could you specify which settings get deleted? I try to reproduce it and it would be helpful to have few settings that get deleted as there should be settings that are not deleted on upgrade.

@asklar
Open a command prompt and run "%PROGRAMFILES%\PowerToys\Tools\BugReportTool.exe" (the double quotes are important)
that will create a zip file on you desktop named like this PowerToysReport_2021-01-04-12-02-08.zip
You can drag and drop it in a GitHub comment. That information would help us to investigate your issue.

@asklar
Open a command prompt and run "%PROGRAMFILES%\PowerToys\Tools\BugReportTool.exe" (the double quotes are important)
that will create a zip file on you desktop named like this PowerToysReport_2021-01-04-12-02-08.zip
You can drag and drop it in a GitHub comment. That information would help us to investigate your issue.

at least the following settings got reset to default:

shortcut guide -> Enable Shortcut guide
Fancy zones -> Hold shift key to activate zones while dragging
PowerToysReport_2021-01-05-11-08-22.zip

at least the following settings got reset to default:

shortcut guide -> Enable Shortcut guide
Fancy zones -> Hold shift key to activate zones while dragging
PowerToysReport_2021-01-05-11-08-22.zip

Testing, I just did a 27.1 to 29.3 upgrade with those two items disabled and the settings persisted which means something else may have happened

Testing, I just did a 27.1 to 29.3 upgrade with those two items disabled and the settings persisted which means something else may have happened

@enricogior adding this to .31 for investigation

@enricogior adding this to .31 for investigation

@crutkas
this is not something we can investigate locally, since we already know the MSI doesn't even know those settings exist.
The general settings to enable/disable a module hasn't change since several releases ago.
Nothing is modifying those settings beside the Settings app, so the upgrade process cannot be responsible for this.
Unless a repro is reported it would be pointless to spend time on this.

@crutkas
this is not something we can investigate locally, since we already know the MSI doesn't even know those settings exist.
The general settings to enable/disable a module hasn't change since several releases ago.
Nothing is modifying those settings beside the Settings app, so the upgrade process cannot be responsible for this.
Unless a repro is reported it would be pointless to spend time on this.

what more can i provide as a repro? i got the toast about an update being available, clicked on it, got updated, and the settings got cleared 🤷♂

what more can i provide as a repro? i got the toast about an update being available, clicked on it, got updated, and the settings got cleared 🤷♂

@asklar
can you reproduce it?

uninstall 0.29.3
install 0.27.1 https://github.com/microsoft/PowerToys/releases/download/v0.27.1/PowerToysSetup-0.27.1-x64.exe
change some settings
update to 0.29.3
verify if the settings are changed

@asklar
can you reproduce it?

uninstall 0.29.3
install 0.27.1 https://github.com/microsoft/PowerToys/releases/download/v0.27.1/PowerToysSetup-0.27.1-x64.exe
change some settings
update to 0.29.3
verify if the settings are changed

This seems to happen for me each new preview release 🤔

0.55.1 has a fix that affected recent builds.  This issue refers to a different bug


MINOR: [JS] Update dependencies

Redoing https://github.com/apache/arrow/pull/33919 but without updating closure.

Clocked by a release of https://github.com/google/flatbuffers/issues/7814

Looks like most of the CI failures are caused by https://github.com/apache/arrow/issues/34446
Though there is now a merge conflict that needs resolving.

Thanks. I merged main to hopefully resolve those.

The go failues seem unrelated to my changes. This is good to go. @trxcllnt can you approve?


Allow scoring result attribute to be specified

Currently, all spark mllib operators assume that the operator output schema has an attribute called 'analysisResult' of a specific type (usually, float64 or int32). This is too rigid. We should allow users to pick the scoring result attribute from the output schema (similar to how we allow input attributes to be specified as parameters).

No further demand seen.