Create mod compatibility

Whenever i try to load in the changed mod with Create, it always crashes, is this a bug for everyone or am i forgetting something?

Are you using optifine?

Are you using optifine?

No

Is there a log or something like that?

Is there a log or something like that?

The missing model error is not debatable with the crash log. It only happens because an error happened that didn't crash the game (bad mod loading state). This may be because a different mod has a bad fml version. You need to send the logs/latest.log right after it crashed.

As for how I could fix this error in the future (or rather give a better crash log), I'll be digging into the renderer registry code.

I'm having similar issues with Optifine...

Do I need to make a new issue or could it fall under here?

You send me the crash log and I either know why.

well here's the thing, it didn't make a crash log, which is weird imo. I also tested with JUST optifine and this mod, still got the crash...

Also Create isn't crashing for me, which is extremely weird.(Then again I'm using v0.13.1)

I was wondering what modules you have installed?

Well I disabled any other mods I had, and was able to confirm that Optifine is what's crashing my game.

And it's not generating a crash log either, still don't know why.

What is the version of Optifine?

I've installed it with Optifine before, but it doesn't seem to crash!

This version might work?
optifine.zip

What is the version of Optifine?

Well I'm using the latest version of 1.18.2's optifine so...

Did what I sent you work?

Don't use optifine, please use embeddium/rubidium and oculus. Optifine is only good for vanilla Minecraft, it sucks at being compatible with mods.

Optifine in latest versions of minecraft is also useless - it is breaking mods, making really low performance gain, changing the code of the game in unknown way, is closed source project... It's good for minecraft 1.12.2 or lower i think, but for 1.18.2 i'd recommend embeddium and other mods for performance which are mostly compatible with anything. In minecraft 1.20.1 or later optifine crashes the game itself without any other mods as i heard.

This crash is typically from a missing dependency or a bad mod/mod loader version. The given error is terrible at explaining this. What actually causes this error, is the mod loading environment is "Cowardly refusing to send event FMLCommonSetupEvent to a broken mod state".
The order of events is as follows:

EntityRenderersEvent.RegisterLayerDefinitions is sent to event listeners
EntityRenderersEvent.RegisterRenderers is sent to event listeners
Somewhere a check fails, and events sent afterwards are refused
FMLCommonSetupEvent is sent to event listeners

The layer definitions were registered on the FMLCommonSetupEvent, thus causing the definition to be missing when the event is never sent. I have fixed the layer definition code to now listen to EntityRenderersEvent.RegisterLayerDefinitions in eed8db6c66c66dcd12a5b8a7f1d34b6202cc6338. While this wont fix the incompatibilities that are present when loading, but the mod loader will be able to provide a more accurate report.
Currently the best fix for users experiencing this issue, is to validate that Minecraft will launch without Changed in their modpack.


key_name encoding for ListBucketResult

This PR addresses issue localstack/localstack#6098, where is shown that ListBucketResult should url encode the names of the keys. Also for list_objects_v2 the EncodingType attribute must be readed and returned in the xml response (v1 does the same but doesn't affect boto3 behavior).
Changes:

key_name is url encoded for ListBucketResult and ListBucketResultV2.
EncodingType is read from the query string and returned accordingly.
Test that validates the correct handling of key_names with weird characters.

@tsiq-rob thanks for the comment, I'm going to make a new PR that makes the Key name being encoded only if the encoding-type=url


Any disconnect reliability issues with MqttClient

So far all of the client applications that I've written with MqttClient have been netcoreapp2.0 running as services on IoT like devices.  Works great.
Today I've squandered a solid 8 hours trying to get the same MqttClient code working in a WPF (.net 4.6 or 4.71) app.
Generally the Disconnect event never fires when the network connection is disabled.  No problem getting the Disconnected event when calling DisconnectAsync (or StopAsyc. I've been working with both Client and ManagedClient). The issue is that it's not detecting the network failures.
Also I've noticed that there seems to be a number of ConnectedClient objects in the server which never get cleaned up.  I believe this is also related to a failure to handle the client side network failure.
I have a minimalist WPF app (at the office) that I can put in a repo somewhere if somebody is curious.
I've really loved working with this library, both on the broker side, as well as the client, well except for today's client.

I've added the minimalist WPF app https://github.com/rshillington/MqttNetWPFClientSample.git
This thing just connects to ws://broker.hivemq.com:8000/mqtt and mimics the sample at http://mitsuruog.github.io/what-mqtt/
In this sample app I've added a "WatchDog" timer that watches the IsConnected flag and reports when that flag becomes false.  What's bizarre is the flag turns false right on time, ~15 seconds after I pull the plug, yet the disconnected event doesn't fire.  Also there are a set of Exception Thrown messages in the Debug.Output window, again right on time ~15 seconds after pulling the plug on the network connection.
Exception thrown: 'MQTTnet.Exceptions.MqttCommunicationTimedOutException' in MQTTnet.dll
Exception thrown: 'MQTTnet.Exceptions.MqttCommunicationTimedOutException' in mscorlib.dll
Exception thrown: 'MQTTnet.Exceptions.MqttCommunicationTimedOutException' in MQTTnet.dll
Exception thrown: 'MQTTnet.Exceptions.MqttCommunicationTimedOutException' in mscorlib.dll
Exception thrown: 'MQTTnet.Exceptions.MqttCommunicationTimedOutException' in mscorlib.dll
Exception thrown: 'System.Threading.Tasks.TaskCanceledException' in mscorlib.dll
[etc  --- there are quite a few more of these]

Disconnect event works in version 2.7.2 but does not work in version 2.7.3.

Wow --- thanks for that tip.  I'm curious to see in the change sets what happened to break that bit of functionality.

Thank you for reporting the issue. I found a dead lock in the disconnect method in 2.7.3. I will release 2.7.4 soon.
Regarding the connected clients in the server. This is by design at the moment. There is no ways to manage the sessions. They will live forever at the moment (without blocking a lot of memory. Only meta data is stored). But the plan for a future release is to allow injection of a custom session manager. Then you can remove sessions with your own logic etc.

Looks like the disconnect issue is sorted out.  AWESOME.
The idea if injecting a custom session manager is great, and would certainly streamline things for me.  When that's ready I'll test it right away.

OK I will let you know 👍


Should we collapse patient and pregnancy objects?

Thanks for creating an issue! Please fill out this form so we can be sure to have all the information we need, and to minimize back and forth.

What are we trying to do?
Simplify our object model, potentially collapsing patient and pregnancy.

What feature or behavior is this required for?
Writing simpler code!

How could we solve this issue? (Not knowing is okay!)
Quick history lesson: When we originally worked this out we were planning on patients connecting to pregnancies with an embeds_many instead of the current embeds one, but I ratcheted that back before the initial deployment in September. The original reasoning was that DCAF is pretty interested in what people who seek our services multiple times look like, but we've since worked our way around that by deciding to just archive and scramble patients when we're done with them and create entirely new patient objects to represent new pregnancies.

I figured at the time it was better to separate things out rather than have a monolithic patient object, so we deployed with that and I think we've all been kind of paying for that mistake ever since. I think fulfillments are a bit different since not everybody has them, but every patient we log has a pregnancy.
The potential gains here are:

one object to keep track of and report on instead of two
way easier to filter and report on, and write code against
simplified object model (no more 'so what's under pregnancy and what's under patient?')

The potential drawbacks are:

bulkier core object might be doing too much

Anything else?
I'm interested in thoughts from the team on this idea. In particular, would this make our object model easier to understand, explain, or write code against?

I poked at this just for funsies tonight and am now convinced it's a good idea -- I think we haven't really touched Patient or Pregnancy except to bolt on new stuff, and this gives us a chance to do a clean refactor.


Suggestions for GP chapter non-code figures

The following two figures are low-resolution. It may be easy to just redraw them in a vector drawing web service like draw.io

The following two figures look fairly big (in terms of fonts) compared to text in the book. Perhaps, just scaling them down in LaTeX may improve the visual appeal.

fixed


first stab at restructuring Paket.Core project

to leverage Folder Structure

Created a Files and Parsers folders, moved few modules there
had to move NugetPackage record (which is very simple) out of PackagesConfigFile

Failure related to downloading dotnet-core preview 4, any idea @forki?

yeah I think @enricosada wanted to look at that.


V2 Public Release Update

So things are rather hectic right now, and I was hoping to get V2 out of beta by the beginning of March - but it's having to get pushed back a couple of days / weeks.
We have a rough roadmap of what needs to be done for the next couple of minor versions (that pesky second digit), but actually need to sit down and work out some exact requirements.
Right now V2.1.0 (the first non-beta) is being held up largely by me and the sequence rewrite. The future sequence code will look very similar to CSS animations - for instance the old "callout.bounce" effect now looks like this:
"bounce": {
	"duration": 1000,
	"0%,20%,53%,80%,100%": {
		transform: ["translate3d(0,0,0)", "easeOutCubic"]
	},
	"40%,43%": {
		transform: ["translate3d(0,-30px,0)", "easeInQuint"]
	},
	"70%": {
		transform: ["translate3d(0,-15px,0)", "easeInQuint"]
	},
	"90%": {
		transform: "translate3d(0,-4px,0)"
	}
}

When addressing multiple elements that need different animations, the value would be an array instead of an object - with them cycling through the elements (so the element would get the index % array.length'nth animation).
The duration listed (and any "easing" if there too) are defaults that can be overridden when calling the animation.
Finally - you'll be able to pre-register the animation with a name for later use, or pass the animation directly (with a few caveats that are still being decided) - so you can manually design things without polluting the namespace.
Calling the animations is still to be decided, but I'm likely to have "callout.bounce" to have it reset any values when finished and "transition.bounce" would leave them at the end values, together with "runSequence.bounce" that would effectively mean the same as "transition". For all of them the name of the animation can be after a dot, or as a separate argument following it (it's one of many standards we're trying to lock down in V2).

Just thought I should put an update on here. I'm seriously busy with normal work and social activities (I run various things etc), so I don't have enough time to do what I need to for polishing the release.
However.
Currently I'm trying to fight packaging bugs and inconsistencies caused by swapping to RollupJS (I may have to just go back to Webpack, which isn't ideal for use-cases). The code itself is almost all correct, with just the UI-Pack data needing to be split back into its own file (currently it's part of the main build, and velocity-ui.js is actually not doing anything at all except complaining).
The code itself looks like it's about right except for any bugs that I might be able to squash (check the rollup branch, as there are fixes on there). If anyone wants to  have a look at getting it to work then feel free :-)
Sequences are now completely done, as above, but no prefix needed or wanted (they may come later).
As soon as building is done we'll be good for packaging, and then it simply needs the docs merged and updated (from the wiki) and public non-beta version released... Hopefully within a couple of weeks (I had hoped for the start of this month, but I'm away for the next couple of days again, and don't have enough time...)

We have a new live beta version - 2.0.3 - and I'll try to do what I can for documentation over the next day.
RollupJS was a pain - had to do some nasty tricks in the end (like installing itself as a local package - meaning any time you run "npm install" it's got to have run an odd number of total times or it'll fail to build anything) - but it does work well enough apart from that. Could probably make things a little bit nicer looking, but that's not as important for building - having it working is the important bit!
Anyone who wants to see how much work was involved should feel free to have a look at the merge that came in - https://github.com/julianshapiro/velocity/commit/128e49833a2fc4d0e992751f2d318cd1678deea3 - there are some things I can't do (like automatically creating a single typedef file), but ~6k lines added and a further ~20k lines changed may give some explination as to why it's taken two months to get here - not to mention that I've really not had very much time to work on it in any given week.
My next steps are getting the documentation updated and into a usable state (ie, need to build from wiki / markdown to flat HTML so we can get an updated technical website), and having a quick look at any of the bugs with JSFiddles that I can try to track down and fix.

2.0.5 is now out, and things are getting very close to a release.
The documentation (wiki) needs to be convertible to a static html file - ideally something that looks like FlatDoc due to the example sidebar - but that project hasn't been touched in years so may have to roll something semi-custom.
My final bit of code in the main TODO is adding the rest of the options that will support it as per-element option callbacks - not everything will get it, but hopefully enough for people ;-)
Expect a final release before the end of the month!!!

Maybe https://github.com/mkdocs/mkdocs for docs. There are also good themes like mkdocs-material.

@makshh Looks good - except that I want this to be a node project, and that requires a separate python install for it, otherwise I'll remember that for other things - currently looking at a combination of octonode for grabbing the GitHub wiki pages, and various markdown converters, with a custom theme :-)

Hi, any news about the 2.0 release? ;)

