text:
Inconsistent performances upon different batch sized insertions

I am currently benchmarking the insertion of Marten / PostgreSQL in regard to the number of entries / records in a table. I am expecting at some point to see a certain bottleneck and hence a dramatic performance degradation. To that purpose I created the small Program.cs which leverages Docker.DotNet to spawn an instance
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;
using Docker.DotNet;
using Docker.DotNet.Models;
using Marten;

namespace Benchmark
{
    public static class ContainerOperationsExtensions
    {
        public static async Task<IList<ContainerListResponse>> SearchByNameAsync(this IContainerOperations source, string name, bool all = true)
        {
            return await source.ListContainersAsync(new ContainersListParameters
            {
                All = all,
                Filters = new Dictionary<string, IDictionary<string, bool>>
                {
                    {"name", new Dictionary<string, bool>
                        {
                            {name, true}
                        }
                    }
                }
            });
        }

        public static async Task StopAndRemoveContainerAsync(this IContainerOperations source, ContainerListResponse container)
        {
            if (container.State == "running")
            {
                await source.StopContainerAsync(container.ID, new ContainerStopParameters());
            }

            await source.RemoveContainerAsync(container.ID, new ContainerRemoveParameters());
        }

        public static async Task<CreateContainerResponse> RunContainerAsync(this IContainerOperations source, CreateContainerParameters parameters)
        {
            var createdContainer = await source.CreateContainerAsync(parameters);
            await source.StartContainerAsync(createdContainer.ID, new ContainerStartParameters());
            return createdContainer;
        }
    }

    public static class Docker
    {
        static Docker()
        {
            DefaultLocalApiUri = RuntimeInformation.IsOSPlatform(OSPlatform.Windows)
                ? new Uri("npipe://./pipe/docker_engine")
                : new Uri("unix:/var/run/docker.sock");
        }

        public static Uri DefaultLocalApiUri { get; }
    }

    public static class Program
    {
        public static async Task Main(params string[] args)
        {
            const string imageName = "postgres:latest";
            const string containerName = "MyProgreSQL";

            var client = new DockerClientConfiguration(Docker.DefaultLocalApiUri).CreateClient();
            var containers = await client.Containers.SearchByNameAsync(containerName);

            var container = containers.SingleOrDefault();
            if (container != null)
            {
                await client.Containers.StopAndRemoveContainerAsync(container);
            }

            var createdContainer = await client.Containers.RunContainerAsync(new CreateContainerParameters
            {
                Image = imageName,

                HostConfig = new HostConfig
                {
                    PortBindings = new Dictionary<string, IList<PortBinding>>
                    {
                        {"5432/tcp", new List<PortBinding>
                        {
                            new PortBinding
                            {
                                HostPort = "5432"
                            }
                        }}
                    },
                    PublishAllPorts = true
                },
                Env = new List<string>
                {
                    "POSTGRES_PASSWORD=root",
                    "POSTGRES_USER=root"
                },
                Name = containerName
            });

            var containerState = string.Empty;
            while (containerState != "running")
            {
                containers = await client.Containers.SearchByNameAsync(containerName);
                container = containers.Single();
                containerState = container.State;
            }

            var store = DocumentStore.For("host=localhost;database=postgres;password=root;username=root");

            Thread.Sleep(2000);

            const long count = 5000;

            var stopwatch = new Stopwatch();

            const string filename = "stats.txt";
            if (File.Exists(filename))
            {
                File.Delete(filename);
            }

            while (true)
            {
                using (var session = store.LightweightSession())
                {
                    var orders = OrderHelpers.FakeOrders(count);
                    session.StoreObjects(orders);
                    stopwatch.Restart();
                    await session.SaveChangesAsync();
                    stopwatch.Stop();
                    await File.AppendAllLinesAsync(filename, new[] {stopwatch.Elapsed.ToString()});
                }
            }
        }
    }

    public static class RandomExtensions
    {
        public static TEnum NextEnum<TEnum>(this Random random)
            where TEnum : Enum
        {
            var values = Enum.GetValues(typeof(TEnum));
            return (TEnum)values.GetValue(random.Next(values.Length));
        }
    }

    public static class OrderHelpers
    {
        private static readonly Random Random = new Random();

        public static IList<Order> FakeOrders(long count)
        {
            var orders = new Order[count];

            for (var i = 0; i < count; i++)
            {
                var detailCount = Random.Next(10);

                orders[i] = new Order
                {
                    Id = Guid.NewGuid(),
                    Priority = Random.NextEnum<Priority>(),
                    CustomerId = Random.Next(420000).ToString(),
                    Details = new OrderDetail[detailCount]
                };

                for (var j = 0; j < detailCount; j++)
                {
                    var detail = new OrderDetail
                    {
                        Number = Random.Next(64000),
                        PartNumber = Random.Next(75000).ToString(),
                    };

                    orders[i].Details[j] = detail;
                }
            }

            return orders;
        }
    }

    public class Order
    {
        public Guid Id { get; set; }
        public Priority Priority { get; set; }
        public string CustomerId { get; set; }
        public IList<OrderDetail> Details { get; set; }
    }

    public class OrderDetail
    {
        public string PartNumber { get; set; }
        public int Number { get; set; }
    }

    public enum Priority
    {
        Low,
        High
    }
}

I've noticed that if I insert 5,000 / 10,000 / 50,000 items the insertion speed decrease greatly such as that:

5,000 items / ~1.2s
10,000 items / ~ 2.6s which is still relatively close to 1.2s x 2
50,000 items / ~ 32s which is really far from 2.6s x 5

Where does this performance degradation comes from? I would have expected that the more I insert items in the same transaction, the faster it gets and not the other way around.

Did you also try using Marten's bulk insert function?

@cocowalla not yet, but my point is more about why there are such discrepancies with StoreObjects?

@ehouarn-perret hard to say right now what's causing the issue. We'll try to investiage that.

@ehouarn-perret Multiple calls to the database and batching when you get this big. Memory usage too I'd imagine. You could probably mess with the batch size to improve the performance if these are little documents.
More importantly though, the bulk insert functionality is far more appropriate here anyway, so if you could just try to use the tool idiomatically, I think you're going to be just fine.
I'm closing this.

authors: cocowalla ehouarn-perret jeremydmiller oskardudycz

repo: JasperFx/marten


text:
SelectMany() with Stats()

Ugh, this one's gonna be ugly.

Wasn't that bad after all -- pending no regression failures from normal usage;)

source: gharchive/issue

license: MIT

license_type: permissive

license_source: github-api


text:
DeleteWhere and Store(T[]) in same session

