Consider a "ruby-grpc" Ubuntu package?

Related to #1165 and #4128
This would make the Ruby installation look like:
$ sudo apt-add-repository <ppa> # If we make this go away, that's bonus
$ sudo apt-get install ruby-grpc
$ ruby -e 'require "grpc"'
$

@jgeewax  we just published native ruby gems (with version 0.13). Is this still an issue or can we close this?

I think this can go away.


PQL - Plot Query Language

For CSV visualizer tool:
implement SQL-like DSL parser for creating 2D plots
Syntax
PLOT <plot_type>
USING <x_column> [AS <x_label>], <y_column> [AS <y_label>]
[WHERE <condition>]
[GROUP BY <column>]
[HAVING <condition>]

EBNF
<plot_statement> ::= "PLOT" <plot_type> <using_clause> [<where_clause>] [<group_by_clause>] [<having_clause>]

<plot_type> ::= "BAR" | "LINE" | "SCATTER"

<using_clause> ::= "USING" <attribute> "," <attribute>

<where_clause> ::= "WHERE" <condition> {<boolean_operator> <condition>}

<group_by_clause> ::= "GROUP BY" <identifier>

<having_clause> ::= "HAVING" <aggregated_condition> {<boolean_operator> <aggreated_condition>}

<boolean_operator> ::= "OR" | "AND"

<attribute> ::= <aggregated_column> ["AS" <identifier>]

<aggregated_column> ::= <aggregation_function> "(" <identifier> ")" | <identifier>

<aggregation_function> ::= "AVG" | "COUNT" | "SUM"

<identifier> ::= <alphabetic> { <alphabetic> | <digit> | "_" }

<aggregated_condition> ::= <aggregation_function> "(" <identifier> ")" | <identifier>

<condition> ::= <identifier> <comparison_operator> <value>

<comparison_operator> ::= ">" | "<" | ">=" | "<=" | "="

<value> ::= <number> | <string> | "NULL"

<number> ::= <digit> {<digit>}

<string> ::= "'" <alphabetic> {<alphabetic>} "'"

<digit> ::= "0" | ... | "9"

<alphabetic> ::= "A" | ... | "Z" | "a" | ... | "z"

Parsing work done here https://github.com/joeyshi12/pql-parser


How to install iree-jax

I didn't find a document.
The notebook https://github.com/iree-org/iree-jax/blob/main/colab/conways_game_of_life.ipynb contains a pip install command. Unfortunately, running it on macOS/arm64 13.1 with Python 3.10 gave me the following errors.
11:35 $ pip install git+https://github.com/iree-org/iree-jax
Looking in indexes: https://pypi.apple.com/simple
Collecting git+https://github.com/iree-org/iree-jax
  Cloning https://github.com/iree-org/iree-jax to /private/var/folders/hd/6q8jftdn7b1fygsrzdkp5ww40000gn/T/pip-req-build-uai2j2j8
  Running command git clone --filter=blob:none --quiet https://github.com/iree-org/iree-jax /private/var/folders/hd/6q8jftdn7b1fygsrzdkp5ww40000gn/T/pip-req-build-uai2j2j8
  Resolved https://github.com/iree-org/iree-jax to commit fa3e3d9c06b13f7e8d89749b5c598be49d5e6c9e
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy in /Users/y/miniforge3/envs/iree-jax/lib/python3.10/site-packages (from iree-jax==0.1.dev1) (1.24.1)
Collecting jax>=0.4.1
  Downloading https://pypi.apple.com/packages/packages/c9/cd/5d77845520ea6f3c96b6121ddba7068f9f1b789f4a534005a29cce829804/jax-0.4.2.tar.gz (1.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 4.3 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
ERROR: Could not find a version that satisfies the requirement iree-compiler>=20221121.334 (from iree-jax) (from versions: 20220523.147, 20220714.204, 20220811.232, 20220902.254, 20220930.282)
ERROR: No matching distribution found for iree-compiler>=20221121.334

python setup.py develop failed with the same error -- iree-compiler from pip seems too old. https://github.com/iree-org/iree-jax/issues/46

