Error when creating a telegram bot

I used bos telegram and entered the api key that the BotFather gave me and received this output
this is version 9.4.1
$ bos telegram

connecting_to_telegram:
  (empty array)
? Enter Telegram bot API key [hidden]
(node:472477) UnhandledPromiseRejectionWarning: TypeError: Object.fromEntries is not a function
    at Object.compactOptions (/usr/local/lib/node_modules/balanceofsatoshis/node_modules/telegraf/lib/core/helpers/compact.js:11:19)
    at new ApiClient (/usr/local/lib/node_modules/balanceofsatoshis/node_modules/telegraf/lib/core/network/client.js:208:26)
    at new Telegram (/usr/local/lib/node_modules/balanceofsatoshis/node_modules/telegraf/lib/telegram.js:7:1)
    at new Telegraf (/usr/local/lib/node_modules/balanceofsatoshis/node_modules/telegraf/lib/telegraf.js:45:25)
    at asyncAuto.initBot (/usr/local/lib/node_modules/balanceofsatoshis/telegram/start_telegram_bot.js:183:15)
    at runTask (/usr/local/lib/node_modules/balanceofsatoshis/node_modules/async/auto.js:227:13)
    at readyTasks.push (/usr/local/lib/node_modules/balanceofsatoshis/node_modules/async/auto.js:167:31)
    at processQueue (/usr/local/lib/node_modules/balanceofsatoshis/node_modules/async/auto.js:177:13)
    at taskComplete (/usr/local/lib/node_modules/balanceofsatoshis/node_modules/async/auto.js:193:9)
    at result (/usr/local/lib/node_modules/balanceofsatoshis/node_modules/async/auto.js:220:17)
    at /usr/local/lib/node_modules/balanceofsatoshis/node_modules/async/internal/onlyOnce.js:12:16
    at inquirer.prompt.then (/usr/local/lib/node_modules/balanceofsatoshis/telegram/start_telegram_bot.js:124:54)
    at process._tickCallback (internal/process/next_tick.js:68:7)
(node:472477) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:472477) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

You need to update your node version, version 12 or higher is required


Add Type Hints to all public funcs

Type Hints can provide static type checking and help developers avoid getting wrong result when they running the code.
This Pull Request aims to add Type Hints to all public functions, internal functions are not included.
By the way, I found that lots of code in this project is not correctly formatted, they could decrease the readability. I will open another PR and try to use black, which is a popular code formatting tool, to format all our codes.

It seems that all test failed on one object named ABCMeta? What's is it?

It seems that all test failed on one object named ABCMeta? What's is it?

I think it is caused by https://github.com/pywebio/PyWebIO/pull/501#discussion_r1014806524
See also https://stackoverflow.com/questions/59955751/abcmeta-object-is-not-subscriptable-when-trying-to-annotate-a-hash-variable

It seems the Github PR web UI don't have a "adopt all suggestions" button, so feel free to commit thoses suggestions one by one by using the "commit suggestions" button. I will make a squash merge to merge this PR.

I will change some Type Hints of args from Any toOutput, because they should accept return values of put_xxx() funcs.

Thanks a lot


CommonJS support

Since the package is on NPM, it would be nice if module.exports were utilized if available -- currently require('geolocator') returns undefined.

+1 for this

Yes please. This is default expected behaviour for packages on NPM.

Thanks. Ok.
This will be implemented in the next release.

+1

+1

This is implemented in v2 (released).
Thanks.


Facing problem after deploying it's not downloading the file it's opening the file

On click it's opening the file instead of downloading it, wrong suggest here

@srujzs any idea on this

Did you set download attribute?

Yes, tried multiple ways but local it's working after deploying it's opening the file instead of downloading @ykmnkmi

Can you share a minimal repro of what you're attempting?


Permision denied when change GPU clock rate in Nvidia Jetson TX1

I have a Nvidia TX1 development kit which I've installed ubuntu 16.04 using JetPack-L4T-3.1-linux-x64.run (in full installation mode) on it.
The installation procedure are based on the following link: [ http://docs.nvidia.com/jetpack-l4t/2_1/content/developertools/mobile/jetpack/jetpack_l4t/2.0/jetpack_l4t_install.htm ]
I wanted to test its GPU performance for our application but since its clock is set to the minimum value which is 76800000 HZ I can't get enough performance out of it.
I've read in this link [ https://stackoverflow.com/questions/41146835/changing-the-gpu-clock-rate-on-a-linux-like-system-nvidia-jetson-tx1 ] how to change the value of GPU when permission denied happens. but none of them works for my linux ! Is there any hope for changing the clock speed of the GPU on this board ?
It is worth mentioning that instead of having this path for changing clock rate
/sys/kernel/debug/clock/override.gbus/rate
I have this path:
/sys/kernel/debug/clk/override.gbus/clk_rate
So you can see I don't have any clock folder or rate file ! I can see different options for gpu clock rate in this file: /sys/kernel/debug/clk/gbus/clk_possible_rates
Thanks

You normally have to run jetson_clocks.sh script with sudo.  Do you still get the permissions errors with sudo?
Note that some of the entries may not be there on all platforms, for example TX1 doesn't have clustering.  However, you should still be able to verify the GPU maximum clock frequencies for example have been increased.

Thank you.
I run jetson_clocks.sh with no option and has been solved my problem.
I read this script to find that how to changed GPU'clock_rate, I see this script change GPU_MIN_FREQ to GPU_MAX_FREQ and GPU_CUR_FREQ automatically changed to max value.
when I directly change "/sys/devices/57000000.gpu/devfreq/57000000.gpu/cur_freq" to set max value, I get permission denied.
why I can't change this file directly?

After running jetson_clocks.sh I run my code but I see execution time bas been changed to half preview value, whereas GPU_clock_rate has been changed from 76800000(min_value) to 998400000(max_value).
when I use from GPU(Nvidia GTX 1060) Instead of CPU (Core i7 6600) in another system, the execution time is faster 8X.

when I directly change /sys/devices/57000000.gpu/devfreq/57000000.gpu/cur_freq to set max value, I get permission denied.

Use su to cat the new value to sysfs nodes.  Otherwise you get permission denied.

I know that use su to edit that file, so I login as root user in shell. but I get permission denied error.
why the execution time is not faster 2x ?
I expected the code execution time to be about 13 times faster because the frequency has been changed about 13 times higher.

The maximum frequency has been changed, but the governor still needs to ramp up.  Did you run the benchmark multiple times after attaining maximum frequency?

Yes, I run it multiple times and get the same result.


Enable tf.size() for SparseTensor

Added an override for tf.size(), that takes care of SparseTensor objects as well. Added tests and verified locally. This partially addresses #1968.

Can one of the admins verify this patch?

Jenkins, test this please.

@ebrevdo Is there something I need to do here? I mean apart from the rebase.

@siddharth-agrawal I took a quick look and left a few minor comments.  Let's wait for Eugene's thought on the returned dtype.

@ebrevdo Could you comment on @concretevitamin's comment on dtype?

Jenkins, test this please.

Merged into master. Thanks.


Add sample data

Coverage increased (+0.07%) to 89.63% when pulling 02f1aba975478f37cb74abd4cd35e71c6856c830 on arturs68:add_sample_data into eb435467b92ab5423a2ff253d69b4366b54f20db on CS2103AUG2017-T12-B1:master.

Coverage increased (+0.07%) to 89.63% when pulling 2ead2411a8ce4086735edcbde1483f9cb61f0f5f on arturs68:add_sample_data into eb435467b92ab5423a2ff253d69b4366b54f20db on CS2103AUG2017-T12-B1:master.


Added timeout configs and variables to aws_eks_cluster resource

PR o'clock
Description
Added timeout configs to the aws_eks_cluster resource.
Test Result
I set the timeouts to 1m to test for failure (could not test timeout for more than default time since it is unpredictable when it would happen). Here are the results:
1 error(s) occurred:
TestEKS 2018-10-02T12:32:30-04:00 command.go:100:
TestEKS 2018-10-02T12:32:30-04:00 command.go:100: * module.test_eks_module.module.eks.aws_eks_cluster.this: 1 error(s) occurred:
TestEKS 2018-10-02T12:32:30-04:00 command.go:100:
TestEKS 2018-10-02T12:32:30-04:00 command.go:100: * aws_eks_cluster.this: timeout while waiting for state to become 'ACTIVE' (last state: 'CREATING', timeout: 1m0s)

README.md Changes
I tried to update README.md using terraform-docs and the given lines of code, but that ended up erasing the whole file for me. So I added in the new variables manually.
Checklist

[x] terraform fmt and terraform validate both work from the root and examples/eks_test_fixture directories (look in CI for an example)
[ ] Tests for the changes have been added and passing (for bug fixes/features)
[x] Test results are pasted in this PR (in lieu of CI)
[ ] Docs have been updated using terraform-docs per README.md instructions
[x] I've added my change to CHANGELOG.md
[ ] Any breaking changes are highlighted above

I think it might be best if you merge master into this branch before going much farther - it looks like your branch is off of https://github.com/terraform-aws-modules/terraform-aws-eks/commit/b6f6a823524c9e887a1c0f5a7bf441c328781e02, and there have been a number of changelog additions since then. (which is causing the merge conflict)
I like the change though! I've certainly run into the create timeout before.
Re: README.md, what version of terraform-docs (and go, and the os...) are you running? I just tried generating the docs again with this set of commands:
go get -u github.com/segmentio/terraform-docs
terraform-docs md ./ | cat -s | tail -r | tail -n +2 | tail -r > README.md

and had no differences.

Hey @laverya !
I synced up my fork with master and resolved the merge conflict.

Thanks @RGPosadas, README.md should also be updated to reflect the new var names.

I updated README.md!
Also re: README.md, had to change tail -r to tac and it worked.

Thanks for your first contribution @RGPosadas!
I just fixed the travis error in master, could you rebase so we can get it to pass? Thanks!


[EOSD-727] adding support for 1.15 and updating cni

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

revert back to 1.15.10 - i dont see 1.15.11 yet -
aws-okta exec production -- aws s3 ls s3://amazon-eks
    echo "Account IDs to build images for: ${utils.jsonify(config.accountIds)}"
INFO[0001] Requesting MFA. Please complete two-factor authentication with your second device

source_ami_owners ?=<PHONE_NUMBER>04
Touch the flashing U2F device to authenticate...
  ==> Touch accepted. Proceeding with authentication
                           PRE 1.10.11/
                           PRE 1.10.13/
                           PRE 1.10.3/
                           PRE 1.11.10/
                           PRE 1.11.5/
                           PRE 1.11.8/
                           PRE 1.11.9/
                           PRE 1.12.10/
                           PRE 1.12.7/
                           PRE 1.12.9/
                           PRE 1.13.11/
                           PRE 1.13.12/
                           PRE 1.13.7/
                           PRE 1.13.8/
                           PRE 1.14.6/
                           PRE 1.14.7/
                           PRE 1.14.8/
                           PRE 1.14.9/
                           PRE 1.15.10/
                           PRE cloudformation/
                           PRE manifests/


Should machida-side partition function fail when it receives a single byte, instead of a bytestring?

Currently the behaviour is that machida routes everything to the same state, which creates bad data/state.
Decision needed:
When it receives a single byte from the partition function, does Machida:

fail
put the byte in an array and treat is an Array[U8]
something else?

After messing around with stuff in an interpreter, me and @aturley came up with the following as our solution for now:
--- a/machida/lib/wallaroo/__init__.py
+++ b/machida/lib/wallaroo/__init__.py
@@ -293,7 +293,10 @@ def _wallaroo_wrap(name, func, base_cls, **kwargs):
     elif base_cls is Partition:
         class C(base_cls):
             def partition(self, data):
-                return func(data)
+                ret = func(data)
+                if isinstance(ret, int):
+                    return chr(ret)
+                return ret

Notes:

chr behaves the same in both python3 and python2
It is possible to get an int back in python2, if the data object from which a user is selecting a single index position is a bytearray (e.g. mutable bytestring!)
in python3 selecting a single index from a bytearray returns a byte... aka an int.
this is slower than doing the same thing in c. In the next phase of the project, when we tackle performance, this is something we might want to look into, if we think it's an issue. Partition functions are very likely to be in the hot path, so it might be worth keeping in mind. However, partition functions being in the hot path could also mean this is something we can tell users they should be aware of upfront if they really want to squeeze performance out of python: e.g. return a slice of size 1 my_text[0:1]


[modify] stabilize specs up by replacing wait_for_ajax with wait_for_js_ready

Coverage remained the same at 83.99% when pulling e479f0eecaa6bc0cfcce9aef56f38304b7c0312d on pr-stabilize-spec into 8417c83337d054605477dce4d49f5f307bb3edef on master.


cigien: Watch jbimmigration.com

cigien requests the watch of the watch_keyword jbimmigration\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

jbimmigration\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by tripleee in Charcoal HQ


Issue #1 - Missed renaming the CRC_Sensors class, though the file nam…

Missed a class rename when I changed the file names. Similar pull request in the Library Module. You can delete this branch on merge.

Thanks Arajoo!


Users created via "attach" should have limited permissions.

When we generate a new Postgres user during the flyctl postgres attach process, the user is currently getting superuser privileges.   We should instead be scoping the user's permissions to the specified database.

Should be addressed with this merge: https://github.com/superfly/flyctl/pull/646


Macro Expansion Bug

MESSY_PAD(3) is expanded to uint3 padVar11 but it should be uint3 padVar14.

Can confirm this is a problem. It appears to be taking __LINE__from the macro definition rather than from the macro expansion point.

I can try to take this one. It would be helpful to get a sense of timeline and/or urgency.

For me it is not very urgent.  I currently use something like PAD(number, LINE) as a workaround instead of PAD(number).

Developer breakage, Q2 low, Q3 medium


Update vagrant to 2.0.1

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

@shoichiaizawa have you suffered the following issue when updated your vagrant version to 2.0.1?
https://github.com/hashicorp/vagrant/issues/9136
I suffered unfortunately... What I'm doing:

voting that issue +1 there
reverting my vagrant to v2.0.0
applying manually the patch listed on https://github.com/hashicorp/vagrant/issues/9090

And that solves the problem for me. Evidences:
a) v2.0.0 unpatched
$ vagrant up --provider=virtualbox