When doing a DeleteWhere<T> and then a Store(T[]) in the same session (maybe you want to remove something prior to inserting something else in the same transaction and can't just replace by id as they might be random), the Delete command is executed last in the first batch of commands.
I've tracked it down to https://github.com/JasperFx/marten/blob/master/src/Marten/Services/UnitOfWork.cs#L191 where the "operations" (in this case the delete where) is added after the insert commands and hence executed last in that batch. Moving it before the inserts only works unless you have 500 or more commands, in that case it runs first in the second batch, possibly removing everything matching from the first batch.
If we just move the "operations" first the following happens: Say you do a DeleteWhere<T> and then inserts 510 new entities that also might match the delete criteria:
theSession.DeleteWhere<User>(x => x.LastName == "batch-id");
theSession.Store(batch.ToArray()); //510 new entities where LastName might match delete criteria
theSession.SaveChanges();

the following batches of commands would be executed:
Batch1:
11 INSERTS
Batch2:
1 DELETE, 499 INSERTS

The first 11 inserted rows will be deleted if they match the delete criteria even though we specified the DeleteWhere before storing new entities.
So the commands aren't always executed in the order they're specified in code.
Not sure it's recommended doing it this way and I can get around it by specifying more properties in the delete criteria, but this might trip someone else up as well.
As for a solution, I don't know of anything given right of the bat as just moving the operations around might cause other things to act strange. Possibly we have to be sure we keep track of the order someone issues a command...
Will look into this more after the weekend if needed.

Note! The example above was when moving https://github.com/JasperFx/marten/blob/master/src/Marten/Services/UnitOfWork.cs#L191 prior to doing the inserts.
If I don't move it the result from the scenario above will be 500, so the remaining 10 gets deleted.


text:
Duplicate _logger field in generated handler code

I have a case where generated code tries to compile a class with 2 fields named _logger. It's related to using a custom policy where Infrastructure.Authorization.AuthorizationPolicy.EnforcePolicy has an ILogger parameter and the upgrade of Wolverine:
-    WolverineFx (0.9.12)
+    WolverineFx (0.9.13)
       FastExpressionCompiler (>= 3.3.4)
-      JasperFx.CodeGeneration.Commands (>= 1.1)
-      JasperFx.Core (>= 1.1)
-      JasperFx.RuntimeCompiler (>= 1.1)
-      Lamar.Microsoft.DependencyInjection (>= 10.0.2)
+      JasperFx.CodeGeneration.Commands (>= 2.0)
+      JasperFx.Core (>= 1.2)
+      JasperFx.RuntimeCompiler (>= 2.0)
+      Lamar.Microsoft.DependencyInjection (>= 11.0)

This is the generated code:

Failed to create a message handler for Application.UseCases.Reservierung.Reservieren.ArbeitsplatzReservieren
System.InvalidOperationException: Compilation failures!

CS0100: The parameter name 'logger' is a duplicate
CS0102: The type 'ArbeitsplatzReservierenHandler1260337258' already contains a definition for '_logger'
CS0229: Ambiguity between 'ArbeitsplatzReservierenHandler1260337258._logger' and 'ArbeitsplatzReservierenHandler1260337258._logger'
CS0229: Ambiguity between 'ILogger<ArbeitsplatzReservieren> logger' and 'ILogger<DefaultAuthorizationService> logger'
CS0229: Ambiguity between 'ArbeitsplatzReservierenHandler1260337258._logger' and 'ArbeitsplatzReservierenHandler1260337258._logger'
CS0229: Ambiguity between 'ILogger<ArbeitsplatzReservieren> logger' and 'ILogger<DefaultAuthorizationService> logger'
CS0229: Ambiguity between 'ArbeitsplatzReservierenHandler1260337258._logger' and 'ArbeitsplatzReservierenHandler1260337258._logger'
CS0229: Ambiguity between 'ArbeitsplatzReservierenHandler1260337258._logger' and 'ArbeitsplatzReservierenHandler1260337258._logger'

Code:

// <auto-generated/>
#pragma warning disable
using Application.UseCases.Reservierung.Reservieren.Regeln;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Wolverine.Marten.Publishing;

namespace Internal.Generated.WolverineHandlers
{
    // START: ArbeitsplatzReservierenHandler1260337258
    public class ArbeitsplatzReservierenHandler1260337258 : Wolverine.Runtime.Handlers.MessageHandler
    {
        private readonly Wolverine.Marten.Publishing.OutboxedSessionFactory _outboxedSessionFactory;
        private readonly Application.UseCases.Reservierung.Reservieren.Regeln.IPolicyRule _policyRule1845047320;
        private readonly Microsoft.AspNetCore.Authorization.IAuthorizationHandler _authorizationHandler53398325;
        private readonly Microsoft.AspNetCore.Http.IHttpContextAccessor _httpContextAccessor;
        private readonly Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Authorization.AuthorizationOptions> _options2;
        private readonly Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider _authorizationPolicyProvider1934092963;
        private readonly Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Authorization.AuthorizationOptions> _options1;
        private readonly Microsoft.AspNetCore.Authorization.IAuthorizationHandler _authorizationHandler_53449486;
        private readonly Microsoft.Extensions.Logging.ILogger<Application.UseCases.Reservierung.Reservieren.ArbeitsplatzReservieren> _logger;
        private readonly Microsoft.AspNetCore.Authorization.IAuthorizationHandler _authorizationHandler_1541787964;
        private readonly Application.UseCases.Reservierung.Reservieren.Regeln.IPolicyRule _policyRule2086865308;
        private readonly Microsoft.AspNetCore.Authorization.IAuthorizationHandler _authorizationHandler184019271;
        private readonly Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Authorization.DefaultAuthorizationService> _logger;

        public ArbeitsplatzReservierenHandler1260337258(Wolverine.Marten.Publishing.OutboxedSessionFactory outboxedSessionFactory, [Lamar.Named("ohneBestehendeReservierung")] Application.UseCases.Reservierung.Reservieren.Regeln.IPolicyRule policyRule1845047320, [Lamar.Named("resourceAccessRequirementHandler")] Microsoft.AspNetCore.Authorization.IAuthorizationHandler authorizationHandler53398325, Microsoft.AspNetCore.Http.IHttpContextAccessor httpContextAccessor, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Authorization.AuthorizationOptions> __options2, [Lamar.Named("protectedResourcePolicyProvider")] Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider authorizationPolicyProvider1934092963, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Authorization.AuthorizationOptions> __options1, [Lamar.Named("decisionRequirementHandler")] Microsoft.AspNetCore.Authorization.IAuthorizationHandler authorizationHandler_53449486, Microsoft.Extensions.Logging.ILogger<Application.UseCases.Reservierung.Reservieren.ArbeitsplatzReservieren> logger, [Lamar.Named("realmAccessRequirementHandler")] Microsoft.AspNetCore.Authorization.IAuthorizationHandler authorizationHandler_1541787964, [Lamar.Named("imZeitraumReservierbar")] Application.UseCases.Reservierung.Reservieren.Regeln.IPolicyRule policyRule2086865308, [Lamar.Named("rptRequirementHandler")] Microsoft.AspNetCore.Authorization.IAuthorizationHandler authorizationHandler184019271, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Authorization.DefaultAuthorizationService> logger)
        {
            _outboxedSessionFactory = outboxedSessionFactory;
            _policyRule1845047320 = policyRule1845047320;
            _authorizationHandler53398325 = authorizationHandler53398325;
            _httpContextAccessor = httpContextAccessor;
            _options2 = __options2;
            _authorizationPolicyProvider1934092963 = authorizationPolicyProvider1934092963;
            _options1 = __options1;
            _authorizationHandler_53449486 = authorizationHandler_53449486;
            _logger = logger;
            _authorizationHandler_1541787964 = authorizationHandler_1541787964;
            _policyRule2086865308 = policyRule2086865308;
            _authorizationHandler184019271 = authorizationHandler184019271;
            _logger = logger;
        }

        public override async System.Threading.Tasks.Task HandleAsync(Wolverine.Runtime.MessageContext context, System.Threading.CancellationToken cancellation)
        {
            var passThroughAuthorizationHandler = new Microsoft.AspNetCore.Authorization.Infrastructure.PassThroughAuthorizationHandler(_options1);
            var authorizationHandlerList = new System.Collections.Generic.List<Microsoft.AspNetCore.Authorization.IAuthorizationHandler>{passThroughAuthorizationHandler, _authorizationHandler_53449486, _authorizationHandler184019271, _authorizationHandler_1541787964, _authorizationHandler53398325};
            var defaultAuthorizationHandlerProvider = new Microsoft.AspNetCore.Authorization.DefaultAuthorizationHandlerProvider(authorizationHandlerList);
            var defaultAuthorizationHandlerContextFactory = new Microsoft.AspNetCore.Authorization.DefaultAuthorizationHandlerContextFactory();
            var defaultAuthorizationEvaluator = new Microsoft.AspNetCore.Authorization.DefaultAuthorizationEvaluator();
            var defaultAuthorizationService = new Microsoft.AspNetCore.Authorization.DefaultAuthorizationService(_authorizationPolicyProvider1934092963, defaultAuthorizationHandlerProvider, _logger, defaultAuthorizationHandlerContextFactory, defaultAuthorizationEvaluator, _options2);
            var currentUserService = new Infrastructure.Authorization.CurrentUserService(_httpContextAccessor);
            var identityService = new Infrastructure.Authorization.IdentityService(defaultAuthorizationService, currentUserService);
            var policyRuleArray = new Application.UseCases.Reservierung.Reservieren.Regeln.IPolicyRule[]{_policyRule2086865308, _policyRule1845047320};
            var policyEvaluator = new Application.UseCases.Reservierung.Reservieren.PolicyEvaluator(policyRuleArray);
            var arbeitsplatzReservieren = (Application.UseCases.Reservierung.Reservieren.ArbeitsplatzReservieren)context.Envelope.Message;
            await using var documentSession = _outboxedSessionFactory.OpenSession(context);
            await Infrastructure.Authorization.AuthorizationPolicy.EnforcePolicy<Application.UseCases.Reservierung.Reservieren.ArbeitsplatzReservieren>(identityService, ((Microsoft.Extensions.Logging.ILogger)_logger), arbeitsplatzReservieren).ConfigureAwait(false);
            (var arbeitsplatz, var eventStream) = await Application.UseCases.Reservierung.Reservieren.ReservierenHandler.LoadAsync(arbeitsplatzReservieren, documentSession, cancellation).ConfigureAwait(false);
            var outgoing1 = Application.UseCases.Reservierung.Reservieren.ReservierenHandler.Handle(arbeitsplatzReservieren, arbeitsplatz, eventStream, currentUserService, policyEvaluator, documentSession);
            // Outgoing, cascaded message
            await context.EnqueueCascadingAsync(outgoing1).ConfigureAwait(false);

            // Commit the unit of work
            await documentSession.SaveChangesAsync(cancellation).ConfigureAwait(false);
        }

    }

    // END: ArbeitsplatzReservierenHandler1260337258

}

    at JasperFx.RuntimeCompiler.AssemblyGenerator.Generate(String code)
    at JasperFx.RuntimeCompiler.AssemblyGenerator.Compile(GeneratedAssembly generatedAssembly, IServiceVariableSource services)
    at JasperFx.RuntimeCompiler.CodeFileExtensions.InitializeSynchronously(ICodeFile file, GenerationRules rules, ICodeFileCollection parent, IServiceProvider services)
    at Wolverine.Runtime.Handlers.HandlerGraph.HandlerFor(Type messageType)
    at Wolverine.Runtime.WolverineRuntime.Wolverine.Runtime.IExecutorFactory.BuildFor(Type messageType)
    at Wolverine.Runtime.WolverineRuntime.findInvoker(Type messageType)

using IntegrationTests;

using JasperFx.CodeGeneration;
using JasperFx.CodeGeneration.Frames;

using Lamar;

using Marten;

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

using Wolverine;
using Wolverine.Configuration;
using Wolverine.Marten;
using Wolverine.Runtime.Handlers;
using Wolverine.Tracking;

using Xunit;

namespace PersistenceTests.Marten.Bugs;

public class middleware_deps : PostgresqlContext
{
  [Fact]
  public async Task should_find_handler()
  {
    using var host = await Host.CreateDefaultBuilder()
                               .ConfigureServices(services =>
                               {
                                 services.AddLogging();
                                 services.AddScoped<IDependencyRequiringLogger, DependencyRequiringLogger>();

                                 services.AddMarten(connectionString: Servers.PostgresConnectionString)
                                         .IntegrateWithWolverine();
                               })
                               .UseWolverine(opts =>
                               {
                                 opts.Policies.Add<RequiringLoggerPolicy>();
                               })
                               .StartAsync();

    var id = Guid.NewGuid();

    await host.InvokeMessageAndWaitAsync(new StoreSomething(Id: id));
  }

  public interface IDependencyRequiringLogger
  {
  }

  public class DependencyRequiringLogger : IDependencyRequiringLogger
  {
    public DependencyRequiringLogger(ILogger<DependencyRequiringLogger> logger)
    {
    }
  }

  public class RequiringLoggerPolicy : IHandlerPolicy
  {
    public void Apply(IReadOnlyList<HandlerChain> chains, GenerationRules rules, IContainer container)
    {
      foreach (var chain in chains)
      {
        var method = GetType().GetMethod(nameof(SamplePolicy))!;

        var methodCall = new MethodCall(GetType(), method);

        chain.Middleware.Add(methodCall);
      }
    }

    public static Task SamplePolicy(ILogger logger, IDependencyRequiringLogger dep)
      => Task.CompletedTask;
  }
}

public record StoreSomething(Guid Id);

public record Something(Guid Id)
{
  public static Something Create(StoreSomething ev) => new(ev.Id);
};

public class StoreSomethingHandler
{
  public static void Handle(StoreSomething command)
  {
  }
}

The same happens if you return two instances of IEventStream<T> from LoadAsync (composite handler).
(var myDomainType, var eventStream, var eventStream) = await SomeHandler.LoadAsync(...)

repo: JasperFx/wolverine


text:
Find performance bottleneck.

I am sure the system can be way faster then this

Together with this I also want to make the system more light. Also I want to minimize the code base.

repo: JaspervRijbroek/raddish

license: mit

license_source: bigquery


text:
Add support for AES GCM

Java 8 also have support for GCM, which is preferred over CBC based AES encryption. Task is simply to implement this.

Although the IVSalt is generated with 16 bytes, which may affect the usage of the GCM algorithm negatively, it is left as it is for now. At a later point it can be cleaned up, and improved if required/requested.
Closing this issue for now.

repo: JavaDogs/cws


text:
Commit de cambios en estilos

Update style on CSS

Change CSS

source: gharchive/pull-request


text:
Last nuget package update was in 2020

The current nuget version of Onvif.Core is 2.2.2 and was published 09/06/2020.
There are a lot of good bug fixes since then.
Would it be possible to publish a new version?

Any updates on package update? :)

