Fix: Blank screen after creating an account

<If necessary, assign reviewers that know the area or changes well. Feel free to tag any additional reviewers you see fit.>
@marcaaron
Details
Address the problem that no navigator is available during application initialization
We don't need to keep the entire AuthScreens navigator unmounted but just the Report screen
This way the URL still resolves to the correct report after the data is available
Fixed Issues
Fixes #2497
Tests

Start from logged out state and proceed to create a new account
While logged out, type and login with brand new email address so it can trigger sign up flow
Get validation link from e-mail. On dev I'm copying the email link and appending it to localhost - e.g. http://localhost:8080/setpassword/10024706/EHOHMPGWM
Type new password and click "set password"
After a brief loading time you should see an initial chat list in LHN containing only the Concierge chat

the URL in the address would be /r until the initial report number is resolved
Depending on internet speed this can be too quick to notice
In the video samples below it reads /loading but we decided to change it

The Concierge chat should be loaded as the active conversation

Please check the steps listed in the PR here #2346 work as well and there's no regressions
QA Steps
Same as above
Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[x] iOS
[x] Android

Screenshots

Web

I'm intentionally setting a slow internet connection to test that the URL (chat) would resolve correctly even when the data comes after the App's initial render
Creating account over a slow internet connection
https://user-images.githubusercontent.com/12156624/116293730-db8cab80-a79f-11eb-9ace-9f8ff0d4047f.mp4
Login in over a slow internet connection
https://user-images.githubusercontent.com/12156624/116294035-2c9c9f80-a7a0-11eb-84d2-de53b20003f3.mp4
Mobile Web

Logging in on mobile web
https://user-images.githubusercontent.com/12156624/116302433-d7658b80-a7a9-11eb-814d-947bdeec626b.mov
Desktop

Logging in on the desktop app
https://user-images.githubusercontent.com/12156624/116306650-0251de80-a7ae-11eb-8b93-e269f128f7df.mov
iOS

A simulated login using the magic link after an account is created
Simulate a magic link to set a password for a new account
https://user-images.githubusercontent.com/12156624/116302029-61f9bb00-a7a9-11eb-9a06-58b4d59071d9.mp4
Android
Testing on Android to verify everything still works as before
https://user-images.githubusercontent.com/12156624/116294183-58b82080-a7a0-11eb-960c-7802634bbe6f.mp4

Updated

Thanks, going to let @thienlnam take a first pass at reviewing + testing this then I will jump in.

I've added sample videos for all platforms:
I don't know how you test deep links on iOS / Android. This is what I do for iOS for example:
https://user-images.githubusercontent.com/12156624/116302029-61f9bb00-a7a9-11eb-9a06-58b4d59071d9.mp4

create a new account
copy the link from the email
use the link in a terminal to trigger a simulator run:xcrun simctl openurl booted expensify-cash://setpassword/10075909/XGFOJRHBO

note: you have to be logged out first in order for this particular link to resolve

Maybe something about it can be included in the README

Updated

Updated

@kidroca, I noticed that you had one approval, and then made substantial changes to this PR. I don't have all the context for why those changes were made, but I did just want to point out that this PR fixes a deploy-blocking issue that has been preventing us from running a production deploy for more than a week now. Generally with deploy blockers we want to get the quickest fix that solves the problem at hand so we're no longer holding up the deploy, even if you then create a follow-up PR to provide a better or more robust solution during the next deploy. Just something to keep in mind for the future 🙂

@roryabraham
I saw Marc comment regarding merging this.
It was a good point to explicitly say stop making further changes.
Since it wasn't merged and no one said nothing. I looked at the comments left by Marc and came up with an even more brilliant solution and had the time to implement it.
I always consider how easy would something be to review and wouldn't have done this if the solution wasn't way better
The changes might seem significant but 50% of them are blank lines comments and indentation change
Besides I've left a good description which should have helped reviewing them quickly

🚀 Deployed to staging in version: 1.0.33-4🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

Just a heads up there is an issue with this implementation and it's possible to get into a bad state if you have some partial report data e.g. a report that has only partial data. Here's what I've observed:

Which, as you can imagine, leads to some pretty broken stuff 😄
That said, I was only able to reproduce this a few times. Still we should be careful to avoid this case and not present any report that has no reportID.


Release 0.10.1

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Including removal of Python 3.9 for u8darts-all to prevent broken Prophet install

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Broken link - volar

Description
Hello, im reading through the server configurations, and im looking at volar for vue. I work on a vue 2 project.
Looking at the doc it says:
"Volar by default supports Vue 3 projects. Vue 2 projects need additional configuration."
however, this additional configuration link is broken.
Can you please provide steps how to configure volar on vue/nuxt 2?
The lsp just goes crazy when i try to use normal volar, so any help would be appreciated.
Thanks

send a PR

Hi, somebody knows which is the broken link referenced?


Add new headset and channel for admemes

About the PR
Uses miner headset sprite to add a new radio channel meant to be used for admin events. Originally this was intended to be given to pirates, and while that's currently likely to be the primary use, a new channel should be made if pirates are coded to have their own headsets. These should not be mapped or obtainable without an admin spawning them.
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

If you're going to add a pirate channel, just add one. If you need an admeme channel, use the centcomm one? I dont get why there needs to be a new one.

I think having a console command for adding new radio channels makes more sense. Then you can have any number of new radio channels for admin events instead of just one, and you could specify name and color in the command.

I think the prototype uploading issue should be fixed over working around it for content's sake.

prototype reloading got fixed ig.


[issue template] let's not use check boxes

Description of the new feature / enhancement
I suggest that we change the checkbox used to show if reporter used Admin. Github interprets/shows this as a task that supposedly needs to be done, where it isn't. And I think the control is not suited for a Yes/No answer.

https://github.com/github/feedback/discussions/4319 is mentioned, bud has no resolution yet.
Scenario when this would be used?
Issues
Supporting information
No response

I think for what we are using them for, i'm ok with having that.  It is a tool we are using in PRs in my opinion in an appropirate manner

like, i don't believe we can do a template YML PR like we can with an issue

like, i don't believe we can do a template YML PR like we can with an issue

I tried it once and it didn't work

Isn't it as simple as changing - [] yes into Yes?

Some stuff comes in after the fact. It is also designed to be much more hold people accountable. If we see a new dll was added but not wix tweaked we know we need to go in

@Jay-o-Way you know what. I will just write a mail to GitHub support, beccause in my eyes this is a overall a big design flaw.

I could have done that as well. Frankly, it's already being discussed in the issue I linked earlier. (But don't let me keep you)
Seemed simple to me, it's only about this - not more


DF Chat Enhancement: Chat Merge incompatible with Pathfinder 2e system attack rolls

Module
DF Chat Enhancements v3.6.0
Describe the issue
Merged attack rolls overlap the tags when using Chat Merge feature of Chat Enhancements. (other rolls appear unaffected)
To Reproduce
Steps to reproduce the behavior:

Enable DF Chat Enhancements and prerequisites.
Create a Player Character actor.
Roll the preconfigured unarmed attack twice.
Observe issue in chat.

Expected behavior
The roll should not overlap the text above it.
Screenshots (Optional)

I'm not able to reproduce this issue. It is possible that PF2e has changed their styling and this may no longer be an issue.


Unclear which transformers version should be used when testing Tatoeba

