TBI - Better way to handle Typescript commands across all template types

Description (include screenshots)
As part of the changes introduced by TBI 746, there needs to be further changes made. The changes introduced were to support the basic template only. TS support and what was introduced in for the Simple template needs to support all template types.

remove conditional code added in this PR https://github.com/SAP/open-ux-tools/blob/main/packages/fiori-freestyle-writer/src/packageConfig.ts#L66
enhance the template in ui5-application-writer to support adding TS commands
validate and fix all provided ts templates in fiori-*-writer to not throw errors when running a typecheck

Value
Optional - details on how this technical backlog item provides value to end-users or dev team eg. Performance, Quality, Maintainability. This will help determine the ranking in relation to feature development
Architecture Elaboration
Does it requires architecture elaboration?
Notes
There have been issues with other template types and Typescipt which is why the change was restricted to Simple only.
Tasks

[x] Remove conditional code added in this PR https://github.com/SAP/open-ux-tools/blob/main/packages/fiori-freestyle-writer/src/packageConfig.ts#L66
[x] Enhance the template in ui5-application-writer to support adding TS commands
[x] Validate and fix all provided ts templates in fiori-*-writer to not throw errors when running a typecheck  https://github.com/SAP/open-ux-tools/pull/845

Closing. As tasks where completed


Incremental Z3 queries even in the presence of unsat cores (aka hints)

Incremental Z3 queries (i.e., queries fed to a running Z3 process which accumulates a context) are much faster than queries to a fresh instance of Z3.
Yet, when we run with --use_hints, nearly every query is sent to a fresh Z3 instance, since we reset the solver before and after using a hint (we must, since a hint has to prune the context)
This PR aims to retain incremental queries even in the presence of hints by always maintaining a background Z3 process that incrementally accumulates a context.
When using a hint, we fire up a new Z3 instance for it without disturbing the background Z3 process.

Would be great to get another set of eyes on this. @aseemr @mtzguido ?

Sorry missed this one. Will review today.

Looks good to me too! Good observation - I'm curious, did you run any performance experiments yet?
@arpg-rebola you may want to rebase your code onto these changes

Please see this commit: https://github.com/FStarLang/FStar/pull/1635/commits/89ba5d3a0b5d137cd97cb2f45effb0431497b978
I am now only allowing cache hits in case we are running a fresh query (i.e., when we are using a hint)
Previously, we would allow cache hits even after a hint failed.
This is dubious: I think it worked only because we were generally always using --use_hints --use_hint_hashes together. But, used independently, --use_hint_hashes may have been unsound, since it would only hash the delta of the new query, not the entire context + query.
This revealed itself with the other changes here since we now have an increment background Z3 process.
So, now I am forbidding the use of hint hashes except for fresh queries (which really contain the entire context + query).


updating mock-api to fix a few issues

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Problem/Feature
This fixes an issue with the SQL generation for handling nested structs, which is fixed with this PR. As a result, it fixes 136.
Additionally, added a missing param to fix #158.
Description of Changes:

Addresses #136
Addresses #158

Checklist

[x] My code follows the Contribution Guide
[x] I have self-reviewed the changes being requested
[x] I have made comments on pieces of code that may be difficult to understand for other editors
[x] I have updated the documentation (if applicable)

Build test is failing because of this error:
Error:      	Expected nil, but got: &errors.errorString{s:"sql: no rows in result set"}
Was this changed in the code so that it no longer returns nil? Or should it return nil and it's just not in this case?

Build test is failing because of this error: Error: Expected nil, but got: &errors.errorString{s:"sql: no rows in result set"} Was this changed in the code so that it no longer returns nil? Or should it return nil and it's just not in this case?

Its a really flaky test that should fixed at some point. Rerunning fixed it. :)


Unknown Property "level"

there seems to be a issue regarding the level property. This has been observed on the mini robot z33 and on the f15.
 read: I (2450) gpio: GPIO[34]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
2024-09-05 11:41:52.975 [DEBUG] rosys/hardware/communication/serial_communication.py:72: read: I (2450) gpio: GPIO[35]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
2024-09-05 11:41:52.985 [DEBUG] rosys/hardware/communication/serial_communication.py:72: read: I (2470) gpio: GPIO[39]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
2024-09-05 11:41:52.995 [DEBUG] rosys/hardware/communication/serial_communication.py:72: read: error while loading startup script: unknown property "level"@08

Due to this error, there is no core output.

We noticed a similar problem. I suspect you're using a level property on a port expander inside a rule. PR #51 should have fixed the problem with properties being evaluated too early, so we removed the workaround for level and active. But it turned out that when compiling a property expression, the property is still accessed in order to retrieve its data type.
A workaround (and maybe the only valid solution) is to add properties explicitly before defining rules:
button = p0.Input(42)
button.level = 0
when button.level == 1 then do_something(); end

This issue will be solved by #18:
"When instantiating a proxy module, the execution should wait until the expander has sent a first broadcast message."

Fixed with #104


wtftw: remove broken package

This was marked as broken years ago, and its last tagged release from upstream
was in 2015, with its last git commit in 2018.

CC @alyssais

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


/usr/bin/env: 'node\r': No such file or directory

when did you get this?

I get this when I try to use it from terminal.

pedro@pedro ~/Vídeos/Séries % LANG=C subdownload Breaking\ Bad /usr/bin/env: 'node\r': No such file or directory

same here, new ubuntu 16.06 install

can anyone do a PR for this issue

I have the same issue on linux mint 18.02
was this ever resolved?

I think so, it's just not accepted https://github.com/beatfreaker/subdownloader/pull/6

Got the same problem in Ubuntu 18.


Add proration parameters and bump minor version number

This pull request adds two new parameters to the updateSubscription function: invoiceImmediately and disableProrations. These parameters allow for more flexibility when updating a subscription and are documented in the Lemon Squeezy API. Additionally, the minor version number of the lemonsqueezy.ts SDK has been bumped from 0.1.7 to 0.1.8.

Close in favor of #26


Fix model name in torch.hub

Hi, the model resnet101_dc5 is loaded into detr_resnet50_dc5 now, I fixed it to detr_resnet101_dc5 in this PR.

Great Catch !


Exports undefined when importing from downstream module.

Do you want to request a feature or report a bug?
Bug
I have asked on both Stackoverflow and and Gitter and haven't found a response.
What is the current behavior?
I build my ES6 upstream module, but when I included the exported functions in the downstream module they are undefined for the named exports or {} for the default export.
If the current behavior is a bug, please provide the steps to reproduce.
This is a project that I had put together when I first asked the question, but I ended up not using webpack to get around the issue:
https://github.com/ajmas/my-components
npm run build produces the file which doesn't seem to export.
What is the expected behavior?
The functions exported can be loaded from the downstream module.
If this is a feature request, what is motivation or use case for changing the behavior?
Please mention other relevant information such as the browser version, Node.js version, webpack version and Operating System.

macOS X 10.12.6
nodejs v7.10.1
webpack 3.5.5

In the current problem case the webpack config is as follows:
modules.exports = [{
    name: 'lib',
    entry: {
        app: './src/index.js'
    },
    output: {
        filename: 'lib/index.js'
    },
    devtool: 'source-map',
    externals: [/node_modules/],
    module: {
        loaders: [{
            test: /\.(scss|css)$/,
            loaders: ["style", "css", "sass"]
        }, {
            test: /\.js$/,
            loader: 'babel-loader',
            exclude: [/node_modules/],
            options: {
                presets: [
                    'babel-preset-es2015',
                    'babel-preset-react',
                    'babel-preset-stage-0',
                ].map(require.resolve),
            }
        }]
    },
    plugins: [
        new CircularDependencyPlugin({
            // exclude detection of files based on a RegExp
            exclude: /node_modules/,
            // add errors to webpack instead of warnings
            failOnError: true
        })
    ]
}]

The content of src/index.js is:
export function xyz () {
    console.log('do you hear me?');
}

export default xyz;

and the build command in package.json: webpack -p --config-name lib

Some more exploring suggests this  may be down to needing the libraryTarget: 'umd' property. I only noticed that by looking through other node_module dependencies that used webpack. It was wasn't evident.
Is there any reason, based on the documentation, that umd isn't the default that webpack uses?  For example are the any unintended side effects if it was?

Is there any reason, based on the documentation, that umd isn't the default that webpack uses?

Most users use webpack to build an application. libraryTarget is only needed when you build a library.


[Feature Request] Exclude/ignore "other side" events (by title)

I'm looking at using tw_gcal_sync to sync my upcoming meetings into taskwarrior. I have some events on my calendar that I will never want synced (e.g. "Lunch (via Clockwise)").
I would like to be able to specify a list of substrings (e.g. "via Clockwise") whose presence will cause tw_gcal_sync to exclude an event from the set considered to be present in GCal, so they will never be synced.

This is a fair request :)
This isn't currently implemented so if you want to have a go, let me know, otherwise I may look into it, but can't promise on an ETA
By the way, even though tw_gcal_sync is pretty stable by now, nevertheless I would suggest to consider a way to bring your synchronization to a clean slate if needed. For example in my case, I always sync a subset of my taskwarrior tasks (thouse with +remindme) to a completely separate google calendar so, if I wanted to reset the synchronization, I just delete that calendar and delete all the files under ~/.config/taskwarrior_syncall/... and run tw_gcal_sync ... again.
I suppose that you could resort to something similar (e.g., task rm +special_tag_of_synced_items && rm -rf ~/.config/taskwarrior_syncall/...).

OK,  2+ years for an update but, I did have a shot at implementing this but it was too messy to be honest for the potential added value, and I think there are better alternatives, like keeping the events to be ignored in a separate calendar altogether.
Unfortunately I'll have to close this.


How to train and use random forest (RF) regression models

Hello,
Thank you for sharing your great work !
I wonder how to train the RF model, I didn't find more information in the paper,
could you please share me some information ?

Please refer to this file: https://github.com/microsoft/vidur/blob/main/vidur%2Fexecution_time_predictor%2Frandom_forrest_execution_time_predictor.py


partner.name should be a unique field

Issue Summary
The name of the fulfillment partners should be unique. Otherwise it may cause confusion when updating the stocks for the product listings.
Steps to Reproduce