Any updates on package update? :)

Hi, author @wei-taoxu seems very busy these days, he ask me to help him to maintenance this repo.
So...may be we have to wait a little bit longer.

authors: coldays differentrain


text:
Adding new dark style

Adding new style for issue #9

@Jeconias @juanmagutierrez Wouldn't it be better if we only overwrite the themed parts and not the whole CSS file? This is literally the default CSS copied with only the colors changed.
I would suggest using color variables, what do you think?

@Jeconias @juanmagutierrez Wouldn't it be better if we only overwrite the themed parts and not the whole CSS file? This is literally the default CSS copied with only the colors changed.
I would suggest using color variables, what do you think?

Yes, I am thinking of a good way to do this in the project. Using sass or another way. any suggestion?
I think about getting the base style injected in calendarjs, I don't know if that's good.

I can work on a solution and create a PR, this can be done without sass or less

authors: Jeconias juanmagutierrez leventdeniz

repo: Jeconias/calendarjs


text:
HMR and React with Mix

Laravel Mix Version: 1.4.5 (npm list --depth=0)
Node Version (node -v): 7.3.0
NPM Version (npm -v): 3.10.10
OS: Windows 10

Description:
Hi, I'm trying to run Hot reloading for my react assets for a long time but without any success. I was trying many configurations from GH and nothing works. Could you help / share your config and tell what exactly should I do for enable it.
My webpack.mix.js:
mix.webpackConfig({
    devtool: "source-map", devServer: {
        contentBase: path.resolve(__dirname, 'public'),
    },
    module: {
        loaders: [{
            test: /\.js$/,
            loaders: ['react-hot-loader/webpack', 'babel'],
        }]
    },
    entry: {
        'app': [
            'babel-polyfill',
            'react-hot-loader/patch',
            './resources/assets/js/app'
        ]
    }
});

mix.react('resources/assets/js/app.js', 'public/js').sourceMaps(true);
mix.sass('resources/assets/sass/app.scss', 'public/css').sourceMaps(true);

.babelrc:
{
  "plugins": ["transform-decorators-legacy", "transform-class-properties", "transform-object-rest-spread", "react-hot-loader/babel"]
}

my app.js:
import 'react-hot-loader/patch';
import React from 'react'
import ReactDOM from 'react-dom'
import {AppContainer} from 'react-hot-loader';
import App from './components/App'
import './styles/app.scss'

const MOUNT_NODE = document.getElementById('app');

ReactDOM.render(
    <AppContainer>
        <App/>
    </AppContainer>
    ,
    MOUNT_NODE
);
if (process.env.NODE_ENV === 'development' && module.hot) {
    module.hot.accept();
}

And hot script in package.json:
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --output-public-path=public/ --config=node_modules/laravel-mix/setup/webpack.config.js",

Generally hot script starts without errors, and it says that compiled successfully, I am on app.dev and js file is loaded from localhost:8080, but there are no any effect in browser, also there are nothing about HMR in console. Watching files with browserSync works well but it reloads full page, but I want to achieve hot reload.

Do you have any solutions for this issue ?

Anyone got it working yet ??

Any Updates ?

I've managed to got it working now

laravel-mix@2.1.11
react-hot-loader@4.3.3

webpack.mix.js
mix.react('resources/assets/js/app.js', 'js')
    .sass('resources/assets/sass/app.scss', 'css');