Can you try running this script? https://github.com/iree-org/iree-jax/blob/main/build_tools/pip_install.py (from the iree-jax/ repo root), as here: https://github.com/iree-org/iree-jax/blob/fa3e3d9c06b13f7e8d89749b5c598be49d5e6c9e/.github/workflows/test_gpt2_model.yaml#L25-L28
(Sorry, we're still stabilizing all these releases / published packages)

Here's what I think is happening:
The pinned versions in https://github.com/iree-org/iree-jax/blob/main/version_info.json can include nightly releases of the IREE packages that are not published to pypi. The pip_install script and some other samples set -f https://iree-org.github.io/iree/pip-release-links.html to include the extra index (see https://pip.pypa.io/en/stable/cli/pip_install/).
The notebook you linked also fails in Colab with the same error: https://colab.research.google.com/github/iree-org/iree-jax/blob/main/colab/conways_game_of_life.ipynb (connect to a hosted runtime and try running the first cell)
So probably not macOS specific.

Thanks @ScottTodd !
Because iree-jax is under development, I tried to install it from source code.

Install jax with pip install jax
Install iree.compiler and iree.runtime and iree.jax by setting the PYTHONPATH environment variable.source build/compiler/.env && export PYTHONPATH
export PYTHONPATH=$PYTHONPATH:$PWD/iree-jax

And it works.


Draft: Single Page Checkout

PR Type
[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build-related changes
[ ] CI-related changes
[ ] Documentation content changes
[ ] Application / infrastructure changes
[ ] Other:
What Is the Current Behavior?

Issue Number: Closes #
What Is the New Behavior?
Does this PR Introduce a Breaking Change?

[ ] Yes
[ ] No
Other Information

Was just for exploration. Is not yet in any state to be a mergeable PR.


Automatically find and match observation photos using SSIM

This would be a feature to automatically match individual local photos to individual remote photos. If you already have a bunch of observations uploaded but not tagged, this would be a massive timesaver.
A basic implementation using an existing SSIM library would be manageable. Possible libraries:

scikit-image
SSIM-PIL
pyssim
tensorflow.image.ssim
PIQ

Some preliminary tests are here: https://github.com/pyinat/naturtag/blob/ssim/test_ssim.py
Basic steps might look something like:

Get all user's observations
Download medium-sized versions of all observation photos
Get all specified local photos
Narrow down matches by comparing EXIF date taken with observation date/time, += some time window

iNat strips photo metadata, so we don't have date taken info for remote images

Generally assume that remote images are a subset of local images
For each observation photo:

Get SSIM score against each candidate local photo (within possible time window)
Pick highest-ranked image, with some score threshhold (in case no local match exists)

Notes:

This could be quite computationally intensive for a large photo collection/observation history, so performance optimization may end up being the most difficult part.
Some of the above libraries have fairly heavy dependencies, and I don't want to bloat the size of the naturtag installer too much
The best performance is going to be with GPU acceleration, but that requires platform-specific binaries that I don't think I could package with naturtag
Possibly include both a CPU-only version and a GPU-optimized version?

I just found out about naturtag, and have been working on a much simpler script to do this specific task. I’ve been using datetime-based photo-to-observation matching when possible (sadly iNat makes this unnecessarily difficult), falling back to RMSE image comparison in ambiguous cases. Happy to share what I end up with and maybe send a PR once I’ve got something working.

Cool, thanks for reaching out! Have you had success with matching some of your own observation photos this way? I believe I previously tried matching image timestamps like (EXIF DateTimeOriginal) and iNat observation metadata (observed_on), but that didn't work well for observations with multiple photos. There is some additional metadata available on the photo info pages on inaturalist.org. It's not available through the API, but I have an example of scraping it here (and some related links here). The "Date time original" field is likely the best candidate, but I'm not sure if that reliably matches the source EXIF or XMP metadata.
This is an interesting (and IMO very useful) problem to solve, so I'd appreciate any other notes or ideas you have on the topic!


add anmol mainnet and testnet address prefixes

The Anmol team wishes to register the 100 prefix for our testnet: ibtida & 92 prefix for our mainnet. This is to easily identify addresses and to prevent re-use across our imminently launching test net and future mainnet.
Please let us know of any feedback and thank you for your time.

@justinFrevert just following up on this, do you have a public endpoint for the testnet? Is 100 a testnet or a canary network? Testnets don't need a prefix

I believe @nblogist had taken over this at some point, so he may need to make a decision based on that information.

Thank you @justinFrevert @BenWhiteJam, @vedhavyas will be working on this now.

@BenWhiteJam 100 is canary network.

Thank you @justinFrevert @BenWhiteJam, @vedhavyas will be working on this now.

@nblogist  I would like to get in contact, could you please reach out on Element ? Thanks in advance!

Hey @DanielCake-Baly I have recently lost access to my element. Can you please reach out on my telegram @furqanahmed18

Hey @DanielCake-Baly I have recently lost access to my element. Can you please reach out on my telegram @furqanahmed18

Thx @nblogist , I just did.

Hey @nblogist, a kind reminder.

Thank you @DanielCake-Baly will be doing it this week


Rewrite HIP31 with Token Lock rather than Token Burn mechanism

A rewrite of the existing HIP31. This proposal suggests on-chain governance voting for implementations of chain variables and protocol upgrades.

PR from author, permission granted to auto-merge
I'm going to rename the underlying file and then update a few other links. Otherwise looks good
I'm sort of a bot beep boop

Relates to #183


Fix duplication of records

Fix the case where files have already been copied to redshift.

Thanks Alex for your contribution. It was merged.


Constant nodes with value of 1 yeild primary implicant of '22' (corresponding to number of inputs)

Minor issue:
If you have a node that has a few input nodes, but is a constant of 1, the primary implicates will be calculated as '222' instead of the behavior of constant of 0 where it doesn't generate any pi. This normally isn't an issue, as most networks don't have constants in them, but if you do have networks with constants it could throw off subsequent calculations and analysis.
Fix would be to make constant of 1 operate like constant of 0.

Thank for submitting the ticker @hsizek! Can you generate a simple case and perhaps suggest a possible fix? I guess in the past we never ran into this particular case. We would be happy to include a pull-request.
Adding @xuan-w to follow this too.


Responsiveness on the demo web-site - how?

I can see that the demos on the web-site are quite responsive, for example the toolbar re-arranges its buttons if they don't fit on a single row.
Desktop-size browser:

mobile-size browser:

I am using similar code for the toolbar in the test app and I couldn't achieve the same - the toolbar does not respond.
The code is in https://github.com/sAbakumoff/FlashCards/blob/master/scripts/components/main.js
and
https://github.com/sAbakumoff/FlashCards/blob/master/scripts/app.js
that's pretty much it..
What I am missing?

https://github.com/callemall/material-ui/blob/master/CONTRIBUTING.md#asking-questions


Envest/single cell prediction nb

This PR explores results from using a kTSP prediction model to predict the subgroup of individual cells. Overall, it works!
For some samples, there is a mixture of subgroups predicted within the population of cells. The confidence level given to those predictions tends to be lower. This is visualized, along with a UMAP mapping of clusters and cell subgroup.
Your much greater experience using markdown notebooks could be a great benefit here, along with ideas for how to show these ideas more convincingly. Thanks!

👋 @jaclyn-taroni ready for review! I reformatted the patchwork plot a bit to get everything to show up nicely, and also added a plot that shows how prediction scores for G3 and G4 exist on a continuum between G3 and G4. Some cells are all G3, some are all G4, but most have signal from both. That feels like a supplemental figure to me, or maybe even simply left in the notebook.
Thanks for your review!

@jaclyn-taroni Update: I've updated scripts to incorporate all suggestions, including:

Split prediction tasks from plotting tasks
Included RF model results
Used model types as defined in the models, not hardcoded
Fixed plot file names and section titles

What I have not done yet is go back to re-interpret results and reimagine how to illustrate our main points in the notebook. That is next!

@jaclyn-taroni You've already requested yourself. We discussed this review should cover technical changes, and we'll save interpretative / creative visualization changes for a later date, after we fix some aspects of modeling. Thanks!


please  help me how to set the item hight.

please  help me how to set the item hight.
beaucus,Preference hight  PreferenceScreen hight different Very ugly
and  how to set icon size,every icon different

Easiest way would be to change android:layout on your preference.
Presumably the PreferenceScreen item has only one line of text and therefore takes ~48dp height. Two line items have around 72dp height. This is correct behavior. See https://www.google.com/design/spec/patterns/settings.html#settings-usage.

thank u


ALEX Launchpad - grant application

The Problem
Many projects want to distribute tokens in a fair way among the community, with the tokens remaining in the hands of those that are invested in the project for the long term, instead of speculators looking for quick profits. At the same time, the projects need their projects to build deep liquidity with efficient price discovery of their tokens, without requiring heavy capital investments from the team.
The Solution
"ALEX Launchpad" helps founders solve these problems: projects are able to fairly distribute tokens with minimal capital investments. "ALEX Launchpad" develops a simple UI powered by ALEX's core technology.
ALEX's core technology is an application of the Liquidity Bootstrapping Pool ("LBP") pioneered by Balancer, but applied to Stacks. LBPs allow projects to launch tokens with custom capital requirements--including very low capital requirements.
ALEX's LBP will consist, at first, of pool with exactly 2 assets or tokens. One token will be the project's token. The other token will be chosen by the project, such as STX, or BTC. The ratio, or weight of the tokens, can be determined by each project themselves.
To minimize capital requirements in terms of the collateral token, a project may choose to start with a 90:10 ratio of Project_Token:Collateral_Token for example. People may put collateral tokens into the pool in exchange for the project's tokens.
To promote price discovery while preventing malicious behaviors from bots or front-running, LBPs can evolve in specific ways over time. For example, over time, the pools token weights may gradually change. Typically, the weights will change such that the project token's relative weight in the pool decreases, while the collateral token's relative weight increases until the end of the token distribution.
The relative weights of a project's token to collateral tokens can be held constant, it can increase, or it can decrease. ALEX Launchpad offers projects the full range of possibilities, allowing projects to customize the evolution of their token distribution in ways that best fit their intentions.
Should a project want to maximize the number of collateral tokens received in exchange for the project's tokens, they could hold the relative weights constant over time. In turn, should a project want to maximize the speed at which the tokens are distributed, they may choose to decrease the weight of the collateral token over time.
Should a project want to maximize fair distribution while minimizing price speculation, then the project may choose to increase the weight of the collateral token over time. This approach prevents "whales" from performing a “rug pull” or a similar technique that leads to instant price volatility and allows for more fluid price discovery for the token. This is because tokens are released slowly with changing weights, whales are forced to split their trades into separate, small, trades over a longer period of time.
LBPs were first offered by Balancer in 2020 and have been used as an alternative to ICOs, IDOs or IEOs. On ALEX, LBPs will be built using fundamental building blocks developed as part of an earlier grant application. In particular, LBPs will leverage the Weighted Equation and Fixed Weight Pool building blocks, and thus notably show how developers can build on and extend ALEX.
Comparables
There does not currently exist a launchpad for IDOs on Stacks. ALEX is uniquely positioned to build an IDO launchpad on Stacks because ALEX is building technology that builds upon and extends technology pioneered by Balancer as well as Compound and Aave. We are not aware of other efforts even attempting to build a decentralized launchpad solution on Stacks that solves the problems above.
Expected Impact
Would it matter if ALEX launchpad, as a decentralized token issuing platform, does not exist? We believe it would. With ALEX launchpad, we expect that it becomes much easier for new projects to issue tokens. The expected outcome should be a) a greater number of projects joining Stacks because it's become easier to issue tokens, b) a greater number of projects issuing tokens on Stacks than would otherwise be the case, b) a less concentrated distribution of tokens across tokenholders than would otherwise exist.
Milestone 1
Deliverable: A smart contract on mainnet implementing a functional version of the two-token Liquidity Bootstrapping Pool described above, released under a MIT License.
Requested grant: 25,000 USD
Deliverable deadline: Sep 15
Upon completion of Milestone 1, we would like to review and expand the scope of grant. To provide some examples for extensions, one potential next milestone would be to upgrade the LBP from two token pools to pools with more than two tokens. For example, instead of a pool with a 50:50 ratio of a project's token with some collateral token, we could enable a pool with a 33:33:33 ratio of a project's token, some collateral token, as well as another collateral token. Another option is to allow projects to issue NFTs for buyers from an LBP, as a type of badge that they were there when a project first launched.

Hi @fiftyeightandeight, thanks for this proposal! Very interesting idea that we'd like to learn more about. Our questions mainly have to do with what the final product looks like as well as your plans for ensuring that the launchpad has traction/use right away. Questions are as follows:

Are there plans to build an accompanying UI/platform that users can take advantage of upon launch?
Or will there be a portal/easy way for projects and liquidity providers to join the launchpad?
Do you already have partners lined up for this?
Can you provide more information on the development of the smart contract itself (i.e. how advanced is it)? How much does the design of ALEX's LBP smart contract differ from that of Balancer's?


Add: Secondary EAN Database API

Since the OFF/OBF/OPF-API isn't anywhere near complete, we should consider adding a secondary EAN Database API.
The following are the most interesting:

[x] Look into eandata.com (Signup required for the API info) [Rating ⭑]
[ ] Brocade API (Example for Oreos), gives out only product names, no labels or ingredients [Rating ⭑⭑⭑]
[ ] Open EAN Database (Example for Oreos), gives out ingredients sometimes, may have to use another API like djohanna/is-vegan, semi-paid for open-source projects [Rating ⭑⭑⭑⭑]

Agreed. That has to be done quickly, maybe even in 1.6.
I vote for the third option, but the output in MIME seems quite weird.

Yeah, it seems odd, but it's easily readable with e.g. $line[2].

maybe even in 1.6.

Will change that to the v1.6 milestone.

When are you planning to implement one of the APIs? I still like the third option the most since it seems to big a really big db but the 2nd option seems like a good starting point too, if we're planning to direct more people towards Open-x-Facts to add product info.

I'd imagine the Open EAN Database would be great, but the rate limit of 500 could become a problem, since we peaked at ~ 2k visitors a day this month with an average of 900 visits/day.
However, we do not get nearly as much real users which really perform a request, so we're at ~600 requests/day from which 1/4 are empty or nulled (probably requested by bots).
Empty requests look something like this btw:
{
		"scan": {
			"code": "",
			"response": {
				"status": "0",
				"api": "0"
			}
		},
		"metadata": {
			"timestamp": {
				"date": "26-01-22",
				"time": "09:34:44pm"
			},
			"debuginfo": {
				"device_type": "mobile",
				"support": {
					"ticket": "61ef******"
				}
			},
			"localization": {
				"lang": "cn",
				"supported_lang": "en"
			}
		}
	}

Requests like this should in no case be sent to the mentioned API, since we would easily reach the rate limit in a relatively short time, especially if some botters would use our script.php directly as a point of attack.

the 2nd option seems like a good starting point too, if we're planning to direct more people towards Open-x-Facts to add product info.

I like your idea of sending more people to OFF to add ingredients or something else to a product page. The Brocade API should be also much simpler to implement.
It's gonna be a busy weekend but I'll at least try to implement Brocade.
EANData however is out of the game, I couldn't find a working API although they're advertising one.

Okay, I just looked into Brocade again and it seems like they do provide ingredients.
That also means that we indeed could use Brocade as a fallback, if OFF does not have any information at hand.
With dj-johanna/is-vegan, we could extract if the item given is vegan or not. Will open a new issue for that.

Thank you for the request insight.
Maybe we should think about documenting the function of the script.php and the corresponding JSON responses written to the/generated by the API (?) in a wiki or a blog post.
Since all tasks are done in this issue and you moved the now main subject brocade.io to #80 I'll close this issue for now.

we could extract if the item given
Extract wahrscheinlich oder 😂

@gitgauner Aaaaa halts maul :D
The JSON responses are generated by the vegancheck-stats-api and are mostly relevant for debugging (and finding out if we need to limit request or so) but we could write an article about that.


Minor fix on theme variables

--signature is not defined for .dark which causes a visual error on dark mode (invisible on the menu).
Issue here #26

The signature fix for .dark fixes indeed the issue with an hidden menu active item. Please consider mergint hat.


[Feature request]: OkHttp3Client support

General Info

[X] I installed the latest version of Supabase Kt
[X] I checked for similar feature requests

Feature request
I would like to be able to override/add caching for my calls to my tables and currently there doesn't appear to be any support for doing that.
Usecase
As mentioned above, being able to cache table queries when offline would be awesome.

You can specify httpEngine in SupabaseClientBuilder there is an OkHttp backed Ktor client so you could use that one.

General Info
* [x]  I installed the latest version of Supabase Kt

* [x]  I checked for similar feature requests

Feature request
I would like to be able to override/add caching for my calls to my tables and currently there doesn't appear to be any support for doing that.
Usecase
As mentioned above, being able to cache table queries when offline would be awesome.

Normally you don't even need to specify the Engine yourself, Ktor will pick one from your dependencies. If you want to add caching, you can either specify a custom Http Engine or call httpConfig to install custom plugins.

This was super helpful! I appreciate it a ton.


How do you quantize the backward?

Hi, how do you quantize the backward propagation of error?
To get the gradient of weights in layer N and the error in layer N-1:
gradient_weight_N = error_N * activation_N
error_N-1 = error_N * weight_N
I am wondering how you quantize these matrix multiply operations in your code.  I want to make the quantization of error visible to evaluate its influence on training

Hi I wonder if these lines of codes are what you are looking for?
https://github.com/stevenygd/SWALP/blob/99c1f4d9c0c8067e92a4fecc41ec0a0d2595c1ae/models/quantizer.py#L78

The backward function in class BlockRounding is for the quantization of error， right?
I  noticed that you use quant() before and after each conv layer, that is to say the output of conv layer is quantized during forward propagation?

Yes the output of the conv layer is quantized during the forward pass. The backward pass is also quantized (int he backward function of BlockRounding)

Hi，thanks.
Is it possible to make these two matrixes operation visible in Pytorch? Or debug it step by step?
gradient_weight_N = error_N * activation_N
error_N-1 = error_N * weight_N

Yes that's possible, you might need to reimplement the inner layer. For simulation purpose, quantizing the output and the backward signal seemed to be a good approximation.

Thanks for your reply.
Last question, I noticed that the SWA model you get in your code is FP32， why not quantize it to int8？

You can quantize it to 8-bits, but with some degradation in performance. For more details, please refer to Figure 3 in the paper, which contains the results of an experiment in which we quantize the SWALP model to lower precision (e.g. 8 bits).


fix: set initial access token

What kind of change does this PR introduce?
Fixes the issue where using Supabase realtime without signing in sends null access token to the server.
Currently, accessToken of RealtimeClient class is only set within setAuth, but if the user is not signed in via Supabase Auth, realtime.setAuth is never called, hence resulting in null accessToken value.
This PR updates RealtimeClient to use the apikey, which contains either the anonkey or the service role key as the initial value of accessToken.

Totally separate issue, but isn't it weird that Github actions aren't running?


Example implementation of FAST configuration switches for features

This shows how I would approach the topic of "configuration switches" we discussed last week:

a simple object variable with one bool type member for each feature
declared in stage 00 and set by default to enable all features
stored in globals like other user-configurable stage 00 variables that carry over to other stages

It looks pretty simple and does not complicate code readability.

I'm aware this is just a stab - couple of observations:

Disabling branches has impact also on later stages (definitely networking)
I would want to see e2e tests with disabled features

Nice one.

Disabling branches has impact also on later stages (definitely networking)

Yep, the config is trickled down through all stages, so each stage should comply with it for it's own part.

I would want to see e2e tests with disabled features

Yep, we need to great point.


chore: version packages

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to master, this PR will be updated.
Releases
<EMAIL_ADDRESS>Note: Version bump only for package @stacks/cli
<EMAIL_ADDRESS>Note: Version bump only for package @stacks/stacking

Codecov Report

Merging #1413 (05560eb) into master (c9ff1eb) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1413   +/-   ##
=======================================
  Coverage   63.49%   63.49%
=======================================
  Files         116      116
  Lines        8500     8500
  Branches     1875     1875
=======================================
  Hits         5397     5397
  Misses       2974     2974
  Partials      129      129

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


MXNet high api

Redo MXNet high_api example using .fit() to match Tensorflow and CNTK.

@ilkarman  FYI MXNet has released 1.1.0 with several speed improvements.
There is also the MXNet/Gluon API that lets you write imperative code

@ThomasDelteil Thanks! I also see MXNet now supports NCCL instead of 'device' for kvstore multi-gpu, so will be really cool to test. Gluon is interesting but it seems marginally slower than MXNet? https://github.com/ilkarman/DeepLearningFrameworks/blob/master/notebooks/Gluon_CNN.ipynb

Yes it is a bit slower because the network is not compiled and optimized but you can call '.hybridize()' and you lose the advantage of being able to debug in depth but the computation graph is then cached and you should see the performance improvements

On my instance, running the Gluon notebook I get:
Wall time: 1min 19s
When using a HybridSequential block and .hybridize():
Wall time: 45.9 s
OS:  linux
Python:  3.6.3 |Anaconda custom (64-bit)| (default, Oct 13 2017, 12:02:49)
[GCC 7.2.0]
MXNet:  1.1.0
Numpy:  1.13.3
GPU:  ['Tesla V100-SXM2-16GB']
CUDA Version 9.0.176
CuDNN Version  7.0.5

Also, MXNet backend is enqueuing operators and tries to smartly parallelize the execution to avoid starving off your GPU.
When computing the loss on every batch you are forcing data to be copied to the CPU, because you are adding the training loss as a scalar. The GPU wait for this data to be copied over, you are essentially having an implicit nd.waitall().
If you rewrite your loop to have the loss added on the GPU directly and only retrieved at the end of the epoch:
%%time
Main training loop: 62s
sym.hybridize()
for j in range(EPOCHS):
train_loss = nd.zeros(1, ctx=ctx)
for data, target in yield_mb(x_train, y_train, BATCHSIZE, shuffle=True):
# Get samples
data = nd.array(data).as_in_context(ctx)
target = nd.array(target).as_in_context(ctx)
with autograd.record():
# Forwards
output = sym(data)
# Loss
loss = criterion(output, target)
# Back-prop
loss.backward()
trainer.step(data.shape[0])
train_loss += nd.sum(loss)
# Log
# Wait for the operations of the current epoch to complete
nd.waitall()
print('Epoch %3d: loss: %5.4f'%(j, train_loss.asscalar()/len(x_train)))

You get a massive performance boost:
You reach `Wall time: 39.4 s`

I will issue a PR if you want @ilkarman, I am thinking that might change a bit the benchmarks 😄

Thanks a lot Thomas that's awesome!  @miguelgfierro I'll give these a go. Curious how it compares to the highest-level .fit() (I assume same time). We recently got voltas so can run on the P100 and V100

Have you guys had time to check the notebooks on your P100 DLVM already? @miguelgfierro @ilkarman

@ThomasDelteil I ran the gluon CNN on the P100 with old CUDA 8 (and old gluon) so it was faster but not by that much. Sorry I was distracted with Chainer multi-gpu today. I'll try to update early tomorrow morning. Hopefully once DSVM is updated we will re-run with faster Gluon to match your speed

@ThomasDelteil I have finished updating my fork here - https://github.com/ilkarman/DeepLearningFrameworks/tree/mxnetdev
If you like you can fork it and submit the PR again so that you appear as contributor to the modified files, otherwise if I pull in my branch it will remove the history.

Also if you fancy being added as a collaborator to make future PRs easier?

@ilkarman thanks, I'll be very happy to be a collaborator 😃
I'll open a PR with your branch today


Challenge the Spire info

There's uh, no reason to accept the PR because the bot pulls none of this info

now relevant to merge because of ?modder


A Vanilla Node.js REST API Without Frameworks such as Express.js

We ask that you please be patient as our team works through approving and publishing all articles/tutorials in a timely manner. Allow 1-3 days for a topic to be reviewed and/or approved - allow 3-7 days for an articles to be reviewed and/or published.
Be sure to visit our Resources Page for tools, resources, and example articles to go over.
NOTE: (Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
NOTE: We tend to stray away or tend not to publish reviews/comparisons of commercial product offerings.
We're looking for the first 2-3 paragraphs of the article that appropriately summarize what your article will be about.
Proposed title of article
Your title should be descriptive of the article/tutorial. Be Specific. Use keyword research to gain your article higher ranking.
Introduction paragraph (2-3 paragraphs):
Node.js is a popular very JavaScript framework. Node.js has been used to create applications of all levels. It shines most when used to build back-end services and APIs.
In most cases, when building APIs with Node.js, developers use open-source Node.js libraries and frameworks such as Express.js. These libraries are readily available in the NPM registry.
Whenever you use such packages, there is a lot of abstraction as you don't utilize the core functionalities of Node.js. The low-level logic Node.js of your application is hidden from you as these packages process and execute raw Node.js behind the scenes.
One key thing to note is that these packages make Node.js a popular technology. On the other side, you can opt to use core Node.js to develop your applications. This way, you make use of the vanilla Node.js functionalities. This blog will teach you how to use vanilla Node.js with no frameworks to build simple APIs.
Goal
In this guide, we'll build a simple REST API skeleton using functionalities core to Node.js itself. We're just using the barebones of vanilla Node.js with the HTTP module for creating and managing a server. This means we won't use NPM. Therefore no NPM associated dependencies, no package.json,  no package-lock.json, and no node_module folder. The reason is to demonstrate and give you an overview of how raw Node.js works/can be used without frameworks.

Note: When working on any actual project, it is best to use Node.js libraries and packages. This way, you'll take full advantage of the readily available code to make your development workflow easier and faster.

Key takeaways:
Setting up a simple HTTP server
Setting up the REST API
Explore the API using Postman
References:
https://nodejs.dev/
https://nodejs.org/api/http.html#http_http
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

cool topic -  @Rose-stack
But I do not see any info or sentences explaining the Title. 🤔

cool topic - @Rose-stack
But I do not see any info or sentences explaining the Title. 🤔

Yes @hectorkambow , I have added a few paragraphs explaining the tittle

I've also submitted the same via this PR #2243


[WIP] Reference FSharp.Core from NuGet

Closes #74.

 Please do not merge.

Thanks for the review!


contribution to BUG031

BUG031
Proposing fix for source/bug/strings.py
Reason:  this function should reverse the characters in the string, not concatenate the reversed string.
Fix: I remove the initial string from the result and I just keep the reversed string

Buon lavoro!


amplify/backend/amplify-meta.json' does not exist on Build

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
18.18.2
Amplify CLI Version
12.10.1
What operating system are you using?
Windows
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
No manual changes made. I did have to make some changes locally when I was having issues with my local cli env. The issue is #13667
Describe the bug
Any pull or push command works perfectly fine on my local enviorment. When I deploy my application I get this error, 🛑 Failed to pull the backend. amplify-meta.json does not exist. . I can confirm I have that file locally. I have not modified any build settings. This issue started occuring after I added an S3 storage bucket to amplify. I have pulled and pushed any potential updates to my repo.
Expected behavior
I expect the build to finish sucessfully. I have confirmed I have no node build issues in my application.
Reproduction steps
Not sure how to reproduce this error in a blank directory.
Project Identifier
b833d96149f7eee5c40e4281e8701b1b
Log output

2024-03-31T17:30:48.347Z [INFO]: Successfully cleaned up Git credentials
2024-03-31T17:30:48.348Z [INFO]: # Checking for Git submodules at: /codebuild/output/src856760570/src/napky/.gitmodules
2024-03-31T17:30:48.357Z [INFO]: # Retrieving environment cache...
2024-03-31T17:30:48.419Z [INFO]: # Retrieved environment cache
2024-03-31T17:30:48.419Z [INFO]: ---- Setting Up SSM Secrets ----
2024-03-31T17:30:48.419Z [INFO]: SSM params {"Path":"/amplify/d1f2rx89u9ycx/dev/","WithDecryption":true}
2024-03-31T17:30:52.199Z [INFO]: # Patching NPM package '@aws-amplify/cli' from 12.8.2 to 12.10.3...
2024-03-31T17:31:18.838Z [INFO]: # Installed '<EMAIL_ADDRESS>2024-03-31T17:31:18.959Z [INFO]: # Done patching NPM package '@aws-amplify/cli' to version 12.10.3
2024-03-31T17:31:18.973Z [INFO]: # Retrieving cache...
2024-03-31T17:31:21.706Z [INFO]: # Extracting cache...
2024-03-31T17:31:22.733Z [INFO]: # Extraction completed
2024-03-31T17:31:22.858Z [INFO]: # Retrieved cache
2024-03-31T17:31:27.114Z [INFO]: ## Starting Backend Build
                                 # Starting phase: build
2024-03-31T17:31:27.121Z [INFO]: ## Running amplify pull to generate aws-exports.js file for frontend
2024-03-31T17:31:29.506Z [INFO]: Amplify AppID found: [MYAPPID]. Amplify App name is: [MYAPPNAME]
2024-03-31T17:31:29.542Z [INFO]: Backend environment dev found in Amplify Console app: [MYAPPNAME]
2024-03-31T17:31:31.054Z [WARNING]: - Fetching updates to backend environment: dev from the cloud.
2024-03-31T17:31:31.604Z [WARNING]: - Building resource api/[APPNAME]
2024-03-31T17:31:31.604Z [WARNING]: - Building resource auth/[APPNAME]
2024-03-31T17:31:31.604Z [WARNING]: - Building resource storage/[NAME]
2024-03-31T17:31:31.712Z [WARNING]: ✔ Successfully pulled backend environment dev from the cloud.
2024-03-31T17:31:31.732Z [WARNING]: ✖ There was an error initializing your environment.
2024-03-31T17:31:31.742Z [INFO]: 🛑 Failed to pull the backend.
2024-03-31T17:31:31.743Z [INFO]: Learn more at: https://docs.amplify.aws/cli/project/troubleshooting/
2024-03-31T17:31:31.753Z [INFO]: Session Identifier: 095c4be4-2f4a-4b43-8091-65843eb4674f
2024-03-31T17:31:31.754Z [WARNING]: - Creating Zip
2024-03-31T17:31:31.767Z [INFO]: ✅ Report saved: /tmp/{NAME]/report-1711906291757.zip
2024-03-31T17:31:31.767Z [INFO]:
2024-03-31T17:31:31.767Z [WARNING]: - Sending zip
2024-03-31T17:31:31.770Z [INFO]: File at path: '/codebuild/output/src856760570/src/[NAME]/amplify/backend/amplify-meta.json' does not exist
2024-03-31T17:31:31.771Z [WARNING]: ✖ Sending zip
2024-03-31T17:31:31.799Z [ERROR]: !!! Build failed
2024-03-31T17:31:31.800Z [INFO]: Please read more about Amplify Hosting's support for SSR frameworks to find if your build failure is related to an unsupported feature: https://docs.aws.amazon.com/amplify/latest/userguide/amplify-ssr-framework-support.html. You may also find this troubleshooting guide useful: https://docs.aws.amazon.com/amplify/latest/userguide/troubleshooting-ssr-deployment.html
2024-03-31T17:31:31.800Z [ERROR]: !!! Error: Command failed with exit code 1
2024-03-31T17:31:31.800Z [INFO]: # Starting environment caching...
2024-03-31T17:31:31.800Z [INFO]: # Uploading environment cache artifact...
2024-03-31T17:31:31.879Z [INFO]: # Uploaded environment cache artifact
2024-03-31T17:31:31.879Z [INFO]: # Environment caching completed
Terminating logging...

Additional information
No response
Before submitting, please confirm:

[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

Hey @KuzonFyre, thank you for reaching out. Could you download the #current-cloud-backend.zip from the S3 deployment bucket on the AWS console. The bucket name should end with deployment and contain the app name.
Could you verify if the current-cloud-backend contains the amplify-meta.json?
if you do not observe a amplify-meta.json in the zip, we could try carefully re-zipping the contents with the local copy of amplify-meta.json without creating a nested folder similar to as follows, then upload the zip and try pulling the env in a new empty folder outside your existing project directory to test.
cd /#current-cloud-backend/
zip -r "../#current-cloud-backend.zip" *

@ykethan I do see an amplify-meta.json file in the root dir of #current-cloud-backend.zip.

@KuzonFyre could you try adding AMPLIFY_ENABLE_DEBUG_OUTPUT as true in the Amplify hosting environment variables and provide us the output?

@KuzonFyre from the logs it appears the build failed due to
Error: File at path: '/codebuild/output/src3871774277/src/napky/amplify/backend/auth/napkyff72303c/parameters.json' does not exist

from the comment https://github.com/aws-amplify/amplify-cli/issues/13667#issuecomment-2025829754 it appears you were able to run a push.
Is the Live package updates on the Amplify hosting Build setting currently set to latest or an older version on Amplify CLI? or in the amplify.yml are you manually installing an older version of Amplify CLI?

I double checked the current cloud backup file that I downloaded earlier and their is a parameters.json file but it is in the build folder like so auth/napkyff72303c/build/parameters.json.
Live Package updates is set to the latest version of the cli.

Not seeing anything in the yml file that is set to an older version. I'm working on a team so it's possible someone else might have modified the backend. I think that's why I got #13667 in the first place.

@KuzonFyre interesting, the issue does show symptoms of this.
To ensure the project is in the correct state, could you zip the Amplify folder and send it to<EMAIL_ADDRESS>

Sent an email.

@ykethan Any updates on this?

Hi @KuzonFyre taking a look at the stack trace you provided, it looks like the condition that is not being hit is here
https://github.com/aws-amplify/amplify-cli/blob/88f6e23a20eaba9cc85ec045ec1cf5656e17ab8b/packages/amplify-cli-core/src/state-manager/pathManager.ts#L161-L162
Looking at the amplify .zip archive you provided, I don't see what would be causing that condition to not hit. In addition to double checking that amplify/backend/auth/napkyff72303c/parameters.json does NOT exist and that amplify/backend/auth/napkyff72303c/cli-inputs.json DOES exist, can you also check that the same is true within the #current-cloud-backend directory?

I can confirm that amplify/backend/auth/napkyff72303c/parameters.json does not exist and that amplify/backend/auth/napkyff72303c/cli-inputs.json does exist in my local amplify dir. I can also confirm that is also true in the #current-cloud-backend dir that I downloaded from S3. I have sent another zip file to the email that was provided. This is the amplify folder for a previous version of the application that deployed correctly before we added a storage bucket for images. As far as I can tell there is nothing about adding storage to the Amplify folders that would have messed up Auth but it might be helpful.

While I would prefer to fix this without having to just delete the amplify folder and backend env on AWS and starting fresh, that is an acceptable work around at this point. I may test this on a git branch and update this comment if I observe the same issue on a fresh setup.

Did one more check and it doesn't look like adding storage caused any issues. @edwardfoyle @ykethan

@KuzonFyre from the information provided it appears issue doesnt appear be on the current-cloud-backend.zip. If are able to run amplify push locally and the issue is only occurring on the hosting builds with the live package override for Amplify CLI is set to latest, could you check if the local project root package.json and provide us the amplify packages installed here?
could you provide us the amplify.yml file here?

Here is the relevant dependencies in the package.json file. ```
"dependencies": {
"@aws-amplify/adapter-nextjs": "^1.0.21",
"@aws-amplify/ui-react": "^6.1.5",
"aws-amplify": "^6.0.18",
}
I do not have an amplify.yml file in the local dir but I do have a `.graphqlconfig.yml file`.
```projects:
  korkbo:
    schemaPath: src/graphql/schema.json
    includes:
      - src/graphql/**/*.ts
    excludes:
      - ./amplify/**
    extensions:
      amplify:
        codeGenTarget: typescript
        generatedFileName: src/API.ts
        docsFilePath: src/graphql
extensions:
  amplify:
    version: 3

We had a version of the app deploying succesffully so I am going to go through all of the changes that occured after that point.

@KuzonFyre you can find the amplify.yml on the Amplify console under build setting

Hey @KuzonFyre , thank you for the information. Would you be open for a quick chat. I am available on discord, my handle is ykethan. Wanted to dive deeper into the issue over a screenshare.

Closing the issue due to inactivity. Do reach out to us if you are still experiencing this issue


[MDB] Schema validation against duplicate Indexes

Looks like Mongo does not allow duplicate indexes even if the name is different.

The error was introduced in 4.2, versions before would just ignore the duplicate
https://docs.mongodb.com/manual/reference/command/createIndexes/#index-names


WIP: Suggestions for executors

This is a PR with some suggestions for some executors to improve firebase's cli within nx. I have these changes currently as a workspace plugin that I have been playing around with and noticed a few issues pop-up which I think these executors help to fix ( #92 and #40 ). I have copied the local plugin into these repo quickly to gauge interest in including these in this plugin.
There are 3 executors:

cli: the way to interact with the firebase cli-tool - has been written to be similar to the firebase-tools when using in the terminal but with some tweaks to improve how it can be used in the project.json

kill-emulator: kills all the process running on the ports defined in the defined firebase.*.json

copy-local-files: used for handling .gitignored env files, namely .env.local and .secret.local

My project stucture is:
apps/
> example/
>> functions/
>> app/
>> firebase/

The project.json I have in the functions folder is
{
  "name": "example-functions",
  "$schema": "../../../node_modules/nx/schemas/project-schema.json",
  "sourceRoot": "apps/example/functions/src",
  "projectType": "application",
  "targets": {
    "build": {
      "executor": "@nx/esbuild:esbuild",
      "outputs": ["{options.outputPath}"],
      "options": {
        "project": "apps/example/functions/package.json",
        "outputPath": "dist/apps/example/functions",
        "main": "apps/example/functions/src/index.ts",
        "tsConfig": "apps/example/functions/tsconfig.app.json",
        "assets": ["apps/example/functions/.env.*"],
        "bundle": true,
        "minify": true,
        "generatePackageJson": true,
        "platform": "node",
        "esbuildOptions": {
          "splitting": true
        }
      },
      "configurations": {
        "watch": {
          "watch": true,
          "minify": false
        }
      }
    },
    "lint": {
      "executor": "@nx/linter:eslint",
      "options": {
        "lintFilePatterns": ["apps/example/functions/**/*.ts"]
      },
      "outputs": ["{options.outputFile}"]
    },
    "test": {
      "executor": "@nx/jest:jest",
      "outputs": ["{workspaceRoot}/coverage/apps/example/functions"],
      "options": {
        "jestConfig": "apps/example/functions/jest.config.ts",
        "passWithNoTests": true
      }
    },
    "copy-local-files": {
      "executor": "@workspace-plugin/firebase:copy-local-files",
      "inputs": ["{projectRoot}/.(secret|env).local"]
    }
  },
  "tags": []
}

