Pairing of ESP32 with chip-tool on linux platform is failing

Issue :
Pairing ESP32 with chip-tool failing on Linux platform but successfully pairing on MAC with commit (1fb5900175f29acea972a4ce955c30edd8c6e88d)
Expected behaviour :
Device commissioning completed with success
Actual behaviour :
Device connection failed. Error ../../third_party/connectedhomeip/src/lib/address_resolve/AddressResolve_DefaultImpl.cpp:176: CHIP Error 0x00000032: Timeout
Test platform :
Chip-tool - RPI
DUT - ESP32(all-clusters-app)
Screenshot :

PFA logs:
ESP.txt
ESP_cntrl.txt

Same issue facing with commitID (fa5561c23d8c1f9464da8669931affbae0660f51)

Is there anyone know how to fix this?
I just meet the same error when try to pairing EFR32MG12 lighting-app with chip-tool on ubuntu...
EFR32-chip-tool-log.txt

@sowmyassp Please confirm if it is working with the latest codebase on ESP32. I can successfully perform commissioning and cluster control using Linux chip-tool on latest head (4b4e035e15eab106e33a88eac6ffbe557d82e584)

Yes @dhrishi Its working with latest head


feat(setup): allow user to override the servers configurations

This feature would allow users to override the language servers configurations within the setup function in lspmanager. Still WIP, needs testing.

Tried with luadev this doesn't seem to work, my lspmanager config file:
return function()
    local luadev = require("lua-dev").setup({
        library = {
            vimruntime = true,
            types = true,
            plugins = false,
        },
    })
    require("lspmanager").setup({
        sumneko_lua = luadev
    })
end


The Preivew Size Stretch When Recording

When previewing, we can find best match preview size with map.getOutputSizes(SurfaceTexture.class), it works find when preview, but when if start record, the preview size stretch, I set MediaRecorder video size with **mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());, but it doesn't work, you can see from this video that, when previewing, the circle is round, but when recording, it becomes oval. I have test it on MI6、MI Note and nexus 5X. Is there anyone encounter it?

I have seen your video form provided Link , i am facing same issue in every devices
When i start recording video the preview recording surface automatically zoom....
i have tried many different solution but not still find any solution ,if you have got solution please tell me
thanx

I have the same issue.. Did you guys figure out?
How to solve this?

I haven't figured out yet,

the reason why the preview stretch when you record is because you are recording with the textureView Size which height is not match parent. change the textureView height to "math_parent" and try again

Same problem ... Have you solved the issue?

Reason for stretching is early device is in 16:9 aspect ratio, but nowadays is came up to 18:9,19:9&19.5:9, aspect ratio. we have to customize the preview method, here is my code. hope it will helps.
//Samsung-S6-choices[0]
//Samsung-S7-edge-choices[6]
//OnePlus-5T-choices[15]
/Following is used for Camera Preview in TextureView,  based on device camera resolution/
/*
* Given {@code choices} of {@code Size}s supported by a camera, chooses the smallest one whose
* width and height are at least as large as the respective requested values, and whose aspect
* ratio matches with the specified value.
*
* @param choices     The list of sizes that the camera supports for the intended output class
* @param width       The minimum desired width
* @param height      The minimum desired height
* @param aspectRatio The aspect ratio
* @return The optimal {@code Size}, or an arbitrary one if none were big enough
*/
private  Size chooseOptimalSize(Size[] choices, int width, int height, Size aspectRatio) {
        // Collect the supported resolutions that are at least as big as the preview Surface
        List<Size> bigEnough = new ArrayList<>();
        int w = aspectRatio.getWidth();
        int h = aspectRatio.getHeight();
        double ratio = (double) h / w;
        int loopCounter=0;
        for (Size size : choices) {
            int orientation = getActivityContext.getResources().getConfiguration().orientation;
            if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
                //if((size.getWidth()/16) == (size.getHeight()/9) && size.getWidth() <=720) {
                //if((size.getWidth()/16) == (size.getHeight()/9) && size.getWidth() <=3840 ) {
                //if((size.getWidth()/16) == (size.getHeight()/9) && size.getWidth() <=5120 ) {//Retina 5K
                if((size.getWidth()/16) == (size.getHeight()/9) && size.getWidth() <=7680 ) {//8K UHDTV Super Hi-Vision
                    Log.e(TAG1, "chooseOptimalSize:"+size);
                    return size;
                }
            } else {
                Log.e(TAG1, "chooseOptimalSize:--given--"+size);
                DisplayMetrics metrics = getActivityContext.getResources().getDisplayMetrics();
                float mCameraAspectRatio = ((float)metrics.heightPixels / (float)metrics.widthPixels);
                Log.e(TAG1, "chooseOptimalSize:--AspectRatio--"+mCameraAspectRatio);
                if((size.getWidth()/16) == (size.getHeight()/9) && ((size.getWidth() <=1280)||(size.getHeight()<=1920))) {
                    //if((size.getWidth()/16) == (size.getHeight()/9) && (size.getWidth() <=4320 ) ) {//8K UHDTV Super Hi-Vision
                    //if((size.getWidth()/16) == (size.getHeight()/9) && (size.getWidth() <=2880 ) ) {//Retina 5K
                    //if((size.getWidth()/16) == (size.getHeight()/9) && (size.getWidth() <=2160 ) ) {
                    //if((size.getWidth()/16) == (size.getHeight()/9) && (size.getWidth() <=1280 ) ) {
                    //if((size.getWidth()/16) == (size.getHeight()/9) && (size.getWidth() <=4480 && size.getWidth() >=1280) ) {
                    Log.e(TAG1, "chooseOptimalSize:"+size+"-16:9");
                    return size;
                }else if((size.getWidth()/18) == (size.getHeight()/9) && ((size.getWidth() <=3840)||(size.getHeight()<=2160))) {
                    Log.e(TAG1, "chooseOptimalSize:"+size+"-18:9");
                    return size;
                }else if((size.getWidth()/18.5) == (size.getHeight()/9) && ((size.getWidth() <=3840)||(size.getHeight()<=2160))) {
                    Log.e(TAG1, "chooseOptimalSize:"+size+"-18.5:9");
                    return size;
                }else if((size.getWidth()/19) == (size.getHeight()/9) && ((size.getWidth() <=3840)||(size.getHeight()<=2160))) {
                    Log.e(TAG1, "chooseOptimalSize:"+size+"-19:9");
                    return size;
                }else if((size.getWidth()/19.5) == (size.getHeight()/9) && ((size.getWidth() <=3840)||(size.getHeight()<=2160))) {
                    Log.e(TAG1, "chooseOptimalSize:"+size+"-19.5:9");
                    return size;
                }else{
                    Log.e(TAG1, "chooseOptimalSize"+" not proper aspect resolution");
                    Log.e(TAG1, "chooseOptimalSize"+" ---=>Width---=>"+size.getWidth());
                    Log.e(TAG1, "chooseOptimalSize"+" ---=>Height---=>"+size.getHeight());
                }
                //2340
            }

            if(screenWidth==size.getWidth()){
                Log.e(TAG1, loopCounter+".choose:width Matched:"+screenWidth+"="+size.getWidth());
            }else{
                Log.e(TAG1, loopCounter+".choose:width Not Matched:"+screenWidth+"="+size.getWidth());
            }

            if(screenHeight==size.getHeight()){
                Log.e(TAG1, loopCounter+".choose:height Matched:"+screenHeight+"="+size.getHeight());
            }else{
                Log.e(TAG1, loopCounter+".choose:height Not Matched:"+screenHeight+"="+size.getHeight());
            }
            loopCounter++;
        }
        // Pick the smallest of those, assuming we found any
        if (bigEnough.size() > 0) {
            return Collections.min(bigEnough, new CompareSizesByArea());
        } else {
            Log.e(TAG1, "Couldn't find any suitable preview size");
            return choices[0];
        }
    }

    /*
     * Compares two {@code Size}s based on their areas.
     */
    static class CompareSizesByArea implements Comparator<Size> {
        @Override
        public int compare(Size lhs, Size rhs) {
            // We cast here to ensure the multiplications won't overflow
            return Long.signum((long) lhs.getWidth() * lhs.getHeight() -
                    (long) rhs.getWidth() * rhs.getHeight());
        }
    }

If you find better idea, please let me know. Thank you.

Same problem ... Have you solved the issue?

#please try my solution and let me know

Same problem ... Have you solved the issue?

#please try my solution and let me know

Hi
Please use "chooseOptimalSize" from @mohanrajsambath and for further to show full screen without stretching view use this code for AutoFitTextureView.
class AutoFitTextureView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) :
TextureView(context, attrs, defStyle) {

private var mResolutionWidth = 0
private var mResolutionHeight = 0
private var deviceWidth: Int = 0
private var deviceHeight: Int = 0

fun setDeviceDimension(displayMetrics: DisplayMetrics) {
    deviceHeight = displayMetrics.heightPixels
    deviceWidth = displayMetrics.widthPixels
}

/**
 * Sets the aspect ratio for this view. The size of the view will be measured based on the ratio
 * calculated from the parameters. Note that the actual sizes of parameters don't matter, that
 * is, calling setAspectRatio(2, 3) and setAspectRatio(4, 6) make the same result.
 *
 * @param width  Relative horizontal size
 * @param height Relative vertical size
 */
fun setAspectRatio(width: Int, height: Int) {
    if (width < 0 || height < 0) {
        throw IllegalArgumentException("Size cannot be negative.")
    }
    mResolutionWidth = width
    mResolutionHeight = height
    requestLayout()
}

override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec)
    if (0 == mResolutionWidth || 0 == mResolutionHeight) {
        setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.getSize(heightMeasureSpec))
    } else {
        if (mResolutionWidth > mResolutionHeight) {
            val h = ((deviceWidth * mResolutionWidth) / mResolutionHeight)
            if (h < deviceHeight) {
                val w = deviceHeight * mResolutionHeight / mResolutionWidth
                setMeasuredDimension(w, deviceHeight)
            } else {
                setMeasuredDimension(deviceWidth, h)
            }
        }
    }
}
}

use this from your fragment
textureView.setAspectRatio(previewSize.width, previewSize.height)
The preview size is getting from "chooseOptimalSize()" function.

This sample has been migrated to a new location (check README for more information).
As recommended by GitHub, we are closing all issues and pull requests now that this older repo will be archived.
If you still see this issue in the updated repo, please reopen the issue/PR there. Thank you!


[APIView] Should not create automatic diff if the only difference is tooling number

Example:
https://apiview.dev/Assemblies/Review/18826b88a9ba482fab51d53572e740a6

I can wrap this line around no diff tags which will ignore the line when diffing by auto revision. But this issue must have happened when it's not able to refresh previous revision automatically using latest parser.


[docs] Add the selector's options.dependencies description