mix.webpackConfig({
    output: {
        publicPath: 'http://localhost:8080/',
    },
    devServer: {
        hot: true, // this enables hot reload
        inline: true, // use inline method for hmr
        contentBase: path.join(__dirname, 'public'),
        port: 8080,
        headers: { 'Access-Control-Allow-Origin': '*' },
        watchOptions: {
            exclude: [/bower_components/, /node_modules/]
        },
    },
    node: {
        fs: 'empty',
        module: 'empty',
    },
    plugins: [
        new webpack.SourceMapDevToolPlugin({
            filename: '[name].js.map',
        }),
    ],
});
// Per this issue: https://github.com/JeffreyWay/laravel-mix/issues/1483
Mix.listen('configReady', (webpackConfig) => {
    if (Mix.isUsing('hmr')) {
        // Remove leading '/' from entry keys
        webpackConfig.entry = Object.keys(webpackConfig.entry).reduce(
            (entries, entry) => {
                entries[entry.replace(/^\//, '')] = webpackConfig.entry[entry];
                // }
                // console.log(entries);
                return entries;
            },
            {}
        );
        // Remove leading '/' from ExtractTextPlugin instances
        webpackConfig.plugins.forEach((plugin) => {
            if (plugin.constructor.name === "ExtractTextPlugin") {
                // console.log(plugin.filename);
                plugin.filename = plugin.filename.replace(/^\//, '');
                // console.log(plugin.filename);
            }
        });
    }

    console.log(webpackConfig.output);
});

.babelrc
{
    "presets": [
        "react",
        "env"
    ],
    "plugins": [
        "react-hot-loader/babel",
        "transform-class-properties"
    ]
}

npm scripts
"scripts": {
    ...
    "hot": "cross-env NODE_ENV=development webpack-dev-server --progress --colors --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    ...
  },

Happy hot reload everyone !!

Try this Hot Reload method:

Open webpack.mix.js and add at the bottom:
mix.browserSync('localhost:8000');

The parameter inside depend on your php artisan serve url and port.

Run npm run watch to install dependency needed for browserSync method.
Run php artisan serve and npm run watch (on different cmd)

Hope this help.
source: https://medium.com/@michael.tandio/easy-setup-hot-loader-for-react-laravel-with-laravel-mix-8f68a1393624

mix.react('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .browserSync({
    proxy: 'http://127.0.0.1:8000',
    files: [
        'resources/js/**/*.js'
    ]
});

I think this is how michael-harley suggested. it works but there is a problem, when using react router when url changes and u make changes in the js file page reloads and then laravel takes u to 404 page as the new route is not defined in web.php which is the normal behavior , any work around for this ?

@michael-harley
Its Live reloading not hot reloading

In my laravel project it working now
Package use:

react-hot-loader@4.13.0
babel-plugin-transform-class-properties@6.24.1
babel-preset-react@6.24.1

and my mix config
const mix = require('laravel-mix');

mix.ts('resources/ts/app.tsx', 'public/js')
    .postCss('resources/css/app.css', 'public/css', [
        require("tailwindcss"),
        require("autoprefixer"),
    ]);`

mix.babelConfig({
    presets: [
        [
            '@babel/preset-env',
            {
                modules: 'auto',
                targets: { node: 'current' }
            },
            '@babel/preset-react',
        ]
    ],
    plugins: [
        [
            'react-hot-loader/babel',
            '@babel/plugin-proposal-class-properties',
            {
                loose: true
            }
        ]
    ]
})

App.tsx
import React from 'react';
import {Redirect, Route, Router, Switch} from "react-router-dom";
import { history } from "../helper/history";
import { routes } from "../helper/routes";
import {CustomRoute} from '../components';
import { hot } from 'react-hot-loader/root';

const App = () => (
    <>
        <Router history={history}>
            <Switch>
                { routes.map((route, i) =>
                    <CustomRoute key={i} {...route} />
                ) }
                <Redirect from="*" to="/"/>
            </Switch>
        </Router>
    </>
)
export default hot(App);

Hope it helps.

authors: RibikiH VuYeK Wchindanai edwinharly jeankvd shamseerahammedm skfahad specialy22

repo: JeffreyWay/laravel-mix


text:
Unexpected double slash generated using webp in URL Processing

Laravel Mix Version: 2.1.11
Node Version (node -v): 9.9.0
NPM Version (npm -v): 5.6.0
OS: ubuntu ( using workspace container of laradock )

I am using url processing with jpeg and webp and since a while (between mix 2.0.0 and 2.1.11), it's not working anymore with webp.
here is my scss code :
.no-webp .custom-background {
    background-image: url('../img/custom.jpeg');
}

.webp .custom-background {
    background-image: url('../img/custom.webp');
}

css generated with laravel mix 2.1.11 :

.no-webp .custom-background {
    background-image: url(/images/custom.jpeg?47ab273…);
}

.webp .custom-background {
    background-image: url(//images/custom.webp?1cb1372…);
}

css generated with laravel mix 2.0.0 :

.no-webp .custom-background {
    background-image: url(/images/custom.jpeg?47ab273…);
}

.webp .custom-background {
    background-image: url(/images/custom.webp?1cb1372…);
}

Not reproduced in webpack "4.0.15", thanks.


text:
Cannot find module 'object-assign'

Laravel Mix Version: 2.1.14 (npm list --depth=0)
Node Version (node -v): v8.11.4
NPM Version (npm -v):  5.6.0
OS: Windows 10

Description:
With a fresh project of Laravel 5.6 run : npm install
package.json
{
    "private": true,
    "scripts": {
        "dev": "npm run development",
        "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "watch": "npm run development -- --watch",
        "watch-poll": "npm run watch -- --watch-poll",
        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
        "prod": "npm run production",
        "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
    },
    "devDependencies": {
        "axios": "^0.18.0",
        "bootstrap": "^4.1.3",
        "popper.js": "^1.14.4",
        "cross-env": "^5.2",
        "jquery": "^3.3",
        "laravel-mix": "2.1.14",
        "lodash": "^4.17.10",
        "vue": "^2.5.17"
    }
}

I get the following error message.

node-sass@4.9.3 install
node scripts/install.js
module.js:549
throw err;
^
Error: Cannot find module 'object-assign'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
npm WARN ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN img-loader@3.0.0 requires a peer of imagemin@^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@4.9.3 install: node scripts/install.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@4.9.3 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!    Roaming\npm-cache_logs\2018-08-26T04_06_56_868Z-debug.log
Process finished with exit code 1

This seems to be an issue with node-sass that affect laravel-mix


text:
assets with relative url paths are not resolved due to webpack config bug (>v0.6.0)

In line 142ff in node_modules/laravel-mix/setup/webpack.config.js there is
                        {
                            loader: 'sass-loader?sourceMap',
                            options: Object.assign({
                                precision: 8,
                                outputStyle: 'expanded'
                            }, toCompile.pluginOptions)
                        }
                    ] : [
                        {
                            loader: 'less-loader' + sourceMap,
                            options: toCompile.pluginOptions
                        }

this cannot work because the sourceMap option is still passed within the loader string but then lost because an option object is passed. To work again this should be something like:
         {
                            loader: 'sass-loader',
                            options: Object.assign({
                                sourceMap: true,
                                precision: 8,
                                outputStyle: 'expanded'
                            }, toCompile.pluginOptions)
                        }
                    ] : [
                        {
			    loader: 'less-loader',
			    options: Object.assign({
                                sourceMap: true
                            }, toCompile.pluginOptions)
                        }

In the same section there are also the deprecated parts that causes warnings:
        module.exports.module.rules.push({
            test: new RegExp(toCompile.src.path.replace(/\\/g, '\\\\') + '$'),
            loader: extractPlugin.extract({
                fallbackLoader: 'style-loader',
                loader: [
                    { loader: 'css-loader' + sourceMap },
                    { loader: 'postcss-loader' + sourceMap }
which should be updated to:
module.exports.module.rules.push({
            test: new RegExp(toCompile.src.path.replace(/\\/g, '\\\\') + '$'),
            use: extractPlugin.extract({
                fallback: 'style-loader',
                use: [
                    { loader: 'css-loader' + sourceMap },
                    { loader: 'postcss-loader' + sourceMap }

Sincerely yours
parapilot

Got the same error. #279
JeffreyWay rejected this PR because the sourceMap of sass-loader is strictly required, should not be override by user's config.
So, you can change the sass-loader to:
{
    loader: 'sass-loader',
        options: Object.assign({
            precision: 8,
            outputStyle: 'expanded'
    }, toCompile.pluginOptions, { sourceMap: true })
}

I'll create a PR soon.

We fixed this in a recent PR.

authors: JeffreyWay forehalo parapilot


text:
npm run prod error with scripts method

Laravel Mix Version : 0.10.0
Node Version : 7.8.0
NPM Version : 4.2.0
OS : MacOS Sierra 10.12.4

Description:
I have an error since I tried to run the command npm run prod before pushing a project in production.
This error does not occurs when I run npm run dev or npm run watch.
I noticed (by commenting other portions of code into my webpack.mix.js file) that it seems that the mix.scriptsmethod causes the problem.
Anyway, here is my package.json content :
{
  "private": true,
  "scripts": {
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  },
  "devDependencies": {
    "cross-env": "^4.0.0",
    "laravel-mix": "0.*",
    "lodash": "^4.17.4"
  }
}

Here is my webpack.mix.js content that cause the error (everything else is commented) :
const { mix } = require('laravel-mix');

mix.scripts([
  'resources/assets/js/front/app.front.js'
], 'public/js/app.front.js');

Here is the console message when I run npm run prod :
> @ prod /Users/arthurlorent/workspace/genius
> npm run production

> @ production /Users/arthurlorent/workspace/genius
> cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

 95% emitting

 DONE  Compiled successfully in 112ms                                                                                18:00:46

undefined:92
    throw new DefaultsError(msg, defs);
    ^
Error:

npm ERR! Darwin 16.4.0
npm ERR! argv "/usr/local/Cellar/node/7.8.0/bin/node" "/usr/local/bin/npm" "run" "production"
npm ERR! node v7.8.0
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ production: `cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ production script 'cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the  package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/arthurlorent/.npm/_logs/2017-04-06T16_00_46_850Z-debug.log

npm ERR! Darwin 16.4.0
npm ERR! argv "/usr/local/Cellar/node/7.8.0/bin/node" "/usr/local/bin/npm" "run" "prod"
npm ERR! node v7.8.0
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ prod: `npm run production`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ prod script 'npm run production'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the  package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm run production
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/arthurlorent/.npm/_logs/2017-04-06T16_00_46_882Z-debug.log

And finally, here is the content of the npm log :
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/Cellar/node/7.8.0/bin/node',
1 verbose cli   '/usr/local/bin/npm',
1 verbose cli   'run',
1 verbose cli   'prod' ]
2 info using npm@4.2.0
3 info using node@v7.8.0
4 verbose run-script [ 'preprod', 'prod', 'postprod' ]
5 info lifecycle @~preprod: @
6 silly lifecycle @~preprod: no script for preprod, continuing
7 info lifecycle @~prod: @
8 verbose lifecycle @~prod: unsafe-perm in lifecycle true
9 verbose lifecycle @~prod: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/Users/arthurlorent/workspace/genius/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/arthurlorent/.composer/vendor/bin:/Users/arthurlorent/~/.npm-global/bin:/Users/arthurlorent/.composer/vendor/bin:/Users/arthurlorent/workspace/genius/~/.npm-global/bin:/Users/arthurlorent/.composer/vendor/bin:
10 verbose lifecycle @~prod: CWD: /Users/arthurlorent/workspace/genius
11 silly lifecycle @~prod: Args: [ '-c', 'npm run production' ]
12 silly lifecycle @~prod: Returned: code: 1  signal: null
13 info lifecycle @~prod: Failed to exec prod script
14 verbose stack Error: @ prod: `npm run production`
14 verbose stack Exit status 1
14 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:279:16)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at EventEmitter.emit (events.js:194:7)
14 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:40:14)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at ChildProcess.emit (events.js:194:7)
14 verbose stack     at maybeClose (internal/child_process.js:899:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
15 verbose pkgid @
16 verbose cwd /Users/arthurlorent/workspace/genius
17 error Darwin 16.4.0
18 error argv "/usr/local/Cellar/node/7.8.0/bin/node" "/usr/local/bin/npm" "run" "prod"
19 error node v7.8.0
20 error npm  v4.2.0
21 error code ELIFECYCLE
22 error errno 1
23 error @ prod: `npm run production`
23 error Exit status 1
24 error Failed at the @ prod script 'npm run production'.
24 error Make sure you have the latest version of node.js and npm installed.
24 error If you do, this is most likely a problem with the  package,
24 error not with npm itself.
24 error Tell the author that this fails on your system:
24 error     npm run production
24 error You can get information on how to open an issue for this project with:
24 error     npm bugs
24 error Or if that isn't available, you can get their info via:
24 error     npm owner ls
24 error There is likely additional logging output above.
25 verbose exit [ 1, true ]

Steps To Reproduce:
Just run npm run prod to reproduce the problem explained above.

I found the error. I was installing the last laravel-mix and cross-env dependencies versions.
It seems that this is what caused the error.
I installed the versions provided by the last stable Laravel version and everything is OK now : https://github.com/laravel/laravel/blob/v5.4.16/package.json

It could also be related to Uglify issues. For anyone else, make sure that you don't have a custom .babelrc file that's overriding our version.

I have the same problem. npm run production fails on server unless I downgrade to Laravel-Mix 0.8.x. Anyone found a fix for that?

@JeffreyWay on Laravel-Mix we should be using uglify-es as of: https://github.com/mishoo/UglifyJS2/tree/harmony

Unfortunately I'm already using https://github.com/laravel/laravel/blob/v6.4.0/package.json but still get this error occasionally (like right now, and it's blocking me), and I've never figured out the solution. And I don't have a .babelrc file.

authors: JeffreyWay Okipa evertramos leonorpan ryancwalsh


text:
🛑 USW Gestión is down

