ODE example failing

Using
 20     let fnc_j_0 = FncInfo::new("J_0", "unsafe_d_J0",
 21                              vec![DFT_DUP_ARG, DFT_CONSTANT, DFT_CONSTANT, DFT_CONSTANT,],
 22                              Some((DFT_OUT_DIFF, true)));

one the following test function:
  1 pub fn J_0(t: &mut Theta, y0: State, E: SigmaMat, input_true: FVec) -> f64 {
  2     let mut stepper = Dop853::new(t.clone(), 0.0, 100.0, 1e-3, y0, 1e-4, 1e-4);
  3     let res = stepper.integrate();
  4
  5     if let Err(e) = res {
  6         panic!("An error occured: {}", e);
  7     }
  8     let rand_out = stepper.y_out().to_vec();
  9     let tmp = rand_out.iter().sum::<State>() / (rand_out.len() as f64);
 10     let input = f(tmp);
 11
 12     let inner: FVec = input - input_true;
 13     let res: SMatrix<f64,1,1> = 0.5 * inner.transpose() * E * inner;
 14
 15     res[0]
 16 }

will lead to Enzyme failing with the following message:
   %_2.i.i6.i.i = inttoptr i64 %new_layout.1 to i8*, !dbg !5582: {[-1]:Integer}, intvals: {}
    %20 = tail call i8* @__rust_alloc(i64 %new_layout.0, i64 %new_layout.1) #34, !dbg !5587: {}, intvals: {}
    %21 = tail call i8* @__rust_realloc(i8* nonnull %7, i64 %9, i64 %new_layout.1, i64 %new_layout.0) #34, !dbg !5601: {}, intvals: {}
  i8 48: {[-1]:Integer}, intvals: {48,}
  i8 127: {[-1]:Integer}, intvals: {127,}
  i8 49: {[-1]:Integer}, intvals: {49,}
  i8 53: {[-1]:Integer}, intvals: {53,}
  i8 40: {[-1]:Integer}, intvals: {40,}
  i8 32: {[-1]:Integer}, intvals: {32,}
  i8 56: {[-1]:Integer}, intvals: {56,}
  i8 46: {[-1]:Integer}, intvals: {46,}
  i8 47: {[-1]:Integer}, intvals: {47,}
  i8 45: {[-1]:Integer}, intvals: {45,}
  i8 99: {[-1]:Integer}, intvals: {99,}
  i8 114: {[-1]:Integer}, intvals: {114,}
  i8 109: {[-1]:Integer}, intvals: {109,}
  i8 101: {[-1]:Integer}, intvals: {101,}
  i8 111: {[-1]:Integer}, intvals: {111,}
  i8 116: {[-1]:Integer}, intvals: {116,}
  i8 117: {[-1]:Integer}, intvals: {117,}
  i8 110: {[-1]:Integer}, intvals: {110,}
  i8 108: {[-1]:Integer}, intvals: {108,}
  i8 105: {[-1]:Integer}, intvals: {105,}
  i8 103: {[-1]:Integer}, intvals: {103,}
  i8 100: {[-1]:Integer}, intvals: {100,}
  i8 115: {[-1]:Integer}, intvals: {115,}
  i8 104: {[-1]:Integer}, intvals: {104,}
  i8 122: {[-1]:Integer}, intvals: {122,}
  i8 121: {[-1]:Integer}, intvals: {121,}
  i8 54: {[-1]:Integer}, intvals: {54,}
  i8 98: {[-1]:Integer}, intvals: {98,}
  i8 120: {[-1]:Integer}, intvals: {120,}
  i8 95: {[-1]:Integer}, intvals: {95,}
  i8 52: {[-1]:Integer}, intvals: {52,}
  i8 107: {[-1]:Integer}, intvals: {107,}
  i8 119: {[-1]:Integer}, intvals: {119,}
  i8 118: {[-1]:Integer}, intvals: {118,}
  i8 -127: {[-1]:Integer}, intvals: {-127,}
  i8 113: {[-1]:Integer}, intvals: {113,}
  i8 96: {[-1]:Integer}, intvals: {96,}
  i8 -74: {[-1]:Integer}, intvals: {-74,}
  i8 -9: {[-1]:Integer}, intvals: {-9,}
  </analysis>
  Illegal updateAnalysis prev:{[-1]:Integer} new: {[-1]:Pointer}
  val:   %_2.i.i.i = inttoptr i64 %new_layout.1 to i8*, !dbg !5488 origin=  %.sroa.0.0.i.i.pn = phi i8* [ %_2.i.i.i, %bb3.i.i14 ], [ %13, %bb7.i.i15 ], [ %_2.i.i6.i.i, %bb3.i7.i.i ], [ %20, %bb7.i8.i.i ], [ %21, %bb10.i.i ]
  build-script-build: ../Enzyme/TypeAnalysis/TypeAnalysis.cpp:617: void TypeAnalyzer::updateAnalysis(llvm::Value*, TypeTree, llvm::Value*): Assertion `0 && "Performed illegal updateAnalysis"' failed.

I'm using an Enzyme fork with the Rust debug parser merged, but the failing code doesn't seem to be affected by that:
https://github.com/ZuseZ4/Enzyme/blob/08eb0646ee6f0ae7eca99fcc41f0c54fcc09cbc1/enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp#L617
It could be due to the sloppy initialization of some values which (based on my understanding) shouldn't be seriously considered
by Enzyme: https://github.com/rust-ml/oxide-enzyme/blob/a1dfbde391b32cde6a594b9fe87f7e8b8940a9e2/src/enzyme/enzyme_wrapper.rs#L77
I guess this issue about allocating is outdated, correct? https://github.com/wsmoses/Enzyme.jl/blob/05c9b84f9051c5bd8863925e54a2fc4eb11fc784/src/Enzyme.jl#L126

This is a Type analysis bug, can you post a log, ideally with the EnzymePrintType flag on

Sure, here it goes. The printType flag is on.
https://drive.google.com/file/d/1grzI4iio2ts-497rI_ReiaWlEms0VGJN/view?usp=sharing

Can you run with the following flag set to false: https://github.com/wsmoses/Enzyme/blob/f7c9fe57112bba48caee520b0dec28ec55e48285/enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp#L68
It appears there is a potential type confusion as to whether something is an integer vs a pointer on std::option::Option<(std::ptr::NonNull<u8>, std::alloc::Layout)> which makes sense since presumably the ptr is a pointer and the layout is an integer.

Thanks for finding the origin.
Not sure how aware you are about the rust types, so the Option here doesn't read as either ptr or alloc, instead it's either Some((ptr, alloc)), which contains a tuple or None, where I'm not sure how it will be represented. Iirc, for cases where the T in Some can't be / begin with zero, they try to merge both. But that probably won't affect the TypeAnalysis anymore. Alloc is a struct { usize, NonZeroUsize } about the memory size and the alignment.
That's with strict-aliasing=true: https://drive.google.com/file/d/1PTqFNkxx7VyZzR9BZwe0nKq7RPJmn9IU/view?usp=sharing
That's with strict-aliasing=false: https://drive.google.com/file/d/1aRUcfKlT3TQKdeYdrjXCSwe5y3sj4aUS/view?usp=sharing
Unfortunately, I ran out of memory in the second case with 48GB (+50GB Swp). It also looks like it's missing the end.
I guess trying to trigger the issue with some simpler allocations in a smaller function, or starting to mark some rust functions as inactive could help here? What do you think?


CI: MSVC build messages

Looking at the build output of the various MSVC based CI actions, I see a lot of these messages:
Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. For example:
- add -D_WIN32_WINNT=0x0601 to the compiler command line; or
- add _WIN32_WINNT=0x0601 to your project's Preprocessor Definitions.
Assuming _WIN32_WINNT=0x0601 (i.e. Windows 7 target).

@0x00002a as you're the MSVC guru here - any input on this?

Yeah its a warning emitted by boost somewhere iirc (probably asio for the socket code). It wants to know what windows version (and crucially what features) we have. See the msdn docs on the matter. I'm not sure if there is an advantage to having a version higher than 7 when using asio, and I couldn't find anything in the docs (although they are pretty sparse).
I think malloy should probably offer a cmake option for this, since we can't really make decisions about what windows version the user has (or wants to expose) for them. It could cause issues though if the package is built with a version separate from the version used by the user when including the headers, if asio does things like change class layouts based on it for example.
I suggest we add an option which defaults to 0x0A00 (windows 10) and use it define _WIN32_WINNT. imo this should be a public define so users can't accidentally build with possibly conflicting versions.

Interesting. Gotta love Windows :p
As far as I can tell it is indeed a good idea to have a cmake option for this with defaulting to 0xA00.

Currently working on this. After setting _WIN32_WINNT to 0xA00 the MSVC CI now fails with:
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winuser.h(4379): error C2061: syntax error: identifier 'LPWNDCLASSEXA'
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winuser.h(4387): error C2061: syntax error: identifier 'LPWNDCLASSEXW'
D:\a\malloy\malloy\3rdparty\boost-1.74.0\boost/asio/detail/impl/win_thread.ipp(54): error C2039: 'QueueUserAPC': is not a member of '`global namespace''
D:\a\malloy\malloy\3rdparty\boost-1.74.0\boost/asio/detail/impl/win_thread.ipp(54): error C3861: 'QueueUserAPC': identifier not found

Fixed in 49a7f7db677a5493af6658e0d07c7e5dbcfa988f


Make datasets bucket private

Eventually a project will need to have fully private files in the datasets bucket.  A public bucket without a directory listing is not enough.
The lambdas in the stack are already setup with IAM role with access to the bucket.  The next step is a method for GP functions to fetch files from the bucket using the aws library instead of the public URL.
Any vars in the stack storing the datasets bucket public url can just be removed, they won't be used.
Here is a technique for wrapping in a promise - https://gist.github.com/milesrichardson/db724faf7615f0ea208590a52da2c0eb#gistcomment-3539633

The additional requirement here is that data clients that require http for range requests (flatgeobuf, cog) will need to be able to request and use pre-signed URL's for authorization, if the dataset bucket is no longer public.  May require a fork of clients or contribution to.
See https://github.com/flatgeobuf/flatgeobuf/blob/master/src/ts/http-reader.ts#L352.


helm list --date does not work with --chart-name flag

Output of helm version:
Client: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}

Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.2", GitCommit:"66049e3b21efe110454d67df4fa62b08ea79a19b", GitTreeState:"clean", BuildDate:"2019-05-16T16:23:09Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.12-eks-eb1860", GitCommit:"eb1860579253bb5bf83a5a03eb0330307ae26d18", GitTreeState:"clean", BuildDate:"2019-12-23T08:58:45Z", GoVersion:"go1.11.13", Compiler:"gc", Platform:"linux/amd64"}