closes https://github.com/DevExpress/testcafe/issues/3349
\cc @AndreyBelym

@helen-dikareva please also take a look


Python autodoc

🚀 The feature, motivation and pitch
Create nice python autodoc which generating doc from python comments. Like https://triton-lang.org/main/index.html or https://github.com/vllm-project/vllm
Alternatives
No response
Additional context
No response

https://about.fastht.ml/
https://nbdev.fast.ai/tutorials/docs_only.html
https://nbdev.fast.ai/
recommended by Jeremy

@ByronHsu Could you please assign this issue to me? I've begun to implement the same using Sphinx, since it is well compatible with PyTorch, rather than the options you have mentioned.
Reference:

https://www.sphinx-doc.org/en/master/index.html
https://github.com/ParagEkbote/Liger-Kernel

awesome. thank you for taking this up


Incompabilities with new ESB release

Closes #176
MERGE AFTER ongr/elasticsearch-bundle 0.9 RELEASE!

https://github.com/ongr-io/ConnectionsBundle/blob/master/Document/Pair.php#L27
Should be searchAnalyzer

https://github.com/ongr-io/ConnectionsBundle/blob/master/Document/Pair.php#L27
should be searchAnalyzer


Add universal event listeners

Applies changes from pull request  #53 on branch node-10 (24th Mai 2018).
Remained added features from #53

Listeners listening to the event '*' getting triggered by every emitted event.
The handler function of a listener listening to '*' gets the actually emitted event as first argument.
.emit only returns true if at least one non-universal listener was triggered.

Changes

.emit('*' triggers each listeners listening to '*' only once. (with the actually emitted event as first argument)

Examples
emitter.on('foo', function() {
  console.log("foo");
  console.log(arguments);
})

emitter.on('*', function() {
  console.log("*");
  console.log(arguments);
})

console.log(emitter.emit('foo', 'bar1', 'bar2', 'bar3'));

//Output:
//foo
//[Arguments] { '0': 'bar1', '1': 'bar2', '2': 'bar3' }
//*
//[Arguments] { '0': 'foo', '1': 'bar1', '2': 'bar2', '3': 'bar3' }
//true

emitter.on('*', function() {
  console.log("*");
  console.log(arguments);
})

console.log(emitter.emit('foo', 'bar1', 'bar2', 'bar3'));

//Output:
//*
//[Arguments] { '0': 'foo', '1': 'bar1', '2': 'bar2', '3': 'bar3' }
//false

emitter.on('foo', function() {
  console.log("foo");
  console.log(arguments);
})

emitter.on('*', function() {
  console.log("*");
  console.log(arguments);
})

console.log(emitter.emit('foobar', 'bar1', 'bar2', 'bar3'));

//Output:
//*
//[Arguments] { '0': 'foobar', '1': 'bar1', '2': 'bar2', '3': 'bar3' }
//false

emitter.on('*', function() {
  console.log("*");
  console.log(arguments);
})

console.log(emitter.emit('*', 'bar1', 'bar2', 'bar3'));

//Output:
//*
//[Arguments] { '0': '*', '1': 'bar1', '2': 'bar2', '3': 'bar3' }
//true

Thanks for the PR! I'm afraid though that this module is intended to match the Node events API, and it's used by bundlers like Browserify and Webpack to provide require('events'). Adding features on top of the Node API is not a goal and causes a mismatch between the Node and browser versions.

That's understandable. But does it mean it's not possible to merge?

I'm afraid it's not possible. Introducing differences between Node and the browser can cause issues when people (unwittingly) rely on those differences; eg., if people start to rely on '*' being a catchall with this module, their code will not work in Node. If the Node core functionality is not enough for someone, there are hundreds of other events modules on npm that can implement whatever features they want :)
The point of this module is just to be a 1:1 polyfill for the Node events module. Sorry if that wasn't clear. :( I'll add a note to the readme in a bit to hopefully prevent disappointment in the future.


k2cli tool kubectl with No Arguments Causes Go Panic

Post successful cluster up, inadvertently ran truncated command that cause a panic.
$ k2cli tool kubectl
Using K2 config file: /Users/sostheim/.kraken/config.yaml
panic: interface conversion: interface {} is nil, not string

goroutine 1 [running]:
github.com/samsung-cnct/k2cli/cmd.getContainerName(0x145f580, 0xc4203336e0)
	/Users/pat/code/go/src/github.com/samsung-cnct/k2cli/cmd/container_helpers.go:473 +0x138
github.com/samsung-cnct/k2cli/cmd.containerEnvironment(0xc4202d62a0, 0x23, 0xc4202a4c00)
	/Users/pat/code/go/src/github.com/samsung-cnct/k2cli/cmd/container_helpers.go:142 +0x34
github.com/samsung-cnct/k2cli/cmd.containerAction(0xc4202cb960, 0x1705fe0, 0xc420316c60, 0xc4203621a0, 0x1, 0x1, 0xc4202d62a0, 0x23, 0x0, 0x0, ...)
	/Users/pat/code/go/src/github.com/samsung-cnct/k2cli/cmd/container_helpers.go:324 +0xc5
github.com/samsung-cnct/k2cli/cmd.glob..func12(0x173ccc0, 0x1761310, 0x0, 0x0)
	/Users/pat/code/go/src/github.com/samsung-cnct/k2cli/cmd/kubectl.go:53 +0x361
github.com/samsung-cnct/k2cli/vendor/github.com/spf13/cobra.(*Command).execute(0x173ccc0, 0x1761310, 0x0, 0x0, 0x173ccc0, 0x1761310)
	/Users/pat/code/go/src/github.com/samsung-cnct/k2cli/vendor/github.com/spf13/cobra/command.go:636 +0x231
github.com/samsung-cnct/k2cli/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x173bde0, 0x100649c, 0xc420076058, 0x0)
	/Users/pat/code/go/src/github.com/samsung-cnct/k2cli/vendor/github.com/spf13/cobra/command.go:722 +0x339
github.com/samsung-cnct/k2cli/vendor/github.com/spf13/cobra.(*Command).Execute(0x173bde0, 0x0, 0x47)
	/Users/pat/code/go/src/github.com/samsung-cnct/k2cli/vendor/github.com/spf13/cobra/command.go:681 +0x2b
github.com/samsung-cnct/k2cli/cmd.Execute()
	/Users/pat/code/go/src/github.com/samsung-cnct/k2cli/cmd/root.go:65 +0x31
main.main()
	/Users/pat/code/go/src/github.com/samsung-cnct/k2cli/main.go:23 +0x22

Using brew installed version of k2cli and Go 1.8.1:
$ which k2cli
/usr/local/bin/k2cli

$ k2cli version
1.0.5-alpha+git.sha.e04ae0d98289565ab71424fd7b83072bfaed8f66

$ go version
go version go1.8.1 darwin/amd64

help subcommand works fine.
$ k2cli tool kubectl --help
Use Kubernetes kubectl with the K2
	cluster configured by the specified yaml file

Usage:
  k2cli tool kubectl [flags]

Global Flags:
  -c, --config string        Location of the k2config (default "/Users/sostheim/.kraken/config.yaml")
  -d, --docker-host string   docker host address (default "unix:///var/run/docker.sock")
  -i, --image string         k2 container image (default "quay.io/samsung_cnct/k2:latest")
  -k, --k2config string      config file for k2cli (default "/Users/sostheim/.k2cli.yaml")
  -a, --keep-alive           keep stopped containers.
  -w, --log-path string      Save output output of container action to path
  -x, --log-success          Display full action logs on success
  -o, --output string        K2 output folder (default "/Users/sostheim/.kraken")
  -t, --timeout int          timeout (in seconds) for container actions (default 1200)
  -v, --verbosity            Verbose output

What is in your .kraken/config.yaml file?

Relavent Code:
func getContainerName() string {
        // only supports first cluster name right now
        clusters := clusterConfig.Get("deployment.clusters")
        if clusters != nil {
                firstCluster := clusters.([]interface{})[0].(map[interface{}]interface{})
                return os.ExpandEnv(firstCluster["name"].(string))                <--- error line
        } else {
                return "cluster-name-missing"
        }
}

A couple of items:

not this problem, but the return "cluster-name-missing" is not correct.  That return will only get tripped if deployment.clusters is not in the yaml file.
the error could be that firstCluster is nil, or that it is not nil, but the key "name" does not exist in the firstCluster map.
to actually return the correct errors...like cluster-name-missing, we need to eval firstCluster["name"] return before attempting to type cast and expand it.
This code makes a lot of assumptions in 2 lines on the format of the data structure, without a way to handle a badly formatted structure.  Some type of general format error catch should be used.

The "real" problem is that cmd/kubectl.go does not execute a "usage" type when no additional commands are present.  I assume that kubectl should require subcommands, and never be valid by itself.

I just ran kubctl w/o arguments as a stand alone tool and it assumes that as valid and dumps the usage/help statement.

the k2cli should do something similar...is my point.   It isn't set up in the code.

Yeah, I got that, was just acking your sentiment with an observed behavior.

The tool subcommand specifies a default value for the config file.  https://github.com/samsung-cnct/k2cli/blob/master/cmd/tool.go#L39-L43.  The error is presumably saying that the nil interface cannot be made into a string.  This would be because the fetch of firstCluster["name"] returned a nil.  Which would suggest that the error is occurring because the name was not specified in the cluster.  This section of code can only be entered if deployments.clusters resolves, so there must have been something to read.  I really expect that there is a config file at $HOME/.kraken/config.yaml, and that the name of the first cluster has not been set.

This issue should have been addressed on my refactoring PR and my current tests suggests they are. Please report any further issues if they appear or if the issue persists.


Short version of schema definition

In my point of view the current implementation lacks of support for simple declarative way of defining a schema for a model. For example, this is what I'd like to use:
var User = Backbone.Model.extend({
  // all these works as setters.
  // So, each time the property is set appropriate setter is applied to the passed in value
  schema: {
    id: Number,
    firstName: String,
    lastName: String,
    createdAt: Date.parse
  }
});

var user = new User();

user.set('firstName', 123);
user.get('firstName'); // "123"

user.set('createdAt', '2016-01-01 12:56');
user.get('createdAt'); // Date('2016-01-01 12:56')

As part of this feature function I'd like to see a function which can override original backbone's methods in order to use schema. For example:
Backbone.Schema.patch(Backbone.Model.prototype); // overrides "get/set/toJSON/etc" methods in Backbone.Model

var model = new Backbone.Model();
Backbone.Schema.patch(model); // overrides methods of particular instance

var ActiveRecord = Backbone.Model.extend({});
Backbone.Schema.patch(ActiveRecord.prototype); // overrides methods of ActiveRecord class

So, that we reduce the memory usage and creation of additional functions for each instance separately

