Enable send event routing

Description of the change
This PR updates the SendInterface and its implementation in order to make calls to the /send/:event/routing endpoint. It adds request and response model classes in order to make requests via the SDK. I've added an example to the CourierClientApp class.
Type of change

[ ] Bug fix (non-breaking change that fixes an issue)
[x] New feature (non-breaking change that adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Related issues

Fix #1

Checklists
Development

[ ] Lint rules pass locally
[ ] The code changed/added as part of this pull request has been covered with tests
[ ] All tests related to the changed code pass in development

Code review

[ ]  This pull request has a descriptive title and information useful to a reviewer. There may be a screenshot or screencast attached
[ ] "Ready for review" label attached to the PR and reviewers mentioned in a comment
[ ] Changes have been reviewed by at least one other engineer
[ ] Issue from task tracker has a link to this pull request

@raniero-sequence we will be supporting this feature via https://github.com/trycourier/courier-java/pull/18/files (pretty much the same as this PR with a couple of additional changes) Thanks again for the contribution :)


remove line length limits

pros:
avoids having to break up long lines, which is sometimes awkward (especially when the line is only very slightly over the limit)
cons:
potentially more awkward appearance of lines when the editor does the wrapping for you

Could we just bump up the max-len to 90?  The other con is that it makes it harder to say no to PRs where an excessively long line gets added.
The other downside of this rule is that it's not auto-fix friendly.  If we remove it, and just try to be reasonable, I'm fine.  Personally, I try to keep code lines around 60 chars anyway, because font sizes.

i would definitely be open to choosing a longer limit instead, but the added fact that it's not auto fix friendly does make me lean toward removing it entirely


Add screenshot  functionality

It "should" be easy to add screenshot capability using selenium. Would be good also so that the coach could have that functionality so you are sure what you test.

Pass --screenshot to save screenshots of each run.

Hey,
Have you seen that latest movie? I don't know what all the fuss is about. Before you watch it read a review here http://tholtycuvo.politicalresumes.us/xynmth
Yours sincerely<EMAIL_ADDRESS>


fix: handling visibility of options in multiselect

Proposed changes (including videos or screenshots)
The multiselect component had an outer Box which handled the visibility of the AnimatedVisibility when clicked. So, this was getting overlapped with the actual anchorSelect's onClick. So when we press a click outside of the anchorSelect, it responds to us by going from -> hidden -> visible in one click.

So, with this change we handle the visibility in a state keeping track of the "click to the outer box" and changing it to hidden/visible correctly.
if (visibility === AnimatedVisibility.VISIBLE) {
       setVisibility('hidden');
       return hide();
 }
      setVisibility('visible'); // here "visible" was coming out to be hidden, so when we click on cross we again come here
      innerRef.current?.focus();
      return show();

Before
https://user-images.githubusercontent.com/73601258/163399659-e93c6c6e-8426-4f53-9c35-039ff84bbc50.mp4
After
https://user-images.githubusercontent.com/73601258/163399695-152ad71c-30b3-4e96-8b99-c3d6baea7ee7.mp4

Issue(s)
fixes #696

Further comments

Thanks a lot for the contribution @sidmohanty11
I'm closing this one, because we'll follow a different approach: #759


clevercsv puts "NULL" in columns that do not have values

In the following csv file, the manager_id for the second row gets passed into the cast function of IntColumn as the string "NULL", which causes a conversion error.
employeeNumber,firstName,lastName,payType,paidPer,payRate,bonusAmount,Status,department,manager_id
1,Benjamin,Sisko,"salary","Year","188625","30000",Active,Marketing,4
2,Kira,Nerys,"salary","Year","118625","20000",Active,Finance
,None,Garak,"salary","Year", 100000,,Inactive,Finance,
4,Rasma,Son,"salary","Year",230000,24000,Active,Marketing,
5,Aldina,Sharrow,"salary","Year",140000,18000,Active,Finance,2
6,Viktor,Matic,"salary","Year",180000,25000,Active,Finance,2

Hrm.... this is not reproducible in a test right now. Digging in...


First data access template

This PR introduces the first Data Access template.

Uses two data sources: file that is included and a postgres that is hosted and connection details (read only) are shared. This runs in our context aws account. Data sources are linkable - they have shared customer_id field.
Two queries

One simple query to one data source only, one paramters
Second one is more "real world" that validates the input from the agent, and only if one customer name is found, performs a more complex query that joins two data sources. Also includes proper error handling, and three test inputs. "Like we want people to do".

Getting alerts from GitGuardian that a password is exposed here - that is on purpose as otherwise it's pretty hard to make a sample for database connections. :)


First attempt to fix fortran issue with submodules.

I noticed that the scanner was already set up to ignore module followed
by the keyword procedure (case insensitive). Here, I then modify the
regex used for that to also ignore module followed by the keywords
subroutine or function. However, this does not fix the original problem
and I was able to confirm that SCons fails before the scanner is called
as printing out the value of the variable defmodules (not included in
the commit) is not printed. By changing the test files to something that
does not fail, I was able to confirm that the printout does happen in
that case and that module followed by subroutine and function are
correctly ignored.
See email thread at:
https://pairlist4.pair.net/pipermail/scons-users/2018-April/006893.html
Contributor Checklist:

[ ] I have created a new test or updated the unit tests to cover the new/changed functionality.
[ ] I have updated master/src/CHANGES.txt directory (and read the README.txt in that directory)
[ ] I have updated the appropriate documentation

Coverage increased (+1.6%) to 77.625% when pulling 4c242be65ed4a31ac5073a265255f8a8acf51fb6 on pdiener:fortran_issue_3135 into 370e4f79cc9da517926270b8bda352b14e43cbf0 on SCons:master.

Can you add a testcase to cover the change?
Also an blurb in src/CHANGES?

Is it possible to provide the examples referenced in the email thread, or some other example that shows this problem?  Only one file survived in the email archive, the rest were "scrubbed" and are not accessible:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_1.f90
Type: text/x-fortran
Size: 718 bytes
Desc:
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20180427/58eb3131/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_2.f90
Type: text/x-fortran
Size: 718 bytes
Desc:
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20180427/58eb3131/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_submodules.f90
Type: text/x-fortran
Size: 268 bytes
Desc:
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20180427/58eb3131/attachment-0002.bin>

Closing I've pulled your changes into #3359 and added tests.


Setting up ROCM issue; ImportError: libhiprand.so.1 ; Specify CUDA_TOOLKIT_ROOT_DIR

I have AMD GPU. Trying to install ROCM to utilize tensorflow:
after installing ROCM. Python IDE provides the following:
ImportError: libhiprand.so.1: cannot open shared object file: No such file or directory
To solve this issue, I read i need to install RocRand to solve the issue but I get the following. I do not use Invidia GPU.
CMake Error at /usr/share/cmake-3.10/Modules/FindCUDA.cmake:682 (message):
Specify CUDA_TOOLKIT_ROOT_DIR
Call Stack (most recent call first):
cmake/SetupNVCC.cmake:72 (find_package)
cmake/VerifyCompiler.cmake:28 (include)
CMakeLists.txt:49 (include)
-- Configuring incomplete, errors occurred!
See also "/home/c/Downloads/rocRAND-master/build/CMakeFiles/CMakeOutput.log".
When I run "hipconfig":  bash: hipconfig: command not found

What OS are you running, and what process are you following to install ROCm, MIOpen, Tensorflow, and rocRAND?

Ubuntu 18.04.
Initially, I followed the process outlined steps here (https://rocm.github.io/ROCmInstall.html):

Ubuntu Support - installing from a Debian repository
First make sure your system is up to date
sudo apt update
sudo apt dist-upgrade
sudo apt install libnuma-dev
sudo reboot
Add the ROCm apt repository
For Debian based systems, like Ubuntu, configure the Debian ROCm repository as follows:
wget -qO - http://repo.radeon.com/rocm/apt/debian/rocm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main' | sudo tee /etc/apt/sources.list.d/rocm.list
The gpg key might change, so it may need to be updated when installing a new release. If the key signature verification fails when you attempt to update, please re-add the key from ROCm apt repository. The current rocm.gpg.key is not avialable in a standard key ring distribution, but has the following sha1sum hash:
f7f8147431c75e505c58a6f3a3548510869357a6 rocm.gpg.key
Install
Next, update the apt repository list and install the ROCm package:
Warning: Before proceeding, make sure to completely uninstall any previous ROCm package:
sudo apt update
sudo apt install rocm-dkms

Then i did the following from Tensorflow upstream (https://github.com/ROCmSoftwarePlatform/tensorflow-upstream):

Install some ROCm dependencies
sudo apt install rocm-libs miopen-hip cxlactivitylogger
Pip3 install the whl package from PyPI
pip3 install --user tensorflow-rocm

I do not recall installing MIopen

I reinstalled everything.
import tensorflow as tf
mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(512, activation=tf.nn.relu),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)

/usr/bin/python3.5 /home/c/.PyCharmCE2018.2/config/scratches/scratch.py
Traceback (most recent call last):
File "/home/c/.PyCharmCE2018.2/config/scratches/scratch.py", line 1, in
import tensorflow as tf
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/init.py", line 22, in
from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/init.py", line 81, in
from tensorflow.python import keras
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/keras/init.py", line 24, in
from tensorflow.python.keras import activations
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/keras/activations/init.py", line 22, in
from tensorflow.python.keras._impl.keras.activations import elu
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/init.py", line 21, in
from tensorflow.python.keras._impl.keras import activations
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/activations.py", line 24, in
from tensorflow.python.keras._impl.keras.utils.generic_utils import deserialize_keras_object
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/utils/init.py", line 34, in
from tensorflow.python.keras._impl.keras.utils.multi_gpu_utils import multi_gpu_model
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/utils/multi_gpu_utils.py", line 22, in
from tensorflow.python.keras._impl.keras.engine.training import Model
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/engine/init.py", line 21, in
from tensorflow.python.keras._impl.keras.engine.base_layer import InputSpec
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/engine/base_layer.py", line 28, in
from tensorflow.python.estimator import util as estimator_util
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/estimator/init.py", line 25, in
import tensorflow.python.estimator.estimator_lib
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/estimator/estimator_lib.py", line 22, in
from tensorflow.python.estimator.canned.baseline import BaselineClassifier
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/estimator/canned/baseline.py", line 50, in
from tensorflow.python.estimator import estimator
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/estimator/estimator.py", line 34, in
from tensorflow.python.estimator import model_fn as model_fn_lib
File "/home/c/.local/lib/python3.5/site-packages/tensorflow/python/estimator/model_fn.py", line 29, in
from tensorflow.python.keras.metrics import Metric
ImportError: cannot import name 'Metric'


OHEM does Not work

hi, Its really a nice work.
ClassMix does NOT work when I changed supervised  loss function from cross-entropy to OHEM, the mean-IoU on eval dataset seems like really close, I dont know why this happen?

Hello, thanks.
Could you clarify what you mean when you say that "the mean-IoU on eval dataset seems like really close"?
Are you using OHEM just for the supervised part or for both? When we used MSE loss for unlabeled images we had to alter the weighting paramater between the two losses (The details are in the paper). We have not experimented with using OHEM loss as far as I recall, so I'm not sure what hyperparamaters would be suitable in that case.


compactMapValues/flatMapValues/mapValues for Guarantee

Probably Sequence functions can be added for Guarantees also?
Can prepare PR if needed

Yeah PR welcome, this is an omission for sure.


The instance status is not clear in the VelaUX

Describe the bug

In the VelaUX, the instance status is Running, but the real status is CrashLoopBackOff . We need a clear status show and help users more quickly find errors.
KubeVela Version
1.4.1

@TIEDPAG The key issue here is that the pod status calculation may be incorrect, we do not need to build the table column in the server.


Fix/py3

I added a couple changes to make NicerFileSet to work with py3. You should to check that this doesn't break py2.
I've also changed the file search so that compressed *.gz data can be used.

I think the print statement should be changed to log.info() instead of print(). That will be both python 2 and 3 compatible.
On a longer timescale, I think all of these files should do from __future__ import print_function, division but that should be done in a different PR.

All these have been incorporated, so I 'm closing this without merging. Thanks!


[BEAM-818,BEAM-828] Make tempLocation an inaccessible ValueProvider

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[ ] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify.
[ ] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

This is my first foray into ValueProvider and PipelineOptions excitement. The goal: allow users to access the tempLocation that they specify but make it inaccessible to PTransform.expand(..) implementations.
The natural way to do this would be to clone and alter the pipeline options, something that runners also ought to be doing when they tweak them like TestDataflowRunner does. I am informed this is not possible or feasible in a short timeframe.
So this is a hack that might not actually work that lets get() succeed but makes isAccessible() false. Throwing it out there as a strawman as I don't see a way to do this correctly given today's constraints.

R: @lukecwik @dhalperi please tell me how wrong this is :-)

I think I am going to close this, based on this logic:

If a transform's expand(input) uses input.getPipeline().getOptions() to access required always-available things like tempLocation, this can be mostly mechanically replaced with ProcessContext.getPipelineOptions(). I think this is every use in BigQueryIO.
If a transform's expand(input) uses input.getPipeline().getOptions() to configure itself, then these should be builder methods accepting ValueProvider and the existing type and design patterns for that are just right. I don't know of any uses like this at the moment.
A transform's validate(PipelineOptions) method is now called after construction is complete; it is OK to give it PipelineOptions, though they should be moved to the actual execution environment. This is infeasible in the short term and needs more design work.

I picked up this work sort of out of nowhere and didn't glean this context from my readings. Now I think my approach is not just a hack, but entirely wrong.


how to make it run on Raspberry Pi3? "npm'' dosent work. please provide the steps.

Ignore everything with npm :D


New Interface Design

We have some undecided interface issues since the introduction of the Hamiltonian Monte Carlo (HMC) sampler. More specifically, we need an interface to tell the HMC sampler which variable it should handle. In addition, we also need a way to compose samplers (e.g. Gibbs sampling subsets of variables with different samplers). To solve these issues altogether, I propose the following new interface.
##  Model definition
gaussdemo() =  begin
  s ~ InverseGamma(2,3)
  m ~ Normal(0,sqrt(s))
  for i=1:length(x)
    x[i] ~ Normal(m, sqrt(s))
  end
  return(s, m, x)
end

# Standard sampler interface
res = sample(gaussdemo, data = Dict(:x=>[1 2]), HMC(..., :s, :m))

# Compositional inference interface
res = sample(gaussdemo, data = Dict(:x=>[1 2]), HMC(..., :m),  PG(..., :s))

# Sampler's default behavior is to sample all random variables
res = sample(gaussdemo, data = Dict(:x=>[1 2]), HMC(...))

# Tagging parameters for samplers like PMC, SMC2
res = sample(gaussdemo, data = Dict(:x=>[1 2]), PMC(..., params=[:m]))

# Running program without a sampler produces a draw from the prior
s, m = sample(gaussdemo)
s, m = gaussdemo()

In summary, first, this design removed macros @assume, @observe and @predict. Instead, it introduces additional parameters to each sampler to distinguish different types of variables. Second, this design introduces an interface to compose samplers (e.g. HMC and PG).

Here is a summary of the naming scheme we've discussed. One simple solution is to use the following scheme:
varname_idx1_idx2

Here varname is the name of a variable, e.g.x, m, or s; moreover idx1, idx2 etc are the indices for multiple dimensional variables. For scalar type variables, the name would simplify to varname.
There is one potential drawback with this naming scheme. To illustrate this, let's first start with an (arbitrary) example
gaussdemo() =  begin
  s ~ InverseGamma(2,3)
  m ~ Normal(0,sqrt(s))
  for i=1:length(x)
    x[i] ~ Normal(m, sqrt(s))
    w    ~ Normal(m, sqrt(s))  # definition 1 of var w
  end
    w  ~   InverseGamma(2, 3) # definition 2 of var w
  return(s, m, x)
end

In the above example, variable w is declared twice in difference places. Because Julia is a dynamic language, this is fine. However this makes it difficult for us to distinguish these two w's. In order to implement the compositional sampler interface and report results to the user, we need a consistent naming scheme.  There are two possible solutions

Detect such variable redefinitions and report an error. This explicitly require the user to avoid using the same name for multiple different random variables. However, using arrays are still fine.

Add a special notation (e.g. through calling gensym) to the naming scheme. More specifically, the variable name would look like varname_uniqueid_idx1_idx2. The difficulty, however, is to add meaningful notations so that the user can tell which is which by looking at these variable names.

Meeting summary:

Agree to option 1

Detect such variable redefinitions and report an error. This explicitly requires the user to avoid using the same name for multiple different random variables. However, using arrays is still fine.

Plan:
1.1 Support new naming scheme
1.2 Remove @assume @observe and @predict - just keep ~
2.1 Implement the composition interface, i.e.
translate mumtiple sampler passed
varInfo = sample(gaussdemo, data = Dict(:x=>[1 2]), varInfo, HMC(..., :m),  PG(..., :s))

to
varInfo = sample(gaussdemo, data = Dict(:x=>[1 2]), varInfo, HMC(..., :m))
varInfo = sample(gaussdemo, data = Dict(:x=>[1 2]), varInfo,  PG(..., :s))

Regarding the new naming scheme, will it be good if we just name them like below?
:(x[1])
:(x[1,1])
:(x[1][1])

It looks more straightforward and can easily distinguish between array of array and matrix.

Regarding the new interface, I feel we still need the @model macro because for the case below
gaussdemo(data=Dict(:x=>Float64[1 2])) =  begin
  s ~ InverseGamma(2,3)
  m ~ Normal(0,sqrt(s))
  for i=1:length(x)
    x[i] ~ Normal(m, sqrt(s))
  end
  return(s, m, x)
end

We will need to add a statement in the beginning of the function saying
x = data[:x]

Otherwise the there will be no local x to use.

Regarding the new interface, I feel we still need the @model macro because for the case below

I agree. It makes sense to keep it.

Regarding the new naming scheme, will it be good if we just name them like below?
:(x[1])
:(x[1,1])
:((x[1])[1])

This makes sense. One minor question, can we use x[1][1] instead of (x[1])[1]?

Yes sure, could use x[1][1]!

When we compose two samplers, e.g. HMC(...) and PG(...), is it true that we do Gibbs sampling by 1 HMC step, 1 PG step, iteratively?

When we compose two samplers, e.g. HMC(...) and PG(...), is it true that we do Gibbs sampling by 1 HMC step, 1 PG step, iteratively?

We can do that by default. It is also possible to add a optional parameter iter to allow the user to indicate the number of iterations inside a Gibbs scan:
res = sample(gaussdemo, data = Dict(:x=>[1 2]), HMC(..., iter = 1, :m),  PG(..., iter = 1, :s))

I nearly finish the Gibbs sampling feature, with few things unsure. One of them is about using HMC and PG together: when a HMC step is rejected, should I reject the whole Gibbs step, or just reject the HMC part?
I guess it will be better for me to make a PR first so that we can deal with existing issues together. I will make a PR this afternoon.

Some updates since PR #73. The new bit is:

how we pass in data variables: The basic idea is to introduce a new data type Data, which implicitly constructs a data dictionary and stores all data variables in this internal dictionary. Moreover, passing in data variables through global variables should be depreciated later.
add a new type Gibbs, which allows us to compose different samplers within a Gibbs sampling algorithm.

gaussdemo() =  begin
  s ~ InverseGamma(2,3)
  m ~ Normal(0,sqrt(s))
  for i=1:length(x)
    x[i] ~ Normal(m, sqrt(s)) # Note: we need to fetch x from gdemo(; data = Data(...)).
  end
  return(s, m, x)
end

sampler = Gibbs(HMC(..., :m), PG(..., :s))
chn = sample(gdemo, Data(x=[2,3]), sampler)

Regarding the introduction of the new Data type, I'm thinking of doing this job along with unifying the dictionary (used by @predict) and VarInfo, because basically what these 3 data structure do is to relate a symbol (variable) to a value (uni/multi/mat/array). Does it make sense?

Close in favour of #104


this app is good,But it runs very slowly on my tiny linux device.the device  have 4*A55  cpu .

I want to know which part of the code will cause slow down.

The loading time for this screen is long.


404 Update-Template.ps1 Reference

I see that Update-Template.ps1 is no longer current, but still referenced in the documentation here http://vester.readthedocs.io/en/latest/contribution.html.  Can we get a quick update to the docs so it is apparent the broken link is a known issue, without digging through the other multi-paragraph issue?
Also, let me know the appropriate etiquette for this kind of thing - am I supposed to just fork and submit a pull request to fix it myself?

Absolutely. Would love to see more work done on the documentation - you can reference #70 for that stream. Currently, I just ported our old docs to ReadTheDocs to lay the groundwork.

Fixed by #97


Guest code

Coverage remained the same at 81.503% when pulling 6e5defb0ac54cce6e5b913174c4cbbcb00fd340d on guest-code into fe3df795200fc69259659588266c94d87f03d9cd on master.

Coverage remained the same at 81.503% when pulling 17969cc8031160db606af302b4e3202d9decb950 on guest-code into fe3df795200fc69259659588266c94d87f03d9cd on master.


APP-1208 Fix API endpoint for validating token pair

Codecov Report

Merging #117 into dev will decrease coverage by 0.79%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##              dev     #117     +/-   ##
=========================================
- Coverage   90.88%   90.08%   -0.8%
=========================================
  Files         134      166     +32
  Lines        2578     3298    +720
  Branches      243      309     +66
=========================================
+ Hits         2343     2971    +628
- Misses        183      248     +65
- Partials       52       79     +27

Impacted Files
Coverage Δ

...ation/pod/api/client/IntegrationAuthApiClient.java
83.92% <100%> (ø)
:arrow_up:

...ioning/exception/AppRepositoryClientException.java
100% <0%> (ø)

...visioning/properties/AuthenticationProperties.java
0% <0%> (ø)

...rovisioning/service/CompanyCertificateService.java
82.6% <0%> (ø)

...on/provisioning/exception/UserSearchException.java
100% <0%> (ø)

.../exception/ConfigurationProvisioningException.java
50% <0%> (ø)

...ion/provisioning/properties/KeyPairProperties.java
0% <0%> (ø)

...provisioning/properties/ApplicationProperties.java
0% <0%> (ø)

...ning/service/ConfigurationProvisioningService.java
93.75% <0%> (ø)

...ation/provisioning/service/ApplicationService.java
95.65% <0%> (ø)

... and 23 more

Continue to review full report at Codecov.

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


Add option to show tooltips to players for more or fewer tokens

Noticed on Discord:

Rafaxexe 08/27/2020
Hi! I'm DMing a game and we just moved to foundry, could someone please point me in the right direction to edit something in a module?
The module is Illandril's Token Tooltips and I would like to make people unable to see ally's tooltips, as in editing the module's code somehow, since it has no way to config anything.

This enhancement will allow tooltip visibility for players to be set to...

Friendly Tokens (current behavior)
Neutral or Friendly tokens
Player Tokens
Observed Tokens
Owned Tokens (the original request)


please provide an example of registering the authentication provider using config

Not every application has a way to add the code to register the provider programmatically.

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

ID: 692d8637-4033-767b-aa29-3859f301b7b8
Version Independent ID: de143a26-3dd6-a513-6854-604e4f68c52f
Content: ActiveDirectoryInteractive connects to SQL
Content Source: articles/sql-database/active-directory-interactive-connect-azure-sql-db.md
Service: sql-database
GitHub Login: @GithubMirek
Microsoft Alias: MirekS

@shueybubbles Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

@shueybubbles If you would like to file a product feature request and track it / get your peers to vote on it, go to https://feedback.azure.com/forums/908035-sql-server
Thanks,
carl

#please-close

We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.


Feat: Added testimonials

Closes #98
Hi, I have added the testimonials section which matches with ui and theme of website and are also mobile responsive.

Mobile view:

https://github.com/BamaCharanChhandogi/Diabetes-Prediction/assets/121669832/d900aa71-6d08-458c-ade3-83a24d18f708
Please check it and let me know if any changes to be made. Thank you!

Thank you for submitting your pull request! 🙌 We'll review it as soon as possible. In the meantime, please ensure that your changes align with our CONTRIBUTING.md. If there are any specific instructions or feedback regarding your PR, we'll provide them here. Thanks again for your contribution! 😊

Do not modify the 'package.json' file. Update to the latest code, and then I will merge.

Please check it now.

You should improve the design of (responsive) arrow buttons.

I have increased the padding , now it looks good in all types of screens.

Alright. This issue is showing in the console, please Fix it.

Can you please refresh and check it once, all images are being displayed to me.


Show followers and following on different Layers on the map.

@prasht63 As you are working on the UI as well: Please check if you can also implement that the scrollbars do not show up for the views as described here https://github.com/loklak/loklak_webclient/issues/266

Where can we test this?

This feature shall be supported by the loklak_server, the corresponding feature is https://github.com/loklak/loklak_server/issues/64
If https://github.com/loklak/loklak_server/issues/64 is implemented, the loklak_webclient must use the api provided by https://github.com/loklak/loklak_server/issues/64 to fetch followers and following and remove the currently implemented fetch method.

The retrieval of followers from the twitter client inside loklak_webclient should be replaced by a retrieval of those data from loklak_server. Therefore I re-open this issue: please retrieve the follower list from loklak_server, documentation is online at http://loklak.org/api.html#account .. please scroll down to "Retrieval of Twitter User Account Data" for details.

closing this as already implemented on /map


About the use of GPU

Hi Ruiqi,
Thanks for your nice work! Does your code support running on GPU? I haven't modified it successfully.
Thank you very much!

I solved the problem by simultaneously modifying the "CUDA_VISIBLE_DEVICES" setting in two .py files, namely "clustering.py" and "link_prediction.py", since the main "run.py" file import both of them. I guess that you only modified either one of them.


The return value of predict_proba function in causality.pairwise

Dear Diviyan:
I found that in doc

Does the return value of this function is between -1 and 1?
but when I applied this function I often got some much larger values such as 13,14,
do this larger values mean that the causal relation is much stronger?
Thank you for your reply.

Hello @NawTun,
It depends on the algorithm, but currently ,predict_proba outputs the raw output of the algorithm. Which one are you using ?
Best,
Diviyan

Hi @Diviyan-Kalainathan,
Thanks for your reply, I used ANM algorithm,
Although this function returns a raw output, I can still compare the absolute value one output to another output in order to understand relative probability.
For example, predict_proba(a,b) returns 4 when predict_proba(c,d) returns 2,
so a->b is relatively more possible than c->d ,
am I right?

Yes that is correct. The algorithm is more confident in a -> b than c ->d. Did you check with the original (matlab) implementation of ANM ?  Those values does seem high for ANM...

OK, Thanks for your affirmance, Diviyan,
Maybe the original implementation can help to understand, I will check it later.
In addition, CDT is really a great tool, :blush:
Thanks again.

If the value is between -1 and 1, doesn't that mean it doesn't know the direction of the edge.


Ajax file upload

This is a work in progress / request for feedback / experimental / proposition
I've been looking on how to upload files with "remote=true" forms. Did not like the iFrame nor the remotipart solutions, and wanted to take advantage of FormData.
If someone could review my work and tell me if we should continue in this direction.
I could not find info in jquery-ujs policy in terms of browser compatibility, and could not compare with FormData browser compatibility.
Haven't done anything in term of testing for now, until I got enough feedback.

could not find info in jquery-ujs policy in terms of browser compatibility, and could not compare with FormData browser compatibility.

It is the same as jQuery 1.8.
I think FormData to files only works properly on Chrome so it would be hard to add support for this in jquery-ujs out-of-box

Ok so I close this PR then


cuegroup Caption not working

Describe the bug
Create a new cue table and cardpart page for that cue, within the layout you can set the caption of the cuegroup but it will not show as the Name of the cuegroup appears instead.
The ShowCaption property may not be working - as it does not hide the name of the cuegroup.
To Reproduce
page 50100 "Project Issue Cue"
{
    Caption = 'My Project Issues';
    PageType = CardPart;
    SourceTable = "MyCueTable";

    layout
    {
        area(content)
        {
            cuegroup(projectIssues)
            {
                Caption = 'Project Issues';
                field("Project Issues"; "Project Issues")
                {
                }
            }
        }
    }
}

Expected behavior
The caption "Project Issues" should appear above the cuegroup OR should be hidden if the ShowCaption property is set to false
Screenshots

The name of the cuegroup is always show in bold however and not the caption / cannot be hidden
Versions:

AL Langauge: 2.1.69331

Business Central: US Dynamics NAV 13.2 (26556)

For me cuegroup property ShowCaption = False doesn't work


Why I could not use the SecureCRT.app after I press ctrl +` on Mac OSX 10.13.4

VSCode Version:
OS Version:

Steps to Reproduce:

Hi,I want to use the SecureCRT.app ,and I have alread edited the "terminal.external.osxExec": "SecureCRT.app"
},but it is can out open the SecureCRT.app when I press ctrl +` ,My osX version is 10.13.4 ,made in 2014 mid,64 bit.
Please help me ,Thanks very much

Does this issue occur when all extensions are disabled?: Yes/No

I have been modified it ,but it's not effective

ctrl+is the integrated terminal, which is configured usingterminal.integrated.shell.osx`. The external terminal is triggered with cmd+shift+c


Typo CI was removed

Typo CI has been removed by its owner (see here). I am currently looking for an alternative.

good to know, thanks
too bad non of the (apparently existing) GitHub actions alternatives are listed

too bad non of the (apparently existing) GitHub actions alternatives are listed

Yes, it's a pity, but one finds quite a bit if you search for "spellchecker" or "typo". We just have to evaluate which one fits our needs best. The thing that I didn't like about typo CI was that it failed silently. It was easy to miss some typos. Ideally, the new tool explicitly marks the pull request as failed if a typo is found but it should not block and should not run on master (so we do not get a red "x" for having a typo on the master branch)

I think failing CI/PR for a typo is a bit strict, I actually like the annotations (though a concise report would be nice)

It's just to get a visual hint, that there actually are some typos. Travis had a nice feature, where you could mark certain runs as "allowed to fail". If those runs actually failed, the whole build was still counted as a success. Such a feature would be nice for GH too.

https://github.com/marketplace/actions/check-spelling This seems worth a try, it offers a more programming friendly way of checking, e.g. CamelCasing will be recognized.
The other real GH action alternative is this one https://github.com/marketplace/actions/github-spellcheck-action
It uses pyspelling as backend.


Fix MSVC compiler warnings

Silences a few MSVC compilation issues due to warnings.

Missing <optional> include
size_t values explicitly downcast to int
Bit shift warnings
suite rename due to member variable shadowing

@bifurcation Thanks!


Do > To ;)

Thanks. I will change the commit description into Doc: Fix typo in advanced tutorial.

👍
From: Hugo Herter @.>
Reply to: aleph-im/aleph-vm @.>
Date: Thursday, 23 September 2021 at 12:25
To: aleph-im/aleph-vm @.>
Cc: Claudio Pascariello @.>, Author @.***>
Subject: Re: [aleph-im/aleph-vm] Do > To ;) (#86)
Thanks. I will change the commit description into Doc: Fix typo in advanced tutorial.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/aleph-im/aleph-vm/pull/86#issuecomment-925686499, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AA6GLSCV42MGTQGUEYWNLEDUDL6AVANCNFSM5ETKISAA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Fixed in bba73fa05b4ea24452c367dfaff6b15710e63f6a


boot2docker depreciated

Most of the wercker-cli documentation for usage on OS X mentions boot2docker which has officially been depreicated in favor of Docker Machine. A Docker Toolbox app has been released for OS X and Windows to manage the installation process.
Attempting to run boot2docker after the 1.8.x update will throw a depreciation error. Not sure how the affects the usage of Wercker's containers but it looks like Docker Machine's default IP is different than the one wercker-cli is expecting boot2docker to be running on.

This repository is for the old wercker cli. Another ticket has already been opened in our support repository: wercker/support#119


Bug: Duplicating Minion clears Career Skill checkboxes

Duplicate a minion with manually checked career skills. The duplicate will have the ranks if there were any from the original but not the career skill checked.

Probably related : importing/exporting a minion sheet from/into a compendium removes the checked career skills.

fixed in the latest commit of #1081


[FEAT]: Password Requirements

Don't allow any password to be added, restrict strong passwords.

Thanks for your suggestion! I will be adding bcrypt salting, honestly adding a restriction with cases and numbers will be a lot of work. I won't be adding that now


Hardcoded conversion webhook namespace in primary Karpenter helm chart incompatible with running in different namespaces

Description
Description
We run Karpenter in the karpenter namespace and not kube-system. This is primarily for historical reasons. We were early adopters of Karpenter and it is risky and not worthwhile to move the install over the kube-system namespace. We also do not use the karpenter-crd chart. Flux manages the helm install and has a feature to ensure CRDs are upgraded when the helm chart updates. See https://fluxcd.io/flux/components/helm/helmreleases/#controlling-the-lifecycle-of-custom-resource-definitions
The Karpenter chart installs CRDs with conversion webhooks client config hardcoded to the kube-system namespace. Unfortunately this now blocks us from updating to v1 without also migrating to the karpenter-crd chart.
Reproduction Steps
Manage karpenter using flux with crds: CreateReplace set on the install and upgrade specs of the flux helmrelease manifest
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
  name: karpenter
  namespace: flux-system
spec:
  chart:
    spec:
      chart: karpenter
      reconcileStrategy: ChartVersion
      sourceRef:
        kind: HelmRepository
        name: karpenter
      version: 0.37.1
  install:
    createNamespace: true
    crds: CreateReplace
  upgrade:
    crds: CreateReplace
    remediation:
      retries: 1
  interval: 10m0s
  releaseName: karpenter
  targetNamespace: karpenter
  storageNamespace: karpenter

update to 0.37.1

The controller logs an error
{"level":"INFO","time":"2024-08-23T15:23:56.820Z","logger":"controller","message":"k8s.io/client-go@v0.30.3/tools/cache/reflector.go:232: failed to list *v1.NodePool: conversion webhook for karpenter.sh/v1beta1, Kind=NodePool failed: Post \"https://karpenter.kube-system.svc:8443/conversion/karpenter.sh?timeout=30s\": service \"karpenter\" not found","commit":"5bdf9c3"}
karpenter-5657b5578c-w6wqj controller

This blocks the v1 upgrade for user's relying on flux when running Karpenter in any namespace besides kube-system.
Expected Behavior:
The karpenter helm chart should support being installed in any namespace with full functionality.

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Going to close this issue in favor of https://github.com/aws/karpenter-provider-aws/issues/6818. If you have any additional feedback please feel free to add it there.


kitchen test aio-centos-65 fails due to missing /lib/lsb/init-functions

The recipe tries to start the ceph service, but that fails because the init script relies on the standard /lib/lsb/init-functions library, which is provided by the redhat-lsb package.
Should we ensure that package is installed in recipes::rpm, or something similar? It happens with both dumpling and emperor.

I can't reproduce this anymore, so I'm closing it.


[Bug]: container_name prevents replication.

Description
It is not possible to deploy Docker compose files with "replicas:" other than 1.
Minimal Reproduction (if possible, example repository)
Create a Docker Compose resource and attach the following compose.yaml
services:
  my:
    image: 'nginx:latest'
    deploy:
      replicas: 3

Exception or Error
Saved configuration files to /data/coolify/services/iokgo8w.
Creating Docker network.
Starting service.
Pulling images.
services.deploy.replicas: can't set container_name and my as container name must be unique: invalid compose project

Version
v4.0.0-beta.270

To resolve this issue, you need to ensure that each replica has a unique container name. You can achieve this by using the container_name option in your service configuration. Here's an example of how you can modify your Docker Compose file:
services:   my:     image: 'nginx:latest'     deploy:       replicas: 3       container_name: my_container_1     deploy:       replicas: 3       container_name: my_container_2     deploy:       replicas: 3       container_name: my_container_3

To resolve this issue, you need to ensure that each replica has a unique container name. You can achieve this by using the container_name option in your service configuration. Here's an example of how you can modify your Docker Compose file:
services: my: image: 'nginx:latest' deploy: replicas: 3 container_name: my_container_1 deploy: replicas: 3 container_name: my_container_2 deploy: replicas: 3 container_name: my_container_3

@Aniketh999 Sorry I somehow can't get this to work with your answer. Complains about duplicate "deploy:" What am I getting wrong? Would you mind posting a properly formatted example? Thanks!

Would be interesting to see if the same happens with a raw Docker Compose

The problem is inherent to coolify generating the container names and not knowing about replicas. So rather a feature than a bug :-).
I can get by with this workaround:
services:
    worker-1: &worker
        image: vanwittlaer/some-image:latest
        restart: unless-stopped
        ...
    worker-2: *worker
    worker-3: *worker

The problem is inherent to coolify generating the container names and not knowing about replicas. So rather a feature than a bug :-).
I can get by with this workaround:
services:
    worker-1: &worker
        image: vanwittlaer/some-image:latest
        restart: unless-stopped
        ...
    worker-2: *worker
    worker-3: *worker

Smart! Unfortunately it might only solve half the problem, not having real replica prevents the rolling update features, meaning the service will experience down-time at each update.

It would be genuinely a very nice experience to just write:
services:
  myapp:
    build:
      context: ./apps/myapp
      dockerfile: Dockerfile
    environment:
      - SERVICE_FQDN_MYAPP
    deploy:
      replicas: ${MYAPP_REPLICAS}

and have coolify be able to take over and just handle this.
Is there anything that inherently prevents this from being possible, or is it something that we might be able to have in the future? Perhaps the restriction that images must be built beforehand?

It would be genuinely a very nice experience to just write:
services:
  myapp:
    build:
      context: ./apps/myapp
      dockerfile: Dockerfile
    environment:
      - SERVICE_FQDN_MYAPP
    deploy:
      replicas: ${MYAPP_REPLICAS}

and have coolify be able to take over and just handle this. Is there anything that inherently prevents this from being possible, or is it something that we might be able to have in the future? Perhaps the restriction that images must be built beforehand?

Coolify adds its own container name after it reads the docker-compose file, preventing replicas and rolling updates. (https://github.com/coollabsio/coolify/discussions/2824#discussioncomment-10528223).
The reason for this is beyond my Coolify/Docker knowledge but I hope this is being looked into.

🆙 I need this too !

This is more of an improvement/feature request, please move your discussion to this discussion https://github.com/coollabsio/coolify/discussions/3862.


SLING-5781 [i18n] generating locale from a string is incorrect

This one has been fixed differently. @anagarwa Can you close the PR?


Test failure: Updating display data

DataScience - VSCode Notebook - (Execution) (slow) -> Updating display data failed twice in last 7 days
2022-09-26 - TestLogs-local-nonConda-3.9-prerelease--ubuntu-latest
https://github.com/microsoft/vscode-jupyter/actions/runs/3131539772
2022-09-15 - TestLogs-raw-nonConda-3.10---windows-latest
https://github.com/microsoft/vscode-jupyter/actions/runs/3058653938

Should now be fixed


add docs linting, cleanup where needed

closes #1699

This only closes the docs part of that issue though, no?

I was thinking we'd just add this directory to the list of directories we lint against in the top-level lint settings. If we're not doing that, could you add a line to the .travis.rc to run linter for docs too? cd docs && npm run lint

Coverage decreased (-0.03%) to 78.064% when pulling e32994cf750c262682784b5ea1a205e3f37ee507 on mparke:docs-linting into d235b10568ab84bb181ab82fdba63410b880e6bf on linode:develop.

oops yeah, let me address /components too

will do re: travis.rc, kept it separate since it's treated as a separate package

Coverage increased (+0.006%) to 78.096% when pulling eab1b4dd42c28fef7a23447f02c67a5fdf6591d1 on mparke:docs-linting into d235b10568ab84bb181ab82fdba63410b880e6bf on linode:develop.

Coverage increased (+0.006%) to 78.096% when pulling eab1b4dd42c28fef7a23447f02c67a5fdf6591d1 on mparke:docs-linting into d235b10568ab84bb181ab82fdba63410b880e6bf on linode:develop.

Aside from missing whitespace before links in the intro sections this looks good.

Coverage decreased (-7.3%) to 70.84% when pulling 8398a3cdd3ed72d76746d5f72321a06797f8fbb2 on mparke:docs-linting into d235b10568ab84bb181ab82fdba63410b880e6bf on linode:develop.

Coverage decreased (-7.3%) to 70.828% when pulling 0295c7f059ac6e3ac7a786e8dbe2fb2f36ea386d on mparke:docs-linting into d235b10568ab84bb181ab82fdba63410b880e6bf on linode:develop.


Feature Request: Precompiled Docker Image

Compiling the simple example app takes ages.
It would be nice and much more beginner friendly if the app could be started within minutes.
Instead of docker i could also think of a nix build that fetches precompiled binaries.

Yap, sounds good. Actually I have a plan to implement the server-side by Servant (instead of the current webpack-dev-server) to demonstrate Miso's isomorphic feature, so the containerization might be better to postpone until that.

Thx, your multi-stage Dockerfile and ready to fire up ytaka23/miso-tutorial-app docker image is absolutely great.


Notebook 'Comparing LightFM with HybridSVD.ipynb'

I tried to run https://github.com/evfro/polara/blob/master/examples/Comparing LightFM with HybridSVD.ipynb, had
to change the variable catch=None to catch=(RuntimeWarning,). It doesn't run if you don't make this change.

Hi! Thanks for reporting!
I'll have a look. There's a long-time-delayed update in my internal develop branch, I'll include the necessary modifications in the forthcoming release.


Add IgnorePointer, Scrollable listener support

The IgnorePointer class enables one to cut a widget subtree off from pointer events. This is useful when a child should not shield pointer events from overlapping children below it.
Added a ScrollListener listener to Scrollable. The ScrollListener runs each time the Scrollable's scrollOffset changes. This can be used to keep overlay widgets in sync with a Scrollable below them.
Removed the Scrollable ScrollClient API. It was no longer used and was clumsy to use as a ScrollListener.
Added global function findScrollableAncestor() to scrollable.dart.
Added examples/widgets/overlay_geometry.dart. The app's Scaffold is contained by a Stack. The Stack is used to display green overlay "Markers" at the corners of the most recently selected list item and where the corresponding tap occurred. The app uses Widget.localToGlobal() to compute the overlay positions of the markers. The ScrollListener is used to keep the markers' positions up to date.

LGTM
Please move the example to the new examples directory.


Can it run on Windows 11? I turned off signature verification in the virtual machine and still couldn't load it

Can it run on Windows 11? I turned off signature verification in the virtual machine and still couldn't load it

It is confirmed to be working on Windows 11 by at least one person. Have you already tried this fix?

Closing due to inactivity.


lwchart: fix 2 bugs

Fix a first bug with race condition on the file system when saving the charts. Since the actual save did not completely complete before the next "filename allocation", two consecutive charts generation can get the same filename, ending up with the second chart overriding the first one. We had the creation of an empty file just after allocation to minimize the risk it happens.
Fix a second bug with lwchart crashing when the dependencies are missing when calling the function generate_chart_from_single_csv. Add the missing check to avoid that bug.

This fixes #13 and #19 .

The fix for #13 seems good.
However, for #19 the problem does not seem to be a race condition.
The problem lies in the ".exists()" part, which checks against the fig_path but at this point, there is yet to be an extension added to this path.  This results in it checking for a file that will never be generated not finding it and overwriting the first one each time.
The solution in the pull request works since it is opening and saving that file without the extension thus the ".exists()" check finds the empty file and the fig_id is incremented correctly. This results in the creation of an empty third file for each graph.
I have a solution that will check if the PNG version is generated, resolving the issue.
lwchart-bug-patch.patch

Thanks @aaronbog for your vigilance. I quickly pushed a fix.


Difference between nonce formats of client.request and hostedFields.tokenize

General information

SDK version:  3.59.0

Issue description
I wanted to get an explanation about my case:
I have noticed that while tokenizing a credit card information with client.request() method, nonce is in 354d11b4-****-** format (something like uuid).
However, when we tokenize by hostedFields.tokenize(), the nonce will be in token_******* format.
I am going to use client.request instead of hostedfields but because of this issue I am receiving an error from server saying "Payment method nonces cannot be used to update an existing card."

First, I'd be sure that you are eligible to handle raw credit card details on your website.
If you are, can you provide the code for how you are tokenizing the raw card details? Nonces with a leading tokencc_ are being tokenized by our GraphQL API, while nonces with leading numbers/letters are tokenized by our older API. Under the hood, the SDK should be intercepting the request made to our old API and using the GraphQL API instead, so both hosted fields and raw tokenization should result in nonce with a leading tokencc_ prefix.
There are some edge cases that would prompt it to use the old API, but we would need to see your code, and what brand of credit card you are tokenizing, to determine if what you are doing falls into that case or not.
All that said, there should be no functional difference between the nonce that starts with tokencc_ and a nonce generated by the older API. So I would reach out to our support team about the Payment method nonces cannot be used to update an existing card. message to dig into to what is going on there. https://help.braintreepayments.com/

I have just analyzed my code carefully and found out that while I was POSTing a credit card information, options: { validate: false } was missing inside data.creditCard. I wrote my code based on the example in README. I guess I should have checked the other examples on the documentation website.

That explains the message you were getting. My guess is you were generating a client token with a customer id. If you don't pass validate: false, the API will default to validate: true when tokenizing with a client token generated with a customer id, which will result in the card being vaulted on the client. Since that's the case, the resulting nonce will refer to a vaulted payment method, which can't be used to update a separate card.


hot-fix: Fix the tensorflow imagestream by removing the trailing space

hot-fix: Fix the tensorflow imagestream by removing the trailing space
JIRA: https://issues.redhat.com/browse/RHODS-12774

Merging to get the fix in.


Filterable App List

This borrows the filtering feature from userland and brings it to the app page.
The appearance of the app list itself is unchanged, for now. Though the description and keywords are not displayed, they are included in the page and used when filtering.
It also syncs the filter input with the URL query string, so you can bookmark or share a URL: /apps/?q=music
cc @electron/maintainers
Eventually I want to display the descriptions and other metadata, but this is start. Iteration ftw!

Pushed this to my fork: https://zeke.github.io/electron.atom.io/apps/?q=music
cc @simurai

Sooo useful. 💯

Eventually I want to display the descriptions and other metadata

Are you thinking of showing that on hover or all the time? I kinda like the "wall of icons", but having to hover to read the descriptions needs a lot more effort. Maybe description could be shown only when filtering?
Also saw that the list is now alphabetically ordered. More 11111aaaa apps soon to come.. 😁

What about a hybrid layout with wall of icons for featured apps, then a filterable list of all the apps?
Kind of like in the blog post roundup:


Gym Website Template added

Description
I have added a cool Gym Website template
Type of change
Feature add

[x] New feature (non-breaking change which adds functionality)

Test Configuration:

Operating system: Windows
Version: 10
Text-editors used: VS Code

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

@Anish-Parkhi  Kindly link this PR with an issue first


Fix Trimerous Essence Pill Price

This one is more debatable.
Auction buy price is unchanged, Sale prices are unchanged. BuyPrice for School and Trade set at the same value as Earth Flux, BaseCount set to 1.
This is in line with similar SR Pool items, Earth Flux as mentioned as well as Wicked Flux.
Could be put as part of a separate complementing mod.

I agree this is a separate change. Idk about filling up the open PR tho, targetting a different branch could also be good.

For things that are debatable fixes, I see two possible routes.

Making it a simple opt-out option, in the form of a lua script. Reworking the changes into a script run OnLoad, that changes the entity data.
Adding the changes to iguana_acs_functions instead. Since fixes is more about fixing issues, not strictly improving the vanilla experience, prices in similar ranges (including the Strange Mushroom) would go better with other additions of a similar nature, like Heavenly Reforge decapping, the Shendao Arrogant "fix", or Casket opening rework.
Same can be said for #9

I agree with that. Do you want toc reate iguana_acs_function as a separate repo or move the current repo in a way that can handle several mods ?

Single mod, single repo. This makes it easier for cutting edge development and use. It's also slightly easier to keep track of things, at least I feel that it should be.
So here's the skeletal structure for both of those mods, any content and further polishing (including the prerequisite mods part under info) can be done at a later stage.
https://github.com/iguanacore/iguana_acs_functions
https://github.com/iguanacore/iguana_acs_features


Add support for Fargate spot pricing

Resource name: AWS Fargate, with spot pricing.
Link to pricing information: https://aws.amazon.com/fargate/pricing/ (but spot pricing)

We will also need to add the spot pricing into the pricing service: https://github.com/infracost/cloud-pricing-api/issues/3

@siutsin / @matpumapay for EC2 spot prices, we update the prices every hour, do you think that be good enough for Fargate spot prices too? Also, can you possibly paste an example terraform resource(s) that you use for this? That helps us ensure we support the required resources.

Hey @alikhajeh1, thanks for getting back. I use it for the dev environment only so a rough estimation will be very helpful 👍

hey @jrnp97, we don't have any updates on this, and it's not part of our near-term roadmap. We regularly prioritise issues and upcoming work based on community support and 👍s. So if this issue is something important to your team, I'd recommend giving it a thumbs up so that it will have a higher importance in our backlog. If you want to get a faster resolution, we're very welcoming to contributors and will help guide you in the process. That being said, this change also requires cloud-pricing database changes, so it might be a bit more involved than other resources.

Ey @hugorut Thanks for the response!, I understand it, and sure I'd like to contribute with this feature When I could have time, in the meanwhile is there any way or Hook to update the prices manually on the output?


how do i put a font?

my attempt:
...
text: {
              title: new Text('Welcome to my guild!', 220, 80).setFontSize(40).setFont('Heartless.ttf'),
...

You need to register the Font before using it, this can be done by the registerFont method from which is provided by canvas out of the box.
const { join } = require('path')
const { registerFont } = require('canvas')

registerFont(join(__dirname, '../path/to/font.ttf'), { family: 'FontName' });

In order to use the font with the package you just need to call the method .setFont as you did before but instead just do .setFont('FontName')
Note:
You should change FontName according to the name of your font.
And ../path/to/font.ttf to the path of your font, relative to the current file you are writing in.

If you don't have any further I will close this issue in 3 days.


electrum: 2.0.4 -> 2.3.2

The travis failure is due to exceeding the time limit. This builds & runs fine for me, fwiw

Merged. Thanks!


Funktioniert nicht!

 Because the full file path is required, e.g.:
/config/attachments/AT0000000000000000000000000000000_QH_20240311.csv
It is also necessary to use the full/absolute path to the file. Since I don't know what you mean with "generic version" I assume you don't use HA OS or the docker container where your root folder for configurations is /config so I would recommend to locate the folder where you stored the CSV files with a command line and print the current folder with a command like pwd.
On Linux your absolute path could look somewhat like this:
/home/username/homeassistant/config/...

Hi the generic version of homeassistant is running on a pc not rasperry.
it was my fault.
i put the correct filepath and the script is running.
thanks


How would I write “either” and “withDefault” decoders?

Hi! Thank you for this perfect library, I’m thrilled to have something better than just JSON.parse and praying.
“Either” field decoder – I am decoding a record and want to decode a slug field that contains a string. That’s easy, but if the field’s missing, I want to use the id field instead:
decodeFoo({id: "123", slug: "foo"}) // {id: "123", slug: "foo"}
decodeFoo({id: "123"}) // {id: "123", slug: "123"}

How can I do that without some kind of postprocessing? I’ve tried a few things to make something like either(field("slug", string), field("id", string)) work, but since the field decoder is treated as special in the record decoder, I didn’t get anything working.
And the second case is something like withDefault(boolean, false) decoder. If the either decoder works, would this simply be either(boolean, just(false)) with a helper just decoder that just returns a value?
Thank you!

Hi! Thanks for the kind words and for using the library! I'll do my best to answer your questions, feel free to correct any misunderstands I have of your problem.
If I understand your first case correctly, I think it is as simple as:
const decodeFoo = record({
  id: string,
  slug: fields({ id: string, slug: optional(string) }, ({ id, slug }) => slug ?? id),
});

Kind of annoyingly, you have to specify id twice, but I don't immediately see a good solution to this minor issue.
You were on track with the field or fields decoder! But as you mentioned, those are specially handled by the record decoder, and only really make sense in a record decoder. I think fields specifically is correct for combining two or more fields, which seems to be your requirement here. However, there might be an argument to be made that the code you suggested should have worked, I will think some more about this.
As far as your hypothetical either decoder goes, I think that is more or less exactly what union does (?), except of course it doesn't understand field.
So yes I belive you are spot on that withDefault makes a lot of sense being implemented as simply union(boolean, just(false)). I've considered for some time adding a constant decoder to the library, but haven't - in fear of introducing features nobody use. So this is a good data point that that would be useful!
For reference, this would be an example implementation:
const just = <T>(x: T): Decoder<T> => (_: Pojo) => x

Not quite sure how thîs would best interact with missing fields in a record, though. Look forward to hearing your feedback!

Perfect, much appreciated! The fields decoder is the right solution, thank you.
And d-oh, you’re right about either being union, this late Friday evening hacking 🤦♂ I think the union(boolean, just(false)) decoder works fine by itself, but the record decoder is hard-wired to only one scenario for missing keys, isn’t it?
if (!value.hasOwnProperty(key)) {
  if ((decoder as any)[optionalDecoder]) {
    return [key, undefined];
  }
  throw `Cannot find key \`${key}\` in \`${JSON.stringify(value)}\``;
}

