bug: Keyboard pushes the whole screen up

Type: bug
Ionic Version: 2.x
Platform: ios 9 webview
My code has a <ion-toolbar position="bottom"> with a text input inside of it. When I try to type something in there on iOS the whole page gets pushed upwards by the keyboard.

Seeing the same issue in our app on iOS only. On device it always seems to happen, but in iOS emulator it only happens every other time or so. I am actually on ionic 1.7.14

Same problem here + 1 at IOS9

Same issues here at iOS

if(window.cordova && window.cordova.plugins.Keyboard) {
  window.cordova.plugins.Keyboard.disableScroll(true);
}

fixed a similar issue for me. It might help. I also had to install the cordova and ionic-cordova typings.
The keyboard doesn't move up with the keyboard though

+1

https://github.com/driftyco/ionic/issues/5302

In my poking around, there appear to be two systems interested in moving content out of the way when the soft keyboard is opened:  the underlying native browser and the Ionic2 library itself.
Keyboard.disableScroll(false) (available via the "ionic-plugin-keyboard" cordova plugin) successfully stops the native browser from pushing/scrolling the content pane up and allows the keyboard to slide over and cover existing content.
Under Ionic2 defaults, however, there are additional features in place attempting to both compensate for the keyboard slideover by adding padding to the bottom of your content ('scrollAssist') and to keep the focused input element within the viewport by scrolling back to it ('autoFocusAssist'). Both scrollAssist and autoFocusAssist have nicely implemented switches in config that just don't appear to have gotten public documented yet.
With both sides' behavior disabled, the native keyboard will slide up over existing content without any pushing or scrolling in an Ionic2 (beta.3) app deployed to both iOS 9.2 and Android 6.0.  App level configuration sample is in the gist:
https://gist.github.com/EvanWillms/8773f8cfa12f469fabf0bdd7a75723e7

@jgw96, I think there are actually two separate issues worth resolving here.

A communication need to help reduce the confusion that @ihadeed, @damienadermann and I stumbled into when we want to allow a native keyboard to appear without pushing or scrolling existing content, do not experience much success with the promising looking Keyboard.disableScroll(true); plugin, and run into a wall.  In my mind, the solution for this is some new documentation around the scrollAssist and autoFocusAssist configuration options for us to discover and use.

A reproducible bug in scrollAssist behavior nicely documented by @hrpatidar in #5764 wherein a developer who does want some content pushed out of the way of the native keyboard by ionic now has padding on their <content-scroll> element that is not getting removed after the keyboard goes away and leaves a large and unwanted blank space in their scrollable component.

@EvanWillms Hello! Thanks for doing some more research on this issue! So as you can see, this issue, and a couple of the other ones that you commented on have been marked for the beta.5 milestone. We just released beta.4 (yayyy!) so we are currently moving on to beta.5. This means that, at this point, you can expect this issue fixed in the next release of Ionic 2. Thanks again!

same problem on android

@adamdbradley
Just a note, this fix (and other keyboard fixes listed in the beta.5 milestone) aren't listed in your google doc for upcoming beta.5 milestones. I'm curious if that means it's been scrubbed from beta.5 (I'd be very sad to hear that) or if the milestones doc hasn't been updated?
This doc:
https://docs.google.com/document/d/1Qlc5X2eJyOB0izkFlH7KJ5BmMi0MeXUZRHJHt3hS6Wo/edit
Thanks!

Is the keyboard-attach feature part of this or a separate issue altogether?  Would it be as easy(relatively speaking) as taking the v2 keyboard-attach directive and converting it into a v2 directive?  I believe @mhartington had suggested that previously.

@ihadeed I have a chat-like app that also uses ion-toolbar with position bottom with an ion-input inside. How are you handling "keyboard attach" so the toolbar "flows" with the keyboard on input focus?
I did found a solution but I'm not happy with it: https://forum.ionicframework.com/t/keyboard-attach-in-ionic-2/49635

@nunoarruda here is how I implemented it:
<ion-toolbar position="bottom" light>
    <form (submit)="addTask()">
        <ion-item no-lines>
            <ion-input placeholder="Add a new task" [(ngModel)]="taskToAdd"></ion-input>
            <button (click)="addTask()" item-right clear>
                <ion-icon name="add" lightgreen500></ion-icon>
            </button>
        </ion-item>
    </form>
</ion-toolbar>

@ihadeed thanks for trying to help but that's just markup. I was talking about if/how you programmatically   fixed the "keyboard attach" issue

Using that markup outside the ion-content tag solves the problem for me.
@ihadeed https://github.com/ihadeed thanks for trying to help but that's
just markup. I was talking about if/how you programmatically fixed the
"keyboard attach" issue
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/driftyco/ionic/issues/5432#issuecomment-218032368

@ihadeed Hum, weird. I am using the code outside ion-content, that's actually where it is supossed to be, but when I focus the ion-input it still stays behind the keyboard. Thanks anyway

Can you provide me with the full markup of your page? I might be able to
spot a difference between yours and mine.
On May 9, 2016 9:12 PM, "Nuno Arruda"<EMAIL_ADDRESS>wrote:

@ihadeed https://github.com/ihadeed Hum, weird. I am using the code
outside ion-content, that's actually where it is supossed to be, but when I
focus the ion-input it still stays behind the keyboard. Thanks anyway
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/driftyco/ionic/issues/5432#issuecomment-218033863

@ihadeed check https://forum.ionicframework.com/t/keyboard-attach-in-ionic-2/49635

I saw that. I meant I wanted to see the whole page's markup not just the
toolbar.
On May 9, 2016 9:15 PM, "Nuno Arruda"<EMAIL_ADDRESS>wrote:

@ihadeed https://github.com/ihadeed check
https://forum.ionicframework.com/t/keyboard-attach-in-ionic-2/49635
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/driftyco/ionic/issues/5432#issuecomment-218034328

@ihadeed yeah, sure. check the plunker

Hello all! Is this still an issue with Ionic 2 beta.10? Thanks!

Yes, this is still an issue with beta.10

Still doesn't work.
Please fix this.

I'm still facing this issue

Still facing the issue too

+1

+1

This really a huge problem because it is require by many chat apps. I expect this problem can be fixed as soon as possible. Much thanks for ionic team :)  .

our apps is ready to go, we do afraid our product cannot pass the store examination because of this problem, thanks anyway.

Yes, still an issue

+1

Hello all! Found out yesterday that there is a new api that is coming in chrome https://github.com/WICG/ViewportAPI that is going to help tremendously with this issue! Thanks for the patience everyone!

+1

I'm Also having this issue with <ion-content fullscreen> I have a background image on ion-content and the keyboard pushes the image up

Hi.. I'm also facing the same thing where the issue is:

there have a gap after keyboard is closed (the gap size is equal to keyboard size).

And I'm was try my luck using simple fix by adding:style="height:90% !important;" into <ion-content> tag.. And its working fine now.. :)
Another alternative is by modified the code like this:

window.addEventListener('native.keyboardhide', keyboardHideHandler);
function keyboardHideHandler(e){
var keyBoardGap = document.querySelector("#chatContainer");
keyBoardGap.classList.add("heightForce");
}
window.addEventListener('native.keyboardshow', keyboardShowHandler);
function keyboardShowHandler(e){
var keyBoardGap = document.querySelector("#chatContainer");
keyBoardGap.classList.remove("heightForce");
}

CSS:
.heightForce { height:90% !important;}
Hope this helps others :)

No solution yet for this?

Hey guys, is it at least scheduled for some milestone? Would be great to know if someone is doing/planning to do something about this. 😿  Thanks in advance!

For @keithdmoore @nunoarruda and anyone who needs the keyboardAttach functionality of Ionic 1, here is an Ionic 2 version of it. Let me know if it works for you! I have yet to test this on Android.
https://gist.github.com/Manduro/bc121fd39f21558df2a952b39e907754

+1

We're facing the same issue, there's still no solution for it?

any solution for this question,Anyone knows?

Totally give up about this question. In fact because of keyboard issue, my company give up to use ionic.

@kitkimwong, same thing happening in my company too.
@brandyscarney, Can we please get any solution for this?

Maybe there is hope from the recent Ionic creator email:
More Recent Updates [image: tada]

The "Container" Component was added. Great for things like putting
other components inside an ion-scroll. Tutorial on building a Firebase Chat
App next week using this!

its very frustrating though that we don't have any response from the team
tho.
Come on Ionic :)
On Thu, Sep 22, 2016 at 6:17 AM Maruti Hulikatti<EMAIL_ADDRESS>wrote:

@kitkimwong https://github.com/kitkimwong, same thing happening in my
company too.
@brandyscarney https://github.com/brandyscarney, Can we please get any
solution for this?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/driftyco/ionic/issues/5432#issuecomment-248814896,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGVqeolAvpM6_HOyCgv8CIODvLA-YTuUks5qsg-EgaJpZM4HYsIN
.

--
Kind regards,
Alexander Mady