In the dashboard, go to Fulfillment - Partners. /en-gb/dashboard/partners/
Add two partners with the same name. (I use Book Partner)
Save the form. Both partners with the same name are saved.
Go to one dashboard/products page, click any book. When you update the stock for the book, you can choose the partner. However, the dropdown list only shows the partner name, which is quite confusing and may choose the wrong one which does not match with the SKU.

I think we may add a unique constraint to the product name. Thus when creating new partners, the dashboard can show some error asking the admin to change a different partner name.
Your thoughts and feedback are greatly appreciated.
Technical details
Python version: 3.9.7
Django version: 3.2.7
Oscar version: master

I'm happy to make Partner name unique - PR welcome. Thanks!


Updated README.md for URI patterns after IPv4 pattern changes

Updated IPv4 pattern README.md to match the patterns.yml file

The tests will fail for the same reason as the IPv4 PR failed. If you can, please fix it, otherwise just merge please


Converted the Kore parser to use megaparsec instead of parsec.

Jenkins: test this please

Jenkins: test this please


Update for better spec compliance

Correct KEM ID numbers
Increment sequence number after seal/open

I notice the "update nonce after seal/open" was sort of fixed, but the fix in this patch matches the spec better.  In particualr, it only updates if the seal/open succeeds.


Pass the focal point information through to the image tag

Is your proposal related to a problem?

I frequently use images in wagtail templates as background images, for example:
{% image image width-765 as card_image %}

The CSS might then crop the image as follows:
height: 250px;
width: 30%;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;

The result will be an image that is cropped differently at different screen sizes. This frequently causes issues as we do not know where to set the focal point of the image (in the example above, the centre of the image is used). Sometimes if an image of a person is used, their head might get cropped off at certain screen sizes.
Describe the solution you'd like

When users upload images to wagtail, they get to set a focal area. This is used when generating image renditions to ensure that the most important area of the image is not cropped. Could this information be passed through to the image tag in a such a was that it could be used in a CSS background-position property to set a focal point? For example if the focal point was 20% from the left edge of the image and 45% from the top of the image, we'd want to end up with:
background-position: 20% 45%;

It would also be possible for this information to be set in px. See https://developer.mozilla.org/en-US/docs/Web/CSS/background-position.
I presume this would need to be set once the rendition had been generated, as otherwise it might be incorrect. It would need to be based on the centre point of the focal area. Ideally I'd then be able to use code like this:
{% image image width-765 as card_image %}

Describe alternatives you've considered

(Write your answer here.)
Additional context

(Write your answer here.)

I haven't investigated this but off hand from memory can't you use the backwards relation to the image model for the data you seek?
Like card_image.image.focal_point_x - Pretty sure you've just got a reference to the rendition

@thenewguy As I understand it, the problem is that the process of cropping/resizing to generate the rendition is liable to change the position of the focal point within that particular rendition in a hard-to-calculate way, and this adjusted focal point is the one we need for the CSS logic.

@gasman Ah - I read the example with one of the proportional scaling filters in mind - in this case it should be straightforward to determine the focal point (maybe no change necessary with % units?) - but if the focal point is being obfuscated I guess that would be more challenging =)

Can somebody point me to some example wagtail code for background images, and css? My site www.squeezemylizard.com is an example.
I use background image on the hero, but struggling to use the focal point for small devices.
Working example would be super helpful.

Hi @squeezemylizard - please use the Wagtail tag on Stack Overflow for support queries, or see the Support page in the documentation for other options.

Yay! :)


how to access the rest api from python?

Hi,
I try to access our vSphere 6.7 through python requests. I looked at the JavaScript samples and came up with the following code
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

import requests
import json

prefix = 'https://vc.internal.corp/rest'

ses = requests.Session()
ses.headers['Content-Type'] = 'application/json'
ses.headers['Accept'] = 'application/json'

print("Login")
res = ses.post(prefix + "/com/vmware/cis/session",
    auth = ('user', '_passwd_'),
    data = "",
    verify = False
)
res.raise_for_status()

print("List")
res = ses.get(prefix + '/vcenter/vm',
    verify = False
)
print(json.dumps(res.json(), indent=4, sort_keys=True))

print("Logout")
res = ses.delete(prefix + "/com/vmware/cis/session",
    verify = False
)
res.raise_for_status()

unfortunately the result is not what I expected
Login
List
{
    "type": "com.vmware.vapi.std.errors.operation_not_found",
    "value": {
        "messages": [
            {
                "args": [
                    "com.vmware.vcenter.VM"
                ],
                "default_message": "Cannot find service 'com.vmware.vcenter.VM'.",
                "id": "vapi.method.input.invalid.interface"
            }
        ]
    }
}
Logout

Any idea what's wrong?
Kind regards
BoomerB

never mind, there was a copy/paste error in the hostname


hostname operator  - ignore problematic namespaces

There are sometimes CRDs from zombie or otherwise left over deployments that cause an error. Right now the hostname operator spins on that error.
The goal of this PR is to allow the hostname operator to move past that error by eventually just ignoring the problematic CRDs. They still should be removed but for now this is probably a best case workaround
Changes

Detect any errors correlating to a resource in kubernetes not found and track the count of them
Once the threshold is reached (3 by default) ignore subsequent events from those leases, they are probably a zombie
Ignored leases are tracked in a list that is pruned if it gets too large
Make all values that make sense to be configurable via flags, but should probably be set environmental variables
Add a read only HTTP interface
Add an endpoint for getting the state of the managed hostnames
Add an endpoint for getting the state of the ignored leases

The only errors that are tracked are those corresponding to a resource not being found, this is usually a missing namespace in production. General errors such as network connectivity, etc. aren't considered permanent and could result in all CRDs being ignored which is bad.
The ignored leases list is trimmed periodically if it is too large. By default the limit is over 100k entries, so hopefully we don't have many zombies running around. The pruning process tries to get rid of old entries first but always make sure to trim it down below the configured value. Otherwise an out of memory condition could happen.
The HTTP listener is setup to just have two endpoints for exposing data that is already there. We have no real way presently other than using the logs to figure out what the operator is doing. This should help with that. It also gives the namespace in k8s that would be associated with any potential entry, to aid in debugging.
The HTTP responses are not created dynamically. To avoid the use of any locks, the operator just periodically re-renders the responses if the data has changed. This avoids having to introduce any locks around the data and is probably more performant than rendering on each request anyways. The default interval for the speed at which the data is updated is 5 seconds. The Last-Modified header on the response indicates whenever the data was actually created, just to be clear to anyone looking at it.
I updated the deployment stuff in _docs  for the hostname operator to make sure the Ingress object exposes the new endpoint as intended.

Merging this now so we can get ewr1 running again.
It's not clear to me why we need to track problematic namespaces instead of just ignoring the errors and moving on.
The status API is cool.
I guess I should apply the new kubectl kustomize output?

Yes. After the new output is applied you can send a request to the ingress controller with the default hostname (or kustomize it to whatever you want) to reach the status API


chore: bdd-sbhg-import-1586712495 to 0.0.1

chore: Promote bdd-sbhg-import-1586712495 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Moderate attributes

This adds a basic moderation system to the core system. It currently only supports entity attributes.

Admin View

Admin View Dropdown Options

Moderated User View

Succeeded by #402


Moving from CDAT to xcdat

Hi @jasonb5 and everybody
I have just learned about xcdat by reading https://github.com/CDAT/cdms/pull/440#issuecomment-971804460
I think it would be nice to advertise the ongoing move from the CDAT ecosystem to xcdat, to the existing CDAT community, unless the project is too young yet to be used by somebody outside PCMDI, or you (incorrectly) think only LLNL people use CDAT related tools. I have just checked the CDAT site and CDAT @ github and I have not found any mention of xcdat. Intestingly enough, a Google search of xcdat python does not yield any useful result! I was lucky to find the github and readthedoc pages by just looking for xcdat
I think the tools developed at PCMDI have always been awesome for the climate community and I have used them for a long loooong time, since when Dean and Bob (and even Karl) were still young, when python did not exist, and when we used shell scripts and a very nice tool+gui called vcs on our X terminals and IBM RS6000 servers. I have just checked my archives and found a reprint of Dean's Visualization for climate modeling 1993 paper.
What the PCMDI tools have unfortunately always missed is a committed and growing user community. I have always attributed this to a lack of communication and online documentation (that other similar but not as powerful tools/libraries have). And it also took some time and expertise to compile python+CDAT before the nice conda-based distribution. But the switch to conda took place quite some time ago, with not much extra advertisement/support to new users
So I hope that the new version of the tools I have been using for years will take off quickly (with appropriate advertisement/documentation and user support), and be as much backward compatible as possible with the old tools. At least I need to have access to the features of cdms2+cdtime+cdutil/genutil I have always relied on, hopefully with a similar enough syntax. I confess I also loved vcs, but had to gradually stop using it when the backend moved from gks to VTK and started to be difficult to use on remote servers
For netCDF input AND ouput, I have only used cdms2, with no need for netcdf4 or xarray, but I guess I can envision trying xcdat+xarray. Somebody can also deal with https://github.com/CDAT/cdat.github.io/issues/206 at last
I have quickly checked the advertised Planned features of xcdat and they seem nice enough but:

they don't mention easy generation of CF compliant netCDF files (done by cdms2), i.e netCDF output
they don't mention easily handling time coordinates with exotic calendars (like no_leap or 360_days) and time origins
Ability to operate on both (0 to 360) and (-180 to 180) longitudinal axes orientations is nice but I'm expecting someting like reordering longitudes on-demand by taking the 360 degrees periodicity into account. e.g. if the input data is stored on [0, 360[, I want to be able to read [-180, 180[ or [-30, 50[ or even [-180, 360[ if I want