So if the key is missing, the “default value decoder” doesn’t even get a chance to run. Even if I cheated a bit and tagged the default value decoder as optionalDecoder, the returned value is hard-coded as undefined above. Would it make sense to change the record decoder to give the “field decoder” chance to run before trying the optional decoder? (Sorry, have to run now, will flesh out the idea more later.)

So how about something like this in the implementation of record?
if (!value.hasOwnProperty(key)) {
  // If this is an optional decoder, it’s fine to return undefined
  if ((decoder as any)[optionalDecoder]) {
    return [key, undefined];
  } else {
    try {
      // Not an optional decoder, but maybe the decoder can handle undefined?
      return [key, decode(decoder)(undefined)];
    } catch (_) {
      // No, it can’t, so there’s nothing left but to throw
      throw `Cannot find key \`${key}\` in \`${JSON.stringify(
        value,
      )}\``;
    }
  }
}

I would try to implement this and send a PR, but I’m not sure how the test suite works. I think the package makes a lot of sense and it would be nice to have a standard Jest test suite – to make it easier to contribute. It’s an extra dependecy, but only at develop time. Would you consider changing the tests to a Jest test suite? (It’s perfectly fine if not, for whatever reasons.)

Very interesting suggestions!
I have another TypeScript library where the test suite, which can be found here: https://github.com/tskj/typescript-calendar-date/blob/master/specs/index.tests.ts, uses a combination of Jest and fast-check, which I have been very happy with. However, I haven't been able to figure out how to set it up for this library, since what I would like to test is if the TypeScript compiler infers the expected types (while Jest is a runtime JS thing). However I will take another look at this, as good tests are obviously very important, to have faith in the library.
As far as your concrete suggestion goes, I think maybe the cleaner solution then is to drop the entire optionalDecoder tag and just let any decoder try to decode it, where missing keys then look like undefined (optional will still just work under this regime). I'm not sure if I considered this when first making it or not, but this certainly seems like a simpler solution than the current situation.
However, this now doesn't allow any mechanism I can see for people to fail their decoders if the key is missing, and that is what they want. So I am on the fence about making this change, but I might be missing something here. On the other hand, maybe making this distinction at all between missing keys and explicit undefined keys is a mistake, not sure if that actually is a valid use case when I think more about it.
In either case, another way to do what you want might be something like this:
record({
  foo: optional(boolean, x => x ?? false),
})

