Figure out incompatibility with Plug.ErrorHandler

Also affects Plug.Debugger

Seems there is an issue with using defoverridable twice for a function without defining the function between them.
In HttpRouter, there is something similar to:
defmodule HttpRouter do
  ...
  defmacro __before_compile__(_env) do
    quote do
      def init(opts) do
        opts
      end

      def call(conn, opts) do
        do_call(conn, opts)
      end

      defoverridable [init: 1, call: 2]
    end
  end
  ...
end

And in Plug.ErrorHandler and Plug.Debugger, there is:
defmodule Plug.ErrorHandler do
  ...
  defmacro __before_compile__(_env) do
    quote location: :keep do
      defoverridable [call: 2]

      def call(conn, opts) do
        try do
          super(conn, opts)
        catch
          kind, reason ->
            Plug.ErrorHandler.__catch__(conn, kind, reason, &handle_errors/2)
        end
      end
    end
  end
  ...
end

Since we use both of them, a router's compiled code essentially becomes:
defmodule Router do
  ...
  def call(conn, opts) do
    ...
  end
  defoverridable [call: 2]
  defoverridable [call: 2]
  def call(conn, opts) do
    ...
  end
  ...
end

The double defoverridable [call: 2] is the issue. The first makes the first call/2 lazily defined, and the second attempts to do the same thing, but since it technically hasn't been defined yet since call/2 is now lazy, it fails.
The simple fix is to remove the defoverridable from HttpRouter as we were just providing a convenience with that call and educate end-users that they will need to include it in their code if they ever need to customize those Plug behaviour functions.

Fixed as of 449bed1b01d967020cf33529f52f414bbd7ce2d7


Remove the "Copy URL Content" button when the url is removed from the text area

This looks like a good issue to test with AI coding tools


Is there a way to fetch the contact image(PhotoURL) from the salesforce Org and convert to base24 format?

Can anyone help me solving this, I'm trying to fetch contact image from the salesforce DB and how can i download and convert it to base24 format..?
var queryString = "Select PhotoUrl from Contact where Id = '" + s_box.req.query.contact + "'";
	return conn.query (queryString)
	.then (function(resultSet) {
		var cont_act = resultSet.records;
                // Contact URL
		photoUrl = conn.Instance_URL+""+cont_act[0].PhotoUrl;
               return conn.chatter.resource('/services/images/photo/00341000001oG02AAE').retrieve();
	}) .then(function(result){
//return some encrypted data how do I decrypt this
})

I've been struggling with a similar problem.
conn.chatter.resource('/services/images/photo/003o0000XXXXX')
  .retrieve(function(err, response) {
    console.log(response);
    //outputs some binary data like
    //�PNG
    //IHDR-:��sRGB����IDATX
    //...
});

I've tried to read it as a Buffer but it didn't work

@shershen08, Please let me know if you solve this problem/issue.

@ChandanShankar in my case it was solved in the Sf DB side by adding proper field that contained normal string witb absolute image url link

@shershen08, Created a fieldname photourl on contact and tried accessing it on SOQL.
queryString = "select vfs__PhotoUrl__c from Contact where Id = '" + contactid + "'";
	return conn.query (queryString)
	.then (function(resultSet) {
		var cont_act = resultSet.records;
		debugger;
		photoUrl = cont_act[0].PhotoUrl;
		//return = s_box.url +""+photoUrl;
		return conn.chatter.resource(cont_act[0].vfs__PhotoUrl__c).retrieve();
        })

Even after this i'm getting the same output. can you please share your code.

The photo url will only contain the url ,you have to use the request module to make a call and get the image .
https://github.com/siddharatha/downloadUserPictures
Might help

@siddharatha  Thank you, it worked.

@siddharatha is there a way to upload/update contact profile image?


[Stable] Pin pylint to < 2.14.0

Summary
Following #407
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2920

Relevant Lines:
3376

💛  - Coveralls


driver: usb: Add USB driver for the TLSR9 series SoCs

Co-authored-by: Dmytro Huz<EMAIL_ADDRESS>Signed-off-by: Xiaohua Qiao<EMAIL_ADDRESS>

Please finalyze PR. Set West revision and fix ompliance Checks

Compliance Checks / Run compliance checks on patch series (PR) (pull_request)  failed. Plese fix it


Huawei LTE integration doesn't find entities

Home Assistant release with the issue:

0.102.0
Last working Home Assistant release (if known):
0.101.3
Operating environment (Hass.io/Docker/Windows/etc.):

Hass.io RaspberryPi
Integration:

https://www.home-assistant.io/integrations/huawei_lte/
Description of problem:
Huawei LTE configuration could not find any entities. I guess it is looking for hosts config entry which was removed in 0.102.0. Problem occurs when it was configured with frontend and manually in configuration.yaml.
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
huawei_lte:
  - url: http://<IP_ADDRESS>/
    username: admin
    password: !secret lte_password

Traceback (if applicable):
2019-11-21 13:19:01 DEBUG (SyncWorker_9) [homeassistant.components.huawei_lte] device_signal={'pci': '146', 'sc': None, 'cell_id': '125683989', 'rsrq': '-12.0dB', 'rsrp': '-104dBm', 'rssi': '-75dBm', 'sinr': '14dB', 'rscp': None, 'ecio': None, 'mode': '7', 'ulbandwidth': '10MHz', 'dlbandwidth': '10MHz', 'txpower': 'PPusch:14dBm PPucch:14dBm PSrs:0dBm PPrach:19dBm', 'tdd': None, 'ul_mcs': 'mcsUpCarrier1:11', 'dl_mcs': 'mcsDownCarrier1Code0:1 mcsDownCarrier1Code1:1', 'earfcn': 'DL:54 UL:18054', 'rrc_status': None, 'rac': None, 'lac': None, 'tac': '59035', 'band': '1', 'nei_cellid': 'No1:184No2:44', 'plmn': '26003', 'ims': '0', 'wdlfreq': None, 'lteulfreq': '19254', 'ltedlfreq': '21154', 'transmode': 'TM[4]', 'enodeb_id': '0490953', 'cqi0': '9', 'cqi1': '14', 'ulfrequency': '1925400kHz', 'dlfrequency': '2115400kHz', 'arfcn': None, 'bsic': None, 'rxlev': None}
2019-11-21 13:19:01 DEBUG (SyncWorker_9) [homeassistant.components.huawei_lte] Getting dialup_mobile_dataswitch for subscribers {'initial_scan'}
2019-11-21 13:19:01 DEBUG (SyncWorker_9) [homeassistant.components.huawei_lte] dialup_mobile_dataswitch={'dataswitch': '1'}
2019-11-21 13:19:01 DEBUG (SyncWorker_9) [homeassistant.components.huawei_lte] Getting monitoring_traffic_statistics for subscribers {'initial_scan'}
2019-11-21 13:19:01 INFO (MainThread) [homeassistant.components.media_player] Setting up media_player.cast
2019-11-21 13:19:01 DEBUG (SyncWorker_9) [homeassistant.components.huawei_lte] monitoring_traffic_statistics={'CurrentConnectTime': '485173', 'CurrentUpload': '896873594', 'CurrentDownload': '8886172343', 'CurrentDownloadRate': '0', 'CurrentUploadRate': '0', 'TotalUpload': '2824242519', 'TotalDownload': '17959964878', 'TotalConnectTime': '1252040', 'showtraffic': '1'}
2019-11-21 13:19:01 DEBUG (SyncWorker_9) [homeassistant.components.huawei_lte] Getting wlan_host_list for subscribers {'initial_scan'}
2019-11-21 13:19:01 DEBUG (SyncWorker_9) [homeassistant.components.huawei_lte] wlan_host_list=None
2019-11-21 13:19:01 INFO (MainThread) [homeassistant.setup] Setting up zeroconf
2019-11-21 13:19:01 INFO (MainThread) [homeassistant.setup] Setup of domain group took 3.8 seconds.
2019-11-21 13:19:01 INFO (MainThread) [homeassistant.setup] Setup of domain onboarding took 0.9 seconds.
2019-11-21 13:19:01 INFO (SyncWorker_6) [homeassistant.loader] Loaded notify from homeassistant.components.notify
2019-11-21 13:19:01 INFO (SyncWorker_13) [homeassistant.loader] Loaded sensor from homeassistant.components.sensor
2019-11-21 13:19:01 INFO (SyncWorker_2) [homeassistant.loader] Loaded device_tracker from homeassistant.components.device_tracker
2019-11-21 13:19:02 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry B535-232 for huawei_lte
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 192, in async_setup
    hass, self
  File "/usr/src/homeassistant/homeassistant/components/huawei_lte/__init__.py", line 287, in async_setup_entry
    await hass.async_add_executor_job(router.update)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/huawei_lte/__init__.py", line 176, in update
    get_data(KEY_WLAN_HOST_LIST, self.client.wlan.host_list)
  File "/usr/src/homeassistant/homeassistant/components/huawei_lte/__init__.py", line 152, in get_data
    self.data[key] = func()
  File "/usr/local/lib/python3.7/site-packages/huawei_lte_api/api/WLan.py", line 69, in host_list
    host = hosts.get('Hosts', {}).get('Host')
AttributeError: 'NoneType' object has no attribute 'get'

Additional information:
Attached screen from frontend integration configuration. It is in Polish, it tells that "This integration has no devices"

have the same problems

same here

same problem:
Error setting up entry E8372 for huawei_lte
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 192, in async_setup
hass, self
File "/usr/src/homeassistant/homeassistant/components/huawei_lte/init.py", line 287, in async_setup_entry
await hass.async_add_executor_job(router.update)
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/src/homeassistant/homeassistant/components/huawei_lte/init.py", line 176, in update
get_data(KEY_WLAN_HOST_LIST, self.client.wlan.host_list)
File "/usr/src/homeassistant/homeassistant/components/huawei_lte/init.py", line 152, in get_data
self.data[key] = func()
File "/usr/local/lib/python3.7/site-packages/huawei_lte_api/api/WLan.py", line 69, in host_list
host = hosts.get('Hosts', {}).get('Host')
AttributeError: 'NoneType' object has no attribute 'get'

same here:
Error setting up entry E8278 for huawei_lte
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 192, in async_setup
hass, self
File "/usr/src/homeassistant/homeassistant/components/huawei_lte/init.py", line 287, in async_setup_entry
await hass.async_add_executor_job(router.update)
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/src/homeassistant/homeassistant/components/huawei_lte/init.py", line 176, in update
get_data(KEY_WLAN_HOST_LIST, self.client.wlan.host_list)
File "/usr/src/homeassistant/homeassistant/components/huawei_lte/init.py", line 152, in get_data
self.data[key] = func()
File "/usr/local/lib/python3.7/site-packages/huawei_lte_api/api/WLan.py", line 69, in host_list
host = hosts.get('Hosts', {}).get('Host')
AttributeError: 'NoneType' object has no attribute 'get'

