Backend API and iCE40-usbtrace support

This PR defines a common backend API for USB capture devices, and adds support for the iCE40-usbtrace device.
The changes are made on top of a rebased version of #190. Tested with Cynthion only at this stage; @asdfuser and @smunaut, please test this with iCE40-usbtrace!
I have broken the changes to the ice40usbtrace backend down into as many commits as possible, so if I've broken anything hopefully it's easy to bisect. However, the final commit that ports everything to the new API is still a fairly big change.
The backend API is not very generic; it assumes that capture devices will work quite similarly to the two examples we currently have. That allows for sharing a lot of code, but means we might have to revisit the design in future if we need to support devices that work substantially differently. I expect it will suffice for OpenViszla, though.

Worked fine for me :+1:

One thing that might be fixing here though is that in case of overflow, the usb stream end.
You get a popup :
Sender was dropped
caused by: oneshot cancelled (Canceled)

But then any attempt to click the "start capture" button again just ends with :
No such file or directory (os error 2)

It has an interrupt end point that ideally should be monitored that reports :

The current buffer fill status ( which could be a UI element )

The current running state of the device ( Stopped, Capturing, Flushing ) and some flags ( like "Capture Stopped because of overflow ).

That's good to know, and indeed may have some impact on the API surface. I had guessed that there were features like this from the commented entries in Command.
The buffer fill status is something I've been planning to add to Cynthion as well, along with a level indicator in the UI, so that's definitely something that's in scope. I think a good way to do that would be for the backend to be given an additional mpsc::Sender that it can send buffer level status updates to. The UI code would have the other end of that channel and use it to update the display.
The state information is a bit different because we'll need to stop the capture when it hits the overflow state. I think perhaps the solution there is that we clone the stop_tx sender that we're giving to the UI, and give it to the backend (by passing it from start to run_capture to begin_capture) so that the backend is able to stop itself when overflow occurs.
The difference between Cynthion and iCE40-usbtrace here is that on Cynthion, we plan to keep all data flow happening on a single bulk endpoint, with multiplexing of different data types done in-band within the stream format. The reason for that approach is that it maximises the achievable throughput on the bus, as the host only has to poll one endpoint.
So on Cynthion we'd give that copy of stop_tx to the CynthionStream type, and when it sees the capture overflow event in the bulk stream, we signal it to stop the capture.
The iCE40-usbtrace backend would insted need to be making interrupt transfers on a second endpoint. I think the API already allows for that though. One way to do it would be to just spawn a separate worker thread for the interrupt transfers in begin_capture, and keep a stop signal and join handle for that thread in a field on Ice40UsbtraceHandle (the type would need to be something like Arc<Option<(mpsc::Sender, JoinHandle)>> because it has to be both Clone and Sync). Then in end_capture it would signal that worker to stop, and join the thread. In the overflow case, the interrupt worker thread would signal its copy of stop_tx, which would unblock the run_capture thread and trigger the teardown.
That would leave us running three threads for one relatively simple USB device, but the extra thread doesn't really cost us anything, and Rust makes the concurrency easy to get right. And it keeps the rest of the code common to both backends.

One thing that might be fixing here though is that in case of overflow, the usb stream end.
You get a popup :
Sender was dropped
caused by: oneshot cancelled (Canceled)

But then any attempt to click the "start capture" button again just ends with :
No such file or directory (os error 2)

We definitely need to fix that before this can be merged. I'm not sure I understand exactly how this happens yet though.
The message comes from BackendHandle::run_capture, which was running block_on(stop_rx) to wait for the UI to stop the capture. The error indicates that the UI has dropped the BackendStop structure that held the corresponding oneshot::Sender named stop_tx.
Presumably that is happening when the decoder thread spawned from start_capture assigns ui.stop_state = StopState::Disabled.
Which in turn implies that the read_packets closure has finished, either because the PacketIterator it was using returned None, or because it returned Some(Err(...).
But nothing should have shut down the transfer queue at this point, so the best explanation I see for that iteration ending is that parse_packet returned a ParseError.
Is there some unusual header that's sent on the bulk endpoint in the event of an overflow?
It might be useful to try ignoring that error, by replacing this line in BackendHandle::run_capture:
block_on(stop_rx)
    .context("Sender was dropped")?;

with
let _ = block_on(stop_rx);

That may allow things to progress to the point where some other error is reported.

@smunaut I've pushed a couple of further commits, which should avoid the Sender was dropped message.
Could you try the overflow case again and let me know what happens now?

@martinling Sorry it took me a while to test.
I think there is a bug in the firmware so I wouldn't worry about the handling of the overflow case ATM ...
But I'd need a USB analyzer on my USB analyzer to debug the fw and I just don't have that available ATM.

Ok, I ended up fixing the firmware (for the most part ...).
So what happens now in case of overflow is you'll get either a short packet ( < 64 bytes ) or a ZLP if it ends up shutting down on a packet boundary. ( During normal operation you'll always get full packets only ).
Now, packetry doesn't notice this (which is fine) and so it just thinks it's still capturing.
Pressing stop result in a message about write error / STALL (because the stop request will fail given hw is already stopped ).
Attempts to click start again yield resource busy error (os error 16).

So what happens now in case of overflow is you'll get either a short packet ( < 64 bytes ) or a ZLP if it ends up shutting down on a packet boundary. ( During normal operation you'll always get full packets only ).

OK. I suppose what we could do there would be to detect the short packet in TransferQueue::process, where it should result in completion.data.len() being less than self.transfer_length, since a short packet ends a bulk transfer.
However, in the current architecture we can't do a lot once we've detected that, because the BackendHandle::run_capture thread isn't going to look at the join result until after it's been told to stop by the UI.
So the API is missing a way for the queue worker thread to signal that the device has stopped of its own accord. I'd anticipated that happening from the decoder thread rather than the queue worker thread, but I guess we need a way to signal it from either of them, since there's also the case where a bulk transfer error happens (e.g. device disconnected).

Pressing stop result in a message about write error / STALL (because the stop request will fail given hw is already stopped ).

I think we'll have to just catch that STALL case and ignore it. Even in the case where the UI has initiated the shutdown, there's still the possibility that the device overruns before the host gets around to sending the stop command.

Attempts to click start again yield resource busy error (os error 16).

I believe this is because the worker thread running BackendHandle::run_capture exits when calling self.end_capture()? because of the STALL, and therefore never stops the worker thread which is running TransferQueue::process.
So the queue worker thread is left running, and it still has the Interface handle open, so a new Interface can't be opened.
Seems like the next step is to just ignore the STALL and that should avoid this.

@smunaut can you test again please?
I've pushed a change which always ignores a STALL response for the CaptureStop and BufferFlush commands only.
This should fix the error on shutdown after the device has stopped of its own accord due to an overflow, and hopefully should mean you're able to restart capture again afterwards. If not, let me know what still goes wrong.
Note that it's also no longer ignoring errors other than Stall when begin_capture sends CaptureStop and BufferFlush at startup.
I don't think that should break anything, as I'm assuming that ignoring errors there was due to a Stall being possible in both cases due to the device already being stopped and flushed. But I'd rather we tighten it up, since there are other TransferError types that we shouldn't ignore (e.g. Disconnected).

@martinling Just tried, works fine. After an overflow you can slop and re-start with no issues.

Great! In that case, I think this is ready for final review and merge.


Having trouble with infinite-scroll plugin for wordpress

HI :)
the problem : images overlap in the first load, again after refresh they adjust fine
this kind of issue is posted by many users here and in wordpress forums.....I tried every solution suggested but not working for me.....I am trying this for the past 2weeks but of no use.....I am a complete noob in JS, so hoping some one here could help me.
the code in my footer to activate masonry
<script>
// Code inside here fires when the DOM is ready
jQuery(window).load(function(){
	jQuery('#grid').masonry({
		itemSelector : '.post',
	});
});
</script>

sorry posted on the wrong page


npm install @patternfly/patternfly-next is broken

Since 1.0.49 a postinstall command is present to build and copy icons.
This command doesn't work because we only publish dist folder
We should move postinstall bin scripts in a bin or script folder and add this folder to the publish section.

Thank you @karelhala


add a qa user to our db seeding code

close #743
we need a consistent qa admin for the test team. This PR adds a new admin user with an email determined by a config value. In staging I've set that config value to the appropriate email address, this will allow the admin to recover that account even if they don't know the password.

@myieye I moved the seed db endpoint to be available, so I can call it once deployed and it'll create the user for us.


Any possible to use GPU and make it faster

The project is great and I am very appreciate it. But it still not implement on GPU, and I would if modify some lines in the code should make it work with GPU and make is faster. I have a tensorflow GPU ready platform and tensorflow 1.0 (well, I have made a few unimportant change to the code so that it works fine with tensorflow 1.0).
Again, thanks a lot for opening this project, it's been a great contribution.

The issue is that architecture size and training procedure (many forward props with batch size 1) makes it hard to benefit from a GPU.
I've experimented a bit with it, and found that it needs a big refactoring to make it worth it (ie, running 16 environments together and batching 16 forward props).
Note, when running with GPU version you must set the following variable
export OPENCV_OPENCL_RUNTIME=

The A3C algorithm that's being used here has recently been extended to a hybrid CPU/GPU approach, see this repo and this paper.


add resource group to "Create a virtual network"

Docs Build status updates of commit 8143ce0:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/aks/api-server-vnet-integration.md
:white_check_mark:Succeeded

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

@zr-msft
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@asudbring
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
https://github.com/orgs/MicrosoftDocs/teams/public-repo-pr-review-team

#sign-off


KeyError: 'url_encoded_fmt_stream_map' unavailible videos