I installed all the necessary dependencies and tried running the Tatoeba task using bash scripts/train.sh "bert-base-multilingual-cased" tatoeba.
However, I immediately ran into an ImportError:
Traceback (most recent call last):   File "/Users/marcellfekete/PycharmProjects/xtreme/third_party/evaluate_retrieval.py", line 39, in <module>     from bert import BertForRetrieval   File "/Users/marcellfekete/PycharmProjects/xtreme/third_party/bert.py", line 4, in <module>     from transformers.modeling_bert import BertModel, BertPreTrainedModel ModuleNotFoundError: No module named 'transformers.modeling_bert'
This is with transformers-4.17.0.
I tried downgrading transformers to version 3.5 and 2.0 but I am running into other issues then.
Traceback (most recent call last):   File "/Users/marcellfekete/PycharmProjects/xtreme/third_party/evaluate_retrieval.py", line 43, in <module>     from xlm_roberta import XLMRobertaConfig, XLMRobertaForRetrieval, XLMRobertaModel   File "/Users/marcellfekete/PycharmProjects/xtreme/third_party/xlm_roberta.py", line 24, in <module>     from roberta import (   File "/Users/marcellfekete/PycharmProjects/xtreme/third_party/roberta.py", line 27, in <module>     from transformers.modeling_bert import BertEmbeddings, BertLayerNorm, BertModel, BertPreTrainedModel, gelu ImportError: cannot import name 'BertLayerNorm' from 'transformers.modeling_bert' (/Users/marcellfekete/miniforge3/envs/rosetta/lib/python3.8/site-packages/transformers/modeling_bert.py)
This is with transformers 3.5.
Traceback (most recent call last):   File "/Users/marcellfekete/PycharmProjects/xtreme/third_party/evaluate_retrieval.py", line 57, in <module>     "xlmr": (XLMRobertaConfig, XLMRobertaModel, XLMRobertaTokenizer), NameError: name 'XLMRobertaTokenizer' is not defined
This is with transformers 2.0.
Do you have any advice? Which transformers version is recommended to run the tests?
I don't know if it matters but I am trying to run on Apple Silicon using the Rosetta layer (due to faiss not installing natively).
Thank you!

Hi @vrmer, we used transformers==2.3.0 as far as I am aware. Did you try running the install_tools.sh script? This should install the correct transformer version (see this line).

Thanks for the response! I ran into issues running the install_tools.sh script when I first started using the library but I don't have the output for that at the moment.
Nevertheless, I followed the lines you pointed at and install transformers==2.3.0. However, I still get the following errors:
Traceback (most recent call last):   File "/Users/marcellfekete/PycharmProjects/xtreme/third_party/evaluate_retrieval.py", line 57, in <module>     "xlmr": (XLMRobertaConfig, XLMRobertaModel, XLMRobertaTokenizer), NameError: name 'XLMRobertaTokenizer' is not defined

Hmm, that's strange. I just checked the HuggingFace Transformers repo and XLMRobertaTokenizer should be available in v2.3.0 (see here)? Could you double check that you have the correct version and if the file tokenization_xlm_roberta.py is available in the transformers version you are using?

Apologies, apparently I uncommented the import statement when I was trying to make the code run and forgot to put it back!
Now the code starts running with this message:
03/16/2022 15:57:00 - INFO - root -   Input args: Namespace(batch_size=100, cache_dir='', candidate_prefix='candidates', concate_layers=False, config_name='', data_dir='/Users/marcellfekete/PycharmProjects/xtreme/download//tatoeba/', dist='cosine', do_lower_case=False, embed_size=768, encoding='utf-8', extract_embeds=False, gold=None, init_checkpoint=None, local_rank=-1, log_file='embed-cosine', max_answer_length=92, max_query_length=64, max_seq_length=512, mine_bitext=False, model_name_or_path='/mnt/disk-1/models/squad/xlm-roberta-large_LR3e-5_EPOCH2.0_maxlen384_batchsize2_gradacc16', model_type='bert', no_cuda=False, num_layers=12, output_dir='/Users/marcellfekete/PycharmProjects/xtreme/outputs-temp//tatoeba//mnt/disk-1/models/squad/xlm-roberta-large_LR3e-5_EPOCH2.0_maxlen384_batchsize2_gradacc16_512/', overwrite_cache=False, overwrite_output_dir=False, pool_skip_special_token=False, pool_type='mean', predict_dir=None, specific_layer=7, split='training', src_embed_file=None, src_file=None, src_id_file=None, src_language='ar', src_text_file=None, src_tok_file=None, task_name='tatoeba', tgt_embed_file=None, tgt_file=None, tgt_id_file=None, tgt_language='en', tgt_text_file=None, tgt_tok_file=None, threshold=-1, tokenizer_name='', unify=False, use_shift_embeds=False)

But then it gives me this error message:
Traceback (most recent call last):
  File "/Users/marcellfekete/miniforge3/envs/rosetta/lib/python3.8/site-packages/transformers/configuration_utils.py", line 204, in get_config_dict
    raise EnvironmentError
OSError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/marcellfekete/PycharmProjects/xtreme/third_party/evaluate_retrieval.py", line 748, in <module>
    main()
  File "/Users/marcellfekete/PycharmProjects/xtreme/third_party/evaluate_retrieval.py", line 733, in main
    all_src_embeds = extract_embeddings(args, src_text_file, src_tok_file, None, lang=src_lang2, pool_type=args.pool_type)
  File "/Users/marcellfekete/PycharmProjects/xtreme/third_party/evaluate_retrieval.py", line 173, in extract_embeddings
    config, model, tokenizer, langid = load_model(args, lang,
  File "/Users/marcellfekete/PycharmProjects/xtreme/third_party/evaluate_retrieval.py", line 150, in load_model
    config = config_class.from_pretrained(args.model_name_or_path)
  File "/Users/marcellfekete/miniforge3/envs/rosetta/lib/python3.8/site-packages/transformers/configuration_utils.py", line 160, in from_pretrained
    config_dict, kwargs = cls.get_config_dict(pretrained_model_name_or_path, **kwargs)
  File "/Users/marcellfekete/miniforge3/envs/rosetta/lib/python3.8/site-packages/transformers/configuration_utils.py", line 220, in get_config_dict
    raise EnvironmentError(msg)
OSError: Model name '/mnt/disk-1/models/squad/xlm-roberta-large_LR3e-5_EPOCH2.0_maxlen384_batchsize2_gradacc16' was not found in model name list. We assumed 'https://s3.amazonaws.com/models.huggingface.co/bert//mnt/disk-1/models/squad/xlm-roberta-large_LR3e-5_EPOCH2.0_maxlen384_batchsize2_gradacc16/config.json' was a path, a model identifier, or url to a configuration file named config.json or a directory containing such a file but couldn't find any such file at this path or url.

I'm not even sure why it is trying to use XLM-RoBERTa when I explicitly tried using multilingual BERT.

I assume you're running the run_tatoeba.sh script? We are now recommending to use a model fine-tuned on SQuAD for retrieval, rather than using the representations of the pre-trained model directly.
In the run_tatoeba.sh script, you can replace the path to the fine-tuned model here. If you prefer not to use a fine-tuned model, you can simply uncomment that line and things should run as expected.

Oh thank you, that was actually really helpful! Now the code seems to be running without issues.
I am closing the issue because it has been sorted.


Make canonical metrics private attributes of Lie groups (not modifiable)

left_canonical_metric should not be modified by the user.

Not needed.


Collaboration

@RandyMcMillan
I'm, the author of ngit-cli and gitworkshop.dev. It's great to see you are working on this important problem. Would you like to have a call to discuss our approaches and see if there is an opportunity to collaborate?

I will take a look at why ngit CI is failing.

Thanks very much for offering to do that! Just as you posted the message I applied a fix.
We have touched base and had some productive conversations so I'll close this issue.


DynamicData test ignores data items when their ToString() results in the same string as other data items

[DynamicData] items are ignored. Best explained with an example (also see test.zip attachment for full solution):
using System;
using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace test
{
    [TestClass]
    public class UnitTest1
    {
        public static IEnumerable<object[]> TestListData
        {
            get
            {
                yield return new object[] { 0, new List<int> { 1 } };
                yield return new object[] { 1, new List<int> { 2 } };
            }
        }

        [TestMethod]
        [DynamicData(nameof(TestListData))]
        public void TestList(int i, IList<int> a) => Console.WriteLine(i + ", " + a[0]);

        public static IEnumerable<object[]> TestListData2
        {
            get
            {
                yield return new object[] { new List<int> { 1 } };
                yield return new object[] { new List<int> { 2 } };
            }
        }

        [TestMethod]
        [DynamicData(nameof(TestListData2))]
        public void TestList2(IList<int> a) => Console.WriteLine(a[0]);
    }
}

Create a .NET 4.8 project, using MSTest.TestFramework/MSTest.TestAdapter 2.2.5, the results are as follows:
TestList:

Discovers/creates three test cases from the TestListData result.
Runs each

TestList2:

Only creates one test case from the TestListData2 result.
Executes the last one (as can be seen by the output of 2)

It looks as if in the TestList2 case only one test case is generated, because they would all result in the display(?) name "TestList2 (System.Collections.Generic.List`1[System.Int32])", whereas in the TestList case they all result in different names, because of the literals (1, 2, 3) in the test data.
Whether this guess is right or not, it still worked as expected with version 2.1.2 and below (haven't tested upwards to 2.2.5, might be an issue in an earlier version already).
log.txt
test.zip

Thank you for the reporting this issue. In dynamic data tests, we differentiate testcases by their display name. If there is a conflict by name as you discovered, only the last discovered one is kept. This is by-design. We're working to provide an opt-out (#905) from this behavior, until that's ready you can use you workaround - or downgrade to version 2.2.3.


Fix static network rendering for flatcar

Signed-off-by: Waleed Malik<EMAIL_ADDRESS>What this PR does / why we need it:
Fixes a bug where static networking configuration was being wrongfully set for flatcar.
Which issue(s) this PR fixes:

Fixes #1468
What type of PR is this?

/kind bug
Special notes for your reviewer:
Does this PR introduce a user-facing change? Then add your Release Note here:

NONE

Documentation:

NONE

/retest

/retest

/retest

/retest


http2: RFC8441 extended connect protocol

Support the Extended Connect Protocol defined by RFC 8441.

Add a new pseudoheader :protocol
New HTTP2 Server option "EnableConnectProtocol" to enable
the HTTP2 ENABLE_CONNECT_PROTOCOL setting.
HTTP Request field "Proto", that was ignored from Clients, now
is used for setting the field ":protocol" on Connect requests

Change-Id: I1e4bf6a45bd667fa5e5388678bee0feac64641c1

@aojea did you ever get any feedback on this? I am working in the same space and would love to move this forward.

@aojea did you ever get any feedback on this? I am working in the same space and would love to move this forward.

no feedback sorry, I wrote my comments on the open issue with my observations, but I don't really know how golang community works for adding new features


Allow glob imports in optimizeDeps.include

Closes #1545
I'm still unsure about the level of detail the log should give and whether it should fail on error or just skip the include. Would love to hear other opinions on that.

Thanks for the PR - closing as Vite now does auto dependency discovery.

Thanks for the PR - closing as Vite now does auto dependency discovery.


[BUG] Cosmos query throws exception with 'rid must not be null'

Describe the bug
We are using CosmosTemplate.runPaginationQuery to retrieve a page of the documents. The query itself does a join with child collection and returns the distinct parent documents. The filter is simply based on the partition key. The page size is 100. The code throws an exception as below.
java.lang.IllegalArgumentException: rid must not be null. 		at com.azure.cosmos.implementation.query.OrderByContinuationToken.<init>(OrderByContinuationToken.java:44) ~[azure-cosmos-4.16.0.jar!/:na] 		at com.azure.cosmos.implementation.query.OrderByDocumentQueryExecutionContext.getContinuationToken(OrderByDocumentQueryExecutionContext.java:560) ~[azure-cosmos-4.16.0.jar!/:na] 		at com.azure.cosmos.implementation.query.OrderByDocumentQueryExecutionContext$ItemToPageTransformer.lambda$apply$4(OrderByDocumentQueryExecutionContext.java:459) ~[azure-cosmos-4.16.0.jar!/:na] 		at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:106) ~[reactor-core-3.4.11.jar!/:3.4.11] 		at reactor.core.publisher.FluxSkip$SkipSubscriber.onNext(FluxSkip.java:87) ~[reactor-core-3.4.11.jar!/:3.4.11] 		at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:120) ~[reactor-core-3.4.11.jar!/:3.4.11] 		at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201) ~[reactor-core-3.4.11.jar!/:3.4.11] 		at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:120) ~[reactor-core-3.4.11.jar!/:3.4.11] 		at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:712) ~[reactor-core-3.4.11.jar!/:3.4.11] 		at reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:588) ~[reactor-core-3.4.11.jar!/:3.4.11] 		at reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:971) ~[reactor-core-3.4.11.jar!/:3.4.11] ... 	Suppressed: java.lang.Exception: #block terminated with an error 		at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99) ~[reactor-core-3.4.11.jar!/:3.4.11] 		at reactor.core.publisher.Mono.block(Mono.java:1706) ~[reactor-core-3.4.11.jar!/:3.4.11] 		at com.azure.spring.data.cosmos.core.CosmosTemplate.sliceQuery(CosmosTemplate.java:714) ~[azure-spring-data-cosmos-3.8.0.jar!/:na] 		at com.azure.spring.data.cosmos.core.CosmosTemplate.paginationQuery(CosmosTemplate.java:676) ~[azure-spring-data-cosmos-3.8.0.jar!/:na] 		at com.azure.spring.data.cosmos.core.CosmosTemplate.runPaginationQuery(CosmosTemplate.java:657) ~[azure-spring-data-cosmos-3.8.0.jar!/:na] ...
There are exactly 100 documents match the filter. I initially suspect there is a bug on cosmos sdk side that incorrectly handle the continuation token for paged query when page size equals the total document count. And we tested it again by reducing the document count to less than 100. But the error still shows up until we reduce the count to less than 50.
The document is like below.
{ "id": "111", "partitionKey": "AA", "child": [ { "name": "John" }, { "name": "Jason" } ] }
The query is like below.
SELECT DISTINCT c.id, c.partitionKey, c.child FROM c JOIN i IN c.child WHERE c.partitionKey = 'AA' ORDER BY c.id
Exception or Stack Trace
Please see the stack trace in description
To Reproduce
Steps to reproduce the behavior:
Code Snippet
Add the code snippet that causes the issue.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Setup (please complete the following information):