same.
2019-11-23 15:37:08 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry B525s-23a for huawei_lte Traceback (most recent call last):   File "/usr/src/homeassistant/homeassistant/config_entries.py", line 192, in async_setup     hass, self   File "/usr/src/homeassistant/homeassistant/components/huawei_lte/__init__.py", line 287, in async_setup_entry     await hass.async_add_executor_job(router.update)   File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run     result = self.fn(*self.args, **self.kwargs)   File "/usr/src/homeassistant/homeassistant/components/huawei_lte/__init__.py", line 176, in update     get_data(KEY_WLAN_HOST_LIST, self.client.wlan.host_list)   File "/usr/src/homeassistant/homeassistant/components/huawei_lte/__init__.py", line 152, in get_data     self.data[key] = func()   File "/usr/local/lib/python3.7/site-packages/huawei_lte_api/api/WLan.py", line 69, in host_list     host = hosts.get('Hosts', {}).get('Host') AttributeError: 'NoneType' object has no attribute 'get'

I'm having exactly the same problems.
Error setting up entry B311s-220 for huawei_lte
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 192, in async_setup
    hass, self
  File "/usr/src/homeassistant/homeassistant/components/huawei_lte/__init__.py", line 287, in async_setup_entry
    await hass.async_add_executor_job(router.update)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/huawei_lte/__init__.py", line 176, in update
    get_data(KEY_WLAN_HOST_LIST, self.client.wlan.host_list)
  File "/usr/src/homeassistant/homeassistant/components/huawei_lte/__init__.py", line 152, in get_data
    self.data[key] = func()
  File "/usr/local/lib/python3.7/site-packages/huawei_lte_api/api/WLan.py", line 69, in host_list
    host = hosts.get('Hosts', {}).get('Host')
AttributeError: 'NoneType' object has no attribute 'get'

Hm. It would be interesting to see what kind of XML affected devices return for this call, or at least what kind of dict it parses to. Could some of you add this line
        import logging; logging.warning("HOSTS: %s" % pprint.pformat(hosts))

...above the host = hosts.get(... one mentioned in your tracebacks and try to locate what it outputs? I guess it's a dict with Hosts: None in it.
Also, are you setting up the router using a username/password or without them? if without, can you try with them to see if it makes a difference?

Hm. It would be interesting to see what kind of XML affected devices return for this call, or at least what kind of dict it parses to. Could some of you add this line
        import logging; logging.warning("HOSTS: %s" % pprint.pformat(hosts))

...above the host = hosts.get(... one mentioned in your tracebacks and try to locate what it outputs? I guess it's a dict with Hosts: None in it.

would you mind to tell me where to put such a line? I'll try this evening

Also, are you setting up the router using a username/password or without them? if without, can you try with them to see if it makes a difference?

using with username/password since I bought the router, never tried without credentials.

The line should be added to (above the mentioned line, that is):
  File "/usr/local/lib/python3.7/site-packages/huawei_lte_api/api/WLan.py", line 69, in host_list
    host = hosts.get('Hosts', {}).get('Host')

This is a problem in the huawei_lte_api library, once I get a confirmation about the data structure it should be easily fixable. And in fact it should be fixable even without the confirmation, but I'd prefer to get one nevertheless rather than submitting a blindfolded patch to it.

The line should be added to (above the mentioned line, that is):
  File "/usr/local/lib/python3.7/site-packages/huawei_lte_api/api/WLan.py", line 69, in host_list
    host = hosts.get('Hosts', {}).get('Host')

This is a problem in the huawei_lte_api library, once I get a confirmation about the data structure it should be easily fixable. And in fact it should be fixable even without the confirmation, but I'd prefer to get one nevertheless rather than submitting a blindfolded patch to it.

2019-11-25 23:30:42 WARNING (SyncWorker_2) [root] HOSTS: {'Hosts': None}
2019-11-25 23:30:42 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry E5186s-22a for huawei_lte
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/config_entries.py", line 192, in async_setup
    hass, self
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/huawei_lte/__init__.py", line 287, in async_setup_entry
    await hass.async_add_executor_job(router.update)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/huawei_lte/__init__.py", line 176, in update
    get_data(KEY_WLAN_HOST_LIST, self.client.wlan.host_list)
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/huawei_lte/__init__.py", line 152, in get_data
    self.data[key] = func()
  File "/srv/homeassistant/lib/python3.7/site-packages/huawei_lte_api/api/WLan.py", line 71, in host_list
    host = hosts.get('Hosts', {}).get('Host')
AttributeError: 'NoneType' object has no attribute 'get'

Modification of host_list function in WLan.py like this:
    def host_list(self) -> dict:
        # Make sure Hosts->Host is a list
        # (It may be returned as a single dict if only one is associated)
        hosts = self._connection.get('wlan/host-list')
        try:
          host = hosts.get('Hosts', {}).get('Host')
          if isinstance(host, dict):
            hosts['Hosts']['Host'] = [host]
        except Exception:
          return None
        else:
          return hosts

helped me with this exception

I have checked source code on huawei-lte-api github and the newest version is also fixed by its author.
https://github.com/Salamek/huawei-lte-api/blob/master/huawei_lte_api/api/WLan.py
def host_list(self) -> dict:
        # Make sure Hosts->Host is a list
        # It may be returned as a single dict if only one is associated,
        # as well as sometimes None.
        hosts = self._connection.get('wlan/host-list')
        if hosts.get('Hosts') is None:
            hosts['Hosts'] = {}
        host = hosts['Hosts'].setdefault('Host', [])
        if isinstance(host, dict):
            hosts['Hosts']['Host'] = [host]
        return hosts

so pip3 install --upgrage huawei-lte-api  also helps :) latest version 1.4.4 have no problems with 'None' Wi-Fi clients

I beg your pardon but.. newbie here :-)
Running Hassio in docker on ubuntu: how/where am I supposed to run such a command?
TIA

Actually I submitted the fix to the upstream author who promptly did a new release with it. Thank you for confirming that the fix works, I'll upgrade the library in HA in a moment.
For the record, there seems to be a difference in how different router models handle the case where there are no WiFi clients, but I hope we have them all covered now.


New UI does not allow entering CPU speed when creating new instance

In the new UI came with 4.15, when create a new instance using a custom compute offering, it does not show CPU speed field to enter. As a result, when click on Launch button, it gives an error that cpu speed value is missing.

@r9host I created a custom Unconstrained compute offering. During deployment of a VM, on choosing the custom compute offering I do see an input field for specifying the CPU Speed

Please let us know if there's anything different to be done to reproduce the issue

@r9host can you test latest 4.15 and close it?

Closing, confirmed/tested myself.


What is the recovery step if flashing fails?

I see in the code that we retry 3 times before we throw an exception during flashing. What will be state of the router when flashing fails?

As I understand it, the router OS could be in an unusable state; I could be wrong though. As long as they didn't try to flash uBoot, they should be able to flash another image and get back to a working state. If they flashed uBoot though and that's where the problem is, it's possible the system won't be flashable via bft. In that case, they'd have to use something far more ambitious like JTAG.
The quick answer is as long as uBoot is still working, they should be able to flash new images. As a recommendation, I'd avoid flashing uBoot unless you're absolutely sure you know what you're doing.
@mattsm and @mbanders: anything else you can add to this?

I am flashing a meta image and want this to be in the automation framework that gets used after every build to verify the image being flashed and be able to recover to a golden image if flashing fails.

I think that's feasibly something we could look into adding as an option.

But the question will a software solution work if the board is toasted with the new flashed build? Or do we require a JTAG solution?

The question is really whether the image is flashing the bootloader, which is usually uBoot. bft flashes through uBoot. If uBoot isn't being flashed and overwritten, then a bad flash or bad image shouldn't make the board unflashable. After all, you can run bft again and can still get back into uBoot and flash again. JTAG should only be required if uBoot has been flashed and no longer works for some reason.

The META you refer too usually contains u-boot and other pre-loader stuff which could in theory brick your board. If you exact and just flash the APSS (kernel + rootfs in META terminology) you should never brick the board.
I would just flash the output from the OpenWrt/QSDK build and use that instead of a full META for testing.

Our build infrastructure only builds one whole meta image as of now. So that will potentially brick the board. Any support for JTAG in BFT?

We might have some group that has done it, but it's highly windows based and never fully supported. Plus the JTAG devices are expensive for large automation.
You can extract the kernel and rootfs from a META though.
-M

What if we make changes to uboot in the new build? That will not be tested with the new kernel and rootfs when we extract and flash only certain parts of the image. I believe that will impact the credibility of the test being run after partial flash. That is the reason I am skeptical about this approach.

I suggest testing u-boot changes on a single station manually until you have a big reason to do otherwise.

@iniesC since it's more likely that people would make changes to their kernel and rootfs and due to the difficulty with recovering from a bad uBoot flash, we don't really have a mechanism to automatically recover. I'm sure we'd accept it as a feature request if someone wanted it badly and was willing to work through the difficulties though.


[US-15-4] Give the user the ability to specify an attribute that shouldn't be used for locators generation (Black / Ignore list)

It makes sense to complete #950 beforehand
Give user a possibility to specify attributes which shouldn't be used for locators generation
As a user
AND some additional attributes are used in my project, which data has no meaning or is useless in locators generation
I want to not generate code on it
So that allows me to get the correct code
DESCRIPTION:
User starts the locators generation and they see that in one of the locators undesired attribute is used. It is required to give user ability to exclude this attribute from locators generation so after locators recalculation new locators wouldn't contain that undesired attribute.
DEPENDENCIES:
#950 - Filter refactoring
#1285 - data-attributes
#1359 - data-ved
ACCEPTANCE CRITERIA

Updated filter with Attributes

Add headers
Add possibility to collapse list of blocks types
In the Block type search input change label to Search by type

Identification of locators containing undesired attributes. Recalculation only for those locators.
Add new item Ignore attribute to the context menu
Ability to Deny data-* attributes for filters (may be decomposed to another task)
New tags for filters
Robula update so it could accept ignored attributes as an argument

DESIGN:
figma

Add a new item to the context menu with options for locator and PO.
If In locator is selected, the menu closes and the attribute is changed in the selected locator.
If the locator does not have the attribute, do not show this item in the context menu.