I have been considering whether more of the combinators (than just field and fields) should support this kind of "continuation passing style" for allowing further transformations. I'm guessing a lot of people not too familiar with parser combinators or similar might find this more intuitive to understand than the union(decoder, defaultConstantDecoder) pattern. Although that would still be available of course, in other contexts than missing keys.
Look forward to hearing your opinions on both topics.

I’ve split the test suite discussion into another issue to keep things tidy.
As for the second point, I did not realize that ({foo:undefined}).hasOwnProperty("foo") returns true, ie. that JavaScript treats completely missing keys differently from keys that are present, but undefined. I can’t think of a use case where this would make sense – especially since we already have null to signal an explicit “empty” value. So I would like to try what you suggest – completely dropping the explicit optional decoder branch (here) and just give the decoder a chance to run regardless of its type. Does that make sense?
And as for the third point (mapping the decoded values), I have to say that’s something that I was looking for when starting to use the library. It feels quite natural and feels like a good middle ground when you want to transform the value a bit, but don’t want to introduce a new custom decoder. (Let’s maybe extract this branch of the discussion into a separate issue, too?)

Good idea splitting the issues up, I have created another issue here.
It seems to be as simple as deleting that if check, and I'm all for it! It almost doesn't seem like a breaking change, which is very good. The only reason I'm slightly hesitant is that we would be removing any possibility for the user to detect missing keys (or more precisely, distinguishing missing keys from undefined keys). While I agree that this is a pathological usecase, there might (or maybe not?) be APIs out there which encode different meanings in missing keys vs undefined keys. I just think we should provide some escape hatch in this pathological case juust in case, but I might be overthinking this.

