User-Agent header is set to "grpc-dotnet/<IP_ADDRESS>" in Safari

https://docs.microsoft.com/en-us/aspnet/core/grpc/services documents how to access the HTTP request headers, and gives an example of the User-Agent:
public override Task<ExampleResponse> UnaryCall(ExampleRequest request, ServerCallContext context)
{
    var userAgent = context.RequestHeaders.GetValue("user-agent");
    // ...

    return Task.FromResult(new ExampleResponse());
}

The userAgent will however be grpc-dotnet/$version when running on Safari in Blazor (as described at https://docs.microsoft.com/en-us/aspnet/core/grpc/browser) seemingly from https://github.com/grpc/grpc-dotnet/blob/3518cd757002f5a685f34d277e876850b7637ecc/src/Grpc.Net.Client/Internal/GrpcProtocolConstants.cs#L64-L81. Whilst other browsers actually send the user agent of the browser.
I'm curious what the right behaviour here is. My feeling here is that it should be the Browser UA (and possibly should be fixed in grpc-dotnet or Safari). But as I am not sure, I'm filing this here :)

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

ID: d988d24b-1a4d-d1ab-4a2a-f85156b4ea84
Version Independent ID: a770adda-2001-c26e-62c5-5957baba3bb7
Content: Create gRPC services and methods
Content Source: aspnetcore/grpc/services.md
Product: aspnet-core
Technology: aspnetcore-grpc
GitHub Login: @JamesNK
Microsoft Alias: jamesnk