If In Page Object is selected, a filter opens (scrolled to the attributes section) and the attribute is added.
Add a tag or a number to it (if it is not the first one).
Add new tags separated by a divider from the tag with highlighted locators.
Deny data-* attributes adds a separate tag with the text data-* (this checkbox should also increase the count of applied filters).

Additionally, we can separately open the filter and manually specify the attributes that should not be used.
Validation:

Only Latin characters
Convert to lower case automatically
No spaces; when entering text into the input, if Enter or Spacebar is pressed, the entered text is saved as a tag and input continues.
If text is entered into the input and ClickOut is performed, the entered text is also saved as a tag.

COMMENTS:
Changes will be needed on both the front-end and back-end. Currently, the list of attributes is not being transmitted. Because of this, Robula considers all possible combinations.

Global settings
Settings during creation
Filter
From the locators panel or coverage, select a locator and indicate that this locator is not suitable

The fourth option was chosen (the third is also possible), as attribute settings should be made when working with locators, i.e., within an open PO.
Changing an attribute is not a modification, but rather an edit, similar to changing the locator type or switching from xpath to css.
List of attributes: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes

@AlexeyGirin deletion of an attribute from filters will require recalculation of all locators

Нужно решить эту задачу вместе с задачей #584 (должен быть единый констистентный дизайн)

old design

только для PO?
как это работает с локаторами?
вводим настройки?

updates for WebSokets:
ignored_attributes: string []

Backend part is done


support stddev_pop function

What changes were proposed in this pull request?
support stddev_pop function, velox PR https://github.com/oap-project/velox/pull/129
How was this patch tested?
run stddev_pop unit test in DataFrameAggregateSuite.

I added a test similar to stddev_samp in the TestOperator. Some correctness tests have been included in GlutenDataFrameAggregateSuite, such as "stddev", "zero stddev", can we test the correctness based on these unit tests?

I added a test similar to stddev_samp in the TestOperator. Some correctness tests have been included in GlutenDataFrameAggregateSuite, such as "stddev", "zero stddev", can we test the correctness based on these unit tests?

Yes, thank you. The test added in this PR also compares the result with vanilla Spark.

@rui-mo The unit test failed because the code modified by velox has not been merged.

@rui-mo The unit test failed because the code modified in velox has not been merged.

@liujiayi771 I see, and we need to make sure the Github actions can pass before merge. Can we change the used Velox branch to yours for testing?  They are at: get_velox and build_velox.

@rui-mo Thanks for helping me review the code, I have reverted these changes. By the way, I will support the two functions var_samp and var_pop in another PR.


Implement new activity indicator for iOS14

Description
Apple has updated the look of Activity Indicator in iOS14.
This PR introduced a flag iOSVersionStyle for CupertinoActivityIndicator to enable new look.
The flag will be disabled by default until the official release of iOS14.
Related Issues
#60047
Tests
I added the following tests:

Goden file for Activity Indicator with new style.

Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: https://flutter.dev/go/breaking-changes-template Replace this with a link to a pull request that adds the migration guide to https://flutter.dev/docs/release/breaking-changes

cc/ @LongCatIsLooong and @justinmc We recently updated the cupertino activity indicator in https://github.com/flutter/flutter/pull/58392. Is this different from the one that landed two weeks ago?

It looks like this will update us to the iOS 14 appearance, where the previous PR gave us some features that were missing from the iOS 13 version.  No wasted work though, as it appears that the iOS 14 version is very similar to our now fully functional iOS 13 version.  See https://github.com/flutter/flutter/issues/60047.  CC @edwardaux
@ctrysbita Quickly checking out your branch and using the Flutter gallery pull-to-refresh demo, I still see the 12 pointed refresh indicator instead of the new 8 pointed one.

Here's my full code slightly modified from the gallery demo:
// Copyright 2019 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:math' show Random;

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CupertinoApp(
      title: 'Cupertino App',
      home: CupertinoRefreshControlDemo(),
    );
  }
}

class CupertinoRefreshControlDemo extends StatefulWidget {
  const CupertinoRefreshControlDemo();

  @override
  _CupertinoRefreshControlDemoState createState() =>
      _CupertinoRefreshControlDemoState();
}

class _CupertinoRefreshControlDemoState
    extends State<CupertinoRefreshControlDemo> {
  static const listCount = 20;
  var randomList = List<int>.generate(listCount, (i) => i + 1);

  void _shuffleList() => randomList.shuffle(Random());

  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      child: CustomScrollView(
        // If left unspecified, the [CustomScrollView] appends an
        // [AlwaysScrollableScrollPhysics]. Behind the scene, the ScrollableState
        // will attach that [AlwaysScrollableScrollPhysics] to the output of
        // [ScrollConfiguration.of] which will be a [ClampingScrollPhysics]
        // on Android.
        // To demonstrate the iOS behavior in this demo and to ensure that the list
        // always scrolls, we specifically use a [BouncingScrollPhysics] combined
        // with a [AlwaysScrollableScrollPhysics]
        physics: const BouncingScrollPhysics(
          parent: AlwaysScrollableScrollPhysics(),
        ),
        slivers: [
          CupertinoSliverNavigationBar(
            automaticallyImplyLeading: false,
            largeTitle: Text(
              'Title',
            ),
          ),
          CupertinoSliverRefreshControl(
            onRefresh: () {
              return Future<void>.delayed(const Duration(seconds: 1))
                ..then<void>((_) {
                  if (mounted) {
                    setState(() => _shuffleList());
                  }
                });
            },
          ),
          SliverList(
            delegate: SliverChildBuilderDelegate(
              (context, index) {
                final title = 'Ok! $index';
                return Card(child: Text(title));
              },
              childCount: listCount,
            ),
          ),
        ],
      ),
    );
  }
}

@ctrysbita we have a policy that widget libraries should follow the latest OEM behavior, I think that policy justifies changing the current default appearance of the activity indicator when iOS 14 is out of beta.
I'm a little bit concerned that in 2 months the new flag introduced in the PR will have to be deprecated. Maybe we should wait until the official release of iOS 14 and then just change the appearance of the activity indicator without the flag?

Maybe we should wait until the official release of iOS 14 and then just change the appearance of the activity indicator without the flag?

If you do this, most applications will not be updated/installed in time for the release. Then all flutter applications will lag behind the native counterparts

When I was working on iOS 13 features in advance of the release, I just merged them early and no one seemed to have a problem with it.  I vote for just removing the flag if no one sees a specific problem.

When I was working on iOS 13 features in advance of the release, I just merged them early and no one seemed to have a problem with it. I vote for just removing the flag if no one sees a specific problem.

However, iOS 14 is not officially release yet. Maybe we can use an enum to define the style.

It looks like this will update us to the iOS 14 appearance, where the previous PR gave us some features that were missing from the iOS 13 version. No wasted work though, as it appears that the iOS 14 version is very similar to our now fully functional iOS 13 version. See #60047. CC @edwardaux
@ctrysbita Quickly checking out your branch and using the Flutter gallery pull-to-refresh demo, I still see the 12 pointed refresh indicator instead of the new 8 pointed one. Let me know if I'm doing something wrong or what the plan is for implementing the refresh indicator as seen in #60047.

Here's my full code slightly modified from the gallery demo:

@justinmc The CupertinoSliverRefreshControl uses a builder to build refresh indicator. The default builder was set to build the default CupertinoActivityIndicator, which is still under iOS13 style.
Currently you have to implement a custom builder if you want to build the activity indicator with iOS14 style inside CupertinoSliverRefreshControl.

I was able to see the new indicator by using the builder parameter and setting the style parameter to iOS 14 👍

Changes are rebased on the latest master branch.

@ctrysbita Can you paste some code for how to test this widget? I'm having trouble using CupertinoSliverRefreshControl.
Otherwise I think this PR is pretty much good!  Thanks for making those changes.

@ctrysbita Can you paste some code for how to test this widget? I'm having trouble using CupertinoSliverRefreshControl.
Otherwise I think this PR is pretty much good! Thanks for making those changes.

Actually you can build an activity indicator directly without CupertinoSliverRefreshControl.
import 'package:flutter/cupertino.dart';

main(List<String> args) {
  runApp(CupertinoApp(
    home: CupertinoPageScaffold(
      child: Center(
        child: CupertinoActivityIndicator(
          iOSVersionStyle: CupertinoActivityIndicatorIOSVersionStyle.iOS14,
          radius: 20,
        ),
      ),
    ),
  ));
}

Deprecation follow up at https://github.com/flutter/flutter/issues/62521.


Embed feature has unusual focus and scale

How can customers focus and scale the embedded pxt code, so that it goes to a sensible zoom level and point on the page? If you look at the example from Kitronik below, it zooms and pans to an unusual position on the page...
https://www.kitronik.co.uk/blog/part-6-coding-with-the-pxt-editor

The embed view currently uses the default initial zoom level and centering from blockly.


NUTCH-2655 Update Solr schema.xml for Solr 7.x

add required field types to schema.xml
tested with Nutch 1.15 and Solr 7.3.1 and 7.5.0

+1 LGTM

+1

+1


No kernel for grammar Python found Check that the language for this file is set in Atom and that you have a Jupyter kernel installed for it.

dear professor
as you can see, when i try to run 'print 123', it showed me this, and before this, i run 'pip install ipykernel ' in the windows cmd, it told me that 'Successfully installed backports-abc-0.5 backports.shutil-get-terminal-size-1.0.0 certifi-2<IP_ADDRESS> colorama-0.3.9 decorator-4.1.2 enum34-1.1.6 ipykernel-4.6.1 ipython-5.5.0 ipython-genutils-0.2.0 jupyter-client-5.1.0 jupyter-core-4.4.0 pathlib2-2.3.0 pickleshare-0.7.4 prompt-toolkit-1.0.15 pygments-2.2.0 python-dateutil-2.6.1 pyzmq-16.0.3 scandir-1.6 simplegeneric-0.8.1 singledispatch-<IP_ADDRESS> tornado-4.5.2 traitlets-4.3.2 wcwidth-0.1.7 win-unicode-console-0.5'.
so what I should I do to solve this problem(win10 platform), thanks a lot for all.

This looks like a outdated version of Hydrogen and Atom. Which version are you running?
Please update if it's not the latest

Hi,
I'm having the same issues on my windows machine. My Atom and and Hydrogen are both the most recent releases.
Atom - 1.21.2
Hydrogen - 2.0.1
I updated both yesterday and have been getting this error since then. I re-installed Hydrogen and Ipykernel and still have the same issue. I see from past threads that there used to be a kernelspec setting where you could direct hydrogen to the kernel but that seems to have been removed. Any ideas how to resolve this issue?
Thanks!