Also it'd be useful to provide inheritance for schema attribute, so that shared attrs' types may be defined in one place:
var ActiveRecord = Backbone.Model.extend({
  schema: {
    id: Number,
    createdAt: Date.parse,
    updatedAt: Date.parse
  }
});

var User = ActiveRecord.extend({});

var user = new User({ createdAt: '2012-12-2' });

user.get('createdAt'); // Date('2012-12-2')

I agree this would be awesome. I hope to implement something like this sometime in the future. Of course, if you are welcome to give it a go.


Version needs to be bumped

The last time the version was changed was 3 years ago, and there have been modifications since then.

Dupe of #85


Create episode-7.markdown

@gauntface yo yo new markdown mango tango

Did not merge - there was an issue with the markdown. written_on and updated_on both need two spaces before them. I've replaced this with ff158702517716e5a0df3c06f92ff833ea29d488


set http post charset to utf8

fix #21

Current coverage is 100% (diff: 100%)

Merging #22 into master will not change coverage

@@            master   #22   diff @@
====================================
  Files           14    14
  Lines          195   197     +2
  Methods        182   178     -4
  Messages         0     0
  Branches        13    19     +6
====================================
+ Hits           195   197     +2
  Misses           0     0
  Partials         0     0

Powered by Codecov. Last update 2571f81...e23f10d


Universally remove a file or directory

On windows the rm -rf command does not work. So I created a file to exec command on windows and UNIX systems to delete the file or folder. The function takes in two parameters: F for the file,- D for the directory, and then the file or folder name. I changed the local script and replaced the semi-colons ( ; ) with && for individual execution.

Awesome, thanks for opening this @karanvirsb, especially after experiencing the issue yourself. Super helpful. Teddy changed mirrorful to be a monorepo in https://github.com/Mirrorful/mirrorful/pull/190 so once that is merged in, I can help merge this so it's fixed for Windows contributors. HUGE THANKS for opening this 🙌🏼 🥳

Awesome sauce!


datastore: very slow queries, single record by key

Ubuntu 16.04.3 LTS
Python 3.6.3
google-cloud-datastore>=1.5.0
repro code:
from google.cloud import datastore
from time import time
start = time() * 1000
ds = datastore.Client('project-name')
key = ds.key('TestPerf', 'c10d6806-e3d4-4694-a8be-38f481817c')
entity = ds.get(key)
end = time() * 1000
print("duration : ", (end - start))

We are just starting out with google cloud platform and chose datastore as the option to store data because it seems the simplest, however we are noticing very slow performance on queries. Most common query is by primary key (above code) or = on one of the fields.
We are getting about ~200/300ms on the above query with a single entity or many entities in the DB. The queries are done either from a Compute Engine instance or Kubernetes clusters (both same perf).
We are not sure what to do from here, short of switching to a different DB option on the GCP platform. Any help would be greatly appreciated. Thanks!

Hi @natasha-aleksandrova. It seems you're creating a new datastore client every time. This has quite a bit of overhead. Can you move the datastore client creation outside of your timing loop and see what you get?

there is no loop in the above code.
moving client creation before start variable makes virtually no difference.

Hrm, on my end:
In [9]: %timeit ds.get(ds.key('Faces', 'flex_and_vision.jpg'))
10 loops, best of 3: 67.5 ms per loop

Can you tell me a bit more about your environment?

certainly, could you tell what specifically you're looking for?
btw 67ms query time to look up by key doesn't seem like good performance against comparable databases (pgsql, cassandra etc)

natasha.aleksandrova@driver-api-dev-box-2 ~/$ venv/bin/python3.6 get_ds_test.py
duration :<PHONE_NUMBER>0625
duration :<PHONE_NUMBER>71875
duration :<PHONE_NUMBER>125
duration :<PHONE_NUMBER>0625
duration :<PHONE_NUMBER>28125
duration :<PHONE_NUMBER>40625
duration :<PHONE_NUMBER>40625
natasha.aleksandrova@driver-api-dev-box-2 ~/$ venv/bin/python3.6 get_ds_test.py
duration :<PHONE_NUMBER>5
duration :  48.459716796875
duration :  57.712890625
duration :<PHONE_NUMBER>
duration :<PHONE_NUMBER>03125
duration :  80.740234375
duration :  45.97998046875

above is running the script with multiple get queries after creating the client first.
it seems pretty inconsistent, we are using Datastore with REST endpoints which create client then do a single query to return the data. It seems that the first query is always slow.
Like I said earlier, ~50ms still seems a little slow.

@dmcgrath could you let me know if this is within the expected latency for datastore?

I am happy to hear that someone is raising this point. We experience the slowness with the Java client. First of all datastore is slower than cloud sql. Secondly there are fluctuations between 50ms and a couple of hundred ms . This forces us to use intermediate caches instead of querying the datastore directly.

PM for Datastore here. Some quick insights.