It’s a quite complex topic, isn’t it? To recap:
There are three possible ways to express some notion of a “missing value” – nulls, undefined and missing keys. Javascript (unfortunately) really does make a difference between all these. And we already have ways to express them here – the nil decoder, the undef decoder and the optional decoder in combination with record.
Our major use case is JSON, where there’s no explicit undefined, so we only have nulls and missing keys. And there’s a legitimate reason to mix those. For example if I want to send a PATCH request to change an object, there‘s a difference between setting a key to null (“I want to clear this field”) and leaving a key out (“I don’t want to touch this field”). Let’s take an example:
interface Contact {
  email?: string
  phone?: string
}

If I want to clear the email field, but keep phone unchanged, there’s only one reasonable way to say that in JSON:
{"email": null}

In JavaScript, that could be either {email: null, phone: undefined} or {email: null}. As far as I understand, the library currently only produces the first version with explicit undefined props (see #3). The request definition would then look like this:
const decodeUpdateRequest = record({
  email: optional(union(string, nil)),
  phone: optional(union(string, nil)),
});

// As inferred by decodeType<typeof decodeUpdateRequest>
type UpdateRequest = {
    email: string | null | undefined; // string: set new value, null: clear value, undefined: no change
    phone: string | null | undefined;
}

Does that make sense?
Now, I’m still looking for a legitimate use case where the object being decoded makes a difference between missing and undefined keys. It can’t be JSON, but since JavaScript makes the difference, it makes sense to have the escape hatch, maybe for decoding values from other sources?
Would it make sense the repurpose the current tagging mechanism used for optional decoder? Say we introduce a missing decoder that’s tagged and special-cased in record and only succeeds when the key is missing? We wouldn’t have to do it now, it should be possible to introduce it later if someone really needs it. And then it would get precedence over the ordinary optional decoder. So it could be a non-breaking change.

Thanks for clearing this up for me, I actually didn't know undefined wasn't a legal JSON value! I had to look that up.
missing seems like a reasonable compromise as an escape hatch as well, good idea! But yeah we can push on that, no reason to that immediately.
Do you want to submit a PR for this? If not I will give it a go shortly.

So yes I belive you are spot on that withDefault makes a lot of sense being implemented as simply union(boolean, just(false))

Note that (I think) this is actually different from optional(boolean, x => x ?? false) – the former will match anything the server might return, whereas the latter will throw an error if the server returns e.g. a string.
I'm currently using union(decoder, value => undef(value) ?? defaultValue, but https://github.com/tskj/typescript-json-decoder/issues/6 does look a bit nicer.

Ah, yes, there are two possible default value semantics: 1) use default when the main decoder doesn’t succeed, or 2) use default when the value is missing.