Same here.

Same issues on Windows machine

[Problem Solved]
For me the issue was solved when I added anaconda3 and anaconda3/Scripts to the PATH variable.
Hope this helps others as well!

Running
python -m pip install ipykernel
python -m ipykernel install --user

should fix the problem.
Please try the latest version of hydrogen.

Running
python -m pip install ipykernel
python -m ipykernel install --user

should fix the problem.
Please try the latest version of hydrogen.

This doesnt work on Mac. When I execute the second command I get:

python -m ipykernel install --user
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/Library/Python/2.7/site-packages/ipykernel/__main__.py", line 2, in <module>
    from ipykernel import kernelapp as app
  File "/Library/Python/2.7/site-packages/ipykernel/kernelapp.py", line 38, in <module>
    from .iostream import IOPubThread
  File "/Library/Python/2.7/site-packages/ipykernel/iostream.py", line 25, in <module>
    from jupyter_client.session import extract_header
  File "/Library/Python/2.7/site-packages/jupyter_client/session.py", line 51, in <module>
    from dateutil.tz import tzutc
  File "/Library/Python/2.7/site-packages/dateutil/tz/__init__.py", line 2, in <module>
    from .tz import *
  File "/Library/Python/2.7/site-packages/dateutil/tz/tz.py", line 21, in <module>
    from six.moves import _thread
ImportError: cannot import name _thread

Running
python -m pip install ipykernel
python -m ipykernel install --user

should fix the problem.
Please try the latest version of hydrogen.

This actually works in Windows 10 if by working means everything necessary was installed. As I have python3, I was running

python3 -m pip install ipykernel
python3 -m ipykernel install --user

Buuut when I run atom again and try to run a script, it gave meee

I got the latest Atom version and Hydrogen version (everything was installed yesterday).
Any help appreciated.

same problem occurs for Mac OSX Mojave as above.
https://github.com/nteract/hydrogen/issues/1074#issuecomment-485864214

Can you check the kernel you want to run is listed in: jupyter kernelspec list ?
This gonna be like:
Available kernels:
  java-11       C:\Users\aviat\AppData\Roaming\jupyter\kernels\java-11
  javascript    C:\Users\aviat\AppData\Roaming\jupyter\kernels\javascript
  julia-1.1     C:\Users\aviat\AppData\Roaming\jupyter\kernels\julia-1.1
  julia-1.2rc     C:\Users\aviat\AppData\Roaming\jupyter\kernels\julia-1.2rc
  py36          C:\Users\aviat\AppData\Roaming\jupyter\kernels\py36
  r-3.5         C:\Users\aviat\AppData\Roaming\jupyter\kernels\r-3.5
  python3       C:\Users\aviat\Anaconda3\share\jupyter\kernels\python3

And if each JSON file contains language scheme, Hydrogen should detect the kernel.

Example: C:\Users\aviat\AppData\Roaming\jupyter\kernels\py36\kernel.json