Thank you @jypeter - we appreciate some of the history you've outlined and you raise some excellent points!
At the moment, xcdat is not ready for widespread use (we're still developing some barebones functionality and addressing existing bugs in v0.1.0). Our initial goal is to develop a subset of the key features of CDAT and make those available. In general, we would like to extend xarray to reproduce the key features in CDAT.
A realistic timeline is an announcement of xcdat in late 2021 / early 2022 with version 0.2.0, which will include basic features such as spatial averaging, temporal averaging (climatologies, departures, and seasonal averages), I/O (via xarray, including multi-file datasets), handling of time axes, etc. Subsequently, we plan to steadily (over the course of months and years) reproduce the most useful and highest value CDAT functionality that is not already available from native xarray. Ideally, we will be able to entrain some of the broader community in this development.
In many ways, we'd like xcdat to pick up where CDAT left off. You highlight some of the important areas we hope to improve / continue:

extensive documentation: The project is off to a good start in this regard (see the readthedocs page), which will set the standard for future contributions.
easy-to-install: Continuing the trend from the latest versions of CDAT, by enabling easy installation via conda
alignment with community trends: Much of the community is moving toward xarray and xarray based tools (e.g., pangeo). Our hope is that we can better leverage existing tools (e.g., xESMF) to reproduce the CDAT functionality that many of us have come to rely on.
extensive unit testing: Another aspect of CDAT that we would like to improve on is extensive unit testing (which is baked into the development lifecycle).

We hope that these principles, paired with improved communication, will help to produce a committed and growing user community. Even though the project is in early days, we welcome your continued feedback on how to best engage the broader community (e.g., with the early release of v0.2.0).
To address the immediate issue here, we will ensure that CDAT respositories note that CDAT tools are in bare minimum maintenance mode and that we will be migrating to xcdat.
Some other notes:

backwards-compatibility: It will be tough/impossible to retain identical syntax, but the goal is to reimplement the same functionality in a more modern software framework. The downside is that analysis code will need to be updated to reflect xarray-like syntax, but the potential upside is that we will be able to continue use CDAT functionality with a more modern, maintainable, and performant software infrastructure (that may attract broader community support and engagement). Note also that we are carefully testing CDAT and xcdat to ensure that xcdat reproduces CDAT results.
generation of cf-compliant netCDF files: This is in xcdat via xarray's to_netcdf() method
exotic calendars: "Exotic" calendar support should be included in xcdat via cftime (e.g., here, which is used by xarray). We also already include support for some non-CF compliant time dimensions (e.g., https://github.com/XCDAT/xcdat/issues/77).
periodicity support: This has been flagged as a powerful CDAT feature. It is already included in spatial averaging and there is (recent) discussion about how to include this more generally. Perhaps you could weigh in on this here.

[Response from @pochedls, @chengzhuzhang, @lee1043, @tomvothecoder, and @jasonb5]

Sounds good and reasonable! Thanks!
I have uploaded some old but useful documentation and detailed it in #165

I will be moving this discussion to the repo's Discussions forum and closing this issue.
#168

Perfect, thanks!


Lower level unserializer

This unserializer would work also when the metamodel is not available. It would not return Nodes but something else with similar (but lower level APIs). It would give back something slightly more than a JSONObject and slightly less than a Node.

This has been implemented


ray: simplify nan checking by creating a macro.

Avoids the #ifdef forest and code duplication resulting from it.
There was mismatch in the two code paths, see [1] and [2], and this
commit avoids repeating the same mistake.
[1] https://github.com/ebassi/graphene/issues/223
[2] https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3976
Fixes #223

Be aware of this comment: https://github.com/ebassi/graphene/pull/174#issuecomment-561325167

@Gottox I am still using isnanf when available, just avoiding the code duplication resulting from how it was originally implemented.

Ping?


[DropdownMenu][ContextMenu] Expose new Portal part

Closes #1302
Closes #1303

Warning: This is based on #1306 branch because of the changes in Popper.
We will need to be merged in correct order, and run version check too.

Note: Easier to review without whitespace

The implementation is mostly the same as what's in Popover, although this one has an extra level of extension through Menu.
The work is done, BUT I haven't had much time to test different situations when you use the portal or not. I suspect we need to pay a bit more attention to this one, because it used to not always expose portalled before. Sometimes it was hardcoded (like for sub-menus), etc

Warning
Breaking changes in docs:

new Portal part, with forceMount and container props, meaning default has changed (not portalled if not using new part)
lose portalled prop on Content (was present in some cases, not all)
different default for forceMount on Content
update demos/marketing comps

The work is done, BUT I haven't had much time to test different situations when you use the portal or not

Tests failing because we haven't prescribed a Portal for the SubContent yet. It's a hard requirement as our positioning logic can't handle it being inline.
In my local testing it seems as simple as closing this within SubContent. If we did something like this then I'm wondering if / how we handle the Portal props, specifically container.
@benoitgrelard I'm not going to push any changes before we discuss it, leaving as draft until you return.


Added pages/transactions/[txid].tsx for temporary redirect to the old explorer

What kind of PR is this?:

/kind feature
What this PR does / why we need it:
Added pages/transactions/[txid].tsx for temporary redirect to the old explorer.

Codecov Report

Merging #113 (4bba67c) into main (940c378) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #113   +/-   ##
=======================================
  Coverage   82.88%   82.88%
=======================================
  Files          14       14
  Lines         187      187
  Branches       28       28
=======================================
  Hits          155      155
  Misses         32       32

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 940c378...4bba67c. Read the comment docs.


Implement get my mentor applications endpoint

Purpose

The purpose of this PR is to fix #20
Goals

This issue involves implementing an API to get all my mentor applications. The endpoint should allow clients to make a GET request to {{baseUrl}}/api/me/applications?type=mentor
Approach

Created a controller for the /controllers/profile endpoint in the backend and according to the API documentation, when accessed via localhost:3000/api/me/applications?type=mentor it will return the mentor applications of the particular user.
response:
{
  "mentor applications": [
    {
      "state": "rejected",
      "category": {
        "category": "cs",
        "uuid": "95ba00c0-8173-43c4-9573-6b481b4085e2",
        "created_at": "2023-09-23T01:32:42.532Z",
        "updated_at": "2023-09-23T01:32:42.532Z"
      },
      "application": [
        {
          "question": "What is your country?",
          "answers": "US"
        },
        {
          "question": "What is your expertise?",
          "answers": "CS"
        },
        {
          "question": "What is your mentoring startegy?",
          "answers": "I will provide my thoughts"
        }
      ],
      "availability": true,
      "profile": {
        "primary_email"<EMAIL_ADDRESS>        "contact_email": "",
        "first_name": "",
        "last_name": "",
        "image_url": "",
        "linkedin_url": "",
        "type": "default",
        "uuid": "8267bbdc-87cd-45e2-86c7-fa46e684b05c",
        "created_at": "2023-09-23T01:33:29.559Z",
        "updated_at": "2023-09-23T01:33:29.559Z"
      },
      "uuid": "b510ce89-f479-40ba-b69c-ea9eec2cfd63",
      "created_at": "2023-10-27T19:58:25.140Z",
      "updated_at": "2023-10-27T19:58:25.140Z"
    },
    {
      "state": "pending",
      "category": {
        "category": "cs",
        "uuid": "95ba00c0-8173-43c4-9573-6b481b4085e2",
        "created_at": "2023-09-23T01:32:42.532Z",
        "updated_at": "2023-09-23T01:32:42.532Z"
      },
      "application": [
        {
          "question": "What is your country?",
          "answers": "US"
        },
        {
          "question": "What is your expertise?",
          "answers": "CS"
        },
        {
          "question": "What is your mentoring startegy?",
          "answers": "I will provide my thoughts"
        }
      ],
      "availability": true,
      "profile": {
        "primary_email"<EMAIL_ADDRESS>        "contact_email": "",
        "first_name": "",
        "last_name": "",
        "image_url": "",
        "linkedin_url": "",
        "type": "default",
        "uuid": "8267bbdc-87cd-45e2-86c7-fa46e684b05c",
        "created_at": "2023-09-23T01:33:29.559Z",
        "updated_at": "2023-09-23T01:33:29.559Z"
      },
      "uuid": "c7c806ae-05c3-4a9e-b243-e85c334dc847",
      "created_at": "2023-10-29T12:46:34.860Z",
      "updated_at": "2023-10-29T12:46:34.860Z"
    }
  ],
  "message": "Mentor applications found"
}

Screenshots

Checklist

[x] This PR doesn't commit any keys, passwords, tokens, usernames, or other secrets.
[x] I have read and understood the development best practices guidelines ( http://bit.ly/sef-best-practices )
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation

Related PRs

Test environment

Learning

Will be adding the tests..

No problem 🙌


Can't connect to container through SQL Server

Everytime i try to connect to the container, i get this message:

My container has the same port exposed.

Answered in
You need to stop all sql related services on host in order to login successfully


My branch

My First Project

I am merging but take note of the following:

In your next PR, Change SamInterest to your name
Always pull main before you create a new branch to work from.
 Task/create_directory


Manually fired events don't seem to be able to extend Event's context

Description:
From the docs:

[context] (context|object): A context object to reuse for the event or an object with properties to assign to a new context object. If you need to pass arguments but don't need to provide context, pass an empty object ({}) before the additional arguments.

However, extending event's context doesn't seem to work.
See example below.
Versions affected:
0.9.2
Platforms affected:
reproduced on Chrome & Safari (macOS)
Reproduction:
https://jsfiddle.net/4ervr8kv/3/
const r = window.r = new Ractive({
  el: '#main',
  template: '#template',
  data: {
  },

  oninit() {
    this.on('myEvent', (...args) => {
      console.info(`Number of arguments: ${args.length}`, args);
    });

    // this.on('myEvent'...) should have its context extended by { wontExtendContext: 'this will be argument 1' }, no other argument.
    // will actually have a sort-of clear Context, and an additional argument: { wontExtendContext: 'this will be argument 1' }
    // SHOULD RESULT IN 1 ARGUMENT, currently 2
    this.fire('myEvent', { wontExtendContext: 'this will be argument 1' });

    // this.on('myEvent'...) should have its context extended by {} and an additional argument
    // will actually have a sort-of clear Context, and 2 additional arguments: {}, { someData: 'something' }
    // SHOULD RESULT IN 2 ARGUMENTS, currently 3
    this.fire('myEvent', {}, { someData: 'something' });
  }
});

Looks like this is the related issue https://github.com/ractivejs/ractive/pull/2868 . I'm not familiar of this functionality though.

After some debugging I think I have find the problem on fire.js file
There is a match only on Context class and not on plain JS object:
if ( args[0] instanceof Context ) {
Probably this is the source of the issue.
I hope this can help 🙂


verify_os_partition_identifier replace dmesg with journalctl

Since environments are reused, this test has chance to fail because dmesg logs gets overwritten.
Fetch log from journalctl from last boot to verify

Received review to check dmesg initially and fallback to journalctl. Will make that change.


[iOS] transition speed is not continuous after pan gesture released

As I described in #196
The transition initial speed should be the same as pan gesture released at the moment, and decrease the velocity by time.
The current animation looks stop at the moment when you swipe fast. I'll send a experimental PR for this later.

Can you share a video so others can see the bug?

Compare:

React Navigation Demo Video
iOS Native Navigation Demo Video

@zzq889 would you also be interested in working on animations for the header? I got few todos there.

Yes of course. Where can I see the todos?

Nowhere yet, but basically the todo I had in mind was to implement a proper animation for back button label on iOS. I'll attach you to my PR to highlight what has to be done :)

Let me guess. Do you want to slide the back title to center than just fade
it?
Mike Grabowski<EMAIL_ADDRESS>周四下午7:03写道：

Nowhere yet, but basically the todo I had in mind was to implement a
proper animation for back button label on iOS. I'll attach you to my PR to
highlight what has to be done :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/react-community/react-navigation/issues/211#issuecomment-278611304,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAp1sE_Em27z-rljjCLtoegLxiluq8Jlks5ravKPgaJpZM4L5J8r
.

Yeah, I think so. Currently it has I guess just the opacity animation. As far as I know, on iOS it moves slightly to the right before animating out. So that would be the first todo. Another one is replacing Too l...title label with Back, just like iOS does natively.

Yeah, just as I thought. Let me know when you PR.
Mike Grabowski<EMAIL_ADDRESS>周四下午7:54写道：

Yeah, I think so. Currently it has I guess just the opacity animation. As
far as I know, on iOS it moves slightly to the right before animating out.
So that would be the first todo. Another one is replacing Too l...title
label with Back, just like iOS does natively.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/react-community/react-navigation/issues/211#issuecomment-278621351,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAp1sC9uoIfaS2oKGIh6FhQ2nMqORFPsks5rav6RgaJpZM4L5J8r
.

@grabbou is it possible if you make bak label optional? It might  be another property of header in navigationOptions.

We will factor that in to the open PR. Thanks for your question.

This should be resolved


Docker short description of dotnet-framework-build confusion

The short description on the Docker dotnet-framework-build repository  reads:

The official Docker images for building .NET Framework on Windows Server 2016 Server Core.

Which can be misinterpreted as this being images that are used by Microsoft to build .NET Framework itself rather than this being images that can be used to build your own .NET Framework based applications.
Therefore I would suggest to reword it as:
The official Docker images for building .NET Framework applications on Windows Server 2016 Server Core.

@bzuu - Thanks for logging this issue.
I changed the descriptions as follows:

https://hub.docker.com/r/microsoft/dotnet-framework/ - Official images for running .NET Framework applications on Windows Server Core
https://hub.docker.com/r/microsoft/dotnet-framework-build/ - Official images for building .NET Framework applications on Windows Server Core


decouple envoy proxy from k8s by removing pod metadata

This is a step in reducing our code's knowledge of direct kubernetes concepts.
By removing pod metadata, we can remove a call to GetPodForProxy, and remove strictly Kubernetes objects off the envoy.Proxy object. This helps us push down the k8s calls into a lower layer of the stack, and lets our business logic be abstracted form K8s.
It should also be noted that we only stored Pod metadata, in a custom struct, to later convert it into stats headers, of type map[string]string. This code change both gets rid of certain possible errors that could be returned, removes 100+ lines of code, and improves our layers of abstraction.
Part of https://github.com/openservicemesh/osm/issues/4863
Signed-off-by: Sean Teeling<EMAIL_ADDRESS>

Are we not replacing pod metadata with anything? Seems like a lot of information being lost

I get it on the fly when needed from the compute.client instead of storing it on the proxy.
It's only used to parse out stats headers, so it's more of the responsbility of the envoy xDS builders than it is of storing it on the proxy.

So are we not doing WASM anymore?

This has no functional end result change, it maintains the status quo

@steeling please add more details to the commit && PR description describing the motivation for the change.
Thanks

done!


ETA on the next release?

Is there any ETA as to when a new release of gimli will be made?
Some backgroud - I've added AArch64 support to our profiler today. Unfortunately it's broken on gimli 0.17 (where only the CFA rule is returned with no rules for registers), however it seems to have been fixed already as the current master doesn't have that problem.
(Side note - I'm really loving the new interface! It's significantly more ergonomic than the old one.)

Is there any ETA as to when a new release of gimli will be made?

I want to finish implementing writing of .eh_frame (currently we only write .debug_frame), since that might require some breaking changes in the write API, so maybe a week or two?

Unfortunately it's broken on gimli 0.17

Maybe due to the code_alignment_factor (#401).


Add Emotions for Daily Emotion Logging

Requirement
Since it's a Daily Mood / Habit Tracker App. We would like the user to log their daily emotions.
The Emotions that needs to be added.

Excited
Relaxed
Proud
Hopeful
Happy
Enthusiast
Refreshed
Gloomy
Lonely
Anxious
Sad
Angry
Burdensome
Annoyed
Tired

Proposed Solution

Create an enum under Common > Models > Emotions

Find an appropriate image for each of the emotion.

Inside the enum, create variables that returns emotion name, and emotion image for each case.

@Shubham0812 Can I tackle this issue?

Sure, @am2089


Client Allocation Request for: Julien NOEL

Client Allocation Questions
Core Information

Name: Julien NOEL
Website / Social Media: @s0nik42
Region: Europe
DataCap Requested: 5TiB
Addresses to be Notarized: f3rpqqflz4bhyylporz3kjhejftvfs2gbjxv7gcw3imvviklmrqgee2jqsgp6hrl35ufckv76kdd245q352dtq
Notary Requested: neogeweb3

@s0nik42 Please subscribe to notifications for this Issue to be aware of updates. Notaries may request additional information on the Issue.

Request Approved
Your Datacap Allocation Request has been approved by the Notary
Message sent to Filecoin Network

bafy2bzacearfsl5pvxto4xzwztns3oah75jlk4wmzj3az3g7mna2rze3si2yg

Address

f3rpqqflz4bhyylporz3kjhejftvfs2gbjxv7gcw3imvviklmrqgee2jqsgp6hrl35ufckv76kdd245q352dtq

Datacap Allocated

5TiB

You can check the status of the message here: https://filfox.info/en/message/bafy2bzacearfsl5pvxto4xzwztns3oah75jlk4wmzj3az3g7mna2rze3si2yg


Add information about precomposed DDC classes

The web interface should detect precomposed DDC classes from https://coli-conc.gbv.de/api/ and show them also if no decomposition was found, e.g.

700 Künste
No decomposition found.

Yep, I planned to do this anyway as soon as cocoda-sdk is integrated. 👍


Content-Security-Policy: Failed to construct 'Worker': Access to the script at

G2 Version: 4.2.10
Platform: All browsers
Mini Showcase(like screenshots):

We are using this package in a published WordPress plugin (wordpress.org). One of our users cannot use statistics as it seems that G2 cannot work with Content-Security-Policy (CSP).
The user has configured the following CSP header:
Content-Security-Policy: default-src https: 'unsafe-inline' 'unsafe-eval';

Afterward, G2 cannot render any statistics, furthermore it runs into an uncaught exception:
Refused to create a worker from 'blob:https://www.-------.ch/74ff2c72-6e8d-40db-8424-182bd22efc3c' because it violates the following Content Security Policy directive: "default-src https: 'unsafe-inline' 'unsafe-eval'". Note that 'worker-src' was not explicitly set, so 'default-src' is used as a fallback.

Uncaught DOMException: Failed to construct 'Worker': Access to the script at 'blob:https://www.-------.ch/74ff2c72-6e8d-40db-8424-182bd22efc3c' is denied by the document's Content Security Policy.

This is caused by: https://github.com/antvis/algorithm/blob/d0b9a0fbea68cc6f2b26477d30c492d13bb7df9a/packages/graph/src/workers/createWorker.ts#L13
To make this work, we need to tell our users to enable worker-src with blob:, but this one our users justifiably reject on the basis of security.
Is it somehow possible to "skip" Web workers when they cannot be used?

Can you show your code?

Does not work:
<!DOCTYPE html>

    <title>This is the title of the webpage!</title>
    <meta http-equiv="Content-Security-Policy" content="default-src https: 'unsafe-inline' 'unsafe-eval';" />

When I change the
<meta http-equiv="Content-Security-Policy" content="default-src https: 'unsafe-inline' 'unsafe-eval';" />

to
<meta http-equiv="Content-Security-Policy" content="default-src https: 'unsafe-inline' 'unsafe-eval'; worker-src https: blob:;" />

it works.
I also see that this issue got resolved with v5, as I cannot reproduce. Is there an official release date for v5? And I see it also has many breaking changes, will something like a codemod exist later? 😊

@matzeeable Can help to fixed this issue in your debugger env in v4? Now v5 is released, in next month, we will remove the next tag in npm.

When using @next it looks like the issue is resolved. I see it also has many breaking changes, will something like a codemod exist later? 😊

@matzeeable Sorry, we will not provide a codemod because the changes are too significant and it would be difficult to implement a codemod

When using @next it looks like the issue is resolved. I see it also has many breaking changes, will something like a codemod exist later? 😊

how to use @next?


Vector add using Jinja template

Contributing an example of using kernel_tuner with a CUDA code generator that is based on the Jinja template engine. The code has few tunable parameters and has been tested on a NVIDIA Titan X Pascal on the DAS.

Hi Alessio,
Thanks for the example! I tried running it, but I'm getting the error:
[stderr:
kernel.cu:11:25: fatal error: helper_math.h: No such file or directory
 #include <helper_math.h>
                         ^
compilation terminated.
]

$ gcc --version
gcc (GCC) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Oct_12_20:09:46_PDT_2020
Cuda compilation tools, release 11.1, V11.1.105
Build cuda_11.1.TC455_06.29190527_0

I did some searching it seems helper_math used to be part of the CUDA SDK but no longer is. Perhaps I get the error because I'm using CUDA 11. What do you think? Could you we do without helper_math.h?

Hi Alessio,
Thanks for the example! I tried running it, but I'm getting the error:
[stderr:
kernel.cu:11:25: fatal error: helper_math.h: No such file or directory
 #include <helper_math.h>
                         ^
compilation terminated.
]

$ gcc --version
gcc (GCC) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Oct_12_20:09:46_PDT_2020
Cuda compilation tools, release 11.1, V11.1.105
Build cuda_11.1.TC455_06.29190527_0

I did some searching it seems helper_math used to be part of the CUDA SDK but no longer is. Perhaps I get the error because I'm using CUDA 11. What do you think? Could you we do without helper_math.h?

I will check, maybe something changed indeed with CUDA 11. Before that was necessary to use the vectors in CUDA.

I will check, maybe something changed indeed with CUDA 11. Before that was necessary to use the vectors in CUDA.

Found out that helper_math.h is not part of standard CUDA, so rewrote the code to work without it. Tested on the A100 with CUDA 11, it works.

Found out that helper_math.h is not part of standard CUDA, so rewrote the code to work without it. Tested on the A100 with CUDA 11, it works.

Perfect! Thanks!


Upgrade redis and @types/node

Change-type: patch
Signed-off-by: Carol Schulze<EMAIL_ADDRESS>

@balena-ci I self-certify!

@balena-ci rebase


[FEAT] - Copy the program information

Is your feature request related to a problem? Please describe.
How about such a thing as Webstorm does which allows you to copy program information.
In this case I copy only the version of the program in use.
It would also be useful to know:

The version of the OS
The version of Xcode

What do you think?
https://user-images.githubusercontent.com/20476002/160230736-64038743-5e6e-47e7-bbb5-4af3014171f2.mov
I have a problem with animation, if anyone would like to give me some advice if you want this feature.
Code:
HStack {
                    Text("Version \(appVersion) (\(appBuild))")
                        .foregroundColor(.secondary)
                        .font(.system(size: 13))
                    if isHovering {
                        Image(systemName: "doc.on.doc")
                            .resizable()
                            .frame(width: 15, height: 15)
                            .transition(AnyTransition.opacity.animation(.easeInOut(duration: 0.25)))
                            .onHover { inside in
                                if inside {
                                    NSCursor.pointingHand.push()
                                } else {
                                    NSCursor.pop()
                                }
                            }
                            .onTapGesture {
                                let osVersion = ProcessInfo.processInfo.operatingSystemVersion
                                guard let url = NSWorkspace.shared.urlForApplication(withBundleIdentifier: "com.apple.dt.Xcode"),
                                      let bundle = Bundle(url: url) else {
                                    print("Xcode is not installed")
                                    exit(1)
                                }

                                guard let infoDict = bundle.infoDictionary,
                                      let version = infoDict["CFBundleShortVersionString"] as? String else {
                                    print("No version found in Info.plist")
                                    exit(1)
                                }
                                let pasteboard = NSPasteboard.general
                                pasteboard.clearContents()
                                pasteboard.setString(
                                    "CodeEdit: \(appVersion) (\(appBuild))\n" +
                                    "MacOS: \(osVersion.majorVersion).\(osVersion.minorVersion).\(osVersion.patchVersion)\n" +
                                    "XCode: \(version)"
                                    , forType: .string)
                            }
                    }
                }

I would do it like this:
HStack {
  Text("Version \(appVersion) (\(appBuild))")
    .foregroundColor(.secondary)
    .font(.system(size: 13))
    .onTapGesture {
      NSPasteboard.general.setString("CodeEdit: \(appVersion) (\(appBuild))", forType: .string)
    }
  }
}

@lukepistrol : I would like it more if the copy icon appears, but you decide how you prefer.
This is the code at the moment:
                Text("Version: \(appVersion) (\(appBuild))")
                    .foregroundColor(.secondary)
                    .font(.system(size: 13))
                    .onHover { inside in
                        if inside {
                            NSCursor.pointingHand.push()
                        } else {
                            NSCursor.pop()
                        }
                    }
                    .onTapGesture {
                        let pasteboard = NSPasteboard.general
                        pasteboard.clearContents()
                        pasteboard.setString(
                            "CodeEdit: \(appVersion) (\(appBuild))\n" +
                            "MacOS: \(macOsVersion)\n" +
                            "Xcode: \(xCodeVersion)"
                            , forType: .string)
                    }

https://user-images.githubusercontent.com/20476002/160239218-d7317bc9-e59f-4a02-a4be-0f0221f3a9c9.mov


Hub plugin definition contributor guide

It's not very clear to users how they can contribute to the hub plugin definitions. Since the hub relies on the community keeping it up to date with the taps/targets in the ecosystem, we should make this as easy as possible.
Right now we have a singer connector issue template but having a docs page that explains the process for adding and updating definitions. This could include other conventions and decisions we've made related to naming like https://github.com/meltano/hub/discussions/704 and how to handle things like our 2 taps for github that use the same API but have very different functionality github vs github-org.

Potential overlap with https://github.com/meltano/hub/issues/534

@pnadolny13 thanks for opening. It's definitely a weak spot for us. @afolson we should chat about this and figure out priority.


Structuring nested object causes org.apache.kafka.connect.errors.DataException

Expected Behavior (Mandatory)
Can be structured without exception.
Actual Behavior (Mandatory)
org.apache.kafka.connect.errors.ConnectException: org.apache.kafka.connect.errors.DataException: Invalid Java object for schema type MAP: class org.apache.kafka.connect.data.Struct ...

How to Reproduce the Problem
Specify a neo4j.source.query similar to the following:
MATCH (n: Test)
RETURN
     ... (skip) ...
    {
        key1: {
            subKey1: "value",
            subKey2: "value"
        },
        key2: {
            subKey1: "value",
            subKey2: true
        }
    } AS nested

Specifications (Mandatory)
Currently used versions
Versions

Neo4j Streams: 5.0.2

This issue is not reproducible in the latest version of the connector. Closing this now, thanks!


Naming Inconsistency - Network vs. Channel

I noticed an inconsistency between java, go, and the javascript code for the network and channel reference.
In node, the terminology is:
node/src/gateway.ts:
getNetwork(channelName: string): Network;

in Java, it is:
java/src/main/java/org/hyperledger/fabric/client/Gateway.java:
Network getNetwork(String networkName);

in Go, it is:
pkg/client/gateway.go:
func (gw *Gateway) GetNetwork(name string) *Network

As network is a very overloaded word in this context (blockchain networks and internet technology industry), I would propose to use the more exact term Channel.
I understand that according to the docs [In Hyperledger Fabric], we’ll refer to both the “network” and the “channel”. In Hyperledger Fabric, these terms are effectively synonymous, as they both refer collectively to the organizations, components, policies, and processes that govern the interactions between organizations within a defined structure. (https://hyperledger-fabric.readthedocs.io/en/latest/network/network.html#what-is-a-blockchain-network).
However, I believe there may be an argument in code to keep it consistent, concise, and clear for ease of development. Utilizing the class name Channel and the functions as getChannel may help steer new developers from thinking these classes have more responsibilities than channel level responsibilities and would help be more in line with what I view as the technical architecture of hyperledger fabric.

There was a decision several years ago on the naming in the Fabric programming model (in other words, the client APIs), to be more oriented more to business and general programming terminology rather than being tied to the technical terminology invented for the Fabric implementation. To move away from that now would be a breaking change for all the existing client APIs so this is not going to happen.

Sounds good.
If such, should node/src/gateway.ts: getNetwork(channelName: string): Network; be getNetwork(networkName: string): Network; for consistency?

I wouldn’t mind a change like that, although I would probably just pick getNetwork(name: string) to avoid the repetition of network. This isn’t a change to the method signature; effectively just a documentation change.

@bestbeforetoday still struggling with the naming inconsistencies - going through the contract at this point, and note that it no longer is "network", but now channelName. If we don't have a Channel class, should a contract really have a channelName or should it have a networkName?
I note this in all three implementations:
https://github.com/hyperledger/fabric-gateway/blob/1e4a926ddb98ec8ee969da3fc1500642ab389d01/pkg/client/contract.go#L31
https://github.com/hyperledger/fabric-gateway/blob/1e4a926ddb98ec8ee969da3fc1500642ab389d01/node/src/contract.ts#L202
https://github.com/hyperledger/fabric-gateway/blob/1e4a926ddb98ec8ee969da3fc1500642ab389d01/java/src/main/java/org/hyperledger/fabric/client/ContractImpl.java#L15
Just to give context, I'm fine using the library as-is, but in porting to ruby, I am trying to bring consistency and make sense of everything as I port. TIA.

The naming of these private internal variables lines up more closely with the naming scheme of the protobuf fields that they are used to populate. If you are doing a Ruby implementation of the same API, you can choose whatever names (and code structure) make sense to you for the internal implementation. The protobuf field names cannot be changed.


Map Flicker in Chrome, Convert Stops to Expressions

mapboxgl version: 0.1.0
Background
Upgrade GL JS version to fix a common bug in Chrome browsers that causes the map to ficker on render.
Tasks

[x] Upgrade to GL JS v0.42.1 to address chrome-flicker bug
[ ] Change all property function generation to GL Expression generation.

PR to close this issue in https://github.com/mapbox/mapboxgl-jupyter/pull/18 cc @perrygeo


Implement ModuleAwareLanguage interface for Gazelle plugin

https://github.com/bazelbuild/bazel-gazelle/pull/1463/files#diff-0db6adabbc6af93238617eab42350fb0f291caba25c4dc08b7fd9dca24ec9892R113

Ran into this issue after upgrading to gazelle 0.30.0.


Open only part of a split request

As an analyst
I want to be able to split a request but only open some of the requests that have been split
so that I can open a request for Ministry A and get clarification on the request for ministry B

Assumptions & Scope
What are the assumptions for this story?
What is in and not in scope?
Acceptance Criteria
Scenario 1: Open multiple ministry requests
GIVEN the analyst is on the Split Request view
https://jacklyn808742.invisionapp.com/console/FOI---Intake-ckpq19frj032r013q6gpm8t1m/ckpx6mtxp012f013ebi30csot/play
AND more than one ministry has been selected
AND the request descriptions have been filled
AND the date ranges have been specified
WHEN the analyst clicks in the toggle next to for "Does part of this request needed to be clarified and redirected?"
THEN the check boxes will appear next to the request description for each public body
[Insert design here}
AND a file number will have been generated for each ministry selected
Scenario 2: Click Toggle to open only part of the request

GIVEN the analyst has clicked the toggle next to for "Does part of this request needed to be clarified and redirected?"
[insert design here]
WHEN the analyst clicks a checkbox next to a public body request description
THEN these the requests for the selected public bodies will be selected to be opened

Scenario 3: Cllck 'Create Acknowledgement Letter'

GIVEN an intake analyst is on the Open Multiple Ministry Requests modal will open
https://jacklyn808742.invisionapp.com/console/FOI---Intake-ckpq19frj032r013q6gpm8t1m/ckpx6mtxp012h013egppn0ra5/play
*AND the applicant has provided an email address
WHEN the applicant clicks the 'Create Acknowledgement Letter' button
THEN the Correspondence View will open
https://jacklyn808742.invisionapp.com/console/FOI---Intake-ckpq19frj032r013q6gpm8t1m/ckpybvbw802h7014wf77hd2he/play
AND multiple request numbers will be the email subject line
AND the editable email template will be pre-filled
AND the acknowledgement letter will be attached
AND the applicant's email will be pre-filled

Scenario 4: Send Message and Open Requests'

GIVEN an intake analyst is Acknowledgement Correspondence View will open
https://jacklyn808742.invisionapp.com/console/FOI---Intake-ckpq19frj032r013q6gpm8t1m/ckpybvbw802h7014wf77hd2he/play
WHEN the analyst clicks 'Send Message'
THEN the email will be sent to the applicant with the attached Acknowledgement Letter
AND a toast will briefly appear that the email has been sent
AND only the selected public body requests will be opened, each with a file number
AND the analyst will be returned to the Request Queue
AND the selected public body requests will be in the 'Opened' status
AND the unselected public body requests will be appear in the request queue in an 'Intake' status
https://jacklyn808742.invisionapp.com/console/FOI---Intake-ckpq19frj032r013q6gpm8t1m/ckpq19gnk00p0011q7zsk81wb/play

...
Dependencies? What is the impact of this dependency? (If so, link dependency in the ticket, make it visible in a team´s backlog)
Validation Rules? (If yes, list here)
Design
@xxx - please link the Design here
Definition of Ready

[ ] Is there a well articulated User Story?
[ ] Is there Acceptance Criteria that covers all scenarios (happy/sad paths)?
[ ] If there is a user interface, is there a design?
[ ] Does the user story need user research/validation?
[ ] Does this User Story needs stakeholder approval?
[ ] Design / Solution accepted by Product Owner
[ ] Is this user story small enough to be completed in a Sprint? Should it be split?
[ ] Are the dependencies known/ understood? (technical, business, regulatory/policy)
[ ] Has the story been estimated?

Definition of Done

[ ] Passes developer unit tests
[ ] Passes peer code review
[ ] If there's a user interface, passes UX assurance
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Confirm Test cases built and succeeding
[ ] No regression test failures
[ ] Test coverage acceptable by Product Owner
[ ] Ticket ready to be merged to master or story branch
[ ] Developer to list Config changes/ Update documents and designs
[ ] Can be demoed in Sprint Review
[ ] Tagged as part of a Release
[ ] Feature flagged if required
[ ] Change Management activities done?

Hmmm...thought I did this one already. Will draft now.

@JHarrietha-AOT, let's replace the 'Save the Request Description" button with one universal 'Save' button that when clicked will save all changes made by the analyst.
Could we update the designs accordingly? cc @mpilchar

@lmullane Updated the hotspots looked like they shifted on these split screens. The above should be resolved let me know if you are still have issues. I will update the save button before stand up tomorrow.

Sorry, still not working. When I click 'Split Request' I get a blank screen

@lmullane That's so weird, its working for me. I shared the link with @arielleandrews to see if its working for her
https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/663873013

Ah, I think I know what's up here. The design covers the split a request for a redirect (BC Hydro) and open a request (FNR), correct?
What about clarifying part of the request (i.e. opening FNR but not EML). That was what I was looking for, but thinking the design is not for that use case?

I can get to the Split Request screen. From there I can hit the Clarification/Redirect toggle and then select EML in the list of ministries. But if I try to select EML first then I get a blank screen

@lmullane You should be able to click on EML now, you should be able to in this use case. I just re-uploaded that screen and looks like its working now can you and @arielleandrews let me know if its not

It's working for me @JHarrietha-AOT

@JHarrietha-AOT, should be good now. Needed to toggle and select EML in the right order.
Please review the AC:)

@JHarrietha-AOT, just want to be sure you saw my comment about removing the 'Save Description' button with a universal 'Save' button?

@lmullane for Scenario 3 - I don't think we would want redirected requests to automatically be closed. Please correct me if I am wrong @arielleandrews. I remember intake saying there are times when applicants respond to the redirect letter with clarifications that can prompt the opening of that request, as the applicant my not have been clear with what they actually wanted.
Also, I am working on changing it to a universal save button, will have it updated by stand-up tomorrow, or sooner.

Cool, I'll say they go into Redirect Status

Sounds good! Other then that all AC is good

Yes @JHarrietha-AOT and @lmullane having the request go to Redirect status makes sense. I would say functionally this would be similar to Closed in that the required action has been taken by informing the applicant they need to resubmit their request elsewhere. But as we laid out in the Statuses diagram if the applicant comes back and it turns out we can actually proceed with their request, that we can then take the request back from Redirect through to Open

Backlog refinement queries

Do we need a "Date Range for record search" for Redirection ? If yes, could you please clarify.

Seems like I got lost on the links here and there, but referring to https://jacklyn808742.invisionapp.com/console/FOI---Intake-ckpq19frj032r013q6gpm8t1m/ckpx6mtxp012t013e4wg0agtg/play , Seems like more of the scenarios are technically/foundation part covered under User Story #129, other than redirection. Right?

The original date range can go with the Redirect.


Quantization:quantize_graph produces corrupted graph

Hi,
sorry to bother again. In order to save some space I would like to quantize my graph, but everytime I run quantize_graph, it becomes unusable in android app later on. I would like to generally ask, how is this facility meant to be used. What I have done:

retrained graph (works fine)
optimized it using optimize_for_inference (works fine)
bazel-bin/tensorflow/tools/quantization/quantize_graph
--input=/tmp/optimized.pb
--output=/tmp/eightbit.pb
--output_node_names="final_result_a,final_result_b"
--mode=eightbit

Then it threws on android following (excerpt):
I/native: tensorflow_inference_jni.cc:85 Creating new session variables for 635cce3c13fa1ff4 I/native: tensorflow_inference_jni.cc:113 Loading Tensorflow. I/native: tensorflow_inference_jni.cc:120 Session created. I/native: tensorflow_inference_jni.cc:126 Acquired AssetManager. I/native: tensorflow_inference_jni.cc:128 Reading file to proto: file:///android_asset/eightbit.pb I/native: jni_utils.cc:111 Opening asset eightbit.pb from disk with zero-copy. I/native: tensorflow_inference_jni.cc:132 GraphDef loaded from file:///android_asset/eightbit.pb with 1345 nodes. I/native: stat_summarizer.cc:38 StatSummarizer found 1345 nodes I/native: tensorflow_inference_jni.cc:139 Creating TensorFlow graph from GraphDef. I/native: tensorflow_inference_jni.cc:151 Initialization done in 234.141ms
Which I suppose is correct
But then:
I/native: tensorflow_inference_jni.cc:228 End computing. Ran in 2665ms (2665ms avg over 1 runs) A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xb95eb000 in tid 31217 (inference) Application terminated.
Would you please once again help? Thanks

@bazinac There should be more info associated with the segfault; can you please provide the adjacent log lines?
It might also be helpful to add some print statements following the call to runInference() until you can narrow down the exact line this crash is happening on.
As a random guess, are you positive that you're reading out the right data types from final_result_a and final_result_b?

Thanks for answer. I put before and after log around. runInference, all I got is:
D/INFERNECE: before I/native: tensorflow_inference_jni.cc:228 End computing. Ran in 2822ms (2822ms avg over 1 runs) D/INFERNECE: after D/INFERNECE: before A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xb9583000 in tid 9986 (inference) Application terminated.
Regarding right data types reading - I suppose that quantization script should not change those, therefore when it works with just optimized_for_inference graph correctly and I just run quantization on it it shoud work in same manner, right?

Right, so continue to place log statements until you don't see one getting hit. Then when that happens start bisecting the area between the last printout and the first missing printout until you've narrowed down the exact line.
There should also be more information associated with the segfault, could you please provide it?

Yeah but issue is that it is happening at .runInference call, on the second time when its called. I placed those log statements like this:
    Log.d("INFERNECE","before");
    inferenceInterface.runInference(outputNames);
    Log.d("INFERNECE","after");

and unfortunatelly there is not any further info regarding segfault, just
01-30 23:34:35.479 9490-9700/bazinac.aplikacenahouby I/CameraDeviceState: Legacy camera service transitioning to state CAPTURING
01-30 23:34:35.519 9490-9641/bazinac.aplikacenahouby D/tensorflow: CameraActivity: Initializing buffer 0 at size 228096
01-30 23:34:35.529 9490-9641/bazinac.aplikacenahouby D/tensorflow: CameraActivity: Initializing buffer 1 at size 114047
01-30 23:34:35.529 9490-9641/bazinac.aplikacenahouby D/tensorflow: CameraActivity: Initializing buffer 2 at size 114047
01-30 23:34:35.599 9490-9640/bazinac.aplikacenahouby D/INFERNECE: beforerunInference
01-30 23:34:38.359 9490-9640/bazinac.aplikacenahouby I/native: tensorflow_inference_jni.cc:228 End computing. Ran in 2765ms (2765ms avg over 1 runs)
01-30 23:34:38.359 9490-9640/bazinac.aplikacenahouby D/INFERNECE: afterrunInference
01-30 23:34:38.389 9490-9640/bazinac.aplikacenahouby D/INFERNECE: beforerunInference
01-30 23:34:40.779 9490-9640/bazinac.aplikacenahouby A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x97028000 in tid 9640 (inference)

I see, you are calling runInference() twice? You should only need to call it once, even if you're reading from two output nodes. Though it shouldn't crash if you do.
There's nothing at all beyond the SIGSEGV line? That is surprising -- are you sure you're not filtering it out somehow?

Or do you mean it crashes on the second time through? What I am trying to figure out is if you are doing something like:
fillNode* methods
runInference(finalResultA, finalResultB)
readNode* methods
...
fillNode* methods
runInference(finalResultA, finalResultB)
readNode* methods

or
fillNode*
runInference(finalResultA)
runInference(finalResultB)
readNode*

because if possibly you are reading calling runInference twice, once for each output node, and then trying to read from an output buffer that was cleared by the second runInference call, that could potentially cause a problem.

Yeah I run it twice, because I am using two instances of Classifier, one for each output layer, which is probably not the best design). However it worked with non quantized version of graph.
When displaying really all output (not just related to my app), i see:

01-30 23:52:38.879 378-378/?  A/DEBUG: Build fingerprint: 'samsung/j5nltexx/j5nlte:6.0.1/MMB29M/J500FNXXU1BPI1:user/release-keys'
01-30 23:52:38.879 378-378/? A/DEBUG: Revision: '5'
01-30 23:52:38.879 378-378/? A/DEBUG: ABI: 'arm'
01-30 23:52:38.879 378-378/? A/DEBUG: pid: 25257, tid: 25857, name: inference  >>> bazinac.aplikacenahouby <<<
01-30 23:52:38.879 378-378/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xb95d5000
01-30 23:52:38.879 396-25924/? W/QCamera2HWI: processAutoFlashValue: AutoFlash not enabled, no ops here
01-30 23:52:38.899 378-378/? A/DEBUG:     r0 b9511da0  r1 00000000  r2 b95d5000  r3 fff3cd98
01-30 23:52:38.899 378-378/? A/DEBUG:     r4 00000000  r5 00000001  r6 00000001  r7 00000040
01-30 23:52:38.899 378-378/? A/DEBUG:     r8 96d86020  r9 96e492e0  sl 00000001  fp 9ece219c
01-30 23:52:38.899 378-378/? A/DEBUG:     ip 96d86080  sp 9ece2078  lr 00000000  pc 9e5e4dcc  cpsr a00f0030
01-30 23:52:38.909 396-25924/? W/QCamera2HWI: processAutoFlashValue: AutoFlash not enabled, no ops here
01-30 23:52:38.909 378-378/? A/DEBUG: backtrace:
01-30 23:52:38.909 378-378/? A/DEBUG:     #00 pc 005c0dcc  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.909 378-378/? A/DEBUG:     #01 pc 005cb85f  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.909 378-378/? A/DEBUG:     #02 pc 005e26cf  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.909 378-378/? A/DEBUG:     #03 pc 005e5dc9  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.909 378-378/? A/DEBUG:     #04 pc 00606aed  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.909 378-378/? A/DEBUG:     #05 pc 0064f367  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.909 378-378/? A/DEBUG:     #06 pc 0064f5df  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.919 378-378/? A/DEBUG:     #07 pc 006439b3  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.919 378-378/? A/DEBUG:     #08 pc 0064b2db  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.919 378-378/? A/DEBUG:     #09 pc 0064b3cd  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.919 378-378/? A/DEBUG:     #10 pc 0064b659  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.919 378-378/? A/DEBUG:     #11 pc 0064c615  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.919 378-378/? A/DEBUG:     #12 pc 006484e3  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.919 378-378/? A/DEBUG:     #13 pc 00646507  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so
01-30 23:52:38.919 378-378/? A/DEBUG:     #14 pc 000991c7  /data/app/bazinac.aplikacenahouby-1/lib/arm/libtensorflow_demo.so (Java_org_tensorflow_contrib_android_TensorFlowInferenceInterface_runInference+1854)
01-30 23:52:38.919 378-378/? A/DEBUG:     #15 pc 006418d5  /data/app/bazinac.aplikacenahouby-1/oat/arm/base.odex (offset 0x425000) (int org.tensorflow.contrib.android.TensorFlowInferenceInterface.runInference(java.lang.String[])+96)
01-30 23:52:38.919 378-378/? A/DEBUG:     #16 pc 007de4cf  /data/app/bazinac.aplikacenahouby-1/oat/arm/base.odex (offset 0x425000) (java.util.List org.tensorflow.demo.TensorFlowImageClassifier.recognizeImage(android.graphics.Bitmap)+1650)
01-30 23:52:38.919 378-378/? A/DEBUG:     #17 pc 006491ef  /data/app/bazinac.aplikacenahouby-1/oat/arm/base.odex (offset 0x425000) (void org.tensorflow.demo.ClassifierActivity$1.run()+434)
01-30 23:52:38.919 378-378/? A/DEBUG:     #18 pc 037e3377  /system/framework/arm/boot.oat (offset 0x2fc3000)

Thank you for your time Andrew, I really appreciate your help here.

To be clear, you have instantiated two unique TensorFlowInferenceInterface objects in your app, and you use one for each layer you're interested in? If you make the calls in the opposite order, does it still crash?
To workaround your issue, if the input data remains the same in computing finaleResultA/B, you can and should get both output layers from a single runInference call on a single TensorFlowInferenceInterface instance. This will save you multiple seconds of duplicate computation anyway.
It's possible you've run into a bug in TF, but without doublechecking that all the identifiers are correct, you're not using any of the same buffers etc, it's hard to diagnose if the problem is in TF or your app. Sometimes things can seem to work in one situation, when really there is still a problem and the other codepaths just aren't as picky about the data access. If you have a minimal reproducible example you'd be willing to share I can take a look, but otherwise I'd suggest just using a single TensorFlowInferenceInterface.

I have tried it with another phone, and here, error is the same, but log is more verbose.  Please Andrew, do not waste your time here, tommorow I will rewrite my code properly to use just one Classifier (and doing fillnode just once), maybe it will help. I will post how did it went.
[D/INFERNECE: beforerunInference
E/BufferQueueProducer: [SurfaceTexture-1-23802-1] dequeueBuffer: min undequeued buffer count (2) exceeded (dequeued=9 undequeued=1)
I/native: tensorflow_inference_jni.cc:228 End computing. Ran in 2037ms (2037ms avg over 1 runs)
D/INFERNECE: afterrunInference
D/INFERNECE: beforerunInference
A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x93ec0000 in tid 24104 (inference)
E/BufferQueueCore: [SurfaceTexture-1-23802-1] Slot 0 is in mFreeBuffers but is not FREE (3)
A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x8 in tid 23815 (Binder_2)
I/libc: Another thread contacted debuggerd first; not contacting debugger.]

I have changed my code according to your advice and now I utilize single runInterference call on single TensorFlowInferenceInterface). However, Fatal signal 11 (SIGSEGV) still persists, when using quantized graph.
What I have tried now:
When I use just optimized graph, I can use both output layers of my graph just fine (final_result_A, final_result_B). When I quantize graph to eightbit, I can use just one layer (final_result_A), when I try to use both or JUST final_result_B, I get this SIGSEGV... This therefore leads me to belief, that issue is in some operation done in quantize_graph script.
Are there any restrictions with usage of this script (unsupported nodes) or something like this?

@bazinac Ok, that does seem to narrow it down to TF a bit more. I think it'd help to know more about your graph topology. What are unique nodes on the path to final_result_B that don't connect to final_result_A? What are the types/dimensions? Can you run quantize_graph with just final_result_B and then query it at runtime?
@petewarden Do you know of any issues involving quantization with multiple outputs?

Actually Andrew, maybe it would be easier if I provide my graph to you? If you promise me that you wont put it to piratebay, then I would be fine with it as I kind of trust and respect you :).
One thing here is that I have read in some old post that in order to use quantized ops, I should add 	"//tensorflow/contrib/quantization:cc_ops","/tensorflow/contrib/quantization/kernels:quantized_ops", to my build. I will try this...

Sure, you can email a link to andrewharp at google. Might be helpful to have both the quantized and unquantized graphs, thanks.

Is the second output layer's name actually final_result_b? I'm not seeing it or final_result_a, only final_result.

Sorry you're hitting so many problems @bazinac! As a side note, we're moving over active development from the Python scripts you mention to the Graph Transform Tool:
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/graph_transforms/#quantize_weights
It might be worth trying that approach just to see if there's any difference.
I'll sync with Andrew and get the model files from him, in case there's anything there that helps me understand what's going wrong.

Ok, figured out the layer names :)
I've been able to reproduce this by requantizing your graph from the original optimized and then running benchmark_model on it. As you say it only crashes when reading the results from the second output node in the quantized version. We'll take a look to see what might be going on.