Retiring this in favour of #927


type error

/usr/local/lib/python3.6/dist-packages/bert/model.py:80 call  *
    output           = self.encoders_layer(embedding_output, mask=mask, training=training)
/usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py:1030 __call__  **
    self._maybe_build(inputs)
/usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py:2659 _maybe_build
    self.build(input_shapes)  # pylint:disable=not-callable
/usr/local/lib/python3.6/dist-packages/bert/transformer.py:209 build
    self.input_spec = keras.layers.InputSpec(shape=input_shape)
/usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py:2777 __setattr__
    super(tf.__internal__.tracking.AutoTrackable, self).__setattr__(name, value)  # pylint: disable=bad-super-call
/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/tracking/base.py:530 _method_wrapper
    result = method(self, *args, **kwargs)
/usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py:1297 input_spec
    'Got: {}'.format(v))

TypeError: Layer input_spec must be an instance of InputSpec. Got: InputSpec(shape=(None, 128, 768), ndim=3)

This is cause by mix usage of tensorflow.python.keras and tensorflow.keras, when i replace all tensorflow.python.keras by tensorflow.keras, it work.

I got it to work by following @czf1009 advice.
This is what I did:

I cloned the latest versions of this repos into my virtual environment (venv) lib/python3.8/site-packages folder

bert-for-tf2
params-flow
params-py

(I believe these can be cloned to a local folder as well)

I modified the following files on the bert (bert-for-tf2) repo

transformer.py
*attention.py

Where it says "from tensorflow.python import keras" replaced by "from tensorflow import keras"
3)To remove some warnings , I pip installed gast==0.3.3 and abs-py=1.0.0
Hope it helps!

Created https://github.com/kpe/bert-for-tf2/pull/94 with the solution from @lgalant

Thanks everybody,
#94 helped me.
TL;DR

in file {venv}/lib/python3.X/site-packages/bert/transformer.py
from tensorflow.python import keras

to
from tensorflow import keras

in file {venv}/lib/python3.X/site-packages/bert/attention.py
from tensorflow.python import keras
from tensorflow.python.keras import backend as K

to
from tensorflow import keras
from tensorflow.keras import backend as K


Guide on UI customisation

I would like to customise the user interface to change colours and fonts and so on. I also want to put each entry / posting into a sort-of "card". I'm not able to figure out where the frontend code might be. It looks like the UI is completely implemented in J Javascript. I also tried searching for the CSS styles that I might be able to adapt to my liking.
Any guidelines on how to customise the UI would be very helpful. Thank you for this wonderful project.

Thank you for the comment :) Until I have time to properly document this, maybe will help get you started. Let me know if anything is unclear.
The frontend for the blog is written using Django templates, so it's all rendered on the server. They're located in the apps/templates/public directory.
Each post type can be modified by editing the corresponding template in apps/templates/public/entry/. The detail variable can be used to change rendering on a list page vs a detail page.
Tanzawa uses tailwind for the css, so you'll need to replace remove / add class names on the elements within the templates for now.
The easiest way to add a custom style sheet would be to add a head block to public/index.html.
Something like:
{% block "head" %}
<link href="{% static '/custom.css' %}" rel="stylesheet">
{% endblock %}

And then place your custom.css file in the static directory. You may need to restart the server for Django to find it. If you're Tanzawa in production with gunicorn, you'll need to run the manage.py collectstatic to gather the css file.
I'd like to add support for custom themes at some point in the future.
Lastly, while I don't foresee huge changes to the templates soon, when I do modify them you may run into merge conflicts when you update. Probably not an issue yet, but something to be aware of.

I'd donate to you for a theme decoupling. This is high on my list! :)

