Compare OS platform and this platform and identify reuse possibilities

[x] Review gobble vs dpmpy

[x] How would we merge these
[x] What is different in terms of expected API
[x] What should we change in dpr-api and what in conductor to converge these together

[x] Review os-conductor vs dpr-api

[ ] What are the key components - what are similar and what are different

Suggestions to converge restapi urls
Current situation
Conductor

Request presigned url - POST /datastore/authorize for all resources at once  (+datapackage.json)

request should have json with perpared list of resource paths, md5 hashes, filesize
response will be a list of filepaths with corresponding presigned urls (plus some other stuff of unknown use)

Finalize upload - POST /package/upload

request should have datapackage.json content inside
response will have json with 'status': 'queued' on success.

DPR

Request presigned url - POST /api/auth/bitstore_upload many times for each resource  (+datapackage.json)

request should have publisher_name, package_name, filepath, md5hash for one file
response will have presigned url, and its query params

Finalize upload - POST /api/package/{publisher}/{package}/finalize

request: no data
response: status 200 on success

Proposal

Request presigned url - POST /api/package/{publisher}/{package}/upload_urls for all resources at once (+datapackage.json)

request should have list of {filepath, md5hash, filesize} for each file
response will be a list of filepaths with corresponding presigned urls

Finalize upload - POST /api/package/{publisher}/{package}/upload_finalize

request: no data
response: status 200 on success

FIXEd. We did analysis and created https://github.com/frictionlessdata/dpr-api/issues/249


Integration tests

This is a highly experimental branch aimed at creating integration testing without the need for a binary being compiled.
It's a lot of WIP, but it does work.  However, you can't run it more than once before it hits a real bug and fails.  You end up removing the default data/broker directories to get the test to run successfully for now.
Mostly pushing this up for @benbjohnson and I to discuss some code/package organization.

Creating an influxd package has the side affect of allowing someone to embed our database in their own system as well.  Seems crazy though...  but now possible.

Good stuff, looking forward to seeing how this goes, and what approach we decide to use.

@benbjohnson @otoolep I'm good with a review on this when you get a chance.  I moved everything back to the cmd/influxd package simply to avoid any debate on it for now.  More important is bringing up real integration tests that can consistently show failure cases.

I messed this pull request up with rebase and we should not merge it.  Closing as a new PR has taken its place https://github.com/influxdb/influxdb/pull/1390


Debian repo has very old chromium versions and unmaintained opensuse repo as well as binaries

OS/Platform
Debian, Ubuntu, and derivatives
Installed
https://ungoogled-software.github.io/ungoogled-chromium-binaries/
Version
112
Have you tested that this is not an upstream issue or an issue with your configuration?

[ ] I have tried reproducing this issue in Chrome and it could not be reproduced there
[ ] I have tried reproducing this issue in vanilla Chromium and it could not be reproduced there
[ ] I have tried reproducing this issue in ungoogled-chromium with a new and empty profile using --user-data-dir command line argument and it could not be reproduced there

Description
Old version of CHromium is present on Debian repo, will be unsafe for people who are unaware.
How to Reproduce?

Go to https://github.com/ungoogled-software/ungoogled-chromium-debian
Notice that everything is outdated

Actual behaviour
Shows outdated repos and binaries for everything.
Expected behaviour
Expected for there to be links to the binaries of the official website
Relevant log output
112.0.5615.165 (Official Build, ungoogled-chromium) running on Debian GNU/Linux (64-bit)

Additional context
Sorry if this is irrelevant, new to github so thought I should contribute.

Even if it was an issue, we cannot do anything about that.

Even if it was an issue, we cannot do anything about that.

Sorry, I don't know much about github so I just said it here, sorry for any inconvenience.


Fix encoded url parameter of url_extract_parameter

Fix https://github.com/prestodb/presto/issues/11203
URI.getQuery returns decoded query parameter. It leads to wrong result if the parameter contains %26(&) and %3D(=).
Also, url_extract_query function uses the getQuery method.
presto> SELECT url_extract_query('http://example.com/path1/p.php?k1=a%26k2%3Db&k2=c#Ref1');
     _col0
----------------
 k1=a&k2=b&k2=c

Updated. Please let me know if I should separate commit to extract decodeUrl method.

It's fine to have it in the same commit since it's simple and logically part of the same change. For larger refactorings, especially when there indentation changes or many usages, a separate commit is helpful.


gdax order (asks/bids) (ETH_USD) returning null on order timestamp

Screenshot: https://ibb.co/c5OKA5

Two possibilities:

That's OK. It means that there is no timestamp given by the GDAX API.
It's a bug in the XChange code.

I'll take a look soon if you don't get to it first.

I've just checked and it looks like it must be the feature in the GDAX API ;)


adds a nightly update of draft release api docs

for the WIP release
Also removing page source link from sphinx generated pages.   These were broken anyway due to jekyll underscore ignore, but don't think we really need them.

build


Why DOES THIS PACKAGE NOT WORK

I installed the packages and followed the get started guide on the docs page. But it throws errors.
Linter says something's wrong. When I hover over driftDatabase(name: ...), this is what I get:
A value of type 'QueryExecutor' can't be returned from the method '_openConnection' because it has a return type of 'DatabaseConnection'.dartreturn_of_invalid_type
I have used build_runner and it generated the database.g.dart file.
There is another problem with _openConnection.
The instance member '_openConnection' can't be accessed in an initializer.
Try replacing the reference to the instance member with a different expression
Any solution?

Make sure you follow the instructions here:
https://drift.simonbinder.eu/docs/getting-started/

I've actually messed up here, _openConnection should return a QueryExecutor when using driftDatabase(). I've updated the documentation accordingly.