OS: [windows, *nix]
IDE: [Eclipse]
Library/Libraries: [com.azure.spring:azure-spring-boot-starter-cosmos:3.6.0]
Java version: [11]
App Server/Environment: [Tomcat]
Frameworks: [Spring Boot]

If you suspect a dependency version mismatch (e.g. you see NoClassDefFoundError, NoSuchMethodError or similar), please provide

verbose dependency tree (mvn dependency:tree -Dverbose)

Additional context
Add any other context about the problem here.
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[X ] Bug Description Added
[ ] Repro Steps Added
[ ] Setup information Added

@backwind1233 could you please take a look?

Thanks for reaching us, @zhoujia1974
I will look into this issue.

Follow up on this ticket, I debugged the call stack and was able to figure out the root cause. For custom sql using pagination, the sql select part must include Cosmos built in column _rid in the document. Cosmos internally uses this _rid to build the continuationToken. This needs to be documented somewhere.

@zhoujia1974  _rid is an internal property used in cosmos, you should not put it in the select query part.
And I have not been able to repro locally with a similar query, can u provide a repro sample?
Can u also try if you change to use exists  instead of join in the query, would the issue still exists?
https://docs.microsoft.com/en-us/azure/cosmos-db/sql/sql-query-subquery#exists-expression
Thanks

@xinlian12 I don't have a simplified project for you to check. If you want, we can set up a team meeting and I can debug the code with you.
But meanwhile, here is the basic steps how we get this error.
  Pageable pageable =
      CosmosPageRequest.of(0, 0, 50, null, Sort.unsorted());

  String queryString = "SELECT DISTINCT c.id, c.partitionKey, c.child FROM c JOIN i IN c.child WHERE c.partitionKey = @partitionKey ORDER BY c.id";
  SqlQuerySpec sqlQuerySpec = new SqlQuerySpec(queryString, List.of(new SqlParameter("@partitionKey", "aa")));

 cosmosTemplate.runPaginationQuery(
          sqlQuerySpec, pageable, SomeEntity.class, SomeEntity.class);

@zhoujia1974  yea, we can do that. Can u reach out to<EMAIL_ADDRESS>And then we can schedule our debugging session from there. Thanks

@Diego10Rocha, @luanpereira and @G3Quixabeira , managed to solve this problem as follows:
**SELECT * FROM (**SELECT DISTINCT c.id, c.partitionKey, c.child, **c._rid** FROM c JOIN i IN c.child WHERE c.partitionKey = 'AA' ORDER BY c.id**)**
It doesn't make sense, but it solved the problem.


is there a way to implement this using BFM2019?

use 2009 version via [https://faces.dmi.unibas.ch/bfm/main.php?nav=1-2&id=downloads]


[TASK] Remove Rule::setValues

Removing one function after another.

I fixed the changelog message.

Rebased and force-pushed.

@JakeQZ I think you're merging main into the PR branches to update them (which is the default way suggested by GitHub AFAIK). Instead, we should rebase the PRs on main .

@JakeQZ I think you're merging main into the PR branches to update them (which is the default way suggested by GitHub AFAIK). Instead, we should rebase the PRs on main .

The GitHub method seemed to work fine in cases with just a conflict in CHANGELOG.  It was quick and easy whilst reviewing to click 'Resolve Conflicts' and simply remove the diff markers (since the conflict was multiple additions at the same line).  However, in #563 there was also a conflict in another file, which I thought I had resolved correctly, then after committing realized I hand't, so tried to revert the merge, spectacularly unsuccessfully.


Refactor YuccaConfigurator PS and BS handling, remove CPU case

Fixed a bug in set up of batch and patch size, where, when training on CPU, a BS was set but no PS.
I went ahead and removed the whole "if not torch.cuda.is_available():" part, as it is too opionionated. The user might want to test specific PS and BS settings on CPU, and should be in charge of making appropriate settings when running CPU training

@Sllambias could you take a look at this if you have time? :) Would like to discuss the removal of the CPU case, and I think we have to update the test 001 dataset

I don't mind removing the CPU case. It was mostly there to allow debugging other parts on CPU without running into OOM issues, however the "tiny_patch" solves this issue too, as long as it will also include a fixed batch size.
Out of curiosity: will you run anything real on the CPU ever?

I also like to have an "else" in the end of IF statements like this to clearly catch any strays. Otherwise debugging can be very hard if for some reason the pipeline can run without this successfully configuring anything

After yuccalib reintegration:
Do we really need num_classes in find_optimal_tensor_dims @Sllambias

#44


firmware error

PC does not recognize keyboard. Leds does not light up.
I flashed it with plaid firmware and it "worked" (LEDS lighted up and PC recognized it as keyboard. At keypress it was nonsence naturally, but i had some imput so its just matter of firmware).
Can you please provide firmware source code?

The firmware source code is in the QMK repository: https://github.com/qmk/qmk_firmware/tree/master/keyboards/peej/lumberjack

Ok, I do understand it now.... I think.
I have the firmware compiled and can flash it trought Adrduino as ISP (verified).
But if i compile USBaspLoader, its about 2KB and EEPROM for bootloader is 1KB.
I dont know how can I make it fit.

Are you talking about the firmware or the bootloader?
Once the chip is ISP flashed with the bootloader there should be no need to do this again, and the Lumberjack is compatible with the Plaid bootloader.
If you then want to rebuild the QMK firmware to change functionality, you can build and flash that as per the normal USB flashing procedure.

Thank you,
I just made it.


OAuth2 Redirect Uri Support