I appreciate the sentiment 😃. It's not money that's preventing me, it's time.
I've been thinking about how to handle theming for Tanzawa properly. It's a big task, but not impossible. There's 2 different ways to think of theming: 1) css only changes theme support, 2) complete theme support (i.e. colors and layout). The move from css only changes wouldn't be much less work than allowing full customization.
Roughly here's what I think would be required:
Extract all mentions of tailwind colors from [templates/public](https://github.com/jamesvandyne/tanzawa/tree/main/apps/templates/public) (e.g. bg-negroni-700 ) and replace them with a common name – perhaps role based?
Create a record / setting somewhere ( django-admin?) to track the active theme.
Create a custom template loader (or other shim) that will prioritize rendering with the selected theme's public themes.
Set Tanzawa to only include the css of the selected theme.
Document how to make a custom theme.

Theming isn't my top priority, but it's not low either. If anyone is interested helping before I have a chance to get to it, I'm happy to answer questions / provide direction and so forth.

A yaml or json file that then generates CSS automatically -- meaning the underlying does have to be custom classes -- is something that I think is a good, low-effort step.
What are your thoughts on that as a first step?

@hirusi Oh, I like that idea a lot.
I'm not super familiar with webpack / tailwind (just the minimum to get this running, really). Do you have a feeling of how it could be implemented or what changes would be required?

Oh! Tailwind! We could just have a guide linked to on creating Tailwind presets. That's a almost-no-effort start on customizing UI. We'd need some docs on how the UI has been thought of.
Layout would be far trickier.

Started on theme support in https://github.com/jamesvandyne/tanzawa/pull/150 but I am running into errors compiling the css. I think those errors may be a tailwind bug, rather than a configuration issue, but not sure.

@abhas @hirusi I've merged support for making themes in Tanzawa and documented it here. I'm going to close this issue. If you find theme support lacking or notice any bugs, please do open a new issue or submit a PR. 🙌


Change text color of Icons + Placeholder text

Is it possible to change the color of Icons (search and (X)) and placeholder text right now? You can change the color of pretty much everything else.

Will look into it

Hey @iRoachie! Thanks for a great component. Any chance this ever got looked at?

I looked at it but I think it’s a limitation of UISearchBar. The other apps that do it natively actually are a UITextfield that is using the UISearchBar Delegate. Eventually I will point persons to a fully javascript version of this that works the same way allowing more customization

Oh, you plan on removing the native code?

Not sure of the plan as yet, but it’s definitely easier to accomplish changes like this in JavaScript.


triggerName is part of Prometheus metrics

Signed-off-by: Zbynek Roubalik<EMAIL_ADDRESS>Reverting part of the implementation done in #3650. Internally reuses ScalerConfig for the triggerName, also the name is visible in Prometheus metrics under label scaler.
Also checking uniqueness of triggerName in a ScaledObject.

Checklist

[x] Commits are signed with Developer Certificate of Origin (DCO - learn more)
[x] Tests have been added

Relates to #3650 #3588

/run-e2e

/run-e2e prometheus*

/run-e2e prometheus*

There is a panic in metrics server https://github.com/kedacore/keda/actions/runs/3420244235/jobs/5694956817#step:7:968

/run-e2e kafka*

/run-e2e prometheus*


Problem when pulling image from ECR

Yesterday I managed to get our image into ECR and changed the yaml files to pull it from there instead of docker hub.
Something seems to have gone wrong with the pull. Could you guys please investigate and advise if this is a bug or pebcak?
$ kubectl.exe get pods --all-namespaces
NAMESPACE                   NAME                                         READY     STATUS             RESTARTS   AGE
docker                      compose-74649b4db6-mbg59                     1/1       Running            0          22h
docker                      compose-api-7c7bb4995b-bvq4v                 1/1       Running            0          22h
kube-system                 etcd-docker-for-desktop                      1/1       Running            20         18d
kube-system                 kube-apiserver-docker-for-desktop            1/1       Running            27         18d
kube-system                 kube-controller-manager-docker-for-desktop   1/1       Running            27         18d
kube-system                 kube-dns-86f4d74b45-dlvjt                    3/3       Running            67         18d
kube-system                 kube-proxy-9qskz                             1/1       Running            20         18d
kube-system                 kube-scheduler-docker-for-desktop            1/1       Running            26         18d

Problem child >>nedbank-dfl-email-routing   emailrouting-fb789b47f-695jt                 0/1       ImagePullBackOff   0          1m<<<<<

nedbank-dfl-email-routing   emailrouting-mysql-6b9656f999-p8jxm          1/1       Running            0          1m
Regards
Albert

Howzit Albert, sounds like stock k8s fun.
Use $ kubectl desribe pod <pod> for more info on why the pull is failing.

Fixed? Can we close?


Minor improvements

@thomasrepnik Hi, is there global option for config? after this update i have to set the prefix and postfix for all projects manually and it's quite painful

Thank you for the nice plugin by the way

Hi @ShindongLee
Thank you very much for commenting.
Before this update is was not possible to save the plugin settings (this was especially annoying if you were not using the default settings, and had to reconfigure the plugin after every restart). Therefore i added the ability to save the current configuration.
Sadly Jetbrains has IMHO the worst user experience regarding global and project settings (and it's a shame they are aware of it since years, but not improving it). A lot of plugins only can save the settings per project. Adding global settings beneath of project specific settings is something Jetbrains should support. This is something i am waiting for since years. Therefore i encourage you to add a comment in this issue: https://youtrack.jetbrains.com/issue/IDEA-221422
This is exactly what you are requesting 🙂
Thank you very much for using my plugin 🙏


ansible-lint 6.x fixes

All tasks must be named
Task names must start with uppercase letter
Fix jinja spacing
Use changed_when: false for some shell/command tasks
other fixes

[citest]


Add HIP-869: Dynamic Address Book

Problem
The Dynamic Address Book will change the currently manually administered address book for Hedera into an HAPI managed configuration, updatable via signed Hedera transactions on a daily basis without the need to restart the consensus nodes to apply changes across the network.
Dynamic Address Book - Feature Summary

HAPI APIs to facilitate changes to the address book used across the Hedera network
Automated daily updates to node consensus weighting and SDK service requests
NMT integration to automate required configuration changes resulting from address book changes

Hedera Improvement Proposal

https://hips.hedera.com/hip/hip-869

Hedera Protobufs

https://github.com/hashgraph/hedera-protobufs/pull/346

https://github.com/hashgraph/hedera-protobufs/pull/370

https://github.com/hashgraph/hedera-protobufs/pull/361
https://github.com/hashgraph/hedera-protobufs/pull/380

New APIs

[ ] #352
[ ] #353
[ ] #354
[ ] #358

Update APIs
New RequestTypes to HederaFunctionality

NODE_CREATE
NODE_DELETE
NODE_UPDATE

Endpoint

[ ] #355

TransactionReceipt

[ ] #356

Test Plan
Example
Solution
TBD
Alternatives
No response

An admin key field was added to NodeCreateTransaction and NodeUpdateTransaction.
Protobufs:

[x] https://github.com/hashgraph/hedera-protobufs/pull/380


Fixed a typo in tutorial05

'light' doesn't make much sense instead it should be 'right'.
I am not sure if that is intentional to test readers.

It's correct as is. The meaning is like using a flashlight to illuminate a problem in the darkness.

Yeah, it does make sense now to think about it this way. Sorry for disturbance. Anyways, want to say really loved the tutorials, thanks for Django :)


bringing down the high memory usage

As a result from #47 the program uses way to much memory (up to 18x the input size)
The target is to bring this usage down to around 2x-3x and also avoid memory spikes

The memory usage was taken down.
The program does also run slightly faster.
The exact numbers will come out soon.
But the memory usage is still 4x-5x not quite the target of 2x-3x
to get to the target we have to change the API in a way that it does not return the values between the operation like the encrypted values or the dataheader etc.
We can simply do that because the user does not care about these things.
But removing the return values will lead to issues when unittesting the program.
But we can find a solution for that (e.g. friend unittest classes that can be deleted in release mode)

The memory usage does no longer depend on the hash algorithm
for small (1MB) we get now

3,5MB (down from 18MB) peak and
1,2MB average additional memory usage
1,2-3,5x (down from 18x)
for medium (50MB) we get now
103MB (down from 883MB) peak and
60MB average additional memory usage
1,2-2x (down from 17,7x)
for large (1GB) we get now
2,1GB (down from 14,25GB) peak and
1,55GB average additional memory usage
1,55-2,1x (down from 14,25x)

This is a good result and it lies in out target range from 2-3x. The average is very low with 1,2 - 1,5x

The memory usage does no longer depend on the hash algorithm
for small (1MB) we get now

3,5MB (down from 18MB) peak and
1,2MB average additional memory usage
1,2-3,5x (down from 18x)
for medium (50MB) we get now
103MB (down from 883MB) peak and
60MB average additional memory usage
1,2-2x (down from 17,7x)
for large (1GB) we get now
2,1GB (down from 14,25GB) peak and
1,55GB average additional memory usage
1,55-2,1x (down from 14,25x)

This is a good result and it lies in out target range from 2-3x. The average is very low with 1,2 - 1,5x

the results are sufficient for now.
We have to work on the dataheader because it lacks structure


proposal  .thenCatch()

Problem
Let's consider the following snippet:
myPromise.then(normalFlow).catch(KnownError, recoverLogic)

to be more specific: we have the following signatures
myPromise: Promise<string>
normalFlow: (result: string) => number
recoverLogic: (reason: KnownError) => number

Unfortunately catch will catch KnownError in both cases:

when KnownError was thrown in myPromise
when KnownError was thrown in normalFlow

However, I don't want that my recoverLogic would be applied to the later case. I'm ready to handle KnownError only from myPromise not from normalFlow.
Reordering of then and catch doesn't work because
myPromise.catch(KnownError, recoverLogic).then(normalFlow)

is irrelevant: normalFlow and recoverLogic should be mutually exclusive, meantime, here we see that if recoverLogic will produce a successful result (number) it will be passed into normalFlow, (which expects string).
Solution
Of course we can write
myPromise.then(normalFlow, function(e) {
    if (e instanceof KnownError) {
        return recoverFlow(e);
    } else {
        throw e;
    }
});

Sadly, this solution completely discards all the benefits of the bluebird's error filters/predicates.
Proposal
introduce the following enhanced form of then
myPromise.thenCatch(normalFlow, KnownError, recoverFlow)

with the following usage:
.thenCatch(
   [Function fulfilledHandler]
   [[, Function ErrorClass|Function predicate...] , Function rejectedHandler ]
) -> Promise

It's implementation is straightforward since all parts are already implemented in Bluebird.
The next snippet is a slightly modified copy of the Promise.prototype.caught:
Promise.prototype.thenCatch = function(fulfilled, rejected) {
    var len = arguments.length;
    if (len > 2) {
        var catchInstances = new Array(len - 2),
            j = 0,
            i;
        for (i = 1; i < len - 1; ++i) {
            var item = arguments[i];
            if (util.isObject(item)) {
                catchInstances[j++] = item;
            } else {
                return apiRejection("expecting an object but got " + util.classString(item));
            }
        }
        catchInstances.length = j;
        rejected = arguments[i];
        return this.then(fulfilled, catchFilter(catchInstances, rejected, this));
    }
    return this.then(fulfilled, rejected);
};

IMHO, it should be an official form of then without any special name like thenCatch

Or maybe it's worth to publish a catchFilter functionality via static Promise.catch e.g
myPromise.then(normalFlow, Promise.catch(KnownError, recoverLogic))

With the following usage:
Promise.catch([Function ErrorClass|Function predicate...] , Function rejectedHandler) -> Function

This is tightly related to the standalone catch typing problem that we've discussed with @benjamingr in #589

I actually like the second idea of passing a Promise.catch in, and I understand the use case although personally I get around it by always throwing specialized errors so that errors wouldn't be caught by the handler following normalFlow (for example a network error) - but I see why this might arise.
@petkaantonov ?

Frankly I think this is a ridiculous corner case - so you have specialized error type that could be thrown from multiple places but need to catch it only if it's not thrown from some specific then handler? really?

function request(url, retries){
     if(retries === 0) throw new NetworkError("Failed to fetch url", url);
     return webRequest(url).catch(NetworkError, request.bind(url, retries -1));
};

// I only want to handle requests for the token API and not request
request(url).then(function(res){
     return request("someApi?token=" + res.token);
}).catch(NetworkError, function(err){
     authService.report("InvalidToken");
     authService.generateNewTokenInBackground().catch(function(){});
     throw new AuthenticationError("Invalid Token");
});

@petkaantonov
Just want to drop a few words about my context.
I'm refactoring a huge legacy project (project age = 2 years) that was built on top of the JQueryPromises (facepalm) before I've joined to the project. I'm responsible for converting as much logic as possible to the Promises/A+. I know all the aspects of the semantics of both JQueryPromises and A+ and it is really a challenge.
During several months, I've performed an exhaustive flow analysis and isolated parts that can't be rewritten. For the rest of the code I've chosen the best existing Promises/A+ implementation namely Bluebird.
Unfortunately, there are few such corner cases in the existing projects. Meanwhile, features requested here are neither completely new nor radical, and in ideal, fully-orthogonal implementation they should be already there.
I can't rewrite the project from the scratch, so I'm trying to find an incremental approach. And this particular feature would be nice to have.
Of course, I'm trying to introduce normal classes for the exceptions. But at this iteration they are too generic yet. Like @benjamingr said: ServerError, UpdateConflictError, NotFoundError, UnauthorizedError that are simple wrappers for the underlying http error codes and are descendants from the HttpError.
Btw, code that @benjamingr has shown almost exactly matches for one of our use-cases.
That is why this proposal has born.

@Artazor it's worth mentioning that you can extend bluebird from the outside just fine. I wouldn't worry about conflicts, if you can use symbols (which, jQuery implies you probably can't) you can do it through a symbol, otherwise you can just put stuff on the prototype. By the way the cancellation proposal is still open :) (hint hint)

@benjamingr

you can extend bluebird from the outside just fine

I already do -)
I've already implemented it as a static Promise.cath as you pointed.

By the way, the cancellation proposal is still open :) (hint hint)

-))) Sorry, my Promise to update the #565 is not cancelled. It's just pending!
I have an enormous amount of work, directly related to promises (arrrgggghhhh). However, it is vital to me to get the best possible cancellation semantics since our project is going to use it.

@petkaantonov

Frankly I think this is a ridiculous corner case - so you have specialized error type that could be thrown from multiple places but need to catch it only if it's not thrown from some specific then handler? really?

I know that
async Task<ApiResult> apiCall() {
    try {
        var token = await request<string>(authUrl);
        try {
            return await request<ApiResult>("someApi?token=" + token);
        } catch (NetworkError e) {
            throw new ApiError(e);
        }
    } catch (NetworkError e) {
       throw new AuthError(e);
    }
}

actually should be refactored into:
async Task<string> getAuthToken() {
   try {
      return await request<string>(authUrl);
   } catch (NetwokError e) {
      throw new AuthError(e);
   }
}

async Task<ApiResult> apiCall() {
    var token = await getAuthToken();
    try {
         return await request<ApiResult>("someApi?token=" + token);
    } catch (NetworkError e) {
         throw new ApiError(e);
    }
}

However, I think that promises as a technology should be pattern agnostic. It should simply bring a consistent exception handling and composition for asynchronous operations. So every try/catch pattern should be reproducible with promises.
I suspect that we have different priorities. For me
Orthogonality > Forcing right patterns
This belief is based on my experience that
External Orthogonality === Internal Consistency
and lack of orthogonality is the symptom of having hacks under the hood that may lead to unexpected results in edge cases.
IMHO -)


Update guide for new reviewers

Summarizing the job of a PR reviewer

Steve commented in email. Seems good enough to merge this draft -- can be tweaked later as needed


Add section indicator in top nav

Staged at https://20190226t111129-dot-polymer-lit-html.appspot.com/guide/getting-started
Fixes #723

On the API page the header links still have hover-over underlines:

Fixed (underline on hover was coming from the TypeDoc stylesheet).

Awesome. LGTM

Promoted staging version.


fix(readme): adds section about Git LFS

Why
We have introduced Git LFS to manage large files (such as bundles) easily. We missed, however, the description in the README on how to enable it, as it's not an integral part of the default git installation. Without that, all tests which rely on the bundles are failing, because bundles are just LFS pointers.
Description
Updates README with the required section
Checklist

[x] I followed the contribution guidelines.
[ ] I created an issue and used it in the commit message.
[x] I have built the project locally prior to submission with mvn clean install.
[x] I kept a clean commit log (no unnecessary commits, no merge commits).
[x] I am happy with my contribution.

AFAIK Git LFS is used only in booster-catalog-service (See https://github.com/fabric8-launcher/launcher-booster-catalog-service/blob/master/.gitattributes). We haven't updated backend to use that (yet)

I got confused trying to help @tinakurian. I found however, that you actually had a PR here too #151 :D

Fired PR to the other repo though https://github.com/fabric8-launcher/launcher-booster-catalog-service/pull/71

We reverted the git lfs because CICO doesn't support it. Closing it


Make a tool that returns a TargetPixelFile object given a set of images and a cutout position/size

We should have a tool that can cut out a region from an arbitrary list of standard FITS images and return a TPF.  This would enable lightkurve to be used with data from any telescope, or e.g. the k2superstamp data set (@amcody may already have code to do this).
This function can likely use AstroPy's astropy.nddata.utils.Cutout2D function.
Example use:
images = os.listdir('k2superstamp/m67/*.fits')
tpf = TPFCreator(images=images, position=(x,y), size=10)

I started working on this.

This was added in 1.0.beta via the KeplerLightCurve.from_fits_images() method.


Spell Check Completed

Thank you @AugustLeo1999 for your PR!
Since we want to keep the mistakes for other participants to work on, we wouldn't be merging this PR. Hope the practice was good nevertheless :)


ctr: add ctr snapshot view

Would be useful for https://github.com/containerd/containerd/issues/1368
Signed-off-by: Akihiro Suda<EMAIL_ADDRESS>

Codecov Report

Merging #1369 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1369   +/-   ##
=======================================
  Coverage   36.32%   36.32%
=======================================
  Files          23       23
  Lines        2882     2882
=======================================
  Hits         1047     1047
  Misses       1600     1600
  Partials      235      235

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 4703b99...e03ecd3. Read the comment docs.

LGTM


BUG: TextField is squashed when creating a category

Describe the bug
When creating a category, on small devices there is a chance the TextField gets pushed behind the NavigationTitle
To Reproduce
Steps to reproduce the behavior:

Click on the leading button to create a new Category
Tap on the TextField so your Keyboard pops up

Expected behavior
There are two ways to solve this (or others, but those are the two I thought of):
Either you wrap the icons into a ScrollView, so on small devices the user simply scrolls down to the other icons.
Or the space between the icons is reduced.
Screenshots

ble, add screenshots to help explain your problem
https://user-images.githubusercontent.com/81184358/146808803-23875f7a-8dbf-4281-ad0f-4ddf1819732b.mov
Smartphone (please complete the following information):

Device: [iPhone 13 mini, iPhone 13 mini simulator]
- This bug appears only on "mini" devices (12 and 13) as far as I could tell
OS: [iOS 15]
App Version [v.1.1 (current Dev branch)]

Additional context
I would tend towards option one, as it is way more scalable and will work when adding more icons or even smaller devices, while two is just a temporary fix.

I would like to work on this issue.

When I had tried this on my simulator I saw this also happened on iPhone 13


Exposed scene_tree's "_update_font_oversampling" method in GDScript

This commit expose scene_tree's "_update_font_oversampling" method in GDScript, fixing issues with custom scaling implementations and font oversampling.
I required a pixel perfect solution for my game, where I can only scale the game in perfect multiples of the base size (1x,2x,3x,4x, etc) and celeste style HD font rendering (font oversampling).
Reading the documentation, there is a recommendation for the integer resolution handler plugin:

Godot currently doesn't have a way to enforce integer scaling when using the 2d or viewport stretch mode, which means pixel art may look bad if the final window size is not a multiple of the base window size. To fix this, use an add-on such as the Integer Resolution Handler.

That plugin replicates the godot internal scaling found in gdscript scene_tree with the exception of the "_update_font_oversampling" line because the method isn't available in GDScript. This plugin uses "STRETCH_MODE_DISABLED" + "STRETCH_ASPECT_IGNORE" flags scaling the base resolution in floored screen values (1x,2x,3x, etc).
Because of this limitation, that plugin misses the font oversampling support, only available for "STRETCH_MODE_2D" using an internal scaling formula not compatible with all custom implementations.
With this commit the user can call in that plugin:
get_tree().update_font_oversampling(scale)
And have full font oversampling support in any stretch mode.
Bugsquad edit: Implements / closes https://github.com/godotengine/godot-proposals/issues/3325

I suppose apps like Pixelorama and Material Maker will benefit from this PR too.

You need to add documentation for the exposed method. See https://docs.godotengine.org/en/latest/community/contributing/updating_the_class_reference.html
And if this is exposed, I would rename the C++ method to remove the _ prefix, which is used for private/unexposed methods.

You need to add documentation for the exposed method. See docs.godotengine.org/en/latest/community/contributing/updating_the_class_reference.html
And if this is exposed, I would rename the C++ method to remove the _ prefix, which is used for private/unexposed methods.

Still pending.

Please squash the commits together, see PR workflow.

I force pushed an update to fix the style of the added documentation codeblock which didn't match the GDScript style guide.
While at it I also added more details about what font oversampling is, as it's something which is severely underdocumented right now (could still use more work).
But while reviewing SceneTree code, I wondered if exposing _update_font_oversampling actually makes sense as done here. It seems that currently SceneTree calculates the font oversampling dynamically based on viewport size, and this method is only used to propagate the change to fonts. Any call to _update_root_rect will reset this ratio to a dynamically calculated one, so the fonts will see their ratio change several times in a row.
So I'm not sure this is a good solution. If font oversampling is intended to be configurable, it should probably be exposed differently (e.g. set_custom_font_oversampling_ratio, which sets a member variable that will be used in _update_root_rect if defined.
CC @bruvzg @Calinou

So I'm not sure this is a good solution. If font oversampling is intended to be configurable, it should probably be exposed differently (e.g. set_custom_font_oversampling_ratio, which sets a member variable that will be used in _update_root_rect if defined.

Probably it's better to add a new oversampling property to the DynamicFontData, in the same way it works in master (if set to -1 use global, dynamically calculated oversampling, otherwise use user value).

#55718 - oversampling override property.

Superseded by #55718.


future-proof realized_fees

Currently, we have a query
realized_fees as (
    select
        concat(
            to_char('{{StartTime}}'::timestamptz, 'YYYY-MM-DD'),
            ' to ',
            to_char('{{EndTime}}'::timestamptz - interval '1 day', 'YYYY-MM-DD')
        ) as accounting_period,
        sum(atoms_bought) / 10^18 as realized_fees_eth
    from gnosis_protocol_v2."trades"
    where trader in (
        select address
        from gnosis_protocol_v2."view_solvers"
        where name = 'Withdraw'
    )
    and block_time >= '{{StartTime}}'
    and block_time < '{{EndTime}}'
)

This has the hidden assumption that withdraw accounts only trade against weth, i.e. "atoms_bought" are WETH.
In order to make the query future-proof for accidental other trades, we might wanna add a where statement that checks that the tokens bought are either weth or ETH.

Actually this query already covers that case as you will notice there is nothing specific to the token being purchased.

I believe we decided this was not necessary since realized fees are not evaluated as part of the reimbursement (but merely for informational purposes).


Show subjects as for teachers

Task linked: CU-869303u6k Show students subjects

Task linked: CU-869303u6k Show students subjects


Go modules migration

Govendor is not maintained anymore and is hard to work with, about time to use go modules as they become of standard use after golang 1.13

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

@Rockycc Please review this PR to migrate from govendor to gomod.

I see no travis file, where do u run the integration tests?


unable to trigger blueprint with Refdiff plugin

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
Getting error
error triggering blueprint Wraps: (2) empty plan Error types: (1) *hintdetail.withDetail (2) *errors.errorString
What do you expect to happen
Data enrichment on the data collected from bitbucket
How to reproduce
Use the gitextractor to collect details from bitbucket server and run refdiff
Anything else
None
Version
v0.19.0-beta3
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Advanced Mode?
Check plan make sure it is not empty

Thank you @klesh ! I was able to make it work by combining gitextractor and refdiff into subtasks in a single pipeline. However, I'm unbale to see data in the pr_requests table.
My intent was to use the refdiff in place of bitbucket connector. Since we have a bitbucket server, I'm unable to use the delivered connector.
Is there a workaround, so that I'm able to generate the PR metrics?

@FTNJAYABA gitextractor is for collecting git meta data, like commits, branches, tags, etc, and refdiff calculates commits that a commit ahead of another one. Both of them do not collect or produce Pull Request data.
The Pull Request belongs to and are stored  on the Platform (github/gitlab/bitbucket, etc.) instead of the git repository itself which mean you gonna need a Dedicated Data Source Plugin to collect PRs.
Good new is that a good fellow had contributed such a pluign via

That sounds promising. Shall await the release. Thanks for helping @klesh in such a quick turnaround!


Movie Recommender System

Using the production server, we are conducting a data science project in hopes of building a working movie recommendation system

The objective of our system is to predict the genres of some movies that we don't know their exact genres, by using some other features of those movies, like posters or overview. Then we recommend such predicted movies to different users according to the users preference table.
To build our system, our collaborated project mainly consists of three steps.

collect movie image dataset and text dataset separately, build the users preference table by analyzing the relationship of different tables in the text dataset, and save the users preference table
we separately build two models for parallel prediction. Andrew build the text classification model  and train it with text dataset, Make build the image classification model and train it with image dataset. After training, we both save our trained models on disk
we load the trained models, we use our respective model to predict genres on test movies, then we load the users preference table in step1, we look up the preference table, and recommend the predicted movies to users who like them. This is our respective recommendation results, finally we combine our results by hash join to get the comprehensive results

step1-use the text dataset to build users preference table and save the outputs file

step2-Make- build CNN model for image classification in pytorch environment and save the trained model

step3-predict test movies with trained model and recommend them to different users, then combine our results

For my text classification model, I focused in the overview feature, which contained a brief description of the specific movie. I first performed some aggregation and combined the relevant dataframes into one. Using a Python UDF operator I performed some basic text cleaning, in order to make the overview column more adaptable for the machine learning model. Next, I wrote a script for the genre classification, using a logistic regression model. For my output table, I displayed the f1-score and precision of my model. One limitation I faced was the ability to transfer model into another workflow, which we settled by saving the model to disk.

Thanks for the awesome usecase! We will archive this issue now. The workflows and data files are archived on texera account project.


Feature/network experiment

Initial work for the network experiment. Main functionality:

We can create network latency between a specific application and one or more of its dependencies (internal or external to the cluster).
The experiment uses CRI-O runtime. To use with Docker, it should work also as long as the docker.sock. file is mounted instead
Since we use the node runtime, we need to deploy the runner on the same node as the target. This needs to be configured in the chaosengine in the appropriate places.
The user needs to create a configmap with the dependencies of the application. The format is included in an example.
At the moment we are able to create latency using netem. More can be included.

Considerations:

The user needs to ensure that the runner has the needed privileges (NET_ADMIN, hostPID, etc) as this is a very privileged experiment
The configmap needs to be created by the user
If the target application has more than 1 pods running on different nodes, a chaosengine object needs to be created for each node

More documentation can be found in the experiments folder. And of course room for many improvements :)