Hello @LukasReschke ... Since this appears to be about the framework/browser behavior, it's best if you open it for the product unit to address. If you/they find out something that should change in the doc, then we can re-open this issue (or you can open a new one from the bottom of the topic again) with the cross-linked product unit issue. Feel free to add a cross-link to this docs issue at the bottom of the new product unit issue so that this doesn't get lost in the discussion over there.
Open your issue (you can probably just cut-'n-paste that :point_up:) at ...
https://github.com/dotnet/aspnetcore/issues.

Hello @LukasReschke ... Since this appears to be about the framework/browser behavior, it's best if you open it for the product unit to address. If you/they find out something that should change in the doc, then we can re-open this issue (or you can open a new one from the bottom of the topic again) with the cross-linked product unit issue. Feel free to add a cross-link to this docs issue at the bottom of the new product unit issue so that this doesn't get lost in the discussion over there.
Open your issue (you can probably just cut-'n-paste that :point_up:) at ...
https://github.com/dotnet/aspnetcore/issues.


Page Flip

Hi, Thanks for sharing this excellent library. İs it possiple page transitions as page flip ?
;Thanks

No it is not possible, I don't think we will support that in a soon future.


DialogContextError: Cannot read property 'trackTrace' of undefined

Use this query to search for the most popular feature requests.
Is your feature request related to a problem? Please describe.
Yes, I am going the following error when using the DialogTestClient: DialogContextError: Cannot read property 'trackTrace' of undefined. Through debugging I can see the telemetryClient on each of the dialogs.
Describe the solution you'd like
I've seen and used the below snippet to resolve this issue but I can't see this surfaced via the API. It would be nice to expose this option to avoid the error. I don't currently have a workaround either.

Actually the code dies on checking telemetryclient for dialogs in dialogContainer
dc.dialogs.telemetryClient.trackTrace({
message: traceMessage,
severityLevel: botbuilder_core_1.Severity.Warning,
});

To add telemetry client which can be a NullTelemetryClient
Check where you are creating a dialogContext on the main dialog,
//Example
const dialogContext = await dialogSet.createContext(context);

put this line there
import { NullTelemetryClient } from "botbuilder";
dialogContext.dialogs.telemetryClient=new NullTelemetryClient()

Source: https://stackoverflow.com/a/69133348/4932850
Describe alternatives you've considered
None.

@tdashworth, thank you for your patience. If you look at the NullTelemetryClass() in the SDK, you can see that the class overrides the methods implemented in the BotTelemetryClient() class that it inherits from. The overrides don't actually perform any function. The reason being is the NullTelemetryClient(), itself, is intended not to return any telemetry for possible use in testing, setting default responses, or implementing custom telemetry handlers.
In short, if you want to utilize any of the methods attached to this class, you will need to override the methods with your own code to produce the functionality you are seeking. Though, a better option would be to just create a custom telemetry client directly from the BotTelemetryClient() where each method is already enabled or use the TelemetryLoggerMiddleware() middleware, if that meets your needs.
With regards to the above bit of suggested code, I was able to successfully use it, overriding the trackTrace() method, to simply console log a bit of text and then just return.
dialogContext.dialogs.telemetryClient = new NullTelemetryClient();
dialogContext.dialogs.telemetryClient.trackTrace = () => {
  console.log('TRACK TRACE HIT');
  return;
}
await dialogContext.dialogs.telemetryClient.trackTrace();

Closing as this should resolve your issue. If you continue to experience an issue and suspect a bug in the SDK, please feel free to re-open. If you are needing guidance on "how to" implement any of this, please refer to the docs and/or post your question on Stack Overflow.


Adding custom error identifier to exception tracking

We have a SPA application with Web API backend which uses application insights. For any error encountered, we generate a unique ID to show to the user, so that we can correlate it back in the App Insights. I am able to do the same in Web API; but is there a way to use the same in SPA using this plugin?

@tutujohngeorge
Unfortunately not yet.
App uses the internal UUID factory to generate any unique identifiers.
But your idea seems interesting.


replace downcase(?) with lower(?) in the Fragments example

I understand that the use of downcase(?) was just for the sake of example, but wouldn't it be better to use the real function instead (both for postgres and mysql)?

Thank you! ❤


chore: bump version to 0.8.0

Hey @lgebhardt we need to differ versions for https://github.com/venuu/jsonapi-authorization/pull/24
I've choosen to increase the minor version number as of a lot of things have changed since 0.7.0.
Also, I'm thinking that it would helps a lot to define a version number policy so that pull requests like this one aren't necessary.

@dgeb and I have been working on a system for releases based on the Ember release process, though with much less adherence to the calendar (unless major features pour in). Briefly PR's will be reviewed and merged into the master branch. A release number will be identified with a general feature set. A beta branch will be created and commits from master will be cherry picked into the beta branch. Beta releases will be made from the beta branch when ready. When deemed bug free and meeting the intended targets the final beta will be transitioned into a release branch. The process will then start over.
v0.8.0.beta1 has been released. I'm hoping to get #712 into a beta2, give people a bit of time to test it and then release 0.8.0. I'll leave this open until then.

I could really use an official 0.8.0 release of this gem!

The 0.8.0 release has been made.


Remove global task attribute

Remove global task attribute on task, and script task

Fixed in https://github.com/ProcessMaker/spark-modeler/pull/373.


Fixes fourth-tier header in Advanced.md

The parser seems to need that space between the header mark and the actual text 🤔

Yeah - I think this changed? I've been seeing this in a couple of repositories over the last week. Thanks though!


Compatibility for new NeuroM versions

Hello,
I would need compatibility for new versions of NeuroM. As far as I can see, only a change for an import is required.

Did you use the modified version, and did it work correctly? Have you tried using it to visualize neuron morphologies with Brainrender?

I tried the script examples/neurons.py from brainrender (the only one that uses morphapi) and it seems to work properly. I get many VTK errors reported in the console but in the end I get the following scene:

I get many VTK errors reported in the console

Yep you can ignore those. Looks good thank you!

Ok, cool, thanks!


OAuth 2.0 Github Added

#131

PR seems good. Fix the merge conflict and the formatting issue I have mentioned. Then we can go ahead with the merge.

@psnmissaka since I coded more in ES5 that's why I have a habit of using 'var'.

@shivamarora96 I think its better if we can use ES6. For future tasks lets use ES6 and let's do some refactoring later for the code written in ES5.

@psnmissaka i can help in es6 format!


Give each integration test based on the profiling reports

NOTE: This recipe might help to get some initial context
As a developer, I'd like to give to each of my integration tests a "performance score" based on the information received on a profiling report:
{
  "average_frame_build_time_millis": 4.2592592592592595,
  "worst_frame_build_time_millis": 21.0,
  "missed_frame_build_budget_count": 2,
  "average_frame_rasterizer_time_millis": 5.518518518518518,
  "worst_frame_rasterizer_time_millis": 51.0,
  "missed_frame_rasterizer_budget_count": 10,
  "frame_count": 54,
  "frame_build_times": [
    6874,
    5019,
    3638
  ],
  "frame_rasterizer_times": [
    51955,
    8468,
    3129
  ]
}

so I can see in an Ozzie report how these features are performing, avoid regressions, or failed builds in case the performance score is under a certain threshold.

PR #30 opened


Re Org Tests: outbound  tx last transaction disappears and is never mined

Transaction was included in a block, and then is not included in a block after a reorg, and expires.

@braddmiller: AFAIK, this test should have the same success criteria as "expired transaction" test, right?
Steps:
pre condition: there's a spendable note on the wallet

send a transaction
transaction is mined at X + i, 0 < i < 10
reorg happens at X + j ,  j < i
transaction is never mined in new chain.

Note: this is the test description of "expired transaction test" from balance tests
/**
     Verify transactions that expire are reflected accurately in balance
     This test requires the transaction to expire.

     How can we mock or cause this? Would createToAddress and faking a network submission through lightwalletService and syncing 10 more blocks work?

     Precondition:
     Account has spendable funds
     Librustzcash is ‘synced’ up to ‘current tip’ †
     Current tip can be scanned 10 blocks past the generated to be expired transaction

     Action:
     Sync to current tip
     Create transaction to zAddr
     Mock send success
     Sync 10 blocks more

     Success Criteria:
     There’s a pending transaction that has expired
     Total Balance is equal to total balance previously shown before sending the expired transaction
     Verified Balance is equal to verified balance previously shown before sending the expired transaction

     */


Handle required query string and headers in Java

[!NOTE]
First of all, many thanks for your work on the library. It could be very important for a lot of projects! :pray:

Please notice one huge disclaimer when I wrote this issue.

[!IMPORTANT]
The purpose of generating API clients is so that you can provide them to completely different teams, and they should be as intuitive as possible for them to use - even if they don't know exactly how to use it. So in some situations - generated API clients - must 'think' for the API consumers.

Let's say we have the following OpenAPI definition:

we have one required header (X-Client) and one required query (token).
Right now I'm consuming this API in that way:
TemporaryFileResponse temporaryFileResponse = temporaryFilesServiceClient
        .api()
        .temporaryFiles()
        .get(getRequestConfiguration -> {
            getRequestConfiguration.headers.add("X-Client", "acme");

            getRequestConfiguration.queryParameters.token = "token-123";
        });

A couple of improvements could be done here (*):
(*) all examples are cleaned for unnecessary code for brevity

Required query shouldn't be @Nullable

Definition of the GetQueryParameters is:
public class GetQueryParameters implements QueryParameters {
    @jakarta.annotation.Nullable
    public String token;
}

That definition of the query parameter isn't valid because it is required.

Headers should be available like query parameters

Headers defined in OpenAPI Spec should be available as query parameters for auto-completion purposes and to help better understand how the API works.
Using following example:
getRequestConfiguration.headers.xClient = "acme";

queryParameters shouldn't be @Nullable

Instead of this the empty QueryParameters object should be used.
public class GetRequestConfiguration extends BaseRequestConfiguration {
    @jakarta.annotation.Nullable
    public GetQueryParameters queryParameters = new GetQueryParameters();
}

This helps with following warnings:

Additional check for required query and header

When the query and the header are required, there should be an additional check before serialization to ensure that they aren't null.

I hope :pray: these ideas make sense for you. If something needs more clarification - let me know.

Hi @piotrooo
Thanks for using kiota, the praises, the detailed issue, and your patience.
First off, around nullability, I can see that you've already submitted a PR, thanks! https://github.com/microsoft/kiota-java/pull/1149
Then, here are a couple of answers to your questions.
The headers are not being projected to their own type due to a mix of a size concern and a concern about the developer experience of an object that'd be mixed between properties and a map behaviour.
Both the examples of headers you've provided look like they are cross-cutting (required for all or a majority of operations on the API surface). For that, instead of specifying things on a per request base we suggest:

using the API Key Authentication provider for the token header
defining your own middleware handler for the client header

Besides avoiding duplication of code, this approach will allow that initialization to live where your application configuration/initialization happens, separate from where the requests are made.
Let us know if you have further questions.

I'm not sure if I understand you correctly, but creating manually a middleware per request is not what you want from a code generator. The variable nature of the OpenAPI spec disables the generation of reusable code.
Let's consider the following scenario:
GET /api/first-request, which has the following headers: HeaderOne, HeaderTwo
POST /api/second-request, which has the following headers: HeaderTwo, YetAnotherHeader
And so on for other endpoints with different, sets of request-defined headers.
This could be described using the following OpenAPI Spec.

OpenAPI Spec
paths:
  /api/first-request:
    get:
      operationId: get
      parameters:
        - name: HeaderOne
          in: header
          required: true
          schema:
            type: string
        - name: HeaderTwo
          in: header
          required: true
          schema:
            type: string
      responses:
        '204':
          description: No Content
  /api/second-request:
    post:
      operationId: post
      parameters:
        - name: HeaderTwo
          in: header
          required: true
          schema:
            type: string
        - name: YetAnotherHeader
          in: header
          required: true
          schema:
            type: string
      responses:
        '204':
          description: No Content

Creating middleware is really inconvenient. If I have to manually create some parts of the OpenAPI Spec, why would I need a generator? I can do this manually.

in that scenario, yes providing headers at request time makes sense.
Or you could choose to build two separate clients grouped by headers depending on how many endpoints are impacted by any given header.
Let us know if you have further questions/comments.

Or you could choose to build two separate clients grouped by headers depending on how many endpoints are impacted by any given header.

Could you elaborate on it? Or show an example? I don't understand the purpose of having two clients; it seems to be very odd to me. I want to simplify things, not complicate them further with another client. This is a reason why I want to use a generator: to simplify things. Moreover, I have all the necessary information in the OpenAPI Spec.
If you consider the nature of the defined headers in the OpenAPI Spec, you can easily compare them to query parameters. Even though the section is labeled parameters in the OpenAPI Spec, the only difference lies in the in property: for headers, it's header, and for queries, it's query.

I play around a little bit with the desired (?) API for request configuration. Couple of ideas:
1. Like queryParameters
(which I personally don't like)
get(requestConfiguration -> {
    requestConfiguration.headers.headerOne = "first-header";
    requestConfiguration.headers.headerTwo = "second-header";

    requestConfiguration.queryParameters.token = "1234qwerty";
});

2. RequestConfiguration with all described parameters

[!NOTE]
Here, we need also to implement nullable checks because some parameters must be set (as required fields).

The configuration class:
public class TemporaryFilesRequestConfiguration implements Consumer<RequestInformation> {
    private final List<Consumer<RequestInformation>> configurers = new ArrayList<>();

    public static TemporaryFilesRequestConfiguration temporaryFilesRequestConfiguration() {
        return new TemporaryFilesRequestConfiguration();
    }

    public TemporaryFilesRequestConfiguration headerOne(String value) {
        Consumer<RequestInformation> headerOne = (requestInformation) -> {
            requestInformation.headers.tryAdd("HeaderOne", value);
        };
        configurers.add(headerOne);
        return this;
    }

    public TemporaryFilesRequestConfiguration xClient(String value) {
        Consumer<RequestInformation> headerOne = (requestInformation) -> {
            requestInformation.headers.tryAdd("X-Client", value);
        };
        configurers.add(headerOne);
        return this;
    }

    public TemporaryFilesRequestConfiguration token(String value) {
        Consumer<RequestInformation> headerOne = (requestInformation) -> {
            requestInformation.getQueryParameters().put("token", value);
        };
        configurers.add(headerOne);
        return this;
    }

    public void accept(RequestInformation requestInformation) {
        configurers.forEach(consumer -> consumer.accept(requestInformation));
    }
}

Usage:
TemporaryFileResponse temporaryFileResponse = sampleClient
        .api()
        .temporaryFiles()
        .get(temporaryFilesRequestConfiguration()
                .headerOne("value1")
                .xClient("value2")
                .token("value3")
        );

It's handy. It covers all the query parameters and headers cases. Moreover, we can easily extend these configurations with cookie support.

Thank you for the suggestion.
This approach presents a couple of challenges:

what if token is both defined in headers and query parameters? (the symbols will collide)
what if the user wants to provide a request header that's not documented in the description? (arguably this one is easier to fix with a fluent method "addHeader")

Could you elaborate on it?

Usually, cross cutting concerns like telemetry, authentication, etc... are better handled as an authentication provider and/or a middleware handler as I explained in a previous reply.
The "multiple clients approach" comes handy when you have "functional partitions" of the API surface e.g.:

This set of endpoints are for CRUD operations, they work with OAuth and require this random telemetry header1.
This other set of endpoints are for migration scenarios, they work with API keys and require a different telemetry header2.

You could generate two different clients:

the CRUD client, augment it with a middleware to add the header1 on every request, and provide it an OAuth authentication provider.
the migration client, augment it with a middleware to add the header2 on every request, and provide it with an API Key authentication provider.

This way the auto-completion will ONLY suggest operations that are valid for the scenario, and you don't need to provide the headers on every request.
I hope that makes things clearer?

@baywet thanks for answering. I believe this conversation could produce something good :+1:. That's a constructive flame :wink:

what if token is both defined in headers and query parameters? (the symbols will collide)

My example was just an idea. Of course, we can discuss the desired API. Perhaps we could include a discriminator header/query to methods, or maybe add another nesting level. Other users might have preferences, so we could ask them as well.

what if the user wants to provide a request header that's not documented in the description? (arguably this one is easier to fix with a fluent method "addHeader")

Yes, maybe configurers should have a base class with that kind of "utility" methods. I like this idea.

This way the auto-completion will ONLY suggest operations that are valid for the scenario, and you don't need to provide the headers on every request.

Now I understand (I hope) what you mean by using middleware. Middleware for fixed values is ok (e.g., Authentication, Trace-Id, etc). The described case with the X-Client header provides the possibility to include headers in every request (which is my case). I can imagine that many users may tailor their API to utilize dynamically valued headers.
Moreover, if something is in the OpenAPI Spec (headers, cookies, query parameters), it should be reflected in the generated code.

The other challenge with this approach (not using a lambda/callback for the configuration) is it requires to add an additional import. We've already received the feedback this can be challenging to users with deeply nested APIs.

I don't need additional information at this point. Thanks for the open discussion.
I'll point out that as this is a breaking change, if we implement it, we're likely to do so only in the next major version (no timelines yet), and we might consider it across languages.
If @sebastienlevert @maisarissi @andrueastman and @andreaTP want to provide additional input, they are welcome to do so.

I think we should consider this for 2.0 and across languages!


Nuxt Migration

Fixes

Fixes #1108 by @zackkrida
Fixes #940 by @jesusbotella
Related to #1020
Description

Migrates cc search to Nuxt.js, removing the need for a custom node server, webpack configuration, and build process. Doing so removes around 4,800 lines of code, decreases the average page size (excluding search result image data) from ~900kb to ~300kb, and perhaps most importantly significantly reduces complexity in the maintenance of the repository.
Technical details

Data loading across the site has been re-worked to add consistency and stability. Nuxt's isomorphic fetch() method on vue component instances simplifies data fetching on server vs. client pages significantly.
Bugs Resolved
This PR fixes a number of visual and behavioral bugs with the current site. These fixes were the result of two major factors: A need to refactor code for nuxt's data fetching apis, and a feeling that since this PR touched so many files already, noticed bugs were worth fixing. This list contains descriptions of the bugs; if it's in this list, it's no longer happening:

Tripled pageviews in GA on server-rendered pages.
Logo flickering on every route change
Single result image flashes broken image icon on initial load + return results when visited from search results page
When visiting a results url directly (example: https://search.creativecommons.org/search?q=ponies), images show a spinner, instead of loading server-side
Extra whitespace between the footer and main content area
Extra padding under donation banner on single + search results
Filter Expansion A/B test still running (now set to expanded by default)
Related images "pop-in" (related images used to replace old ones one-by-one, now clears + shows loading indicator)
Flash of entire related image section on server-rendered page loads
Interior header search bar not working

Screenshots / Demo Links

Demo site hosted on vercel: https://ccnuxt.zack.cat

Some differences here compared to prod...no microcaching of pages, different gzip/brotli minification config, etc. Should still be comparable results—if anything, our hardware is faster.

Before (simple perf comparison)

After

Nuxt JS Migration Steps Followed

[x] Loosely follow this migration guide: https://medium.com/@nicogranja19/how-to-migrate-a-vuejs-project-to-nuxtjs-in-7-steps-b340faf2977b
[x] Move initial state setting and data fetching to Nuxt's asyncData method (see: https://nuxtjs.org/guide/vuex-store#the-nuxtserverinit-action)
[x] Move all store files into root store directory (see: https://nuxtjs.org/guide/vuex-store)

[ ] Rewrite store files to simpler api (see: https://nuxtjs.org/guide/vuex-store#modules-mode) [not yet, due to no namespacing]

[x] Rename page files so filename reflects route path (see: https://nuxtjs.org/guide/routing)
[x] Migrate existing separate index.html and server-index.html pages into single app.html file (see: https://nuxtjs.org/guide/vuex-store#the-nuxtserverinit-action)
[x] Move header, footer, modals into shared layout (https://nuxtjs.org/guide/vuex-store#the-nuxtserverinit-action)
[x] Manually test and fix every single component in the project (feasible given the current project size)

Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main or master).
[x] My commit messages follow [best practices][best_practices].
[x] My code follows the established code style of the repository.
[x] I added tests for the changes I made (if applicable).
[x] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

@manniL Thank you for your review of this PR and your guidance! This Nuxt migration PR has been merged into our development branch, which means it will enter production in the next week or so.
We'll write a blog post soon about the migration and our thoughts on Nuxt.js (tldr; Nuxt is great, saves us a ton of time, reduced boilerplate, improved perf, etc.) and keep you posted. Thanks again!


Support for Intel/Altera Quartus Lite/Standard (not Pro)

for (genvar ..) generate_statement() is not supported in Quartus
it likes
generate
genvar g;
for(g ...) generate_statement()
endgenerate
The suggestion is made to add ifdef QUARTUS around the four places that you do this

@jonwoodruff issue opened for comment

I've done the proposed changes in this commit:
https://github.com/ivanmgribeiro/ibex/commit/b2e82dd57913ed472d3da2da0d86de8df2d988f0
These allow the core to compile in Quartus 16.1 if the QUARTUS macro is defined in the project settings.

The currently used style (loop generate constructs, Chapter 27.4  of the SV spec) is recommended by our style guide at https://github.com/lowRISC/style-guides/blob/master/VerilogCodingStyle.md#generate-constructs. The proposed alternative style (generate regions) is not recommended. So if we cannot make Quartus accept this syntax, we need to change the style guide. Ifdefs are really only the last resort.
To double-check if a style guide change is required:

Can you retry with the latest Quartus version?
Is this documented as missing feature in Quartus somewhere?
According to https://www.intel.com/content/www/us/en/programmable/quartushelp/18.1/index.htm#hdl/vlog/vlog_list_sys_vlog.htm SV2009 should be supported (and loop generate constructs are SV2009). More details are hard to find in documentation, since unfortunately the documentation of language features ends at SV Spec Chapter 26, and generate blocks are discussed in Chapter 27 of the SV2009 spec.
Did you check that Quartus doesn't need any special flag to choose the latest SystemVerilog version?

I'm agreeing with @imphil re `ifdef. The proposed coding style in question
should be
supported, so let's pressure the tool vendors to explain why they are not
conformant
and fix as soon as possible.  Worst case is we allow code exceptions and/or
change the
coding style in the short term. If we need to temporarily change the code
to allow the
tools to catch up, we should tag the change with a comment that allows us
to find and
remove when the tools are fixed.
On Tue, Jul 2, 2019 at 10:23 AM Philipp Wagner<EMAIL_ADDRESS>wrote:

The currently used style (loop generate constructs, Chapter 27.4 of the SV
spec) is recommended by our style guide at
https://github.com/lowRISC/style-guides/blob/master/VerilogCodingStyle.md#generate-constructs.
The proposed alternative style (generate regions) is not recommended. So if
we cannot make Quartus accept this syntax, we need to change the style
guide. Ifdefs are really only the last resort.
To double-check if a style guide change is required:

Can you retry with the latest Quartus version?
Is this documented as missing feature in Quartus somewhere?
According to
https://www.intel.com/content/www/us/en/programmable/quartushelp/18.1/index.htm#hdl/vlog/vlog_list_sys_vlog.htm
SV2009 should be supported (and loop generate constructs are SV2009). More
details are hard to find in documentation, since unfortunately the
documentation of language features ends at SV Spec Chapter 26, and generate
blocks are discussed in Chapter 27 of the SV2009 spec.
Did you check that Quartus doesn't need any special flag to choose
the latest SystemVerilog version?

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/lowRISC/ibex/issues/117?email_source=notifications&email_token=AJZQKVLWWSWNCCRIHKXM5JLP5OFKBA5CNFSM4H44U5DKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZB7P6Y#issuecomment-507770875,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJZQKVIYA6NIBWABPTNH25TP5OFKBANCNFSM4H44U5DA
.

I agree we should not unnecessarily clutter the code with ifdefs. But you will also appreciate that a large company like Intel will not prioritise the legacy Altera products. I had a good chat with Gary Guo who uses Altera and his conclusion was that the SysVerilog support in Quartus is pathetic. He recommends using Synplicity as a third-party solution, you will appreciate the very existence of this solution makes Quartus a non-priority. Since your coding style is signed off at a high level, and it is something people feel passionately about from a maintenance standpoint, I think we should we looking at a preprocessor to deal with obsolete Verilog-2000 tools and up and coming but not quite there tools like yosys.

Preprocessing to support tools that fall short of the the desired level of SystemVerilog support is definitely one approach. But we've already tried to limit ourselves to constructs we think are fairly widely supported - I think the next step on this issue is for someone to confirm whether the latest Quartus (I think 19.1) actually still struggles with this syntax, even when all necessary attempts have been taken to enable SystemVerilog support (extra command-line flags etc).

I haven't been able to try building with quartus 19.1 yet, but 18.1 still has the same issue.
Having the genvar x; outside of the for loop seems to conform to your coding style as follows:
      genvar k;
      for (k = 0; k < 32; k++) begin : gen_rev_operand_a
        assign operand_a_rev[k] = operand_a_i[31-k];
      end

Is this a change that could be implemented in the ibex source? If so, then when trying to use quartus to build it should be possible to simply add the generate and endgenerate lines in the local code or fork, which would mean that any changes made to the loop body in this repository should be easy to pull to the local code or other forks that are using quartus.

Is this a change that could be implemented in the ibex source? If so, then when trying to use quartus to build it should be possible to simply add the generate and endgenerate lines in the local code or fork, which would mean that any changes made to the loop body in this repository should be easy to pull to the local code or other forks that are using quartus.

Hi Ivan. That's definitely a possibility, but if we can tell people to use the latest Quartus instead then that's probably going to be the preferred option. If you can try 19.1 and exhaust all possible command line options for forcing maximal SystemVerilog support that would be really helpful. Let's determine definitively whether "use a newer Quartus" is a viable solution, and if not then lets look in more detail at potential workarounds.

Just to make sure I'm not misunderstanding: the code snippet you showed (genvar outside of the loop) does not build with Quartus as-is, but you still need to patch it to add generate/endgenerate statements?

Just to make sure I'm not misunderstanding: the code snippet you showed (genvar outside of the loop) does not build with Quartus as-is, but you still need to patch it to add generate/endgenerate statements?

Yes, that is correct.
It does also work inside an always_comb block such as
always_comb
    genvar k;
    for (k = 0; k < 32; k++) begin : gen_rev_operand_a
        operand_a_rev[k] = operand_a_i[31-k];
    end
end

But I think that's also not allowed in your coding style, and it doesn't fix all the problems - there are still issues in the ibex_ex_block.sv file with the if (!MULT_TYPE) block.

So the next steps are:

Double-check the most recent Quartus version.
Double-check with Altera/Intel that this feature is (a) currently not supported, and (b) ask for an implementation.

Once we have exhausted all our options there, we can move on to either changing our style guide, or adding workarounds for Quartus.

Ivan asked me to comment on this.  There are three versions of Quartus:

Quartus Pro, which allows you to select whether a source file is SystemVerilog 2005 or 2009.  This targets Arria 10 and Stratix 10 devices only.  Latest version is 19.1 Pro.
Quartus Standard, which only allows 'SystemVerilog'.  Standard targets earlier/cheaper devices (including the low cost Cyclone series).  Latest version 18.1 Standard.
Quartus Lite, which is basically the same as Standard but with some licensing limitations

Quartus 18.1 SystemVerilog synthesis support says it supports SV 2005 and 2009, and links to the support table for Verilog (1995 and 2001).  It claims that 'generated instantiation' is supported in Verilog 2001, but is unclear what that means.
It appears the SystemVerilog in Quartus Standard 18.1 is unhappy with the generate statements.  19.1 Pro supports it.  However Pro is essentially a substantial rewrite to target newer/larger FPGAs - I don't see Intel backporting any of these changes to Standard.  In essence, to be able to target anything but the highest-end FPGAs, it would need code compatible with Quartus Standard's implementation.

Thanks for the clarification Theo!
Before moving further forwards on this, might either you or @ivanmgribeiro be able to confirm if there any other Quartus issues we should consider at the same time. Is this genvar issue the only current barrier to getting Ibex working on Quartus Standard 18.1?

Quartus Standard 18.1 also won't compile the following unless they are enclosed with generate and endgenerate:
https://github.com/lowRISC/ibex/blob/6d09fb10608a144e5ec4bb1e37c4b16eca601ae0/rtl/ibex_ex_block.sv#L79-L85
https://github.com/lowRISC/ibex/blob/6d09fb10608a144e5ec4bb1e37c4b16eca601ae0/rtl/ibex_ex_block.sv#L115-L151

I'll leave @ivanmgribeiro to mention if there's any other issues, but just to clarify my above comment, I was confused about the different Quartus SV support in the documentation:

Quartus Pro supports SystemVerilog 2005 and 2009 (Compiler document section 1.9)
Quartus Standard supports SystemVerilog 2005 (Compiler document section 3.2)

That means a baseline of SV2005 for most Intel FPGAs.

how about this:
`ifdef QUARTUS
`define GEN generate
`define ENDGEN endgenerate
`else
`define GEN
`define ENDGEN
`endif

...........................
`GEN
if (1) begin : crash
fubar inst(.clk, .rst, .in, .out);
end
`ENDGEN

Another thing which may be of note, although this doesn't seem to affect compilation in any way, is that
https://github.com/lowRISC/ibex/blob/6d09fb10608a144e5ec4bb1e37c4b16eca601ae0/rtl/ibex_register_file_ff.sv#L19
gets brought up as a warning because the word "synthesis" is the first word in the comment, and per this help page, it seems quartus will try to read whatever comes next in the comment as a synthesis attribute, and it then throws a warning about the unrecognized synthesis attributes "or", "Verilator" and "simulation".

So the story here is:

Quartus Standard is a unmaintained product (like ISE was when Vivado came out)?
The academic and professional community can work around that by using Synplify for synthesis.
The hobbyist community typically cannot really work around it, with the Lite (== free as in beer) version being based on the Standard version.

To really decide if we should go for a style guide change, an exception/workaround in ibex, or for "it's simply not supported", we really need to answer the question "What would need to change in our style guide to go back to SV2005?" It's at least generate + localparam in ANSI port lists, but there might be more. Maybe we should have a design using all features in our style guide which can be synthesized and used to sanity-check the tool ...
@ivanmgribeiro would you be OK with applying local patches for now to get you unblocked, and I'm trying to find time to drive the style guide discussion in the next ~ 2 weeks?

Quartus Standard is maintained - new products like Cyclone 10 use it.  Quartus Pro is a new rewrite targeting large FPGAs - I would expect Quartus Standard to remain the software for small/cheap FPGAs.
Synplify is not an option for those who don't have a Synopsys licence for it - for commercial purposes that's likely to be very expensive (I'd guess a 6+ figure sum), and for academic purposes it's only available if your institution is a member of a licensing club (for Europractice in the EU it's minimum EUR720 per year).  While Quartus has some support for external tools, it is also not common to  use Synplify for external synthesis (I've never seen a project using it).
A torture test sounds like a good idea.  It would additionally help looking for regressions with new versions of the tools.

@tmarkettos "Quartus Standard is maintained": So you'd expect the parser to be updated to something more recent than SV2005?

So the story here is:
* Quartus Standard is a unmaintained product (like ISE was when Vivado came out)?

* The academic and professional community can work around that by using Synplify for synthesis.

* The hobbyist community typically cannot really work around it, with the Lite (== free as in beer) version being based on the Standard version.

To really decide if we should go for a style guide change, an exception/workaround in ibex, or for "it's simply not supported", we really need to answer the question "What would need to change in our style guide to go back to SV2005?" It's at least generate + localparam in ANSI port lists, but there might be more. Maybe we should have a design using all features in our style guide which can be synthesized and used to sanity-check the tool ...
@ivanmgribeiro would you be OK with applying local patches for now to get you unblocked, and I'm trying to find time to drive the style guide discussion in the next ~ 2 weeks?

Yes this is OK. Thanks for taking the time to do this.

@imphil @tmarkettos From what I have seen Quartus Standard is maintained in terms of minor library updates and bugfixes and not really synthesizer updates (here are release notes for the most recent version). I wouldn't expect Intel to improve on SV support on this Quartus variant any time soon.

I totally agree with keeping current coding style, as I consider required changes rather ugly.
What do you think about making a branch quartus with required changes for generate blocks after merging #336? We could add info in readme for all those wanting to test Ibex with Quartus.
I can provide patches and support in terms of updating and testing, so that the branch doesn't stale.

For reference I pushed required changes in quartus_generate branch.

It appears the SystemVerilog in Quartus Standard 18.1 is unhappy with the generate statements. 19.1 Pro supports it.
I can confirm that 19.1 Lite does not compile without explicit generate ... endgenerate and genvar.

Closing until things move on the Intel side. Summary of the discussion so far:
Quartus Lite and Standard are (apparently) not developed any further and don't have sufficient SystemVerilog support to compile Ibex. While we are willing to work around some tool deficiencies, the workarounds required for Quartus Lite/Standard contradict our style guide and we agreed that these workarounds are not acceptable in our code base. Quartus Lite/Standard can therefore not be used to synthesize Ibex. A full discussion of problems features is available in this issue, in PR #336, and at https://marekpikula.github.io/quartus-sv-gotchas/Intel Quartus SystemVerilog gotchas.html.
There are a couple workarounds:

Users are encouraged to either lobby Intel for better tool support
Use different FPGAs

7-series+ Xilinx FPGAs, as Vivado works well with Ibex.
Higher-end Intel FPGAs which are supported by Quartus Pro should work with Ibex

A third-party synthesis tool, e.g. Synopsys Synplify, can be used.
Tools like sv2v can pre-process the Ibex RTL code down to simpler Verilog, which can then be used in Quartus Lite/Standard. We highly encourage to run a LEC tool on the converted code to ensure the conversion process didn't change the design.

You can also use this free tool:
https://github.com/nbdd0121/sv-elaborator.git
written by our own Gary Guo, which was developed to overcome a similar problem.


Generator i18n

Better Support for i18n in gii Generator

@joshuatam would you please explain what are you trying to achieve with it?

Originally, the modelClass parameter will be replaced with a simple string (e.g. Activities) as the model, even i18n is checked in gii:
$this->title = Yii::t('app', 'Create {modelClass}', [
    'modelClass' => 'Activities',
]);

It is quite troublesome as we have to update that string like the following in many files generated (admin.php, create.php, etc):
$this->title = Yii::t('app', 'Create {modelClass}', [
    'modelClass' => Yii::t('app', 'Activities'),
]);

Normally, 'Activities' should have its translation, right?

Hmm... I think it should generate
$this->title = Yii::t('app', 'Create activities');

because in many languages it's hard to get correct translation by translating these two seprately.

because in many languages it's hard to get correct translation by translating these two seprately.

:+1:

How about:
$this->title = Yii::t('app', 'Create') . ' ' . Yii::t('app', 'Activities');

@joshuatam even worse, the whole string has to be translated at once. e.g. German translation for Create Activity would be Aktivität erstellen.

@cebe In this case, if we can have this format:
$this->title = Yii::t('app', 'Create {modelClass}', [
    'modelClass' => Yii::t('app', 'Activities'),
]);

and what we get in messages.php for German:
'Create {modelClass}' => '{modelClass} erstellen',
'Activities' => 'Aktivität',

and that for English:
'Create {modelClass}' => 'Create {modelClass}',
'Activities' => 'Activities',

In Russian it's a bit more complicated.
Create News is Создать новость while News could be Новости or Новость depending on the context so this placeholder is a bad idea, I think.

@samdark Why? I think the placeholder is still valid in Russian:
$this->title = Yii::t('app', 'Create {modelClass}', [
    'modelClass' => Yii::t('app', 'News'),
]);

message.php
return [
    'Create {modelClass}' => 'Create {modelClass}',
    'News' => 'Новости', // OR 'Новость' depending on the context
];

Unfortunately it's not.

But if there are different contexts, should he change like this?
$this->title = Yii::t('app', 'Create {modelClass}', [
    'modelClass' => Yii::t('app', 'News for Context 1'),
]);

'News for Context 1' => 'Новости',

And my pull request is mainly focus on replacing VarDumper::export

I mean in this exact case it's only one context and correct string is Создать новость. But News alone will be most probably translated as Новости. First of all, it's plural unlike in the sentence with "Create". Second, it starts with capital Н which is incorrect in a sentence.

best example:
Создать Пользователя => Create User
1 Пользователь => 1 User
Много Пользователей => Many Users
Привязать к Пользователю => Assign to User

@samdark Sorry that I don't know about Russian Grammar, in my opinion I prefer to keep original placeholder {modelClass}, and make it translatable be default.
In real case, if I use gii to generate hundreds of CRUD, there will have many 'Create {modelClass}'```` in every create.php, and I can only translate the values of modelClassand use only **one** translation for'Create {modelClass}'````, which is something like 'Create {modelClass}' => 'Создать {modelClass}' in Russian.

@joshuatam yes, I understand that for many languages having these unified noun translations is a pro in terms of translation workload but for many it's a blocker i.e. inablity to adequately translate strings at all.

Changes Unknown when pulling c5df958c34d58e1ff73b99bb74de5b5ff425262b on joshuatam:master into ** on yiisoft:master**.


tests: add tests for kubernetes upgrades

Document a way how to test this driver after kubernetes upgrades for both host and tenant clusters. If possible, consider implementing automated e2e tests.

here is a draft of a potential workflow:

use kubermatic-installer local kind, it's possible to control the master/seed version with nodeimage in kind-config

image: kindest/node:v1.28.0@sha256:b7a4cad12c197af3ba43202d3efe03246b3f0793f162afb40a33c923952d5b31

configure update versions in KubermaticConfiguration CR

    versions:
      default: 1.27.3
      updates:
      - from: 1.27.*
        to: 1.28.1
      versions:
      - 1.27.3
      - 1.28.1

provision PVs in the kubevirt user-cluster and observe logs in user-cluster kubevirt-csi-driver/kubevirt-csi-driver-operator


Default heartbeat interval

Is your feature request related to a problem? Please describe.
For some reason, my ABB Terra AC had 3600 s set as a heartbeat interval. Which in practice resulted in charger being not connected to HA after HA restart (update, for example).
Describe the solution you'd like
Would be great to have the heartbeat interval checked on start and set to some reasonable value if it is too large. It doesn't have to be configuration option (to keep them lower), but could be just set in the code to 5-10 minutes.
Adding as an option would improve user awareness. But maybe that can be done when options can be changed after install.

My recollection is setting the heartbeat to a default value was removed at some point due to incompatibility with some chargers setting it.
With websockets the heartbeat is only used for time synchronisation.

My recollection is setting the heartbeat to a default value was removed at some point due to incompatibility with some chargers when setting it.

OK, then maybe I should just use external automation and set it on boot using OCPP configure service.
For ABB, it seems to me, heartbeat is something that is used to reboot/reconnect the charger is the connection has been broken due to HA reboot.

For others who may have the similar issue, here is a fix:
Add automation that would be triggered by ABB Version Firmware change. That's happening on boot. In automation, set up delay of 5 minutes or so and after that set heartbeat to the value that you want. Example config below:
alias: Set ABB charger heartbeat on boot
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.abb_charger_version_firmware
condition: []
action:
  - delay:
      hours: 0
      minutes: 5
      seconds: 0
      milliseconds: 0
  - action: ocpp.configure
    metadata: {}
    data:
      ocpp_key: HeartbeatInterval
      value: 300
mode: single

Closing it here.


Modernize the icon badges and progress for OS, use JavaFX?

https://github.com/mzmine/mzmine3/blob/master/src/main/java/io/github/mzmine/gui/DesktopSetup.java
Was removed for now. Use JavaFX in future?
The purpose is to manage the badges on the app icon (e.g. on macOS, you can see the number of remaining tasks in the task controller, and also the progress of processing). It also sets the handler for the About function in the system menu, which is what all apps have on macOS. Not sure about the exact behavior on Windows. I could not find pure JavaFX equivalents of these functions.

Hi @robinschmid
I want to work on this could you please assign this task to me?


Update homepage

What was the feature/problem?
{Please write here}
How does this PR address the above feature/problem?
{Please write here}
Check lists (check x in [ ] of list items)

[ ] Test passed
[ ] Coding style (indentation, etc)

Additional Comments (if any)
{Please write here}

Codecov Report

Merging #25 into develop will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop      #25   +/-   ##
========================================
  Coverage    65.38%   65.38%
========================================
  Files            6        6
  Lines          130      130
  Branches        13       13
========================================
  Hits            85       85
  Misses          37       37
  Partials         8        8

Flag
Coverage Δ

#api
65.38% <ø> (ø)
:arrow_up:

#ui
100% <ø> (ø)
:arrow_up:

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 3ffbf4a...0dd516b. Read the comment docs.


Add support for Proprel

Not planning to do so anytime soon even for the 2.0, if people want to tackle it, a first try was done in #88.


Light-weighted-formatting-done

I got the chance to spend some time with the data given by Microsoft for the challenge. The baseline models actually load the data all in one go and convert it into CNTK Text Format (CTF) and feed to the CNN model.
I tried to convert the data to csv and then converted into feather (you will see the time difference it causes in the notebook itself) as I am more comfortable working with that. (This is not an excuse, just a fact!) I hope it helps you guys as well.  I have planned to train a similar CNN model (as given in the baseline) with this data including CLR and mixed precision policy.

@jtdutta1 int8 changed to int32 and low_memory is set to True to facilitate further speed.


lambdatest-upload 1.0.1

What to do if the build fails?
At the moment contributors do not have access to the CI workflow triggered by StepLib PRs. In case of a failed build, we ask for your patience. Maintainers of Bitrise Steplib will sort it out for you or inform you if any further action is needed.
New Pull Request Checklist
Please mark the points which you did / accept.

[ ] I will not move an already shared step version's tag to another commit
[ ] I read the Step Development Guideline
[ ] I have a test for my Step, which can be run with bitrise run test (in the step's repository)
[ ] I did run bitrise run audit-this-step (in the step's repository - note, if you don't have this workflow in your bitrise.yml, you can copy it from the step template.)
[ ] I read and accept the Abandoned Step policy

@tothszabi We have made few changes to the older version. Please review this PR. Thankyou

Hey @rohithmone!
Thanks for adding changes to your step, please read my review remark.

Made the respective changes @mateherber


Missing results for models trained on SBD

Dear authors,
Thanks for your great work! It's very inspiring!
I am currently comparing with SOTA interactive image segmentation methods. Could you let me know where can I get the missing entries in the following table?

Thank you in advance!
Best,
Qin

Sorry that we do not have the time and resources to train it. If you are interested, you could train it by yourself using our codebase.

Thanks for your kind reply!
Yes, I just wanted to know if you happened to record those missing numbers before retraining.
Thanks for letting us know. We are planning to retrain the SBD models once we get time.


Question: should we introduce pandas_datareader in pandas-input.md?

In this section of the pandas-input.md chapter we go over how to use the API methods from pandas.io to read in data from FRED, IMF, and others.
That code has been deprecated in pandas for some time and users are told to use the pandas_datareader package.
Eventually the deprecated code will be deleted altogether from pandas and we'll be forced to use pandas_datareader to read in the data.
I think the obvious answer is that we should use the currently suggested method here instead of the deprecated routines, but this brings up the issue of using conda to install a package that doesn't come with Anaconda -- something we haven't talked about at this point in the book.
What do people think? Should we take the time to talk about pip and conda before this section (maybe at the start of this lecture in our discussion on packages) so we can use pandas_datareader?

Related to this:
We need to go through and change all of the import pandas.io.data as web to the new correct imports from pandas-datareader.

Addressed by https://github.com/NYUDataBootcamp/Book/pull/22#pullrequestreview-5888600


warnings as error again

Turn warnings-as-errors back on for all the core F# projects.  This got lost somewhere along the way

Annoying unrelated test failures. Ugh
Failed   TypeProvider.Disposal.SmokeTest1

and a few similar

OK I updated this to FSharpBuild.Directory.Build.props. It seems to build
I unfortunately can't enable all warnings-as-errors because some projects generate Nuget warnings.  I guess we could use F# OtherFlags but I'll do it like this for now

Dodgy test:
Failed   FSharp.Core.UnitTests.FSharp_Core.Microsoft_FSharp_Control.CancellationType.AwaitTaskCancellationAfterAsyncTokenCancellation


mknod: remove parsemode.rs

This file was entirely unused, so it's probably safe to remove it.

Good catch :)


Does MXNET support to train on multi CPU cluster ?

Issue #185 has same question, but looks like it is not resolved.  Link pointed to in the tracker is broken:
https://mxnet.readthedocs.org/en/latest/distributed_training.html
However, I see a similar article at:
http://newdocs.readthedocs.io/en/latest/distributed_training.html
Following this, I created an AWS EC2 cluster of t2.micro CPUs using the deeplearning.template (modified to create cluster of t2.micro CPUs).
However, I see the following issue when trying to run distributed training:
Traceback (most recent call last):
  File "train_mnist.py", line 153, in <module>
    train_model.fit(args, net, get_iterator(data_shape))
  File "/home/ec2-user/src/mxnet/example/image-classification/train_model.py", line 104, in fit
    epoch_end_callback = checkpoint)
  File "/usr/local/lib/python2.7/site-packages/mxnet-0.7.0-py2.7.egg/mxnet/model.py", line 787, in fit
    sym_gen=self.sym_gen)
  File "/usr/local/lib/python2.7/site-packages/mxnet-0.7.0-py2.7.egg/mxnet/model.py", line 202, in _train_multi_device
    update_on_kvstore=update_on_kvstore)
  File "/usr/local/lib/python2.7/site-packages/mxnet-0.7.0-py2.7.egg/mxnet/model.py", line 80, in _initialize_kvstore
    kvstore.init(idx, arg_params[param_names[idx]])
  File "/usr/local/lib/python2.7/site-packages/mxnet-0.7.0-py2.7.egg/mxnet/kvstore.py", line 100, in init
    self.handle, mx_uint(len(ckeys)), ckeys, cvals))
  File "/usr/local/lib/python2.7/site-packages/mxnet-0.7.0-py2.7.egg/mxnet/base.py", line 77, in check_call
    raise MXNetError(py_str(_LIB.MXGetLastError()))
mxnet.base.MXNetError: [18:15:03] src/storage/storage.cc:38: Check failed: e == cudaSuccess || e == cudaErrorCudartUnloading CUDA: no CUDA-capable device is detected

Steps to Reproduce:

Create a Cloud/Stack on AWS EC2 using CPU only instances using the deeplearning.template
cd ~/src/mxnet/example/image-classification
../../tools/launch.py -n 2 -H hosts-orig python train_mnist.py --kv-store dist_sync

It seems that MXNET is looking for a GPU, whenever distributed training is attempted.
Can anyone please confirm, if distributed training on multiple CPUs is supported at all using MXNET.
Thanks !!

@zhenlinluo

Actually, MXNet supports training on multi CPU cluster. (We tried two months ago on mnist.) To my knowledge, MXNet will look for CPUs if GPUs is not set. You can found these codes in model.py (line 455 current version).
I think you encountered this bug because your MXNet is complied with USE_CUDA = 1 in config.mk (line 47 current version).  In this case, MXNet will check GPU and CUDA first.
By the way,  your MXNet (0.7) and  train_mnist.py are out of date. Please update them to latest version.

@qiyuangong Thanks for the reply.
I have actually been trying out multiple AWS AMIs (on Amazon Linux), both from community AMIs and the ones that I made, after installing MXNET with latest source code from GitHub, using installation steps provided on the website. The one I posted above is from the deeplearning.template which is linked from the mxnet repository.
When I installed MXNET from scratch on AWS CPU instance (t2.micro/t2.medium) with Amazon Linux, it is not even starting the training at all. (Nothing being printed) when the following command is launched:
../../tools/launch.py -n 2 -H hosts python train_mnist.py --kv-store dist_sync
Also, while installing, I made sure that USE_CUDA=0 and also USE_DIST_KVSTORE=1 (used for distributed training). In fact, I have used the script at $MXNET_HOME/setup-utils/install-mxnet-amz-linux.sh
Following are the options being populated into my config.mk from my installation script:
echo "USE_CUDA=0" >>config.mk
echo "USE_CUDNN=0" >>config.mk
echo "USE_BLAS=openblas" >>config.mk
echo "USE_DIST_KVSTORE=1" >>config.mk
echo "ADD_CFLAGS += -I/usr/include/openblas" >>config.mk
echo "ADD_LDFLAGS += -lopencv_core -lopencv_imgproc -lopencv_imgcodecs" >>config.mk
When you said that you tried out distributed training on multi CPU cluster using MXNET, can you please share more details like --

What kind of nodes you used? If AWS instances, what type of instances?
Did you use Amazon Linux or Ubuntu as OS ?
Any specific version of MXNET ? or the latest one available?

Since I have been using the standard installation script for AWS Linux, I am not sure, what could probably be going wrong now. With the training not even starting or no log being printed, I am not sure how to debug even. Please help.

please use latest mxnet master + https://github.com/dmlc/mxnet/issues/5094#issuecomment-281579526
tested multi-node training on AMZ

@sampathchanda
May be it gets stuck when downloading data file (22 MB). This url is always unreachable in my env. I suggest download data files and load locally in train_mnist.py (need to modify this script).
Here are the details about our env:

**Ubuntu 16.04 or Centos 7 **. Personally, I suggest Ubuntu nodes on VMs (you can launch multiple nodes with Virtual Box, which is free).
Client with Python and MXNet installed, and MXNet source code in $HOME$. So we can use launch.py to submit tasks.
SSH no login is configured for remote nodes. (I am not sure if this step is necessary)
MXNet is not necessary on remote nodes when using --sync-dst-dir, but the dependencies are necessary. Because you can sync mxnet/python/mxnet (python interface)  and libmxnet.so to remote nodes. Check it in Run MXNet on Multiple CPU/GPUs with Data Parallel.
New a dir (e.g., /tmp/mxnet) on remote nodes, if you want to use --sync-dst-dir.
We put all data files in single dir ($Home$/train_mnist) like this:
-----__init__.py (empty)
------mxnet (from mxnet/python/mxnet)
---------libmxnet.so (build from src)
------train_mnist.py
------hosts
------common (from example/image-classification/common)
------symbols (from example/image-classification/symbols)
------date files (t10k-images.......)
We use the following cmd:
../mxnet/tools/launch.py -n 2 -H hosts --sync-dst-dir /tmp/mxnet python train_mnist.py --kv-store dist_sync

In this case, MXNet will sync the train_mnist dir (with data files) to all remote nodes (/tmp/mxnet). Then launch the training command.
Your command is also valid, but you need to install MXNet on each node, and make sure your network is fine (for both client and nodes).

@qiyuangong Thanks for providing me with your configuration details and steps.
Installation of MXNET with Ubuntu 16.04 is giving an internal g++ compiler error. However, with Ubuntu 14.04 on AWS instances, am able to install and run MXNET on multi CPU cluster environment.


File Loader Stop Working

Everything was going good, But suddenly file loader stops work.
Any impact doesn't show on images using in css and html.
Here's Code (webpack.config.js)
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

var path = require("path");
const webpack = require('webpack');

module.exports = {
  entry: {
    common: './src/js/common.js',
    app: ['bootstrap-loader','./src/js/app.js']
  },
  output: {
    path: path.resolve(__dirname,'dist'),
    filename: '[name].bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          {
            loader: MiniCssExtractPlugin.loader,
            options: {
              publicPath: './css'
            }
          },
          'css-loader'
        ]
      },
      {
        test: /\.scss$/,
          use: [
            {
              loader: MiniCssExtractPlugin.loader,
              options: {
                publicPath: './css'
              }
            },
            {
              loader: 'css-loader',
              options: { autoprefixer: false, sourceMap: true, importLoaders: 1 }
            },
            'postcss-loader',
            'sass-loader',
          ]
      },
      {
        test: /\.(png|jp(e*)g|gif)$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: '[name].[ext]',
              outputPath: 'images/'
            }
          },
          {
            loader: 'url-loader',
            options: {
              limit: 8192
            }
          }
        ]
      },
      {
        test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
        use: [{
          loader: 'file-loader',
            options: {
                name: '[name].[ext]',
                outputPath: 'fonts/'
            }
          }]
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      title: 'YoKart Readymade Sports Themes HTML',
      hash: false,
      filename: 'index.html',
      template: './src/index.html',
      meta: {viewport: 'width=device-width, initial-scale=1, shrink-to-fit=no'}
    }),
    new MiniCssExtractPlugin({
      filename: '[name].bundle.css'
    }),
    new webpack.ProvidePlugin({
      $: "jquery",
      jQuery: "jquery",
      "window.jQuery": "jquery",
      Tether: "tether",
      "window.Tether": "tether",
      Popper: ['popper.js', 'default'],
      Alert: "exports-loader?Alert!bootstrap/js/dist/alert",
      Button: "exports-loader?Button!bootstrap/js/dist/button",
      Carousel: "exports-loader?Carousel!bootstrap/js/dist/carousel",
      Collapse: "exports-loader?Collapse!bootstrap/js/dist/collapse",
      Dropdown: "exports-loader?Dropdown!bootstrap/js/dist/dropdown",
      Modal: "exports-loader?Modal!bootstrap/js/dist/modal",
      Popover: "exports-loader?Popover!bootstrap/js/dist/popover",
      Scrollspy: "exports-loader?Scrollspy!bootstrap/js/dist/scrollspy",
      Tab: "exports-loader?Tab!bootstrap/js/dist/tab",
      Tooltip: "exports-loader?Tooltip!bootstrap/js/dist/tooltip",
      Util: "exports-loader?Util!bootstrap/js/dist/util",
    })
  ]
}

Please suggest solution.

@manishankar08 you use invalid configuration, please use oneOf instead use

@manishankar08 yes

I came across the same situation, this occur because the default behavior is to consider that your styles are inside a embed tag

I came across the same situation, the solution is make use of public path, like:
options: {
  output: 'images/',
  **publicPath**: '../'
},

and inside the css files, you can call like:
background-image: url("/src/images/background.jpg");
Don't even need setup the url-loader for this behavior.

I came across the same situation, the solution is make use of public path, like:
options: {
  output: 'images/',
  publicPath: '../'
},

and inside the css files, you can call like:
background-image: url("/src/images/background.jpg");
Don't even need setup the url-loader for this behavior.

I came across the same situation, the solution is make use of public path, like:
options: {
  output: 'images/',
  publicPath: '../'
},

and inside the css files, you can call like:
background-image: url("/src/images/background.jpg");
Don't even need setup the url-loader for this behavior.


firebase login

what the heck does this mean?
Error: Cannot run login in non-interactive mode. See login:ci to generate a token for use in non-interactive environments.

Seems like this is a firebase issue and not necessarily related to this repo?
https://github.com/firebase/firebase-tools/issues/77

firebase login:ci --interactive
this is the solution


Fix links to the example notebooks

thanks @jviereck , just sending this to be built now (sorry for the delay, our build system does not build external PRs).

Current coverage is 99.40% (diff: 100%)

Merging #215 into master will not change coverage

@@             master       #215   diff @@
==========================================
  Files            23         23
  Lines          1685       1685
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           1675       1675
  Misses           10         10
  Partials          0          0

Powered by Codecov. Last update f6d57d0...9c313b5

Thanks again @jviereck

Thank you for proving this infrastructure <3 :)

merges via #221


Consider using rnpm in installation instructions

Hey @mikemonteith, awesome that you released this!
Just wanted to ping you that there's a tool that makes it very easy for people to add your module to their apps: https://github.com/rnpm/rnpm
It would simplify the installation instructions in the README.
I looked on Twitter but couldn't find your handle so pinging you here, feel free to close this issue :)

Thanks a lot as well @mikemonteith !
It's even easier now. We can type react-native link and it does everything for you. It's worth adding to README imho.


ExtractCSS to a single named file

Version
v2.4.1
Reproduction link
https://codesandbox.io/s/wqwo31xz9l
Steps to reproduce
Just use this inside the build property
    extractCSS: true,

    optimization: {
      splitChunks: {
        cacheGroups: {
          styles: {
            name: "styles",
            test: /\.(css|vue)$/,
            chunks: "all",
            enforce: true
          }
        }
      }
    },

    filenames: {
      app: "[name].js?id=[chunkhash]",
      chunk: "[name]_vendor.js?id=[chunkhash]",
      css: "[name].css?id=[contenthash]"
    }

What is expected ?
To extract all css to a single file and a certain name.
What is actually happening?
Cannot find module 'pages/index_vendor.js?id=a263682744874cd3572a' from '/sandbox'
Additional comments?
The goal is to always have a certain filename for my app and css with question mark hash to reload the file when updating. (This is the Laravel Mix default as well)

This bug report is available on Nuxt community (#c8591)

Related: https://github.com/nuxt/nuxt.js/issues/3387, https://github.com/nuxt/nuxt.js/pull/4073

Duplicate of #5006


Avoid fail fetch when apiKey not defined

Add apiKey parameter to MapboxLayer
Add apiKey parameter to Mapbox Map
Warning in console when apiKey is missing
Do not required apiKey parameter when it is set to false.

Others

[x] It's not a hack or at least an unauthorized hack :).
[ ] The images added are optimized.
[x] Everything in ticket description has been fixed.
[x] The author of the MR has made its own review before assigning the reviewer.
[x] The title means something for a human being.
[x] The title contains [WIP] if it's necessary.
[ ] Labels applied. if it's a release? a hotfix?
[x] The new class' members & methods are well documented
[x] Tests added.

@mhaertwig  Are you sure you want this ?   It blocks the possibility to have an external mapbox layer as layer.

@mhaertwig  Are you sure you want this ?   It blocks the possibility to have an external mapbox layer as layer.

Thanks for the observations! I updated the code.

Thanks for the observations! I updated the code.

Some more use cases to manage

All use cases mentioned are taken into account :+1:

Some more use cases to manage

All use cases mentioned are taken into account :+1:


ES6/Readability Rework

Overview
After wanting to add features to Gravebot for my own personal use, I found it quite difficult to add features and manage code as nothing was standardize. This PR aims to fix all of that.
As Gravebot is getting a great amount of recognition from the Discord team and Reddit, I thought it would be best to throw in a pull request instead of launching a brand new fork.
Technical Details
This PR does the following:

Adds ES6 everywhere with the help of Babel
Split data constants in to their own folder
Split commands in to their own folder
Dynamically import all commands
Standardize code with eslint config
Fix travis tests
Drop multiline and querystring modules
Convert config.json in to config.js so it can contain notes for easier setup
Major code cleanup, removing variables that were never used, shortening depth of objects, refactoring for less lines, ect.
Error message sent if a service config isn't setup (e.g. Youtube, Imgflip)
Fixed functions that would of broken if used
Cleaned up README

To get in to a bit more details. Using a standardized eslint config (semistandard with minor tweaks), everything has been converted to es6. The application itself uses babel-node to start, which is included in the node modules folder and added to package.json, so no extra work is needed to run the bot, just npm start. With eslint working, your Travis tests are now actually testing for something. Down the road Mocha tests for each command would look MUCH better, but that's for another day.
As part of a cleanup, all the data such as quotes and eightball have been moved in to the data folder and all sorted alphabetically to make it easier to read. Large commands and commands that are similar (like server related) are in their own folder within /lib. With this, adding new commands is simply dropping in a new file in to the libs and making sure it exports as an object containing all the commands (see /lib/server.js). This will make contributing much much easier.
That's about it! If it isn't to your liking of course, that's just fine! I'll spin it up as a fork instead.
Thanks.
EDIT:
Added an appveyor config so those tests now work too.

Hey, thanks a lot for all of the work you did! It's my first project with Node.js, so I do not yet know a lot about standards and all of the features of ES (I know that one file is the worst way to go, just wasn't sure of the best way of tackling that problem). Not sure why they chose my bot to be honest, it's only a learning project, but now I have more reasons to improve. Thanks again, will go ahead and test it on Discord now.

Seems like it got popular, don't say no man! :D
Thanks for accepting me and adding me to the project. We should have a chat, hit me up on Discord (Zalik) or Gitter (dustinblackman) when you get a chance. :)


InteractiveViewer.builder

This PR adds a .builder constructor to InteractiveViewer, similar to ListView.builder.
InteractiveViewer(
  builder: (BuildContext context, Rect viewport) {
    // Build the child based on the viewport.
    // E.g. maybe only render the visible parts of the child?
  },
),

Closes https://github.com/flutter/flutter/issues/58603
Potential fix for https://github.com/flutter/flutter/issues/49109
Why not just use a Builder as the child of InteractiveViewer?
The main value added by the builder constructor approach is the pre-calculated viewport Rect parameter.  It's possible but fairly difficult to calculate this without access to the private state and methods of the InteractiveViewer instance.
Example
This example shows building a Table whose cell content only renders for visible cells.  In the screenshot, off-screen cells are empty until they are panned onto the screen.

Code
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';

class IVBuilderPage extends StatefulWidget {
  const IVBuilderPage({ Key key }) : super(key: key);

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

class _IVBuilderPageState extends State<IVBuilderPage> {
  final TransformationController _transformationController = TransformationController();

  static const double _cellWidth = 200.0;
  static const double _cellHeight = 26.0;

  // Returns true iff the given cell is currently visible. Caches viewport
  // calculations.
  Rect _cachedViewport;
  int _firstVisibleColumn;
  int _firstVisibleRow;
  int _lastVisibleColumn;
  int _lastVisibleRow;
  bool _isCellVisible(int row, int column, Rect viewport) {
    if (viewport != _cachedViewport) {
      _cachedViewport = viewport;
      _firstVisibleRow = (viewport.top / _cellHeight).floor();
      _firstVisibleColumn = (viewport.left / _cellWidth).floor();
      _lastVisibleRow = (viewport.bottom / _cellHeight).floor();
      _lastVisibleColumn = (viewport.right / _cellWidth).floor();
    }
    return row >= _firstVisibleRow && row <= _lastVisibleRow
        && column >= _firstVisibleColumn && column <= _lastVisibleColumn;
  }

  void _onChangeTransformation() {
    setState(() {});
  }

  @override
  void initState() {
    super.initState();
    _transformationController.addListener(_onChangeTransformation);
  }

  @override
  void dispose() {
    _transformationController.removeListener(_onChangeTransformation);
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('IV Builder'),
        actions: <Widget>[
        ],
      ),
      body: Center(
        child: LayoutBuilder(
          builder: (BuildContext context, BoxConstraints constraints) {
            return InteractiveViewer.builder(
              alignPanAxis: true,
              scaleEnabled: false,
              constrained: false,
              transformationController: _transformationController,
              builder: (BuildContext context, Rect viewport) {
                // This is a quick widget I wrote to generate a Table
                return TableBuilder(
                  rowCount: 60,
                  columnCount: 6,
                  cellWidth: _cellWidth,
                  builder: (BuildContext context, int row, int column) {
                    if (!_isCellVisible(row, column, viewport)) {
                      return Container(height: _cellHeight);
                    }
                    return Container(
                      height: _cellHeight,
                      color: row % 2 + column % 2 == 1 ? Colors.white : Colors.grey.withOpacity(0.1),
                      child: Align(
                        alignment: Alignment.centerLeft,
                        child: Text('$row x $column'),
                      ),
                    );
                  }
                );
              },
            );
          },
        ),
      ),
    );
  }
}

@goderbauer Ready for re-review.  I'm using this in my talk and it seems to work well.

@goderbauer FYI I changed the builder to take a Quad instead of a Rect so that it can support rotated viewports in the future.


[Bug] Can't selecting brushes after play mode

RealtimeCSG 1.312
Unity 5.4.2f1
Reproduction steps:
1.Open new scene
2.Make a brush
3.Click play button and then click stop button
4.Select the brush
I got error messages, when I made a brush after play mode.
Error message
NullReferenceException: Object reference not set to an instance of an object
RealtimeCSG.CSGSceneManager.GetParentData (RealtimeCSG.ChildNodeData childNode) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/Managers/CSGSceneManager.cs:270)
RealtimeCSG.CSGSceneManager.RegisterBrush (RealtimeCSG.CSGBrush brush) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/Managers/CSGSceneManager.cs:1076)
RealtimeCSG.CSGSceneManager.OnHierarchyModified () (at Assets/Plugins/RealtimeCSG/Editor/Scripts/Managers/CSGSceneManager.cs:2587)
RealtimeCSG.CSGSceneManager.Refresh (Boolean forceHierarchyUpdate) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/Managers/CSGSceneManager.cs:2369)
RealtimeCSG.BaseShapeGenerator.UpdateExtrudedShape (Single height, Boolean registerUndo) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushTools/Generators/GeneratorBase.cs:659)
RealtimeCSG.BaseShapeGenerator.HandleHeightHandles () (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushTools/Generators/GeneratorBase.cs:1081)
RealtimeCSG.BoxGenerator.HandleEditVerticesEvents () (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushTools/Generators/BoxGenerator.cs:827)
RealtimeCSG.BaseShapeGenerator.HandleEvents () (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushTools/Generators/GeneratorBase.cs:818)
RealtimeCSG.BoxGenerator.RealtimeCSG.IBrushGenerator.HandleEvents ()
RealtimeCSG.GenerateBrushTool.HandleEvents () (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushTools/GenerateBrushTool.cs:185)
RealtimeCSG.CSGBrushEditorManager.OnSceneGUI (UnityEditor.SceneView sceneView) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushEditorManager/CSGBrushEditorManager.cs:631)
RealtimeCSG.UnitySceneEventHandler.OnScene (UnityEditor.SceneView sceneView) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/Managers/UnitySceneEventHandler.cs:860)
UnityEditor.SceneView.CallOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:2046)
UnityEditor.SceneView.HandleSelectionAndOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1381)
UnityEditor.SceneView.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1218)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)

Warning message
GetModelByIndex(modelIndex) == nullptr

bool __cdecl SetBrushMesh(const int,int,const struct Vector3 *const ,int,const int *const ,const int *const ,int,const struct RealtimeCSG::PolygonInput *const ) (at C:\Projects\Prenominal\UnityCSG\EditorPlugin\unity\unity_csg_brush.cpp:493)
UnityEngine.Debug:LogWarning(Object, Object)
RealtimeCSG.CSGBindings:<RegisterUnityMethods>m__2(String, Int32) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/Bindings/CSGBindings.cs:73)
RealtimeCSG.CSGBindings:SetBrushMesh(Int32, Int32, Vector3[], Int32, Int32[], Int32[], Int32, PolygonInput[])
RealtimeCSG.CSGSceneManager:SetBrushMesh(CSGBrush) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/Managers/CSGSceneManager.cs:1223)
RealtimeCSG.CSGSceneManager:CheckSurfaceModifications(CSGBrush, Boolean) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/Managers/CSGSceneManager.cs:2101)
RealtimeCSG.CSGSceneManager:ValidateBrush(CSGBrush, Boolean) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/Managers/CSGSceneManager.cs:2144)
RealtimeCSG.BoxGenerator:CreateControlMeshForBrushIndex(CSGModel, CSGBrush, ShapePolygon, Single, ControlMesh&, Shape&) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushTools/Generators/BoxGenerator.cs:266)
RealtimeCSG.BaseShapeGenerator:UpdateExtrudedShape(Single, Boolean) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushTools/Generators/GeneratorBase.cs:606)
RealtimeCSG.BaseShapeGenerator:HandleHeightHandles() (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushTools/Generators/GeneratorBase.cs:1081)
RealtimeCSG.BoxGenerator:HandleEditVerticesEvents() (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushTools/Generators/BoxGenerator.cs:827)
RealtimeCSG.BaseShapeGenerator:HandleEvents() (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushTools/Generators/GeneratorBase.cs:818)
RealtimeCSG.BoxGenerator:RealtimeCSG.IBrushGenerator.HandleEvents()
RealtimeCSG.GenerateBrushTool:HandleEvents() (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushTools/GenerateBrushTool.cs:185)
RealtimeCSG.CSGBrushEditorManager:OnSceneGUI(SceneView) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/EditorWindows/BrushEditorManager/CSGBrushEditorManager.cs:631)
RealtimeCSG.UnitySceneEventHandler:OnScene(SceneView) (at Assets/Plugins/RealtimeCSG/Editor/Scripts/Managers/UnitySceneEventHandler.cs:860)
UnityEditor.DockArea:OnGUI()

Oh that's weird, I'll investigate

I haven't been able to reproduce this .. hmm
Is there any additional information you can give me?
Does this happen to you every time? Or just that once? Or sometimes?

It's strange.. the problem happens every time. I have updated to the latest version of RealtimeCSG 1.314, but still happening it.
I record the video.
https://youtu.be/9r4E1TOO_2Y

Hmm .. ok, that's odd
so ... in this project, you haven't installed any other plugins besides realtime-CSG?

My project installed only realtimeCSG, it's very pure.
I found another information. I can select a brush When I click the brush immediately after back from play mode. Conversely, if I wait about 1~2 seconds and click a brush after back from play mode, I can't select the brush.

Ok, I still can't repeat it, even after waiting a bit after pressing play. :-/
Can you try one thing? Could you delete your plugins folder in your project (while Unity is closed) and reinstall Realtime-CSG?

I tried reinstall some version of RealtimeCSG with your method, and I noticed new fact. The problem happens version 1.308 or later. I hope this information help you :)

I managed to reproduce this in Unity 5.4.2 .. problem doesn't exist in 5.3.5 apparently?

related to #96 and #109

This is fixed in 1.328!
You can download it at the update site https://prenominal.nl/updates/
Once this version is available from the asset store, I'll close this ticket


Improve the public C API

I'd like to see a few additional functions in the public C API:

[ ] Support passing everything that can be set in YAML from code

[ ] a way to define complex types using the public C API
[ ] a new PDI_typed_share() function that takes a type in addition to the data

[ ] Add new features for sharing

[ ] functions to change the lock level of some already shared data

In GitLab by @ksiero on Oct 18, 2019, 13:28
What is the reason for sharing function pointers?
This can be done by passing a pointer to function pointer. Please see: https://wandbox.org/permlink/Ww6m0L8mKuOBYa9h
Is this related with some other feature?

Yes, but we currently don't support function pointer in Datatype

Also see #76

Also see #35

marked the checklist item a way to define complex types in the YAML and reference them later as completed

unassigned @ksiero


Revert "Remove rummager integration"

Reverts alphagov/publisher#640
I'm temporarily rolling this back as I found a bug with unpublishing.
2017-09-06T09:57:05.595Z 31960 TID-ou3hnf6uc GovukIndex::PublishingEventWorker JID-d8ac7d27ec85a81707860edf INFO: guide.major -> INDEX /hello-world-2-testing-sometimes-fails edition
2017-09-06T09:57:05.643Z 31960 TID-ou3hnf6uc GovukIndex::PublishingEventWorker JID-d8ac7d27ec85a81707860edf INFO: done: 0.049 sec
2017-09-06T09:57:35.390Z 31960 TID-ou3hnf698 GovukIndex::PublishingEventWorker JID-b2189eff18e075a5fef15099 INFO: start
2017-09-06T09:57:35.394Z 31960 TID-ou3hnf698 GovukIndex::PublishingEventWorker JID-b2189eff18e075a5fef15099 INFO: redirect.unpublish -> SKIPPED /hello-world-2-testing-sometimes-fails edition

https://github.com/alphagov/rummager/blob/master/lib/govuk_index/publishing_event_worker.rb#L52

Closing as we're just going to fix the rummager bug.


Only show create account section in alert email when the feature is enabled

Fixing a bad thing

Review app deployed to https://teaching-vacancies-review-pr-2584.london.cloudapps.digital

Review app deployed to https://teaching-vacancies-review-pr-2584.london.cloudapps.digital


sync data from mysql to es "illegal_argument_exception" 400

status: 400, error: {"type":"illegal_argument_exception","reason":"Rejecting mapping update to [user] as the final mapping would have more than 1 type: [package, user]"}
so,what does this mean?

@mahone2080
Elastcsearch 6.x does not support multiple types in one index.
You may need to use 5.x or older version.

the type name should also not be conflict with the other.


Update Open Source License

Added some links to some license choose sites and an overview of open source licenses.

@rbakels thanks!


Wrapper Markdown component was not rendered on build

Describe the bug
I tried to build my blog after upgrading Vite from v2 using pnpm run build but it failed.
Dependencies:

Package
Version

vite
^4.0.0

vite-plugin-md
^0.22.0

@vitejs/plugin-vue (source)
^2.3.4 -> ^4.0.0

PR: https://github.com/ansidev/blog/pull/159
Broken URL: https://deploy-preview-159--ansidev.netlify.app/posts/2022-12-12-how-to-remove-screenshot-border-option-in-mac-os
Reproduction
https://github.com/ansidev/blog/tree/renovate/vitejs-plugin-vue-4.x
System Info
System:
    OS: macOS 12.6.1
    CPU: (8) x64 Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
    Memory: 43.55 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.18.1 - ~/.nvm/versions/node/v16.18.1/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 9.2.0 - ~/Library/pnpm/npm
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 108.0.5359.98
    Edge: 108.0.1462.46
    Firefox: 107.0.1
    Firefox Developer Edition: 108.0
    Safari: 16.1

Used Package Manager
pnpm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

Update:
It seems that this package is not compatible with @vitejs/plugin-vue v4
PR: https://github.com/ansidev/blog/pull/159
Error reproduction URL: https://deploy-preview-159--ansidev.netlify.app/posts/2022-12-12-how-to-remove-screenshot-border-option-in-mac-os

@ansidev can you try again with Release 0.22.1. It may still exist as a bug but I think it would be better for you to test. Please close if it is fixed.

@ansidev can you try again with Release 0.22.1. It may still exist as a bug but I think it would be better for you to test. Please close if it is fixed.

I have updated the PR, the bug is still there.


proposal: nicer generic type syntax

I think something like sync.Map[string]linked.List string is more readable than sync.Map[string, linked.List[string]].
I propose putting the last type parameter to a generic type after the square brackets and omitting them when there is only one type parameter.

This isn't anything near a concrete proposal and the syntax has been discussed countless times on the mailing lists. I'm going to close this.

Should I suggest this on the mailing list instead?

Yes, golang nuts please


Auto comment generation project - model training loop crash

Trying to train a model in an automatic comment generation project, the training loop throws an exception.
This error has occured with 3 combinations of python/tensorflow versions, which I note below as (1), (2) and (3), as well as on both a conda env in Powershell and in the WSL Ubuntu command line.
It also happens on 2 different machines, both with the official (https://github.com/tech-srl/code2seq) and unofficial (https://github.com/Kolkir/code2seq) versions of the project.
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Not sure if the project devs did, I assume not.
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10 x64, Ubuntu 20.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 1.12 (1), 2.8.0 (2), 2.8.0 (3)
Python version: 3.6.5 (1), 3.9.7 (2), 3.8.10 (3)
Bazel version (if compiling from source): N/A
GCC/Compiler version (if compiling from source): N/A
CUDA/cuDNN version: N/A
GPU model and memory: RTX 2080 SUPER 8GB, but N/A

Describe the current behavior
Running the training loop with bash train.sh both in Powershell (conda) and Ubuntu WSL command line :
Traceback (most recent call last):
  File "C:\Users\gbaulard\Anaconda3\lib\site-packages\tensorflow\python\module\module.py", line 407, in _flatten_module
    leaves = nest.flatten_with_tuple_paths(
  File "C:\Users\gbaulard\Anaconda3\lib\site-packages\tensorflow\python\util\nest.py", line 1698, in flatten_with_tuple_paths
    flatten(structure, expand_composites=expand_composites)))
  File "C:\Users\gbaulard\Anaconda3\lib\site-packages\tensorflow\python\util\nest.py", line 451, in flatten
    return _pywrap_utils.Flatten(structure, expand_composites)
TypeError: '<' not supported between instances of 'WhileBodyFuncGraph' and 'FuncGraph'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\gbaulard\Documents\GitHub\code2seq\code2seq.py", line 29, in <module>
    model.train()
  File "C:\Users\gbaulard\Documents\GitHub\code2seq\modelrunner.py", line 129, in train
    gradients = tape.gradient(loss, self.model.trainable_variables)
  File "C:\Users\gbaulard\Anaconda3\lib\site-packages\tensorflow\python\module\module.py", line 171, in trainable_variables
    return tuple(
  File "C:\Users\gbaulard\Anaconda3\lib\site-packages\tensorflow\python\module\module.py", line 449, in _flatten_module
    for subvalue in subvalues:
  File "C:\Users\gbaulard\Anaconda3\lib\site-packages\tensorflow\python\module\module.py", line 449, in _flatten_module
    for subvalue in subvalues:
  File "C:\Users\gbaulard\Anaconda3\lib\site-packages\tensorflow\python\module\module.py", line 449, in _flatten_module
    for subvalue in subvalues:
  File "C:\Users\gbaulard\Anaconda3\lib\site-packages\tensorflow\python\module\module.py", line 410, in _flatten_module
    six.raise_from(
  File "<string>", line 3, in raise_from
ValueError: Error processing property '_dropout_mask_cache' of <ContextValueCache at 0x17309fd0df0>

Code snippet being triggered in module.py of tensorflow :
try:
      leaves = nest.flatten_with_tuple_paths(
          prop, expand_composites=expand_composites)
    except Exception as cause:  # pylint: disable=broad-except
      six.raise_from(
          ValueError(
              "Error processing property {!r} of {!r}".format(key, prop)),
          cause)

Describe the expected behavior
The traning loop should terminate without errors.
Standalone code to reproduce the issue
Best I can do is give the project git:

https://github.com/tech-srl/code2seq (official version, tensorflow 1.12)
https://github.com/Kolkir/code2seq (unofficial version, tensorflow 2.8.0)

@gbaulard
In order to expedite the trouble-shooting process, please provide a code snippet to reproduce the issue reported here. Thanks!

Here's a link the minimal amount of files to launch the training : https://we.tl/t-lrwIEVS9Dw
Run this in a terminal at the root with python 3.6+, tensorflow 2.1+ installed.
python -u code2seq.py --data data/java-small/java-small --test data/java-small/java-small.val.c2s --save_path models/java-small-model/model

@gbaulard
Could you please  open this issue in TF discussion forum as there is a larger community  to get you the right help.
Thanks!

I've got the same error, have you fixed it? @gbaulard


Missing Girl cum type options

Fruit Girl Cum actually has 3 options: apple, pear and lemon.

Welp, looks like it's not saved and completely random every time...
RandomInCollection(["fizzy citrus", "juicy pear", "sweet apple"])


Incremental compilation: strange compilation time

I've tried to launch runandlogs with 1 incremental compilation: 2,8 seconds for the first, 2.9 seconds for the second, of course it was not that fast ;)
So we have to test and fix this compilation mode

we are completely rewriting it, so I'm closing this issue


Multi day events disappear

I have multiple events and one multi day event. This multi day event renders at first, but after some milliseconds it disappears again.

This only happens when I set the weekStartOn property to a non-default value, e.g. 1. With the default value the event stays visible.
This does not work:
<Scheduler
  view={"week"}
  selectedDate={new Date(selectedDateIso)}
  week={{
    weekStartOn: 1,
    weekDays: [0, 1, 2, 3, 4, 5],
    startHour: 0,
    endHour: 24,
    step: 60,
  }}
  events={scheduleEvents}

Works:
<Scheduler
  view={"week"}
  selectedDate={new Date(selectedDateIso)}
  week={{
    weekStartOn: 6,
    weekDays: [0, 1, 2, 3, 4, 5],
    startHour: 0,
    endHour: 24,
    step: 60,
  }}
  events={scheduleEvents}

I'm not quite sure that I've replicated that exact case 100%, but it might be solved in #393
If not, please provide me with the minimum sample of your events array (start/end dates only)
The PR merge will auto-close this issue, feel free to reopen if it's still there

Thank you very much. I'll give it a try.


missing concat() documentation

Saying "don't use concat()" is not a function documentation. It could be added as additional hint, but not replace docs. Especially that interpolation is not supported for multi-line strings and has to be replaced with... concat? (or join)
check-mate.

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

ID: a36b1f58-7fc9-7d2f-108d-0a5c7c0c7c67
Version Independent ID: d295ee04-80c5-ba43-54d0-4594c2baa78d
Content: Bicep functions - string - Azure Resource Manager
Content Source: articles/azure-resource-manager/bicep/bicep-functions-string.md
Service: azure-resource-manager
Sub-service: bicep
GitHub Login: @mumian
Microsoft Alias: jgao

@bartekmo
Thanks for your feedback! We will investigate and update as appropriate.

@bartekmo - thank you for your comments.  I have created a PR with some additional information.  The article will be updated EOD today.
#please-close


Added clarification about template tags to tutorial

Addresses #1775.
Replaced .. code:: with .. code-block::, for sweet, sweet syntax highlighting.
I've also reduced the whitespace on a couple of the 'bare html' images, so less scrolling is required.

While you're fixing .. code:: to .. code-block::, there are a few more:
$ ack-grep 'code *::' docs/
docs/reference/contrib/forms.rst
15:.. code:: python
25:.. code:: python
58:.. code:: html

docs/reference/contrib/staticsitegen.rst
15:.. code::
21:.. code:: python
31:.. code:: python
59:.. code:: python
74:.. code:: html+Django
97:.. code:: python

mmm, syntax highlighting. Thanks, @JoshBarr!

I fixed all .. code:: uses to be .. code-block::s instead over in #1782


Avoid in the "sum" solution to export seneca

Currently the "sum" solution needs seneca to be exported:
var seneca = require('seneca')()
seneca.add({role: 'math', cmd: 'sum'}, function (msg, respond) {
  var sum = msg.left + msg.right
  respond(null, {answer: sum})
})
module.exports = seneca

This is needed because the seneca-sum-executor requires it and in that way it has the same seneca on which call "act" to verify the solution.
We should find another way of testing the solution to avoid that, since it can be confusing (even if in the exercise text is specified the purpose of the export).

Is it still relevant @marcopiraccini ?

Yes! :)

Closing, not good alternative found....


Is it possible to change the looping points of animations?

What is your question?
My friend has a character that has some really nice smooth animations, and they look really nice on single notes, but sustain notes make it loop the entire animation and it looks terrible that way, is it possible to make the animation loop at the last 2 frames so that it looks decent?

*-loop animations exist.
You can make for example singLEFT-loop, this animation type will be triggered once singLEFT (the original animation) is ended.