Is your feature request related to a problem? Please describe.
I'm trying to integrate a declarative Swagger API with Zitadel. I've been using OAuth2AccessCode, but the redirect URI is set to /oauth2-redirect.html, while the documentation has users host the swagger docs at something like /swagger/*. Additionally, there does appear to be a way to set a default clientId.
Describe the solution you'd like

Make Client ID configurable: clientId
Allow the use of PKCE: usePkceWithAuthorizationCodeGrant (https://swagger.io/docs/open-source-tools/swagger-ui/usage/oauth2/)
Allow the configuration of oauth2RedirectUrl (https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/)

Is there something I'm missing in order to configure it properly?

I see you have been directing users to file an issue with the client repo instead (such as https://github.com/swaggo/echo-swagger). If this is still the case, feel free to close.


Problem exporting the PDF because the modified images are not being integrated into the PDF.

Version <IP_ADDRESS>
Here is my smartphone system configuration:
Xiaomi Redmi 8
Android Version 10 Android 10
MIUI V<IP_ADDRESS>.QCNEUXM
Architecture 64-bit
Instruction sets
arm64-v8a armeabi-v7a armeabi Qualcomm® Snapdragon™ 439
CPU 4 x Cortex-A53
Cores 8
RAM size 4 GB
After adding photos from the gallery and modifying them with a filter, I wanted to get black text on a white background for printing.
Here are screenshots of the result.

When I tried to export to PDF, my modifications to my photos or images were ignored. The changes were not retained when exporting to PDF, and another filter was applied. I wanted to keep black text on a white background.

It's unfortunate that there isn't an option to enhance black text, or intensify the black color of weak black text when it is grayed out.

I would like to congratulate the developers or developer for this very useful application. Great work has already been done.

@franco27 thanks a lot for the kind words and the detailed explanation. really helps a lot.
I tried to reproduce your issue on android 10 and sadly could not do it.|
if this is reproducible (changing the color filter and then having export preview not apply it), could you make a video of it ? That could help me reproduce it

I am combining several videos to help you understand the issue.
I did not choose the color filter.
https://drive.google.com/file/d/1KF3DzXVs1JBA0PGtJfrV6bAuI3cqMUbS/view?usp=drivesdk
https://drive.google.com/file/d/1K6W3wO2dWH1URp9whs3aQbOad6Cz0CWG/view?usp=drivesdk

I am sending you the image that was used to create the three images.
To create the three images, I used only one image. I added three frames on this same photo. Then, I selected the Bw filter. In the "magic wand" tool, I did not activate anything.
When I made the two videos, I updated your application to the latest version. And as you can see, I am still having the same issue with exporting to PDF.

@franco27 thanks a lot! will try to reproduce. Does it happen again if you create a new document like with importing the image you shared? Want to know if it is happening on any document

Yes, on the same document.
I imported the photo three times.

Imported the photo, added only one frame and applied the Bw filter.
The same. I imported the same photo.
The same ...

@franco27 ok... And if you actually export the document. Is the filter correcly applied in the pdf? Or do you have the same issue with the exported pdf (and not just the preview)

@franco27 i might have an idea. In the "preview" can you slide down to open the menu. Then see if black&white or color is selected? If black&white then it is normal. Black&White takes precedence over applied filter (which seems normal to me but maybe not very intuitive)

Yes, you are correct. It was selected in black and white in the preview settings, and when I changed it to color, the images now accurately reflect the images in the document.

Thank you very much


Updating Seldon Community Operator from 2.8 to 3.1

This pull request contains the changes required to update the Seldon Community Operator from 2.8 to 3.1 (CSV versions 0.1.2 to 0.1.3).

@aneeshkp ptal

Note that the deployment name for the seldon controller was changed to get around the issue reported in https://github.com/operator-framework/operator-lifecycle-manager/issues/952 (the selector/labels for the controller deployment changed)

Looks like sedonoperator.crd.yaml needs the status subresource added, this is apparently why the scorecard is failing (there is no status block!)

Thank you @tmckayus - this has been updated with the latest CSV.

/test CVP

/ok-to-test

/retest


Supported Kernel versions

On Travis, our runtime tests suite is broken (63 tests [fail 49]). I investigated it and the problem seems to be the older kernel version used by Xenial (which runs on kernel 4.4). This raises a question: which Kernel versions should bpftrace support?

Good question. A bunch of things, like stacks, tracepoints, and PMCs, won't work on 4.4. I'd go with 4.9 as a minimum. I can update INSTALL.md to point that out, and we can ditch Xenial (4.4) testing.

Is it supported to compile/run using kernel headers of a different version? In my case I build/run in fedora29 docker (linux headers 4.20) on a 4.14 kernel host and see odd results in tracepoints args

It's not supported yet. I'm also not sure we'll be able to support it in the future, but it would be nice to (although there are several challenges to make that happen).

@mmarchini Are you referring to #266? I think other than Alpine static builds, bpftrace should be able to run independently of kernel version (it used to work).

I should have clarified: it's not supported but should work in most cases. If there's difference in the helper functions it might be a problem though. For example, if you build bpftrace on a 4.15 and try to run it on a 5.0, you won't have access to the cgroup builtin (which requires BPF_FUNC_get_current_cgroup_id), even though 5.0 supports it.
Also, if there's a difference in helper function IDs the programs generated by bpftrace would be invalid (but I guess those IDs are unlikely to change).


GET /apis/GROUP/VERSION/RESOURCETYPE - return the collection of all instances of the resource type across all namespaces->GET /apis/GROUP/VERSION/namespaces

GET /apis/GROUP/VERSION/namespaces - return the collection of all instances of the resource type across all namespaces

@atorber Thanks you for your contribution. Could you please sign the CLA before the PR can be reviewed. You can follow the steps documented here: https://git.k8s.io/community/CLA.md

done


Sklearn API: Add option to extend a model

In many cases it is useful to be able to build a model up to X number of trees and then do some analysis to understand the model and then again build a few more trees on top of it and again do some analysis.
It would be useful to be able to do this in xgboost especially in the distributed scenario where things are already slow because of the size of the data.
So, xgboost could have a extend config and when it is true, the model_in is taken and appropriate initializations are done by scoring on the training data. And more trees are built on top of it using the given data.
It would also be useful if users want to make first few trees on data1, and the next few trees on data2. (Something like row sub sampling but with pre-curated data)

I just realized that this is already possible by simply giving a model_in in the Training stage. In such cases, XGBoost already loads the model and builds on top of the model.
Awesome!
Closing this.

This feature doesn't appear to exist for XGBClassifier and it would definitely be helpful for cases where you have a large amount of legacy code built around SKlearn.

I modified the sklearn.py to add this option and save/load model functions same as the classical ones. See if it help :)
https://github.com/benwu232/xgboost/blob/master/python-package/xgboost/sklearn.py

Hi @benwu232
I am not able to access the modified sklearn.py . The above link doesn't work.
Would it be possible to you to make it available?


support updating multiple flake directories simultaneously

Description
This is useful for monorepos containing multiple flakes. For example it might be desired for a nixpkgs update to happen on all sub-flakes at the same time.
Added a new option flake-dirs allowing to specify multiple flake directories to be updated simultaneously via a single PR.
Checklist

[ ] Tested functionality against a test repository (see "How to test changes")
[x] Added or updated relevant documentation (leave unchecked if not applicable)

I did not use the test repo, but this PRs revision is already in use on the dream2nix repo

Closing in favor of #109 (more explanation offered there)


Create mkhananov.toml

Description
All previous genesis validators should name their PRs "Update {validator_alias}.toml for tesntet-15" and provide links to previous PRs merged.
If this is an UPDATE for a previous genesis validator
Checks are made against your net_address. If this has changed since the previous testnet, make sure you provide links of previous prs merged from your previous git username.
Thanks in advance!
Checklist before merging

[ ] Only one toml is added in this PR
[ ] The file being added is indeed a .toml file
[ ] The toml being added is to the correct folder, and only to the correct folder
[ ] The eth_hot_key and eth_cold_key are present
[ ] The email, discord, elements telegram, and twitter fields are present and valid

The transactions.toml file for 0249b85 was deemed invalid with error Invalid signatures: Signatures could not be verified

The transactions.toml file for 0249b85 was deemed invalid with error Invalid signatures: Signatures could not be verified

Can you check second commit 8f5f39a?
Prev commit (0249b85) was wrong (copied from example)

The transactions.toml file for 0249b85 was deemed invalid with error Invalid signatures: Signatures could not be verified

The transactions.toml file for 0249b85 was deemed invalid with error Invalid signatures: Signatures could not be verified

The transactions.toml file for 0249b85 was deemed invalid with error Invalid signatures: Signatures could not be verified


StyleGAN2: ToRGB module with activation?

Hi, thanks for the nice annotated code!
I looked at other implementation and they don't have activation in ToRGB module. Is this intended (or it is applied elsewhere and I missed it?)

Closing because of no reply


BREAKING CHANGE: Migrates action to composite action

This pull request migrates the GitHub action to a composite action, this was done to make it easier for users to install remark-lint presets.

@asbjornu Since to my knowledge a composite action should not magically do things, I added the install_deps flag. Please let me know if you think that is a good solution?


Bump minimum nodejs version supported to match documented value

Closes #3835

Coverage: 68.627% (+0.04%) from 68.589% when pulling a95be2aa43c0440ad062e212261e086c663b161e on version-check into 010c8eccc85a39b0c59a32ba6b0dfa7a4d91ea5b on dev.


Getting "Error: Invalid encrypted text received. Decryption halted" while decryption

I am getting "Error: Invalid encrypted text received. Decryption halted" while decryption. Please note that same encrypted value is getting decrypted successfully in one setup(vm) but its not working in another setup(vm), my _secretKey is same I have not changed any thing.
What could be the reason?

Could you give more information regarding this issue as follows.

The simple-crypto-js version you are using.
Steps to reproduce the error.

My simple-crypto-js version is "2.2.0" in both the env.
Steps to reproduce:
Env1 where encryption and decryption is working as expected:
In this env my simple-crypto-js version is "2.2.0", node version is "10.16.0" and npm version is "6.9.0". I have one encrypted token value which is encrypted using secretKey "abc" and here encryption and decryption is working fine.
Env2 where encryption and decryption is not working as expected:
In this env my simple-crypto-js version is "2.2.0", node version is "8.17.0" and npm version is "6.14.4". While decrypting the same encrypted token value using same secretKey "abc" I am geting "Error: Invalid encrypted text received. Decryption halted"

@email2smohanty I believe your information is invalid in the Env2.
The error Invalid encrypted text received. Decryption halted. is a new kind of error that will only occurs on simple-crypto-js version 2.4.0 or newer. This error will not be thrown if you are using simple-crypto-js version 2.2.0.
Here are few things to mitigate the issue.

Make sure the encrypted token you trying to decrypt is really the one encrypted by simple-crypto-js.
If the simple-crypto-js you use to decrypt is a version prior to 2.2.0, make sure that you also use simple-crypto-js version 2.2.0 or older to do the encryption. It is because since simple-crypto-js version 2.3.0, there was a change in the encryption algorithm that breaks the decryption support of 2.2.0 or older. That means, anything encrypted with simple-crypto-js version 2.3.0 or newer will not be able to be decrypted with simple-crypto-js version 2.2.0 or older. Please read more about that here.

Yes you are correct my simple-crypto-js version was not correct in both the env's hence it was failing, now working so closing this issue.
Thanks for your hint and quick response.

Hey there, I have the same issue but in my case I am using version 3.0.0 to both encrypt and decrypt.
What I do is that using node I encrypt with a 64 byte key, then I save both the cipher text and the key to individual files.
For the decryption part I do it on the browser side. I make a get request using Axios to fetch my two files. I log both strings, and they are the same as the ones in the file.
I have been on this for days now. Do you want me to provide my code so you can see better?

I solved my problem it's fine

@zhamidi Could you please tell me how you fixed the issue? I am also using ^3.0.0 and facing the same issue.

@amitvchaudhary  Well what I found out is that when I fetch my encrypted file with Axios, somehow there are quotes that are added to the string, so I removed them using cryptedjs.substr(0, cryptedjs.length)
But the problem was not coming from the simple-crypto library.


[wip] Windows: system theme

[x] get system theme
[x] disable when high contrast mode
[x]  set theme
[ ]  tweak

Add functions to get window theme and switch light/dark mode.
I implemented it by referring to winit and this.
See also:

https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-rtlgetversion
https://github.com/ysc3839/win32-darkmode

Hi!
Thanks again for taking time and effort to tackle this. This is an important issue we’d love to see it merged in JWM as soon as possible.
I know your branch is still WIP, but @EgorOrachyov and I took a quick look and have a bit of feedback to share so far. I hope you don’t mind.

Early on, we decided to only target Windows 10+, mostly for implementation simplicity and ease of testing. If we only target Windows 10+, it feels that dynamic version check (user32.dll) and uxtheme.dll are excessive. @EgorOrachyov thinks linking uxtheme.dll in CMakeLists.txt is enough, what do you think?

Dark/Light are not the only flags that modern OSes use to control apps’s look. Another two are High Contrast and Inverted colors. Do you think you can accomodate that in the API? One option might be to make Theme a data class with three booleans: isDark, isHighContrast, isInverted? This Electron seems to be doing the same

This is minor, but we are using 4 spaces indentation in C++ and { on the same line. It would be great for consistency if you switched to that style also.

Thanks again and glad to see you among contributors!

@tonsky
Thank you for helpful feedback!

it feels that dynamic version check (user32.dll) and uxtheme.dll are excessive.

Ok, I will separate function respectively and use only uxtheme.dll part for the time being. Or, should I drop current implementation?

Dark/Light are not the only flags that modern OSes use to control apps’s look.

I agree with you. It would be better. I will check Electron implementation and fix my code.

This is minor, but we are using 4 spaces indentation in C++ and { on the same line.

Sorry 🙇

https://github.com/electron/electron/blob/c0e72bd3357c1edaff30087307690d4a113bd01a/docs/tutorial/dark-mode.md
https://github.com/electron/electron/blob/44491b023ac2653538b7ac36bb73f3085a938666/shell/browser/win/dark_mode.cc
https://github.com/electron/electron/blob/44491b023ac2653538b7ac36bb73f3085a938666/shell/browser/api/electron_api_system_preferences.cc

@tonsky
After investigating Windows API and Electron implementation, I found that Windows does not offer  API to check whether or not inverted color mode is enabled. Besides, it seems electron uses chromium properties to determine InvertedColorScheme mode.
Perhaps I may miss something, but I think isInverted is not as much relevant as isHighContrast since Windows disables dark mode when it is in high contrast mode whereas it does not when in inverted color mode.
Thus, could I leave isInverted out  for this PR?

Thus, could I leave isInverted out for this PR?

Sure, we can come back to it later

From what I see on Electron, not all of these properties are supported on all platforms. It might be that Windows doesn’t even have inverted mode (does it?)

As far as I konw, Windows does have invert color scheme(ctrl+alt+I), but  I could not find a way to programatically detect/control it.(There is InvertRect api, but it does not suit for use case.   )
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-invertrect
I also have a quick look at chromium implementation.
https://chromium.googlesource.com/chromium/src/+/refs/heads/main/ui/native_theme/native_theme_win.cc

I’m not sure how is Github supposed to communicate when this is ready to review, so please let me know!
So far, I took a quick look and have a few questions:

How do you see AppearancePreference might be used?
In which cases Theme::SYSTEM is used?

@tonsky  I think this PR becomes a bit messy, so I will separate changes in other PRs.


Rename HTTP trait alias fns

This prevents name conflicts with the main traits.
Resolves #60
cc/ @shepmaster

Seems believable to me!


Radio groups: how can I know which of the radios was selected?

I have something like this:

And this code:
<radio name="deal-type" @input="changeDealType(checked)">
    {{ dealType.description }}
</radio>

Is there any way I can tell which of the radios on my radio group was checked? For all I can tell the @input emitted event only allows me to bring checked/unchecked status for this particular radio button, but I can't tell apart which one was clicked.

You have some options:

Use v-model and value properties (like in the demo).
Access to original DOM element through $event: https://vuejs.org/v2/guide/events.html#Methods-in-Inline-Handlers
Use value property that is returned on input event:

<radio name="deal-type" value="one" @input="changeDealType">one<radio>
<radio name="deal-type" value="two" @input="changeDealType">two<radio>

@mariomka thanks - ended up using the third method like this, inside a loop:
<radio name="deal-type" :checked="(dealType.id === selectedDealType.id)" :value="dealType.id + ''" @input="changeDealType">
    {{ dealType.description }}
</radio>

I had to tweak the value a bit as it only accepts strings and I would be sending a Number but it does the job well.

I'll remove type checking in value property, isn't helpful...


Implement cowboy_static:upgrade/5

Hi!
I have a rest handler where the user can upload,download,list and delete files. To the download operation i don't want to reimplement what already works well in the cowboy_static module.
So i do this:
	<<"GET">> ->
            case cowboy_req:binding(name, Req) of
                undefined ->
                    {jsone:encode(getFileNames(Folder)), Req, Folder};
                BinFileName ->
                    FileName = erlang:binary_to_list(BinFileName),
                    Path = Folder ++ "/" ++ FileName,
                    {{switch_handler, cowboy_static, {file, Path, []}}, Req, State}
            end;
	<<"POST">> ->
		...
	<<"DELETE">> ->
		...

This fails with an
undefined function cowboy_static:upgrade/5
I know i could put the download operation into an another cowboy_static handler, but this single module criteria is crucial.
I'm not qualified enough to make a PR. Or is there an another solution?

I'm not sure it makes sense to go from a cowboy_rest module to another cowboy_rest module. On the other hand you can just call the functions in cowboy_static when the method is GET.

My module is a cowboy_rest nodule, if call the cowboy_static:init i get an error, because the term is not in the correct format. I tried to convert it to the right format, but it didn't work. And if i write the module as a cowboy_handler, the framework somehow wants to call the upgrade in my module(I'm not sure why) witch is not exist.
Anyway it turns out, it is not so important to make all the functionality in a single module. So I made the download with a cowboy_static module. Anyways, it works, so the issue can be closed.

I'm not sure I understand, what error do you get when calling cowboy_static:init/2? You need to provide the correct initial state of course, the same you'd do from the routes.

It looks like my initial code example is bad (failed to CTRL + C, CTRL + V), because Folder == State. So, in my module the env/opts variable is the folder's path. If i call the cowboy_static:init/2 function i will lose this variable after the first request. Therefore i tried to convert the result of this function to the right format, with my env/opts variables. I completely missed the fact that the cowboy_rest module does the file transfer. I thought this function fills the response body etc, and after that i can convert its return value, to return my Folder variable. But that obviously wouldn't work with big files, so this method is understandable.

So I think we're good here? Closing, thanks!


added store-locator sample application (skarra@)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

After discussing with @dreamorosi we believe this may be best not merged with our sample's repo as it is redundant to the existing quick start. I will add some comments to your blog post about where we should put this.


Initial formidable setup

Formidable codes implemented it works fine, uploads a file, it has some bugs in its filters,it throws error without upload canceling, it takes time to find a solution, any practicable suggestion is welcomed.

Woooo!!!! Activity at 12am, you are that geek in the dark basement! 👍  @Yassermorteza


My Workplans - sort by

need to be able to sort by:

alphabetical
worktype
next Milestone date

As a (type of user)
I want (goal)
so that (reason/ why/ value)
Acceptance Criteria
Scenario 1:
GIVEN ... (you or your condition)
WHEN ... (what you do)
THEN ... (what you see)
Scenario 2:
xxxxxx
Validation Rules?
(If yes, list here)
Screenshot
(Link above will always be the most up-to-date version.)

Hey team! Please add your planning poker estimate with Zenhub @jadmsaadaot @saravanpa-aot @TomChapmanGov


.env not working at all windows

Can you reproduce the problem with latest npm?
Yes I just installed Node v6.10.3 npm 3.10.10
Description
I have a file .env in the root of a brand new create-react-app that looks like this:
API_HOST=http://localhost:5000

I have added the following to the index.js file:
console.log(process.env)

I do not get anything but the default environment variables logged out:

Expected behavior
Expected the API_HOST variable to be available on process.env
Actual behavior
I do not get anything but the default environment variables logged out:

Environment
Run these commands in the project folder and fill in their results:

npm ls react-scripts:
`--<EMAIL_ADDRESS>

node -v:
v6.10.3

npm -v:
3.10.10

Operating system:
Edition: Windows 10 Enterprise
Version: 1607
OS Build: 14393.1198

Browser and version:
Google Chrome
Version 58.0.3029.110 (64-bit)

Reproducible Demo
Here is the repo:
https://github.com/sethreidnz/create-react-app-dotenv-repro
The .env file I am using:
https://github.com/sethreidnz/create-react-app-dotenv-repro/blob/master/.env
The place I am trying to use the process.env:
https://github.com/sethreidnz/create-react-app-dotenv-repro/blob/master/src/index.js
This is potentially related to this issue:
https://github.com/facebookincubator/create-react-app/issues/2230

@sethreidnz It should be REACT_APP_API_HOST

Thank you! I did read that part but for some reason didn't think about it in the context of the .env files... Idiot!


-m only supports one-word messages

using the -m flag only passes through a single word to the push notification. For example:
$ ./pushbullet-exit.sh -m "2 words" only brings a notification with "2" in the body.

This is something either with the parsing of the arguments or with a malformed curl command.

Whoops. Looks like I forgot to escape $OPTARG in the middle of the getopts loop


lift1 bug from purescript-formatters

As minimal a reproduction as I could come up with:
import Prelude

import Control.Monad.Reader as R
import Control.Monad.State as S
import Control.Monad.Trans.Class (lift)
import Data.Either (Either)
import Parsing as P

-- This can be any `MonadTrans` instance (probably... `State` and `Except` here also reproduce at least).
-- The argument is required for reproduction.
exactLength :: forall a. a -> R.Reader Unit Unit
exactLength _ = lift (pure unit)

unformatCommandParser :: P.ParserT String (S.State Unit) Unit
unformatCommandParser = do
  _ ← pure exactLength
  lift (pure unit)

boom :: Either P.ParseError Unit
boom = S.evalState (P.runParserT "" unformatCommandParser) unit

Error:
TypeError: lift1(...) is not a function
    at file:///W:/.../Test.Main/index.js:13:122
    at go (file:///W:/.../Parsing/index.js:160:20)
    at file:///W:/.../Control.Monad.State.Trans/index.js:84:62
    at file:///W:/.../Control.Monad.Rec.Class/index.js:145:20
    at file:///W:/.../Control.Monad.State.Trans/index.js:88:12
    at file:///W:/.../Control.Monad.State.Trans/index.js:19:119
    at file:///W:/.../Test.Main/index.js:14:172
    at file:///W:/.../Test.Main/index.js:14:193
    at ModuleJob.run (node:internal/modules/esm/module_job:198:25)
    at async Promise.all (index 0)

Generated source:
import * as $runtime from "../runtime.js";
import * as Control$dMonad$dRec$dClass from "../Control.Monad.Rec.Class/index.js";
import * as Control$dMonad$dState$dTrans from "../Control.Monad.State.Trans/index.js";
import * as Data$dIdentity from "../Data.Identity/index.js";
import * as Data$dUnit from "../Data.Unit/index.js";
import * as Parsing from "../Parsing/index.js";
const lift1 = /* #__PURE__ */ (() => {
  const map = Control$dMonad$dState$dTrans.bindStateT(Data$dIdentity.monadIdentity).Apply0().Functor0().map;
  return m => (state1, v, lift$p, v1, done) => lift$p(map(a => v2 => done(state1, a))(m));
})();
const pure1 = /* #__PURE__ */ (() => Control$dMonad$dState$dTrans.applicativeStateT(Data$dIdentity.monadIdentity).pure)();
const exactLength = v => v$1 => Data$dUnit.unit;
const unformatCommandParser = (state1, more, lift1, $$throw, done) => more(v1 => more(v2 => lift1(pure1(Data$dUnit.unit))(state1, more, lift1, $$throw, done)));
const boom = /* #__PURE__ */ (() => Parsing.runParserT(Control$dMonad$dState$dTrans.monadRecStateT(Control$dMonad$dRec$dClass.monadRecIdentity))("")(unformatCommandParser)(Data$dUnit.unit)._1)();
export {boom, exactLength, lift1, pure1, unformatCommandParser};

