Debug SPFx Web Server returns 400 Bad Request when ASP.net Core Web Server is used as well

Category

[ ] Question
[ ] Typo
[X] Bug
[ ] Additional article idea

Expected or Desired Behavior
When debugging SPFx web parts and extensions locally, the web server that is used for gulp serve returns the requested files.
Observed Behavior
The SPFx Web Server does not return the requested files but instead delivers an HTTP 400 error. This seems to be due to ASP.net Core cookies that are sent to the SPFx Web Server due to the fact that on the development environment the web server that is hosting the Web Part as well as two Web Servers that are hosting the ASP.net Core Web Service are all accessible through https://localhost (but with different ports). The cookies for the ASP.net Core Web Services are also sent to the SPFx Web Server and cause the issue, because after deleting all cookies for "localhost", the Web Part loads for one request only. After that, the ASP.net Core applications have set its cookies for authentication and the SPFx Web Server returns "Bad Request".
If only one of the Web Services is running, everything works (as the cookie size is smaller). If both Web Services are running, the cookie size doubles (due to two authentication tokens) and the SPFx Web Server crashes.
Steps to Reproduce

Create two ASP.net Core Web API Project that use Azure AD authentication
Create SPFx Web Part or Extension
Authenticate to both ASP.net Core Web APIs from the Web Part/Extension using an iFrame (see https://spblog.net/post/2018/07/26/call-azure-ad-secured-api-from-your-spfx-code-story-1-1-azure-web-app-with-asp-net-core-2-x-and-cookie-authentication-xhr-with-credentials)
Make sure that the ASP.net applications use different cookie names, so that they do not overwrite each other
Web Part will not load after the authentication cookies have been set

I think you're misunderstanding what gulp serve is don't... it's not creating a "SPFx Web Server".
That command simply starts up a Node.js based web server that serves static files... there's nothing dynamic going on... it just responds to HTTP GET requests. It's not going to process any auth requests or cookies.
Your scenario isn't clear from your post... maybe explain more what you're trying to do to provide more context would help...

I understand what happens behind the scenes and that it is only serves static content. Nonetheless, I think the term "SPFx Web Server" is appropriate, as it is a static web server that does host SPFx related files.
I try to explain the scenario and the issue again:
Our scenario is that we have to develop a custom application for a customer using SharePoint 2019. The application uses SPFx Web Parts for the front end and has two different Web Services in the back end. These Web Services are individual ASP.net Core solutions. When we debug all components together, we have three web servers running on our local dev machines using different ports: the Node.js based web server for the SPFx Web Parts and the two ASP.net Core Web Services (running in IIS Express).
The Web Services both uses Azure AD Authentication and - since SPFx 1.4 does not support Azure AD authentication as it does later on - we have to use the iframe workaround mentioned above: a hidden ìframetries to load an Web Page in the ASP.net Core project, is redirected to Azure for authentication and gets the cookie after successful login (this is successful, because the SharePoint uses Azure authentication as well). At the end, we have two sets of authentication cookies for "localhost" as each Web Service has their own authentication (to avoid collisions, the cookie name has to be changed in both ASP.net Core Web Service so that both Web Services do not use the default cookie name and override each other). When the SharePoint page with the SPFx Web Part loads for the first time, the resources of the Web Part load correctly, the SPFx Web Part is rendered correctly, the authentication works, two sets of authentication cookies are stored for "localhost" and the Web Services are invoked. When the site is reloaded, there already exist cookies for "localhost" and they are sent to the Node.js web server when the browser requests the files for the Web Part. Unfortunately, the Node.js web server does only respond with a HTTP 400 result (based on the network tab in the browser). The log output of the runninggulp serve` process also does not show this request.
When the cookies for localhost are deleted before the request, everything starts to work again for a single refresh of the page.

Can you clarify this?

When the site is reloaded, there already exist cookies for "localhost" and they are sent to the Node.js web server when the browser requests the files for the Web Part. Unfortunately, the Node.js web server does only respond with a HTTP 400 result

What does "reload" mean? Because at the bottom you say when you refresh the page, it will work. So what the process of reloading, is this the reloading of your gulp server?
The 400 definitely sounds like it is related to the cookie. Such as a cookie mix-match, duplicate cookie, or invalid cookie.
Can you confirm that the cookies are being passed correctly? e.g, the cookie that was used to send to WebServer/Port A the first time, is the same cookie being sent the second time you make the request? I also assume you are using only 1 session at a time?

What does "reload" mean? Because at the bottom you say when you refresh the page, it will work. So what the process of reloading, is this the reloading of your gulp server?

With reload/refresh I mean a refresh in the browser (either F5 or CTRL+F5). It starts to work when the cookies are deleted before this refresh.
I will investigate the other points tomorrow when I am back at work.

we have to use the iframe workaround mentioned above: a hidden iframe tries to load an Web Page in the ASP.net Core project, is redirected to Azure for authentication and gets the cookie after successful login (this is successful, because the SharePoint uses Azure authentication as well). At the end, we have two sets of authentication cookies for "localhost" as each Web Service has their own authentication (to avoid collisions, the cookie name has to be changed in both ASP.net Core Web Service so that both Web Services do not use the default cookie name and override each other).

This sounds suspiciously unlike an oAuth2 compliant handshake. You should not be taking any cookies and placing them anywhere.

Just a short sign of life - I have not forgotten the issue but my plan for this week has been changed. I hope that I can check the cookie issue on Friday.

I was able to investigate the issue a bit further (after we had a very similar issue in a Non-SharePoint project) and the root cause is a security patch in Node that was done in November of last year (see https://github.com/nodejs/node/commit/186035243fad247e3955fa0c202987cae99e82db). This patch limits the maximum header size to 8kb. As the ASP.net cookies with Azure Authentication are pretty big, this can cause the issue very quickly on development systems.
A workaround for development purposes is switch to b2clogin (see https://docs.microsoft.com/de-de/azure/active-directory-b2c/b2clogin; did not work for me) or use a different (dummy) user that might have a smaller token (worked for me).
So from my point of view this is an underlying issue with node.js and not specific to SPFx.


docs: remove documentation mismatch in resources name

Fixes
Currently the resource names do not match between the file resources/README.md and v2010/README.md. This PR fixes this problem.
Checklist

[x] I acknowledge that all my contributions will be made under the project's license

Fixed by https://github.com/twilio/terraform-provider-twilio/pull/111


I have error "Error: error:unpr Unknown Provide"

Hi, I connect the directive analogue to how it's described in your Readme, but I get [Angular Error] (https://docs.angularjs.org/error/$injector/unpr?p0=aProvider <- a <- ngScrollbarsDirective) .
What am I doing wrong?
Thanks.

Hi Artem, thanks for the issue.
Unfortunately, I haven't encountered that issue yet. Are there no other errors? Are you sure you injected the ngScrollbars module in your app (e.g. var app = angular.module('app', ['ngScrollbars']))?
I just created a new project and made it very simple, maybe you could see if this particular version works for you: http://minhongrails.github.io/ng-scrollbars/demo1.html (just view the source directly or go to https://github.com/minhongrails/ng-scrollbars/tree/gh-pages to see the github code on the branch).
Otherwise, the normal demo is available at http://minhongrails.github.io/ng-scrollbars/
Any other info you could provide would help a lot because I'm not sure how to reproduce your issue

Unable to reproduce. Please re-open if you still have this issue and can provide more details


cant download video's that require login.

for some Youtube video's you need to be login in order to view them.
it seems that these fail to download.
awesome tool. keep it up!

Yes, those videos cannot be downloaded with this app.


Export dialog layout out of boundary.

Godot version:
ce3f3a9f82545b71a819c32e2c134a55d9d564f2　（Laster master）
OS/device including version:
Ubuntu 16.04 64bit
Issue description:
When select a template item in left list, right area layout out of boundary.
Steps to reproduce:
Client menu "Project" -> "Export" to open export dialog, and add a export template to test.
Minimal reproduction project:
None.

It looks like the label showing errors at the bottom doesn't wrap, which means if the path + message is too long to fit the screen, the whole dialog will also be pushed to be larger than the screen.

@Zylann Could you tell me how to make Label wrap? I use 'minimum_size_changed' to update Export Dialog size to fix this, is it right?

@Zylann I set error label to autowap in export dialog according to your advice, layout still break in some case when dialog scaled. So minimum_size_changed() function need to update current dialog size when click a preset item. PR updated.

Fixed by #24203.


Unexpected Jailing of Multiple Validators on Apr 13

Summary of Bug
On April 13th, at 21:45:07, our validator (nibivalcons1elaj26jpnt0vzg2q53ggdmfzle9mskus3pufpq) was unexpectedly jailed along with two other validators. This incident is surprising because our records and monitoring tools indicated active participation up to block 5029202. Our validator could not have been jailed for downtime as per the Nibiru slashing window is 17500 / 35000 (50%), and yet the jailing occurred.
Nibid version
commit: 1ba22a79e36e7ed77e2e4503e72bfbbe5c609aa8
cosmos_sdk_version: v0.47.10
go: go version go1.21.5 linux/amd64
name: nibiru
server_name: nibid
version: 1.2.0

Below are the logs indicating our validator's participation up to the 5029202 block:

Following are the system logs capturing the jailing events for all three validators at the same time.:
Apr 13 21:45:07 RAM-NIBIRU nibid[110961]: 9:45PM INF validator jailed module=x/staking validator=nibivalcons12udeyt65x5qm972t0v28u5hy9j5ymfje3kzdcr
Apr 13 21:45:07 RAM-NIBIRU nibid[110961]: 9:45PM INF validator jailed module=x/staking validator=nibivalcons1xqvp5mhnz8e4fvwwmq0trd0370pep4uh0ru8m9
Apr 13 21:45:07 RAM-NIBIRU nibid[110961]: 9:45PM INF validator jailed module=x/staking validator=nibivalcons1elaj26jpnt0vzg2q53ggdmfzle9mskus3pufpq

Jail reason
We have also verified that the jailing was due to missing 5 blocks. However, according to the slashing policy and our participation logs, this jail does not seem to be justified. Our records show active participation until block 5029202. Only after block 5029203 our validator stop participating.
nibid query slashing signing-info $(nibid tendermint show-validator)
address: nibivalcons1elaj26jpnt0vzg2q53ggdmfzle9mskus3pufpq
index_offset: "1606259"
jailed_until: "1970-01-01T00:00:00Z"
missed_blocks_counter: "5"
start_height: "3422938"
tombstoned: false

A screenshot from our Grafana dashboard showing the uptime of our validator for the last 24 hours. The sharp drop coincides with a time when our validator was unexpectedly jailed, despite consistently high uptime before that.

Summary
We’d appreciate any info or tips from the Nibiru team on what caused this and how we can avoid it in the future, as there may be a potential discrepancy or issue in the network or jailing logic.
Best Regards,
The F5 Nodes team

Hi @redwest88 ,
Are you running an oracle?

Hi @k-yang,
Yes, our pricefeeder account is nibi1d8xgp3pqkm7vvqtusj9myw7asddfarnd7knf2p


DataView deserialization fails at enchantments

I have this code: https://gist.github.com/randombyte-developer/f9d0ecc09cccd56ed081acac23423477
It takes the item the player is holding and serializes it:

toContainer()
DataTranslators.CONFIGURATION_NODE.translate()
ConfigurationLoader#save()

The debug output for a Smite V book is:
{
  "ContentVersion": 1,
  "ItemType": "minecraft:enchanted_book",
  "Count": 1,
  "UnsafeDamage": 0,
  "UnsafeData": {
    "StoredEnchantments": [
      {
        "lvl": "5",
        "id": "17"
      }
    ]
  }
}

The deserialization:

ConfigurationLoader#load()
DataTranslators.CONFIGURATION_NODE.translate()
Sponge.getDataManager().deserialize()

The item given to the player should be the same he is holding. But the deserialization of the enchantment data doesn't work properly: The player gets a book with Protection 0 regardless of the original enchantment.
Forum topic(screenshots and more explanation).

This problem can be solved by using HoconConfigurationLoader instead of GsonConfigurationLoader: Forum post.
Since the recommended config format is Hocon, is this still regarded as an issue?

Once merged, you should use the JSON data format to serialize/deserialize to JSON.

@randombyte-developer Would you mind giving the JSON data format a try now that it is merged?

I'll test it soon.

@Minecrell Am I supposed to do DataFormats.JSON.write(container) and write that string as the value of the config node? Doing it this way works but doesn't look the same as before.
Example:
Before:
test-node = {
    "ItemType":"minecraft:cookie"
    ...
}

Now:
test-node = "{
    \"ItemType\":\"minecraft:cookie\"
    ...
}"

I am just asking to confirm I am doing it the correct way.

I'm having the same problem.
When I use ItemStack.equalTo() between the source object and the one created after a serialize/deserialize they do not match.
This is a problem when using Inventory.query() to poll items using an ItemStack created from DB.
(Using Inventory.query() with ItemType doesn't do the trick because "too permissive")

@randombyte-developer You should only use the JSON data format if you want to serialize data entirely to JSON. The configurate translator exists when you want to write data into the configuration.

I've tested it with this code and it works correctly (I get the same enchanted book again):
@Plugin(id = "testdeserialization")
public class TestDeserialization {

    @Listener
    public void onPlayer(SendCommandEvent event, @Root Player player) throws IOException {
        doStuff(player);
    }

    public static void doStuff(Player player) throws IOException {
        // serialize
        DataView container1 = player.getItemInHand(HandTypes.MAIN_HAND).get().toContainer();
        String data = DataFormats.JSON.write(container1);
        System.out.println(data);

        // deserialize
        DataView container2 = DataFormats.JSON.read(data);
        ItemStack itemStack = Sponge.getDataManager().deserialize(ItemStack.class, container2).get();

        player.getInventory().offer(itemStack);
    }
}

Tested on latest SV 1.12 (bleeding branch).

Tested the same with DataFormats.HOCON (uses the configurate translator internally) and it works too.

@Minecrell ok, the JSON data format did work for me but I wanted to ask if I'm doing it correctly. Thanks.


Can't use this client side in React App

I think the issue is it trying to do something with the filesystem but I didn't really look into the code.
To solve this, I just hosted the API is a nodejs lambda function and hit that from clientside.

I don't think this would be possible even if using a different library that supported browsers. The APIs Jagex expose do not allow CORS so browsers would just block the request. You'd need to use a server as a proxy still.

Makes complete sense. I think it might be useful to add somewhere in the documentation that it can only be used server-side.

I've gone ahead and added that to the introduction section. Great point that I somehow missed including in the v2 rewrite.

I have a passion project where I'm actually doing exactly what you mentioned.
This might open the door to either update this package to consume these new endpoints, or a separate library set all together that is focused on usage within React and other frameworks if demand is there.
Repo is https://github.com/pqt/myosrs and a sample endpoint is https://myosrs.app/api/player/Paqt, it does not have CORS yet itself but it will eventually.


Publish on crates.io

We should consider publishing this crate on crates.io, based on the preferred way of using the compiled binary

We've decided not to publish it on crates.io. It will be distributed through github releases


can: socketcan: enable blocking writes for socketcan

By default, SocketCAN interfaces have a txqueue length of 10 frames. If
no buffers are available, writes to the interface returns ENOBUFS
immediately, without blocking. See this thread and others on the
socketcan lists for some background:
http://socket-can.996257.n3.nabble.com/Solving-ENOBUFS-returned-by-write-td2886.html
Our current SocketCAN interface detects the ENOBUFS error and retries
the transmission with a 10 ms delay. This is quite inefficient because
the queue often runs empty while we wait, and as a result our CAN speeds
are much lower than wire speed.
This patch lowers the CAN socket send buffer to the minimum allowed
value (2048), to ensure that the transmissions are blocked at socket
level and not dropped by the interface.
My testing shows a transfer speed increase of 2.5x - 5x in FTP transfers.
Signed-off-by: Jeppe Ledet-Pedersen<EMAIL_ADDRESS>

Correct me if I'm wrong, but I think that changing only the socket option -without changing the retry logic- would achieve the transfer speed gains you mention.
That would be the "best-case" scenario, ie. no ENOBUFS. My worry is that, in a less than ideal scenario, a temporal ENOBUFS would abort the transmission of the whole packet. Without changing the retry logic this was graciously handled, instead.
To tell you the truth, I think I cannot fully grasp the linked discussion, but this raises my eyebrows:

The above described situation is not the only way how can an application get ENOBUFS, (...)

In fact, I think that the 10ms backoff and 1000 retries limit could be improved (maybe the maximum-retry-timeout should be the one the application code passes as csp_send's timeout, instead of 1000*10ms), but I think this is a different issue.
Just my two cents.

I've tried this PR with this simple example program. By running:
$ ./test_can_speed server &
$ time ./test_can_speed client

on a dev PC with two usb2cans connected as can0&can1 I actually see a performance regression when applying this patch ("real" time as reported by time):
76d3f18d6f7c6f3e78397372f8e23379f4a86528 (current master):   ~10 seconds
e1478eb23b83f891fa06c200a038825b2e90179c (socketcan-block):  ~18 seconds

I have found that the best performance is achieved by increasing the number of TX buffers. Here's my little can-init script:
#!/bin/sh
sudo ip link set dev can0 down
sudo ip link set dev can0 up type can bitrate 1000000 restart-ms 100
sudo ip link set dev can0 txqueuelen 100
restart-ms is also very important in order to handle bus errors.
On the spaceinventor branch i have enabled this by default in the socketcan driver (using libsocketcan).


Add hyper-ramda Theme

Checklist for submitting an awesome plugin, theme, or resource:

[x] The title for my package or theme uses its npm title (hyper-plugin-example)
[x] The link for my package or theme uses the npmjs.com link (https://www.npmjs.com/package/hyper-plugin-example)
[x] There is a visual representation of what my plugin or theme does in the repo. (Plugin: screenshot or gif || Theme: screenshot of the theme applied to Hyper)
[x] Put your awesome item at the BOTTOM of the correct (plugin, theme, or resource) list.
[x] VERY IMPORTANT: I've written a short (one sentence) description for my package or theme as the description of the awesome plugin, theme, or resource in the README.md file I'm submitting in the PR.

A Theme based on the RamdaJS REPL
NPM: https://www.npmjs.com/package/hyper-ramda
Git: https://github.com/ntwcklng/hyper-ramda

Thanks!


Add reduce option to hinge loss

This PR adds reduce option to F.hinge_loss. Related to #2558

LGTM


Update the doc and improve the context when writing data

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@c3190b2). Click here to learn what that means.
The diff coverage is n/a.

Additional details and impacted files

@@           Coverage Diff           @@
##             main      #23   +/-   ##
=======================================
  Coverage        ?   81.81%
=======================================
  Files           ?       36
  Lines           ?     2738
  Branches        ?        0
=======================================
  Hits            ?     2240
  Misses          ?      387
  Partials        ?      111


Using EventHubs Release 3.0.0 RegisterEventProcessorAsync does not start

Actual Behavior

Using Microsoft.Azure.EventHubs.Processor 3.0.0 and Microsoft.Azure.EventHubs 3.0.0 the EventProcesorHost does not start and the process hangs. I launch the program normally usingRegisterEventProcessorFactoryAsync to inject some properties but have also tested RegisterEventProcessorAsync to no avail.

Expected Behavior

Reverting back to  2.2.1 the EventProcesorHost works normally so the RegisterEventProcessorAsync starts as per normal.

Versions

OS platform and version:
.NET Version: 2.2.101
NuGet package version or commit ID: https://www.nuget.org/packages/Microsoft.Azure.EventHubs/3.0.0 https://www.nuget.org/packages/Microsoft.Azure.EventHubs.Processor/3.0.0

namespace Service
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args).Build();

            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Information()
                .Enrich.FromLogContext()
                .WriteTo.Console()
                .CreateLogger();

            host.Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .ConfigureLogging(logging =>
                {
                    logging.ClearProviders();
                    logging.AddConsole();
                });
    }
}

namespace Service
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            services.AddSingleton<IHostedService, EventProcessorHostService>();
        }

        public void Configure(IApplicationBuilder app, Microsoft.AspNetCore.Hosting.IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }
            app.UseMvc();
        }
    }
}

namespace Service.Controllers
{
    class EventProcessorHostService : IHostedService
    {
        public static Microsoft.Azure.EventHubs.Processor.EventProcessorHost _eventProcessorHost { get; set; }
        public static EventProcessorOptions _processorOptions { get; set; }
        public IConfiguration Configuration { get; }

        public EventProcessorHostService(IConfiguration configuration)
        {
            Configuration = configuration;
        }
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            Configuration.GetSection("EventHub");

            Log.Information("Registering EventProcessor...");
            _eventProcessorHost = SetEventHubClient.CreateClient();
            _processorOptions = SetEventHubClient.SetProcessorOptions();

            await _eventProcessorHost.RegisterEventProcessorAsync<EventProcessor>();
        }

        public Task StopAsync(CancellationToken cancellationToken)
        {
            _eventProcessorHost.UnregisterEventProcessorAsync();
            return Task.CompletedTask;
        }
    }
}

namespace Service.Controllers
{
    public class EventProcessor : IEventProcessor
    {
        private AmazonKinesisClient _kinesisClient { get; set; }
        private SetAwsClient _kinesisConfig { get; set; }
        private PartitionContext _context { get; set; }
        public EventProcessor()
        {
                Console.WriteLine("Enter EventProcessor");
        }
        public Task CloseAsync(PartitionContext context, CloseReason reason)
        {
            Log.Information($"Processor Shutting Down. Partition '{context.PartitionId}', Reason: '{reason}'.");
            return Task.CompletedTask;
        }

        public Task OpenAsync(PartitionContext context)
        {
            Log.Information($"EventProcessor initialized. Partition: '{context.PartitionId}'");
            return Task.CompletedTask;
        }

        public Task ProcessErrorAsync(PartitionContext context, Exception error)
        {
            Log.Information($"Error on Partition: {context.PartitionId}, Error: {error.Message}");
            return Task.CompletedTask;
        }

        public async Task ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)
        {
            var kinesisStreamName = _kinesisConfig.KinesisStreamName;
            List<Task> tasks = new List<Task>();

            foreach (var eventData in messages)
            {
                var data = Encoding.UTF8.GetString(eventData.Body.Array, eventData.Body.Offset, eventData.Body.Count);
                tasks.Add(Console.WriteLine(data));
            }
            await Task.WhenAll(tasks);

            await context.CheckpointAsync();
        }
    }
}

Non-default consumer groups should work just fine as default consumer groups do.  Are you still hitting this issue?

I have not been active on the project lately. I will try to retest with version 4.0.0

@serkantkaraca  with 4.0.0 I a custom consumer group still does not work where the processing does not start at all. Using the default consumer group it starts ok.

Can you tell me the exact repro steps with some code snippets where you initialize hosts? I cannot pinpoint the issue w/o reproducing it first.

Yeah sure not a problem. Initially I was wondering whether starting up from a singleton was the problem but the defaulconsumer group just works so am still lost why it doesn't to initialise.
My Startup.CS is like so
namespace Service
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            services.AddSingleton<IHostedService, MetricsService>();
            services.AddSingleton<IHostedService, EventProcessorHostService>();
        }

        public void Configure(IApplicationBuilder app, Microsoft.AspNetCore.Hosting.IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }
            app.UseMvc();
        }
    }
}

Setting up the EventProcessorHostService like so:
namespace Service.Controllers
{
    class EventProcessorHostService : IHostedService
    {
        public static Microsoft.Azure.EventHubs.Processor.EventProcessorHost _eventProcessorHost { get; set; }
        public static EventProcessorOptions _processorOptions { get; set; }
        public IConfiguration Configuration { get; }

        public EventProcessorHostService(IConfiguration configuration)
        {
            Configuration = configuration;
        }
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            Configuration.GetSection("EventHub");

            Log.Information("Registering EventProcessor...");
            // Setup Eventhub Client
            _eventProcessorHost = SetEventHubClient.CreateClient();
            _processorOptions = SetEventHubClient.SetProcessorOptions();
            try
            {
                await _eventProcessorHost.RegisterEventProcessorAsync<EventProcessor>();
            }
            catch (Exception error)
            {
                Log.Error($"Unable to initialise EventhubProcessor: {error}");
                throw new ApplicationException("Unable to initialise EventhubProcessor.");
            }
        }

        public Task StopAsync(CancellationToken cancellationToken)
        {
            _eventProcessorHost.UnregisterEventProcessorAsync();

            return Task.CompletedTask;
        }
    }
}

Client Creation is referred to with this:
        public static EventProcessorHost CreateClient()
        {
            var configuration = new SetEventHubClient();
            var eventProcessorHost = new EventProcessorHost(
                configuration.EventHubName,
                configuration.EventHubConsumerGroup,
                configuration.EventHubConnectionString,
                configuration.StorageConnectionString,
                configuration.StorageContainerName
            );
            return eventProcessorHost;
        }
        public static EventProcessorOptions SetProcessorOptions()
        {
            var processorOptions = new EventProcessorOptions
            {
                MaxBatchSize = 100,
                PrefetchCount = 300
            };
            return processorOptions;
        }

I finally call the EventProcessor class which never starts unless the EVENTHUBCONSUMERGROUP="DEFAULT"
public class EventProcessor : IEventProcessor
{
...
}

Yes, for both of those I do not change the StorageConnectionString or StorageContainerName. The consumer groups. I load the consumer group through environment variables as it runs on a container as below. So with version 3.0.0 and 4.0.0 it only works with DEFAULT. Maybe you mean the consumer group on azure side has some different settings? I will have to check with the team that runs the administration of the azure infrastructure.
export EVENTHUBCONSUMERGROUP="testgroup"
#export EVENTHUBCONSUMERGROUP="DEFAULT"

Can you just fire up 'testgroup' consumers? That should work fine. I think the issue is more like you are not able to consume from both consumer groups at the same time.

Unfortunately it does not seem to be the case. I am only able to consume from the consumer groups only when using 2.2.1.  Might expertiment a bit with zipkin or the like when I get time.
I've tested two different EventHubs environments and about four different consumer groups but with my project 3.0.0 or 4.0.0 don't initialise.

@serkantkaraca  I got to the bottom of it finally (have not found the code responsible in the library yet) but my finding is that if the consumer group read from event_vars is in lower case it will not work. I've modified my code to convert the strings to upper and now processing starts as per normal.
EventHubConsumerGroup = configuration.GetSection("EVENTHUBCONSUMERGROUP").Value.ToUpper();

I don't understand. How is this configuration read code making a difference between 2.2.1 and 3.0?

Most of our environments have consumer group names configured in lower cases on azure as well as lower case on the container environment variables. By chance I set it on a test run using upper casing and processing started straight away.

Can you try creating a PartitionReceiver with lowercase consumer group name and receive from it? I have tried with both lower and upper cases, both worked in my cases. Something is special in your case.

In my case I am using the EventProcessorHost that spawns multiple containers and am not setting up partition receivers manually. I can live with uppercasing the consumer group.


Make certain "option" parameters specifiable on a per-node basis

This PR implements most of the "option" group parameters we wanted to make specifiable on a per-node basis.
There were a few issues I ran into while going through the list:

The spreadsheet wasn't updated for the new scheduler-related items, but since 'jobscheduler', 'msgevent', and 'msgcontact' were all meant to be optional pernode parameters, I set pernode='optional' for the entire scheduler group for now (although I haven't touched the implementation yet -- so might have to revert this depending on if we add checks to get())
I didn't change the following items yet, since I'm not sure if it makes much sense to do so:

'skipstep' and 'indexlist' - - 'skipstep' is unused, and, if I recall correctly, we are planning to replace this entire mechanism altogether
'showtool': unsure if we want to make it per-"show step", or per-step in terms of the step name in e.g. the showflow
'copyall': seems like a global parameter - it gets checked once during the _collect_paths() call at import. We could potentially use it to affect the behavior of which paths we collect, but doing this per-node seems tough. We could do it based on the 'require' keypaths, but I'm not sure those are used consistently enough at the moment.
'show': is unused, and also meant to be a global parameter I think (whether or not show() automatically gets called at the end of the run is how I read it)

LGTM!

Rebased this on latest main, and caught a couple more things thanks to the strict mode test. Should be good for review again.


VS Code Logic Apps Extension - Cannot Access Connectors in Non-Public Clouds in the Designer

Describe the Bug with repro steps
I'm using VSCode to design a Logic App on a GCC tenant. When trying to add an Action, the list of Actions available in VSC doesn't include any Connectors, i.e. searching on "Azure Monitor", "Office", "Outlook", etc. all return no results. This behavior is in both the Logic Apps (Standard) and the Logic Apps (Consumption) Extensions.
I can add these connectors in the Logic App designer in the Azure portal. I can also right-click and deploy a Logic App successfully to the GCC tenant from VSCode, so everything seems to be wired up correctly between VSCode and the tenant. I do have AzureUSGovernment set as the Cloud in the Azure Extension settings.
Everything works as expected when trying this on an Azure Commercial tenant, so suspecting it's related to running this on a non-public Cloud.
What type of Logic App Is this happening in?
Standard (VSCode)
Are you using new designer or old designer
New Designer
Did you refer to the TSG before filing this issue? https://aka.ms/lauxtsg
No
Workflow JSON
No response
Screenshots or Videos
No response
Browser
Edge
Additional context
No response

It's fixed.   You guys rock!


Invoke-Formatter: Tab Issue

# CodeFormatting.psd1
@{
    IncludeRules = @(
        'PSPlaceOpenBrace',
        'PSPlaceCloseBrace',
        'PSUseConsistentWhitespace',
        'PSUseConsistentIndentation',
        'PSAlignAssignmentStatement'
    )

    Rules        = @{
        PSPlaceOpenBrace           = @{
            Enable             = $true
            OnSameLine         = $false
            NewLineAfter       = $true
            IgnoreOneLineBlock = $true
        }

        PSPlaceCloseBrace          = @{
            Enable             = $true
            NewLineAfter       = $true
            IgnoreOneLineBlock = $true
            NoEmptyLineBefore  = $false
        }

        PSUseConsistentIndentation = @{
            Enable          = $true
            **Kind            = 'tab'**
            IndentationSize = 4
        }

        PSUseConsistentWhitespace  = @{
            Enable         = $true
            CheckOpenBrace = $true
            CheckOpenParen = $true
            CheckOperator  = $true
            CheckSeparator = $true
        }

        PSAlignAssignmentStatement = @{
            Enable         = $true
            CheckHashtable = $true
        }
    }
}

Steps to reproduce
$Params = @{
	'AppName'		= "AppTest9001"
	'NTID'			= "TestNTID"
	'Credential'	= $Credential
	'Verbose'		= $True
}

Expected behavior
It should preserve tabs (anywhere) but in this case specifically, between the key and the equal sign
Actual behavior
It is changing out tabs for spaces between the key and equal sign.
Also, I noticed it is also did not convert some tabs to spaces. If there is only one tab between the key and equal sign, it didn't convert the tab to spaces. My guess is the tab isn't a full tab (meaning it would only be 1-3 spaces and not the full 4)
Environment data

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.15063.1155
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.15063.1155
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }

1.17.1

Anyone else running into this?

Sorry, I have not triaged this yet but I would not be surprised if what you report, is true as I remember having a similar problem last year. I will try to get back to this month

Sorry, I was quite busy, I really hope to have a look at this this month

No problem. I understand.
Thanks for the update and for looking into this.
On Mon, Nov 5, 2018, 3:53 PM Christoph Bergmeister [MVP] <
<EMAIL_ADDRESS>wrote:

Sorry, I was quite busy, I really hope to have a look at this this month
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/PowerShell/PSScriptAnalyzer/issues/1055#issuecomment-436030744,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADxtkK2QdLT1D4N6xPXaLA1LOVha7M_pks5usKVNgaJpZM4V_1dG
.

I can repro now and confirm it is a bug. Related: #769
The problem is the interference of the UseConsistentWhitespace rule around the operator. I will try to find a generic solution that tackles the underlying problem and not only this problem in the next days

Awesome. Thanks for looking into it and finding the root cause.
: )
On Mon, Nov 26, 2018, 5:30 PM Christoph Bergmeister [MVP] <
<EMAIL_ADDRESS>wrote:

I can repro now and confirm it is a bug. Related: #769
https://github.com/PowerShell/PSScriptAnalyzer/issues/769
The problem is the interference of the UseConsistentWhitespace rule
around the operator. I will try to find a generic solution that tackles the
underlying problem and not only this problem in the next days
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/PowerShell/PSScriptAnalyzer/issues/1055#issuecomment-441825339,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADxtkMWyDWwzf_7PQyw9Rg045B_JMHqVks5uzGtvgaJpZM4V_1dG
.


Bot replies "markdown" after being up for several hours

I have been struggling trying to find what's the issue with this but after the server is up for several hours the bot stops replying with an accurate response and instead keeps replying "markdown". Restart fixes the problem.

@armando-sentinel, can you provide an example of a framework.hears() handler that is behaving this way?   (BTW, it might be faster to quickly resolve your problem if you join the discussion in the Framework Discussion Space

Hi @armando-sentinel, haven't heard back from you on this so I'm going to close this issue.   Feel free to reopen with more details if you have them.


Fixing issue 552

Fix https://github.com/aneoconsulting/ArmoniK/issues/522
Fix #72

can you look at this method also ?
public IEnumerable<string> Submit(string                    methodName,                                     byte[]                    argument,                                     IServiceInvocationHandler handler)
normaly it should return a string not an IEnumrable


Image.tvec is too large

hi, @hturki .Congrats on your great work and thank you for releasing the code. I'm trying to use a custom dataset but I'm currently having some issues. I have successfully trained and inferred the eval. But there is a problem while extracting the octree. The translation vector of my dataset images is large，but the translation vectors of the datasets you provided are relatively small. This ended up causing my extraction of the octree to fail, the octree file size was only 2.89KB.

Just to make sure I have no errors while processing the dataset

run get_colmap_poses.py to get ref folder, pairs-sfm.txt, matches.h5. features.h5
Use COLMAP's model_aligner utility (https://colmap.github.io/faq.html#geo-registration) to get geo-registered-model
Use mega-nerf/scripts/colmap_to_mega_nerf.py to convert from PixSFM/COLMAP output to the format Mega-NeRF expects.

Is there something I'm missing?Why is my translation vector so large.
Thanks and wish you all the best!

Is it true to convert GPS coordinates to ecef coordinates when registering in geo

I think either ENU or ECEF would work (I forget which I personally used) and then the idea is that the script will center the poses (https://github.com/cmusatyalab/mega-nerf/blob/main/scripts/colmap_to_mega_nerf.py#L357) and you want to specify a scale parameter than will normalize your poses to [-1, 1].

@leoShen917 Hi, for your step 2 Use COLMAP's model_aligner utility (https://colmap.github.io/faq.html#geo-registration) to get geo-registered-model, what arguments you used for '--ref_images_path' or '--database_path'? And what for '--input_path'?
I got database reading error when I use '--database_path'.
Thanks!

@pengzhao-life  I also got error when I use '--database_path', so I try to use '--ref_images_path' and it works. The ref file is something you need to build manually, in the format shown below.


Charging time left is always showing whole hours

A few updates ago I noticed that charging time left always shows a whole amount of hours. This might have changed during home assistant introducing rounding etc. Is anyone else having the same problem?
Running lastest HaOS, hacs and this integration.

Skoda citigo.
Will get debug logs later if it is just me

Yep, someone reported the same problem on Discord. I also think it's related to an HA update.

If I go to developer tools / states, I can see that it has more granularity.
Current state: 00:25
Attributes:
state_class: measurement
model: Škoda CitigoE iV Style/2019-12-05
unit_of_measurement: h
assumed_state: true
device_class: duration
icon: mdi:battery-charging-100
friendly_name: Oda Charging time left

So the data is there, but it is just displayed wrong? Or are we using the incorrect device_class or something else?
As a work around, maybe it could be converted to minutes for display in my dashboard. Will have to test later when the car is charging again.

Made some progress doing research.
If unit_of_measurement is "h", the value should be hours in decimal format, like 1.5. That would show like 01:30:00. Otherwise Home Assistant will do some parsing and only use the first number. This appears to be a special handling if the unit is "h". Something else would display the whole value/state.
What is the format we get from the Skoda API?

So the API returns either seconds or minutes (depends on the vehicle). But then we convert this into a hh:mm string. I can only guess this was nice before HA introduced the concept of unit_of_measurement and device_class.
I tested with just returning the minutes as an int and changing unit_of_measurement = min. If works fine for the Entities and Mushroom Entity card but for some reason the Entity card (one entity) just shows the raw value with the unit of min ...
I guess if we change this we'd want to also update all other durations (like clima time left).

I agree, returning it as minutes would be a good option!


Fix two race conditions where an ASIO wakeup notifications can be lost

@dipinhora's commit (described immediately below) is the minimum required to fix the two race conditions that I'd found in the Pony 0.21.3 runtime that would cause occasional failures of the Wallaroo integration test suite.
Prior to this commit, there were two race conditions where an ASIO
event could be received and not result in a wake up notification
to scheduler 0. One was because scheduler 0 had not actually
suspended yet so the ASIO thread didn't send a notification at all.
The other was because scheduler thread 0 had not released the mutex
so the ASIO thread wasn't able to send a notification because it
wasn't able to acquire the mutex and didn't retry. Both would result
in hangs due to the lost wake ups.

This commit fixes things by ensuring that even after scheduler 0
decides to suspend, it does one final check of the inject queue
to see if any new work has been queued by the ASIO thread. If yes,
it doesn't suspend to prevent lost wake ups and the associated
hangs. It also changes the logic so that the ASIO thread will retry
waking up scheduler thread 0 if it is unable to acquire the mutex
until it is successful.

After Dipin's work above, I had suggested and implemented three changes:

make pop_global() more flexible to adapt to 3 callers in steal()
refactor two nearly identical pieces of steal() into a new function suspend_scheduler()
refactor two other nearly identical pieces of steal() into a new function maybe_suspend_scheduler()

Dipin gave an informal "there might be a performance regression" to my 3 review suggestions, which are also included in this branch, informal approval to number 2, and hasn't yet looked at number 3.  Reviewers are welcome to critique any/all of them.  Taken all together, they make steal() much easier to read, IMHO.
Regarding performance regression, I've seen on:

OS X: no significant degradation in examples/message-ubench with 14 different combinations of pinger actors, messages sent, and Pony runtime threads used.  OR ELSE this branch is about 5% faster, which is both nice and also not well understood.
Linux: I'm currently running more tests with examples/message-ubench on a 36 core AWS c4.8xlarge instance now.
Linux + Wallaroo: I'll try my hand at this tomorrow: @JONBRWN has been overhauling the Wallaroo performance test automation to the point where I might be able to run it myself.

@slfritchie says he's running some microbenchmarks to test the performance impact of this change before merging.
So, let's put the "don't merge" tag on this for now until his investigation is complete.

I'm pretty sure there's a race condition with a single active thread, something I've seen 3x now.

Times 1 & 2 were running ./message-ubench.slf-review-fix_dynamic_scaling_race_condition2 --initial-pings=1 --pingers=1 --ponythreads=32 --report-interval=10 --report-count=60 --ponynoblock where: 1st) 60 lines of output, but the process didn't exit, and 2nd) no output after the 28th report.
The 3rd time was Wallaroo's "sender" process that stopped sending data & stopped consuming CPU time while running giles/sender/sender -h wallaroo-leader-1:7001 -m<PHONE_NUMBER>0 -s 450 -i 2_500_000 -f ~/wallaroo/testing/data/market_spread/nbbo/350-symbols_nbbo-fixish.msg -r --ponythreads=1 -y -g 46 --ponypinasio -w —ponynoblock

These are important runtime bugfixes.  The performance observations that I've been able to make over the last week are:

Wallaroo's "market spread" application is @SeanTAllen's top choice for performance benchmarking of a "real" Pony app.  (https://github.com/WallarooLabs/wallaroo/blob/master/testing/performance/apps/market-spread/PERFORMANCE_TESTING_MARKET_SPREAD.md) On AWS c4.8xlarge VM instances, I saw no performance decrease (throughput or latency) on 18, 8, and 4 core/scheduler thread runs at saturation (about 3.4M operations/second), 90% saturation, or 10% saturation.

The examples/message-ubench microbenchmark's workload creates a lot of message-passing between actors with little computation by those actors.  On AWS c4.8xlarge VM instances, I've seen approximately 1-3% throughput decrease in most scenarios when using 18, 4, and 1 core/scheduler threads values for --ponythreads.  This decrease tends to be smaller (or disappear) as the value of --initial-pingers increases beyond 1: larger values for this flag gives actors more messages to work on before draining their mailbox or hitting the runtime's 100 consecutive message scheduling limit.  My test runs changed the following flags:
--initial-pings=1, 10, or 100
--pingers=1, 10, 25, 250, or 2500
--ponythreads=1, 4, or 18

The ministat reports below are typical of the throughput variations that I saw.  If I witnessed variation larger than 3%, I repeated the runs several more times to see how repeatable the large variation was ... but big variations were not, as far as my patience & willingness to pay for the AWS time permitted.
RUN: message-ubench --initial-pings=1 --pingers=25 --ponythreads=4 --report-interval=10 --report-count=60 --ponynoblock

x message-ubench.base,1,25,4
+ message-ubench.slf-review-fix_dynamic_scaling_race_condition2,1,25,4
+--------------------------------------------------------------------------+
|                                                        +                 |
|                                                        +        x        |
|                                                        +        x        |
|                                                       ++        x        |
|                                                       ++        xx x     |
|                                                       ++       xxxxx     |
|                                                    +  ++       xxxxx     |
|                                                    ++ ++       xxxxx     |
|                                                  + +++++  +    xxxxx x   |
|                                                  + ++++++ +    xxxxx x   |
|                                                  + ++++++ +  xxxxxxx x   |
|                                                 ++ ++++++ + xxxxxxxx x   |
|+   x                                            +++++++++++ xxxxxxxx x   |
|                                              |_______AM|____|___AM______||
+--------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x  60      14043917      15785394      15666087      15644451     217933.65
+  60      13937605      15503371      15388010      15348762     197644.72
Difference at 95.0% confidence
        -295689 +/- 74445
        -1.89006% +/- 0.475855%
        (Student's t, pooled s = 208037)

RUN: message-ubench --initial-pings=1 --pingers=250 --ponythreads=4 --report-interval=10 --report-count=60 --ponynoblock

x message-ubench.base,1,250,4
+ message-ubench.slf-review-fix_dynamic_scaling_race_condition2,1,250,4
+--------------------------------------------------------------------------+
|           +          +                                     x             |
|          ++          +                                     x             |
|          ++         ++  +       x        +               x xx        x   |
|         +++ +       ++ +++    x xx       +    xx         x xx      x x   |
|       + +++ +      +++++++   xxxxx       * +  xxx       xx xx x  x xxx   |
|+    + + +++++   +++++++++++  xxxxx  x+ ++*+*x xxx     x xx xx xx x xxxx x|
|          |__________A__________|     |_____________A_____M_______|       |
+--------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x  60      14691252      15027855      14910002      14865926     108330.72
+  60      14457171      14803675      14624660      14621815     89014.645
Difference at 95.0% confidence
        -244111 +/- 35478.3
        -1.64208% +/- 0.238655%
        (Student's t, pooled s = 99144.2)

RUN: message-ubench --initial-pings=1 --pingers=250 --ponythreads=18 --report-interval=10 --report-count=60 --ponynoblock

x message-ubench.base,1,250,18
+ message-ubench.slf-review-fix_dynamic_scaling_race_condition2,1,250,18
+--------------------------------------------------------------------------+
|                    +         ++         x  xxx           +           x   |
|          +     +  ++  ++ +   *+  +x+ xx x  xxx x         +           x   |
|          +     +  ++  +++++ +*+ ++*+ xxxx+ xxx x         +           x   |
|+  +      +   ++++++++ ++*++ +*+x+*** xxx**xxxxxxxx  x    +x          xx x|
|               |__________MA______|____|____MA_________|                  |
+--------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x  60      19705073      21169976      20288239      20313202     318382.17
+  60      18944185      20726794      19734108      19772982     372183.33
Difference at 95.0% confidence
        -540220 +/- 123932
        -2.65945% +/- 0.610107%
        (Student's t, pooled s = 346329)

Those perf numbers look good to me and I wouldn't oppose merging on the basis of them.

If y'all are confident, feel free to remove the "DO NOT MERGE" label and merge.

@dipinhora Would you mind taking a look at the new squashed & rebased commit message? If it's alright and if Appveyor is happy, then please merge.

Dipin's last review found a path where DTrace WORK_STEAL_SUCCESSFUL probe wouldn't fire.  The small refactoring in commit 785cbbf takes care of that.  All CI checks have passed. Merge time, thanks everyone for your comments & recommendations.


PRs are welcome! :)

Tf is PR?

Exactly.


arduino support?

As indicated in the title, wonder when there will be support for arduino?
Is it possible?

Considering this issue is 7 years old, I'd consider slowly closing it. If more people use arduino they might give feedback via a new issue since a lot of things change in +7 years.


Proof request explorer modal only works in first row

For every row, inspecting the proof request shows row 0 contents

Resolved by #652


lasagna: Fix ElapsedTime doc comment

Instead of the total time needed to prepare + bake a lasagna, which only
depends on the amount of layers, ElapsedTime calculates the time that
has passed until a specific moment in the baking process. This matches
the function signature, as it depends on the amount of layers and the
minutes it has been in the oven so far.

Thanks @andrerfcsantos! applied your suggestion


Bug report:  Attempting to install Unity Web Player v5.4.x instead installs player v5.3.6f1

Remember to follow the pre bug report guide beforehand. Failure to do so might get your issue closed.
Description of issue:
When I attempt to update Unity Web Player to v5.4 (using a paired brew cask uninstall/brew cask install command sequence due to the fact that brew cask upgrade has not yet been implemented,) the installation succeeds, but, when I go to the Unity Web Player download page to double-check which version I of it just installed, 'Unity Plugin version' reads '5.3.6f1' instead of '5.4.*.'  Did the download URL change, or has Unity just not uploaded a new version of its Web Player corresponding to its v5.4 release yet?
Output of `brew cask uninstall --verbose --debug unity-web-player`
==> Uninstalling Cask unity-web-player
==> Loading Cask definitions
==> Translating 'unity-web-player' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/unity-web-player.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:Hbc::Cask
token: unity-web-player
sourcefile_path: !ruby/object:Pathname
  path: /usr/local/Library/Taps/caskroom/homebrew-cask/Casks/unity-web-player.rb
dsl: !ruby/object:Hbc::DSL
  token: unity-web-player
  version: !ruby/string:Hbc::DSL::Version
    str: !binary |-
      bGF0ZXN0
    raw_version: :latest
  sha256: :no_check
  url: !ruby/object:Hbc::URL
    uri: !ruby/object:URI::HTTP
      scheme: http
      user:
      password:
      host: webplayer.unity3d.com
      port: 80
      path: /download_webplayer-3.x/webplayer-mini.dmg
      query:
      opaque:
      registry:
      fragment:
      parser:
    user_agent:
    cookies:
    referer:
    using:
    revision:
    trust_cert:
    data:
  name:
  - Unity Web Player
  homepage: https://unity3d.com/webplayer
  license: !ruby/object:Hbc::DSL::License
    value: :unknown
  depends_on: !ruby/object:Hbc::DSL::DependsOn
    pairs:
      :macos: &1
      - - :>=
        - !ruby/object:Gem::Version
          version: '10.6'
    macos: *1
  artifacts:
    :pkg: !ruby/object:Set
      hash:
        ? - Install Unity Web Player.pkg
        : true
    :uninstall: !ruby/object:Set
      hash:
        ? :pkgutil: com.unity.UnityWebPlayer
          :delete: /Library/Internet Plug-Ins/Unity Web Player.plugin
        : true
==> Cask instance method 'name':
---
- Unity Web Player
==> Cask instance method 'homepage':
--- https://unity3d.com/webplayer
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTP
  scheme: http
  user:
  password:
  host: webplayer.unity3d.com
  port: 80
  path: /download_webplayer-3.x/webplayer-mini.dmg
  query:
  opaque:
  registry:
  fragment:
  parser:
user_agent:
cookies:
referer:
using:
revision:
trust_cert:
data:
==> Cask instance method 'appcast':
---
...
==> Cask instance method 'version':
--- !ruby/string:Hbc::DSL::Version
str: !binary |-
  bGF0ZXN0
raw_version: :latest
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :unknown
==> Cask instance method 'sha256':
--- :no_check
...
==> Cask instance method 'artifacts':
---
:pkg: !ruby/object:Set
  hash:
    ? - Install Unity Web Player.pkg
    : true
:uninstall: !ruby/object:Set
  hash:
    ? :pkgutil: com.unity.UnityWebPlayer
      :delete: /Library/Internet Plug-Ins/Unity Web Player.plugin
    : true
==> Cask instance method 'caveats':
--- []
==> Cask instance method 'depends_on':
---
:macos:
- - :>=
  - !ruby/object:Gem::Version
    version: '10.6'
==> Cask instance method 'conflicts_with':
---
...
==> Cask instance method 'container':
---
...
==> Cask instance method 'gpg':
---
...
==> Cask instance method 'accessibility_access':
---
...
==> Cask instance method 'auto_updates':
---
...
==> Hbc::Installer.uninstall
==> Un-installing artifacts
==> Determining which artifacts are present in Cask unity-web-player
==> Checking for artifact class Hbc::Artifact::PreflightBlock
==> Checking for artifact class Hbc::Artifact::NestedContainer
==> Checking for artifact class Hbc::Artifact::Installer
==> Checking for artifact class Hbc::Artifact::App
==> Checking for artifact class Hbc::Artifact::Suite
==> Checking for artifact class Hbc::Artifact::Artifact
==> Checking for artifact class Hbc::Artifact::Colorpicker
==> Checking for artifact class Hbc::Artifact::Pkg
==> Checking for artifact class Hbc::Artifact::Prefpane
==> Checking for artifact class Hbc::Artifact::Qlplugin
==> Checking for artifact class Hbc::Artifact::Font
==> Checking for artifact class Hbc::Artifact::Service
==> Checking for artifact class Hbc::Artifact::StageOnly
==> Checking for artifact class Hbc::Artifact::Binary
==> Checking for artifact class Hbc::Artifact::InputMethod
==> Checking for artifact class Hbc::Artifact::InternetPlugin
==> Checking for artifact class Hbc::Artifact::AudioUnitPlugin
==> Checking for artifact class Hbc::Artifact::VstPlugin
==> Checking for artifact class Hbc::Artifact::Vst3Plugin
==> Checking for artifact class Hbc::Artifact::ScreenSaver
==> Checking for artifact class Hbc::Artifact::Uninstall
==> Checking for artifact class Hbc::Artifact::PostflightBlock
==> Checking for artifact class Hbc::Artifact::Zap
==> 2 artifact/s defined
Hbc::Artifact::Pkg
Hbc::Artifact::Uninstall
==> Un-installing artifact of class Hbc::Artifact::Pkg
==> Un-installing artifact of class Hbc::Artifact::Uninstall
==> Running uninstall process for unity-web-player; your password may be necessary
==> Removing files from pkgutil Bill-of-Materials
==> Executing: ["/usr/sbin/pkgutil", "--pkgs=com.unity.UnityWebPlayer"]
==> Deleting pkg files
==> Executing: ["/usr/sbin/pkgutil", "--only-files", "--files", "com.unity.UnityWebPlayer"]
==> Executing: ["/usr/sbin/pkgutil", "--pkg-info-plist", "com.unity.UnityWebPlayer"]
==> Executing: ["/usr/sbin/pkgutil", "--pkg-info-plist", "com.unity.UnityWebPlayer"]
==> Executing: ["/usr/bin/sudo", "-E", "--", "/bin/rm", "-f", "--", "/Library/Internet Plug-Ins/Unused/Unity Web Player.plugin/Contents/Frameworks/Mono-x86_64.bundle/Contents/Info.plist", "/Library/Internet Plug-Ins/Unused/Unity Web Player.plugin/Contents/Frameworks/Mono-x86_64.bundle/Contents/MacOS/Mono", "/Library/Internet Plug-Ins/Unused/Unity Web Player.plugin/Contents/Frameworks/Mono-x86_64.bundle/Contents/Resources/Mono.Security.dll", "/Library/Internet Plug-Ins/Un...
Password:
==> Deleting pkg symlinks and special files
==> Executing: ["/usr/sbin/pkgutil", "--files", "com.unity.UnityWebPlayer"]
==> Executing: ["/usr/sbin/pkgutil", "--only-files", "--files", "com.unity.UnityWebPlayer"]
==> Executing: ["/usr/sbin/pkgutil", "--only-dirs", "--files", "com.unity.UnityWebPlayer"]
==> Deleting pkg directories
==> Executing: ["/usr/sbin/pkgutil", "--only-dirs", "--files", "com.unity.UnityWebPlayer"]
==> Unregistering pkg receipt (aka forgetting)
==> Executing: ["/usr/bin/sudo", "-E", "--", "/usr/sbin/pkgutil", "--forget", "com.unity.UnityWebPlayer"]
==> Removing files: ["/Library/Internet Plug-Ins/Unity Web Player.plugin"]
==> Executing: ["/usr/bin/sudo", "-E", "--", "/bin/rm", "-rf", "--", "/Library/Internet Plug-Ins/Unity Web Player.plugin"]
==> Purging files for version latest of Cask unity-web-player
/usr/local/Library/Homebrew/brew.rb:94:in `exit'
/usr/local/Library/Homebrew/brew.rb:94:in `<main>'

Output of `brew cask install --verbose --debug unity-web-player`
==> Creating directories
==> Loading Cask definitions
==> Translating 'unity-web-player' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/unity-web-player.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:Hbc::Cask
token: unity-web-player
sourcefile_path: !ruby/object:Pathname
  path: /usr/local/Library/Taps/caskroom/homebrew-cask/Casks/unity-web-player.rb
dsl: !ruby/object:Hbc::DSL
  token: unity-web-player
  version: !ruby/string:Hbc::DSL::Version
    str: !binary |-
      bGF0ZXN0
    raw_version: :latest
  sha256: :no_check
  url: !ruby/object:Hbc::URL
    uri: !ruby/object:URI::HTTP
      scheme: http
      user:
      password:
      host: webplayer.unity3d.com
      port: 80
      path: /download_webplayer-3.x/webplayer-mini.dmg
      query:
      opaque:
      registry:
      fragment:
      parser:
    user_agent:
    cookies:
    referer:
    using:
    revision:
    trust_cert:
    data:
  name:
  - Unity Web Player
  homepage: https://unity3d.com/webplayer
  license: !ruby/object:Hbc::DSL::License
    value: :unknown
  depends_on: !ruby/object:Hbc::DSL::DependsOn
    pairs:
      :macos: &1
      - - :>=
        - !ruby/object:Gem::Version
          version: '10.6'
    macos: *1
  artifacts:
    :pkg: !ruby/object:Set
      hash:
        ? - Install Unity Web Player.pkg
        : true
    :uninstall: !ruby/object:Set
      hash:
        ? :pkgutil: com.unity.UnityWebPlayer
          :delete: /Library/Internet Plug-Ins/Unity Web Player.plugin
        : true
==> Cask instance method 'name':
---
- Unity Web Player
==> Cask instance method 'homepage':
--- https://unity3d.com/webplayer
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTP
  scheme: http
  user:
  password:
  host: webplayer.unity3d.com
  port: 80
  path: /download_webplayer-3.x/webplayer-mini.dmg
  query:
  opaque:
  registry:
  fragment:
  parser:
user_agent:
cookies:
referer:
using:
revision:
trust_cert:
data:
==> Cask instance method 'appcast':
---
...
==> Cask instance method 'version':
--- !ruby/string:Hbc::DSL::Version
str: !binary |-
  bGF0ZXN0
raw_version: :latest
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :unknown
==> Cask instance method 'sha256':
--- :no_check
...
==> Cask instance method 'artifacts':
---
:pkg: !ruby/object:Set
  hash:
    ? - Install Unity Web Player.pkg
    : true
:uninstall: !ruby/object:Set
  hash:
    ? :pkgutil: com.unity.UnityWebPlayer
      :delete: /Library/Internet Plug-Ins/Unity Web Player.plugin
    : true
==> Cask instance method 'caveats':
--- []
==> Cask instance method 'depends_on':
---
:macos:
- - :>=
  - !ruby/object:Gem::Version
    version: '10.6'
==> Cask instance method 'conflicts_with':
---
...
==> Cask instance method 'container':
---
...
==> Cask instance method 'gpg':
---
...
==> Cask instance method 'accessibility_access':
---
...
==> Cask instance method 'auto_updates':
---
...
==> Hbc::Installer.install
==> Printing caveats
==> Satisfying dependencies
complete
==> Downloading
==> Downloading http://webplayer.unity3d.com/download_webplayer-3.x/webplayer-mini.dmg
==> Calling curl with args ["http://webplayer.unity3d.com/download_webplayer-3.x/webplayer-mini.dmg", "-C", "0", "-o", "#<Pathname:/Users/zadmin/Library/Caches/Homebrew/unity-web-player-latest.dmg.incomplete>"]
/usr/bin/curl -fLA Homebrew-cask v0.51+ (Ruby 2.0.0-648) http://webplayer.unity3d.com/download_webplayer-3.x/webplayer-mini.dmg -C 0 -o /Users/zadmin/Library/Caches/Homebrew/unity-web-player-latest.dmg.incomplete
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4827k  100 4827k    0     0  2453k      0  0:00:01  0:00:01 --:--:-- 2453k
==> Downloaded to -> /Users/zadmin/Library/Caches/Homebrew/unity-web-player-latest.dmg
==> Verifying download
==> Determining which verifications to run for Cask unity-web-player
==> Checking for verification class Hbc::Verify::Checksum
==> No checksum defined for Cask unity-web-player, skipping verification
==> 0 verifications defined
==> Extracting primary container
==> Determining which containers to use based on filetype
==> Checking container class Hbc::Container::Pkg
==> Checking container class Hbc::Container::Ttf
==> Checking container class Hbc::Container::Otf
==> Checking container class Hbc::Container::Air
==> Checking container class Hbc::Container::Cab
==> Checking container class Hbc::Container::Dmg
==> Executing: ["/usr/bin/hdiutil", "imageinfo", "/Users/zadmin/Library/Caches/Homebrew/unity-web-player-latest.dmg"]
==> Using container class Hbc::Container::Dmg for /Users/zadmin/Library/Caches/Homebrew/unity-web-player-latest.dmg
==> Executing: ["/usr/bin/hdiutil", "mount", "-plist", "-nobrowse", "-readonly", "-noidme", "-mountrandom", "/tmp", "/Users/zadmin/Library/Caches/Homebrew/unity-web-player-latest.dmg"]
==> Executing: ["/usr/bin/mkbom", "-s", "-i", "/var/folders/2r/1x3f98fj7vg8jgdhxfjqxzzw0000gn/T/20160731-43506-tgo07i.list", "--", "/var/folders/2r/1x3f98fj7vg8jgdhxfjqxzzw0000gn/T/20160731-43506-1aj4j95.bom"]
==> Executing: ["/usr/bin/ditto", "--bom", "/var/folders/2r/1x3f98fj7vg8jgdhxfjqxzzw0000gn/T/20160731-43506-1aj4j95.bom", "--", "/private/tmp/dmg.ySrcDh", "/usr/local/Caskroom/unity-web-player/latest"]
==> Executing: ["/usr/sbin/diskutil", "eject", "/private/tmp/dmg.ySrcDh"]
==> Installing artifacts
==> Determining which artifacts are present in Cask unity-web-player
==> Checking for artifact class Hbc::Artifact::PreflightBlock
==> Checking for artifact class Hbc::Artifact::NestedContainer
==> Checking for artifact class Hbc::Artifact::Installer
==> Checking for artifact class Hbc::Artifact::App
==> Checking for artifact class Hbc::Artifact::Suite
==> Checking for artifact class Hbc::Artifact::Artifact
==> Checking for artifact class Hbc::Artifact::Colorpicker
==> Checking for artifact class Hbc::Artifact::Pkg
==> Checking for artifact class Hbc::Artifact::Prefpane
==> Checking for artifact class Hbc::Artifact::Qlplugin
==> Checking for artifact class Hbc::Artifact::Font
==> Checking for artifact class Hbc::Artifact::Service
==> Checking for artifact class Hbc::Artifact::StageOnly
==> Checking for artifact class Hbc::Artifact::Binary
==> Checking for artifact class Hbc::Artifact::InputMethod
==> Checking for artifact class Hbc::Artifact::InternetPlugin
==> Checking for artifact class Hbc::Artifact::AudioUnitPlugin
==> Checking for artifact class Hbc::Artifact::VstPlugin
==> Checking for artifact class Hbc::Artifact::Vst3Plugin
==> Checking for artifact class Hbc::Artifact::ScreenSaver
==> Checking for artifact class Hbc::Artifact::Uninstall
==> Checking for artifact class Hbc::Artifact::PostflightBlock
==> Checking for artifact class Hbc::Artifact::Zap
==> 2 artifact/s defined
Hbc::Artifact::Pkg
Hbc::Artifact::Uninstall
==> Installing artifact of class Hbc::Artifact::Pkg
==> Running installer for unity-web-player; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
==> Executing: ["/usr/bin/sudo", "-E", "--", "/usr/sbin/installer", "-pkg", "/usr/local/Caskroom/unity-web-player/latest/Install Unity Web Player.pkg", "-target", "/", "-verboseR"]
==> installer: Package name is Unity Web Player
==> installer: Installing at base path /
==> installer:PHASE:Preparing for installation…
==> installer:PHASE:Preparing the disk…
==> installer:PHASE:Preparing Unity Web Player…
==> installer:PHASE:Waiting for other installations to complete…
==> installer:PHASE:Configuring the installation…
==> installer:STATUS:
==> installer:%10.144349
==> installer:PHASE:Writing files…
==> installer:%82.644168
==> installer:PHASE:Running package scripts…
==> installer:PHASE:Validating packages…
==> installer:%97.750000
==> installer:STATUS:Running installer actions…
==> installer:STATUS:
==> installer:PHASE:Finishing the Installation…
==> installer:STATUS:
==> installer:%100.000000
==> installer:PHASE:The software was successfully installed.
==> installer: The install was successful.
==> Installing artifact of class Hbc::Artifact::Uninstall
==> Nothing to do.


Strange Extension host Notify messages

Is it normal that this kind of messages is generated to the dev console all the time (maybe when opening diferent file)?

https://github.com/ionide/ionide-vscode-fsharp/blob/b16dac0f63b91562fb95c20b37988415b7560de0/src/Components/Errors.fs#L130 ;)

Just don't run git blame on this line, please ;)


Cannot upload vsix

When I try to upload my vsix file to the marketplace I constantly getting a Internal Server Error.
'''
2018-07-04T11:02:52.7638393Z Everything is Ok
2018-07-04T11:02:56.0627597Z error: Failed Request: Internal Server Error(500) - Cannot upload VS extension to marketplace
2018-07-04T11:02:56.0843898Z ##[error]tfx failed with error: Error: D:\Erik\BuildAgents_work_tools\tfx.cmd failed with return code:<PHONE_NUMBER>
2018-07-04T11:02:56.1099245Z ##[section]Finishing: Publish Extension
'''
Are there any further logs which I can investigate to dig into what is failing in particular?

The detailed logging revealed a small issue with the extension-id, but that didn't solved my main problem.
As it seems my problem is by design, because I misunderstood the docs.
Correct me if I'm wrong, but it seems that the publish task only supports publish of VSTS/TFS extensions to the marketplace and as I'm trying to publish a Visual Studio vsix this doesn't work.
So the Message "Cannot upload VS extension to marketplace" is exactly what it says, right?

Right. Only vsts extensions at the moment. Limitation of tfx/marketplace.
On Wed, 4 Jul 2018, 16:57 Erik<EMAIL_ADDRESS>wrote:

The detailed logging revealed a small issue with the extension-id, but
that didn't solved my main problem.
As it seems my problem is by design, because I misunderstood the docs.
Correct me if I'm wrong, but it seems that the publish task only supports
publish of VSTS/TFS extensions to the marketplace and as I'm trying to
publish a Visual Studio vsix this doesn't work.
So the Message "Cannot upload VS extension to marketplace" is exactly what
it says, right?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vsts-extension-build-release-tasks/issues/77#issuecomment-402516040,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AD-uS9w2FBJff81hU-VzbcVpQYUMeSbEks5uDOXMgaJpZM4VCaAv
.


Enhancements

Allow custom styles by merging default ‘styles’ prop with the user defined one + allow touches on child components (i.e. onPress TouchableOpacity)

Thanks again!


Error: Can't resolve 'ree-validate'

Laravel Mix Version<EMAIL_ADDRESS>Node Versionv 8.10.0
NPM Version 3.5.2
OS: Ubuntu

Description:
Steps To Reproduce:
Hi,
When I try to compile via npm run watch, I've theses erros:
ERROR in ./resources/js/modules/article/pages/add/Page.js
Module not found: Error: Can't resolve 'ree-validate' in '/var/www/laravel-react/resources/js/modules/article/pages/add'
@ ./resources/js/modules/article/pages/add/Page.js 32:0-39 47:26-37
@ ./resources/js/modules/article/pages/add/index.js
@ ./resources/js/modules/article/routes.js
@ ./resources/js/routes/routes.js
@ ./resources/js/routes/index.js
@ ./resources/js/app.js
@ multi ./resources/js/app.js ./resources/sass/app.scss
ERROR in ./resources/js/modules/article/pages/edit/Page.js
Module not found: Error: Can't resolve 'ree-validate' in '/var/www/laravel-react/resources/js/modules/article/pages/edit'
@ ./resources/js/modules/article/pages/edit/Page.js 32:0-39 47:26-37
@ ./resources/js/modules/article/pages/edit/index.js
@ ./resources/js/modules/article/routes.js
@ ./resources/js/routes/routes.js
@ ./resources/js/routes/index.js
@ ./resources/js/app.js
@ multi ./resources/js/app.js ./resources/sass/app.scss
ERROR in ./resources/js/modules/auth/pages/login/Page.js
Module not found: Error: Can't resolve 'ree-validate' in '/var/www/laravel-react/resources/js/modules/auth/pages/login'
@ ./resources/js/modules/auth/pages/login/Page.js 32:0-39 49:26-37
@ ./resources/js/modules/auth/pages/login/index.js
@ ./resources/js/modules/auth/routes.js
@ ./resources/js/routes/routes.js
@ ./resources/js/routes/index.js
@ ./resources/js/app.js
@ multi ./resources/js/app.js ./resources/sass/app.scss
ERROR in ./resources/js/modules/auth/pages/register/Page.js
Module not found: Error: Can't resolve 'ree-validate' in '/var/www/laravel-react/resources/js/modules/auth/pages/register'
@ ./resources/js/modules/auth/pages/register/Page.js 32:0-39 47:26-37
@ ./resources/js/modules/auth/pages/register/index.js
@ ./resources/js/modules/auth/routes.js
@ ./resources/js/routes/routes.js
@ ./resources/js/routes/index.js
@ ./resources/js/app.js
@ multi ./resources/js/app.js ./resources/sass/app.scss
ERROR in ./resources/js/modules/user/pages/edit/Page.js
Module not found: Error: Can't resolve 'ree-validate' in '/var/www/laravel-react/resources/js/modules/user/pages/edit'
@ ./resources/js/modules/user/pages/edit/Page.js 32:0-39 47:26-37
@ ./resources/js/modules/user/pages/edit/index.js
@ ./resources/js/modules/user/routes.js
@ ./resources/js/routes/routes.js
@ ./resources/js/routes/index.js
@ ./resources/js/app.js
@ multi ./resources/js/app.js ./resources/sass/app.scss
I've tried few things:

reinstall node_modules
npm i ree-validate
see package.json => ree-validate is OK

Everything is OK but the error still persists.
Do you have an idea ?
Thank's :)

Hey! I just ran into the same issue.. it looks like there's an issue with the latest version of ree-validate (3.3.0)
I solved it installing the previous version (3.0.2) with the following command:
npm install --save<EMAIL_ADDRESS>Hope that helps!


[T5A1][T16-B3]Mah Zhen Feng Irwin

Made some comments. If you have any questions, feel free to leave a comment. Else please close this PR after you have done reading


Added automatic locales generation to the new build

Added automatic locales generation to the new build :)

Why are we using a tmp folder now?
Could you rebase on 3.2 and change the target branch of the PR?
git rebase --onto 3.2 HEAD^ should do the trick


General improvements for HTML structure and CSS styling

imp: improve CSS structure and fix footer style
imp: switch order of stylesheets to favor TC styles

What does your PR do?
This PR started as a quick Hacktoberfest fun to fix the footer issue but saw the stylesheet and decided to do some groundwork regarding styles.

Removed a lot of unused styles
Removed/Refactored redundant styles
Improved HTML structure
Tackled the color contrast issue (Color themes are not clear enough though) 😅
Provided variables for the current scheme, hopefully a more consistent theme is added through this approach.

I did take a few liberties, feel free to point the issues or things that need to be changed.
Future improvements I'd implement:

Consistent Theming
Maybe develop a small CSS library with the most used styles for easy use
Even more HTML w3 stuff like having an H1 for improved SEO 😁

That said, below the issues this helps with

Closes https://github.com/TheTechCommute/TheTechCommute/issues/60
Closes https://github.com/TheTechCommute/TheTechCommute/issues/58

Have you read our Code of Conduct?

[x] Yes

Thanks for these changes and your thorough PR. Enjoy your Holopin! https://holopin.io/collect/cm297v5hw18430cl1rosd4p5s

Thank you Michaella 😁


issues with animate_topomap in interactive mode

using animate_topomap matplotlib when in interactive mode (%matplotlib) does not work very well (at least on windows):

"Initializing animation..." is printed every time the animation goes back to the beginning - and the whole animation seems to be recomputed from scratch (I need to wait for a few seconds before it restarts)
clicking the topo does not stop the progression of time - only turns off redrawing. If I click the topo, and wait a few seconds, and then click again - the animation is a number of frames ahead (proportional to the time being paused)

In a notebook?
On Sat, Aug 13, 2016 at 3:26 AM +0200, "Mikolaj Magnuski"<EMAIL_ADDRESS>wrote:
using animate_topomap matplotlib when in interactive mode (%matplotlib) does not work very well (at least on windows):
"Initializing animation..." is printed every time the animation goes back to the beginning - and the whole animation seems to be recomputed from scratch (I need to wait for a few seconds before it restarts)
clicking the topo does not stop the progression of time - only turns off redrawing. If I click the topo, and wait a few seconds, and then click again - the animation is a number of frames ahead (proportional to the time being paused
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

In Spyder, but I can check the notebook.

ok it's bad then. @jaeilepp please look when you're back

@mmagnuski do you still experience this? I suspect it could just be a transient matplotlib bug.

Closing since last I checked it worked okay, so probably an old mpl bug


Revert accidentally changed android_test_proto_lib dep to protos_cc

android_test_proto_lib is a Google-internal target

Jenkins, test this please

Jenkins, test this please.

Jenkins, test this please.


schedule: fix panic caused by removing tombstone (#2015)

What problem does this PR solve?
cherry-pick #2015 to release-3.1 branch
What is changed and how it works?
This PR fixes the panic problem by resetting the attached function when removing the store limit.
Check List
Tests

Unit test

Related changes

Need to be included in the release notes

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

Codecov Report

:exclamation: No coverage uploaded for pull request base (release-3.1@d1570bf). Click here to learn what that means.
The diff coverage is 100%.

@@              Coverage Diff               @@
##             release-3.1    #2037   +/-   ##
==============================================
  Coverage               ?   69.47%
==============================================
  Files                  ?      171
  Lines                  ?    16819
  Branches               ?        0
==============================================
  Hits                   ?    11685
  Misses                 ?     4152
  Partials               ?      982

Impacted Files
Coverage Δ

server/schedule/operator_controller.go
87.19% <100%> (ø)

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 d1570bf...37545a7. Read the comment docs.


Removing unused resources, compressing PNG and using vectors.

Certain files are not being used but included in the APK. These include

fill_circle.png
track_circle.xml (These are needed to be removed.)

Also ic_noti_bookmark.png was can be converted to vector drawable.
Two PNG files can be reduced using PNGCrusher or tinyPNG as recommended by google. These are

widget_preview.png
splash_logo.png

@the-dagger
Should I send a PR for this?

Ok, sure. 👍


some more advanced/serious programs

https://makecode.microbit.org/projects/soil-moisture/code
https://makecode.microbit.org/projects/stopwatch
https://makecode.microbit.org/projects/level
https://makecode.microbit.org/projects/light-level-meter

https://makecode.microbit.org/projects/7-seconds

Need to document what is needed in language and runtime to support the above.


chore: release main

:robot: I have created a release beep boop
nest-utils: 1.2.0
1.2.0 (2024-10-24)
Features

auth: Implemented getSession and isAuthenticated utility functions (711d9c3)
auth: Session resource now includes preferred_username (e00a8e3)
testing: TestContainer now offers an afterCreate hook (26d6d02)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

nest-utils-v1.2.0
:sunflower:


Bump deck.gl to 8.7.7

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 74.799%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1444

Relevant Lines:
1825

💛  - Coveralls


shouldn't the main API be static?

In most use cases the call is used once, why isn't the library making static calls? Like ISO3166::alpha2(..).
Creating an object every time seems quite cumbersome.

With DI being so mainstream, injecting the same instance everywhere hardly seems cumbersome to me. But to be fair, there is no real argument against making everything static.


Improve Creating Project flow.

When creating a project as a user, I would expect that there is no need to explicitly provide the --name  parameter.
So something like this ./harbor create project vadim-test should work.
--public should be by default `false``
The description and logic behind --registry-id int is not obvious/clear. When id !=1 does it mean that than a proxy project is created?
./harbor create project vadim-test
Error: [POST /projects][500] createProjectInternalServerError  &{Errors:[0x14000130020]}
Usage:
harbor create project [flags]
Flags:
-h, --help                help for project
--name string         Name of the project
--public              Project is public or private (default true)
--registry-id int     ID of referenced registry when creating the proxy cache project (default 1)
--storage-limit int   Storage quota of the project (default -1)

fixed by #35


Feature: .attr_readonly, .readonly_attributes

ActiveRecord supports marking attributes as read-only by using the attr_readonly method. Setting an attribute as read-only causes the following behavior:

ActiveRecord::Base#update_attribute (singular) will raise an exception if the attribute being set is read-only.
Any changes to attr_readonly attributes are simply filtered out when issuing updates to the database.

ActiveRecord's counter caches are also automatically flagged with attr_readonly.

To be honest this looks like something that should be moved from ActiveRecord into ActiveModel  so that all O*Ms that inherits from ActiveModel also get this.

+1

The problem with this is that the ActiveModel API does not even implement #update_attribute or #update_attributes. State handling is entirely left to the implementation of the class using the ActiveModel mixins.
This can be seen in the ActiveModel examples. There, a normal attr_accessor is used for getting & setting the attribute values. So, no checking for readonly attributes can occur as part of the ActiveModel API.
Moving attr_readonly would therefore still require a manual check for readonly attributes within a setter, which would make the API unnecessarily complicated. Besides that, the behaviour of attr_readonly is not difficult to re-implement for other ORMs.
(cross-posted from rails/rails#3376)

I closed the ticket rails/rails#3376 So it looks like this will have to be implemented in mongoid

AR is here: http://api.rubyonrails.org/classes/ActiveRecord/ReadonlyAttributes/ClassMethods.html


Fix empty rethrows, update some catches to catch all

throw; is for rethrowing an exception. It should be used within the catch blocks.
If used outside, the program does not know what to do - there is not an active exception to rethrow, so it calls terminate(). Which is not like throwing exception at all - it does not give user any chance to respond or finalize any stuff, it just most frequently core dumps.
https://en.cppreference.com/w/cpp/language/throw
Yes, I throw std::exception() - it is better than throw;. If you are thinking of something else specific to throw there, please suggest in the PR.
Another thing in this PR, I updated catch(const std::exception&) to catch(...), where we don;t care about the exception being derived from std::exception, and actually need to close the handle regardless.

Inspired by #2361 and #2360.


save() behaves unexpectedly on repeated calls

Suppose we've got a Person and a Thing model which have a many-to-many relationship (in my case, using a cloud-based MongoDB backend). The following code will throw Trying to '.add()' an instance which already exists very frequently when there are many entries in thingIDs:
// doesn't work, throws "Trying to '.add()' an instance which already exists"
return Promise.all(_.map(thingIDs, function (thingID) {
    return Thing.findOne({ id: thingID }).then(function (thing) {
        person.tags.add(thing);
        return person.save();
    })
})

Observing the database, I saw that this code attempts to create multiple identical entries in the person_things__thing_persons join table, hence the error.
However, this works just fine:
// works
return Promise.all(_.map(thingIDs, function (thingID) {
    return Thing.findOne({ id: thingID }).then(function (tag) {
        person.tags.add(tag);
    })
})).then(function () {
    return person.save();
})

This implies that Model.save() can't reliably be called multiple times on the same record; this behavior might be acceptable, but it should really be either clarified in the documentation or fixed in the code

@wgreenberg let me know if PR #889 fixes this issue for you.

Closing this for now, please reopen if PR #889 doesn't fix this,


Feature request: Add ability to specify code as parameter rather than key

For some reason my fixtures have integers as keys and I have next error: Argument 1 passed to BitBag\SyliusCmsPlugin\Entity\Section::setCode() must be of the type string or null, integer given, called in vendor/bitbag/cms-plugin/src/Fixture/Factory/SectionFixtureFactory.php on line 54

This issue was because config/packages/sylius_fixtures.yaml was imported again at config/packages/_sylius.yaml and same fixtures included twice. First time they was added with proper keys, second time with integer keys (0, 1, 2, ...).
Hope this can be helpful for someone.


CASMTRIAGE-6254 print all IUF deploy manifest information in the logs

Description
This resolves CASMTRIAGE-6254.
Before this change, the IUF deploy-product stage would run loftsman ship for manifests and only print the output if there was an error. This means no logs, IUF logs or other logs, would keep track of what charts were deployed and the status of those charts. The logs would just be empty. We want to be able to trace what was deployed and we also don't want it to appear that the stage is doing nothing when in succeeds.
This change will print the loftsman output with the DEBUG prefix. I have tested this on wasp.
Example output is below
INFO Deploying loftman manifest /etc/cray/upgrade/csm/media/restore/uan-2.6.2/manifests/uan.yaml
DEBUG 2023-11-29T17:47:59Z INF Initializing the connection to the Kubernetes cluster using KUBECONFIG (system default), and context (current-context) comm
and=ship
2023-11-29T17:47:59Z INF Initializing helm client object command=ship
         |\
         | \
         |  \
         |___\      Shipping your Helm workloads with Loftsman
       \--||___/
  ~~~~~~\_____/~~~~~~~

2023-11-29T17:47:59Z INF Ensuring that the loftsman namespace exists command=ship
2023-11-29T17:47:59Z INF Loftsman will use the charts repo at https://packages.local/repository/charts as the Helm install source command=ship
2023-11-29T17:47:59Z INF Running a release for the provided manifest at /tmp/uan.yaml command=ship

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Releasing cray-uan-install v1.12.8
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2023-11-29T17:47:59Z INF Found value overrides for chart, applying:
cray-import-config:
  import_job:
    CF_IMPORT_PRODUCT_VERSION: 2.6.2
 chart=cray-uan-install command=ship namespace=services version=1.12.8
2023-11-29T17:47:59Z INF Running helm install/upgrade with arguments: upgrade --install cray-uan-install https://packages.local/repository/charts/cray-uan
-install-1.12.8.tgz --namespace services --create-namespace --set global.chart.name=cray-uan-install --set global.chart.version=1.12.8 -f /tmp/loftsman-17
01280079/cray-uan-install-values.yaml chart=cray-uan-install command=ship namespace=services version=1.12.8
2023-11-29T17:48:00Z INF Release "cray-uan-install" has been upgraded. Happy Helming!
NAME: cray-uan-install
LAST DEPLOYED: Wed Nov 29 17:47:59 2023
NAMESPACE: services
STATUS: deployed
REVISION: 2
TEST SUITE: None
 chart=cray-uan-install command=ship namespace=services version=1.12.8
2023-11-29T17:48:00Z INF Ship status: success. Recording status, manifest to configmap loftsman-uan in namespace loftsman command=ship
2023-11-29T17:48:00Z INF Recording log data to configmap loftsman-uan-ship-log in namespace loftsman command=ship

Checklist

[x] If I added any command snippets, the steps they belong to follow the prompt conventions (see example).
[x] If I added a new directory, I also updated .github/CODEOWNERS with the corresponding team in Cray-HPE.
[x] My commits or Pull-Request Title contain my JIRA information, or I do not have a JIRA.

I committed @rustydb suggestions to forward DEBUG and ERROR output to stderr. I tested this with the IUF cli and saw that the IUF cli picked up output from stdout and stderr.
INFO [upgrade-m                                                ] BEG upgrade-m002(0)
ERR  [upgrade-m                                                ]       Loftsman manifest deployment failed forwarded to stderr
ERR  [upgrade-m                                                ]       Loftsman manifest deployment failed NOT forwarded to stderr

/backport release/1.5


Implement a Flow visualizer

I'm submitting a ...  (check one with "x")
[ ] bug report => search github for a similar issue or PR before submitting
[x] feature request
[ ] support request

Expected behavior
A flow visualizer that is capable of simply displaying/visualizing the layout of a flow. This can benefits apps that have refs to other flows (where we cannot actually change the flow). This should also be implemented in a way that it can be extracted from WebUI and used in other contexts, for example, via the flogo.io app showcase or Mashling recipes that have refs to flows.
What is the motivation / use case for changing the behavior?
Enable visualization of flows via refs and would-be app users the ability to visualize the flow logic without changing it. For example via flogo.io or Mashling's recipes.

The flow visualization (or flow diagram as we call it in the codebase) has been refactored into an isolated reusable module that can be easily extracted as a flow visualizer. In fact, the diagram module is re-used internally to render both the flow visualization and the stream visualization.


C-W doesn't delete complete word in some cases

VIm ignores option start in :set backspace=indent,eol,start
How to reproduce:

start vim and type a few words like "aaaa bbbbb ccccc"
make sure that command :set backspace=indent,eol,start or at least :set backspace=start executed;
exit insert mode
move cursor in the middle of word "bbbbb", press "a" to enter insert mode
using arrow keys move cursor to the end of this word, then press C-W

Expected result:
Complete word "bbbbb" is deleted.
Actual result:
Only tail part of the word deleted, up until the position where you've switched to insert mode.
I've made git bisect and found commit where this behavior started — https://github.com/vim/vim/commit/3d1956bcc9b2f606a8b6b03b3852a6eed9847348

The help for 'backspace' says:
start	allow backspacing over the start of insert; CTRL-W and CTRL-U
stop once at the start of insert.
So that's what happens, CTRL-W stops one where insert started.  Moving the cursor doesn't change that, only typing text sets a new insert-start position.

Oh, looks I've totally missed the point and thought that CTRL-W works the same way as backspace. It was very handy before fix in https://github.com/vim/vim/commit/3d1956bcc9b2f606a8b6b03b3852a6eed9847348
May we have an additional backspace option for this behavior for CTRL-U/CTRL-W?

Nevermind, solved by .vimrc editing:
imap <C-w> <C-o>db

This mapping does something similar to @sigsergv's solution without breaking undo sequence.
inoremap <C-w> <C-\><C-o><ESC><C-w>

Actually, I'm using another sequence now:
inoremap <C-w> <C-\><C-o>dB

It's working much better than my original one.


Support regular expression

Depends on:
https://github.com/vesoft-inc/nebula-common/pull/287
https://github.com/vesoft-inc/nebula-graph/pull/414

Please add TODO here. Since this the regex match expression might be pushed down to the storage layer

Has added implementation  getRegex in StorageExpressionContext


Characteristics

Q
A

Bug report?
[ ]

Feature request?
[ ]

Support request?
[ X]

Dear Cocorico team
Is it possible in CE version

setup Characteristics as a Check Boxes (now it’s only list  Yes/No/Maybe or 1/2/3/4)
Group Characteristics like in CocoDev (only one main Characteristics in Search line and then you drill down into Characteristics Groups)
I don’t need to select amount of days, Which parameter I should switch off ?
CSS is very nice in CocoDev (easy to read and navigate), can I got it instead of self modification CSS files?

Thanks in advance

Hello @igorcherry
For your 3 first questions you need to implement it.
Not sure to understand the last question. Do you mean you want to use Cocodev CSS instead of the CE  ones?

Hello,
for first 3 question I understand. Will do.
4 question - Yes, if it possible to get Cocodev CSS and put it instead of my CE default CSS
5 question - now in file parameters, I can take my fee from Offrerer/Asker as % from Price, how can I switch to fix price (e.g. always 10$ from Asker and 20$ from Offrerer?


Promise.all().catch catches only one rejection (when multiple are thrown)

Consider the following code:
Promise.all([Promise.rejected("1"), Promise.rejected("2")])
.catch(function(e){console.log(e)})

The output is:
"1"

But what I'd expect to get is:
["1", "2"]

Is there an additional parameter to Promise.all that I'm missing that would help achieve that?

There is nothing we can do about this - this is mandated by the ECMAScript specification and we can't break compatibility with ES6. In addition keep in mind that .all rejects as soon as a single promise rejects so you'd actually need another promise (or async iteration mechanism) in order to access all the rejections since they're not ready yet.
In bluebird's own methods an aggregation is returned and you can access all the errors. You can also use .settle and .reflect if you'd like.
(Also note that it's Promise.reject and not Promise.rejected)
Also note - that support questions are better asked on Stack Overflow - please ask there next time.

there is no way?

@tacnoman as explained above, you can use .reflect for this or .settle.
The issue tracker is not the correct place to ask support questions. Cheers.


Fix BIO_get_accept_socket so that "port-only" input works on FreeBSD.

Without this fix "openssl ocsp -port xxx" will cause "openssl s_server -status" calls to hang on FreeBSD.
I'm not 100% sure this is the right overall fix... my knowledge here is weak, but it is verified to fix the problem I was having.

We had a major rewrite of things related to this.  Do you still have a problem on master?

Hi Kurt, I don't have ready access to a FreeBSD server anymore to test. I won't be offended if we close this out as obsolete.

Closing as obsolete.


⚠ Bofrost.de has degraded performance

In 01f650d, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 2157 ms

Resolved: Bofrost.de performance has improved in 95cfd0b after 6 minutes.


10.0.19041.1023 all green but dosen't work

All look good but dosen't work.
I have already replaced the rdpwrap.ini and then Diagnotics all turned green.

I have restarted the remote desktop service. But it still says it is inaccesible.

Duplicate of https://github.com/stascorp/rdpwrap/issues/1420