When attempting to download a video that is blocked in your country, the library fails and dies. Relevant Video ID to recreate, from America, https://youtu.be/hoc2RISoLWU

main.py
line 128
            if 'status' in self.player_config_args and self.player_config_args['status'] == 'fail' and 'reason' in self.player_config_args:
                raise Exception(self.player_config_args['reason'])

for at least to see the reason of error


[wasm] Port thread-related APIs for no thread platform

This change ports the thread-related APIs for the no thread platform by adding no-op implementations. Note that WASI is going to support threads in the near future, so this does not guard by TARGET_OS_WASI but by !SWIFT_CORELIBS_FOUNDATION_HAS_THREADS to make it easier for future WASI + threads support.

@swift-ci test

@swift-ci test

@swift-ci test

@swift-ci test windows

This seems to have caused a regression on macOS builds

@compnerd I apologize for that breakage. I made a fix here https://github.com/apple/swift-corelibs-foundation/pull/4888


Remove Vector3 Constructor

Packing was enabled because the compiler may add padding which we don't want.
Constructors were removed because they were either rather primitive or broken (the pRawFloats one).
Use of constructor was replaced with a simple cast, which works just as well.

After spending a few seconds with the compiler explorer
I came to the conclusion that packing is entirely pointless here, so I'm removing it.
I'll also merge the CI correction commit into the main one and rebase, for the sake of clarity.

Not testing myself cause others already did. Just trusting they tested well enough :>


Error when making custom database "IndexError: list index out of range"

When I run the command:
python $PLMBLAST_PATH/embeddings.py merged.proteomes.csv merged.proteomes -embedder pt -cname sequence --gpu -bs -1 --asdir
I get back:
File "/bin/pLM-BLAST/embedders/parser.py", line 173, in make_iterator
    if startbatch[-1] != seqnum:
IndexError: list index out of range

The "merged.proteomes.csv" was generated from a "merged.proteomes.fasta" using the "makeindex.py" script.
For context, the "merged.proteome.fasta" contains 6821190 sequences, while the "merged.proteomes.csv" contains 7360055 lines (so  538865 more lines than the number of sequences--is this expected?)

Found this discussed further down here. Changing the -bs -1 to -bs 0  seems to have fixed this error.


Info is not part of Swashbuckle.AspNetCore.Swagger in latest version?

Not able to follow the instructions on this page with the latest version.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 14fce65f-1337-58cb-2193-8d8e0e62792d
Version Independent ID: 59222460-a971-e76e-4fe9-23d4d7d768ee
Content: Get started with Swashbuckle and ASP.NET Core
Content Source: aspnetcore/tutorials/getting-started-with-swashbuckle.md
Product: aspnet-core
Technology: aspnetcore-tutorials
GitHub Login: @zuckerthoben
Microsoft Alias: scaddie

Sorry, I meant version 5.0.0-rc2

The new usings is Microsoft.OpenApi.Models.OpenApiInfo

OpenAPIInfo is now updated in version 2.2 of the doc here.


Oracle Database sample docker-compose file

Please provide sample docker compose file that includes persistent storage as sample.  This would be a good example to have handy as starting point for DBA's that are less familiar with docker, but work with teams using Docker Datacenter.

Here you go:
version: '2'
services:
  database:
    image: <internal-registry>/oracle/database:<tag> # e.g: registry.company.br/oracle/database:<IP_ADDRESS>-ee
    environment:
      - ORACLE_SID=xe
      - ORACLE_PDB=test
    volumes:
      - ./oracle/oradata:/opt/oracle/oradata # persistent oracle database data
      - ./data-bridge:/data-bridge # just to have someplace to put data into the running container if needed
    ports:
      - 1521:1521
      - 8080:8080
      - 5500:5500

A real example
If you already have a database container running,that may be hard to recreate every time you run docker compose, and need to test something  like a dblink integration you can also specify in your docker-compose.yaml :
database:
#other stuff ....
    networks:
        - dbnet
    external_links: # https://docs.docker.com/compose/compose-file/#/externallinks
      - hard_to_create_oracle:oracle

You also will need to add a network,because both containers need to be at same network:
[user@machine]$ docker network create dbnet && docker network connect dbnet hard_to_create_oracle
And add to network your docker-compose.yaml file:
version: '2'
services:
  database:
# service definition
networks: # https://docs.docker.com/compose/compose-file/#/networks
  dbnet:
      external: true

With docker composer you can create a network at your docker composer file,but you can't add to network a container which is not defined inside of your docker composer file,so that's why the network created outside of the docker composer file.
@armand1m I think your second solution will work.

I've actually tested the solution 2 today, and it doesn't really works.. Don't know if I'm doing something wrong, but I always need to create the oradata folder in the host system and execute  sudo chown -R 1000:500 <path> on it before running the container, as actually described in the Solution 1. If this is step is not done, the container is unable to start the oracle instance. It throws an error that calls SIGTERM, and then shuts down the container.

A Docker Compose sample file is now provide within the samples folder: 12102-docker-compose
As to the error mentioned above, this works as expected. When using Docker volumes Docker merely creates a folder outside the container with the typical characteristics of a Linux folder. That is, a new folder with read and execute permissions for everybody and write permission for the current user: drwxr-xr-x As Docker is running under root the folder is owned by the user root and the group root.
Oracle Database inside the container is run by the oracle user under the dba group. In order for the database to write the database files to disk it needs permissions on the Linux folder it should write those files into. Unfortunately, by default, that is not guaranteed by Docker.

Im trying to create multiple containers using docker-compose each exposing separate port for access.
version: '2' services:   db-1:     image: oracle/database:<IP_ADDRESS>-se2     ports:       - 15211:1521       - 55001:5500     environment:       - ORACLE_SID=ORCLCDB       - ORACLE_PDB=ORCLPDB1       - ORACLE_PWD=C@nn0ts@y1       - ORACLE_CHARACTERSET=AL32UTF8   db-2:     image: oracle/database:<IP_ADDRESS>-se2     ports:       - 15212:1521       - 55002:5500     environment:       - ORACLE_SID=ORCLCDB       - ORACLE_PDB=ORCLPDB1       - ORACLE_PWD=C@nn0ts@y1       - ORACLE_CHARACTERSET=AL32UTF8
As per the sample if i add the line volumes:

/home/oracle/oradata:/opt/oracle/oradata # persistent oracle database data. , there is an error creating the database and it stops.
what will be a better way for volumes to be added and if i need to create user and assign permissions to the account.


Upgrade CodeQL v2.21.2 -> v2.21.3

This PR contains the following updates:

Package
Type
Update
Change

github/codeql-action
action
patch
v2.21.2 -> v2.21.3

Release Notes

github/codeql-action (github/codeql-action)
v2.21.3
Compare Source

[ ] If you want to rebase/retry this PR, check this box

Warning
Renovate's suggested commit message is being replaced with improved initial commits to enable automerging. As a side effect, these suggested commit messages might have changed. Consider comparing the initial commit message and this message to determine the most suitable one. Please leave feedback in #sys-renovate.

Suggested commit message:
Upgrade CodeQL v2.21.2 -> v2.21.3

See:
- https://github.com/github/codeql-action/blob/main/CHANGELOG.md
- https://github.com/github/codeql-action/compare/v2.21.2...v2.21.3


DataCellEditor beforeDestroy() called twice

Noticed this while developing #834. I'm guessing this is a bug in the latest ag-grid version, because I haven't changed anything in the editor behaviour.
Need to think of a workaround.

Should see if this is still occurring.


Cannot see if the stream is online without entering another page.

On another version, I could see if the stream was or not offline in the favorites page without having to click on it.
It is kinda annoying having to click into the stream just to see that it is not online.

Sorry, but I don't understand what you're trying to say.
The stream list is not a live representation of online streams. Channels that went offline won't be removed automatically from the list, you need to refresh it. It has always been like this...

Strange... When I logged into the application and went to the My -> Channels, I can see all channels I'm following right?
In the previous version, I could see only the channels that were online, but now I see all of them, even if it is offline: http://imgur.com/K8ujYD8
I think a green/red circle to indicate if the stream is online or not would be nice, maybe with a background thread to check every 5 minutes to see if the channel is still online, and update the ui status.

I've renamed the menu. What you are looking for is "My streams", not "My channels"

Lmao, just found it. Thanks : ), sry for the inconvenience.

Np :stuck_out_tongue_winking_eye:


Remove superflouous event call

What and why?
When going to the collection exercise list screen for a survey (/survey/<shortname>) it gets the collection exercises and then for each exercise it find it:

Gets the events for the exercise
Gets the sample summary for the exercise
Calls sample for more data if one is present

The initial call to collection exercise already gives us the events, so we're getting the events for each exercise a 2nd time for no reason. Each exercise adds maybe ~20ms to the rendering of the page, which is tiny until you have lots of exercises.
How to test?

Deploy code
Seed data with acceptance tests
Add another collection exercise or two for any survey (maybe QBS?).  Fill in varying amounts of events (MPS, go live, etc)
Verify the page still works

Trello

/deploy wilkia


Duntisbourne Rouse Duplicate entries

There are duplicate entries for Duntisbourne Rouse GLS.  The search records need to be moved to the original entry and the duplicates removed.
In addition Duntisbourne has been added as an alternative name toMiddle Duntisbourne and therefore diverts searches. This also needs removing.
Geoff

Done


[Theme] Bootstrap Light needs updating for Miniflux version 1.1.9