I got here also with the same issues after following the steps in the documentation. I assume the documentation update is not released yet as it is still shows that _openConnection returns DatabaseConnection and not QueryExecutor.
The other issue @kq1231 mentioned ('The instance member '_openConnection' can't be accessed in an initializer.') still exist with following the steps stated in the documentation.
If anyone will run into this, my solution was simply making _openConnection a static function.

Well this is embarrassing - thanks for pointing this out again! This was fixed, but then I've released drift 2.19.2 with cherry-picked commits backported from develop which then rolled this back.
It's fixed again now - the docs update for drift 2.20.0 correctly returns QueryExecutor and also makes the method static.


Fix #2029 - add Produces JSON annotation to AppTasksResource

Fixed this issue by (re-) adding an @Produces annotation to AppTasksResource. Removed the explicit annotation on indexJson since the class annotation will hold for all methods that do not otherwise override the annotation.

Cool! Thx for finding a bug that I introduced. :+1:

Since you removed a method annotation: In general, I prefer annotations for every method. I checked and in some classes, we do have that, in some classes, we don't.
What do you think?
I also would love a way to avoid this kind of mistake in the future. Any ideas? Do you know why this didn't result in an error in our integration tests?


Skip default stateRoot and codeHash in accounts

In turbo-token we'll only need nonce and balance. To keep "compatibility" with eth1 (e.g. same state root hashes), we nevertheless consider the account to have a stateRoot and a codeHash. But since they're usually default values, they can be set to 0 or come with a flag, to reduce block data.

This would reduce data size, but come at the cost of speed. The EE would have to add the default values for stateRoot and codeHash to the account and re-encode to be able to verify the proof.


Feature/githubci

Supporting esp32 and other microprocessors in the "Arduino" platform.
Use continuous integration to test other environments.


Different arg order of  DynObj TryGetValue and TryGetTypedValue<'T>

In most cases i'd suggest having the DynamicObj as the last arg

Using this as a starter to improve the whole the module and add various tests.


Low Performance when Preparing Data

OS: Ubuntu 20.04
Forwarder: NFD
Problem: When using python-ndn to form data packets from 8000-sized byte chunks (streamed from a FTP server), I have found that app.prepare_data() is really expensive or has poor performance.
When testing it with 100MBs, to just stream the file and write the bytes to disk, It takes 1.99 seconds to complete. Doing that same process but just preparing each chunk using app.prepare_data() (doing nothing with the chunk for comparison reasons), It takes 36.75 seconds to complete. In addition, this scales with the data size which is logical as I am calling prepare_data() more. Is this expected? Is there something in particular that makes prepare_data take awhile? Any alternatives to prepare_data?
I tested this using the script below. If you run it yourself, you will have to setup a file server using vsftpd and create a guest user which has /files/mbstest at the home directory.
from ftplib import FTP
import sys
import time
import logging
from ndn.app import NDNApp
from ndn.types import InterestNack, InterestTimeout, InterestCanceled, ValidationFailure
from ndn.encoding import Name, Component, InterestParam, MetaInfo, ContentType

def ftp_download(app, translation):
    ftp = FTP(translation["host"], translation["username"] if translation["host"] != "null" else "anonymous", translation["password"] if translation["password"] != "null" else "")

    size = ftp.size(translation["filename"])
    if not size:
        return False
    final_segment_num = (size//8000)-1 if (size%8000==0) else (size//8000)
    final_id = Component.from_segment(final_segment_num)
    mi = MetaInfo(freshness_period=1000, final_block_id=final_id)
    logging.info(f'Size: {size}, Final_segment: {final_segment_num}, Meta: {mi}')

    packet_number = 0
    int_name = Name.from_str("/GUEST/FILES/MBSTEST")
    info = open('file_name', 'wb')

    def handle_ftp_binary(byte_chunk):
        nonlocal packet_number, mi
        info.write(byte_chunk)
        #data_packet = app.prepare_data(int_name + [Component.from_number(packet_number, Component.TYPE_SEGMENT)], byte_chunk, meta_info=mi)
        packet_number = packet_number + 1

    logging.info(f'Streaming the File Now')
    resp = ftp.retrbinary("RETR "+translation["filename"], callback=handle_ftp_binary, blocksize=8000)
    logging.info(f'Streaming Complete')
    info.close()
    ftp.quit()
    app.shutdown()

def main(app) -> int:
    logging.basicConfig(format='[%(asctime)s]%(levelname)s:%(message)s',
                        datefmt='%Y-%m-%d %H:%M:%S',
                        level=logging.INFO)
    start = time.time()
    translation = {}
    translation["host"] = "localhost"
    translation["username"] = "guest"
    translation["password"] = "welcomehere"
    translation["filename"] = "/files/mbstest"
    ftp_download(app, translation)
    print(f'Total time: {time.time() - start} seconds')

if __name__ == "__main__":
    app = NDNApp()
    try:
        app.run_forever(after_start=main(app))
    except FileNotFoundError:
        logging.warning(f'Error: could not connect to NFD')

Hello. After some investigation I think the most time consuming part is signing. Preparing data packets with SHA256 hash only takes about 2s but with an ECC key will take 40s.
Here is the calling graph showing the hot path:

Since there is nothing I can do for this specific performance issue (prepare_data), I will close the issue for now.


bug template use multi-line input for version

--version is 5 lines and fits better in a textarea input.

I just submitted a bug where I wanted to add additional info to list the other version I'd experienced the same bug on, but the input area was only 1 line.
It's also inconsistent with the following question being a textarea input for reth db version which is only 2 lines, and almost never changes (unlike when I experience a bug across multiple versions).


Install auditd and some rules on what to audit

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

If a previous version of the STIG Appliance Customization has been added to an Appgate appliance, the appliance should be rebooted after this customization is applied.  Observed behavior without a reboot is ~35% compliance, but after a reboot that number is ~75% and will be slightly higher if the cz user has a password set.


Updated testing directories and file names

Patch:

Removed .env by adding to .gitignore

Scripts:

'npm run unit-test': runs all unit tests
'npm run integ-test': runs all integration tests

File Changes:

all unit tests must end with ".unit.test"
all integration tests must end with ".integ.test"
e2e directory changed to /testing directory

holds all system-wide tests (e2e, system, load, performance)

Great work

Feature working as intended, runs only unit or integration test files/scripts depending on command.


add_labels_in_df: several fixes

remove extra copy()
don't pass plugin_labels -  these are available in self.labels
fix add_as_an_alias to show which label was added as an alias (previously it was showing that new was added as an alias always, although sometimes it was in reverse)
make sure applied_alias is set only when add_as_an_alias is called

Signed-off-by: Vadim Rutkovsky<EMAIL_ADDRESS>

This is not needed anymore


⚠ Bofrost.at has degraded performance

In 6ac155c, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1630 ms

Resolved: Bofrost.at performance has improved in 7b6db62.


cmd/compile: internal compiler error: getinarg: not a func int

gc crashes on the following program:
package n
func F(interface{int}){}
func s(){F(3)}

go.go:3: internal compiler error: getinarg: not a func int

go version devel +71832ff Fri Jul 3 21:39:04 2015 +0000 linux/amd64

This looked familiar to another issue that I submitted a patch for. The change was accepted (https://go-review.googlesource.com/#/c/13747/). I double checked, and that patch also fixes this issue.
I'm not sure what the right protocol is for officially closing this out, but I'm confident this is a non-issue now.

Confirmed fixed.


Publish API doc

Need to publish the API Swagger doc.
Create link to swagger doc and include in Github pages under resources

#8 we want to use OpenAPI3, instead of Swagger, starting in v1.2.0.  Once #8 is closed, we can confirm that the api spec has a publicly reachable url.

Looks like a good idea to me

parcore.org uses github pages right @carlwilson ?  It is possible to host the swagger ui in github pages, which I think would be better.
https://medium.com/@crshnburn/embed-swagger-ui-in-github-pages-9c77a86b2fd2

Will discuss in the call, today.


Expose ValidatorInfo struct

Description
This PR exposes and utilizes the ValidatorInfo struct. It represents a data transfer object, which is used to hold all validator data retrieved from the smart contract.
Note: It is worth to consider merging it with the ValidatorMetadata object at some point.
Changes include

[ ] Bugfix (non-breaking change that solves an issue)
[ ] Hotfix (change that solves an urgent issue, and requires immediate attention)
[x] New feature (non-breaking change that adds functionality)
[ ] Breaking change (change that is not backward-compatible and/or changes current functionality)

Checklist

[ ] I have assigned this PR to myself
[ ] I have added at least 1 reviewer
[ ] I have added the relevant labels
[ ] I have updated the official documentation
[ ] I have added sufficient documentation in the code

Testing

[ ] I have tested this code with the official test suite
[ ] I have tested this code manually

What is the problem being solved here?

What we want to achieve here is returning an object representation of validator info instead of map (https://github.com/0xPolygon/polygon-edge/pull/1162/files#diff-090d11924b8e0865632ddb3e8da73ceb5b944c6ee26ee8be367f8e626097480aR46), which is more error prone when extracting values and it has some repetitions in code.
So far this was mostly used in e2e tests, so instead of remembering the keys for extracting values for map (https://github.com/0xPolygon/polygon-edge/pull/1162/files#diff-35f7a314332bee5e2f8472071db16a9916b25e85662af4cca846deb81b78800cL635-L636), we already have object representation which is more straight-forward to use.


wallet/content: use new bip44 account for each piece of content

In order to be better compatible with the bip44 standard, we shouldn't be using more than 20 addresses in a row that aren't receiving payments. A solution is to assign a different bip44 account for each piece of content, rather than an individual address. This isn't perfect, because if you write many pieces of content, the bip44 wallet will not know how many accounts to use. Nonetheless, it is slightly more desirable than skipping many addresses in a derivation. Furthermore, for privacy reasons, it is not desirable to use the same address for multiple transactions, so allowing each payer to derive a new address for each payment also improves privacy.

I now think this isn't worth the cost of implementing.


Cannot sign up for All England alert if already signed up for another alert

In _get_or_create_bookmark(), bookmark_args is set to {} the user signs up for an All England alert.
This means that the next line, bookmark_cls.objects.get_or_create(user=user, **bookmark_args) is effectively bookmark_cls.objects.get_or_create(user=user), which will either return the single existing bookmark for the user, or raise MultipleObjectsReturned if the user has more than one bookmark.
Fix incoming.

Not sure if related - but I am signed up and didn't get the NHS in England alert. (I also didn't get the Islington CCG alert, should I make a separate issue?)

Won't be related, as you've already signed up.  And alerts are still being sent, which would explain why you haven't received all yours yet.

Not sure if relevant but I never received the All England alert - all others are there.


Pushbullet + IFTTT Not working?

I followed the guide, before I used to say to my echo 'echo, open the calculator' and it would say it can't do it, now after linking everything, setting up the IFTTT stuff, it replies 'welcome to calculator. you can say things such as what is 1+1" and so on.

I'm unclear, are you using a Google device like a nest hub, home or mini (Google Assistant) or are you using an Amazon device (Echo)?
Of note, IFTTT does not support Amazon echo devices - or more precisely Amazon does not work with IFTTT - at one point it did, but Amazon pulled out of the partnership with IFTTT and then that was that.  Luckly, the PC Commander skill was able to replace it.
The reason I ask is that your write up says your using an echo (Amazon), but you are showing an IFTTT applet that says your using a google device.
Can you please confirm the device you are using, and relook at the setup help for it and see if you can find an error in your setup.
https://github.com/roblatour/Push2Run/blob/main/help/setup.md
If not, please let me know which device you are using and what setup.
Also, and as an aside,  I just tested it here, and it is working as expected with my Google device  - so the Google - IFTTT - Pushbullet - Push2Run sequence is good.   Also, I tested it with my Amazon device and it is working as expected with there too - so the Alexa - PC Commander - Pushbullet - Push2Run sequence is good too.


RWD (Beta) Accessibility Anti-Patterns

Affected page
Learn More About CSS Pseudo Selectors By Building A Balance Sheet / Step 44
And by extension, steps 45 and 46.
Discussion
There two accessibility anti-patterns in step 44:
A) Assigning a tabindex value greater than 0 to an element
B) Inserting a non-interactive element into the tab order (i.e. assigning a tabindex value greater than -1 to a non-interactive element)
Concerning A, the overwhelming majority of accessibility professionals will tell you to never use a tabindex higher than 0. Granted, because there are no real interactive elements in this particular course project then using tabindex=1 on all three elements does not technically cause them to be placed out of the natural flow of keyboard focus (since they are the only elements in the flow). But this is a very contrived example and most likely in a real world application there would be other interactive elements on the page and thus setting tabindex to 1 would adversely affect keyboard accessibility. I fear that using tabindex=1 here legitimizes its usage, even with the disclaimer. Most beginners are not going to have enough experience with accessibility to understand the ramifications of using a tabindex greater than 0. But really, it's an anti-pattern that should not be utilized in a teaching environment.
References
WebAIM: Keyboard Accessibility: Tabindex
Don’t Use Tabindex Greater than 0
Elements should not have tabindex greater than zero
Using tabindex
Concerning B, while the intent of enhancing accessibility is noble, inserting these non-interactive elements into the tab order can actually reduce accessibility. Users, especially users of assistive technology have certain expectations about elements that can receive keyboard focus, primarily that they are interactive and provide some sort of functionality, which these elements do not. Also, a keyboard focusable element should have a proper name and interactive role defined in the accessibility tree, which these elements do not. The solution to enhancing accessibility in this particular example is not to add keyboard focus to the content but rather to make the content more semantically meaningful, most likely using HTML tables, which has the added benefit that screen readers will provide their own keyboard shortcuts for traversing the tables.
References
Use the tabindex attribute
MDN: Focusable elements should have interactive semantics
WebAIM: Keyboard Accessibility
no-noninteractive-tabindex
Recommendation
Remove all references to tabindex in steps 44, 45, and 46. Step 44 merely adds the tabindex, so it could possibly be removed completely. Step 45 demonstrates the usage of the :hover pseudo class, which could still be done without the tabindex attribute. Step 46 demonstrates the usage of the :focus pseudo class. Since there are no real focusable elements on the page you would need to introduce some if you wanted to keep this step, which you could have the user add in step 44.

@bbsmooth As always, a huge thank you for taking the time to share your expertise.
What you have shared makes sense. Unfortunately, as Campers have likely no knowledge of JavaScript at this point, we cannot make use of some of the alternative recommendations.
I suppose we do not want to remove the usage/teaching of :hover or :focus or tabindex. I suggest we take this issue, and discuss from the beginning: Should this project be completely re-worked?
I am unsure why it does not use the HTML table elements. @nhcarrigan Can you remember?

@ShaunSHamilton I would probably argue that we might not want to introduce tabindex in these new courses. Yes, it is a part of the HTML standard, but its legitimate use cases are quite limited and require JS, such as managing focus in SPAs or custom widgets, so it is going to be hard to use tabindex properly without adding a lot of complexity.
I can think of one example where JS is not needed and that's with making tables more accessible to keyboard users:
Under-Engineered Responsive Tables
So if we did update this particular course to use tables then we could introduce tabindex=0 to make the tables more accessible. But even then I think we would need to make it very clear that this usage is for a very specific accessibility issue.

Thanks for bringing this up @bbsmooth!
Yes, I agree that removing tabindex is a good approach. I'll be looking at modifying this project to use an HTML table, after discussion with Shaun, at some point this week. 🙂


Swift 3 support

Discuss the topics for Swift 3 support. We are working on swift3 branch to support Swift 3. Once Xcode 8 RTM, we merge it to master.

[x] Fix all build errors #222
[x] Improve all enums #218
[ ] More Swifty APIs
[x] Update playground

Some remain works need to be done

[x] BorderSide in the demo doesn't work
[x] Blur effect in playground app doesn't work - It doesn't change when we change "Blur"
[x] Predefined gradients in playground app doesn't work
[x] Gradients in playground app doesn't work
[x] Mask option "None" in playground app doesn't work
[x] Transition in playground app crashes
[x] Container Transition in playground app doesn't work
[x] Fix all purple colors
[x] Presentation transition doesn't work
[x] Upgrade activity indicators
[x] Fix all factor methods with make***
[x] Fix all methods from config*** to configure***
[x] Fix all unwrapped*** variable.
[x] Remove repeatCount in Animatable

can you update xcode 8beta6 please?

@lastmove has taken the initiative on this, please have a look at https://github.com/IBAnimatable/IBAnimatable/commit/22475b3911ef6b11938ecac58fb21f19442a957b
If you have time, could you please help us to check the changes? we also discuss a big change about access scope on #285

Swift 3.0 Released!

Not getting updated code on 2.8.1

v2.8.1 is swift 2.3 support, if you want swift 3, you have to target the master directly, the swift 3 release will arrive this week or next one.

Okay

Finally, we close this now, well done guys.


docs(UI): upgrade to Angular CLI V6

Description:
Updates docs app dependencies for Angular CLI, Material and framework
Related issue (if exists):

Coverage remained the same at 96.781% when pulling 3c05d22ca23e6ee73db2c7fa55c4be6482394f57 on brandonroberts:docs_app-upgrade-deps into 5fc893c46a8a0eb23c6b8b8f3fb7d7c82d7b3858 on ReactiveX:master.


Add Python specific test suite to allow migration to Python3

What type of PR is this?
/kind feature
Optionally add one or more of the following kinds if applicable:
What this PR does / why we need it:
Allow migration to Python3 - we want to split presubmit verify-all to a language dependent presubmits.
Special notes for your reviewer:
Related to #1470

/cc @wojtek-t

/lgtm
/approve


Adds delaySeconds field to healthchecks

The tests are currently failing.

Removed residency since it is on another PR and made the tests pass. Could you approve and merge @timoreimann ?

@cihangirbesiktas as expressed by myself and @marco-jantke, extending NewDefaultHealthCheck doesn't seem necessary: We apparently gain nothing nothing from it for now as we chose the current Marathon default value for delaySeconds, while we risk diverging from potential changes that may happen in the future.
If you think there's a good reason to keep it, I'd be grateful for an explanation. Otherwise, I'd prefer to see that part getting removed.

What kind of test are you expecting?


Fix location of virtualenvwrapper.sh

Either I'm doing something wrong, or the template is broken :-). But for me, the pip installs the virtualenvwrapper.sh script in ..../homebrew/bin, not in ..../homebrew/shared/python.

Closing PR as I moved to a boxen- and python-less world, so I will likely not follow up. Besides, #29 is sort of a duplicate anyway.


CLion Virtual Include Fixes

Addresses problems with the virtual includes handler:

Fixes absolute strip prefix
Fallback to virtual includes for include prefix (no longer an error)
Fallback to virtual includes if a source file is generated

Also removes the -ibazel support and adds integration tests.

Is there an ETA to this pull-request changes?

Is there an ETA to this pull-request changes?

I'll check it this week

@LeFrosch I almost understand the whole change, but let's have a chat on Monday as the PR description is too concise imo. I've also noticed it does not work with bzlmod (but I believe the original code didn't work either), so maybe consider this as a next step (or improve here?)


[Auto-generated] Update dependencies

Update dependencies
Automatically created PR from ci/dependency-updates.
The PR is based on the 'CI - Update dependencies PR' workflow in SINTEF/ci-cd.
To do

[ ] Check that the diff is sensible, and that tests and builds pass with the new dependency versions.
[ ] Make sure that the PR is squash merged, with a sensible commit message.

Codecov Report
Patch and project coverage have no change.

Comparison is base (a6eb19d) 67.25% compared to head (18975ed) 67.25%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #88   +/-   ##
=======================================
  Coverage   67.25%   67.25%
=======================================
  Files          14       14
  Lines        1124     1124
=======================================
  Hits          756      756
  Misses        368      368

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Stuck when using or screen-off

Need to double click screen many times or keep trying press power button wake screen on, anyone have same occur? Or just my machine issue.
Dev: iPhone 12
iOS: 14.4
u0: v7.0.1

The new version does not fix this. Yes I fs restored, yes I’ve updated then restored again etc etc. I’ve tried all steps. It still persists. iPhone 11 Pro Max 14.3

I’d also like to know that it does not do this when it’s plugged into the computer or charging.

I’d also like to note that it does not do this when it’s plugged into the computer or charging.

you are for sure using the newest jailbreak through altsore?

the exploit process is done through altstore not fugu app

Welp here what I did. I installed Fugu14 last night, I then saw there was an update today. First I tried restorefs just updating through alt store. That didn’t work. Then I thought ok I’ll do a restorefs then download the new version from GitHub compile it put it on and then install alt store then I’ll be set. That didn’t work. I’m not quite sure what much else to do. I will wipe my Mac downloads folder restore one more time in order to be completely sure. I will update here once finished.

you don't need a mac or compiler for the new version of unc0ver and altstore
the only thing you need is altstore on your phoneeee

you don't need to sideload or compile fugu14, all that is fone through altstore, you messed up by restoring your rootfs

That makes no sense. Restorefs is just setting the phone back to the way it was like the untether was never installed..
What you’re purposing is just installing alt store then installing uncover?

yes. please report back

Ok I understand what I did wrong. The problem is my alt store doesn’t pop up and say “do you want to untether?” It just side loads unc0ver. That’s why I wasn’t understanding what was wrong. I wonder why it’s not asking me to untether

did you solve?

Nope. Still looking into why it’s not prompting me to install the untether on AltStore. Extremely nerve wracking. I see a reddit thread saying the same thing and have begun to look through filza for tenant traces of the first version of untether and remove them. But have yet to find any.
Any ideas on why it’s not asking me to install the untether?

did you update alt server on your pc?

Nope. Still looking into why it’s not prompting me to install the untether on AltStore. Extremely nerve wracking. I see a reddit thread saying the same thing and have begun to look through filza for tenant traces of the first version of untether and remove them. But have yet to find any.
Any ideas on why it’s not asking me to install the untether?

upon looking at the main.swift source code, look here

perhaps compiling fugu 14 w this value set to "true" will solve it? but please refer to issue #142
me and some other guy came up w a solution for another problem via editing the source code under main.swift

That’s exactly what I was looking for in filza. Thank you. I don’t know how you found that so fast. Yes alt server was updated.  Let me give this a true I’m certain there’s a check somewhere set to true saying that fugus there already even though it’s not. I have commented on 142 and your fix I had to implement to get the first version to work. I appreciate all your help. Lemme try this and I’ll let ya know how it works out.

No dice. Still no prompt in AltStore when trying the above. Just to be sure. The steps would be:
install alt store
Go to uncover page and click open with alt store
Sign in alt store
Alt store signs uncover and SHOULD PROMPT to install untether...
that’s it correct? That’s all I should have to do?
I wonder if there’s a command I can run in terminal to complete remove fugu14
also I appreciate you taking the time to help me figure this puzzle out.

so let me get this straight. you are already jailbroken or not? :)

yes all you have to do with the new altstore is side-load unc0ver from unc0ver.dev, after clicking "open in altstore" the prompts should be activated like this tweet https://twitter.com/altstoreio/status/1453882557628502019?s=21

i take it you were previously jailbroken on old fugu exploit and old unc0ver, correct?

I was already jailbroken tethered with unc0ver.
I installed Fugu14 before the update and then started having the screen wake issue.
Today I saw the update and compiled the néw fugu. Once I saw that wasn’t the way to do it I tried to set everything back via fsrestore and then install alt store again and side load unc0ver. Now it doesn’t prompt to install the untether.
Wether it’s because I had fugu installed already or it’s a bug with iOS 14.3 and 11 pro Max I’m still unsure. I’ve tried all of our ideas and still no prompts. I was just gonna future restore but I don’t believe the current sep is compatible with 14.3 so that’s outta the question as well.

I use the latest version of u0 altserver, still stuck and auto reboot oftenly.. Today I'm trying restore my iOS setting and wipe everything then jailbreak again, keep updating.

I’m looking for the plist that contains the placeholder for the install. Should be able to tell AltStore to trigger the pop up question is just where is it.

have you tried opening it with a text editor?

Yeah still poking around. Found an interesting Lil bit in the code  http://unc0ver.dev/fugu14app
I assume this is a payload file that is supposed to trigger alt store. Doesn’t do anything for me except install and not run and still won’t trigger AltStore. Still workin on it. Any ideas please throw them my way.


Rampart - sometimes game intro is not shown (seems to work normally after that).

Similar issues #31 #76

I could reproduce it by pressing a button as soon as the title screen appears. But one needs the original ROM for loading the game instead of the in-build fake ROM.

But one needs the original ROM for loading the game instead of the in-build fake ROM.

Sounds like an issue on its own.
Generally built-in fakenROM does exactly the same as Handy's ROM. I don't know what might be the difference.

The boot time is different. Either for me to hit the button fast enough or because some registers are different.


[Wasm] Remove js glue code for linking

Remove js glue code since it is not needed since emscripten 2.0.5:
- The WebAssembly table is now created and exported by the generated wasm
  module rather then constructed by the JS glue code.  This is an implemention
  detail that should not affect most users, but reduces code size. (#12296)

And remove envoy_wasm_cc_binary since we no longer need to deal with js files
cc @lizan @PiotrSikora
Signed-off-by: Pengyuan Bian<EMAIL_ADDRESS>
For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md
Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]

Nice, I thought you're moving wasm_cc_library to proxy-wasm-cpp-sdk, if that's the case it might make sense to keep envoy_wasm_cc_binary wrapper.

Yeah I am moving it there: https://github.com/proxy-wasm/proxy-wasm-cpp-sdk/pull/68. Js library seems to be the only reason why we have envoy_wasm_cc_rule, not sure why we'd need this indirection? Is it for consistency with other envoy_* rules?

Yes, JS glue was the only reason for envoy_* rule.
But if we're moving everything to C++ SDK, then we should probably wait until it's merged there and update the C++ SDK SHA in this PR.

Ok sg, will wait for the sdk PR merged then.

I needed this (but not removing envoy_* rules) to enable Windows/Arm64 wasm, https://github.com/envoyproxy/envoy/pull/14114

@lizan updated the proxy wasm cpp sdk sha and cpp wasm build is using the rule there now.

Close this in favor of https://github.com/envoyproxy/envoy/pull/14114


IPv4/v6 problems trying to connect to the server

Hey all,
I'm not 100% sure if it could be an express problem or just an error in my network configuration, I hope someone could give me a hand understanding this error.
I'm using this simple code to create a server:
'use strict';

var express = require('express');

var PORT = 8080,
  SERVER = 'http://localhost:' + PORT;

var app = express(),
  server;

app.get('/', function(req, res) {
  res.sendStatus(200);
});

In the terminal, I'm running the following commands:

$ curl -v http://localhost:8080/

Hostname was NOT found in DNS cache
Trying ::1...
connect to ::1 port 8080 failed: Connection refused
Trying fe80::1...
connect to fe80::1 port 8080 failed: Connection refused
Failed to connect to localhost port 8080: Connection refused
Closing connection 0
curl: (7) Failed to connect to localhost port 8080: Connection refused

but:

$ curl -v http://<IP_ADDRESS>:8080/

Hostname was NOT found in DNS cache
Trying <IP_ADDRESS>...
Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 8080 (#0)

GET / HTTP/1.1
User-Agent: curl/7.37.1
Host: <IP_ADDRESS>:8080
Accept: /

< HTTP/1.1 200 OK
< X-Powered-By: Express
< Content-Type: text/plain; charset=utf-8
< Content-Length: 2
< ETag: W/"2-d736d92d"
< Date: Fri, 03 Apr 2015 21:16:30 GMT
< Connection: keep-alive
<

Connection #0 to host <IP_ADDRESS> left intact

I'm using<EMAIL_ADDRESS><EMAIL_ADDRESS>running on OSX 10.10.2 (14C109).
Any ideas?
I'll really appreciate any help.

You are correct in that it is not an Express problem, as Express doesn't actually listen to any ports: it is just the standard Node.js HTTP server (https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback).
As far as I know, Node.js 0.10 does have problems listening on IPv6. Have you tried with Node.js 0.12?

Thanks for your feedback, switching to v0.12.2 magically works. Now the problem is, I can't just switch to v0.12 because lot of modules aren't ready. I'll continue investigating how to fix this IP4/6 show and in the meantime just use <IP_ADDRESS> instead of localhost when I write my unit tests.

Another solution is to do
var server = app.listen()
var ip = server.address().address === '::' ? '[::1]' : '<IP_ADDRESS>'
var url = 'http://' + ip + server.address().port

There are 2 basic tests:

$ curl -g -6 'http://[::1]:8080/'

Access from Chrome on Windows with their default IPV6. http://[::1]:8080
Is it tested at all?


Add motor reflected inertas

This PR adds the motor reflected inertias to the robot dynamics simulation.
Motivation and Rational
In case of a humanoid robot, the joint space mass matrix can be ill conditioned, which can lead to numerical instability of the simulation if the matrix needs to be inverted (this problem is typically agravated in the case of robots of small dimensions). For solving this problem, the motors dynamics can then be introduced in the floating base system dynamics and the respective rotor inertias can be reflected in the robot mass matrix. The so called reflected inertias may be interpreted as a physically consistent regularization term for the original mass matrix [1].
The motor coupling is defined as follows:
\begin{aligned}
\dot{s} &= \Gamma \dot{\theta} \\
\tau &= \Gamma^{-\top} \left( \tau_m + \tau_f \right)
\end{aligned}
Where $\dot{\theta}$, $\tau_m$, $\dot{s}$, $\tau$ are respectively the motor velocity and torque, the joint velocity and torque, $\Gamma$ is the transfer matrix of a frictionless [gearbox + coupling] system. $\tau_f$ is the friction in the that gearbox and coupling system, grouped in a single component, expressed in the motor space, and which could typically be approximated to a Coulomb/Viscous model ( $\tau_f = -K_{v} \dot{\theta} -K_{c} \operatorname{sign}(\dot{\theta})$ ). Here we will keep the friction as a generic term.  The motor dynamics in motor space is then posed as follows:
\begin{equation}
I_{m} \ddot{\theta} = \tau_m+\tau_f-\Gamma^{\top} \tau
\end{equation}
Where $I_m$ is the diagonal matrix of motor inertias (in the motor space), and $\ddot{\theta}$ the vector of motor accelerations. In joint space we can write:
\begin{aligned}
\Gamma^{-\top} I_{m} \Gamma^{-1} \ddot{s} &= \Gamma^{-\top} \left( \tau_m+\tau_f \right) - \tau \\
\tau &= \Gamma^{-\top} \left( \tau_m+\tau_f \right) - \Gamma^{-\top} I_{m} \Gamma^{-1} \ddot{s}
\end{aligned}
Once replaced in the floatng system equations, we get the modified mass matrix:
\begin{equation}
\overline{M}=\left[\begin{array}{cc}
M_{b} & 0_{6 \times n} \\
0_{n \times 6} & \overline{M}_{s}
\end{array}\right]
\end{equation}
With $\overline{M}{s} = M_s + \Gamma^{-\top} I{m} \Gamma^{-1}$.
and
\begin{equation}
\overline{M}=
M +
\begin{bmatrix}
0_{6 \times 6} & 0_{6 \times n} \\
0_{n \times 6} & \Gamma^{-\top} I_{m} \Gamma^{-1}
\end{bmatrix}
\end{equation}
References
[1] A. Albu-Schäffer, C. Ott, and G. Hirzinger, “A unified passivity-based control framework for position, torque and impedance control of flexible joint robots,” Int. J. Rob. Res., vol. 26, no. 1, pp. 23–39, 2007.
[2] A. Albu-Schäffer, C. Ott, and G. Hirzinger, “A unified passivity-based control framework for position, torque and impedance control of flexible joint robots,” Int. J. Rob. Res., vol. 26, no. 1, pp. 23–39, 2007.
Interface Changes

New library input parameter robot_config.SIMULATE_MOTOR_REFLECTED_INERTIA: this new field in the robot_config input structure toggles ON/OFF the feature. For making sure that the simulation of the reflected inertia is seen as a parameter independent from what a given driving controller is doing (using or not reflected inertia), I named the parameter "SIMULATE_MOTOR_REFLECTED_INERTIA" and not "USE_MOTOR_REFLECTED_INERTIA". The parameter is stored in the class Robot.
New library input parameter config.MOTOR_REFLECTED_INERTIA_COUPLING: this new field in the robot_config input structure sets the coupling matrix $\Gamma$, as explaned in this section, except that we split the overall coupling in a pure coupling $\Gamma$ and the gearbox ratios $G$ (for instance, for iCub, $G=1/100$), such that:

\begin{equation}
\dot{s} = \Gamma G \dot{\theta}
\end{equation}

Input signal motorInertias: This represents the quantity $\Gamma^{-\top} G^{-1} I_{m} G^{-1} \Gamma^{-1}$, while the input joint torques signal torque represents $\Gamma^{-\top} G^{-1} \left( \tau_m + \tau_f \right)$, as the friction and the coupling could be computed in a dedicated joint/motor model block, as explaned in https://github.com/dic-iit/matlab-whole-body-simulators/pull/9#issuecomment-724104865.

Implementation Changes
Every use or retrieval of the mass matrix $M$ uses $\overline{M}$ instead, defined by:
\begin{equation}
\overline{M}=
M +
\begin{bmatrix}
0_{6 \times 6} & 0_{6 \times n} \\
0_{n \times 6} & \Gamma^{-\top} G^{-1} I_{m} G^{-1} \Gamma^{-1}
\end{bmatrix}
\end{equation}

Preliminary comment, ignore if it will be changed: there is any specific reason not to make the motorInertias an attribute of the Robot class?

Preliminary comment, ignore if it will be changed: there is any specific reason not to make the motorInertias an attribute of the Robot class?

It's a good point @traversaro . There was not particular reason, except that:

I had in mind that motorInertias is an input that can be porvided for instance by an external block modelling the joint actuation motors/gearboxes/couplings. Actually I made a mistake, as that external block would already compute the product $\Gamma^{-\top} I_{m} \Gamma^{-1}$, then sent to the step_block of the robotDynamicsWithContacts library as the motorInertias input.
Having that in consideration, in a near future, we will have to deal with backlash. In that case, when the motor shaft is in the dead zone gap, the torque is not transmitted and the rotor inertia is not reflected in the robot mass matrix. When that happens, the resulting effect in the joint space depends on the coupling and where the backlash occurs (before or after the coupling). So the safest way to go, for avoiding interface changes, would be to compute  $\Gamma^{-\top} I_{m} \Gamma^{-1}$ in the joint model.
As motorInertias is never changed by the functions using it, MATLAB/SIMULINK optimization avoids to copy the variable and so kind of uses the same variable allocated in the memory. So I didn't consider that having motorInertias as an attribute would improve the performance.
We could pose the same question about the joint torques, which could also be properties of the robot.

In addition, I thought about addressing this a bit later when optimizing the code.
What do you think?

What do you think?

If motorInertia are not constant and instead it is an input, then I totally agree in it not being an attribute of the class.

Great. Then maybe we should call the input jointInertias, as the variable part, and a parameter motorInertias as a property of the class Robot, representing the vector of fixed motor inertias in the motor space. Then, an hypothetical joint model block should retrieve those parameters from the class at the initialization of the simulation, instead of getting those from some configuration script.
I'll leave this change for the next PR.

As a word of clarification, Eq. (1) holds if the angular motor kinetic energy is due to its own spinning only, and the center of mass of each motor is along the motor axis of rotation. Otherwise, off-diagonal terms in (2) are present.

For avoiding confusion, removed motor coupling parameter Robot.MOTOR_REFLECTED_INERTIA_COUPLING since it is not used yet. PR is ready for review.

How to validate this PR

run the test script test_matlab_system_19.mdl as usual, with its default parameters. => You should observe the same usual behavior of iCub.

New default parameter in configRobot.m:
% Reflected inertia
Config.SIMULATE_MOTOR_REFLECTED_INERTIA = true;

Future tests will further stress the motor reflected inertia feature when a simple controller will be added to the tester model.

Great @nunoguedelha, everything's smooth!


Add tutorial using just Lightning Module

It'll be added as a quickstart to readme

I`ll create a test from the quickstart

Here is my initial draft implementation please comment on this
import math

import torch.nn as nn
from torchmetrics import Accuracy
from utils.quickstart_modules import YourLightningDataModule, YourLightningModule

from art.checks import CheckScoreCloseTo, CheckScoreLessThan
from art.metrics import MetricCalculator, SkippedMetric
from art.project import ArtProject
from art.steps import CheckLossOnInit, Overfit, OverfitOneBatch

def test_quickstart1():
    """Simplest possible usage of ART"""

    datamodule = YourLightningDataModule()
    model_class = YourLightningModule

    project = ArtProject(datamodule)

    # For this to work we should allow providing empty checks. And just print warning... man use checks.
    project.add_step(CheckLossOnInit(model_class))
    project.add_step(OverfitOneBatch(model_class))
    project.add_step(Overfit(model_class))

    # For this to work we must omit any calls to metric_calculator or set_metric_calculator
    # I still support idea of Metric calculator but it should be explicitly governed by the user. In the leter phase of the development.
    project.run_all()
    project.print_summary()

def test_quickstart2():
    """Adding checks to ART"""

    datamodule = YourLightningDataModule()
    model_class = YourLightningModule

    project = ArtProject(datamodule)

    # Let's assume we work on typical classification_problem
    NUM_CLASSES = 10
    EXPECTED_LOSS = -math.log(1 / NUM_CLASSES)

    # Here we must allow providing custom metric name
    project.add_step(
        CheckLossOnInit(model_class),
        checks=[CheckScoreCloseTo("logged_loss_name", EXPECTED_LOSS, rel_tol=0.001)],
    )
    project.add_step(
        OverfitOneBatch(model_class),
        checks=[CheckScoreLessThan("logged_loss_name", 0.001)],
    )
    project.add_step(
        Overfit(model_class),
        checks=[CheckScoreLessThan("Some_training_metric_name_here", 0.001)],
    )

    project.run_all()
    project.print_summary()

def test_quickstart3():
    """Start utilizing MetricCalculator"""
    datamodule = YourLightningDataModule()
    model_class = YourLightningModule

    """Here goes modified model_class.train_set that uses metric calculator"""

    # Let's assume we work on typical classification_problem
    NUM_CLASSES = 10
    EXPECTED_LOSS = -math.log(1 / NUM_CLASSES)

    # User governs MetricCalculator by themselves (do this explicitly)
    metric = Accuracy(task="multiclass", num_classes=NUM_CLASSES)
    loss_fn = nn.CrossEntropyLoss()
    metric_calculator = MetricCalculator([metric, loss_fn])
    project = ArtProject(datamodule, metric_calculator=metric_calculator)

    project.add_step(
        CheckLossOnInit(model_class),
        checks=[CheckScoreCloseTo(loss_fn, EXPECTED_LOSS, rel_tol=0.001)],
        skipped_metrics=[SkippedMetric(metric=metric)],
    )
    project.add_step(
        OverfitOneBatch(model_class),
        checks=[CheckScoreLessThan(metric, 0.001)],
    )
    project.add_step(
        Overfit(model_class),
        checks=[CheckScoreLessThan(metric, 0.001)],
    )

    project.run_all()
    project.print_summary()

I'll go over three quickstarts:
1.

Agree, we could just add a simple if no check and provide an empty check printing results and informing the user about the good of using checks.
Okay, it'll be slightly more work to omit all calls, as for now we fully depend on it. But I agree it'll be beneficial

I think we already allow providing custom metrics, don't we? Maybe not the name, but if someone defines the loss_fn also in the main he can pass it to the check. I think it could work. It'd be easier than specifying the exact name
I don't see any difference in the use of a Metric Calculator between your code and the tutorial ones. But I understand it's just connected with the 1. problem, that metric calculator needs to be optional, not obligatory.

I think those changes won't break the ART's idea, but we have to really carefully do these changes. I also support the usage of the metric calculator.
One more thought - If we do the quickstart3 should we stay at this loss and everything calculation with those dicts with input, predictions etc.? Maybe we could get rid of them and rely on the lightning's way of doing things. I don't see any usecase but the one that loss calculation using metric calculator is the same for every model. But maybe one would like to train models with different losses, and the metric calculator will be then a tool to have the same metrics just for model comparison in terms of metrics?

Without using metric calculator we have no idea under what name user has logged their metrics. So they must know the name
The main difference is that user now is explicitly aware of something like MetricCalculator. And now they must use it by themselves it won't be automated.

Basically all of this is to allow user move smoothly to using the ArtModule.
About this one more thought - I don't understand this.
I'll try to reiterate with your issues in mind and send next proposal.


Small fix

Just a small fix in a comment section. Thanks for your work and these tips! 👍

Great, thanks for your help!


Coverage is broken because I removed CLI-less mode from the test runner

More or less fixed now. I'm not sure why the coverage still looks a little bit off though


why?

2017-08-23 18:17:48.548 RealmSwiftDemo[20671:3180440] *** NSForwarding: warning: object 0x103cd97b0 of class 'RealmSwiftDemo.Dog' does not implement methodSignatureForSelector: -- did you forget to declare the superclass of 'RealmSwiftDemo.Dog'?
2017-08-23 18:17:48.549 RealmSwiftDemo[20671:3180440] *** NSForwarding: warning: object 0x103cd97b0 of class 'RealmSwiftDemo.Dog' does not implement doesNotRecognizeSelector: -- abort

Please provide the information that was requested in the new issue template and described in our documentation on filing issues.
Also, please provide your code including at least the definition of the model. We have never seen such a log. I think that there is probably something wrong with the definition of the model.
@qq565999484

#------this is alll code:

import UIKit
import RealmSwift

class Dog: Object
{

    @objc dynamic var name = ""
    @objc dynamic var age = 0

    override var description: String { return "dog {\(name), \(age)}" }
}
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

        let myDog = Dog(value: ["name":"1xasxa22","age" : 2])
        let myDog2 = Dog()
        myDog2.name = "DeLorean"
        myDog2.age = 111

        let realm = try! Realm(configuration: Realm.Configuration(inMemoryIdentifier: "TemporaryRealm"))

        try! realm.write {
            realm.add(myDog)
            realm.add(myDog2)
        }
        return true
    }

#------this is alll code: ---》Of course, I've tried it：

import UIKit
import RealmSwift

class Dog: Object
{

     dynamic var name = ""
     dynamic var age = 0

    override var description: String { return "dog {\(name), \(age)}" }
}
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

        let myDog = Dog(value: ["name":"1xasxa22","age" : 2])
        let myDog2 = Dog()
        myDog2.name = "DeLorean"
        myDog2.age = 111

        let realm = try! Realm(configuration: Realm.Configuration(inMemoryIdentifier: "TemporaryRealm"))

        try! realm.write {
            realm.add(myDog)
            realm.add(myDog2)
        }
        return true
    }

My Realm.FrameWork was towed directly to the project

@qq565999484, did you see the list of information requested in the new issue template and in our documentation on filing issues? It appears that the majority of the information requested in those two places has not yet been provided.

Sorry, I may not understand what you mean because of my low level

Can you send us your project? You can make it into a zip file and attach it to this GitHub ticket. Then we can run it and see what is happening.

RealmSwiftDemo.zip
I'm sorry, because I will upload limit, to cancel the inside of the Realm.framework and RealmSwift.framework. You need to add.Framework.

Which version of Realm are you using? That's one of the pieces of information that we requested earlier.

realm-swift-2.10.0.zip=>swift-3.1 xcode: xcode8.3.3  OS:10.12.6

I opened your project in Xcode and note that you only have the RealmSwift framework defined in your project navigator. Our instructions say you need both the RealmSwift.framework and Realm.framework. Can you add Realm.framework to your application and try again please?

Once I added both frameworks, the project built and ran without errors on my computer.

thanks。

# Thank you very much for your help


Evaluation time on transfer learning

Dear author,
Thanks for nice works!
I have a question of the inference time on transfer learning.

Is is possible to share the inference time on transfer learning?

Hi！
Thanks for this great work！
However，I face the same thing. When I inference on a V100, it takes 10 seconds to infer 1 image. Is that normal?

OKAY I have found my mistake, bad weight loading. FYI, mine is 1s/ iter.

Hey @bbln33, I met the same problem. It takes me ~1 hour on COCO validation, but a standard mask-rcnn provided by detectron2 only takes minutes. Did you solve it? Could you provide us how long it takes with your environment?

In my case, the whole inference time is around 4 hours. I found that it depends on the MODEL.ROI_HEADS.SOFT_NMS_ENABLED option. When it sets true, it takes more time than false.


Manage identity server group

Resolves #14

This is the only real schema change. I had schema snapshot difference between local and build server and i arrange all the fields by name to be consistent

/azp run


About reshape op on TF Lite nnapi delegate

Android NN API only supported tensor rank: up to 4. So maybe need to add rank restriction on TF Lite nnapi delegate. If not, some models which have reshape op(rank > 4) will be failed on Android platform.
For example:
tensorflow/lite/delegates/nnapi/nnapi_delegate.cc:
bool NNAPIDelegateKernel::Validate(
    const TfLiteContext* context, int builtin_code, int version,
    int android_sdk_version, const TfLiteNode* node,
    bool is_accelerator_specified,
    std::vector<NNAPIValidationFailure>* map_failures) {
...
case kTfLiteBuiltinReshape: {
...
      // add these lines for rank restriction
      const auto& input = context->tensors[node->inputs->data[0]];
      Expect(input.dims->size <= 4,
             NNAPIValidationFailureType::kUnsupportedOperandRank,
             "Input rank should be <= 4", &val_ctx);
...
}
...
}

@miaowang14 could you review this suggestion regarding shape op validation in NNAPI?

@antkillerfarm good idea, would you like to create a PR implementing this? I am happy to review and approve it.

@antkillerfarm The restriction for input and output shape has been now updated for nnapi delegate. Could you please check this and confirm? Thanks.

Closing as stale. Please reopen if you'd like to work on this further. Thanks.


Create object storage for AWS installations

Towards: https://github.com/giantswarm/roadmap/issues/311
Find a way to create the object storage which will be used by Loki on AWS installations.
Potential solutions :

manual script
giantnetes/terraform
mc-bootstrap
~crossplane~ is not ready yet, so keeping this for future.

That's managed by @giantswarm/team-phoenix, and @paurosello will link a PR so we can track what has be done.
This will only be for "legacy" AWS installations though. CAPA will be done separately.

PR in https://github.com/giantswarm/giantnetes-terraform/pull/688

We met today and concluded on the following :

object storage for AWS is created via giantnetes-terraform#688 repositories
deployment is handled by team-phoenix (once a month or on demand)

@hervenicol can you please make sure we document this somewhere in our intranet for Loki setup ?

@hervenicol I think this should be WIP as you're mostly waiting for Theo's feedback

object storage is being deployed by team Phoenix

this is released with giantnetes-terraform 14.11.0 and being rolled out as we speak (see giantswarm/giantswarm#25354)

deployed everywhere except china installations, where is impossible to deploy yet because of problems with the container registry

Assuming this was deployed


add collaboration README

This commit fills the colaboration/README.md file with the group's norms we put together, please review it quickly so we can merge it.

##Great job Augustine
Please see the review

Merged successfully and issue closed. I think we are doing fine


Forward hpipm interface to release 0.1.2 (upcoming)

Forward hpipm and blasfeo interface to release 0.1.2 (upcoming)

Hello, and thank you for this great library !
I issue some troubles (illegal instruction) when running NLOC_boxConstrained when calling d_ocp_qp_ipm_solve (hpipm interface).
I installed hpipm through the shell scrip provided that uses hpipm 0.1.2 commit. I wonder if the issue I experience may be related to this opened issue ?
Thank you,
Cédric

Dear @CedricPerottet
thank you for reporting your issue! On which architecture and operating system are you?
Did you have any previous versions of hpipm or blasfeo installed?
Would you mind verifying if you can build the run the hpipm unit tests? For that purpose, you should build hpipm manually using cmake, using the additional test target!
Best

I'm running on Ubuntu 18.04.4, with a 8 years old i7 core (Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz).
I did build hpipm tests with CMake as you suggested, two class member have not been updated in the tests. But more importantly, when running the tests, I get the same error as when I used it from the CT, so it seems the issue I have is not related to the CT. I will seek some help to make hpipm work first, thank you for your advice !

I finally got hpipm to work !
When reading more in details how to install Blasfeo, I found that the target architecture needed to be specified in Makefile.rule as explained here : https://blasfeo.syscop.de/docs/install/#configuration.
So maybe I will suggest to add a comment in the install file of hpipm in a future pull request.
Regards, Cédric

Dear @CedricPerottet, thanks for pointing out the issue! It would be fantastic if you would like to add a comment to the installation instructions!
Best!


Tripower X20 "KeyError: 'content-length'"

Hi,
I'd really like to get your script working, decoupeling scripts via MQTT is my preferred design. I just got an Tripower X20 installed, but did not yet get your script to work.
requests not installed:
 ./sma2mqtt.py
Traceback (most recent call last):
  File "/sma2mqtt/./sma2mqtt.py", line 5, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'

I fixed that by pip3 install requests. Just wondering if that's maybe not the right module, as its not mentioned in preqs and the area is similar to below issue.
KeyError: 'content-length'
./sma2mqtt.py
# Debug output:
{'Date': 'Wed, 12 Apr 2023 13:03:14 GMT', 'Cache-Control': 'no-cache,no-store,must-revalidate, no-store', 'Pragma': 'no-cache', 'Set-Cookie': 'JSESSIONID=node0tsg8tkvsge6y15og14ifxqiu15.node0;Path=/;HttpOnly', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked'}

Traceback (most recent call last):
  File "/sma2mqtt/./sma2mqtt.py", line 59, in <module>
    if (x.headers["Content-Length"] == '0'):
  File "/usr/local/lib/python3.10/site-packages/requests/structures.py", line 52, in __getitem__
    return self._store[key.lower()][1]
KeyError: 'content-length'

When providing a wrong password I get a different output, so username / password seems to be ok?
./sma2mqtt.py

{'Date': 'Wed, 12 Apr 2023 13:10:33 GMT', 'Cache-Control': 'no-cache,no-store,must-revalidate, no-store', 'Pragma': 'no-cache', 'Content-Length': '0'}

Username or Password wrong.
Please test the following URL in a browser: https://<IP_ADDRESS>

My inverter (or browser?) redirects me to https:// , but even when replacing http:// with https:// in your script (and setting verify=false due to the self signed certificate that SMA uses) I get above error.
Did you edit any of the Inverters parameter to make this work? Which type of user access is required for the user to connect with? I tried user + admin. Any help to debug is appreciated, I tried to find stuff in my Browser console, but debugging webapps is not an area i have knowledge in.

Not quite sure that the problem is.

I fixed the crash that was caused by the missing Content-Length header. Not sure if this solves your problem.
A added a requirements.txt for the needed libraries
A "normal" user should be enough.

Hi LIttleYoda,
that's it - i get (a lot!) of data via MQTT now, thanks a lot for your superfast response.
Thanks, I'll start playing & let you know if I find something of interest, e.g. with HA integration.
ItsMee

Thanks, I'll start playing & let you know if I find something of interest, e.g. with HA integration.

Just to be sure and avoid misunderstanding.
If you have the mqtt integration active in HA, the sensor values should be automatically recognised as a new device.

Nice,
didn't use this one, but especially if there is a lot of not yet known parameters it seems very useful.
Started working once i reverted the mqtt prefix to homeassistant - thanks for the hint.
ItsMee

@littleyoda: Did you integrated your inverter into the Energy dashboard?
If so, do you have a more elegant variant than a template sensor on top of what the mqtt integration delivers?
  - sensor:
    - name: "PV energy (total Wh)"
      unique_id: "pv_energy_total"
      unit_of_measurement: "Wh"
      device_class: 'energy'
      state_class: total_increasing
      state: |
                 {{ states('sensor.metering_totwhout_pv_sma_sunny_tripower_serial') | float(default=0.0) }}

the MQTT implementation is indeed not optimal because of the problem with the conversion of the formats. I have to take a closer look again.
Until now, I have not found a better way than via Templates.
I therefore also request the inverter power via Modbus and use this for the energy dashboard.
 - name: SMA
    type: tcp
    host: <IP_ADDRESS>
    port: 502
    sensors:
      - name: sma_power_ac_raw
        state_class: measurement
        unit_of_measurement: W
        slave: 3
        address: 30775
        count: 2
        data_type: int32
        scan_interval: 10
        min_value: 0

      - name: sma_power_ac_l1_raw
        unit_of_measurement: W
        state_class: measurement
        slave: 3
        address: 30777
        count: 2
        data_type: int32
        scan_interval: 10
        min_value: 0

      - name: sma_power_ac_l2_raw
        unit_of_measurement: W
        state_class: measurement
        slave: 3
        count: 2
        address: 30779
        data_type: int32
        scan_interval: 10
        min_value: 0

      - name: sma_power_ac_l3_raw
        unit_of_measurement: W
        state_class: measurement
        slave: 3
        count: 2
        address: 30781
        data_type: int32
        scan_interval: 10
        min_value: 0

      - name: sma_power_total_production
        unit_of_measurement: Wh
        state_class: total_increasing
        device_class: energy
        slave: 3
        address: 30513
        scan_interval: 10
        data_type: int64

      - name: sma_status
        slave: 3
        address: 30201
        scan_interval: 10
        count: 2
        data_type: int32


T021 - One-hot encoding

Talktorial ID: 021

Title: The One-Hot Encoding concept
Original authors: Sakshi Misra
Reviewer(s): Talia B. Kimber
Date of review:

Content review

Potential labels or categories : One Hot Encoding, SMILES, sklearn, Keras
One line summary: Perform one-hot encoding on SMILES structures by implementing own function, by using implementations in sklearn and keras and then compare their performance in terms of time each implementation takes to execute.
[x] The table of contents reflects the talktorial story-line; order of #, ##, ### headers is correct
[x] URLs are linked with meaningful words, instead of pasting the URL directly or linking words like here.
[x] I have spell-checked the notebook
[x] Images have enough resolution to be rendered with quality, without being too heavy.
[x] All figures have a description
[x] Markdown cell content is still in-line with code cell output (whenever results are discussed)
[x] I have checked that cell outputs are not incredibly long (this applies also to DataFrames)
[x] Formatting looks correctly on the Sphinx render (bold, italics, figure placing)

Code review

Time it took to execute (approx.):
[x] Variable and function names follow snake case rules (e.g. a_variable_name vs aVariableName)
[x] Spacing follows PEP8 (run Black on the code cells if needed)
[x] Code line are under 99 characters each (run black -l 99)
[x] Comments are useful and well placed
[x] There are no unpythonic idioms like for i in range(len(list)) (see slides)
[x] All 3rd party dependencies are listed at the top of the notebook
[x] I have marked all code cell with output referenced in markdown cells with the label # NBVAL_CHECK_OUTPUT
[x] I have identified potential candidates for a code refactor / useful functions
[x] All import ... lines are at the top (practice part) cell, ordered by standard library / 3rd party packages / our own (teachopencadd.*)
[x] I have update the relative paths to absolute paths.
List here unfamiliar libraries you find in the imports and their intended use:

The notebook looks good from my view now.

@sakshimisra well done (thanks for your help @t-kimber)!
There are only one or two small things that we'll discuss offline. @jaimergp could you go ahead with merging, as soon as one of us gives you the final go! Thanks everyone.

@sakshimisra well done (thanks for your help @t-kimber)!
There are only one or two small things that we'll discuss offline. @jaimergp could you go ahead with merging, as soon as one of us gives you the final go! Thanks everyone.

~How come there are other notebooks affected?~ Ah, this was opened way before the big merge. I'll need some time to go through the conflicts, but I'll have it done this week.

~How come there are other notebooks affected?~ Ah, this was opened way before the big merge. I'll need some time to go through the conflicts, but I'll have it done this week.

@sakshimisra thanks for the update, well done.
I reviewed the shortened version of the notebook and checked/adapted mainly these points

consistent usage of one-hot encoding (vs. one hot)
SMILES in text vs smiles in code
text and parameters in doc strings, also including/adapting parameters making sure that no global variables are used
small typos and textual adaptions
in replacement: excluded Cn since it is rather carbon (C) + aromatic nitrogen (n)
excluded compound from cvs file that only contained [Cl-]

Final Todos, please:

Check the website rendering
Delete temporary notebook
While blog posts are very illustrative and easy to understand, please include a more sophisticated reference for OHE if possible
Maybe we can adapt the discussion slightly to comment more on our field (CADD), how OHE can be used, maybe also potential shortcomings of the SMILES  preprocessing, not sure if the NLP comment is completely clear.

Thanks.

Thanks everybody, especially @sakshimisra of course! Awesome work ❤
I cleaned the history a bit as per #99 and will close this as a result.


Non-shadow dom API

As a long-time user of Polymer, one of my biggest issues with Polymer.Element is it's hard buy-in with shadow dom. There is a method that you can overwrite to avoid creating a shadow root, but you really have to know what you're doing and then there are still issues around styling. Especially on browsers that need shady dom / css.
Shadow dom is a powerful tool and makes a lot of sense for building re-usable UI components. When building large complex applications, it is useful to split code up into separate components But in our experience, using shadow dom for all these private components has a lot of downsides. Closely associated components are unnecessarily isolated making tests more complicated, shared styles are duplicated many times over and especially on browser that do not have native shadow dom performance is negatively impacted. I think in the applications we build, over half our components do not need to use shadow dom.
The current support for elements without shadow dom is to overwrite _createRoot and return 'this'. I'm worried that this is not a very intuitive API and already requires some in-depth knowledge of how this works internally. I'm hoping that there can be more official support for creating elements without shadow dom and that it's use cases are covered by documentation, demos and tests. I'd be happy to contribute this where possible.

@LarsDenBakker this is a real good point, and for my experience a shared one. BTW YouTube itself doesn't use full Shadow DOM for the same reasons.
The _createRoot => this trick may be intuitive or not, but at least as opposite of Polymer it let you decide to use Shadow DOM or not individually, the main downside is that you loose support for <slot> element.
It would be nice to have a sort of bultin slot polyfill activated when you opt to not use Shadow DOM.

Started a new project with lit-html and LitElement 2 days ago.
I opted out of the shadow dom mainly because I wanted to use external stylesheet for my elements and to not have duplicated inlined css.
I also need to support firefox as well, and web components there are hidden behind a flag (really hope to be enabled by default soon).
Now <link rel="stylesheet" href="my-element-style.css"> is supported in chrome/safari, but again shady css is really messy with firefox i am not sure it can be even pollyfilled.

We'd like to encourage a default of using Shadow DOM because it's the right option when making a re-usable element since these need encapsulated dom and css.
You have a point that when making an application, it is sometimes reasonable not to use Shadow DOM, and this is why we provide the _createRoot override point.
We're open to making this API simple and would welcome a proposal / PR.

@sorvell Thanks for your  response. I'd be happy to make a PR, but we'd need to iron out some architecture first.
A pattern I'd like to explore is the following:
<app-element-a>

  <app-element-b>
    <element-d>
      #shadowroot
    </element-d>
  </app-element-b>

  <app-element-c>
    <element-d>
      #shadowroot
    </element-d>
  </app-element-c>

</app-element-a>

In this example (pseudocode) element a, b and c don't use shadow dom, but render their template to the light dom. Element d is a reusable components and uses shadow dom.
Element a renders styles which applies to all instances of element d in the dom of both children.
This works fine on native shadow dom, but shady dom will hoist the styles to the head and scope the styles so that element a cannot select elements into element b. We can't turn off scoping, as it will make the styles apply everywhere, but perhaps there is some solution to this? An alternative could be to define scopes manually and pass them down as properties to sub components.
In terms of API, what I think would make it cleaner, and give more opportunities for optimization, is if we separate out the common functionality from LitElement into a LitElementBase class and then provide a LitElementLight class which renders to light dom. This will make it easier to add other features that make sense for rendering to light dom, and also reduce the required knowledge of internals for developers.

@LarsDenBakker could you clarify this paragraph a little further?

This works fine on native shadow dom, but shady dom will hoist the styles to the head and scope the styles so that element a cannot select elements into element b. We can't turn off scoping, as it will make the styles apply everywhere, but perhaps there is some solution to this? An alternative could be to define scopes manually and pass them down as properties to sub components.

When you say "We can't turn off scoping, as it will make the styles apply everywhere" I can't understand how that's different from element-a having shadow dom so it's styles don't leak, but element-b and element-c using light dom so the styles from element-a apply to them.
It would seem that this approach would be available at current without any API changes, and wanted to make sure I understood you correctly. I've been doing something similar by extending the _createRoot technique as follows when not wanting to use scoped styles:
  /**
   * Set root to `this` so that styles are not contained.
   *
   * @return {object}
   */
  _createRoot() {
    return this;
  }
  /**
   * Prevent the hoisting and scoping of styles.
   */
  _applyRender(result, node) {
    render(result, node);
  }

My use case at current is to apply style to a page (when not building my app from a single shared parent node, and seems like it would do the work you're looking for if applied to element-b and element-c in your example.
Thanks in advance for sharing your thoughts, this is an important sticking point to work though in advance of bringing users in from other style application techniques!

@Westbrook
Given:
<app-element-a>

  <app-element-b>
    <element-d>
      #shadowroot
    </element-d>
  </app-element-b>

  <app-element-c>
    <element-d>
      #shadowroot
    </element-d>
  </app-element-c>

</app-element-a>

Compiles to shady dom like so (pseudocode):

<app-element-a>

  <app-element-b class="style-scope app-element-a">
    <element-d class="style-scope app-element-b">
      #shadowroot
    </element-d>
  </app-element-b>

  <app-element-c class="style-scope app-element-a">
    <element-d class="style-scope app-element-b">
      #shadowroot
    </element-d>
  </app-element-c>

</app-element-a>

So where in native shadow dom, a selector like element-d would match the elements inside element-b and element-c, in shady dom the selectors are scoped to only the dom of element-a.
We could do what you're saying and use regular render instead of shady render, but it has two downsides. One is that it removes other parts from the shady dom polyfill such as css mixins and css variables. The other is that scoping is turned off. So instead of matching only the instances of element-d up until the first shadow root inside element-a, it will match all instances of element-d on the page.
I'm also interested in elements being able to style upwards like you're describing. We have a very large application with architecturally separated pages developed by different teams. I'd like for the active page to be able to theme the larger application. With native shadow dom it's possible.

After looking into this further, it seems I'm not entirely correct. I am running into some bugs when the top level element has no shadow root, but when it does it works more like expected.
Styles are correctly scoped from the top shadow root down to the bottom shadow root across components. However, styles within custom elements without shadow roots are not hoisted.
I made a jsbin to illustrate what I mean. This construction works in shadow dom:
http://jsbin.com/pufosopeki/1/edit?html,output
But not in shady dom:
http://jsbin.com/mazimigara/1/edit?html,output
I don't understand enough about how shady dom/css works, but perhaps https://github.com/Polymer/lit-html/pull/337 will change this?

Sorry for the delay on this. The new way to customize the rendering element is to implement createRenderRoot() (renamed from _createRoot).
We'd like to encourage use of Shadow DOM in LitElement and this is why it's the default. Since it's straightforward to customize this, we're inclined to leave it as is for now. It is completely reasonable to create a subclass that customizes this behavior as you see fit.

I wonder if there's a workaround for having slot functionality when disabling Shadow DOM.

@atla5 <slot> is only available when using shadow dom by shadow dom specification.

@asbachb @atla5 Here's one workaround to the missing slot functionality.
@customElement('my-element' as any)
export class MyElement extends LitElement {
  /** The header content. Usually a [TemplateResult] but could be anything. */
  header?: any;

  /** The footer content. Usually a [TemplateResult] but could be anything. */
  footer?: any;

  /**
   * The body template function.
   *
   * The return value is usually a [TemplateResult] but could be anything.
   */
  bodyTemplate?: () => any;

  protected createRenderRoot() {
    return this;
  }

  protected render(): TemplateResult {
    return html`

      ${this.header}
      ${this.bodyTemplate ? this.bodyTemplate() : null}
      ${this.footer}
    `;
  }
}

Usage
<my-element
  .header=${html`<h2>Header</h2>`}
  .bodyTemplate=${() => html`<p>Body</p>`}
>
</my-element>

@jolleekin Does this mean there is no way have child element like my below code without shadow DOM?
<custom-list>

foo

   ...
</custom-list>

@rybadour You would have to query the elements and manually append them at load time if I'm not mistaken.

The issue is compounded by the fact that returning any TemplateResult in your render method will automatically remove the children that used to be in your component and replace them with what was rendered in the template. What we need is a way to easily re-add the children into the generated template in much the same way that React allows you to add children.

How can I render a nested element to the main DOM tree? Can I return the top element using createRenderRoot()?
In my stackblitz example, I have to implement createRenderRoot() { return this; } in all parent elements for stripe.js, which doesn't support shadow DOM, to work.

This worked for me:
@customElement('test-element')
export class TestElement extends LitElement {

  elementChildren: Array<Element> = [];

  createRenderRoot() {
    return this;
  }

  connectedCallback() {
    super.connectedCallback();
    this.elementChildren = Array.from(this.children);
  }

  render() {
    return html`<div>${this.elementChildren}</div>`;
  }

}

Hello,
Thanks @svdoever  and @aaronanderson for your proposal.
I improved the code to allow displaying Slot in different parts of custom element.
import {LitElement} from 'lit-element';

class LitElementLight extends LitElement {
    slotMap: object;

    connectedCallback() {
        this.slotMap = Array
            .from(this.renderRoot.querySelectorAll('[slot]'))
            .reduce((map, obj) => ({
                ...map,
                [obj.getAttribute('slot')]: obj
            }), {});

        super.connectedCallback();
    }

    protected getSlot(slotName: string): ChildNode {
        return this.slotMap && this.slotMap[slotName];
    }

    createRenderRoot() {
        return this;
    }
}

export {LitElementLight};

@customElement('test-light')
class TestLight extends LitElementLight {
    render() {
        return html`

LitElement content bla...

${this.getSlot('actions')}

Styling is global

    `;
    }
}

declare global {
    interface HTMLElementTagNameMap {
        'test-light': TestLight;
    }
}

<test-light>

    <button type="button" class="btn btn-primary" (click)="toggleImage()">Angular Action</button>
    <button type="button" class="btn btn-secondary" v-on:click="counter += 1">VueJS Action</button>

</test-light>

I created a public gist
Please let me know if you have any suggestion

@svdoever the problem with that approach is that it breaks composition. Since you record the light DOM children on at connected, you can get into a number of situations where the children are overwritten later, or re-recorded later.
The simplest example is disconnecting and reconnecting:
const el = new TestLight();
document.body.append(el);
console.log(el.innerHTML); // shows 3 divs
const container = document.createElement('div');
document.body.append(container);
container.append(el); // should throw as you're trying to add the second div as a child to itself

Another example is using this with a template system:
const go = (children) => render(
    html`<test-light>${children}</test-light>`,
    document.body);
go(html`<p>render 1</p>`); // renders 3 divs, with
 as child of second
go(html`<p>render 2</p>`); // renders one
 that overwrites the divs

There are of other cases where this breaks too. This is a big reason I'm not comfortable with most of the proposed solutions in the space. Shadow DOM is a composition primitive that's valuable precisely because composition is hard to impossible to get right without it.

This is the reason why I had to move over to using StencilJS, where slots are supported without shadow dom.

This is the biggest issue for us adopting web components. We would have to use the light DOM because we use CSSModules to style our components, but if we can't have composition then web components are frankly unusable in a modern web app without huge friction.


Fix export shadowing in .js output

let x = 5;
let x = 10;

currently compiles to
export const x = 5;
export const x = 10;

This is invalid JS.

A quick fix would be to output the following:
var x = 5;
var x = 10;

export {x};


Translation for content/ja/case-studies/nav in Japanese

This is a Feature Request
What would you like to be added
Translation for case study of Nav
https://kubernetes.io/case-studies/nav/
Why is this needed
No translation exists in Japanese.
And this case study is so useful for Japanese readers (not only for developers)
Comments
Copy a file from en contents to content/ja/case-studies/nav/index.html and content/ja/case-studies/nav_featured_logo.png and translate it into Japanese.
/language ja
/assign

/close

/milestone 1.16-ja.1


pjsip: add darwin support

Description of changes
Currently the pjsip package is marked as broken for darwin because it is not able to build correctly.
This PR attempts to fix this for both aarch64-darwin and x86_64-darwin.
There are 2 workarounds in this PR:

fixDarwinDylibNames wasn't able to rewrite the relative paths, because they contained ../ and ../../. A similar method to fixDarwinDylibNames was used to rewrite them, but with support for ../ and ../.
On x86_64-darwin the library was automatically configured to use a deprecated darwin-ssl library, instead of openssl. This wasn't the case on aarch64, probably because darwin-ssl wasn't supported for aarch64 anymore. The configure flag --disable-darwin-ssl was needed to force using openssl on both architectures.

Lastly, because the linking issues were a bit finicky, I also added a package test to check whether the python library can be loaded correctly.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin
[x] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Is there a good way to let ofborg run the test (pjsip.tests.python-pjsua2) on all supported platforms?

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1956

@SuperSandro2000 Thanks a lot for the review! Especially darwin's callPackage worked great :+1: I just couldn't remove the preConfigure.


[line] fix time shift color assignments

@michellethomas  I think what happened is last minute "addressing comments" changes broke the PR.
related to https://github.com/apache/incubator-superset/pull/4765

Codecov Report

Merging #5065 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #5065   +/-   ##
=======================================
  Coverage   77.53%   77.53%
=======================================
  Files          44       44
  Lines        8712     8712
=======================================
  Hits         6755     6755
  Misses       1957     1957

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 d322e48...32b2c54. Read the comment docs.


python.terminal.executeInFileDir doesn't work if file is on another drive from working directory

Environment data

VS Code version: 1.51.1
Extension version (available under the Extensions sidebar): 2020.11.358366026
OS and version: Windows 10.0.19042
Python version (& distribution if applicable, e.g. Anaconda): Anaconda Python 3.6.12 64-bit
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): conda
Relevant/affected Python packages and their versions: NA
Relevant/affected Python-related VS Code extensions and their versions: NA
Value of the python.languageServer setting: Pylance

Expected behaviour
Expect that if the file directory is on a different drive to the working directory and "python.terminal.executeInFileDir" is set to true, that the terminal will change drive, then change directory, then run python file
Actual behaviour
Terminal opens, changes directory and then runs python file
Steps to reproduce:

Have python.terminal.executeInFileDir = True
Open python file on drive other than working directory
Run python file in terminal

Terminal will open, run the 'cd FileDir' command but not change drive, and then run the python file
Related Code
Related code appears to be in terminalCodeExecution.ts
        if ((!wkspace || fileDirPath !== wkspace.uri.fsPath) && fileDirPath.length > 0) {             await this.getTerminalService(file).sendText(`cd ${fileDirPath.fileToCommandArgument()}`);         }

@peachthiefmedia Thanks for identifying the issue. Yes, this is a problem if the file you are tying to use is on a different drive.

The issue is here: https://github.com/microsoft/vscode-python/blob/94a6ba89c295145407388fdc0744e34314b2a325/src/client/terminals/codeExecution/terminalCodeExecution.ts#L94. Identify if it's in a different drive and then figure out what command to send accordingly. For eg. if workspace folder is currently on c: drive, and file to run is on d:. Send d: to terminal to switch the drive first. (details)

Verification steps:

You will need a windows machine with two drives, you can use a USB drive as the second drive.
Set python.terminal.executeInFileDir = True
Open a workspace in say "C:" drive.
Open a python file in the same VS Code window, but the file should be in say "D:" drive
run the python file using the "Run python file" button at the top right of the editor tab.

I see an issue here, running a file in a different drive works. but then when you run a file in the same dir as the workspace, it does not work. It does not restore the directory.
After step 5 of verification, run a python file from the workspace. it sends a cd but not a drive change.


[test] Update the swift stepping behavior test

apple/swift#15025 fixes the stepping behavior for switches, so we need
to update our test accordingly.

Please test with following PR:
https://github.com/apple/swift/pull/15025
@swift-ci Please test


Issue with k8s.io//docs/tasks/access-application-cluster/web-ui-dashboard/ [File: /content/en/docs/tasks/access-application-cluster/web-ui-dashboard.md]

This is a...

[ ] Feature Request
[x ] Bug Report

Problem:
The text "Please note, this works only if the apiserver is set up to allow authentication with username and password" is confusing. The dashboard login page that appears does not look for a username and password, it looks for either a "Kubeconfig" or a "Token".
Proposed Solution:
I don't know what the solution is because I haven't got past this page yet, except by clicking Skip. As I can't run a browser on the controller node, first I had to dig around to find that I needed to run
kubectl proxy --address= --accept-hosts='.*'
in order to access it from a browser in my local machine (how hard would it be to mention that typical use case?), but now I've tried lots of tokens obtained with
kube-system get secret ...
all of which invariably produce
Authentication failed. Please try again.
I don't find the pages that are linked very helpful either, they seem to assume you've come from somewhere else.
Page to Update:
https://kubernetes.io/...

Kubernetes Version:1.11

I did eventually generate new tokens that are not rejected, e.g., one quick way is to use kubeadm token create. It's still not clear why the others did not work. However my problem now is that when "Sign in" is clicked nothing happens, i.e., the webbrowser remains stuck on the login page, it's just that the "Authentication failed. Please try again." message does not appear for the new token. (This is described in https://stackoverflow.com/questions/48072043/unable-to-access-kubernetes-dashboard-via-token though those responding to that obviously misunderstood the problem.) I've tried deleting the dashboard pod, which gets automatically restarted, as well as killing and restarting the proxy, but neither fixes the problem.
From all the reports I've looked at, people are obviously wasting a great deal of time on this. Having wasted about a day on a succession of problems myself now, I can believe the report of the guy who reports being stumped for four days (but his solution didn't work for me).


add bullet gem, fix some of our identified n+1 joins

I rule and have completed some work on Case Manager that's ready for review!
This cropped up again in an inconvenient way, so going to make this my 'chip away at it' project this week.
This pull request makes the following changes:

install bullet gem
make bullet fail tests if it hits a problem
fix the problems

It relates to the following issue #s:

bumps #2225

For reviewer:

Adjust the title to explain what it does for the notification email to the listserv.
Tag this PR:

feature if it contains a feature, fix, or similar. This is anything that contains a user-facing fix in some way, such as frontend changes, alterations to backend behavior, or bug fixes.
dependencies if it contains library upgrades or similar. This is anything that upgrades any dependency, such as a Gemfile update or npm package upgrade.

If it contains neither, no need to tag this PR.

Codecov Report

Merging #2344 (3a86e9f) into main (3f1bcff) will decrease coverage by 8.83%.
The diff coverage is 95.83%.

@@            Coverage Diff             @@
##             main    #2344      +/-   ##
==========================================
- Coverage   96.22%   87.38%   -8.84%
==========================================
  Files          79       79
  Lines        1643     1673      +30
==========================================
- Hits         1581     1462     -119
- Misses         62      211     +149

Impacted Files
Coverage Δ

app/models/concerns/exportable.rb
95.65% <91.66%> (-1.32%)
:arrow_down:

app/controllers/dashboards_controller.rb
96.15% <100.00%> (+0.32%)
:arrow_up:

app/controllers/patients_controller.rb
100.00% <100.00%> (ø)

app/models/concerns/call_listable.rb
100.00% <100.00%> (ø)

app/models/patient.rb
92.74% <100.00%> (-5.65%)
:arrow_down:

app/controllers/accountants_controller.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/controllers/practical_supports_controller.rb
0.00% <0.00%> (-96.88%)
:arrow_down:

app/services/pledge_form_generator.rb
23.52% <0.00%> (-76.48%)
:arrow_down:

app/controllers/lines_controller.rb
75.00% <0.00%> (-25.00%)
:arrow_down:

app/helpers/navbar_helper.rb
75.00% <0.00%> (-16.67%)
:arrow_down:

... and 4 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 3f1bcff...3a86e9f. Read the comment docs.

thanks @lomky !