and the project json I have for the firebase folder is:
{
  "name": "example-firebase",
  "$schema": "../../../node_modules/nx/schemas/project-schema.json",
  "projectType": "application",
  "targets": {
    "cli": {
      "executor": "@workspace-plugin/firebase:cli",
      "options": {
        "config": "firebase.example.json"
      }
    },
    "deploy": {
      "executor": "@workspace-plugin/firebase:cli",
      "options": {
        "command": "deploy",
        "config": "firebase.example.json",
        "non-interactive": true,
        "force": true
      },
      "dependsOn": [
        { "projects": ["example-functions"], "target": "build" }
      ],
      "configurations": {
        "dev": {
          "project": "example-dev"
        },
        "prd": {
          "project": "example-prd"
        }
      }
    },
    "emulators:start": {
      "executor": "@workspace-plugin/firebase:cli",
      "dependsOn": [
        { "projects": ["example-functions"], "target": "build" },
        {
          "projects": ["example-functions"],
          "target": "copy-local-files"
        }
      ],
      "options": {
        "command": "emulators:start",
        "config": "firebase.example.json"
      },
      "configurations": {
        "dev": {
          "project": "example-dev"
        },
        "prd": {
          "project": "example-prd"
        }
      }
    },
    "emulators:exec": {
      "executor": "@workspace-plugin/firebase:cli",
      "dependsOn": [
        { "projects": ["example-functions"], "target": "build" },
        {
          "projects": ["example-functions"],
          "target": "copy-local-files"
        }
      ],
      "options": {
        "command": "emulators:exec",
        "config": "firebase.example.json"
      },
      "configurations": {
        "dev": {
          "project": "example-dev"
        },
        "prd": {
          "project": "example-prd"
        }
      }
    },
    "emulators:web": {
      "executor": "@workspace-plugin/firebase:cli",
      "dependsOn": [
        { "projects": ["example-functions"], "target": "build" },
        {
          "projects": ["example-functions"],
          "target": "copy-local-files"
        }
      ],
      "options": {
        "command": "emulators:exec",
        "config": "firebase.example.json"
      },
      "configurations": {
        "dev": {
          "project": "example-dev",
          "_": ["npx nx run example-app:serve:dev"]
        },
        "prd": {
          "project": "example-prd",
          "_": ["npx nx run example-app:serve:prd"]
        }
      }
    },
    "serve": {
      "executor": "nx:run-commands",
      "options": {
        "commands": [
          "npx nx run example-functions:build:watch",
          "npx nx run example-firebase:emulators:start"
        ],
        "parallel": true
      },
      "configurations": {
        "dev": {
          "commands": [
            "npx nx run example-functions:build:watch",
            "npx nx run example-firebase:emulators:start:dev"
          ]
        },
        "prd": {
          "commands": [
            "npx nx run example-functions:build:watch",
            "npx nx run example-firebase:emulators:start:prd"
          ]
        },
        "dev:web": {
          "commands": [
            "npx nx run example-functions:build:watch",
            "npx nx run example-firebase:emulators:web:dev"
          ]
        },
        "prd:web": {
          "commands": [
            "npx nx run example-functions:build:watch",
            "npx nx run example-firebase:emulators:web:pre"
          ]
        }
      }
    },
    "emulators:kill": {
      "executor": "@workspace-plugin/firebase:kill-emulator",
      "options": {
        "config": "firebase.example.json"
      }
    }
  },
  "tags": [],
  "implicitDependencies": ["example-app", "example-functions"]
}