Our system spans many servers across multiple data centers (it's synchronously replicated across regions). To get the best performance, we have a series of caches for things like permission checking that will be your database until you send us non-trivial traffic to hit various servers and warm those caches. When doing benchmarking, longer tests will give more reliable indicates of actual production performance (more below).

Yes, for individual entity reads we will be slower than Cloud SQL. We trade off some latency for much greater durability and availability guarantees, along with other properties like scale down to zero, etc. We will scale better and more consistently, so queries the the same results will have the same latency when you have 1GiB with 10 reads/second as when you have 1PiB and 10 million reads/sec.

Yes, 50ms would be considered slow for a single entity read. I modified the above test (still not a great test) and ran it in Cloud Shell, getting numbers that would be closer aligned with expected performance:

Code:
from google.cloud import datastore
from time import time
ds = datastore.Client('project-id-goes-here')

for y in xrange(15):
    start = time() * 1000
    for x in xrange(100):
        key = ds.key('TestPerf', 'c10d6806-e3d4-4694-a8be-38f481817c')
        entity = ds.get(key)
    end = time() * 1000
    print("avg duration (n=100) : ", (end - start)/10)

Output:
(venv) ?@google.com:?:~/timings$ python time.py
('avg duration (n=100) : ', 25.29804931640625)
('avg duration (n=100) : ', 21.823388671875)
('avg duration (n=100) : ', 20.97033935546875)
('avg duration (n=100) : ', 21.27089111328125)
('avg duration (n=100) : ', 20.589169921875)
('avg duration (n=100) : ', 18.09662109375)
('avg duration (n=100) : ', 17.6180712890625)
('avg duration (n=100) : ', 16.16829833984375)
('avg duration (n=100) : ', 19.7347607421875)
('avg duration (n=100) : ', 16.29345947265625)
('avg duration (n=100) : ', 18.2619384765625)
('avg duration (n=100) : ', 14.91742919921875)
('avg duration (n=100) : ', 16.11412841796875)
('avg duration (n=100) : ', 13.5105908203125)
('avg duration (n=100) : ', 15.86523193359375)
(venv) ?@google.com:?:~/timings$

Thank you for information.
Your results look much better than mine. What could account for such drastic difference?
Avg of ~20ms is much better and something we could work with (although coming from PostgreSQL with 1-2ms queries by the PK, it is still a little high).
Also, a little bit about our use case. We are working on REST endpoints and using Datastore to store our core entities like User, Driver, Company etc. They are fairly simple data structures, and most commonly our endpoints will do a single query by the Key to get the entity. So the code snippet I provided in the issue I reported is pretty much the basis of the code, init DS client, then do a get by Key.
Given our use case, would SQL be more suitable for us? Or anything we can do to optimize Datastore for us?
Thanks!
Natasha
From: Dan McGrath<EMAIL_ADDRESS>Reply-To: GoogleCloudPlatform/google-cloud-python<EMAIL_ADDRESS>Date: Tuesday, February 27, 2018 at 8:30 AM
To: GoogleCloudPlatform/google-cloud-python<EMAIL_ADDRESS>Cc: Natasha Aleksandrova<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [GoogleCloudPlatform/google-cloud-python] datastore: very slow queries, single record by key (#4925)
PM for Datastore here. Some quick insights.

 Our system spans many servers across multiple data centers (it's synchronously replicated across regions). To get the best performance, we have a series of caches for things like permission checking that will be your database until you send us non-trivial traffic to hit various servers and warm those caches. When doing benchmarking, longer tests will give more reliable indicates of actual production performance (more below).

 Yes, for individual entity reads we will be slower than Cloud SQL. We trade off some latency for much greater durability and availability guarantees, along with other properties like scale down to zero, etc. We will scale better and more consistently, so queries the the same results will have the same latency when you have 1GiB with 10 reads/second as when you have 1PiB and 10 million reads/sec.

 Yes, 50ms would be considered slow for a single entity read. I modified the above test (still not a great test) and ran it in Cloud Shell, getting numbers that would be closer aligned with expected performance:

Code:
from google.cloud import datastore
from time import time
ds = datastore.Client('project-id-goes-here')
for y in xrange(15):
start = time() * 1000

for x in xrange(100):

    key = ds.key('TestPerf', 'c10d6806-e3d4-4694-a8be-38f481817c')

    entity = ds.get(key)

end = time() * 1000

print("avg duration (n=100) : ", (end - start)/10)

Output:
(venv) ?@google.com:?:~/timings$ python time.py
('avg duration (n=100) : ', 25.29804931640625)
('avg duration (n=100) : ', 21.823388671875)
('avg duration (n=100) : ', 20.97033935546875)
('avg duration (n=100) : ', 21.27089111328125)
('avg duration (n=100) : ', 20.589169921875)
('avg duration (n=100) : ', 18.09662109375)
('avg duration (n=100) : ', 17.6180712890625)
('avg duration (n=100) : ', 16.16829833984375)
('avg duration (n=100) : ', 19.7347607421875)
('avg duration (n=100) : ', 16.29345947265625)
('avg duration (n=100) : ', 18.2619384765625)
('avg duration (n=100) : ', 14.91742919921875)
('avg duration (n=100) : ', 16.11412841796875)
('avg duration (n=100) : ', 13.5105908203125)
('avg duration (n=100) : ', 15.86523193359375)
(venv) ?@google.com:?:~/timings$
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/GoogleCloudPlatform/google-cloud-python/issues/4925#issuecomment-368938736, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AB1t0i0RGUhjjFNCA2GVzjIO2izntKDQks5tZC3AgaJpZM4SRwGS.

I'm going to go ahead and close this, but by all means please continue discussing. If there's an actionable issue for this library, we can re-open or start a new issue.
Thank you @dmcgrath for giving a thorough answers here. :)

@natasha-aleksandrova -> I would recommend running the version of the test I posted with my results, then comparing the numbers. I strongly suspect you'll see they then match.

These are results:

avg duration (n=100) :  90.1637060546875
avg duration (n=100) :  93.5896826171875
avg duration (n=100) :  69.44139892578124
avg duration (n=100) :  67.1531201171875
avg duration (n=100) :  60.3359521484375
avg duration (n=100) :  63.8241650390625
avg duration (n=100) :  58.40623779296875
avg duration (n=100) :  62.62049560546875
avg duration (n=100) :  57.0997607421875
avg duration (n=100) :  63.35859619140625
avg duration (n=100) :  61.26636474609375
avg duration (n=100) :  51.29640625
avg duration (n=100) :  50.8125390625
avg duration (n=100) :  53.75461181640625
avg duration (n=100) :  48.53342041015625

print("avg duration (n=100) : ", (end - start)/100) <----- you are dividing it by a 100 :)
so in reality your results are 200ms which is pretty slow, my avg above 500ms and some as bad as 900ms.

just to close on this sounds like:

because we are running in west and the datastore is in central there is about 50ms extra latency
cold cache aspect is most likely affecting our performance

@natasha-aleksandrova What i learned from using datastore, is to use google cloud sql if i don't need to store a huge amount of data and have a psychic amount of queries per second. google cloud sql is just awesome plus the fact that you are not locked in a propietary solution which you cannot change afterwards and can use cool third party libraries like sql alchemy.
If i would have one table which would be gigantic i would either use cassandra(/bigtable) directly. Otherwise you will have to set up caching layers(redis, memcache,...) in the middle because the datastore performance will be indeterministic and queries will be slow.

@david-gang thanks for sharing your insights! it is certainly helpful, and we are looking at trying out the cloud sql.


Stones on the Table Problem

Description
There are n stones on the table in a row, each of them can be red, green or blue. Count the minimum number of stones to take from the table so that any two neighboring stones had different colors. Stones in a row are considered neighboring if there are no other stones between them.
Input :
5
RRRRR
Output:
4

Domain
Competitive Programming
Type of Contribution
No response
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

/assign

/assign


Silence second message

@xpple is it okay if I merge the main branch into this one, which includes a license change to MIT?


Refine Endpoint Module [WIP]

TODO

[ ] Add Scaladoc

What's changed

All endpoint instances are now defined on Endpoint.* (think Endpoint.param, Endpoint.body) and EndpointModule.* just redirects its calls there similar to how iteratee and Monix do that.
There is no longer tried module implementation, IO is used in tests.
The syntax package is removed and merged with the rest of the endpoints (note Endpoint.Mappable).
We're no longer providing the Endpoint type alias from within EndpointModule.
/ is renamed to zero and * is renamed to pathAny (the fewer symbolic APIs we have the better).
Style has been broken. I want to keep it that way until we replace scalastyle with scalafmt in #196.
Implicit conversions from Int and Boolean to path-endpoints were removed. Only String is supported now (the less we implicitly convert the better).

Codecov Report

Merging #988 into cats-effect will increase coverage by 0.43%.
The diff coverage is 78.49%.

@@               Coverage Diff               @@
##           cats-effect     #988      +/-   ##
===============================================
+ Coverage        84.84%   85.27%   +0.43%
===============================================
  Files               49       47       -2
  Lines              884      883       -1
  Branches            53       50       -3
===============================================
+ Hits               750      753       +3
+ Misses             134      130       -4

Impacted Files
Coverage Δ

core/src/main/scala/io/finch/endpoint/method.scala
100% <ø> (ø)

core/src/main/scala/io/finch/internal/Mapper.scala
100% <ø> (ø)

core/src/main/scala/io/finch/package.scala
100% <ø> (ø)
:arrow_up:

...amples/src/main/scala/io/finch/iteratee/Main.scala
0% <0%> (ø)
:arrow_up:

core/src/main/scala/io/finch/endpoint/path.scala
100% <100%> (ø)

core/src/main/scala/io/finch/endpoint/cookie.scala
58.33% <58.33%> (ø)

core/src/main/scala/io/finch/Endpoint.scala
76.31% <75.71%> (-2.26%)
:arrow_down:

...e/src/main/scala/io/finch/endpoint/multipart.scala
75.92% <75.92%> (ø)

core/src/main/scala/io/finch/endpoint/body.scala
79.16% <79.16%> (ø)

core/src/main/scala/io/finch/EndpointModule.scala
85.41% <85.41%> (ø)

... and 9 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ec9e236...5ebc3fa. Read the comment docs.

What is a benifit of having two almost equivalent method definitions like Endpoint.const and EndpointModule.const comparing to what it was before with Endpoint[F].const?

I feel like this structure promote consistency. Endpoint.* is the only place where instances are defined and it uses the very direct API (a call-site has to supply both F[_] and A). And the EndpointModule enables users to drop the F[_] argument assuming it's always the same thing in their apps.
The very same approach is used in several places where I looked-up. Notable, Monix's Iterant and iteatee libraries are structured in the same.


Sign in using GitHub Enterprise or ADFS Account

Request
Not sure if it's already in the works, but will it be possible to sign in using a GitHub enterprise account, which is wired to our AD credentials?
Product and Version [VS/VSCode]:  VSCode 1.22.2
OS Version [macOS/Windows]:  Windows 10
Live Share Extension Version:   0.3.93
Target Platform or Language [e.g. Node.js]:  any
Steps to Reproduce / Scenario:

Sign In
Choose github

@MichaelAndCara Thanks for asking. If your organization uses Azure AD, you can sign into that account using the "Microsoft" path.  We support AAD and personal Microsoft accounts.  However, we do not support on-prem ADFS or on-prem GitHub.  Does that meet your need?

Our organization does not use AADs, but Devs do have Microsoft accounts, which we can use.
However, our employees in our IT department are guaranteed to have a "normal" AD account.  I figured if we were mentoring anyone (employees interested in becoming developers, interns, etc), it would be convenient to use our GitHub enterprise account that is tied to our "normal" AD accounts.
Thanks @Chuxel

@MichaelAndCara Got it.  I'll flip this to a feature request given it sounds like in an ideal world you'd be able to use on-prem AD.

Github Enterprise support would be great.

We would love to use this in our organization but require github enterprise support.

@spkane @AshworthHub Out of curiosity: would on-prem AD support address your needs? Or would you specifically need GitHub Enterprise authentication?

@lostintangent we would need github enterprise.

@lostintangent Github Enterprise support. We are not a Windows shop, so AD support would not help us, but we do use GHE internally.
I would not expect this to be difficult, since as far as I know, it has all the same APIs. The usually just have a different base URL.

This would be nice to have as an on prem solution, perhaps TFS integration?

cc @avanderhoorn

Suggest splitting this into two issues - I'm only interested in local AD support.   (Some Github Enterprise users use it with AD, others don't).

Agree simple ad/ldap is all we need too.
We'll never do github enterprise since we have on prem Atlassian stack.

Also need this.

Need this also

In our company, we're developing in an completely disconnected environment with On Premise TFS and On Premise AD. So, on-prem ADFS is a must.

We are also developing in a completely disconnected environment and on-prem ADFS is also a must for us.

would be interested in an on premise solution for organizations with restricted external network access.

One more for "totally disconnected environment" - LiveShare would be huge for us but t's currently DOA

This feature for Live Share will be used by a lot of DoD contractors and government. Many times we are on offline networks for security reasons. The market for On-Premise is very large with governments.

Hi,
Does anyone have an update on this issue ? With the covid-19 out there, it would be very interesting for us to collaborate with this tool !
Thanks !

Sure !
I'm working in a company relied to the french ministry of labour and, of course, we rely on ADFS Accounts. Live Share would be a really nice tool to use !
Thanks

Same here, due to privacy and security reasons we can't use GHE, regular Github os Azure AD.

Also could really use this due to CoVID-19. Can't use without either Github Enterprise or on-premise AD.

this would be great indeed, even if it means "only direct mode"

Support, an on premise solution with AD would greatly be appreciated.

+1 for an on-prem solution. Our windows based Dev team would love to use this but cannot have offsite authentication.

If we could restrict live-share to our O365 tenant or our github enterprise oauth it would be a huge win for our developers working from home. With COVID-19 and our working from home situation this enhancement cannot come fast enough!

@rpetersen3 If you were able to use the existing Azure Active Directory-based auth, and just needed a way to restrict collaboration to members of your tenant, you could take a look at using this extension and see if meets your needs in the near-term? That handles automatically blocking guests that are external to the host’s domain.

Thanks, we will give it a try!
On Mon, May 18, 2020 at 10:09 AM Jonathan Carter<EMAIL_ADDRESS>wrote:

@rpetersen3 https://github.com/rpetersen3 If you were able to use the
existing Azure Active Directory-based auth, and just needed a way to
restrict collaboration to members of your tenant, you could take a look at
using this extension
https://marketplace.visualstudio.com/items?itemName=vsls-contrib.gatekeeper
and see if meets your needs in the near-term? That handles automatically
blocking guests that are external to the host’s domain.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/live-share/issues/341#issuecomment-630207234,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHG63PKAF3AHO743KXZMMVLRSE6RRANCNFSM4E7C7JZQ
.

I'm also in an environment, where MS-Logins are a no-go and we use on-prem AD with on-prem Azure Devops. Given this pandemic it would be hugely appreciated to use VS-Code+LiveShare through on-prem-means instead of sharing full screens behind a remote desktop through a VPN.

One more asking for a "local AD/LDAP login" feature suitable for isolated networks.
Help us bring some fresh stuff in those local networks.
A hacky way is an okay way.

One more asking for a "local AD/LDAP login" feature suitable for isolated networks.
Help us bring some fresh stuff in those local networks.
A hacky way is an okay way.

Another +1 looking for an on-prem offering.
Support for ADFS/local AD and the option to run the ‘session discovery’ aspect of Live Shame on-prem, like TFS would be killer.

Another +1 looking for an on-prem offering.
Support for ADFS/local AD and the option to run the ‘session discovery’ aspect of Live Shame on-prem, like TFS would be killer.

Would authentication against some other servers/services be possible? For example one company uses their own Gitlab-setup (reachable from the internet) and also a nextcloud-installation to share with others. Both already contain user-accounts for the developers. Maybe authenticating by oauth against a configurable server would be possible or so?

This is a must have feature to be able to use Live Share

I can't using Github with Organizations. Read org and team membership, read org projects not found

Could anyone share the latest status on this?

Could anyone share the latest status on this?

Looks to me like Microsoft is pretty busy ignoring this request to pressure everyone off their on-premise solution.

@Chuxel @lostintangent @avanderhoorn   is this on any roadmap? I would really love GitHub Enterprise auth.

Echoing what everyone else is saying. We could really use this but are air gapped so we are unable to meet the microsoft login requirements. Really need another solution for authentication.

Any updates on this?

I'm also interested in this feature. A simple "IP+port" connection option would be enough for now, as we could set up a secure tunnel through many other ways (with any possible authentication method).

I know it must be possible, as the Github Pull Requests extension, can do it fine

In our company, we're on a disconnected environment with an On Premise AD  so I think on-prem ADFS will be a must.