On switching Miniflux version 1.1.9 from theme Default to theme Bootstrap Light, all feeds shew status as "error occurred during the last check".
Presumably this is due to the same problem which was reported in issue #310 for the Hello theme.
https://github.COM/miniflux/miniflux/issues/310
Please could you update the theme Bootstrap Light to function correctly for the latest and so far greatest Miniflux version 1.1.9

Unfortunately, this theme is not maintained by myself. You could try to contact directly the author.


Why does Sentry recommend me to use aiohttp integration in my sanic app

I have an application using Sanic framework and I am using SanicIntegration to initiate Sentry, however, Sentry recommended me to use aiohttp integration. Why is that and should I use aiohttp integration to initiate Sentry? What's the diff or benefit from aiohttp integration?
This is how I initiate Sentry in the codebase
sentry_sdk.init(
            dsn=app.config["SENTRY_DSN"],
            environment=app.config["REALM"],
            integrations=[SanicIntegration()]
        )

If you do not use aiohttp-server as web framework this integration is entirely useless. We only see that you have the aiohttp package installed in the virtualenv your app is running, and make assumptions based on that. Those suggestions are not always relevant.

There's no harm in enabling the integration though, in fact it's useful because it makes the alert go away :)

@untitaker got it, aiohttp is a dep of package elasticsearch_async in my application and I think that's what triggers the recommendation. My question would be how do I enable aiohttp integration while I am using SanicIntegration already?

Import both and write integrations=[ SanicIntegration(), AiohttpIntegration() ]

@untitaker thank you!


Selecting a release version when creating a cluster

Part of https://github.com/giantswarm/giantswarm/issues/2022

FYI this is now implemented and deployed.

Merging this. 🎱


Launch selection programatically

Hi,
Just finishing a couple things with an app using your component. Just a couple thing which may be possible (but maybe I'm missing how to use) - is there a way to launch the selection programatically (from say, another button)? I tried launching using
    let element: HTMLElement = document.getElementById('PublicComment') as HTMLElement;     element.click();
click doesn't seem to go anywhere.
Also, (and I'll make another issue if you would prefer) - is it possible to add a button to the row for an item that doesn't have pass-through propagation? (was going to add a pin/unpin button).

Hey, you can open select page with open() method, check Documentstion in Wiki to see a demo.
Not sure what you mean by propogation in this case, but do have a look at itemsToConfirm option in the docs.

You end up answering a lot of questions that are less "how do I use your tool" and more "how do I use a tool. Thanks again for the help :)
A bit new to the environment and sometimes it's hard to tell where to look for solutions. Cheers.

No problem ;)


missing section links in RFC-2744

Describe the issue
The HTML version of RFC-2755 is missing links to sections 5.10 and 5.11; that is, this works:
https://datatracker.ietf.org/doc/html/rfc2744#section-5.9
but this doesn't:
https://datatracker.ietf.org/doc/html/rfc2744#section-5.10
It looks as if there's a missing space in the source, e.g. 5.10.gss_display_name should be 5.10. gss_display_name, and thus it doesn't get parsed correctly. I would just submit an MR to fix that, but I'm not sure where or if those sources are available.
Thanks!
Code of Conduct

[x] I agree to follow the IETF's Code of Conduct

The missing space is in the canonical RFC text - see https://www.rfc-editor.org/rfc/rfc2744.txt. Those files are immutable.
The htmlized output is produced by running https://github.com/ietf-tools/rfc2html over that text file.
As a stretch, we could add a special case to rfc2html to teach it about these missing spaces in rfc2744, but it seems overkill to do so.

It seems worthwhile to me if the source can’t be fixed; I’m writing documentation that refers to this RFC, and it’s unfortunate to be able to link to some sections but not others.


Adding legens to export functionality

![download-2](https://cloud.githubusercontent.com/assets/132146/10486690/6056e3c6-7290-11e5-89de-fe90c6923250.png)
Fixes #5206
REVIEWER: @javierarce

:+1:

I guess you are interested in this one too @mbforr ;)

Amazing! Thanks @xavijam


Output error messages in alert

Add validation on backend part.
If validation is failure it will handle validation response and output validation messages.

I decided not to add validation for every route on backend part

#85


NativeImageFolderDataset vs ImageFolderDataset

Should NativeImageFolderDataset be a subclass of ImageFolderDataset?
Currently NativeImageFolderDataset lacks many of the attributes of ImageFolderDataset, such as:
class_to_idx, and is not even documented here:
https://autogluon.mxnet.io/api/autogluon.task.html#autogluon.task.ImageClassification.Dataset
Also the exact same code may arbitrarily return either ImageFolderDataset or NativeImageFolderDataset (based on _is_osx variable which is determined by Mac vs Linux), so these two should really look identical to users no?
https://github.com/awslabs/autogluon/blob/c7ec8d9461491e1eff65c84d66d19979161ec970/autogluon/task/image_classification/dataset.py#L146
https://github.com/awslabs/autogluon/blob/c7ec8d9461491e1eff65c84d66d19979161ec970/autogluon/task/image_classification/dataset.py#L177
For example, you can run the following on Mac vs on Ubuntu and get either ImageFolderDataset or NativeImageFolderDataset:
import autogluon as ag
from autogluon import ImageClassification as task

filename = ag.download('https://autogluon.s3.amazonaws.com/datasets/shopee-iet.zip')
data_folder = ag.unzip(filename)

train_data = task.Dataset('data/train')
train_loaded = train_data.init()
print(train_loaded)
train_loaded.class_to_idx  # wont work if NativeImageFolderDataset, only if ImageFolderDataset

This is likely resolved as of 0.1 / 0.2.


refactor: Use re-exported arrow mod from datatypes crate

I hereby agree to the terms of the GreptimeDB CLA
What's changed and what's your intention?
This PR does some minor refactoring:

Uses re-exported datatypes::arrow mod, avoids importing arrow2 directly in each crate.
Removes the datatypes::vectors::all mod.
Removes some duplicate imports: use super::{xxx, *}

This is part of the work before migrating to the official arrow crate.
Checklist

[x]  I have written the necessary rustdoc comments.
[x]  I have added the necessary unit tests and integration tests.

Refer to a related PR or issue link (optional)

#555

Looks like the develop branch has changed.


Add in a param to leave SVGs alone, as compression breaks already optimised SVGs

I have noticed recently when compressing my templates with optimised inline SVGs within them it will edit them and break the SVG icon.
Instead of me wrapping every inline SVG instance in <!--[htmlclean-protect]--> would it be possible to add in a param to leave SVG optimisations out?
As an example I have an arrow SVG
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31.494 31.494">
    <path d="M10.273 5.009a1.112 1.112 0 011.587 0 1.12 1.12 0 010 1.571l-8.047 8.047h26.554c.619 0 1.127.492 1.127 1.111s-.508 1.127-1.127 1.127H3.813l8.047 8.032c.429.444.429 1.159 0 1.587a1.112 1.112 0 01-1.587 0L.321 16.532a1.12 1.12 0 010-1.571l9.952-9.952z"/>
</svg>

It would output this as
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31.494 31.494">
    <path d="M10.273 5.009a1.112 1.112 0 11.587 0 1.12 1.12 0 10 1.571l-8.047 8.047h26.554c.619 0 1.127.492 1.127 1.111s-.508 1.127-1.127 1.127H3.813l8.047 8.032c.429.444.429 1.159 0 1.587a1.112 1.112 0 1-1.587 0L.321 16.532a1.12 1.12 0 10-1.571l9.952-9.952z"></path>
</svg>

Hi @zizther, thank you for the comment.
It seems that the path data in your first SVG was already broken.
The fourth argument large-arc-flag and fifth argument sweep-flag of a command have to be separated by comma or white space.
See document: https://www.w3.org/TR/2011/REC-SVG11-20110816/paths.html#PathDataBNF
That is, the path data has to be this even if the SVG is shown in your web browser luckily.
<path d="M10.273 5.009a1.112 1.112 0 0 1 1.587 0 1.12 1.12 0 0 1 0 1.571l-8.047 8.047h26.554c.619 0 1.127.492 1.127 1.111s-.508 1.127-1.127 1.127H3.813l8.047 8.032c.429.444.429 1.159 0 1.587a1.112 1.112 0 0 1-1.587 0L.321 16.532a1.12 1.12 0 0 1 0-1.571l9.952-9.952z"/>

After you fix the path data, the SVG that was cleaned should be shown fine.

@anseki Thanks for looking into this.
That is odd, the SVG has been optimised with SVGO before being used, which looks fine in the browser, but when additionally run through htmlclean it causes these issues.
I understand that SVGO is separate to htmlclean and it has its own params to control the output of the optimised SVG.
It would be good to try some different settings and see what the output would also be.

htmlclean can handle valid SVG and htmlclean doesn't break it. SVGO gives priority to the minifying rather than validity. Of course SVGO is great library to minify SVG.
Anyway, that broken SVG might be not shown correctly in some browser even if it is shown fine in your browser luckily.
That problem of SVGO is often being reported.
https://github.com/svg/svgo/issues?q=is%3Aissue+valid+OR+mess+OR+correct
For valid SVG, see document.
https://www.w3.org/TR/2011/REC-SVG11-20110816/paths.html#PathDataBNF
You will consider which of minifying (i.e. file size) or validity (i.e. safety) that you give priority to, and you can avoid SVGO changing the path data by disabling convertPathData plugin.
See document: https://github.com/svg/svgo

No reply came, then I close this abandoned issue.


Return __time in Druid scan

When doing a scan in Druid we're not returning the temporal column __time, which is needed for the play slider.
I also fixed the status URL, which is broken in master.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@3a58dc7). Click here to learn what that means.
The diff coverage is 0%.

@@            Coverage Diff            @@
##             master    #4504   +/-   ##
=========================================
  Coverage          ?   71.12%