Thanks Andreas!! This is a super-useful PR.


Newbie question

Hey guys
Few questions ...

can i see somewhere some stats , like ... connections, messages, etc ?
if i do 10 nodes and a balancer in front, do those 10 nodes will have to connect to 1 redis "instance" or cluster ?
did anyone used this with lots of connections ? We have like 3000 connections and up to 40M messages / day with pusher. Any idea how many servers do i need to handle that ? And what specs ( i assume mostly RAM ? )
pusher has a limit on 100 users for presence channels. Is that limit present here as well ?

Regarding installation, i was able to install it very easy, configured nginx for SSL termination, and all just work MAGICALLY :) I'm loving this !
Thanks guys.

@stevegraham , if there's a way we can chat via skype or something so i can show you some interesting stuff, that would be awesome.
Here's what's happening now: i got 8 instances running on 1 box with 8 CPU ( just so i can maximize the CPU on that box ), and nginx ( haproxy ) in front to send requests to both API and WS. They connect to redis which is on another box.
Now, once i connect with 2 clients on 1 presence channel, i start seeing some weird issues.
On pusher:subscribe, the sending_frames from slanger return some wrong data.
Example: 2 people in the room. If 1 refresh,  once he get's the pusher_internal:subscription_succeeded, instead of getting count:2 , he get's count 1. Right after that, he receives the pusher_internal:member_added call ( with his details ), but that should not be the case.
I think if you can somehow jump on a call with me, i would be able to show you everything in a few minutes, so you can better understand my scenarios.
Thanks !

Hey @raulp
I'm also trying to run a similar setup. We have 6000+ connections and 20M messages per day. We're still on Pusher but trying to move to Slanger.

I forked Slanger and added a few API endpoints to get a list of occupied channels, connections count per channel and the connection ids (users) per channel. (https://github.com/manishval/slanger/commit/b4a6c176fc2c69509a796d5e0b50a745f2504e19)

Yes, you will need 1 Redis instance which all your nodes connect to. As all connection sessions are stored in Redis.

From what little testing I have done, it seems like Slanger is going to be CPU intensive.

We use presence channels on Pusher and we have had over 2000+ connections on presence channels. So I don't think there is a limit.

Since we have similar goals, it would be great if you want to collaborate in using Slanger.

Hey @manishval
Thanks for the input :)

i will definitely take a look at that, and probably @stevegraham or @markburns  will pull that in so we can all benefit from it
that's fine :) the problem is ... as explained before, in a multi node setup, after connecting and subscribing to a channel, i would not get the right number of people, and members.me was null. That is almost fixed, @markburns is working on it.
it will be CPU intensive for sending lots of messages between lots of users. That's why cluster is needed. Also, my tests showed that it's gonna use 1 CPU mostly. So what i did, was setup on a 8 CPU server, 6 slanger instances .And with haproxy in front, i should be able to use all the CPU. I might go down to 4 instances. I just need to see this setup LIVE with real connections / messages for our case.
pusher DOES have a limit, but, not sure if it's enforced. https://pusher.com/docs/client_api_guide/client_presence_channels
"Presence channels have some limits associated with them: 100 members maximum, 1KB limit for user object, and maximum 128 characters for user id."

@manishval i see you added a route for ping, so your LB's can check the health:) Nice
I see you changed a few things, added WebHooks. That's awesome. I think you should get in touch with @stevegraham and the guys and maybe submit a PR so they can update as well
Also, wondering how did you test your presence channels and what's your setup and why you never saw the error i'm seeing ...

@raulp I'm using slanger to power a multi-user chat using presence channels. And I haven't encountered the error you got.
Today, I did get into another issue:
system library:fopen:Too many open files:bss_file.c:398:fopen('/etc/ssl/certs/server.key', 'r')
Have you ran into this problem as yet?
On linux there is a limit on how many files you can open at a give time, and that's 1024. But if you have enough privileges you can have EventMachine increase that limit using:
EM.set_descriptor_table_size(10000)

This is something that needs to be take into consideration for the next version.

@raulp How are you running multiple instances? Are you doing it through Ruby via Threads?

Weird , will love yo know how you'd set it up and did not got errors
For the SSL error, make sure your open files limit is set high enough, in /etc/security/limits.conf and sysctl.
#add this to sysctl.conf
fs.file-max = 50000

#add these to /etc/security/limits.conf
* - nofile 50000
* - nproc 50000

Also, i don't use SSL with slanger, i do SSL termination on the balancer. So the socket and API's are always unencrypted :)
If you wanna share the way you have it setup, that would be cool.
Also, how many connections are you handling now with Slanger ? And how many messages ?

The way i have it setup is: haproxy as balancer and SSL termination and multiple slanger instances running on different ports ( ws and api ) connected to 1 redis instance. They currently run in screen

@raulp if you're on Skype you can add me, same username. :)

@manishval req sent

@manishval - if you could separate out the commits into a PR and add some tests for the endpoints that would be good.
I think once we get this bug replicated, tested and fixed, we should have a reasonable example setup with haproxy and multiple nodes to go in the examples.
As for setting max open files: that doesn't sound like something slanger should ever do itself. But we'd appreciate anything you'd like to add to the documentation to help people get setup

@markburns i created a PR with the server stuff and a simple haproxy config.
If @manishval submits one with the API's, i'll change the way haproxy checks :) currently it's trying to check for the 404 image to get a 200 status :)

@markburns and @raulp I will add some tests and create a PR. Thanks!

Changed the title of this to reflect the main issue I want to deal with.
@manishval if you wish to open a new PR/Issue for the other stuff, feel free

@raulp
Hi guys, our team is new and we've inherited a Slanger system recently. We are encountering the issue highlighted by @manishval where the presence channel doesn't seem to register members.me consistently.
We're still trying to wrap our heads around the full implementation here but hopefully you can shed light on the cause and potential solutions of this issue? I read that a fix was expected but cannot find any reference to a PR other than this issue.
Help would be much appreciated,
Thanks!


Quest/G6PD - Save control mode test results as Questionnaire Responses

Save control mode test results as Questionnaire Responses

[x] 1. Add Device ID to control test questionnaire  - https://fhir.labs.smartregister.org/fhir/Questionnaire/14222
[x] 2. Add landing page to view previous test results , once you click on control mode and Add New Test button
[x] 3. Extract as save QuestionnaireResponses for Control mode tests
[x] 4. View Previous calibration test results

Sample Screenshots
Take note :

Sample landing page  (copied from normal test page) initiated via the control mode button on bottom nav
We can reuse the fragment and only view Control mode test with previous results

Add Test Page

Acceptance criteria
On previous results show

Line 1 : Device ID :0009  | Calibration : Calibrated / Not Calibrated
Line 2 : G6PD : 5 Hb : 8 |  Control mode : 1/ 2

Update  - 8th Feb 2022

Remove questionnaire from experimental mode
Make edits CQL statement and not linked to any subject

We may need to only save the questionnaire response, will check impact on syncing QR all the time

Add a the QR to be able to sync and view previous test results given that its not linked to any subject