I have shared these jsons just to demonstrate how I am using the executors in the pr.
Again, this is just what I have found to be useful so far and am still working through a few things:

As soon as you use "run-commands" the interactivity breaks so selecting options for the command runs breaks and killing the emulators is no longer clean - this is demonstrated in the serve command (but this is the only way I have got the build:watch to work)
My pubsub emulators never seem to get a clean shutdown
I don't currently have a good way of connecting the frontend to the emulators based on if the emulators are running (I think this is a limitation of the firebase cli so don't know if it should be addressed here)

Let me know what you think

Hi, thanks for your PR. It's great to have submissions & experiementations, and I can see how such solutions might be useful for customising a specific workflow/workspace, but for a generic plugin like this one, I'm not sure it adds value over what we already have:

There is already a firebase target in v2 plugin app generator, which provides much of the functionality of your cli executor, so you can already just run npx nx my-project:firebase <firebase cli options>
There is also already killports target that forcefully cleans up the emulator processes
We are still stuck with the problem of Nx not passing termination signals properly to child processes so that cleanup is correct. Personally I believe this needs to be fixed in Nx. As you have found, even having a custom executor doesnt get around that fundamental task runner problem with Nx.

The copy-local-files executor you have is an interesting workaround, but I believe we can achieve the same outcome by modifying the .nxignore files with exclusion rules and add local secret files to the build executor assets array - I just havent had time to investigate this better.
For your custom NX_REACT_APP_STORAGE_EMULATOR type env vars, I can see why you took that approach. For me, I have added an environment.dev.ts file to my FE project (Angular in my case), and set the appropriate emulator client app vars from that. eg.
  providers: [
    {
      provide: AUTH_EMULATOR,
      useValue: environment.localEmulation ? ['http://localhost:9099'] : undefined,
    },
    {
      provide: FIRESTORE_EMULATOR,
      useValue: environment.localEmulation ? ['localhost', 8080] : undefined,
    },
    {
      provide: DATABASE_EMULATOR, // i.e., Realtime Database
      useValue: environment.localEmulation ? ['localhost', 9000] : undefined,
    },
    {
      provide: FUNCTIONS_EMULATOR,
      useValue: environment.localEmulation ? ['http://localhost', 5001] : undefined,
    },
  ],