It may be something to do with parsing, since if you change the outer transformer of unformatCommandParser to StateT, ReaderT, ExceptT it doesn't error. There are no coercions or parsing-specific FFI in the relevant code in parsing though, so I'm blaming the optimizer now. :wink:

Seems to be a hygiene issue. The inner lifts1s are shadowing the outer lift1.

Yeah, that's what I figured, since I think the outer lift1 is unused just now. I tried some manual edits to see if I could fix it, but didn't get anywhere with that.

Although I had second thoughts about that when I discovered swapping out ParserT also removed the error.

There is definitely something more involved going on here. I wasn't able to reproduce it through a fairly straightforward name clash with top-level declarations.

I'm not sure if this helps, but I thought I'd share anyways. I generated a snapshot of the above reproducible example. Then I modified some various things within Parsing.purs to see what changed in the outputted snapshot.
When I make this change to ParserT's MonadState instance (i.e. I'm inlining ParserT's MonadTrans instance's lift into it)...
instance (MonadState t m) => MonadState t (ParserT s m) where
- state k = lift (state k)
+ state k = ParserT
+   ( mkFn5 \state1 _ lift' _ done ->
+       lift' $ map (\a _ -> runFn2 done state1 a) (state k)
+   )

... I get this diff in the snapshot:
-const unformatCommandParser = (state1, more, lift1, $$throw, done) => more(v1 => more(v2 => lift1(pure1(Data$dUnit.unit))(state1, more, lift1, $$throw, done)));
+const unformatCommandParser = (state1, more, lift,  $$throw, done) => more(v1 => more(v2 => lift1(pure1(Data$dUnit.unit))(state1, more, lift,  $$throw, done)));

So, at the very least, there's a way to fix this immediate issue. However, it doesn't fix the root issue.

Yeah, I suspect it's an issue with codegen somewhere. In the original example, the top-level lift is left in the module, which indicates that hygiene is working correctly in semantics. That is, it sees top-level lift as being in use, however after codegen it appears unused. I'll need to verify that by inspecting the AST for unformatCommandParser. There's probably some path in codegen where the wrong env is being threaded through.


Added a QuickStart to the README.md

Added a Quick Start section to the README in an effort to make it faster for someone to pick up the tool.

Added an example English to French Verb conjuration file, a common use-case for this type of tool.

Minor documentation edits

Awesome, thanks for your contribution Vinay!


Workaround for light power-on default state

