Global Environment Variables

Hello,
Thank you so much for your helpful articles of using R and Python with Google Sheets. I've been greatly helped by this repo and what you've written. I have a quick question that has more to do with docker, but I haven't been able to find a good solution online.
I would like for a couple variables in my global environment to be built in whenever the package deploys. For example, I have a variable that's a model I've created. I only want to use the predict() function without having to re-create the model each time I hit the API. Is there a way that I can pass along the model that's in the global environment to cr_deploy_run?
I think the issue is that I need to change the FROM in the Dockerfile since it's samterfa/rpysheets right now, but what should I change it to? What does samterfa/rpysheets reference?
Any advice greatly appreciated. Thanks

I'm glad you've found it useful. In retrospect, I really wish I wouldn't have made custom Docker images for people to follow along with so I understand the confusion.
Within your dockerfile, you could replace FROM samterfa/rmlsheets with FROM rocker/ml-verse or even FROM rocker/tidyverse (see Rocker repo).
In your Plumber.R file, any R code or functions you run above the api endpoints themselves will be run on build. This means it will slow down your build but won't slow down a hit of the api.
Here's an example.
#### This section of Plumber.R runs "On Build", or before an api endpoint is hit

# Run "slow" model building code here, and save model "locally".
model <- lm(Sepal.Width ~ Sepal.Length, iris)
readr::write_rds(model, 'iris_model.rds')

#### This section of Plumber.R runs "On Run", or while an api endpoint is hit
#* Predict using a model.
#* @param df The data to predict on.
#* @post /deploymodel
function(df){

  # Read in local model object
  model <- readr::read_rds('iris_model.rds')

  predict(model, df)
}

I'm also a big fan of the pins package, so I would be tempted to use a pinned version of a model (stored in Cloud Storage or elsewhere) if it was something I was iteratively developing. Then instead of live building the model, I would simply read the latest pinned version of the model on build (to not slow down the api endpoint). I could then experiment on my local machine, improve the model, and update the model. Technically then you'd have to rebuild your deployed app on Google Cloud, but I think you can also set deployed apps to rebuild on a schedule.
Let me know if any of that didn't make sense.
Sam

Closing the issue for now. Feel free to reopen if you're still having trouble.


"Unexpected end of data" when extracting tar

Everything works fine until it comes to the final extraction of the tar archive. It is probably corrupted and I have no idea if it is caused by abe.jar or something else. I tried backing up at least 10 times trying with and without the backup password, but I get every time the same result. Extraction of the tar with third party software such as 7zip yields the same.
This is the log of the last stage of the script:
[Wednesday 03/05/2023, 16:34:37] >>> I am in view_extract.extract_ab(is_java_installed=True, is_tar_only=False)
[Wednesday 03/05/2023, 16:34:37] Found "whatsapp.ab" in "tmp" folder. Continuing... Size: 594847464 bytes.
[Wednesday 03/05/2023, 16:34:37] Enter a name for this user (default "user").:
[Wednesday 03/05/2023, 16:34:37] Enter same password which you entered on device when prompted earlier.: ********
[Wednesday 03/05/2023, 16:34:37] Successfully unpacked "tmp/whatsapp.ab" to "tmp/whatsapp.tar". Size:<PHONE_NUMBER> bytes.
[Wednesday 03/05/2023, 16:34:37] >>> I am in view_extract.taking_out_main_files(username=user)
[Wednesday 03/05/2023, 16:34:37] Folder "extracted/" already exists.
[Wednesday 03/05/2023, 16:34:37] Folder "extracted/user" already exists.
[Wednesday 03/05/2023, 16:34:37] Taking out main files in "tmp/" folder temporarily.
[Wednesday 03/05/2023, 16:34:37] unexpected end of data
[Wednesday 03/05/2023, 16:34:37] >>> I am in view_extract.clean_tmp()
[Wednesday 03/05/2023, 16:34:37] Cleaning up "tmp/" folder...
[Wednesday 03/05/2023, 16:34:37] [WinError 32] Impossibile accedere al file. Il file è utilizzato da un altro processo: 'tmp/whatsapp.tar'
[Wednesday 03/05/2023, 16:34:37] >>> I am in view_extract.kill_me(reason=)

My device: Honor View 10 (BKL-L09)
OS: Windows 10

try running with --tar-only, and extract manually

@aditeyabaral the problem seems to come out when extracting msgstore.db, causing it to be corrupted (Unfortunately this is the protagonist file here...). Also, the key doesn't exist in the archive. The extracted .ab file is approximately 5GB in my case, but the resulting tar is only 1.5GB. I'm not sure if this is normal as I have no experience with android backups. My guess is that for some reason the conversion from ab to tar is going wrong, so maybe the problem is with abe.jar... (?)

@Frankprog03 The msgstore.db file is already decrypted, so there is no need for a key actually. The issue is, as you said, the file getting corrupted while converting from .ab to .tar. We will have to wait for @YuvrajRaghuvanshiS to give us a better idea of how to debug this issue.

@aditeyabaral yeah, I know. The key file could have been useful if it had been extracted before the EOF, because then I can easily copy and decrypt msgstore.db.crypt14, which can be read normally.

@Frankprog03 can the script be modified to copy the key file first to the system? Then we can decrypt any of the files later as well. Unfortunately I do not have much idea about backups so I am not sure how accurately this would work.

change
def clean_tmp():
    custom_print('>>> I am in view_extract.clean_tmp()', is_print=False)
    if(os.path.isdir(tmp)):
        custom_print(f'Cleaning up \"{tmp}\" folder...', 'yellow')
        shutil.rmtree(tmp)

to
def clean_tmp():
    pass

in view_extract so that it avoids cleaning the ab file

@YuvrajRaghuvanshiS wow! I will try it as soon as I can. Thanks.

@YuvrajRaghuvanshiS Ok, you solved my problem but it is weirder than expected. I changed the clean_tmp() function to
def clean_tmp():
    pass

and I executed the script to convert the ab with the script you provided. But the script ran with no problems at all. It seems  clean_tmp() somehow conflicted with the conversion but I don't know how. I don't care anymore, though :)
Now I successfully got all the expected files in the extracted folder. Thanks.

It seems it tried to clean to the tmp before it actually finished the unpacking (ab -> tar) and doing that it snatched the ab file from abe.jar, hence the size difference. It works I also don't know why. Anyways I am happy it all worked out for you.

@Frankprog03 Can you plz make a fork of this repo with modified code, so that we non-programmers can also benefit from it.
Thankyou.

@UsamaAshfaq there it is https://github.com/Frankprog03/WhatsApp-Key-Database-Extractor/tree/master
I think this is not and shouldn't be a permanent fix, just a "patch".


Implementing a jitter buffer in the receiver

Implementing a jitter buffer in the receiver

현재 진행 상황 :  677aa14e13f0d910e1844f998dcdb768372c3cc2

적용 완료


add hetzner-k3s

hi again,
since binenv already has a few hetzner specific tools, I think this one is a good fit.
installs k3s into hetzner infra, easier and faster than e.g. terraform:
  hetzner-k3s:
    description: The easiest and fastest way to create production grade Kubernetes clusters in Hetzner Cloud
    url: https://github.com/vitobotta/hetzner-k3s
    list:
      type: github-releases
      url: https://api.github.com/repos/vitobotta/hetzner-k3s/releases
    fetch:
      url: https://github.com/vitobotta/hetzner-k3s/releases/download/v{{ .Version }}/hetzner-k3s-{{ .OS }}-{{ .Arch }}
    install:
      type: direct

Sure ! Would you like to send a PR ?

https://github.com/devops-works/binenv/pull/265


I can't create a public bucket with curl

curl --location --request PUT 'http://localhost:9444/testtest9&noAuth=true' \
--header 'x-amz-acl: public-read-write' \
--header 'Content-Type: text/plain' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<CreateBucketConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
   <LocationConstraint>us-west-1</LocationConstraint>
</CreateBucketConfiguration>'

in aws document x-amz-acl is the access right header for s3, but it's not work?
or something wrong with my command?
Because I'm using the s3blob, so I need to finish the bucket creation after unit test.
s3://test?endpoint=http://<IP_ADDRESS>:9444/s3&s3ForcePathStyle=true&disableSSL=true&region=http://<IP_ADDRESS>:9444/s3

And I don't know how to set the credentials in my s3 url for s3blob

Hello @jianjungki! Thanks for reporting this. Please excuse my super-late reaction. As described here, S3 Ninja does not properly support ACLs.
However, you can check out https://github.com/scireum/s3ninja/pull/219 where I use a non-standard URL to make the bucket public by calling http://<host>/ui/<bucket>/?make-public
I understand that this is not a nice solution, but it works. Unfortunately, we are not able to implement ACL support at this time, but we would happily accept PRs. 😇
Also, I can not provide support for the software tool that you use, I am afraid.

With #222, creation of public buckets will be possible by setting header x-amz-acl: public-read-write. In the AWS S3 SDK, this will look like:
client.createBucket(new CreateBucketRequest(bucketName).withCannedAcl(CannedAccessControlList.PublicReadWrite));


Expose all classes exports at top level

for instance, export  LoaderVolumes instead of Loaders.Volumes.
That allows us to use named imports:
import {LoaderVolumes} from 'ami.js';

otherwise it is pretty chaotic:
import AMI from 'ami.js'

...
const LoaderVolumes = AMI.Loaders.Volumes;

Main benefit will be at compilation time where bundler will only import the required deps (LoaderVolumes) instead of the full package.
1 - ami.js
...
export * from './geometries/Geometries.js';
...

2- geometries.js:
...
export {GeometriesSlice} from './geometries.slice.js';

3- geometries.slice.js
class GeometriesSlice

...

export {GeometriesSlice}

Hello @NicolasRannou, I would love to tackle this. It looks like a lot of manual work but I was thinking about giving jscodeshift a chance for this. What do you think?

@NicolasRannou I was using wrong account in the comment above ;) I'll be working on this one from now on. Please let me know if it's alright.

that'd be great! I didn't know about jscodeshift, please do not hesitate if you have any question!

I actually have a question, Nicolas:
Should make a pull request to the dev branch or master directly? It looks like some sort of gitflow which is a bit confusing to me in this case. Which branch should I apply my changes to first?
Thank you!

To the dev branch!
Thanks @marcinlichwala


[BUG] No Models Indexed

Describe the bug
No models are indexed when running php artisan scout:import. Console does not display anything
To Reproduce
Include a custom Searchable Trait which uses the Scout Searchable Trait
run php artisan scout:import
Expected behavior
Should index models
Additional context
Only happens on v4.0.4
Version
v4.0.4
Laravel 8
scout 8.5
This is the trait included in all of my models