Cloud Provider/Platform (AKS, GKE, Minikube etc.):
AWS (EKS)
I have tried various order of this command, but cannot get the result to sort by date:
helm list --chart-name something --date

Sadly I have been unable to test this in the latest release yet (unacceptable).

Hi @unacceptable. Can you please test this with a more recent version? This has been fixed in Helm 3, but it'd be great to verify if this has been fixed for Helm 2. Are you working on a patch for this?


chore(ci): update to golangci-lint 1.42.x and use golangci/golangci-lint-action

Change linters to allowlist approach (disable-all: true) to make future golangci-lint upgrades easier as otherwise unexpected linter might be included upon upgrade.
lll is disabled at this moment but might be worth enabling.

Fix #2333 #2334

Release Note
NONE

Now that we don't truncate log, I can see the exact failure:
         	                "Histogram": <*gstruct.PointerMatcher | 0xc0006c9740>{
        	                    Matcher: <*gstruct.FieldsMatcher | 0xc00066ed80>{
        	                        Fields: {
        	                            "SampleCount": <*gstruct.PointerMatcher | 0xc0006c9720>{
        	                                Matcher: <*matchers.EqualMatcher | 0xc000c5a500>{Expected: <uint64>12},
        	                                failure: "Expected\n    <uint64>: 272\nto equal\n    <uint64>: 12",
        	                            },
        	                        },

This is an excerpt from this failed build: https://github.com/apache/camel-k/runs/4446921484?check_suite_focus=true

Digging deeper:
Label: [
...
    {
        Name: "kind",
        Value: "Kamelet",
...
    {
        Name: "result",
        Value: "Reconciled",
...
    },
...
],
...
Histogram: {
    SampleCount: 272,

It seems that the reconciliation count for Kamelet is used instead of the Integration.


Don't use Set[Incomplete]

It's very expensive to compute the hash code of a deeply nested
Incomplete. To prevent a loop, we only want to check for object equality
anyway, which System.identityHashCode gives us (to reasonable
approximation).

Perhaps it would be more elegant to use java.util.IdentityHashMap

Something like java.util.Collections.newSetFromMap(new java.util.IdentityHashMap).asScala using JavaConverters

That's a good idea.


✨ Adding _pushSubscriptionStatus property

pending confirmation this is what we want, but I wanted to throw it out there for discussion.

should we close this one? I thought we discussed and decided postponing any _pushSubscriptionStatus handling indefinitely (maybe forever)

closing this one as we decided to not pursue this feature for now


Make dependency injection available per router

Add the availability to inject different dependencies per router.
Think global variables and local variables and locals override globals.

done!


Save issue with large data set

I'm working on an Electron project using LokiJS for the database solution. I'm attempting to save a fairly large dataset in an import operation. The application has forecasts which are basically just dates. Each forecast has a collection (15,000+) of forecast locations that are lat/lon pairs. Each forecast location has 15+ measurements. With 39+ forecasts per import, we're looking at over 9,000,000 data points. Due to the structure of the import data, i first save a forecast and then get it's $loki which i use as a "foreign key" for the forecast locations. I accumulate all of the locations and measurements for the forecast and save them all at once. I've tried both saving the locations one at a time, getting their $loki to set as the FK for the measurements and then saving all of the measurements and I've tried saving the measurements as an array inside of the location allowing me to save all of the locations in bulk. My current code is below. My problem is that when I get to about the 9th forecast, the json file stops growing at about 240 MB. Using Node, I had originally thought that I didn't need an adapter. I've tried both and had similar failures. Also, when I use an adapter, if I use a path to loki.db, I get "Uncaught Exception: TypeError: Cannot read property 'collections' of null at Interace..... So I'm stuck just using 'loki.db' which creates the new db file in a non-persisted folder (Electron wants things under the Resource folder). Can you make any suggestions?
//ForecastLocations.js
ForecastLocations.prototype.save = function () {
  for (let fl in this.collection) {
    if (this.collection.hasOwnProperty(fl)) {
      let forecastLocation = this.collection[fl];
      forecastLocation.save();
    }
  }
}

//ForecastLocation.js
ForecastLocation.prototype.save = function () {
  if (!this.id) {
    let result = Database.forecastLocations.insert({
      forecastId: this.forecastId,
      lat: this.lat,
      lon: this.lon
    });

    this.id = result.$loki;
  }

  for (let m in this.measurements.collection) {
    if (this.measurements.collection.hasOwnProperty(m)) {
      let measurement = this.measurements.collection[m];
      measurement.forecastLocationId = this.id;
    }
  }
}

//Measurements.js
Measurements.prototype.save = function(){
  for (let m in this.collection) {
    if (this.collection.hasOwnProperty(m)) {
      let measurement = this.collection[m];
      measurement.save();
    }
  }
}

//Measurement.js
Measurement.prototype.save = function () {
  if (!this.id) {
    let result = Database.measurements.insert({
      value: this.value,
      forecastLocationId: this.forecastLocationId,
      measurementTypeId: this.measurementTypeId
    });

    this.id = result.$loki;
  }
}

//Processor.js
Database.open();

//...processing...

function saveData(forecast) {
    forecast.forecastLocations.save();

    for (let fl in forecast.forecastLocations.collection) {
        if (forecast.forecastLocations.collection.hasOwnProperty(fl)) {
            let forecastLocation = forecast.forecastLocations.collection[fl];
            forecastLocation.measurements.save();
        }
    }
}

//Database.js
Database.open = function () {
    return new Promise(function (resolve) {
        //let dbPath = path.join(__dirname, "../../../resources/db/loki.db");

        //if(!fs.existsSync(dbPath)){
        //   fs.writeFileSync(dbPath, '');
       // }

        let adapter = new lfsa();
        Database.lokiDb = new loki('loki.db', { adapter: adapter, autoload: true, autoloadCallback: function(){loadDatabase(resolve)} });
    });
}

function loadDatabase(resolve){
  Database.forecasts = Database.lokiDb.getCollection('forecasts') || Database.lokiDb.addCollection('forecasts', { unique: 'forecastDate' });
            Database.forecastLocations = Database.lokiDb.getCollection('forecastLocations') || Database.lokiDb.addCollection('forecastLocations', {indices: ['forecastId']});
            Database.measurements = Database.lokiDb.getCollection('measurements') || Database.lokiDb.addCollection('measurements', {indices: ['forecastLocationId']});
}

I've decided to not try to be so tabular with my save. I'm able to save the highest level objects with children nested. It's performant and better yet not breaking.

Alright, have you tried using the LokiFsStructuredAdapter?  I would try either that or the Partition Adapter + your current adapter.  Once you get over around 128megs of saved file size, it is best to partition or use a streaming adapter like LokiFsStructuredAdapter.... otherwise it requires a lot of RAM to serialize in one shot.

I did a little bit with LokiFsStructuredAdapter, but had some issues. I might revisit if I have more issues. Currently, I'm saving the forecast object with its children as one record and it's working fine. I am still over 200 MB, so your 128MB warning makes me a bit nervous.

You are saving a single 200 MB 'record'?  What is a record... a 200mb document or data file?
How many documents in your collection and how many separate collections?
Yes in javascript serialization there is usually JSON.stringify and JSON.parse.    As you start passing more 'deep' objects to these recursive methods they starting using up an exponential amount of RAM to perform serialization (via many recursions and string concatenations).  If you pass a whole lokijs database at once to be serialized, you start requiring many times more RAM than the original database itself.
LokiJS in a node environment using the LokiFsStructuredAdapter can serialize one document at a time and send that to buffered file stream.  Ram overhead is much lower... assuming you don't have a 200MB document in which case... fix that!
Partitioning adapter probably isn't preferable for node since you have LokiFsStructuredAdapter, but it can be used with any other basic persistence adapter like LokiFsAdapter, LokiIndexedAdapter, etc. to limit amount serialized at once to a single collection rather than entire database.

No, it's not a 200 MB record. That is the entire size of the json file. That said the lion's share of the size is taken up by a relatively small set of records (40-ish). Each one of these records has 15K child objects, each of which have 15 child objects. Previously, I had saved these all in their own tables, and that's where I ran into problems. It seems to actually work better to save them nested than in separate records.


media tests update

Coverage remained the same at 46.09% when pulling d6f89542978afb7b7ce6d30799a5be48fa6db3c2 on tboro:master into aaecd2619fbc2f4b198e55ff0beeeb3d2f6cb9d3 on vegas-cmf:master.

Coverage remained the same at 46.09% when pulling 031630fb28912210134c2547f0d9873162d3e9f5 on tboro:master into aaecd2619fbc2f4b198e55ff0beeeb3d2f6cb9d3 on vegas-cmf:master.


Add request_stream implementation with FluxProcessor class

client.py has the request_stream call, but server.py without request_stream handler.    Implement  request_stream on responder side.

Cancel:  add composite metadata later


Add encryption to the roadmap

cc @ehazlett

Thanks!  Would you mind signing your commit (https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work).

Done

LGTM


403 Error "title": "Client Forbidden",

I have setup app and also connected to the labs
still I am getting this error
and soluti

on

It looks like you have not got keys and tokens from an app on the Developer Portal that is part of a Project. Are you using a standalone app?

Is this still an issue for you?

@andypiper hey, this message returns in this sample (https://github.com/twitterdev/Twitter-API-v2-sample-code/blob/main/Full-Archive-Tweet-Counts/full_archive_tweet_counts.py) probably because of the message:

This endpoint is only available to those users who have been approved for the Academic Research product track.

Thanks @lfalcao that's reasonable in the case of the Full Archive sample (and I will update the comments for that). @Prazav it is not clear which sample you are trying to run in harsh.py and whether you are using keys and tokens for a v2 project and app. Please clarify!

Is this still an issue for you?

Sorry For late reply
It is working now my direclty using bear tokens

You can try this https://twitter.utools.me/ tel: https://t.me/Yang0619


Add support for providing ResouceBuilder as option

Which problem is this PR solving?
Adds HoneycombOptions.ResourceBuilder option that can be used by the calling application to set custom attributes. Defaults to ResouceBuilder.CreateDefault() to maintain backwards compatability
The reason for this is when an application wants to set it's own attributes. The OpenTelemetry SDK does not allow access to the currently set ResourceBuilder, so we have previously set our own to ensure the correct attributes were set. This change allows users to create their own ResourceBuilder and add custom attributes before handing to AddHoneycomb to add.
I went with passing in a configured ResouceBuilder instance over disabling configuring a ResouceBuilder to ensure that all required attributes are set, including env attributes, service name, etc.

Closes #185

Short description of the changes

Adds ResouceBuilder property to HoneycombOptions with a default value created from TracerBuilder.CreateDefault
Use the options' ResourceBuilder instead of always setting a new instance

Not sure if we can really do this actually: https://github.com/open-telemetry/opentelemetry-dotnet/issues/2909

Yeah, the AddHoneycombOptions will get overriden when we call AddHoneycom on TracerProviderBuilder.
The vanilla otel setup works because we're not overriding the ResouceBuilder. Your example with Honeycomb needs to be tweaked like this:

Ah, got it! So perhaps we'll just want to update our example apps to show this as an added option, and/or update our docs for this.
Locally, I adjusted the console example app to look like this:
...
        static void Main(string[] args)
        {
            var resourceBuilder = ResourceBuilder.CreateEmpty()
                .AddAttributes(new Dictionary<string, object>
                {
                    {"deployment.environment", "dev"}
                });

           var options = new HoneycombOptions
            {
                ServiceName = "my-console-app",
                ApiKey = "{apikey}",
                TracesDataset = "{traces-dataset}",
                ResourceBuilder = resourceBuilder
            };

            using var tracerProvider = OpenTelemetry.Sdk.CreateTracerProviderBuilder()
                .AddHoneycomb(options)
                .Build();
...

and it was successful:
Resource associated with Activity:
    service.name: my-console-app
    service.version: {unknown_service_version}
    service.instance.id: f9e6596f-75a8-496b-ac80-7de84d57414a
    honeycomb.distro.language: dotnet
    honeycomb.distro.version: 0.20.0-beta
    honeycomb.distro.runtime_version: 5.0.7
    deployment.environment: dev

Ooof, hmm, that's confusing. I could easily see myself wanting to write this code instead, especially since this fluent-style code is so common in C# config for aspnet apps
    .SetResourceBuilder(
        ResourceBuilder.CreateDefault()
            .AddAttributes(new Dictionary<string, object>
            {
                {"deployment.environment", "dev"}
            })
            .AddHoneycombAttributes()
            )
    .AddConsoleExporter()
    .AddHoneycomb(options)

There's no way to make sure they don't get overridden?

Yeah, the AddHoneycombOptions will get overriden when we call AddHoneycom on TracerProviderBuilder.
The vanilla otel setup works because we're not overriding the ResouceBuilder. Your example with Honeycomb needs to be tweaked like this:

Ah, got it! So perhaps we'll just want to update our example apps to show this as an added option, and/or update our docs for this.

I've added some extra details to REAME and example to show how to set additional resource attributes 👍🏻


problem installing node-red-contrib-viseo-nedb

hi,
i was installed node-red-contrib-viseo-nedb via NPM & Node-red palette, but nedb node not shown in palette (only xlsx was shown).
can someone help me, and give simple example to use nedb node?

The same problem here.
The node package node-xlsx is missing in the dependencies section in package.json.
The package is loaded in lib/nedb-manager.js.
22 Feb 12:29:04 - [info] Installing module: node-red-contrib-viseo-nedb, version: 0.3.2
22 Feb 12:29:23 - [info] Installed module: node-red-contrib-viseo-nedb
22 Feb 12:29:23 - [info] Added node types:
22 Feb 12:29:23 - [info]  - node-red-contrib-viseo-nedb:nedb : Error: Cannot find module 'node-xlsx'


Error in creating a Token

Hi, hope people are still active here,
I am setting up my first smart mirror, and I have followed all the steps so far. Copied in my Client id and Client secret. Added http://localhost:8888/callback to Redirect URLs in setting.
When I run node first_auth.js  I get redirected to the web where I accept to MagicMirror changing my Spotify stuff then
it redirects but never works.
https://prnt.sc/12kr2co

Any idea's ? My client ID and secret were copied 1 for 1 , I've triple quadruple checked my
Thanks for your time =)
Have a great day !

edited code by accident when i was filling the client secret / id

Great to hear that you where able to resolve it so quickly. Don't hesitate to come back if you have any other questions or problems.


The argument for AddDatabase represents a database and a connection string name at the same time

Let's take this example for PostgreSQL:
var catalogDb = builder.AddPostgresContainer("postgres").AddDatabase("catalogdb");

"catalogdb" is both the name of the database (a technical name), and the name of the resource (a logical name).
As a developer when I read AddDatabase(string name) I understand that is can be a database name, as in CREATE DATABASE "catalogdb".
But in the app when I do builder.AddNpgsqlDbContext<CatalogDbContext>("catalogdb") it's asking for a connectionName.
Though the documentation for AddDatabase(string name) is clear:

The name of the resource. This name will be used as the connection string name when referenced in a dependency.

It seems like we should be able to provide a database name and a resource name (or connection string name), because we might want them to be different, or change independently.
The name argument should also be changed to remove the ambiguity.

Are you going to make this change @sebastienros ?

I am willing to, was waiting for some kind of triage before, and maybe comments.

@davidfowl I don't think it an ship in next preview, right?

We should do this for next preview. Thoughts @mitchdenny?

I think we need to do this (created an issue recently for the same thing). Next preview seems fine. I think the usage of IResource.Name is quite pervasive so each usage will have to be scrutinized, especially where connection strings are concerned.
There is a related aspect to this in the context of the proposed metadata field (#1619). For cloud deployment tools we may wish to have a different resource name than that specified in the app model - especially when approaching brownfields work.

@sebastienros are you still working on this? Loop in @ellismg for the AZD side of things.

Yes I will work on that very soon.


Create an Antora adapter to write diagrams to the output images directory

Otherwise the diagrams won't be resolved.
Currently it's not possible to use the kroki-fetch-diagram feature in Antora.

resolved in 54cf7da44f373a2809070ee1775e567b062c217e

Can we now save diagrams locally in Antora websites? Yeah!

Is this documented somewhere? Is there something to configure to make it work?

Is this documented somewhere?

No but I heard it's working :sweat_smile:

Is there something to configure to make it work?

If you define kroki-fetch-diagram it should work.

It does work! However in our case (we use a custom built Docker image to drive builds both locally and on our CI/CD pipeline with the same config) we had to yarn global add mkdirp unxhr to make it work, but it did work!

For info, our Docker image builds FROM antora/antora:2.2.0

And I've just tried it together with asciidoctor-reveal.js, and it also works perfectly well.

It does work!

Cool 👍
@akosma We should probably add a mention somewhere in the README. If you want to update the README I will gladly merge it 😉

However in our case (we use a custom built Docker image to drive builds both locally and on our CI/CD pipeline with the same config) we had to yarn global add mkdirp unxhr to make it work, but it did work!

I don't remember why I didn't add unxhr as a dependency... I will open an issue to track it.


ButtonToolbar component or add support for input and select in ButtonGroup

Feature
So I would like to have an Input or a Select beside a button or any horizontal component that could be interact with. Right now the closest things to that is the ButtonGroup, but it's Button exclusive... I would like it to be for anything that can be interact with. In my case, Select and Input handling in ButtonGroup is what I'm looking for.
With Input type="datetime_local", there is a button already include in the input, but I need it to be able to erase it which isn't possible with native browser datetime input. So I'm adding a button to the right, but I would like to have preset style so I don't have to write the style.
Examples
Something like this :

Right now adding Input in ButtonGroup look like this :

We do plan to add support for combining inputs and buttons. It will likely not be a part of ButtonGroup.
Also just to clarify, what do you mean by "I need it to be able to erase it"? Maybe you can add some details to #53

With native browser DateTime component, you can set a null date to a date, but you cannot unset a date to null... So the workaround is to set a button which allow to clear the input. If the iTwin DateTime component is decent, I would not be required to have that button, but because it's not implemented yet, this the workaround to unset date in a native input field.

This is now available in iTwinUI-css v0.43.0 and iTwinUI-react v1.28.0


--skip-lock: tomlkit.exceptions.NonExistentKey: 'Key "source" does not exist.'

Issue description
When using pipenv install --skip-lock, I get the error
tomlkit.exceptions.NonExistentKey: 'Key "source" does not exist.'

because there is no [[source]] defined in the Pipfile.
The culprit is the following line of code from pipenv.project.Project.get_lockfile_meta:
sources = [dict(source) for source in self.parsed_pipfile["source"]]

which requires source key to be present in parsed Pipfile.
Workaround, add default [[source]] section for PyPI to your Pipfile:
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

Expected result
A [[source]] section should not be required and installation proceed as normal.
Actual result
Installing dependencies from Pipfile…
Traceback (most recent call last):
  File "/opt/miniconda3/bin/pipenv", line 8, in <module>
    sys.exit(cli())
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/cli/command.py", line 254, in install
    editable_packages=state.installstate.editables,
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/core.py", line 1874, in do_install
    keep_outdated=keep_outdated
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/core.py", line 1253, in do_init
    pypi_mirror=pypi_mirror,
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/core.py", line 795, in do_install_dependencies
    lockfile = project.get_or_create_lockfile(from_pipfile=True)
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/project.py", line 754, in get_or_create_lockfile
    lockfile_dict.update({"_meta": self.get_lockfile_meta()})
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/project.py", line 790, in get_lockfile_meta
    sources = [dict(source) for source in self.parsed_pipfile["source"]]
  File "/opt/miniconda3/lib/python3.7/site-packages/pipenv/vendor/tomlkit/container.py", line 500, in __getitem__
    raise NonExistentKey(key)
tomlkit.exceptions.NonExistentKey: 'Key "source" does not exist.'

Steps to replicate
Example Pipfile:
[packages]
pytest = "*"
tox = "*"

Run pipenv install --skip-lock.

Pipenv version: '2018.11.26'

Fixed in master, close it now. Let's wait for the coming release

Hey, looks like this issue is back in 2020.6.2
Caught the same error when running pipenv install --skip-lock and when requirements.txt file was present so that it's used instead of a Pipfile

Same. 2020.6.2 shows this when trying to use requirements.txt.
$ pipenv install -r requirements.txt --skip-lock

Status: Still doesn’t work for me for Pipenv 2020.8.13 :x:
1. MCVE
See the KiraSkipLock branch of my demo/debugging repository.

Pipfile:

[dev-packages]
pylint = "*"

A part of the .travis.yml:

install:
- export PIPENV_SKIP_LOCK=1
- pip install pipenv
- pipenv --version

script:
- pipenv install --dev

2. Behavior
2.1. Current

Travis build:

Traceback (most recent call last):

  File "/home/travis/virtualenv/python3.9.0/bin/pipenv", line 8, in <module>

    sys.exit(cli())

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 829, in __call__

    return self.main(*args, **kwargs)

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 782, in main

    rv = self.invoke(ctx)

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 1259, in invoke

    return _process_result(sub_ctx.command.invoke(sub_ctx))

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke

    return ctx.invoke(self.callback, **ctx.params)

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 610, in invoke

    return callback(*args, **kwargs)

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/vendor/click/decorators.py", line 73, in new_func

    return ctx.invoke(f, obj, *args, **kwargs)

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 610, in invoke

    return callback(*args, **kwargs)

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/vendor/click/decorators.py", line 21, in new_func

    return f(get_current_context(), *args, **kwargs)

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/cli/command.py", line 232, in install

    retcode = do_install(

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/core.py", line 2052, in do_install

    do_init(

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/core.py", line 1305, in do_init

    do_install_dependencies(

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/core.py", line 827, in do_install_dependencies

    lockfile = project.get_or_create_lockfile(from_pipfile=True)

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/project.py", line 783, in get_or_create_lockfile

    lockfile_dict.update({"_meta": self.get_lockfile_meta()})

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/project.py", line 819, in get_lockfile_meta

    sources = [dict(source) for source in self.parsed_pipfile["source"]]

  File "/home/travis/virtualenv/python3.9.0/lib/python3.9/site-packages/pipenv/vendor/tomlkit/container.py", line 538, in __getitem__

    raise NonExistentKey(key)

tomlkit.exceptions.NonExistentKey: 'Key "source" does not exist.'

The command "pipenv install --dev" exited with 1.

2.2. Expected
If:
- export PIPENV_SKIP_LOCK=1

No traceback, see the Travis build:
Pipfile.lock not found, creating…

Locking [dev-packages] dependencies…

Building requirements…

Resolving dependencies…

Success!

Locking [packages] dependencies…

Updated Pipfile.lock (4e85bb)!

Installing dependencies from Pipfile.lock (4e85bb)…

  ================================ 7/7 — 00:00:00

The command "pipenv install --dev" exited with 0.

3. Environment

Operating system:

Windows 10.0.19041.508 Pro N for Workstations 64-bit EN (Local)
Ubuntu 20.04.1 LTS (Travis CI)

Python 3.9.0

pipenv 2020.8.13

Thanks.

Please try with the latest version of pipenv

@Mause, I reproduce the problem for Pipenv 2020.11.15. See the Travis build.
Thanks.

Your Pipfile is missing the source section - this isn't optional

@Mause , see the original @schuhschuh issue:

Expected result
A [[source]] section should not be required and installation proceed as normal.

Thanks.

It seems like the fix was lost somehow (probably due to a merge). Reopening.
https://github.com/pypa/pipenv/blob/v2020.11.15/pipenv/project.py#L820-L833

The fix to this should not be too difficult (set sources to  [DEFAULT_SOURCE] if the section does not exist). A PR would be very welcomed!

I don't see the issue anymore, but I can make a PR If it still needs to be fixed


Add ArrowBytesViewMap and ArrowBytesViewSet

Which issue does this PR close?

Please wait until https://github.com/apache/arrow-rs/pull/6047 is merged
Part of  #11418. We can merge to main, if the string-view is merged to main first.
Rationale for this change
We need them to better support efficient string view aggregate.

What changes are included in this PR?
They are not much different from ArrowBytesMap, except that they are simpler, in terms of hash table entry layout.
This PR only implements the type, but did not use it anywhere, since the PR is already quite large imo.

Are these changes tested?

Are there any user-facing changes?

Please hold for review. Reusing the underlying buffer turns out to be a bad idea because it will prevent the buffers from being released. I think it's better to copy the unique strings to new buffers.

Thanks @XiangpengHao
I have proposed merging the current string-view branch into main here: https://github.com/apache/datafusion/pull/11402
However, if we did that, it would only have access to changes that were released in 51.1.0 (for example, not https://github.com/apache/arrow-rs/pull/6047)
Some options:

Keep the existing string-view branch open for longer (and update it to point at the head of arrow-rs)
Merge string-view to main and make a new branch (string-view2?) with more changes

🤔

I think either works, and we do need a branch that tracks the head of arrow-rs, as I expect a few more changes to arrow will be necessary for us to land string view in DataFusion

I think either works, and we do need a branch that tracks the head of arrow-rs, as I expect a few more changes to arrow will be necessary for us to land string view in DataFusion

My preference then is to make a new branch (mostly to keep the change delta to a minimum). Let me try and get that PR merged shortly and we can make a new string-view2 branch to target


During initial perf test, seeing error about   "Aborting, target uses selinux but python bindings (libselinux-python) aren't installed!"

Client's environment:
RHEL 7, python3.6, ansible 2.10.17
During initial perf test after setup, seeing error for multiple volumes:
  "Aborting, target uses selinux but python bindings (libselinux-python) aren't installed!"
Tried adding ansible_python_interpreter=/usr/bin/python3.6 into params.yaml but the error still there

Installed python3-libselinux on this RHEL7 host and resolved the issue

For future reference, the resolution  is: https://stackoverflow.com/questions/63173955/aborting-target-uses-selinux-but-python-bindings-libselinux-python-arent-ins

This seems only happens on RHEL7, which by default has libselinux for python2 only
RHEL8 and above won't have the issue


fix: correct file name

As title said.

Whoops, nice catch.

Hello Hello Hello, pardon my intrusion upon this issue but since a few people want @HigherOrderLogic in the Eludris Discord guild I'm here personally to hand you an invite https://discord.gg/bJTQJxjH
please join :D


@JuliaRegistrator register

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/106175
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v1.3.5 -m "<description of version>" 435c0a03af5bdf84359fbabfe2e06f4cc5e9be1d
git push origin v1.3.5

Also, note the warning: Version 1.3.5 skips over 1.3.3
This can be safely ignored. However, if you want to fix this you can do so. Call register() again after making the fix. This will update the Pull request.

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/106175
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v1.3.5 -m "<description of version>" 435c0a03af5bdf84359fbabfe2e06f4cc5e9be1d
git push origin v1.3.5

Also, note the warning: Version 1.3.5 skips over 1.3.3
This can be safely ignored. However, if you want to fix this you can do so. Call register() again after making the fix. This will update the Pull request.

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/106201
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v1.3.3 -m "<description of version>" d0840ec4e88e1ccd8ef35e56a37a8c384184ba49
git push origin v1.3.3

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/106201
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v1.3.3 -m "<description of version>" d0840ec4e88e1ccd8ef35e56a37a8c384184ba49
git push origin v1.3.3

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/106202
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v1.4.0 -m "<description of version>" 7d55d2302958b3fc64e6e9c5b25ff4e6c21353c6
git push origin v1.4.0

@JuliaRegistrator register()

Registration pull request created: JuliaRegistries/General/112887
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v1.5.0 -m "<description of version>" 6d83625d755c945852fb817af6b15ee948d1047a
git push origin v1.5.0


Using vi to create azure-vote.yaml does not work

Tutorial states to use vi or Nano to create/edit 'azure-vote.yaml' file - This does not work.  Please remove it from Tutorial.  Using the native Text Editor ( using the double curly link  { } ) does work.  Please update Tutorial to refer reader to native Text Editor

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

ID: 965a7faf-6684-1b1e-3570-ea0b38ce02db
Version Independent ID: 2efd8393-0b5b-e827-8762-fa58d6758d93
Content: Quickstart - Create an Azure Kubernetes Service (AKS) cluster in the portal
Content Source: articles/aks/kubernetes-walkthrough-portal.md
Service: container-service
GitHub Login: @iainfoulds
Microsoft Alias: iainfou

I have the same issue on Mac OSX Big Sur, Swedish date & keyboard settings, same problem using both Edge Chromium and Safari.. Have not found any way around it yet.


All searches return an empty collection

Laravel Version: 5.5.48
Adldap2-Laravel Version: 6.0
PHP Version: 7.2.24
LDAP Type: ActiveDirectory

I already checked the base_dn with the command dsquery user -name "Username"
so the base_dn must be correct.
I checked all the past issues but noting helped.
The connection to the server works fine but when i try to show all the users i get a empty collection

Hi @cenzo81,
A couple things:

Do you have follow_referalls enabled?
Is your base_dn scoped to any organization unit? Such as ou=Users,dc=acme,dc=org? Or simply dc=acme,dc=org?
Can retrieve any records at all? Try retrieving all records for testing using: Adldap::search()->get()

Hi Steve,
thank's for your fast reply,

Yes it is nabled but i changed it also to follow_referrals = false with no effect
the result of the dsquery shows OU=Benutzer,OU=BEKON,OU=LAefer,DC=LAefer,DC=local
No result just an empty collection

Beside Laravel i testet the ldap connection an it works fine so i think it must be a missconfiguration

Hey @cenzo81,
From the DN you've posted, this would be your base: DC=LAefer,DC=local.
Can you set your base_dn to the above and give it another shot?

My base_dn is exactly like that

Ok, are you caching your configuration at all? If so, please try clearing it via php artisan cache:clear.
Also, can you enable logging inside your ldap.php config file, then try retrieving records again and post the logs that appear in your storage/logs directory?

I cleard the config cache after any change.
The idea activating the log is good.
Here is my config
'auto_connect' => env('LDAP_AUTO_CONNECT', true),             'connection' => Adldap\Connections\Ldap::class,             'settings' => [                 'schema' => Adldap\Schemas\ActiveDirectory::class,                 'account_prefix' => env('LDAP_ACCOUNT_PREFIX', ''),                 'account_suffix' => env('LDAP_ACCOUNT_SUFFIX', '@LAefer.local'),                 'hosts' => explode(' ', env('LDAP_HOSTS', 'dienste.LAefer.local backup.LAefer.local')),                 'port' => env('LDAP_PORT', 389),                 'timeout' => env('LDAP_TIMEOUT', 5),                 'base_dn' => env('LDAP_BASE_DN', 'DC=LAefer,DC=local'), 				'username' => env('username'),                 'password' => env('password'),                 'follow_referrals' => false, 				'use_ssl' => env('LDAP_USE_SSL', false),                 'use_tls' => env('LDAP_USE_TLS', false),

After enabling the logging nothing is otuputted to the laravel.log

Very strange... Can you verify that the following statement returns true in your application?
$connected = Adldap::getConnection()->isBound();

dd($connected);

Yes the function returns true

That's so bizarre. Enabling logs and making any attempt to connect to your LDAP servers will show up as a bind request in your logs...
Do you have multiple connections setup in your ldap.php config file?

No there is just one connection in the config, i am diving deep i your code right now and i think there is something wrong with the binding. When i insert my own binding with hard coded username an password then it works. Seems like the username and password is null when i don't use my own binding. I'll continue analyzing

Ok, so finally i found the Problem! It was sitting right behind the keyboard. (ISO/OSI Layer 8 Problem)
My big fault was to set the unsername an password the wrong way.
I did this in the config
'username' => env('username'), 'password' => env('1234'),
But of cause i need to set it like that
'username' => env('LDAP_USERNAME', 'username'), 'password' => env('LDAP_PASSWORD', '1234'),
Maybe you could change that in your ldap.php to prevent other people doing the same
by putting an empty string or the word username and password as placeholder like you did it with the account_suffix? It's just a conclusion
'account_suffix' => env('LDAP_ACCOUNT_SUFFIX', '')

Great! I'm glad you were able to resolve it :smile:

Maybe you could change that in your ldap.php to prevent other people doing the same
by putting an empty string or the word username and password as placeholder like you did it with the account_suffix?

I think I'll do that, thanks for the suggestion!


Kirki_Helper::get_image_from_url not working

Issue description:
Kirki_Helper::get_image_from_url() returns NULL values.
Version used:
2.3.5
Using theme_mods or options?
theme_mods
Code to reproduce the issue (config + field(s))
I have added the code below inside customizer.php
Kirki::add_config( 'theme_config', array(
	'capability'  => 'edit_theme_options',
	'option_type' => 'theme_mod',
) );

Kirki::add_section( 'site_branding', array(
	'title'      => 'Site Branding',
	'priority'   => 20,
	'capability' => 'edit_theme_options',
) );

Kirki::add_field( 'theme_config', array(
	'type'        => 'image',
	'settings'    => 'site_logo',
	'label'       => 'Site Logo',
	'section'     => 'site_branding',
	'priority'    => 10,
) );

Then I added this code inside header.php
$url = get_theme_mod( 'site_logo', get_template_directory_uri() . '/assets/images/site-logo.png' );
$image = Kirki_Helper::get_image_from_url( $url );

$url contains the url of the image I have uploaded but when I dump the values of $image I get this output array(4) { ["url"]=> NULL ["width"]=> NULL ["height"]=> NULL ["thumbnail"]=> NULL }

This happens because the image you're using is not in the WP Library.
If you upload an image (instead of the default value which is not in the library) then it works fine.
When the image is not in the library WordPress can't get its info because all that info is strored in the database, and the database only stores data on images uploaded in the library.
Assets that are inside the theme-folder for example will not have any data.
This has nothing to do with Kirki, it's just the way WordPress-Core works.


Creates a Tool Enabling Debugging of the Package Replier

This is just a thought on how we could create something simple to enable the debugging of our package cloudevent replier. Note that there is an implementation of this in PR#484

This is a curl call, but coded in Go that prints the response using Printf. I personally don't see much value having this in the core of our codebase since kubectl run ... -- curl -D- ... would give you the exact same output.
Also, I see you dropped the code in the e2e framework, but as is I don't see how this could be useful to run e2e tests.


Error: EMFILE: too many open files

Executing "serverless package" command I'm having this error:
`Serverless: Removing Python requirements helper...
Serverless: Installing required Python packages for runtime python2.7...
Serverless: Zipping required Python packages...
events.js:160
throw er; // Unhandled 'error' event
^
Error: EMFILE: too many open files, open '/synced_data/kuona_lambda/promo-simulations-level/.requirements/numpy/core/tests/test_arrayprint.pyc'
at Error (native)`
This is what I'm using:
CentOS-7
python2.7
Node v6.10.3
serverless v1.16.0
I did a count file in the .requierements folder (find .requirements -type f | wc -l) and this is the result: 9202
Is there something I am missing?, how can I fix this?

Hmm. You're the first to encounter this error AFAIK. Would you mind sharing your requirements.txt file?

Sure. This is my requirements.txt
Django==1.8.2 psycopg2==2.4.5 simplejson==3.3.1 urllib3==1.7.1 django-reversion==1.8.7 django-json-field==0.5.7 pytz==2015.6 numpy==1.12.1 Pillow==2.9.0 pandas==0.19.2 sklearn==0.0 scipy==0.15.1 patsy==0.4.1

Hey @gutyril, sorry I wasn't able to reproduce this (tho I'm not quite matching your setup, I'm on Ubuntu). I get the same result from find .requirements -type f | wc -l too tho. :confounded:

I doubt it's much help to you at this stage, but when I encountered this I had gone from dockerizePip: false to dockerizePip: true and fixed it by deleting my .requirements.

Hi @gutyril, that happened to me (on OSX) and I did what's on this stackoverflow guide.
TL;DR -
$ echo kern.maxfiles=65536 | sudo tee -a /etc/sysctl.conf
$ echo kern.maxfilesperproc=65536 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -w kern.maxfiles=65536
$ sudo sysctl -w kern.maxfilesperproc=65536
$ ulimit -n 65536


Flank is unable to fetch results after test run.

We have two projects where we use Flank, one of them works fine, but another fails to fetch test run results. Projects have identical Flank configuration except gcloud-bucket.
After all tests pass Flank crashes with following log:
Created folder: /project/instrumentation-tmp/results

Fetching results to: /project/instrumentation-tmp/results
java.lang.RuntimeException: CommandException: No URLs matched: flank.tests
	at com.walmart.otto.tools.Tool.executeCommand(Tool.java:60)
	at com.walmart.otto.tools.GsutilTool.uploadTestTimeFile(GsutilTool.java:81)
	at com.walmart.otto.Flank.uploadTestTimeFile(Flank.java:151)
	at com.walmart.otto.Flank.start(Flank.java:65)
	at com.walmart.otto.Flank.main(Flank.java:77)

Environment:

Flank 1.4.1
Google Cloud SDK 149.0.0-linux-x86_64

I've also double checked gcloud-bucket and gcloud --key-file, it seems to be a Flank issue since it's able to run tests but unable to download results.

Thanks for reporting this. We'll fix this ASAP.

If you need more info — feel free to ask, I'll be glad to help!

Tried to update Google Cloud SDK to 167.0.0-linux-x86_64 — same error.


More examples and documentation

Hi,
It's seems that Rocket was a good alternative to Docker, but it currently lack of documentation or real examples.  Okay you have a small example with a staticly compiled "Hello World" in Go, but in the real world, user want create container with real application with a lot of dependencies or in another languages like Java or Scala.
Is it possible to add some real use case with full explanations how to make containers (ie: MySQL / PostgreSQL / Web app in Java like Play Framework who run from a bash script / ...) ?
Any websites where we can found pre-build .ACI files ?
Thanks

Having more real world examples is a great idea. I'll work on low level docs in the next few days, but packaging classical play/jetty/tomcat web apps and DB's is actually a great idea.
@farazfazli maybe you can help here as discussed? Let's make and document samples for psql/mysql, and Java/python web apps.

@0xbaadf00d You can use both Docker images and ACI files with Rocket. A good place to find images is quay.io/
I am not familiar with play/jetty/tomcat, however I will post a tutorial on how to build ACIs for Postgres and Java 7 soon.


[BETA API] With the v1beta1 changes introduced, need to determine the scope for test changes required

Is there an existing issue for this?

[X] I have searched the existing issues

Anything else?
As #1352 introduces changes to samples of all the CRs, which might affect the existing e2e test cases. Raising this issue to discuss the scope of test cases that need immediate attention.

@qu1queee @SaschaSchwarze0 I can observe that we have few YAML examples in test/data. I believe these has to be updated as per v1beta1?

@qu1queee @SaschaSchwarze0 I can observe that we have few YAML examples in test/data, which are being used within the test suites. Should these be updated as per v1beta1?

It would make sense to not migrate everything to Beta in test/data but to retain some Alpha objects to keep them covered (especially relevant when alpha eventually is not anymore the stored version).

From refinement, @apoorvajagtap to introduce some changes related to duplicate e2e tests. We will sync on this topic after that. Per the discussion, we do not have clarity on the best approach for e2e tests. The options are:

move e2e to v1beta1, consequence is that we lose testing for alpha once the storage version becomes beta(v0.13.0 release)
introduce e2e tests for both versions.


Log c plus transformer

Hi @TremaMiguel
I rebased master after we merged the PR for the inverse_transform, as there is a conflicting file, log.py that needed to resolution. You'll probably see the conflict in your repo as well.
I reformatted the tests a bit to add inverse transform for Marks, so that we also tests variables that are <1.
And added TODOs in log.py and the tests file:
Since we now allow the user to pass a dictionary with the variable to c pairs, in fit, variables_ should now be taken from this dictionary and checked that they are indeed numerical. You can look at examples in the arbitrary imputer probably.
Also, c should also allow floats, not just ints. And we need to add tests for the different options of c, that is int, float, dictionary.
I added dictionary, but needs changing
Let me know if you could be able to add these changes. Otherwise, I can take over. Cheers! and thank you so much for the contribution

@TremaMiguel modified fit() so that it learns variables from dictionary. Only thing remaining are the tests for variations of C, so when C is integer or float.


Getting configured accessory name from HomeKit

Is there a way to get the configured accessory name in HomeKit using ESPHap?
As in the identifier configured on the iPhone?
I'm currently trying to display the iOS-Name of an accessory on the integrated Webserver of the ESP, so that I can identify which configuration I'm working on. Think of having 5 lights in the ceiling and having no idea which one you're currently setting up using the webinterface.
Is there some kind of HAP_GET_ACCESSORY_NAME or something like that?

Hi, could you please explain where you expected to look accessory name. On the browser ?
In Apple home kit application you have chanse:

To rename device
During the setup (see example ESPHapAdvanceLed)  you ca give any name for accessory and services. just change string values on the code below

   hap_initbase_accessory_service(HOSTNAME,"Yurik72","0","EspHapLed","1.0");

   //we will add only one light bulb service and keep pointer for nest using
    hapservice= hap_add_lightbulb_service("Led",led_callback,(void*)&led_gpio);

Hi,
basically I'm looking for a way to retrieve the device-name after it was paired and changed in the HomeKit/Apple Home app.
Let's say I have two lights A and B, both are using the same firmware with ESPHap and do a
hap_initbase_accessory_service("lightbulb", "Author", "0", "EspHapLed", "1.0");
service = hap_add_lightbulb_service("led", callback, (void*) &led_gpio);

They will show up in the HomeKit app on the iPhone as
A- EspHapLed-R4ND
B- EspHapLed-ND0M
After pairing I can assign a new name for these Devices in the HomeKit app like for example
A- WindowLight
B- CeilingLight
What I'm trying to is to read these changed names back into the firmware, so that the "given name" can be displayed on the device websites of bulbs A and B, where more settings can be configured than in the HomeKit app on iPhone alone.
So that, when opening the device website (for example to check the power-usage of a device), I can display the same name to the user as is configured in the iPhone Home app, making it easier to identify the correct device compared to a default model-name with a random-device id.
Maybe an even better example for this use case would be 2 window coverings on differently sized windows, where you need to configure the start and stop points on the device website. I just want to display the new device names on the configuration website of a device.


IGNITE-13663 : Represent in the documenttion affection of several node addresses on failure detection v2.

We should document that TcpDiscoverySpi prolongs detection of node failure if node has several addresses. By default, all available addresses are assigned to node and node listens any address (<IP_ADDRESS>). Actual failure detection delay of this node is: failureDetectionTimeout * addressesNumber + connRecoveryTimeout.
Often, middleware runs in environments with several IP addresses (virtualizations, containers, different networks). Node sends all obtained addresses with other node info to the cluster. Connection to node is established to first of its addresses. But if lost, other addresses are attempted to reconnect sequentially. If addresses do not belong to assumed node network, do not represent existing physical connection, processing them is just waste of time.

@Vladsz83, should we encourage the developer to initialize the TcpCommunicationSpi.localAddresses as well? So that the nodes use only reachable network interfaces for communication needs.

@Vladsz83, should we encourage the developer to initialize the TcpCommunicationSpi.localAddresses as well? So that the nodes use only reachable network interfaces for communication needs.

We should encourage user to set IgniteConfiguration.localHost. This one is read buy other componentc. ZooKeeperSpi as an example. No reason to setup localAddress everywhere.


1st Level Collapse command not working properly

VSCode Version: 1.24.0 (1.24.0)
OS Version: OSX 10.13.4 (17E202)

Steps to Reproduce:

Cmd + K + 1

Does this issue occur when all extensions are disabled?: Yes
That command is supposed to collapse everything in the first level. This was working right before but something changed after an auto-update?

In addition, template literals also are not collapsed anymore:

See https://github.com/Microsoft/vscode/issues/47667 for the template literal folding issue

The typescript folding provider doesn't provide ranges for parameter lists that go over several lines.

But the code that I wrote is not typescript. Does that matter?

This is because of our switch to syntax based folding. The old behavior you are expected was because collapsing was previously based on indentation. See this section in the release notes for more info: https://code.visualstudio.com/updates/v1_24#_syntax-aware-folding-enabled-by-default-for-jsts
Related issues:

Folding for template strings: https://github.com/Microsoft/TypeScript/issues/23382
Folding for mult-line parameter lists: https://github.com/Microsoft/TypeScript/issues/22915


Added support for php 8.4. Update laminas-coding-standard to v3

Q
A

Documentation
no

Bugfix
no

BC Break
no

New Feature
yes

RFC
no

QA
yes

Description

Added support for PHP 8 4.
Updated laminas-ci-matrix configuration to ignore platform requirements for PHP 8.4
Updated laminas-coding-standard to v3.
Fixed one file that was reporting a minoir coding standard issue

Thank you @visto9259


Replace console.log statements with debug statements

We're using console.log calls to debug server-side code. These calls should be made via a logging system that allows the developer to specify the log level (debug, error, warn, log, etc). We should be able to specify to our app via a config file which levels to output and where to stream output (file, stdout, etc)

Indeeed
Joshua Cano

On Jan 27, 2017, at 23:43, WCRest<EMAIL_ADDRESS>wrote:
We're using console.log calls to debug server-side code. These calls should be made via a logging system that allows the developer to specify the log level (debug, error, warn, log, etc). We should be able to specify to our app via a config file which levels to output and where to stream output (file, stdout, etc)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I'm working on using winston for this.


NSCoder not implemented.

It would be awesome if you could fix this crash.

Thanks for the feedback! I'll correct it this Saturday.
If you're in a hurry don't hesitate to make a pull request

I think it's fixed, I never use storyboard so let me know

I'll give it a go thankyou


Not working with cordova-android 10

getting Error "BackgroundMode is not active, skipped..." when i upgrade cordova android to 10

require additional permissions on android 10 check that, is your app targeting android api 30? in the list of issues there is a thread about android 10


Implement all http2 frames

Coverage decreased (-1.2%) to 62.409% when pulling a1efffd527e339471a0068ebf173f8dd4effe430 on http2-events into 36d8d08ed339d1b0179b04c69d9730817849873d on master.

Coverage decreased (-1.2%) to 62.409% when pulling a6abd9b139d23896224cd57e872198e3462d6078 on http2-events into 36d8d08ed339d1b0179b04c69d9730817849873d on master.


Error during compilation

@sketchbooks99
Hello!
According to the correct installation of the readme, an error is always reported when running, just like
 d_data : identifier not found. compiling source file E:\chung\Program\OptiX-Raytracer-master\oprt\core\scene.cpp
d_data : identifier not found. compiling source file E:\chung\Program\OptiX-Raytracer-master\oprt\oprt.cpp
d_data : identifier not found. compiling source file E:\chung\Program\OptiX-Raytracer-master\oprt\emitter\envmap.cpp
I don't know what's wrong with it.
Than you for your help!!

Hi @JoCuc 👋
We found that your errors may be due to the Japanese comments in sources files conflict with the encoding settings of compilation. If you use MSVC, please add /source-charset:utf-8 for Additional Options of Command Line.
We also add this notice to README.md, please check our instructions.


Support of SSN,TIN,email, phone number Formats should be available in component

Is your feature request related to a problem? Please describe.
We have an requirement, that we want fields which are common like SSN, TIN, email, phone to be formatted automatically instead of us coding. Also it would be great if we can give an input to the CDK component that this is a numeric only field.
Its tedious to handle the simple activity to restrict alphabets on a field, we have to write code - a simple input to the coponent saying numeric should do that.
Also it would be nice, if we can mention the allowed size on the field. Like I want my text field is accept only 3 characters, there should be some attribute which I can set to 3, and the field will accept only 3.
Describe the solution you'd like
if we can mention the allowed size on the field. Like I want my text field is accept only 3 characters, there should be some attribute which I can set to 3, and the field will accept only 3.
There could be format attribute, which can be given values like numeric/alphanumeric/ssn/tim/phone/email which will either throw error on wrong enter, or will format the value or will not allow wrong characters in the field.
Describe alternatives you've considered
We had written onClick/onBlur methods, which does this for us, but its tedious and error prone as we have to do on every field.
Please do tell if the requirements are not clear, and any info needed from me?

There are many feature requests in this issue. I think some of them we can actually implement them as part of the CDK.
We are going to think about which ones are appropriate.
In the meantime, the controlled version of the component allows you to implement any custom behaviour.

There are many feature requests in this issue. I think some of them we can actually implement them as part of the CDK.
We are going to think about which ones are appropriate.
In the meantime, the controlled version of the component allows you to implement any custom behaviour.

Please let us know what is decided, which one will be picked in your 21.2 release.

Hi @jsardid, Could you please provide updates on this issue.

@aweell @peibolsang @jsardid  Could you please share ETC on this ticket.

@jsardid Can you provide your latest updates on this issue ?

Some of these formats (not all of them) have been implemented during this release and will be part of a numbered release in the following weeks.

NumberInput documentation available here.
TextInput documentation available here.


Lunarvim: pyright not working

Describe the bug
A clear and concise description of what the bug is.
Steps To Reproduce
Steps to reproduce the behavior:

Enter in a folder with a python file, and turn it into a git project (so LSPs like pyright can work)
Enter in a shell with lunarvim (lvim): nix-shell -p lunarvim
Open your file like this: lvim file.py

The first error you get is:
The project does not address the selection of constellations and filters.
If you run :LspLog in lvim, you get:
[START][2024-04-21 19:33:21] LSP logging initiated
[ERROR][2024-04-21 19:33:21] .../vim/lsp/rpc.lua:734	"rpc"	"pylyzer"	"stderr"	"thread 'start_client_health_checker_receiver' panicked at /home/mood/.cargo/registry/src/index.crates.io-6f17d22bba15001f/els-0.1.39/diagnostics.rs:469:29:\nClient health check timed out\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n"

Expected behavior
Expecting pyright to work
Notify maintainers
@ProminentRetail
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
- system: `"x86_64-linux"`
 - host os: `Linux 6.1.87, NixOS, 23.11 (Tapir), 23.11.20240419.bc194f7`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.1`
 - nixpkgs: `/nix/store/nnjib275nl4s5nhifn26w2k0ksq2cb25-source`

Add a :+1: reaction to issues you find important.

Looking at the error message, this appears to be a bug in pylyzer, not pyright.

There's still something wrong with pyright, because it wasn't picking the right python version (inside a dev shell) while more "native solutions" (like nixvim) didn't have this problem. I'd attach a log, but seems like lunarvim is now unmaintened (?)

it's a recurrent issue, your pylyzer  excutable doesn't seem to work on nix, try to install the nixpkgs version


Add streaming tests to Storage Write API Python wrapper

Run Python_Xlang_Gcp_Direct PostCommit

Run Python_Xlang_Gcp_Dataflow PostCommit

R: @chamikaramj

Run Python_Xlang_Gcp_Dataflow PostCommit

Run Python_Xlang_Gcp_Direct PostCommit

Run Python_Xlang_Gcp_Direct PostCommit

Run Python_Xlang_Gcp_Dataflow PostCommit

Run Python_Xlang_Gcp_Dataflow PostCommit

Run Python_Xlang_Gcp_Direct PostCommit

Some tips to make tests running faster

use wheels for sdk_location (like #25970 #26473), this would save 3.5 min per test
run multiple tests in parallel by xdist option of pytest, like what is already doing for python postcommit

Adding the flag is not yet effective as the sdk_location is set here for this test:
https://github.com/apache/beam/blob/4a09ea94727120596750edb8ce0127c12059c692/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy#L2489
instead of needsSdkLocation, probably provide the wheel location here and config that the test suite depends on initializeForDataflowJob.
https://github.com/apache/beam/blob/f5f7a471321c903174b452a1982c5183a79ac6bc/sdks/python/test-suites/dataflow/common.gradle#L457

Run Python_Xlang_Gcp_Direct PostCommit

Run Python_Xlang_Gcp_Dataflow PostCommit

if (config.pythonPipelineOptions.contains("--runner=TestDataflowRunner")) {
setupTask.configure {dependsOn ":sdks:python:test-suites:dataflow:py" + project.ext.pythonVersion + ":initializeForDataflowJob"}
}

Run Python_Xlang_Gcp_Direct PostCommit

Run Python_Xlang_Gcp_Dataflow PostCommit

LGTM.


Show network activity indicator on iOS

The network activity indicator should be shown whenever there's a pending network request.
The easiest thing to do is probably to instrument apiFetch to call StatusBar.setNetworkActivityIndicatorVisible(...)

@zulipbot claim


LUCENE-10620: Pass the Weight to Collectors.

This allows Collectors to use Weight#count when appropriate.
See LUCENE-10620.

Thanks for looking @romseygeek. To make sure this new API would effectively have more than one use-case, I migrated TopScoreDocCollector and TopFieldCollector to it too. The immediate benefit is that collectors that pass a totalHitsThreshold of Integer.MAX_VALUE will still be able to skip non-competitive hits if the weight supports counting hits. In addition to that, I fixed some tests that were assuming that TotalHitCountCollector would naively iterate over matches by using a new DummyTotalHitCountCollector instead.
I verified that there is no performance impact on luceneutil using wikimedium10m:
                            TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
                        HighTerm     2374.78      (5.1%)     2297.55      (5.2%)   -3.3% ( -12% -    7%) 0.047
                         MedTerm     2795.30      (5.4%)     2704.66      (5.6%)   -3.2% ( -13% -    8%) 0.063
                    OrNotHighMed     1448.25      (3.9%)     1427.48      (4.5%)   -1.4% (  -9% -    7%) 0.286
                   OrNotHighHigh      996.35      (3.1%)      982.37      (4.6%)   -1.4% (  -8% -    6%) 0.255
                    OrHighNotMed     1898.69      (3.8%)     1876.02      (4.7%)   -1.2% (  -9% -    7%) 0.375
                      AndHighLow     1049.40      (3.3%)     1042.92      (3.8%)   -0.6% (  -7% -    6%) 0.583
                HighSloppyPhrase       21.77      (4.0%)       21.66      (4.8%)   -0.5% (  -8% -    8%) 0.716
                         LowTerm     2640.20      (6.3%)     2629.11      (4.2%)   -0.4% ( -10% -   10%) 0.803
                    OrHighNotLow     1667.62      (4.2%)     1660.75      (5.6%)   -0.4% (  -9% -    9%) 0.794
                    OrNotHighLow     1663.32      (3.0%)     1658.41      (4.2%)   -0.3% (  -7% -    7%) 0.801
                 LowSloppyPhrase       54.27      (3.1%)       54.15      (3.6%)   -0.2% (  -6% -    6%) 0.834
                   OrHighNotHigh     1259.39      (3.7%)     1257.03      (4.7%)   -0.2% (  -8% -    8%) 0.889
                 MedSloppyPhrase      115.91      (4.3%)      115.79      (6.1%)   -0.1% ( -10% -   10%) 0.952
                        PKLookup      249.41      (1.2%)      249.32      (1.5%)   -0.0% (  -2% -    2%) 0.934
                          Fuzzy2      118.47      (1.1%)      118.75      (1.2%)    0.2% (  -2% -    2%) 0.538
                         Respell       74.59      (1.1%)       74.90      (1.5%)    0.4% (  -2% -    3%) 0.323
                          IntNRQ      682.36      (2.8%)      685.81      (3.7%)    0.5% (  -5% -    7%) 0.628
                          Fuzzy1      124.32      (1.1%)      125.09      (1.1%)    0.6% (  -1% -    2%) 0.079
                       MedPhrase      623.13      (3.3%)      627.26      (3.0%)    0.7% (  -5% -    7%) 0.502
                       OrHighMed      130.02      (3.7%)      130.94      (4.2%)    0.7% (  -6% -    8%) 0.571
                       LowPhrase      110.49      (3.6%)      111.30      (2.5%)    0.7% (  -5% -    7%) 0.459
                        Wildcard       40.65      (1.6%)       40.95      (1.8%)    0.7% (  -2% -    4%) 0.167
                       OrHighLow     1092.12      (3.0%)     1101.15      (2.7%)    0.8% (  -4% -    6%) 0.360
                      AndHighMed      234.73      (4.5%)      236.77      (5.3%)    0.9% (  -8% -   11%) 0.575
                     MedSpanNear       28.83      (4.1%)       29.14      (3.3%)    1.1% (  -6% -    8%) 0.369
                     LowSpanNear       16.20      (4.2%)       16.38      (3.4%)    1.1% (  -6% -    9%) 0.363
                    HighSpanNear        7.51      (4.7%)        7.59      (3.5%)    1.1% (  -6% -    9%) 0.405
                     AndHighHigh       70.69      (5.3%)       71.60      (6.4%)    1.3% (  -9% -   13%) 0.486
                      OrHighHigh       30.64      (3.2%)       31.07      (4.3%)    1.4% (  -5% -    9%) 0.244
                      HighPhrase       22.89      (3.8%)       23.25      (3.6%)    1.6% (  -5% -    9%) 0.178
                         Prefix3      421.34      (3.5%)      430.69      (4.4%)    2.2% (  -5% -   10%) 0.078
             LowIntervalsOrdered       67.14      (4.8%)       69.35      (5.5%)    3.3% (  -6% -   14%) 0.043
            HighIntervalsOrdered        6.49      (7.8%)        6.73      (7.1%)    3.7% ( -10% -   20%) 0.112
             MedIntervalsOrdered       37.02      (7.8%)       38.45      (7.3%)    3.9% ( -10% -   20%) 0.108
           HighTermDayOfYearSort      144.92      (3.7%)      150.78      (4.6%)    4.0% (  -4% -   12%) 0.002
                      TermDTSort      204.11      (7.0%)      213.24      (7.7%)    4.5% (  -9% -   20%) 0.055
               HighTermMonthSort      154.26      (4.0%)      161.70      (4.9%)    4.8% (  -3% -   14%) 0.001
            HighTermTitleBDVSort      248.08      (3.7%)      262.32      (8.8%)    5.7% (  -6% -   18%) 0.007

Now when collectors need to count hits too (I changed IndexSearcher's TOTAL_HITS_THRESHOLD to Integer.MAX_VALUE):
                            TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
                       OrHighLow       90.31      (6.7%)       35.49      (1.8%)  -60.7% ( -64% -  -55%) 0.000
                      OrHighHigh       40.98      (5.6%)       21.17      (2.4%)  -48.3% ( -53% -  -42%) 0.000
                    OrHighNotLow      143.61      (8.2%)       76.04      (5.4%)  -47.1% ( -56% -  -36%) 0.000
                    OrHighNotMed       88.77      (7.7%)       49.41      (5.6%)  -44.3% ( -53% -  -33%) 0.000
                   OrHighNotHigh       18.24      (7.4%)       10.59      (5.9%)  -41.9% ( -51% -  -30%) 0.000
                       OrHighMed       80.82      (5.0%)       48.18      (2.8%)  -40.4% ( -45% -  -34%) 0.000
                   OrNotHighHigh       51.35      (5.7%)       39.11      (5.6%)  -23.8% ( -33% -  -13%) 0.000
                     AndHighHigh       53.49      (1.9%)       41.97      (4.1%)  -21.5% ( -27% -  -15%) 0.000
                      AndHighMed      321.43      (2.4%)      258.39      (4.5%)  -19.6% ( -25% -  -13%) 0.000
                      AndHighLow     1777.06      (2.7%)     1474.52      (3.1%)  -17.0% ( -22% -  -11%) 0.000
                       MedPhrase      391.41      (5.9%)      332.93      (5.1%)  -14.9% ( -24% -   -4%) 0.000
                    OrNotHighMed      313.44      (6.7%)      269.25      (5.3%)  -14.1% ( -24% -   -2%) 0.000
                    OrNotHighLow     1977.65      (4.2%)     1803.88      (4.7%)   -8.8% ( -16% -    0%) 0.000
        AndHighHighDayTaxoFacets       25.28      (1.7%)       23.30      (1.9%)   -7.8% ( -11% -   -4%) 0.000
            MedTermDayTaxoFacets       79.97      (2.6%)       74.42      (3.6%)   -6.9% ( -12% -    0%) 0.000
                         Prefix3       27.72      (6.2%)       25.83      (5.2%)   -6.8% ( -17% -    4%) 0.000
                       LowPhrase      159.63      (5.0%)      148.90      (3.3%)   -6.7% ( -14% -    1%) 0.000
          OrHighMedDayTaxoFacets       19.30      (5.7%)       18.11      (4.2%)   -6.2% ( -15% -    3%) 0.000
                      HighPhrase       16.15      (5.7%)       15.30      (4.6%)   -5.2% ( -14% -    5%) 0.001
                        Wildcard       79.98      (2.3%)       76.50      (3.0%)   -4.4% (  -9% -    1%) 0.000
         AndHighMedDayTaxoFacets       72.60      (2.1%)       69.79      (1.9%)   -3.9% (  -7% -    0%) 0.000
                    HighSpanNear       44.71      (4.9%)       43.00      (4.7%)   -3.8% ( -12% -    6%) 0.012
       BrowseDayOfYearTaxoFacets       47.80      (2.0%)       46.05     (12.3%)   -3.7% ( -17% -   10%) 0.189
                          Fuzzy2      103.64      (2.1%)      100.39      (1.7%)   -3.1% (  -6% -    0%) 0.000
            BrowseDateTaxoFacets       46.13      (1.9%)       44.69     (12.0%)   -3.1% ( -16% -   10%) 0.249
     BrowseRandomLabelTaxoFacets       37.71      (2.1%)       36.53     (10.5%)   -3.1% ( -15% -    9%) 0.195
                     MedSpanNear       68.62      (3.0%)       66.69      (3.0%)   -2.8% (  -8% -    3%) 0.003
                     LowSpanNear       57.05      (3.0%)       55.49      (2.8%)   -2.7% (  -8% -    3%) 0.003
           BrowseMonthTaxoFacets       29.68      (7.3%)       28.87     (12.8%)   -2.7% ( -21% -   18%) 0.410
                          Fuzzy1      128.59      (2.2%)      125.27      (1.8%)   -2.6% (  -6% -    1%) 0.000
             LowIntervalsOrdered      219.66      (4.2%)      216.18      (3.4%)   -1.6% (  -8% -    6%) 0.184
            HighIntervalsOrdered       35.55      (5.7%)       35.03      (4.3%)   -1.5% ( -10% -    9%) 0.361
                HighSloppyPhrase        8.33     (15.0%)        8.22     (13.6%)   -1.3% ( -25% -   32%) 0.775
       BrowseDayOfYearSSDVFacets       21.93      (9.9%)       21.80      (9.3%)   -0.6% ( -17% -   20%) 0.841
           BrowseMonthSSDVFacets       23.61      (8.5%)       23.53      (8.2%)   -0.3% ( -15% -   17%) 0.904
                         Respell       77.59      (2.0%)       77.42      (2.3%)   -0.2% (  -4% -    4%) 0.740
     BrowseRandomLabelSSDVFacets       15.20      (5.5%)       15.19      (5.7%)   -0.1% ( -10% -   11%) 0.971
             MedIntervalsOrdered       43.08      (5.0%)       43.14      (4.6%)    0.1% (  -9% -   10%) 0.934
                 LowSloppyPhrase       54.27     (10.7%)       54.76     (10.1%)    0.9% ( -17% -   24%) 0.782
            BrowseDateSSDVFacets        4.21     (12.4%)        4.26     (11.8%)    1.0% ( -20% -   28%) 0.784
                        PKLookup      240.85      (2.3%)      244.63      (1.9%)    1.6% (  -2% -    5%) 0.018
                 MedSloppyPhrase       15.08      (9.3%)       15.47      (9.8%)    2.6% ( -15% -   24%) 0.384
                      TermDTSort      104.10      (2.0%)      108.13      (3.5%)    3.9% (  -1% -    9%) 0.000
           HighTermDayOfYearSort      103.69      (2.0%)      107.85      (3.5%)    4.0% (  -1% -    9%) 0.000
            HighTermTitleBDVSort      106.26      (2.3%)      112.05      (4.1%)    5.5% (   0% -   12%) 0.000
               HighTermMonthSort      210.13      (2.5%)      224.43     (12.5%)    6.8% (  -7% -   22%) 0.017
                         LowTerm      754.49     (16.4%)     2902.39     (24.5%)  284.7% ( 209% -  389%) 0.000
                         MedTerm      251.51      (3.4%)     2585.44     (48.9%)  928.0% ( 846% - 1015%) 0.000
                        HighTerm      124.40      (3.1%)     1782.93     (74.1%) 1333.3% (1217% - 1456%) 0.000
                          IntNRQ       12.42     (10.8%)      308.10    (193.8%) 2380.8% (1963% - 2899%) 0.000

IntNRQ and term queries benefit from this change the most because Weight#count gives the hit count up-front which then enables skipping non-competitive hits.
Pure disjunctions suffer the most because BS1 is no longer used since the weight doesn't know if hits will be skipped based on scores or not.
Other scoring queries are impacted because they need to read impacts in case the collector would like to skip based on scores.

Unfortunately this is challenging to do right at the moment since the API requires the collector to tell the ScoreMode it needs to be able to create the Weight. So either the collector says it needs to evaluate all hits (ScoreMode.COMPLETE) and then we cannot skip hits in the case when the weight can count its hits efficiently. Or it says it doesn't (ScoreMode.TOP_SCORES), like the PR does at the moment and then queries get slower when the weight cannot count hits. We could fix this by moving the score mode to LeafCollector instead of Collector but this would be a big change...

I reverted changes to top-docs collectors. This means this new Collector#setWeight API is only useful to TotalHitCountCollector. I've been wondering if it was worth adding a new API only for TotalHitCountCollector but looking at how facets use this collector, I suspect that many users set up their collectors manually instead of using IndexSearcher#count and do not benefit from this optimization, so maybe it's worth the increased API surface.
I was chatting about the API with @romseygeek, and we wondered if having the counting logic on Scorable would help. I looked into it, and it's not super practical due to the fact that LeafCollector#setScorer is not a place where throwing a CollectorTerminatedException is supported now (though this could be addressed) and this method can be called multiple times per segment, so we would need to introduce tracking to make sure that we only increment the count on the first time that setScorer is called on a segment. For these reasons, I would prefer moving forward with the current API on Collector.

I've been wondering if it was worth adding a new API only for TotalHitCountCollector but looking at how facets use this collector, I suspect that many users set up their collectors manually instead of using IndexSearcher#count and do not benefit from this optimization, so maybe it's worth the increased API surface.

I'm not sure I'm completely following this bit. You're not suggesting that the static FacetsCollector#search methods could benefit from the counting optimizations right? Since the query needs to be evaluated to populate the FacetsCollector anyway? Is your point more that we may have users creating their own TotalHitCountCollector instances and passing them to IndexSearcher#search instead of relying on IndexSearcher#count when all they want is the count, following the pattern in FacetsCollector#doSearch? Sorry if I'm misunderstanding your point, but I got curious when I saw reference to "faceting" :).

I guess I was implicitly raising the question of whether it's worth optimizing TotalHitCountCollector to leverage Weight#count given that IndexSearcher#count is already optimized to leverage Weight#count. One argument against this is that users sometimes create their collectors manually, and actually they have to if they want to be able to use MultiCollector. With this change, the query does indeed still have to visit every hit, but the query directly collects into the facets collector instead of going through a MultiLeafCollector that itself collects into both the TotalHitCountCollector and the FacetsCollector.

Got it, thanks @jpountz. I haven't looked at this proposed PR in much detail, so apologies in advance if this suggestion is nonsense, but if we want to optimize hit counting for users that aren't using IndexSearcher#count, but instead chaining collectors manually, using TotalHitCountCollector directly, etc., what if we did something like this?
https://github.com/gsmiller/lucene/commit/94aeb32b9e4c38075b3a6be2d2bb15b060dc0f88

@jpountz ah right. No, I don’t think it makes sense for users to have to deal with creating weights on their own (and having to consider query rewriting as well before doing so). Your approach makes total sense to me in light of this. +1 to making this change. Thanks!

Thanks for taking the time to think about it @gsmiller, appreciated!


add specific tensorflow exceptions.

This adds the exceptions, but does not seem like they are used.

Yes, I wanted to add it there: https://github.com/alexpantyukhin/TensorFlowSharp/blob/add_list_devices/TensorFlowSharp/Tensorflow.cs#L218 . But made another PR for this, sorry.

Can I close this PR?


Data parallelism for GPU (and CPU)

We should get major efficiencies and speedup by running multiple "data" pathways through the same synaptic weights and network architecture.  In effect, it is like "shared weights" for multiple copies of the same network: Neurons, Pools, LayerVals, Exts, Context ("state") is replicated D times, and each one is fed a different set of inputs.  Because there is only one set of weights, the weight changes naturally accumulate in parallel (DWt must have appropriate agg logic).
This data-parallel is already used in the MPI versions of models like LVis and even protobrain, so we know it works well.  It amounts to a "mini batch" kind of backprop learning, and D = 16 typically works well, but going too much higher tends to not work well because the DWt changes cancel out too much.
This can turn even a small network effectively into a big one where the GPU overhead becomes worth it.  The biggest difficulty with this is in managing the data input part of it, when not using simple tabular datasets.
A GPU-only version of this can be done very easily by just extending an outer loop on the state arrays as stored in the Network.  The CPU only sees the 0 index, and, per below, the GPU can very easily just process the outer D dimensions in parallel.  Will start with this probably just to get a quick first pass up and running.
However, from a memory cache read / write perspective, it should be faster to organize the state data the other way around, with D as the inner dimension, so a warp of processors is getting sequential bytes (also need to turn array-of-structs into struct-of-arrays to really make that relevant).  To do this, we'd have to bake the D dimension into the Shape of each layer in one way or another.  Given all the ways in which the compute and connectivity logic depends on the 4D or 2D shape, it probably makes sense to just have a separate accessor method used for actually grabbing the network state based on the standard shape geom, plus the d index that can be stored in the Context.  We could then try it both ways and see how much difference it makes.
Bottom line is that we really need to do a systematic benchmark test to see how much diff this makes before committing to something more invasive. One possibility while I'm thinking about it is that the NVIDIA A100 is really sensitive to the memory layout dynamics and somehow the M1 is not?  In current impl with array-of-structs, M1 is much faster than the A100, which should not be the case "on paper".
On the GPU, this will be nearly trivial to implement:

Use the 'Y' index on compute for the 'd' data index.  Can typically go to 16x data, so 4x16=64 warp geom.  This naturally allows each warp of threads to share the same synapses and index accesses, and optimizes D-parallel access if we organize D as the inner dimension.
All state access just needs a d index and appropriate wrapper methods -- easy.
Interestingly, will need to break Synapse into separate SynCa and SynWts structs, with SynCa replicated D times -- this is dynamic state, but SynWts are shared.
DWt just loops over D networks per synapse and aggregates changes -- easy.

For CPU, assuming we put D in the inner loop, it would make sense to follow the same logic and iterate over D per thread (goroutine), so each one is processing the same local memory.  First pass, when only doing D parallel on GPU, the CPU just does a few things to help the GPU -- perhaps makes sense to just go ahead and put the rest of the stuff on GPU so it is cleaner.
To feed the beast, we need parallel data.  For simple case of static tabular data, this is trivial. For dynamic environments, need to replicate D copies of the env, and ensure that each one is doing something different (can use the nice slrand index-based random number generator to keep each one different in a controlled manner).  In the existing MPI impl, the replication happens by having D separate instances of the entire sim running, and then using the mpi proc id to make each one do something different.  Here, we just need to manage this all within one process.  The key is just to ensure that the Env code is fully encapsulated, and also has the proper knobs for ensuring different samples come from each.

Definitely makes sense to have D be the inner loop (this is just how minibatching works in deep learning).
When we first talked about this 2 weeks ago, I didn't realise that we'd have to duplicate a lot of the Synapse state, which makes the whole scheme much less attractive, since most of the memory footprint is due to the synapses and we'd have to duplicate ~50% of it (all the SynCa variables). Example: BenchXL is 2MB Neuron state, 500 MB of Synapse state, makes 502MB total. At D=16, we'd get 16x2MB (neglegible) + 250 MB (Syn Wt) + 16x250MB = 4.2GB.
CPU should profit from this too, as our NeuronFun multithreading is held back by threading overhead, and going from D=1 to D=16 is like 16x more Neurons.
Implementing this seems very low priority, since we have so many machines that we're not using and could just MPI-AllReduce across them (which you have already implemented).


Connection config allow_user_specified_id for SQL adapter

Implement setting allow_user_specified_id:

in client connection params via Postgres wire protocol,
in SQL using SET allow_user_specified_id = TRUE.

The first point can be implemented by implementing that in general: https://github.com/edgedb/edgedb/issues/7712


feat: add resizingConstraint API

Issue #97
Description of changes:

Add a helper for resizingConstraint (resizingConstraintValues and calculateResizingConstraintValues())
Change all hard coded values to constraints
Set resizingConstraintValues.none by default to all layers except text, that has resizingConstraintValues.height.
Remove Bitmap model property resizingConstraint because extends Layers with the same value.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@dbanksdesign friendly ping!
I would like to see it merged in 😀

@dbanksdesign any update?

Congrats! I hope you can enjoy with your family the new member!
I made some changes according with your comments. Any other feedback is wellcome.

:tada: This PR is included in version 1.19.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


geos: 3.11.0 -> 3.11.1

Description of changes
This PR upgrades Geos to the latest patch version and also enables upstream test
suite.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

PR manually tested tested by:

building by nix-build -A geos

running built geosop binary

result/bin/geosop -a "MULTILINESTRING ((200 100, 100 100, 200 200), (200 200, 200 100), (200 200, 300 100, 200 100))" -v -e -f wkt polygonize
Input A: WKT literal
Read 1 geometries, 8 vertices  -- 62 usec
[ 1] polygonize: A[1] MultiLineString( 8 )  -> Geometry[2]  --  97 usec
POLYGON ((200 100, 100 100, 200 200, 200 100))
POLYGON ((200 100, 200 200, 300 100, 200 100))
Ran 1 polygonize ops ( 8 vertices)  -- 97 usec    (GEOS 3.11.1)