CQL Runner online is not able to understand and parse QuestionnaireResponse, probably due to the reason that its very old  (5 yrs) and does not support it. The code however works with following CQL. An issue is converting the DecimalType toString not working which needs to be figured out. If that`s done the rest is to create UI.
//Declare name and version of lib
library ControlTest version '1'

//FHIR as a data model and version of FHIR
using FHIR version '4.0.1'

//functions to help FHIR vs CQL primitives
include "FHIRHelpers" version '4.0.1' called FHIRHelpers

//System declarations  : Codable concept codes systems
codesystem "SNOMED": 'http://snomed.info/sct'
codesystem "ONA": 'http://fhir.ona.io'

//Code used as identifers
code "G6PD code": '86859003' from "SNOMED" display 'G6PD Enzyme'
code "Haemoglobin code": '259695003' from "SNOMED" display 'Haemoglobin'
code "g6pdResultTypeCode": '000001' from "ONA" display 'G6PD Result Type'
code "g6pdControl1": '410680006' from "SNOMED" display 'Control-mode 1'
code "g6pdControl2": '405358009' from "SNOMED" display 'Control-mode 2'

define "QR" : Last([QuestionnaireResponse] H)

define "Control1Obs": "QR".item.where(linkId='result_type').answer.value ~ "g6pdControl1"

define "Control2Obs": "QR".item.where(linkId='result_type').answer.value ~  "g6pdControl2"

define "HaemoglobinObs": "QR".item.where(linkId='haemoglobin').answer.value

define "G6PDObs": "QR".item.where(linkId='g6pd').answer.value

define "G6PD Value": "G6PDObs"+''
define "Haemoglobin Value": "HaemoglobinObs"+''

define "G6PD Normal":
    if "Control1Obs" is not null and "G6PDObs" between 0.0 and 3.0
    	then true
    else if "Control2Obs" is not null and "G6PDObs" between 6.0 and 10.0
    	then true
    else false

define "G6PD Conclusion":
    if "Control1Obs" is not null and "G6PD Normal"
    	then 'Value ('+ "G6PD Value"+') is in Normal G6PD Range 0-3'
    else if "Control2Obs" is not null and "G6PD Normal"
    	then 'Value ('+ "G6PD Value"+') is in Normal G6PD Range 6-12'
    else 'Value('+"G6PD Value"+') is Non Deterministic G6PD result'

define "Haemoglobin Normal":
    if "Control1Obs" is not null and "HaemoglobinObs" between 8.0 and 12.0
    	then true
    else if "Control2Obs" is not null and "HaemoglobinObs" between 13.0 and 17.0
    	then true
    else false

define "Haemoglobin Conclusion":
    if "Control1Obs" is not null and "Haemoglobin Normal"
    	then 'Value ('+ "Haemoglobin Value"+') is in Normal Haemoglobin Range 8-12'
    else if "Control2Obs" is not null and "Haemoglobin Normal"
    	then 'Value ('+ "Haemoglobin Value"+') is in Normal Haemoglobin Range 13-17'
    else 'Value('+"Haemoglobin Value"+') is Non Deterministic Haemoglobin result'

define "Conclusion":
  if "G6PD Normal" and "Haemoglobin Normal" then 'Correct result'
  else 'Invalid result'

define "Conclusion Details": '\nDetails:\n'+ "G6PD Conclusion" + '\n' + "Haemoglobin Conclusion"

define "OUTPUT": List { "Conclusion" , "Conclusion Details"}

Finally CQL below is working and 100% equivalent to current working version. The issue with ToString seems to be weird and I could not find a reason why converting it to decimal made it work. I think we should get in touch people who have developed CQL to make it better as we are aiming to make it usable by non-developers but some of the current challenges require a lot more than a developer
//Declare name and version of lib
library ControlTest version '1'

//FHIR as a data model and version of FHIR
using FHIR version '4.0.1'

//functions to help FHIR vs CQL primitives
include "FHIRHelpers" version '4.0.1' called FHIRHelpers

//System declarations  : Codable concept codes systems
codesystem "SNOMED": 'http://snomed.info/sct'

//Code used as identifers
code "g6pdControl1": '410680006' from "SNOMED" display 'Control-mode 1'
code "g6pdControl2": '405358009' from "SNOMED" display 'Control-mode 2'

define "QR" : Last([QuestionnaireResponse] H)

define "Control1Obs": "QR".item.where(linkId='result_type').answer.value ~ "g6pdControl1"

define "Control2Obs": "QR".item.where(linkId='result_type').answer.value ~  "g6pdControl2"

define "HaemoglobinObs": "QR".item.where(linkId='haemoglobin').answer.first().value

define "G6PDObs": "QR".item.where(linkId='g6pd').answer.first().value

define "G6PDTemp": decimal {value: "G6PDObs".value}
define "G6PDValue": ToString("G6PDTemp")
define "HaemoglobinTemp": decimal {value: "HaemoglobinObs".value}
define "HaemoglobinValue": ToString("HaemoglobinTemp")

define "G6PD Normal":
    if "Control1Obs" is not null and "G6PDObs" between 0.0 and 3.0
    	then true
    else if "Control2Obs" is not null and "G6PDObs" between 6.0 and 10.0
    	then true
    else false

define "G6PD Conclusion":
    if "Control1Obs" is not null and "G6PD Normal"
    	then 'Value ('+ "G6PDValue"+') is in Normal G6PD Range 0-3'
    else if "Control2Obs" is not null and "G6PD Normal"
    	then 'Value ('+ "G6PDValue"+') is in Normal G6PD Range 6-12'
    else 'Value('+"G6PDValue"+') is Non Deterministic G6PD result'

define "Haemoglobin Normal":
    if "Control1Obs" is not null and "HaemoglobinObs" between 8.0 and 12.0
    	then true
    else if "Control2Obs" is not null and "HaemoglobinObs" between 13.0 and 17.0
    	then true
    else false

define "Haemoglobin Conclusion":
    if "Control1Obs" is not null and "Haemoglobin Normal"
    	then 'Value ('+ "HaemoglobinValue"+') is in Normal Haemoglobin Range 8-12'
    else if "Control2Obs" is not null and "Haemoglobin Normal"
    	then 'Value ('+ "HaemoglobinValue"+') is in Normal Haemoglobin Range 13-17'
    else 'Value('+"HaemoglobinValue"+') is Non Deterministic Haemoglobin result'

define "Conclusion":
  if "G6PD Normal" and "Haemoglobin Normal" then 'Correct result'
  else 'Invalid result'

define "Conclusion Details": '\nDetails:\n'+ "G6PD Conclusion" + '\n' + "Haemoglobin Conclusion"

define "OUTPUT": List { "Conclusion" , "Conclusion Details"}

Hi Maimoona - thanks for sharing this.  Can we share this with Brynn? I think this is important feedback.

Yeah that would be great.
Some problems or confusions we had on CQL are

No direct mapping of CQL/FHIR types. We had to use myVal: decimal {value: 3.0}  instead of myVal: 3.0. Sample CQL
FHIR inner static classes can not be initialized so we had to add a class to let CQL handle it explicitly. Sample CQL. We have added an extension to R4FHIRModelResolver to accomplish this.
CQL Runner  is very helpful but a very old version of CQL and does not recognize Now(), and QuestionnaireResponse. The CQL here does not work on this IDE but works on code. I am not sure if Bryn can address this one.
Related to point # 1 . Since FHIR Types are not recognized I had to us

define "G6PDTemp": decimal {value: "G6PDObs".value} // G6PDObs=DecimalType
define "G6PDValue": ToString("G6PDTemp")

instead of
define "G6PDValue": ToString("G6PDObs".value)
// OR
define "G6PDValue": ToString("G6PDObs")

Let’s share these on fhir chat tulip
On Mon, Feb 14, 2022 at 3:13 AM maimoonak @.***> wrote:

Yeah that would be great.
Some problems or confusions we had on CQL are

No direct mapping of CQL/FHIR types. We had to use myVal: decimal
{value: 3.0} instead of myVal: 3.0. Sample CQL
https://github.com/opensrp/fhircore/blob/main/android/quest/src/test/resources/cql/pq-medication/cql.txt#L112
FHIR inner static classes can not be initialized so we had to add a
class to let CQL handle it explicitly. Sample CQL
https://github.com/opensrp/fhircore/blob/main/android/quest/src/test/resources/cql/pq-medication/cql.txt#L112.
We have added an extension to R4FHIRModelResolver
https://github.com/opensrp/fhircore/blob/main/android/engine/src/main/java/org/smartregister/fhircore/engine/cql/R4FhirModelResolverExt.kt
to accomplish this.
CQL Runner https://cql-runner.dataphoria.org/ is very helpful but
a very old version of CQL and does not recognize Now(), and
QuestionnaireResponse. The CQL here
https://github.com/opensrp/fhircore/blob/main/android/quest/src/test/resources/cql/control-test/cql.txt
does not work on this IDE but works on code. I am not sure if Bryn can
address this one.
Related to point # 1 . Since FHIR Types are not recognized I had to
us

define "G6PDTemp": decimal {value: "G6PDObs".value} // G6PDObs=DecimalType
define "G6PDValue": ToString("G6PDTemp")
instead of
define "G6PDValue": ToString("G6PDObs".value)
// OR
define "G6PDValue": ToString("G6PDObs")
—
Reply to this email directly, view it on GitHub
https://github.com/opensrp/fhircore/issues/1033#issuecomment-1038779484,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAOEQPX2R7ZYKODH3UULTTU3C2T3ANCNFSM5NZ4WOIA
.
You are receiving this because you commented.Message ID:
@.***>

@maimoonak I think lets's remove the view more from the Control mode Previous test list view


[Edge Computing] Solving Database Re-Platforming Challenge with Adaptive Data Virtualization

Proposed title of article
Solving Database Re-Platforming Challenge with Adaptive Data Virtualization
Proposed article introduction
One of the fundamental problems facing enterprises needing to take advantage of cloud technologies is how to move their databases to the cloud without rewriting the entire application stack. Typically, conventional database re-platforming projects can take several years and cost many millions besides being risk-prone.
Adaptive Data Virtualization (ADV) technology solves the problem of migrating to cloud data warehouses effectively and at a fraction of the cost of other approaches. The ADV approach enables database or data warehouse applications—originally developed for a specific database or data warehouse on-premises—to run instantly and natively in the cloud, without requiring modifications to the applications.
Key takeaways

What does database re-platforming entail.
The problem of application rewriting in database migrations.
Adaptive data virtualization for seamless data visualization.
Adaptive data virtualization vs conventional migration

Article quality
This article is in-depth and covers a rarely talked about topic of adaptive data virtualization and its application to solving data migration challenges.
References
Please list links to any published content/research that you intend to use to support/guide this article.
N/A

Sounds like a helpful topic - let's please be sure it adds value beyond what is in any official docs and/or what is covered in other blog sites. (the articles should go beyond a basic explanation - and it is always best to reference any EngEd article and build upon it). @Greggmun
Please be attentive to grammar/readability and make sure that you put your article through a thorough editing review prior to submitting it for final approval. (There are some great free tools that we reference in EngEd resources.)
ANY ARTICLE SUBMITTED WITH GLARING ERRORS WILL BE IMMEDIATELY CLOSED.
Please be sure to double-check that it does not overlap with any existing EngEd articles, articles on other blog sites, or any incoming EngEd topic suggestions (if you haven't already) to avoid any potential article closure, please reference any relevant EngEd articles in yours. - Approved


Add BooleanLiteral type

Adds a BooleanLiteral type.
PR contains no tests but it is successful in solving some type unification problems I had.
At present this PR leads to test failures in existing tests for string functions (e.g. endswith) that I do not understand. - Especially since these test do seem to pass on the majority of platforms.
If additional tests specifically for BooleanLiteral are required, I will need help. I cannot figure out how to write the tests in TestBranchPrune.  In particular what arguments I need to pass to assert_prune in what circumstances is a mystery to me. I can write tests that somehow test OK by fiddling with the arguments but I have no idea what I am doing. - Which is probably not the best approach to writing tests...

Thanks for the PR.

At present this PR leads to test failures in existing tests for string functions (e.g. endswith) that I do not understand. - Especially since these test do seem to pass on the majority of platforms.

Numba's test suite is huge, each CI configuration runs:

Unittests in files that have changed according to git diff
A slice of the whole test suite (the whole test suite gets run as a sum of all the slices).

Numba's test suite is huge, each CI configuration runs:
1. Unittests in files that have changed according to `git diff`

2. A slice of the whole test suite (the whole test suite gets run as a sum of all the slices).

Thanks, that explains a lot. With this, I will try digging around once more to see if I can find the problem I am creating...

@stuartarchibald I worked on this a bit and I suspect the test failure could be due to a casting issue. But to be sure, I could use some help to understand the numba casting machinery.
In the failing test there is a comparison of the type Boolean[True] is BooleanLiteral[True]. But currently the only casting I am defining is: @lower_cast(types.BooleanLiteral, types.Boolean).
Do I need the reverse cast @lower_cast(types.Boolean, types.BooleanLiteral) to solve this, or does the numba machinery do this kind of reversal automatically?
I am asking because for IntegerLiteral the only defined casts are of the first type, i.e. literal -> non-literal. For integer there are no non-literal -> literal casts defined. - Thus my thought that this could be implicit.

I tracked down the cause of the failing test to the is comparison operator. The failing test contains a comparison of the type Boolean[True] is BooleanLiteral[True].
If I change it to Boolean[True] == BooleanLiteral[True] the test passes. (I did specify a lowering for operator.eq for BooleanLiteral.)
I tried specifying @lower_builtin(operator.is_, types.BooleanLiteral, types.BooleanLiteral) but it is not yet working.
How are the precedence rules for @lower_builtin? I am asking because there already exists @lower_builtin(operator.is_, types.Any, types.Any) and I am wondering whether that trumps my implementation or whether my implementation is just not working.
The alternative is that my defined casting @lower_cast(types.BooleanLiteral, types.Boolean) is insufficient. Do I maybe need the reverse casting?

I tracked down the cause of the failing test to the is comparison operator. The failing test contains a comparison of the type Boolean[True] is BooleanLiteral[True].
If I change it to Boolean[True] == BooleanLiteral[True] the test passes. (I did specify a lowering for operator.eq for BooleanLiteral.)
I tried specifying @lower_builtin(operator.is_, types.BooleanLiteral, types.BooleanLiteral) but it is not yet working.
How are the precedence rules for @lower_builtin? I am asking because there already exists @lower_builtin(operator.is_, types.Any, types.Any) and I am wondering whether that trumps my implementation or whether my implementation is just not working.

Good job tracking it down. From the description given this might/will likely end up in a bit of a tangle. @lower_builtin provides lowering implementations that can conflict/overwrite/interact awkwardly with @overload/other @lower_builtin etc, the behaviour is often hard to pin down and it depends on how other things are implemented internally, what got imported when etc. This is in part why the core team is currently undertaking a giant refactoring of the code base, it's to remove this!

The alternative is that my defined casting @lower_cast(types.BooleanLiteral, types.Boolean) is insufficient. Do I maybe need the reverse casting?

IIRC there's no need for reverse casting.
WRT branch pruning, it's tricky, we can perhaps talk through it on https://gitter.im when we get there?
I'll try and take a look at this sometime in the next few days.

@lower_builtin provides lowering implementations that can conflict/overwrite/interact awkwardly with @overload/other @lower_builtin etc, the behaviour is often hard to pin down

@stuartarchibald Thanks for the explanations. With your help I made some progress. It turns out, there was no awkward interaction - but by fixing my original problem I may have created some awkward interaction now.
The failing Boolean[True] is BooleanLiteral[True] comparision had a simple cause:

The @lower_builtin(operator.is_, types.Any, types.Any) did not work since it checks that the two types are equal. Since this is not the case here, it returned False for the comparison.

Defining  @lower_builtin(operator.is_, types.BooleanLiteral, type.BooleanLiteral) was pointless. This comparison is already covered by the general implementation.

What was needed were cross-type implementations. I.e. @lower_builtin(operator.is_, types.Boolean, types.BooleanLiteral) and @lower_builtin(operator.is_, types.BooleanLiteral, types.Boolean).

While these fix the comparison problem, I now trigger another test:
ERROR: test_ambiguous_functions (numba.tests.test_target_overloadselector.TestAmbiguousOverloads)
----------------------------------------------------------------------
TypeError: 2 ambiguous signatures
(<class 'numba.core.types.scalars.Boolean'>, <class 'numba.core.types.scalars.BooleanLiteral'>) => <function boolean_literal_cross_type_is_1 at 0x0000017A336CD790>
(<class 'numba.core.types.scalars.BooleanLiteral'>, <class 'numba.core.types.scalars.Boolean'>) => <function boolean_literal_cross_type_is_2 at 0x0000017A336CD820>

I do however need to define both directions for the cross-type comparison. (I checked by defining just one direction and switching around the operands in the originally failing comparison.)
Thanks for taking a look when you have the time.

For the record, I tried to refactor the operator.is_ implementation from lower_builtin to overload, but the following implementation is producing errors of the type TypeError: expected int64, got None
@overload(operator.is_)
def generic_is(a, b):
    """
    Default implementation for `x is y`
    """
    have_same_type = a == b
    a_is_mutable = a.mutable

    if not have_same_type:
        def generic_is_impl(a, b):
            return False
    elif a_is_mutable:
        def generic_is_impl(a, b):
            raise NotImplementedError('no default `is` implementation')
    else:
        def generic_is_impl(a, b):
            # fallbacks to `==`
            try:
                return a == b
            except NotImplementedError:
                # no `==` implemented for this type
                return False

    return generic_is_impl

The https://github.com/numba/numba/pull/5220#issuecomment-584589657 problem is probably related to https://github.com/numba/numba/issues/5199

This got implemented in https://github.com/numba/numba/pull/6015 thanks for prompting work on it, closing as resolved.


Keep getting those Errors and cant buy anything.

[23:52:05]  L:1    | Gomis           | 400    | buy | failure |  ERR: 429
[23:53:07]  L:2    | Gomis           | 1500   | buy | failure |  ERR: 512
[23:53:32]  L:3    | Gomis           | 1000   | buy | failure |  ERR: 521
[23:54:09]  L:4    | Gomis           | 1500   | buy | failure |  ERR: 429
[23:54:19]  L:5    | Gomis           | 1500   | buy | failure |  ERR: 429
[23:55:01]  L:6    | Gomis           | 1600   | buy | failure |  ERR: 521
[23:55:15]  L:7    | Gomis           | 1300   | buy | failure |  ERR: 521
[23:55:24]  L:8    | Gomis           | 1500   | buy | failure |  ERR: 521
[23:55:32]  L:9    | Gomis           | 1600   | buy | failure |  ERR: 512
[23:55:59]  L:10   | Gomis           | 1600   | buy | failure |  ERR: 426
[23:56:05]  L:11   | Gomis           | 1500   | buy | failure |  ERR: 429
[23:56:07]  L:12   | Gomis           | 800    | buy | failure |  ERR: 512
[23:56:07]  L:13   | Gomis           | 1500   | buy | failure |  ERR: 429

same here! what is the problem!

thats softban

Okey thanks, but how to avoid that? Is there a way using the bot and not getting softbanned? @kassuss94600

You are sending too many request in short time, keep increasing the wait time, also have some pause time in between


Do not call JuttleMoment.duration with "new"

JuttleMoment.duration is not a constructor (just a factory function), so it should not be called using the new operator. This PR removes new from any such calls.

@davidvgalbraith

Thanks! We got some merge conflicts here, so I incorporated these changes into https://github.com/juttle/juttle-elastic-adapter/pull/73.


Fix Database Reset on Windows

          I'm going to create an issue from this comment to note we need to fix this on windows

Originally posted by @seveibar in https://github.com/tscircuit/cli/pull/64#discussion_r1666947429

Slavi can add details on why this is happening/the error message- i can't repro because i'm on mac/linux


feat: updates and simplifies all requirements [#14]

This PR resolves https://github.com/robert-7/Full-Stack-Flask-Tutorial/issues/14.


Every variable is global

This test case incorrectly outputs 2 when onelined.
x = 1
def foo():
    x = 2
foo()
print x

Perhaps the symtable module can help compute the correct scopes?

Largely fixed by #36. There are still some subtle issues that I’ll file as separate bugs.


[SPARK-49465] Fix example props override in helm chart operatorConfiguration.dynamicConfig.data

What changes were proposed in this pull request?

This PR updates example hot property override in values.yaml / operatorConfiguration.dynamicConfig.data, make it including key value pairs of strings
Why are the changes needed?

Does this PR introduce any user-facing change?

Number value in example may cause helm failure
Error: INSTALLATION FAILED: ConfigMap in version "v1" cannot be handled as a ConfigMap: json: cannot unmarshal number into Go struct field ConfigMap.data of type string

Also, in fact Spark Operator consumes all property override as string values, it would parse the actual types accordingly.
How was this patch tested?

value parsing covered by existing CI, helm installation tested via minikube setup and custom value override
Was this patch authored or co-authored using generative AI tooling?

No

This is superceded by #115


Set Amplify project ENV variables/secrets with CLI or BASH (not using the Console)?

Which Category is your question related to?
General - project-level
Amplify CLI Version
v9.1.0
What AWS Services are you utilizing?
Nothing right now.
Provide additional details e.g. code snippets. Be sure to remove any sensitive data.
I want to be able to set environment variables or secrets for my Amplify environment, directly from my terminal (either through the amplify-cli, or through bash/a script).
Any way to achieve this?

Hey @armenr :wave: thanks for raising this! Are you looking to add these secrets to functions or some other resource in your Amplify project? We can leverage CLI command hooks to read secrets from the environment or a dotenv file and upload to SSM. Or are you looking to add environment variables to your Amplify Hosting deployment?

I would say that for me the goal would be on a newly created environment that the cli should prompt for env values...so something like:
Amplify env variable add|list|set|remove
The walkthrough would look like:
Enter the name of the secret: {env}/keyToSomeRemoteService
Is this a file or text field:
Enter the value|filename for this secret: xhejehelspa
Which functions need access to this secret:
Setting secret
Then on an amplify env add it would run through the list again:
Please enter the value|filename for keyToRemoteService: xxx
Potentially this whole set of information could be provided via a json file for automation.
Alternately when pushing without secrets set it would give a warning: the following secrets are not set: xxxx

@josefaidt - Frankly, I'm thinking about ways to establish some baseline/easy/safe and production-secure way to set/inject/fetch secrets, tightly coupled (or at least tightly integrated) with Amplify.
I guess the idea with hooks isn't a bad starting point.
If this were a customer discovery type thing, I'd say:
As a builder, I'd like to be able to quickly and safely get + set secrets from the amplify-cli, per environment/application/backend.
amplify add secret --env=my-env --backend=my-backend

Hey @armenr :wave: thanks for the clarification! I've gone ahead and marked this as a feature request for the team to evaluate further, however in the meantime can you also clarify the use case outside of applying these secrets/env vars to Lambda functions?

A typical workflow example:
Say you've got an app you're building, and you want to instrument it with some DataDog or NewRelic magic. You'll need some API credentials that you're going to inject into your client-side (or back-end) code at build time.
You're going to most typically have a .env in your local repo that you're using for that, and in your CI/CD, you usually set the environment variables for build-time (NEWRELIC_API_KEY=mySuperSecureKey).
Ideally, as a user, I would like to:
amplify init (go through flow)
amplify env set NEWRELIC_API_KEY=$SOME_VALUE_FROM_ENV
OR
amplify env set NEWRELIC_API_KEY=SOME_STRING_I_PUT_HERE
OR EVEN
amplify env set --loadFrom=.env
In my experience with Amplify (and I've been Amplify-obsessed before I worked at AWS, DURING the time I worked at AWS, and AFTER my time at AWS), this would be a hugely productive capability to add.
Stated in the most straightforward way: Adding even the most primitive Environment Variable/Secrets Management kind of workflow to the CLI would be a huge win, IMHO. We're constantly finding ourselves saying "You know, I really wish the framework also provided THIS one thing...otherwise, it's nearly "complete" for all of our needs."
Right now, I have my own personal scripts that I load into /amplify/hooks and /amplify/scripts that allow me to kinda-sorta achieve the same goal, but without the CLI interactivity, or the tight integration of those env vars and secrets into the rest of the framework workflow."
Additionally, if the CLI could provide this functionality and SOMEHOW also use KMS + envelope encryption for sealing & un-sealing those Env Vars or Secrets...that would be 🔥 and would totally obviate the need for relying on some other "easy" tool like Doppler.
One other primitive approach for addressing some of this pain is what @heitorlessa does in this repo: https://github.com/aws-samples/aws-serverless-airline-booking/blob/develop/amplify.yml#L32

any movement on this ticket? my use case is to be able to have these env vars in a source control like my github repo rather than set and managed via AWS console.

For those still looking. Turns out just like about anything else outside the very basics, you'll have to use AWS cli and not amplify cli for this. For the reference here's the AWS cli docs for amplify command.
In this case your command will look something like this.
aws amplify update-app --app-id <AMPLIFY_APP_ID>  --environment-variables AMPLIFY_DIFF_DEPLOY=false --region <REGION>
And in case you wonder, you can find your AmplifyAppId in /amplify/backend/amplify-meta.json file

The "bad" thing about the update-app command it's that if you don't put ALL the environment variables in it, it wipes them all and not just update the one you requested. This is very annoying,

as @amir-zahedi  mentioned, I think using the was cli helps with this, I just finished using the method.
Taking into account @mmarcoux09's warning, I made sure to add all environment variables to one file, and run the command to avoid losing the ones already set by amplify:
aws lambda update-function-configuration --cli-input-yaml file://amplify/backend/function/<function-name>/.config.yml

Seem to work fine, it is unfortunate that the amplify cli does not have a simple way to configure env vars through a text file, but this seems to do the trick for now.


[maddy] add new chart

Description of the change
Added a chart for maddy
Benefits
Support the only chart for maddy
Possible drawbacks
Additional maintenance overhead
Additional information

Checklist

[X] Chart version bumped in Chart.yaml according to semver.
[X] Title of the PR starts with chart name (e.g. [home-assistant])
[X] Variables are documented in the README.md (this can be done with using our helm-docs wrapper ./hack/gen-helm-docs.sh stable <chart>)

Right, so the container for maddy isn't great.
It explains in the documentation the container will fail on first startup, so I'll need to preempt the content of the volume with this chart

Right, so the container for maddy isn't great.
It explains in the documentation the container will fail on first startup, so I'll need to preempt the content of the volume with this chart

perhaps use an initcontainer for this?

I'm no longer using this software, so have no need to continue working on the chart, if someone wants to take over feel free.


tflite model download from firebase has been implemented

Hi @apurvabisht97  @navin9584  please test it as we have test case sheet go through that sheet.

hi @harish-challa  . i have tested this pr it is working as expected . when digits model is not present and isFBDownloadEnable is also false then we are not able to scan it . But isFBDownloadEnable is true and digits  model is not present then we will able to scan the layout .


ActionType doesn't exclude non-action creators anymore

Description
I was using ActionType to build the union of all of my action creators by doing:
// user.ts
export enum UserActionTypes {
    SomeAction = 'UserSomeAction'
}

export const someAction = createStandardAction(UserActionTypes.Someaction)<string>();

// index.ts
import * as userActions from './user';

type UserActions = ActionType<typeof userActions>;

// UserActions = PayloadAction<.....>

This used to work on<EMAIL_ADDRESS>and<EMAIL_ADDRESS>but it doesn't anymore in the last version. Now UserActions is userActions.UserActionTypes | PayloadAction<....>
Suggested solution(s)
I think that by adding an additional check into the ActionType this would get solved:
type ActionType<ActionCreatorOrMap> = ActionCreatorOrMap extends ActionCreator<string>
    ? ReturnType<ActionCreatorOrMap>
    : ActionCreatorOrMap extends object
    ? {
          [K in keyof ActionCreatorOrMap]: ActionCreatorOrMap[K] extends ActionCreator<any>
              ? ActionType<ActionCreatorOrMap[K]>
              : never
      }[keyof ActionCreatorOrMap]
    : ActionCreatorOrMap;

This is similar to pre-3.3.0, but based on it.... I see that change was added to solve a circular dependency after upgrading to<EMAIL_ADDRESS>- I haven't had any errors/warnings by using this version of ActionType.
Should I create a PR and move the discussion there, if this change makes sense?
Project Dependencies

Typesafe-Actions Version: 3.3.0
TypeScript Version: 3.4.1

The suggested solution is not acceptable because it only works for nesting 1 level deep and adds unnecessary computational complexity, the original is a recursive type working for deeply nested structures.
The problem is within the compiler and never cannot be used to remove unmatched types in such conditional type anymore. Hopefully, it'll be fixed in the future hotfix for TypeScript compiler so we can bring back 3.3.0 behaviour.

Ok, makes sense - either I'll move those enums out or wait for a TSC fix before upgrading.
Thank you!

@voliva I think I found temporary fix to compiler issue, please check this type on your codebase and report back to me if that fixed your issues:
export type ActionType<
  ActionCreatorOrMap
> = ActionCreatorOrMap extends ActionCreator<string>
  ? ReturnType<ActionCreatorOrMap>
  : ActionCreatorOrMap extends object
  ? {
      [K in keyof ActionCreatorOrMap]: ActionType<ActionCreatorOrMap[K]>
    }[keyof ActionCreatorOrMap]
  : ActionCreatorOrMap extends infer R // should be just never but compiler yell with circularly references itself error
  ? never
  : never;

Hey, thanks for taking a deeper look on this - Unfortunately it doesn't.
I created a codeSandbox here so we can try: https://codesandbox.io/s/z68jnxwko3
There it uses current<EMAIL_ADDRESS>your suggestion, and the workaround I did for my project, as we're using shallow actionCreators (or just the ones returned by createAsyncAction, which return only 1-level deep, which is to define another type:
type Function = (...args: Array<any>) => any;
type FunctionOrFunctionMap = Function | { [key: string]: Function };
type FunctionsOf<Module> = {
  [K in keyof Module]: Module[K] extends FunctionOrFunctionMap
    ? Module[K]
    : never
}[keyof Module];

And then using this with ActionType as
type UserActions = ActionType<FunctionsOf<typeof userActions>>;

This workaround does cover my current setup.

@voliva you must be doing something wrong, I have used the code from your sandbox in my local env and the solution I posted working perfectly

Fixed in v3.4.0 release

Yep, that worked perfectly - Sorry I took this long to answer.
Thank you very much!


Synchronize unsaved config files with the TS Server

Request
TS Server currently only reads tsconfig and jsconfig files from disk. When editing a config file in an editor like vscode, you have to save it to the disk for the project configuration changes to take effect.
We'd like to be able to synchronize unsaved config files with the tsserver as well, the same way we synchronize unsaved js/ts files. This would mainly be helpful for error reporting in the config files

@amcasey @uniqueiniquity for this will be useful for vs as well.
cc: @RyanCavanaugh


Improve tests

Currently, the tests only work on the UNIX environment due to the use of grep. It should be easy to replace it with just go code.
Also, the main function (history.Run()) is not being tested.

fixed by related PR.


MudSelectExtended Event Callback Issues (6.92)

When providing a method to the OnBlur parameter of a mud select extended, it never seems to be called:
OnBlur="@(() => BlurTesting())"
        private void BlurTesting() {
            var test = "";
            Console.WriteLine("testing");
        }

This line is never invoked nor hit on a breakpoint while debugging. I tried several variation's of the parameter (based on MudBlazor's docs) including "OnBlurred", "OnBlurAsync", "OnBlurredAsync", & "OnFocusOut", which no luck with any of them.
I had the same issue with OnFocus.

Does it same for MudSelect also or is it only about the extended component?

Same here, not working

en providing a method to the OnBlur parameter of a mud select extended, it never seems to be

Same on the original component, an issue was created in february
https://github.com/MudBlazor/MudBlazor/issues/8145 #


Map visualization "Map layers" div

When you're in the "Map" visualization menu, the "Map layers" div doesn't show a vertical scroll bar, so you're not able to reach the bottom part and clicking the "Add layer" button.

This is also https://github.com/humanitiesplusdesign/palladio-map-component/issues/2 (But fine to post it here.)
I will try to fix today - sorry we haven't gotten to it previously.

There is an imperfect but hopefully decent fix in place that should let you scroll the settings panel on the map so you can get down to the "Add layer" button no matter your screen size.

Yes, it definitely works. Thank you!


[PE-D][Tester E] addPerson should not default to the first company if no company index provided

This default behavior can be unintuitive for users and cause the users to accidentally add the wrong people to the first company if they missed the c/ parameter.
Additionally, the documentation states that if any of the details are invalid or wrong, then the following error: "Please provide valid contact details including name, phone, email, address, and a valid company index." will be displayed but the part about "a valid company index" goes against this default behavior, thus potentially causing confusion

Labels: severity.Low type.FeatureFlaw
original: woojiahao/ped#8

We intended to automatically assign the user to the first company index instead of flagging up that the command format is invalid as users might want to automatically add contacts to the most recent company that they have added, thus it is a feature that we wished to include to increase the efficiency of adding connections.


ENH: Add support for VectorContainer of float32

Also, see #2095.

[X] No API changes were made (or the changes have been approved)
[X] No major design changes were made (or the changes have been approved)
[X] Added test (or behavior not changed)
[X] Updated API documentation (or API not changed)
[X] Added license to new files (if any)
[X] Added Python wrapping to new files (if any) as described in ITK Software Guide Section 9.5
[ ] Added ITK examples for all new major features (if any)

It is still failing ... https://open.cdash.org/test/289613024.  For the
short term, should I submit a hasattr check that bypasses the test if the
expected wrapping isn't there?  Once I figure out why the wrapping isn't
there then I can restore the test in the pull request that fixes the
underlying problem.
On Thu, Nov 19, 2020 at 9:14 PM Matt McCormick<EMAIL_ADDRESS>wrote:

Merged #2113 https://github.com/InsightSoftwareConsortium/ITK/pull/2113
into master.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/InsightSoftwareConsortium/ITK/pull/2113#event-4018776921,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIPWGCDM2VMSQLPPLVQOGPLSQXGJJANCNFSM4T32Y7EQ
.

--
Lee Newberg, Ph.D.
Staff Research and Development Engineer, Kitware, Inc.
https://www.kitware.com/
he / him / Mr.
Caffè Americano: I am not diluting my espresso, I am flavoring my water.


table name escaping

fixed in https://github.com/keboola/db-writer-mysql/commit/73b2d41daa8b1b960afdc4228706549ec63cb154