In 3e8c048, USW Gestión (https://uswgestion.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: USW Gestión is back up in a4be8dc after 1 hour, 3 minutes.


text:
Add a hover/click effect over buttons

To make buttons feel like they are being pressed, and emphasize that they are buttons when hovered over, there should perhaps be a circular gray background behind them when they are pressed or hovered over.

Implemented

repo: JeremyGenius/ate


text:
Filtered out abstract or open generic types #339

Filtered out abstract and generic type definitions

Applied, thanks!

authors: JeremySkinner gideonkorir

repo: JeremySkinner/FluentValidation


text:
Arabic branch

Arabic locale added..

hi ,
in arabic layout camera view right side showing padding..Any help will

be appreciated..pls check screenshot..
On Thu, Aug 13, 2020 at 7:45 AM JessYan notifications@github.com wrote:

Merged #21 https://github.com/JessYanCoding/InsGallery/pull/21 into
master.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/JessYanCoding/InsGallery/pull/21#event-3650112215,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQSHR7XYYO2U3TWOJCIKPKTSANEDRANCNFSM4P24J4WQ
.

repo: JessYanCoding/InsGallery


text:
请问GeneratorTest的URL从哪里获取呢

再GeneratorTest类的URL属性，代码完整下下来后发现是https://xxxxxxxxxxxxx.gradio.live/，找了挺久没找到

就是 stable-diffusion 后台接口，代码中仅做示例。
如果使用 stable-diffusion-webui 部署的话，在最后会提供一个这样的链接

repo: JesseTzh/stable-diffusion-java


text:
Default password

Sorry if this is a stupid question, but what is the default password after running the script?

It is the same as your password for the user profile.

Default root password doesn't work for me. Where is the problem?

authors: aminya gundam00meister tenhobi

repo: JetBrains/clion-wsl


text:
ComposeScene.roots to return child compose scenes created for Window and DialogWindow

Currently, the ComposeScene created for a Window or a DialogWindow can't be reached by semantic node fetching, because we don't return their owners from testOwner.getRoots (in ComposeScene.roots). So for example, this will fail:
    @Test
    fun testNodeInWindow() {
        rule.setContent {
            Window(
                onCloseRequest = {},
            ) {
                Text(
                    text = "Text",
                    modifier = Modifier.testTag("tag")
                )
            }
        }

        rule.onNodeWithTag("tag").assertExists()
    }

Proposed Changes

When a Window or DialogWindow is created, it will add its ComposeScene as a child scene to its parent.
ComposeScene.roots will return its own owners and all of its descendent's owners.

Testing
Test: Added unit tests to verify that nodes inside Window and DialogWindow can be found.

Hmm, maybe the tests should be in WindowTest and DialogTest instead. What do you think?

repo: JetBrains/compose-multiplatform-core


text:
Issue al compile compose web

I download the template (https://github.com/JetBrains/compose-jb/tree/master/templates/web-template) and follow all the steps, and always I have the same problem, after run ./gradlew jsBrowserRun the terminal show me this error

I added this to my afterEvaluate block
    rootProject.plugins.withType(org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin::class.java) {         rootProject.the<org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension>().versions.webpackCli.version = "4.9.0"     }
see: https://github.com/webpack/webpack-cli/issues/2990

the workaround is not needed anymore when using compose-for-web 1.0.1-rc2 with kotlin 1.6.10

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.

authors: carlosgub eymar okushnikov scottkruse

repo: JetBrains/compose-multiplatform


text:
"Impossible" OnPositionedDispatcher.dispatch NPE regression in 262

This happens when I use a ComposeWindow to show popup content in Aurora
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at androidx.compose.ui.node.OnPositionedDispatcher.dispatch(OnPositionedDispatcher.kt:43)
	at androidx.compose.ui.node.MeasureAndLayoutDelegate.dispatchOnPositionedCallbacks(MeasureAndLayoutDelegate.kt:251)
	at androidx.compose.ui.node.MeasureAndLayoutDelegate.dispatchOnPositionedCallbacks$default(MeasureAndLayoutDelegate.kt:247)
	at androidx.compose.ui.platform.DesktopOwner.measureAndLayout(DesktopOwner.desktop.kt:269)
	at androidx.compose.desktop.ComposeLayer$Wrapped.doLayout(ComposeLayer.desktop.kt:118)

The relevant code in Aurora is in the block that starts at https://github.com/kirill-grouchnikov/aurora/blob/icicle/component/src/desktopMain/kotlin/org/pushingpixels/aurora/component/AuroraCommandButton.kt#L1314
The code in androidx.compose.ui.node.OnPositionedDispatcher crashes on if (layoutNode.needsOnPositionedDispatch) with NPE - where Kotlin "promises" that layoutNode cannot be null

Reproducer:
import androidx.compose.desktop.ComposeWindow
import androidx.compose.foundation.layout.Box
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.onGloballyPositioned
import java.awt.Dimension
import javax.swing.SwingUtilities

fun main() = SwingUtilities.invokeLater {
    val window = ComposeWindow()
    window.isVisible = true
    window.setContent {
        Box(Modifier.onGloballyPositioned {
            window.preferredSize = Dimension(200, 200)
            window.size = Dimension(200, 200)
            window.invalidate()
            window.validate()
        })
    }
}

In the new version we made Compose layout as a part of Swing layout pipeline. So when we call validate(), Swing will layout Swing content, and so Compose content. During Compose content layouting we call onGloballyPositioned. So we will have ethier stackoverflow of state inconsistency:
isVisible = true -> window layout -> compose layout -> onGloballyPositioned -> validate -> window layout -> compose layout -> ...

I will investigate if we can detach Compose layout from Swing layout again. But at the first glance this kind of code isn't valid. For example, if you write a Swing component, it is not right to call validate() during component's layout?
What are you trying to achive calling validate in onGloballyPositioned? Is it possible to move logic out of onGloballyPositioned, and call it after ComposeWindow creation and window.pack()?
BTW, if you need to make Window as the size of the content, now you can write this:
import androidx.compose.desktop.ComposeWindow
import androidx.compose.material.Text
import androidx.compose.ui.ExperimentalComposeUiApi
import java.awt.Dimension
import javax.swing.SwingUtilities

@OptIn(ExperimentalComposeUiApi::class)
fun main() = SwingUtilities.invokeLater {
    val frame = ComposeWindow()
    frame.setContent {
        Text(
            "fhjkgh fdjkghgjksdhgjkfsdhgjkfdsh gjksfdghsdfkjghfdkgljfdshgkjlfdshgklsdjfghsdfjklg" +
                " hsdkljfghsdjklgfhsdkjf ghsdfjkgh " +
                "sdfkgjsdhgkjlfdshgkljfdshglksdfhgkjsfdhgjkfd hg"
        )
    }
    frame.preferredSize = Dimension(300, Int.MAX_VALUE)
    frame.pack()
    frame.preferredSize = null
    frame.pack()
    frame.isVisible = true
}

It looks hacky to call pack() two times though. The first call calculates the content's preferedSize based on the window's preferredSize.

The reproducer here is not quite what I have for the popup windows in Aurora. I use onGloballyPositioned to "wait" to know the position of the combobox on the screen, and then position a separate ComposeWindow based on its preferred content size and the screen position of the combobox. So it is the second / popup ComposeWindow.validate() that I call during the layout, not of the window that has the combobox.

And replacing validate with pack is an almost similar stack trace:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at androidx.compose.ui.node.OnPositionedDispatcher.dispatch(OnPositionedDispatcher.kt:43)
	at androidx.compose.ui.node.MeasureAndLayoutDelegate.dispatchOnPositionedCallbacks(MeasureAndLayoutDelegate.kt:251)
	at androidx.compose.ui.node.MeasureAndLayoutDelegate.dispatchOnPositionedCallbacks$default(MeasureAndLayoutDelegate.kt:247)
	at androidx.compose.ui.platform.DesktopOwner.measureAndLayout(DesktopOwner.desktop.kt:269)
	at androidx.compose.desktop.ComposeLayer$Wrapped.doLayout(ComposeLayer.desktop.kt:118)
	at java.desktop/java.awt.Container.validateTree(Container.java:1722)
	at java.desktop/java.awt.Container.validateTree(Container.java:1731)
	at java.desktop/java.awt.Container.validateTree(Container.java:1731)
	at java.desktop/java.awt.Container.validateTree(Container.java:1731)
	at java.desktop/java.awt.Container.validateTree(Container.java:1731)
	at java.desktop/java.awt.Container.validateTree(Container.java:1731)
	at java.desktop/java.awt.Container.validate(Container.java:1657)
	at java.desktop/java.awt.Container.validateUnconditionally(Container.java:1694)
	at java.desktop/java.awt.Window.pack(Window.java:835)

Sorry, what I wrote above is not correct.
The flow is indeed waiting for onGloballyPositioned to know how much space the popup content needs (width x height) to then compute the preferred size of the popup. Imagine the scenario that you have 100 items in the popup menu, and you want to limit the maximum visible to what can fit on the screen with vertical scrolling if necessary.
So until you make the layout pass on the content of the popup window, how do you know if it's going to be more than what fits on the screen?

And replacing validate with pack is an almost similar stack trace:
pack = create a native window + validate +set the size to preferredSize

During validation we layout/measure content and determine preferredSize by content's size

So until you make the layout pass on the content of the popup window, how do you know if it's going to be more than what fits on the screen?

We defenetely need a layout pass to know the content's size. The question how we request it and where we read the result.
If we request a new layout in another layout (i.e. validate in onGloballyPositioned) - should we schedule layouting on the next frame or throw an exception?
The are two workarounds/solutions:

schedule validate() in the SwingUtilities.invokeLater

use pack outside of layout step, before window.isVisible = true
The problems are arise if we want to measure only part of the content, or resize window dynamically. I don't have an answer yet, will investigate futher, how we should behave in such cases.

Not sure if this is the right place to discuss these higher level issues, but here goes.
First, I think the original exception still needs to be addressed. Something somewhere is breaking the Kotlin nullability promise.
Second, there needs to be some sort of a warning message printed to the log when Compose Desktop detects this now-erroneous usage pattern of the infinite layout loop.
Third, and perhaps this is coming from my experience of working with Swing - what I really miss is the ability to compute the preferred size of a thing (a single component or a whole layout) without having it on the screen yet.
This last part is a more general comment on how approachable it is to write complex custom components. In Aurora, I have built a whole set of APIs to do that. Perhaps I'm missing something obvious in here, but this is my main scenario so far (but not the only one).
How do I determine the position and the size of a popup without knowing how much space it needs? It can be something as simple as a combobox with N items. How do I determine the size of the combo popup without having it already on the screen?
What I had in Aurora up until now (and what became broken with this last Compose Desktop build - and probably rightfully so) is this:

Create a ComposeWindow of arbitrarily large size, say 1000x1000 pixels and opacity 0
Add content into it, make it visible (it's still not visible to the user because of zero opacity)
Wait for the layout pass in that onGloballyPositioned callback
Get the content size there, resize the ComposeWindow that is hosting the popup and switch its opacity to 1

With the latest refactoring linked above, I'm using the APIs that I have in Aurora to determine the preferred size of the entire popup even before I create that ComposeWindow. This way, now I can remove the opacity switching, as well as the usage of onGloballyPositioned.
So right now I have a better behaving layout pipeline for my popups in general.
I don't mind if this gets closed, but I think that my first point about violating the nullability contract, and the second point of warning the developer about incorrect usage of the layout APIs still need to be addressed.

what I really miss is the ability to compute the preferred size of a thing (a single component or a whole layout) without having it on the screen yet.

But after the recent change in 262 you can do exactly that. After you call pack() window will be composed and layouted without showing on the screen. PreferredSize will be calculated by window's content (see this comment
For getting the size of the individual components before showing the window you can do this trick:
import androidx.compose.desktop.ComposeWindow
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.geometry.Rect
import androidx.compose.ui.layout.boundsInWindow
import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.unit.dp
import java.awt.Dimension
import javax.swing.SwingUtilities

@OptIn(ExperimentalComposeUiApi::class)
fun main() = SwingUtilities.invokeLater {
    val frame = ComposeWindow()
    lateinit var rect: Rect
    frame.setContent {
        Column {
            Box(Modifier.size(200.dp))
            Box(Modifier.padding(100.dp)) {
                Box(Modifier.size(300.dp).onGloballyPositioned {
                    rect = it.boundsInWindow()
                })
            }
        }
    }
    frame.preferredSize = Dimension(300, Int.MAX_VALUE)
    frame.pack()
    println(rect)
    frame.isVisible = true
}

violating the nullability contract

There are cases in Kotlin where compiler can't determine violation of nullability (at least yet). The simplest example is accessing the not-yet initialized property of the base class:
fun main() {
    A()
}

class A : B() {
    init {
        println(v.length)
    }

    override val g = ""
}

abstract class B {
    val v: String = f()
    fun f() = g
    abstract val g: String
}

But not sure yet what is happening in the case of onGloballyPositioned

second point of warning the developer about incorrect usage of the layout APIs

Yes, if it is really incorrect (I am still not 100% sure, need to check some use cases), we should throw an exception.
Let's not close it, until the issues will be fixed.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.

authors: igordmn kirill-grouchnikov okushnikov


text:
Long duration

I just tried the Qodana-action and it took 11m23s in a very small hello world project I have.

Is it something you guys are aware of it?
Thank you

Hi! Sure, it's one of our most important targets - reducing build time.

Thanks @avafanasiev .
Closes #5

authors: avafanasiev patricksan

repo: JetBrains/qodana-action


text:
"angular" in window check is wrong

See https://github.com/JetBrains/svg-mixer/blob/a4da6b33143281d3ba433d20ad81b727de35037e/packages/svg-mixer/runtime/src/browser-sprite.js#L101
The code '"angular" in window' will return true if window.angular is undefined, but it has a getter/setter defined.
Here an example:
var myWindow = {};
Object.defineProperty(myWindow, "angular", {
  get : function () {}
});
console.log("angular" in myWindow);
console.log(myWindow.angular);
console.log(typeof window.angular);

This leads to an exception down the road, when locationChangeAngularEmitter is being checked and functions on window.angular are being invoked.

@kamtschatka could you please make a PR in branch v1?

@kamtschatka or maybe suggest a solution?

I have opened a PR to master: https://github.com/JetBrains/svg-mixer/pull/78
I am not sure if that PR in branch v1 is also needed? And what about the v2 branch?
Let me know which PRs i should create, I will get to it, when i have some time.

Yep, could you please make PR at v1 branch. Updated version of runtime will be ready soon.

Should be done: https://github.com/JetBrains/svg-mixer/pull/83

Fixed in svg-sprite-loader@4.2.3

authors: kamtschatka kisenka

repo: JetBrains/svg-mixer


text:
Add my school

School website: https://www.nordangliaeducation.com/our-schools/malaysia/kuala-lumpur/british-international
School adress: No.1, Changkat Bukit Utama, Bandar Utama, 47800 Petaling Jaya, Selangor, Malaysia
Subject website (course: A level & iGCSE Computer science (2 years)) : https://www.nordangliaeducation.com/our-schools/malaysia/kuala-lumpur/british-international/learning/our-curriculum/sixth-form/subjects

@epicose Pull request merged. Thank you!

authors: epicose philipto

repo: JetBrains/swot


text:
Create student.txt

School: Heilige-Drievuldigheidscollege
Website: https://www.hdc-leuven.be/
Address: Heilige-Drievuldigheidscollege, Oude Markt 28, 3000 Leuven, België
Student e-mail ends at @student.hdcleuven.be

@IngeVerbeek Thank you for your patience while waiting for a review and processing your request. Pull request merged. Thank you!

authors: IngeVerbeek philipto


text:
Create funaab.txt

Federal University of Agriculture, Abeokuta

@gatewayman I am sorry for a delay with processing your request.
Unfortunately, funaab.ng does not have an MX record in DNS, thus the mail sent to the domain has no chance to reach it:
$ host -t mx funaab.ng
Host funaab.ng not found: 3(NXDOMAIN)
I am closing this request. If you wish to add unaab.edu.ng, which seems to be an official domain for your university, please submit another pull request.
Thank you!

I guess the lookup was tried when our internet was down. We have Google Apps for Education setup on the domain. Here is a mxlookup page from mxtools for funaab.edu,ng:
http://mxtoolbox.com/SuperTool.aspx?action=mx%3Afunaab.edu.ng&run=toolpage

@gatewayman Thank you for the explanation. In that case please submit a pull request with the file lib/domains/ng/edu/funaab.txt in order to follow this repository rules. Thank you!

authors: gatewayman philipto


text:
Create ciqa.mx

More info in http://ciqa.mx/english/

@davcs86 I am sorry for a delay with processing your request. Could you please change it? For ciqa.mx the path should be lib/domains/mx/ciqa.txt (.txt extension is mandatory).

@philipto sure, I just renamed it :)

@davcs86 Pull request merged. Thank you!


text:
Add files via upload

captechu.txt

@DevonMarshall Please fork SWOT repository, copy file.zip in the root folder of your forked SWOT repository. Then unzip file.zip there with no changes to the directory structure. Then make a new pull request. If you are not able to make the pull request according the instructions, please send us an email to community-support@jetbrains.com. Please mention this request URL in the message. I have to close this request without merging. Thank you for your understanding.

authors: DevonMarshall philipto


text:
Add IISS J. Von Neumann

Added file for vonneumann.edu.it domain

@andmike1968 First stage of verification passed, official domain for IISS J. Von Neumann is vonneumann.edu.it as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@andmike1968 Thank you for your patience while waiting for a review and processing your request. Pull request merged.
Please start requesting the licenses in about an hour, to let the changes to propagate through our system.


text:
Add examples to README

Can you add please examples for an interesting HTML template file and the output?

@yairEO  please check the example folder.

authors: kamlekar yairEO

repo: JiangJie/gulp-lodash-template


text:
Memory Consumption Increases During Dataset Iteration

I am experiencing an issue with memory consumption while iterating through Ref_L4 dataset in PyTorch. After loading the dataset, I notice that the system memory usage keeps increasing with each iteration through the dataset, eventually leading to an out-of-memory error. My Ubuntu 22.04 system has 16GB of RAM.
Steps to Reproduce

Initialize the dataset using my custom dataset class.
Load the dataset.
Use a for loop to iterate through the dataset and print info without any other operations.

Issue Follow-Up
To address the issue of increasing memory usage, I optimized the loading of image data as follows:

Extracting Image Files: I first extracted the images.tar.gz file to ensure all image files are available. After extraction, the image files are stored in a specified directory.
tar -xzvf images.tar.gz -C <image_directory>

Loading Data: I used pandas to load the Parquet file(ref-l4-test.parquet, ref-l4-val.parquet) containing the image information.
 df = pd.read_parquet('<parquet_file_path>')
 print(df.size)

Iterating Over the DataFrame : By iterating over each row of the DataFrame, I extracted relevant image information, including id, file_name, and caption.
for index, row in df.iterrows():
   info = row.to_dict()
   id = info['id']
   file_name = info['file_name']
   caption = info['caption']
   image_path = "<image_directory>/" + file_name
   image_source, image = load_image(image_path)

By implementing this approach, I successfully solve this problem and memory becomes stable


text:
Always on VPN

Please add VPN on demand for apple devices

@Omoeba Thanks for using Outline and for the suggestion. Apologies for the slow reply. We recently implemented a feature for Apple devices which will start the VPN connection whenever you restart the device, if you were connected to the VPN before restarting. Please let us know if this is what you intended!

authors: Omoeba trevj

repo: Jigsaw-Code/outline-client


text:
New CropLike Layer

A CropLike layer should take two tensors as inputs, [origin, target], and crop the origin tensor so that it matches the shape of target.

cropped = CropLike(offset=(5, 5))([origin, target])

#13

repo: JihongJu/keras-fcn


text:
the term "media" is globally replaced in path

It seem thata the "prefix", ie "media" is globally replace in the path which means that you cannot have an image named my_media_image.png

my git is strange and not sure what up.
fix here https://github.com/perosb/ImageProcessor/commit/b1d1e6523f8593448ac56dfc7824b9cc96e77ed8

Fixed in v4.4.0

authors: JimBobSquarePants perosb

repo: JimBobSquarePants/ImageProcessor


text:
Gallery administration in designer

The gallery administration is currently in the Backend. The gallery administration needs to get integrated into the gallery designer.

 Gallery administration

repo: Jinya-CMS/Jinya-Gallery-CMS


text:
Element implicitly has an 'any' type beim Lesen eines Mutable Attributes als Mutable

@JirkaDellOro
Beim implementieren vom rekursiven Aufruf der "CreateFromMutable" Funktion in FudgeUI mit den Änderungen aus dem Experiment die wir vorher Besprochen und getestet haben bin Ich in folgendes Problem gerannt.

Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Mutable'.
No index signature with a parameter of type 'string' was found on type 'Mutable'.

Ich weiss grad nicht was Ich damit anfangen soll weils im Experiment ja ohne Probleme gelaufen ist. Es ist warscheinlich wieder nur ein blöder kleiner Fehler den Ich mach aber Ich find nicht wie Ich da drum komm

Fertig hier?

authors: AkikoOsaka JirkaDellOro

repo: JirkaDellOro/FUDGE


text:
Promotion always lower case

Change promotion unit in xsd to be always lower case

Does a change like this result in a version bump?

Please check if this change fixed this error in the server behavior. Then we do not need to change the xsd

Does a change like this result in a version bump?

Every iteration of this protocol should be identifiable with the version and if this would not increase the version it would be a major pain to pin down bugs that happen e.g. in this iteration of 0.2.0 or the next, so we need to increase every time

repo: JoKrus/j-chess-xsd


text:
Update W_Networking.pde

Made to address Bug #638
https://github.com/OpenBCI/OpenBCI_GUI/issues/638
#Problem#
When trying to stream data out over the network using the network widget an ArrayOutOfBoundsException is thrown if all of the following conditions hold:
-The number of channels is 16 (either from playback file or from live data)
-The protocol in the network widget is "UDP", "OSC", or "Serial"
-The Data Type is "Time Series"
-"Filters" are turned on

Merging this issue without permission or time to review is not ok.

Sorry, misread this as merging into the upstream development branch. I can make the PR now.

All good, thanks Richard!  Thanks for making the PR :)

authors: Joe-Westra retiutut


text:
Parsing array/set/map of primitive values

Is it possible to deserialize collections of primitive values with typedjson without defining a schema? I mean something like this:
'[1, 2, 3, 4]' => number[]

'["a", "b", "c"]' => Set<string>

'{"a": 1, "b": 2, "c": 3}' => Map<string, number>

P.S. I know that it's possible to do something like this:
const arr: String[] = TypedJSON.parseAsArray('["a", "b", "c"]', String);

But under the hood it'll use primitive values constructors (Number/String, etc.) instead of primitive values.

Hi @rjkz808, why do you think it will use the constructors? By default, when TypedJSON sees a primitive it uses it directly (see deserializeDirectly function). The code below prints [ 'a', 'b', 'c' ], and true as expected.
        const result = TypedJSON.parseAsArray(
            '["a", "b", "c"]',
            String,
        );
        console.log(result);
        console.log(result[0] === 'a');

repo: JohnWeisz/TypedJSON


text:
[BUG]获取本地版本号失败

描述出现的错误
Traceback (most recent call last):
File "TikTokUpdata.py", line 41, in init
FileNotFoundError: [Errno 2] No such file or directory: 'version'。
bug复现
每次运行均出现这个问题
网络：
无论翻墙与否均失败
是否可以加个参数手动关闭更新啥的……

conf.ini   这个文件最下面
[update]
选择是否自动更新(yes|no)
由于抖音频繁更新推荐开启此项
update = no
看看https://github.com/Johnserf-Seed/TikTokDownload/issues/361

https://github.com/Johnserf-Seed/TikTokDownload/issues/311

authors: Johnserf-Seed WWRichard simon-yanghl

repo: Johnserf-Seed/TikTokDownload


text:
item_id 获取错误

F:\TikTokWeb>npm start

tiktokweb@0.0.0 start
nodemon ./bin/www

[nodemon] 2.0.20
[nodemon] to restart at any time, enter rs
[nodemon] watching path(s): .
[nodemon] watching extensions: js,mjs,json
[nodemon] starting node ./bin/www
GET / 200 4.803 ms - 8302
open shorturl ok
https://v.douyin.com/6qeBVPV/
https://www.iesdouyin.com/share/user/MS4wLjABAAAA9v-ve_UHoqbKFNoBtQaFzRqRnel0LO5iagq6Azskot8?did=MS4wLjABAAAAAigLg1Dr2-7BHgScPHpIsZCK4rMCIVnWJ88b8HCPmgu3N0Nx-POymp-AtRoW5O-j&iid=MS4wLjABAAAANwkJuWIRFOzg5uCpDRpMj4OX-QryoDgn-yYlXQnRwQQ&with_sec_did=1&sec_uid=MS4wLjABAAAA9v-ve_UHoqbKFNoBtQaFzRqRnel0LO5iagq6Azskot8&from=web_code_link
TypeError: Cannot read properties of null (reading '1')  item_ids获取错误
GET /api?url=https://v.douyin.com/6qeBVPV/ 200 999.428 ms - 883
F:\TikTokWeb\routes\api.js:27
next(error)
^
ReferenceError: next is not defined
at F:\TikTokWeb\routes\api.js:27:17
at processTicksAndRejections (node:internal/process/task_queues:96:5)
[nodemon] app crashed - waiting for file changes before starting...
请问这个问题怎么解决？

作品链接，不是主页链接 web还没加批量下载

repo: Johnserf-Seed/TikTokWeb


text:
App Size Challenge

Follow the directions found here: https://github.com/JonDouglas/AndroidPerformanceAndAppSizeChallenge#application-size

Application Size (Download Size)

Before Application Size Changes:

App download size: 43.9MB

After Application Size Changes:

App download size: 43.8MB

Any comments / feedback for how we can improve this experience?
Not to much difference... But the generated apk size is: 83.7MB

Let me attach you my terminal commands.
mookiefumi@robin:$ ./apkanalyzer -h apk download-size ~/Downloads/com.wecodeteam.wecatalog-Signed.apk
43.9MB

mookiefumi@robin:$ ./apkanalyzer -h apk download-size  ~/Downloads/com.wecodeteam.wecatalog-Signed.aab
43.8MB

Version Information (Help -> About Visual Studio -> Copy Information)
=== Visual Studio Community 2019 for Mac ===
Version 8.2.2 (build 21)
Installation UUID: ac36fa1b-04d0-4fff-864b-2eada556b0f8
GTK+ 2.24.23 (Raleigh theme)
Xamarin.Mac 5.14.0.85 (d16-2-fix-mac-updates / 86973979)
Package version: 600000319

=== Mono Framework MDK ===
Runtime:
Mono 6.0.0.319 (2019-02/52203786470) (64-bit)
Package version: 600000319
=== NuGet ===
Version: 5.1.0.6013
=== .NET Core ===
Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
2.2.6
2.1.12
2.1.11
SDK: /usr/local/share/dotnet/sdk/2.2.401/Sdks
SDK Versions:
2.2.401
2.1.701
2.1.700
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/6.0.0/lib/mono/msbuild/Current/bin/Sdks
=== Xamarin.Profiler ===
Version: 1.6.11
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler
=== Updater ===
Version: 11
=== Apple Developer Tools ===
Xcode 10.3 (14492.2)
Build 10G8
=== Xamarin.Mac ===
Xamarin.Mac not installed. Can't find /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/Version.
=== Xamarin.iOS ===
Version: 12.14.0.114 (Visual Studio Community)
Hash: c6691164
Branch: d16-2
Build date: 2019-07-29 15:54:05-0400
=== Xamarin Designer ===
Version: 16.2.0.379
Hash: 3f0652957
Branch: remotes/origin/d16-2
Build date: 2019-08-01 17:32:50 UTC
=== Xamarin.Android ===
Version: 9.4.1.0 (Visual Studio Community)
Commit: xamarin-android/d16-2/ebd65c9
Android SDK: /Users/mookiefumi/Library/Android/sdk
Supported Android versions:
8.0 (API level 26)
8.1 (API level 27)
SDK Tools Version: 25.2.3
SDK Platform Tools Version: 29.0.2
SDK Build Tools Version: 28.0.3
Build Information:
Mono: mono/mono/2019-02@e6f5369c2d2
Java.Interop: xamarin/java.interop/d16-2@d64ada5
LibZipSharp: grendello/LibZipSharp/d16-2@caa0c74
LibZip: nih-at/libzip/rel-1-5-1@b95cf3f
ProGuard: xamarin/proguard/master@905836d
SQLite: xamarin/sqlite/3.27.1@8212a2d
Xamarin.Android Tools: xamarin/xamarin-android-tools/d16-2@6f6c969
=== Microsoft Mobile OpenJDK ===
Java SDK: /Users/mookiefumi/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_1.8.0.25
1.8.0-25
Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL
=== Android Device Manager ===
Version: 1.2.0.58
Hash: d03e3ea
Branch: remotes/origin/d16-2~1
Build date: 2019-07-30 21:29:36 UTC
=== Xamarin Inspector ===
Version: 1.4.3
Hash: db27525
Branch: 1.4-release
Build date: Mon, 09 Jul 2018 21:20:18 GMT
Client compatibility: 1
=== Build Information ===
Release ID: 802020021
Git revision: d2ffd09000c5d24a206b715b63d409e8e965689a
Build date: 2019-08-02 00:25:49+00
Build branch: release-8.2
Xamarin extensions: 4cc9cbbe68baaeb6bc654f36e057b1bd124f3f65
=== Operating System ===
Mac OS X 10.14.6
Darwin 18.7.0 Darwin Kernel Version 18.7.0
Thu Jun 20 18:42:21 PDT 2019
root:xnu-4903.270.47~4/RELEASE_X86_64 x86_64
=== Enabled user installed extensions ===
Xamarin.HotReload 1.0.0.2910000

@MookieFumi Thank you so much for your submission! To claim your swag, please fill out this quick survey!
http://aka.ms/androidappchallenge

authors: JonDouglas MookieFumi


text:
[Suggestion] Add toggle "Climbing only with runnerhands"

When you hold a gun, crowbar or something else, you can still climb up walls or cling to edges. I checked the code and found that this is not a bug, that's how it works, but it looks a bit strange if you're not someone with four hands.

There was a code in the previous beatrun code that restricted non runnerhands from climbing,but it was removed and still doesn't work even after being added back.
I'm not sure if this was changed to make players more flexible, but it would be great if there were a toggle.

added in dev, gonna push later

authors: cafeprogram relaxtakenotes

repo: JonnyBro/beatrun

license: WTFPL


text:
Random Card Picker

It often happens that black or white cards appear multiple times within the same game.
That is a bit annoying. Therefore, it would be great, if the card-picker considered only cards not yet played in this game.
But anyway: great work and thanks a lot :-)