Hey yall, sorry for the radio silence. We've been focusing on getting beta 12 finished and testing. So looking over the issue, it's not 100% clear on what issue is or how to recreate it. Any examples that are mentioned are no longer valid as they use older versions of ionic and older markup.
Would someone please clearly describe the issue and following our github issue template.
https://github.com/driftyco/ionic/blob/master/.github/ISSUE_TEMPLATE.md
If possible, a small isolated demo always helps.

How to move fab button above keyboard like android in ios. Can anyone please help

Hello all! As it seems it has been a while since there was any activity on this issue i will be closing it for now. Feel free to comment if you are still running into this issue. Thanks for using Ionic!

So sad to heard that it is no any solution provided by ionic, but good news to see that there is a good approach to problem solving is done by @Manduro  using padding and observable.
Anyway, good news.

Yes still having problems with rc0

This is still a problem. I have a background image that gets pushed up every time the soft keyboard appears, which makes the page feel very messy. Please re-open this issue, it is still not fixed.

+1

@jgw96 I created a short demo of the problem using the blank template, please check it out.
My ionic info
Cordova CLI: 6.1.1
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic Framework Version: 2.0.0-rc.2
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
OS: Distributor ID:	Ubuntu Description:	Ubuntu 16.04 LTS
Node Version: v5.12.0

+1

+1
On Tue, Nov 8, 2016 at 3:21 PM Adrian Teh<EMAIL_ADDRESS>wrote:

+1
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/driftyco/ionic/issues/5432#issuecomment-259165278,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGVqeleJwPN6P2MTB2o6-uPEiTt8vMlKks5q8JOXgaJpZM4HYsIN
.

--
Kind regards,
Alexander Mady

@jgw96 can you please reopen, this is still a problem and really needs some Ionic Dev love?

+1

I'm currently using @Manduro's Keyboard Attach solution but as many others have said here, it'd be great to have a native Ionic solution (because I've come across other UX issues as well relating to putting an input/button on top of the keyboard

Hello from websummit, Lisbon
I have put together a demo project that illustrates the issue. I will be
posting the code here later.
On Thu, 10 Nov 2016 at 17:04, Mike Hartington<EMAIL_ADDRESS>wrote:

Reopened #5432 https://github.com/driftyco/ionic/issues/5432.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/driftyco/ionic/issues/5432#event-854785108, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGVqeuyY56HJxZJ6mHElOHI9wcbCwT_rks5q806fgaJpZM4HYsIN
.

--
Kind regards,
Alexander Mady

Hey yall, sorry for that. We'll be making sure these get fixed before 2.0 final

https://github.com/driftyco/ionic/issues/8185

@mhartington You might consider removing the needs reply label, as I think that has been satisfied.

+1
I documented a full bug report on a seemingly related issue #5571

+1
My life will be way better with ionic2 keyboard attach
Not begging, but pretty pretty please :)
On Tue, 8 Nov 2016 at 22:19, Matt David<EMAIL_ADDRESS>wrote:
+1
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/driftyco/ionic/issues/5432#issuecomment-259277519, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGVqenbB4U5HGHH-Lq3o4VqNI-Br9i9cks5q8PV4gaJpZM4HYsIN
.
--
Kind regards,
Alexander Mady

KeyboardTest.zip
Attached is a demo ionic2 project that demonstrates the issues.

despite the attempts made in this project, it is not possible to keep the keyboard displayed between consecutive messages without a temporary down/up movement.

the input jumps up and down then the keyboard is shown/hidden - its a very un-smooth transition as the project demonstrates.

there is too much of a delay in the showing/hiding of the keyboard, a significant and noticeable difference in the speed, smoothness of transition in native apps.

this should work not only for input fields, but if a  button were in the footer and another input in the main content area was focused on then the keyboard should slide up with the button displayed above it; i.e. there should be an option to slide footer items up as the keyboard is show, whatever type of item might be in the footer.

@mhartington that you for re-opening and I hope that this helps and distills the crux of the issue.

@alexmady @mhartington
There is a temp workaround that @EvanWillms posted back in April
https://gist.github.com/EvanWillms/8773f8cfa12f469fabf0bdd7a75723e7
I modified it for RC2 and I can confirm that it works on RC2
Please note that it does not solve the issue, it solely disables all the scroll features of the keyboard to avoid pushing the content off screen.

Issue is still present in RC3

Yay Mike said they're fixing it!
Actually, in the slack, they said RC4 is all about Keyboard, so you all have that to look forward to!

is there going to fixed in RC4?

Hello everyone! Would you all mind giving the latest nightly a try (npm install ionic-angular@nightly --save and update your package.json to angular 2.2.1). That nightly should have fixes for this issue.

@jgw96 are you saying its only fixed for ionic 2?

@Ross-Rawlins this is not an issue in ionic 1, as long as you have keyboard.disableScroll(false).
This issue is only related to V2, as the label states.

@jgw96 I have updated nightly and moved to angular 2.2.1 but still getting same error. Whole scroll content (including fixed div at the bottom) moves up on ion-input focus!

Facing same issue with ionic2.
Is there any solution ?

@mhartington - Please can you confirm if all of the issues I previously mentioned have been addressed:
KeyboardTest.zip
Attached is a demo ionic2 project that demonstrates the issues.
despite the attempts made in the attached test project, it is not possible to keep the keyboard displayed between consecutive messages without an awkward temporary down/up movement.
the input jumps up and down when the keyboard is shown/hidden - its a very un-smooth transition as the project demonstrates.
there is too much of a delay in the showing/hiding of the keyboard, a significant and noticeable difference in the speed, smoothness of transition apparent in native apps.
this should work not only for input fields, but if a button were in the footer and another input in the main content area was focused on then the keyboard should slide up with the button displayed above it; i.e. there should be an option to slide footer items up as the keyboard is show, whatever type of item might be in the footer. The should not just simply jump up into position, the elements should slide up with the keyboard as they do in the iMessage, whatsApp, skype etc.

@alexmady I'll take a look at it, thanks for the project demo.
Quick glance I will note that you are not using the nightly build, where most of this should be fixed.

@jgw96 @mhartington  Justin and Mike when you say try it with nightly because it should have fixed the issue, how should we test it?  I have an input field in a standard ionic footer and when I click on it, the keyboard moves up and hides the field.  I installed the nightly build and re-built the project and it still hides the field.  What's the fix in the nightly version that we need to use? thanks

Here's my footer by the way:

<ion-input [(ngModel)]="messageText" placeholder="Write your message"></ion-input>

<ion-buttons end>
  <button ion-button (click)="sendMessage()">
    <ion-icon name="send" color="primary"></ion-icon>
  </button>
</ion-buttons>

thanks  @richardshergold , I'm looking into it

The Issue for me is that the ion-input (type="text") is sometimes hidden behind the keyboard if you select a text ion-input that is inside an ion-item-sliding. The Content scrolls up for just a moment and then jumps into another position. So the input is hidden by the keyboard and you can enter text into the textfield but you can't see what you typed.
I've included an repository which demonstrates the issue - See: #9642

@alexmady and @richardshergold using the sample project I have been able to solve most of these issues just by refactoring things a little bit.
The sample project had quite a bit of unneeded code, and it was not using the latest nightly (now RC4).

Here is the sample code/project
https://github.com/mhartington/KeyboardTest
It's behaving as one would expect on android.
iOS however does have issues with the input being covered.
I will investigate that further.
Thank you all for your patience with this, it is not an easy problem to solve.

Thank you for the update @mhartington
I have just tried the project on iOS and it is indeed hiding the input.
Here is a gif showing the problem.

Here is another gif showing how the footer should slide up and what I believe we are all looking for:

thanks and looking forward to updates.

I have got some use cases I would like to highlight also. In both cases the header is a normal ion-header although in the second case it shrinks based on scroll position.
In both cases I would essentially like the keyboard to overlay the ion-content without pushing anything around, or maybe align the focussed input to the visible area of the screen.
The below case is my login screen with a fixed/absolute positioned div at the bottom of ion-content. When email is selected the following happens:

Use case 2: On my registration page I have a relatively position div containing my buttons at the bottom of the registration page, and when the first and last inputs (respectfully) are pressed, the keyboard messes the screen up.

I have got some use cases I would like to highlight also. In both pages the header is a normal ion-header although on the register page it shrinks based on scroll position.
In both cases I would essentially like the keyboard to overlay the ion-content without pushing anything around, or align the focussed input to the visible area of the screen.
The below case is my login screen with a fixed/absolute positioned div at the bottom of ion-content. When email is selected the following happens:
Login page with fixed button container
Login page with fixed button container - Email input selected
When the button container is realtive and email is selected the following happens:
Login page with relative button container - Email input selected
Use case 2: On my registration page I have a relatively position div containing my buttons at the bottom of the registration page, and when the first and last inputs (respectfully) are pressed, the keyboard messes the screen up.
Register page with relative button container
Register page with relative button container - Email input selected
Register page with relative button container - Address input selected