=========================================
  Files             ?      187
  Lines             ?    14781
  Branches          ?     1083
=========================================
  Hits              ?    10513
  Misses            ?     4265
  Partials          ?        3

Impacted Files
Coverage Δ

superset/viz.py
77.74% <ø> (ø)

superset/connectors/druid/models.py
76.25% <0%> (ø)

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 3a58dc7...c439307. Read the comment docs.


Add button_rmb_pressed signal in Tree

This is necessary to implement #27813.

As a more scalable solution, shouldn't we keep the existing signal and send the mouse button index as a parameter to the signal?

I have thought the same, but since there are similar signals in Tree and I need only the one exposed here for #27813, I preferred to open this tiny PR.
However, I agree that all the rmb signals should be replaced by a parameter.

As a more scalable solution, shouldn't we keep the existing signal and send the mouse button index as a parameter to the signal? This way, the middle mouse button can also be detected.

I agree with this. I would prefer having this added as a parameter.
It's ok if we break compatibility here, it's not a big deal IMHO.

Superseded by #47665.


Add websockets and arity.

Signed-off-by: Byron Gravenorst<EMAIL_ADDRESS>

 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.Byron Gravenorst seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


docs: new outline of SDK documentations

What's Changed in this PR
Since each SDK supports two code object styles, the outline of the SDK documentation template needs to be changed.
This change requires each SDK to support two styles of object creation code, I'm not sure it is the best practice.
@killme2008 @fengjiachun @yuanbohan
Before:
- Create data
- Insert data
- Update data

Now:
- Low-level API
  - Create data
  - Insert data
  - Update data
 - ORM API
  - Create data
  - Insert data
  - Update data

Checklist

[ ] Please ensure that the content in summary.yml matches the current document structure when you changed the document structure.
[ ] This change requires follow-up update in localized docs.

@yuanbohan The SDK documentation in the user guide is intended to tell users how to manipulate data in a one-page document and should therefore be as detailed as possible, although there will inevitably be some repeated code examples.

@fengjiachun @yuanbohan @tisonkun @sunng87 PTAL


Properties from 'config' command return unordered

Describe the bug
The config command inside the accumulo shell returns the properties unordered.
Versions (OS, Maven, Java, and others, as appropriate):

Affected version(s) of this project: 2.1.0-SNAPSHOT. Appears to be from commit: 4ea9bf1ac916d66896eaaba329da04714a1e8cba

To Reproduce
Steps to reproduce the behavior (or a link to an example repository that reproduces the problem):

With the commit mentioned above, start-up an accumulo instance.
Go into the accumulo shell
Run the config command

Expected behavior
The properties should be returned ordered alphabetically.
Screenshots

Additional context
Each new instance has a different order of properties.

It looks like this is from the use of Map.copyOf() to replace populating a TreeMap in some places. In some places, this probably doesn't matter, but for the shell it would be nice. Unfortunately, there's no SortedMap.copyOf() or anything like that. The easiest fix is probably to use Guava's ImmutableSortedMap.copyOf() instead. There might be a few other places where TreeMap was replaced as well.

Yep, that appears to be correct. A quick test with ImmutableSortedMap.copyOf() worked.

I would like to work on this if no one else is.