Thank you. Definitely a bug, the card selection is not intended to be random. I'll try find some time to get a fix in!

Thanks you again for reporting this bug. This issue is hopefully resolved now. Let me know if you see it occur agian.
I have just released a new version, with a few bug fixes and features. Do not hesitate to bring any bugs to my attention.
https://github.com/JordanPawlett/cards-against-formality-services/releases/tag/v0.0.8

authors: JordanPawlett fgubler


text:
se están creando planchas con los mismos candidatos principal y suplente

El sistema debe de obviar los candidatos que ya han sido seleccionados para una plancha

listo, ya no se listan los candidatos con plancha asignada


text:
Make request throttle configurable

I found the 3 requests per second to be a bit limiting, so I put that constant on an environment variable.
I thought about moving the queue instantiation into the client constructor, and reading the limit from the config object as a different solution.
Also, does anyone know at what threshold you will begin to get 503's from mturk?

I was about to submit a similar pull request when I saw yours. We had to modify the library to set the requestsPerSecond parameter to 1 to avoid intermittent turk throttling problems. Set at 1 it seems reliable.

1 request per second? That just seems astonishingly low, when trying really move any amount of data. The default of 3 was working ok for me, but i was wanting to bump it up to 5 or 6...

authors: codyhanson modonoghue