Yes @alexmady,  ios is proving to be problematic.
I'm able to use a user submitted keyboard attach directive for ios, but am having issues maintaining input focus when you tap the send button on the right. I will note, that tapping the return/enter key on the keyboard, everything works great. iOS seems to be willing to loose focus on inputs a bit faster than android.

You guys might want to take a look at the following SO question for several workarounds or maybe for leading you into finding an ultimate solution for this issue: http://stackoverflow.com/questions/36706398/in-ionic-2-how-to-float-an-element-above-the-keyboard-when-the-keyboard-shows

thanks for the update @mhartington
Ideally we need to match the usability of existing chat apps, we need the return button for another purpose really.
Is there nothing we can do in ionic to change the behaviour of the send button so that the focus is not lost? If we were to enclose the input in a form for example, might that help with catching and preventing the loss of focus at the same time as sending the message?

@nunoarruda - thanks for your input (no pun intended) on this however the suggest mention on SO do not solve the problem of the input losing focus after each message is sent. For example if you want to sent 5 messages you have to show and hide the keyboard 5 times, which is rather clunky compared to what people are used to with the way that many native apps work.

Looks like there's a topic here of the Send Button closing the keyboard; I am also building a chat feature for my app and want to know if this issue is one that is being looked into for RC5? Thanks!

Hi @mhartington
Is there any update on this please?  I am wondering if we are we on track to have the desired keyboard/chat features in the final release of ionic 2? As I'm sure  you've guessed, it's kind of a big deal!
By the way,  if you require anything else in the way of examples/use cases for this do please let me know any I will happily put something together.
2016 has been a great year for ionic - wishing all of the team Happy Holidays!

Is this problem already scheduled for any milestone? Would be great to know if the solution for this is near or whether investing time into finding alternatives would be worth it.

@mhartington did you have any progress after your experiments https://github.com/driftyco/ionic/issues/5432#issuecomment-267626176
I created a sample app using ionic start ionic-tutorial tutorial --v2 after this I just included a list and an <ion-input> inside of an <ion-footer>.

The current @nunoarruda solution to change <ion-input> to <input type="text"> works just fine.

@juarezpaf It does not work. The input only appears above the keyboard after the user has started typing.

You guys need to more concentrate on input focus.
totally frustrated I am.

Hey yall, sorry for the silence, we're just returning from holidays.
This will be back on our radar.

@mhartington Thanks a lot, we really appreciate the effort you and your team put into Ionic! Looking forward to the fix, if you need a test project or someone to try it out in different circumstances just let me know ;-)

Ditto!
On Tue, 3 Jan 2017 at 15:00, Marcel van Remmerden<EMAIL_ADDRESS>wrote:

@mhartington https://github.com/mhartington Thanks a lot, we really
appreciate the effort you and your team put into Ionic! Looking forward to
the fix, if you need a test project or someone to try it out in different
circumstances just let me know ;-)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/driftyco/ionic/issues/5432#issuecomment-270132761,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGVqeiW8T0X_hk_TY_9T08BQPAG9Mzfxks5rOmKHgaJpZM4HYsIN
.

--
Kind regards,
Alexander Mady

Check out the last SO comment. Maybe this will help.
http://stackoverflow.com/questions/36706398/in-ionic-2-how-to-float-an-element-above-the-keyboard-when-the-keyboard-shows#comment65388049_38786672

Adding the following code worked perfectly fine for me:
.input-cover {
position: static;
}
I still wonder whether there will be any negative consequences, but couldn't find any so far.

@MvRemmerden Could you post a bit more context for your fix? E.g. On which element did you place that CSS? Thanks!