I think I will get on https://github.com/tskj/typescript-json-decoder/issues/6 shortly, then! Seems like people think it's a good idea and would be valuable.
As for withDefault, yes I think (1) use default value when main decoder fails, is the most desirable behaviour.

use default value when main decoder fails, is the most desirable behaviour.

It might be, generally speaking, though personally, I prefer (2) for my use cases. If the server unexpectedly changed the API I'd rather get an error than blindly using the default value.

Ah, gotcha. I think we are in agreement! Let me nuance my position a bit:
I think it makes the most sense for withDefault in particular to be a way for people to "catch" failling decoders, and in that way create a decoder that can never fail. However, as you say, that is not what you typically want when you use optional on a record field, you actually do want it to fail sometimes. So it's a different usecase, and a more common one at that, which is why I haven't implemented withDefault.
Another argument for only catching exceptions (failling decoders) and not undefined or null values, is that I would rather not have the library mandate a sentinel "fail" value on the user's behalf. You would then have to answer the question, should it be undefined, null, or borth, or empty string and the number 0, not to mention false? So for your usecase I believe the explicit optional(decoder, x => x ?? defaultValue) would be the best solution.
By the way props on your current solution, that's pretty ingenious! Had to take a few moments to reason through how it works to convince myself it actually behaved as expected.