Folks, I would like your thoughts on using homebridge-hue to overcome the issue of the Hue light power-on defaults.
Note: by "power on" or "power off" I mean connecting/disconnecting a light to/from the mains power, e.g. by using a traditional wall switch (so 20th century ;-).
Issue
When powered on, most lights, notably the Philips Hue bulbs and spots, turn on using some unholy power-on defaults for brightness and colour, instead of using the previous light state (like when turning a light on through the Hue bridge).  This is a nuisance when powering the lights on using a wall switch, but becomes plainly obnoxious when mains power is restored after an outage.  Of course, Murphy will make sure this happens in the middle of the night or when you're away for a couple of days.
Even though this issue is by far the largest topic on the Hue developer's forum, it doesn't look like Philips will be changing this behaviour.
For each Zigbee device (lights but also switches and motion sensors), the Hue bridge keeps track whether that device is reachable.  When the Zigbee communication to that device is interrupted, e.g. when a light is powered-off, the Hue bridge sets the reachable state attribute to false.  When the communication is restored (after the light is powered-on), the Hue bridge sets reachable to true.  Note that it typically takes some (several seconds up to a minute?) time for the bridge to update reachable after a light is powered off or on.
Possible Solution - scenario 1
Most of the workarounds suggested in the Hue developer's forum involve a programme monitoring the light state for the unholy power-on default state, overwriting it with some preferred state.  As homebridge-hue already monitors the light states, this functionality could be added to it.
When a light state changes to its power-on defaults, homebridge-hue could (re-)apply the previous light state from HomeKit to the Hue bridge, rather than propagating the Hue bridge change to HomeKit.  When combined with issue #40, one could even change the desired power-on state while the light is powered off.  This would work for unholy power-on defaults, that will never be set from any Hue app.  Alternatively, homebridge-hue would only do it when reachable was false, but then it might miss a brief power outage, where the bridge would not change reachable.
The main limitation of this approach is the time lag between powering on the light and the Hue bridge re-establishing communication with the light and updating the light state.
Possible Solution - scenario 2
I actually have a "heartbeat" timer schedule and a number of rules on my Hue bridge, that boldly recall a "heartbeat" scene with the desired light states every 5 seconds.  Not only does this overwrite any unholy power-on details within 5 seconds, it also undoes any pranks my kids are playing with the light colours.  For any legit change, I suspend this heartbeat (1), do the change (2), update the heartbeat scene (3), and resume the heartbeat (4), all from Hue bridge rules.  When we want to play with the light colours, I simply disable the heartbeat timer schedule (from HomeKit as homebridge-hue can expose schedules).
The main limitation of this scheme is that all legit changes have to go through Hue bridge rules (so they can suspend the heartbeat).  This is not as bad as it sounds in my case, where these changes are triggered by Hue motions sensors, Hue dimmer switches, or through virtual switches (CLIPGenericFlag sensors).  Each of these sensors fires a rule on the bridge for (2) anyways.  I use a CLIPGenericFlag sensor to suspend the heartbeat, so I only need to add a single action for (1) to each of these rules setting this flag; (3) and (4) are triggered automatically a fixed time after this flag has been set.  I had some challenges with the timing of updating the scene, especially for changes with longer transition times (typically when dimming the lights using the Hue dimmer switch), but it's working quite to my satisfaction.
homebridge-hue could implement a similar scheme: applying a heartbeat Hue bridge scene on every heartbeat.  When any change would be made from HomeKit, homebridge-hue would suspend the heartbeat (1), propagate the change to the Hue bridge (2), update the Hue bridge heartbeat scene (3), and re-enable the heartbeat (4).  Effectively, this would treat any change from HomeKit as legit, and overwrite any other change, including those from Hue bridge rules for motion sensors and dimmer switches.  So these changes would need to be enacted through HomeKit rules instead.  Alternatively, homebridge-hue would use a CLIPGenericFlag sensor to suspend the heartbeat, so bridge rules can make legit changes just as with the heartbeat implemented on the Hue bridge.
Help wanted
I like to hear your thoughts on this.  Would either scenario work in your setup?  Do you interact with your lights exclusively from HomeKit?  Using Hue switches and motion sensors?  From Hue apps?

I like scenario 2 that avoids the potential long delay.
My setup and usage:
I have one tap switch and 7 or so dimmer philips dimmer switches.
Personally i use a combination of apps.  Homekit apple home app, Philips hue app, iconnecthue and iHue. Wife likes iHue.  To set colors/temp though i use philips hue app or the other apps that work with philips hue api's directly (iconnecthue,ihue).  I also use the ability to change scenes of the tap and dimmer switches.

After being woke up last night to a room with lights blazing, I vote for scenario 1.  I'm only using HomeKit for my lights as well.

I assume that was due to a power outage?  I'm afraid scenario 1 will be of limited use here.
Unless you have a no-break installation for the server running homebridge (and for the Hue bridge), it would take some time (minutes?) after power has been restored before homebridge is running again.  Also homebridge-hue will have lost it's memory, including the previous light state.  Even with dynamic platform accessories (issue #4), the accessory context would only be persisted when homebridge exits cleanly.  I don't know if persisting the context on every change is feasible or supported by the homebridge api.
I'm not sure what light state the Hue bridge reports just after it has started, but I doubt it will show reachable as false.  Depending on the number of lights connected to your bridge, it might take some minutes before the bridge will have polled the lights and report the power-on state.
Considering the above, I think the best way to cope with a power outage is simply to force all lights off on startup of the Hue bridge.  On startup, the bridge initialises all CLIPGenericStatus sensors to 0 and sets the Daylight sensor when it connects to the meethue portal.  This can be used to create a startup rule on the Hue bridge:

Create a CLIPGenericStatus sensor Boot Time, say /sensors/2, to store whether the startup rule has been fired.  I use a status rather than a flag, to prevent it being exposed as switch to HomeKit as it shouldn't be updated manually.  If you expose the status to HomeKit, its Last Updated characteristic will show the time the bridge booted.
Create the startup rule to set the status and turn off the lights when the Daylight sensor changes and the status hadn't been set.

{
  "name": "Boot Time",
  "conditions": [
     {
      "address": "/sensors/1/state/lastupdated",
      "operator": "dx"
    },
    {
      "address": "/sensors/2/state/status",
      "operator": "eq",
      "value": "0"
     }
  ],
  "actions": [
    {
      "address": "/sensors/2/state",
      "method": "PUT",
      "body": { "status": 1 }
    },
    {
      "address": "/groups/0/action",
      "method": "PUT",
      "body": { "on": false }
     }
  ]
}

Tks Erik for this, let me give it a try in my setup

On Jul 22, 2017, at 1:07 AM, Erik Baauw<EMAIL_ADDRESS>wrote:
I assume that was due to a power outage? I'm afraid scenario 1 will be of limited use here.
Unless you have a no-break installation for the server running homebridge (and for the Hue bridge), it would take some time (minutes?) after power has been restored before homebridge is running again. Also homebridge-hue will have lost it's memory, including the previous light state. Even with dynamic platform accessories (issue #4 https://github.com/ebaauw/homebridge-hue/issues/4), the accessory context would only be persisted when homebridge exits cleanly. I don't know if persisting the context on every change is feasible or supported by the homebridge api.
I'm not sure what light state the Hue bridge reports just after it has started, but I doubt it will show reachable as false. Depending on the number of lights connected to your bridge, it might take some minutes before the bridge will have polled the lights and report the power-on state.
Considering the above, I think the best way to cope with a power outage is simply to force all lights off on startup of the Hue bridge. On startup, the bridge initialises all CLIPGenericStatus sensors to 0 and sets the Daylight sensor when it connects to the meethue portal. This can be used to create a startup rule on the Hue bridge:
Create a CLIPGenericStatus sensor Boot Time, say /sensors/2, to store whether the startup rule has been fired. I use a status rather than a flag, to prevent it being exposed as switch to HomeKit as it shouldn't be updated manually. If you expose the status to HomeKit, its Last Updated characteristic will show the time the bridge booted.
Create the startup rule to set the status and turn off the lights when the Daylight sensor changes and the status hadn't been set.
{
"name": "Boot Time",
"conditions": [
{
"address": "/sensors/1/state/lastupdated",
"operator": "dx"
},
{
"address": "/sensors/2/state/status",
"operator": "eq",
"value": "0"
}
],
"actions": [
{
"address": "/sensors/2/state",
"method": "PUT",
"body": { "status": 1 }
},
{
"address": "/groups/0/action",
"method": "PUT",
"body": { "on": false }
}
]
}
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/ebaauw/homebridge-hue/issues/41#issuecomment-317155887, or mute the thread https://github.com/notifications/unsubscribe-auth/AS5CmHWg1PLbIW36hKHpHSc7PKZghshKks5sQYN9gaJpZM4LdNvK.

Scenario 2 seems like it is a) faster, and b) more flexible for different use cases. The only drawback, and it seems like a big one, is that it requires a lot more work to setup. At the very least, it would need some thorough step-by-step walkthroughs and documentation (btw, happy to help with those!).
On a personal note, I never realized until last night how big of an issue this could be. My lights came on after a split-second power outage (Scenario 1 wouldn’t have worked in this case), and Siri on my Apple Watch was still offline due to the router coming back online, so I had to fumble around for my phone and manually turn the lights off. (As a side note, I’m looking into a UPS device to keep my router/hue hub/etc. powered on in this scenario) Meanwhile, all of the lights still would have been power cycled, so Scenario 2 seems like it would be very helpful!

Scenario 2 seems like it is a) faster, and b) more flexible for different use cases. The only drawback, and it seems like a big one, is that it requires a lot more work to setup.

Indeed.  Scenario 1 has a lousy user experience, and 2 is very, very cumbersome and has some technical challenges:  The solution of storing a scene with every change might wear the lights, as they store scenes in non-volatile memory, which has a limited number of write cycles.  Furthermore, I still haven't been able to get rid completely of the occasional "ghost" effect, when light states haven't been updated properly (due to longer transition times?) when storing the heartbeat scene, causing the lights to flash or blink when subsequently recalling the heartbeat scene.  I've actually kept the heartbeat timer on my Hue bridge disabled lately...
Maybe the best alternative of reacting to a power failure is to force the lights off as soon as possible after power has been restored.  I think the Hue bridge Boot Time rule described above, like scenario 2, will take about a minute (for the Hue bridge to startup, connect to the Internet and set the Daylight sensor based on your location).  That might be good enough when being away from home, but way too long when sleeping.  And it won't work with deCONZ...
One of the many advantages of deCONZ over the Hue bridge is, that is let's you to pair the Hue dimmer switch (or any other switch like the Ikea Trådfri remote) simultaneously with the deCONZ gateway and with a group.  That means that the switch still works when the gateway is down, albeit at limited functionality (like when the dimmer is used standalone, without a bridge).  Instead of reaching for you phone, you could reach for the switch.

I’m looking into a UPS device to keep my router/hue hub/etc. powered on in this scenario)

That sounds like a great idea, but keep in mind that the lights won't be powered anyways.  The main benefit of course would be that homebridge continues running and could react when power comes back on.  Still, homebridge would need a signal that power is back on, other than looking at light power-on or reachable state.  In scenario 2, homebridge-hue or the Hue bridge would simply continue to recall the heartbeat scene every 5 seconds, so that could still be a shorter reaction time.
When running homebridge on a Raspberry Pi (the same running deCONZ anyways), the cheapest UPS-like solution (~ $20) would be a power bank that supports pass-through charging, in combination with some software that monitors the ethernet port to detect power failure/restoration, as described here.  The easiest integration would be to restart homebridge when power is restored, and have homebridge-hue force-power-off the lights on startup (configurable though config.json, of course).
Bloody Amazon won't ship the mentioned power banks to the Netherlands, though.  I did successfully run my Raspberry Pi with RaspBee board powered by a 2A Urban Revolt power bank (moving it next to my lights for touch linking), but that power bank doesn't support pass-through charging.

