Error executing commands in console

When executing plugin commands in console, shows an error https://pastebin.com/zh7ZGKNt https://pastebin.com/L1Cn9g5h. It would be nice that instead of showing the error, it would show a message like: "You cannot execute the command from the console" or similar.

Correction... I just connect from a client to test that the commands work correctly (I have been testing everything from the console), I get the same error when trying to execute the command, in the client nothing comes out, in the console the same error comes out.

I've fixed this locally. I will test all the features of the plugin before releasing the next release. Sorry for the low-quality fixes recently, I haven't had a lot of time.


Blank screen displayed when user taps on “Earn Rewards” option from Hamburger Menu

Frequency: 100%
Repro on build version: Android Internal Build V1.9.0(1004294331), Test Flight Build V1.9.0(41)
Repro on devices: Samsung Galaxy A5(7.0), iPhone 6+(12.4.5), Google Pixel XL (8.1), iPhone SE 2(14.3)
Testing Account:<PHONE_NUMBER> / Backup Key
Repro Steps:

Launch the application & login with a test account.
Tap on Hamburger Menu.
Tap on the “Earn Rewards” option near the user profile picture.
Current Behavior:  Blank screen displayed when the user taps on it.
Expected Behavior:  Related Earn Rewards details screen should be displayed when user taps on it.
Impact: User not able to proceed to Earn Rewards.
Attachment: BlankScreenWhenUserTapsOnEarnRewards.mp4

This was because the mainnet server didn't have the texts loaded. The screen should show properly now.

This was because the mainnet server didn't have the texts loaded. The screen should show properly now.

Hey @gnardini I have verified this issue using Android Internal Build V1.9.0(1004294331) & Test Flight Build V1.9.0(41) & observed that issue is fixed now & user able to redirect to  "CELO Earn Rewards program" screen.
Verified on Devices: Samsung Galaxy A5(7.0), iPhone XR(13.1.3)

Hey @gnardini I have verified this issue using Android Internal Build V1.9.0(1004294331) & Test Flight Build V1.9.0(41) & observed that issue is fixed now & user able to redirect to  "CELO Earn Rewards program" screen.
Verified on Devices: Samsung Galaxy A5(7.0), iPhone XR(13.1.3)


Added EMPD2 samples contributed by Klemm

Hi! I'm your friendly automated EMPD-admin bot!
Thank you very much for your data submission! I will now run some tests on your data.
In the meantime: please review your test data on the EMPD viewer using
this link: https://EMPD2.github.io/?repo=EMPD2/EMPD-data&branch=Klemm&meta=Klemm.tsv
This bot is helping you merging your data. I am checking for common issues and I can fix your climate, country or elevation data.
Type @EMPD-admin help in a new comment in this PR for usage information.
Make sure, that all the commands for the @EMPD-admin are on one single line and nothing else. Only
@EMPD-admin help
will work, not something like
<other words> @EMPD-admin help
or
@EMPD-admin help <other words>
Note that you can also run these tests on your local machine with
pytest.

Hi! I'm your friendly automated EMPD-admin bot!
I found some errors in your data submission. You may fix some of them using the @EMPD-admin fix command.
Please ping @Chilipp if you have difficulties with your submission.
Critical tests..PASSED
Full test report
============================= test session starts ==============================
platform linux -- Python 3.7.2, pytest-4.3.1, py-1.8.0, pluggy-0.9.0
rootdir: /opt/conda/lib/python3.7/site-packages/empd_admin/data/tests, inifile: pytest.ini
collected 37 items / 34 deselected / 3 selected
/opt/conda/lib/python3.7/site-packages/empd_admin/data/tests/test_critical.py ...
=============================== warnings summary ===============================
opt/test-env/lib/python3.7/site-packages/socks.py:58
/opt/test-env/lib/python3.7/site-packages/socks.py:58: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
from collections import Callable
-- Docs: https://docs.pytest.org/en/latest/warnings.html
============= 3 passed, 34 deselected, 1 warnings in 5.33 seconds ==============

Formatting tests..PASSED
Full test report
============================= test session starts ==============================
platform linux -- Python 3.7.2, pytest-4.3.1, py-1.8.0, pluggy-0.9.0
rootdir: /opt/conda/lib/python3.7/site-packages/empd_admin/data/tests, inifile: pytest.ini
collected 7 items
/opt/conda/lib/python3.7/site-packages/empd_admin/data/tests/test_formatting.py ......s
=============================== warnings summary ===============================
test_formatting.py::test_trailing_spaces
test_formatting.py::test_trailing_spaces
/opt/test-env/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject
return f(*args, **kwds)
-- Docs: https://docs.pytest.org/en/latest/warnings.html
=============== 6 passed, 1 skipped, 2 warnings in 2.17 seconds ================

Metadata tests..FAILED
test_meta.py::test_country..FAILED

error
E   AssertionError: Found 2 invalid Countries: Klemm_a82, Klemm_a106
    assert not 2
     +  where 2 = len(           OriginalSampleName      SiteName  ...      empd_countries  Country_ok\nSampleName                           ...ion       False\nKlemm_a106           08-KO-27  Kolyma River  ...  Russian Federation       False\n\n[2 rows x 76 columns])

2 failed samples

Country
nat_earth
empd_countries
okexcept(Country)
Country_ok

Klemm_a82
Russian Federation

Russian Federation
False
False

Klemm_a106
Russian Federation

Russian Federation
False
False

Displaying 2 of 2 samples

test_meta.py::test_temperature..FAILED

error
E   AssertionError: Found 1 invalid values for Temperature: Klemm_a106
    assert not 1
     +  where 1 = len(           OriginalSampleName      SiteName  ... Temperature_nvals  Temperature_ok\nSampleName                         ...             \nKlemm_a106           08-KO-27  Kolyma River  ...              True           False\n\n[1 rows x 75 columns])

1 failed samples

Temperature
okexcept(Temperature)
Temperature_nvals
Temperature_ok

Klemm_a106
nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan
False
True
False

Displaying 1 of 1 samples

test_meta.py::test_precip..FAILED

error
E   AssertionError: Found 1 invalid values for Precipitation: Klemm_a106
    assert not 1
     +  where 1 = len(           OriginalSampleName  ... Precipitation_ok\nSampleName                     ...                 \nKlemm_a106           08-KO-27  ...            False\n\n[1 rows x 75 columns])

1 failed samples

Precipitation
okexcept(Precipitation)
Precipitation_nvals
Precipitation_ok

Klemm_a106
nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan
False
True
False

Displaying 1 of 1 samples

Full test report
============================= test session starts ==============================
platform linux -- Python 3.7.2, pytest-4.3.1, py-1.8.0, pluggy-0.9.0
rootdir: /opt/conda/lib/python3.7/site-packages/empd_admin/data/tests, inifile: pytest.ini
collected 20 items
/opt/conda/lib/python3.7/site-packages/empd_admin/data/tests/test_meta.py ..F..........FF.....
=================================== FAILURES ===================================
/opt/conda/lib/python3.7/site-packages/empd_admin/data/tests/test_meta.py:80: AssertionError: Found 2 invalid Countries: Klemm_a82, Klemm_a106
/opt/conda/lib/python3.7/site-packages/empd_admin/data/tests/test_meta.py:273: AssertionError: Found 1 invalid values for Temperature: Klemm_a106
/opt/conda/lib/python3.7/site-packages/empd_admin/data/tests/test_meta.py:301: AssertionError: Found 1 invalid values for Precipitation: Klemm_a106
=============================== warnings summary ===============================
test_meta.py::test_meta_exists
test_meta.py::test_meta_exists
/opt/test-env/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject
return f(*args, **kwds)
-- Docs: https://docs.pytest.org/en/latest/warnings.html
=============== 3 failed, 17 passed, 2 warnings in 17.05 seconds ===============

@EMPD-admin accept Klemm_a82:Country Klemm_a106:Country Klemm_a106:Temperature Klemm_a106:Precipitation

@EMPD-admin test

Hi! I'm your friendly automated EMPD-admin bot!
I processed your command and hope that I can help you!

test

All tests passed!

@EMPD-admin finish --commit

Hi! I'm your friendly automated EMPD-admin bot!
I processed your command and hope that I can help you!

finish --commit