I'm going to close this PR for now, but I welcome & will review future contributions.


Self-hosted agent and Linux/Windows containers on Windows Server 2019

Hello,
Is there a documentation to launch the Azure Pipelines jobs on containers Linux and Windows on Windows Server 2019 ?
Is it supported by self-hosted agent or we just must prepare our own image and run the agent inside containers?
Thank you !
Best regards,
Ivan Ignatiev

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

ID: 43799c5d-2f13-cc76-a1c0-a3f850e16d4e
Version Independent ID: 97a5b73f-faf7-f9c0-9269-fc79984616d6
Content: Deploy a Azure Pipelines agent on Windows - Azure Pipelines
Content Source: docs/pipelines/agents/v2-windows.md
Product: devops
Technology: devops-cicd
GitHub Login: @steved0x
Microsoft Alias: sdanie

@ivanignatiev Thank you for the question.
Typically the agent will run the container and you specify either your own or a pre-built image, see azure-pipelines-image-generation.  Also note that containers are not currently supported on MacOS agents.
However, for added flexibility containers can also run agents, see Running a self-hosted agent in Docker.
For further documentation, please refer to Container jobs.


infoplist path with spaces fix

This pr fixes the case where the info plist path has spaces, detailed info can be found in this link https://stackoverflow.com/a/17094284/5374189

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Omar Zuñiga Lagunas seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Package kinesis client jar within the extension

Description
amazon-kinesis-client was not covered undered the apache license and required separate insertion in the kinesis extension.
This can now be avoided since it is covered, and including it within druid helps prevent incompatibilities.
Allows enabling of deaggregation out of the box by packaging amazon-kinesis-client (1.9.2) with druid for kinesis ingestion.
This PR has:

[x] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[ ] added documentation for new or modified features or behaviors.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[ ] been tested in a test Druid cluster.

license file should be updated.
Error: found 3 missing licenses. These licenses are reported, but missing in the registry
druid_module: kinesis-indexing-service, groupId: com.amazonaws, artifactId: aws-java-sdk-dynamodb, version: 1.12.3, license: Apache License version 2.0
druid_module: kinesis-indexing-service, groupId: com.amazonaws, artifactId: aws-java-sdk-cloudwatch, version: 1.12.3, license: Apache License version 2.0
druid_module: kinesis-indexing-service, groupId: com.amazonaws, artifactId: amazon-kinesis-client, version: 1.14.4, license: Apache License version 2.0


Feature: Typescript declarations

Adds an index.d.ts file which declares all the types for this library.

@olivierkaisin @olivierkaisin-dev @tremby @emilevictorportenart
Can you comment or merge this please?

Yeah pretty good! @tremby Yeah I ran into this same guy's issue:
https://github.com/marker-io/browser-sdk/issues/13
When trying to use this library.

I'm not in a position to properly test right now but judging from the published files and package.json it looks like it'd import into an ES6 project just fine, so I believe my needs from over in #5 are covered.
Colour me impressed at the quick response to Bram throwing some types your way!

Hi, we implemented typings based on your suggestion and improved overall compatibility with JS bundlers in https://github.com/marker-io/browser-sdk/pull/15.
I hope this solves your issue!


Make instanceReadyCheckTimeout for OpenStack Provider configurable

What would you like to be added
Make instanceReadyCheckTimeout for OpenStack Provider configurable.
Currently it is hardcoded to two minutes in
pkg/cloudprovider/provider/openstack/provider.go:112
Why is this needed:
In our environment it's possible that machine creation in OpenStack lasts up to 142s, but the machine-controller timeouts after 120s, deletes the resources in OS and tries again after some time.

Issue was fixed by #843


Uncaught TypeError: Cannot set properties of undefined (setting '$head')

I've followed the installation instructions and when Vue.use(head) is run it errors out with:
Uncaught TypeError: Cannot set properties of undefined (setting '$head')

this happens in<EMAIL_ADDRESS>on line 493, which is:
app.config.globalProperties.$head = head;

So here: https://github.com/vueuse/head/blob/main/src/index.ts#L159
I'm running Vue 2.7.13 and webpack 3.12.0 (can't currently update beyond webpack 3 due to other dependencies).

Full trace
index.mjs?f615:493 Uncaught TypeError: Cannot set properties of undefined (setting '$head')
    at Object.install (index.mjs?f615:493:1)
    at Vue.use (vue.common.dev.js?e87b:5670:1)
    at eval (main.js?3479:45:1)
    at Object.<anonymous> (app.js:4107:1)
    at __webpack_require__ (app.js:708:30)
    at fn (app.js:113:20)
    at Object.<anonymous> (app.js:4014:18)
    at __webpack_require__ (app.js:708:30)
    at app.js:806:39
    at app.js:809:10
install @ index.mjs?f615:493
Vue.use @ vue.common.dev.js?e87b:5670
eval @ main.js?3479:45
(anonymous) @ app.js:4107
__webpack_require__ @ app.js:708
fn @ app.js:113
(anonymous) @ app.js:4014
__webpack_require__ @ app.js:708
(anonymous) @ app.js:806
(anonymous) @ app.js:809