repo: JoseBarrios/mturk-api


text:
chore(types): export DarkModeSwitch types

Fixes https://github.com/JoseRFelix/react-toggle-dark-mode/issues/24.
Thanks!

LGTM, thanks for this change 🚀

authors: JoseRFelix tknickman

repo: JoseRFelix/react-toggle-dark-mode


text:
En catalogo motivo estado busqueda por descripcion no funciona como deberia

la busqueda por descripción se debe buscar en la descripcion la ocurrencia de la cadena proporcionada

Ajustado el query para la busqueda


text:
Can't determine git version

System information

OS: Arch Linux
D9VK version: 246c6cd

Terminal output:

And?

Going to close this as it seems like a non-issue.
I just haven't marked any tags yet.

authors: Joshua-Ashton Kerrung

license: Zlib


text:
Curso de Inteligencia artificial para la inclusión

programa de formación diseñado para enseñar cómo aplicar los principios y herramientas de la inteligencia artificial (IA) con el objetivo de crear soluciones tecnológicas que promuevan la equidad, la accesibilidad y la participación de todos los individuos en la sociedad.

Sería interesante incluir módulos sobre cómo los participantes pueden llevar los conceptos aprendidos a sus comunidades y organizaciones, creando un efecto multiplicador para la inclusión.

repo: JosiasVasquez/itgrarte


text:
Add support to new URL scheme for Youtube channels without the "@"

After adopt the "@" to designate channels URLs, seems Youtube is allowing an additional scheme.
The new scheme is similar to the one with @ but without the @.
Here is an example:
Former channel URL scheme:      https://www.youtube.com/c/joerogan
URL scheme with @:                   https://www.youtube.com/@joerogan
New scheme:                               https://www.youtube.com/joerogan

I'll upload a branch with a possible fix, if you can test it, I'd appreciate it.

in my tests:
>>> from pytubefix import Channel
>>>
>>>
>>> urls = {
...     "url1": "https://www.youtube.com/joerogan",
...     "url2": "https://www.youtube.com/c/joerogan",
...     "url3": "https://www.youtube.com/@joerogan"
... }
>>>
>>>
>>> for key, url in urls.items():
...     c = Channel(url)
...     print(f'Channel name: {c.channel_name}')
...
Channel name: PowerfulJRE
Channel name: PowerfulJRE
Channel name: PowerfulJRE
>>>