Disconnected or public sector azure gov both need this feature. Please implement.

👍

👍

Does anyone know if ADFS support has been added yet? Or if support for Gov cloud has been added?

I am echoing what everyone else is saying. We could really use this but we are air-gapped so we are unable to meet the Microsoft login requirements. We really need another solution for authentication.

It's not possible to Live Share on networks with limited connectivity.
Because #1432 got closed as a dupe of this issue:
In such scenarios, we need on-prem relay too, as well as port remapping.
If there are reasons to limit Internet access, one should expect incoming connections and port range restrictions too. The connectivity needs for the relay that you made and deployed in cloud, still apply in other (separated/filtered) networks.

It's not possible to Live Share on networks with limited connectivity.
Because #1432 got closed as a dupe of this issue: In such scenarios, we need on-prem relay too, as well as port remapping.
If there are reasons to limit Internet access, one should expect incoming connections and port range restrictions too. The connectivity needs for the relay that you made and deployed in cloud, still apply in other (separated/filtered) networks.

i feel like this is a seperate issue, and whoever closed it was wrong to do so

https://github.com/microsoft/vscode-pull-request-github/releases/tag/v0.52.0
includes support for

the VS Code built in GitHub Enterprise authentication provider

Is this something that will help make progress on this issue @avanderhoorn?

This is so sorely needed. We have github enterprise accounts.

I would love to understand specific use cases and company profiles that use Live Share with GitHub Enterprise accounts, and with their own AD's. While we consider this issue further, and evaluate how best to support companies that have network restrictions, please shoot an email to<EMAIL_ADDRESS>if you'd like to help us understand your use case better. Thanks!

I would love to understand specific use cases and company profiles that use Live Share with GitHub Enterprise accounts, and with their own AD's. While we consider this issue further, and evaluate how best to support companies that have network restrictions, please shoot an email to<EMAIL_ADDRESS>if you'd like to help us understand your use case better. Thanks!

Many of us work in air-gapped networks : No internet access = Just can't use LiveShare as it is today.
But ActiveDirectory is so cool it's almost mandatory so many enterprises use it those networks.
Add the possibility to log-in through AD (or GHEnterprise, why not) and suddenly many of us can enjoy LiveShare.

Unfortunately, we’re not able to prioritize this feature over the other current areas of focus on the team. We understand that this may be disappointing. We appreciate your input and comments on this issue till now.

👎


Migrate from ebean 8.1.1 to ebean 10.1.3

Variabilize the version of Ebean in the SBT file.
Change the dependencies to the new io.ebean groupId.
Change artifactId avaje-ebeanorm-mavenenhancer to the new ebean-maven-plugin
Change the imports

Done


Ncl log_provenance in interface_script seems broken

During the testing for 2.10.0, we see a number of recipes broken due to an error occuring in log_provenance in the Ncl file interface_scripts/logging.ncl. Specifically, the error is
 Copyright (C) 1995-2019 - All Rights Reserved
 University Corporation for Atmospheric Research
 NCAR Command Language Version 6.6.2
 The use of this software is governed by a License Agreement.
 See http://www.ncl.ucar.edu/ for more details.
INFO    Loading settings from /scratch/b/b380866/esmvaltool/output/recipe_anav13jclim_20231113_131415/run/diag_collect/collect_sh/settings.ncl
INFO    Wrote variable grade to /scratch/b/b380866/esmvaltool/output/recipe_anav13jclim_20231113_131415/work/diag_collect/collect_sh/diag_grading_gpp-sh_to_diag_grading_pr-sh_RMSD.nc
fatal:The result of the conditional expression yields a missing value. NCL can not determine branch, see ismissing function
^Mfatal:["Execute.c":8637]:Execute: Error occurred at or near line 359 in file $diag_scripts/../interface_scripts/logging.ncl

^Mfatal:["Execute.c":8637]:Execute: Error occurred at or near line 506 in file /home/b/b380866/miniforge3/envs/evt-v2.10.x-2023-11-13/lib/python3.11/site-packages/esmvaltool/diag_scripts/perfmetrics/collect.ncl

For a list of recipes, see the testing issues in #3414 .

This is most likely related to the changes from https://github.com/ESMValGroup/ESMValTool/pull/3332/.
It also seems that there is more than one problem. For recipe_wenzel14jgr.yml, I got a slightly different error message than the one posted above:
fatal:Variable (all_outfiles) is undefined
fatal:["Execute.c":8637]:Execute: Error occurred at or near line 366 in file $diag_scripts/../interface_scripts/logging.ncl

fatal:["Execute.c":8637]:Execute: Error occurred at or near line 346 in file /home/b/b309141/repos/ESMValTool/esmvaltool/diag_scripts/carbon_ec/carbon_gammaHist.ncl

In this case, the diagnostic used a wrong outfile for the provenance logging (e.g., /plots/diag_gammaHist_Fig3and4/gammaHist_3and4/.png. The old code just ignored this, but the new fails. This can also be seen in old runs, where the corresponding plot is missing on the website due to the invalid provenance.
I will update logging.ncl so it won't fail anymore, but it would also make sense to actually fix the root cause, in this case the wrong outfile. I'll investigate further.

Yes, the cases I found so far are very similar. People (in this example, myself 😆) use all kinds of wrong entries for outfile, e.g. missing. This leads to get_file_suffix(outfile) = missing, which gives the error message you posted. I'll try to fix all occurences.

Opened a PR here: https://github.com/ESMValGroup/ESMValTool/pull/3422. Unfortunately, these are too many recipes for me to test now. I tested one example (which works).


Allow cert contents in prometheus scrape config tls config

For context, on the Bosh team, we are trying to deploy a prometheus in our acceptance environment to try out providing our own metrics. (the bosh-exporter is cool, but very expensive to run, metrics provided directly by Bosh should be much cheaper). The bosh metrics endpoint is secured with mTLS and we need to give certs to the scrape config.
Thanks,
Charles
PR details:
Prometheus wants scrape_config tls_config to use file paths, but it is difficult
to directly put certificates on a vm while deploying with bosh.
If cert_contents are provided, the pre-start script will write the
contents into cert files that prometheus can use when it starts
Prometheus validates that there are not extra keys in its configuration,
so the extra cert contents keys need to be removed.
#169551239
Co-authored-by: Conor Nosal<EMAIL_ADDRESS>

For reference, an updated scrape_configs: looks like
scrape_configs:
  - job_name: prometheus
     static_configs:
    - targets:
       - localhost:9090
  - job_name: bosh
    static_configs:
    - targets:
       - <IP_ADDRESS>:9091
       scheme: https
       tls_config:
         ca_file: /var/vcap/jobs/prometheus2/certs/ca.cert
         ca_contents: ((metrics_server_client_tls.ca))
         cert_file: /var/vcap/jobs/prometheus2/certs/cert.cert
         cert_contents: ((metrics_server_client_tls.certificate))
         key_file: /var/vcap/jobs/prometheus2/certs/key.cert
         key_contents: ((metrics_server_client_tls.private_key))


Create 24-HRs-Of-LeStoopid.js

This game is an artistic vision, one which only few can truly grasp. 24hrs of LeStoopid places you directly into the drivers seat of a Le Mans driver, for a truly staggering 24hrs straight. Now some may question the authenticity of this experience, and let me put the to rest. I am both a veteran Le Mans driver, and decorated artist, and let me tell you, this game is the REAL DEAL!
Your checklist for this pull request
Liam O'Keeffe
Liam"LeMans"O'Keeffe
This is a fully realistic, high octane, LeMans simulation
Fast, ENDURANCE, racing
Just WASD
Code
Check off the items that are true.
[ x] The game was made using the Sprig editor.
[ x] The game is placed in the in the /games directory.
[x ] The code is significantly different from all other games in the Sprig gallery (except for games labeled "demo").
[ x] The game runs without errors.
[ x] The name of the file/game contains only alphanumeric characters, -s, or _s.
[ x] The game name is not the same as the others from gallery
Image (If an image is used)

[ ] The image is in the /games/img directory.
[ ] The name of the image matches the name of your file.

Thanks for your PR!

closing this PR due to inactivity. feel free to ping me and ask for this to be reopened and hopefully merged!


KLL inclusive rank

This is to support inclusive get_rank(), get_PMF() and get_CDF() inspired by the implementation of REQ sketch.
Support of inclusive get_quantile() and get_quantiles() will be done separately by reusing the quantiles calculator from the REQ sketch.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2206

Relevant Lines:
2389

💛  - Coveralls


[DRAFT][728] apply implement small content improvements

Context
There was a bug party in October and a few content issues were identified.
Changes proposed in this pull request

Added a few full stops where they were missing
Replaced contractions you're and you'll with you are and you will throughout
Removed ambiguous plurals throughout (eg application(s) is now applications)

Guidance to review
Easier to review commit by commit.
Link to Trello card
Trello card

 Apply: Implement small content improvements


Video encoding doesn't work in Android 14

Hi there,
encode a video isn't working anymore since Android 14.
final MediaTransformer mediaTransformer = new MediaTransformer(getApplicationContext());

TransformationListener transformationListener = new TransformationListener() { ... }

mediaTransformer.transform( ... );

In Android 13, all works perfectly fine with the same code, since Android 14 it stops after 1 sec without any error callbacks. The onProgress callback is called 1-2 times.
2023-10-21 08:51:59.171 15592-15592 TAG                   com.myproject.android                 D  LiTr onProgress
2023-10-21 08:52:03.950 15592-15837 BufferPoolAccessor2.0   com.myproject.android                 D  evictor expired: 1, evicted: 0
2023-10-21 08:52:04.951 15592-15837 BufferPoolAccessor2.0   com.myproject.android                 D  bufferpool2 0xb4000070c36c7e38 : 5(40960 size) total buffers - 4(32768 size) used buffers - 28/34 (recycle/alloc) - 6/30 (fetch/transfer)
2023-10-21 08:52:04.951 15592-15837 BufferPoolAccessor2.0   com.myproject.android                 D  bufferpool2 0xb4000070c36d34e8 : 5(20480 size) total buffers - 0(0 size) used buffers - 18/24 (recycle/alloc) - 5/46 (fetch/transfer)
2023-10-21 08:52:04.951 15592-15837 BufferPoolAccessor2.0   com.myproject.android                 D  bufferpool2 0xb4000070c3734b88 : 0(0 size) total buffers - 0(0 size) used buffers - 0/0 (recycle/alloc) - 0/0 (fetch/transfer)
2023-10-21 08:52:04.951 15592-15837 BufferPoolAccessor2.0   com.myproject.android                 D  bufferpool2 0xb4000070c36fa798 : 5(36700160 size) total buffers - 4(29360128 size) used buffers - 18/23 (recycle/alloc) - 9/19 (fetch/transfer)
2023-10-21 08:52:04.951 15592-15837 BufferPoolAccessor2.0   com.myproject.android                 D  evictor expired: 4, evicted: 4

Just guessing in the wild, is it the reduced mLock Limit?
Tobias

Thank for catching this. I will get ahold of Android 14 device and investigate this.

Any news on this one? 😇 Are we the only ones?

Apologies for the delay. Looking into this now.

Which device are you using? Things seem to be working well on emulator.

True, in the emulator it works for me too. But on my Pixel 6a it doesn't. Also quite a few app users complained. Can you reproduce it?

We were not able to reproduce it on Pixel devices (I don't exactly know which ones, I will ask)
I will try to get ahold of a Pixel 6a and debug.

Just checked on a Samsung device and it worked too.
The problem also is, it doesn't throw an error, the service that is processing the video simply crashes, no callbacks.

Just checked on a Samsung device and it worked too.
The problem also is, it doesn't throw an error, the service that is processing the video simply crashes, no callbacks.

Hi izzy, so I did some debugging on my Pixel 6a, and the problem only occurs with a video target format:
         targetVideoFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Flexible);
COLOR_FormatYUV422Flexible works! Is this something you can fix? I can do more tests, if you let me know.


2.0 rc1 Operator: ListenAddress and log directories may be incorrect

The Operator may fail to override the listen addresses and log directories in a Domain Home, and so leave them at their locations specified in the original Domain Home configuration when it starts WL pods.    This is usually not a significant issue for log directories, but can be for listen addresses.   A server will not start if its listen address is incorrect.
One work-around is to configure unset/blank listen addresses in the original Domain Home.   This risks some problems with JTA HA - stalled transactions after a crash or network failure - but is fine for ad hoc testing.   Another work-around is to configure the exact required listen addresses in the original Domain Home, in the form DOMAIN_UID-SERVER_NAME, all in lower case, with underscores (_) converted to dashes (-).
One symptom for this problem are 'situational config' error messages or warnings in the WebLogic Server logging (echoed to the pod logs by default).

Pull https://github.com/oracle/weblogic-kubernetes-operator/pull/716 looks like it works around the issue.

Internal tracking: OWLS-70905


Jswain xdisk rawfix

Pull Request (PR) description

This Pull Request (PR) fixes the following issues

Task list

[X ] Added an entry under the Unreleased section of the change log in the CHANGELOG.md.
Entry should say what was changed, and how that affects users (if applicable).
[ ] Resource documentation added/updated in README.md in the resource folder.
[ ] Resource parameter descriptions added/updated in schema.mof
and comment-based help.
[ ] Comment-based help added/updated.
[ ] Localization strings added/updated in all localization files as appropriate.
[ ] Examples appropriately added/updated.
[ ] Unit tests added/updated. See DSC Resource Testing Guidelines.
[ ] Integration tests added/updated (where possible). See DSC Resource Testing Guidelines.
[ ] New/changed code adheres to DSC Resource Style Guidelines and Best Practices.

This change is

Codecov Report

Merging #190 into dev will increase coverage by <1%.
The diff coverage is 100%.

@@         Coverage Diff         @@
##           dev   #190    +/-   ##
===================================
+ Coverage   94%    94%   +<1%
===================================
  Files        8      8
  Lines      873    875     +2
===================================
+ Hits       821    823     +2
  Misses      52     52

Sorry @JoshuaJSwain - I couldn't use reviewable because something is going weird due to the reverted PR. I actually noticed a few things that needed fixing in this PR.

HI @PlagueHO any further fixes I can work on for this one?

thanks @PlagueHO I've pushed the updates

:lgtm:
I'm going to squash merge this.

I see this in dev, curious to see what the release tempo is for <IP_ADDRESS>. I also work on pr 198 when your unit test pr 201 is merged

The DSC Resource kit is released monthly. Usually the week after the community call. So I'd expect the next release date is in the week starting the 1st of April.


Difficulty to build Myrtille in VS 2015

Hi cedrozor,
Firstly, thank you for the program, It looks very good !
But I have somes difficultys to build the setup in Visual Studio 2015... Here's the errors:
http://img15.hostingpics.net/pics/226766error1.png
After reading the documentation, I tried to do a cmake on FreeRDP folder in Myrtille.RDP directory but I has an error when I tried to generate the Visual Studio solution:
http://img15.hostingpics.net/pics/953700cmd.png
Also, I dn't find the file sysinfo.c in  winpr ... Can You help me or just send me the fork of FreeRDP contained in the folder ? Thank
And Happy New Year :))