The provider 'virtualbox' that was requested to back the machine
'default' is reporting that it isn't usable on this system. The
reason is shown below:

Vagrant has detected that you have a version of VirtualBox installed
that is not supported by this version of Vagrant. Please install one of
the supported versions listed below to use Vagrant:

4.0, 4.1, 4.2, 4.3, 5.0, 5.1

A Vagrant update may also be available that adds support for the version
you specified. Please check www.vagrantup.com/downloads.html to download
the latest version.

b) v2.0.1 (installed via your pr)
$ vagrant version
/opt/vagrant/embedded/lib/ruby/2.4.0/rubygems/specification.rb:17:in `require': dlopen(/opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle, 9): no suitable image found.  Did find: (LoadError)
	/opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle: malformed mach-o image: load command #17 length (0) too small in /opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle
	/opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle: malformed mach-o image: load command #17 length (0) too small in /opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle - /opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle
	from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems/specification.rb:17:in `<top (required)>'
	from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems.rb:1334:in `require'
	from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems.rb:1334:in `<module:Gem>'
	from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems.rb:116:in `<top (required)>'
	from <internal:gem_prelude>:4:in `require'
	from <internal:gem_prelude>:4:in `<internal:gem_prelude>'

c) v2.0.0 patched
$ vagrant up

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'debian/contrib-jessie64' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'debian/contrib-jessie64'
    default: URL: https://vagrantcloud.com/debian/contrib-jessie64
==> default: Adding box 'debian/contrib-jessie64' (v8.8.0) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/debian/boxes/contrib-jessie64/versions/8.8.0/providers/virtualbox.box
    default: Progress: 85% (Rate: 1659k/s, Estimated time remaining: 0:00:28)

...

So, my suggestion is let this PR open while this erros is happening.

Reproducible
commitay$ vagrant
/opt/vagrant/embedded/lib/ruby/2.4.0/rubygems/specification.rb:17:in `require': dlopen(/opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle, 9): no suitable image found.  Did find: (LoadError)
	/opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle: malformed mach-o image: load command #17 length (0) too small in /opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle
	/opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle: malformed mach-o image: load command #17 length (0) too small in /opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle - /opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle
	from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems/specification.rb:17:in `<top (required)>'
	from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems.rb:1334:in `require'
	from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems.rb:1334:in `<module:Gem>'
	from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems.rb:116:in `<top (required)>'
	from <internal:gem_prelude>:4:in `require'
	from <internal:gem_prelude>:4:in `<internal:gem_prelude>'