[WIP] fix korean broken issue (#5298)

Motivation and context

There is an issue with Korean input when proceeding with text form labels.
Consonants and vowels are entered in order, but consonants and vowels are entered separately.
Expected Behaviour "유형자산마리아가나"
Current Behaviour "유형자산ㅁㅏㄹㅣㅇㅏㄱㅏㄴㅏ"
link : https://github.com/opencv/cvat/issues/5298
image :

How has this been tested?

Checklist

[x] I submit my changes into the develop branch
[x] I have added a description of my changes into CHANGELOG file
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (read github docs)
[ ] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.

Hi, this patch brings some regressions. When updating text via context element on canvas, it is not updated automatically in the sidebar.

@taeseok-lomin , thanks for the contribution. Will you have time to resolve found issues in the PR?

@nmanovic, Hello,I'm reviewing it, but it's going to take some time.

@taeseok-lomin , I will close the PR. Don't hesitate to reopen it if you can contribute us the fix.


[feature request] send commands to MA queues

For player integrations (or other integration) that want to interact with MA and it's playerqueues it would be nice they are able to send commands to MA, e.g. through eventbus.

Like Next/Prev, Seek, set Shuffle/Repeat etc.

I have just implemented this so it will be included in next release.
Implemented as service to make it more universal (and events are meant to signal events, not send commands).
Service can be called from HA frontend/automations etc. or from other integrations.

From a (media_player) integration use:
await hass.services.async_call(            "mass","queue_command",             service_data = {                "entity_id": "media_player.yourplayer",                "command": "play_media",                 "uri": "spotify/playlist/aabbccddee",                 "mode": "play_media_play_now"             }         )
uri and mode are optional parameters

we would need also seek to position...

we would need also seek to position...

https://github.com/music-assistant/hass-music-assistant/issues/147

how do we set shuffle and repeat? what are the parameters?

Look in the developer tools (when the new version is released), all options are listed there....


add checks for lost samples and empty record in capabilities tracer

add checks for lost samples and empty record in capabilities tracer
https://kubernetes.slack.com/archives/CSYL75LF6/p1704806538839969
How to use
[ describe what reviewers need to do in order to validate this PR ]
Testing done
[Describe the testing you have done before submitting this PR. Please include both the commands you issued as well as the output you got.]

@eiffel-fl what should I do with git blame?

Sorry, use git blame pkg/gadgets/trace/capabilities/tracer/tracer.go to find the original commit which added the file you modify.

Ok will do right after my daily

@eiffel-fl like that? I have added it to the line before Signed-off-by:

Thinking more to this, maybe you can add a sentence in the commit message about your modification avoiding a panic?

done


Message

Updated buffering

@kirk-microsoft not sure how this interacts with #252

Weird, all of these changes are in the main message branch so I'll close this PR even though I thought I squash merged it as it came in.. hummm


Add spear embedding

Could still do with juicing but good starting point.
https://github.com/space-wizards/space-station-14/assets/31366439/0a18419e-2529-4e3b-844a-24362f7e12b3
:cl:

add: Spears can now embed into things and require removing.

goodbye ninja soap


Feat: Maximum Intensity Projection script for imaging data

Resolves #150
This PR adds a script to create MIPs of imaging data, can be run on the cluster.
@jtyoung84 the find_hdf5_plugin_path function shows up in several scripts now, would it make sense to refactor it into a env_utils.py module or something?

Resolves #150
This PR adds a script to create MIPs of imaging data, can be run on the cluster.
@jtyoung84 the find_hdf5_plugin_path function shows up in several scripts now, would it make sense to refactor it into a env_utils.py module or something?

Yeah, that'd be cool.


I am facing an issue on embedded app in iphone safari in login section

When i connect to myApp using shopify admin section, App is working but when i use login section of laravel it is showing 419 error of laravel only in apple safari. but working find in all browser chorme, firefox.

resolved by enabling cookies in safari.

The problem is third party cookies which is actually disabled in Safari per default. Check your browser here: https://www.whatismybrowser.com/detect/are-third-party-cookies-enabled
Actually, this is can be a problem for many users since Safari is pretty widely used and this is a default setting.
@ohmybrew and @azarrar I suggest re-opening this issue.
The only way to solve this would probably be to rely on sessions instead of third party cookies. I am not sure it that can be done @ohmybrew? But at least we can add a middleware that can detect this so that it's possible to show a more detailed page with information about how to enable this in Safari.
What do you think?

To my knowledge there is nothing I can do on my end @bilfeldt :( While the idea of showing a message is nice, I think its something not needed, I don't want to have a bunch of code for every situation like this.

@ohmybrew This is caused by the Oauth process. There is a question about this on the Shopify forum here.
Basically this 419 error is caused by the app setting the cookie from within the iFrame which is blocked by browsers like Safari as part of ITP 2.0, since the cookie domain does not correspond to the parent domain - see Github discussion here
Shopify has created an entire page with recommended flow for handling ITP 2.0, which can be seen here. This is the recommended flow:

I think it would be a great addition to the plugin, to handle this for Safari (preferably a setting which browsers to do this for) since Safari is a widely used browser and it seems this might be implemented by other browsers as well (I noted that it seems that some users are experiencing this on some versions of Firefox as well, but havn't confirmed if it is the same error).
Note from the Shopify admin comment that the redirect page must be a blank page:

if the app renders UI during this redirect step, it creates visible flashes of content that can be confusing for the merchant. Instead, we recommend rendering a plain blank/white page during the Oauth redirect steps.

What is your thoughts on this @ohmybrew?

I already do a full page redirect when doing the oauth, what exactly is it I need to do you think, @bilfeldt ?

@ohmybrew I have tried to read the Wiki section Shop Installation and Authentication Process, but I was not completely sure which steps occur within the iFrame (embedded) and which occur in Top-level.
Are you sure that the cookie is being set in top-level? If that is the case then I don't get why we are seeing this 419 error which should be because the cookie is being set from the embedded iFrame.
I also looked at #293 and especially your comment on #271 where you describe the flow for the partial authentication. Maybe it would be nice with a diagram? I can easily add a diagram to the Wiki if you would be able to provide detailed information about the flow?

@ohmybrew I can also confirm that this issue is also present on the official Shopify App for iPhone and iPad.
When using the app, then you are facing the same authentication screen and once entering the shopify domain (which is already in the system) then a 419 page is shown.
I am pretty sure this is caused by the same restriction since the Shopify app probably uses the Safari browser under the hood.
I have also tested this on Shopify's Android app where there is no problem - assumably because it's using the Chrome browser under the hood.

Great research @bilfeldt :)
Is there an easy work around to it if even the official app isnt handling it well?
Looking at your diagram from before... how would we even reliably test the cookie since its a header which is read by the browser... we would have to have a page which sets a cookie, then go to another page to try and read the cookie? Seems like a huge mess :(

@ohmybrew Thanks :) I have tried to debug the AuthShop middleware using Safari, please see below.
Setup
So I have added the following debug lines to /src/ShopifyApp/Middleware/AuthShop.php
/**
 * Handle an incoming request.
 *
 * @param \Illuminate\Http\Request $request
 * @param \Closure                 $next
 *
 * @return mixed
 */
public function handle(Request $request, Closure $next)
{
    $validation = $this->validateShop($request);
    if ($validation !== true) {
        Log::debug('Validation not TRUE');
        return $validation;
    }
    Log::debug('Validation TRUE');

    return $next($request);
}

/**
 * Checks we have a valid shop.
 *
 * @param \Illuminate\Http\Request $request
 *
 * @return bool|\Illuminate\Http\RedirectResponse
 */
protected function validateShop(Request $request)
{
    // Setup the session service
    $session = new ShopSession();

    // Grab the shop's myshopify domain from query or session
    $shopDomainParam = $request->get('shop');
    $shopDomainSession = $session->getDomain();
    $shopDomain = ShopifyApp::sanitizeShopDomain($shopDomainParam ?? $shopDomainSession);
    Log::debug('Shop domain from request: ' . $shopDomainParam);
    Log::debug('Shop domain from session: ' . $shopDomainParam);
    Log::debug('Shop domain: ' . $shopDomainParam);

    // Get the shop based on domain and update the session service
    $shopModel = Config::get('shopify-app.shop_model');
    $shop = $shopModel::withTrashed()
        ->where(['shopify_domain' => $shopDomain])
        ->first();

    $session->setShop($shop);

    $flowType = null;
    if ($shop === null || $shop->trashed()) {
        // We need to do a full flow
        $flowType = AuthShopHandler::FLOW_FULL;
        Log::debug('Doing flow: ' . $flowType);
    } elseif (!$session->isValid()) {
        // Just a session issue, do a partial flow if we can...
        Log::debug('Cannot decide about flow yet');
        $flowType = $session->isType(ShopSession::GRANT_PERUSER) ?
            AuthShopHandler::FLOW_FULL :
            AuthShopHandler::FLOW_PARTIAL;
        Log::debug('Doing flow: ' . $flowType);
    }

    if ($flowType !== null) {
        // We have a bad session
        Log::warning('BAD FLOW');
        return $this->handleBadSession(
            $flowType,
            $session,
            $request,
            $shopDomain
        );
    }

    // Everything is fine!
    return true;
}

and lastly
/**
 * Handles a bad shop session.
 *
 * @param string                                    $type       The auth flow to perform.
 * @param \OhMyBrew\ShopifyApp\Services\ShopSession $session    The session service for the shop.
 * @param \Illuminate\Http\Request                  $request    The incoming request.
 * @param string|null                               $shopDomain The incoming shop domain.
 *
 * @return \Illuminate\Http\RedirectResponse
 */
protected function handleBadSession(
    string $type,
    ShopSession $session,
    Request $request,
    string $shopDomain = null
) {
    Log::debug('Current session domain: ' . $session->getDomain());
    // Clear all session variables (domain, token, user, etc)
    $session->forget();

    // Set the return-to path so we can redirect after successful authentication
    Session::put('return_to', $request->fullUrl());

    // Depending on the type of grant mode, we need to do a full auth or partial
    Log::debug('New session domain: ' . $session->getDomain());
    Log::debug('Flow type: ' . $type);
    return Redirect::route(
        'authenticate',
        array_merge(
            $request->all(),
            [
                'type' => $type,
                'shop' => $shopDomain,
            ]
        )
    );
}

Process
Before this, please clear all browser cookies and cache. Also make sure that the app is already installed once and hence created in the shops table.
Process to test:

Login to Shopify
Go to "Apps"
Click on the app

Result
This is the log
[2019-08-09 13:58:13] local.DEBUG: Shop domain from request: foo-bar.myshopify.com
[2019-08-09 13:58:13] local.DEBUG: Shop domain from session: foo-bar.myshopify.com
[2019-08-09 13:58:13] local.DEBUG: Shop domain: foo-bar.myshopify.com
[2019-08-09 13:58:13] local.DEBUG: Cannot decide about flow yet
[2019-08-09 13:58:13] local.DEBUG: Doing flow: partial
[2019-08-09 13:58:13] local.WARNING: BAD FLOW
[2019-08-09 13:58:13] local.DEBUG: Current session domain:
[2019-08-09 13:58:13] local.DEBUG: New session domain:
[2019-08-09 13:58:13] local.DEBUG: Flow type: partial
[2019-08-09 13:58:13] local.DEBUG: Validation not TRUE
[2019-08-09 13:58:13] local.DEBUG: Shop domain from request:
[2019-08-09 13:58:13] local.DEBUG: Shop domain from session:
[2019-08-09 13:58:13] local.DEBUG: Shop domain:
[2019-08-09 13:58:13] local.DEBUG: Doing flow: full
[2019-08-09 13:58:13] local.WARNING: BAD FLOW
[2019-08-09 13:58:13] local.DEBUG: Current session domain:
[2019-08-09 13:58:13] local.DEBUG: New session domain:
[2019-08-09 13:58:13] local.DEBUG: Flow type: full
[2019-08-09 13:58:13] local.DEBUG: Validation not TRUE

Now I see the screen "Enter your Shopify domain to login" inside the iFrame with an empty input field, which in my opinion makes no sense since this shop exist? Also, maybe we should prefill that field if the domain matches the format '%'.config('shopify-app.myshopify_domain'')  - separate improvement?

Fill out the domain (without protocol, so foo-bar.myshopify.com) and clicking "submit"

Causes the 419 error without anything else being written to the log.

@ohmybrew would you be okay with reopening this issue, so that other might assist with this issue?

@bilfeldt Done, yeah so its redirecting to update the session and fails to do so due to Safaris security limitations it seems, thus the shop is empty everywhere.

@ohmybrew during my test, the app never escaped the embedded frame. Since it never escaped from the embedded frame and went in to top level, then Safari blocks the session.
How would you redirect to a route in top-level from your auth middleware? It would be nice to test the proposed solution from Shopify, which required that we set a demo cookie first and then check if we can read it. If we are not able to read it, then we break out from embedded to top level where we set a cookie and the do it all again.

Hmm yeah it only does a full page redirect on a initial auth... not sure what to do here.

@ohmybrew Do you by any chance have a diagram of the auth flow? Or can you confirm that the latest 9.2 release is still using the flow described here? That would really help in case we need to update the flow to account for ITP 2.x

Hey!Currently in master, which should represent the next release (possible tonight), the partial flow stuff is removed. So the regular flow just appliea right now. I can draw a diagram when I'm at computer On Aug. 29, 2019 19:27, Anders Bilfeldt<EMAIL_ADDRESS>wrote:@ohmybrew Do you by any chance have a diagram of the auth flow? Or can you confirm that the latest 9.2 release is still using the flow described here? That would really help in case we need to update the flow to account for ITP 2.x
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

It seems Shopify is updating their internal apps to support this.
I noticed when loading Scripts Editor (Plus app) the other day, it had a embedded page letting me know it had to do this to allow for cookies...
I am not sure the best way to implement such a thing atm for the package.. suggestions welcome.

The app that I was working on was having session issues on v9 when I attempted to launch it on Safari, but it seems that the issues have gone away on v10 and the app is launching as normal.

This problem exists in Safari on Mac too.
I came across this while investigating a ticket from one of our users who was unable to load the app.

It seem that Shopify is not taking any official steps to fix this from their site. The official Shopify guide is to implement the test cookie flow as explained in their IPT guide.
This should be something that we can implement in the AuthShop middleware but will require a blade file rendering which uses EASDK to redirect to a top-level site (outside iFrame) as mentioned:

Fortunately, the Embedded App SDK (EASDK) will allow you to use the remoteRedirect method to change the location of the parent window. This allows you to redirect the merchant to your app as a parent window, set a cookie, and then redirect back to Shopify to set the cookie in the embedded context.

I will happily make a proposed flow for this. But @ohmybrew can you maybe provide a diagram or at least a bullet list of the current AuthShop flow? I can see that you are also working on implementing changes to this here #327 . I am especially interested in the difference between the flows Offline Grant Mode and Per-User Grant Mode and the motivation for having two flows - maybe this can be simplified?
I look much forward to hearing from you.

I don't think it should be within the AuthShop middleware since some apps are not embedded and those non-embedded apps don't have this issue.

@ncpope that makes sense.
I think it would be okay to assume any application having AppBridge enabled is using embedded app and any application not using AppBridge is not embedded. Would you agree?
config('shopify-app.appbridge_enabled'); //FALSE: hosting the app inside ones own container.

It should be noted that Shopify Admin Links will always be applied within the iFrame however.

@bilfeldt

config('shopify-app.appbridge_enabled');

I think it is safe to say that anyone using this setting is going to be relying on the package to generate their embedded app views. I think this would make it a good setting to compare against when deciding whether or not to implement the fix you found from Shopify.

It should be noted that Shopify Admin Links will always be applied within the iFrame however.

I am not entirely sure what you mean here. If you are saying that admin links need to be directed to an embedded app, that isn't the case currently. I am using admin links to load links to non-embedded apps/non-iframe apps.
I think you might be referring to: https://help.shopify.com/en/api/embedded-apps/app-extensions/navigation/create-navigation-link
If that's the case then yep you are correct. You can only use those Navigation Links within embedded apps
If you are sure you mean Admin Links, then you just need to double check that your embedded app setting is turned off:

Shopify's guide seems like there is a lot to implement.. it seems like it would introduce issues.

Read over it again.. seems like a lot of extra steps to plug in, is it actually this involved or are they just being very verbose in the docs?

Read over it again.. seems like a lot of extra steps to plug in, is it actually this involved or are they just being very verbose in the docs?

Hi there, @ohmybrew !
As I can understand from there and apps which already improved this, we just need a page which will have JavaScript included, which will check if the safari browser already allowed to store 3rd party cookies, if it not allows request access to 3rd party cookies and after user approve check again and if we have right to store cookies already, we just need immediate redirect to next page.
So if browser is safari, we need to send them always to this "safari auth page", before they can access any other app logic.
Does it makes sense?
Thanks!

That seems like we would always have to show this confirmation page since we need to use JS to verify the cookie status?
function cookieStatus() {
    if (navigator.cookieEnabled) {
       return true;
    }

    const cookieKey = 'laravel_shopify';
    document.cookie = `${cookieKey}=1`;

    const staus = document.cookie.indexOf(`${cookieKey}=`) != -1;
    document.cookie = `${cookieKey}=1; expires=Thu, 01-Jan-1970 00:00:01 GMT`;

    return status;
}

If cookieStatus is bad => show a page like this at top-level: https://imgur.com/a/GkTeJoH (clicking button sets the testcookie?
If cookieStatus is good => redirect to asked page like normal
Does that sound right?

Hi there again!
I believe this is almost exactly what needed.
I know only one app which already working with new ITP using Safari, but it works in abit strange way - always asking for permissions.
This is the app: https://apps.shopify.com/facebook-marketing
I believe we can do all code we need just in 1 file:
/ohmybrew/laravel-shopify/src/ShopifyApp/resources/views/auth/fullpage_redirect.blade.php

I didnt tested if this will 100% work yet.

Thats possible yup. The only app I work with daily that gives me the screen is Script Editor (for plus).
Is there a browser besides Safari that does this... I'm on Linux and Android... no Safari to test this stuff out.

Thats possible yup. The only app I work with daily that gives me the screen is Script Editor (for plus).

The only browser currently introduced itp 2.1 is safari as I can see.
I can try to setup virtual machine and give you teamviewer if that helps.

Also found this script:
https://cdn.shopifycloud.com/facebook_ads/assets/shopify_app/request_storage_access-3c493a4239442bfd86e4df1c8f6b59d1a71ab911fbc55a8728bbe0cebf494949.js
shopify using this to detect if browser is affected, to request access, etc.
Im trying to integrate this as well.

Great, actually I got lambdatest account, I can use that for safari

What about checking test cookie existence in a testCookieMiddleware using
Cookie::has('testCookie');

If the testCookie is not set, then render a view top-level-redirect.blade.php which uses Shopify App Bridge redirect
redirect.dispatch(Redirect.Action.REMOTE, 'https://my-app.example.com/session/set-top-level-cookie');

to redirect the user to a new endpoint /session/set-top-level-cookie in top-level (not embedded). This endpoint will be able to set the testCookie without any issues since this page is not loaded in an embedded frame:
/**
 * Set the testCookie and redirect to home-redirect
 *
 * @return Response
 */
public function index()
{
    Cookie::queue('testCookie', true, 15);

    return view('home-redirect');
}

The home-redirect.blade.php will simply show something like

App is now authenticated (IPT requirements). You will be redirected shortly and should not see this error again.

The blade then redirects the user to the home route and everything will start over again except that the testCookieMiddleware will not pass since the cookie is set.

Just for information then we have also gotten reports from some customers using the latest Firefox browser that our app is blocked. It seems that Firefox is also blocking 3rd party cookies now. We have not yet confirmed this but this is a setting in Chrome can we see.

I have created a branch [itp-feature]. I'll begin work on it and check it out...

Having some success thus far as a quick update... https://i.imgur.com/soM3bj3.png

Have base code working... clicking continue sets the test cookie (configurable name) and redirects to home where authshop allows it through... going to boot up a Safari instance to test now.

I'm on the Shopify Partners slack, and some partners have reported that this is starting to happen on Chrome too. Partners report multiple embedded shopify apps going into an auth loop, including even Shopify's own GraphQL testbed app.

I've experienced this too, including with Firefox. Looks like an experimental flag in Chrome causing the issue right now (#356)

@ptcampbell the concern if this experimental flag will/has become non-experimental and part of a stable Chrome build

Just an update regarding the Chrome auth loop problem (does this need to be a different issue?):
A rep from Shopify shared on the partners slack that cookies from embedded apps need to be created with SameSite=None; Secure. Here's the reference on the Chromium blog.
We went ahead and changed our app's config/session.php to update 'secure' => true, and 'same_site' => 'none', and have confirmed that the auth loop no longer occurs on Chrome 80.
Now the question is should this be in the installation documentation, or should this package go ahead and force this setting in the service provider?

I went ahead and created a new issue #367


{CI} Bump azure-core version to 1.21.1

Because 1.24.0 has breaking change with 1.21.1.
So we bump azure-core version to 1.21.1 to fix CI error:
https://dev.azure.com/azure-sdk/public/_build/results?buildId=1561389&view=logs&j=9c80867e-ccda-50f1-65bc-e11447f3cda9&t=8e28b004-aba6-5a56-67c2-9d40a66e3ed9
Test screenshot：

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
The precondition is to put your code inside this repository and upgrade the version in the pull request but do not modify src/index.json.

CI

The azure-core change is not a breaking change, but a bug.
The document clearly says Azure-AsyncOperation has higher priority:
https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/async-operations#url-to-monitor-status

The document says Azure-AsyncOperation has higher priority:
https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/async-operations#url-to-monitor-status


About loading and saving llama model of pretraining job

I am running a pretraining job following https://github.com/aws-neuron/aws-neuron-parallelcluster-samples/blob/master/examples/jobs/neuronx-nemo-megatron-llamav2-job.md
And the script works smoothly. However, I don't know where the trained model is saved. I have set
model.save_xser = True

in https://github.com/aws-neuron/neuronx-nemo-megatron/blob/da1fb6643838e01c9110723bb4190081b4a249b0/nemo/examples/nlp/language_modeling/test_llama.sh
But I still can not find the trained model anywhere.
What is more, I am not sure if the script loads the parameters from the model.tokenizer.type folder to initialize llama model ?
It seems like the example script uses randomly initialized parameters for training, so what should I do if I want to initialize the model with pretrained parameters? Should the parameter file restricted to ckpt file?

Hi @etsurin,
By default model checkpoint saving should be relative to your working directory for training.  For example if you are using megatron llama under nemo_experiments, and AWS Parallel Cluster(which runs slurm) you should see checkpoint files under: nemo_experiments/megatron_llama/$SLURM_JOB_ID/checkpoints
In terms of initializing the parameters - this is a pretraining script, so normally it would start from random initialization and reload training in the event of a crash by modifying the script like this:
# Note: to resume training using a checkpoint, please add the following configuration above, adjusting for your checkpoint path
#    model.use_cpu_initialization=False \
#    +model.load_xser=True \
#    model.resume_from_checkpoint='/efs/checkpoint/megatron_gpt--step\=1085-consumed_samples\=69632.0-last.ckpt' \

which is commented at the end in the script file you've linked.  You can add code to your scripts to detect failures and act accordingly.
If you want to start by loading your own pretrained model you should be able to load it in training mode and start training by modifying the training script, not to initialize weights.
Model tuning (where you start with pretrained model and tune part of the model, or an attached adapter) is a little different.  There are some examples of tuning here: https://github.com/aws-neuron/neuronx-nemo-megatron/tree/da1fb6643838e01c9110723bb4190081b4a249b0/nemo/examples/nlp/language_modeling/tuning

Since we haven't heard back from you, we'll assume we've answered your questions and will close this issue. Please feel free to reopen this issue or create a new ticket if you're still encountering any issues running your model.


LoadBalancer vs NodePort with manualy setup LB (haproxy.cfg difference)

Ok. So i have set type LoadBalancer and it works. I decided to setup TCP LoadBalancer on Azure by myself instead of leaving it to Kubernetes so i Created my own LB which works and switched voyager ingress anotation to NodePort and backends to use 31443 nodeport.
And i expected it to work the same. But im getting.

503 Service Unavailable

No server is available to handle this request.

from voyagers haproxy
So my request is basicly to https://api.mydomain.com (443 of course)
Difference is:
acl host_acl_test.mydomain.com hdr(host) -i test.mydomain.com
acl host_acl_test.mydomain.com hdr(host) -i test.mydomain.com:443
...
acl host_acl_api.mydomain.com hdr(host) -i api.mydomain.com
acl host_acl_api.mydomain.com hdr(host) -i api.mydomain.com:443

becomes this (up is LoadBalancer type, down is NodePort type)
acl host_acl_test.mydomain.com hdr(host) -i test.mydomain.com:31443
...
acl host_acl_api.mydomain.com hdr(host) -i api.mydomain.com:31443

with addition of
acl host_acl_ hdr(host) -i :32499

when nodeport used
backend config have this
    http:
      port: 443
      nodePort: '31443'

Any ideas how to make it work same with NodePort. That is to generate same config as on LoadBalalncer type.
It seems to work with if i send header "Host:api.mydomain.com:31443".
Shouldnt it accept also domain 'api.mydomain.com'

Please take a look at https://github.com/appscode/voyager/blob/master/docs/concepts/ingress-types/nodeport.md#understanding-ingressappscodecomforce-service-port-annotation
This should answer your question.

Yep.
Setting
ingress.appscode.com/force-service-port: 'true'

made it work. I was searching docs for something similar but finding 'terms' for relevant thing is not always simple task.
I did also looked for all supported annotations here:
https://appscode.com/products/voyager/5.0.0-rc.11/guides/ingress/configuration/annotations/
and its not mentioned. But big thanks.

@KresoDenis , glad that you got it to work. In 6.0.0-rc.0 release, we have reversed the behavior and it is documented here: https://appscode.com/products/voyager/6.0.0-rc.0/concepts/ingress-types/nodeport/#understanding-ingress-appscode-com-use-node-port-annotation
Regarding search, I am looking for a better /easy to use search engine tool. Finding stuff is difficult as-is . :(


Share a iree_filter_test helper to conditionally enable tests.

This should be NFC, except that the filtering is now applied also to iree_lit_test, which was so far omitted from the filtering.
You know that resnet50 outlier test that is always taking an additional 40 seconds to complete with ASAN after everything else is finished? That was it :-)
Some of the logic in iree_filter_test is not currently exercised but will be in subsequent PRs as we carry out the fixes for #14152.
The check for the CMAKE_BUILD_TYPE to implement optonly filtering is dropped: there was apparently no usage of optonly in the tree.

Note: rebased on top of #14167 .

Note: rebased on top of #14167 .

Hmm... something about that is showing unexpected changes (e.g. to experimental/cuda2/cuda_dynamic_symbol_table.h)

Note: rebased on top of #14167 .

Hmm... something about that is showing unexpected changes (e.g. to experimental/cuda2/cuda_dynamic_symbol_table.h)

Sorry, had forgotten to update the diffbase branch.


Add file system vector-IO operations interface.

Add file system Vector-IO operations interface.

Codecov Report

Merging #312 (25cc21e) into main (20ce7d6) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #312   +/-   ##
=======================================
  Coverage   39.62%   39.62%
=======================================
  Files         104      104
  Lines       11101    11101
=======================================
  Hits         4399     4399
  Misses       6268     6268
  Partials      434      434

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

I can't see where we link to docs/concept/persistence-storage.md doc, how a user could read this?

I can't see where we link to docs/concept/persistence-storage.md doc, how a user could read this?

We have not implemented it. As WAL, once the implementation gets merged, we would publish this doc.


is basic summarization extractive?

As far as I know of, CTRLsum is a model which supports abstractive summarization. On the README example, it also shows that 2. Basic Summarization performed abstractive summarization because the subject of the sentence has changed compared to the original sentence on the content.
Original: He is a ~
Summarization: Tunip is a~
However, on my custom dataset, all the samples I have tried returned the exact original sentence from the content, making me assume that it is performing an extractive summarization.
I wonder what would be the cause to this issue?
Thank you.

As you say, CTRLsum is an abstractive summary model. Firstly, This phenomenon is not a big problem for CTRLsum's abstractive summary because the result of the extractive summary is a subset of abstractive summary. However, this may occur more frequently because CTRLsum's summaries are generally shorter than other summarization models.
CTRLsum typically generates shorter sentences because only sentences suitable for a given aspect were drawn from the entire gold label. (because it learned to generate sentence-by-sentence rather than paragraph) It would be nice to check the paper if you want more explanation. And, It may also be more helpful to create an issue in the original author's repository because this model is not the model I trained and is just simply ported to the model in the original repository.


try to resolve this error

File "E:\slots\Slots\Slots\app.py", line 6, in
from USER_BP_NAVYA.users import users_bp
File "E:\slots\Slots\Slots\USER_BP_NAVYA\users.py", line 17, in
from dbops import DAC, Mail
ModuleNotFoundError: No module named 'dbops'

clear


chore: bump containerd-wasm-shims to 0.8.0

This PR bumps the containerd-wasm-shims to v0.8.0

Thanks, @Mossaka!
LGTM.


Improve usability of repository popup

When we try to clone a repository and an error occurs, e.g. invalid url or non existing package, the popup is closed and then the error is displayed.

Then the user has to redo his actions and refill values. I think it would a good idea to keep the popup open respectively the popup is displayed again with populated values.

Same with offline repositories...


Add support for cppdbg

I find lldb to crash fairly often, or just skip over breakpoints sometimes. This PR adds support for cppdbg, which uses gdb and doesn't have the same issues.

Thanks for the PR! Just a couple things:

If we want the user to configure the adapter (cppdbg), then there's no reason that lldb should be done by the plugin as well. So i think we should remove setting up lldb from the plugin, or atleast allow the user to put in their own lldb config.

I though the cargo args sent by rust-analyzer already had the --no-run flag, i'll check that out

Also, we shouldn't remove the executable args, as they're used for debugging tests


InvalidSignature Error on Transfer

BigchainDB version: 1.3.0
Operating System: Windows 10 Pro
Deployment Type: Docker
BigchainDB driver: yes, JS v3.x.x

Description
I'm following the code on this page: https://docs.bigchaindb.com/projects/js-driver/en/latest/usage.html#recap-asset-creation-transfer
I'm attempting to do create a Transfer transaction.  I can successfully create a CREATE transaction.  However, I get the following error when calling postTransaction() method:
[2018-02-12 18:03:39] [ERROR] (bigchaindb.web.views.base) HTTP API error: 400 - POST:/api/v1/transactions - Invalid transaction (InvalidSignature): Transaction signature is invalid. (webapi     - pid: 68)
Steps to Reproduce
I created 4 pairs of Ed25519 keys and added them to a dropdown list with a name so that I could tell them apart more easily.
I select a name from the dropdown list to create a new asset.
The transaction is created after it gets signed.
I take the transaction id I got from the asset creation and use that to retrieve the transaction.
I think follow the code in the documentation to create a transfer transaction, which gets created with the second person's public key and then gets signed with the original owner's private key.
The error occurs when postTransaction() is called.
What I Did
My code is below.  My test project is an Angular 5 project written in TypeScript.
//This is the asset record that gets added to the transaction (it's bound to the form with two-way binding)
export class Bale {
    public seller: string
    public buyer: string
    public bales: string
    public price: string
    public fileHash: string
}

class Person {
  public name: string

  public keys: {
    privateKey: string
    publicKey: string
  }
}

//This is the list of "people" I created to create and transfer assets
people: Array<Person>

ngOnInit() {
    this.people = [
      { name: 'Eric Cartman', keys: new driver.Ed25519Keypair() },
      { name: 'Kenny McCormick', keys: new driver.Ed25519Keypair() },
      { name: 'Kyle Broflovski', keys: new driver.Ed25519Keypair() },
      { name: 'Stan Marsh', keys: new driver.Ed25519Keypair() }
    ]
  }

//This is used to create the initial asset/transaction record
public createTransaction() {
    this.gettingVersion = true;  //Used to display the animated icon on the button

    //Define the asset
    const assetdata = this.bale
    const metadata = { 'assetType': 'Bale' }

    //Create the Asset
    const txCreateSender = driver.Transaction.makeCreateTransaction(
      assetdata,
      metadata,

      // A transaction needs an output
      [
        driver.Transaction.makeOutput(
          driver.Transaction.makeEd25519Condition(this.sender.publicKey)
        )
      ],
      this.sender.publicKey
    );

    //Sign the transaction with private key of sender to fulfill it
    let txCreateSenderSigned = driver.Transaction.signTransaction(txCreateSender, this.sender.privateKey);

    this.signedTx = txCreateSenderSigned

    //I used these console outputs to compare the differences between a signed and unsigned transaction
    console.log('Create and Signed Transactions')
    console.log(txCreateSender)
    console.log(txCreateSenderSigned)

    //And sent over to a BigchainDB node:
    //this.conn.postTransaction(txCreateSender)
    this.conn.postTransaction(txCreateSenderSigned)
      .then(() => this.conn.pollStatusAndFetchTransaction(txCreateSender.id))
      .then(retrievedTx => console.log('Transaction', retrievedTx.id, 'successfully posted.'))
      .then(() => this.conn.getStatus(txCreateSenderSigned.id))
      .then(status => console.log('Retrieved status method 2: ', status))

    //Get the Transaction Id
    this.transactionId = txCreateSenderSigned.id;
    console.log('Transaction Id', this.transactionId);
    this.gettingVersion = false;  //This is used to disable a loading icon on a form button

    //These 2 lines are used to keep track of the transactions that were created during the current session
    let sellerPerson = this.people.find(person => person.keys.publicKey === this.bale.seller)

    this.transactionData.push({ txId: txCreateSenderSigned.id, txSender: sellerPerson.name, txReceiver: '' })
  }

//This is used to transfer the previously created asset/transaction
public transferBale() {
    let buyerPerson = this.people.find(person => person.keys.publicKey === this.buyer)
    let sellerPerson = this.people.find(person => person.keys.publicKey === this.bale.seller)

    console.log('Getting transaction')
    this.http.get(`${this.API_PATH}transactions/${this.searchTerm}`).subscribe(result => {
      console.log('Original Transaction', result.json())

      let originalTransaction = result.json()

      console.log('Making transfer transaction')
      //Create the Transfer Transaction
      let txTransfer = driver.Transaction.makeTransferTransaction(
        // signedTx to transfer and output index
        [{ tx: originalTransaction, output_index: 0 }],
        [driver.Transaction.makeOutput(driver.Transaction.makeEd25519Condition(buyerPerson.keys.publicKey))],
        // metadata
        { transaction_type: 'Transfering bales to another person' }
      )

      console.log('Transfer Transaction')
      console.log(txTransfer)

      console.log('Signing Transfer Transaction')
      // Sign with the Seller's private key
      let txSignedTransfer = driver.Transaction.signTransaction(txTransfer, sellerPerson.keys.privateKey)
      console.log('Posting signed transaction: ', txSignedTransfer)

      // Post and poll status
      let txResult = this.conn.postTransaction(txSignedTransfer)
          .then(() => console.log('Transfer Transaction Result', txResult))
    }, (error: any) => {
      console.log('Request error', error);
      this.jsonResult = error;
    }, () => {
      console.log('Request is complete');
      this.gettingVersion = false;
    });
  }

Am I doing something wrong here for the transfer to fail? If any more information is needed, please let me know.

As is usually the case.  I just saw what I did wrong immediately after I submitted this issue.  The problem is that I was using this.sender.publickey/privatekey which was a completely different keyvaluepair from the ones in the list.  After changing it, the transfer went through successfully.  Sorry for the unnecessary issue.


Redux devtools

This could well be the best React developer experience out there:

static typing
hot reloading using the latest React Transform

One thing that would be awesome would be to include the Redux Devtools:

https://github.com/zalmoxisus/redux-devtools-extension#implementation
https://github.com/gaearon/redux-devtools/blob/master/docs/Walkthrough.md

Thanks for keeping the dependencies up-to-date
David

Actually, I got this working, with only a couple of line changes, and nothing else installed!

changed createStore in index.tsx

declare var window:any;

function configureStore():Store {
  const store:Store = createStore(
    counterApp,
    {counters: []},
    window.devToolsExtension ? window.devToolsExtension() : undefined
  );

 // the rest of the function is unchanged

changed the createStore definition in redux.d.ts

    function createStore(reducer: Reducer, initialState?: any, opts?:any): Store;

Apparently the optional 3rd parameter is new in redux 3.1 onwards.

Thanks for the kind words! Having this wrapped up in a PR maybe would be nice.
Personally, I think the one thing that's missing is testing. After that, then it'd be one step closer to world domination the best React dev experience out there :smile:

fair point!


Am new to flutter i got this issue i really need help.

Launching lib\main.dart on sdk gphone x86 in debug mode...
Running Gradle task 'assembleDebug'...
Exception in thread "main" java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.(ZipFile.java:225)
at java.util.zip.ZipFile.(ZipFile.java:155)
at java.util.zip.ZipFile.(ZipFile.java:169)
at org.gradle.wrapper.Install.unzip(Install.java:214)
at org.gradle.wrapper.Install.access$600(Install.java:27)
at org.gradle.wrapper.Install$1.call(Install.java:74)
at org.gradle.wrapper.Install$1.call(Install.java:48)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.Install.createDist(Install.java:48)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
[!] Gradle threw an error while trying to update itself. Retrying the update...
Running Gradle task 'assembleDebug'...
Exception in thread "main" java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.(ZipFile.java:225)
at java.util.zip.ZipFile.(ZipFile.java:155)
at java.util.zip.ZipFile.(ZipFile.java:169)
at org.gradle.wrapper.Install.unzip(Install.java:214)
at org.gradle.wrapper.Install.access$600(Install.java:27)
at org.gradle.wrapper.Install$1.call(Install.java:74)
at org.gradle.wrapper.Install$1.call(Install.java:48)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.Install.createDist(Install.java:48)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
[!] Gradle threw an error while trying to update itself. Retrying the update...
Finished with error: Gradle task assembleDebug failed with exit code 1

Did you try to create anew flutter project with flutter create MY_PROJECT_NAME then copying the lib folder and any asset files and dependencies?
If you did not, try it. It may solve your problem!

@YazeedAlKhalaf am still having same issue

Hi @chris097
Please take a look at this possible solution
Related to #51195
Thank you

Hi @chris097
Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.


Prepare TagSoupPullParser for rust port

Coverage decreased (-0.01%) to 58.568% when pulling 1547cef77128563fbbed79738da59da5a61eae0e on dennisschagt:feature/prepare-rust-port-tagsouppullparser into f5b1fb91c645141d2767913b5a9822c2abb3fa06 on newsboat:master.


pyftmerge: getting OverflowError

When I tried to merge fonts covering the range of U + 100000 to U + 10EA5F and fonts covering U + 10EA60 to U + 10FFF5, I got the following error.
Traceback (most recent call last):
File "c:\python2715\lib\runpy.py", line 174, in _run_module_as_main
"main", fname, loader, pkg_name)
File "c:\python2715\lib\runpy.py", line 72, in run_code
exec code in run_globals
File "C:\Python2715\Scripts\pyftmerge.exe_main.py", line 9, in
File "c:\python2715\lib\site-packages\fontTools\misc\loggingTools.py", line 375, in wrapper
return func(*args, **kwds)
File "c:\python2715\lib\site-packages\fontTools\merge.py", line 1125, in main
font.save(outfile)
File "c:\python2715\lib\site-packages\fontTools\ttLib\ttFont.py", line 173, in save
writer_reordersTables = self._save(tmp)
File "c:\python2715\lib\site-packages\fontTools\ttLib\ttFont.py", line 212, in _save
self._writeTable(tag, writer, done, tableCache)
File "c:\python2715\lib\site-packages\fontTools\ttLib\ttFont.py", line 633, in _writeTable
tabledata = self.getTableData(tag)
File "c:\python2715\lib\site-packages\fontTools\ttLib\ttFont.py", line 651, in getTableData
return self.tables[tag].compile(self)
File "c:\python2715\lib\site-packages\fontTools\ttLib\tables_p_o_s_t.py", line 51, in compile
data = data + self.encode_format_2_0(ttFont)
File "c:\python2715\lib\site-packages\fontTools\ttLib\tables_p_o_s_t.py", line 173, in encode_format_2_0
indices.append(index)
OverflowError: unsigned short is greater than maximum

you're trying to pack too many glyphs into a single opentype font. you can't fit more than 65535 glyphs.

Fonts that support the range U+100000 to U+10EA5F have 60003 glyphs(include 3 other glyphs). The font that supports U + 10EA 60 to U + 10 FFF 5 has 5527 (include 1 other glyph)glyphs. Since the total number of glyphs expected after merging is 65530, I think that there are five margins.

right ok, then your fonts probably aren't including glyph names from the "standard macintosh set" so all glyph names in post table format 2.0 end up in the extra names, but post format 2.0 only has room between 258 and 65535 for these:

If the name index is between 0 and 257, treat the name index as a glyph index in the Macintosh standard order. If the name index is between 258 and 65535, then subtract 258 and use that to index into the list of Pascal strings at the end of the table.

https://docs.microsoft.com/en-us/typography/opentype/spec/post
I'd recommend you switch to post table format 3.0, which basically means dropping all the glyph names.

try something like this
from fontTools.ttLib import TTFont
font = TTFont("myfont.ttf")
font["post"].formatType = 3.0
font.save("myfont2.ttf")

Thank you! It went well!


Update kubectl in embedded kubectl shell

What kind of request is this (question/bug/enhancement/feature request):
task
Steps to reproduce (least amount of steps as possible):
With newly supported k8s versions, we should bump kubectl to 1.12.6
To validate:

Open embedded kubectl shell
Run kubectl version
Client Version should show correct version

Tested with v2.2.2-rc-x12
Client version for K8s - v1.12.7 is now v1.12.7
> kubectl version
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.7", GitCommit:"6f482974b76db3f1e0f5d24605a9d1d38fad9a2b", GitTreeState:"clean", BuildDate:"2019-03-25T02:52:13Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.7", GitCommit:"6f482974b76db3f1e0f5d24605a9d1d38fad9a2b", GitTreeState:"clean", BuildDate:"2019-03-25T02:41:57Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}


timm bits

The branch associated with this PR is for development of timm bits -- a significant update and reorganizaiton of timm's training scripts and associated modules. It works w/ TPUs (PyTorch XLA) and GPUs (PyTorch) and possibly DeepSpeed.
This PR is still a long ways from being merged. Having the branch as a PR helps w/ visibility of the ongoing work.

is this still in progress ?


Update source documentation to cater for libsodium compilation

With the release of 0.5.1 and the switch to libsodium we need to update our source install documentation. Compilation is automated but requires some extra dependencies to make it happen.

Are you sure? npm install takes care of this in the install documentation since we install sodium as part of that process.  Or are there external OS package dependencies?

sudo apt-get update
sudo apt-get install -y autoconf automake build-essential curl git libtool python

We are missing autoconf, automake, libtool.

Ok makes sense that my machine already has thpse.. i will fix
On Dec 9, 2016 06:02, "Oliver Beddows"<EMAIL_ADDRESS>wrote:

sudo apt-get update
sudo apt-get install -y autoconf automake build-essential curl git libtool python
We are missing autoconf, automake, libtool.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/LiskHQ/lisk-docs/issues/17#issuecomment-265998366,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APzFsC12FBt42Iu9CoGNqPYSN-fwLj9Vks5rGUNBgaJpZM4LH6Ya
.


[HACK] [NOT FOR COMMIT] semantic shader that doesn't do color

I've verified this renders correctly but have no idea how it affects
performance. If it gives a compelling speedup and I can flush this
out properly.
Motivation and Context

Hack to see if this helps with perf.
How Has This Been Tested

Loaded via WebGL port.
Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have completed my CLA (see CONTRIBUTING)
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Closing this stale PR.


Migrate all code to registerCallableModule

Summary:
Migrate everyone to registerCallableModule.
Changelog: [Internal]
Reviewed By: javache
Differential Revision: D52805386

Closed as abandoned internally