Finished the PR!
You may want to have a final look into the viewer (https://EMPD2.github.io/?repo=EMPD2/EMPD-data&branch=Klemm) and then merge it.


Suggestion - Faker method to randomly execute

I'm using Faker with Laravel to populate a field that 70% of the time should have a random date, and the rest of the time it should be null. Here's how I do it now:
// 70% of the time set a date, otherwise it's null
'LastNudgeEmail' => (mt_rand(1, 10) > 3) ? $faker->dateTimeBetween("now", "+1 month") : null

I was thinking that it'd be cool if Faker had a new chainable method that would only pass along the chain if a % threshold was met; if it didn't pass, Faker would just return the value specified in the method call. So the above code could become a little more elegant and readable:
// 70% of the time set a date, otherwise it's null
'LastNudgeEmail' => $faker->chanceOfPassing(70, null)->dateTimeBetween("now", "+1 month")

(There's probably even a more elegant name/way to set up the method and its parameters... but you get the drift...)

Maybe the optional() modifier?
'LastNudgeEmail' => $faker->optional(70)->dateTimeBetween('now', '+1 month')

Source code for optional()


npm badge + install step

Easily locate qr-image in the npm listing, plus an installation step.
Before

After

Thank you for merging it in.

Thanks for PR
On Wednesday, May 6, 2015, Emmanuel Odeke<EMAIL_ADDRESS>wrote:

Thank you for merging it in.
—
Reply to this email directly or view it on GitHub
https://github.com/alexeyten/qr-image/pull/23#issuecomment-99520813.

--
Алексей


Subtitles do not work on OSMC

I have a hard time getting subtitles to work in Pulsar. I'm using the opensubtitles service and it is working fine within other video add ons, but it does not seem to be working within Pulsar.
Log file
Everything else about Pulsar is amazing, and I'm really hoping that this can be fixed/solved. If that can be done, I would finally have a service that could stream HD, find subtitles and scrobble my movies and tv shows to Trakt.

Hi, I can see you closed this issue.
Did you solve it? I am having exactly this issue

Same issue. This should be re-opened.


How to pull images / create container from repo image ?

I may not to see the wood for the trees, but i cant find the option to pull a remote image, nor to run a container from a remote image.
So, how to use dockerui in order to do the equivalent of the most basic docker task: docker run -d tutum/nginx ?
Does dockerui only work with local images?

Correct, DockerUI only works with local images right now. Why? Docker's streaming JSON format, namely returning multiple top-level JSON objects, doesn't play well with libs like OboeJS.

I see, thanks for clearing this up as this limitation was really not obvious at all from the documentation.
Hope you find the time to add this sometime soon! :-)

Performed a workaround for this. I combined the top-level json objects to an array. If the last object contains an error description, pull is considered to have failed, otherwise to have succeeded. Details in the PR.

Sorry this took so long, merged in #125


Tests/master/cloud 224 route53 modify paramaters

This PR contains one pending test blocked by the bug CLOUD-230

Closing in favour of #83, which has the same commits with a few minor fixes.


Line height in EMs

We're having some problems with this library when using text that is all in uppercase, letters which uses non-English characters (e.g.: À, A, Â, Ä, etc.). Can we measure line height in EMs instead of the actual height - and then use lineSpacing when needed?

That's a good idea!
Since drawing needs to calculate the distance from the baseline, the options will require acsent and desent instead of lineHeight.


Unknown CMake command "rclcpp_register_node_plugins"

Unknown CMake command "rclcpp_register_node_plugins"

Hi @AbeLiuXL
You are trying to compile the master branch with a ROS2 release that is not Crystal.
We are working on a new release of the wrapper for ROS2 Eloquent. You can test it in the eloquent branch, but it is not yet completed and it is changing daily.

Fixed with Eloquent release


Redefining irregular axis loses coordinate storage

Reported by hankin on 11 Sep 2000 23:54 UTC
How hard would it be to avoid (or reduce) the loss of storage when the new axis
is the same length or less than the previous?
yes? define axis/x xax=EXP(I[define axis/x xax=EXP(Ii=1:10
yes?)*2)
Replacing definition of axis XAX
*** NOTE:     10 words of axis coordinate storage lost
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/136

Comment by ansley.b.manke on 11 Jan 2010 19:00 UTC
Fixed previously in purge_mr_axis.F. We call remove_axis to recover axis storage when re-defining axes.


Reduce possibility that portal can be deployed to production without matching gateways and clients

The issue in #3896 was that the portal was hotfixed containing a breaking Control Plane API change without publishing matching gateways/clients.
This issue seeks to investigate ways we prevent that going forward.
Some preliminary ideas:

Remove ability to hotfix (at least easily, or show more warnings), requiring always publishing matching data plane components in a release
Add a CI check to prevent portal hotfixes if rust/, swift/, or kotlin/ (etc) has also changed between last release and now

Fixed in #4049


Support compressed storage of document vectors

After indexing compress document vectors so they can be written out in a compressed binary format.
Delta encode and variable byte sparse vectors.
Use https://github.com/lemire/FastPFOR.

Ping me if you want to discuss it further.


Bratseth/schema info take 2

looks good to me, @baldersheim should check the streaming cluster logic


Switch Tenants when using an account that has access to multiple tenants

I am a support professional that has minimal to no rights in my default organisation tenant, however the organisational account in my home tenant is a guest account in multple Azure Tenants (that I have been delegated permissions in) that I can support. I would like to know if it is possible to configure CCO Insights to target alternative tenants than my default organisational tenant acquired through providing my logon credentials.

I have the same question, is it possible to add the ability to select a tenant for control panels and infrastructure?
Even if you specify the desired tenant when connecting to the infrastructure control panel, the information is still displayed for the tenant in which the account was created.
If this is already implemented, then there are not enough step-by-step instructions. Thank you!

Hi,
This is something that is already implemented, If you have the correct rights on multiple tenants you'll see all the resources:

You need to follow this procedure:
https://learn.microsoft.com/en-us/azure/lighthouse/how-to/onboard-customer
And after that add a filter in the dashboard with the tenant display name

HI,  Thanks for the answer.  My point is I do not want the tool to try and even gatehr any infomration on my Default tenant as I do not want any information related to my deafult tenant (to which I will have little access) included in the PowerBI data provided and discussed with the organisation whose AAD I am assisting them with (it is useful to understand I have a guest account in many Teannts).  I am needing a method of ensuring the tool set only collects data from a defined specific tenant. Thanks.

Something like this was done in the past for a customer, so you can create a new table with all the SubscriptionIds of the subscriptions from where you want to retrieve data and replace the existing "All Subscriptions" table. If you have the correct rights, you'll not have problems retrieving the data.
As you can see, the API calls are using the SubscriptionIds:
   GetPages(GetManagementURL(AzureKind)&"/subscriptions/"&SubscriptionId&"/resources?api-version=2021-04-01"),

Thanks for the information, however I am not a PowerBI developer or regular user of PowerBI, and I am also new to CCO Insights.  To be honest I really more interested in the data the tool set gathers rather than how the data is gathered.  Is there a step by step guide on how to achieve this. Thanks (and apologies for being a bit thick).


Compilation error (undefined symbols) when linking on iOS

Instructions to reproduce the problem:

The code or full code changes that exhibit the problem:

I followed building instructions and tested on included demo apps. The only app I'm able to compile and deploy is application_ocean_demo_base_console_ios. test targets also works. However all targets with gui having the same undefined symbols compilation error. Testing environment:
iphone 13 mini, iOS 17.4.1
macos sonoma 14.6.1 (macbook pro m2 max)
xcode 15.4
tested on both ocean 1.0.0 and 1.0.1
cmake version 3.30.3

Full logs or other relevant observations:

application_ocean_demo_tracking_pointtracker_ios
Undefined symbol: _hb_blob_create

Undefined symbol: _hb_blob_destroy

Undefined symbol: _hb_buffer_add_utf8

Undefined symbol: _hb_buffer_clear_contents

Undefined symbol: _hb_buffer_create

Undefined symbol: _hb_buffer_destroy

Undefined symbol: _hb_buffer_get_glyph_infos

Undefined symbol: _hb_buffer_get_glyph_positions

Undefined symbol: _hb_buffer_get_length

Undefined symbol: _hb_buffer_guess_segment_properties

Undefined symbol: _hb_face_create

Undefined symbol: _hb_face_create_for_tables

Undefined symbol: _hb_face_destroy

Undefined symbol: _hb_face_set_index

Undefined symbol: _hb_face_set_upem

Undefined symbol: _hb_font_create

Undefined symbol: _hb_font_destroy

Undefined symbol: _hb_font_get_face

Undefined symbol: _hb_font_set_scale

Undefined symbol: _hb_ot_layout_collect_lookups

Undefined symbol: _hb_ot_layout_lookup_collect_glyphs

Undefined symbol: _hb_ot_layout_lookup_would_substitute

Undefined symbol: _hb_ot_tags_from_script_and_language

Undefined symbol: _hb_set_create

Undefined symbol: _hb_set_destroy

Undefined symbol: _hb_set_is_empty

Undefined symbol: _hb_set_next

Undefined symbol: _hb_set_subtract

Undefined symbol: _hb_shape

Linker command failed with exit code 1 (use -v to see invocation)

Looks like it can't find the library of harfbuzz. I would suggest to verify the following:

make sure to build and install all required third-party libs, cf. https://github.com/facebookresearch/ocean/blob/main/building_for_ios.md#2-building-the-third-party-libraries
make sure the CMake is using the right paths to those libraries.

Hi, @pzoltowski.
Are you still having this issue?
I have been unable to repro this.
I believe there was a change back in July that removed dependency on Harfbuzz.
Is it possible that build artifacts left over from a build initiated on a commit from before that removal is causing issues?  Was clean build also failing?

I didn't retry but will have a look at it again tomorrow (together with compiling on MacOS for comparison) and will report back if still having issue

Closing for now. Please re-open if the problem persists.

I tried again, cloned master, switched to v1.0.1 tag, followed build for iOS doc (without changing even build path) and this time having build error when trying to build demo iOS projects:
CMake Error at /opt/homebrew/Cellar/cmake/3.30.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
  Could NOT find Freetype (missing: FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS)
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:603 (_FPHSA_FAILURE_MESSAGE)
  /opt/homebrew/Cellar/cmake/3.30.3/share/cmake/Modules/FindFreetype.cmake:165 (find_package_handle_standard_args)
  impl/ocean/cv/fonts/CMakeLists.txt:12 (find_package)

It seems for some reason build trying to pick freetype lib from my homebrew. Noticed also  harfbuzz is a dependency of harfbuzz. Attaching logs from from both build scripts (for both build_thirdparty_ios and build_ocean_ios_release).
One CAVEAT - this time I'm using latest Xcode 16.0 RC released 2 days ago.
log_build_ocean_ios_release.txt
log_build_thirdparty_ios.txt

Thanks for sharing the logs. From glimpsing over them, one thing that I noticed is that the installation directory for the third-party libs in log_build_thirdparty_ios.txt is
-i "${HOME}/install_ocean_thirdparty"

while the path specified in log_build_ocean_ios_release.txt is
-DCMAKE_INSTALL_PREFIX="${OCEAN_DEVELOPMENT_PATH}/install_ocean_thirdparty/ios_OS64_static_Release" \

Can you double-check your paths and retry to generate the XCode project?

I also have the same problem when I try to build for ios.
`application_ocean_shark_ios
Undefined symbol: _hb_blob_create
Undefined symbol: _hb_blob_destroy
Undefined symbol: _hb_buffer_add_utf8
Undefined symbol: _hb_buffer_clear_contents
Undefined symbol: _hb_buffer_create
Undefined symbol: _hb_buffer_destroy
Undefined symbol: _hb_buffer_get_glyph_infos
Undefined symbol: _hb_buffer_get_glyph_positions
Undefined symbol: _hb_buffer_get_length
Undefined symbol: _hb_buffer_guess_segment_properties
Undefined symbol: _hb_face_create
Undefined symbol: _hb_face_create_for_tables
Undefined symbol: _hb_face_destroy
Undefined symbol: _hb_face_set_index
Undefined symbol: _hb_face_set_upem
Undefined symbol: _hb_font_create
Undefined symbol: _hb_font_destroy
Undefined symbol: _hb_font_get_face
Undefined symbol: _hb_font_set_scale
Undefined symbol: _hb_ot_layout_collect_lookups
Undefined symbol: _hb_ot_layout_lookup_collect_glyphs
Undefined symbol: _hb_ot_layout_lookup_would_substitute
Undefined symbol: _hb_ot_tags_from_script_and_language
Undefined symbol: _hb_set_create
Undefined symbol: _hb_set_destroy
Undefined symbol: _hb_set_is_empty
Undefined symbol: _hb_set_next
Undefined symbol: _hb_set_subtract
Undefined symbol: _hb_shape
Linker command failed with exit code 1 (use -v to see invocation)
`

Thanks, I deleted the build and this time managed to generate xcode project but again same underfined symbol errors in xcode as in the beginning I had and exactly same as @t3h32eKK . Attaching new log:
log_build_ocean_ios_release2.txt

We're testing a patch now to disable depending on harfbuzz at all. Assuming it all works out, we can commit later today.

Tested only few demos so far but can confirm that changing:
set(FT_REQUIRE_HARFBUZZ FALSE) to
set(FT_DISABLE_HARFBUZZ TRUE)
and rebuilding everything
seems to resolved the issue. Thanks!


autoValue check on any field problem

This is related to #193 .
I already got it working with this code:
    "domainStats.updatesHistory": {
        type: [Object],
        autoValue: function () {
            var pageRank = this.siblingField("pageRank");
            var domainAuthority = this.siblingField("domainAuthority");
            var pageAuthority = this.siblingField("pageAuthority");
            var majesticTrust = this.siblingField("majesticTrust");
            var majesticCitation = this.siblingField("majesticCitation");
            var mozRank = this.siblingField("mozRank");

            if (pageRank.isSet || domainAuthority.isSet || pageAuthority.isSet
                || majesticTrust.isSet || majesticCitation.isSet || mozRank.isSet) {

                if (this.isInsert) {
                    return [{
                        date: moment().toDate(),
                        pageRank: pageRank.value,
                        domainAuthority: domainAuthority.value,
                        pageAuthority: pageAuthority.value,
                        majesticTrust: majesticTrust.value,
                        majesticCitation: majesticCitation.value,
                        mozRank: mozRank.value
                    }];
                } else {
                    return {
                        $push: {
                            date: moment().toDate(),
                            pageRank: pageRank.value,
                            domainAuthority: domainAuthority.value,
                            pageAuthority: pageAuthority.value,
                            majesticTrust: majesticTrust.value,
                            majesticCitation: majesticCitation.value,
                            mozRank: mozRank.value
                        }
                    };
                }
            } else {
                this.unset();
            }
        },
        autoform: {
            omit: true
        }
    }

But my problem right now is when I edit the form and update another field that is not related to this, it will still run ```updatesHistory autoValue. I think its because isSet`` will check if there is a value right? is there any function that checks if the value has changed?

Same problem, seems that autoValue is running for all docs whenever a single doc is being updated. Let me know if you find a solution.

Is this still a problem and if so, can you elaborate on how to reproduce with insert and update calls (leaving form out of the equation)? All autoValue functions are supposed to run every time you insert or update.

@aldeed I face a similar issue.
My schema has 1 autoValue field ( owner ) , when i insert the data passed from the form doesn't have owner attribute. The check() fails.
If I make sure to pass in the owner field it goes trough.
Home this helps.

I might be misunderstanding but I don't think there's any bug here. autoValue runs every time you clean an object, regardless of whether that property is part of the object/modifier.


New pull request

Thanks you for the quick update !
However, the file is the wrong one
Better to use that one : (the same as in colab)
VTF_properties.json.txt

Thanks you for the quick update ! However, the file is the wrong one
Better to use that one : (the same as in colab) VTF_properties.json.txt

Hello! The colab is calling a .csv file from google drive (not .json.txt). If you think it is better, I can put directly the .csv file on ..smt/tutorial

Hi, I will merge this PR in the end but @raul-rufato you should strive to make meaningful title, description or commit messages. Reading this PR, I am unable to tell anything about its content.

Thanks you for the quick update ! However, the file is the wrong one
Better to use that one : (the same as in colab) VTF_properties.json.txt

Hello! The colab is calling a .csv file from google drive (not .json.txt). If you think it is better, I can put directly the .csv file on ..smt/tutorial

Yes please (I added the .txt at the end but it would be better to use a csv than a json)

Closing as duplicate of #357


Freertos-addons - is contribution welcomed? (IDFGH-6212)

Is your feature request related to a problem? Please describe.
I would like to use michaelbecker's freertos-addon in ESP32 projects
https://github.com/michaelbecker/freertos-addons
Describe the solution you'd like
I would like to try to contribute to esp-idf project "porting" freertos-addon but first I want to ask you if this contribution is welcomed?
Someone already integrated freertos-addon with esp32, but it would be nice to make this module a formal part of esp-idf.
My workflow idea is to:

make a freertos-addon fork and apply minimalistic fixes (mainly fix header include files and extend thread class constructors with CPU core id argument) so you guys can pull this fix into esspressif own repo fork
integrate esp-idf ready examples as part of esp-idf repo pull request

What do you think guys? :) If I get the greenlight we can close this issue.

@dsabala Thanks for the nice suggestion! Have you considered contributing the esp-related patches upstream to freertos-addons? I think an espressif fork of freertos-addons may become outdated/unmaintained. The upstream version can then be packaged as an ESP-IDF component, and published to the IDF component registry (https://components.espressif.com/). We can assist with setting up and automating the part related to the component packaging and publishing.

Have you considered contributing the esp-related patches upstream to freertos-addons? I think an espressif fork of freertos-addons may become outdated/unmaintained.

It could be made as a esp32 branch in freertos addons original repository, right?

The upstream version can then be packaged as an ESP-IDF component, and published to the IDF component registry

Honestly this doesnt seem rewarding - I noticed this repository dont work (click on package results in "fetch error". I guess you are proposing this registry due to limited espressif manpower and certain plans which esp-idf features gain the most attention from core developers. I will probably make standalone esp-idf component on my own. I recognise great chance to learn freertos. Anyway, if I succeed to make this component I will post a link  in this issue ;)


Help publishing results

I don't understand why the readme is so hard to understand. I am not a user of node js, nor npm. Perhpas that is it. However something "theoritically" so simple and I don't get it how the "publisher" of a report to codacy can be so complicated.
I did

Install node-codacy-coverage with npm.
Generate coverage using jtest.
I got the result in lcov.info file in coverage folder
execute CODACY_PROJECT_TOKEN='xxxxxxxxxxxxx'|cat ./coverage/lcov.info | ./node_modules/.bin/codacy-coverage .

the error is
./node_modules/.bin/codacy-coverage: line 1: syntax error near unexpected token newline'
./node_modules/.bin/codacy-coverage: line 1: <!doctype html>'

Hi @yael-lorenzo-olx seems like you followed the right steps.
The problem seems to be that your lcov.info seems to be an HTML file and not a real lcov.
Can  you share the output.

Hi @rtfpessoa, thanks for the quick reply, the content of th lcov.info is
dev@asset482:~/jenkins/workspace/PWA$ cat coverage/lcov.info TN: SF:/home/dev/jenkins/workspace/PWA/Staging/panamera-web/src/app/App.jsx FN:26,_interopRequireDefault FN:33,(anonymous_1) FN:36,(anonymous_2) FN:36,fetchData FN:110,(anonymous_4)
however, I deleted the ./node_modules/.bin/codacy-coverage and I could not re create it.
what am I missing ?

Ok, so I executed this
rm -rf ./node_modules/
then this
npm install codacy-coverage --save
and then
`dev@asset482:~/jenkins/workspace/PWA$ cat ./node_modules/.bin/codacy-coverage
#!/usr/bin/env node
(function (program, logger, util, lib) {
'use strict';
process.stdin.resume();
process.stdin.setEncoding('utf8');
var input = '';
var loggerImpl;

process.stdin.on('data', function (chunk) {
    input += chunk;
    if (loggerImpl) {
        loggerImpl.trace('Got chunk');
    }
});

program
    .version(require('../package').version)
    .usage('[options]')
    .option('-f, --format [value]', 'Coverage input format')
    .option('-t, --token [value]', 'Codacy Project API Token')
    .option('-c, --commit [value]', 'Commit SHA hash')
    .option('-l, --language [value', 'Project Language')
    .option('-e, --endpoint [value]', 'Codacy API Endpoint')
    .option('-p, --prefix [value]', 'Project path prefix')
    .option('-v, --verbose', 'Display verbose output')
    .option('-d, --debug', 'Display debug output')
    .parse(process.argv);

loggerImpl = logger({
    verbose: program.verbose,
    debug: program.debug
});

loggerImpl.info(util.format('Started with: token [%j], commitId [%j], language [%j], endpoint [%j], format [%j], path prefix [%j], verbose [%j], debug [%j]',
    program.token, program.commit, program.language, program.endpoint, program.format, program.prefix, program.verbose, program.debug));

process.stdin.on('end', function () {
    loggerImpl.trace('Received file through stdin');

    if (program.help === true) {
        return;
    }

    return lib.handleInput(input, program).then(function () {
        loggerImpl.debug('Successfully sent coverage');
    }, function (err) {
        loggerImpl.error('Error sending coverage');
        loggerImpl.error(err);
    });
});

}(require('commander'), require('../lib/logger'), require('util'), require('../index')));
thenCODACY_PROJECT_TOKEN='6483049ca61043d691731a3c4d6ce84a' | cat ./coverage/lcov.info | ./node_modules/.bin/codacy-coverage
[error] "2018-02-15T17:57:48.943Z"  'Error sending coverage'
[error] "2018-02-15T17:57:48.945Z"  Error: Token is required`
and finally exporting the token to env and running it again apparently worked from CMD
The result is in CODACY.

I wil try 👍


Problem with rendering the good date while published // Edit: Resolved

I tried with different version of windows server 2016/2012 and different IIS
Calendar initialization :
    var elements = document.querySelectorAll('.birthdate');
    for (var i=0; i < elements.length; ++i) {
      pickmeup(elements[i],  {
        first_day: 0,
        default_date: false,
        hide_on_select: true,
        view: 'years',
        mode: 'single',
        min: new Date(1920,1,1),
        max: new Date(2020,1,1),
        date: new Date(1975,1,1),
        format: 'Y-m-d'
      });
    }

First time i try to pick a date the calendar is in the good year

If i try to change the date this is what i get

With the 2e initialization:
    var elements = document.querySelectorAll('.datepicker');
    for (var i = 0; i < elements.length; ++i) {
      pickmeup(elements[i], {
        first_day: 0,
        default_date: false,
        hide_on_select: true,
        view: 'days',
        mode: 'single',
        format: 'Y-m-d'
      });
    }

First time it's correct

and when i try to change the date,...

I know on my local machine it work perfectly... I can't debug while it published cause the js is minimized. Plz help ! And thank you
EDIT:
I found the problem, cause i use MVC Bundling minimize for script. The problem is when it minify the pickmeup.js...
I just removed the line in my bundle and added the script in the header like the demo.
Now it work!

Glad to know it works for you. If you have any other questions, always create new issue, please.


Reset button resets the current timer

Current behavior: when the reset button is clicked it resets the current timer.
Expected behavior: it resets the rounds.

This is only required to be fixed when there will be stats. For the moment, no need to overcomplicate it.


First draft of chunking spec

@lgrahl can you review?

Just realised, there should probably be a short section with reassembly instructions for unordered/ordered, reliable/unreliable cases.

Not sure if you've been notified by my comments above. I fixed most of them, with 2 open questions.

I have now. Added a few more comments. :)

Are you fine with the wording in 0809013?

If yes, squash-merge :)

Ah, actually wait with merging. I'll add a section about re-assembly.

Done. Sorry for the noise.


Arch Linux: "The SDK 'Microsoft.Net.Sdk' specified could not be found."

Environment data
dotnet --info output:
.NET Core SDK (reflecting any global.json):
 Version:   2.2.102
 Commit:    96ff75a873

Runtime Environment:
 OS Name:     arch
 OS Version:
 OS Platform: Linux
 RID:         arch-x64
 Base Path:   /opt/dotnet/sdk/2.2.102/

Host (useful for support):
  Version: 2.2.1
  Commit:  878dd11e62

.NET Core SDKs installed:
  2.2.102 [/opt/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.NETCore.App 2.2.1 [/opt/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

VS Code version:
1.30.2

C# Extension version:
1.17.1

Steps to reproduce
Create new console project using dotnet new console, open VSCode either via start menu or command line.
Expected  behavior
Projects loads fine
Actual behavior
Omnisharp loads and displays the mentioned issue above.
Workaround
I found at least a workaround to fix this issue when opening VSCode via command line.
Unfortunately I haven't yet found a way to solve it when starting via start menu.
Fix:

add environment variable MSBuildSDKsPath=/opt/dotnet/sdk/2.2.102/Sdks
open project file, replace <Project Sdk="Microsoft.Net.Sdk"> with <Project Sdk="Microsoft.NET.Sdk"> (uppercased Net)

I'm using Arch Linux with KDE, pretty clean/new system.
Used latest Ubuntu before, no problems at all.
Although the workaround works for now, I guess it will break everytime a different SDK version gets used.

Create the file /etc/profile.d/dotnet.sh
export DOTNET_ROOT=/opt/dotnet
export MSBuildSDKsPath=$DOTNET_ROOT/sdk/$(${DOTNET_ROOT}/dotnet --version)/Sdks
export PATH=${PATH}:${DOTNET_ROOT}

Found here: https://bugs.archlinux.org/task/60903?project=5&string=dotnet-host

Same thing happens to me on Solus. I created an Arch Linux VM to test if it still occurs, and it does - looks exactly the same.

There is the "no SDKs" error described in the issue, setting MSBuildSDKsPath fixed the issue.
If DOTNET_ROOT is set, the Razor server crashes. I tried to find the root of the issue, but even the verbose mode did not show me anything. I just disabled it.
Even with all that solved, everything still doesn't work completely. If I go to debug menu and press play, I get the task build and then the console. On my Fedora installation, there was a lot of output, but here I just get the "You may only use Microsoft .NET Core Debugger (vsdbg) with..." on the console, nothing happens and the debug bar disappears.

@nickelghost Did you install the official Microsoft VS Code from https://code.visualstudio.com/? Debugging is only supported in the official version (not the open source version).
Unfortunately, VS Code seems to have broken the reporting for the error that the debugger sends back about this.

@gregg-miskelly I'm using the version from my distro's repository, so I guess it's the unofficial version. How come debugging is disabled on the open source version? I thought Microsoft <3 Open Source...

@gregg-miskelly Is it open source then but under a different license? Or is it a closed source part of Microsoft's build?
If it is open, is there a way to get it working with the open vscode?

The debugger is closed source.

I had this exact same issue. Was using the visual studio code from AUR on my computer (Manjaro) and the error kept coming up. However, @virtualdreams solution fixed it.

The issue is being tracked in dotnet/cli#12110.

As mentioned, tracked by https://github.com/dotnet/cli/issues/12110. See https://github.com/OmniSharp/omnisharp-vscode/issues/3160 for more details.

Environment data
dotnet --info output:
.NET Core SDK (reflecting any global.json):
 Version:   2.2.102
 Commit:    96ff75a873

Runtime Environment:
 OS Name:     arch
 OS Version:
 OS Platform: Linux
 RID:         arch-x64
 Base Path:   /opt/dotnet/sdk/2.2.102/

Host (useful for support):
  Version: 2.2.1
  Commit:  878dd11e62

.NET Core SDKs installed:
  2.2.102 [/opt/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.NETCore.App 2.2.1 [/opt/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

VS Code version:
1.30.2

C# Extension version:
1.17.1

Steps to reproduce
Create new console project using dotnet new console, open VSCode either via start menu or command line.
Expected behavior
Projects loads fine
Actual behavior
Omnisharp loads and displays the mentioned issue above.
Workaround
I found at least a workaround to fix this issue when opening VSCode via command line.
Unfortunately I haven't yet found a way to solve it when starting via start menu.
Fix:
* add environment variable `MSBuildSDKsPath=/opt/dotnet/sdk/2.2.102/Sdks`

* open project file, replace `<Project Sdk="Microsoft.Net.Sdk">` with `<Project Sdk="Microsoft.NET.Sdk">` (uppercased `Net`)

I'm using Arch Linux with KDE, pretty clean/new system.
Used latest Ubuntu before, no problems at all.
Although the workaround works for now, I guess it will break everytime a different SDK version gets used.

https://github.com/dotnet/corefx/issues/41481#issuecomment-555555762

this resolved mine
https://github.com/dotnet/corefx/issues/41481#issuecomment-555555762


admin page

regarding admin page:

looks like this isn't properly hooked up to the backend. check the api spec and the handlers. ideally data should be fetched when the selection changes specific to that selection.
.svg isn't a good namespace (I'm using svgs too!)
we need a sql script that will populate the db with some relevant data. otherwise i have no idea if this actually works!

oh yeah, and...

move admin.js to its folder as index and import like './admin/' (nb slash at end).

done


Downlevel for 'let' doesn't account for nested declarations

var x;
function foo() {
    let x = 0;
    (function () {
        var _x = 1;
        console.log(x); // Prints 1, should print 0
    })();
}

The rename of the 'let' does not account for the _x declared in the nested function. Consequently, it chooses _x as the rename, but now the inner _x shadows it.

Maybe it is not so bad to just rename all value declarations during emit. We can keep the scope tracking, and just use that for aliases as well, and then we could get rid of getGeneratedNamesForSourceFile. This is nice because it avoids a pre-pass, and it results in nicer names. And you wouldn't have to descend to find references in nested containers.
The key here would be that only let and const have to check resolveName. Vars, functions and parameters only have to make sure they are not colliding with a generated name in any of the ancestor scopes, but they can certainly shadow source names from ancestor scopes.

I'm not a big fan of idea of cascading renames especially for something that user might not expect to be renamed (i.e. presence of let higher in the scope triggers renaming of the function). An alternative proposal that I have is to move name generation logic entirely to emitter and generate names on demand. Names can be generated using two ways:

makeUniqueName - creates a name that does not exist in global scope and unique to current file. This name will never be generated in the future nor by makeUniqueName neither by makeTempVariable

makeTempVariable - creates a name that does not exists anywhere higher in the scope (in user code) and unique among generated names in current scope. The same name however can be generated by calls to makeTempVariable above or below in the scope and it is up to the user to protect yourself from this fact.

Proposed fix #2455

@vladima "I'm not a big fan of idea of cascading renames especially for something that user might not expect to be renamed (i.e. presence of let higher in the scope triggers renaming of the function)."
Hey Vlad, i'm not sure the user has any expectation that anything might be renamed.  Renaming is an internal implementation decision we've taken in order to work around the collision problem inherent in downlevel emitting of language constructs.  In that regard, i think we have nearly full control over what we do or do not rename.  About the only things we can't rename are things that are part of your public surface area shape.  i.e. if we export anything, then that entity to keep the same name.  However, for all the code that isn't part of your public API shape, we have full control over what we emit, and we can decide what should/shouldn't get renamed.
The approach Jason has listed seems sensible to me.  Right now we're trying to come up with an algorithm where we don't pick a name because something lower in the code might collide with it.  But i see no reason why that code that that we hit later is any more important than the code we're hitting now.  We're dealing with the variable at this point, we should give it the best name we can, given what we know so far.  Then, when we hit code later on, we may have to rename those entities appropriately.
This has several nice properties:

It seems simple.  And i do appreciate having a simple algorithm for the compiler.
In the absence of collisions, entities keep the name the user wrote.  That's very nice given the current limitations of debuggers today.
It seems cheaper than the approach where we have to aggressively walk down the tree.

The only 'downside' (which i don't necessarily agree is a downside) is that, in the presence of collisions, the entities we hit later are renamed, not necessarily the 'let'.  But i see no reason why that's at all undesirable behavior, or that users will dislike these types of renames any more than our current approach of renames.

User might have certain expectations about what should not be changed in their code, no other transpilers change names of value declarations besides let\const and this effect can be very surprising for the user. This was my original concern when I've suggested this approach on my discussion with Jason on Friday

@JsonFreeman maybe I'm not reading it right but I cannot agree with it

The key here would be that only let and const have to check resolveName. Vars, functions and parameters only have to make sure they are not colliding with a generated name in any of the ancestor scopes, but they can certainly shadow source names from ancestor scopes.

consider this case:
declare function use(a: any);
var x;
var _x_1;
{
    let x; // _x;
    function foo() {
        var _x; // (3) should be renamed but skipping next generated name '_x_1'
        use(x);
        use(_x);
        use(_x_1);
    }
}

var _x // (3) will conflict with generated name but in order to generate proper new name you need to consult resolveName otherwise generated name can shadow exising name from outer scope

But the cases where a var or a function would be changed are exceedingly rare! They would have to name the function something like _name or _name_0 or something like that. I admit the former case is somewhat common, but in general I don't think that many function scope constructs will get renamed.

Oh I see. Looking at your example, you are right. But still, you would only need to check resolveName to determine if one of the unique name candidates collides with an outer scope. You would be able to skip this step when checking uniqueness of the original name though. You'd only need to do it for names that you are trying that you have invented.
Also, when determining uniqueness, a block scoped declaration can be treated just like a function scoped declaration if it is declared in a function scope.

I'm bringing these up because they are ways that we could reduce the number of places where a rename actually happens, and it will lead to a better experience. I think renaming declarations that are not traditionally renamed by transpilers is still better than renaming almost every 'let' in the program when we don't need to.

@vladima  "User might have certain expectations about what should not be changed in their code, no other transpilers change names of value declarations besides let\const and this effect can be very surprising for the user. This was my original concern when I've suggested this approach on my discussion with Jason on Friday"
That's definitely a reasonable concern to have.
However, given the choice between:

a compiler that will literally rewrite all lets/consts
a compiler that rewrites some other entity types only in the presence of collisions

I think teh former would be far more surprising.  I would be surprised if users even ran into this situation that often.  And, even in the case where they shadowed a let with a var, i'm not really buying that a user woudl be that surprised that their 'var' got renamed.
(The case with a function being renamed seems so exceedingly rare, that i don't think it's even valuable to discount this approach jsut because of the concern over it).

Yes, I agree with @CyrusNajmabadi in that we have to look at this in terms of what will happen most of the time. I feel that renaming a var or a function will be such a corner case, that I don't really care about it. Whereas debugging with let downlevel may become exceedingly common.


v3.0.0-beta.10: mu-plugins "monorepo" only gets first file installed?

Describe the bug
I'm trying to design a WPS monorepo like
packages/mu-plugins/composer.json
packages/mu-plugins/mup-1.php
packages/mu-plugins/mup-2.php
...
composer.json
...
public/wp-content/mu-plugins
...

{
  ...
  "repositories": [
    {
      "type": "path",
      "url": "packages/mu-plugins"
    }
  ],
  ...
  "extra": {
    "installer-paths": {
      "public/wp-content/mu-plugins/muppets": [
        "icodemore/mu-plugins"
      ]
    }
  }

But only mup-1.php gets copied.
To Reproduce
Described above.
Expected behavior
It seems like WPS has the idea that mu-plugins are single-file / repo, but I feel like it could easily copy and load everything it finds. Because why not?
System (please complete the following information):

OS: Gentoo Linux
Version: rolling

@lkraav WPS is not doing anything in your case, it is Composer that should symlink (not copy) your "path" repository. Composer resorts to copying when symlink fails for any reason. See docs

The local package will be symlinked if possible, in which case the output in the console will read Symlinking from ../../packages/my-package. If symlinking is not possible the package will be copied. In that case, the console will output Mirrored from ../../packages/my-package.
Instead of default fallback strategy you can force to use symlink with "symlink": true or mirroring with "symlink": false option. Forcing mirroring can be useful when deploying or generating package from a monolithic repository.

Besides, if you use this approach, you have to require the MU plugins, and I don't see that.
So, your folder structure should look like this:
|-composer.json
|-public/
|-packages/
   |-mu-plugins/
       |-composer.json
       |-mup-1.php
       |-mup-2.php

The packages/mu-plugins/composer.json should be like this:
{
    "name": "lkraav/mu-plugins",
    "type": "wordpress-muplugin",
    "require": {
        "composer/installers": "^2.2"
    }
}

The /composer.json should be like this:
{
    "name": "lkraav/project",
    "type": "project",
    "repositories": [
        {
            "type": "path",
            "url": "./packages/mu-plugins"
        }
    ],
    "require": {
        "composer/installers": "^2.2",
        "lkraav/mu-plugins": "@dev"
    },
    "config": {
        "allow-plugins": {
            "composer/*": true
        }
    },
    "extra": {
        "installer-paths": {
            "public/wp-content/mu-plugins/": ["type:wordpress-muplugin"]
        }
    }
}

And then Composer should symlink everything in place on install. Note how WPS is not part of any of this, it is a pure-Composer thing.

That said.
If I understood correctly, you want to have your MU plugins in the same "project" repo, and let WPS symlink those for you in the right wp-content place.
Is that correct?
If so, WPS has a feature for it, is called "Content Development Path", and it works not only for MU plugins but also for plugins, themes, dropins, and languages (anything inside wp-content, hence the name).
Having a structure like this:
|-composer.json
|-public/
|-content-dev/
   |-mu-plugins/
       |-mup-1.php
       |-mup-2.php
   |- plugins/
       |-plugin-1/
           |-plugin.php
       |-plugin-2/
           |-plugin.php

WPS will symlink content-dev/mu-plugins/* inside public/wp-content/mu-plugins/*, and  content-dev/plugins/* inside public/wp-content/plugins/*.
Of course, it will consider any customization you might have for the wp-content folder path.
Two options control this feature:

content-dev-dir: to change the default content-dev/ base dir to something else. in your case, it could be ./packages, for example.
content-dev-op: where you can switch from "symlink" to "copy", e.g., to make the wp-content folder "portable".

It seems the feature is not documented yet, but you can read the code here.
The code is here: https://github.com/wecodemore/wpstarter/blob/dev/src/Step/ContentDevStep.php
And the class doc block documents the feature a bit.
Please note: this is not a mono-repo. Because any composer.json in the content-dev folder would be symlinked (or copied), but it will not be considered, so dependencies will not be created, and autoload not be generated.
For MU plugins, that should be a problem, I guess.
But if you want to do monorepo for plugins, you should make the Composer path work for you.

Thanks for the detailed write, but I think you might have been over-thinking this: :smile:
I figured out how to Xdebug composer plugins (hello non-obvious COMPOSER_ALLOW_XDEBUG=1), and discovered all I needed to do for my multi-mu-plugin single package, is add "Plugin Name" header to each.
https://github.com/wecodemore/wpstarter/blob/d6cfceac1cf6c0f1dd326279de95cc9bbc1a383b/src/Util/MuPluginList.php#L87-L103 apparently has different file collection logic paths for single- vs multi-mu-plugin packages.
Is this documented? I certainly wasn't able to find it without Xdebug. Perhaps this issue could be refactored and connected to a documentation upgrade PR?

WP Starter can't just load all PHP files in a package that declate itslef as a MU plugin.
Imagine you have a file that loads other files, if WP Starter would also load all files, there would be problems.
So WP Starter needs a way to determine which files to load and which not.
If there's only one PHP file in the root of the package, that's an easy choice :)
If the package contains multiple files, then WP Starter needs something to determine which files to load, and the only thing it can rely on is the plugin headers.
So if you have a package with multiple MU-plugins, you either put the plugin header on them, or you create an interal loader.
E.g. a file with:
<?php

/* Plugin Name: My MU-Plugins Collection */

forach (glob(__DIR__ . "/*.php" as $file)) {
   if ($file !== __FILE__) { // not load itself
       require_once $file;
   }
}

Now you can put this file in the same folder with a ton of other MU plugins. WP Starter will load this, and it'll do the rest.

And ,yes, maybe we can document all of this...

Yes, logic makes sense. For now, I went with Plugin Name headers, because they each had a description anyway.
https://github.com/wecodemore/wpstarter/blob/version-3/docs/05-WP-Starter-Steps.md#muloaderstep seems to be an appropriate location to add this information. I'll see if I can PR something.


Carefully placed lights can create unrealistic black shadow spots

see the little completly dark triangle at the bar entrance

Was this fixed? I can't replicate.


Resource name uniqueness validation missing

Originally created by Tom Smyth at 2018-04-20 17:20, migrated from redmine-#8327

Subject changed from Resource name uniqueness validation mission to Resource name uniqueness validation missing

By Tom Smyth at 2018-04-20 21:20

Status changed from New to Closed

By Tom Smyth at 2018-04-20 21:33

Version set to 6.0

By Tom Smyth at 2018-04-28 19:52


Support HTTPS

I'm unable access an igvR instance that is running from RStudio Server behind a reverse proxy that uses HTTPS. The new (Chrome) browser window that opens has the following error in the JavaScript console

Uncaught DOMException: Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. 'https' is not allowed.

while the R console hangs with this output, apparently indicating that a connection is not established:
> igv <- igvR(portRange=7000:11000)
attempting to open websocket connection on port 7000

It seems that igvR (and BrowserViz) only considers http:
https://github.com/paul-shannon/igvR/blob/d3f36a063a59c7ef124c9e7c2bf7f42391570de1/inst/browserCode/lib/browserviz.js#L311
https://github.com/PriceLab/igvR/blob/43f18b826959b2d0df21ae6568118ad62d8d8430/inst/browserCode/testImmediate/browserviz.js#L311
Would something like this handle https as well (I'm not having luck building a fork of igvR with this change, and haven't been able to test)
   this.socketURI = (window.location.protocol == "https:"
                     ? window.location.href.replace("https://", "wss://")
                     : window.location.href.replace("http://", "ws://"));

@nathanweeks  Sorry I did not reply sooner - and thanks for the suggestion.  I will pursue this by the end of the day tomorrow.

@nathanweeks
I just pushed BrowserViz 2.17.10.   It includes your code verbatim.
Are you able to pull and build from the paul-shannon repo?
You mentioned encountering difficulty building igvR.  Could you provide details?  Perhaps I could help with that, learn from your difficulties, maybe for BrowserViz too if it is not a straightforward pull and
make -f build.makefile all

Hi @paul-shannon , I did a devtools::install_github("paul-shannon/BrowserViz") and verified that the following code snippet resulted in a successful websocket connection when run from an RStudio Server instance that is behind a TLS terminating reverse proxy for Open OnDemand
B <- BrowserViz(portRange=7005:7007, browserFile="R/rocker/3.6/BrowserViz/browserCode/dist/bvDemoApp.html")

(it seems that dist/bvDemoApp.html was not updated with the new browserviz.js code---is that file still used?)
I was able to get igvR to build/install using make -f build.makefile all (from within a well-equipped docker image, bioconductor/bioconductor_full). However, the installed igvR/browserCode/dist/igvApp.html does not have the new BrowserViz code (I assume this needs to be committed to igvR repo at inst/browserCode/lib/browserviz.js as well?)

Hi @nathanweeks,
You got it right, and thank you.    I had forgotten to copy the browserviz.js into the igvR package and update the repo.
I think everything required is now there:

BrowserViz 2.7.17
igvR 1.5.27

Let me know how it goes.

Yes, those updates did the trick! At least, following the igvR vignette, this code chunk opens a browser tab that renders MEF2C:
igv <- igvR(portRange=7000:8000)
setBrowserWindowTitle(igv, "MEF2C")
setGenome(igv, "hg19")
Sys.sleep(5)
showGenomicRegion(igv, "MEF2C")

However, when I attempted to run the subsequent code chunk that called displayTrack(), the following error displayed in the igv.js window:

Error accessing resource: http://localhost:7002?/tmp/RtmpTSF5s5/file1d01f17aa7975.bed Status: 0

I've tried setting the igvR(host="...") parameter to match that of the reverse proxy, but no effect.
After looking at the igvR.R code:https://github.com/paul-shannon/igvR/blob/eeed7687ed59114e71e964e2a9b982d427943d77/R/igvR.R#L20
I tried setting the igv@uri attribute manually to match the URL of the RStudio Server session as seen in my browser window; e.g.:
igv <- igvR(portRange=7000:8000)
igv@uri <- "https://proxy.example.edu/rnode/compute-node-1/8668/"

This allowed a subsequent displayTrack(...) to display an empty track. The browser javascript console contains a message of the form:
{"format":"bedGraph","name":"IGAP.gwas.scored","url":"https://proxy.example.edu/rnode/compute-node-1/8668/?/tmp/RtmpTSF5s5/file1d01fa1eeec9.bedGraph","indexed":false,"sourceType":"file","color":"blue","order":1.7976931348623157e+308,"height":50,"autoscale":true,"min":"NA","max":"NA","type":"wig"}

If I plug https://proxy.example.edu/rnode/compute-node-1/8668/?/tmp/RtmpTSF5s5/file1d01fa1eeec9.bedGraph into a browser window, I simply get the RStudio Server session.
Any ideas?

If I plug https://proxy.example.edu/rnode/compute-node-1/8668/?/tmp/RtmpTSF5s5/file1d01fa1eeec9.bedGraph into a browser window, I simply get the RStudio Server session.

This rings a bell - I encountered something like this in igvShiny https://github.com/paul-shannon/igvShiny.   I can refresh my memory later today, but in case you want to forge ahead, I think the trick is (something like) this:  tell the RStudio web server to treat a specific directory as a legitimate place to use in http GET requests.  Then write your temporary track files there.
Let me know if this, meager as it is, is any help.

Paul

Thanks; I attempted to implement this suggestion by bind mounting the /tmp directory (which is writable in the Singularity container) to a tmp/ subdirectory the rserver www files path (--www-local-path option, which in the Rocker container image defaults to /usr/lib/rstudio-server/www).
Now I can point my browser to, e.g., https://proxy.example.edu/rnode/compute-node-1/8668/tmp/RtmpTSF5s5/file1d01fa1eeec9.bedGraph and download the bed file. However, the url generated by displayTrack() (e.g., https://proxy.example.edu/rnode/compute-node-1/8668/?/tmp/RtmpTSF5s5/file1d01fa1eeec9.bedGraph) attempts to pass the path to the bed file as a query string, which for some reason still causes redirection to the RStudio Sever session itself.
I might be going down the wrong path with this, but for this approach to work, it seems that it might be necessary to override where the track URLs are being generated (e.g.,
https://github.com/paul-shannon/igvR/blob/eeed7687ed59114e71e964e2a9b982d427943d77/R/igvR.R#L411 ) to use a "/" instead of a "?" (?) But I admittedly may be going about this the wrong way.

@paul-shannon : FWIW, if I bind mount /tmp to  /usr/lib/rstudio-server/www/tmp, slightly modify igvR.R by changing all instances of
sprintf("%s?%s", igv@uri, temp.filename)

to
sprintf("%s%s", igv@uri, temp.filename)

and in the R script set, e.g.
igv@uri <- "https://proxy.example.edu/rnode/compute-node-1/8668"

(no trailing slash)
Then I am able to load tracks (a definite payoff!). But it would be great if such workarounds weren't necessary. A small step might be auto-populating igv@uri , which I had set by copying & pasting the URL from the RStudio Server browser window (window.location.href in JavaScript). Is there a way to populate that via some library function?

@nathanweeks
Good work, Nathan.  Excellent sleuthing.
It would be easy for me to slip in an experimental method on the igvR class, something like:
setHostedFileUrlProtocol(igv, “%s%s”)
while the existing practice (“%s?%s”) stays on as the default.   That could give you an immediate workaround, you could test on your end, my tests would all work as before.
Then, with the urgency passed, and after a few deadlines here are met, I could re-examine my practice and see if that “?” is really needed.
How’s that?

Paul

On Oct 18, 2019, at 9:32 AM, Nathan Weeks<EMAIL_ADDRESS>wrote:
@paul-shannon : FWIW, if I bind mount /tmp to /usr/lib/rstudio-server/www/tmp, slightly modify igvR.R by changing all instances of
sprintf("%s?%s", igv@uri, temp.filename)
to
sprintf("%s%s", igv@uri, temp.filename)
and in the R script set, e.g.
igv@uri <- "https://proxy.example.edu/rnode/compute-node-1/8668"
(no trailing slash)
Then I am able to load tracks (a definite payoff!). But it would be great if such workarounds weren't necessary. A small step might be auto-populating igv@uri , which I had set by copying & pasting the URL from the RStudio Server browser window (window.location.href in JavaScript). Is there a way to populate that via some library function?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hi @paul-shannon , yes, that seems like it would for testing purposes. Thanks!

@nathanweeks After an inexcusably long delay, 2 1/2 years! I just noticed this issue never closed.   I am resolved to now provide better support.  Please let me know if there is anything you need in igvR, on this issue or another.   With apologies, Paul.

@paul-shannon I'm trying to run igvR in RStudio Server running in docker container on an AWS ec2 instance, and like the issue above, I get a displayTrack() error:

FWIW, I do not get any such errors when running this in RStudio locally.
Here's the code I ran from RStudio Server:
options(width=120)
knitr::opts_chunk$set(
   collapse = TRUE,
   eval=interactive(),
   echo=TRUE,
   comment = "#>"
)

 library(igvR)

igv <- igvR()
setBrowserWindowTitle(igv, "simple igvR demo")
setGenome(igv, "hg38")

print(getSupportedGenomes(igv))

showGenomicRegion(igv, "MYC")

loc <- getGenomicRegion(igv)

tbl.bed <- data.frame(chrom=loc$chrom, start=loc$start + 2000, end=loc$end-2000,
                        name="simple.example", stringsAsFactors=FALSE)

track <- DataFrameAnnotationTrack("simple bed", tbl.bed, color="random")

displayTrack(igv, track)

I've tried these workarounds from the post above:

changing all instances of sprintf("%s?%s", igv@uri, temp.filename) to sprintf("%s%s", igv@uri, temp.filename) in igvR.R.

changing igv@uri variable to the proxy URL used to access the RStudio Server in the browser.

I'd appreciate any troubleshooting advice.


Does pipeline  execute concurrently  or sequentially ?  and relationship between pipe and redis transaction?

 I wanna use pipe to do multiple read operations like mget .  And I have the two above questions .

By default, pipelines executes sequentially. When a pipeline executes it will still use a pipeline object for each node in the cluster. If you want to run the pipeline in concurrent mode you can use the flag pipeline_use_threads=True to use a experimental feature to run each pipeline for each node with threads. From what i know it works really well.
Transactions is a hard problem to solve because there is several ways of defining a transaction and implementing support for both solutions is very hard because there is several corner cases that needs to be handled for the implementation to work. In short the 2 main options is to have a transaction pipeline across the entire cluster, or that the commands that is sent to each node should be transaction but they are not dependent on each other. So if one of 4 would fail the other 3 would still execute and be commited to redis. Currently i have documented and suggested that transactions is not supported right now and should not be used.
You should really read up on the docs, specially this one https://github.com/Grokzen/redis-py-cluster/blob/unstable/docs/Pipelines.md that describes the problems and my thoughts on the problem and possible solutions.
Regarding MGET in pipelines, it is currently disabled because because if you run MGET keyA keyB keyC keyD and 2 of the keys belongs to 1 node in the cluster and 2 keys belong to another node, i can't just split the command into MGET keyA keyC and MGET keyB keyD and send them off to their nodes and then handle any errors, moved, asking errors that pops up and retry until it either works or fails.
The only somewhat viable solution to this problem would be to take the MGET command and replace that command with a series of GET commands that each fetches the all keys and after execution is done, reassembles the original MGET to make it appear to work. In theory you can already do this yourself manually by having a helper function that you call when you want to run MGET that splits it into multiple GET and puts them on the pipeline stack, but it is not something that will be supported for now.

If that awnsers your questions,  please close this issue. If you find some issue when trying something out, please open a new issue with a description of the problem.

hi @Grokzen #92 , this is my issue,by your answer , when I set pipeline_use_threads=True, all the commands queued on pipe will be sent to their coresponding node in the cluster respectively ? And pipe.executes() will returns only after all the responses arrived ? This is the way I supposed the pipe's behavior to be
my gitter quesion , just for record .


Add ability to specify badge color without losing dynamic color change

Hello,
Shields are awesome and having these dynamic badges is really cool.
It would be great if we could specify multiple colors for the right side of the badge.
:clipboard: Description
I want to change the color of the badge so it fits in with my styling, but I don't want to lose the dynamic color change.
The GitHub pull requests badge has a default of brightgreen and changes to yellow when PR count > 0.
/github/issues-pr-raw/:user/:repo

I can change the badge color to black so it fits in with my styling, but then I lose the color change to yellow.

Could we specify multiple colors as an array, similar to the link parameter?
?color=black&color=red or ?colors=black,red
That way we could have different colors without losing the dynamic logic.
color: issueCount > 0 ? 'yellow' : 'brightgreen'
So the end result would be

-Christian

This is a use case that would be better handled via our Custom Endpoint badge. You could structure your custom endpoint to fetch the json data from Shields.io, transform as desired, and then add Endpoint badges to your readme (or wherever you're using them) which leverage your endpoint.

I have a question to that. Can I change the color of the both states here:
https://img.shields.io/twitch/status/USERNAME?style=flat&logo=Twitch&logoColor=%23FFFFFF&label=Twitch%3A&labelColor=%235C16C5


migrate to serde 0.9

rust 0.15 was just released and with it custom derive!
Serde released version 0.9, which is now incompatible with this library:
error[E0308]: mismatched types
  --> src/api/handler.rs:40:12
   |
40 |         Ok(value)
   |            ^^^^^ expected enum `jsonrpc_core::Value`, found enum `serde_json::Value`
   |
   = note: expected type `jsonrpc_core::Value`
   = note:    found type `serde_json::Value`

migrating shouldn't be difficult. If you would like, I can open a pull request.

It's already fixed in #38, we're just awaiting to release a new version which should happen soon.

jsonrpc-core = 6.0 with serde-0.9 was just recently released, make sure to try it out :)

awesome thanks! Great library btw -- I use it with nickel (currently) and it integrates seamlessly.


Updated Hikaru.

I have re-written my generator Hikaru in JavaScript instead of CoffeeScript, so update here too.

Thanks for the update!


License information

We are currently using your custom-error-instance package as a dependency in tus-js-client and one user noticed that it lacks most license information besides an entry in the package.json. It is helpful to the community to have to a clear open source license associated with your project, such as the MIT license. Is it possible to add such information to your package?

I've added a LICENSE document as requested. Also, the license was ISC but has been updated to MIT. I assume that's acceptable.
Thanks for the issue. I'm glad I could help out.

Thank you very much for your quick response!


Rename _StringParameterConvertible to _StringConvertible

Motivation
As part of reworking https://github.com/apple/swift-openapi-runtime/pull/12, we'll be using the protocol _StringParameterConvertible not just for parameters, but also for bodies, so renaming it accordingly to reflect that.
Modifications
Renamed _StringParameterConvertible to _StringConvertible.
Result
The naming is more accurate now.
Compatibility-wise, this isn't affecting the generator, as this protocol is not used directly by generated code, only indirectly through _AutoLosslessStringConvertible, so we don't even need to stage this change.
Test Plan
All tests pass.

Yup, while this is a public symbol, it's an underscored marker protocol that nothing external should be using, so the same guarantees as SPI.


proposal: make sql builder more generic

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Summary 💡

current sql builder based on *Predicate - not easy to work out of package
selector and different build hide a lot building part - like where

write custom builder is awkward
builder := sql.Dialect(mb.Dialect()).Select().From(sql.Table(tab.Table).Schema(tab.Schema))
sqlgraph.HasNeighbors(builder, sqlgraph.NewStep(
	sqlgraph.From(tab.Table, tab.ID.Column),
	sqlgraph.To(edge.To.Table, edge.To.ID.Column),
	sqlgraph.Edge(edge.Spec.Rel, edge.Spec.Inverse, edge.Spec.Table, edge.Spec.Columns...),
))

// hack reflect access unexported field - this is bad, but have no proper way to do this
rv := reflect.ValueOf(builder).Elem()
rf := rv.FieldByName("where")
rf = reflect.NewAt(rf.Type(), unsafe.Pointer(rf.UnsafeAddr())).Elem()
p := rf.Interface().(*sql.Predicate)
err = p.Err()
mb.Join(p)

Motivation 🔦
ent's sql builder is powerful and good enough for customization, even can use out of ent, but current build is based on struct ptr, makes some build pattern become harder.
the migration process can also take the advantage of a generic sql builder.

Hi @wenerme ,
Thanks for reaching out. You are absolutely right, in fact there are plans to completely rewrite the sqlgraph implementation in the coming months to be a lot more generic so it can be extended more easily, new dialects can be added etc.

Hello @wenerme,
has the above work been completed in the newly released version v0.10.1?


Add Visual Studio History directories (.vshistory) to VisualStudio.gitignore

Reasons for making this change:
The Visual Studio History (VSHistory) extension creates versions of files every time they are changed and saved to disk.  This can create a lot of VSHistory files in the local directory that don't need to be saved in the project's repository.
This change simply adds the .vshistory directory to .gitignore.
Links to documentation supporting these rule changes:
https://marketplace.visualstudio.com/items?itemName=KenCross.VSHistory

Thanks for the contribution @kjchome


How to upgrade all brews when upgrading OS X - doc needed

I haven't found any information yet on how to handle homebrews when upgrading OS releases such as from 10.11 El Cap to 10.12 Sierra. Would be happy to write up such a doc if there are notes or suggestions on how to handle this that I can look at and pull together.
Since there are OS specific bottles (El Cap bottles, Sierra bottles, etc), it would seem I'd need to uninstall and reinstall all brews to get rid of El Cap bottles and get Sierra bottles instead. In addition, compiled (not bottled) brews may also need to uninstalled then re-compiled under the new OS X?
And a related issue - when upgrading to a new major Xcode/Command Line Tools release (such as Xcode 7.x -> 8.x), do compiled brews need to be recompiled with the new Xcode/CLI Tools?

Technically you don't need to reinstall them. If you really want to the best bet may be brew bundle dump && brew uninstall $(brew list) && brew bundle.

do compiled brews need to be recompiled with the new Xcode/CLI Tools?

Definitely not.

I don't know if the advice in the following link is still relevant ( https://jimlindley.com/blog/yosemite-upgrade-homebrew-tips/ ), but they said that having files in /usr/local made ugprading really slow. Maybe this has been fixed since 10.10.

@scpeters thanks! Luckily I had no speed issues upgrading to macOS Sierra - took about 20-30 min as expected.


T5 V2.1 battery voltage

How can I determine current battery voltage?

A3 - 4095
A4 - 698
A5 - 264
A6 - 136
A7 - 2240
I'm assuming its A7, but with a full 3.7v lipo don't know what 2240 actually means

Solved this, pin 35 has the voltage on it.

Hey! looking at my T5 v2.3 and I can't see any pin 35, any ideas? trying to measure the voltage of the LiPo thanks. @rlightner

Hey! looking at my T5 v2.3 and I can't see any pin 35, any ideas? trying to measure the voltage of the LiPo thanks. @rlightner

@Anton2k
This project is a long time ago, I did not maintain it, the schematic is in this warehouse
https://github.com/Xinyuan-LilyGO/LilyGo-T5-ink-series.git

@Anton2k
This project is a long time ago, I did not maintain it, the schematic is in this warehouse
https://github.com/Xinyuan-LilyGO/LilyGo-T5-ink-series.git

Thank's @lewisxhe i'll take a look at it, trun's out there is a BAT_TEST pin (35) on my board, no where I though it would be, closer to the bottom of the board, voltage is reading 2000+ though, so I may need to run it through some kind of calculation.

Thank's @lewisxhe i'll take a look at it, trun's out there is a BAT_TEST pin (35) on my board, no where I though it would be, closer to the bottom of the board, voltage is reading 2000+ though, so I may need to run it through some kind of calculation.

I have voltage check codes in many examples of lilygo, they are basically the same, like this! !
···
int vref = 1100;
void setup(){
Serial.begin(115200);
esp_adc_cal_characteristics_t adc_chars;
esp_adc_cal_value_t val_type = esp_adc_cal_characterize((adc_unit_t)ADC_UNIT_1, (adc_atten_t)ADC1_CHANNEL_6, (adc_bits_width_t)ADC_WIDTH_BIT_12, 1100, &adc_chars);
//Check type of calibration value used to characterize ADC
if (val_type == ESP_ADC_CAL_VAL_EFUSE_VREF) {
Serial.printf("eFuse Vref:%u mV", adc_chars.vref);
vref = adc_chars.vref;
} else if (val_type == ESP_ADC_CAL_VAL_EFUSE_TP) {
Serial.printf("Two Point --> coeff_a:%umV coeff_b:%umV\n", adc_chars.coeff_a, adc_chars.coeff_b);
} else {
Serial.println("Default Vref: 1100mV");
}
}
void loop(){
    uint16_t v = analogRead(35);
    float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);

  Serial.println(battery_voltage );

}
···

I have voltage check codes in many examples of lilygo, they are basically the same, like this! !
···
int vref = 1100;
void setup(){
Serial.begin(115200);
esp_adc_cal_characteristics_t adc_chars;
esp_adc_cal_value_t val_type = esp_adc_cal_characterize((adc_unit_t)ADC_UNIT_1, (adc_atten_t)ADC1_CHANNEL_6, (adc_bits_width_t)ADC_WIDTH_BIT_12, 1100, &adc_chars);
//Check type of calibration value used to characterize ADC
if (val_type == ESP_ADC_CAL_VAL_EFUSE_VREF) {
Serial.printf("eFuse Vref:%u mV", adc_chars.vref);
vref = adc_chars.vref;
} else if (val_type == ESP_ADC_CAL_VAL_EFUSE_TP) {
Serial.printf("Two Point --> coeff_a:%umV coeff_b:%umV\n", adc_chars.coeff_a, adc_chars.coeff_b);
} else {
Serial.println("Default Vref: 1100mV");
}
}
void loop(){
    uint16_t v = analogRead(35);
    float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);

  Serial.println(battery_voltage );

}
···


improve signed message data type for CallWithSignature

It's unfortunate that our CallWithSignature typed data message is encoded:

This means that it's hard for users to know what exactly they're signing. For high-value actions like account delegation, I wonder if we should have an alternative path for a signed data type that is specific to that function call, so we can see the arguments laid out.
It might be a bit gnarly in the contracts, etc. but would lead to a clearer user experience.
Alternatively, expand the signed typed data EIP to allow for a description/notes that isn't part of the signed message but still appears within the wallet, then convince all wallets to get on board.

We should store function names and arguments onchain, so we can look at the function selector the user is trying to call and dynamically generate a type hash based on that function named arguments


[BUTTON IDEA]: Payment buttons

1. Name of button:

[ ] Amazon Pay
[ ] Apple Pay
[ ] Paypal
[ ] Bitcoin
[ ] Ethereum
[ ] Mastercard
[ ] Visa

2. Description: These are some of the buttons that can be added to the payment category.
3. Button Type (Animated, Special, etc...): Payment button
4. Will you work on it?: No

Can I work on this issue...

Hi @mrSidSat sure but please pick one

I would like to proceed with apple Pay button

Hi @shahednasser, Should I convert each button to a separate issue?

Don't worry @RajMhatre20 I'll take care of that.
@mrSidSat please comment on the issue here to get assigned.

i am interested to work on mastercard button

i am intrested to work on this

Hello @nikunj2001 please comment on the issue of one of the buttons from above and you'll be assigned to it if no one else is.

@RajMhatre20 @shahednasser i have few more payment button ideas of PhonePe #1509 and paytm #1510


Cannot sync another podcast

Hi,
I tried the example urls from the readme and they worked great.
However when I try another podcast url: https://pcr.apple.com/id1703018128 (which forwards to https://anchor.fm/s/e74eb474/podcast/rss) the upload to the tonie is not working.
No error pops up and the output is "Successfully uploaded [Episode(podcast='Märchenwelten - Wunderschöne Märchen & ....", but nothing uploads to the tonie cloud.
During runtime the necessary mp3 files are correctly downloaded to the podcast folder (and removed at the end).
Please let me know if you have time to check this out. Otherwise I might take a look at the code myself and try to ,make it work.
Best regrads
Slutskov

@Slutskov I will take a look at it, as it is more likely to be a problem in the tonie-api and not in the podcast sync.


Support serialization of a Thrift model through JSON for caching

Adds a thrift2json tool for converting Thrift IDL to a JSON AST. That JSON AST is accepted as options to construct a Thrift model, so you can bypass the IDL parser.
The Thrift AST may also be useful for caching between tcurls.
r @malandrew @abhinav
cc @matt-esch

rage merge


Develop

issue #582 done

Codecov Report

Merging #792 into develop will increase coverage by 0.11%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             develop     #792      +/-   ##
=============================================
+ Coverage      41.30%   41.42%   +0.11%
+ Complexity      3699     3694       -5
=============================================
  Files            634      631       -3
  Lines          28238    28104     -134
  Branches        2470     2450      -20
=============================================
- Hits           11665    11643      -22
+ Misses         15763    15650     -113
- Partials         810      811       +1

Impacted Files
Coverage Δ
Complexity Δ

...java/de/fhg/iais/roberta/factory/RobotFactory.java
19.14% <0.00%> (-1.79%)
5.00 <0.00> (ø)

...Server/restServices/all/controller/ClientInit.java
0.00% <ø> (ø)
0.00 <0.00> (ø)

.../roberta/worker/compile/ArduinoCompilerWorker.java
2.00% <0.00%> (-1.93%)
2.00% <0.00%> (ø%)

...g/iais/roberta/visitor/codegen/MbotCppVisitor.java
57.43% <0.00%> (-0.44%)
53.00% <0.00%> (ø%)

.../iais/roberta/visitor/codegen/Ev3C4ev3Visitor.java
47.81% <0.00%> (-0.23%)
106.00% <0.00%> (ø%)

...g/iais/roberta/visitor/codegen/Bob3CppVisitor.java
84.04% <0.00%> (-0.17%)
24.00% <0.00%> (ø%)

...is/roberta/visitor/codegen/BotnrollCppVisitor.java
87.95% <0.00%> (-0.14%)
66.00% <0.00%> (ø%)

...is/roberta/visitor/codegen/CalliopeCppVisitor.java
66.04% <0.00%> (-0.05%)
125.00% <0.00%> (ø%)

...is/roberta/visitor/codegen/SenseboxCppVisitor.java
84.30% <0.00%> (-0.05%)
102.00% <0.00%> (ø%)

...ais/roberta/visitor/codegen/ArduinoCppVisitor.java
95.14% <0.00%> (-0.05%)
113.00% <0.00%> (-1.00%)

... and 9 more

Continue to review full report at Codecov.

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


Question regarding input option for AVS device

I would like to input text commands to AVS instead of using voice (for the purpose of automated testing). I know that AVS only has voice input option. Is there a proper way to modify AVS sdk for my specific use case?
As far as I know, the speech recognition task is done on the cloud so the cloud only accepts audio input from AVS device. I'm thinking about first using text-to-speech to make audio files from my text commands (e.g., "Alexa, read news from Fox News"). Then, when running SampleApp, I want to cut down the voice input from microphone and read input from my audio files instead. I tried looking at the UserInputManager in SampleApp but I couldn't figure out where it takes the user's voice command. Could you please point me to the right place?
I appreciate your help!

Hello lenhattu,
I am not sure what framework you are using to drive your testing, but if you are using DefaultClient, you should be able to pass audio in through notifyOfTapToTalk(), notifyOfTapToTalk() or notifyOfHoldToTalkStart().
If you are using SampleApp, and want to provide a more continuous source of audio, you could provide your own implementation of MicrophoneInterface in SampleApp (here)  that writes audio to the local variable sharedDataStream.
Best regards,
-SWH

Hello lenhattu,
I am not sure what framework you are using to drive your testing, but if you are using DefaultClient, you should be able to pass audio in through notifyOfTapToTalk(), notifyOfTapToTalk() or notifyOfHoldToTalkStart().
If you are using SampleApp, and want to provide a more continuous source of audio, you could provide your own implementation of MicrophoneInterface in SampleApp (here) that writes audio to the local variable sharedDataStream.
Best regards,
-SWH

Hi SWH,
Thank you for your reply.
I just want to read audio input from file instead of microphone.
By passing audio in through notifyOfTapToTalk(), do you mean modifying "capabilityAgents::aip::AudioProvider tapToTalkAudioProvider" or something? I'm not sure how to pass my audio file into this one. Can you please give me more details?
If I use SampleApp and write my audio file into this location: sharedDataStream, do I need to disable the voice input from microphone somewhere?

Hello lenhattu,
Regarding notifyOfTapToTalk(): Yes, I mean by providing your own value for tapToTalkAudioProvider.  To do this, you will need to initialize that structure including reading the bytes from your file and writing them to the AudioInputStream member 'stream'.
Regarding writing data to sharedDataStream: By replacing the initialization of micWrapper with your own implementation of MicrophoneInterface SampleApp will no longer be reading from the microphone.
Best regards,
-SWH

@lenhattu did you figure out how to send text input instead of audio input?

@lenhattu I am closing this issue due to inactivity. If you still have an issue feel free to reopen or create a new issue.


Stylesheet not linking to HTML code

Hi, I thought I had already linked my stylesheet to my html code but when I hit preview in Brackets I just see my html code. I am using the 1.9 version

Duplicate of #13395


Neuron tools

fixes #27

Also automatic rearrangement of imports, CHEBI synonyms and movement of equivalent_to statements from FBcv to CHEBI terms by Protege.


Update charm huh package

Is your feature request related to a problem? Please describe.
We should update the Charm.sh huh package and handle the styling changes that it introduces.
Describe the solution you'd like
https://github.com/charmbracelet/huh/releases/tag/v0.3.0
huh version v0.3.0
Test breaking changes thoroughly (especially forms)

/bounty $50

/attempt #513


Renaming of demo application

Description
Finaly, after weeks and months of waiting for this simple information, the name of the demo application has been defined.
The short name is now Design Blocks, short name here refers to "the name displayed in the phone home screen".
The long name is Orange Design Blocks, long name refers to "the name displayed in the app switched or on the AppStore".
Technical details

Only change the name in the project settings and in App Store Connect / TestFlight side
Don't change the name of the xcodeproj and any IDE files ; it will imply a boring refactoring because Showcase name is used for the Xcode proejct file, and also in the CI/CD. Showcase remains a better name, we won't change our own internal file. We still had such refactoring and it was a waste of time.

According to @B3nz01d it seems the name of the demo app must be validated by the brand team...

blocking until we get the final name

New values:
Rename the demo app to:
- shortname: DesignToolbox
- longname: Design System Toolbox

Originaly posted there: https://github.com/Orange-OpenSource/ouds-ios/issues/341


Request for feature: enable and disable given detail levels

Hi again,
I am still expanding my app using the excellent TileView library.
One of the things I want to do is to enable the user to "lock" a map, and only give access to some detail levels, even if more are defined.
The reason I want to do this is that I fetch tiles from an external source.
The user can pre-fetch tiles for e.g. 3 zoom levels for a given map. So when the user is using this map, she can be sure what we do not need to load tiles dynamically from the external source, as we have stored them all locally.
But some times, the user want to get more details for an area, and want to "unlock" the map, and enable dynamic fetching from tiles again.
I first tried to do this in the following way.

Define 5 detail levels, even if the user only has fetched 3 levels of tiles.
So defined detail levels will contain scale 1.0, 0.5, 0.25, 0.125, 0.0625
Use the setScaleLimits to (0, 0.25) if the map is locked.

I normally use a setScaleLimits(0,2), so we double the size of the tiles at the innermost zoom level.
Using this approached I managed to avoid getting BitmapProvider to fetch tiles outside the zoom levels I want, but the problem was that the tiles does not get enlarged at the innermost zoom level (which is natural, as we have set the scale limits). So this did not quite work for me.
So what to do? I came up with another solution, which again required me to modify TileView a bit.
My idea was that each detail level could get a '''disabled''' flag, and we could do some simple tricks in the DetailLevelManager to prevent it asking for tiles outside my wanted zoom level.
So I did the following in DetailLevel.java
 private boolean mDisabled;
 public void setDisabled(boolean disabled) {
    mDisabled = disabled;
  }
  public boolean isDisabled() {
    return mDisabled;
  }

Now the DetailLevelManager need to skip the disabled detail levels
 public DetailLevel getDetailLevelForScale() {
    if( mDetailLevelLinkedList.size() == 0 ) {
      return null;
    }
    if( mDetailLevelLinkedList.size() == 1 ) {
      return mDetailLevelLinkedList.get( 0 );
    }
    DetailLevel match = null;
    int index = mDetailLevelLinkedList.size() - 1;
    for( int i = index; i >= 0; i-- ) {
/******** MY CHANGE HERE ************/
     if (mDetailLevelLinkedList.get( i ).isDisabled())
        continue;
/******* MY CHANGE END ****************/
      match = mDetailLevelLinkedList.get( i );
      if( match.getScale() < mScale ) {
        if( i < index ) {
          match = mDetailLevelLinkedList.get( i + 1 );
        }
        break;
      }
    }
    return match;
  }

/****** This method was also added, see comment further down ******/
 public List<DetailLevel> getDetailLevels() {
    return mDetailLevelLinkedList;
  }

So now my app can do the following if the user 'locks' the map:
  List<DetailLevel> detailLevels = tileView.getDetailLevelManager().getDetailLevels();
            for (DetailLevel detailLevel : detailLevels) {
                if (detailLevel.getScale() >= upperScaleLimit) // upperScaleLimit is e.g. 0.25 to hide the two inner zoom levels
                    detailLevel.setDisabled(true);
                else
                    detailLevel.setDisabled(false);
            }

If the user unlocks the map, I do the same thing, except that I do 'setDisabled(false)' for all DetailLevels.
This works. One side effect of this is that the scaleLimit will in effect be bigger, so the library will enable more zoom into the tiles at the deepest level, but then by magnifying the files and NOT requesting them from the BitmapProvider. This also kind of works for me. This means you will get the same zoom with and without the lock, but you will only fetch tiles if the lock is off.
So the the big question. Is this something that can be added to the library? I am sure we can come up with an even smarter implementation, but this kind of works for me.

What about setting the max scale at 0.25 when the map is locked using TileView.setScaleLimits(minScale, maxScale), and/or having the logic of fetching tiles from external or local source in your implementation of BitmapProvider?

The problem of setting max scale of 0.25 is that the library will not "enlarge" the tiles at the innermost zoom level, so you will not be able to zoom in as much as you want (hope this makes sense).
If I only make 3 zoom levels instead of 5, and set the scaleLimit to 0,2 the tiles gets up to 512x512 when you zoom in at max. This will be gone if you just set the maxScale to 0.25 and have 5 zoom levels.
Of course, an alternative is to implement this in the bitmap provider, and if there is a request for a tile with a bigger zoom level than the one you have locked, you can generate a new bitmap and fill it with content from one corner of the bitmap below.
E.g. you lock at bitmap level 17, and if you ask for zoom 18, x, y, return bitmap from 17 upper left quarter. Zoom 18 x+1, y returns bitmap from 17 upper right quarter etc.
But I am afraid this will be a bit heavy/slow, and my proposed change works fairly good, and is very quick.

Ok so you would like to be able to zoom in despite the fact that further zoom level can't fetch data, so the last available zoom level tiles are upscaled. Have i understood right?
If so, i think that this should not require a change or addition to the DetailLevel selection, as it would clutter this part of the library just for this functionality.
Another way to get the upscale effect if you set the max scale at 1 (if i use your first example), and the last available DetailLevel is the one for scale 0.25, would to temporary remove the last two DetailLevel from the TileView (but keep references to them so you can add them back later when the map is unlocked).
But this is not the only way to achieve this. For instance, is that proposal working for you?

I think I tried something like this, but the library kind of invalidates the whole view, and the zoom etc is reset, so it does not look that nice. The user should keep the current 'view' when pushing the button to lock and unlock the view.

where are you at on this @peterLaurence - thoughts?

@peterLaurence solution does not quite work for me. I have spent some time on this, and either I can use my personal modified version of the library, as explained in the start of this thread, or I can modify the BitmapProvider, but I fear it can be too slow.
I can always give that a try though. I will come back to you.

@ohoedneboe can you be more specific when you say that it does not quite work for you (the removal / addition of DetailLevel)?
@moagrius i have thought of another way to achieve this that requires a modification of the cleanup procedure. But i think that what @ohoedneboe is straightforward and simpler. But i don't know yet why my proposed solution doesn't satisfies @ohoedneboe.

@peterLaurence i think he didn't like it because when resetting detail levels, it requires and update, so everything gets redrawn...  is that right @ohoedneboe?
other than that, my thoughts are:

i'm not sure it's a feature that many other people would find useful, but
the changes required seem to be fairly minor, are not breaking, and can be satisfied with a pretty simple API

if there was a fork, and the changes to the API were minimal, and it did not affect behavior in any other way (i.e., if apps that were not using the new API were not affected whatsoever), i'd probably be inclined to merge...
that said, i'm happy for you to run this one from top to bottom if you'd like to, Peter...

Hi,
Yes it required a redraw, and it seemed like I lost the zoom level, so it was not very nice from a users perspective.

@moagrius we could also add the ability to have a custom DetailLevelManager, the current implementation being the base and default implementation. The TileViewwould have a setDetailLevelManager(DetailLevelManager manager), and a user would be able to override getDetailLevelForScale method.
I am proposing this because if another user requires a different behavior for DetailLevel change, he will ask for a library change.
FWIW, i once modified getDetailLevelForScale to see the impact on performance to change of DetailLevel for scales between DetailLevel's scales (e.g if DL for scales 2 and 4 are added, DL for scale 4 is used when the scale is between 3 and 4). It improved the fling performance, to the loss of quality since tiles are upscaled for scale between 2 and 3.

This seems like a pretty good idea to me!

@peterLaurence that sounds great - do you want to run this?

@moagrius yes i can do it when I get time, most probably this weekend.

:thumbsup:

@ohoedneboe @peterLaurence has updated the DetailManager class so you can use the functionality you described with a simple subclass - you can see his changes in pull #297, which was merged into master in version 2.1.5, just now.
post back if you have any questions

@ohoedneboe did this fix work out for you?  can i close this issue?

Yes it did work when I made a subclass of DetailLevel (to hold my enabled/disabled flag) and a subclass of DetailLevelManager (and override the getDetailLevelForScale). I also had to override addDetailLevel so I could add my override DetailLevel class.
One weakness is that when you make your own DetailLevelManager and set it to tileView, you also have to remember to do something like this (or nothing will work)
'''
myDetailLevelManager = new MyDetailLevelManager();
myDetailLevelManager.setDetailLevelChangeListener(tileView); // NOT SO OBVIOUS!!
tileView.setDetailLevelManager(myDetailLevelManager);
'''
This is done in the constructor for TileView for the standard DetailLevelManager, but might not be obvious for a user.
One suggestion is that this is done automatically in the ''' setDetailLevelManager ''' method in TileView.
But thanks for the update!! I guess you can close this issue.
Just one comment on issue #288. I see that there has been added methods '''  public double translateAndScaleAbsoluteToRelativeY( int y, float scale ) ''' but do these functions really take the pan into effect?
I did my own implementation of this, like described in the issue thread, but I had to add the pan factor, or I got the wrong answer. My method looked like this ''' public double realToRelativeY(int y, float scale, double relativeOffset) '''.

but do these functions really take the pan into effect?

no, it's a simple value conversion.  if you are using something like an event point, you'd need to explicitly add the scroll position.  it's not appropriate to assume we need to supply the scroll position, since it's just as likely that a point will be passed in that does already include that.
regarding setting the DetailLevelChangedListener - good point, i'll create an issue
thanks for posting!


docs: add interesting demo

fixed https://github.com/antvis/G2/issues/5421
修改 chart.shape 中 render 函数的定义，和自定义 shape 保持一致

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
4 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.02%) to 89.445%

Files with Coverage Reduction
New Missed Lines
%

src/interaction/tooltip.ts
4
94.89%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
9670

Relevant Lines:
10472

💛  - Coveralls