Hi guys, thanks for looking into it. I fiddled with graph_transforms as proposed by Pete, however I am unable to succesfully run even strip_unused_nodes(type=float, shape="1,299,299,3"). It quickly fills whole available memory of my PC (which is 8GB) and then crashes with "terminate called after throwing an instance of 'std::bad_alloc'", which probably means it has ran out of memory.
I am eagerly anticipating any updates from you :).

Urk! Can you copy and paste the command line you ran that hit that problem?

bazel-bin/tensorflow/tools/graph_transforms/transform_graph \
--in_graph=output.pb \
--out_graph=stripped.pb \
--inputs='Mul:0' \
--outputs="final_result_musoth,final_result" \
--transforms='\
strip_unused_nodes(type=float, shape="1,299,299,3") \
remove_nodes(op=Identity, op=CheckNumerics) \
fold_constants(ignore_errors=true) \
fold_batch_norms \
fold_old_batch_norms\
'

Hi Andrew, is there any chance that you will find where the issue lies, or should I rather start looking into some other techniques (eg. prunning or something like this.) Thank you for your help...

I have tracked down the issue with the transform graph command line. It's in the argument parsing code, and I have a fix pending, but in the meantime you can remove the new lines and it should work:
bazel-bin/tensorflow/tools/graph_transforms/transform_graph --in_graph=output.pb --out_graph=stripped.pb --inputs='Mul:0' --outputs="final_result_musoth,final_result" --transforms='
strip_unused_nodes(type=float, shape="1,299,299,3") remove_nodes(op=Identity, op=CheckNumerics) fold_constants(ignore_errors=true) fold_batch_norms fold_old_batch_norms'