Heh, thanks :) It does sound like we agree, yeah


Api manager

We gaan tijdens dit project met veel Api's aan de slag lijkt me goed om een paar functie's op te zetten die api data kunnen ophalen, kunnen opschonen ETC

After the code review with Janno, we concluded that the best way to handle this is as followed:

We have our our API folder structure with a central Express server and routes, this is handled as serverMiddleware within Nuxt and runs kinda seperate from our application.

Within the routes of this middleware we define logic for each and every API we are gonna use.

General helpers and data manipulation, etc. that can be done in a module, but specific API data handling is done within a route

In our serverMiddleware we setup endpoints, from the client we fetch (fetch, axios.get()) our own endpoints => endpoint on the server does call to external API => endpoint retrieves data and sends it in JSON format back to our client.

Components can then be rendered. We have to checkout the asyncData lifecycle. And where it lives, where stuff is rendered / client or server. Because if this is indeed semi SSR, we're good. If it's not perse, we might want to check if we can render the snippets on the server already another way.


Fix newLines around userFields wrapped in CDATA

Creating user (or other entities) with attributes that are wrapped in a CDATA result in unwanted '\n' :
<ons:Name>\n<![CDATA[The Name]]>\n</ons:Name>
Here is a quick fix to avoid it.

Thanks! Merged.


