tf.keras.binary_crossentropy gives worse result than calling 'binary_crossentropy'

QUESTION 1: Why does calling binary_crossentropy by its name with a string 'binary_crossentropy' gives different (better) results than calling, the same(?), tf.keras.losses.binary_crossentropy function inside a custom loss function?
QUESTION 2: What am I doing wrong?
PROBLEM: I'm trying to solve a mystery of different results I get when I use:
def bc_custom(y_true, y_pred): return tf.keras.losses.binary_crossentropy(y_true, y_pred)
model1.compile(optimizer=tf.compat.v2.optimizers.Adam(learning_rate=LEARNING_RATE, loss = bc_custom, metrics=['binary_accuracy'])

and
model2.compile(optimizer=tf.compat.v2.optimizers.Adam(learning_rate=LEARNING_RATE, loss = 'binary_crossentropy', metrics=['binary_accuracy'])

Basically:

the difference is in calling binary_crossentropy inside a custom function (model1) and the same function by its name with a string (model2),
following https://stackoverflow.com/a/57331394/5536388 advice, I set metrics to binary_accuracy,
both models use the same dataset which may only differ after being shuffled in the training process,
the models solve a multilabel classification problem. The final layer uses the sigmoid activation function.

RESULTS:
I made several tests and each time model1:

is being taught much slower:

epoch, accuracy, loss, accuracy_val, loss_val
0,0.01571397,0.08330947177696847,0.08565965,0.06395021689980937
1,0.14730678,0.04977951637815227,0.24956022,0.039584608338986936
2,0.2366954,0.98736,0.2366954,0.03144164173531004,0.27801147,0.99116695,0.27801147,0.022898457557974424

vs model2
0,0.98126763,0.08199372373072011,0.9798808,0.061917345579108135
1,0.98271894,0.0477434622772295,0.98628557,0.03482157470263099
2,0.9884866,0.9884866,0.24891642,0.028994456771504733,0.9914624,0.9914624,0.27778202,0.022188534344907987

model1 gives worse results, at least in the beginning (haven't waited till the final results):

results of model1 after epoch 0

results of model2 after epoch 0

The expected results are one-point-wide straight-to-top lines in several positions (10, 30, 50, 110, 140, 210, 230) as the model2 is clearly going to and, in the end, reaches the correct answer in 98% of cases.

@chrismaliszewski
Request you to share colab link or simple stand alone code to reproduce the issue in our environment.It helps us in localizing the issue faster.Thanks!

@ravikyram, which issue template should I use in your opinion? I wasn't sure since I don't think it's a bug nor any other from the list of templates. That's why I created "Other issues".
It's impossible for me to share the data I have since it's too big (39GB). My input is 256x50x3 x ~120k images. My model is VGG16 without top layers + flatten + 3x dense/dropout (8192, 0.5) + dense (256, sigmoid).
I use TF 2.1.0 on Windows in Anaconda.

So here is a piece of code that briefly presents what I do: https://colab.research.google.com/drive/1aTG3ApEUmr9UyhSUoALY-_wEgTTOHlaz?usp=sharing
So:

loading data, preparing data (I preprocess my arrays for VGG16), divided it into train-test datasets 90:10 + ~10 extra for checking predictions,
Training.
(not shown in the code above) Checking predictions with each epoch's end.

Unfortunately, the problem does not appear in the above code but it does in my case.
QUESTION: Should there be any difference between calling 'binary_crossentropy' or tf.keras.losses.binary_crossentropy? What I mean is, does 'binary_crossentropy' calls the function without anything else or is there anything else done on the way?

@chrismaliszewski Is this still an issue for you? I ran your code with recent tf-nightly and I don't see much difference between two models. Please check the gist here.
Please note that I reduced training data and didn't consider validation_data to minimize computational time. Thanks!
Please verify and close the issue if this was resolved for you. Thanks!

Hi. No, the issue still exists. I've decided to move on and I'm transferring my code to Pytorch since it is another problem on the list with TF I have and I'm hoping the problems don't exist there. Thank you for your concern. I'm closing the issue.

Do you use sample_weights?

No, training from scratch in both cases, using a custom loss function which returns the results from tf.keras.losses.binary_crossentropy and 'binary_crossentropy'.


Change release build order (#2449)

/retest

/retest

@matzew there is real problem here

/retest

The issue was https://github.com/openshift-knative/serverless-operator/pull/1671, let's see now

/test 46-test-e2e-aws-ocp-46

Another fix for release-next: https://github.com/openshift-knative/eventing-kafka-broker/pull/370

Another fix for release-next: https://github.com/openshift-knative/eventing-kafka-broker/pull/372

Another fix to be pushed upstream https://github.com/openshift-knative/eventing-kafka-broker/pull/373

Fix pushed upstream https://github.com/knative-sandbox/eventing-kafka-broker/pull/2495/files, @matzew PTAL

/test all

/retest

/retest

/retest

To be fixed by https://github.com/openshift-knative/eventing-kafka-broker/pull/380

/retest

/retest

/retest

/retest

Working on it in another PR to avoid the bot to override changes: https://github.com/openshift-knative/eventing-kafka-broker/pull/441

/retest-required


Proposal: require spaces between numbers and variables

I was very suprised that this is not rejected by the compiler:
mport Graphics.Element (..)
import Text (..)

r = 10

main : Element
main =
  f 3r

f _ _ = plainText "Hello, World!"

(Turns out GHC also accepts stuff like f 3r, interpreting it as f 3 r. Doesn't mean it's necessarily a good idea. For beginners just getting into "spaced function application" syntax, this might be quite confusing.)

Agreed. If I ever do this, it's because I messed up; as such, I'd appreciate the compiler saving me from myself as usual. ;)

Tracking in #1374

This is fixed by the new parser. Here's the updated SSCCE, and resulting error:
import Html exposing (..)

r = 10

f _ _ = text "Hello, World!"

main = f 3r

Thanks for the report!


[Fix] Add soft limit to the maximum number of open file descriptors

Codecov Report

Merging #89 (b1eab61) into master (0c04e29) will increase coverage by 0.00%.
The diff coverage is 100.00%.

:exclamation: Current head b1eab61 differs from pull request most recent head 0764aa6. Consider uploading reports for the commit 0764aa6 to get more accurate results

@@           Coverage Diff           @@
##           master      #89   +/-   ##
=======================================
  Coverage   75.92%   75.93%
=======================================
  Files         118      118
  Lines        8047     8048    +1
  Branches     1502     1502
=======================================
+ Hits         6110     6111    +1
  Misses       1547     1547
  Partials      390      390

Flag
Coverage Δ

unittests
75.93% <100.00%> (+<0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

mmgen/datasets/builder.py
52.72% <100.00%> (+0.87%)
:arrow_up:

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 0c04e29...0764aa6. Read the comment docs.


SAK-34101 - Instructor is not able to see entire site assignments (11.x only)

As discussed by the core team, this should be considered a 12.x bug, closing PR.


IE9 - Not adding the class has-error to the form-group

Not adding the class has-error or has-success to the parent .form-group.
I have tried to add the js https://github.com/ryanseddon/H5F but it did not solve the problem.
Unfortunately IE9 is mandatory to this project that I am working on.
Any ideas where should I starting looking?

I can see it has been address on issue #49.
The plugin from Ryan needs to initialized.


Extended app chart taking config names and their mount paths

fix #1808
feat: pass in new field configpath, config names and mount paths
note: old field configurations is still served for use by old app charts
chart pr = https://github.com/epinio/helm-charts/pull/292
:construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction:

[x] Show the proper mount paths in configuration show
[x] To this end it has to know about sibling configurations from the same origin
[x] Show these as well
[x] Implement getting this information in a manner which is not O(n^2) for configuration list.

Codecov Report
Base: 61.36% // Head: 8.43% // Decreases project coverage by -52.92% :warning:

Coverage data is based on head (c775cf5) compared to base (f74b18d).
Patch coverage: 0.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #1817       +/-   ##
==========================================
- Coverage   61.36%   8.43%   -52.93%
==========================================
  Files         178      90       -88
  Lines       13995    9339     -4656
==========================================
- Hits         8588     788     -7800
- Misses       4328    8497     +4169
+ Partials     1079      54     -1025

Flag
Coverage Δ

acceptance-api
?

acceptance-apps
?

acceptance-cli
?

unittests
8.43% <0.00%> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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

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

Thanks @andreas-kupries  for the explanation on how this worked.
Just FTR this is what was checked on my end at the time being:

Given a custom service svc-1 binded to 2 applications testapp-1, testapp-3, the hash is only dependent on the custom service name. In the example below svc-1 yields hash xd326256210974ceb2fde75b0d087-mysql in both cases:

➜  epinio git:(1808-serviceable-mounts) ✗ epinio app list --all

🚢  Listing all applications

✔  Epinio Applications:
| NAMESPACE |   NAME    |            CREATED             | STATUS | ROUTES |           CONFIGURATIONS            | STATUS DETAILS |
|-----------|-----------|--------------------------------|--------|--------|-------------------------------------|----------------|
| workspace | testapp-1 | 2022-10-27 09:37:40 +0200 CEST | n/a    | n/a    | xd326256210974ceb2fde75b0d087-mysql |                |
| workspace | testapp-2 | 2022-10-27 10:32:43 +0200 CEST | n/a    | n/a    | xbceee8a67d6ee59f8e9dd148264c-mysql |                |
| workspace | testapp-3 | 2022-10-27 10:38:02 +0200 CEST | n/a    | n/a    | xd326256210974ceb2fde75b0d087-mysql |                |

Show the mounting paths with epinio configuration show name-of-config

➜  epinio git:(1808-serviceable-mounts) ✗ epinio configuration show xd326256210974ceb2fde75b0d087-mysql

🚢  Configuration Details
Name: xd326256210974ceb2fde75b0d087-mysql
Namespace: workspace
🚢
Created: 2022-10-27 09:37:51 +0200 CEST
User:
Type: service
Origin: svc-1
Used-By: testapp-1, testapp-3
Siblings:
✔
|      PARAMETER      |   VALUE    |                ACCESS PATH                |
|---------------------|------------|-------------------------------------------|
| mysql-password      | 5KISXaf3na | /configurations/svc-1/mysql-password      |
| mysql-root-password | Tpe2BGo4WL | /configurations/svc-1/mysql-root-password |

Tested out a compatibility concern. I.e. what happens when

An application A is launched with the 1.22 standard app chart
Epinio is upgraded to a client and server using the 1.23 standard app chart (note! name is unchanged)
A is restarted, whether explicitly (app restart), or indirectly (config/service (un)bind, scaling, env changes)

Will the change in the underlying helm chart (1.23 from 1.22) be honored ?
Will the application actually restart properly ?
Well, the restart in itself works. The application smoothly switches to the 1.23 chart and restarts properly, with all that entails.
Which means that when the app has bound services it will break because the mount points for the service secrets will change, and anything in the application's setup referencing the old mount points / access paths will be incorrect after the change. If the relevant setup is done via environment variables then the best thing to do will be do induce the restart by changing these environment variables to the new mount points/access paths. Then the restarted app has the correct setup again as part of the change.

Reworked system.

The old key configurations left in for backward compat is now put back into full use. It specifies the volumes to mount.
The new key configpaths specifies the mounts themselves, and can have multiple entries, i.e. mounts, for a specific configuration, i.e. volume.
The go code creating the entries for configpaths generates entries for the old mounts, for backward compat.
The go code computing configurations from configpaths is extended to dedup the config names so that we do not try to create multiple identical volumns for the configurations with multiple mounts.

This looked ok in a local manual test. IOW the desired (dedup'd) volumes were specified, as well as the multiple mounts. Looking into the pod the mounts were properly executed, i.e. creating copies of the same volume in the desired paths.
An epinio upgrade will now not break a running application, even on restart, because it still has the old mounts and access paths available to it.
Last thing to do !! Have epinio configuration show report the multiple mounts, and see if we can put something into epinio app show also to make the user aware that an application should migrate to the new access paths.

On the last thing I currently have only unconditional nagging. I.e. when listing configs, or looking at config details it mentions to migrate apps to new access paths ... Because it (the client) actually has no information about the true access paths / mount points used by bound apps. Actually cannot as apps can have many different methods to tell them which access path to use.
Similarly an app only knows the names of the bound configs, and has no knowledge of the true access paths, nor if which of these the app actually uses.

LGTM, it was a tricky one. I've just not fully grasped the siblings configurations. Can you do an example of it?

Sibling configurations ... AFAIK we currently do not have a service which actually creates more than one secret to become a configuration.
Should we have a service S creating multiple secrets named, for example, oritw, asl, and fkad, the code will

see that they all belong to the same service S.

order them lexicographically, i.e.

asl
fkad
oritw

and then give the mount points the names:

asl
S

fkad
S-2

oritw
S-3

The sorting ensures stability of the mapping. I.e. prevents that asl is mapped to S at one time and S-3 some other time.

Hum, I had the case when a service created more than one secret/configuration with Crossplane, but they are going to have different names, so I'm not sure that the siblings was needed at this point, since a service will have always a different name for the secrets. Or maybe I'm still missing something.
The mountpoint are going to be /configurations/service/secret1, /configurations/service/secret2, /configurations/service/secret3.

No. There is no nesting of multiple scerets to the mountpoint.
In the context of my example with service S the old vs new mountpoints were/are:

configuration
new
old

asl
/configurations/S
/configurations/asl

fkad
/configurations/S-2
/configurations/fkad

oritw
/configurations/S-3
/configurations/oritw

It is not about the conflict with the keys of the secret/configuration. If you have multiple secrets you get one volume per secret/config, and one mountpoint per secret. Before the change the unique names of the secrets served to prevent clashes.

Gotcha, thanks for the clarification!


Add role definition and skuname

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Provisioning


Sidecar errors when running Java functions

The new timeout features for the grpc protocol times out quickly and errors before the Java function has time to start up which could take 10s or more depending on the function.
We need a way to tweak the timeout settings. Maybe introduce an initialDelay property.
Once the sidecar container errors it gets restarted but that could cause the back-off-loop to delay the availability fo the functions. Also ugly to see error status and restart count when running the function:
$ kubectl get pod -w
NAME                         READY     STATUS    RESTARTS   AGE
uppercase-8545f6fb95-wdqwz   0/2       Pending   0          0s
uppercase-8545f6fb95-wdqwz   0/2       Pending   0         0s
uppercase-8545f6fb95-wdqwz   0/2       ContainerCreating   0         0s
uppercase-8545f6fb95-wdqwz   2/2       Running   0         2s
uppercase-8545f6fb95-wdqwz   1/2       Error     0         10s
uppercase-8545f6fb95-wdqwz   2/2       Running   1         11s
uppercase-8545f6fb95-wdqwz   1/2       Error     1         20s
uppercase-8545f6fb95-wdqwz   1/2       CrashLoopBackOff   1         32s
uppercase-8545f6fb95-wdqwz   2/2       Running   2         33s
uppercase-8545f6fb95-wdqwz   2/2       Terminating   2         47s
uppercase-8545f6fb95-wdqwz   0/2       Terminating   2         50s

@trisberg I'm reconsidering the initial delay in favor of making the grpc wait time configurable.  Currently the grpc wait time is set to 100ms with an exponential backoff of 1sec - 4sec between retries. This causes the sidecar to crash if a java app takes > ~7.3 sec to start which is not that unlikely (the Java invoker uppercase sample takes about 5 sec.   Talking with @dsyer, he introduced the backoff loop and 100ms wait time. Originally it was set to 60sec. This would cause an unreasonable delay if the function container crashed and recovered, since a new connection is required after the function container recovers, a much shorter wait time eliminated this delay.  Dave's original change also used a fixed backoff which would retry forever, so no significant downside for the java happy path.
Per  @glyn s observation that we don't want to loop forever when the function container is unhealthy , I introduced the current exponential backoff/retry counter.  Testing the initialDelay implementation with the uppercase sample, I realized that some unnecessary overhead is incurred if the app takes more than 5 seconds to start.  For example, if it takes 5.2 seconds, the sidecar waits 5 seconds, grpc times out at 5.1 seconds, and then we backoff for 1 sec before attempting to reconnect. So a minimum of 6.1 seconds before the first response. To work around this, in the PR, I set the grpc wait time to the initial delay. This avoids an unnecessary backoff.  But the initial delay is also too pessimistic (Dave's words) if the app takes less then 5 seconds. (The PR requires a fixed initialDelay in the Java invoker).  A better solution is to either make the backoff much more fine grained, e.g. starting at 10ms, or make the grpc wait time configurable. The former is simpler since it requires no configuration and should cover all these cases.  Also, there is a note about about needing to enhance this if windowing is introduced so @ericbottard may want to weigh in here.


Pre-exchange Qubic to wQubic on Ethereum / Arbitrum

Set up the user interface for converting native Qubic tokens to wrapped Qubic tokens (wQubic) on the Ethereum or Arbitrum networks before the exchange process

Create a hook, a service and integration in client component to handle the pre-exchange request


[core] Explicitly define package dependencies

Extracted from #36287
In this PR, I listed all the dependencies in package.json files. This is not required by yarn (but it's a good practice anyway), but pnpm needs it.
Additionally, I standardized the layout of package.json files (order of fields).

For the record, I used depcheck to analyze what's missing and what's redundant. It required some manual adjustments afterward, but the passing build and tests should be a good indication that it works.

@Semigradsky, @oliviertassinari, fixed in #38971


Update the repo description

On the top, it still says .npmignore ;)

Sorry this was meant for the other repo

no worries!


Flickering

displace GL.Flush() with GL.Finish() to prevent from flickering.

What kind of flickering are you experiencing? What setup do you have? And what drivers/gpu?

Closing this in favor of #51 .


Support for np.linalg.svd(X, compute_uv=False)

Feature request
Numba does not currently support the compute_uv=False flag for np.linalg.svd(), which significantly improves runtime in situations where only the singular values are needed. The selection of whether to compute U and V shouldn't really depend on the data/runtime so this should be an implementable feature.
For some timing comparisons, I found that an njit and parallel numba implementation was only slightly faster than pure numpy on multi-dimensional SVDs (makes sense due to primarily LAPACK calls). But, setting compute_uv=False allows numpy to speed up by ~3x in my comparisons for matrices [270, 32, 4] and [100, 270, 32, 4] dtype=complex128.

Thanks for the request, this should be possible. Some details: https://github.com/numba/numba/issues/2423#issuecomment-1295250461.


peaks to genes update

It would be great to integrate the following into the tutorial:

where can you find the saved visualizations
how to change the x-labels (Is it possible to display tack for every bar?)
Hands-on: tools not selectable for UCSC Main and Select last
Question in Hands-on: Count genes on different chromosomes: update genes to 1940

Added here already


[REQUEST] Variable from list

Is it possible for OB to read from example a text file list of data and insert a random line from this list as a variable?

Utility block -> read all the lines from a file into a LIST variable
Utility block -> get the length of that list
Function block -> generate a random number between 0 and the maximum length
Then simply do something like <LIST[<RAND>]> to get the random line and use it wherever you want.

Next time please use the forum for something like this so it can help other people too.
https://forum.openbullet.dev


Downgrade @tailwindcss/forms

Description
We somehow missed this warning when updating @tailwindcss/forms:
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| >= 3.0.0-alpha.1 but none is installed. You must install peer dependencies yourself.

We should downgrade the the latest version that doesn't require TailwindCSS 3.

Hmm… but we don't see any negative effects?

Not that I could tell!

Do we really need to downgrade, then? Could be that the requirement only applies to parts of Tailwind Forms that we're not using?

Do we really need to downgrade, then? Could be that the requirement only applies to parts of Tailwind Forms that we're not using?

It's possible. We can check that when investigating the issue. I've updated the description to reflect that.

According to the release notes, we should be on version 0.3.4. Version 0.4 and later are noted as "incompatible" with Tailwind 2, but I still haven't determined exactly what's affected. https://github.com/tailwindlabs/tailwindcss-forms/releases

I looked into this a bit more, and the part that's affected is the default colors used for form inputs, which we we're overriding anyway. However, if a user creates form elements without the CSS classes as documented in our templates, they will see these default colors. Effectively, in the CSS, the latest version of @tailwindcss/forms changes the border color of form elements from #6b7280 #71717a, which is pretty indistinguishable to me.
So, in short, I think it's okay to leave as-is.

Awesome, thanks for checking into it!


Update vim-tmux-navigator.lua

in this method plugins only start when tmux session in on

Thank you for the contribution!


pybeautifier - connection refused

When I try to run pybeautifier I get the following error:
connect ECONNREFUSED <IP_ADDRESS>:36805
connect ECONNREFUSED <IP_ADDRESS>:36805
Hide Stack Trace
Error: connect ECONNREFUSED <IP_ADDRESS>:36805
at Object.exports._errnoException (util.js:1026:11)
at exports._exceptionWithHostPort (util.js:1049:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1081:14)
yapf or autopep8 works fine. Many thanks!

Strange, started to work after additional restart!

Duplicated with #2272


Document form: Extra data field

Figure out how we render the extra_field in the document form.
One solution could be to provide a form component to App to allow customization for how the extra_data field is rendered.

as a reference solution: https://github.com/inveniosoftware/invenio-rdm-records/pull/75

Closed in favour of https://github.com/inveniosoftware/invenio-app-ils-ui/issues/8


Why no source for sledcore?

I saw sledcore comes only with libraries, I would like to port some stuff on different platforms than windows.

Thanks for your comment.  As far as I'm aware, I'm not allowed to release the source that makes up sledcore.  The implementation details are pretty straightforward, though, if you just wanted to write your own sledcore altogether.

Ok then, closing... Thank you

I should mention I'll happily accept pull requests for other platforms.  (Just be smart in the naming as SLED comes from Sony...)


ArgoCD Workflow on MGMT - Template Repo Names in Script

/kind feature
Describe the solution you'd like
Currently, the Repo Names that are being created are hard-coded with the username and there is currently no solution to make this template-able.
We need to pass the Username as an Env to the container, so that we can replace the strings inside the script.
Anything else you would like to add:
No

This has been resolved by templating the argo hub repository and with the renderer function of frigg.
/closed


Python UDF ala pyspark

Description
Not a feature request as I don't have a specific use case in mind. More a general question since the topic comes up regularly when showing atoti: have you tried/considered offering python UDF (User Defined Function) in atoti the same way it's possible to implement UDF in pyspark?

UDF can be given to PySpark in 2 ways.

UDF can be defined in Scala and run using PySpark
UDF can be defined in Python and run by PySpark

In first case UDF will run as part of Executor JVM itself, since UDF itself is defined in Scala. There is no need to create python process.
In second case for each executor a python process will be started. data will be serialised and deserialised between executor and python to process. This leads to lots of performance impact and overhead on spark job.
usually it is preferred to use Scala based UDF, since they will give you better performance.
in spark 2.x There is something called Pandas Udf(vectorised UDF). They are implemented using Pandas(Converting Dataframe using apache arrow). Basically you write code in python but that code is converted and run using pandas. which drastically improves performance of UDF in python.

Correlated to that question: why would spark continues offering UDF if it is way slower than spark functions? It sounds like it's a popular feature on the paper that would be in practice never used anyway.
One advantage I see for UDF is that it would unlock great possibilities in atoti since the whole Python world would become available/callable from atoti. But in practice it would not work for many use cases because of performance reasons and it could be an incentive to not improve the atoti API (users implementing things in Python rather than opening a ticket for it).
Just thought it would be good to have an official public answer on this topic in case anyone searches for it.

Hi Julien,
We decided not to offer Python UDF for a few reasons:

We'll have the same problem as Spark, namely that the performance of such functions would be very poor because of the need to serialize data between the JVM and Python processes. atoti provides fast queries on top of large volumes of data, and can be easily deployed as a production system. Using Python UDFs would defeat that purpose and force the atoti programs to be rewritten before they can be actually used in production.
UDFs are only part of the story with atoti. Contrary to Spark, we are a multidimensional system that allows queries to "navigate" in the cube. UDFs only provide "basic" transformations. Therefore the user will also need to use a lot our API (at, date_shift, parent_value, ...) for these operations. And then there are also the aggregation functions (which can also be defined in Spark using UDAFs, so that's another API to learn).

We're not completely ruling out proposing Python UDFs one day, There's actually an open internship position to evaluate some techniques that we believe we could use to mitigate the performance drawbacks. But it's definitely not a top priority development since all "real" atoti applications used in production use the native atoti API to achieve top-grade performance.

Thanks for the official answer!


fix bug in convexHull if returnPoints is false

retval is in case of returnPoints false a torch.LongTensor.
Therefore we can get the size only with the size method.

Oops, indeed a bug, thanks. Actually, your fix can be problematic too because t[i] = other_tensor on slices might do unnecessary memory allocations. What I meant is to simply add 1 to all values of the return value (since they are 0-based indices).
Could you please replace the whole for loop with retval:add(1) and test if it works?

Ok I use now use :add(1) like you recommend it and also test it, works like a charm.
But in general I guess many other functions not correct the indices e.g. the rect wrapper.
Is this also a bug?

Merging, many thanks for your help.
Yes, generally that should be true. In this project, indices

are corrected automatically if they are returned in Tensors (because most likely you'll want to use them for indexing in Torch);
are not corrected if they imply pixel coordinates and are returned in structs like Rect of Point2f (because then the most probable use case is to feed these structs into some OpenCV functions again).


GOBBLIN-1234: Fix unit tests that fail on local build after MySQL v8 bump up

Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-1234

Description

[x] Here are some details about my PR, including screenshots (if applicable):
The JobHistoryStore unit tests fail on local build after the MySQL v8 bump up due to change in default settings for the system variable explicit_defaults_for_timestamp. This results in a change in how timestamp columns with NULL values are handled.

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:
Fixed failing unit tests after v8 bump up. So verified existing unit tests in DatabaseJobHistoryStoreTest.

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

@htran1 please review.


Debian-slim as base image

Is there any reason why debian-slim is not used as the base image for v4?
As I cannot imagine there would be any required libraries/dependancies that are only available in the full image.

Pull requests are welcome.


Pre-v0.0.1 PR: Add some tests, update readme

Once this PR is merged I'd like to publish v0.0.1 if that's okay with you @jourdain

@jourdain Is it okay if I rename some of the demos to make the name shorter?

@jourdain Is it okay if I rename some of the demos to make the name shorter?

yes go for it

yes go for it


Robotium Recorder failing to launch app on mobile device

I am getting this issue while launching the application on mobile device.
Test run failed: Instrumentation run failed due to 'java.lang.IncompatibleClassChangeError'
Can you suggest the steps to fix this issue??

Seeing this as well while evaluation robotium recorder before purchase.  It's a bit of a blocker to say the least.
recording failed: java.lang.incompatibleClassChangeError: org.apache.http.params.SyncBasicHttpParams

This issue is due to obfuscation of the support package. Recording of obfuscated APK:s is perfectly fine. However the support package should be excluded from the obfuscation (its open source anyways so no need to obfuscate that piece of code).

In my case the package wasn't being obfuscated.  I found my specific issue shortly after posting here though, there was an include for an older version of robotium solo I missed and the older non-android httpcore/httpclient jars.  Removing those seems to have resolved the problem for me.


Make ansible-lint happy

Hey, thanks for this. I'd love it if you'd redo the tests to fix this once and for all, so that it's a requirement for all PRs to be accepted.


Mobile height and width, Feature Request

It will be better if we are able to get mobile height and width, expand works only when directly adding container to page and not while passing container inside flet.View

to get the size of your app on mobile, use page.width and page.height

Right. There was a regression which is now fixed: https://github.com/flet-dev/flet/issues/1960


Replace feature/storage with master in README files

This PR updates old links pointing to the feature/storage branch to use master instead as we have now merged feature/storage branch to master

Thanks!!!


Standardize Your Code Styling

Right now there seems to be a few different code-stylings.  I would of course suggest sticking to the common code-styling for each language but it still is up to you, just remain consistent.  Python for instance uses CamelCase only for class names and lower_case with underscores for all functions and variables.  The PEP8 describes these suggested stylings.

Also, most modules are named in all lower-case in Python.


result: add "Custom" metadata type

CQL protocol allows sending custom types identified by their
string representation. One of the cases in which the trick is used
is when Cassandra returns duration columns to a CQLv4 client, which
is not supposed to know this type.
Refs #364
Pre-review checklist

[x] I have split my patch into logically separate commits.
[x] All commit messages clearly explain what they change and why.
[ ] I added relevant tests for new features and bug fixes.
[x] All commits compile, pass static checks and pass test.
[x] PR description sums up the changes and reasons why they should be introduced.
[x] I added appropriate Fixes: annotations to PR description.

thx, done

It looks like the commit still has the wrong description :(

Committed in https://github.com/scylladb/scylla-rust-driver/commit/2cf503bdcdc67a9e7a25fcd2c572737530750628. Fixed the commit message manually before pushing.


Now offsetting from surface

Overview
BaseCursor now offsets from surfaces, not along the player view direction
Screenshots
I used .5f as the offset for clarification
The orange line is the view direction
old: Here, the cursor offsets along the view direction

new: Here, it offsets along the surface normal

Changes

Fixes: #7325

Looks like a nice fix. Can you add before / after images to enhance the clarity of the change?

/azp run

Now with the screenshot I'm pretty sure the change is not desirable.  I'll have to look into why I got the pointer sticking into the floor which is why I proposed the change.
Only situation this would come in handy is when you point almost along the surface.
But I guess it can be omitted.

@Alexees, thanks for the images! I will close this PR per your "I'm pretty sure the change is not desirable" comment.


use existing encoder

this may require some adjustments in the encoder's API

As you can see from the recent PR, I am very interested in this project.
Looking at various contexts, it seems that SDL and AST need to be integrated. Do you have any specific plans?
If you give me a suitable job, I will do it if I can.

About two years ago, I wrote GraphQL Parser.
At the time, I used a Parser-Combinator called nom, but I think I have reached a level where I can parse without such a thing.

Hi @Danue1, thanks so much for your interest! Apologies for the lacking issue description. I've written it for myself as a "todo item" a while back and never went back to correct it
To elaborate on this issue a little bit: apollo-encoder and apollo-parser are still very much a work-in-progress. This issue was created to integrate apollo-encoder with the AST produced by the apollo-parser. There is still definitely a plan to integrate the parser and the encoder, but it will have to be implemented after the work that's currently happening with semantic analysis (a [very] brief description of the latter is in our ROADMAP.md). What I can say is that it's very likely that the encoder will actually be integrated with the semantic analyser that's built on top of the parser, rather than the parser itself. And the parser is likely going to have a much simpler From for String implementation.
As we are still hashing out the details on the design and architecture of the overall project, I am afraid I cannot accept external contributions. Smaller, non-breaking changes, like for example the more generic String parameters you proposed in one of your commits, or bug fixes are fine, but we will have to wait a little while longer to accept larger design changes. This is mostly because there are lots of things in flight, and I don't want to confuse external folks with very frequent changes we will be doing in the next couple of months. Hope you can understand!

@lrlna
Okay, I understand...
let sdl = Sdl::new(...);
let (ir, errors) = SemanticAnalyser::new(...).validate(&sdl)?;

I think the design will come out roughly like the pseudo code above.
I can't wait until the 1.0 release. I want to use this project right away.
I wish there was something I could do.
If nothing else... I'll just watch the progress.

I believe this is obsolete now that apollo-compiler includes serialization


[homework]  Reading & experience report

Asking

[ ] Ask ChatGPT for help completing this homework

Feeling, Writing, Thinking

[ ] Post an experience report (a paragraph or several) as a comment on this issue. This experience report should convey what motivates you to understand and practice data thinking. An experience report may describe a collection of experiences (which may or may not relate to data), and some questions to consider may be helpful: What were you or those involved feeling? Doing? Thinking? Asking? Where were they? What systems were involved, if any? Who would you want to better understand the incentives at play?

if you are stuck, ask for help on Zulip, come to office hours, make a plan of tasks to do and ask for feedback on the plan
try using dictation on iPhone, Android, computer, and ask ChatGPT to summarize it
ask Lex for ideas or ChatGPT for ideas
edit using https://hemingwayapp.com/, Grammarly, or any other tool to help
read the below articles for ideas

Doing

[ ] Review the first class: https://panopto.ut.ee/Panopto/Pages/Sessions/List.aspx?folderID=43bb180c-79a6-4324-b055-afa400ecd1a0 - ask on Zulip if you can't access this
[ ] Review the Figma whiteboard from the first class: https://www.figma.com/file/SsoNLhaZwnSGkADd4eS0D8/230220-introduction?node-id=0%3A1&t=jR2hISrDchAPapYR-1
[ ] Create a LinkedIn profile. (If you are not comfortable using your real name, feel free to use a fake name + email)
[ ] Post your LinkedIn profile on Zulip -- Zulip is open source and enables us to analyze our chat messages with natural language processing tools such as ChatGPT, which we will do later in the course!
[ ] Read https://matt.might.net/articles/how-to-email/ to understand principles of communication over email or Zulip
[ ] Read parts of the Mailchimp Style Guide (https://styleguide.mailchimp.com/voice-and-tone/ or https://styleguide.mailchimp.com/writing-principles/) to understand how written communication can be guided by principles
[ ] Read https://georgesaunders.substack.com/p/on-worry to understand a professional writer's perspective on writing.
[ ] Read https://every.to/chain-of-thought/writing-essays-with-ai-a-guide to understand how to use voice recording, dictation on your smartphone or computer, and ChatGPT, and Lex to help you write
[ ] Read https://simonwillison.net/2022/Dec/5/rust-chatgpt-copilot/ to understand how ChatGPT and CoPilot can help you learn data thinking, programming, and statistics skills
[ ] Read http://web.archive.org/web/20170208134519/http://storyshots.tumblr.com/post/25032057278/22-storybasics-ive-picked-up-in-my-time-at-pixar -- especially the "Once upon a time" story telling framework Pixar used for its movies.
[ ] Read https://www.newyorker.com/magazine/2023/02/13/the-dubious-rise-of-impostor-syndrome to help understand concepts that can increase our psychological safety and trust in class and how asking ChatGPT can help reduce our fear of asking for help when stuck.
[ ] Read https://jaan.io/my-friend-radicalized-this-made-me-rethink-how-i-build-AI/ to learn about my journey in understanding the incentives that can affect our thoughts, feelings, and actions in society and the incentives that affect how AI such as ChatGPT is built.

Programming & Infrastructure

[ ] Create a GitHub Codespace using the data thinking template here (from https://github.com/onefact/datathinking.org-codespace)
[ ] Send a screenshot to Zulip of a plot you made in the GitHub codespace (of any dataset or data you generated as in the live coding demo from the first lecture; ask for help if this is unclear)
[ ] Sign up for Lex - message Jaan on Zulip for an invite code
[ ] Sign up for Figma as a student (https://www.figma.com/education/students/)
[ ] Install copyq on Windows Powershell or Linux using Chocolatey, or install Maccy on Mac using Homebrew. This will save you a lot of time throughout the class as you copy and paste things from ChatGPT!

Data thinking has become increasingly important in today's world as more and more decisions are driven by data. Understanding data and its implications has become crucial in various fields, from healthcare to science to marketing. As someone who is interested about problem-solving, self-development and decision-making, I have found it very beneficial to learn how to use data thinking for a happier life. Since data is all around us and is needed for every aspect of life, it is crucial to stay up-to-date with the latest tools, techniques, and best practices in data analysis. This not only helps in making informed decisions but also helps in identifying new opportunities and insights that were not visible before.
Collecting all the data and coming up with a summarised result is something I have always considered frustrating. During my studies I found out that data is the only tool that can actually help us combat climate change, or at least implement mitigation measures in the short-term, something I am really passionate about. Data can help us predict future trends and make decisions to affect those trends in a positive way. Data can also suggest adaptation solutions or warn communities affected by climate change. Beside those important topics, data can help in your daily life and make it more enjoyable by assisting you in the task you don’t really like doing. My experience with data is yet not much. I had to find data for a graph I had to do, then I understood how difficult and stressful finding the right data can be. However, with the help of AI tools this data journey can be quite simple and enjoyable. Thankfully, back then I found a trusty database for ongoing projects about green hydrogen production in EU member states and my task was easily completed, but not always that is the case. Collecting, summarising and visualising data for your master’s thesis could be very difficult task. For instance, all environment related studies need some data tools in order to come up with results, even if we are talking about wetland restoration and greenhouse gas measuring - here is where data thinking can always help you out.
Even though I do not have many experience with data or (big) data so far, I am eager to learn and use new tools, in order to be more productive in my studies and future career. Ultimately, the ability to harness the power of data thinking can be a game-changer in today's data-driven world.


Feel welcome to bundle them, should be less work that way as well. 🙂


Restoring the cart delete the cart row

I try to store cart on database it's stored successfully  but when restore this cart my return is null
i noticed that after use restore() function the car has removed from DB
My Example
 Cart::instance('shopping')->add('192ao12', 'Product 1', 1, 9.99);
 Cart::instance('shopping')->store('foo');
 dd(Cart::instance('shopping')->restore('foo'));

Or
dd(Cart::restore('foo'));
Any Help ,Thanks

There is  no anyone  help me here , please .

in case if the your item has been stored in the database
it may the caches still got that null value
try to clear caches
php artisan cache:clear
php artisan config:clear
and restore the server

@33sKamal  thanks for reply , i tried to clear cache and config but still the same issue

Hi i have tried all above solution but it is not working and facing same issue.Can anyone help me out for this?

The problem here is that you’re using this functionality in another way than originally it was intented for.
The idea is for you to store the cart for a later time. So maybe a customer can “save his cart for the next time he/she visits”.
What you’re trying to do is use this functionality t save the cart to the db all the time. But it is not designed for that purpose

hi crinsane
thank you again for a nice package.
you commented [https://github.com/Crinsane/LaravelShoppingcart/issues/143] that you add store() and restore() , thank you , but I think you can make it perfect by adding  update() function ,
for example  , user login on pc and add to cart 3 product , and later he login on his mobile , we want show the user his cart item , and if user add or remove item we update shopingcart table and so on .
could you please give me an example how can i handle it ?

Seriously as @saeed7m say, we need to keep cart item between all devises


One existing test needs [mathchat]. It'll be good to change that test in future to get rid of the dependency.

          One existing test needs [mathchat]. It'll be good to change that test in future to get rid of the dependency. @kevin666aa for awareness.

Originally posted by @sonichi in https://github.com/microsoft/autogen/pull/480#discussion_r1382312801

Got it!

seems like this has long since been resolved.


chore: migration axios -> fetch

TRELLO_TICKET
Description

[ ] migration axios -> fetch

Type of change

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

 Migration AXIOS -> FETCH


Bump SpringBoot version to latest 2.5.2 in it test

Thank you for opening a pull request and contributing to AsciidoctorJ!
Please take a bit of time giving some details about your pull request:
Kind of change

[ ] Bug fix
[ ] New non-breaking feature
[ ] New breaking feature
[ ] Documentation update
[x] Build improvement

Description
What is the goal of this pull request?
Upgrade version of Spring Boot version used in the Spring Boot integration test.
How does it achieve that?
Simply upgrade the configuration of the submodule springboot-app.
It also removes an unnecessary asciidoctorj version property.
Are there any alternative ways to implement this?
If necessary we could consider parameterizing the version in a way that allowed to run the same test against several version, por example the 2 most recent minnors. But that can be tricky when we fund breaking changes between minors.
Are there any implications of this pull request? Anything a user must know?
No.
Issue
If this PR fixes an open issue, please add a line of the form:
Fixes #Issue
Release notes
Please add a corresponding entry to the file CHANGELOG.adoc

Thanks! 🥳


Move bad go code under a vendor/ subdirectory.

What does this do / why do we need it?
This fixes an issue where running dep status on dep itself resulted in
error from ListPackages due to parsing the bad go code that exists in
the testdata.
analysis of local packages failed: import path github.com/golang/dep/internal/gps/_testdata/src/canon_confl had conflicting import comments: "vanity1", "vanity2"

This started happening after adding tests from https://github.com/golang/dep/pull/1017 .
What should your reviewer look out for in this PR?
The solution to the issue. Any other better way to fix the same issue?
Do you need help or clarification on anything?
No.

we can't abuse vendor in this way - we need to fix the underlying problem in the logic that we're caring about these errors at all. same basic issue as in #1251, I think.

@sdboyer yes, #1251 is the same issue and the inability to run dep status in dep itself is sickening me 🤢
I wanna fix it 😁
From #1251

we have to adaptively determine from the import set in non-dot/underscore-led dirs whether or not it's needed to actually explore those, then restart work if we determine that it is.

So, I think I know how to do this partially. Like, defer parsing dot and underscore-led dirs and keeping a record of all the dirs that might require parsing once we determine if we need them.
But I'm not sure how is that determined? Is it based on the import path? like relative import to dot or underscore-led packages?
Maybe from the PackageTree obtained after parsing all the non-dot/underscore-led dirs, check if any of the import paths have dot or underscore in them. If they do, parse that specific package only?

so there's two basic approaches i can picture. one involves new a new parameter to ListPackages() that decides whether it should descend into typically-ignored dirs - .*, _*, testdata. but let's defer that for a moment.
the other approach could be a method on PackageTree, perhaps func (t PackageTree) TrimHiddenAndUnreachable() PackageTree, the essence of which would go to answer your question:

But I'm not sure how is that determined? Is it based on the import path? like relative import to dot or underscore-led packages?

the idea here would be creating a new PackageTree that only contains package entries which either:

are not excluded by one of the hidden naming rules, .*, _*, testdata
are transitively reachable from a package in the first group

i think this should be doable by relying on the existing logic in PackageTree.ToReachMap(). something like this:
func (t PackageTree) TrimHiddenAndUnreachable(main, tests, backprop bool, ignore map[string]bool) PackageTree {
	// while it is probably correct to surface all these params, it is not
	// necessarily the case that we will want to use them all the same way as we
	// currently do with ToReachMap() in cmd/dep.
	rm, pie := t.ToReachMap(main, tests, backprop, ignore)
	t2 := t.Copy()

	preserve := make(map[string]bool)
	for pkg, ie := range rm {
		if !pkgFilter(pkg) {
			preserve[pkg] = true
			for _, in := range ie.Internal {
				preserve[in] = true
			}
		}
	}

	for ip := range t.Packages {
		if !preserve[pkg] {
			delete(t2.Packages, ip)
		}
	}

	return t2
}

that's more or less right, but it glaringly it does not incorporate the pie var (the errors map), which is a big question. but i think it's probably a good starting point, as at least we don't have to change ListPackages()' parameters, or parse more than once (though we still have potentially wasteful inspections).

What about an --exclude flag?

@pengux we generally try to avoid introducing new flags, especially for situations like this. reliance on a flag would necessitate that it be passed for all operations for their correct behavior, which means that whole repos would only work if you use that flag. (and, if it takes parameters, then it gets even worse - teams would end up writing this down in docs, the reason for it would be lost over time, and exclude parameters would eventually just be cargo-culted)
we can resolve this situation unambiguously and correctly without the need for additional input from the user. we just have to pay a bit of a complexity cost to do it.

actually, i'm gonna just tackle this one, having started on the sketched-out implementation above. lot of subtle things here.

(closing this, will make new PR)

😆 I spent a few hours understanding, experimenting and implementing, but it's fine. 🤘

@darkowlzz sorry about that - happy to discuss it in more detail when my PR is up :)


GIT Stash Getting deleted

Type: Bug
Facing a big issue where while creating a new git stash VS code deletes all older GIT stashes. When applying a git stash again it pops and clears any other git stashes. Getting this error with my current VS code version. This was not the case with previous VS versions.
A very irritating bug. Please priortise as we loose important work.
Current workaround:
If vscode deletes your stash or messes with it, please remember the name of your stash
git fsck --unreachable | grep commit | cut -d" " -f3 | xargs git log --merges --no-walk --grep=<replace this with name of your stash, no need to add "" quotes>
Then you will get the hash
just do
git stash apply <hash>
VS Code version: Code 1.75.1 (441438abd1ac652551dbe4d408dfcec8a499b8bf, 2023-02-08T21:34:59.000Z)
OS version: Darwin x64 22.3.0
Modes:
Sandboxed: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz (16 x 2400)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
7, 9, 10

Memory (System)
32.00GB (2.73GB free)

Process Argv
--crash-reporter-id 907841dc-5be8-4f43-bcb6-96ea45107b41

Screen Reader
no

VM
0%

Extensions (29)

Extension
Author (truncated)
Version

npm-intellisense
chr
1.4.4

vscode-eslint
dba
2.4.0

es7-react-js-snippets
dsz
4.4.3

gitlens
eam
13.3.1

prettier-vscode
esb
9.10.4

terraform
has
2.25.4

isort
ms-
2022.8.0

python
ms-
2023.2.0

vscode-pylance
ms-
2023.2.40

jupyter
ms-
2023.1.2010391206

jupyter-keymap
ms-
1.0.0

jupyter-renderers
ms-
1.0.14

vscode-jupyter-cell-tags
ms-
0.1.6

vscode-jupyter-slideshow
ms-
0.1.5

remote-ssh
ms-
0.96.0

remote-ssh-edit
ms-
0.84.0

remote-explorer
ms-
0.2.0

java
red
1.15.0

vscode-yaml
red
1.11.0

vscode-ember-experimental
suc
1.2.0

intellicode-api-usage-examples
Vis
0.2.7

vscodeintellicode
Vis
1.2.30

vscode-java-debug
vsc
0.49.0

vscode-java-dependency
vsc
0.21.1

vscode-java-pack
vsc
0.25.7

vscode-java-test
vsc
0.38.0

vscode-maven
vsc
0.40.4

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vsdfh931cf:30280410
vshan820:30294714
vstes263cf:30335440
pythondataviewer:30285071
vscod805:30301674
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593cf:30376535
pythonvs932:30410667
cppdebug:30492333
vsclangdf:30486550
c4g48928:30535728
dsvsc012cf:30540253
pynewvextcfv2:30660300
azure-dev_surveyone:30548225
vsccc:30610678
pyindex848:30662994
nodejswelcome1cf:30587006
282f8724:30602487
pyind779cf:30662993
89544117:30613380
pythonsymbol12:30657548
vsccsb:30662443

Please use the Start Extension Bisect command to investigate whether the problem is being caused by one of your extensions.

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


FontBakery dashboard

This is a work in progress. I'll merge it once it is done.
From time to time I update the live instance with this so that the 'under-construction' dashboard can be seen at http://fontbakery.appspot.com/dashboard

@davelab6
The dockerized dashboard took longer than I estimated, but finally started working. For now, I hardcoded 4 font projects in the docker-compose setup. I'll figure out a better way of dispatching hundreds of customized worker containers later, for now these 4 are enough for me to test the app locally.
Each worker container checks out a git repo (specified in the REPO_URL environment var passed to the container) and then runs fontbakery-check-ttf.py on all commits in the repo history, storing the full set of check results in a table and cached summaries of the overal score in a separate "cached_stats" table.
The flask webapp queries the database and displays the families with their overal score.
I'm having trouble with the CSS file not being available for the app. Tomorrow I'll see what needs to be done to serve these static files. I briefly saw people suggesting a dedicated nginx container for hosting a flask app static folder. Not sure if that's a good choice, but I'll deal with that tomorrow.
Then I'll create a template for the detailed page. This should be quicker to implement, I hope, given that the database and docker-compose setup is all sorted out now.
cheers,
Felipe

This looks uglier than previous update because it is failing to load the CSS file. I'll fix that tomorrow:

@davelab6 Details page working!
Next steps:

add the actual list of check results
add the burndown chart maybe also in this same page.
setup the workers to copy prod files and run fontbakery on those as well
show the prod versus git upstream data on a separate page on the webapp

The per-TTF progress bars seem not very useful (at least not in this case). I may leave them there, or I may use the screen real-estate for things like the burndown chart and the actual check-results.

Throw everything in. We will redesign it later, for now focus on making it work. The screenshot without CSS is totally fine for this stage IMHO.

Good progress!
I'll get a docker machine up and running and have a play with it soon :-)
I was just expecting json for the time being :-)

The image from the previous comment is a screenshot of the fontbakery dashboard as of today. I have added the panel with per-fontfile tabs with the individual check-results (ported from the drag-and-drop webapp into a jinja template populated with the data from rethinkdb queries). I have also moved the single-ttf score percentage+progressbar into each of the specific tabs.
I would like to deploy this to Google Container Engine. I have setup my account and created a cluster of 3 nodes (default size, can be changed). I leraned though that the docker-compose.yaml setup file that I am using for testing on my machine is not the same thing that kubernetes expects. In order to deploy on Gogle Container Engine, using the kubectl command line tool, I need to setup a similar, but different yaml file describing the desired deployment. It puzzles me a bit and I'm now trying to figure out exactly how that's supposed to be done.
I found a tool called kompose (available at http://kompose.io/) that tries to make it easier to move from docker-compose into kubernetes resource description files. If failed to do so for fb-dashboard though. As with all automated tools, I already expected it to fail somehow. So now I'm trying to figure out how to set this up manually.

I'm loving it
On Mar 1, 2017 6:26 PM, "Felipe Corrêa da Silva Sanches" <
<EMAIL_ADDRESS>wrote:

The image from the previous comment is a screenshot of the fontbakery
dashboard as of today. I have added the panel with per-fontfile tabs with
the individual check-results (ported from the drag-and-drop webapp into a
jinja template populated with the data from rethinkdb queries). I have also
moved the single-ttf score percentage+progressbar into each of the specific
tabs.
I would like to deploy this to Google Container Engine. I have setup my
account and created a cluster of 3 nodes (default size, can be changed). I
leraned though that the docker-compose.yaml setup file that I am using for
testing on my machine is not the same thing that kubernetes expects. In
order to deploy on Gogle Container Engine, using the kubectl command line
tool, I need to setup a similar, but different yaml file describing the
desired deployment. It puzzles me a bit and I'm now trying to figure out
exactly how that's supposed to be done.
I found a tool called kompose (available at http://kompose.io/) that
tries to make it easier to move from docker-compose into kubernetes
resource description files. If failed to do so for fb-dashboard though. As
with all automated tools, I already expected it to fail somehow. So now I'm
trying to figure out how to set this up manually.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/googlefonts/fontbakery/pull/1209#issuecomment-283536932,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAP9y3oFjNtHBQ7HIKEqNkvI017NdEoDks5rhijEgaJpZM4LyOy9
.

For parallel processing of the full Google Fonts set of font families, I'm considering using a message queue service as described at https://kubernetes.io/docs/user-guide/jobs/work-queue-1/

And for schedulling re-runs of the checks on the full set of families I may use the CronJob feature of Kubernetes, as described at https://kubernetes.io/docs/user-guide/cron-jobs/

This morning I sketched an interesting new view of the date, which will be particularly useful for validading the sanity of the fontbakery test suite itself. It tells uf how often each specific check fails/passes throughout the full set of tested fonts.

The image above is a showcase of it running only on 4 families. But with a full set of families being checked after deploying it to GKE, then we'll be able to notice some patterns such as:

(A) If a check always fails then maybe the check implementation itself is broken
(B) If a check passes for all font files of all families, then we either also have a bad check implementation (one that never ever fails) or it's simply an issue that vanished from the Google Fonts project (i.e. all font projects successfully got rid of the problem). The check then remains useful only for a "regression alert" purpose (or for new families yet to be introduced).

Note: there are 15 TTF files being checked, but there's a total of 14 for each check in this table because 1 of the 15 TTFs has a non-canonical name: Cabin-RegularCondensed.ttf
So it errors in that first checks and bails out not running the rest of the testsuite at all.
@davelab6 If you like it, I can create an additional panel for listing all identified non-canonical filenames in the full set of families.

This morning I sketched an interesting new (and complementary) view of the data in an additional dashboard page, which will be particularly useful for validating the sanity of the fontbakery test suite itself. It tells us how often each specific check fails/passes throughout the full set of tested fonts.

EXCELLENT! The fsType macStyle and name table checks will be really helpful for @rsheeter :)

@davelab6 If you like it, I can create an additional panel for listing all identified non-canonical filenames in the full set of families.

Sure, that's like a "p0" or "ON FIRE! must immediately fix" kind of problem :)

Sure, that's like a "p0" or "ON FIRE! must immediately fix" kind of problem :)

Each check should probably have a new 'priority level' piece of metadata, similar to 'result type', with 5 values from 0 to 4

@davelab6 I created a very simple system for tagging checks with priority levels. The levels are called TRIVIAL, LOW, NORMAL, IMPORTANT and CRITICAL.
By default checks are implicitely initiated with NORMAL priority level. We can explicitely over-ride that case-by-case by invoking something like fb.set_priority(CRITICAL) right in the beginning of the check implementation.
Now it's up to us to decide which checks are critical. Also, there's no visible indication of priority levels yet. We may use this metadata field for highlighting the critical ones on the web ui. Or maybe for sorting. That's still open for brainstorming :-)

@davelab6 & @m4rc1e
Phew!!!
I spent the whole of Friday and Saturday frantically dabbling docker/kubernetes lingo on the text terminal !
It's actually pretty cool :-) And powerful!
I've written yaml descriptors for all jobs and services needed for the dashboard. And I replaced the hardcoded set of per-family worker containers, but a single worker container that fetches its attributes (git_repo_url and fontfiles_prefix) from a workqueue. The queue manager is the new piece of the puzzle: I'm using a RabbitMQ message queue server on its own container. And I have added a "job dispatcher" container which is a very simple python script with a hardcoded list of parameters for a selection of 34 font families; The dispatcher job, when started, feeds the queue server which these jobs so that the worker container instances can fetch these for running fontbakery and saving the check results to the database.
By the way, I have setup the worker jobs to run 8 pods in parallel in the cluster, so that processing a large batch of font families can be faster. This is possible in part due to the queue manager taking care of dispatching a unique family descriptor for each worker.
Everything looked quite fine at first. The whole setup, including the messaging for the job queue, works nice locally with docker-compose. So I built the container images of all of these components and uploaded them to the Google Container Engine Registry for docker images.
Then, using the kubectl command-line tool and the yaml descriptions that I had written, I bootstrapped the services, jobs and replication controllers on my GKE cluster. I have written down the sequence of commands in a shell script so that I do not have to memorize it all. The script is called deploy_to_gke.sh and it sits in the root of the fontbakery repo (in this not-yet-merged pull request: https://github.com/googlefonts/fontbakery/pull/1209)
Most things worked ok GKE. But a few other things crashed! :-P So I started inspecting the logs of each pod and noticed that the worker pods were getting a connection timeout when attempting to connect to the rethinkdb database. They also spit a warning that I might be using a too old version of rethinkdb and that only versions newer than 2.3.0 were supported. I immediately noticed that the rethinkdb container image I was using was 1.16.0_1 (https://console.cloud.google.com/gcr/images/google-containers/global/rethinkdb?project=google-containers) which is the newest image available on the Google Containers image registry.
So, I grabbed a Dockerfile rule for a newer rethinkdb image (2.3.5) and built it myself. Then I pushed it into my personal registry on GKE and changed the yaml service descriptor to use that image instead. After changing that, deleting the old-version containers and instantiating a new rethinkdb service/replication-controller on the cluster, I lost the ability to access the web-admin panel (it was working for the older version of rethinkdb, though).
I considered the possibility that perhaps there might be old persistent database data causing some sort of crash due to version incompatibilities between (1.16.0_1 and 2.3.5), but when inspecting the logs it looked like the server did boot up nicely and was readily waiting for connections from peers.
Anyway... out of an abundance of caution I decided to completely delete the cluster and create a new one, starting over from scratch just to be sure. Nice opportunity to validate my notes on that shell script!
The admin panel should be available on the public IP address/port http://<IP_ADDRESS>:8080/ (as it was with the older version of rethinkdb) but it silently refuses to load... See the kubectl get services output on the attached screenshot.
I'll rest now and I'll get back to it on Monday.
Happy Hacking,
Felipe Sanches

The dashboard is finally running on Google Container Engine!
Right now it is available at http://<IP_ADDRESS>/ and there's also a currently hidden panel at http://<IP_ADDRESS>/testsuite (but I may add a link to it on the main dashboard page).
I'll still have to find out how to setup a domain name for services running on specific containers. @davelab6 offered the fontbakery.com domain, which he owns, for us to use here, but I have not set up that yet.
Below are a few screenshots of the dashboard after 21 font-family repos were checked with fontbakery.

I have also reorganized the code-tree to host the files and Dockerfile rules for each container in a separate directory. Unfortunately, due https://github.com/docker/docker/issues/2745 the Dockerfile for the worker container could not be place in this organized tree, but needed to go in the root dir of the fontbakery repo so that it could add the check-ttf script into the container.

The job queue mechanism had a few bugs (I was forgetting to signal proper consumption of tasks). Additionally, sometimes I still see worker containers stuck either waiting for a new task or hanging for some yet unknown reason during fontbakery testsuite execution. This needs to be further inspected, because I was not yet able to understand why these get stuck.
I think this pull request can be merged and then I'll continue working on each of these individual issues that I mentioned above.

Yep merge and file issues so I can prioritize please
On Mar 8, 2017 9:45 PM, "Felipe Corrêa da Silva Sanches" <
<EMAIL_ADDRESS>wrote:

The job queue mechanism had a few bugs (I was forgetting to signal proper
consumption of tasks). Additionally, sometimes I still see worker
containers stuck either waiting for a new task or hanging for some yet
unknown reason during fontbakery testsuite execution. This needs to be
further inspected, because I was not yet able to understand why these get
stuck.
I think this pull request can be merged and then I'll continue working on
each of these individual issues that I mentioned above.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/googlefonts/fontbakery/pull/1209#issuecomment-285238534,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAP9yzkpAqOlSAGRz-IB5TXeRfuOBzh_ks5rj2e6gaJpZM4LyOy9
.


dart_ping requires 3.0.0 <4.0.0 but ours Dart SDK version is 2.18.6.

The current Dart SDK version is 2.18.6.
Because orderz depends on dart_ping >=9.0.0 which requires SDK version >=3.0.0 <4.0.0, version solving failed.
pub get failed (1; Because orderz depends on dart_ping >=9.0.0 which requires SDK version >=3.0.0 <4.0.0, version solving failed.)

The Dart SDK is currently on version 3.2.6 (https://dart.dev/get-dart/archive). Please upgrade your version from 2.18.6 to 3.2.6 using the command flutter upgrade.


"Brackette error messages are unclear on terminal"

"Whenever there is some type of error on challonge, the error messages are unclear on what exactly is going on, they are the same for the most part"

Ah, thanks for the info. I'll be sure to make the log messages more accurate.


EY review

Starting my review.
First change is the addition of a workflow summary print.

@jIskCoder can you please review?

Standardised comments and spacing a bit
Removed cleanup = true in the Milton profile.

cleanup = true removes resumability and is redundant on Milton, where VAST scratch is default and has automatic cleanup.

Added a completion message
fixed the csplit/gcsplit selection. It was the wrong way around.

Are you sure about csplit/gcsplit selection?
IT worked fine on Milton and I copied it from a tutorial, which I cannot find now :D

Found it https://www.nextflow.io/docs/latest/example.html

Are you sure about csplit/gcsplit selection? It worked fine on Milton and I copied it from a tutorial https://www.nextflow.io/docs/latest/example.html
@edoyango

sorry yep you're right. My mac has csplit not gcsplit, so not sure if the if else is needed. do you have csplit on your mac? Maybe we should exclude it?


animatedSingle behaviour

Hi, I've  just set up a little project using pixi.js 7.2.4 (to be precise) and v5.0.8 of @pixi/particle-emitter. I've been unable to get the animatedSingle behavior type to work. I am seeing correct results when trying to use textureSingle behavior type though. It could be my setup perhaps but I don't think that would explain the discrepancies I'm seeing.
For example:
                {
                    type: 'textureSingle',
                    config: {
                        texture: PIXI.Texture.from('coin-anim-01.png')
                    }
                },

The above works absolutely fine and I see exactly what I would expect. however:
                {
                    type: 'animatedSingle',
                    config: {
                        anim: {
                            framerate: 25,
                            loop: true,
                            textures: [
                                PIXI.Texture.from('coin-anim-01.png'),
                                PIXI.Texture.from('coin-anim-02.png'),
                                PIXI.Texture.from('coin-anim-03.png'),
                                PIXI.Texture.from('coin-anim-04.png'),
                                PIXI.Texture.from('coin-anim-05.png'),
                                PIXI.Texture.from('coin-anim-06.png')
                            ]
                        }
                    }
                },

This yields no particles at all visible on the screen when compared to the previous config. After having a quick look at your docs over here:
https://github.com/pixijs/particle-emitter/blob/d82acc7d920519fac3f4f55b7cb2b6236e31335e/src/behaviors/AnimatedTexture.ts#L212
I don't appear to be doing anything too far away from the ordinary. I've also tried using PIXI.Assets.get('coin-anim-01.png') which yielded similar results.
In addition to the above problem I have also noticed that whenever the particle emitter is running and I move the mouse within the PIXI canvas I get the following stack error:
currentTarget.isInteractive is not a function
TypeError: currentTarget.isInteractive is not a function
    at EventBoundary.hitTestMoveRecursive (http://localhost:8080/dist/main.js:15355:47)
    at EventBoundary.hitTestMoveRecursive (http://localhost:8080/dist/main.js:15337:32)
    at EventBoundary.hitTestMoveRecursive (http://localhost:8080/dist/main.js:15337:32)
    at EventBoundary.hitTestMoveRecursive (http://localhost:8080/dist/main.js:15337:32)
    at EventBoundary.hitTestMoveRecursive (http://localhost:8080/dist/main.js:15337:32)
    at EventBoundary.hitTestMoveRecursive (http://localhost:8080/dist/main.js:15337:32)
    at EventBoundary.hitTest (http://localhost:8080/dist/main.js:15274:34)
    at EventBoundary.createPointerEvent (http://localhost:8080/dist/main.js:15722:35)
    at EventBoundary.mapPointerMove (http://localhost:8080/dist/main.js:15477:20)
    at EventBoundary.mapEvent (http://localhost:8080/dist/main.js:15264:20)

After a quick search I came to here: https://github.com/pixijs/pixijs/issues/9380
However using the fix that Zyie suggested here: https://github.com/pixijs/pixijs/wiki/Upgrading-PixiJS
I have had no apparent change in results.

Would you be able to share your project for me to look at?

Hi @andrewstart i've made the project as a whole available here: https://github.com/BAUR0/ts-project

The isInteractive stuff I have no idea about, but probably stems from a similar issue that the Texture class that this library imports from @pixi/core isn't the same as the one exported by pixi.js - this was not the case in previous versions of pixi.js, as far as I know, and looking at the installed node modules doesn't seem to be an issue where everything got its own copy of the dependency - is it an issue with webpack?
If you are able to fix the interaction thing and the particle visibility is still a problem, a workaround of {texture: PIXI.Texture.from('coin-anim-01.png')} for each texture will do the trick.

Thanks for the workaround Andrew, I've put that into my project and the coins are animating now. It hasn't had any affect on the interactivity error coming from pixi.js. Do you plan to add support into @pixi/particle-emitter for the new way in which pixi.js is exporting its Textures?

PixiJS doesn't have a new way of exporting textures - your Typescript config combined with newer module features in Node/Webpack/etc were resulting in your imports of pixi.js pulling in the .js (CommonJS) version of the entire library while particle-emitter was pulling in the .mjs (ESModule) version of the dependencies it needed - thus the particle sprites were not configured with interaction, and if (x instanceof Texture) failed because everything was from different copies of the library.
Using these settings seems to fix it.
"module": "ES2022",
"moduleResolution": "NodeNext",
``` seems to fix it.

i have an issue similar to this when i use particle-emitter and an mouse event occur.
When i click in any area of the scene when the particles-emitter is running ... I get the error:
currentTarget.isInteractive is not a function
TypeError: currentTarget.isInteractive is not a function

I'm using<EMAIL_ADDRESS>and<EMAIL_ADDRESS>

Sounds like the same configuration issue, see above.


All-in-one docker container shows confusing logs

Requirement - what kind of business use case are you trying to solve?
The all-in-one image seems to start with an error, causing confusion
Problem - what in Jaeger blocks you from solving the requirement?
The error seems to be gRPC never announcing it comes back online after transient failure
Proposal - what do you suggest to solve the problem or improve the existing situation?
If the gRPC logs are fixable, i.e. there is some reason the READY is never printed, that can be re-shown.
Otherwise, starting the container-internal services in the correct order and/or making them wait for each other would solve the problem
$ docker run -it --rm --name jaeger \
  --net=host \
  jaegertracing/all-in-one:1.13 --log-level=debug
2019/09/11 09:41:44 maxprocs: Leaving GOMAXPROCS=4: CPU quota undefined
{"level":"info","ts":1568194904.9064102,"caller":"flags/service.go:115","msg":"Mounting metrics handler on admin server","route":"/metrics"}
{"level":"info","ts":1568194904.9066496,"caller":"flags/admin.go:108","msg":"Mounting health check on admin server","route":"/"}
{"level":"info","ts":1568194904.9067447,"caller":"flags/admin.go:114","msg":"Starting admin HTTP server","http-port":14269}
{"level":"info","ts":1568194904.9068332,"caller":"flags/admin.go:100","msg":"Admin server started","http-port":14269,"health-status":"unavailable"}
{"level":"info","ts":1568194904.910164,"caller":"memory/factory.go:55","msg":"Memory storage initialized","configuration":{"MaxTraces":0}}
{"level":"info","ts":1568194904.9103458,"caller":"static/strategy_store.go:79","msg":"No sampling strategies provided, using defaults"}
{"level":"info","ts":1568194904.9139445,"caller":"grpc/builder.go:75","msg":"Agent requested insecure grpc connection to collector(s)"}
{"level":"info","ts":1568194904.9140205,"caller":"grpc/clientconn.go:242","msg":"parsed scheme: \"\"","system":"grpc","grpc_log":true}
{"level":"info","ts":1568194904.9140964,"caller":"grpc/clientconn.go:248","msg":"scheme \"\" not registered, fallback to default scheme","system":"grpc","grpc_log":true}
{"level":"info","ts":1568194904.9141681,"caller":"grpc/resolver_conn_wrapper.go:113","msg":"ccResolverWrapper: sending update to cc: {[{<IP_ADDRESS>:14250 0  <nil>}] }","system":"grpc","grpc_log":true}
{"level":"info","ts":1568194904.914391,"caller":"base/balancer.go:76","msg":"base.baseBalancer: got new resolver state: {[{<IP_ADDRESS>:14250 0  <nil>}] }","system":"grpc","grpc_log":true}
{"level":"info","ts":1568194904.914446,"caller":"base/balancer.go:130","msg":"base.baseBalancer: handle SubConn state change: 0xc00030e080, CONNECTING","system":"grpc","grpc_log":true}
{"level":"info","ts":1568194904.9148405,"caller":"grpc/clientconn.go:1139","msg":"grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:14250 0  <nil>}. Err :connection error: desc = \"transport: Error while dialing dial tcp <IP_ADDRESS>:14250: connect: connection refused\". Reconnecting...","system":"grpc","grpc_log":true}
{"level":"info","ts":1568194904.9157476,"caller":"base/balancer.go:130","msg":"base.baseBalancer: handle SubConn state change: 0xc00030e080, TRANSIENT_FAILURE","system":"grpc","grpc_log":true}

See the last three lines above. See below for lack of READY from gRPC (i.e. it reconnected)
{"level":"info","ts":1568194904.9162838,"caller":"all-in-one/main.go:198","msg":"Starting agent"}
{"level":"info","ts":1568194904.9165218,"caller":"app/agent.go:68","msg":"Starting jaeger-agent HTTP server","http-port":5778}
{"level":"info","ts":1568194904.9227703,"caller":"all-in-one/main.go:241","msg":"Starting jaeger-collector TChannel server","port":14267}
{"level":"info","ts":1568194904.9228954,"caller":"grpcserver/grpc_server.go:64","msg":"Starting jaeger-collector gRPC server","grpc-port":"14250"}
{"level":"info","ts":1568194904.9230096,"caller":"all-in-one/main.go:259","msg":"Starting jaeger-collector HTTP server","http-port":14268}
{"level":"info","ts":1568194904.923073,"caller":"querysvc/query_service.go:130","msg":"Archive storage not created","reason":"archive storage not supported"}
{"level":"info","ts":1568194904.9238057,"caller":"all-in-one/main.go:341","msg":"Archive storage not initialized"}
{"level":"info","ts":1568194904.9246495,"caller":"healthcheck/handler.go:129","msg":"Health Check state change","status":"ready"}
{"level":"info","ts":1568194904.924709,"caller":"app/server.go:111","msg":"Starting HTTP server","port":16686}
{"level":"info","ts":1568194904.9247801,"caller":"app/server.go:124","msg":"Starting GRPC server","port":16686}
{"level":"info","ts":1568194904.924805,"caller":"app/server.go:134","msg":"Starting CMUX server","port":16686}

Side note: this occurs at least on 1.13, 1.14 and latest

cc @jpkrohling

For the all-in-one (which is the case here), we should be able to get around this by making sure things start in the right order.


[Snyk] Upgrade mongodb from 3.7.3 to 3.7.4

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade mongodb from 3.7.3 to 3.7.4.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 1 version ahead of your current version.
The recommended version was released a month ago, on 2023-06-21.

The recommended version fixes:

Severity
Issue
PriorityScore (*)
Exploit Maturity

Regular Expression Denial of Service (ReDoS) SNYK-JS-SEMVER-3247795
482/1000  Why? Proof of Concept exploit, CVSS 7.5
Proof of Concept

Regular Expression Denial of Service (ReDoS) SNYK-JS-SEMVER-3247795
482/1000  Why? Proof of Concept exploit, CVSS 7.5
Proof of Concept

Regular Expression Denial of Service (ReDoS) SNYK-JS-SEMVER-3247795
482/1000  Why? Proof of Concept exploit, CVSS 7.5
Proof of Concept

(*) Note that the real score may have changed since the PR was raised.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Check out a preview of your pull request here: https://alphasite-appservice-dev-pr-preview-1450723531.azurewebsites.net


Add showcase feature in the app for new users

Summary:
We can add showcase feature in our app to provide ease to new users.
Steps to reproduce:
Use Material Showcase view in the app to tell the user how to upload images and more
Link -https://github.com/deano2390/MaterialShowcaseView
What did you expect the App to do?
The app should have showcase/tooltip feature.
What did you see instead?
No showcase/tooltip feature is present.
Screen-shots:

Could you please write down above what features should be showcased?
Thanks!


Feed 404 causes LabelAlreadyExists error from the sdk when creating a label

If you have a config like:
state_machines:
  the_workflow:
    feeds:
      - name: jacquard
        url: http://localhost:1212/<label>
    states:
      - gate: choice
        triggers:
          - event: entry
        exit_condition: true
        next:
          type: context
          path: jacquard.has_option_b
          default: option_a
          destinations:
            - value: true
              state: option_b

      - gate: option_a
        exit_condition: false

      - gate: option_b
        exit_condition: false

which uses a feed in the exit of the first state, but that feed returns a 404 (likely because it's misconfigured, though that might also be a correct response), then the overall creation request will error with LabelAlreadyExists.

Note: I'm using the routemaster_sdk to access routemaster, so it's possible that this is a result of the automatic retries I have configured. If that's the case, then the issue is more likely that routemaster is erroring internally.

Update: the LabelAlreadyExists is indeed a result of the retrying I was doing. It looks like the label is indeed created fine, but then the processing of the first gate errors, which results in emitting a 500.
I think that in the config outlined above, this also means that the label becomes stuck as nothing will cause the gate to be re-evaluated.


Update nf-winsvc-createservicew.md

See #46. I think the convention is to only italicize variable names. The ServiceName should be changed to the actual name of the service, but NT SERVICE should not, so it seems we'd better not italicize NT SERVICE.

@xiaoyinl : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Thanks for your contribution @xiaoyinl.  I've merged your changes and they should be live soon.


Opportunity: log event creation errors and update message displayed to users

Support debugging by logging errors on event creation with the error from the DB. This also lifts the responsibility of the user to report the error to the maintainer.
Also update the error message, as the "meetup already exists" is now impossible because we dropped the uniqueness of name/date/location a while back.
This is related to #2186, where the file descriptor leak lead to bloated log files, a disk full and failed event creation by lack of space.

+1

Partial rewrite to use existing error logging and redirect it to stderr. The description has been updated accordingly.


double pointer skill

LinkedList

[x] 141. Linked List Cycle
[x] 142. Linked List Cycle II
[x] 160. Intersection of Two Linked Lists
[x] 19. Remove Nth Node From End of List
[x] 21. Merge Two Sorted Lists
[x] 23. Merge k Sorted Lists
[ ] 86. Partition List
[ ] 876. Middle of the Linked List

ArrayList

[ ] 167. Two Sum II - Input Array Is Sorted
[ ] 26. Remove Duplicates from Sorted Array
[ ] 27. Remove Element
[ ] 283. Move Zeroes
[ ] 344. Reverse String
[ ] 5. Longest Palindromic Substring
[ ] 83. Remove Duplicates from Sorted List

Cycle Detection: Floyd’s Algorithm

a > b & b > c  => a > c save  Merge Two Sorted Lists

a > b & b > c  => a > c saveMerge Two Sorted Lists


fix: reject leading ., ) without prefix as item marker

fix #5835

cc @anforowicz to also take a look

@ytmimi Could you take a look? Since the bug and fix are both very straightforward, and it's newly introduced.

@xxchan I'm traveling over the next few days, but I should have some time to review this early next week.

I haven't had a chance to look at this, but before merging, can we confirm this won't introduce a formatting diff (i.e. that this won't try to modify the output/result of a prior rustfmt run)?

can we confirm this won't introduce a formatting diff (i.e. that this won't try to modify the output/result of a prior rustfmt run)?

Yes, because it makes a condition triggering the fmt change more restrictive.

@calebcartwright I ran the diff check job before the rebase and it failed ❌ for the same reason I explained in https://github.com/rust-lang/rustfmt/pull/5853#issuecomment-1693609938.
I'm running the job again now that the branch has been rebased. I'm assuming we should be good now 🤞🏼, but I'll follow up once the job completes.

@xxchan the issue mentions that wrap_comments=true needs to be set in order to trigger the bug. Can you update your test cases with // rustfmt-wrap_comments: true, and could you also add a test case using a doc comment.

@xxchan thanks again for your help on this one!


Update release notes

Is your feature request related to a problem? Please provide an existing Issue # , or describe.
Updating release notes for 2.0.0-rc1.
Describe the solution you are proposing
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #199 (2422ccb) into 2.0 (0e732e7) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##                2.0     #199   +/-   ##
=========================================
  Coverage     71.77%   71.77%
  Complexity      367      367
=========================================
  Files            44       44
  Lines          2519     2519
  Branches        169      169
=========================================
  Hits           1808     1808
  Misses          598      598
  Partials        113      113

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 0e732e7...2422ccb. Read the comment docs.


How to see the operation effect on a specific picture？

How to see the operation effect on a specific picture？Is visualization possible？

Have you succeeded


chore: release 0.1.0

Here is a summary of this release.
0.1.0 (2024-02-11)
Features

Initial commit (35ae318)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/mathematic-inc/unfmt/releases/tag/v0.1.0 :sunflower:


OpenSTUtility - expose mints and redemptions

Expose certain mints/redemptions information.
Estimate: 2hrs

Resolved by #100.


Don't include pycore_lock.h when CYTHON_COMPILING_IN_CPYTHON_FREETHREADING

Describe your issue
The PyMutex API is public (in 3.13). I don't think Cython needs to include pycore_lock.h, which is intended to be an internal-only header.
https://github.com/cython/cython/blob/7ae676645185e934c6c61b62abdb626ee905049a/Cython/Utility/ModuleSetupCode.c#L2480-L2488

Yes - I think this can go. It was only added to make things work before PyMutex was made public


⚠ Bofrost.at has degraded performance

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

HTTP code: 200
Response time: 1645 ms

Resolved: Bofrost.at performance has improved in dca1a7f after 5 minutes.


Icon for Actions

I think this exclamation icon could be a better option to the action icon

are these icons from SUCC?

are these icons from SUCC?

They are at:
icons/sundries/books

featured: https://github.com/mrcomac/enhancedcombathud-swade/releases/tag/0.0.8


[SwiftLanguageRuntime] Don't throw away a valid type already resolved.

The logic here was backwards, so we ended up not displaying the value
correctly. This is another step towards a saner and more reliable
dynamic type resolution in the debugger. More to come!
rdar://problem/36256619

@swift-ci test and merge

In the example here:
  let myWhy : Int
   init(input : T)
   {
     myWhy = input.why  // Break here and print input
     myWhy = input.why //%self.expect('expr -d run -- input', substrs=['a.ShouldBeWhy', 'isa = a.ShouldBeWhy', 'before_why =<PHONE_NUMBER>', 'why = 10'])
                       //%self.expect('expr -d run -- input', substrs=['a.ShouldBeWhy', 'isa = a.ShouldBeWhy', 'before_why =<PHONE_NUMBER>', 'why = 10'])
   }
 }

The result of p input was a crash in expression evaluation and frame var input returned
(T) 0x0fffffffff

We still don't get class constrained protocol quite right, but that needs compiler modifications I'm going to tackle next.

@jimingham addressed your comments.

@swift-ci test and merge

@swift-ci test and merge

@swift-ci test and merge

Excellent, thanks!


The Fade function does not exist in Raylib.cs

I expect this code is missing in the Raylib.cs file
    [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
    public static extern Color Fade(Color color, float alpha);

I recently updated the bindings to 3.5.0 and there have been a lot of changes.
In this case, the Fade function has been renamed to ColorAlpha.
// Returns color with alpha applied, alpha goes from 0.0f to 1.0f
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern Color ColorAlpha(Color color, float alpha);

@ChrisDill I think I kept the Fade() function... mmmh... did I remove it?

[textures] RENAMED: Fade() to ColorAlpha(), added #define for compatibility

In the source code the define is commented out.
//#define Fade(c, a)  ColorAlpha(c, a)

However both Fade and ColorAlpha functions can be found in textures.c and they both do the same thing.
@Ambez05 If it helps I can add a compatibility function that calls ColorAlpha.
// Returns color with alpha applied, alpha goes from 0.0f to 1.0f
// NOTE: Added for compatability with previous versions
public static Color Fade(Color color, float alpha) => ColorAlpha(color, alpha);


Update ExampleCharacterController.cs with autowalk

I changed a bit the ExampleCharacterController.cs so the player can use the trigger to walk around the map

I love the concept of walking by holding the trigger down but I don't think it belongs in the demo scene. The purpose of the demo scene is to lay out the entire Cardboard Controls+ API as obviously as possible. Not only does a moving character controller complicate the presentation but the trigger events are already showcased. You also seem to be explaining the magnet events for the base Cardboard SDK which I would rather leave to their documentation.
If you uploaded a project that used CC+ to implement this sort of movement, I would gladly link to it as a design example of the things CC+ enables. As it stands however, I don't think these changes improve the documentation of CC+ as an SDK.


[SPARK-14803][SQL][Optimizer] A bug in EliminateSerialization rule in Catalyst Optimizer.

What changes were proposed in this pull request?
This PR fixes a bug in EliminateSerialization rule in Catalyst Optimizer. When there is a SerializeFromObject and DeserializeToObject pair with equal inputObjectType and outputObjectType, the pair will be eliminated and replaced by a Project operator. However, when the involved object type is Row, there will be a codegen compilation error, because UnsafeProjection does not support Row.
How was this patch tested?
Unit tests.

@cloud-fan

Test build #56535 has started for PR 12575 at commit cf11a75.

It sounds like you miss the test case. : ) Please add one into EliminateSerializationSuite

Test build #56535 has finished for PR 12575 at commit cf11a75.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/56535/
Test FAILed.

Can you add a test case to expose this bug?
And I think a better way to fix this bug is to remove the alias only project, but not stop the optimization.

I changed the code as follows:
    case d @ DeserializeToObject(_, _, s: SerializeFromObject)
        if d.outputObjectType == s.inputObjectType =>
           // A workaround for SPARK-14803. Remove this after it is fixed.
        if (!d.outputObjectType.isInstanceOf[ObjectType]) {
          // Adds an extra Project here, to preserve the output expr id of `DeserializeToObject`.
          val objAttr = Alias(s.child.output.head, "obj")(exprId = d.output.head.exprId)
          Project(objAttr :: Nil, s.child)
        } else {
          s.child
        }

This works for my cases.
Does "preserve the output expr id of DeserializeToObject." really matter?
@cloud-fan

It do matters, we can't change a plan's output while transforming it. And your change breaks most of the optimizable cases this rule can handle. This rule tries to eleminate object serialization and you filter out all ObjectType...

OK. I will study optimizer and try to have a better fix.

It looks like this issue has been resolved via #12926. @sun-rui, could you close this pull request? Thanks!


Add UdpSocket::from_socket

I want the ability to create an async-std::net::UdpSocket from a std::net::UpdSocket. Specifically I want create a socket with SO_REUSEADDR and SO_REUSEPORT enabled via net2 and then pass that socket into async-std::net::UdpSocket.
Something like this should work I think?
async fn from_socket(socket: std::net::UdpSocket) -> async_std::io::Result<UdpSocket> {
        match mio::net::UdpSocket::from_socket(socket) {
            Ok(mio_socket) => {
                return Ok( UdpSocket {
                    watcher:Watcher::new(mio_socket),
                } )
            }
           _ => //Error handling
        }
    }

Never mind you implemented From and I missed it.


NIFI-2901: Comment out hadoop.version overrides for vendor profiles

See Jira for impetus and discussion

Merging