SUPER hacky and totally not recommended workaround I came up with: https://codesandbox.io/s/gracious-silence-4b9h00?file=/src/main.js

Hey guys, I haven't done much around the Vue 2.7 compatibility, I just know it was meant to support it.
I've fixed that specific issue in v1.0.0-rc.12. As far as I know, Vue 2.7 supports the prove/inject API?
Can try it out and let me know if you have any further issues?

@harlan-zw rc.12 technically fixes the globalProperties error but there are still 2.7 compatibility issues, now these errors come up:
[Vue warn]: provide() can only be used inside setup().
[Vue warn]: injection "usehead" not found.
[Vue warn]: Error in setup: "Error: You may forget to apply app.use(head)"

Hey @deepfriedmind. Thanks to @vetruvet's help, this should be fixed in v1.0.0-rc.14.
Please follow the v1 branch doc
// Vue 2
import { createHead, HeadVuePlugin } from "@vueuse/head"

Vue.use(HeadVuePlugin)
const head = createHead()

new Vue({
  el: '#app',
  // ...
  head,
})

Let me know if you have any issues with it


Review resources on QKD, python sockets, and SSH

Look at resources in the Github pages

Team has finished oboarding portion


modifying key interface requirements

Can you provide an interface "hashmap_set" for modifying the key, the function is to add the key if it does not exist, and modify it if it exists. Thank you so much.

Hi @fancong5201314 due to the nature of this data-structure, the key must be immutable to avoid invalidating the ordering of the elements. This is common behavior across all associative maps, such as the C++ map and unordered_map. To modify a key, call hashmap_remove(), and then hashmap_set() to add the content under a different key.

Hi @fancong5201314,
Would this satisfy your needs?
int hashmap_base_update(struct hashmap_base *hb, const void *key, void *data, void **original_data);

This would be used like this:
int r;
struct my_data *new_data = /* new data */;
struct my_data *old_data;

r = hashmap_update(&my_map, "MyKey", new_data, &old_data);
if (r < 0) {
    // Error
}

free(old_data);

I'll try it first, thanks.

Where are the two functions hashmap_update and hashmap_base_update implemented?

I use this to replace the redundant map table of C++. Now hashmap supports adding, deleting, and querying, but it has not been modified.


Support for empty syntax in template tag

Proposal:
{% load embed_video_tags %}
{% video object.video as my_video %}
    Video has been found.
{% empty %}
    Video doesn't exist.
{% endvideo %}

@yetty how would you recommend to implement it until v1.o realise?

Wow, this will be very useful, thank you!

The simpliest way is to get info in views. But it is supported only for Vimeo and SoundCloud backend. YouTube backend doesn't support it yet.
def my_view(...):
   ...
   video = detect_backend(url)
   try:
       video.get_info()
   except NotImplementedError:
       pass
   except VideoDoesntExistException:
       # video doesnt exist
       video = None
   ...


contract update

Change-type: patch
Signed-off-by: Phil Wilson<EMAIL_ADDRESS>

@balena-ci I self-certify!


Automatically update README installation instructions for new versions

The README needs updated to latest version {:google_api_o_auth2, "~> 0.2.0"}:
https://github.com/googleapis/elixir-google-api/tree/master/clients/o_auth2
Not sure if this will help in future:
https://dockyard.com/blog/2019/02/22/keep-your-readme-install-instructions-up-to-date

This is a very good point, and it applies to all the libraries.

The code generation is now updating the README. Thanks for the report!


Azure Deploy

Hi,
I tried to deploy Orchard from the Azure Marketplace and consistently get an error during deployment:
Resource: MSDeploy
Type: Microsoft.Web/Sites/Extensions
STATUSMESSAGE
{"status":"Failed","error":{"code":"ResourceDeploymentFailure","message":"The resource operation completed with terminal provisioning state 'Failed'."}}
Any idea what might be going on?
Thanks,
Bart

It has been tested a couple of days ago with success.

I'm getting the same error today.

Just tried to deploy orchard to azure and got this exact error

I am reopening it until the new package is uploaded on Azure. Please use the source code or the release packages to deploy.


Clicking on the main banner on the website links to a broken page

On the website if you click on the main banner you end up in: http://boo-lang.org/Main.aspx?TAB=VBB4Arduino
which is broken.

Thanks, but this repo is only for the Boo codebase.  Issues for boo-lang.org should be reported at https://github.com/boo-language/boo-language.github.io/issues
Would you mind reposting these over there?


doc: fix star history chart

Fixed broken start history links in README

Why there isn't any file change?

Why there isn't any file change?

errr crazy github issue

Why there isn't any file change?

Errr seems like the url's the same, had to do some refresh or probably their server was down for a bit. Everything works now. I'll close this


Add Navbar

**Description **
Navbar will contain important details like email-id , phone no. , address and so on and on the right side it will have About , Skills, Projects , Contact section which will redirect to the respective section.
Like this

please assign me under hacktoberfest.

@bhaavvya please see #17

We will make the navbar at the end, when all the sections are present.


Handle special characters in commit messages

I've run into an issue using the object-mixin. If a commit message has special characters, the encodeObject function throws an exception about the input array being too long. The issue is in joinWithNewline:
function joinWithNewline(...values : (string | Uint8Array)[]){
  const sum = values.reduce((sum, x) => sum + x.length, 0);
  const result = new Uint8Array(values.length-1 + sum);
  let offset = 0;
  for (const arr of values) {
    if(offset > 0){
      result.set([NEWLINE], offset++);
    }
    if(typeof(arr) === 'string'){
      result.set(encode(arr), offset);
    }else{
      result.set(arr, offset);
    }
    offset += arr.length;
  }
  return result;
}

The reduce which figures out the size of the result array assumes that the result of Uint8 encoding of strings will end up being arrays of the same length as the original string. If an input string has a special character though, the uint8 encoding could potentially be multiple bytes.

I've just published v0.10.0 of all the es-git packages, which includes this fix and upgrading of lots of dependencies and build stuff. A lot has happened in the world of javascript since v0.9.0 almost 2 years ago. You probably have to upgrade some dependencies and peer-dependencies (for example babel has been upgraded to v7, so you might need @babel/runtime now).
Please let me know if this works better


Can't use space into conf command

Version of Komada
v0.18.10
Are core files modified?
Nope
Describe the problem
When I do set the conf to a message with space example: Welcome to the server
That's will set only Welcome..
Expected Behaviour
Will set Welcome to the server
Actual Behaviour
Set only Welcome
Steps to Reproduce.
Create an string into the conf file, and try to set it with space
Same for the adminRole and modRole

Will be fixed in the next version of Komada


SubwordNextExtend/SubwordPreviousExtend don't work properly with multiple carets

They just move the multiple carets to the next/previous subword.
They should (I think) have all of the carets extend their selection to 'their' next subword.

I can give little more detail on this and a related issue from my experience. SubwordNextExtend works for me with multiple carets. Unless you are referring to how it drops the current selection for each caret after using Edit.InsertNextMatchingCaret but then subsequent SubwordNextExtend does work to select the next words. In contrast SubwordPreviousExtend doesn't work at all. Neither the caret nor the selection move or change. I am using VS 2019 and have the SubwordNextExtend mapped to Alt + Shift + Right arrow and previous the same with left arrow.
Let me know if I should file a separate issue, but I also see similar issues with SubwordDeleteNext and SubwordDeletePrevious not working with multiple carets.
Thanks for providing this plugin!

Thank you!
No need to file separately. The implementation hasn't really changed in a meaningful way since 2013 and there were no multiple carets back then. All operations should be fixed at the same time. Anything that currently does work is a total fluke. 🙂
For VS Code it was a rather simple matter of wrapping the existing operations in loops over current selections. Hopefully it's similar here. Might need a bit of refactoring.

sounds good thanks!


converter: Write out gem dependencies to metadata.rb

NOTE: Not too sure if it's a good idea to lock this into Chef >= 12.8.1 but I just thought I'd put it out there.

This update writes out non-cookbook gem dependencies as gem
dependencies in the cookbook's metadata.rb file.
This should enhance the Halite development experience, ensuring that the
cookbook developer can accurately assume that their dependencies will be
pulled in, instead of having to mess around with chef_gem or what not.
The gem dependency logic pulls in runtime dependencies only and skips
the halite gem itself.