Thank you very much Pete!

Yeap it works, this way (using transformations strip_unused_nodes, remove_nodes, all those folds, then round_weights and eightbit) my graph does not crashes anymore when used in android, like it did when I have used python scripts.
However, final_result layer works the same in just stripped version as in eightbit, but the other (final_result_musoth - originally referenced as final_result_b produces completely wrong results when graph is converted to eightbit... When just stripped, it works fine. Hope @andrewharp will find something. Thank you for your support guys, you are doing great job here.

Hi guys, sorry for being such a pestilent guy, but is there any development it this? Or, could you please point me to some other possibilites how to shrink graph size (eg. some prunning), I desperately need to make it more compact for mobile deployment... Thanks

Are you only trying to shrink the file size, rather than reduce latency? If so, try using "quantize_weights" rather than "quantize_nodes" in your call to the graph transform tool. That will store the parameters as eight bit, but use float calculations inside the graph (expanding the weights to floats the first time the graph is run). That might help your accuracy problems.

Actually that is what I did. First I stripped graph, then rounded weights (round_weights(num_steps=256)')
and then quantized weights using:
bazel-bin/tensorflow/tools/graph_transforms/transform_graph --in_graph=/tmp/rounded.pb --out_graph=/tmp/eightbit.pb --inputs='Mul:0' --outputs="final_result_musoth,final_result" --transforms='quantize_weights'
However, after this step, it is not accuracy problem that I am hitting there - it is so that final_result_musoth layer produces no output when quantized... Just final_result does. With no quantization, both layers work just fine, but graph is too big. Any tips? Thanks

I noticed that quantize_weights.cc has:
max = min / 2.0f;
while round_weights.cc has:
min = 2.0f * max;
Could this be related?

@andrewharp: is this question to me or to pete? I coud barely answer I understand the this script code jsut poorly, please treat me as BFU :D

@bazinac Primarily for @petewarden, but you might try changing them both to match each other (for both versions) and see if anything improves.

Ok will do, thanks for your support,

I have a similar issue, I think. If I quantize an inception v3 graph on Ubuntu (Intel x86_64) and test on the same platform then I get reasonable results. If I try to use the quantized graph on Linux (ARMv7) then the results are quite bad. Is there something specific to a platform that is done in quantization process? I apologize I have not investigated the quantization code/build settings in greater detail.

@anuragrs For me it does not work after quantization even on Ubuntu. I even tried to quantize inception V3 graph prior to retraining, and it does not work... It works only when I retrain only on unquantized network (then it works on both platforms).

Update here, I have found out that quantization does not just corrupts my second output layer, but messes with first one as well. It seems that after quantization, classifing tends to favor just one category no matter what you feed it. Therefore I think something is definititelly wrong with quantize_weights transform (as user @Bruczzz in issue #7523 is hitting exactly same problem). Now when he is having the same problem, then I am pretty sure there is some bug in that transformation, please @andrewharp  and @petewarden help us :).
I have retrained clean inception V3 graph on few categories and this is pattern of classifing:
`Sample image 1 (R)
unquantized results:
R (score = 0.40234)
P (score = 0.19375)
B (score = 0.19081)
C (score = 0.06899)
F (score = 0.06185)
quantized results:
T (score = 0.97295)
L (score = 0.00936)
H (score = 0.00766)
G (score = 0.00272)
S (score = 0.00128)
Sample image 2 (is H)
unquantized results:
H (score = 0.99536)
D (score = 0.00163)
E (score = 0.00086)
C (score = 0.00051)
U (score = 0.00024)
quantized results:
T (score = 0.76606)
H (score = 0.10995)
S (score = 0.09073)
D (score = 0.01019)
F (score = 0.00469)
Sample image 3 ( is A)
unquantized results:
S (score = 0.91210)
X (score = 0.07343)
W (score = 0.00629)
G (score = 0.00273)
A (score = 0.00208)
quantized results:
T (score = 0.69732)
G (score = 0.07490)
F (score = 0.04135)
D (score = 0.03919)
H (score = 0.02643)`

@amdrehertz I have tried adding quantize nodes, running transformation as described in eight-bit-calculations (just omitting stripunused in order to be able to run inference on PC). But when quantize nodes is added, it then fails when I try to run inference using eightbit graph, maybe this can show something... I get:
  File "/home/poborak/PycharmProjects/TF/anh_evaluator.py", line 23, in create_graph
    _ = tf.import_graph_def(graph_def, name='')
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/importer.py", line 383, in import_graph_def
    ops.set_shapes_for_outputs(op)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1717, in set_shapes_for_outputs
    shapes = shape_func(op)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1667, in call_with_requiring
    return call_cpp_shape_fn(op, require_shape_fn=True)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/common_shapes.py", line 610, in call_cpp_shape_fn
    debug_python_shape_fn, require_shape_fn)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/common_shapes.py", line 652, in _call_cpp_shape_fn_impl
    v = tensor_util.constant_value(op.inputs[idx])
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/tensor_util.py", line 684, in constant_value
    ret = _ConstantValue(tensor)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/tensor_util.py", line 584, in _ConstantValue
    input_shape = tensor.op.inputs[0].get_shape()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1437, in __getitem__
    return self._op._inputs[i]
IndexError: list index out of range

Thanks! That's a different problem we are currently working on. Please add "sort_by_execution_order" at the end of your list of transformations. (importer.py requires some order in the graph, which transform_graph doesn't guarantee)

Ha, now it seems to work much better. Behavior described above (quantized graph producing output leaning always toward single category) is gone. However great bit of accuracy is lost.
Thank you @andrehentz for the support. Appreciate it.

@bazinac, is there something about the accuracy of the quantized graph that you think should be investigated?

@andrehentz, currently I do not think so. There is definitelly quite significant accuracy diff, but I have not had time to check it more precisely and find some sort of pattern in it (as I am dealing with other issues in development). I will close this now as the original bug is solved and let you know in the future if I found something. Thank you for your help and kind attitude!

Hello,
Same case here (retrained inception v3 model).
I followed everything but still have the same issue like @bazinac had (output leaning always toward single category) when running on android (using the demo example).
Both quantize_graph and eight-bit-calculations(with both quantize_weights and quantize_nodes) have the same issue.
Before quantize - i see speeds at 800ms-1.5sec on each prediction on a s7 edge exynos but great results.
After quantize/eightbit i see 350ms-800ms speeds but predictions are always the same class.

Hi left13, could you post the full command you are using to quantize using the 'eight-bit-calculations'?

Would you be able to try the following?
--transforms='add_default_attributes strip_unused_nodes(type=float, shape="1,299,299,3") remove_nodes(op=Identity, op=CheckNumerics) fold_constants(ignore_errors=true) fold_old_batch_norms quantize_weights quantize_nodes strip_unused_nodes sort_by_execution_order'
(The only difference being "fold_constants(ignore_errors=true)")

Nothing changed, same as before.

@left13 Is there a way you can share retrained_graph.pb and maybe a couple of test images?

@andrehentz sure, where to send the link?

@left13 this behavior has affected my project only until I compiled latest TF from source back then in the end of February. Just mentioning this for case that you are using older TF. Good luck!

@bazinac thanks for your suggestion, i'm already on latest TF.

@left13  You can email the link to me. The address is in my profile. Thanks!

Hi,
I am using the latest tensorflow version (1.2.0 at this time) and I have been trying to quantize my model in order to use it in an Android application.
The steps I have followed are:

freeze_graph.py
bazel-bin/tensorflow/python/tools/optimize_for_inference
bazel-bin/tensorflow/tools/quantization/quantize_graph (eightbit)

I have used the prebuilt libraries (nightly Android build artifacts) and also have built the libraries myself.
I can load my model and run it, but the output I get is completely outside of the expected ranges (I expect +/-1e-3 and the values are around +/-1e6 with a very small variance).
I am using a VGG-based model.
I would really appreciate a little guidance. Thank you in advance.

@cpgil Could you try using bazel-bin/tensorflow/tools/graph_transforms/transform_graph instead of quantize_graph?

@cpgil I was probably solving same issue as you some time ago. Solution for me was using transform_graph as andre proposes (like this)
bazel-bin/tensorflow/tools/graph_transforms/transform_graph \ --in_graph=/tmp/output.pb \ --out_graph=/tmp/manip.pb \ --inputs='Mul:0' \ --outputs='final_result_musoth,final_result' \ --transforms='  add_default_attributes  strip_unused_nodes(type=float, shape="1,299,299,3")  remove_nodes(op=Identity, op=CheckNumerics)  fold_old_batch_norms  quantize_weights  quantize_nodes  sort_by_execution_order'

@andrehentz, @bazinac I used bazel-bin/tensorflow/tools/graph_transforms/transform_graph as proposed but this didn't help since the output continued to be much greater than expected.
I then played a little with the transformations until I used my already optimized model (optmize_for_inference) and only --transforms='quantize_weights'and this worked. All other combinations corrupted my graph and gave errors when loading the model even in python.
I have to say I didn't think of following this path before since in most tutorials is recommended to use the "recipe" that I used, for this reason I though the error was somewhere else (e.g. my .so files). It would be very helpful if this approach was also included (or it has more coverage) on the documentations/tutorials. It is still unclear to me why this way works and the other one doesn't.
Thank you very much!


QualityChecker should warn when high qualities are found in Standard format

Due to the fix made for #24, now there is an option for allow higher qualities. QualityChecker should help to the user to decide if the new option is needed after detecting the format, checking all the qualities and throwing a warning if the qualities are higher than expected.

Close in favor of #53


Button issue

/**
 * A button that is placed below the labels. Visible only if a target / action is added.
 */
@property (strong, nonatomic, readonly) UIButton *button;

The button is always showing, although target / action is not added.

I encountered the same problem，what should i do？

I got this problem too

I got this problem too

I got this problem too

I'd need some reproduction steps here. MBHudDemoViewController has a bunch of examples and only the ones supposed to show the button show it. Can you modify one of those so it shows this issue?

You should check the button's target number in (intrinsicContentSize) method
po self.allTargets
In my case i found a statistical lib add a touch event to all button at runtime


Add a new Arm Energy Probe instrument

Add new energy instrument that is based on arm-probe tool to manage AEP
Main advantages of this tool are:

uses a config file for describing channels and shunt resistors value
manages power topology description in the config file. This topology
is then used when computing power figures
can create virtual power channel and aggregate channels
support multiple AEP
support auto-zero of AEP's channel

Signed-off-by: Vincent Guittot<EMAIL_ADDRESS>

I did something wrong with the previous pull request and close it. This one is a new pull request and take into account comments done in previous one


Nick: Watch ionicflux.com

Nick requests the watch of the watch_keyword ionicflux\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

ionicflux\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Minor changes & version control.

Minor changes & version control.

👷 Deploy Preview for yunrui-zhang processing.

Name
Link

🔨 Latest commit
62be4dd3d7015af37021fa8a0d60690ef1191005

🔍 Latest deploy log
https://app.netlify.com/sites/yunrui-zhang/deploys/651ac3bfa1377a0008db6f98