Example file for DNS over HTTPS reference

Great, thanks. I'll merge and rename to add an underscore.


feat(protos): add sample VerbRuntime to Verb proto schema

We might want something a bit cleaner down the line but for now I think this should be okay.

Also I've put some concept sketches in the task list doc for reference.


Sleep directive

The local coroutine scheduler (#52) interacts with Dispatch by polling with zero or more calls. Another capability of poll is the ability to delay resumption of the coroutine(s) (using max_wait).
The scheduler could provide a sleep(duration) directive – alongside the existing call and gather directives – that puts a coroutine to sleep for the specified duration.
This could obviously be used to delay work. It could also be used with https://github.com/stealthrocket/dispatch-sdk-python/issues/88 to implement higher-level concurrency patterns. For example, await any(sleep(0), someOperation()) could be used to submit a fire-and-forget operation without blocking the coroutine, allowing it to continue on with additional work.

I was looking at sleep and found this issue. Now that we are integrated with asyncio, I'm guessing we should somehow integrate with asyncio.sleep.
However I'm wondering if we should implement that in the Ring side to provide durable sleeps.


Now, one can use \fig{} to give a PlotlyJS plot.
When \fig{} receive a json file, it will regard it as a plotlyjs json file and plot it using a JavaScript function PlotlyJS_json defined in src/_layout/head.html (One should add it in it.)
Documentation is also updated.
I suggest deprecate fdplotly, since it will slow down page loading. Details are described here.
Closes #890

thanks a lot for investigating this, it looks good to me, will test a bit then merge

hmm when working on your branch, cd("docs"); serve() (after copy pasting your JS into the head) I get:

Could you please try this?

Sorry for making this silly mistakes and wasting your time. I was not aware of that I can cd("docs"); serve() and only did some simple copying and pasting.
I can confirm all problems you pointed out are fixed. Some improvements are added to get consistent experience when using Plots.jl, PlotlyJS.jl and PlotlyBase.jl.

Thanks a lot for your contribution @ChasingZenith sorry for the delay I was out last week; this seems to work fine on my side and I'm happy to integrate it.

Thank you! It is my honor to make this contribution.
Would you consider depercating fdplotly?
As an minimal example, the following extremely simple plot give a 6.9kB json with PlotlyBase, 12.4kB json with PlotlyJS.
using PlotlyBase               #  6.9 kB json
# using PlotlyJS               # 12.4 kB
# using Plots;  plotlyjs();    #  2.1 kB (BTW, it is strange that PlotlyBase and PlotlyJS give larger json than Plots)
# using Plots;  plotly();      #  2.1 kB
p = Plot([0, 1]);  # use function `plot` when not using PlotlyBase
savejson(p,"2num.json")

The html file of a page is around 25kB, taking this page franklinjl.org/code as an example.
Directly inserting the json file into the html, just like what fdplotly does can heavily increase loading time. Especially when some complicated plot were added, the html file can grow to 10MB or so.

Thank you!

Hey everyone. I know this has merged and the Issue has been resolved. Great work by @ChasingZenith and @tlienart for this.
But I am facing an interesting problem here. I am serving my static site locally on a windows machine. I am using \fig{} to add a figure that is same as the example that you have in the documentation.
This is what it looks like: https://imgur.com/a/6JTyPCJ
I did some troubleshooting and found that in the function PlotlyJS_json = async (div, url) url is the one that is defined by the location of the json file. Further according to my understanding,
savejson(p, joinpath(@OUTPUT, "plotlyex.json"))
This saves the file by merging @OUTPUT variable which is the environment location and name of the json file to save the file there. So i checked the json file and the json file is being saved at the right place and is correct. Therefore, I decided to check the html that Franklin is generating from the markdown file and I found the culprit.

The location of the json file is messed up. Instead of forwardslash the location has backslash. \fig{} somehow is not able to convert the file location properly according to my understanding. I was not sure if this issue is serious enough for opening a new issue. Maybe I am making some big blunder and am just missing something. Help would be appreciated.
I am using conda on windows and have julia installed the usual way if that is important.

EDIT2: Is it possible that systempath and other path are different due to how windows define path v/s how a linux or mac would? In here:

yes, windows is extremely annoying in this respect, and browsers use the unix style paths, so there are functions to go back and forth. Looks like it's missing here.
Could you kindly try again but using master instead of the latest patch release? (i.e. commit 6077d23c), it should fix this. Assuming it does, I'll do a patch release with it. Thanks!

Hey, Apologies for not being able to reply yesterday.
I did what was asked. Instead of actually using it on my own Franklin site, I served the docs from the cloned repo. So that you can compare results better.
This is what I get from the output:
...
→ evaluating code [ex2] in (extras\plotly.md)
rpath = "plotlyex"
path = "/assets/extras/plotly/code/plotlyex"
(fdir, fext) = ("/assets/extras/plotly/code/plotlyex", "")
(p1, p2) = ("/assets/extras/plotly/code", "plotlyex")
...

This is what I am seeing on the frontend:

Path should have .json as an extension right?
plotly.json is present in /assets/extras/plotly/code/output

Thanks for this work, this looks almost right. Can you try reverting what I did in the previous commit so:
    if splitdir(p1)[2] != "output"
        for ext ∈ candext
            #candpath = joinpath(p1, "output", p2 * ext)
	    candpath= p1* "/output/" * p2*ext
		@show candpath
   # now candpath is in unix-style, so it should be split according to "/"
            syspath  = joinpath(PATHS[:site], split(candpath, "/")...)
            # with join path, it should now be correct irrelevant of the platform
		@show syspath
#		if Sys.iswindows()
#    			# syspath=replace(syspath,"/"=>"\\")
#	    		isfile(syspath) && return ext == ".json" ? html_plotly(candpath) : html_img(candpath, alt)
 #                       @show isfile(syspath)
#		else
            		isfile(syspath) && return ext == ".json" ? html_plotly(candpath) : html_img(candpath, alt)
#        	end
	end
    end

Hey @tlienart
It is working now. But you would need to do the same changes in other loop as well.
The following code in \syntax\markdown\ does not work anymore.
@@small-img
  \fig{./output/test}
@@

But the code following it works. i.e.:
@@small-img
  \fig{./test}
@@

Pasting the truncated output to show how the path is now being defined :
candpath = "/assets/extras/plotly/code/output/plotlyex.json"
syspath = "E:\\work\\Franklin.jl-master\\Franklin.jl-master\\docs\\__site\\assets\\extras\\plotly\\code\\output\\plotlyex.json"
isfile(syspath) = true


[Event Request] Codeunit 12170 "Recall Customer Bill" - Function RecallIssuedBill- New Event OnAfterInitGenJnlLine (Italian Localization)

Hello, we need the possibility to extend the function RecallIssuedBill on "Recall Customer Bill" Codeunit (CU 12170) as follows:
....
            repeat
                CustLedgEntry2.Get(IssuedCustomerBillLine."Customer Entry No.");
                if CustLedgEntry2."Customer Bill No." <> IssuedCustomerBillLine."Final Cust. Bill No." then
                    Error(Text1130025, IssuedCustomerBillLine."Final Cust. Bill No.");

                CustLedgEntry.Reset();
                CustLedgEntry.SetFilter("Customer No.", CustLedgEntry2."Customer No.");
                if CustLedgEntry2."Allow Issue" then
                    CustLedgEntry.SetRange("Document No.", CustLedgEntry2."Bank Receipt Temp. No.");
                CustLedgEntry.SetRange("Document Type", CustLedgEntry2."Document Type"::Payment);
                CustLedgEntry.SetRange("Document Type to Close", CustLedgEntry2."Document Type");
                CustLedgEntry.SetFilter("Document No. to Close", CustLedgEntry2."Document No.");
                CustLedgEntry.SetRange("Document Occurrence to Close", CustLedgEntry2."Document Occurrence");
                CustLedgEntry.SetRange(Open, false);
                if CustLedgEntry.FindFirst() then
                    Error(Text1130026, CustLedgEntry."Entry No.");

                CustLedgEntry.SetRange(Open, true);
                CustLedgEntry.FindFirst();

                Window.Update(1, CustLedgEntry."Customer No.");
                Window.Update(2, CustLedgEntry."Document No.");

                CustLedgEntry."Allow Issue" := false;
                CustLedgEntry."Bank Receipt Issued" := true;
                CustLedgEntry."Bank Receipt Temp. No." := CustLedgEntry."Document No.";
                CustLedgEntry."Customer Bill No." := CustLedgEntry2."Customer Bill No.";
                CustLedgEntry."Bank Receipts List No." := CustLedgEntry2."Bank Receipts List No.";
                CustLedgEntry."Document Occurrence" := CustLedgEntry2."Document Occurrence";
                CustLedgEntry.Modify();

                InitGenJnlLine(BalanceAccountNo);

                //new-s
                OnAfterInitGenJnlLine(GenJnlLine, BillPostingGroup, IssuedCustomerBillHeader, IssuedCustomerBillLine, CustLedgEntry2);
                //new-e

                CustLedgEntry2."Allow Issue" := false;
                CustLedgEntry2."Bank Receipt Issued" := false;
                CustLedgEntry2."Bank Receipt Temp. No." := '';
                CustLedgEntry2."Customer Bill No." := '';
                CustLedgEntry2."Bank Receipts List No." := '';
                CustLedgEntry2.Modify();

                Window.Update(3, GenJnlLine."Document No.");

                GenJnlPostLine.RunWithCheck(GenJnlLine);

                BankReceiptToIssue := BankReceiptToIssue + 1;
                IssuedCustomerBillLine."Recall Date" := WorkDate;
                IssuedCustomerBillLine.Modify();
            until IssuedCustomerBillLine.Next() = 0;
....

    [IntegrationEvent(false, false)]
    local procedure OnAfterInitGenJnlLine(var GenJnlLine: Record "Gen. Journal Line"; BillPostingGroup: Record "Bill Posting Group"; IssuedCustomerBillHeader: Record "Issued Customer Bill Header"; var IssuedCustomerBillLine: Record "Issued Customer Bill Line"; var CustLedgEntry2: Record "Cust. Ledger Entry")
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 40755.


can't get KNN example to work

face_recognition version: 0.1.12
Python version: 3.6.4
Operating System: Kali Linux Rolling

Description
I'm getting an error, saying that it "cannot open resource", trying to run the KNN example in a minimal way.
What I Did
I'm currently trying to get the KNN example to work. Therefore I created 3 directories, one for the trained model, one with the images in it (named train_dir, containing one folder per person, named with the name of the person, and each folder containing one image of the person) as well as one directory with one image of a unknown person.
Paste the command(s) you ran and the output.
If there was a crash, please include the traceback here.

root@kali:~/PycharmProjects/face_recognition# python3 recognition_knn.py
[('Florian', (348, 553, 811, 91))]
Traceback (most recent call last):
  File "recognition_knn.py", line 152, in <module>
    draw_preds(join("/root/Bilder/unknown_pictures", img_path), preds)
  File "recognition_knn.py", line 144, in draw_preds
    draw.text((loc[3], loc[0] - 30), name, font=ImageFont.truetype('Pillow/Tests/fonts/FreeMono.ttf', 30))
  File "/usr/lib/python3/dist-packages/PIL/ImageFont.py", line 259, in truetype
    return FreeTypeFont(font, size, index, encoding, layout_engine)
  File "/usr/lib/python3/dist-packages/PIL/ImageFont.py", line 143, in __init__
    self.font = core.getfont(font, size, index, encoding, layout_engine=layout_engine)
OSError: cannot open resource

Here is the complete code I used:
"""
This is an example of using the k-nearest-neighbors(knn) algorithm for face recognition.

When should I use this example?
This example is useful when you whish to recognize a large set of known people,
and make a prediction for an unkown person in a feasible computation time.

Algorithm Description:
The knn classifier is first trained on a set of labeled(known) faces, and can then predict the person
in an unkown image by finding the k most similar faces(images with closet face-features under eucledian distance) in its training set,
and performing a majority vote(possibly weighted) on their label.
For example, if k=3, and the three closest face images to the given image in the training set are one image of Biden and two images of Obama,
The result would be 'Obama'.
*This implemententation uses a weighted vote, such that the votes of closer-neighbors are weighted more heavily.

Usage:
-First, prepare a set of images of the known people you want to recognize.
 Organize the images in a single directory with a sub-directory for each known person.
-Then, call the 'train' function with the appropriate parameters.
 make sure to pass in the 'model_save_path' if you want to re-use the model without having to re-train it.
-After training the model, you can call 'predict' to recognize the person in an unknown image.

NOTE: This example requires scikit-learn to be installed! You can install it with pip:
$ pip3 install scikit-learn
"""

from math import sqrt
from sklearn import neighbors
from os import listdir
from os.path import isdir, join, isfile, splitext
import pickle
from PIL import Image, ImageFont, ImageDraw, ImageEnhance
import face_recognition
from face_recognition import face_locations
from face_recognition.cli import image_files_in_folder

ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}