is now available in the "channel" branch

Seems it is working properly.
I installed the branch at pycharm with the command:
pip install https://github.com/JuanBindez/pytubefix/archive/channel.zip
Pytubefix was updated to version 7.4.0.
Tested code:
from pytubefix import Channel

url = 'https://www.youtube.com/joerogan'
c = Channel(url)
print(c.channel_name)

Outcome:
PowerfulJRE

Process finished with exit code 0

I tested a few other Youtube channels as well, and all worked well.

It seems so, I'll do more tests later to see if everything is correct.

Although YouTube supports channel urls without the '@', some names can generate bugs
Example:
from pytubefix.contrib.channel import Channel

c = Channel('https://www.youtube.com/null')

print(c.channel_name)
print(c.videos)

null
[]

from pytubefix.contrib.channel import Channel

c = Channel('https://www.youtube.com/@null')

print(c.channel_name)
print(c.videos)

null
[<pytubefix.__main__.YouTube object: videoId=kqeOjDEchlo>, <pytubefix.__main__.YouTube object: videoId=M6ZjMWLqJvM>, <pytubefix.__main__.YouTube object: videoId=9SjHLau-DWE>, <pytubefix.__main__.YouTube object: videoId=KvkNPCCLyVk>, <pytubefix.__main__.YouTube object: videoId=BbHsxrYzdIg>]

Others, for example, cause:
from pytubefix.contrib.channel import Channel

c = Channel('https://www.youtube.com/None')

print(c.channel_name)
print(c.videos)

urllib.error.HTTPError: HTTP Error 404: Not Found

from pytubefix.contrib.channel import Channel

c = Channel('https://www.youtube.com/@None')

print(c.channel_name)
print(c.videos)

None
[<pytubefix.__main__.YouTube object: videoId=o1RZIxzEFPI>, <pytubefix.__main__.YouTube object: videoId=VU_0OQ51kuc>, <pytubefix.__main__.YouTube object: videoId=JG9cyL5FW90>, <pytubefix.__main__.YouTube object: videoId=jikRvNK0LKc>, <pytubefix.__main__.YouTube object: videoId=qc1ArRy3j8I>, <pytubefix.__main__.YouTube object: videoId=P0nfuhazyt0>, <pytubefix.__main__.YouTube object: videoId=_jBeDtT080s>, <pytubefix.__main__.YouTube object: videoId=RfYU_PX9DBs>, <pytubefix.__main__.YouTube object: videoId=7zRUmcFN-Xc>, <pytubefix.__main__.YouTube object: videoId=7-mgU3wzEsg>, <pytubefix.__main__.YouTube object: videoId=8HfzI6Dhpgw>, <pytubefix.__main__.YouTube object: videoId=qOmZY6YzEXM>, <pytubefix.__main__.YouTube object: videoId=gypDP4n1Ddo>, <pytubefix.__main__.YouTube object: videoId=dljOGm0x6Uo>, <pytubefix.__main__.YouTube object: videoId=I6h81Uy4mK4>, <pytubefix.__main__.YouTube object: videoId=ibwu3osov6I>, <pytubefix.__main__.YouTube object: videoId=xm9CD3wEm6w>, <pytubefix.__main__.YouTube object: videoId=ccQ2CANWAyw>, <pytubefix.__main__.YouTube object: videoId=SpHWz_cqvfk>, <pytubefix.__main__.YouTube object: videoId=wRLd3HU7aFg>, <pytubefix.__main__.YouTube object: videoId=_TA_lBYsZog>, <pytubefix.__main__.YouTube object: videoId=mhkGkkdGybU>, <pytubefix.__main__.YouTube object: videoId=8ZFTwgP94o0>, <pytubefix.__main__.YouTube object: videoId=v1fZ2mYn1E4>, <pytubefix.__main__.YouTube object: videoId=uKvQUuM4eCo>, <pytubefix.__main__.YouTube object: videoId=hmhvv73MTfU>, <pytubefix.__main__.YouTube object: videoId=27oBFGhFfUs>, <pytubefix.__main__.YouTube object: videoId=ID15D1Wz2bA>, <pytubefix.__main__.YouTube object: videoId=gaek_48LhtY>, <pytubefix.__main__.YouTube object: videoId=xNjeWaTGrl4>, <pytubefix.__main__.YouTube object: videoId=t1iGRIMljIY>, <pytubefix.__main__.YouTube object: videoId=3TbngrUGE6I>, <pytubefix.__main__.YouTube object: videoId=qTWkTSZHXik>, <pytubefix.__main__.YouTube object: videoId=cZAdWzpExgk>, <pytubefix.__main__.YouTube object: videoId=BTiH7yK2n3Y>, <pytubefix.__main__.YouTube object: videoId=rQwZ2RZrSb8>, <pytubefix.__main__.YouTube object: videoId=tw7k_CzBAmU>, <pytubefix.__main__.YouTube object: videoId=fgTGjXl4duo>]

These are just basic examples, some urls can even redirect to other channels with the same name. So although YouTube supports urls without '@', I believe that now would not be the right time to implement.

I took tests yesterday and thought the same

authors: JuanBindez NannoSilver felipeucelli

repo: JuanBindez/pytubefix


text:
Compiler issues when imported into a GameMaker Studio 2.3 Beta project

I tried using Scribble in a project that I have been playing around with in GameMaker Studio 2.3 Beta. When I tried to run the project, I got the following compiler errors ↝

All I had consumed at that point in the project was the following in a global initialization script ↝
scribble_init("", "fNovember", false)

And then the following in a Draw HUD event ↝
scribble_draw(128, 128, "Hello, world!")

Using the gms230_6_0_7e release for 2.3 should fix compiler issues if you're not already using it, although different updates to 2.3 have different issues. In particular, if the error is the compiler complaining about a ++variable right after an if statement, just wrap { } around it to make it go away.

Ah yes – using the correct package resolved my issue 🤦♂. Thanks for the help!

Just to add to what @DragoniteSpam said - I just replaced ++var with var++ because I deemed it to do the same thing in the context it was reported it, but adding {} seems to be safer. Thanks!

authors: DragoniteSpam glitchroy lukehollenback

repo: JujuAdams/scribble


text:
stricter types, change Period to DatePeriod

reproduction
using ExperienceAnalysis
using Dates

exposure(ExperienceAnalysis.Calendar(Year(1)), Date(2006,6,15), Date(2020,2,29), true) # works
exposure(ExperienceAnalysis.Calendar(Hour(1)), Date(2006,6,15), Date(2020,2,29), true) # ERROR: MethodError: no method matching floor(::Date, ::Hour)

This is because floor of date only works for DatePeriod

https://github.com/JuliaActuary/ExperienceAnalysis.jl/pull/21


text:
Modeling with stochastic simulation | MIT Computational Thinking Spring 2021 | Lecture 10

Modeling with stochastic simulation | MIT Computational Thinking Spring 2021 | Lecture 10
7:16 Introduction
8:10 Julia features
9:00 Individual-based ("microscopic") models
11:55 Modelling time to success (or time to failure)
12:50 Visualizing component failure
21:15 String interpolation
28:30 String interpolation (HTML example in Pluto)
35:24 Math: Bernoulli random variables
42:10 Julia: Make it a type!
49:50 Running the stochastic simulation
56:15 Time evolution of the mean: Intuitive derivation

Done!

authors: logankilpatrick rafaelchp


text:
[feature-request] Easier support between juliaup and PyJulia

I'm running into a pain point between juliaup and PyJulia, possibly due to the julialauncher name.
PyJulia (and possibly other 3rd party libraries) seem to look for a julia binary on the PATH.
This might need to be transferred to the PyJulia repository.
Steps to Reproduce
I was hoping that creating an alias julia=julialauncher would be sufficient, but PyJulia's documentation suggests that aliases will not work
# Add this line to the .bashrc:
alias julia='julialauncher'

pip install julia

Trying to import from julia in Python:
from julia import Base

... raises an error that julia cannot be found:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 618, in _load_backward_compatible
  File "/home/hayesall/miniconda3/envs/debug/lib/python3.8/site-packages/julia/core.py", line 248, in load_module
    elif self.julia.isafunction(juliapath):
  File "/home/hayesall/miniconda3/envs/debug/lib/python3.8/site-packages/julia/core.py", line 239, in julia
    self.__class__.julia = julia = Julia()
  File "/home/hayesall/miniconda3/envs/debug/lib/python3.8/site-packages/julia/core.py", line 468, in __init__
    jlinfo = JuliaInfo.load(runtime)
  File "/home/hayesall/miniconda3/envs/debug/lib/python3.8/site-packages/julia/juliainfo.py", line 68, in load
    proc = subprocess.Popen(
  File "/home/hayesall/miniconda3/envs/debug/lib/python3.8/subprocess.py", line 858, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/home/hayesall/miniconda3/envs/debug/lib/python3.8/subprocess.py", line 1704, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'julia'

Alternate Approach
Creating a link named julia to the julialauncher appears to be a workaround:
# e.g.: In the same directory where the julialauncher exists:
ln -s julialauncher julia

Version Info:

juliaup: 1.6.2-alpha.0
Julia: 1.7.2
PyJulia: 0.5.7
Python: 3.8.18
OS: Debian GNU/Linux 10

try symlinking julialauncher to julia
by running sudo ln -svf "$(which julialauncher)" /usr/bin/julia
Disclaimer: i dont use pyjulia

I've been building against the master branch with the Ubuntu/Debian systems I work on (i.e. cargo build --release).
My bad! I didn't realize the "official" distributions created the symlink by default.

authors: hayesall uncomfyhalomacro

repo: JuliaLang/juliaup


text:
Weird behavior of transposes and TriangularToeplitz

Multiplying a vector by a lower triangular Toeplitz matrix gives weird results when associated with transposition:
g = [1.; 2.; 3.]
u = TriangularToeplitz([1.; 1.; 1.], :L)

then
g'*u
1×3 RowVector{Float64,Array{Float64,1}}:
 6.0  5.0  3.0

but
g'*u
1×3 RowVector{Float64,Array{Float64,1}}:
 3.0  2.0  0.0

Similarly
u.'*g
3-element Array{Float64,1}:
 3.0
 2.0
 0.0

u*g
3-element Array{Float64,1}:
 1.0
 3.0
 6.0

I couldn't find an issue even with the currently released version, even more so since I don't understand where the issue should come from: two different results are reported for the exact same call g'*u. So I think this can be closed.

authors: dkarrasch riccardosven