I have a completely new solution, which might be combined with either above or with something else. I run my lighting on UPS. Led bulbs are so low in power that UPS is an easy option. However, this does leave some issues. Whilst it is easy to move a complete lighting circuit to UPS, this is not easy with table lamps etc which are just connected to a convenient outlet. It does not resolve the eventual battery depletion of the UPS but perhaps additional batteries would. There are some accessories such as ceiling fans which are best defaulted off?

Interesting approach.  However, here in the Netherlands, lighting and power outlets typically share circuits.  The outlets are wired from the central lighting point on the ceiling.
I finally got a pass-thru powerbank, which seems to be able to power my Raspberry running deCONZ and homebridge for at least 20 hours.  Checking for the ethernet link status (with no UPS on the network switch) seems reliable enough to detect a power outage and subsequent restore.
I haven’t tried any automation yet, but I guess I would be keeping a CLIP flag or status with the current power situation (normal, failure, just restored), and start broadcasting off to group 0 as soon as power has been restored for a minute or so.  I need to check if deCONZ actually issues a broadcast for group 0 - some lights and plugs don’t support groups.  Alternatively, I could create a resourcelink (cf. the blacklist) with resources to turn off on power restore.
deCONZ does have a Daylight sensor now, and it can be used for Boot Time, just as the Daylight sensor on the Hue bridge.  The rules above work, but I find I’m restarting deCONZ way more often than experiencing power outages.  I’m actually using a flag now, instead of a status.  By setting swversion to 0, and manufacturername to homebridge-hue, the flag will be exposed read-only to HomeKit.

One advantage of involving a UPS might be that it is very good at detecting a power fail and there is a NUT plugin for Homebridge that can provide status data to Homekit. However, you need a good use case to buy a UPS and unRaid/Plex is mine!
On a side note I'm very interested in your experience of deCONZ as I decided that it was probably the best solution to integrate some Fibaro modules (shutter controls) as the latest Fibaro kit is Bluetooth and the range would possibly be an issue. The older kit is reasonably priced but requires a bridge from Z-Wave and Homebridge!

On a side note I'm very interested in your experience of deCONZ as I decided that it was probably the best solution to integrate some Fibaro modules (shutter controls) as the latest Fibaro kit is Bluetooth and the range would possibly be an issue. The older kit is reasonably priced but requires a bridge from Z-Wave and Homebridge!

I have no experience with Z-Wave.  deCONZ speaks ZigBee, not Z-Wave.  There's various ZigBee-based shutter controls, but we haven't integrated any of them in deCONZ yet.
In my experience, Bluetooth (even BTLE) isn't the right protocol for home automation, it's simply not responsive enough.  I have some Elgato devices (Eve Energy, Eve Door) that natively support HomeKit over BTLE.  I haven't run into any range issues (they're close enough to my AppleTV), but it takes at least two seconds before the door sensor reports that the door has been opened.  The ZigBee-based Xiaomi door sensor works immediately (and is five times less expensive).  Similarly, when instructed to turn on, the Eve Energy takes 2 to 7 seconds to react.  With the inclusion of fakegato-history in homebridge-hue, ZigBee based plugs are almost as functionally rich, and react immediately.

I haven’t tried any automation yet, but I guess I would be keeping a CLIP flag or status with the current power situation (normal, failure, just restored), and start broadcasting off to group 0 as soon as power has been restored for a minute or so

Using the Raspberry Pi UPS solution, I created an initial automation to power off the lights automatically after power has been restored.

Make sure you've installed homebridge-hue (or homebridge-hue-utils) and that you've created a username for ph;
After installing upsd, add the following line to /usr/lib/upsd/power_back.  The script runs as root, hence the su - pi:su - pi -c "ph put /sensors/100/state '{\"flag\": true}'"

Create a series of rules, using the script from ph.sh:$ . ph_rules.sh
$ ph_rules_power 100

Make sure, your Raspberry's WiFi is enabled, and run journalctl -afn 1000 -u upsd to monitor the upsd daemon and unplug and reconnect the ethernet cable:$ journalctl -afn 1000 -u upsd
May 09 12:13:11 pi2 upsd[417]: There is a power outage right now.
May 09 12:13:11 pi2 upsd[417]: The estimated current battery charge level is 100 %.
May 09 12:13:11 pi2 upsd[417]: There are 18:00:00 hours remaining before the battery will be empty.
May 09 12:13:11 pi2 upsd[417]: If the battery should actually run empty, appropiate action will be taken.
May 09 12:13:17 pi2 upsd[417]: The power outage is over now. It could be successfully bridged over by using the battery.
May 09 12:13:17 pi2 upsd[417]: The outage lasted for 00:00:06 hours.
May 09 12:13:17 pi2 upsd[417]: The estimated battery charge level decreased from 100 to 99 % during the outage.
May 09 12:13:17 pi2 upsd[417]: The system could have run for 17:59:53 more hours before the battery would have been empty.
May 09 12:13:17 pi2 su[30340]: Successful su for pi by root
May 09 12:13:17 pi2 su[30340]: + ??? root:pi
May 09 12:13:17 pi2 su[30340]: pam_unix(su:session): session opened for user pi by (uid=0)

Check that the rules have fired:$ ph get /rules
"241": {
  "actions": [
    {
      "address": "/groups/0/action",
      "body": {
        "on": false
      },
      "method": "PUT"
    }
  ],
  "conditions": [
    {
      "address": "/sensors/100/state/flag",
      "operator": "eq",
      "value": "true"
    },
    {
      "address": "/sensors/100/state/lastupdated",
      "operator": "dx"
    }
  ],
  "created": "2018-05-09T10:09:47",
  "lasttriggered": "2018-05-09T12:13:19",
  "name": "Power 1/5",
  "periodic": 0,
  "status": "enabled",
  "timestriggered": 2
},
"242": {
  "actions": [
    {
      "address": "/groups/0/action",
      "body": {
        "on": false
      },
      "method": "PUT"
    }
  ],
  "conditions": [
    {
      "address": "/sensors/100/state/flag",
      "operator": "eq",
      "value": "true"
    },
    {
      "address": "/sensors/100/state/lastupdated",
      "operator": "ddx",
      "value": "PT00:00:02"
    }
  ],
  "created": "2018-05-09T10:09:47",
  "lasttriggered": "2018-05-09T12:13:21",
  "name": "Power 2/5",
  "periodic": 0,
  "status": "enabled",
  "timestriggered": 3
},
"243": {
  "actions": [
    {
      "address": "/groups/0/action",
      "body": {
        "on": false
      },
      "method": "PUT"
    }
  ],
  "conditions": [
    {
      "address": "/sensors/100/state/flag",
      "operator": "eq",
      "value": "true"
    },
    {
      "address": "/sensors/100/state/lastupdated",
      "operator": "ddx",
      "value": "PT00:00:04"
    }
  ],
  "created": "2018-05-09T10:09:47",
  "lasttriggered": "2018-05-09T12:13:23",
  "name": "Power 3/5",
  "periodic": 0,
  "status": "enabled",
  "timestriggered": 3
},
"244": {
  "actions": [
    {
      "address": "/groups/0/action",
      "body": {
        "on": false
      },
      "method": "PUT"
    }
  ],
  "conditions": [
    {
      "address": "/sensors/100/state/flag",
      "operator": "eq",
      "value": "true"
    },
    {
      "address": "/sensors/100/state/lastupdated",
      "operator": "ddx",
      "value": "PT00:00:06"
    }
  ],
  "created": "2018-05-09T10:09:48",
  "lasttriggered": "2018-05-09T12:13:25",
  "name": "Power 4/5",
  "periodic": 0,
  "status": "enabled",
  "timestriggered": 3
},
"245": {
  "actions": [
    {
      "address": "/groups/0/action",
      "body": {
        "on": false
      },
      "method": "PUT"
    },
    {
      "address": "/sensors/100/state",
      "body": {
        "flag": false
      },
      "method": "PUT"
    }
  ],
  "conditions": [
    {
      "address": "/sensors/100/state/flag",
      "operator": "eq",
      "value": "true"
    },
    {
      "address": "/sensors/100/state/lastupdated",
      "operator": "ddx",
      "value": "PT00:00:08"
    }
  ],
  "created": "2018-05-09T10:09:48",
  "lasttriggered": "2018-05-09T12:13:27",
  "name": "Power 5/5",
  "periodic": 0,
  "status": "enabled",
  "timestriggered": 3
}

When testing with the network cable, you can actually observe from HomeKit that the flag turns on for some 10 seconds and then turns off again.  Of course, on a real power outage, your WiFi will fail as well.

 As you point out Z-Wave is for Fibaro and Zigbee is of course Hue. On the Zigbee front I search for reasonably priced wall switches and an interface (waiting for the new Philips partner products and an advance in the number of supported switches) whilst Z-Wave does seem to cover a lot of other stuff including the old Fibaro range. Totally agree about BLE, just tried a Koogeek door/window sensor and immediatley realised I need a Homehub to interface it!
Had two power outages the other night and providing the network infrastructure is on UPS a Siri 'all light off' works well. I have three Hue bridges operating which is a management problem. How would that scenario impact your solutions?

Hi, what about that? https://www.reddit.com/r/Hue/comments/9btzb6/hue_announces_poweron_behavior_hue_lights_will/

That's good news!  Power-on to the previous settings, apparently through a firmware upgrade of the bulbs.  I'll need to move all my Hue lights from deCONZ to the Hue bridge for the upgrade and then back again...
Nothing yet on the Hue developers forum, though.  From the video (https://youtu.be/e6fkmQHZWpE) it looks like there will be a setting to choose between the current default power on behaviour or power on to the previous settings.  We'll have to change deCONZ to provide this setting through their API as well, and maybe change homebridge-hue to expose this setting to HomeKit.

Philips say: Hey David, the new ‘power on’ option will be rolled out towards the end of the year. Since we will enable this feature on all the official Hue lamps that we have ever released, the roll out procedure takes some time. We will keep you posted when the feature is available.

The new firmware is available here in the Netherlands.  See https://github.com/dresden-elektronik/deconz-rest-plugin/issues/1014.
As far as I can tell, at ZigBee level you can specify the power-on settings for state.on, state.bri, state.ct, and state.xy, either to a predefined value, or to the previous value (from before the light was powered off).  Although I haven't seen any documentation, the power-on settings for on and bri seem standard: my IKEA Trådfri bulbs and ubisys D1 dimmer have implemented them as well.  The current (previous) firmware for the Hue lights already supports the power-on setting for ct.
I'm not sure if I need to expose these through homebridge-hue - you probably want to set them only once (of course, after playing with the settings initially).  I think it might be sufficient to document how to do this using ph, once deCONZ supports this.  This already works for the Hue bridge.


Resource Object Functions Need Modification

As always, thanks SO much for creating this API and its progeny!
I've found when using Member() for googleadmindirectoryv1.auto and Event() for googlecalendarv3.auto that I've had to modify the functions to get them to not throw errors when creating members using the Google AdminDirectory API and events using the Google Calendar API. One modification has been removing the "kind = admin#directory#member" and "kind = calendar#event" from each otherwise I receive the error "object 'admin#directory#member' not found" and "object 'admin#directory#event' not found". Perhaps double quotes could fix this but removing the parameter has worked fine too.
Also, the Event() function has several parameters defaulting to false and true (without quotes) which I've replaced with FALSE and TRUE because of similar "object not found" errors.
Finally, the Event() transparency parameter defaults to opaque which I replace with "opaque".
I've found easy workarounds so no big deal. Thanks!

Thats great feedback thanks :)  Yes some auto-generated functions fail since they are aimed at Java instead but hopefully still worth doing, I find the documentation of the arguments the biggest time saver.  I will see if I can incorporate the above though in the next version.