@rogeriopradoj
I was about to write about the same issue I also came across. About a few days ago I encountered the problem, a) v2.0.0 unpatched but rather than trying the workaround suggested in hashicorp/vagrant#9090 (because I don't use Vagrant these days), I decided to wait for v2.0.1, which I expect the compatibility with VirtualBox 5.2.
And right at the moment, I got the problem, b) v2.0.1 (installed via my own pr); here is the message I have got:
$ vagrant
/opt/vagrant/embedded/lib/ruby/2.4.0/rubygems/specification.rb:17:in `require': dlopen(/opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle, 9): no suitable image found.  Did find: (LoadError)
        /opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle: malformed mach-o image: load command #17 length (0) too small in /opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle
        /opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle: malformed mach-o image: load command #17 length (0) too small in /opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle - /opt/vagrant/embedded/lib/ruby/2.4.0/x86_64-darwin13/stringio.bundle
        from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems/specification.rb:17:in `<top (required)>'
        from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems.rb:1334:in `require'
        from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems.rb:1334:in `<module:Gem>'
        from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems.rb:116:in `<top (required)>'
        from <internal:gem_prelude>:4:in `require'
        from <internal:gem_prelude>:4:in `<internal:gem_prelude>'

Sorry that I could not notice about this problem before making the PR. I usually use cask-repair to automate updating cask formulae that I use regularly.

There is an issue logged with vagrant for this: https://github.com/hashicorp/vagrant/issues/9136
In the mean time, if someone needs to use Virtualbox 5.2 with vagrant, here's a work around: https://github.com/hashicorp/vagrant/issues/9090#issuecomment-338084000

https://github.com/hashicorp/vagrant/issues/9136#issuecomment-341799613

Closing in favour of https://github.com/caskroom/homebrew-cask/pull/40295


Adding devcontainer

Description
it's going to speed up the local environment setup to local and remote environments by adding a pre-created devcontainer. It's the same approach as https://hydrogen.new/ but to local environments.
The estimation is to have the local setup between ~8-15 seconds after having made the pull of the main docker imaged in the first initialization.

Additional context
Reference: https://code.visualstudio.com/docs/remote/containers

Thank you so much @rafaelstz for the contribution! I love this idea, but a few questions:

Should this be in the root of the shopify/hydrogen repo? This is a mono repo that includes both the starter template and the hydrogen middleware, base components, hooks, etc. Right now the PR as it stands doesn't work, because it puts the the config in the root of the project. There is no yarn dev command at the root. Instead, that is a part of the starter template. The root project has two separate commands to start developing yarn dev-lib and yarn dev-server. So do we want this config in the project root? Or do we want it just for the starter template?
If we add it to the starter template, anyone that opens the hydrogen template in VSCode will they get a notification to install the extension for this? Is that desirable? Would that be confusing for new developers diving into docker immediately?

Hi @blittle,

I think would be helpful to have another one in the root folder to help new contributors to have a quick start, but my main goal was to add the starter template, I'm fixing it to update this PR.
The users won't get notifications to install extensions, in case they start the devcontainer, VSCode will refresh and they will have an isolated dev environment, the VSCode will have their local extensions + the new recommended ones to develop Hydrogen. The file responsible to recommend the local extensions is this one that we already have. New devs don't need to run Docker commands or have direct contact with Docker running devcontainer, via Github Codespaces it's something, it will build the environment and prepare it to use to reduce the time-to-start.

Sure @blittle, it's done! 😄
Thanks


e2e/cypress:demoted test cases

Summary

new_channel_with_board_spec.js Demoted
not_extended_when_disabled/with_email_login_spec.js  Demoted
not_extended_when_disabled/with_ldap_login_spec.js  Demoted
starter_edition_spec.js  Demoted
disable_override_username_profile_spec.js  Demoted
poll_spec.js  Demoted
forward_message_from_public_channel_spec.js  Demoted
plugin_install_spec.js  Demoted
edit_spec.js  Demoted

Release Note
NONE

/e2e-test

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/257956

/e2e-test

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/257999

/e2e-test

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/258008

/e2e-test

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/258041

/e2e-test

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/258365


Sample Code for Fig.7

Hi, congrats on your work.
Can you please share the code for generating Fig.7

Hi, @sharat29ag ,
Sorry for the late reply. Fig.7 (the visualization of the deformable cross-attention) is generated by my co-author Lu He, and you can send an email and ask him for the code for generating Fig.7. His email address is<EMAIL_ADDRESS>


Will this bring new capabilities to ober?

Hi all,
Just saw this: https://blogs.windows.com/buildingapps/2016/10/17/new-windows-store-submission-api-capabilities/
I was wondering does ober need refreshing to bring these in.
Another question unrelated to this, using https://github.com/Azure/azure-sdk-for-net/ as an example, I feel the trend is to CodeGen against restful API, other than hand code, what do you guys think?
Best regards,

Yes, it does! And I want to do it, but give me some time. it fits right in with what ober is created to do (a tool to use in a CD pipeline).
I prefer to always hand code my restful API stuff. It's not hard an leaves you with just what you need instead of (mostly) a lot of overhead.

@JanJoris Gently asking are we going to have some progress? :)

I know, I know. Busy times for me right now. I'll try to do it this month, it should be rather straightforward.

ping...

I know 🙁 Been rather busy lately. And my promises here seem to hold little value. I do accept PR's.

I'm willing to help but lacking relevant knowledge for now, don't worry. Pick up when you got free time.

https://github.com/Microsoft/StoreBroker
Just found this.

Nice. I'm sorry I haven't been able to tackle this one. Not being an app dev anymore moved this really low on my priority list 😞


How to expose the port (1433) from an sql container to the host machine?

Hi,
I have an Aspire application with an sql-container:

private static void Main(string[] args)
    {
        var builder = DistributedApplication.CreateBuilder(args);

        #region Sql Server Container

        var dbserver = builder.AddSqlServerContainer("sql");
        var emadb = dbserver.AddDatabase("EmaDb");
        var shopdb = dbserver.AddDatabase("ShopDb");

        dbserver.WithServiceBinding(1433, 1433);

        #endregion

        //builder.AddProject<Projects.AVDP_MyTicket_EventWorkerService>("eventworkerservice")
        //    .WithReference(emadb)
        //    .WithReference(shopdb);

        var app = builder.Build();
        app.Run();
    }

The container with the sql server is created and because of "dbserver.WithServiceBinding(1433, 1433)" I can connect with my SSMS to this database...
But once I uncomment the 3 lines (with the .WithReference to the databases), it gives me errors on the app.Run().
When I comment out 'dbserver.WithServiceBinding(1433, 1433)', the app is working, but I'm not able to connect with SSMS anymore to the database.
So my question is: what is the correct way to open the 1433 port on the sql container to be availabe on the host machine (in ssms for example).
thx a lot
Andy

You said "it gives me errors" , what errors?

You said "it gives me errors" , what errors?

Well.. I simplified the application.. When I start with the .NET Aspire Starter application and update the following code inthe AppHost program.cs: file
var dbserver = builder.AddSqlServerContainer("sql");
var shopdb = dbserver.AddDatabase("ShopDb");

dbserver.WithServiceBinding(1433, 1433);

var apiservice = builder
    .AddProject<Projects.AspireApp1_ApiService>("apiservice")
    .WithReference(shopdb);

var app = builder.Build();
app.Run();

receive the following error:
info: Aspire.Dashboard.DashboardWebApplication[0]
      Now listening on: http://localhost:15069
info: Aspire.Dashboard.DashboardWebApplication[0]
      OTLP server running at: http://localhost:16254
fail: Microsoft.Extensions.Hosting.Internal.Host[11]
      Hosting failed to start
      System.InvalidOperationException: Sequence contains more than one element
         at System.Linq.ThrowHelper.ThrowMoreThanOneElementException()
         at System.Linq.Enumerable.TryGetSingle[TSource](IEnumerable`1 source, Boolean& found)
         at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
         at Aspire.Hosting.ApplicationModel.SqlServerContainerResource.GetConnectionString() in /_/src/Aspire.Hosting/SqlServer/SqlServerContainerResource.cs:line 29
         at Aspire.Hosting.ApplicationModel.SqlServerDatabaseResource.GetConnectionString() in /_/src/Aspire.Hosting/SqlServer/SqlServerDatabaseResource.cs:line 25
         at Aspire.Hosting.ResourceBuilderExtensions.<>c__DisplayClass7_0`1.<WithReference>b__0(EnvironmentCallbackContext context) in /_/src/Aspire.Hosting/Extensions/ResourceBuilderExtensions.cs:line 136
         at Aspire.Hosting.Dcp.ApplicationExecutor.CreateExecutablesAsync(IEnumerable`1 executableResources, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 397
         at Aspire.Hosting.Dcp.ApplicationExecutor.CreateContainersAndExecutablesAsync(CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 150
         at Aspire.Hosting.Dcp.ApplicationExecutor.RunApplicationAsync(CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 75
         at Aspire.Hosting.Dcp.DcpHostService.StartAsync(CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/DcpHostService.cs:line 78
         at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__15_1(IHostedService service, CancellationToken token)
         at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)
Could not stop project 'apiservice': k8s.Autorest.HttpOperationException: Operation returned an invalid status code 'NotFound', response body {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"executables.usvc-dev.developer.microsoft.com \"apiservice\" not found","reason":"NotFound","details":{"name":"apiservice","group":"usvc-dev.developer.microsoft.com","kind":"executables"},"code":404}

   at k8s.Kubernetes.SendRequestRaw(String requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
   at k8s.AbstractKubernetes.k8s.ICustomObjectsOperations.DeleteClusterCustomObjectWithHttpMessagesAsync(String group, String version, String plural, String name, V1DeleteOptions body, Nullable`1 gracePeriodSeconds, Nullable`1 orphanDependents, String propagationPolicy, String dryRun, IReadOnlyDictionary`2 customHeaders, CancellationToken cancellationToken)
   at Aspire.Hosting.Dcp.KubernetesService.<>c__DisplayClass12_0`1.<<DeleteAsync>b__0>d.MoveNext() in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 109
--- End of stack trace from previous location ---
   at Aspire.Hosting.Dcp.KubernetesService.ExecuteWithRetry[TResult](DcpApiOperationType operationType, String resourceType, Func`2 operation, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 198
   at Aspire.Hosting.Dcp.ApplicationExecutor.DeleteResourcesAsync[RT](String resourceName, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 633

When playing around with it... when I specify a host-port when adding the sql container, It all works...
var dbserver = builder.AddSqlServerContainer("sql", "VerySecretPassword", 1433);
I was not aware that 1433 was not the default host port, but a random port was assigned.
Thx a lot!

You said "it gives me errors" , what errors?

When you configure service binding such as
var rabbit = builder.AddRabbitMQContainer("rabbit")
.WithServiceBinding(5672, 5672)
.WithServiceBinding(15672, 15672);

var sql = builder.AddSqlServerContainer("sql")
.WithServiceBinding(1433, 1433);

Calls to GetConnectionString to each of the container resources will throw because of allocated endpoints

I'm probably understanding this wrong :D So please do help :D
Me as I guess the author of this issue wanted to expose these standard ports so I can have it uniformly the same, and not have to see what my dynamically allocated ports are from the dashboard or peeking into environment variables

cc @mitchdenny should we do something here? Most of our containers would fail like this in connection string resolution?

There are a few choices here. The first is that we could simply change the GetConnectionString(...) methods to be more forgiving of having multiple allocated endpoints and instead find the endpoint based on the binding name. Another option is that we make connection string generation somewhat pluggable (which we may need to do anyway).

There are a few choices here. The first is that we could simply change the GetConnectionString(...) methods to be more forgiving of having multiple allocated endpoints and instead find the endpoint based on the binding name

This is what I think we should be doing.

@JamesNK this is a good one for P4

@BrennanConroy moving to you

Moved to P5

All container resources now use a named endpoint as their default and that's what the connection string is based on.


Documentation changes

Minor documentation changes: stylistic uniformity, typos, punctuation.
Edit: I've no idea where the added newlines come from (I mean, I haven't added them intentionally). By the way, I'm using Atom.

The newlines are probably whitespaces that Atom removes automatically, don't see what else could be. Thanks for the corrections on the typos, they were scattered all over

@MartinuzziFrancesco Thanks! I'm glad the Atom thing is not a problem.


Error with AnimeParse.php and MangaParse.php.

Hi!
I've an error in AnimeParse.php, line 276, Undefined offset: 1541 when execute $var->Anime(1)->response;
I've another error in MangaParse.php, line 157, Undefined offset:1042 when I try $var->Manga(1)->response;
With $var->Character(1)->response; I've no problem.
have a nice Day! :)

Hello, I can't seem to reproduce the issue. Are you up to date with the latest Jikan release?

I've installed the last version: 1.15.9. I've installed it this morning.

That's really odd. It could be you're getting a different HTML format for that part (MAL does this sometimes by IP location). I will look further into this.
Meanwhile, you can remove the background parsing rule from both AnimeParse.php and MangaParse.php to prevent this error by removing the method $this->addRule('background', '~
Background
~', function() {; line 265 - 289 (AnimeParse.php) and line 146 - 168 (MangaParse.php) respectively.

Can you get me an HTML dump of these two links?

https://myanimelist.net/anime/1
https://myanimelist.net/manga/1

Just paste their source into pastebin.

Ok, now $anime->Anime(1)->response and $manga->Manga(1)->response work. But now I have another problem :c : $characterAnime->Anime(1,[CHARACTERS_STAFF])->response and $characterManga->Manga(1,[CHARACTER])->response don't work.

$characterAnime->Anime(1,[CHARACTERS_STAFF])->response Error on AnimeCharacterStaffParse.php, line 104, Undefined offset: 7229. before the error occurred metod create an array with (i,staff,person,match) but it doesn't create the array voice: 'characters' but i think That it still has to be created  https://pastebin.com/dVGErMS1(array before the error).
$characterManga->Manga(1,[CHARACTER])->response Error on MangaCharacterParse.php, Line 28, Undefined offset: 911. before the error occurred metod create an array with voices (i,characters,character,image,name,role). the content of Characters is perfect but something generates and an error and so it doesn't work. https://pastebin.com/3vV4vP9V (array before the error).

Hmm, this definitely mean MAL renders differently based on some specific geolocation. Could you kindly paste the source of those pages as well? It'll help me find common ground in the HTML. Thanks!

https://myanimelist.net/anime/1/Cowboy_Bebop/characters
https://myanimelist.net/manga/1/Monster/characters

Also, this could take a few days. I'm busy till Friday. Do let me know if this occurs over other requests you

I've fixed MangaCharacterParse.php changing '~
~' with '~
~' on line 28. I'll try with AnimeCharacterParse soon.

Speaking of, what happened to your account? It went total 404, including this issue lol

Haha wow, that's weird.
Great, you've found a temp fix. I'll look into the ones you've mentioned.

I am experiencing the same problem, got the same message yesterday which stopped at one exception, now however...

I'll see if I can come up with something useful like the Anime ID starts doing this, if it's any help, my servers are located in the Netherlands, so it's making requests from that geolocation.

Gotcha, thanks for the input. I'll work on a patch for this today.

I've identified the issue. I was using the Google Tag's HTML tag to perform a breakpoint in parsing, TIL it might not always show up by geolocation. I'll be more careful with this stuff in the future.
I've gone ahead and patched the following requests, please let me know whether it works or not.
Make sure to use dev-master instead of the current version in composer.json. You can directly do this too: composer require jikan-me/jikan:dev-master
$jikan->Anime(1)->response
$jikan->Manga(1)->response
$jikan->Anime(1, [CHARACTERS_STAFF])->response
$jikan->Manga(1, [CHARACTERS])->response
Furthermore, I have identified a few other requests that use that particular HTML tag to break the parse. Could you guys try out these endpoints and let me know they bugs out?
$jikan->Anime(1, [PICTURES]);
$jikan->Character(1, [PICTURES]);
$jikan->Manga(1, [PICTURES]);
$jikan->Person(1, [PICTURES]);

$jikan = new Jikan();
$response = $jikan->Anime(1, [PICTURES])->response;
$response = $jikan->Character(1, [PICTURES])->response;
$response = $jikan->Manga(1, [PICTURES])->response;
$response = $jikan->Person(1, [PICTURES])->response;

Worked fine from this end

That's great. I'll wait for @Ggwppino to see if it works for him before closing the issue.

$jikan->Anime(1, [PICTURES]);   undefined Offset:574; File:AnimePicturesParse, Line 26, Probably cause: ;
$jikan->Character(1, [PICTURES]);  undefined Offset:399; File:CharacterPictureParse, Line 26, Probably cause: ;
$jikan->Manga(1, [PICTURES]); undefined Offset:348; File:MangaPicturesParse, Line Line 26, Probably cause: ;
$jikan->Person(1, [PICTURES]); undefined Offset:366; File:PersonPicuresParse, Line 26, Probably cause: ;

Me too error with id 12189 on AnimeParse.php:277 but Undefined offset: 1470.

This is odd because the file you sent me parses without any errors, @coderiekelt. That part of the code is also the same as mines. Did it perhaps generate an error from your server and you sent the source from your PC?
@Ggwppino Can you send me the source from your side for Anime 12189?

The paste I put in that post came from my own PC, snatched from Google Chrome.
I'm in about the same geolocation as my server though, so I figured that wouldn't make much of a difference.
Here's the HTML as fetched by my server:
WGET: http://paste.ubuntu.com/p/jcRcVMpmBY/
CURL: http://paste.ubuntu.com/p/tzSrsZCFQg/

Thanks for that, @coderiekelt.
The HTML from the server is:
Background
The first episode received an early screening at a special event held at Kadokawa Cinema Shinjuku on April 14, 2012. The regular TV broadcast started on April 23, 2012.

Whereas the HTML from your previous post is:
Background
The first episode received an early screening at a special event held at Kadokawa Cinema Shinjuku on April 14, 2012. The regular TV broadcast started on April 23, 2012.

Truly scratching my head here. I think it's rather by the headers sent or some other factor. Anyways, I've released a patch for it.

Just tested it, works absolutely fine now.

@Ggwppino Pushed a patch for the pictures request. Can you confirm them working on your end now?
$jikan->Anime(1, [PICTURES])->response;
$jikan->Character(1, [PICTURES])->response;
$jikan->Manga(1, [PICTURES])->response;
$jikan->Person(1, [PICTURES])->response;

yup, it works very well now

Great. I'll close this issue now. Please feel free to reopen this or a new one if any thing of sorts reoccurs.


grid wrapper - Replace - with _ in component file name to avoid import errors

Fixed in next version.


User: Delete existing submission to the library.

Expecting an update by end of day

Expected date (Tuesday 28th March 2023)


docs: rewritten, examples added, configuration extended, tests added

The existing docs have been rewritten

README: now longer
overview: rephrased, different sections
configuration: format was altered
configuration: now has an example config exercising every field

New docs have been added:

examples: small, self-contained examples of common uses
getting-started: walks the reader through creating a CLC and using ct

Tests have been added

doc_test.go: finds all yaml blocks in doc/*.md, runs them through the
parser and validator. Fails on any warnings or errors.

This is a first pass at rewriting the docs, I think I'd also like to include a "migrating from cloud config" and maybe a "migrating from ignition". I'll also need to write more docs to explain the coreos-metadata support when it lands. More examples might also be nice.
cc @crawford, @ajeddeloh
Also if @joshix has time to look these over at some point that'd be awesome.

I was sticking to 80 column lines to make it readable in the terminal, but I'll switch it over to single-line paragraphs for consistency.

@radhikapc just made the requested changes (added in a separate commit so you can see the diff), how's that look?

@dgonyeo : looks good. thank you.

Nits addressed, and finished the doc on dynamic data

Realized the docker flags sugar that was just merged hasn't been documented yet, so I added it to the configuration here


[in_app_purchase] BillingClient DEVELOPER_ERROR when calling buyNonConsumable with version 0.5.1

Steps to Reproduce

Upgrade in_app_purchases plugin from in_app_purchases 0.3.4+12 to in_app_purchases 0.5.1
Run the following code to start a subscription purchase flow:

final PurchaseParam purchaseParam = PurchaseParam(productDetails: productDetails, simulatesAskToBuyInSandbox: false);
bool res = await InAppPurchaseConnection.instance.buyNonConsumable(purchaseParam: purchaseParam);

Expected results:
The Google Play purchase dialog is displayed.
Actual results:
An error dialog is displayed:

The underlying native error is DEVELOPER_ERROR
Extra notes:
When manually downgrading the android billing lib of the plugin from com.android.billingclient:billing:3.0.2 to com.android.billingclient:billing:3.0.0 the purchase flow is started as expected.

@talent-apps
Can you provide flutter doctor -v and a complete minimal reproducible code sample that shows this issue ?
Thanks.

Output of flutter doctor -v:
[√] Flutter (Channel stable, 2.0.3, on Microsoft Windows [Version 10.0.19042.867], locale en-US)
    • Flutter version 2.0.3 at C:\flutter
    • Framework revision 4d7946a68d (3 days ago), 2021-03-18 17:24:33 -0700
    • Engine revision 3459eb2436
    • Dart version 2.12.2

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at C:\Users\XXX\AppData\Local\Android\Sdk
    • Platform android-30, build-tools 30.0.1
    • ANDROID_HOME = C:\Users\XXX\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 4.1.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] VS Code (version 1.54.3)
    • VS Code at C:\Users\XXX\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.20.0

[√] Connected device (4 available)
    • ALP AL00 (mobile)                • UYT7N17B22000148 • android-arm64  • Android 10 (API 29)
    • sdk gphone x86 64 arm64 (mobile) • emulator-5554    • android-x64    • Android 11 (API 30) (emulator)
    • Chrome (web)                     • chrome           • web-javascript • Google Chrome 89.0.4389.90
    • Edge (web)                       • edge             • web-javascript • Microsoft Edge 89.0.774.54

• No issues found

A minimal reproducible code sample is provided in the bug description.

@talent-apps
What happens if you  set simulatesAskToBuyInSandbox: true ?

@darshankawar simulatesAskToBuyInSandbox is not used on Android.
This issue makes the plugin unusable in production.
It's critical since all apps need to migrate to Google Play Billing V3 by then end of the year.

Thanks for the details.

cc @mvanbeusekom
@talent-apps Does 0.3.4 work?

@cyanglaz
As mentioned in the initial description, version 0.3.4+12 which uses com.android.billingclient:billing:2.0.3 (i.e. Google Play Billing V2) works.

Based on:
When manually downgrading the android billing lib of the plugin from com.android.billingclient:billing:3.0.2 to com.android.billingclient:billing:3.0.0 the purchase flow is started as expected.

And also based on my tests with the example app, which was successful.
I suspect there might be some issue with the product setting in your app that doesn't work with the new billing library.
@talent-apps Do you mind to try your code with a new billing library application on google dev console and see if it works?

@cyanglaz
What do you mean exactly? What should we test?

@talent-apps Set up a new application in the google play console and pointing your app to the new application

We have an app in production that uses version 0.4.1 of the plugin.
We would like to upgrade that app to use Google Play Billing V3.

@talent-apps
What happens if you set simulatesAskToBuyInSandbox: true ?

This attribute is for iOS only, this test is with Android device.

@talent-apps I got some idea, does it work if you

upgrade the plugin to 0.5.1
Use a brand new test account to test the app.

@cyanglaz
The problem persists with in_app_purchase: ^0.5.2.
Even when trying to use a new test account.

@cyanglaz
The problem persists with in_app_purchase: ^0.5.2.
Even when trying to use a new test account.

is there any update, i am using 1.0.x, not working too

I followed @talent-apps idea and downgrade to com.android.billingclient:billing:3.0.0, it works.

Any update?

4.1.0 is the latest version of billingclient. https://maven.google.com/web/index.html#com.android.billingclient:billing
@cyanglaz any thoughts about bumping the version to see if it helps fix this issue? Also, any contribution is welcome

Filed https://github.com/flutter/flutter/issues/102613 to track the version bump

The billing library has gone through several major version updates since this was filed; is it still an issue?

in_app_purchase: 3.1.7 This version still has BillingResponse.developerError
Many Android users fail to pay, occasionally


Changes reverted.


Fix latest_applied_of_both_kinds method and add missing tests

While testing the FrontEnd app for the CloudFoundry deploy I found an error with the returned values from this method invoked by the api endpoint.
The latest_applied_of_both_kinds method didn’t have any test and when we fixed the query for postgresql we introduced a regression, about a required field in the response.
base_update_spec added in order to add unit tests for this methods in the Base class.

this could probably also be raises against alphagov/master


Alignment Issue for Home Page

The logo and title on the home page are aligned differently than the "Find a University" section and would misalign if the browser is not in full-screen mode.

yes so you can work on that part!

Done!


Type-annotate wandb.integration.tensorboard

Description
This PR was started to explore the apparent issues reported in https://github.com/wandb/client/issues/3229 and the corresponding Jira tickets, but since those look like something outside of our control, turned into just type-annotating wandb.integration.tensorboard.
Testing
Green CI!

oh, also since you already have the examples from the ticket can we convert it to functional tests?

@kptkin thank you for a thorough review ( so typical though :) )!
I rm'ed raising errors and just left the wandb.run is not None checks to make mypy happy + added a check/raise error to the estimator hook's begin method, like you suggested.


Are billboard sprites possible? (Sprites in a 3D camera)

What problem does this solve or what need does it fill?
A lot of PS1-era games had a mix of 3D scenes and sprite graphics (pixel art or similar) -- a classic was Final Fantasy Tactics but there are plenty of others. You can have simple 3D models (which are basically just huge voxels with pixel art textures) then your more high-res entities, like people, are animated sprites which exist in the world.
This gives you some advantages of a 3D graphics layout -- basic camera control, rotations, natural scaling, etc. -- without having to actually make complex 3D models for your characters, and while retaining that art style.
What solution would you like?
A billboard sprite bundle; so it's visible at the "normal" location like another 3D object, but it's just a mesh (?) that has one face, and it always faces the camera.
Or maybe it makes sense to somehow just have "billboard" be a component on an entity, so every frame it just resets to face the camera, and some other method could display how to make pixel art work in 3D (there is no obvious way to use a SpriteBundle in a 3D camera that I could make work).
What alternative(s) have you considered?
It's probably possible to implement this manually -- every frame, after update but before rendering, to find all the billboards and the relevant camera, and rotate their faces to meet the camera perfectly. But that seems hard, for a game developer who doesn't really understand 3D graphics and coordinate transforms (me). Seems like something that could be built into bevy, or set up as a plugin (?).
Additional context
A sample screenshot of FFT which I found on the internet and is probably not kosher to truly repost here, but which shows the value of the approach: https://www.cavesofnarshe.com/fft/screenshots/images/1-38.jpg
This is supported in monogame (the successor of XNA): https://liam256.github.io/blog.io/2017/01/05/Monogame-Billboarding/

Hmm, I'm seeing a rejected (possibly revivable) PR attempting to solve this problem https://github.com/bevyengine/bevy/pull/2814

Yep, that was an earlier attempt at this! It's desired, and should be feasible.
There's actually active chatter about this occurring on Discord, see the #billboards thread in #rendering-dev! @Sheepyhead and @inodentry were the main folks investigating I believe.

That's great! I'll check out the discord channel at some point to get a sense, I guess.
I'm unfamiliar with Bevy process, though. Assuming they get everything nice and settled and implemented, is this something I'd need to wait for Bevy 0.7 for? Or is this something that can (will?) be released as a plug-in without needing a major Bevy release along with it?

I'm unfamiliar with Bevy process, though. Assuming they get everything nice and settled and implemented, is this something I'd need to wait for Bevy 0.7 for? Or is this something that can (will?) be released as a plug-in without needing a major Bevy release along with it?

Right now, the official Bevy engine is only shipping this repo; we're not splitting out code into external plugins. And while we're about to have our first minor release (0.6.1), something like this is too large and risky. The next release should be mid-April or so though, we've moved to a 3 month train release strategy.
However, this will probably be implementable without needing to touch the engine internals. As a result, you should be able to steal code from the PR and package it up into an external plugin nicely.

Ooohohoho, seconding this, exactly what I'm looking for! The sprites don't need to rotate towards the camera for my use case, but I'd be happy to help out :)

Seeing the old PR https://github.com/bevyengine/bevy/pull/2814:
I agree 2d and 3d sprites will likely even diverge more in the future, so I agree with the reason it wasn't merged.
Do we still think it's a good idea to split up TextureAtlasSprite into TextureAtlasEntry and Sprite? We can then at least reuse TextureAtlasEntry together with whatever ends up becoming the "3d sprite component".
In fact, maybe there'll even be multiple ways of rendering atlas entries even in 2d.
Would it be worth splitting that off in a separate PR to do first?

Billboards are one of the things that Text3dBundle should solve: https://github.com/bevyengine/bevy/pull/7426

I've found a nice external crate for this for now: https://github.com/FraserLee/bevy_sprite3d

Right now there are 3 usecases for this:

Rendering far away objects as billboards or artistically using billboards: single image
Rendering overhead text like mmorpg games does: text
Rendering impostors: multiple images depending on view

Right now I have an implementation in https://github.com/kulkalkul/bevy_mod_billboard that does the first two. It uses a simple shader. For the first case resetting their rotations in their transform matrices is enough. Text is a little more involved, requires building of a mesh from text data and font atlas. Change detection on Text helps a lot in this case, similar to how 2D text works.
Hard part would be batching it. Support for multiple fonts complicates the batching. I'm not familiar with bevy's new batching, so I don't know how it would perform with it.
And there are some useful features that can be easily implemented on top like enabling/disabling depth culling, axis locking, full rotation locking (basic worldspace text).
For a bevy implementation, what are other requirements?

For an initial Bevy implementation, I'm most concerned about:

a straightforward and clear API
good docs
well-isolated
low code complexity

High-performance and fancy features can come later :)

I think this could be a boolean field on StandardMaterial, if set, forcibly ignore the rotation portion of the transform and face the object to the camera.


translate-shell: <IP_ADDRESS> -> <IP_ADDRESS>, fix packaging

Motivation for this change
The packaging of this was a mess before, I'm wondering why it got merged in the first place. I cleaned it up and removed unnecessary dependencies (including pandoc), which reduced the closure size from just below 1GB to just 40MB. Also fixed the license.
#37549 should be closed in favor of this PR.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build translate-shell

Success on aarch64-linux (full log)
Attempted: translate-shell
Partial log (click to expand)
[OK] translate-shell installed.
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/ppb1n2vb0gi1a100r0726w9h36a6cwh2-translate-shell-<IP_ADDRESS>
gzipping man pages under /nix/store/ppb1n2vb0gi1a100r0726w9h36a6cwh2-translate-shell-<IP_ADDRESS>/share/man/
strip is /nix/store/3zq400fri5dv7d30lpxlqm2v9y1iis6j-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/ppb1n2vb0gi1a100r0726w9h36a6cwh2-translate-shell-<IP_ADDRESS>/bin
patching script interpreter paths in /nix/store/ppb1n2vb0gi1a100r0726w9h36a6cwh2-translate-shell-<IP_ADDRESS>
/nix/store/ppb1n2vb0gi1a100r0726w9h36a6cwh2-translate-shell-<IP_ADDRESS>/bin/.trans-wrapped: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/3gg2p6n4kv2f0lsxd41f5iz1ivkbzyzr-bash-4.4-p19/bin/bash"
checking for references to /build in /nix/store/ppb1n2vb0gi1a100r0726w9h36a6cwh2-translate-shell-<IP_ADDRESS>...
/nix/store/ppb1n2vb0gi1a100r0726w9h36a6cwh2-translate-shell-<IP_ADDRESS>

Success on x86_64-darwin (full log)
Attempted: translate-shell
Partial log (click to expand)
install flags: install SHELL=/nix/store/8hdxjv3m14jgdnawi5l0mz2h59qkk2g9-bash-4.4-p19/bin/bash PREFIX=\$\(out\)
[OK] Task build completed.
[OK] translate-shell installed.
post-installation fixup
gzipping man pages under /nix/store/h7p0lsivdsw4wki9lkyyynajrpxzi8sc-translate-shell-<IP_ADDRESS>/share/man/
strip is /nix/store/vb6mgjqgd9h11nbv60fvrp1ls9nxck2y-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/h7p0lsivdsw4wki9lkyyynajrpxzi8sc-translate-shell-<IP_ADDRESS>/bin
patching script interpreter paths in /nix/store/h7p0lsivdsw4wki9lkyyynajrpxzi8sc-translate-shell-<IP_ADDRESS>
/nix/store/h7p0lsivdsw4wki9lkyyynajrpxzi8sc-translate-shell-<IP_ADDRESS>/bin/.trans-wrapped: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/8hdxjv3m14jgdnawi5l0mz2h59qkk2g9-bash-4.4-p19/bin/bash"
/nix/store/h7p0lsivdsw4wki9lkyyynajrpxzi8sc-translate-shell-<IP_ADDRESS>

Success on x86_64-linux (full log)
Attempted: translate-shell
Partial log (click to expand)
[OK] translate-shell installed.
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/l7j6va2kflrqcbymhb2dddad3dvg0d3j-translate-shell-<IP_ADDRESS>
gzipping man pages under /nix/store/l7j6va2kflrqcbymhb2dddad3dvg0d3j-translate-shell-<IP_ADDRESS>/share/man/
strip is /nix/store/fzcs0fn6bb04m82frhlb78nc03ny3w55-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/l7j6va2kflrqcbymhb2dddad3dvg0d3j-translate-shell-<IP_ADDRESS>/bin
patching script interpreter paths in /nix/store/l7j6va2kflrqcbymhb2dddad3dvg0d3j-translate-shell-<IP_ADDRESS>
/nix/store/l7j6va2kflrqcbymhb2dddad3dvg0d3j-translate-shell-<IP_ADDRESS>/bin/.trans-wrapped: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/q1g0rl8zfmz7r371fp5p42p4acmv297d-bash-4.4-p19/bin/bash"
checking for references to /build in /nix/store/l7j6va2kflrqcbymhb2dddad3dvg0d3j-translate-shell-<IP_ADDRESS>...
/nix/store/l7j6va2kflrqcbymhb2dddad3dvg0d3j-translate-shell-<IP_ADDRESS>


Error in SoftGate code？

the code at this line  https://github.com/sebgao/LIP/blob/5e85b9e55b9212fdf6abccb1fa8783d23620f53a/imagenet/lip_resnet.py#L28 in SoftGate:
return torch.sigmoid(x).mul(COEFF)
maybe wrong, the correct code should be like this:
return x.mul(COEFF).sigmoid().

It's return torch.sigmoid(x).mul(COEFF) although it looks weird. Multiplication after sigmoid is needed to provide the large value range of logits and hence more diverse pooling weights. But actually, it's OK to remove SoftGate when you do not meet NaN errors.

It's return torch.sigmoid(x).mul(COEFF) although it looks weird. Multiplication after sigmoid is needed to provide the large value range of logits and hence more diverse pooling weights. But actually, it's OK to remove SoftGate when you do not meet NaN errors.

Now I am confused about this。If multiplying after sigmoid, the COEFF will be reduced during pooling procedure, which makes no sense。And the beta(COEFF) is in the exponent of weight，which is different from your code here。I am looking forward to getting your reply，thanks。

It's return torch.sigmoid(x).mul(COEFF) although it looks weird. Multiplication after sigmoid is needed to provide the large value range of logits and hence more diverse pooling weights. But actually, it's OK to remove SoftGate when you do not meet NaN errors.

Now I am confused about this。If multiplying after sigmoid, the COEFF will be reduced during pooling procedure, which makes no sense。And the beta(COEFF) is in the exponent of weight，which is different from your code here。I am looking forward to getting your reply，thanks。

I'm sorry but there is no reduction about COEFF here because multiplication in the exponential operator appearing both in the numerator and denominator cannot cancel, e.g., exp(c*x)/exp(c*y)!=exp(x)/exp(y).
And for you another question, what does beta(*) stand for? The weight is the exponent of the logit. And there is no exponents of weight in either the paper or code.

It's return torch.sigmoid(x).mul(COEFF) although it looks weird. Multiplication after sigmoid is needed to provide the large value range of logits and hence more diverse pooling weights. But actually, it's OK to remove SoftGate when you do not meet NaN errors.

Now I am confused about this。If multiplying after sigmoid, the COEFF will be reduced during pooling procedure, which makes no sense。And the beta(COEFF) is in the exponent of weight，which is different from your code here。I am looking forward to getting your reply，thanks。

I'm sorry but there is no reduction about COEFF here because multiplication in the exponential operator appearing both in the numerator and denominator cannot cancel, e.g., exp(c*x)/exp(c*y)!=exp(x)/exp(y).
And for you another question, what does beta(*) stand for? The weight is the exponent of the logit. And there is no exponents of weight in either the paper or code.

I'm so sorry for that I missed this line weight = logit.exp() when I read the code before, and I realized this just now after your reminding. I’m sorry again for bothering you beause of my carelessness，and appreciate your help greatly.


Batching writer.append steps

Hey there. Is it possible to batch the writer.append command (e.g. extend) in Reverb? I am currently doing something like the following:
for exp in exps:
       self._writer.append(exp)

Where I loop over 400 steps with quite large observation sizes. I am also using Launchpad. It seems that this append is taking about 20% of the episode computation time. Is there something like writer.extend in Reverb or some other fancy method to maybe do only one write for a batch of steps for improved performance? Should I maybe try and just skip the writer.append and directly try and create trajectories from the concatenated episode steps? Thanks.

I have been having the same issue. We are working on Mava https://github.com/instadeepai/Mava with uses Reverb for adders. The trajectory writer seemed to be working slower than the legacy writer so I decided to do some benchmarking with dummy data and compare the writer directly, by extending the Reverb tutorial code (https://gist.github.com/AsadJeewa/18ed6df8875a33c2cb7893738211a82d). It clearly shows that regardless of the number of episodes, sequence length, or other parameters, the trajectory writer is slower.
The first graph  shows cumulalitive time for write() calls and the second shows total execution time . I can share more results if required.


Dutch language

Summary
Inspired by @juliomrqz with his Italian language pull request https://github.com/bazzite/statusfy/pull/179, here a pull request with the Dutch language.
What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[ ] Feature
[ ] Code style update
[ ] Refactor
[ ] Docs
[ ] Build-related changes
[x] Other, please describe: dutch language

If changing the UI of default theme, please provide the before/after screenshot:
Does this PR introduce a breaking change? (check one)

[ ] Yes
[x] No

If yes, please describe the impact and migration path for existing applications:
The PR fulfills these requirements:

[ ] When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)

You have tested in the following browsers: (Providing a detailed version will be better.)

[ ] Chrome
[ ] Firefox
[ ] Safari
[ ] Edge
[ ] IE

If adding a new feature, the PR's description includes:

[ ] A convincing reason for adding this feature
[ ] Related documents have been updated
[ ] Related tests have been updated

To avoid wasting your time, it's best to open a feature request issue first and wait for approval before working on it.
Other information:

Hello, @cafferata. Thank you for your contribution, it's now merged :nerd_face:


RC Circuit MTK and JSIR example.

These benchmarks could use some more investigation to see what it'd take to improve things. In particular, the LLVM backend does poorly with the loop backend: it is much slower in runtime than expected, and actually begins to stack overflow if we increase the size to 640.

Sample result produced locally:

Sample result produced locally:

Add the Dymola results:
1000, 7.027, 7.237
2000, 11.295, 11.798
3000, 16.681, 17.646
4000, 22.125, 23.839
5000, 27.529, 29.82
6000, 33.282, 36.622
7000, 39.007, 43.088
8000, 44.825, 51.601
9000, 50.281, 56.676

can NaN after that because it crashes. Looks like we might need it at smaller values too?

Also add the OpenModelica code like this other, with the .mo:
model RC_Circuit_MTK_test
  parameter Integer N=5000;
  Modelica.Electrical.Analog.Sources.SineVoltage source(f=0.05, V=1);
  Modelica.Electrical.Analog.Basic.Ground g;
  Modelica.Electrical.Analog.Basic.Resistor R[N](each R=1.0);
  Modelica.Electrical.Analog.Basic.Capacitor C[N](each C=1.0, each v(fixed=true));

equation
  connect(g.p, source.n);
  connect(R[1].p, source.p);
  connect(C[1].p, R[1].n);
  connect(C[1].n, g.p);
  for i in 2:N loop
    connect(R[i].n, C[i].p);
    connect(R[i].p, R[i-1].n);
    connect(C[i].n, g.p);
  end for;
           annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
        coordinateSystem(preserveAspectRatio=false)),
    experiment(StopTime=10, __Dymola_Algorithm="Dassl"));
end RC_Circuit_MTK_test;

And do the different N's just by making different models (the other benchmark is a good example).
@avinashresearch1 you have the .mos file that was used for the timing?

Okay, I can add those sizes, but not with the LLVM backend at the moment.
I'll have to see how the C backend does. The Julia backend should be fine because it switches to malloc instead of stack allocations when those allocations are big, I just never implemented that for C or LLVM.

If a size doesn't work, if you just put NaN then Makie knows to avoid it in the plot, and so we can just cut those bits out.

Also add the OpenModelica code like this other, with the .mo:

I don't follow, do you want a code block like
\`\`\`mo
model RC_Circuit_MTK_test
  parameter Integer N=5000;
  Modelica.Electrical.Analog.Sources.SineVoltage source(f=0.05, V=1);
  Modelica.Electrical.Analog.Basic.Ground g;
  Modelica.Electrical.Analog.Basic.Resistor R[N](each R=1.0);
  Modelica.Electrical.Analog.Basic.Capacitor C[N](each C=1.0, each v(fixed=true));

equation
  connect(g.p, source.n);
  connect(R[1].p, source.p);
  connect(C[1].p, R[1].n);
  connect(C[1].n, g.p);
  for i in 2:N loop
    connect(R[i].n, C[i].p);
    connect(R[i].p, R[i-1].n);
    connect(C[i].n, g.p);
  end for;
           annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
        coordinateSystem(preserveAspectRatio=false)),
    experiment(StopTime=10, __Dymola_Algorithm="Dassl"));
end RC_Circuit_MTK_test;
\`\`\`

?

And do the different N's just by making different models (the other benchmark is a good example).

Which other benchmark? This one is doing the same thing as the thermalfluid.

It's missing the OpenModelica and Dymola parts of the thermofluid benchmark https://github.com/SciML/SciMLBenchmarks.jl/pull/949/files#diff-c0aa5047a0078d961dd9b04e0cb2fac675f99d8c0b809efeb64b1ffc4bd2b8b3R346

Below is the .mos file:
import Modelica.Utilities.Streams.print;
//openModel("TimingFunctions.mo");
import TimingFunctions.tic;

dir = "/home/avinash/Desktop/JULIAHUB/JULIASIM/Benchmarking_Dymola/"

// Load the test model file
openModel(dir + "Dymola_Benchmarking.mo");

testFolder = "Dymola_Benchmarking.Test.";

testModels = {
  "RC_Circuit_MTK_test_1000",
  "RC_Circuit_MTK_test_2000",
  "RC_Circuit_MTK_test_3000",
  "RC_Circuit_MTK_test_4000",
  "RC_Circuit_MTK_test_5000",
  "RC_Circuit_MTK_test_6000",
  "RC_Circuit_MTK_test_7000",
  "RC_Circuit_MTK_test_8000",
  "RC_Circuit_MTK_test_9000",
  "RC_Circuit_MTK_test_10000",
  "RC_Circuit_MTK_test_20000"
};

outputFile = dir + "benchmark_results.txt"

// Clear the output file at the beginning
print("", fileName=outputFile);

// Loop over each test model
for i in 1:size(testModels, 1) loop
  testName = testFolder + testModels[i];

  // Start the timer
  startTime := tic();

  // Translate the model
  translateModel(testName);

  translateEndTime := tic();

  // Simulate the model
  simulateModel(testName, stopTime=10.0);

  // Stop the timer
  endTime := tic();

  // Calculate the elapsed time
  translationTime := translateEndTime - startTime;
  simulationTime := endTime - startTime;

  // Prepare the output string
  outputString = "Test: " + testModels[i] + ", " + String(translationTime) + ", " + String(simulationTime);

  // Print the test name and simulation time to the output file
  print(outputString, fileName=outputFile);
end for;

One would also need the TimingFunctions.mo file:
package TimingFunctions
    function tic
      "Function to record the internal time in [s]"
      output Real tic;
    algorithm
      (ms_tic, sec_tic, min_tic, hour_tic, day_tic, mon_tic, year_tic) := Modelica.Utilities.System.getTime();
      tic := (ms_tic*0.001) + sec_tic + (min_tic*60) + (hour_tic*3600) + (day_tic*86400);
    end tic;

  end TimingFunctions;

Lastly, I modified the model file to create a test for each N since it is a structural parameter (ref. Mike's comment for the thermal benchmark):
within ;
package Dymola_Benchmarking
import TimingFunctions.tic;

  model RC_Circuit_MTK_test
    parameter Integer N=1000;
    Modelica.Electrical.Analog.Sources.SineVoltage source(f=0.05, V=1);
    Modelica.Electrical.Analog.Basic.Ground g;
    Modelica.Electrical.Analog.Basic.Resistor R[N](each R=1.0);
    Modelica.Electrical.Analog.Basic.Capacitor C[N](each C=1.0, each v(fixed=true));

  equation
    connect(g.p, source.n);
    connect(R[1].p, source.p);
    connect(C[1].p, R[1].n);
    connect(C[1].n, g.p);
    for i in 2:N loop
      connect(R[i].n, C[i].p);
      connect(R[i].p, R[i-1].n);
      connect(C[i].n, g.p);
    end for;
            annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
          coordinateSystem(preserveAspectRatio=false)),
      experiment(StopTime=10, __Dymola_Algorithm="Dassl"));
  end RC_Circuit_MTK_test;

  package Test
    model RC_Circuit_MTK_test_1000
      extends RC_Circuit_MTK_test(N=1000);
    end RC_Circuit_MTK_test_1000;

    model RC_Circuit_MTK_test_2000
      extends RC_Circuit_MTK_test(N=2000);
    end RC_Circuit_MTK_test_2000;

    model RC_Circuit_MTK_test_3000
      extends RC_Circuit_MTK_test(N=3000);
    end RC_Circuit_MTK_test_3000;

    model RC_Circuit_MTK_test_4000
      extends RC_Circuit_MTK_test(N=4000);
    end RC_Circuit_MTK_test_4000;

    model RC_Circuit_MTK_test_5000
      extends RC_Circuit_MTK_test(N=5000);
    end RC_Circuit_MTK_test_5000;

    model RC_Circuit_MTK_test_6000
      extends RC_Circuit_MTK_test(N=6000);
    end RC_Circuit_MTK_test_6000;

    model RC_Circuit_MTK_test_7000
      extends RC_Circuit_MTK_test(N=7000);
    end RC_Circuit_MTK_test_7000;

    model RC_Circuit_MTK_test_8000
      extends RC_Circuit_MTK_test(N=8000);
    end RC_Circuit_MTK_test_8000;

    model RC_Circuit_MTK_test_9000
      extends RC_Circuit_MTK_test(N=9000);
    end RC_Circuit_MTK_test_9000;

    model RC_Circuit_MTK_test_10000
      extends RC_Circuit_MTK_test(N=10000);
    end RC_Circuit_MTK_test_10000;

    model RC_Circuit_MTK_test_20000
      extends RC_Circuit_MTK_test(N=20000);
    end RC_Circuit_MTK_test_20000;
  end Test;

end Dymola_Benchmarking;

Let me make a PR with these to this branch.

@thazhemadam any idea why buildkite is not running>

I'll update the script to run OMJulia alongside MTK and JSIR, and then plot all of them + Dymola.


Add "Register to Vote" section to related links

For completed transactions with the "register_to_vote" promotion, we
should display the new section in the related links in order to
encourage people to register to vote.
Trello: https://trello.com/c/QbnidEBA/97-add-promotion-for-register-to-vote-to-transaction-done-pages
Waiting on product feedback before this should be merged.

@alecgibson I've made the changes, what do you think now?
FYI, I'm going down the route of filtering by document type rather than checking the promotion tag.


Enhancement request: redesign

Hi!
3 out of the 4 open issues are design issues.

View for blogposts
View for meet-ups/events
Design for help wanted

I fear a coherent feeling across the website might be lost if each issue is addressed separately.
After checking out the website, I'm super impressed by the contributions Embark is giving to open source!
Right now, that information is a bit tucked away behind links to GitHub, Patreon and Open Source Collective.
I would like to make it a lot more visible.
I have time available right now, and due to reasons mentioned above, would actually like to do an overhaul of the website.
Would this be something the team would be open to?
Kind regards,
Laurens

Hi @laurensdewaele 👋🏻
Thanks for your proposal, and it quite looks nice to me! Please feel free to raise a PR with your suggestions/implementations, and also, I would be happy to jump on a call with you if you wish to discuss more :)
Let me know! 🤗

Hi @laurensdewaele 👋🏻
Thanks for your proposal, and it quite looks nice to me! Please feel free to raise a PR with your suggestions/implementations, and also, I would be happy to jump on a call with you if you wish to discuss more :)
Let me know! 🤗

Cool!
Could we communicate through Discord?

Cool!
Could we communicate through Discord?

Just to update: I & @laurensdewaele are in discussion, and let's see what we are able to get out of that 💁🏻♀

Just to update: I & @laurensdewaele are in discussion, and let's see what we are able to get out of that 💁🏻♀

Draft design suggestion:

Note that this is a rough idea and sketch, just to convey my ideas.
Things that I've tried to implement:

consistency with the main website.
put a big emphasis on the contributions, being close to the top of the page.

Please leave abundant feedback!
E.g.:

Which columns should the contribution page have?
What to do with the news section (blogposts, events). Can we reuse the news section from the main website? Or maybe just create a link to there / medium?

Draft design suggestion:

Note that this is a rough idea and sketch, just to convey my ideas.
Things that I've tried to implement:

consistency with the main website.
put a big emphasis on the contributions, being close to the top of the page.

Please leave abundant feedback!
E.g.:

Which columns should the contribution page have?
What to do with the news section (blogposts, events). Can we reuse the news section from the main website? Or maybe just create a link to there / medium?

@laurensdewaele thanks for the design! 🎉
Feedback from my side:

We don't want big animated image on the header, although it's beautiful, and nice animation
The sponsorship icons are nice but a bit too abstract, any thoughts on that?
Under Contributions section, maybe we can rename this layer, include information about 🦀 Rust at Embark, Sponsorships, tiers for ex: Embark + Blender, maybe we can split this into two? :)
Regarding different pages like blogposts, events, having a separate page will be great, see #29 for some insights
Don't forget to include the social media handles, Discord is the main source of connecting developers and the contributors!
I really liked the idea of having table view for Projects, currently, it has occupied a lot space!

I want to hear @arirawr and @lpil thoughts on this too! After that, we can move forward with this issue 🔥
Amazing work! 💪🏻

@laurensdewaele thanks for the design! 🎉
Feedback from my side:

We don't want big animated image on the header, although it's beautiful, and nice animation
The sponsorship icons are nice but a bit too abstract, any thoughts on that?
Under Contributions section, maybe we can rename this layer, include information about 🦀 Rust at Embark, Sponsorships, tiers for ex: Embark + Blender, maybe we can split this into two? :)
Regarding different pages like blogposts, events, having a separate page will be great, see #29 for some insights
Don't forget to include the social media handles, Discord is the main source of connecting developers and the contributors!
I really liked the idea of having table view for Projects, currently, it has occupied a lot space!

I want to hear @arirawr and @lpil thoughts on this too! After that, we can move forward with this issue 🔥
Amazing work! 💪🏻

Hey Sonia,
It's a little unclear what you mean by following 2 points, the rest is clear:

The sponsorship icons are nice but a bit too abstract, any thoughts on that?

I was thinking of a table view, listing all the contributions.
Something like this? (the blender tab will be the only tab not having a table view)

Under Contributions section, maybe we can rename this layer, include information about 🦀 Rust at Embark, Sponsorships, tiers for ex: Embark + Blender, maybe we can split this into two? :)

rust at embark information can be placed anywhere.

main opening text beneath open source
under the contributions header
under each contributions tab
under projects header

Would the above design accommodate the splitting you're talking about?
I'm not sure about the renaming, would do you propose?

Hey Sonia,
It's a little unclear what you mean by following 2 points, the rest is clear:

The sponsorship icons are nice but a bit too abstract, any thoughts on that?

I was thinking of a table view, listing all the contributions.
Something like this? (the blender tab will be the only tab not having a table view)

Under Contributions section, maybe we can rename this layer, include information about 🦀 Rust at Embark, Sponsorships, tiers for ex: Embark + Blender, maybe we can split this into two? :)

rust at embark information can be placed anywhere.

main opening text beneath open source
under the contributions header
under each contributions tab
under projects header

Would the above design accommodate the splitting you're talking about?
I'm not sure about the renaming, would do you propose?


[RESOURCE] Distilled by Michael Thomas

Resource title
Distilled by Michael Thomas
URL
https://www.distilled.earth/
Relevant tags (1 per line)
Climate Journalism
Resource Summary
Deeply researched stories about the politics of climate change. Written by Michael Thomas.
Relevance
Contains a host of bold, concise overviews of climate policy in the US and abroad, plus excellent collaborations with Emily Atkin on following the money
Other comments
No response

Great suggestion (love the new tag too).
Made some edits to your post (note that the resource summary section is the one that is used in the website on the cards, so is good to keep timeless).


Longitudinal aggressiveness setting (also changes follow distance)

Gated on fixing several car bugs:

[ ] https://github.com/commaai/openpilot/issues/24744
[ ] https://github.com/commaai/openpilot/issues/24745
[x] https://github.com/commaai/openpilot/issues/24746

@HaraldSchafer useful to keep this open or can we close for now?


The default execution environment cannot even run an ansible job with built-in modules. Had to use alternative images to build a custom execution environment to successfully run a job

The default execution environment cannot even run an ansible job with built-in modules (
ghcr.io/ctrliq/ascender-ee:latest). Had to use alternative image to build a custom execution environment to successfully run a job.
Attempt to run a Job template with the default execution environment gave error for ansible.builtin.ufw and community.general.ufw modules. The base image does not even have Python3, so customizing packages always results in a failed build. I could not explore the ghcr.io registry, so not sure if any other variants could be of use here.

When tried with a CentOS9 based custom execution environment, which I have built with ansible core 2.15.x and ansible version 8.7 with all necessary collections and pip packages, I never faced any challenges while running the ansible job.

What is missing here?

@muralihcl Are you certain that there is a ansible.builtin.ufw module? I'm not seeing that there is one in the documentation. Regarding the community.general collection, I'll see if that's part of the execution environment.

Apparently, ansible.builtin.ufw gets is an alias to community.general.ufw. But, I still cannot run the jobs with the default execution environment.
The execution environment is pointing to the image ghcr.io/ctrliq/ascender-ee:latest and it is set to never pull the image.

The containerd shows the image is present on the system via 'crictl image ls'.

I customized an execution environment and tagged it to be visible as custom-ee and setup the execution environment pull policy to never.
With Ascender-EE(latest), I still cannot run the job. It says, unable to resolve community.general.ufw module. With Custom execution environment, I can run the job without any challenge.


Unexpected container CPU usage values

We are currently on diego 1.25.3 and garden-runc 1.9.3 and we notice that sometimes the container metrics contain CPU usage values in excess (> 800%) of the number of available cores (8):

(this is the graph over time of the raw CPU usage container metric; values over 800% should be impossible)
Similar data is reported also by the CF CLI, so it's not a visualization issue:
cf app myapp
Showing health and status for app myapp in org myorg / space myspace as someuser...

name:              myapp
requested state:   started
instances:         1/1
usage:             2G x 1 instances
routes:            someroute.local
last uploaded:     Mon 18 Dec 14:31:27 JST 2017
stack:             cflinuxfs2
buildpack:         https://github.com/cloudfoundry/java-buildpack.git

     state     since                  cpu      memory       disk           details
#0   running   2018-04-03T08:39:54Z   821.7%   1.2G of 2G   203.5M of 1G

According to the code this shouldn't be possible: https://github.com/cloudfoundry/executor/blob/43ab01d775d6de766eb90cce4169c9d89028645f/containermetrics/stats_reporter.go#L199-L206

Hey @CAFxX, quick question: do you have diego.executor.container_metrics_report_interval set in this environment, and if so, what is it set to?
Thanks!

@goonzoid we have it set to 2s

Hi @CAFxX, we have discovered the root cause in this story: https://www.pivotaltracker.com/story/show/156491008
In short, the current implementation of the way the executor collects metrics introduces a nontrivial (possibly 5s, depending on number of containers on the cell and CPU load) delay that could contribute extra time to timeSpentB in the CPU percentage calculation.
To alleviate this issue for the meantime, is it possible to increase your  diego.executor.container_metrics_report_interval to a higher value? I concede that the calculation for CPU usages would still be inaccurate, but would at least be less likely to reach shockingly high values.
For the future, I believe we on the Diego team would need to work with the Garden team to see how we can resolve this issue in the future and work out a better user experience for understanding app resource usage.

We can raise it temporarily, although this will cause some pain to our users that have custom monitoring systems using container metrics as one of their sources.
Just as a data point, our cells have ~7.5 instances running on average. We don't use hard caps, but I would expect that load generated inside containers shouldn't negatively impact the functionality of rep/garden.


darknet version with MacOS El Capitan

It would be nice if you could offer the  darknet version with MacOS El Capitan,so we can run yolo9000 on our mac.

Thanks for reaching out @crazymxm ! Good news I can make it work without you to download anything!
The latest version of darknet seems to yield a Segmentation Fault on OSX El Capitan.
I could make it work that way:
git clone --recursive git@github.com:philipperemy/yolo-9000.git
cd yolo-9000
cat yolo9000-weights/x* > yolo9000-weights/yolo9000.weights # it was generated from split -b 95m yolo9000.weights
md5sum yolo9000-weights/yolo9000.weights # d74ee8d5909f3b7446e9b350b4dd0f44  yolo9000.weights
cd darknet
git reset --hard b61bcf544e8dbcbd2e978ca6a716fa96b37df767
make # Will run on CPU. For GPU support, scroll down!
./darknet detector test cfg/combine9k.data cfg/yolo9000.cfg ../yolo9000-weights/yolo9000.weights data/horses.jpg

The only difference here is this line:
git reset --hard b61bcf544e8dbcbd2e978ca6a716fa96b37df767

I explicitly ask for this commit because I know that it was working.
What we can do (later on) is to investigate which commit triggers this segmentation fault.


Direct Peering Fails on RC5

Describe the bug
Direct peering fails with connection refused Autopeering is turned on for both nodes.
acceptAnyConnection is only true for iota.direct
To Reproduce
Add peers to each nodes peering.json
note turning on acceptAnyConnection on Little Small allowed peering to initiate.
Expected behavior
Nodes should add both hosts and initiate gossip
Environment information:
Little Small

Ubuntu 18.04 4GB 2 Core Hetzner CX21
Hornet Version 0.4.0-rc5-c829585
acceptAnyConnection = false

iota.direct

Ubuntu 18.04 16GB 4 Core Hetzner CX41
Hornet Version 0.4.0-rc5-7e8fc74
acceptAnyConnection = true

Additional context
iota.direct
Log> https://ybin.me/p/82f305df7f4362aa#woRVd41ajqw+CM7obsDrWQAtGSLbwgbKj9e/6B3pZSM=
peering.json> https://ybin.me/p/4734fd9ac475f5f3#53cKxKSh9pdgnW6q1a4mwbNSDfbkZiE7qQKVvu41UjM=
Little Small
Log> https://ybin.me/p/4edacc0bf9c585eb#acEwcSt997NnYUNAF4uQbnxP+Nu6BluCGCLnJUu8Sys=
peering.json> https://ybin.me/p/005ab2af25c36820#NUlxEqwWFuEO0XgKisKAopJhlypOnsn+cwUM3FwEmzk=

I can neither find a log entry about the modification of the peering.json file nor the attempt to add the respective other neighbor.

Have you previously removed or added neighbors via API?
Is the neighbor shown in the dashboard?
Does the peering work after a restart of both nodes?

Both nodes had each other configured from initial start. There were edits to peering.json to update other nodes during that timeframe.

I have the same issue between iri and hornet.  I'll see if I can catch it when it says disconnected in hornet and grab the log

Seems to be related to #165


⚠ Bofrost.at has degraded performance

In b98d8a3, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1328 ms

Resolved: Bofrost.at performance has improved in 48c3a98.


Fix OAuth2 code verifier too short (#1793)

Description
As per RFC 7636: Proof Key for Code Exchange we should expect code verifier to be at least 43 characters after URL encode. Current implementation gives only 32.
Contribution Checklist:

[x] The pull request only addresses one issue or adds one feature.
[x] The pull request does not introduce any breaking changes
[x] I have added screenshots or gifs to help explain the change if applicable.
[x] I have read the contribution guidelines.
[x] Create an issue and link to the pull request.

Fixes #1793

Merged.
Thank you @pietrygamat !


Fix image

close #909

@jimmychu0807 you lost the transparency in these photos. Probably fine overall, but not so nice when in dark mode.

@NukeManDan the image has been updated to transparent background and dedup'ed.


NumericTransformer

We're running into a common issue where nodes that should be able to support either DenseVector[Double] or DenseVector[Float] generically are not because breeze supports these two datatypes inconsistently and converting to/from some input type generically is hard.
@shivaram suggested we create a new "NumericTransformer" API which handles this in a type-safe way and hides some of the complexity under the covers. Things this API might have in it include static checking for input/output types, efficient implicit conversions for the case where conversion is a noop, etc.
More discussion on #74
cc @tomerk

@etrain how would you guys feel about an interface kind of like this?
abstract class NumericTransformer[T : BreezeNumeric] extends Transformer[DenseVector[T], DenseVector[T]] {
  def apply(in: DenseVector[T]): DenseVector[T] = {
    apply(in.asDenseMatrix).flatten()
  }

  def apply(in: DenseMatrix[T]): DenseMatrix[T]

  def onMatrix: NumericMatrixTransformer[T] = NumericMatrixTransformer(this)
}

abstract class NumericEstimator[T : BreezeNumeric] extends Estimator[DenseVector[T], DenseVector[T]] {
  def fit(data: RDD[DenseVector[T]]): NumericTransformer[T]

  def onMatrix: NumericMatrixEstimator[T] = NumericMatrixEstimator(this)
}

case class NumericMatrixTransformer[T : BreezeNumeric](x: NumericTransformer[T]) extends Transformer[DenseMatrix[T], DenseMatrix[T]] {
  def apply(in: DenseMatrix[T]): DenseMatrix[T] = x.apply(in)
}

case class NumericMatrixEstimator[T : BreezeNumeric](x: NumericEstimator[T]) extends Estimator[DenseMatrix[T], DenseMatrix[T]] {
  def fit(data: RDD[DenseMatrix[T]]): NumericMatrixTransformer[T] = {
    x.fit(data.flatMap(MatrixUtils.matrixToRowArray)).onMatrix
  }
}

I'm also starting to wonder if maybe using DenseVector as the canonical features representation instead of a DenseMatrix with only one row is more trouble than it's worth.

Especially because it's easier to translate Matlab code to work on DenseMatrix than DenseVector

I think it's a good idea to keep a separation between Matrix and Vector - while a matrix generalizes a vector, it's good for interfaces to reflect the logical intent of the operators, and probably more natural for Transformer developers to be operating on DenseVector than DenseMatrix.
Also - we should shy away from choosing interfaces because it makes translating from Matlab easier. Instead, let's try and focus on having the best possible interfaces so that we don't accidentally assume some of Matlab's deficiencies.

Fair enough. With that in mind how do you feel about the above interfaces?

I guess you would prefer requiring the single vector impl to be implemented and having a default matrix impl instead of the above?

Yeah, that could work. In general I thought this issue was about centralized handling f the Double vs. Float problem - is this addressed via BreezeNumeric and if so, how does that work?

It is, but there are enough cases where we want to do an "on matrix" / batch operation on what's otherwise a normal NumericTransformer that I think this is a relatively reasonable place to include that functionality (and allow overriding for optimized implementations).

well, keep in mind that most of the time we're talking about batching matrix operations together, it's probably going to be about converting an entire partition into a row matrix and allowing for an override of default behavior that operates on that matrix.

but yes - i agree this is a fine place for that functionality!

There's that case and there's all the cases in the image pipelines, or e.g. LDA on the frames in the TIMIT pipeline

Right, right. I think whatever we figure out for the DenseVector case is also going to work in the DenseMatrix case (w.r.t. the Float/Double thing) and I'm unsure if we want to put those all under the "NumericTransformer" umbrella or not. This actually might be a reasonable place to think about using mixins.

So, I actually looked at Mixins for this previously. To be able to mix in something you have to construct it with the "new" command, so you can't use a case class (or any object) constructor


Behaves differently with jq regarding precedence of try

In jq, it seems to be that many expression inside try block, if not all, are required to be parenthesized. For example, if jq sees a * between try and catch, it throws a compilation error where gojq accepts it.
$ jq -n 'try . * . catch .'
jq: error: syntax error, unexpected catch, expecting $end (Unix shell quoting issues?) at <top-level>, line 1:
try . * . catch .
jq: 1 compile error
$ gojq -n 'try . * . catch .'
"cannot multiply: null and null"

Furthermore, if the catch part is missing, jq and gojq both accepts the query but the created parse tree seems to be different.
$ jq -n 'try error("a"), .'     # treated as (try error("a")), .
null
$ gojq -n 'try error("a"), .'   # treated as try (error("a"), .)
$ jq --version
jq-1.6
$ gojq --version
gojq 0.12.6 (rev: HEAD/go1.17.6)

The original motivation I remember is to make more queries acceptable in try statements than jq, as I thought using parenthesis in a query like the first example is very annoying because there is no syntax ambiguity. But precedence issue like the second example, or even with arithmetic operators (try 0 * error(0)) is considered as a bug in gojq. I fixed this.


Add walk trajectory visualisation in localisation view

This PR adds a visualisation of the walking trajectory in the localisation view.
TODO:

[ ] Improve trajectory rendering method, very poor performance after a while

Waiting on https://github.com/NUbots/NUbots/pull/1316

should the branch be deleted or are you still working on this?

No, I just wanted changes merged without nusight stuff which I am still working on


Correct typos for most of section 1 docs

I saw "then" in place of "than" and just couldn't keep reading without fixing it.

Thanks @wolf99! And thanks the review notes, it was painful to check the diff by hand.