@lincolnthree Sure, but actually that's all there is to it. Just paste the css code on the pages you need it and you should be fine.
You can also have a look at the stackoverflow thread @cozzbie posted (http://stackoverflow.com/a/38786672). The solution I used is currently the highest voted comment.

is this issue solved?

no, not at all. facing the same issue with rc.5
we are using a footer with elastic textarea (like whats app chat)

It's working for me

using position: static;  is working for me

Anyone tries to fix this on Ionic 1.x (1.7.15) ?
app.js - current config
    .run(function ($ionicPlatform, gettextCatalog, $cordovaFile) {
        $ionicPlatform.ready(function () {

            ionic.Platform.isFullScreen = false;
            // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard or form inputs)
            if (window.cordova && window.cordova.plugins.Keyboard) {
                cordova.plugins.Keyboard.disableScroll(true);
                cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
            }
        }
   }
    .config(['$ionicConfigProvider', function ($ionicConfigProvider){
        $ionicConfigProvider.scrolling.jsScrolling(!ionic.Platform.isAndroid());
    }]);

// config.xml
  <preference name="Fullscreen" value="false" />
  <preference name="DisallowOverscroll" value="true" />
  <preference name="KeyboardDisplayRequiresUserAction" value="true" />
  <preference name="android-windowSoftInputMode" value="stateHidden|adjustResize" />
  <plugin name="ionic-plugin-keyboard" version="2.2.1" src="https://github.com/driftyco/ionic-plugin-keyboard" />

Did I missed something?

What is the error? You need to give us some more details about what happens and what you expect, and possibly open a new issue if this is separate from the topic.
This also sounds like a support request and not a bug or feature, so please ask on the forum and Ionic Worldwide Slack.
Thanks.
On Jan 19, 2017, 7:18 AM -0500, alexszilagyi<EMAIL_ADDRESS>wrote:

Anyone tries to fix this on Ionic 1.x (1.7.15) ?
app.js - current config
.run(function ($ionicPlatform, gettextCatalog, $cordovaFile) { $ionicPlatform.ready(function () { ionic.Platform.isFullScreen = false; // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard or form inputs) if (window.cordova && window.cordova.plugins.Keyboard) { cordova.plugins.Keyboard.disableScroll(true); cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); } } } .config(['$ionicConfigProvider', function ($ionicConfigProvider){ $ionicConfigProvider.scrolling.jsScrolling(!ionic.Platform.isAndroid()); }]); // config.xml
Did I missed something?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub (https://github.com/driftyco/ionic/issues/5432#issuecomment-273762352), or mute the thread (https://github.com/notifications/unsubscribe-auth/AEPIEhJXEmfFhtzXzJC5bChWVUTGapIlks5rT1RigaJpZM4HYsIN).


HOP-2071: documentation for fake data transform plugin

Created documentation for the fake data transform plugin.

fake.adoc

Added a better description, a link to the library, an example of generated data and slimmed down the categories and locales sections.


JsonUnsupportedObjectError.toString does not print cause

When debugging errors, seeing the cause would be helpful

This bug is showing up as high priority for internal users.

I end up doing silly like this:
String prettyJson(obj) {
  try {
    return const JsonEncoder.withIndent(' ').convert(obj);
  } on JsonUnsupportedObjectError catch (e) {
    var error = e;

    while (error is JsonUnsupportedObjectError) {
      stderr.writeln([
        error,
        "${error.unsupportedObject} - (${error.unsupportedObject.runtimeType})",
        error.cause == null ? null : "Nested cause: ${error.cause}",
        error.stackTrace
      ].where((i) => i != null).join('\n'));

      error = error.cause;
    }
    rethrow;
  }
}

Fixed, and we even added a partialResult field that shows the string that was constructed so far.
The nested cause information and the partialResult are too big to include into the toString, though.

Nice!
On Fri, Aug 25, 2017 at 2:20 AM, Florian Loitsch<EMAIL_ADDRESS>wrote:

Fixed, and we even added a partialResult field that shows the string that
was constructed so far.
The nested cause information and the partialResult are too big to include
into the toString, though.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/sdk/issues/17954#issuecomment-324867206,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABCir69OzTL4QBE7HE-143Y2haTvH9Rks5sbpHfgaJpZM4PCCPb
.


Fix class name on documentation

require 'grpc' # => true
GRPC::Channel # => NameError: uninitialized constant GRPC::Channel
GRPC::Core::Channel # => GRPC::Core::Channel

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

@nathanielmanistaatgoogle that smells like Ruby to me, not C++ :) (that's why one needs strong typing!)

@dgquintas: d'oh! I was in a hurry during morning issue triage...

jenkins: this is ok to test

test failure is a known issue: https://github.com/grpc/grpc/issues/9752


Page crashes with an error after a completed build

I'm testing this plugin and while it works locally, the page crashes with the following error:
Objects are not valid as a React child (found: TypeError: Failed to fetch). If you meant to render a collection of children, use an array instead.

Is that a known issue?

Is that a known issue?

No!
Can you maybe provide more information about your environment? Maybe produce a reproducible example or at least provide information about the Docusaurus version you are using.


Let Tensorflow call the initializer of variables when callable.

tf.Variable allows passing a callable instead of an initial value. We now use a callable when the initializer passed to the Keras Variable is a callable. This defers the materialization of the full initial value, which is unnecessary when tracing for instance.

Codecov Report
Attention: Patch coverage is 84.61538% with 2 lines in your changes missing coverage. Please review.

Project coverage is 67.38%. Comparing base (616cf50) to head (b7d6c13).

Files
Patch %
Lines

keras/src/backend/tensorflow/core.py
50.00%
2 Missing :warning:

:exclamation:  There is a different number of reports uploaded between BASE (616cf50) and HEAD (b7d6c13). Click for more details.
HEAD has 4 uploads less than BASE

Flag
BASE (616cf50)
HEAD (b7d6c13)

keras
4
2

keras-tensorflow
1
0

keras-jax
1
0

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #20062       +/-   ##
===========================================
- Coverage   79.28%   67.38%   -11.91%
===========================================
  Files         501      501
  Lines       46942    46946        +4
  Branches     8653     8654        +1
===========================================
- Hits        37220    31633     -5587
- Misses       7976    13635     +5659
+ Partials     1746     1678       -68

Flag
Coverage Δ

keras
67.30% <84.61%> (-11.84%)
:arrow_down:

keras-jax
?

keras-numpy
57.50% <84.61%> (-0.01%)
:arrow_down:

keras-tensorflow
?

keras-torch
62.50% <84.61%> (+<0.01%)
:arrow_up:

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[zh/webqa-search] 'jina.executors.indexers.vector.milvusdb.milvusdbhandler' can't be imported

Follow the introduction of webqa-search exmaple, everything seems fine, but still get an Error as below:
JINA@5762[E]:theses modules or classes can not be imported ['jina.executors.indexers.vector.milvusdb.milvusdbhandler']

Any idea what's wrong and how to fix this?
btw, I tried other example, all of them has this problem.
The python version is 3.8.2 with ubuntu 20.04, and jina version is 0.4.0.

Hey @yiouyou ,
Thanks for raising the issue, it has already been fixed on the master branch. It should not cause any further damage than printing the error message, right?

warning: the current master includes breaking changes! update to master solves the Milvus warning but webqa-search won't work anymore.

@hanxiao If there'are any updates to solve the issue, please let me know, thanks!!

Hey @yiouyou , this message is not supposed to have any impact; but if you want to get rid of it you can install pymilvus dependency and it should disappear. In later PRs this issue has been solved together with some breaking changes, that is why we do not suggest you to move to the most recent version.


[github-actions] upload test result artifacts

This PR uploads thread-cert test results (e.g. pcap, log) as GitHub Action Artifacts which can be helpful for debugging purposes.
Test log and PCAPs of these workflows are uploaded:

[x] Simulation
[x] Simulation 1.2
[x] Posix

Note: artifacts are not shown until the whole workflow is completed.

@simonlingoogle  Could you rebase to master since case 6.1.9 merged?  Should we archive the logs as well because there are lots of error info and is helpful to locate?

@jwhui is there storage cost concern if always upload artifacts as in this PR?

@jwhui is there storage cost concern if always upload artifacts as in this PR?

@jwhui @librasungirl
Some information on the storage limit:

Artifacts automatically expire after 90 days
We merged about 350 PRs in the last 90 days
The total size of artifacts of each PR is about 32MB
The estimated storage requirements of artifacts in 90 days is about 10GB

FYI: Github Storage Spending Documentation

Changed to only upload artifacts on failures. @FiveDimensions @librasungirl

@jwhui Any thought on this PR ?


Specify the return type of some console functions.

This aligns the types with the whatwg spec and with contrib/nodejs/globals.js

Note this has been extracted from #3268 to simplify merging

Created Google internal issue b/128868025. Imported for internal review and testing.

If you specify the return type, you need to specify the arguments as well. An extern with no type information is assumed to return any type and take any number of arguments of any type.

@ChadKillingsworth As far as I can tell, neither of these methods have any parameters according to either the spec (See [1] & [2]) or according to MDN (See [3] & [4]).
Or am I missing something?
[1] https://console.spec.whatwg.org/#clear
[2] https://console.spec.whatwg.org/#groupend
[3] https://developer.mozilla.org/en-US/docs/Web/API/Console/clear
[4] https://developer.mozilla.org/en-US/docs/Web/API/Console/groupEnd

👍


Menu trigger icon should be contextual

The menu-trigger icon should be contextual. Should only appear when there are side bar options.

Ideally it is also possible to use either 'conditions' or 'Authorization' on the icon. This would for example make it possible  to have it available only when a user is authenticated (not a public) user.

Being able to use "conditions" or "authorization" on the whole sidebar would make more sense than just the icon though. I'll keep that in mind.

Ok, for your reference on the list items this already works, e.g. settings only visable in case of an authenticated user, such an option would ideally also apply on the sidenav.

Universal Theme handles this issue by having a "Minimal" page template which consists of no navigation. I'm going to go this way unless you have a better suggestion.

Thanks for the update! I will have look what is exactly meant with the first option. Second one sounds ideal as that would mean e.g. no menu for public users, menu for users which are signed in.

Second option is now working on the development environment. Will push a new version soon. Thank you for your input.

Thanks, again, will give it a go as soon as it is available!


automate addition of extra mission/unit if delegate controls respecti…

if delegate controls respective neutral house(s)
extra mission for each of the following neutral houses owned:

Riches
Samarama

extra unit action for each of the following neutral houses owned:

Genissai
Yuzovka

Tested that BV for extra mission & extra unit is subtracted in order from the total BV and both actions are exported in the csv (together with normal missions/unit actions) when actions are exported.
When this is deployed to prod, we just need to set up the "extraMission" and "extraUnit" in the prod DB using the landsraad UI.


Simple Example with CIFAR-10. ImageDataGenerator + 'sparse_categorical_crossentropy'

System information

TensorFlow version (use command below): 2.4

I try example CIFAR-10 with ImageDataGenerator. But it doesn't works.
My custom CNN Model is not training when I use ImageDataGenerator + sparse_categorical_crossentropy.
However, when I use ImageDataGenerator + categorical_crossentropy, it works well.
what happen in this code?
Thank you and my code is below.

from tensorflow.keras.datasets import cifar10
import numpy as np

(x_train, y_train), (x_test, y_test) = cifar10.load_data()

x_mean = np.mean(x_train, axis = (0, 1, 2))
x_std = np.std(x_train, axis = (0, 1, 2))

x_train = (x_train - x_mean) / x_std
x_test = (x_test - x_mean) / x_std

from sklearn.model_selection import train_test_split

x_train, x_val, y_train, y_val = train_test_split(x_train, y_train,
                                                  test_size = 0.3, random_state = 777)

print('data ready~')

from tensorflow.keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(horizontal_flip = True,
                                   zoom_range = 0.2,
                                   width_shift_range = 0.1,
                                   height_shift_range = 0.1,
                                   rotation_range = 30,
                                   fill_mode = 'nearest'
                                  )
val_datagen = ImageDataGenerator()

batch_size = 32

train_generator = train_datagen.flow(x_train, y_train,
                                    batch_size = batch_size)
val_generator = val_datagen.flow(x_val, y_val,
                                batch_size = batch_size)

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPool2D, Dense, Flatten, Activation, BatchNormalization
from tensorflow.keras.optimizers import Adam

model = Sequential()

model.add(Conv2D(filters = 32, kernel_size = 3, padding = 'same', input_shape = (32, 32, 3)))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv2D(filters = 32, kernel_size = 3, padding = 'same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPool2D(pool_size = (2, 2), strides = 2, padding = 'same'))

model.add(Conv2D(filters = 64, kernel_size = 3, padding = 'same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv2D(filters = 64, kernel_size = 3, padding = 'same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPool2D(pool_size = (2, 2), strides = 2, padding = 'same'))

model.add(Conv2D(filters = 128, kernel_size = 3, padding = 'same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv2D(filters = 128, kernel_size = 3, padding = 'same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPool2D(pool_size = (2, 2), strides = 2, padding = 'same'))

model.add(Flatten())
model.add(Dense(256))
model.add(Activation('relu'))
model.add(Dense(10, activation = 'softmax'))

model.compile(optimizer = Adam(1e-4),
             loss = 'sparse_categorical_crossentropy',
             metrics = ['acc'])

def get_step(train_len, batch_size):
    if(train_len % batch_size > 0):
        return train_len // batch_size + 1
    else:
        return train_len // batch_size

history = model.fit(train_generator,
                    epochs = 100,
                    steps_per_epoch = get_step(len(x_train), batch_size),
                    validation_data = val_generator,
                    validation_steps = get_step(len(x_val), batch_size))

To begin with, when replicating this code in a Google Colab runtime, it seemed to function properly, so the bug is likely with your system or for a different reason. The code does not seem to have any issues.
In general, sparse_categorical_crossentropy should be used when prediction classes are mutually exclusive, i.e. each training example belongs to one single class, and categorical_crossentropy should be used when one sample may have multiple labels or you need the probability for each output.
For example, if you have a label of 2, from the range 0-3, then you should use sparse_categorical_crossentropy. However, if your label vector is [0.1, 0.05, 0.75, 0.1], then you should use categorical_crossentropy since you are finding the prediction confidence for each class.
For the Cifar-10 example that you've given, the labels are each contained in a 1-dimensional label vector, i.e. [[0], [1], [2], [5]] (with a shape of (35000, 1). This means that it will not throw an error with sparse_categorical_crossentropy, but it would work best with categorical_crossentropy. If you want to use sparse_categorical_crossentropy, then call either np.squeeze or tf.squeeze on the data to get rid of the last dimension.

Firstly, Thank you for your answer And I understand it.
Additional, I check that it works well using np.squeeze on y_train.
But, I don't understand below.

x_train = same
y_train = (35000, 1)
compile loss = sparse_categorical_crossentropy

In model.fit(),
A.
model.fit(x_train, y_train, ...) --> good
B.
model.fit(train_generator, ...) --> Bad
what is difference between A and B example?
Is the difference due to the way y_train is handled inside the fit function?

Could you please elaborate on the issues you are facing with the ImageDataGenerator? I rarely encounter any issues when working with it, and it in fact is supposed to help with training, since it performs spatial augmentation on the images. This allows it to generate more diverse data.
The clearcut difference between the way X_train and y_train are handled inside of the training function is essentially due to the fact that alongside the spatial augmentation, the ImageDataGenerator creates image batches beforehand.
Furthermore, I seem to encounter no issues using either of them when testing in Google Colab, so I'm not sure what the problem is.

Definitely, No error in code.
when using ImageDatagenerator, I got about 10% accuracy.
But, I use y_train on fit function directly, I got about 80% accuracy.
The problem is that performance is not good.
Literally, I think No difference between the two.
Because,
With ImageDataGenerator gives us the shape of y_train like below.
test = train_generator.next()
test[1].shape # output's shape: (32, 1)

And, With just using y_train,
y_train.shape # output's shape: (35000, 1)
But in fit function, I think that the shape of y_train turns into (32, 1)

However, when using ImageDataGenerator, performance is good with suqeeze, and when y_train is used directly, performance is good without squeeze.
I don't understand this... why?

The explanation for the different shapes, as I mentioned previously, is because the ImageDataGenerator converts the data into image batches. This means that the data will be converted into smaller sets of the same data, which will then be passed through the model in sequence.
As for your description of accuracies between the ImageDataGenerator and the X_train/y_train, I can't seem to replicate that; I get similar accuracies with both.
I suggest you recheck your code and if your questions have been answered, please be sure to close the issue.

Thank you and Rechecking Now.
Finally, I close this issue.

I ran into the same issue.
System information: Win 10 21h1, python 3.9, TensorFlow 2.6.0
When I use CIFAR10 + ImageDataGenerator + sparse_categorical_crossentropy in TF2.6, I got 10% acc.
Using MNIST + ImageDataGenerator + sparse_categorical_crossentropy, 99% acc, it works well.
Using Fruits114 + ImageDataGenerator + sparse_categorical_crossentropy, 99% acc, it works well too.
Using CIFAR10 without ImageDataGenerator, it works well too.
Using CIFAR10 + ImageDataGenerator + sparse_categorical_crossentropy in TF2.1, I got 90% acc, it works well too.
This is very strange to me. I am guessing whether some changes made by ImageDataGenerator caused this strange phenomenon.


Android library updated for headset detection

The jar file contains the updated compile source.
It has been tested with Unity 2019.1

Awesome @iamsidv, would you mind to add to the README.md how you did it?

@alamboley Sure, not a problem. I will update you once the readme is done. I am now checking the iOS  version.

@alamboley are you referring to the steps I took to create a jar file? If yes, I could add the url which I followed in README.md

@iamsidv yeah absolutely, I remembered created an Android Studio project for compiling the jar. Don't know if it's still the fastest way to do it!

@iamsidv yeah absolutely, I remembered created an Android Studio project for compiling the jar. Don't know if it's still the fastest way to do it!

Apparently, that is one of the ways to do. I also followed the same steps.


Refactor ItemDatabaseBuilder

This is mostly just a code cleanup. I haven't really checked how fast this code is compared to what you have now.
See #22
Edit: it ought to be faster because I set ServicePointManager.DefaultConnectionLimit to the total number of pages (default value: 2).

Turns out this is actually slower.
Using the current implementation (Parallel.For()) = 00:01:03
Using the proposed interleaved tasks = 00:01:53

I think because not every task starts right away. I don't know how to change that.

I fixed the performance issues in my code. It should complete in under 30 seconds now.

I still think that it all comes down to the max number of requests that .NET / Windows allow you to make. It's super fast once you set DefaultConnectionLimit and maxconnection to int.MaxValue.

Wow, that does have a crazy impact. With that added:
Using the current implementation (Parallel.For()) = 00:00:16
Using the latest proposed interleaved tasks = 00:00:10

Any ideas as to why using several tasks instead of calling Parallel.For (or Parallel.Foreach) is faster?
I like that your proposed implementation is faster, but I honestly found the code very hard to understand, even after reading the referenced link.

Parallell.For runs in smaller batches. The tasks created by FindAllPagesAsync all start immediately. That's over 200 HTTP requests that are all launched simultaneously.
The interleaving is there to iterate over tasks in the order that they complete instead of the order that they were started. This is necessary because some tasks can stall and block completed tasks that come after it.

Raising the max concurrent requests too high causes socket timeouts. Maybe the timeout can be increased, but that's probably not the best idea.
2015-09-19 23:34:17.9727|ERROR|GW2PAO.API.Data.ItemsDatabaseBuilder|System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> GW2NET.Common.ServiceException: An error occurred while sending the request. See the inner exception for details. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond <IP_ADDRESS>:443
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at GW2NET.Common.ServiceClient.<>c__DisplayClass8.<GetHttpWebResponseAsync>b__6(IAsyncResult ar)
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at System.Threading.Tasks.Task`1.get_Result()
   at GW2NET.Common.ServiceClient.<>c__DisplayClass3`1.<SendAsync>b__2(Task`1 task)
   at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at System.Threading.Tasks.Task`1.get_Result()
   at GW2NET.V2.Items.ItemRepository.ConvertAsyncResponse(Task`1 task, Int32 pageIndex)
   at GW2NET.V2.Items.ItemRepository.<>c__DisplayClass14.<GW2NET.Common.IPaginator<GW2NET.Items.Item>.FindPageAsync>b__13(Task`1 task)
   at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
   --- End of inner exception stack trace ---
---> (Inner Exception #0) System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> GW2NET.Common.ServiceException: An error occurred while sending the request. See the inner exception for details. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond <IP_ADDRESS>:443
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at GW2NET.Common.ServiceClient.<>c__DisplayClass8.<GetHttpWebResponseAsync>b__6(IAsyncResult ar)
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at System.Threading.Tasks.Task`1.get_Result()
   at GW2NET.Common.ServiceClient.<>c__DisplayClass3`1.<SendAsync>b__2(Task`1 task)
   at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at System.Threading.Tasks.Task`1.get_Result()
   at GW2NET.V2.Items.ItemRepository.ConvertAsyncResponse(Task`1 task, Int32 pageIndex)
   at GW2NET.V2.Items.ItemRepository.<>c__DisplayClass14.<GW2NET.Common.IPaginator<GW2NET.Items.Item>.FindPageAsync>b__13(Task`1 task)
   at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
---> (Inner Exception #0) System.AggregateException: One or more errors occurred. ---> GW2NET.Common.ServiceException: An error occurred while sending the request. See the inner exception for details. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond <IP_ADDRESS>:443
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at GW2NET.Common.ServiceClient.<>c__DisplayClass8.<GetHttpWebResponseAsync>b__6(IAsyncResult ar)
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at System.Threading.Tasks.Task`1.get_Result()
   at GW2NET.Common.ServiceClient.<>c__DisplayClass3`1.<SendAsync>b__2(Task`1 task)
   at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
---> (Inner Exception #0) GW2NET.Common.ServiceException: An error occurred while sending the request. See the inner exception for details. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond <IP_ADDRESS>:443
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at GW2NET.Common.ServiceClient.<>c__DisplayClass8.<GetHttpWebResponseAsync>b__6(IAsyncResult ar)
   --- End of inner exception stack trace ---<---
<---
<---

In my testing, even with it limited to 20, it only takes about 11 seconds to complete.
If I limit it to 8 (number of "cores" I have), I get similar performance to the Parallel.For(), so perhaps Parallel.For() limits it to the number of cores on the machine?

Awesome. Thanks for helping out with this!

I think the difference in Parallel.For() can be explained by how it batches the collection. If you give it a range of ints from 1 to 200 with the default degree of parallelism (number of "cores" == 8), it does something along these lines:

Thread 1: page 1 to page 25
Thread 2: page 26 to page 50
Thread 3: page 51 to page 75
Thread 4: page 76 to page 100
Thread 5: page 101 to page 125
Thread 6: page 126 to page 150
Thread 7: page 151 to page 175
Thread 8: page 176 to page 200

With this setup, the total running time is about as long as it takes for 25 tasks to complete (which should be about 16 seconds).
This is different than the code that creates and starts all 200 tasks at once, which is only limited by how the OS schedules and manages socket connections. In theory, the total running time should be the running time of the longest running task. In practice, Windows does not seem to be so great at scheduling that many concurrent connections. I also believe that the API does not allow that many concurrent connections from a single host, but I have no real evidence for that.


Radamsa hang on linux and macOS

I get a hang sometimes when running radamsa as a child process on macOS and linux. I don't think I've done anything wrong here, but if so my apologies.
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <unistd.h>

#include <sys/types.h>
#include <sys/wait.h>

void radamsa(uint8_t *buf, const size_t buf_sz) {
    int child_in[2]  = { -1, -1 };
    int child_out[2] = { -1, -1 };

    pipe (child_in);
    pipe (child_out);

    pid_t child = fork ();

    if (child == 0) {
        dup2 (child_in[0], STDIN_FILENO);
        dup2 (child_out[1], STDOUT_FILENO);

        close (child_in[0]);
        close (child_in[1]);

        close (child_out[0]);
        close (child_out[1]);

        execlp ("radamsa", "radamsa", NULL);

        abort ();
    }

    close (child_in[0]);
    close (child_out[1]);

    FILE *in  = fdopen (child_in[1], "w");
    FILE *out = fdopen (child_out[0], "r");

    fwrite (buf, 1, buf_sz, in);
    fclose (in);

    int status;
    waitpid (child, &status, 0);

    fread (buf, 1, buf_sz, out);

    fclose (out);
}

int main() {
    for (;;) {
        uint8_t buf[20] = { 0 };
        memset (buf, 0x41, sizeof(buf) - 1);

        radamsa (buf, sizeof(buf) - 1);

        printf ("%s\n", buf);
    }
}

Linux backtrace:
(gdb) bt
#0  0x00007f96014f93a0 in __nanosleep_nocancel () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f9601522fd4 in usleep (useconds=<optimized out>) at ../sysdeps/unix/sysv/linux/usleep.c:32
#2  0x0000000000404361 in vm ()
#3  0x000000000049f580 in boot ()
#4  0x0000000000401009 in main ()

macOS:
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00007fff9f8eaf46 libsystem_kernel.dylib`__semwait_signal + 10
    frame #1: 0x00007fff9f871b72 libsystem_c.dylib`nanosleep + 199
    frame #2: 0x00007fff9f871a66 libsystem_c.dylib`usleep + 54
    frame #3: 0x0000000101bcbaf3 radamsa`vm + 2941
    frame #4: 0x0000000101bcab48 radamsa`boot + 784
    frame #5: 0x0000000101bf28f9 radamsa`main + 9
    frame #6: 0x00007fff9f7bc235 libdyld.dylib`start + 1

My reproducer pretty reliably hangs in a few seconds. Tested on 10.12.4 and linux 4.3. Happy to provide any more info if it would be useful.

Wups, the linux backtrace was with an older version of radamsa. The current version still hangs, but has a different backtrace:
(gdb) bt
#0  0x00007ff804bc3873 in __select_nocancel () at ../sysdeps/unix/syscall-template.S:81
#1  0x0000000000402bc1 in do_poll (a=<optimized out>, b=<optimized out>, c=<optimized out>, r1=0x6c6178 <R.5254+24>, r2=0x6c6180 <R.5254+32>) at radamsa.c:3591
#2  0x00000000004040b1 in vm (ob=0x7ff7fcae6270, ob@entry=0x7ff7fcb23088, args=args@entry=0x7ff7fcadd020) at radamsa.c:3753
#3  0x00000000004ae8d7 in boot (nargs=nargs@entry=1, argv=argv@entry=0x7ffca075c5b8) at radamsa.c:3562
#4  0x0000000000400f91 in main (nargs=1, argv=0x7ffca075c5b8) at radamsa.c:6369

Syscalls seem ok from radamsa side.
...
open("/dev/urandom", O_RDONLY)          = 3
fstat(3, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 9), ...}) = 0
fcntl(3, F_GETFD)                       = 0
fcntl(3, F_SETFL, O_RDONLY|O_NONBLOCK)  = 0
read(3, "\242\341\\\26\357\326A\206w\0", 10) = 10
close(3)                                = 0
read(0, "AAAAAAAAAAAAAAAAAAA", 797)     = 19
read(0, "", 778)                        = 0
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 1066) = 1066
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = 2048
write(1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 2048) = -1 EAGAIN (Resource temporarily unavailable)
select(2, [], [1], [1], NULL

Radamsa is waiting for stdout to be ready for writing, and the C code closes the stdout only after waiting for radamsa to finish. Try moving waitpid (child, &status, 0); below fclose(out).

Ah, I see whats happening. The radamsa's stdout pipe is filling up, causing it to block on writes, meanwhile the parent is blocked on wait.
If I close the pipe before waiting, I'll be unable to read the radamsa's output. Instead I need to read the data after closing radamsa's stdin, but before waiting on radamsa. Thanks for taking a look, and sorry for the false alarm.


Cyclic dependency caused by apt-transport-https -> Apt::Source <||>

When attempting to use the latest version of this Docker module, I encountered a cyclic dependency which is caused by https://github.com/garethr/garethr-docker/blob/master/manifests/repos.pp#L13
Package['apt-transport-https'] -> Apt::Source <||>

Here is the formatted output of the cycle from Puppet:
Anchor[apt::key ----- present] =>
Apt::Key[Add key: ----- from Apt::Source foo] =>
File[foo.list] =>
Exec[apt_update] =>
Class[Apt::Update] =>
Anchor[apt::update] =>
Class[Apt] =>
Package[apt-transport-https] =>
Apt::Source[foo] =>
File[foo.list]

Is it absolutely necessary to force all occurrences of Apt::Source to depend on Package['apt-transport-https']? Perhaps there is a way to specify that it's only required for Docker.
I'm going to throw a bunch of ideas out here in case any of them are viable:

if already_has_https { do nothing } else { do this }
Pass https as a parameter to Apt::Source (does Apt::Source support this?)
include apt-transport-https instead of introducing the collector syntax <||>
Specify Apt::Source['docker'] directly instead of using the collector
Restrict the collector with a search expression inside the collector like <| title == 'docker' |>

/cc @kpaulisse

I saw this as a chicken-and-egg problem. You need to install apt-transport-https in order that apt-get update will work with a file that uses https URLs. But you need to have apt-get update already run in order to be able to install the package.
I think this is causing a problem for us and possibly not others because we have all package installs dependent on all apt repos, which I think is a reasonable design choice. Specifically I mean that we are already using this:
Class['apt'] -> Package<||>
I understand why you are including this code in the docker module, but in my opinion the correct place to fix this is in the apt module itself... some sort of "transport packages to install" argument. In the meantime you could consider enclosing the apt-transport-https package logic in a conditional statement that can be overridden by a parameter, so that we can use your module even in the presence of the apt to package relationship I noted above.

Class['apt'] -> Package <| title != 'apt-transport-https' |>

is a bad workaround..

This causes puppet to try to install apt-transport-https before installing the apt-source that contains it on our setup.

Adding apt-transport-https to the list of required_packages on the apt::source in question and removing the ordering would fix this issue.

No, required_packages is deprecated and removed in feature versions of puppetlabs/apt

@garethr: Why we are using the https endpoint of the repository? http should be enough and would be fixed this issue..

@jkroepke maybe it's deprecated, but it's already used for other packages. Adding another package would not break anything new, and might fix this module for those of use that are affected by this issue

@sigmunau @jkroepke agreed, I'm more than happy to run deprecated options. Moving the entire community to the new apt interface is going to take a while.
@jkroepke I think that's probably a good idea given the complexity that using it has introduced. I'd be happy to see a PR if someone wants to remove the package and slip the param to the http URL. If not I'll try and get to it as time permits, definitely before the next release.

the required_packages parameter seems to me to be completely dysfunctional in the most recent version (2.2.1) of puppetlabs/apt. It adds and exec with refreshonly=true that don't have any subscribe parameter and nothing I can find has any notify on it.

Perhaps a $manage_package_repo variable in the main class that defaults to true? A number of modules seem to do that already (eg. puppet-nodejs).
That way, people experiencing the dependency cycle can add the docker repository using their own method for adding apt repositories.

We're also getting hit by this issue.
Any thoughts on the appropriate solution?
we use the following resource default in our site.pp
Package {    requires => Exec['apt_update']  }
``

taking that out makes for a lot of other dependency ordering pain.

this seems relevant:   https://github.com/puppetlabs/puppetlabs-apt/pull/427
If I apply a liberal interpretation, it seems the guidance when apt::source initially removed the required_packages param was that the base debian system really should already have any packages required to configure and update apt repositories.
with that interpretation it would seem the appropriate solution would be for this docker module to not try to install apt-transport-https at all.
either that,  or doing what @willaerk suggests seems appropriate.

note #480  is attempting to make the dep on apt-transport-https more precise,  but retains the fundamental issue.

note https://github.com/garethr/garethr-docker/pull/436  [ view with w=1 ] extends the $docker::manage_package  params to apply to debian as well.    which I think would suffice for @willaerk's suggestion.
However I still suggest that even with this option apt-transport-https not be managed by this puppet-module.   ie avoid the apt::source deps as an exercise for the site dealing with them.

we've deployed @benlangfeld's branch from #482  that solution solves the problem for us.

This should be fixed in master with the application of https://github.com/garethr/garethr-docker/pull/482. Thanks to @benlangfeld.


[move-only] Teach the checker how to handle ref_element_addr and global_addr with assignable_but_not_consumable semantics

Taking care of:
rdar://104874497
rdar://102794400

@swift-ci smoke test

@swift-ci smoke test linux platform


CalloutClickedCommand not work in release Mode

As title said, I bind my CalloutClickedCommand and it work in debug mode but it don't work in release mode.
I am using Xamarin.Forms and Xamarin.Forms.Maps with version <IP_ADDRESS> and TK.CustomMap with version 1.5.1
I set my binding like this mapView.SetBinding(CustomMap.CalloutClickedCommandProperty, "CalloutClickedCommand");
and in my ViewModel I have CalloutClickedCommand like this
public Command<TKCustomMapPin> CalloutClickedCommand
		{
			get
			{
				return new Command<TKCustomMapPin>(async mp =>
				{
                                 //Do something
                                }
                       }
                }

Make sure you call TKCustomMapRenderer.InitMapRenderer(); on IOS.

I already call it in AppDelegate and the problem occur in Android. I didn't check yet in iOS

I can't reproduce it. The only thing I can imagine is that things get removed by the linker when compiling against Release.


platformio-ide-terminal is not install in my atom

[x] I have reset Atom to defaults prior to submitting report.
[ ] I have not reset Atom to defaults prior to submitting report.

Description

Steps to reproduce

Expected behavior:
Actual behavior:
Reproduces how often:
Versions

> atom --version

> apm --version

OS name and version:
Platformio-ide-terminal version:
Additional Information

Fixed in https://github.com/platformio/platformio-atom-ide-terminal/releases/tag/v2.10.1
Please update platformio-ide-terminal to the latest version.


FetchError: invalid json response body

I have the following error:
"FetchError: invalid json response body at https://eu-api.coolkit.cc:8080/api/user/login reason: Unexpected token < in JSON at position 0"
I have Node-Red running via IOBroker.
I installed the ewelink-contrib via the palette management of Node-Red.
Unfortunately, I can only get about 6 power state nodes online. So when I try to use 20 nodes from ewelink, only about 6 remain online. The rest are offline, with the error message I inserted above.
It is also not clear which are online and offline, this changes after small changes and a deploy. There are no wrong settings and all hardware devices are actually reachable.
I can't find this file.
mixins/makeRequest.js
I am using FileZilla and have searched the entire Pi. Can anyone help me? Where and what I need to change.
Thanks a lot

I bought the Advanced Plan from Ewelink for $9.99 per year. No change. It only works with a limited number of nodes. I have also written to Ewelink now, if I can solve the problem, I will still write the solution here.
So to all don't buy Advanced Plan, it doesn't help.

I bought the Advanced Plan from Ewelink for $9.99 per year. No change. It only works with a limited number of nodes. I have also written to Ewelink now, if I can solve the problem, I will still write the solution here.
So to all don't buy Advanced Plan, it doesn't help.

I have the same problem. I suspect something goes wrong when Nodered creates more than 6 api connections simultaneously. I am not sure if this is a limitation of the node or of the ewelink api.

Not sure why you are looking for the file makeRequest.js but you can find it here: /home/pi/.node-red/node_modules/ewelink-api/src/mixins

I have same problem as well.
Only 6 nodes will connect, with the same behaviour as described by @BerndKaeseler:
"FetchError: invalid json response body at https://eu-api.coolkit.cc:8080/api/user/login reason: Unexpected token < in JSON at position 0"
I wonder whether you have made any progress in diagnosing this issue?
Thank you for the useful advice to avoid trying to solve it via advanced plan etc.

Hello,
I also have the exact same issue. Only 6 nodes will connect.
To connect my other nodes I'll have to stop start each nodes many time until they connect. Sometimes it work but most of the time it doesn't.
This is really frustrating cause your api is amazing...
The error is :
[error] [ewelink-power-state-write:LED Switch] FetchError: invalid json response body at https://eu-api.coolkit.cc:8080/api/user/login reason: Unexpected token < in JSON at position 0.
I have found this thread with someone speaking about this issue and having a working solution :
https://githubmemory.com/repo/skydiver/ewelink-api/issues/116
he said :
I add this code to mixins/makeRequest.js after line 42, because the API ramdomly answer with a crazy html shop code.
Maybe is a bad solution but works for me.
let request = await fetch(requestUrl, payload);
let contentType = request.headers.get("content-type");
while(!(contentType && contentType.indexOf("application/json") !== -1)) {
request = await fetch(requestUrl, payload);
contentType = request.headers.get("content-type");
}
I have tried his solution with no luck.
Please help :)

I have 'given up' so to speak and flashed all my sonoffs across to tasmota...
Much easier to do than I had anticipated and I am very happy to have taken the plunge.


Engineering: Implement integration/system tests

We've already got a ticket (issue) to implement some unit tests in C++. However these don't test the overall module. httping does, but doesn't check any aspects of the contents served, only the HTTP response code. Here are my outline ideas on adding/improving the testing of this Apache module.

Firstly, it'd be helpful to have the random article feature https://github.com/kiwix/kiwix-apache/issues/9 so we can easily serve some content
Secondly, adding visibility into the runtime state of the module (e.g. by enhancing the ./status method would improve the ability of the tests to check the health of the server.
Let's have some tests in Selenium, these may well be the 'heavyweight' tests in terms of infrastructure, nonetheless they're well understood in the industry and could be extended by others who wish to check for specific contents (from a known ZIM file).
Perhaps some 'headless' browser tests would also be useful, they're likely to run faster and have a lower overhead than Selenium tests.
Investigate whether we can use memory leak tools such as valgrind as suggested by other members of the Kiwix project team. In addition, explore ways to run long-running, high-volume tests to support https://github.com/kiwix/kiwix-apache/issues/8

Personally, each of these help me practice and extend my skills, understanding and abilities. For the project they can help us to increase our confidence in this codebase. As AFAIK we don't have any users of this module yet there's little rush or external pressure to add these tests or capabilities. Let's measure, so we can also improve what we do (and how we do it).

Note: for system tests, let's make it possible to run these from another machine too (as well as on localhost).

The project is stalled since many years and has not reached the v1.0. Archiving the project. Please contact @julianharty if you are interested to work on the project.

The project is stalled since many years and has not reached the v1.0. Archiving the project. Please contact @julianharty if you are interested to work on the project.


Fatal Error during make launch

I did everything according to the steps described in windows build
I get the fatal error in make launch (used Visual Studio 2019 Community Edition) and when I analyze this error, it throws me this

The error is exception: read access violation RoadPainter.BluePrint.Object was nullptr, can anyone help and tell me what I can do
Thanks!

Hi,
Have you checked if you have all the content files, in special the required file: carla\Unreal\CarlaUE4\Content\Carla\Static\Decals\Road\RoadDirt\DI_RoadDirt_01.uasset
Regards,
Bernat


PristineExpoProject recipe outdated

Describe the bug
In PristineExpoProject json it's still has detox, that should be updated

@marko-mlinarevic thanks for the notice! Once we release Ignite v9, we'll be taking a look at the current recipes to make sure they're up to date!

This will actually just be deprecated / archived with v9


Add "All services and Information" link to Defra

Defra would like a link to "Services and information" on the organisation page. Adding their slug to the whitelist will show this.
There doesn't seem to be a way to test this, except manually (https://github.com/alphagov/whitehall/pull/1900 didn't have tests).
Before

After

Don't mind the missing images and slightly wacky layout, my local database is not up to date. Preview will show the correct design.
Trello: https://trello.com/c/dBou6m4R

The list should probably be kept in alphabetical order - other than that: :+1:

Updated & rebased.


Add unit test for inject

The handler should at least have a test to see if its dependency can be injected.

We are migrating to wire so this is not needed anymore.


sshd .ssh folder location for root?

Hello!
I stumbled upon your termux-sudo script coming from this termux issue:
https://github.com/termux/termux-app/issues/61
What I want is to run openssh sshd as root, so that I can use the included sftp-server to browse the whole directory tree of my android device (A Zidoo X8 mediaplayer).
Using your script to open a root terminal makes the shell find the sshd binary, but I can't connect to it and I'm guessing it is because the authorized_keys file is not used.
I copied my .ssh directory with the authorized_keys file from /data/data/com.termux/files/home/.ssh into /data/data/com.termux/files/home/.suroot/.ssh since that is what is printed by pwd after running cd ~, but still it won't allow me to connect to it.
Can you help me? Thanks!

bad ownership, me too  ,is there new method? finally ,i use StrictModes no.


Order shifting in the MEI file

Curently, notes when moved horizontally just have their ULX attribute modified, but in the MEI file, if the move shifts position behind or after another element, it should be dynamically updated.

Can reorder within next highest MEI layer (ie neumes can be reordered within a syllable, syllable within staff elements, etc).


fix: change config file to be commonjs - under .fast-alfred.config.cjs ❌

:tada: This PR is included in version 1.1.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


fix: installer script on debian

Signed-off-by: slonka<EMAIL_ADDRESS>Installer on debian fails with:
sh: 21 Bad substitution
sh: 94: Syntax error: redirection unexpected

because it uses bash specific things when the shell is defined as sh. This PR fixes it and also adds a short test file to check if the installer succeeds on the distributions we list in "install" section in the sidebar.
I also found that:

in the sidebar "Redhat" was wrongly named "Debian" so I fixed that as well.
we use an old name for this project in some places - and now that "konvoy" is actually a product we should not use that name

Did you sign your commit? Instructions yes
Have you read Contributing guidelines? yes

Manually checked:
curl -L https://deploy-preview-806--kuma.netlify.app/installer.sh | bash -

So I'm merging it.


Deployment fails while using shared API Gateway

I have two serverless services. On that defines the API Gateway and another one that is using that API Gateway. I've set everything up like in the serverless docs.
Stack1: serverless.yaml (this one defines the API Gateway)
frameworkVersion: "^1.26.0"

service: my-first-service

provider:
  name: aws
  runtime: nodejs6.10

functions:
  initDb:
    handler: handler.get_initDatabase
    events:
      - http:
          method: get
          path: init-database
          authorizer: aws_iam

Stack2: (this one uses the existing API Gateway)
plugins:
  - serverless-plugin-typescript
  - serverless-reqvalidator-plugin
  - serverless-aws-documentation # <----- this seems to cause the problem
  - serverless-offline

frameworkVersion: "^1.26.0"

service: my-second-service

provider:
  name: aws
  runtime: nodejs6.10
  memorySize: 128  apiGateway:
    restApiId: ${env:REST_API_ID}
    restApiRootResourceId: ${env:REST_API_ROOT_RESOURCE_ID}

functions:
....
custom:
  documentation:
    ....

When I try to deploy Stack2 I get the following error:
serverless deploy
Serverless: Validating template...

  Error --------------------------------------------------

  The CloudFormation template is invalid: Template format error: Unresolved resource dependencies [ApiGatewayRestApi] in the Resources block of the template

If I look through the generated files (in .serverless) I can't even find the word ApiGatewayRestApi.
Maybe it's a problem with my configuration, but if I comment out the serverless-aws-documentation plugin, then everything is fine (except for the missing docs :-) )

The reason for this is, that the plugin is referencing the API Gateway in the CloudFormation template, that serverless creates.
When it is not there, it does not work.
I don't know if there is a way to add a fake resource in CloudFormation that just references to an existing resource.
Otherwise this plugin would need a way to reference a custom gateway ID in the models.

Is there any way how I can help? I'm not that familiar with the CloudFormation Template, but if someone gives me a good hint where to start I can dig into it?!
So far I've seen that the plugin sets an output before the deployment here. I've tried to set the custom id like this:
const apiGateway = this.serverless.service.provider.apiGateway;
if (apiGateway && apiGateway.restApiId) {
  this.cfTemplate.Outputs.AwsDocApiId = {
    Description: 'API ID',
    Value: apiGateway.restApiId,
  };
} else { // ... original code}

Which sets the correct id, but the cloudformation validation step still fails.

This is just for the output. Outputs are just for printing it out at the end and for outside services to read these values.
When you look here:
https://github.com/9cookies/serverless-aws-documentation/blob/master/src/models.js#L47
There is a ref that references the API Gateway. What you need to do is, that at every place you need to first check for this.serverless.service.provider.apiGateway, and as a "fallback" take the ref object.
Best to do this as a function because it is needed in multiple places.

Ah thanks. For a quick test I just replaced all occurences of {Ref: 'ApiGatewayRestApi',} with the actual id and it deploys properly. :-)

Has anybody figured out how to solve this


[$500] Room - Inviting a user to the room does not remove other whisper messages

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.42-1
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Issue found when executing PR https://github.com/Expensify/App/pull/34560
Action Performed:

Create a room
Mention a user in the chat
Again mention same user in chat
Click on "Invite them"
Notice other whisper message does not removed

Expected Result:
Inviting a user to the room other same whisper messages should be removed
Actual Result:
Inviting a user to the room does not remove other whisper messages
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/7b62d0fc-318c-4cf6-8929-4a97caafa576
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~013c530387770aef42
Upwork Job ID:<PHONE_NUMBER>614226944
Last Price Increase: 2024-02-22

I believe this problem would be better solved on the backend side. A Pusher or something.

I believe this problem would be better solved on the backend side.

I believe this issure would be better solved on the backend side.

All good Melvin, active discussion ongoing.

All good Melvin, not overdue.

All good Melvin.

At worst case we would have to query through all the report actions and search through their targetAccountIDs, but at most there would only be one other report action.
Perhaps this would be better fixed in the back-end. I can see things getting too complicated in the back-end.
I can look into this.

I think this qualifies for #vip-vsb since it involves fixing a flaw in the design of actionable mention whispers, a central part of chat.

I'm assigned and will look into this once I've cleared off my plate a bit

Thanks @jasperhuangg!

Looking into this this week

Not overdue!

Made some good progress on a PR with this today, looking to get it ready for review before EOW

More progress on tests, I think I should be able to get it out for review today

Ran into some hiccups with the tests, looking into them, but might have to continue investigation tomorrow since I've already worked on this a good amount today.

Still looking into the tests for this–they're a bit complicated since there's a good amount of code to be added for this.

PR is ready for review!

Still under review, not overdue

The Auth PR was deployed, we can close this out!


style: make paragraph, list width 60%

Resolves #169
Impact: minor
Type: style

Changes
Make the text measure 60% for paragraphs, unordered lists and ordered lists.
Screenshots

🚀 Preview deployed
Built with commit 3f8773f0150003c1cfa454a85a782257614e4dcf
https://deploy-preview-170--stoic-hodgkin-c0179e.netlify.com

@rymorgan @cassytaylor How's this 60% width text measure?
https://deploy-preview-170--stoic-hodgkin-c0179e.netlify.com/#!/Checkbox
https://deploy-preview-170--stoic-hodgkin-c0179e.netlify.com/#!/Introduction

:tada: This PR is included in version 0.13.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Multi-threading mode causes EnclaveLost

Hi all, recently I am using SDK to develop a simple multi-threading program, but sometimes ECall would fail. The branch I am on is v2.0.0-preview.
Steps to reproduce:
I used a modified code from incubator-teaclave-sgx-sdk/samplecode/helloworld/app/src/main.rs:

fn main() {
    let enclave = match SgxEnclave::create(ENCLAVE_FILE, true) {
        Ok(enclave) => {
            println!("[+] Init Enclave Successful {}!", enclave.eid());
            enclave
        }
        Err(err) => {
            println!("[-] Init Enclave Failed {}!", err.as_str());
            return;
        }
    };

    // let enclave = Arc::new(enclave);

    loop {
        let mut v = vec![];
        for _ in 0..16 {
            let eid = enclave.eid();

            let handle = thread::spawn(move || {
                let input_string =
                    String::from("This is a normal world string passed into Enclave!\n");
                let mut retval = SgxStatus::Success;

                let result = unsafe {
                    say_something(
                        eid,
                        &mut retval,
                        input_string.as_ptr() as *const u8,
                        input_string.len(),
                    )
                };
                match result {
                    SgxStatus::Success => println!("[+] ECall Success..."),
                    _ => println!("[-] ECall Enclave Failed {}!", result.as_str()),
                }
            });
            v.push(handle);
        }

        for handle in v {
            handle.join().unwrap();
        }
    }
}

The enclave's configuration is
<EnclaveConfiguration>
  <ProdID>0</ProdID>
  <ISVSVN>0</ISVSVN>
  <StackMaxSize>0x40000</StackMaxSize>
  <HeapMaxSize>0x1000000</HeapMaxSize>
  <TCSNum>32</TCSNum>
  <TCSPolicy>1</TCSPolicy>
  <DisableDebug>0</DisableDebug>
  <MiscSelect>0</MiscSelect>
  <MiscMask>0xFFFFFFFF</MiscMask>
</EnclaveConfiguration>

The output is
$ SGX_MOED=HW make && cd bin && ./app
# Previous outputs omitted.
This is a normal world string passed into Enclave!
This is a normal world string passed into Enclave!
This is a in-Enclave Rust string!
[+] ECall Success...
This is a in-Enclave Rust string!
[+] ECall Success...
[-] ECall Enclave Failed EnclaveLost!

Intel says this error can be triggered if there is a power transition or a Linux fork(), but I doubt this simple program would behave in such a complex way. I wonder where the root cause of this issue is. Is this caused by Rust SGX SDK or Intel's SDK? Thanks in advance!

@mssun, could you help with this? Thank you!

This error was fixed by increasing the EPC size, although it seemed irrelevant to the memory size. The error was also reported to Intel.