Hi SieldP,
The first error is due to the fact Myrtille.Setup does not build FreeRDP by itself (because it's not part of the solution and also use cmake to customize the build depending on the environment) and expect in place it to be already built separately.
The second is probably due to the fact VS2015 doesn't install the Visual C++ compiler by default. To install it, you have to run the VS installer again, choose modify and select the VC++ in the optional features list.
Additionaly, FreeRDP requires OpenSSL; before running cmake you will have to install it (https://wiki.openssl.org/index.php/Binaries). As I did, I suggest you to use the pre-compiled Win32/64 libraries without external dependencies to the MSVC++ reditributables.
The myrtille FreeRDP fork is located at https://github.com/cedrozor/FreeRDP
Happy new year! :)

Thanx for reply
Then I have 3 warnings and 6 errors when I try to build FreeRDP (vers. 1.1) using Msbuild cmd.
Here is the first error : http://img15.hostingpics.net/pics/321050error11.png
And I have 57 errors when I try to build FreeRDP (vers. master).
I using VS 2015 and OpenSSL 32bits with using library in OpenSSL binaries (OpenSSL/bin)
Sorry for the inconvenience :/

I should update the documentation... the branch to build is the master (https://github.com/cedrozor/FreeRDP/tree/master), the stable-1.1 doesn't contain the myrtille code (all FreeRDP branches and tags were duplicated when I forked the repository).
The needed OpenSSL libs are indeed the 32 bits ones. Initially, I installed the 1.0.2h precompiled version from https://slproweb.com/products/Win32OpenSSL.html (now there is the 1.0.2j and even the 1.1.0c). cmake does detect it and configures the solution for it.
Later, I wanted to remove the MSVC++ redistributables dependency, both from FreeRDP and OpenSSL. I changed the cmake configuration to build FreeRDP with static linkage and replaced the OpenSSL binaries (into the FreeRDP build output folder) by the ones availabled at https://indy.fulgan.com/SSL/ (see https://wiki.openssl.org/index.php/Binaries for a list of precompiled binaries OpenSSL distributions).
OpenSSL is reputed difficult to build, so I didn't wanted to bother with it (I already had some hard time mixing the FreeRDP C code  and Myrtille C++ code...).
Myrtille.Setup takes the FreeRDP exe and dlls and OpenSSL dlls (libeay32.dll and ssleay32.dll) from the FreeRDP build output folder (release).
I tried to make it simple, but when it comes to C/C++, it's more difficult than C# ^^

That work thank you so much !!!!!!! <3 :)

Thank you, now I succeeded to build it, but I have an error when I try to install the builded setup:
Http://img11.hostingpics.net/pics/352037last.png
But the installation works fine when I use your Setup .... I think something wrong in the setup configuration in the solution.

Sorry, I have one last problem. I succeeded to build Myrtille but when I go on the server of a virtual machine with the builded Myrtille setup, and I click "connect", the RDP page appears and then disappears and I am redirected to Default.aspx page...
I saw in your video ( https://www.youtube.com/watch?v=l4CL8h0KfQ8 ) that you had 10 projects in the Myrtille solution. I have only 5: http://img11.hostingpics.net/pics/321135solumgl.png
Can you tell me what you loaded in the folder Myrtille.RDP? Thank you

Thank you I secceded to built it :)


Accept a greater range of mashumaro versions.

See https://github.com/dbt-labs/dbt-core/discussions/6495#discussioncomment-5822937

Description

Checklist

[ ] I have read the contributing guide and understand what's expected of me
[ ] I have signed the CLA
[ ] I have run this code in development and it appears to resolve the stated issue
[ ] This PR includes tests, or tests are not required/relevant for this PR
[ ] I have opened an issue to add/update docs, or docs changes are not required/relevant for this PR
[ ] I have run changie new to create a changelog entry

Superseeded by #7368


[SE-0412] changelog note about strict concurrency for global variables

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci please test

The changelog item is added under Swift 5.10 here, but under Swift 5.11 on the main branch.

Ah good point, I modeled the same as was done with SE-0411 without much thinking about it. I have now on main also moved SE-0411 under 5.10 (@hborla I hope you agree that is the correct change).

In both pull requests, a reference is missing (at the end of the changelog):
[SE-0412]: <https://github.com/apple/swift-evolution/blob/main/proposals/0412-strict-concurrency-for-global-variables.md>

Thanks and fixed now.

I have now on main also moved SE-0411 under 5.10 (@hborla I hope you agree that is the correct change).

Yes I agree, thank you! At the time when I landed SE-0411 on main, it was not yet on 5.10, so the main release note became incorrect after I cherry picked the change.

@swift-ci please test macOS


remove show-all as it is depreciated as part of oc get

Signed-off-by: Saravanakumar<EMAIL_ADDRESS>

This change is

@humblec  PTAL

It looks good to me.  @jarrpa @obnoxxx PTAL . This address https://bugzilla.redhat.com/show_bug.cgi?id=1600077

Can one of the admins verify this patch?

FYI: when using kubectl this causes the gk-deploy script to hang at this stage:
Checking status of pods matching '--selector=job-name=heketi-storage-copy-job':

since the pod completes almost immediately and doesn't appear without --show-all.


Update <IP_ADDRESS> to <IP_ADDRESS> ok ! but now, Mica won't launch... :'(

Hi guys,
today I downloaded the new version of mica (v<IP_ADDRESS>) but it refuses to start... :/

I did not change anything on my pc and the previous version (v<IP_ADDRESS>) worked and still works like a charm. 👍

On my pc, I have all the necessary redistributables (I think) : https://i.imgur.com/00ioWi5.png
and this is what the event viewer shows me : https://i.imgur.com/IHDatHM.png

any idea please? I am very enthusiastic for this new version because I saw that the program was finally translated into French and I can't wait to use it like this!
thank you for your feedback!

I guess it's a build error, I tested it before uploading but I'll test it again.

It works ! Fast and efficient, thank you ! 👍💯

solved.

Enjoy yourself🙌


Pacman snapshots include the /var/lib/pacman/db.lck

The pacman snapshot gets taken a little too late and includes the /var/lib/pacman/db.lck. It's a bit annoying to remove it every time you reset a pacman snapshot

Yes, I've noticed this as well. The packman hook executes after the file is created.
A good solution could be to have the rollbacker script remove it.

I saw that snapper does the same. Removing the packman.db.lck after mounting the new root works great for me in my rollback script


DataAnnotationValidationService PropertyValueGetter should know how to deal with Radical Entity without using reflection

no way, at least not an easy one. The Radical Entity expects to work with generics, on the contrary, the DataAnnotationValidationService has no knowledge at all of the property Type.
backlogging for now.


Install instructions?

Hi there,
Thanks for the package! It looks very cool and seems like you put alot of work into it. Kudos!!! Sadly I can't find installation instructions anywhere. Can you point me to them?
Thanks,

Hey! Thanks! As of now, you'll have to git clone the repo, then run python setup.py.
I'm currently working on making HyperLearn pip installable, but will take a while

@danielhanchen thanks for the info! I installed it successfully using setup.py, but then I do python numba_compile.py and got the following error? Do you know what could cause this?
******* Now compiling Numba and LLVM code..... *******
******* This can be VERY SLOW. Please wait.... *******
Progress: |||||||||||||||Note that first time import of HyperLearn will be slow, since NUMBA code has to be compiled to machine code for optimization purposes.
Traceback (most recent call last):
  File "numba_compile.py", line 6, in <module>
    from hyperlearn.numba.funcs import *
ModuleNotFoundError: No module named 'hyperlearn.numba.funcs'; 'hyperlearn.numba' is not a package

Hi @hoangthienan95 Sorry about that!
Currently, I'm fixing errors for HyperLearn.
I'm planning to release a stable version this week.


fix(init-job): Fix envFrom for init job in helm chart

It breaks when I use envFromSecrets in helm value as the quotes are missing for the init job.

Thank you! LGTM, you have to bump the chart version also

Done, can you merge?


GEOMESA-1417 Allow custom quote characters in DelimitedTextConverter

Added an optional field, 'options.quote', that controls what character
is used for quoting

Signed-off-by: Anthony Fox<EMAIL_ADDRESS>

maybe in the future we should also allow a "escape" char so we can enable backslash escaping.

looks like MYSQL is the only format that sets an escape char (\), so yeah exposing that would be good

@anthonyccri can you add an argument for escaping? maybe options.escape

@elahrvivaz if you are ok with my additions we're good to go

looks good - merging


feat: Add auth token to http binding resolver

closes #1755

@fqutishat by the way, a more general approach could be a WithHeader() option that adds arbitrary http headers


metrics: rename pids_v2 to pids

dicussed in #3726
Also unifies the task monitor instances to avoid the name collision issue across multiple instances: https://github.com/containerd/containerd/issues/3726#issuecomment-565316687
Signed-off-by: Akihiro Suda<EMAIL_ADDRESS>

Codecov Report

Merging #3891 into master will decrease coverage by 3.4%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3891      +/-   ##
==========================================
- Coverage   45.72%   42.31%   -3.41%
==========================================
  Files         117      130      +13
  Lines       11765    14689    +2924
==========================================
+ Hits         5379     6216     +837
- Misses       5462     7548    +2086
- Partials      924      925       +1

Flag
Coverage Δ

#linux
45.72% <ø> (ø)
:arrow_up:

#windows
37.82% <ø> (?)

Impacted Files
Coverage Δ

archive/tar_opts.go
58.82% <0%> (-12.61%)
:arrow_down:

snapshots/native/native.go
42.42% <0%> (-10.27%)
:arrow_down:

cio/io.go
46.47% <0%> (-8.53%)
:arrow_down:

archive/tar.go
48.18% <0%> (-8.51%)
:arrow_down:

metadata/snapshot.go
48.47% <0%> (-7.19%)
:arrow_down:

metadata/containers.go
49.84% <0%> (-6.26%)
:arrow_down:

content/local/writer.go
58.65% <0%> (-5.55%)
:arrow_down:

content/local/store.go
49.52% <0%> (-5.29%)
:arrow_down:

metadata/images.go
57.41% <0%> (-4.97%)
:arrow_down:

archive/compression/compression.go
58.69% <0%> (-4.7%)
:arrow_down:

... and 74 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 082f7e3...43fca9e. Read the comment docs.

LGTM


Add Versionist configuration file to consistently update all future versions.

Ensures, from this point onwards, all versions are now handled correctly.
This will alter the CHANGELOG.md output slightly, with all versions now
being prepended with the 'V' tag, and including connected issues should
they be specified.
Connects-To: #15
Change-Type: minor

Very nice! Looks great to me!

Cheers @jviotti !


".hits.hits[]._id" nothing?why

".hits.hits[]._id" nothing
".hits.hits[]" is ok
".hits.hits[0]._id" is ok
why?

Hi
Since you didn't supply any definition of your data structure I will guess it looks something like this based on how you are trying to access it:
{
  "hits": {
    "hits": [{
      "_id": "ID"
    }]
  }
}

I think your primary confusion comes from the [] part of your path, brackets without any content will do nothing and it will be parsed like they don't even exist. So your examples will be parsed like this:
".hits.hits[]._id" > "hits.hits._id"
Since "hits" is a slice it does not have a _id field, this will not match.
".hits.hits[]" > "hits.hits"
This will point to the inner "hits" slice.
".hits.hits[0]._id" > "hits.hits[0]._id"
This will point to the value of "_id" at index 0 of "hits" slice, so "ID" in this example.

You are right, it is indeed the case of arrays
我不知道你是否能做到".hits.hits[*]._id"非常感谢


ask

code is working?
Where do I set the radio pinning?

The code works, but the functionalities that you can use can depend on the region that you configure youre library (On config.h), you can read the functionalities that depend on the region on the README.
About the radio pinning i dont catch you, what do you mean with "pinning"?
Do you refer to the time between uplinks?

the DIO0 DIO1 pinout setting etc ...
Congratulations on the work, I'll test on my radio, I want to oscillate between class a / uplink and class c for downlink

Aaa ok! the pins definitions are on the Readme, you can define them
sRFM_pins RFM_pins = {
.CS = SS,
.RST = RFM_RST,
.DIO0 = RFM_DIO0,
.DIO1 = RFM_DIO1,
.DIO2 = RFM_DIO2,
.DIO5 = RFM_DIO5
};
If you dont have DIO5 just define it, it does not do nothing yet

Hi.  I have a question about this part of the code myself.  I am new to this so maybe it is obvious to some but not to me right now.  I am trying to get this code working on a WEMOS D1 Mini and currently when I compile your code it fails with 'RFM_RST' was not declared in this scope. My understanding is SS, RFM_RST,RFM_DIO0, etc, will need to be replaced by something denoting the pins I use on WEMOS D1 Mini for my RF95 module.  If I am correct then what value do I use for the variable? For instance I want to use GPIO 15 of the WEMOS for DIO0, how do I declare that in this set of variables? Do I code ".DIO0 = GPIO15"??

Simple enter pin value, example:
sRFM_pins RFM_pins = {
.CS = 10,
.RST = 11,
.DIO0 = 30,
.DIO1 = 15,
.DIO2 = 4,
.DIO5 = 33
};

Great, thank you.  Appreciate it.

And if I do not need the to use the pin do I just pick any number not corresponding to an actual pin?

yes


Warning from Hetzner about cluster-autoscaler

I received an email warning from Hetzner with the following message:

Subject:
Important client information: Upcoming changes to cluster-autoscaler Hetzner provider and CX11 server type removal
Body:
Based on our API monitoring, you are using Kubernetes cluster-autoscaler in your Hetzner Cloud projects. The Hetzner provider in current versions of cluster-autoscaler has a bug and relies on the CX11 server type, which we will remove from our ordering options on 6 September 2024. You can learn more about the removal in the Cloud Changelog: https://docs.hetzner.cloud/changelog#2024-06-06-old-server-types-with-shared-intel-vcpus-are-deprecated
To prevent any disruptions for you, we will keep the CX11 server type available for your account. We will remove your access to the CX11 server type two weeks after the Kubernetes community releases new versions of cluster-autoscaler. We will announce the exact date in a follow up notification once the new versions are available.
The following versions of cluster-autoscaler are affected:
≤1.28.6 (including 1.27 and older)
≤1.29.4
≤1.30.2
≤1.31.0
To bridge the gap until the Kubernetes community releases the new versions, we published alternative container images of cluster-autoscaler that include a patch for the bug. You can use these in your deployment, but we will remove them one month after new cluster-autoscaler versions become available. We will not provide any other patch releases on this container image repository. Please switch back to the official images as soon as possible.
docker.io/hetznercloud/cluster-autoscaler:v1.28.6-hcloud1
docker.io/hetznercloud/cluster-autoscaler:v1.29.4-hcloud1
docker.io/hetznercloud/cluster-autoscaler:v1.30.2-hcloud1
docker.io/hetznercloud/cluster-autoscaler:v1.31.0-hcloud1
We will send you another notification once the new versions become available.
You can find more information at the following links:
https://docs.hetzner.cloud/changelog#2024-08-30-bug-cx11-removal-will-break-certain-versions-of-cluster-autoscaler
https://github.com/kubernetes/autoscaler/issues/7210
https://docs.hetzner.cloud/changelog#2024-06-06-old-server-types-with-shared-intel-vcpus-are-deprecated
We will be happy to help you with any questions. Please write us a support request by logging onto your account on https://console.hetzner.cloud/support
Thank you for your understanding.

I am not using the CX11 node for my clusters. Is there anything I need to do for this? Am I at risk of having my production servers shutdown?

I also received it today. Not sure it's worth making a release to use the temp image since the problem only affects people who might try and use old instances that have been deprecated for a while already.
If you are not using CX11 you don't need to worry about this.

Okay thanks!

Sorry to jump in here. I have very limited knowledge of hetzner-k3s, but to me it seems that the cx11 instance is hard coded to serve as the "draining-node-pool" (as mentioned in the linked github issue). To me that seems that it'll affect users regardless whether they use that node type or not.

Uhm, seems like I had read it too quickly. I will make a release with their temp image for now then.

Hello :wave:
if your account is currently using cluster-autoscaler we will set a flag to your account so cx11 stays available until proper releases of cluster-autoscaler are available. You will get another notification then about the timeline for removal of cx11 from your account and the removal of the temp images.

Am I at risk of having my production servers shutdown?

This is only about the autoscaler doing active work. We will not shut down any servers. Just the cluster-autoscaler will throw an error anytime it tries to scale up your cluster.

Hello 👋
if your account is currently using cluster-autoscaler we will set a flag to your account so cx11 stays available until proper releases of cluster-autoscaler are available. You will get another notification then about the timeline for removal of cx11 from your account and the removal of the temp images.

Am I at risk of having my production servers shutdown?

This is only about the autoscaler doing active work. We will not shut down any servers. Just the cluster-autoscaler will throw an error anytime it tries to scale up your cluster.

Thanks @apricote for the clarification! I made a release with your docker image anyway for now. Just in case someone doesn't upgrade to the new and fixed version once it's out.

Closing since this has been addressed.

Is it possible to update the autoscaler without updating k3s? I'd rather not risk my production system updating to something that may introduce issues, especially with how much changed in the 2.0 update.

Is it possible to update the autoscaler without updating k3s? I'd rather not risk my production system updating to something that may introduce issues, especially with how much changed in the 2.0 update.

I have it on my list to make it possible to set the docker image since we can now configure the URLs of the manifest but not the image. I will do it when I have a bit more time but the Hetzner image seems to work perfectly for me. I tested it a lot between yesterday and today and haven't seen any issues. If you upgrade just make sure you use the very latest version of hetzner-k3s since i fixed an issue with detection of the private network interface in autoscaled nodes.

Is it possible to update the autoscaler without updating k3s? I'd rather not risk my production system updating to something that may introduce issues, especially with how much changed in the 2.0 update.

I have it on my list to make it possible to set the docker image since we can now configure the URLs of the manifest but not the image. I will do it when I have a bit more time but the Hetzner image seems to work perfectly for me. I tested it a lot between yesterday and today and haven't seen any issues. If you upgrade just make sure you use the very latest version of hetzner-k3s since i fixed an issue with detection of the private network interface in autoscaled nodes.

I meant my concern is on updating hetzner-k3s. I'm on version 1.1.5, and version 2.0 has some involved steps necessary for updating. I am concerned about introducing issues with my production system.

If you follow the instructions correctly you should be fine. You could also replicate your current cluster as test cluster and upgrade that one first

If you follow the instructions correctly you should be fine. You could also replicate your current cluster as test cluster and upgrade that one first

There's a lot of steps, that I don't fully understand, that would be easy to screw something up. Even if I manage to do it right on the test cluster, a typo or something could mess up the production cluster when I do that next.
I would rather avoid that risk of messing up my production system...

If you follow the instructions correctly you should be fine. You could also replicate your current cluster as test cluster and upgrade that one first

There's a lot of steps, that I don't fully understand, that would be easy to screw something up. Even if I manage to do it right on the test cluster, a typo or something could mess up the production cluster when I do that next.
I would rather avoid that risk of messing up my production system...

Which steps do you find difficult? Most of it is about adapting the config file. There isn't much to it really

Is hetzner-k3s v2.0.8 using the recently released official patched autoscaler or the temporarily patched version from Hetzner, which they will remove in ~2 weeks?

Is hetzner-k3s v2.0.8 using the recently released official patched autoscaler or the temporarily patched version from Hetzner, which they will remove in ~2 weeks?

At the moment it uses the patched version from Hetzner, docker.io/hetznercloud/cluster-autoscaler:v1.31.0-hcloud1. I will try to switch to the latest version with next release and also make the image configurable if something similar happens in the future, so you can just customize it in the config file.

Got a message today from Hetzner stating that we have less than two weeks left, before the patched images are no more.
"Please switch back to the official image repositories. We will remove the alternative images on 19 November 2024. You will be unable to pull the images after that date."

Got a message today from Hetzner stating that we have less than two weeks left, before the patched images are no more.
"Please switch back to the official image repositories. We will remove the alternative images on 19 November 2024. You will be unable to pull the images after that date."

I have released 2.0.9 which includes a PR from a contributor with the fix.


netbox: 3.2.7 -> 3.2.8

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for netbox is: "IP address management (IPAM) and data center infrastructure management (DCIM) tool"
meta.homepage for netbox is: "https://github.com/netbox-community/netbox"
meta.changelog for netbox is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.2.8 with grep in /nix/store/0ahk269jqayhari25bqrv0jhm30v0bdw-netbox-3.2.8
found 3.2.8 in filename of file in /nix/store/0ahk269jqayhari25bqrv0jhm30v0bdw-netbox-3.2.8

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
netbox

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/0ahk269jqayhari25bqrv0jhm30v0bdw-netbox-3.2.8 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A netbox https://github.com/r-ryantm/nixpkgs/archive/41a517e7bb5bcbaf77ccc13c1449ef5b3e407d6d.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/0ahk269jqayhari25bqrv0jhm30v0bdw-netbox-3.2.8
ls -la /nix/store/0ahk269jqayhari25bqrv0jhm30v0bdw-netbox-3.2.8/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

netbox

Maintainer pings
cc @n0emis @RaitoBezarius for testing.

@n0emis @RaitoBezarius
Is this command output intended?
[nix-shell:~/.cache/nixpkgs-review/pr-186677]$ ./results/netbox/bin/netbox

Type 'manage.py help <subcommand>' for help on a specific subcommand.

Available subcommands:

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    optimizemigration
    runserver
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver
Note that only Django core commands are listed as settings are not properly configured (error: Specified configuration module (netbox.configuration) not found. Please define netbox/netbox/configuration.py per the documentation, or specify an alternate module in the NETBOX_CONFIGURATION environment variable.).

@n0emis @RaitoBezarius Is this command output intended?
[nix-shell:~/.cache/nixpkgs-review/pr-186677]$ ./results/netbox/bin/netbox

Type 'manage.py help <subcommand>' for help on a specific subcommand.

Available subcommands:

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    optimizemigration
    runserver
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver
Note that only Django core commands are listed as settings are not properly configured (error: Specified configuration module (netbox.configuration) not found. Please define netbox/netbox/configuration.py per the documentation, or specify an alternate module in the NETBOX_CONFIGURATION environment variable.).

Yes, if you don't use the nixos-module, no configuration for netbox is present on the system. You'd have to deploy some yourself


Add support for Google Kick Start

What needs to be done
Create a kickStart function in the scraping.js file which returns an array of contest details (next and upcoming rounds) from the Google Kick Start contests page. You can use Axios to get the contest page HTML content and use jsDom to query for the contest details. The contest data should be returned in the following format:
{
    name: 'name_of_contest',
    url: 'link_to_the_contest',
    start: start_time_in_epoch_format,
    duration: duration_in_seconds
}

I would like to work on this if available. Thanks.

@SahilAnower Assigned this to you. Hold off on the submission until 1st of October if you want it to count towards the HacktoberFest 🚀

Shall I use this? @roshan1337d , Many things are already done here, we don't have to brainstorm that much. If you permit, I shall use it.
Kontest API

So far

Used Kontest API

This seems great @SahilAnower but I don't feel right about using a 3rd party api dependance for such a core service. If they stop providing it someday, we would either have to write our own stuff again, or use their codebase which is written with ruby that I have no experience with.

Okay @roshan1337d. I will try that then

@SahilAnower you still on this, right?


Add 930 l/mm lamps

The 930 l/mm grating has 6 spectroscopic modes

Coverage remained the same at 50.773% when pulling cd29f0e9d7f7a8505e8913772c034522ff2f582f on simontorres:add_930_lmm_lamps into afabf53e677fb75e13394195f349491ccbb2e967 on soar-telescope:master.


Configure OIDC prompt and login_hint query parameter for external IdPs

Preflight Checklist

[X] I could not find a solution in the existing issues, docs, nor discussions
[X] I have joined the ZITADEL chat

Describe your problem
Some providers like Ping do not implement prompt=select_account which results in an error. An integration with Ping seems not possible because, ZITADEL send the select_account parameter.
Additionally I might want to control the prompt and login_hint parameter that is being sent to an external IdP.
Describe your ideal solution
As Manager, I want to configure if and what prompt parameter is sent to the external IdP.

Send: yes/no
If yes: send none, login, consent, select_account (https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest)

As Manager, I want to configure if and what value is sent for login_hint to the external IdP.

Send: yes/no
If yes: username, preferred user name, email

Version
No response
Environment
ZITADEL Cloud
Additional Context
https://support.pingidentity.com/s/article/OpenID-Connect-Prompt-Query-parameter
relates to https://github.com/zitadel/zitadel/issues/6521

@hifabienne Is it possible to sponsor this feature?

@hifabienne Is it possible to sponsor this feature?

Hi @nikzen, can you please reach out to Max to discuss this<EMAIL_ADDRESS>

This is also blocking us from using Zitadel using Jumpcloud as an upstream OIDC provider. They do not accept prompt=select_account scope.

Great Solutions

A select list added to UI for PROMPT in the Generic OIDC configuration (which would include "none" as an option, along with the other Prompts per spec.
Official provider(s) for PingOne and Jumpstart (just as there is one for Gitlab, which incidently cannot be used with generic OIDC because of the same problem with prompt).
Support for login_hint in OIDC generic configuration, where a defined empty login_hint would have ultimately desired result of causing openid.WithSelectAccount() to return nil.

Good Solutions
The oidcProvider function at internal/api/ui/login/external_provider_handler.go could be adjusted as follows.  Included are the two providers mentioned in this thread.  The "issuer" url is vendor-specific.  Also demonstrated here is the inclusion of "NO_PROMPT" in the Name of the generic OIDC.
// internal/api/ui/login/external_provider_handler.go
func (l *Login) oidcProvider(ctx context.Context, identityProvider *query.IDPTemplate) (*openid.Provider, error) {
	secret, err := crypto.DecryptString(identityProvider.OIDCIDPTemplate.ClientSecret, l.idpConfigAlg)
	if err != nil {
		return nil, err
	}
	isPingone := strings.HasPrefix(identityProvider.OIDCIDPTemplate.Issuer, "https://auth.pingone")
	isJumpcloud := strings.HasPrefix(identityProvider.OIDCIDPTemplate.Issuer, "https://oauth.id.jumpcloud")
	isNoPromptInName := strings.Contains(identityProvider.Name, "NO_PROMPT")
	// opts := make([]openid.ProviderOpts, 1, 2)
	// opts[0] = openid.WithSelectAccount()
	opts := make([]openid.ProviderOpts, 0, 2)
	if !isPingone && !isJumpcloud && !isNoPromptInName {
		opts = append(opts, openid.WithSelectAccount())
	}
	if identityProvider.OIDCIDPTemplate.IsIDTokenMapping {
		opts = append(opts, openid.WithIDTokenMapping())
	}
	return openid.New(identityProvider.Name,
		identityProvider.OIDCIDPTemplate.Issuer,
		identityProvider.OIDCIDPTemplate.ClientID,
		secret,
		l.baseURL(ctx)+EndpointExternalLoginCallback,
		identityProvider.OIDCIDPTemplate.Scopes,
		openid.DefaultMapper,
		opts...,
	)
}


Redirect myself to the correct lobby screen.

https://github.com/sopra-fs23-group-40/Client/commit/8929941829b4f00b2390cee40f18d2dcc3c034c1


Add CLI for displaying tracks in terminal from specified playlist file

TO DO
Add argument --file -f for specifying of path to playlist file
Handle exceptions FileNotFoundError and AttributeError during encoding detection (raise ClickException)
Add unit-tests

Tested for v2021.4.29 of published package via pipx run
'display' function works,
see screenshot
Close this issue