git integration not working (loading?) in VSCode

VSCode Version: 1.12.2
OS Version: Manjaro 17.0.1

Steps to Reproduce:
Not sure about this, because I can't reproduce on another machine

Open VSCode to a directory with a git repository

Expected Behavior:
Git tool at the bottom left appears, and Git pane shows changes.
Sometimes the tool takes a moment to become available, but in my case it is not showing even after an extended period of time.
Actual behavior:
Git pane is unresponsive, and there is no git tool at the bottom left.

@0xFireball Can you please open developer tools and see if there are any errors. You can open dev tools as follows

Open command pallette
Type Developer tools and select Developer: Toggle Developer Tools

I did not see any errors.
Oddly enough, after enabling and disabling legacy Git, it started working again (???)

Hmm that's strange.


Different layout mode and sorting for each folder

I would like to be able to use different layout modes and sorting in each folder, like in file explorer.

We can definitely explore this but in order to be transparent I want to let you know it probably won't be before Launch 2020.

In File Explorer, the layout of a folder is stored in a hidden file named "Desktop.ini". We could use the same file for setting the layout.

@Jaiganeshkumaran Is this something you would like to work on?

Yes, sure.

In File Explorer, the layout mode and sorting for a directory is stored in a file named desktop.ini in that folder. We can do something similar or we can use a JSON file in the app local folder.

Any updates to this? I am really looking forward to this! 👀

first implementation attempt with #1485, read the comments

@XPoppyX This feature is implemented with #2667.


env is a mess

Ubuntu 16.04
It's important to keep the environment clear especially in a terminal.
~
❯ env | grep npm_
npm_package_eslintConfig_rules_semi_0=2
npm_config_dry_run=
npm_config_save_dev=
npm_package_eslintConfig_rules_semi_spacing_1_after=true
npm_package_dependencies_electron_config=0.2.0
npm_config_legacy_bundling=
npm_package_eslintConfig_rules_semi_1=always
npm_package_gitHead=483ad67182ee9727f0981ec9ac0e000aa84b4be3
npm_config_viewer=man
npm_config_browser=
npm_config_only=
npm_config_also=
npm_package_eslintConfig_rules_yoda=0
npm_config_rollback=true
npm_config_usage=
npm_package_homepage=https://github.com/zeit/hyperterm#readme
npm_package_dependencies_child_pty=3.0.1
npm_config_globalignorefile=/home/daniel/.npm-packages/etc/npmignore
npm_package_dependencies_gaze=1.1.0
npm_config_maxsockets=50
npm_package_devDependencies_electron_packager=7.1.0
npm_config_shell=bash
npm_config_init_author_url=
npm_config_parseable=
npm_config_shrinkwrap=true
npm_package_devDependencies_eslint_config_standard=5.3.1
npm_package_scripts_lint=eslint *.js
npm_config_init_license=ISC
npm_config_if_present=
npm_package_dependencies_default_shell=1.0.1
npm_config_init_author_email=
npm_package_eslintConfig_rules_no_unused_vars=2
npm_config_cache_max=Infinity
npm_config_sign_git_tag=
npm_config_git_tag_version=true
npm_config_long=
npm_config_cert=
npm_config_local_address=
npm_config_npat=
npm_config_registry=https://registry.npmjs.org/
npm_config_fetch_retries=2
npm_package_repository_url=git+https://github.com/zeit/hyperterm.git
npm_config_message=%s
npm_config_versions=
npm_package_readmeFilename=README.md
npm_config_key=
npm_package_description=HTML/JS/CSS Terminal
npm_package_license=MIT
npm_config_globalconfig=/home/daniel/.npm-packages/etc/npmrc
npm_config_always_auth=
npm_package_eslintConfig_extends=standard
npm_package_devDependencies_eslint=2.13.1
npm_config_cache_lock_retries=10
npm_execpath=/home/daniel/.npm-packages/lib/node_modules/npm/bin/npm-cli.js
npm_config_global_style=
npm_config_cafile=
npm_config_heading=npm
npm_config_proprietary_attribs=true
npm_config_fetch_retry_mintimeout=10000
npm_config_json=
npm_config_argv={"remain":[],"cooked":["start"],"original":["start"]}
npm_config_access=
npm_config_https_proxy=
npm_config_engine_strict=
npm_config_description=true
npm_config_init_module=/home/daniel/.npm-init.js
npm_config_userconfig=/home/daniel/.npmrc
npm_package_devDependencies_eslint_plugin_standard=1.3.2
npm_config_node_version=5.10.0
npm_config_user=1000
npm_package_bugs_url=https://github.com/zeit/hyperterm/issues
npm_lifecycle_event=start
npm_config_save=
npm_package_repository_type=git
npm_package_name=hyperterm
npm_config_editor=vi
npm_config_tag=latest
npm_package_dependencies_ms=0.7.1
npm_config_global=
npm_package_scripts_start=electron index
npm_config_progress=true
npm_config_optional=true
npm_package_eslintConfig_rules_semi_spacing_1_before=false
npm_config_force=
npm_config_bin_links=true
npm_config_searchopts=
npm_package_eslintConfig_rules_no_extra_semi=2
npm_config_depth=Infinity
npm_package_dependencies_electron_is_dev=0.1.1
npm_package_version=0.4.5
npm_config_searchsort=name
npm_config_rebuild_bundle=true
npm_config_unicode=true
npm_config_fetch_retry_maxtimeout=60000
npm_config_save_prefix=^
npm_config_strict_ssl=true
npm_config_ca=
npm_config_loglevel=warn
npm_package_productName=HyperTerm
npm_config_tag_version_prefix=v
npm_config_group=1000
npm_config_dev=
npm_config_save_exact=
npm_config_fetch_retry_factor=10
npm_package_devDependencies_eslint_plugin_promise=1.3.2
npm_config_version=
npm_config_cache_lock_stale=60000
npm_package_dependencies_uid2=0.0.3
npm_config_cache_min=10
npm_config_searchexclude=
npm_config_cache=/home/daniel/.npm
npm_lifecycle_script=electron index
npm_config_color=true
npm_config_proxy=
npm_package_dependencies_mkdirp=0.5.1
npm_config_save_optional=
npm_package_devDependencies_electron_prebuilt=1.2.5
npm_config_ignore_scripts=
npm_config_user_agent=npm/3.8.5 node/v5.10.0 linux x64
npm_config_cache_lock_wait=10000
npm_config_production=
npm_package_dependencies_convert_css_color_name_to_hex=0.1.1
npm_package_eslintConfig_rules_semi_spacing_0=2
npm_config_save_bundle=
npm_config_umask=0002
npm_config_init_version=1.0.0
npm_config_git=git
npm_config_scope=
npm_config_init_author_name=
npm_config_unsafe_perm=true
npm_config_onload_script=
npm_config_tmp=/tmp
npm_config_link=
npm_config_prefix=/home/daniel/.npm-packages
npm_node_execpath=/usr/local/bin/node

+1
A terminal shouldn't leak any variables into the environment (or, if it does, it should an intentional, useful feature).

This may only impact the developer build, not sure.

my non dev build has a clean env

Yes, that's how mac apps work. When launched in the console, they are started by the user and all environment variables get passed to the app.
This isn't the case if you double click on the app itself.

@marcbachmann but I launched it from my terminal which has a clean environment, I'm pretty sure this doesn't happen on other Electron apps.

To verify whether this is also the case, please start the app using double click and paste that in the dev tool console: require('electron').remote.process.env
All the variables you've shown get set by npm when you execute npm start. They set all the values of the package.json as env variables. Nothing we can/should do here. That only happens in development.

Sorry. I might have understood that wrong. We can fix it. But it's only in development.

We can try to explicitly set it in https://github.com/marcbachmann/hyperterm/blame/master/session.js#L27
But that might not be worth the trouble.
      env: {
        USER: process.env.USER,
        SHELL: process.env.SHELL,
        PATH: process.env.PATH,
        TERM: 'xterm-256color'
      }

🤔

Can confirm with the .deb package that it's only a dev-build issue on Linux too.

Just a note: it seems like this is just the stock npm variables from npm run.  That's not really something Hyperterm controls, and would only ever affect the development setup.

Agreed this is just a dev build issue, so closing.

@Tyriar It might have to do with how you're starting the app; if you start it with node_modules/.bin/electron . instead of npm start, I'm willing to bet you get a clean environment. (see the npm-scripts docs)


added GCM in job API, changed job scheduler

    Change list:
    1. added GCM in job API
      Added GCM in JOB_CIPHER_MODE and added GCM_AES in JOB_HASH_ALG.
      Therefore, aad and aad_len_in_bytes ware also added to JOB_AES_HMAC.

    2. changed job scheduler
      I summarized the job API for each ARCH into one except initialization.
      mb_mgr_code.h became unnecessary, and ipsec_mb_job.c instead
      described handlers for each ARCH.
      Also, cipher_direction was enabled in JOB_AES_HMAC,
      chain_order was not used.

    Note:
    unconfirmed non-linux, AVX512, and SHANI.

It was not possible to integrate the GCM into the existing scheduler.
Please comment.

Thanks for the patch and osrr yfor delay in response but I was off for a few days.
This patch is really big and goes beyond just adding GCM to existing structures and scheduler.
I think GCM can be added to existing scheduler - let me look into and perhaps I can re-work the patch and reduce its scope. If this turns to be too much work I'll ask for your help here.

hi tkanteck,
I am implementing gcm with an existing scheduler job API.
https://github.com/deadcafe/intel-ipsec-mb/tree/sample_gcm
Since the code of the current macro seems to be a little dirty, I will modify it a bit and add GCM.
I have not cleared the bug yet, please give me a comment.

GCM is available under JOB API now https://github.com/01org/intel-ipsec-mb/commit/7f176aae3e2924f1f8aed7ba2639ca2edea2445d
Thanks,
Tomasz


build: upgrade kafka client

Fixes Kafka client security alert
Proposed Changes (Mandatory)

update Kafka client dependency version
remove dead code

 Fix neo4j-streams CVE