def train(train_dir, model_save_path = "/root/PycharmProjects/face_recognition/trained_model/model.txt", n_neighbors = None, knn_algo = 'ball_tree', verbose=False):
    """
    Trains a k-nearest neighbors classifier for face recognition.

    :param train_dir: directory that contains a sub-directory for each known person, with its name.

     (View in source code to see train_dir example tree structure)

     Structure:
        <train_dir>/
        ├── <person1>/
        │   ├── <somename1>.jpeg
        │   ├── <somename2>.jpeg
        │   ├── ...
        ├── <person2>/
        │   ├── <somename1>.jpeg
        │   └── <somename2>.jpeg
        └── ...
    :param model_save_path: (optional) path to save model of disk
    :param n_neighbors: (optional) number of neighbors to weigh in classification. Chosen automatically if not specified.
    :param knn_algo: (optional) underlying data structure to support knn.default is ball_tree
    :param verbose: verbosity of training
    :return: returns knn classifier that was trained on the given data.
    """
    X = []
    y = []
    for class_dir in listdir(train_dir):
        if not isdir(join(train_dir, class_dir)):
            continue
        for img_path in image_files_in_folder(join(train_dir, class_dir)):
            image = face_recognition.load_image_file(img_path)
            faces_bboxes = face_locations(image)
            if len(faces_bboxes) != 1:
                if verbose:
                    print("image {} not fit for training: {}".format(img_path, "didn't find a face" if len(faces_bboxes) < 1 else "found more than one face"))
                continue
            X.append(face_recognition.face_encodings(image, known_face_locations=faces_bboxes)[0])
            y.append(class_dir)

    if n_neighbors is None:
        n_neighbors = int(round(sqrt(len(X))))
        if verbose:
            print("Chose n_neighbors automatically as:", n_neighbors)

    knn_clf = neighbors.KNeighborsClassifier(n_neighbors=n_neighbors, algorithm=knn_algo, weights='distance')
    knn_clf.fit(X, y)

    if model_save_path != "":
        with open(model_save_path, 'wb') as f:
            pickle.dump(knn_clf, f)
    return knn_clf

def predict(X_img_path, knn_clf = None, model_save_path ="/root/PycharmProjects/face_recognition/trained_model/model.txt", DIST_THRESH = .5):
    """
    recognizes faces in given image, based on a trained knn classifier

    :param X_img_path: path to image to be recognized
    :param knn_clf: (optional) a knn classifier object. if not specified, model_save_path must be specified.
    :param model_save_path: (optional) path to a pickled knn classifier. if not specified, model_save_path must be knn_clf.
    :param DIST_THRESH: (optional) distance threshold in knn classification. the larger it is, the more chance of misclassifying an unknown person to a known one.
    :return: a list of names and face locations for the recognized faces in the image: [(name, bounding box), ...].
        For faces of unrecognized persons, the name 'N/A' will be passed.
    """

    if not isfile(X_img_path) or splitext(X_img_path)[1][1:] not in ALLOWED_EXTENSIONS:
        raise Exception("invalid image path: {}".format(X_img_path))

    if knn_clf is None and model_save_path == "":
        raise Exception("must supply knn classifier either thourgh knn_clf or model_save_path")

    if knn_clf is None:
        with open(model_save_path, 'rb') as f:
            knn_clf = pickle.load(f)

    X_img = face_recognition.load_image_file(X_img_path)
    X_faces_loc = face_locations(X_img)
    if len(X_faces_loc) == 0:
        return []

    faces_encodings = face_recognition.face_encodings(X_img, known_face_locations=X_faces_loc)

    closest_distances = knn_clf.kneighbors(faces_encodings, n_neighbors=1)

    is_recognized = [closest_distances[0][i][0] <= DIST_THRESH for i in range(len(X_faces_loc))]

    # predict classes and cull classifications that are not with high confidence
    return [(pred, loc) if rec else ("N/A", loc) for pred, loc, rec in zip(knn_clf.predict(faces_encodings), X_faces_loc, is_recognized)]

def draw_preds(img_path, preds):
    """
    shows the face recognition results visually.

    :param img_path: path to image to be recognized
    :param preds: results of the predict function
    :return:
    """
    source_img = Image.open(img_path).convert("RGBA")
    draw = ImageDraw.Draw(source_img)
    for pred in preds:
        loc = pred[1]
        name = pred[0]
        # (top, right, bottom, left) => (left,top,right,bottom)
        draw.rectangle(((loc[3], loc[0]), (loc[1],loc[2])), outline="red")
        draw.text((loc[3], loc[0] - 30), name, font=ImageFont.truetype('Pillow/Tests/fonts/FreeMono.ttf', 30))
    source_img.show()

if __name__ == "__main__":
    knn_clf = train("/root/PycharmProjects/face_recognition/train_dir", "/root/PycharmProjects/face_recognition/trained_model/model.txt")
    for img_path in listdir("/root/Bilder/unknown_pictures"):
        preds = predict(join("/root/Bilder/unknown_pictures", img_path) , model_save_path="/root/PycharmProjects/face_recognition/trained_model/model.txt")
        print(preds)
        draw_preds(join("/root/Bilder/unknown_pictures", img_path), preds)

So basically it's just the normal code provided from the examples with filled parameters.
Also, I'm wondering about two things: How can I (after training) use the trained dataset? And if I get a new image in my folder (or a new person actually), do I have to retrain the complete set or can I somehow just add the new person?

Ok got it, just changed the font path.


Deployment

Deployment
User Story
As a boot camp student,
I want the prework notes to be structured on a webpage,
So that I can easily find and read the information.
Acceptance Criteria
GIVEN a Prework Study Guide website
WHEN I visit the website using the URL,
THEN I can access my website from any browser

I was not able to successfully deploy the page. It is lacking the CSS and JavaScript files but I do not know how to fix that issue.


Set PW Requirement

As a new user, I go to the sign up screen. When I'm setting my PW, requirement is that it is 8 characters. However, after I enter the 8th character, new PW requirements come up. See attached video.
RPReplay-Final1591552893.zip
Expected behavior is that all pw requirements are visible from the beginning

Might need to check with designer how this should look, possible the same as the green "sub label" that is added on another form component (I think address on create profile at the moment)

In terms of styling, I think we can reuse the style in this screenshot: https://zpl.io/aRJ6eYK


Compare two stl files

Hello,
this library has given us so much information.
I have seen the code for combining two stl files, I wanted to compare two stl files for the similarities or differences. Would that be possible with numpy-stl?
I thought to convert stl files to image, so we could compare two images but it's not working out.
Is there a way or code by which we could compare two different stl files?

@WoLpH
haha, trivial = meaningless (synonym) or insignificant?
Yes, I did the volume comparison for both files. The volume comparison is actually a good one. But for 3D printing that doesn't even give 1% insight, as it supposed to check inside layers of an STL file. I have been trying to compare the STL files for a month now in various possible ways.
So, if you have to make a friendly suggestion to me at the end, on this comparison project?
Thank you for your time mate.

You can try comparing convex hull polygon surfaces as a slightly more elaborate try.
Trying to compare oriented area filtered on positive inproduct with a plane is another thought. Basically, only count positive contributions in x,y,z direction. And see if they match up to similar total oriented areas.
Combining: If the convex hull has the same key elements, volume matches and the oriented area matches; you'll have to find very specific maybe even handcrafted examples to not have the same object on your hand..

I meant insignificant :) What I mean is that it can vary from a difficult to a nearly impossible problem to solve.
It depends on what you want to do of course. But if you're interested in the complexity of an object than I would recommend cheating and looking at the (amount of) gcode produced by the slicer. Objects that have similar features will have similar gcode so that could be a nice shortcut to the problem :P

@idh-incom  : Thank you for your suggestion. Not that simple for me as I'm a junior developer but I read about the idea what you have said. Hopefully, I could try making it.
@WoLpH  : Oh, thank you. Could be easier to make this as an alternative. I would look into it as of now.