@ametad Any thoughts?

What PHP version?

I am enjoying my holidays now and I need some free time 😄 . So I am looking at this again after 3 januari. Hope you'll understand!

PHP Version 7.4

Here is the logic of determining if the trait is included:
https://github.com/matchish/laravel-scout-elasticsearch/blob/84b65da1cc26f0ead6046a346b92a7f19d94fca4/src/Searchable/SearchableListFactory.php#L147
It does not yet recognizes traits that are included from within traits. That's the problem here I think.

@matchish I am thinking more and more that the old way perhaps is the best way after all. The convenience of not loading the classes maybe not outweigh all trouble in making it work in all scenarios. What do you think?
This was my original problem: #135
I can overcome my problem also with explicitly import the classes by name, like so:
artisan scout:import App\\Model

We can rollback to previous solution for now  reopen #135. And maybe later we'll find more simple solution. Also you can wrap scout:import command to your own command and use the solution you implemented already that cover your needs, and pass finded classes explicitly to command from this package.

And of course no need to do it right now. So enjoy your vacation)

So if someone have the issue please use 4.0.2 for now

We can rollback to previous solution for now, and reopen #135. And maybe later we'll find more simple solution. Also you can wrap scout:import command to your own command and use the solution you implemented already that cover your needs, and pass finded classes explicitly to command from this package.

I am wondering, am I they only one with the problem described in #135? Or otherwise the need finding classes without loading them?
Turning back the changes is fine by me. I thought it would make life easier to be able to use scout:import without arguments to index all searchable models to Elasticsearch. But it is quite a challenge so far... I don't think it makes life easier, anymore 🤣
@matchish What are your thoughts?

We are not alone) https://github.com/algolia/scout-extended/issues/213

Fixed in 4.0.5
https://github.com/matchish/laravel-scout-elasticsearch/pull/152

Fixed in 4.0.5
https://github.com/matchish/laravel-scout-elasticsearch/pull/152

@adrianpaiva1  Feel free to reopen if you still have the issue after update to 4.0.5

@adrianpaiva1  Feel free to reopen if you still have the issue after update to 4.0.5


Update k8s/minikube version pre-reqs

Jenkins job istio.github.io/presubmit passed

Jenkins job istio.github.io/presubmit passed


botched rendering of gerrit side panel

see this screenshot:

also, on the "-1 g" line, maaaaaaany pixels to the right, appears the word "Gerrit".
pasted from the downstream report https://bugreports.qt.io/browse/QTJIRA-306:
When you open an issue with gerrit review pinned (e.g. https://bugreports.qt.io/browse/QTBUG-59298) you can see, that some stuff that Gerrit Plugin is rendering is offset by a gian number of pixels.
Look at the horizontal scrollbar of your browser. Word "Gerrit" will be rendered in some insane length to the right.
It seems that there may be some bug in CSS. This span element that contains words "Gerrit Reviews" has "text-indent: 9999px"

That looks like the CSS is missing an {{overflow: hidden}} CSS rule, for that checkmark.  It appears off to the right because of a {{text-indent: 9999px}} rule.  That is there so that screen-readers can see the text, but modern browsers should render only the checkmark.
I don't know how/when that {{overflow:hidden}} rule got removed, but that would be the fix.


[1.12.2] Clockwork Wings constantly drain Hunger

Forge: <IP_ADDRESS>36
Base: 3.12.1
SteamAgeRevolution: 0.5.1
The Clockwork Wings constantly drain hunger, even if the player doesn't move at all.

Seem to have the opposite issue - I can't get the wings to drain hunger at all. lol

Seem to have the opposite issue - I can't get the wings to drain hunger at all. lol

I was playing on peaceful in my test world. Well done me!

@MasterEnderman Could you test the latest jenkins build and see if you still get this issue? Ta.


No env vars in pre/post tasks

There is a problem with passing env variables to pre/post tasks:
with:
[middleware.task.hostenv]
vars = [
  "AWS_ACCESS_KEY_ID",
  "AWS_SECRET_ACCESS_KEY"
]

variables are correctly forwarded to tasks, but not to pre/post:
example:
tasks:
  - name: process
    run: aws s3 cp /tmp/master.mov s3://bucket/master.mov # will work
    image: amazon/aws-cli:latest
    post:
      - name: upload the final video to minio
        run: aws s3 cp /tmp/master.mov s3://bucket/master.mov # won't work (no AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY)
        image: amazon/aws-cli:latest

Fix: https://github.com/runabol/tork/pull/249


matrix: inconsistent test

The test "extract column from diff widths matrix" is not the same as the test "extract column where numbers have different widths" in problem-specification, as it has multiple spaces in between matrix values, compared to original one-space test.
I don't know how you handle differences in specification and actual exercises, but if it's ok to have them, there should be consistency, as you can have a solution that accounts for multiple spaces in columns but doesn't in rows (as the test for rows "extract row from diff widths matrix" is exactly the same as the one in specification)

Tracks are in principle free to diverge from the canonical data as defined in prob-specs. This is usually only done when a test doesn't fit a track. The exercise should indeed be consistent. Would you be interested in submitting a PR to fix this?

Tracks are in principle free to diverge from the canonical data as defined in prob-specs. This is usually only done when a test doesn't fit a track. The exercise should indeed be consistent. Would you be interested in submitting a PR to fix this?

Sure, I can submit a PR
I guess changing it to match the specification is better, as this way you don't get a non-obvious point of failure for such a simple puzzle

Sure, I can submit a PR
I guess changing it to match the specification is better, as this way you don't get a non-obvious point of failure for such a simple puzzle

Agreed! That would definitely be best.

Agreed! That would definitely be best.


Compile Version not matches

internal/unsafeheader
compile: version "go1.15.3" does not match go tool version "go1.15.2"
runtime/internal/sys
compile: version "go1.15.3" does not match go tool version "go1.15.2"
internal/race
compile: version "go1.15.3" does not match go tool version "go1.15.2"
runtime/internal/atomic
compile: version "go1.15.3" does not match go tool version "go1.15.2"
internal/cpu
compile: version "go1.15.3" does not match go tool version "go1.15.2"
sync/atomic
compile: version "go1.15.3" does not match go tool version "go1.15.2"
unicode/utf8
compile: version "go1.15.3" does not match go tool version "go1.15.2"
unicode
compile: version "go1.15.3" does not match go tool version "go1.15.2"
container/list
compile: version "go1.15.3" does not match go tool version "go1.15.2"
math/bits
compile: version "go1.15.3" does not match go tool version "go1.15.2"
crypto/subtle
compile: version "go1.15.3" does not match go tool version "go1.15.2"
crypto/internal/subtle
compile: version "go1.15.3" does not match go tool version "go1.15.2"
unicode/utf16
compile: version "go1.15.3" does not match go tool version "go1.15.2"
vendor/golang.org/x/crypto/cryptobyte/asn1
compile: version "go1.15.3" does not match go tool version "go1.15.2"
internal/nettrace
compile: version "go1.15.3" does not match go tool version "go1.15.2"
vendor/golang.org/x/crypto/internal/subtle
compile: version "go1.15.3" does not match go tool version "go1.15.2"
runtime/cgo
compile: version "go1.15.3" does not match go tool version "go1.15.2"

I'm currently having the same issue.
┌─[ShadeauxBox@kali]─[~]
└──╼ $go get -u github.com/tomnomnom/httprobe
go: downloading github.com/tomnomnom/httprobe v0.1.2
go: github.com/tomnomnom/httprobe upgrade => v0.1.2
internal/unsafeheader
compile: version "go1.15.4" does not match go tool version "go1.15.2"
internal/cpu
compile: version "go1.15.4" does not match go tool version "go1.15.2"
runtime/internal/atomic
compile: version "go1.15.4" does not match go tool version "go1.15.2"
runtime/internal/sys
compile: version "go1.15.4" does not match go tool version "go1.15.2"
internal/race
compile: version "go1.15.4" does not match go tool version "go1.15.2"
unicode
compile: version "go1.15.4" does not match go tool version "go1.15.2"
sync/atomic
compile: version "go1.15.4" does not match go tool version "go1.15.2"
unicode/utf8
compile: version "go1.15.4" does not match go tool version "go1.15.2"
container/list
compile: version "go1.15.4" does not match go tool version "go1.15.2"
math/bits
compile: version "go1.15.4" does not match go tool version "go1.15.2"
crypto/internal/subtle
compile: version "go1.15.4" does not match go tool version "go1.15.2"
crypto/subtle
compile: version "go1.15.4" does not match go tool version "go1.15.2"
unicode/utf16
compile: version "go1.15.4" does not match go tool version "go1.15.2"
vendor/golang.org/x/crypto/cryptobyte/asn1
compile: version "go1.15.4" does not match go tool version "go1.15.2"
internal/nettrace
compile: version "go1.15.4" does not match go tool version "go1.15.2"
vendor/golang.org/x/crypto/internal/subtle
compile: version "go1.15.4" does not match go tool version "go1.15.2"
runtime/cgo
compile: version "go1.15.4" does not match go tool version "go1.15.2"


Write a C++ program to find volume of a sphere

Description
Write a C++ program to find volume of a sphere
Volume of sphere = 4/3 × π × Radius^3
Radius : 2

Volume : 33.510321638291124

How to contribute

Save the solution in FindVolumeOfASphere.cpp file
Add FindVolumeOfASphere.cpp file in find-volume-of-a-sphere folder

!assign

Hey @Mahak008,
This issue has been assigned to you for more than 15 days.
We are unassigning you from this issue.
If you are still interested in contributing to this issue, please get auto-assigned on the issue by commenting !assign again.
Thanks for your contributions :)

!assign


Update jetpack librealsense installation instructions to reflect the way currently used in ergocub robots

In https://github.com/icub-tech-iit/documentation/blob/98ca2cb07e0d9bc07990d438e15a73b328736e61/docs/icub_operating_systems/icubos/install-librealsense.md?plain=1 we document that the librealsense is installed from source, but on real robot the situation depends on case by case:

ergoCubSN002: installed by source, but there the installation process is different as JetPack 6 is used (docs for that are tracked in https://github.com/icub-tech-iit/documentation/blob/98ca2cb07e0d9bc07990d438e15a73b328736e61/docs/icub_operating_systems/icubos/install-librealsense.md?plain=1)
ergoCubSN001: librealsense is installed from intel official deb packages repo, see https://github.com/IntelRealSense/librealsense/blob/master/doc/installation_jetson.md#4-install-with-debian-packages
ergoCubSN000: I need to check, I will report this.

fyi @martinaxgloria @Nicogene


Test and Confirm that multi-cluster configuration still works.

Write documentation for multi-cluster now that we have the new multi-cluster architecture.


Add image option to SectionBreakType

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 4 committers have signed the CLA.:white_check_mark: mort3za:x: spinn:x: EkaterinaVu:x: phre1You have signed the CLA already but the status is still pending? Let us recheck it.


Kong Custom Plugin: Bad Request 400

Summary
I am trying to create custom plugin and created folders structures as per the documentation.
But I am getting schema exception which I am not able to comprehend
Steps To Reproduce
1.luarocks make *.rockspec
2.export KONG_PLUGINS="bundled,custom-lugin name "
3.kong migrations up
4.kong reload -vv
Additional Details & Logs

Kong version : kong 1.0.2

api.lua:
local endpoints = require "kong.api.endpoints"
local cjson = require "cjson"

local kong               = kong
local credentials_schema = kong.db.test_resources.schema
local services_schema = kong.db.services.schema
local _ = require 'lodash'
return {
  ["/test/resources"] = {
    schema = credentials_schema,
    methods = {
       GET = endpoints.get_collection_endpoint(
              credentials_schema, services_schema, "services"),

      POST = endpoints.post_collection_endpoint(
     credentials_schema, consumers_schema, "services"),
    },
  },

}

daos.lua:

local typedefs = require "kong.db.schema.typedefs"

return {
   test_resources = {
    primary_key = { "id" },
    name = "test_resources",
    endpoint_key = "service_id",
    cache_key = { "service_id" ,"upstream_path","method"},
    fields = {
      { id = typedefs.uuid },
      { created_at = typedefs.auto_timestamp_s },
      { service_id = { type = "foreign", reference = "services", default = ngx.null, on_delete = "cascade", }, },
      { method = { type = "string", required = false, unique = true, auto = true }, },
      { upstream_path = { type = "string", required = false, unique = true, auto = true }, },
      { description = { type = "string", required = false, unique = true, auto = true }, },
      { visibility = { type = "string", required = false, unique = true, auto = true }, },
    },
  },
}

API Error:
{
	"service_id": "e0719757-a52e-48ae-8c9d-1c13c374147a",
	"method": "GET",
	"upstream_path": "https://httpbin.org",
	"description": "description"

}

{
    "message": "schema violation (service_id.id: missing primary key)",
    "name": "schema violation",
    "fields": {
        "service_id": {
            "id": "missing primary key"
        }
    },
    "code": 2
}

Also migrations up is not creating the required table

Hi @hishamhm
I am struggling to get my custom plugin running after migrating to 1.x.x
migrations up is also not taking any new changes
Please assist me getting new dao layer implemented
Also why migrations folder has
```
000_xxx.lua
001_14_to_15.lua
init.lua

{ service_id = { type = "foreign", reference = "services", default = ngx.null, on_delete = "cascade", }, }

The new foreign type is built with support for compound primary keys, and as such, expects the following notations:
form-urlencoded:
service.id="<service-uuid>"

application/json:
{"service": {"id": "<service-uuid>"}

This is documented in the 1.0 Upgrade Path:

All endpoints now use the same syntax for referencing other entities as /routes (for example, "service":{"id":"..."} instead of "service_id":"..."), both in requests and responses.

As well as in the 1.0 Admin API documentation.
In your case, you named your foreign field service_id, and the error message is rightfully telling you to specify service_id.id (use either the form-urlencoded or JSON payload, up to you).

Also why migrations folder has

This is the new structure for migrations. We have yet to update our plugin development guide for now.
Again, we released 0.15 alongside 1.0 with support for all deprecated concepts (these Admin API utilities, the old "API" entity, etc...) for users not willing to update their code. Maybe you should consider it until you can make the jump to 1.0?
Considering this answered for now.

@thibaultcha
I followed the documentation but still migrations up command is not creating any table in postgres database.
After implementing  your changes , I am getting following errors:
2019/02/05 20:16:15 [error] 219#0: *2126 [kong] init.lua:92 ERROR: relation "table_resources" does not exist (13), client: <IP_ADDRESS>, server: kong_admin, request: "POST /rbac/resources HTTP/1.1", host: "localhost:8001"
<IP_ADDRESS> - - [05/Feb/2019:20:16:15 +0000] "POST /rbac/resources HTTP/1.1" 500 42 "-" "PostmanRuntime/7.6.0"

I followed the documentation but still migrations up command is not creating any table in postgres database.

How is your migration written? Did you also reference it in the init.lua file of your migrations/ directory? See for example how the key-auth plugin implements migrations (the init.lua file references existing migrations to run).
Also feel free to post the contents of your actual migration file, so we can better help you. Or follow the example of bundled plugins, such as the one I just linked to. Again, we will be providing documentation for these topics, but if you are not willing to tackle them on your own, feel free to stick to 0.15).
After implementing your changes , I am getting following errors:
Which changes did you implement precisely?

@thibaultcha
I followed the key auth plugin and created migrations folder in following manner
When I run migrations up command nothing happens
When I run kong migrations up --force -vv, I get error related to my plugin
000_base_test.lua
init.lua

init.lua
return {
 000_base_test.lua
}

000_base_test.lua
return {
 postgres = {

    name = "init_test",
    up = [[
      CREATE TABLE IF NOT EXISTS "test_resources" (
        "id" UUID PRIMARY KEY,
        "service_id" UUID   REFERENCES "services" ("id") ON DELETE CASCADE,
        "method" TEXT,
        "upstream_path" TEXT,
        "description" TEXT,
        visibility TEXT default('public'),
        created_at TIMESTAMP WITHOUT TIME ZONE  DEFAULT (CURRENT_TIMESTAMP(0) AT TIME ZONE 'UTC')
      );

    ]],

  },
}

Getting following error:
Error:
/usr/local/share/lua/5.1/kong/tools/utils.lua:584: error loading module 'kong.plugins.test.migrations' from file '/usr/local/share/lua/5.1/kong/plugins/test/migrations/init.lua':
	...ocal/share/lua/5.1/kong/plugins/rbac/migrations/init.lua:2: malformed number near '000_base_test.lua'
stack traceback:

Also for predefined plugins , I am getting following error
command:
kong migrations up --force -vv
Error:
**response-ratelimiting**: 000_base_response_rate_limiting, 001_14_to_15, 002_15_to_10
2019/02/05 20:25:00 [info] migrating core on database 'kong'...
2019/02/05 20:25:00 [debug] running migration: 000_base
2019/02/05 20:25:00 [info] core migrated up to: 000_base (executed)
2019/02/05 20:25:00 [debug] running migration: 001_14_to_15
2019/02/05 20:25:00 [info] core migrated up to: 001_14_to_15 (pending)
2019/02/05 20:25:00 [debug] running migration: 002_15_to_1
2019/02/05 20:25:00 [info] core migrated up to: 002_15_to_1 (pending)
2019/02/05 20:25:00 [info] migrating oauth2 on database 'kong'...
2019/02/05 20:25:00 [debug] running migration: 000_base_oauth2
2019/02/05 20:25:00 [info] oauth2 migrated up to: 000_base_oauth2 (executed)
2019/02/05 20:25:00 [debug] running migration: 001_14_to_15
Error:
/usr/local/share/lua/5.1/kong/cmd/utils/migrations.lua:165: [PostgreSQL error] cluster_mutex callback threw an error: /usr/local/share/lua/5.1/kong/cmd/utils/migrations.lua:146: [PostgreSQL error] failed to run migration '001_14_to_15' up: ERROR: column "api_id" does not exist
stack traceback:
	[C]: in function 'assert'
	/usr/local/share/lua/5.1/kong/cmd/utils/migrations.lua:146: in function </usr/local/share/lua/5.1/kong/cmd/utils/migrations.lua:135>
	[C]: in function 'xpcall'
	/usr/local/share/lua/5.1/kong/db/init.lua:390: in function 'cluster_mutex'
	/usr/local/share/lua/5.1/kong/cmd/utils/migrations.lua:135: in function 'up'
	/usr/local/share/lua/5.1/kong/cmd/migrations.lua:139: in function 'cmd_exec'
	/usr/local/share/lua/5.1/kong/cmd/init.lua:87: in function </usr/local/share/lua/5.1/kong/cmd/init.lua:87>
	[C]: in function 'xpcall'
	/usr/local/share/lua/5.1/kong/cmd/init.lua:87: in function </usr/local/share/lua/5.1/kong/cmd/init.lua:44>
	/usr/local/bin/kong:7: in function 'file_gen'
	init_worker_by_lua:49: in function <init_worker_by_lua:47>
	[C]: in function 'xpcall'
	init_worker_by_lua:56: in function <init_worker_by_lua:54>
stack traceback:
	[C]: in function 'error'
	/usr/local/share/lua/5.1/kong/cmd/utils/migrations.lua:165: in function 'up'
	/usr/local/share/lua/5.1/kong/cmd/migrations.lua:139: in function 'cmd_exec'
	/usr/local/share/lua/5.1/kong/cmd/init.lua:87: in function </usr/local/share/lua/5.1/kong/cmd/init.lua:87>
	[C]: in function 'xpcall'
	/usr/local/share/lua/5.1/kong/cmd/init.lua:87: in function </usr/local/share/lua/5.1/kong/cmd/init.lua:44>
	/usr/local/bin/kong:7: in function 'file_gen'
	init_worker_by_lua:49: in function <init_worker_by_lua:47>
	[C]: in function 'xpcall'
	init_worker_by_lua:56: in function <init_worker_by_lua:54>

@thibaultcha
I have created one issue also #4281  for the same


refactor: #407 refacor the router of activate email

According to Jack's document "From Vue to Next: Hands on Turotial" on Lark, I use dynamic router since userId is a dynamic parameter.

all good.


Accuracy mode repeats queries way too many times for GNMT

In PR #386 , @nvmbreughe mentions that QSL sizes 3003, 1001 sends queries of 3003 samples over and over again. Whereas 3003, 100 works as expected with queries of 100 samples not repeated.
Something fishy is going on.
Marking this one urgent until we determine it is fixed or doesn't affect submission use cases.

Fixed.


Thank you and the question of translation

Hello! Thank you very much for such a program! And a special thank you for distributing it under the license of MIT. I added the program to my site - here's the link.
I am also interested in the question of whether the translation of the program into other languages is planned? I am happy to help translate the program into Russian!

Hi @mrkaban! I am glad that you like the app, Currently I am too busy (exams, work and other stuff) so I haven't been able to work on Permadelete for a while, but I certainly have many big features for the app in my plan. And one of them is supporting other languages. I sincerely appreciate your offer and as soon as the app supports translation, I'll let you know.


[Bug]: [SORRY not related to this plugin] Note might get slower after ~850 lines of inserted html block code

Confirmation

[X] I checked FAQ

The tool/kit where the error occurred
joplin-vscode-plugin
Describe the bug
My md note has an html code block of ~850 lines.
This note starts to fail (or acts really slow) when trying to write anything else, maybe due to the html code block.
screen capture
The gif is actually large, please look until the end. The parts on which nothing is happening is because the editor is not responding.
VScode is still responsive, I think only the plugin is the issue.
Steps to reproduce the behavior

Open a new note on vscode
Add any large html code block of at least ~850 lines.
Try to write any new text with several lines.

The note should became really slow, even trying to save the note it's now really slow. If not, please let me know.
log file
I don't know where to find this log.
Additional context
No response

I'm sorry. It was actually due to the Spell Checker extension.


What does parameters in Action mean?

Hi, thank you for your wonderful work.
In RT-X version of your dataset (NYU Franka Play), I get :
data['steps'][0]['action'] =
array([ 1.3448209e-02, -1.6239583e-03,  5.9485435e-05,  3.2937050e-02,
-2.6911497e-05, -9.7005963e-02,  1.1165179e-03, -4.4397563e-03,
-2.8908253e-04,  8.7654293e-03, -1.6401529e-02,  5.6316584e-02,
-2.3147106e-02,  1.0000000e+00,  0.0000000e+00], dtype=float32)
What do these 15 parameters in 'action' mean?
Great thanks in advance for your help.

Hi there,
Thanks for your interest in our work!
The action dims are:
Joint velocities (7)
EE delta xyz (3)
EE delta rpy (3)
Gripper position (1)
Terminate episode (1)


Some emotes are different speed in Chatterino and on 7TV

Checklist

[X] I'm reporting a problem with Chatterino
[X] I've verified that I'm running the most recent nightly build or stable release
[X] I've looked for my problem on the wiki
[X] I've searched the issues and pull requests for similar looking reports

Describe your issue
Example emote:
https://7tv.app/emotes/625637c15c62fecb05d639b9
Fast on 7TV, slow in Chatterino.
Screenshots
in chatterino: https://i.imgur.com/VnM0OYi.gif
OS and Chatterino Version
Chatterino 7.3.5 Windows 10 64bit

Interesting, what was the original emote you uploaded?

We've been adjusting playback speeds since https://github.com/Chatterino/chatterino2/pull/3506, could be related to this issue in some way.

@VulpesHD is this still the case?

@VulpesHD is this still the case?

Yes, I'm on the most recent build.


Inheritance creating child tables

       public class Product
    {
        public string Name { get; set; }
        public int Qty { get; set; }
        public decimal Price { get; set; }

    }
    public class CartItem : Product
    {
        public int CartItemId { get; set; }

        public string CartId { get; set; }
    }
    public class OrderLine : Product
    {
        public int OrderLineId { get; set; }

        public int OrderId { get; set; }
    }

    public class Kititem : Product
    {
        public int KititemId { get; set; }

        public int OrderId { get; set; }
    }

    public class SampleContext : DbContext
    {
        public DbSet<CartItem> CartItems { get; set; }
        public DbSet<OrderLine> OrderLines { get; set; }
        public DbSet<Kititem> Kititems { get; set; }
    }

As you can see in this I am not including the parent class Product in the DbContext, and when doing the migrations it creates a table for each derived class with all the properties form the parent class, and it does not create the parent class because is not included in the Dbcontext, for me it was what I was exptecting and is working, and I am happy with it so far
Mi question is if that is a bad practice and maybe I am not using ef core Inheritance the way I can take all the advantages ?
I am confuse and want to start a new project and do it the best way, so I don't have to redo it again
And last thing, I don't know if to put this here because is not en issue is more of a question,  should I put it in stackoverflow instead ?

@longinos10 There are advantages and disadvantages of mapping the base type explicitly into the model. Typically, it needs to be in the model if:

There is a need to query for all entities that extend the base type; that is you want use the base type directly in queries
Other parts of the model reference the base type directly, as opposed to only referencing the derived types.

If you don't need these things, then it usually makes sense to leave the base type not mapped (as in your example above) because it allows greater flexibility in the database layout. Once you map the base type, then everything will collapse down into one TPH table.


Verify Primary fs is mounted on GUI node during initialisation and volume creation

Summary of Changes
Check if Primary filesystem is mount on GUI before creating fileset in initialisation and volume creation
Following checks are added
1.During initialisation

Primary filesystem is mounted on Primary Cluster GUI
Primary filesystem is mounted on Remote Cluster GUI

During volume Creation

Primary Filesystem is mounted on Primary cluster GUI
Volume filesystem is mounted on Primary cluster GUI
Volume filesystem is mounted on Remote Cluster GUI if volume type is fileset and volume filesystem is remotely mounted

Unit Tests

Try CSI Driver deployment with primary fs unmount on GUI(single cluster + remote cluster setup)
Try CSI Driver deployment with primary fs mounted on GUI((single cluster + remote cluster setup))
Try volume creation when primary filesystem unmounted on GUI node
Try volume creation when volume filesystem is unmounted on GUI node
try volume creation when remoteFs is unmounted on GUI node of remote cluster

Documentation Updates
NA
Upgrade Considerations
NA
Linked Issues
fixes #140

How are we checking the node where FS is mounted?
Mount Status is returned as MOUNTED if filesystem is mounted on GUI Node which is queried.

@Jainbrt @gandhisanjayv : Waiting for your approval to merge this PR for release v2.0.0.


Cannot click out of character select

The top part of the character select is no longer clickable in the MegaHup.

This recently regressed.

Fixed:
https://user-images.githubusercontent.com/35926530/184382675-149f99e9-13d7-40bd-8499-bfb447916af1.mp4


Workspace reorder

moved main crate (atuin) to be on the same level with other crates
extracted common deps to workspace definition, so it would be easier to avoid having same multiple dependencies with slightly different versions (base64 was an example)
slight fix to base64 usage, to comply with deprecation warning from v0.21

As a nice side-effect, cargo test/cargo nextest run now runs tests from all the crates in a workspace, compared to the main crate only, as before :)
What do you think?

https://github.com/ellie/atuin/pull/868/commits/993e60f8dea81a1625a04285a617959ad09a0866 this commit updates deps and fixes chrono deprecations. It added a bunch of unwraps, but in each case – previously the code would also panic in the same conditions, it's just more obvious now :)
Aside from that – zero meaningful changes

You can revert the last commit as we'll be going with #806 soon

You can revert the last commit as we'll be going with https://github.com/ellie/atuin/pull/806 soon

Great! Reverted :)


Add "Hello world" in Clojure programming language.

Can you assign this to me?

Hi! @agnilondapakou, I can add "Hello" in  Clojure programming language. Can you please assign this to me.

Sir, this problem is still unsolved can you please assign the issue to me

Can you assign this to me? I would like to work on this issue.


[VS Code] Cannot read property 'setShareState' of null

ls.zip

Error:
Cannot read property 'setShareState' of null
Steps to Reproduce:

Version Data

extensionName
VSLS

extensionVersion
0.3.623

protocolVersion
2.2

applicationName
VSCode

applicationVersion
1.26.1

platformName
Linux

platformVersion
4.15.0-33-generic

@krmichelos This issue has been resolved in the latest Live Share release, so if you update the extension, you should be unblocked 👍 Let us know if you run into any other issues. Thanks!


typed Generics possible?

I know this is likely fringe, but is this even possible?
#[derive( Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "fltkform", derive(FltkForm))]
pub struct Config<T:Copy
                 + Default
                 + AddAssign
                 + Add<Output = T>
                 + Div<Output = T>
                 + DivAssign
                 + Mul<Output = T>
                 + MulAssign
                 + Neg<Output = T>
                 + Rem<Output = T>
                 + RemAssign
                 + Sub<Output = T>
                 + SubAssign
                 + std::cmp::PartialOrd> {
    /// Identification Number
    pub id:T,
    pub cost:T,
    pub amount:T,
}

It should be implementable, never done it before though. But currently it won't work.

:open_mouth: That would be cool if it was possible.  Is there a way the end user can easily create their own?  Could one just make an impl for anything they choose?  If this is the case, simply documenting that process would address this issue in the future for most other future errors with types not existing, and people could just send you their impl which you could decide if it is good enough, or worth including.
Part of my goal as you probably can tell is to remake the "character-maker" program and make it work with rpgstat, and this will eventually make it into "Rust Hero" as the interface to configure the actual things.
Oh, I just thought of another use case:
Someone wants only non-editable *Output rather than *Input.  Is there a way to choose this?  I think some may want to use it only to display things, like a "manifest"  where they could just go from file to file and not mess it up, but copy things to paste elsewhere if they need.
Thanks for being into making this, I find this possibility so fascinating and almost endless!
When it is all done you can say character-maker uses this :smiley_cat:  as the way to generate the interface.  And eventually Rust Hero as well.

You, you could just impl FltkForm for any type of your choosing, then return a Box::new(some_widget).
I've added a new trait method, fn view(), which basically allows viewing (without modifying the generated gui):
let form = my_struct.view();

or using the form widget:
let form = Form::default().from_data_view(my_struct);

That means, if you would like, you'd have to implement both methods of FltkForm (generate and view).

Ok here is where I am getting stuck:
error[E0119]: conflicting implementations of trait `FltkForm` for type `std::vec::Vec<_>`
   --> fltk-form/src/lib.rs:395:1
    |
301 | / impl<T> FltkForm for Vec<T>
302 | | where
303 | |     T: FltkForm,
304 | | {
...   |
326 | |     }
327 | | }
    | |_- first implementation here
...
395 | / impl<T:Copy
396 | |     + Default
397 | |     + AddAssign
398 | |     + Add<Output = T>
...   |
426 | |     }
427 | | }
    | |_^ conflicting implementation for `std::vec::Vec<_>`

Basically how do I do <T:NumbersOnly> to avoid this issue?

BTW I had to make a <T> with + Neg<Output = T> and one without out it, which removes all the f64,f32,...,u8 code.
Is there a "primitive numbers only" derive?

There are no such derives or bounds in the standard library. There is a crate called num which provides such bounds and numeric traits.

num is the reason I am even able to do a Generic Type stat library (rpgstat) :smile: It is very handy!
How can you differentiate between a vector and any other comparable type?  What does a vector need that numbers do not?

Vecs (and other collections) implement the Iterator trait, so it might be used as a trait bound.

I have been on the Rust chat channel and cannot come up with a good solution for this.  As far as I can tell it is not fully possible to do what I want, as Vectors continue to interfere with numbers trait bounds.  The workaround that "works" (read: compiles) is this:
pub trait Primitive {}

macro_rules! primitive {
    ($($type:ty),*) => {
        $(impl Primitive for $type {})*
    }
}

primitive!(i8, u8, i16, u16, i32, f32, i64, f64, isize, usize);
//...
impl<T:Copy
    + Primitive
    + Default
    + Debug // could use Display {} instead
    + num::NumCast> FltkForm for T {
    fn generate(&self) -> Box<dyn WidgetExt> {
        let mut i = input::FloatInput::default();
        let val = format!("{:?}", *self);
        i.set_value(&val);
        unsafe {
            i.set_raw_user_data(transmute(1_usize));
        }
        Box::new(i)
    }
    fn view(&self) -> Box<dyn WidgetExt> {
        let mut i = output::Output::default();
        let val = format!("{:?}", *self);
        i.set_value(&val);
        unsafe {
            i.set_raw_user_data(transmute(1_usize));
        }
        Box::new(i)
    }
}
//...

But it still fails with vectors when using with rpgstat:
error[E0599]: the method `generate` exists for struct `Vec<u32>`, but its trait bounds were not satisfied
    |
154 |     pub lines:Vec<u32>,
    |         ^^^^^ method cannot be called on `Vec<u32>` due to unsatisfied trait bounds

The doc test for fltk-form it also fails for the same reasons.
I may have to give up on this idea....

@MoAlyousef I am trying to impl FltkForm manually for MyStruct<f64> since that would be FLTK's main primitive numeric value.
I tried to mimic your code in Vec to make a group:
   fn generate(&self) -> Box<dyn WidgetExt> {
        let mut g = group::Pack::default();
          g.set_spacing(5);
          //repeat numerous times for "things"
          let mut  thing = self.thing.generate();
          thing.set_align(enums::Align::Left);
          thing.set_size(w.w(), 30);
        g.end();
        Box::new(g)
    }

Using:
fn main () {
    use std::fs;
    use std::fs::File;
    use std::io::BufReader;
    use std::io::prelude::*;
    let app = app::App::default().with_scheme(app::Scheme::Gtk);
    app::set_background_color(222, 222, 222);
    let mut win = window::Window::default().with_size(400, 300);
    // substitute Things for real struct name
    let my_struct = Things::<f64>::default();
    let mut grp = group::Scroll::default()
        .with_size(300, 200)
        .center_of_parent();
    // inside group
    let form = my_struct.generate();
    grp.end();
    let mut btn = button::Button::default()
        .with_label("print")
        .with_size(80, 30)
        .below_of(&grp, 5)
        .center_x(&grp);
    win.end();
    win.show();
    while app.wait() {
       win.redraw();
    }
}

But this does not function properly as it does with manual items. What am I missing to close this issue?

The macro expands in cases of structs roughly like this:

#[derive(Debug, Clone)]
pub struct MyStruct<T> {
    a: T,
    b: f64,
    c: String,
}

impl<T: Copy + Default + FltkForm> MyStruct<T> {
    pub fn default() -> Self {
        Self {
            a: T::default(),
            b: 3.0,
            c: String::new(),
        }
    }
}

impl<T: Copy + Default + FltkForm> FltkForm for MyStruct<T> {
    fn generate(&self) -> Box<dyn WidgetExt> {
        let mut p = group::Pack::default()
            .with_label(&format!("{}", "MyStruct"))
            .with_align(fltk::enums::Align::Left | fltk::enums::Align::Top);
        p.set_spacing(5);
        let mut i = self.a.generate();
        if unsafe { !i.raw_user_data().is_null() } {
            i.set_align(fltk::enums::Align::Left);
            i.set_label("a");
        }
        let mut i = self.b.generate();
        if unsafe { !i.raw_user_data().is_null() } {
            i.set_align(fltk::enums::Align::Left);
            i.set_label("b");
        }
        let mut i = self.c.generate();
        if unsafe { !i.raw_user_data().is_null() } {
            i.set_align(fltk::enums::Align::Left);
            i.set_label("c");
        }
        p.end();
        let parent = p.parent().unwrap();
        p.resize(
            parent.x() + (parent.width()/2), parent.y() + parent.h() / 9, parent.width() / 3, (3 * 30 + 5 * 3) as i32
        );
        p.auto_layout();
        Box::new(p)
    }
    fn view(&self) -> Box<dyn WidgetExt> {
        let mut p = group::Pack::default()
        .with_label(&format!("{}", "MyStruct"))
        .with_align(fltk::enums::Align::Left | fltk::enums::Align::Top);
        p.set_spacing(5);
        let mut i = self.a.view();
        if unsafe { !i.raw_user_data().is_null() } {
            i.set_align(fltk::enums::Align::Left);
            i.set_label("a");
        }
        let mut i = self.b.view();
        if unsafe { !i.raw_user_data().is_null() } {
            i.set_align(fltk::enums::Align::Left);
            i.set_label("b");
        }
        let mut i = self.c.view();
        if unsafe { !i.raw_user_data().is_null() } {
            i.set_align(fltk::enums::Align::Left);
            i.set_label("c");
        }
        p.end();
        let parent = p.parent().unwrap();
        p.resize(
            parent.x() + (parent.width()/2), parent.y() + parent.h() / 9, parent.width() / 3, (3 * 30 + 5 * 3) as i32
        );
        p.auto_layout();
        Box::new(p)
    }
}

So does this mean I have to add FltkForm as a constraint for T everywhere?  Is there a way to add things to a Generic type based on features, perhaps using cfg_attr like when using derive?  I sure did find the most edge use case possible :smiley:
Thanks for being so thorough in your answer, I see that the limitations are very real and I may have been too optimistic about what was possible to do, unless I can change T based on features, is that something possible?  I don't think it is myself, but I am still learning.

You only need to constrain T to FltkForm if you want to call generate on it, otherwise rustc will error out saying no method generate was found for T. You can use features to define types with different members, generics etc, you’ll have to duplicate them however under cfg(feature) annotations. Rust’s generics have limitations with macros unfortunately. Like fltk::widget_extends! macro can’t be used with generic structs.

Due to all the limitations imposed by using FLTK in Rust wrappers + the limitations of generics + the limitations of macros = Not possible to do exactly what I was trying to.
So on one hand the answer is still technically yes, though I am not sure if it would work for my generic.
I am going to simply use the library in the least fringe use case in rpgstat.  I will just have specific FLTK only versions.
I am working on it currently over on a test project creature_math_fighter
I think I will close this issue, as it is documented well here for anyone who wants to attempt something similar.


Clean tut#5,6,7 functions of project.py

I am not sure what these six functions (inside the project processor) do. Can we remove them?

I am not sure what they do either.

get_team_name is not used anywhere, so I think it should be save to remove
get_ml_data: we also have a different function with this name in server_utils, which is used in tutorial 5. But this one in project.py is not used.
process_image: not used
prepare_movies: not uses
Check_frames_uploaded: Not used, in project.py we do call t_utils.check_frames_uploaded, which does not exist. and we do define a check_frames uploaded in zooniverse_utils, which is used inside the zooniverse_utils. So this one in project.py we can remove and we should check which one the t_utils should be, if it should reverse to the one in zooniverse_utils or not.

So I think we can remove them all, and should only look for check_frames_uploaded which function the t_utils.check_frames_uploaded should be.
This is a mistake that pylint should have detected, and for unknown reason it does not. See issue 241

The new pylint implementation in MR #181 fixes the issue of that check_frames_uploaded from t_utils was not recognised as an error!

@victor-wildlife @Diewertje11 Feel free to remove those methods which are not called. They were probably part of skeleton code that I wanted to fill earlier but never got around to removing.


Metal performance seems not better than OpenGL in iOS

Describe the bug
I tried iOS sample hello-gltf app，
metal-backend gpu frame time is 7.5 ms, while opengl-backend gpu frame time is 6.8ms.
the rendering time of opengl is also shorter than that of metal  in instrument->GamePerformance.
To Reproduce
Steps to reproduce the behavior:
just change backend, both of them "build configuration" choose release.
Expected behavior
metal performance better than opengl
Screenshots

Desktop (please complete the following information):

OS: iOS
Backend: [Metal/OpenGL]

Smartphone (please complete the following information):

Device: iphone 11
OS: 13.7

What are you rendering? With a scene with not many draw calls and mostly shader bound there's no reason for Metal to be faster if you look at vertex/fragment processing time on the GPU.

Also note that as long as you are under 16ms the GPU is probably not clocked as high at it can be, so exact timings are not really comparable.

I re-used a glb with 980018 vertices and 100011 faces on iphone 7 for test. And I enabled bloom, AmbientOcclusion, and fxaa. The result still seems to be that metal is not faster than opengl, and even the cpu usage rate of metal is 42%. , OpengGL is only 17%.
I tested it in  iOS hello-gltf sample, the Screenshot below is the code I changed.

glb link: https://drive.google.com/file/d/1xwKpoiMxDfhLc8lMpknbA7w-VZRkrgvg/view?usp=sharing
hello-gltf sample link: https://drive.google.com/file/d/1FT5adwJNCW1LU4CxTnKVUdrl2liO1934/view?usp=sharing

For this use case, there's no reason for Metal to be faster than GL on the GPU. CPU usage should/could be the same or better though, looks like we have improvements to make.

Is it convenient to give an example Metal is faster than GL?

Is it recommended to use opengl instead of metal even in iOS?

There are a handful of optimizations I'm working on to improve both CPU and GPU performance for Metal. You're welcome to use OpenGL, though the goal is to eventually remove support for it on Apple platforms.

I would not recommend using the opengl backend on iOS (not macos) because we're planning to remove support soon.
Also when doing performance comparisons you need to also look at other factors like GPU/CPU clocks. Sometimes, when some code is more optimized it runs slower but at a lower power usage. As long as rendering happens in less than the vsync rate, there is no problem.
And finally, there is no reason for metal to be significantly faster or slower than gl, it's the same GPU in the end.

There are a handful of optimizations I'm working on to improve both CPU and GPU performance for Metal. You're welcome to use OpenGL, though the goal is to eventually remove support for it on Apple platforms.

Could you share your optimization idea in details? How much improvement could we expected, and in which scenarios we can expect big improvements, and how soon is the optimization expected to be completed?

It won't be significantly faster than gl.
What kind of improvement are you hoping for?

This issue is a year-old and a bit vague, so closing. We do have some Metal-specific improvements in the pipeline, including using argument buffers to reduce CPU encoding time.


project update and some improvements

-improve tests
-Django 1.10 fixes
-don't fail if both "queryset" and "get_queryset" are defined
-usage in project tests to README
-check response statuses

Resolved conflicts and merged into master, thanks!
We're now only supporting Django 1.7+, so one or two things were left out.


Rename specs.Devices to specs.Device

This change renames the type specs.Devices to specs.Device as the intent
is to represent a single device. This improves the redability of the
Devices slice which how has the type []Device and not []Devices.
Signed-off-by: Evan Lezar<EMAIL_ADDRESS>

cc @RenaudWasTaken
Note, this is probably a breaking change for integration with Podman. I can create a follow-up PR to do the rename there too (possibly waiting for the permission corrections from @bart0sh).


fix/MD/XL-9780 migration test generator wrong function case

Task XL-9780

Codecov Report
Attention: Patch coverage is 0% with 11 lines in your changes missing coverage. Please review.

Please upload report for BASE (refactor/MD/XL-8668-extend-apiato-custom-generator-command-loading@cc1dd1b). Learn more about missing BASE report.

Files with missing lines
Patch %
Lines

src/Generator/Traits/FormatterTrait.php
0.00%
10 Missing :warning:

src/Generator/Commands/MigrationGenerator.php
0.00%
1 Missing :warning:

Additional details and impacted files
@@                                         Coverage Diff                                          @@
##             refactor/MD/XL-8668-extend-apiato-custom-generator-command-loading     #33   +/-   ##
====================================================================================================
  Coverage                                                                      ?   4.48%
  Complexity                                                                    ?     869
====================================================================================================
  Files                                                                         ?      98
  Lines                                                                         ?    3097
  Branches                                                                      ?       0
====================================================================================================
  Hits                                                                          ?     139
  Misses                                                                        ?    2958
  Partials                                                                      ?       0

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Improve Documentation

When first trying homer there were two things that were slightly annoying:

the code example didn't work out of the box
I had to download multiple nltk files in iterations without knowing how many

Sorry I am replying late. Thank you for spotting this and fixing it @fkarg.
One last request, if possible, can you kindly add a new section named "Contributors" in the Read me file and add your name to it?
Thank you in advance. I will merge it promptly, promise :)


Re-initialize the unknown token vector for npz distributed on S3 by default

Description
We currently distribute some pre-trained embeddings on with pre-initialized unknown token. This is known and a workaround has been implemented. Currently the workaround treats the unknown token and vector loaded from the npz file as correct, even if the user specifies a special initialization function, instead of re-initializing it.
The reasoning was, that for some embeddings the unknown token vector in the npz file may actually be valuable and shouldn't be overwritten. However, this was not a good default behavior. With this PR, the unknown vector from the npz will only be preserved if init_unknown_vec=None.
Note this only affects embeddings distributed by us on S3.
Thanks @garima3292 for reporting this issue.
Checklist
Essentials

[X] Changes are complete (i.e. I finished coding on this PR)
[X] All changes have test coverage
[X] Code is well-documented

Changes

[X] Fix init_unknown_vec ignored for some pretrained embeddings.

Job PR-228/5 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-228/5/index.html


ldump.require

[ ] Can cause issues with == when serializing metatables, that were defined as module's upvalue instead of module's field. Investigate.

See branch 2.0-ldump-require


Fixed #28741 -- Removed unnecessary leading dot from cross-domain cookie examples.

https://code.djangoproject.com/ticket/28741

@mxsasha, do you have an opinion on this change in light of your past research?

I'd say this should be fine.
RFC 2109 was published in 1997 and states:

An explicitly specified domain must always start with a dot.

RFC 2965 obsoleted 2109 in 2000, and states:

If an explicitly specified value does not start with a dot, the user agent supplies a leading dot.

RFC 6265 obsoleted 2965 in 2011, and states:

Note that a leading %x2E ("."), if present, is ignored even though that character is not permitted.

So this is only an issue for browsers that follow cookie behaviour from before 2000. I think we can safely ignore that. However, including the leading dot is still allowed.

Thanks for the summary!


dependencies for conda package testing

Now opencv and tensorboard are not official dependencies, make sure they are available for the conda tests. This is part of the followup to #198 (conda not installing nicely), specifically PRs #202 and #205 which removed them as deps.

(I have put the new packages on anaconda and removed the old ones.)


Modified Espressif build badge to include multiple Espressif Dev boards

The new badge now looks like this:

BUG=

@advaitjain I will check this. To achieve this, I think, composite actions might help.

Hi @advaitjain please check the updated MR.
For ESP, I now use reusable actions to gather board building under single ci.yml

Is this still something you would like to merge? I'm closing but feel free to reopen.

@advaitjain the change is definitely needed. I will rebase and reopen the PR.

Hi @advaitjain please re-open the MR and take the change. Thanks.

I can't reopen this PR. Can you please create a new one? Thanks.

I can't reopen this PR. Can you please create a new one? Thanks.

@advaitjain done! https://github.com/tensorflow/tflite-micro/pull/1403


Failed to upgrade k3s using rancher from v.18.10 to v1.19.3

My original k3s version was v1.18.10, and then I used the upgrade on the rancher interface, the target version was v1.19.3, but it failed. The log is as follows

and the events is as follows

the node system is as follows

What should I do

This should probably be a Rancher issue, although I believe they've fixed it. What version of Rancher are you using?

This should probably be a Rancher issue, although I believe they've fixed it. What version of Rancher are you using?

Hi , the rancher version is 2.5.1

This appears to be a duplicate of https://github.com/rancher/rancher/issues/25991

@myzhuh what OS is this on? May be related to https://github.com/rancher/k3s-upgrade/commit/1df5c3592fcaa9103489086b6a55f4267bdeaae8#commitcomment-40300740

@myzhuh what OS is this on? May be related to rancher/k3s-upgrade@1df5c35#commitcomment-40300740 although your screenshot suggests Ubuntu 20.04?

Hi，Are you asking about the operating system of the host where Rancher is located? Is CentOS 7.8, and the k3s cluster is Ubuntu 20.04.1。

@myzhuh what OS is this on? May be related to rancher/k3s-upgrade@1df5c35#commitcomment-40300740 although your screenshot suggests Ubuntu 20.04?

This is the log of the queried pod upgrade, which may be helpful.
kubectl describe po apply-k3s-master-plan-on-xa-master-150-with-a8249459eb5ed-44sph -n cattle-system
Name:         apply-k3s-master-plan-on-xa-master-150-with-a8249459eb5ed-44sph
Namespace:    cattle-system
Priority:     0
Node:         xa-master-150/<IP_ADDRESS>
Start Time:   Mon, 02 Nov 2020 11:36:29 +0800
Labels:       controller-uid=4350e59c-6c2f-40a7-9ba4-55751bb9f709
job-name=apply-k3s-master-plan-on-xa-master-150-with-a8249459eb5ed-29b9e
plan.upgrade.cattle.io/k3s-master-plan=a8249459eb5ed229a113d4c6ec280c44125523cdbc5e5f6888887549
upgrade.cattle.io/controller=system-upgrade-controller
upgrade.cattle.io/node=xa-master-150
upgrade.cattle.io/plan=k3s-master-plan
upgrade.cattle.io/version=v1.19.3-k3s1
Annotations:
Status:       Failed
IP:           <IP_ADDRESS>
IPs:
IP:           <IP_ADDRESS>
Controlled By:  Job/apply-k3s-master-plan-on-xa-master-150-with-a8249459eb5ed-29b9e
Init Containers:
drain:
Container ID:  docker://f3b3f5052f1e5157c57f9be20d303d4b518c38b0e61d6a80265a22ba26343833
Image:         rancher/kubectl:v1.18.0
Image ID:      docker-pullable://rancher/kubectl@sha256:468e924fb0e33e8e9700944ecca4ad89fa8c5b080b55936c44974bb880470ae0
Port:
Host Port:
Args:
drain
xa-master-150
--pod-selector
!upgrade.cattle.io/controller
--ignore-daemonsets
--delete-local-data
--force
State:          Terminated
Reason:       Completed
Exit Code:    0
Started:      Mon, 02 Nov 2020 11:36:38 +0800
Finished:     Mon, 02 Nov 2020 11:37:42 +0800
Ready:          True
Restart Count:  0
Environment:
SYSTEM_UPGRADE_NODE_NAME:             (v1:spec.nodeName)
SYSTEM_UPGRADE_POD_NAME:             apply-k3s-master-plan-on-xa-master-150-with-a8249459eb5ed-44sph (v1:metadata.name)
SYSTEM_UPGRADE_POD_UID:               (v1:metadata.uid)
SYSTEM_UPGRADE_PLAN_NAME:            k3s-master-plan
SYSTEM_UPGRADE_PLAN_LATEST_HASH:     a8249459eb5ed229a113d4c6ec280c44125523cdbc5e5f6888887549
SYSTEM_UPGRADE_PLAN_LATEST_VERSION:  v1.19.3-k3s1
Mounts:
/host from host-root (rw)
/run/system-upgrade/pod from pod-info (ro)
/var/run/secrets/kubernetes.io/serviceaccount from system-upgrade-token-dlp9r (ro)
Containers:
upgrade:
Container ID:   docker://e1d7584ef66069b4dc9b0830ad9dde01f42d77bc10ee906bb195af47bb398c3d
Image:          rancher/k3s-upgrade:v1.19.3-k3s1
Image ID:       docker-pullable://rancher/k3s-upgrade@sha256:14e4c9bfadd5239a71ed2815ba5378f47e730a5b3d846c16c45bab5db78d4ad1
Port:
Host Port:
State:          Terminated
Reason:       Error
Exit Code:    1
Started:      Mon, 02 Nov 2020 11:37:51 +0800
Finished:     Mon, 02 Nov 2020 11:37:51 +0800
Ready:          False
Restart Count:  0
Environment:
SYSTEM_UPGRADE_NODE_NAME:             (v1:spec.nodeName)
SYSTEM_UPGRADE_POD_NAME:             apply-k3s-master-plan-on-xa-master-150-with-a8249459eb5ed-44sph (v1:metadata.name)
SYSTEM_UPGRADE_POD_UID:               (v1:metadata.uid)
SYSTEM_UPGRADE_PLAN_NAME:            k3s-master-plan
SYSTEM_UPGRADE_PLAN_LATEST_HASH:     a8249459eb5ed229a113d4c6ec280c44125523cdbc5e5f6888887549
SYSTEM_UPGRADE_PLAN_LATEST_VERSION:  v1.19.3-k3s1
Mounts:
/host from host-root (rw)
/run/system-upgrade/pod from pod-info (ro)
/var/run/secrets/kubernetes.io/serviceaccount from system-upgrade-token-dlp9r (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
host-root:
Type:          HostPath (bare host directory volume)
Path:          /
HostPathType:  Directory
pod-info:
Type:  DownwardAPI (a volume populated by information about the pod)
Items:
metadata.labels -> labels
metadata.annotations -> annotations
system-upgrade-token-dlp9r:
Type:        Secret (a volume populated by a Secret)
SecretName:  system-upgrade-token-dlp9r
Optional:    false
QoS Class:       BestEffort
Node-Selectors:
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
node.kubernetes.io/unschedulable:NoSchedule
Events:
Type     Reason            Age    From               Message

Warning  FailedScheduling  9m56s  default-scheduler  0/3 nodes are available: 1 node(s) didn't match pod affinity/anti-affinity, 1 node(s) didn't satisfy existing pods anti-affinity rules, 2 node(s) didn't match node selector.
Warning  FailedScheduling  9m56s  default-scheduler  0/3 nodes are available: 1 node(s) didn't match pod affinity/anti-affinity, 1 node(s) didn't satisfy existing pods anti-affinity rules, 2 node(s) didn't match node selector.
Normal   Scheduled         9m46s  default-scheduler  Successfully assigned cattle-system/apply-k3s-master-plan-on-xa-master-150-with-a8249459eb5ed-44sph to xa-master-150
Normal   Pulling           9m46s  kubelet            Pulling image "rancher/kubectl:v1.18.0"
Normal   Pulled            9m39s  kubelet            Successfully pulled image "rancher/kubectl:v1.18.0"
Normal   Created           9m39s  kubelet            Created container drain
Normal   Started           9m38s  kubelet            Started container drain
Normal   Pulling           8m34s  kubelet            Pulling image "rancher/k3s-upgrade:v1.19.3-k3s1"
Normal   Pulled            8m26s  kubelet            Successfully pulled image "rancher/k3s-upgrade:v1.19.3-k3s1"
Normal   Created           8m26s  kubelet            Created container upgrade
Normal   Started           8m25s  kubelet            Started container upgrade

As 1.18 and 1.19 are both EOL, I'd close this out for now, but if the issue is persisting with latest versions please do re-open this!


Why do we believe making mayCancel false as a default is at all backward-compatible?

This breaks every piece of code in the world that currently does e.preventDefault(). Why do we think this is OK?

I don't think this is anyone's intention. I guess you're saying that if the third argument is missing, it should be treated like the default dictionary values { capture: false, mayCancel: false }, while the current behavior is { capture: false, mayCancel: true }?
Ways around this:

Prose says that if the third argument is boolean, the listener's may cancel flag will be true.
Invert name and meaning of mayCancel so that false is also the current default.
A new function name.

There's also https://github.com/RByers/EventListenerOptions/issues/21 casting some doubt on whether overloading the third argument will be web compatible.

Hmm, I hadn't considered 1. It is pretty crazy though. Overall I would prefer 2.

leads to a double negative which can be confusing to understand. But maybe it is just me...

ie; you could call it willNotCancel
And then the default is false.

No, negative argument names are a confusing anti-pattern.
We either need to come up with a positive name of the opposite meaning, or leave it as it is, with prose making it clear that the default dictionary value (true) is used by default when the dict isn't passed.

The fundamental issue here is that we have two notions of "default".  One is what we want the behavior to be for developers opting-in to the new API form but not specifying mayCancel explicitly, and one is what we need the behavior to be for code unaware of the new API form.  I.e. why do we think the "default" behavior for the existing API should be the same as the "default" behavior for a new API form?
I don't think we want to invert the meaning because when the developer has opted into the new API we still want mayCancel=false to be the default behavior (#17).
If we consider the boolean form of addEventListener to be legacy, is it really that weird to say that it sets up an EventListenerOptions with mayCancel=true for legacy compatibility reasons?  I'll try to specify this precisely as part of #19.  Any objections?

It is weird to say that addEventListener(s, f) is different than addEventListener(s, f, {}). Very, very weird.

Idea of sorts...

mayCancel -> passive.

aEL(s, f) // passive = false
aEL(s, f, {}) // passive = false
aEL(s, f, {capture:false}) // passive = true

Once you start using the dictionary the default flips.

 aEL(s, f, {}) // passive = false
 aEL(s, f, {capture:false}) // passive = true

this is bizarre.

I'm not sure what the motivation here is anyway for making mayCancel false the default. It is to save characters so you can type {} instead of { mayCancel: false }? Why do we want to encourage that kind of obtuse coding?

@domenic No, I imagine it's so that you automatically opt into the "better" model if you're using the newer API variant.  (Legacy code continues to use the legacy behavior.)  Most code isn't trying to cancel anything, and as we add optimizations for non-cancelling events of various types, it's better if most stuff automatically works better.
This does mean that, right now, without very many options in the dictionary, there may be code that just does aEL(..., ..., {}) just to opt into the new API, which is indeed weird and not worth encouraging, but I also don't think it's something to fear or worth objecting to.
(I might call the new option cancelable rather than mayCancel to describe the behavior of the event rather than the programmer.)

this is bizarre.

Agree that making the behavior change based on whether some keys are in the dictionary or not is bizarre and unwanted.  You also need to hack around WebIDL by specifying the type as any and handling the dictionary in prose; using IDL properly won't let you do this bizarre behavior.

using IDL properly won't let you do this bizarre behavior

Euhm yes it would. You just don't define defaults. Mutation observers does something like this. Where the state of some fields depends on others to make the API more convenient to use.

I've written the spec as discussed.  I think it works, but I don't love it.  Let's discuss further in #17.


Update Venezuelan bolivar alphabetic code

The Central Bank of Venezuela is carrying out a re-denomination of their local currency, with the entry into circulation of the BOLIVAR SOBERANO, effective June 4 2018.
The alphabetic code needs to be updated from VEF to VES.
Fixes #25

Closing for now till we have confirmation that the re-denomination has taken place.


Feature request : create setter for lastscanned

My use case is I am using mobile_scanner on an iPad to check in users with key fobs that have a bar code.  Allow duplicates = false works perfectly but my situation needs the ability for occasional duplicates as one of the membership options is to buy punches that allow them to use one card(same barcode) for 4 family members to come in and use the facility.
There is a secondary screen that will show on successful recognition of a valid barcode.  Upon returning from that screen, I would like to set the lastScanned value to a number we don't use or even barcode.rawValue to a number we don't use.
I see lastScanned in MobileScanner class and I see other created issues where setting barcode.rawValue was an option at one point.  barcode.rawValue is a final variable so I can't change that (Flutter 3+) and if lastScanned is accessible, I'm not seeing that.
My feature request is to make either of those accessible so that I have the option to allow a certain type of user to scan the same barcode again with a manual set of lastScanned upon return from the secondary screen while keeping the allow duplicates = false intact.

That's certainly needed feature. In my use case I do want to keep allowDuplicates=false behavior, but after successful scan show some result screen and allow user to go back and scan again (the same QR code).
It would be easily achievable if lastScanned can be reset manually.
Related: https://github.com/juliansteenbakker/mobile_scanner/issues/58

The whole duplicates function has been refactored. Please see https://github.com/juliansteenbakker/mobile_scanner/blob/5ebc65e96e8de7224e3a7265d388a8d5d00ee3fd/lib/src/mobile_scanner_controller.dart#L59


default namelist settings for CESM driver need to be updated

Currently in the CESM driver, some of the default namelist settings need to be updated:

FULL_ENERGY - default should be always be TRUE
NODES - default should be 10 since we rarely run with 50 thermal nodes
filenames - current default is fluxes, we should use vic.ha for daily means or vic.hmm for monthly means to be consistent with CESM naming conventions
default variable outputs - some variables that we need for diagnostics are missing, such as turbulent heat fluxes, surface temperature and radiation variables

Closed via #800


deep.html test doesn't work in safari (sometimes)

See travis build - it fails around 50% of cases. Currently test is disabled on safari

cc @warpech @miyconst please take a look on this - you have macs

This was not a problem since many months. Archiving


Adds workflow for manylinux wheel creation.

🎉 New feature
Pairs with https://github.com/maliput/maliput_infrastructure/pull/315
:exclamation: Do not Merge yet! WIP
Summary

Adds a workflow for manylinux2014-compatible wheel creation of maliput_malidrive

Checklist

[x] Signed all commits for DCO
[ ] Added tests
[ ] Added example and/or tutorial
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] Consider updating Python bindings (if it affects the public API)

CI is passing. PR ready to review @agalbachicar


in india this is becoming very popular

after release of netflix series "Sacred Games" tiwaribachjayega which translate to "only tiwari will survive"
please add it.

@arpitansu added, thank you very much for your contribution!


JWT for object level permission & Discussion tab

Hi,
I understand that this library is not for authentication, but for authorization.
So, after a successful login and getting the access token, can we also use this library to associate a user to an object?
Or to verify that only the owner user can change his own objects ? (lets say posts)
And If so, what is the recommended way?
In other words I thinking how to implement this:
class IsOwnerOrReadOnly(permissions.BasePermission):
    """
    Custom permission to only allow owners of an object to edit it.
    """

    def has_object_permission(self, request, view, obj):
        # Read permissions are allowed to any request,
        # so we'll always allow GET, HEAD or OPTIONS requests.
        if request.method in permissions.SAFE_METHODS:
            return True

        # Write permissions are only allowed to the owner of the snippet.
        return obj.owner == request.user

But using 'simplejwt'. I noticed that request contains the following:
'_user': <User: liora>, '_auth': {'token_type': 'access', 'exp':<PHONE_NUMBER>, 'iat':<PHONE_NUMBER>, 'jti': 'ef471a0dd43d47f9b77d6569020eb2d1', 'user_id': 1}
So maybe to use those attributes ?
Would like to hear any suggestions.
P.S-
Maybe its a good idea to open a discussion tab for these kind of questions?
Thanks!

Hi,
I think on this:
class IsOwnerOrReadOnlyJWT(permissions.BasePermission):
    """
    Custom JWT permission to only allow owners of an object to edit it.
    """

    def has_object_permission(self, request, view, obj):
        # Read permissions are allowed to any request,
        # so we'll always allow GET, HEAD or OPTIONS requests.
        if request.method in permissions.SAFE_METHODS:
            return True

        jwt_authenticator = JWTAuthentication()
        data = jwt_authenticator.authenticate(request=request)
        if data:
            user, token = data
            if user and user.id == request.user.id == obj.owner_id:
                # Write permissions are only allowed to the owner of the object.
                return True

        # If wasn't safe method or authenticate as the owner of the object - reject.
        return False

like to hear opinions, Thanks!

Hi @Andrew-Chen-Wang, even if authentication isn't the main goal of this library, do you think a section in the docs with an example would be a good idea? My use case doesn't require oauth and a simple extra permission does the job. I also think adding the discussions tab is a good idea. A lot of the issues aren't really issues, but people asking how to do X or Y.

Happy to review a new doc section with multiple examples. Might be helpful to link to examples written in the code base instead of the docs, and embed the code.
Also happy to open Discussions tab. @jazzband/roadies are the only ones with power to do so.

Hi! Great approach, and I think that's a great custom solution. I think if you want an authentication battery included package, you should take a look at django-oauth-toolkit which will come with its own claims.
I also think that, with JWTs, you could simply add claims to your JWT rather than performing backend checks for resources for everything. Some things require permissions, such as at the object level like what can the current user see, but that should be at view level.

I will take a look at django-oauth-toolkit ,thanks!
Can you elaborate about "simply add claims to your JWT" ?
(Sorry for the delay, had some home-assignments / interviews)

the internet is async, so nw!
jwts have public claims and private payloads. Feel free to read the docs to see how to set each.

Didn't understand how it could replace the above.
Or you meant to do this check in the views? (It will be DRY?)

Either is fine, serializer is preferred. Doc page: https://django-rest-framework-simplejwt.readthedocs.io/en/latest/customizing_token_claims.html


kamal app exec disregard the --destination option

Seems to me, that the -d / --destination option won't work with the kamal app exec command.
Scenario:
I have a stage destination with the same containers on a different server.
I wanna connect to a specific container with the following command:
# Connects to the default server
kamal app exec -i --reuse bash -d [CONTAINER_NAME] -r web

# Connects to the default server too
kamal app --destination stage exec -i --reuse bash -d [CONTAINER_NAME] -r web
kamal app -d stage exec -i --reuse bash -d [CONTAINER_NAME] -r web
kamal app exec -d stage -i --reuse bash -d [CONTAINER_NAME] -r web

My mistake, everything works fine!
Instead of
kamal app --destination stage exec -i --reuse bash -d [CONTAINER_NAME] -r web

I should have used
kamal app exec -i --reuse bash -d [CONTAINER_NAME]-stage -r web


Property React doesn't exist

Hi first of all hats off to your effort. this is an amazing work. I tried this with my project but it threw the following error:
error app ReferenceError: Property 'React' doesn't exist

This error is located at:
    in BottomTabs (created by App)
    in Unknown (created by App)
    in NVScene (created by Scene3)
    in Suspender (created by Freeze)
    in Suspense (created by Freeze)
    in Freeze (created by Scene3)
    in Scene3
    in Scene$1 (created by PopSync2)
    in PopSync2 (created by NavigationStack)
    in NVNavigationStack (created by NavigationStack)
    in NavigationStack (created by App)
    in NavigationHandler5 (created by App)
    in RCTView (at View.js:108)
    in View (created by Container2)
    in Container2 (created by EventProvider)
    in EventProvider (created by App)
    in RNGestureHandlerRootView (created by GestureHandlerRootView)
    in GestureHandlerRootView (created by App)
    in App (at renderApplication.js:57)
    in RCTView (at View.js:108)
    in View (at AppContainer.js:106)
    in RCTView (at View.js:108)
    in View (at AppContainer.js:133)
    in AppContainer2 (at renderApplication.js:50)
    in Tarana(RootComponent) (at renderApplication.js:67), js engine: hermes

Please have a look at it and please let me know if is there anything that i am doing wrong. I have followed the setup guide as well

Hi, @afkcodes.
In development version(current alpha), jsx transform options weren't configured yet.
You can avoid this error with add React variable to your .jsx, .tsx files like this.
// AS-IS
import { useState } from 'react';

// TO-BE
import React, { useState } from 'react';

If you want to check it before build, add eslint rule to your project.
// eslintrc.js
{
  files: ['*.jsx', '*.tsx'],
  rules: {
    'react/react-in-jsx-scope': 'error',
  },
}

However, a new jsx transform feature has been announced on React 17 and currently supported by Babel, Typescript, ..etc.
In additional, esbuild also supports for jsx transform and I plan to support auto import for jsx soon.

Thank @leegeunhyeok  will surely add this and let you know.  You are amazing

https://github.com/leegeunhyeok/react-native-esbuild/commit/c17e1c6bd0065fa443a07139ddaf8f167b16bf73
Release as 0.1.0-beta.13 soon.


Add optional gutter-y argument in make-row mixin

Fixes #31136.
Usage:
@include make-row(); // same as before, gutter-x default value, gutter-y default value
@include make-row(2rem); // same as before, gutter-x override 2rem, gutter-y default value
@include make-row(2rem, 1rem); // new, gutter-x override 2rem, gutter-y override 1rem
@include make-row($gutter-y: 1rem); // new, gutter-x default value, gutter-y override 1rem

Thanks for your feedback, I added the examples.

If $grid-gutter-vertical is the way to go (fine to me), perhaps we should rename $grid-gutter-width to $grid-gutter-horizontal? But that would be a breaking change.
Also, the CSS variables are --#{$variable-prefix}gutter-x and --#{$variable-prefix}gutter-y.
width / height vs horizontal / vertical vs x / y vs mix of two?

Yeah I'm not sure about the wording at all! height will be the default IMHO, but I'd like another eye on this :)

@ffoodd @mdo Do you know if this PR will be merged for the next release?

Thank you for believing in me.
On Tuesday, August 16, 2022, Florian Lacreuse @.***>
wrote:

@ffoodd https://github.com/ffoodd @mdo https://github.com/mdo Do you
know if this PR will be merged for the next release?
—
Reply to this email directly, view it on GitHub
https://github.com/twbs/bootstrap/pull/35674#issuecomment-1216292963,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHORFC7YPEL6JRP7OLFL3JDVZNE2JANCNFSM5LUBJCWQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

We might need to wait since you're suggesting a rename of an existing parameter. That could be a breaking change, even if it's the only parameter right now.

I was suggesting a rename of the variable $grid-gutter-width only if you guys don't want to use "height" keyword for the new variable $grid-gutter-height.
To resume, 3 possible outcomes:

Merge current PR, and keep $grid-gutter-width and  $grid-gutter-height in future major versions.
Merge current PR, and rename both (for consistency) $grid-gutter-width and  $grid-gutter-height in future major version.
Hold PR and wait for next major version, if you don't want to release this fix with the name  $grid-gutter-height.

I was referring to the renamed $gutter parameter in the mixin :). I'm planning on some renamed variables in v6 for clarity (like switching from gutter to gap).

Oh right, my bad. Ok let's wait for v6. Thanks!


Incomplete C++ Support

Add (incomplete) C++ support to PYSON in the form of a standard library map of string to pysonObject (contains string, float, int, vector).
Kind of implements all of the read functions of the original Python library in one function? If it's not valid, it won't be parsed into a map, and you can retrieve data from the map.
One major difference (that I was too lazy to fix): duplicates won't cause a load failure, they simply won't be added.
I do still have to add a parallel to write and probably fix the duplicate load failure disparity, but this PR is a good start. Okay maybe not a good start whatsoever but it's something and thats what matters i guess kind of.

Closing my PR in favor of @CoolSchnoodle's personal implementation. The implementation defined in this PR will not be used for JoshEngine.


SW: Rev H Updates

[x] Update port and pin mappings for Rev. H
[x] Separate RTC/SD and Accelerometer into separate SPI buses
[ ] Write LSM6DSOX IMU drivers (and pass-through to LIS3MDL)
[ ] Integrate IMU data retrieval into workflow
[x] Store/retrieve Node ID into UICR registers
[ ] Initialize STM using retrieved Node ID
[ ] Store timestamp into RTC if not valid at startup
[x] Make Rev. H the Makefile default

nRF will now check that the first two bytes of the UICR-stored Device ID are c0:98. If this check fails, then the device ID has not been properly set and stored in UICR, and the device will notify the user of an error via the buzzer "unhappy error" sound.

If absolutely no device in a network has a valid timestamp, then ranging is pointless. As such, if a device starts up with no valid timestamp, it will not advertise its presence, but it will scan for other devices. If another device exists that does have a valid timestamp, the first device will request the correct timestamp over a BLE characteristic, after which it will set its own RTC clock, then start advertising/operating as normal. In such a way, only devices with valid timestamps will be able to initiate creation of a network or share their times with other nearby devices.


Bump the engine version to 8.7.4

Something on this change turned off output when running CI pipelines, which leads to failures when running pipelines 😢 (depending on how those are setup of course)


Update to deCONZ 2.05.80

The problem

Hello.
Is the upgrade to deCONZ 2.05.80 planned? This release adds support for a lot of new devices and adds deduplication of clusters which might fix one specific Heiman relay/switch.
Additionally, is there any documentation for manually building and testing the addon with a different deCONZ version?
Environment

Add-on with the issue: deCONZ
Add-on release with the issue: 6.2.3
Last working add-on release (if known): N/A
Operating environment (OS/Supervised): HassOS 5.1

Problem-relevant configuration

N/A

Traceback/Error logs

N/A

Additional information
N/A

I have been informed, that 2.05.80 isn't ready for HA integration due to disabled Phoscon firmware update feature. We'll have to wait for a future release then.

Furthermore, it is a pre-release/beta and not available as a final release.


Allows scheduler and jobs to extend management interface

The work pool template provides a management interface for setting configuration variables and controlling the service.  There are two data structures that define commands and fields.
The managementOptions structure contains mgtCommand and Fields.  The latter being a list of strings.  The managementInit() method initializes the managementOptions in the dispatcher configuration.  Management commands are executed by the ProcessManagementRequest() methods.
Several changes need to happen for this work.
The templateScheduler.go and templateJob.go need to add interfaces for:
[ ] Adding commands
[ ] Adding fields
[ ] Processing fields
[ ] The httpScheduler.go and httpJob need to implement those methods
The templateDispatcher.go needs
[ ] Extend management, mgtCommand structure, with an invocation type: internal, scheduler, job
[ ] Call the commands and fields interfaces during initialization adding responses to managementOptions
[ ] Extend ProcessManagement Request to call the correct interface or handle internal commands

Moved to Issue #64 in roadctl, https://github.com/pavedroad-io/roadctl/issues/64