Yeah, I won't add this until I decide to move to Chef 13 entirely (which probably won't be until several point releases in to the 13.x lifecycle). Until then it would be too hard to shim for before the gem dependencies feature :(
Going to close this because I don't think I'll be able to do it for at least a year at the current rate.

You could argue this should be up to the cookbook author and if they want to only offer compat with 12.8+ then so be it, but I'm okay with making Halite match my opinions and I say you should, at a minimum, offer compat back to 12.5 given the current landscape. I do look forward to adding this feature, just not in a position to do it yet :( On the plus side, you could totally fork Halite locally and use it to build and release your cookbooks.

No problem @coderanger and thanks for the feedback!
I've been using Chef mainly with  Packer lately, so there is not too much issue with using the latest versions. I do agree though, especially if its going on Supermarket (my use case for now is internal right now).
I'll just maintain the fork for now and reference that directly in my Gemfiles, etc.

Also FWIW I just updated this feature to be flaggable and disabled by default (via the halite_use_gem_dependencies field). Cookbook lock-in to Chef 12.8.1. is set if this is enabled as well.


Allowing setitem-like operation on dask array

Even though stack and concatenate are nice for combining arrays, sometimes they don't fit the data I have or require a significant amount of work to use. For instance, combining blocks of different data. In cases like these, it would be nice to be able to use array assignment. While it is true that dask creates graphs of pure operations (with few exceptions) and assignment is unpure, one could imagine creating an array-like object that translates assignments into slicing and stacking/concatenating. This would allow a user to make use of a __setitem__-like syntax, but result in creating a new dask array (or potentially modifying the graph of the existing one) so the net result behaves like assignment while remaining pure.

We started adding inplace operations in other cases, notably dask.dataframe.
I think it's sensible to think about this.  There are two problems:

Dask.array won't have the same view semantics as numpy (see https://github.com/dask/dask/pull/1915)
Dask.array slicing can be quite complex to implement, so this would require a lot of work by someone.

Interesting, was about to ask if this is already supported and I merely missed the docs. ( https://github.com/dask/dask/pull/1840 )
That said, maybe you can unpack what you mean by slicing being complex in 2. Are there particular cases that you know of that would be tricky?

x[-5:15::-3] = y

You should take a look at dask/array/slicing.py

But there is also the question of how to handle the following:
y = x[0, :]
y[:] = 0
print(x[0, :].compute())

As written, the current inplace approach used in dask.dataframe differ from how numpy currently works.  This could cause confusing errors.
Anyway, I don't have a block to inplace operations as long as they are sensible to users, and don't significantly complicate other parts of the code.  I encourage exploration here.

Thanks for the examples and feedback.
I can see where concatenate/stack may start to go downhill with non-unitary step sizes performance-wise. Using where would definitely be a better approach. Though checking what fits in what region could become complex as well.
As for views, it is not totally clear how to fix this yet, but I can imagine a couple ways one might approach this problem. Not entirely sure how practical they are in Dask currently, but they may be worth some thought.
One option might be possible for parents to register with children for __setitem__ updates. This would allow one to propagate these changes upward as far as they need to go. It also opens the ability for others to listen to this event chain should it be important for some reason.
Another option might be to replace the selection gotten with __getitem__ any time it is called ( e.g. x[0, :] ) in the graph with a variable that points to a subgraph, which y would get. This way any changes performed on y are also available for the correct region in x.

I think maintaining view semantics with dask arrays would be nearly impossible, so I wouldn't even bother. It's safer to treat every operation as producing an entirely new array.
For sanity, we should probably say that chunks for a dask array are immutable, but operations that involve modifying a piece of a chunk instead of a replacing a whole chunk are still tricky and probably should be skipped for now. For example, consider assigning x[i, j] = y in a loop for integer i and j with original chunks consisting of large tiles. We would need to create an temporary buffer array for the chunks if we aren't replacing them entirely, which dask array would need to be aware of in some way to avoid copying chunks entirely every time they are assigned to.

Since this was raised there have been a lot of changes. It's probably time to do an overview of what is and isn't possible on this front. From that we can evaluate if there is anything still worth doing or if this is effectively resolved.

That's understandable. Ultimately this is a larger problem that you are stumbling upon. Namely NumPy is a great library with a nice interface. Many other Python libraries that work with N-D Array data in different domains mimic the NumPy interface. However getting these different NumPy-like libraries to play nice with each other is a difficult problem. In fact it's a problem all of us interested in Dask or other NumPy-like libraries have struggled with. Recently Matt wrote a nice blog outlining this problem and discussing possible solutions. A NEP is being worked on/discussed to figure out how best to handle dispatching from NumPy to NumPy-like libraries.
ref: http://matthewrocklin.com/blog/work/2018/05/27/beyond-numpy
xref: https://github.com/numpy/numpy/pull/11189
ref: https://mail.python.org/pipermail/numpy-discussion/2018-June/078127.html

Has there been any movement on this issue since? Having mutable dask arrays would be a huge boon to one of my existing codebases

No.  There has been no activity here.  This is non-trivial to do.

There are at least two parts to this issue:

Modifying dask arrays in-place
"Scatter" type operations that perform the NumPy equivalent of z = x.copy(); z[i] = y; return z

Part (1) is arguably the most problematic for dask, because array properties like chunks are expected to be immutable.
Part (2) is the functionality we really need, regardless of how it's spelled. JAX uses the notation z = x.at[i].set(y).
I believe it could be significantly easier to implement (2) in dask without the baggage of mutable __setitem__ syntax, e.g., so we can feel free to change chunk sizes as appropriate.
It is of course always possible to translate __setitem__ into __getitem__ in user code, but there are a number of cases where this syntax is much more natural. Notable examples include:

"Unstacking" a pandas.MultiIndex into multiple dimensions, like what xarray does for NumPy arrays from pandas in https://github.com/pydata/xarray/pull/4184
Implementing the gradient of indexing in reverse mode autodiff (OK, technically this needs the equivalent of x[i] += y handling repeated indices i, which is implemented in NumPy as np.add.at).
Overriding boundaries of arrays, as noted by @dionhaefner above in https://github.com/dask/dask/issues/2000#issuecomment-359271743

Part (1) is arguably the most problematic for dask, because array properties like chunks are expected to be immutable.

We support some mutation operations today.  For example
x[x < 0] = 0

So presumably (1) is in-scope, but what stops us here is the complexity around the full generality of setitem syntax.  Getitem was, as you recall, finicky to get right (at least right enough for people to be happy).
Overriding boundaries of arrays is probably an incremental improvement on what we have today.
Something like x[i] += y seems trickier because we may not know the values of i.  If we do know the values of i (perhaps it is a  numpy array) then this is easier, and not necessarily terribly difficult.  I wouldn't expect this to modify chunking.

This is largely supported after PR ( https://github.com/dask/dask/pull/7033 ) recently and previous work. While there are always additional things we could do here, it might be easier to track those as new issues. Going to go ahead and close this out. Thanks everyone! 😄

Thanks, @jakirkham.

This is largely supported after PR ( 7033 )

Just for the record, in case it's useful to those who come across this issue in the future, the PR that finally supported this turned out to be #7393, after flaws in 7033 were uncovered.

Ah right thanks for the correction David 🙂 Updated my post above


Add app insights events for choreo links

Purpose

To track app when Get started with Choreo button on Choreo.dev url clicks, using app insights
Related to https://github.com/wso2-enterprise/choreo/issues/12677

Approach

Add Microsoft app insights initialization script tag to header of the page and call trackEvent function on button/link clicks

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


update composer pakages

Alright, the contents in the composer.json is now bit stale. However, there is already a good PR for this matter at #76 so I'm going to close this.
Anyway, thanks!


 (GitHub actions all turns green)
[x] CLA has been signed

References to other Issues or PRs
try to fix: https://github.com/wechaty/grpc/issues/178
refer to: https://github.com/danielgtaylor/python-betterproto/issues/269#issuecomment-960651357
Have you read the Contributing Guidelines?
Brief description of what is fixed or changed

Getting it done with manualy upgrading the version of Jinja2.


Teams Functionality

Changes

Add commands SetTeam, AddTeam and DeleteTeam and respective parsers
Modified Addressbook to have multiple team objects.
Add storage features to teams upon adding/deleting teams and exiting the program.
Add basic tests.

Things to note.

I have implemented the addressbook such that the user must be on a current team (i.e. the Team reference in addressbook cannot be null). A default team is always created if the user does not have any teams.
Team names must be unique and hence Teams are equal to each other through comparison of their names only (Instead of with their members and tasks).
The UI is not updated and will be updated after we discuss about it.

Codecov Report
Base: 66.47% // Head: 66.75% // Increases project coverage by +0.27% :tada:

Coverage data is based on head (06b01ab) compared to base (2148c60).
Patch coverage: 58.20% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##             master      #28      +/-   ##
============================================
+ Coverage     66.47%   66.75%   +0.27%
- Complexity      421      467      +46
============================================
  Files            81       91      +10
  Lines          1408     1534     +126
  Branches        149      166      +17
============================================
+ Hits            936     1024      +88
- Misses          435      464      +29
- Partials         37       46       +9

Impacted Files
Coverage Δ

...ss/logic/commands/exceptions/CommandException.java
100.00% <ø> (ø)

...edu/address/logic/parser/AddTeamCommandParser.java
0.00% <0.00%> (ø)

.../seedu/address/logic/parser/AddressBookParser.java
69.56% <0.00%> (-10.44%)
:arrow_down:

.../address/logic/parser/DeleteTeamCommandParser.java
0.00% <0.00%> (ø)

...edu/address/logic/parser/SetTeamCommandParser.java
0.00% <0.00%> (ø)

src/main/java/seedu/address/model/Model.java
100.00% <ø> (ø)

...c/main/java/seedu/address/model/team/TaskList.java
17.50% <0.00%> (+7.50%)
:arrow_up:

...s/model/team/exceptions/TeamNotFoundException.java
0.00% <0.00%> (ø)

.../java/seedu/address/model/util/SampleDataUtil.java
16.66% <0.00%> (-3.34%)
:arrow_down:

...rc/main/java/seedu/address/model/ModelManager.java
89.09% <14.28%> (-8.83%)
:arrow_down:

... and 13 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Quake->Godot Coordinate Change

So this is more of a discussion than an issue, as I'm also working on a BSP importer and I'm a bit undecided on what to do with the X axis.  Obviously, Z needs to become Y, as Z is up in Quake and Y is up in Godot.  Originally, I was just going to keep X the same, but when I started working on entity angles, it made me wonder if it makes more sense to make +X into -Z, since +X is 0 rotation, and forward in Godot is -Z, so it just sort of works out.  Qodot seems to make +X into +Z, which makes everything 180 degrees off.  Looking at how you've handled it, it seems like you turn +X into -X? Vector3(-q.x, q.z, q.y)  Curious what the reasoning behind that was.

I've been using this conversion since 5-6 years ago. that was my first attempt at my parser for my old game engine (before Godot). IIRC, I used the X-axis as a forward direction like Quake. When I came to Godot, it seemed like the stuff was broken when I moved here. The workaround I remembered is negating the X-axis and rotating entities clockwise-counter 90 degrees. And yeah, It pretty much was a rough approach because there's no standard conversion about these as far as I found.
But when you start to discuss this topic. It makes me realize that the approach you suggested is interesting. Using X to -Z Vector3(-q.y, q.z, -q.x) instead of X to -X Vector3(-q.x, q.z, q.y) gave me the same result but not needed to add angles. It may fix other issues in my func_ implementations.


Explorer.exe not reopening

Hello,
New to github but I just wanted to post that when I run your script with the parameters -Silent -RemoveApps -RemoveGamingApps -DisableWidgets, Explorer .exe is terminated but then never reopens. I have to manually go in and reopen it through task manager. Are you seeing the same issue on your end?
This is on Windows 11 build 22631.3672
Thanks!

Heya,
I have run into this in the past, but I wasn't able to figure it out until now. It seems like restarting explorer.exe only works properly if the powershell process and OS architecture match (ie. powershell is run as a 64 bit process on a 64 bit OS).
Do you remember if this was also the case when you ran into this issue?

Thanks so much for getting back to me so quickly!
Yes, it is a 64bit process running on a 64bit OS. I re-ran it just to be sure and I get the explorer.exe crash with no reinitialization again.

Hmm that's interesting.
Also, could you be so kind to try it again for me with the latest version of the script? I have added a check that prevents the issue I discussed, I just want to confirm if Windows isn't up to any funny business 🙃

Yes, we run Crowdstrike. I could try running it before I install crowdstrike to see if that resolves it.
I pulled the latest version of the script and had the same thing happen. I'll run it before crowdstrike is installed and see if that makes a difference then get back to you. Thanks again!

Thanks!
I have found a different way to restart the explorer process that may work better. Could you try running this for me in powershell: Stop-Process -processName: Explorer
Explorer should automatically restarted in this case, the current method the script uses relies on manually restarting powershell.

Stop-Process -processName: Explorer asked me to confirm but then it restarted explorer without issue. Not sure if the confirm will be an issue in your script or not.

That's great! It looks like we can force our way past the confirmation 😄
I'll update the script to use this method.
P.S. I really appreciate the quick response and help with figuring out this issue!

Just pulled the newest version and ran again, explorer restarted perfectly! Thanks so much for your help!

That's great to hear! Thank you for your help aswell!
Closing issue


Divide plates using age value, rm plate merging code

[#183681517]
Project team requested very new behavior/rules that define plate division. It used to be based on the plate size and the new boundary was very random.
Now, the division happens when the freshly added crust becomes old enough (=> heavy). In this case, the plate breaks into two plates, creating a new convergent boundary defined by age differences. The PT story provides lots of context and description of expected behavior. I've added a few other rules that are not defined in PT story to avoid creating multiple small plates.
I've removed the old division and merge code (merging wasn't used for a while, since I added grouping: https://github.com/concord-consortium/tectonic-explorer/pull/274). That's why I could completely remove one of the test files.

I accidentally merged this PR into the wrong branch, so I merged 183681517-plate-division-by-age into master manually.


videos are downloading in 720p even when the quality is set to 1080p/highest

videos don't download in 1080p.

Thanks for reporting. I will have a look.

same issues
I use the linux version

While trying to debug, I found that Udemy is responding with 720p file even when the download link for 1080p video is used. So I guess there is nothing I can do about this issue.
If anyone is using some other downloader where 1080p is correctly downloaded, please link it here so that I can check.

Any news? I want to download on 1080 but is still 720.
Thanks

It seems youtube-dl can download  1080p  in hls-stream format

maybe bug from response, i have many download setting at highest and this app get random 720p and 1080p even the course have 1080p video

Same issue here any way to get 1080p videos. they are not even coming on their web player

allavsoft still allows you to pull 1080p

Same issue.
(However, I found point#1 and 4 helpful at their support site - https://ufbsupport.udemy.com/hc/en-us/articles/115005369487-Video-Playback-Issues" )

The "problem" is that the 1080p movies are in HLS format (ie reported as "Auto" and pointing to the m3u8 file). This format allows for automated selection of the best format for your screen/network.
The way udeler handles downloads is by selecting the best quality; and Auto is not the best... Furthermore, udeler is downloading a single file per lecture. And as such cannot handle hls streams at this moment.


docs: update all links to Zephyr docs to v3.3.0

All links were pointing to Zephyr 3.0.0. Since we support Zephyr 3.3.0,
provide links to that version of docs.

Thanks a lot @szczys ! Appreciate this double check, it is tedious, but important.


Question about Patch size

Dear author,
I find that --patch_size intensively influence the memory occupied in train or test. For instance, when I set --patch_size=192 for baseline, the process occupy 6GB+ Memory, when it was changed to 96, the process occupy 3GB+ Memory.
And I would like to konw whether patch_size would change the final performance of train or test. it seems like patch_size would change the speed of running.
I am looking forward for your  reply, thank you!

Hello.
You are right, --patch_size is a very important option to control your GPU memory usage and training time.
We found that larger training patch can increase the final performance a bit (~0.05dB).
If you have trouble increasing --patch_size, use smaller --batch_size or increase --epochs to get similar results.
Just avoid very small patches (ex. 12x12 input training patches - --patch_size 48 for --scale 4), and you can get desirable results.
Thank you.

Your reply is very helpful ! Thank you very much.
And I got another problem about reference time. I would like to know if there is any way to reduce the scale time in your code.
If I want to use only Y channel (yuv format) to scale up images,  do I need to change the  architecture of network ?

Just use a --n_colors 1 argument to train/test your model on Y channel (Actually, it is a YCbCr format. You can change it here if necessary.)
You do not need to change the architecture if they are well-defined.
In EDSR code, you can find that I did not hard-code 3 for input RGB channels.
For your first question, please make it clear.
Does it mean that you want to accelerate the inference time?
In that case, you can make your model smaller by changing --n_resblocks or --n_feats if you can sacrifice the performance a little bit.
Otherwise, you have to implement more fancy acceleration algorithms by yourself.
If you have any question about this, feel free to ask me.
Thank you.

It's really kind of you ! The code you shared is really helpful!
I find there are some codes need to change in sub_mean function for Y channel, then I changed it.
Then I used --n_colors 1 to train the model , and I got amazing result that about 1 PSNR improvement in Validation set.
And yes, I want to accelerate the inference time when the network is immovability. Is there any trick in your code to  accelerate, such like use --chop or --precison

It's really kind of you ! The code you shared is really helpful!
I find there are some codes need to change in sub_mean function for Y channel, then I changed it.
Then I used --n_colors 1 to train the model , and I got amazing result that about 1 PSNR improvement in Validation set.
And yes, I want to accelerate the inference time when the network is immovability. Is there any trick in your code to accelerate, such like use --chop or --precison

Hey, I want to know how you changed the sub_mean function for Y channel.
And, you said there was an about 1 psnr improvement by using --n_colors=1, could you tell me which model you trained. I'm training my own model recently by using n_colors=3 , but the psnr seems  to be bad

It's really kind of you ! The code you shared is really helpful!
I find there are some codes need to change in sub_mean function for Y channel, then I changed it.
Then I used --n_colors 1 to train the model , and I got amazing result that about 1 PSNR improvement in Validation set.
And yes, I want to accelerate the inference time when the network is immovability. Is there any trick in your code to accelerate, such like use --chop or --precison

Hey, I want to know how you changed the sub_mean function for Y channel.
And, you said there was an about 1 psnr improvement by using --n_colors=1, could you tell me which model you trained. I'm training my own model recently by using n_colors=3 , but the psnr seems to be bad

Excuseme, do you solve this problem? I also want to train on the Ychannel

It's really kind of you ! The code you shared is really helpful!
I find there are some codes need to change in sub_mean function for Y channel, then I changed it.
Then I used --n_colors 1 to train the model , and I got amazing result that about 1 PSNR improvement in Validation set.
And yes, I want to accelerate the inference time when the network is immovability. Is there any trick in your code to accelerate, such like use --chop or --precison

Hey, I want to know how you changed the sub_mean function for Y channel.
And, you said there was an about 1 psnr improvement by using --n_colors=1, could you tell me which model you trained. I'm training my own model recently by using n_colors=3 , but the psnr seems to be bad

Excuse me do you solve this problem? I also want to train on the Ychannel,but there is also an error on the sub_mean, how do you change the related codes? Thanks a lot any way.


chore: bump dependencies

Bumping all deps

@Etienne-Buschong I clicked through the demo and everything has worked just fine.
This update also includes a ts-morph update (supporting ts 4.7, same as angular 14). Since we don't have any other tests yet I merge this and we find out if there are any bugs


Terminal not showing complete output unless resized

Issue Type: Bug
Just installed the update and looks like the terminal is broken.
I'm unable to see the complete output in the terminal unless I resize it.
Works fine with --disable-extensions.
Probably related to #85004.
VS Code version: Code 1.40.1 (8795a9889db74563ddd43eb0a897a2384129a619, 2019-11-13T16:49:30.162Z)
OS version: Linux x64 4.15.0-66-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-3667U CPU @ 2.00GHz (4 x 3026)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: disabled_softwareskia_renderer: disabled_offsurface_control: disabled_offsurface_synchronization: enabled_onvideo_decode: unavailable_offviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
2, 1, 1

Memory (System)
7.44GB (0.78GB free)

Process Argv
--no-sandbox --unity-launch /home/mfa/Documents/salon-app-back-end

Screen Reader
no

VM
0%

Extensions (6)

Extension
Author (truncated)
Version

vscode-eslint
dba
1.9.1

prettier-vscode
esb
3.6.0

aws-cli-configure
mar
0.3.0

dotenv
mik
1.0.1

sort-lines
Tyr
1.9.0

material-theme
zhu
3.0.1

(1 theme extensions excluded)

If you bisect your enabled extensions can you identify which one causes the problem?

@gjsjohnmurray, I'll do it tonight when I'm at home.

Hi, I've downgraded because of the font color being washed out/dull. Probably a theme issue (One Dark Pro). I'll see if I can replicate it on my Windows machine tonight.

When it happens can you also check devtools console (via help menu) for errors?


UNKNOWN -> 'use_module/1'

use_module/1 seems to be unusable, e.g.:
Trealla v0.1alpha, 64-bits (int=128-bits), Nov 30 2016
?- use_module(dict).
ERROR: UNKNOWN -> 'use_module/1'
WARN: ERROR ABORT_NOTDYNAMIC

(0.000 s) no
?-

BTW, using/1 is also not usable. e.g.:
?- using([dict]).
ERROR: UNKNOWN -> 'using/1'
WARN: ERROR ABORT_NOTDYNAMIC

(0.000 s) no
?-

Yes, known problem. These are file directives ONLY at the moment. I need to make them actual predicates.

Somewhat related to this, the REPL currently runs a new query for each input. This has two consequences: 1) there is no memory between inputs, 2) the directives as above would have no staying power. So I have to change this behaviour before I can solve this issue. But will do soon for sure.

You can now do:
?- using(sys),now(T).
from the REPL.
Also use_module should work. As long as they are on the same line (query).

Not sure if I did something wrong, I can not use use_module/1 for custom modules.
Following is a simple module:
:- module(foo).

hi :- write(hi), nl, halt.

Then I use use_module(foo), foo:hi in REPL, an error is occurred.
Trealla v0.1alpha, 64-bits (int=128-bits), Dec  1 2016
?- use_module(foo), foo:hi.
ERROR: UNKNOWN -> '/2'
WARN: ERROR ABORT_NOTDYNAMIC

(0.000 s) no
?-

Ok, use_module only really loads compiled-in modules. perhaps it should also look in the 'module' sub-dir and/or current dir and load from there? Not sure.

Find another way:
Trealla v0.1alpha, 64-bits (int=128-bits), Dec  1 2016
?- consult(foo).

(0.000 s) yes
?- foo:hi.
hi
Halted

I'm a bit confused by use_module/1, using/1 and consult/1, the differences between them are not quite clear.

Saying 'using(sys)' means you don't have to say 'sys:now(Secs)' you can just say 'now(Secs)' in your code.
Calling 'use_module(Name)' is a lot like 'consult(Name)' except it does an implicit 'using(Name)' on the module.

Also, use_module can load compiled-in modules, whereas consult can't.

Thanks, all clear now.

Actually, I think I will get rid of 'using' and let 'use_module' cover it. Very simple to do.

Interesting that, I can not load modules using consult/1 again, can not figure out how I did it before.
Trealla v0.1alpha, 64-bits (int=128-bits), Dec  1 2016
?- consult(foo).

(0.000 s) yes
?- foo:hi.
ERROR: UNKNOWN -> 'hi/0'
WARN: ERROR ABORT_NOTDYNAMIC

(0.000 s) no
?-

My fault, hi/0 need to be exported.