{
 "argv": [
  "C:\\Users\\aviat\\Anaconda3\\envs\\py36\\python.exe",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3.6",
 "language": "python"
}

@aviatesk
Hi, thank you for your reply, here is my result．
bash-3.2$ jupyter kernelspec list
Available kernels:
  julia-1.1    /Users/terasakisatoshi/Library/Jupyter/kernels/julia-1.1
  python3      /Users/terasakisatoshi/.pyenv/versions/3.6.8/share/jupyter/kernels/python3
bash-3.2$ pyenv which python
/Users/terasakisatoshi/.pyenv/versions/3.6.8/bin/python
bash-3.2$ which jupyter
/Users/terasakisatoshi/.pyenv/shims/jupyter
bash-3.2$ cat ~/.pyenv/versions/3.6.8/share/jupyter/kernels/python3/kernel.json
{
 "argv": [
  "python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3",
 "language": "python"

Sorry jupyter kernelspec list might not be enough to track the issue.
Essentially, we searches local kernels by spawning: jupyter -paths
and see the data section from it.
If the command doesn't show directories containing your Python kernels, activating pyenv first or setting environment variable described here might help you.

@BenRussert @lgeiger
Do you usually use .pyenv ? If so, can you tell us your configurations ?

Here is my result of jupyter --paths
$ jupyter --paths
config:
    /Users/terasakisatoshi/.jupyter
    /Users/terasakisatoshi/.pyenv/versions/3.6.8/etc/jupyter
    /usr/local/etc/jupyter
    /etc/jupyter
data:
    /Users/terasakisatoshi/Library/Jupyter
    /Users/terasakisatoshi/.pyenv/versions/3.6.8/share/jupyter
    /usr/local/share/jupyter
    /usr/share/jupyter
runtime:
    /Users/terasakisatoshi/Library/Jupyter/runtime

I think Hydrogen is trying to read /Users/terasakisatoshi/Library/Jupyter not /Users/terasakisatoshi/.pyenv/versions/3.6.8/share/jupyter.

Umm Hydrogen is set up to read every kernels/*/kernel.json file under data dirs above...
This problem seems to be rooted in this npm package that are also used for nteract.
I will ask for this on our slack and please wait patiently.

If you install python under an anaconda virtual environment and meet the same error on Mac OS, first make sure you have installed python kernel using jupyter --paths
(python3) [zhenkunli:/Users/zhenkunli]$ jupyter --paths
config:
    /Users/zhenkunli/.jupyter
    /anaconda3/envs/python3/etc/jupyter
    /usr/local/etc/jupyter
    /etc/jupyter
data:
    /Users/zhenkunli/Library/Jupyter
    /anaconda3/envs/python3/share/jupyter
    /usr/local/share/jupyter
    /usr/share/jupyter
runtime:
    /Users/zhenkunli/Library/Jupyter/runtime

then all you need to do is create a directory kernels under /Users/zhenkunli/Library/Jupyter and copy the directory /anaconda3/envs/python3/share/jupyter/python3 to /Users/zhenkunli/Library/Jupyter/kernels, you will find it works. Note python3 is the environment name of mine. Hope this helps.

Another way to make Hydrogen work is to launch Atom in a terminal which has load your anaconda environment if you have set atom in your system PATH, i.e., (python3) [zhenkunli:/Users/zhenkunli]$ atom

@zhenkunl
Thank you,
I'm using Python 3.6.8 which is managed by pyenv.
I found kernels at on my PC

~/.pyenv/versions/3.6.8/share/jupyter/kernels/python3

which may correspond to your /anaconda3/envs/python3/share/jupyter/python3.
I copied my directory ~/.pyenv/versions/3.6.8/share/jupyter/kernels/python3 to
~/Library/Jupyter/kernels .
Here is my result:

hooray

@terasakisatoshi I am very happy to hear it works. That's cool.

@zhenkunl Yeah. Thank you so much!

@zhenkunl
Thanks for your contribution !
I've just added the section about this workaround in our troubleshooting guide and closing this issue.

restarting atom worked for me

That helped... thanks!!

Hello,
I am currently struggeling with the same issue and although I have the kernels/python3 folder in my jupyter runtime path as suggested by @zhenkunl, which is: C:\Users\user\AppData\Roaming\jupyter\runtime on windows. Any suggestions what else might be missing?

@zhenkunl
Thank you,
I'm using Python 3.6.8 which is managed by pyenv.
I found kernels at on my PC

~/.pyenv/versions/3.6.8/share/jupyter/kernels/python3

which may correspond to your /anaconda3/envs/python3/share/jupyter/python3.
I copied my directory ~/.pyenv/versions/3.6.8/share/jupyter/kernels/python3 to
~/Library/Jupyter/kernels .
Here is my result:

hooray

This was my issue too! I created a symbolic link instead of copying.
ln -s ~/.pyenv/versions/3.9.1/share/jupyter/kernels/python3 ~/Library/Jupyter/kernels


Milestone four: Logic

Add logic App

Added logic to the calculator application
Fixed linter errors

Hey @jofer86, thanks for the code review and approving this PR.


Fix logic bug which causes all files to be blacklisted on cortex-m4

With this patch applied I can now build compiler-rt.rs for my Cortex-M4F (a TI LM4F120).

(This looks familiar ... #15)
Thanks!
By the way, can I convince you to use rustc-builtins instead of this crate? The other crate doesn't involve all this conditional compilation of C files but it provides way less intrinsics. AFAIS, rustc-builtins provides enough intrinsics to make cu work and I'm interested in seeing if it provides enough intrinsics for your use case. If it doesn't then I'd love to know which other intrinsics you need -- I'll prioritize porting those to Rust.

I need __aeabi_uldivmod as I have some u64 timer code.
Do you know if there's a concrete list, or do we have to reverse engineer
compiler-rt to get it? Can we easily implement naked pure-asm functions
(like __aeabi_memclr is supposed to tail call __aeabi_memset).
Perhaps a discussion to be had on the other project.
On 10 Aug 2016 01:43, "Jorge Aparicio"<EMAIL_ADDRESS>wrote:
(This looks familiar ... #15
https://github.com/japaric/compiler-rt.rs/pull/15)
Thanks!
By the way, can I convince you to use rustc-builtins
https://github.com/japaric/rustc-builtins instead of this crate? The
other crate doesn't involve all this conditional compilation of C files but
it provides way less intrinsics. AFAIS, rustc-builtins provides enough
intrinsics to make cu https://github.com/japaric/cu work and I'm
interested in seeing if it provides enough intrinsics for your use case. If
it doesn't then I'd love to know which other intrinsics you need -- I'll
prioritize porting those to Rust.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/japaric/compiler-rt.rs/pull/18#issuecomment-238735258,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA6lj3Www-Ml0uElMblmRBmWtE2i3r_tks5qeR6ZgaJpZM4Jgkes
.

I need __aeabi_uldivmod as I have some u64 timer code.

OK, I'll prioritize that one.

Do you know if there's a concrete list, or do we have to reverse engineer compiler-rt to get it?

Not really. The best way to find out which ones we really need is getting a linker error (undefined reference to ...) but that doesn't yield a full list. The other way is cross information from compiler-rt's and LLVM's sources and knowledge about what "features" Rust uses (or doesn't use). @Amanieu has done a great job at that second approach and summarized their findings here.

Can we easily implement naked pure-asm functions

The upcoming global_asm! would make that straightforward. Right now you can achieve it using naked functions.


DONeRF final bibtex update.

Pull requests instruction

Put the bibtex in awesome-NeRF/citations/<YOUR-PROJECT>.txt.
Modify the README and follow the format TITLE, AUTHOR, CONFERENCE YEAR | OPTIONAL LINK | BIBTEX. For example:

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis, Mildenhall et al., ECCV 2020 | github  | bibtex

Hello @thomasneff , I manually updated it because of a merging conflict, let me know if anything is incorrect.


Debugging Electron on Windows

I already updated v8-debug and v8-profiler to use win_delayed_load_hook in build.
After this update we can debug iojs app started from node alias.
But problem for Electron (atom-shell) still exist. https://github.com/nodejs/io.js/issues/1738
In other words npm i node-inspector --target=1.6.3 is not helpful for electron.
Work in progress.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/16129452-debugging-electron-on-windows?utm_campaign=plugin&utm_content=tracker%2F195817&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F195817&utm_medium=issues&utm_source=github).

So this is a Windows-only issue? If I were to try this on Linux it would work fine?

Is there any update with this?
I am using electron-v0.35.1-win32-x64 and getting the same error:
"Error: Cannot find module '..\AppData\Roaming\npm\node_modules\node-inspector\node_modules\v8-debug\build\debug\v0.5.4\node-v46-win32-x64\debug.node'"

It is possible to debug electron if you start node-inspector using electron.
See https://github.com/atom/electron/pull/4004
this bug is also duplicated at #774 and #730
Feedback welcome on the PR if someone has trouble following the instructions.


feat: add support to use aarch64 Alpine linux docker image by Jenkins agents

- on jdk8, 11, 16, 17,18, 19

Fixes: https://github.com/adoptium/infrastructure/issues/2497

It looks correct, anyway to manually test before merging?

I assume we do not have a "staging" Jenkins controller can be used for offline test.
In that case, to have a e2e test, need to someone to create a dummy Jenkins job similar to https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/job/jdk8u/job/jdk8u-alpine-linux-x64-temurin but for aarch64, but config Parameters to use aarch64 once the docker image is ready in dockerhub then run the job manually to see how it goes.
If purely to test the docker image itself, (skip how jenkins etc) that has been done

LGTM although we only build 8, 11, 17, 18, 19 so the 16 change isn't needed (but it doesn't matter too much)

Yeah, I added for 16 because x64 has alpine docker configed there.
maybe we can have another issue to cleanup some old pipeline config files if the versions aint supported any longer.


Performance with videos

Hello @bilal1031,
I have been using your library for a while and i'm having some performance issues with videos. ¿Are you handling some preload logic by any chance? I implemented in my project file downloads so it should access a local source instead but still the performance hasn't change much. Do you have recommendations to improve the loading?
Thank you in advance for the library!

@julioag, Yes with expo-av the video loading does have performance issues. I would recommend to integrate react-native-video into the library with expo-av to get the performance you are looking for.


Add response types

Related #928
Add response types for:

collectibles v1
about
delegates
safe_apps

@fmrsabino regarding this fragment of code:
CacheResponse::new(&context, ChainCache::from(chain_id.as_str()))
        .duration(about_cache_duration())
        .resp_generator(|| handlers::get_master_copies(&context, chain_id.as_str()))
        .execute()
        .await

CacheResponse->execute returns ApiResult<RawJson<String>>>
Instead rewrite execute I would like to add a method that returns from cache the result in String and in each endpoint cast the result to ApiResult<Json<CorrespondingType>>>
What do you think about this way to do this?

@fmrsabino regarding this fragment of code:
CacheResponse::new(&context, ChainCache::from(chain_id.as_str()))
        .duration(about_cache_duration())
        .resp_generator(|| handlers::get_master_copies(&context, chain_id.as_str()))
        .execute()
        .await

CacheResponse->execute returns ApiResult<RawJson<String>>> Instead rewrite execute I would like to add a method that returns from cache the result in String and in each endpoint cast the result to ApiResult<Json<CorrespondingType>>> What do you think about this way to do this?

Instead of casting I'd probably have it as a Generic output. This might be a bigger change however so you can also try parsing the String to a specific type using serde (altough this might result in unecessary serializations when we return from the route:  String -> T -> U)

Closes #928

This PR shouldn't close this issue. The issue is more about having it on all endpoint and this is specific to the About the Collectibles

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

13 of 15 (86.67%)  changed or added relevant lines in 4 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.02%) to 31.745%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/routes/about/routes.rs
2
3
66.67%

src/routes/collectibles/handlers.rs
7
8
87.5%

Files with Coverage Reduction
New Missed Lines
%

src/routes/collectibles/handlers.rs
1
49.28%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
12884

Relevant Lines:
14611

💛  - Coveralls

We are targeting this work in https://github.com/5afe/safe-client-gateway-nest


Theme cuts off users on right side.

In the screenshot  provided, the user list on the right hand side of the screen have been cut off halfway. I'm not sure if this is a bug issue, or a me issue, but thought I'd share. I have my discord on a second display which is set to a 1920x1080 resolution.
Edit: I will state that it's only in the forums that this appears to be happening. When I see the user list on the right in any other view, it works just fine.

bigger monitor image

Also, when creating a new thread, it opens the new thread to the right of the forum screen. Parts of the message(s) are being cut off as well. Same monitor and resolution.
smaller monitor image

and when I bring it to a monitor with a smaller screen, but still the same display resolution of 1920x1080 and scale size of 100%, it does the same thing


Update WHMCSModuleTest.php

Fix namespace and issue when trying to use testing
https://stackoverflow.com/a/42561590/1621381
error:
[docker://phpstorm/php-73-apache-xdebug-27/]:php /opt/project/vendor/phpunit/phpunit/phpunit --configuration /opt/project/phpunit.xml.dist --filter WHMCSModuleTest --test-suffix WHMCSModuleTest.php /opt/project/tests --teamcity
Testing started at 2:52 p.m. ...

Fatal error: Uncaught Error: Class 'PHPUnit_Framework_TestCase' not found in /opt/project/vendor/phpunit/phpunit/src/TextUI/Command.php on line 98

PHPUnit\TextUI\RuntimeException: Class 'PHPUnit_Framework_TestCase' not found in /opt/project/vendor/phpunit/phpunit/src/TextUI/Command.php on line 98

Call Stack:
    0.0005     401920   1. {main}() /opt/project/vendor/phpunit/phpunit/phpunit:0
    0.0077    1172000   2. PHPUnit\TextUI\Command::main() /opt/project/vendor/phpunit/phpunit/phpunit:76

Process finished with exit code 255

After updating works perfectly.
[docker://phpstorm/php-73-apache-xdebug-27/]:php /opt/project/vendor/phpunit/phpunit/phpunit --configuration /opt/project/phpunit.xml.dist --filter WHMCSModuleTest --test-suffix WHMCSModuleTest.php /opt/project/tests --teamcity
Testing started at 2:53 p.m. ...
PHPUnit 9.5.6 by Sebastian Bergmann and contributors.

Warning:       Your XML configuration validates against a deprecated schema.
Suggestion:    Migrate your XML configuration using "--migrate-configuration"!

Time: 00:00.035, Memory: 6.00 MB

OK (17 tests, 17 assertions)

Process finished with exit code 0

Hi @meramsey,
Thanks for your contribution! It looks like this file was definitely out of date and designed for an older version of PHPUnit. Thanks for helping bring this up to date!


Consider defaulting to button tag on bulma button

Its seems that the a tag is more appropriate since Firefox does not support flex properties on a button elem.
As per @jbailey4
Looks like flex properties do not work on button elements in firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=984869

@crodriguez1a Yeah, consumers can always override as needed:
import BulmaButton from 'ember-bulma/components/bulma-button';

export BulmaButton.extend({
  tagName: 'button',
  ...
});


live_status / was_live / is_live not always available

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I'm running yt-dlp version 2022.07.18 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Provide a description that is worded well enough to be understood
I'm not really expecting this to be fixed--but I'm documenting it here so that someone like me will be able to copy my configuration after I figure out the right incantation.
$ yt-dlp -j https://www.youtube.com/watch?v=1Nqyz0a6e7s | jq | grep -i live
  ...
  "is_live": false,
  "was_live": false,
  "live_status": "not_live",
  ...

great!
$ yt-dlp -j https://www.nfb.ca/film/qimmiq-canadas-arctic-dog/ | jq | grep -i live
598 1.7s [0|0|1] $

ugh :/
This makes match-filter skip URLs where the extractor or website has not implemented live-streaming.
--match-filter "duration > 59 & duration < 14399 & !is_live & !was_live"

The same argument could be made for extractors which don't implement the duration field... I am not sure if an extractor like that exists but if so perhaps a complete solution here would be to have a flag to skip undefined fields from the match-filter expression parsing.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
I will close this but feel free to re-open if you think this should/could be fixed :-)

I feel kinda gross for abusing this bug report template but this is the only place someone like me will look. It doesn't make sense for me to post this on a blog or something

Looks like this should work:
--match-filter "duration > 59 & duration < 14399 & extractor_key != 'Youtube'" \
--match-filter "duration > 59 & duration < 14399 & !is_live & !was_live"

big oof. NFB is missing the duration as well field lol
$ yt-dlp -j https://www.nfb.ca/film/qimmiq-canadas-arctic-dog/ | jq | grep -i duration
623 1.5s [0|0|1]🥨

for boolean should it be !?is_live or !is_live? or is that not supported?


Proposal Batch-Crossref importer

Problem

We know from our scale tests (#713) that a one-by-one import is slow if the scale is very large.
We were able to improve the (Janusgraph) import speed considerably by rewriting the batch importers to send a single request to the HTTP server countaining 25-50 imports at once
The current batch importers only support primitive properties
Because it is a requirement for a cross-ref that both the source and target thing/action are already present we must import cross-refs separate from the things/actions *

*= I'm not sure if this is always true, for example if we only have Cities and Persons and only a one-way relationship Person -> LivesIn -> City it might (!) be possible to first import all Cities and then import all Persons directly with the cross-ref. However, this will definitely not work if we have something like Person -> knows -> Person. In this case we must decouple importing Vertices and Edges.
Proposal: A batch importer specific to cross-refs
Route: POST /batching/<thingsOrActions>/properties/<cross-ref-prop-name>
Note: I don't like the resource properties, as it suggests that you can add all properties this way. However, I chose it so it is consistent with POST /things/properties/<cross-ref-prop-name> which can also only be used to add cross-refs. We could also rename this to references here and then call it this way everywhere.
Body:
[
  {
    "from": "thing-or-action-uuid",
    "$cref": "weaviate://localhost/things/thing-uuid-of-target"
  },
  {
    "from": "could-be-the-same-or-another-thing-or-action-uuid",
    "$cref": "weaviate://localhost/things/thing-uuid-of-another-target"
  },
]

Behavior for different cardinalities: The same. The batch importer assumes that either no cross-refs are present yet or that the cardinality is set to many. Therefore we can add one in either case. If the cardinality is set to atMostOne and there is already one present, this particular class kind would fail the validation.
Feedback requested
@bobvanluijt @laura-ham @JeroenStravers1 @dljcollette

How do you like the proposed cross-ref batch importer as outlined above?
Should we name it /batching/things/properties/<cross-ref-prop-name> so it's consistent with the other endpoint. Or should we name it /batching/things/references/<cross-ref-prop-name>(which in my opinion is more correct) and then also change the existing routes from properties -> references?

Update: I already saw a mistake in the above proposal. We can't reference a property without specifying the class. However, the user might want to make references from different class types in a single batch. So I think we need to move that into the the request body.
Updated Proposal
Route POST /batching/properties (or alternatively `POST /batching/references/)
[
  {
    "from": "a-thing-id-of-a-city",
    "property": "InCountry",
    "$cref": "weaviate://localhost/things/thing-uuid-of-target"
  },
  {
    "from": "a-thing-id-of-a-person",
    "property": "LivesIn",
    "$cref": "weaviate://localhost/things/thing-uuid-of-another-target"
  },
]

Based on the last proposal we could also try to write this more concise like so:
{
    "from": "weaviate://localhost/things/thing-uuid-of-a-City/InCountry",
    "to": "weaviate://localhost/things/thing-uuid-of-target"
}

I think I might actually prefer this one. The URL structure with a new /<property> section is new I believe, we've never had that before. But I think it makes sense.

Hi @etiennedi,
Question: Do we need to specify the kind of the from class? Because you give the uuid, so whether it is a Thing or an Action doesn't really matter and can't be changed.
Then, what is exactly what you want to do with this? Because your initial proposal and the first comment achieve something different:

Adding references with the same property name

As your initial proposal
Can be done from and to multiple different classes, but prop name should be the same. That doesn't really make sense to me

Adding references, the don't have to have anything in common

Like in our first comment.
pro: can add many different references in one batch
con: If you want to add many different references from one class, you need to specify the from part a lot of times
Your second comment would indeed make more sense then, but then the /<property> should be in the URL again then, which makes it the goal the same as your initial proposal again.

And I like POST /batching/references/ better then `POST /batching/properties/, because in the proposal there is indeed only the option to add references, and not all type of properties..
But why do we want to 'sort' or categorize the batch based on the property name, and not the from class? Having the /<property> in the URL and not the thingId lets you specify something 'in' the Thing, without having specified the 'Thing' yet, it's kind of skipping one layer or so.. Also, is it likely that there are things of various classes with the same property name you want to add a reference to? I don't think so right now?
So what about adding a batch of properties per class like:
POST /batching/things/<thingId>
[
  {
    "property": "InCountry",
    "$cref": "weaviate://localhost/things/thing-uuid-of-target"
  }
]

or:
POST /batching/things/<thingId>/properties/<propertyName>
[
  {
    "$cref": "weaviate://localhost/things/thing-uuid-of-target"
  }
]

But maybe this only works when the cardinality of the reference is hasMany, or the request should be PUT (which is not an option because it replaces the current content)..

The proposal makes complete sense. The only remark I have is regarding the nomenclature, there I’m with Laura, I think references is better suited.

@bobvanluijt

The only remark I have is regarding the nomenclature, there I’m with Laura, I think references is better suited.

Fully agree, do you also agree that we should change the existing routes like
/things/properties/<cross-ref-prop-name> to /things/references/<cross-ref-prop-name> since they are essentially the same thing, but currently called properties?

Good point, yes, I found it confusing while working on the docs because they only serve references and not properties in general.

@laura-ham
Thanks for your comments and questions. Let me try to address them one by one.

Question: Do we need to specify the kind of the from class? Because you give the uuid, so whether it is a Thing or an Action doesn't really matter and can't be changed.

It's not a hard-requirement. So far everything we have to access a specific class item does require specifying the kind though. For example GET /things/<uuid> or setting a cross-ref (without batch) where we specify something like weaviate://localhost/things/<uuid>. So I'd prefer if we also included the kind here for two reasons:

It's consistent, even though uuids are in fact unique and enough to identify a class, currently you always need to be aware if you're aksing for a Thing or Action. I could also see this be more relevant if we ever had more Kinds.
With the database connector abstraction model, we need to try and support as many dbs as possible. This also means they all have different indexing strategies. With more information in the query we could potentially cut the size of an index in half. I.e. instead of having 1bn classes indexed by uuid, we could have 500m indexed by uuid in a Things index and the same for Actions. This should in theory make look-ups more efficient. (The effect of that varies from connector to connector, but I think it's better to be safe in this case since we don't know which connectors will come, but explicitly want to support many).

Then, what is exactly what you want to do with this? Because your initial proposal and the first comment achieve something different

Very good point. My comments evolved a bit as my ideas did and it now seems as if the target different goals. So, to re-iterate: The goal of this batching endpoint is not to make it easier for the user to group references by any logical units. The only goal is to import as many references (that might have something in common, but could also be completely independent) in a single request. This is because we've noticed (with Janusgraph, but I assume it applies for others), that it's much slower to do 10 imports of X, rather than a single import of 10X.

Can be done from and to multiple different classes, but prop name should be the same. That doesn't really make sense to me

Agree, this was the major flaw in my first proposal. Somehow I though it would make sense to group it by ref-prop. Not sure why, but completely missed the fact that all from class instances would then have to be of the same class.

pro: can add many different references in one batch
con: If you want to add many different references from one class, you need to specify the from part a lot of times

The pro is what I'm trying to achieve. The con is less of an issue I think, since the batching imports will almost always be fed by a script anyway, so it shouldn't be a additional effort to repeat the from class over and over again. Request size should also be no issue (based on my initial tests with importing without cross-refs). But in exchange we get the ability to import completely independent cross-refs.

But why do we want to 'sort' or categorize the batch based on the property name, and not the from class?

I don't. I only wanted to do that in the first proposal, but then realized that doesn't make sense (as you did too).
The URL that the user would sent the batch request to in the "final" proposal would simply be POST /batching/references/ (I've already renamed it to references here since we're all in agreement that that's the better term).
Did maybe this sentence of mine confuse you?

The URL structure with a new / section in the beacon url is new. I believe, we've never had that before. But I think it makes sense.

Here I didn't mean the URL that the user send the request to, but in the body the from field which is in turn a URL structure, like weaviate://localhost/things/<uuid>/<RefPropName>.
Your final two proposals make sense from a UX perspective, but unfortunately don't solve the "I want to be able to group 50 cross-refs into a single import that might have nothing in common" problem. I think we can use the existing PATCH /things/uuid endpoint to add multiple cross-refs from a single class already, so we don't need to add this through patching.
I hope my comments helped clarify some of the confusion from before. Keeping all that in mind, would you agree the following proposal is the best fit for the requirements?
POST /batching/references with the following body:
[
  {
    "from": "weaviate://localhost/things/thing-uuid-of-a-City/InCountry",
    "to": "weaviate://localhost/things/thing-uuid-of-target"
  },
  {
    "from": "weaviate://localhost/things/thing-uuid-of-a-Person/LivesIn",
    "to": "weaviate://localhost/things/thing-uuid-of-target"
  },
]

Hi @etiennedi ,
Thanks, this totally makes sense!
I now also see that my final proposal does indeed not solve the problem.
Your last proposal, for POST /batching/references looks good! :)

Closing in favor of #788 as the proposal is considered accepted and now we only need to track the implementation.


(Test PR) Travis config2

Current coverage is 83.96% (diff: 100%)

Merging #29 into master will not change coverage

@@             master        #29   diff @@
==========================================
  Files            29         29
  Lines           524        524
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            440        440
  Misses           84         84
  Partials          0          0

Powered by Codecov. Last update f5a47ec...44538e9


Allow access to call BluetoothGatt#requestConnectionPriority

Thanks for building a really neat way to access BLE quickly!
I'd love to be able to change the connection priority, but can't see a way to do that using the library at the moment as the gatt handler is private.

Hey @simmerz that's a good idea. I've been trying to think of a clean way to expose some Android-specific functionality, while not just re-implementing the whole API.
One idea is to migrate much of the code to being utilities or extensions. That way, the entire Android stack is available, but some handy extra "stuff" is there as needed. Specifically around the connection manager, but probably at the device level too.
Need to think about it a bit more.


Add a mention of our new slack channel in the home page and in the error page as well

Url of the slack is:
https://OrgCheck-Ohana.slack.com


Mutation Observer hook

Would you be interested to add a useMutationObserver hook?
My take on the implementation: https://github.com/danielr18/react-hook-mutation-observer/blob/master/index.js

Definitely!
I wonder if you would want an API without a callback so that you could use it in combination with React.useMemo:
let mutationRecord = useMutationObserver(
  document.getElementById("to-observe"),
  { attributes: true },
);

let updateAfterMutations = React.useMemo(
  () => {
    // ...
  },
  [mutationRecord],
);

That's another option as well, I think it depends on the usage.
I normally use it to process the mutations once as they occur, and the callback is a good fit for that. Using React.useMemo would achieve basically the same, except that it would additionally run an equality check on each render, as far as I know.
The good thing I see is that the return value of the hook is more easy to understand, the mutation records vs the result of the MutationObserver's callback.
However, we could modify it so that if no callback is passed, the value will be the mutationRecords, and then you could use React.useMemo as in your example.
let { value: mutationRecords } = useMutationObserver(
    document.getElementById("to-observe"),
    { attributes: true }
);

let updateAfterMutations = React.useMemo(
  () => {
    // ...
  },
  [mutationRecord],
);

What do you think?

Came here to suggests useElementResize (using ResizeObserver under the hood), and saw this.
We may do something like this:
const useElementResize = ref => {
  const [rect, setRect] = React.useState({});

  React.useEffect(
    () => {
      const ro = new ResizeObserver((entries, observer) => {
        for (const entry of entries) {
          if (entry.target === ref.current) {
            // update state if this is our DOM Node
            // (we may support multiple refs)
            setRect(entry.contentRect);
          }
        }
      });
      // observe the passed in ref
      ro.observe(ref.current);
      return () => {
        // cleanup
        ro.disconnect();
      };
    },
    [ref] // only update on ref change
  );

  return rect;
};

Here is a demo if you want to explore

I modified it to always return the callback value, instead of an object.
const defaultCallback = mutationList => mutationList;

function useMutationObserver(targetNode, config, callback = defaultCallback) {
  const [value, setValue] = useState(undefined);
  const observer = useMemo(
    () =>
      new MutationObserver((mutationList, observer) => {
        const result = callback(mutationList, observer);
        setValue(result);
      }),
    [callback]
  );
  useEffect(
    () => {
      if (targetNode) {
        observer.observe(targetNode, config);
        return () => {
          observer.disconnect();
        };
      }
    },
    [targetNode, config]
  );

  return value;
}


Various issue with the sample code

The code can post messages to the wrong SNS topic when retrying. It looks for the first SNS topic in the account that has a lambda function subscribed to it and posts the retry message to that topic. See line # 161 in index.py for the implementation. The SNS message that is received by the Lambda already has the ARN of the SNS topic.

The code does not do any kind of pagination against the ECS API when reading the list of EC2 instances. So if it couldn't find the instance ID that was about to be terminated on the first page, then the instance was not set to DRAINING and the end users would see 50X messages when the operation timed out and autoscaling killed the instance.

There is a large amount of unused code and variables in the in the code. The index.py file can be knocked down by half. #19 should resolve the unused variables.

The retry logic did not put in any kind of delay in place. The Lambda function would be invoked about 5-10 times a second, and each Lambda function invocation would provably make close to a dozen AWS API calls. This could result in accounts being throttled.

The .zip archive code differs to what is in VCS (particular there are changes to code/index.py. which are not included in the bundled archive. This could result in unexpected results for users following the blog article's recommendation

Checkout my fork. It has a couple of issues resolved. Soon it won’t matter
as you can use AWS Fargate (currently only available for US East)
On Thu, 1 Mar 2018 at 20:23, Wesley Charles Blake<EMAIL_ADDRESS>wrote:

The code can post messages to the wrong SNS topic when retrying.
It looks for the first SNS topic in the account that has a lambda function
subscribed to it and posts the retry message to that topic. See line # 161
in index.py for the implementation. The SNS message that is received by the
Lambda already has the ARN of the SNS topic.

The code does not do any kind of pagination against the ECS API
when reading the list of EC2 instances. So if it couldn't find the instance
ID that was about to be terminated on the first page, then the instance was
not set to DRAINING and the end users would see 50X messages when the
operation timed out and autoscaling killed the instance.

There is a large amount of unused code and variables in the in the
code. The index.py file can be knocked down by half. #19
https://github.com/aws-samples/ecs-cid-sample/pull/19 should resolve
the unused variables.
4.
- The retry logic did not put in any kind of delay in place. The
Lambda function would be invoked about 5-10 times a second, and each Lambda
function invocation would provably make close to a dozen AWS API calls.
This could result in accounts being throttled.
5.
- The .zip archive code differs to what is in VCS (particualr there
are changes to code/index.py. which are not included in the bundled
archive. This could result in unexpected results for users following the
blog article's recommendation
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/aws-samples/ecs-cid-sample/issues/20, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAwqo34r0gzeOIF4RccQp-aTwRjoVl8tks5tZ74DgaJpZM4SX_gJ
.

--
Kind regards,
Anthony Sceresini
m. (+61) 403-000-488
e<EMAIL_ADDRESS>abn. 61 664 581 091

I'd add to the issues that it discovers the ECS cluster name by parsing userdata and looking for text strings.
This has potential to go wrong when used in environments that may be bootstrapping other things in userdata and given that this example is used in a CFN script that also creates the ECS Cluster (e.g. the name's already known), this should be passed as an environment variable to the lambda function.

The original bug report text in this issue is what I submitted to AWS support on 2018-02-26. Here is a pull request that addresses all of these issues: https://github.com/aws-samples/ecs-cid-sample/pull/23/files. The Lambda function in my new version is now small enough that I'm including it inline within the CloudFormation template so that there are no separate ZIP files to upload.
Brian


Feature Request: Add support for downloading build tools like rcedit

Looking into exporting with Godot and it seems there's a decent amount of manual steps and environment-specific programs involved. The most notable of these that comes to mind is needing rcedit to fully modify Windows exports - which needs to be run on wine if exporting projects on a Mac or Linux. For basically required path in in Editor Settings > Export, it feels like there's no tooling available to set this up quickly on any environment.
I think it would be a great if GodotEnv support downloading/linking to these dependencies.
How it could work:

Creates a bin/ folder inside of the project root
Downloads build tools based on platform and export presets
Saves build tools to a global cache, like the rest of GodotEnv
Create symlinks in bin/ that point to the build tools in the global cache
Stretch Goal: Configures the editor settings to point at the executables in bin/

How the command could look:
# Installs all necessary build tools as listed above
godotenv build-tools install

How the files could be structured:
bin/
  rcedit/.          (symlinked build tool)
    rcedit.exe
  wine/             (symlinked build tool)
    wine.dmg
    other-files.txt
addons/
  .editorconfig
  example-addon/    (symlinked addon)
    plugin.cfg
    other-files.txt

I've also opened a Godot feature proposal for this. Feel free to provide any feedback to it if you think it'd help discussion around it. There's potentially a case for this funtionality to just be built into the engine like it is for Export Templates and FBX2GLTF.
That said, I think it might still be valuable if GodotEnv managed it as well, but open to hearing thoughts on what this looks like in a perfect world.


Building in Docker container?

I'm at this step: https://github.com/cfenollosa/os-tutorial/tree/master/13-kernel-barebones
And I'm building in a Docker container, and I continually see the error that it cannot find the hard disk, but then is using floppy? I haven't a clue how to debug or investigate this - would there be a difference doing this in a container than locally? Please help.

I haven't tested using Docker, but it should be the same. I'm assuming that you see the error from qemu? What exactly is the command that you used with qemu?

Thank you so much for trying to help! First, I need to use -curses because without, there isn't a video device:
root@b2053c241ecb:/rootfs/boot# qemu-system-i386 /rootfs/boot/os-image.bin
WARNING: Image format was not specified for '/rootfs/boot/os-image.bin' and probing guessed raw.
         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
         Specify the 'raw' format explicitly to remove the restrictions.
Could not initialize SDL(No available video device) - exiting

So we add -curses! And the result is here:

This seems to work to load from disk, but there is some (unknown) error, and I don't have the skillset developed to debug what that means, specifically this part:
Disk read error
0x0C80

Maybe this is the issue and a good starting point to debug? As was suggested here I decided to add -fda:
to the command:
qemu-system-i386 -fda /rootfs/boot/os-image.bin -curses

I get

I get an error that it cannot read the disk, but on the other hand I see an "X" in the top left... so maybe this is working? I'm not really sure what is going on, because the result in each case doesn't match what the post is saying it should, this:
"Started in 16-bit Real Mode"
"Loading kernel into memory"
(Top left) "Landed in 32-bit Protected Mode"
(Top left, overwriting previous message) "X"

Hey; I had luck running my OS in docker with:

qemu-system-i386 -blockdev driver=file,node-name=f0,filename=$< -device floppy,drive=f0 -curses

Steps + GIFs attached:
https://github.com/AlanFoster/os_concepts/tree/d1c34e5009f459b57afa25df06535251c2bbaa09#using-docker


Added code to create ilibmanifest.json file

webOS needs ilibmanifest.json file no to load unnecessary locale directories.
I've added code to create that file. In order to work properly, Additional property in project.json needs below. something like:
"manifest": {
    "dir": "resourcesTest",
    "name": "ilibmanifest.json"
},

not sure if it's appropriate to write in Project.js

I deleted codes that generate a manifest file. Instead, it is implemented here. https://github.com/iLib-js/ilib-loctool-webos-json-resource/pull/3  Please review it.


Stat Variable Taxonomy

Hi I was wondering if its possible to get the stat var taxonomy like shown in the table here: https://www.datacommons.org/tools/statvar
Sorry if this is not the place/basic question.

Hi @dspoka -- the information on that page is constructed by a combination of our public APIs.  For examples:

Geting all triples in a stat var
Summary info about a stat var (this API is not documented yet)

I'm curious to know more about what you're trying to do?

Is there a place to get all statVars such that I can then choose which ones to get the summary info on?
Im working climate science information extraction and was interested in the types of stat variables you have codified.

You could get a list of all StatVars from this schema repo.
For instance, with something like awk '{ if ($1=="Node:") { gsub(/dcid:/, "", $2); print $2; } }' stat_vars/*.mcf, or by using the MCF parser.

Using parser and your one liner both work. Thanks!


Add ShuffleStage HLG Layer

Depends on #6510
Implements ShuffleStage - A simple HighLevelGraph (HLG) Layer for a single stage of a task-based shuffle in dask.dataframe.  To enable culling (without the need to materialize the full graph), the shuffling algorithm was revised to only include tasks that are needed to produce a specific set of output keys.
TODO:

[x] Validate behavior and add tests
[x] Benchmark the new approach

cc @madsbk @quasiben @mrocklin

Update:  I added a simple test and did some simple benchmarking.  Overall, performance is looking good:
from dask.datasets import timeseries
from dask.dataframe.optimize import optimize
from dask.dataframe.shuffle import shuffle

ddf_d = timeseries(start='2000-01-01', end='2015-01-01', partition_freq='1d')
%timeit shuffle(ddf_d, "id", shuffle="tasks")

The shuffle API call is now very fast, because we are not actually constructing the graph yet...
New: 8.25 ms ± 15.1 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Old: 414 ms ± 3.07 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
dict_size = len(dict(shuffle(ddf_d, "id", shuffle="tasks").dask))
dict_size

The initial (pre-culling) graph size is now a bit smaller (when the graph is materialized), because the new algorithm is slightly more efficient...
OLD: 367063
NEW: 355399
ddf = shuffle(ddf_d, "id", shuffle="tasks")
keys = [(ddf._name, i) for i in range(ddf.npartitions)]
%timeit optimize(ddf.dask, keys)

The optimization pass is now significantly faster...
OLD: 6.75 s ± 21.8 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
NEW: 2.72 s ± 30.5 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
Note that the filal (culled) graph is also a bit smaller than before (348692 vs 354524).

cc @madsbk (Thanks for laying out all the HLG/Layer groundwork :) - It would be good to get your eyes on this)

@TomAugspurger, do you have any thoughts on this? 🙂

Thanks for the review @mrocklin ! Hopefully I addressed your comments.

Note that we're caching things, so the timeit call here may not be representative

Good point - I updated the "benchmark" results above.  We still get a nice performance bump (albeit a slightly smaller one).

Update:  I realized this morning that this PR was leaving out the common case of the "simple" shuffle (where the number of output partitions is less than max_branch).  I revised the class structure to include both a SimpleShuffleLayer and a shuffleLayer (which inherits from SimpleShuffleLayer).

@jrbourbeau I'd like to put this on your queue as well

Thanks for your help @jrbourbeau !
Sounds good.  My only thought: I'm not sure I understand the purpose of f5dfd60, since we will no longer catch the case that the ShuffleLayer layers are missing.

The
    assert any(
        isinstance(layer, dd.shuffle.ShuffleLayer) for layer in dsk.layers.values()
    )

check should ensure that ShuffleLayer layers aren't missing

Ah - sorry!  I was looking at the wrong change and didn't see that.  In that case, I don't think the assert name.startswith("shuffle-") check is really necessary (since we "could" use a different name), but it doesn't doesn't... So, I think we are good.  Thanks again!


Kuzbo 129 login

Implemented Login with cookie
Wrote unit tests

TODO:
Write e2e tests
Implement material design when the global-layout branch is finished

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

Merging [#9][cc-pull] into [develop][cc-base-branch] will not change coverage

@@            develop         #9   diff @@
==========================================
  Files            13         13
  Lines            85         85
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits             81         81
  Misses            4          4
  Partials          0          0

Powered by Codecov. Last updated by [2f4456b...7e10c73][cc-compare]
[cc-base-branch]: https://codecov.io/gh/kuzzleio/kuzzle-backoffice/branch/develop?src=pr
[cc-compare]: https://codecov.io/gh/kuzzleio/kuzzle-backoffice/compare/2f4456bc1a13357f0b5fd895308d0715df4adc52...7e10c73529cdcedf296ebd00ebcfe7cffdc21db1?src=pr
[cc-pull]: https://codecov.io/gh/kuzzleio/kuzzle-backoffice/pull/9?src=pr


Turn gcNet into drNet

Closing this PR because of importing other users' commits here.
PR 4260 created instead.


How do I catch OOM exceptions

When I execute such a script
let a = [... new Array<PHONE_NUMBER>). keys()];

The v8 engine seems to have experienced an OOM, but Javet did not throw a JavetOOM exception, but directly caused the Java process to crash. How do I capture the OOM information of the v8 engine and keep the Java process running

Thank you for reporting this issue. It is not recommended to do that in Javet because there is no sparse array in Java so that Javet directly maps JS array to Java ArrayList.
Regarding the V8 running out of memory, I think capturing that event is not implemented yet. I'll fix it later.

By the way, I tried that in Node.js. Node.js crashes as well. It doesn't even have enough time printing the whole call stack before being killed.

Thank you for reporting this issue. It is not recommended to do that in Javet because there is no sparse array in Java so that Javet directly maps JS array to Java ArrayList.
Regarding the V8 running out of memory, I think capturing that event is not implemented yet. I'll fix it later.

I will try to avoid using such syntax, but since our platform is user-facing, we cannot perfectly control user input, so we need to address this issue.

I will try to avoid using such syntax, but since our platform is user-facing, we cannot perfectly control user input, so we need to address this issue.

Agree. Anything that results in coredump needs to be addressed and fixed. Please be aware that it might take a long time as the nature of the tech challenge.

I spent a few hours analyzing the source code of Node.js and V8. Unfortunately, OS.Abort() is hardcoded in V8 after OOM. If you try the same in Chrome console, that Chrome process crashes as well.
There's no way of turning it off unless there is a patch to V8 at source code level. Patching V8 is not one of the goals in Javet. If you really need to take complete control after OOM, a private build will be the solution. Please let me know if you have any questions.

I collect all the created V8 engines, and check them with a timer task every 100ms. If their memory usage exceeds the threshold I've set, I use the 'terminateExecution' method to stop execution. This successfully prevents process crashes.

I collect all the created V8 engines, and check them with a timer task every 100ms. If their memory usage exceeds the threshold I've set, I use the 'terminateExecution' method to stop execution. This successfully prevents process crashes.

That sounds like a good feature because JavetEngineGuard is the one babysitting the JavetEngine. I think that could justify as a feature request. What do you think?

I collect all the created V8 engines, and check them with a timer task every 100ms. If their memory usage exceeds the threshold I've set, I use the 'terminateExecution' method to stop execution. This successfully prevents process crashes.

That sounds like a good feature because JavetEngineGuard is the one babysitting the JavetEngine. I think that could justify as a feature request. What do you think?

I think this is a good idea. Currently, JavetEngineGuard can only limit the execution time of the engine. More resource limitations could be added, such as memory, CPU usage, etc.

I think this is a good idea. Currently, JavetEngineGuard can only limit the execution time of the engine. More resource limitations could be added, such as memory, CPU usage, etc.

Sounds good.

I collect all the created V8 engines, and check them with a timer task every 100ms. If their memory usage exceeds the threshold I've set, I use the 'terminateExecution' method to stop execution. This successfully prevents process crashes.

Unfortunately, when I fetch the memory information of V8Runtime at a high frequency, if the V8Runtime is already closed, a coredump will occur. However, during the monitoring process, there is always a time difference between checking whether the engine is closed and fetching memory information. I am using version 1.1.0 of Javet. I wonder if higher versions have fixed this issue?

Yesterday I published Break Serverless in Node.js Easily in which I mentioned:

The higher frequency it profiles with, the more CPU cycles does it require, the less crash will happen.

This is not a permanent solution.
I think the right solution would be proactively validating the array length while expanding the array. That would require a code change to V8 and I guess that would come with a considerable performance overhead because the validation could happen per push().

I wonder if higher versions have fixed this issue?

No, that hasn't been changed.


Using with VSCode online

I am getting Cannot install 'vscode-icons' extension since it cannot be enabled in the remote server. when trying to install the extension using VSCode online (online.visualstudio.com)  running self-hosted environment on macOS (Catalina). VSCode version is 1.43. Extension version 10.0.0.

This extension is a UI extension and can not be installed on a remote server.

I know. I didn’t try to install it on the backend. I wanted to have icons on the frontend off online vacode. Material theme icons extension worked fine.

According to https://github.com/microsoft/vscode-docs/blob/master/api/advanced-topics/remote-extensions.md#architecture-and-extension-kinds UI extensions can not be run on remote. Material themes is declared also as workspace as shown here
(https://github.com/PKief/vscode-material-icon-theme/blob/master/package.json#L35) and that's why you can use it.

When using cdr/code-server, these icons can not be installed, even though the UI is running off the remote server.
I think it's worth considering if this extension should change to support new emerging non-local environments such as code-server.

I was looking into this again and reading the docs (https://code.visualstudio.com/api/advanced-topics/remote-extensions#incorrect-execution-location bottom section)
Why not try
    "remote.extensionKind": {
        "vscode-icons-team.vscode-icons": "workspace"
    }

and sse what's cooking.
And maybe #2199 is tied to this too.

@dbogatov Have you tried my suggestion. On WSL it seems to work.


fix(tools): windows compatibility

What I did

Added fixes to resolve Windows OS compatibility issues.

Testing Instructions

The code should run in all three OS( Windows, Linux, Mac).

Notes to Reviewers

Please run this code on local and check if its working.

Legacy Thinking Made Great!
Well done, @Arathy-s

Thank you so much for the support @bennypowers!!!


Updated RFC3339 format string

NSDateFormatter supports the new 'ZZZZZ' pattern, and that's Apple's recommended pattern for parsing RFC3339.
https://developer.apple.com/reference/foundation/nsdateformatter

Parsing was failing for strings like this that I believe should be RFC3339 compatible: "2016-11-29T21:23:37+00:00".  The new formatter string succeeds for these.


Error: image oracle/serverjre:8 not found

Hi
When I run the sh buildOdkcerImage.sh -d, it starts to install fmw_<IP_ADDRESS>.0_wls_quick_Disk1_1of1.zip with SUCCESS. But whe it sends build context to Docker daemon it returns:
Step 1 : FROM oracle/serverjre:8
Pulling repository docker.io/oracle/serverjre
Error: image oracle/serverjre:8 not found
There was an error building the image.
I googled it and some foruns say the pulling URL (docker.io/oracle/serverjre) has changed. Where do I change this in the sh?

This is correct way to get serverjre image. Just make sure you login into oracle and accept agreement.


[BugFix] Lambda wrapped backward definition can't return more than one gradient. (i.e.: define-static-node)

(TODO)

Solved at #32


Distribute Betty Edwards slide content

Across multiple slides, different frags, split slides...

Book titles/covers, lef/right brain diagrams, red/blue/gray-color/themeize(?)

Yes, I like the idea of doing left brain right brain slides that correspond to the five stages of creativity. I thinned out her talk and have taken most of your recent suggestions, though I appreciated receiving all of them!
We could frag some book covers. That goes for any book in the talk, but we don't have to do every book. I guess its okay to show a book cover? never thought about that before regarding copyright. Hmmm.
Okay, after researching seems pubishers let you use covers for review, which is what I'm doing. Cool!


Search Regeneration

Regeneration for Search with new Autorest specs.
Specs utilized:
searchindex.json
searchservice.json
Files that needed manual adjustments:
SearchClient.java

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-search-documents

@alzimmermsft Thank you, I'll address your comments and also add some additional testing.


Enter Key stops working in editor when editing Markdown file

Type: Bug
When typing in a markdown file, even on the very fist line, the Enter Key WILL NOT open a new line.  For example:, I create a new markdown file and begin typing...
# My Title
after typing the "e" in "Title", I press the Enter key , it can be the one on the primary keyboard or on the the number pad. NEITHER of them drop the cursor to the next line.
This has been been reported before, at least once and as I am not a collaborator it will not let me coment on that issue post.
Please see: https://github.com/microsoft/vscode/issues/66611
Also, this has happend before, but was fixed with subsequent VSCode updates.
As for workarounds, you can reload VSCode or you can open the Settings to make the behavior go away, and make the Enter Key immediately start working again.
There are no steps to reproduce this bug, because it randomly occurs.
I have not installed any new extensions recently, and disabling all extensions did not fix the issue.
Also I have reviewed my Keyboard Shortcuts and there are only System Sources assigned to every Keybinding with just "Enter" I can post a screenshot if needed.
 It looks like you may be using an old version of VS Code, the latest stable release is 1.79.0. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

I finally was able to find the solution to this.  I actually found another post talking about 'automaticList ' which was supposed to be removed when I removed "docs-markdown", but wasn't. Its actually in a different extension than reported before. While the older post reports "docs-markdown" as the culprit, it is actually called "Learn Markdown" now. I ended up following the original posters advice and changed its key binding to "CTRL+A+ENTER".