问:
DUnit test - Cannot create form. No MDI forms are currently active
I'm starting with DUnit tests so sorry in advance for any newbie mistakes. When I tried to run simple tests and the compiler runs the SetUp of my test class, it stops returning the message 'Cannot create form. No MDI forms are currently active'.

After some research, I found some explanations but none related to my problem.

The problem appears to be when I call the Create method of my child origin class - by origin I mean the class where I have all the procedures and functions to be tested, lets call it by TfrmFoo. And my test class should be the TestTfrmFoo. The TFrmFoo has a parent with some basic codes, the TfrmParentFoo.

I'm calling the Create method like this:

```<code>...

implementation

procedure TestTfrmFoo.SetUp;
begin

    FfrmParentFoo := TfrmParentFoo.Create(nil);

    FfrmFoo := TfrmFoo.Create(FfrmParentFoo);

end;

procedure TestTfrmFoo.TearDown;
begin
    FfrmFoo.Free;
    FfrmFoo := nil;
end;

...
</code>```

After that, the Create method of the TfrmFoo class is called and the following error occurs: 'Cannot create form. No MDI forms are currently active'.

I already tried to override the Create of my child class TfrmFoo setting the FormStyle property to 'fsNormal' instead 'fsMDIChild' and nothing. I also found some ideas about using a sleep(500) but the problem continues.

Edited:
After the Remy Lebeau contribution, I changed the SetUp test to create the parent form before calling the child, and using it as a parameter to the Create child. Same error message. Did I change something wrong?

Any other tips? tks!

答:
When a TForm has its FormStyle set to fsMDIChild, the project MUST have an Application.MainForm created whose FormStyle is set to fsMDIForm.  This is a hard-coded requirement of the VCL, not the underlying MDI system (though, there is a way to circumvent this limitation with some manual work).

The error you are seeing means your project does not have an Application.MainForm created and set to fsMDIForm before any fsMDIChild forms are created.  You need to fix that.

Setting the child form's FormStyle in its constructor or OnCreate event is too late, because the error happens when the child form creates its HWND, which occurs early in the DFM streaming process, before Create/OnCreate has an oppurtunity to try assigning the FormStyle.

Body:
I'm starting with DUnit tests so sorry in advance for any newbie mistakes. When I tried to run simple tests and the compiler runs the SetUp of my test class, it stops returning the message 'Cannot create form. No MDI forms are currently active'.

After some research, I found some explanations but none related to my problem.

The problem appears to be when I call the Create method of my child origin class - by origin I mean the class where I have all the procedures and functions to be tested, lets call it by TfrmFoo. And my test class should be the TestTfrmFoo. The TFrmFoo has a parent with some basic codes, the TfrmParentFoo.

I'm calling the Create method like this:

...

implementation

procedure TestTfrmFoo.SetUp;
begin

    FfrmParentFoo := TfrmParentFoo.Create(nil);

    FfrmFoo := TfrmFoo.Create(FfrmParentFoo);

end;

procedure TestTfrmFoo.TearDown;
begin
    FfrmFoo.Free;
    FfrmFoo := nil;
end;

...

After that, the Create method of the TfrmFoo class is called and the following error occurs: 'Cannot create form. No MDI forms are currently active'.

I already tried to override the Create of my child class TfrmFoo setting the FormStyle property to 'fsNormal' instead 'fsMDIChild' and nothing. I also found some ideas about using a sleep(500) but the problem continues.

Edited:
After the Remy Lebeau contribution, I changed the SetUp test to create the parent form before calling the child, and using it as a parameter to the Create child. Same error message. Did I change something wrong?

Any other tips? tks!


来源: stackexchange

问:
Observable combineLatest with interval/timer
I'm trying to use .combineLatest in conjunction with a set interval so that a new value is emitted every 5 seconds. I am then passing this.dailyStocks as an input into a child component but the data being passed into the input is the same every time and when I look at my network tab in dev tools, I do not see the additional calls being made.

```<code>  .flatMap(() => {
    return Observable.interval(5000).combineLatest(
      this.http.getData(args),
      this.http.getOtherData(args)
    )
  })
  .subscribe(res => {
    this.dailyStocks = res[1];
    this.dailyStocks = this.dailyStocks.slice(0)
  }
</code>```

Child Component:

```<code>  @Input('dailyStocks')
  set dailyStocks(val: ListSymbolObj[]) {
    this._dailyStocks.next(val);
  }

  get dailyStocks() {
    return this._dailyStocks.getValue();
  }

  ngOnInit() {
    this._dailyStocks
          .filter(x => x != undefined)
          .take(1)
          .subscribe(res => {
            //res is same
          }
    }
</code>```

答:
To make request on every value from interval you should write it like this:

```<code>Observable.interval(5000).switchMap(() =>
  Observable.combineLatest(
    this.http.getData(args),
    this.http.getOtherData(args)
  )
)
</code>```

Currently, your code not making additional requests because it just combines together values from all three Observables. It is equivalent to the following code:

```<code>Observable.combineLatest(
  Observable.interval(5000),
  this.http.getData(args),
  this.http.getOtherData(args)
)
</code>```

ContentLicense: CC BY-SA 3.0

Body:
I'm trying to use .combineLatest in conjunction with a set interval so that a new value is emitted every 5 seconds. I am then passing this.dailyStocks as an input into a child component but the data being passed into the input is the same every time and when I look at my network tab in dev tools, I do not see the additional calls being made.

  .flatMap(() => {
    return Observable.interval(5000).combineLatest(
      this.http.getData(args),
      this.http.getOtherData(args)
    )
  })
  .subscribe(res => {
    this.dailyStocks = res[1];
    this.dailyStocks = this.dailyStocks.slice(0)
  }

Child Component:

  @Input('dailyStocks')
  set dailyStocks(val: ListSymbolObj[]) {
    this._dailyStocks.next(val);
  }

  get dailyStocks() {
    return this._dailyStocks.getValue();
  }

  ngOnInit() {
    this._dailyStocks
          .filter(x => x != undefined)
          .take(1)
          .subscribe(res => {
            //res is same
          }
    }

Body:
To make request on every value from interval you should write it like this:

Observable.interval(5000).switchMap(() =>
  Observable.combineLatest(
    this.http.getData(args),
    this.http.getOtherData(args)
  )
)

Currently, your code not making additional requests because it just combines together values from all three Observables. It is equivalent to the following code:

Observable.combineLatest(
  Observable.interval(5000),
  this.http.getData(args),
  this.http.getOtherData(args)
)


问:
Ionic 3 navPush from JSON Array
I have a root page in my Ionic app that I am building from a JSON file. I need to place a page object in the array and have the navPush selector grab the value, but its not working. If I hard code a page into navPush it works, but not when pulling from JSON.

listingPage

```<code>...
<ion-row class="grid-categories">
  <ion-col width-50 class="category-item" *ngFor="let category of listing.categories">
    <background-image class="category-heading" [src]="category.image" [navPush]="category.page">
      <ion-row class="heading-row">
        <ion-col no-padding width-100>
          <h2 class="category-title">{{category.title}}</h2>
        </ion-col>
      </ion-row>
    </background-image>
  </ion-col>
</ion-row>
...
</code>```

category.image and category.title work as they should, but not category.page - If I remove the category.page and add aboutPage, it works, but of course then all the links would got to the aboutPage.

listing.json

```<code>...
"categories": [
    {
        "title": "About MSNVM",
        "image": "./assets/images/listing/200x200basquet.png",
        "page": "aboutPage"
    },
    {
        "title": "Plaque Locator",
        "image": "./assets/images/listing/200x200boxeo.png",
        "page": "aboutPage"
    },
    {
        "title": "Make A Donation",
        "image": "./assets/images/listing/200x200crossfit.png",
        "page": "aboutPage"
    },
    {
        "title": "Visit Memorial",
        "image": "./assets/images/listing/200x200futbol.png",
        "page": "aboutPage"
    }

]
...
</code>```

答: Isn't it supposed to be "page": "AboutPage"? (capital A as it goes for the class names)

Title: Ionic 3 navPush from JSON Array

Body:
I have a root page in my Ionic app that I am building from a JSON file. I need to place a page object in the array and have the navPush selector grab the value, but its not working. If I hard code a page into navPush it works, but not when pulling from JSON.

listingPage

...
<ion-row class="grid-categories">
  <ion-col width-50 class="category-item" *ngFor="let category of listing.categories">
    <background-image class="category-heading" [src]="category.image" [navPush]="category.page">
      <ion-row class="heading-row">
        <ion-col no-padding width-100>

{{category.title}}

        </ion-col>
      </ion-row>
    </background-image>
  </ion-col>
</ion-row>
...

category.image and category.title work as they should, but not category.page - If I remove the category.page and add aboutPage, it works, but of course then all the links would got to the aboutPage.

listing.json

...
"categories": [
    {
        "title": "About MSNVM",
        "image": "./assets/images/listing/200x200basquet.png",
        "page": "aboutPage"
    },
    {
        "title": "Plaque Locator",
        "image": "./assets/images/listing/200x200boxeo.png",
        "page": "aboutPage"
    },
    {
        "title": "Make A Donation",
        "image": "./assets/images/listing/200x200crossfit.png",
        "page": "aboutPage"
    },
    {
        "title": "Visit Memorial",
        "image": "./assets/images/listing/200x200futbol.png",
        "page": "aboutPage"
    }

]
...


问:
Body response truncated with Retrofit android
I'm trying to get a whole PDF with retrofit on Android. But at the moment to get the response it's incomplete.

```<code>private void getDocument(String option) {
    Call<String> auth = apiInterface.getDocument(token, option);
    auth.enqueue(new Callback<String>() {
        @Override
        public void onResponse(Call<String> call, Response<String> response) {
            //String responseFinal = bodyToString(response.body());
            if (response.isSuccessful()) {
                //Response success. Handle data here
                Log.v("getDocument", response.body());
                base64PDF = response.body();
            }
            else{
                //For getting error message
                Log.d("Error message",response.raw().message());
                //For getting error code. Code is integer value like 200,404 etc
                Log.d("Error code",String.valueOf(response.raw().code()));
            }
     }
}
</code>```

I got a lot of logs due to the HttpLoggingInterceptor:

```12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9Db2xvclNwYWNlL0RldmljZUdyYXkvU3VidHlwZS9JbWFnZS9IZWlnaHQgMjkwL0ZpbHRlci9GbGF0ZURlY29kZS9UeXBlL1hPYmplY3QvV2lkdGggMTA4My9MZW5ndGggMTkwNDMvQml0c1BlckNvbXBvbmVudCA4Pj5zdHJlYW0KeJztXeGhqyoMPht0BEfoCIzQERihIzBCR2CEjsAIHcEROoLvoKIBAgkUq+ddvz/39oghBPgICerPz4kTJ06cOHHixD8FAXHZW5sTJ04cGFch1cOY14ChN0aruxB7K3nixInD4CJ+KaNHGSPG+5dCbt3eKp84cWJXdDdl3kzS8GAe8rq38idOnNgD4v6sYg3AH+qMg5w48U/hen9+xhoLXuqMf5w48U/gctMfehsB3k95Bj9OnPh/4yJbuRs+XveTPU6c+L9iK9442ePEif8xblvyxswe8gybnjjxv0L3aBvfSEKfUdMTJ/43kOY7vDGiv5+ux4kT/wN06ksOx4qbq/uiaCxuyhW/vo/VTpz4x9Hpb/PG76bFVX7BH4jx8HI+yjXBcDsZ7sSJfxnCNOUEHp5L9ZouTDLHSR0nTnwbuxDHSgY/qqBwl9xV7WS8Eyf+VexDHIA5ZEHhzNZmJ/OdOPFv4mqakUER3ssDtVe6MIc5Tuo4ceJ72CM4OgIwB53XYTHHSR0nTnwLl++nYx3WtCydXHkvW5ts2X1seOLEvwfZtyKCYshFCUOWXR0UnS1XbYeH+QSPzzoBhf5Io/PdSnlcS4y5t7JHxF5BDov1+JYmy3KZo546zGeNaf8wn/hMofOIfx5F5t1b2ePhoj4bnh9hOQr2cyfLspljN+po73ZQLSVwUkceosSYeyt7OIj+s9H5EdajYJIsuzKHoopWG8N81px360dxLp/pc1IHAVFizL2VPRgujw8H50dYD3TQyZWVOSQpt9ocLtbRVzZI0lUUgXbFcJyxDh6uiQ+BoNhb2WNhV5cDMMelKXO06OS6V7H2DWqG6MtVeJ0vji5DJ5lvz9xb0SNhX5cDsAGdli1ijkadXJOwbrtDuBXXr8/XrlWA19N7a3kgXAuctQ2wssEPucCvZQVHdCsLdcWeh6aFFqC0+te5QalEx5gLe+t4HNTuo1thOQpGpxGKDpwOLTtZlraq5arfFdb9Oncq1Ug/S7nBqPrbuGz/2tE81oiipIqWMkfLTiaVC9DyNUOqrOo/wBzdcY9W0R29t4YHwbUvnBKtsU4xQRUtZo6mnazK2vVuWHVhqOUP7FaerXunHehI/d4aHgNytydWZqwxAZIOQDS1Z0pvaitupTPa5WdlWcVtwyybQLTvnXYg3fC9FTwEdNmgbI91mNN0UJCHcWhqrMKY0KtZxaas4j+QW3m17512IPt5bwUPgEvhmGwPcKCDpAPJL7qgqblEYeNa5We7smrbUdZmkBv0TjuQ/by3gvtj9zAHjOdpqmwNczTu5MLWtdo4rIduWLvLLR7bbQsXTdhbjxS+O6r+IMTeYY7hvbrWiiq7Rg4KMkKNF+Deye3TVUK02TmsYTtjOLUe/wsSetZ0bz1SoCy8t357Q/KG/4YAR8FIZVbm0PwKno2TlMYJZkY92kzi1Ta8r2kd/kk34TTdW5EUKLd2b/12xt7nwAY4xslXkVYxR/NMg1k0N+laAdrkZ1+rOFa1h6eO3mm6tyIpUGbeW799oVljf1OsdECmZY/BHGvlQpY2sR4rrSoedRz9VIdaNN1bkxQoM++t367QhHG+gPuiDBn3LDhvislvBuVkC+YZjxaxFr1I63jU0aDOLXE9vqaUmffWb09owjZfAPAJDFG0ijlavzDDQjnhgnu09PPNw/qOH8084NGgoVvidXxNKTPvrd+O0LxxvyU0X5vDMAekDvq0ctjMSqwxKfG/oI7HH9CUegXF3vrthpJzEVsBHOig4rU1zPHeZr+vnHzBpt+Pczy9k2RfHmQ4VTZo6HYQf0FThRv28HpvjmMxhySKFgRTF2zEHB51dDxVPs3PCs8QhlNli5ZuBd9Z21ubFFTCskfXe2to3pjfEuAoGMUHNczRb5VjUK4GG8IwPF0+rHI5/za+KJlVZ4OGbgbzJzRVqF2Pr/fG0KwRvymAU0CFDGqYAzwX8/xpCuWqsNTBfOffZ0GXbpEzHi83nBpbtHQjqL+hqcLM+gf03haaN+A3xZp2oMIua5SR8e6mGd4TdW2Np7wW9Cx1PnufzVLjdKjdcGps0NCNIP6Ipgqx6l/Qe1No1nDfFmAdJh5HAU/kswM0T+9Z3LbWU66SkTqY53E/2j31TsrEQIZTYYOGboOI/vdWKAWFmfUP6L0lJG+0bwrAHDpfsoY5gnvamk+5Wkbq+EJ+Vi5Spve3Gk6FLVq6BeJO3FujFBRi1b+g94aQhEm+Ac1WpwFzbEodX8jPGiejD37n0KChmyA2194apaAiTf+G3tuBfMjsCwDMIdgl2cwRHW5va0Dl6pmoo+MpVZ+fXSuYG2Y49bVo6QZQf0bTkzpC8HMU2+HFVqfguOkCkI+Z2aatBZWraA70GpZW9fnZ9VTjpaDCBg3dAPLPaHpSR4iDHSIlXkX6IXM4WmprQuVqmqlj4/zsGkxx1jCc6lq0tDlQj3dvpVJQmLJ/QO+twBp22wJ8/50gsgrmeIPXfyxzrq0JlRPrqupZmtXmZ+UiwWVpDKe6Bg1tDtzF3FurFBSm7B/QeyPs+1XZEfB8uM6WBMyhyoWDcdrWhosujjq2zc8u7Lpwj+HU1qChrZE4lbO3WikoVNvj670NJG+Qbwowg1S2ID8LswBnjq2pY9P87OrjLzsew6mtRUvbIuVi7q1XCgpX9/B6b4IjhEjBll9mC1YwBwiieE1ta0XlxC57I81Tryo/u8he31NoOJU1aGhbJDeneyuWgkroe3S9t8ARQqSAOfJZ4s+Yw/+cXVszKid2oY6Op1/NG8vWd/ys2V3DqaxFS1siPfj21iwFlVL44HpvAc0ZctsCEELeBeKf/Fhgks/wtzWjcmLXiKxhKViTn13jKOtzxqzaGjS0JTLL1t6qpaCSGh9b7w0gOSNuWwBCyLtA/JMfmGwZXGprR+XErtTBzM/eyivrkeYZTl0NGtoQud7eW7cUVFrlQ+vdHgcIdMD3+5pswUTQIoPcBqetIZUTu1LHZvlZsdwLKjOcuho0tB2y68TeyqWgMjofWe/22D/QAQghv3mqYA5wzltGF9saUjmxYDYz87NdWiqO5aFiuNkxnKoaNLQZ8h7m3tqloHJKH1jv5qAMsT3AUbD8VIOnTZnMkc/bbGRJQB0b5Wc7rIF/jjqIrxrvrV4KKqv1cfVuDcEZbpsCHgWTuYIv9mnTBcQj/G1NqZxYQB3MEPS7MD+r0BsNp6oWLW0DynHcW78UVF7tw+rdGMSzIl8AZI7sYCpnDnD4HJ/CbW2pnFhIHR3PCoX52d7d57krhlNTg4ZaXIVS6mmMeSglqs7DSsoha6SphRD3WV3z/P3PTRTvEAFUU73F7Vchq5hSd4GvILZE7ZNOMy7AAnq0wMcv49//ADqwSda7r2AO8mT7p9bzoZxYSB3Uq85mlOVn5XKfNwUMp6bP23mRj6gDjCqlDzoK9LmmvxBK42Yxj1vl7FGt9L5IHRqyf8qI1cZz+rVPOv2Sxi9hYGq+jaq1gIUg+29rQObIMQIMpfJmI+OZmHrDYVBOrEcdgmeHovyscXcZ/M85fNjI7p7qpfejhD0SPdJQ05/LLaY4H697jfeh2ugtU8P4Jf0ZPTaiijo6qfu8rqbKAotWe+IBlMkxAjsJU3RHpdUSUE6sRx0b5Ge75S6fcAynoo+aKPKsbQQtYsSFo6pKgVNDmuIClct3AqqBhS8q52G/NZjQ08agnDquFHHOeHI7zQNlhM0Bt+o6U+4j5rgk76ixGcOafl9Ilr4l+dlllxlscwynng8aKHtSOo88iNTKx03g8saIvpQ81Kfq
12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: 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
12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: 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
12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: oY68gNQxCsJO21CHni7SfmSWO0LduhpVdqYOeovRnjkCb69FUtZhT+pIL/OFBzcNp6W0GM4biLhnXGdZG8U6RF5Aapqa/G3bUMd8FyNOlOOOcMNDPK2YCtgTLdiWOoKxE3uOQb+l57lmMkcQIG37YZmmGZZS6kj1f1Fm9qcZdXBeBYA/zR5hfv8CvuemTpDQ4lVeQGqrb/K3US4VUWueOjgjLRPBC7mAePglNYKIFmxKHaRLERSQSUlB65Jm67mR1Co0PddRSh2p/GypUobTUoYczutneB8je+UaIogq6BqoBuP1Yu+TgaDSWoqoNX8XJ06UriEsSTQlURl1dmdL6ggmh4wKNGeOYKi2Sso67EodCQeq+OiV4bSUISd/1GQGJ9wxtyux9gmiBrRPPG+nJySgJEC+W2db6mCNjlTDItUIVXDTk3nJDakjUEhEBdjMERZMNYrLMLXYlzo6jm1oGE5LOYI0RxC9nZrFpDY3gqgA6xPh7W9JHZFcKJ2V24Y6VleOccwvVUVhlHRAg1K0U7kddQQLTjyPg0Gf3tRyKSYYAu2Ssg77Ugc66UsyoBNYLeUI6liSKO7QhDmoWrA+eXmZfFrHcOZw3oxBUYch7sfvEst1xjsau4TokHVEotyKd3gL5xHdzagj2DvEW0eui/BmMkcYIE2V+wA7UwdGruVfS2K1lCVJs0TlucPJSO+7CPGIy6Ds319cAUM0dPDPwwXYmjo446NHJUemFGgx3wL+d9MUxwJ+x7aLDYTMEUlmM0dAiDJRLgiQtk2tzGjxlrBFL2rsIehjlQozsz8tqSP3TBVAJlZ6WayRZmWikniGTanelVI4OurFjhfZ81pFGMcQ9+N3CVCCHm14HdFqItBiAdTSSzziCAcwrksFwgmvwwKtmSOkqqjCFiD7koHeCaugjnj/WSGE1VKef6V4Zgv9wQVrLDLjPJm88CgQO4VvwUaOp+RTiV/c2S/xowYDoTaDOui9qEIlR6uJQItFeN6tBRTbAj55Gu5tBMIJr8ICAXMk168XkzkCeY2Tsg5UVzLQLcIKz4+PzYrMVPBiwUiBHHjUQSUwF6BvvgIv+cZf5j+BONMXTrC564EzwtSxFEuTrk9Me0PcjvsUAhYhU9sKExyvJpzTezVYtX5cmn2HhQo7cGd6aDydKBdseIu+WlEAoic5AI5DxfYnbH9xZpa7BDGjOvQbfxx0KLGDbnGuOqoOf8cyDyVIKD1bySKotcZws2xhiNsTp0m8MlSIWWGCkdWkTYMjuCDk75bhdUF1qZfpRIfXGzPHO+iG5knZGRW7gwigqaXHQH9il6Hk4dQZvNnOjeEWrDX947Z0p7h7XZ6P9VK9CeetG0rQMIavI8CLWn5mdhprDEP5P/R0TfiLfiFiiGDWx1aTnttov3KqwOwrjtPtrarqCBGMu2gmc5lD85gj2tRsxBwtqEMAceV51WgaVEhQrKZyEzesc2Ggyfa1vaYP/kpEHKmnkMDu2D1N7c0fXosDaDrOPo67+QRATLXU3QlyjtTIoUfkYud8qjYTiubcl920zfkoWVNHCIoZQnOkNAzLabyYCeZPkzag4D8JmoTXieWJ1cBnqPBbWn/8mr9lSYKi0I4UMK/gnXZ/8dxQUaHTnXXQ/uVYMDYXWWmi78Ji4eiGwGIY6PLGeWYggPWjGE+OGjOvHU9RXkeEcIKZ4DqTEbjluOIaoPwkRgjhC6yIdvQf3t8x28pO+qqPzUq2gh7C5u4lRwJOLvZCRy4qCC4iJ2EldU+CnKNyWBxlhkbEoqU7flNci0aPil++vzSIxVLxCe5UDxyvVLaVWawJPqaOMCORSywkABeQmg0U1z78tn4aWqdP0hfuiqIhWPrehXkH3LNvQOIWmrwJ7/u40ncqoIVN1kS3lfbR5OtQz78BHa8NYrFht4W+Ui1z4PGQMEC6UVJ2xseHSaMe5D1Z6rUQTKPix1dKllK2R/OhzTmNKNsVxaeqyzRyITY242DzlWY7vOEGKYkmf1G7p/aZgtsUv0FsxpGsFucRum4yuB4yh8roQphpiAOkWyVlZ3xIHZhHVM4d64CuORjSsxsbTcC00E+szgvXIJZLI56TJbevyRIuzWJNkPRteGLdoDohjgdm9fT7UVCxCazrMaMVIx6lVWC1hnM5oKLQygndQjGJwRmGkLZKyjqk+oUHnNcyW1kc3XJr+f6paJKHHl0jsT64gd6CGpDVvGDHAw+vGdYd2ErPGonoRiRRZx+2Cn2fRLrHCiIR0MfpWXdMnaj5VWAI9w+BBUMrS1wKkzkiHtqYOSpW+RVr9D9qRuFjKIsXWfz4SumjxIrrElVzB3vLxa8BTVtxdzz+8i44t2B+I3MkYtxhUoX7O+hv/DGTnDUVS6PwoQHJuUWX1YCD2GaEVk4oFi7EiWETGiohrR0+ONZx1TnBT1mybRHurjIVLtIUt7i/MxXjPKUeAzlIla6ByR0JkZp1c3henhHtQJhDGJ6qv/XFbkLOkC91+73hIqRGqSlvTV4PhWEVRlPcCv5Rmj5k0UDb0MoJJyoqhg6ayJ3Wn2jOQsUxjB/b03fdk7Jfj7vgbhBmaQWRl2vBQ00BjLqxtlSqXHTZXo3FHWky0gx9okQJXWcUwRSqyAPrH4F5VcndEMlnDAvsF39Ei97qLb7/J9lZInkSUQKuFa9YGCDdNCk7o/jUt6mohBHAkGNBxuMromHjLbJkJfpCaXjeIANNigxHRcndb2x7Rr1WwF9NqqP0QIyqFEHzMMkdKO9SURtwT6XmAxkCZTJHOKDwYmGAdNuk7IziBIupqIRBHdNKwHD2RdPmUwa4MNz7FfEST4OK1TyyZJRVDyWOH4INwoVelBgAAmyFlftbb0yBBA4P55fXpAVyRvcIq0RfDyE1iPzlhEYh/+DFolLfYI7yB0ZMRSWctImdBJwHYETb9pPceTVcSalxSiA7+NEH+yFuferWPq1OJooTPmLVkjomD+CGBzVi/ZmrWjp826fDbReTuinoRV3SZACCGsLLiQMGPOYIF9ytk7ITyh9wNxW1cKijG3hZTdG0/Ry3ixchrCSOsempyaQZgZPE66+eeQco0SYkMSY4jccQUceaY5R0kOrNz9InuDd6I4IP/L1p70dggYonZUY5gZiAGiLmwN2EMJqAckIUIN06KTujPMEiVTlY68evYE5mtquoPwdWneRCyU7b4LjEk+nNTlFd7q+KW0XUphfahmp7g7VwylPAUYA0+ANzXu59cL++0QJi9wexmyA6HgdxEoPJHKE3ge5to1CYrNK4HJ8//PaPIOdm94+KR/YiiLsyNhRgn+FXskxid/u992Wfei259SqXGrUSH3FfHsJaKXQpL4l07PDWFSGjTj7GFx8Y81Q39uGg6/0x2q0fLYAWqZpW+UxpJXNIrFD0ELLGSm2Bik76Z3G967iPX1oWn2L75yCspTAzxSY1j4MNyZqIYzjplT9kWLM9emZCYqUiPkZlbYINl5r/JzpxW1zyu2jhbfwDuAiRMdVi0UPas/QJ5SEOUUjvakvmCDnqK0nZCeVR0hMn/imgUzaLKC3iXeUxR3SiBVMjCpC698l9AzVv5Dpx4h9C9+mc8tMi0fkDjcmI+EVihUJ6+U5SdkbFyzFOnPin0JdNqfBpWH8PwduHRMyB7ZqiACkqajOcEb4TJ/LQRTMqmvUGXuUxR3SKFlMh2jBUnkCpxBnqOHGCgCyZUfn9SF3WBGWOaL+AFdoQZ6jjxAkC/JeZItxwz15FH+nnMEcUIK17QcQHOEMdJ05QKEh4Zr2KiDnQsGb0KLuOy0QB0i8mZWecpzpOnKDAP9mRfQ6NxxycjUgUIP1mUnZC6lXTJ06cWMB+3U90QOtz5sDciWhH89Wk7ITzAZYTJ2gwZ2Z0KBxO+/hjGIjUqBDGHJFfImvm/oc44LHfEycOB82aTZEzACOXLFLgFIpf6f/dpOyEMzV74gQDrHcbR7t/DS6ymCM6fI4Uit82qWNB2+NMzZ44wQFjx5I9
12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: 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
12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: fV/e9sLT0GrRLxXbX4+lYuUp8fbeimCFpHUIWOcO2+bvWNRY48pC3di6ZVjYX8/FSla9NQeUsViMMZaxqD/OhIW+btC8amBSR79QkRf5uXhqCX8I+VqMM4DMlBVhmuMfMAcaID1gUvbgzCGsiohDOYYELl6pZT2TA5zXGgrogMv8M1OHP4X9mpfRPDrmfn0ZN/cxhOFCNXixEavGMmDHblim3KjTUpWCl6xYMKyGITvqraBl/nR+ZESFNfbg4ujQre+EHrzGmiHYGaYsFmFk9FX9sZ2uUj9wY9IN8xolF4+5s8IWL1DHamnv16rFOCGTKldB+TUsgAc2kNtkdkIeMCl7cOZIhTqE/bP0fy6lxg3Acu0FL+nB82HMAEgmkDlOILeQdfbHutoJ/2eIsbS3nZkiGOtvKHucUuumsffUsO13A82KhYFRWzBDHT28bBsOZrWCJnoHNh5tvlwd27pWCzcsOYvFMLHtl5/Ks6dVKCNEgR/z/yXsyICj/MHx8gbHaMPcrq8CaviIOdDA4wGTsoeOkFpY7wKZH2bwhqG0pTzvYRleFyigsz/AJLEll3HU+zKVLesmtB68WStwrX5Aad8nUYPvyg9AxTv8Ee7QnuCaFQtG3SWvxHjZqdzBxgT6XP0aZ39gESxj9ZylcxaLMNoMTCkQrAyY1VJQajrDvhVrnzyGwDECat2gymNrAL3Zn2lHqQoKZQ4QqsDq0+4iGiCV1DTeAUdnjmkNjv4q7F/Bqq+8UvaHFwNcLmn7I1i3FSwI+tzKdAtZZ6+BHr+jWv3A0v7qG+RJPRV9pYIl87UWvARiR4XT1GEvLxNQDf5stIzkqEMOiHIrz6lYPahAwmIxTHDV3uxY3N759Epi2313DUSFFPLnLjc4wuRy2PYGUARzYNVpdxF1ZQ+YlD0+cwTD2EHbP3f+b9/DXhqmwKVx8qXW7ad3m5+KGfsO7Oys0LSba6/6U0gG+gpYsZd3GFlpvfkCbrwHYj0huBaLWC9u+OO7WzqQO7LDzSu6qifBjTmLRehsYcC+XsaqH8CMsl5C/5OAWRsigCMIhYWDA+5fR5sBQ4igY1tA1TMHGiBdP953IDwPzxzCqhltDccJBQepGcCw9FMqT3BpdBbCdXu2QRfW1A/rILP/h1RhMK28O/2rz+B+mFkOnAk9hNlYN63DEwgKaI/A1ulWdc9nt4CNfQ2+Dy3tRb+or95cOLLYa8gEgEL2vYFaRhpxk/3qhZBDmLUOE3iMzhRvpLNc+zSs6afoRZRsYF2yMAf68IB2FzESO2JS9rhPvK2QVs8oSjr+NeX/B5MPbhVsJ8CBAknmjsmcR/A4zOGk6IeMm3sNJU3sAGensn+Yh5gA//8Jv4em1rZ0oSlsO9O7plHHKygKG34BDYpCJr79rrF6s6VzFsPVgb6EbZnzBSytuMk+JiHTWwizKC5Aiu0OBNxCO8HBEdKKH1HfDNpNuez7N9A9wPWIzBHnLY4HZRWNhuPoKYO1w1u1/AehOnBp/D9ct/Ww8qexF0HfCfDbloMr5iX4jejsRQtvYSvGBoDi62gORIMo6T2s9DXkdk0XUEX0sqSxcbf1/97C6zsPcoBTHm6gchaLMHYRXKvs3Y5NwZZNhFGhAGZRzoByTyBcB+aHIyBaA8yQy5S1gnZTDmOOZT+CBkgPmZRtHBzaBtqqGgXt7R/hpJEDGN7+KmoHi5sY0TIJVvjxLrj+KFBHP/iz6zbk3NwwEjc763Bg9IMfMVjnlLBF14LAeX+GlQ5DznEUQ5BDgSuFbZyjIft/SCuBF6Ij9d6gXMpiEcYaobP+Hvz479gv49PCfTp+A+a6gEbuQfvegfnh4Hj4bSt5EeUH0G7OYYfPl/0IymDyiMzRODa0EYzVNfyjsH+E/r8ewOgX3i3QIw2dFbjCR+sRmNHdMPizK+/mDkM4pUP/wNvA+Mus8kR3oC3vAfEc0p6jGoL0b8rrMUHDR7mMDVTOYjGMLzX2Ba7zOwneKhuAW7R9AqvBjozcGzg4XsFwCtq6DZb8SO6dX/gLFGTBjP4Wjp9amWAGZCVTtgXQ1P3Aemw2XI9gpC5aj8CMlvYanKTZeKAIS8dkIkADOvt/f4eysqJc2zJOCVhpxAc+nkOQ/oUXrcEcQYVRSd9+QQADbKBQiyWpbBhiR9H5UGN/XuToVuWJY+3PDnYl7MjItQSDA3WUfAexPWRuzjnmwF9Qogtm9LfwBwKkE8yArO9oqEPAW9bJBy519v9hqMOAu6L16LqWi0IdSTc3ntKjrGi/MDdA+hW/PdGPta9kKFYHGgfogY1Cr2e0xDydrqEY7gYqZ7EI40XoKD5BXzzdsHzSm2gza66hmdSQdi07YDcB2r1IgyNiA8jcnHPMga7kR0zK/o0wxwg7VCPq6Ad/rRgnq3fL0kCYH5D2/3AGWzluONtrYejdyQzdXAmExtBBaYRMDKjM3/x0tug68EG2QYWVWu3Tw/4CbWRvhSMXhm1l0PDAeVCxekBoymIRIl/A1uIm8Wjf1+PG8YTNdF/nDQsz+Hn0MIvm1BptCDj/Eo6I9pBu0uWYA13Jj5iUff2NMMcIq+8D+yPkE29R7ezVpYV24LgZpOwVMINHWoHbBtiDPagjrO855NxcE10dK061yhZfF8IgAAvaEkZJR43Ta4AYVmKJ9joPIEsHDfftl95AZS0WQftS/ZxTKCmH2Vza60noqmGd9QL/D091bPs1B+EmXTSIf9a8K0peR0zKojmgowKLKojB/2M3tsr9kkP42Ky7ZGw50PhxmexwmXC2hYG3S/A7QD+EU8hWHMVY3Dyy//d3KKsrIUBbTCBWAu0RqGEdkmPj4AzpB/9AGGQgGDf4CYO4YAOVs1gM40v1XbPsnYggFTgd10xHjoMD0jTUIvzdHEtqFeP4+SIeID1gUjb3KtwDwgwJ6gBMPVKAhL/WYdWDolYWHCgwairtNWAaDX6P9QElZFB/AHvVJxYz+LP+ASoehV+8omtV98GPZqaCBQjsZccWIxsktv8wObEox9lA5SwWw/YD2N2MtbrfoX2zmAykPSqUoT1B53g7pWD72w1D7mTM5+AwBx4gPWBS1qTXqUPCDPECH4QOpncyXeEdyzi8wKLBwJH2mpt8CpM522qceWBS9H7ZEMMQTgSrEpz1VoAb3XBH9ZPJZ4Ri86HaqQ73/7Fx4BqsUwzBaRHPfpkNVM5iMQbf9mMXun4VRFM8jOp1MRUnOnLqLOjhGf++Lb/s5JgDXa7ni3iqUxZN6q9g25DQBvDXwAnKtkT4P9eZ4V0U8NLgy+rtbwWFrPw//kzESG5+fRGg2AnG/4tVanluSw/hDgX4IFZFuIcHi5ccsmlFyyzLeqoChXsgSoUGHoZwA7VeHjWHQhMWi4HZ3qkgfPvmMdpSx8dqvY5chVkzrdxnf6xUkXwPYCNcHHNgfsXMHPi+V9Mz+cswfyg+OiNYlEco25ZldEwdtAxLmFIJJoZXbiZ2AQqus2uSmVjIel9OBHs5Sx0a/rTSVkK3zV096A62xVeC+p6ZGIL39Rn/2mLTQDfsTa74BipnsRhDJGed/SK2WBpWoUcw5aKOTHWWX9HodGz3dbzlsFeGOdCl/HhJ2fefczl+opE8Qtq/LaNjGgDLgPC5xgxgBtlyyyialwT3U9kfSx8/PZn+Bmka9hk3117255CBCvrv+vJ2VGG64wbb8vIKiiG/S7ftkbAwoA4Nr/nnSAo2UDmLxUBsv/gCl+DWS24PYW359ie8iDpSeL9W2QM073XwtGiN5cgGxk3TS7/wuOPxkrJ/Lcoxox+81fWqgjfMiKH3Rr8e4OTzLpkBzIrnYH8us89LFsrxmv8aPce713cfzrYAL1jN1U4uy27r1NDw9lG239qV4R+wLcar1f7K+ZB2Ki8dbifJOkVslQkn7Yd4bLYHOngRoMBiMbw4kxlLG/zi79TJeSBjPb7T4blqnlrX8VMJq1o9qOh3hvpatEX2sJccL+EB0sMlZfu/lVhZoQbYvVd7
12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: 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
```

<p>And on my own Log i got only this:</p>

```V/getDocument: JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9Db2xvclNwYWNlL0RldmljZUdyYXkvU3VidHlwZS9JbWFnZS9IZWlnaHQgMjkwL0ZpbHRlci9GbGF0ZURlY29kZS9UeXBlL1hPYmplY3QvV2lkdGggMTA4My9MZW5ndGggMTkwNDMvQml0c1BlckNvbXBvbmVudCA4Pj5zdHJlYW0KeJztXeGhqyoMPht0BEfoCIzQERihIzBCR2CEjsAIHcEROoLvoKIBAgkUq+ddvz
```

Which is the first part of the Logs shown before.

Any ideas? I'm stucked.

答:
If logcat is capping the length at 1000 then you can split the string you want to log with String.subString() and log it in pieces. For example:</p>

```<code>int maxLogSize = 1000;
for(int i = 0; i <= veryLongString.length() / maxLogSize; i++) {
int start = i * maxLogSize; int end = (i+1) * maxLogSize;
end = end > veryLongString.length() ? veryLongString.length() : end;
Log.v(TAG, veryLongString.substring(start, end));
}
</code>```

Body:
I'm trying to get a whole PDF with retrofit on Android. But at the moment to get the response it's incomplete.

private void getDocument(String option) {
    Call<String> auth = apiInterface.getDocument(token, option);
    auth.enqueue(new Callback<String>() {
        @Override
        public void onResponse(Call<String> call, Response<String> response) {
            //String responseFinal = bodyToString(response.body());
            if (response.isSuccessful()) {
                //Response success. Handle data here
                Log.v("getDocument", response.body());
                base64PDF = response.body();
            }
            else{
                //For getting error message
                Log.d("Error message",response.raw().message());
                //For getting error code. Code is integer value like 200,404 etc
                Log.d("Error code",String.valueOf(response.raw().code()));
            }
     }
}

I got a lot of logs due to the HttpLoggingInterceptor:

12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: 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
12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: 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
12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: 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
12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: 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
12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: 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
12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: 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
12-05 15:52:52.931 4054-6365/com.dummy.myapp D/OkHttp: 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

And on my own Log i got only this:

V/getDocument: JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9Db2xvclNwYWNlL0RldmljZUdyYXkvU3VidHlwZS9JbWFnZS9IZWlnaHQgMjkwL0ZpbHRlci9GbGF0ZURlY29kZS9UeXBlL1hPYmplY3QvV2lkdGggMTA4My9MZW5ndGggMTkwNDMvQml0c1BlckNvbXBvbmVudCA4Pj5zdHJlYW0KeJztXeGhqyoMPht0BEfoCIzQERihIzBCR2CEjsAIHcEROoLvoKIBAgkUq+ddvz

Which is the first part of the Logs shown before.

Any ideas? I'm stucked.

Body:
If logcat is capping the length at 1000 then you can split the string you want to log with String.subString() and log it in pieces. For example:

int maxLogSize = 1000;
for(int i = 0; i <= veryLongString.length() / maxLogSize; i++) {
int start = i * maxLogSize; int end = (i+1) * maxLogSize;
end = end > veryLongString.length() ? veryLongString.length() : end;
Log.v(TAG, veryLongString.substring(start, end));
}


问:
Python custom decorator not working with Celery tasks
I'm having a bit of trouble with Python decorators. I've got a scenario set up like so:

```<code>def decorated(func):
    def call_and_update(*args, **kwargs):
        # do some stuff here
        output = func(*args, **kwargs)
        # do more stuff here
        return output
    return call_and_update

@celery.task
@decorated
def testA():
    return "Test A"

@celery.task
@decorated
def testB():
    return "Test B"
</code>```

For some reason, whichever function I call first seems to be persisted as the func in the decorator.

So for instance, if I start up a shell and run:

```<code>>>> testA()
Test A
>>> testB()
Test A
</code>```

or, if I restart the shell and start with the second test:

```<code>>>> testB()
Test B
>>>> testA()
Test B
</code>```

I found this question with a similar issue, but the few answers revolved around using extended classes for the task methods instead.

If I specifically want to do this via decorators and functions, is there a trick to getting that to work?

Note that without the @celery.task decorator, the functions work as normal. It's specifically the combination of the two decorators that's causing an issue.

Thanks!

答:
Each task needs to have a unique name celery docs, since it's not provided it is using the name of your wrapper function.</p>

```<code>@celery.task(name='test-A')
@decorated
def testA():
    return 'test A'

@celery.task(name='test-B')
@decorated
def testB():
    return 'test B'
</code>```

Body:
I'm having a bit of trouble with Python decorators. I've got a scenario set up like so:

def decorated(func):
    def call_and_update(*args, **kwargs):
        # do some stuff here
        output = func(*args, **kwargs)
        # do more stuff here
        return output
    return call_and_update

@celery.task
@decorated
def testA():
    return "Test A"

@celery.task
@decorated
def testB():
    return "Test B"

For some reason, whichever function I call first seems to be persisted as the func in the decorator.

So for instance, if I start up a shell and run:

>>> testA()
Test A
>>> testB()
Test A

or, if I restart the shell and start with the second test:

>>> testB()
Test B
>>>> testA()
Test B

I found this question with a similar issue, but the few answers revolved around using extended classes for the task methods instead.

If I specifically want to do this via decorators and functions, is there a trick to getting that to work?

Note that without the @celery.task decorator, the functions work as normal. It's specifically the combination of the two decorators that's causing an issue.

Thanks!

Body:
Each task needs to have a unique name celery docs, since it's not provided it is using the name of your wrapper function.

@celery.task(name='test-A')
@decorated
def testA():
    return 'test A'

@celery.task(name='test-B')
@decorated
def testB():
    return 'test B'


问:
Export data from Firebase Crashlytics console?
I'm trialling Firebase Crashlytics and the console display of log data is messed up (see image below.) Is there any way to export the full crash report? I can't see one in the Firebase console - I never used the original Crashlytics but I see that it has an export facility.

答: There isn't a way to export crashes with the beta version of Crashlytics in Firebase. It's something we're thinking about though. What platform and browser is that screenshot on? Would love to get that fixed up.</p>


问:
PHP Mail Function ERROR
I m Facing problem with PHP mail Function. The problem is mail is being successfully sent but $body and  $ header is not working Properly </p>

```<code><?php

$name = $_POST['your_name'];

$email = $_POST['your_email'];

$phone = $_POST['your_phone'];

$subject = $_POST['your_subject'];

$msg = $_POST['your_message'];

$to = 'support@morelifelondon.net';

$subject = 'New Enquiry';

$body = $name '|' $email '|' $phone '|' $subject '|' $msg;

$header = 'From: $name <$email>';

if(mail($to, $subject, $body, $header)){
echo "Mail Sent";
}
else{
echo "Mail Failed";
}

?>
</code>```

答:
Too long messages can be truncated and not work properly.

Add "\r\n" after $header = 'From: $name <$email>';, like this:

```<code>$header = 'From: $name <$email>'."\r\n";
</code>```

Also, if your $msg can be long, split it with carriage returns after 100 or so characters.

Title: PHP Mail Function ERROR

Body:
I m Facing problem with PHP mail Function. The problem is mail is being successfully sent but $body and  $ header is not working Properly

<?php

$name = $_POST['your_name'];

$email = $_POST['your_email'];

$phone = $_POST['your_phone'];

$subject = $_POST['your_subject'];

$msg = $_POST['your_message'];

$to = 'support@morelifelondon.net';

$subject = 'New Enquiry';

$body = $name '|' $email '|' $phone '|' $subject '|' $msg;

$header = 'From: $name <$email>';

if(mail($to, $subject, $body, $header)){
echo "Mail Sent";
}
else{
echo "Mail Failed";
}

?>

Body:
Too long messages can be truncated and not work properly.

Add "\r\n" after $header = 'From: $name <$email>';, like this:

$header = 'From: $name <$email>'."\r\n";

Also, if your $msg can be long, split it with carriage returns after 100 or so characters.


问:
Cannot call Google Apps Script doPost() method from Twilio number

Trying to receive an SMS at my Twilio number and send a POST request to a Google Apps Script app URL as a result of the received SMS.

I have this doPost() message:

```<code>function doPost(request) {

    return ContentService.createTextOutput("User says: "+JSON.stringify(request));
}
</code>```

Some text should be spit out containing the request data.

My doPost() method never gets called.  I can't tell if the POST request is actually being sent by Twilio.  I see in the Twilio number message log that my SMS is received by Twilio.  But after that I can't tell.  I have the Twilio number configured for webhook - HTTP POST, and the published URL of my Google Apps Script project.  If I change that to HTTP GET my doGet() method DOES get called.  I need to doPost() method called, though.  any suggestions?  TIA.

答:
How about the following confirmation?

Confirmation points :

Redeploy Web Apps as a new version again.

When the script is updated, Web Apps is required to be redeployed as a new version for reflecting the update.

Confirm setting for Web Apps.

"Execute the app as:" is "Me".

"Who has access to the app:" is "Anyone, even anonymous".

Retrieve a log of request using Stackdriver.

The sample script is as follows. Please copy and paste it. And redeploy Web Apps.

Request POST.

On script editor, click View -> Stackdriver Logging

By this, when POST request is received, you can see the log.

Sample script :

```<code>function doPost(request) {
  console.log(JSON.stringify(request)); // Here
  return ContentService.createTextOutput("User says: "+JSON.stringify(request));
}
</code>```

By above confirmation, the reason of your problem may be found. But if this was not useful for you, I'm sorry.

Body:
Trying to receive an SMS at my Twilio number and send a POST request to a Google Apps Script app URL as a result of the received SMS.

I have this doPost() message:

function doPost(request) {

    return ContentService.createTextOutput("User says: "+JSON.stringify(request));
}

Some text should be spit out containing the request data.

My doPost() method never gets called.  I can't tell if the POST request is actually being sent by Twilio.  I see in the Twilio number message log that my SMS is received by Twilio.  But after that I can't tell.  I have the Twilio number configured for webhook - HTTP POST, and the published URL of my Google Apps Script project.  If I change that to HTTP GET my doGet() method DOES get called.  I need to doPost() method called, though.  any suggestions?  TIA.

Body:
How about the following confirmation?

Confirmation points :

Redeploy Web Apps as a new version again.

When the script is updated, Web Apps is required to be redeployed as a new version for reflecting the update.

Confirm setting for Web Apps.

"Execute the app as:" is "Me".

"Who has access to the app:" is "Anyone, even anonymous".

Retrieve a log of request using Stackdriver.

The sample script is as follows. Please copy and paste it. And redeploy Web Apps.

Request POST.

On script editor, click View -> Stackdriver Logging

By this, when POST request is received, you can see the log.

Sample script :

function doPost(request) {
  console.log(JSON.stringify(request)); // Here
  return ContentService.createTextOutput("User says: "+JSON.stringify(request));
}

By above confirmation, the reason of your problem may be found. But if this was not useful for you, I'm sorry.


问:
Linux perf: is it possible to somehow ignore busy waiting threads?
Im trying to do some performance analysis of my process.  The process has many threads that are busy looping / busy waiting for events.  It looks like perf is picking up the busy loops as the top offenders ( as expected ) but is there any sort of magic to somehow have perf ignore these no-op spins?</p>

答:
perf report can filter by symbol or DSO, but there is no way to use a blacklist.

I thought there might be a way using combining -p -x, but POSIX regex don't seem to support negative lookahead, so a blacklist also seems unfeasible.

At the end of the day, you probably want something called root cause analysis or blame shifting to attribute the waiting time to whatever cause the event itself to be delayed. I don't think this is possible with perf directly.

Also it is often better to passively wait for an event rather than busy waiting.


问:
External IP addres confirm
I'm trying to do an application that allows the entrance of someone in some account, but only one IP address can access that account, but when i do this code;

```<code>IPHostEntry IPHost = Dns.GetHostEntry(Dns.GetHostName());
if (IPHost.AddressList[0].ToString() == "94.132.170.228")
{
    Process.Start("C:/Users/xlysa/Desktop/Coding/CSGO Cheat Client + Injector by Lysander12/ConfFiles/windows.exe");
}
else
{
    Console.WriteLine("Error");
    Console.ReadKey();
}
} catch
{
    Console.WriteLine("Something gone bad!");
    Console.ReadKey();
}
</code>```

It says erros because the program is no recognising my IP address! And yes, I'm sure that this is my IP address!

Can someone help me with this pls?

答:
You won't be able to access your external IP from inside the network like that in C#. If you were hosting that on a server you'd be able to allow connections that originate from that IP (like whitelisting). But the best bet is to link your program up with WhatIsMyIP and have it return the IP to you.

Personally, I'd go with a whitelist at firewall level, rather than application level. This means the firewall will restrict access rather than relying on code to do it for you. Questions like "What if it has a bug, or a zero-day that can be exploited?" are the type of questions you need to think about when you decide if access control should be done through code when there are already other well-made solutions out there. If it was my choice, I'd be using what I already know works and requires least effort

Title: External IP addres confirm

Body:
I'm trying to do an application that allows the entrance of someone in some account, but only one IP address can access that account, but when i do this code;

IPHostEntry IPHost = Dns.GetHostEntry(Dns.GetHostName());
if (IPHost.AddressList[0].ToString() == "94.132.170.228")
{
    Process.Start("C:/Users/xlysa/Desktop/Coding/CSGO Cheat Client + Injector by Lysander12/ConfFiles/windows.exe");
}
else
{
    Console.WriteLine("Error");
    Console.ReadKey();
}
} catch
{
    Console.WriteLine("Something gone bad!");
    Console.ReadKey();
}

It says erros because the program is no recognising my IP address! And yes, I'm sure that this is my IP address!

Can someone help me with this pls?


问:
Filter list of tuples fast
How do I filter a list of tuples efficiently with Python based on whether the first item is the same as the third?

Suppose I have old_data and I want new_data:

```<code>old_data = [(2,3,2), (3,4,4), (7,6,7), (2,1,2), (5,7,2)]

new_data = [(3,4,4), (5,7,2)]
</code>```

My current solution (list comprehension) is too slow:

```<code>new_data_too_slow = [x for x in old_data if x[0] != x[2]]
</code>```

This data is many millions of rows, and I do need to return a list of tuples in the same format.

答:
I'm not sure how you're using your data (this is important!) but changing to a generator may give you a performance boost.

All you have to do, is change your [s to (s.

```<code>new_data_too_slow = (x for x in old_data if x[0] != x[2])
</code>```

Again, it depends on how you're using it but this method will easily outperform most IO operations. Also because it's a generator, you get one use out of it - but you will use significantly less memory.

Title: Filter list of tuples fast

Body:
How do I filter a list of tuples efficiently with Python based on whether the first item is the same as the third?

Suppose I have old_data and I want new_data:

old_data = [(2,3,2), (3,4,4), (7,6,7), (2,1,2), (5,7,2)]

new_data = [(3,4,4), (5,7,2)]

My current solution (list comprehension) is too slow:

new_data_too_slow = [x for x in old_data if x[0] != x[2]]

This data is many millions of rows, and I do need to return a list of tuples in the same format.

Body:
I'm not sure how you're using your data (this is important!) but changing to a generator may give you a performance boost.

All you have to do, is change your [s to (s.

new_data_too_slow = (x for x in old_data if x[0] != x[2])

Again, it depends on how you're using it but this method will easily outperform most IO operations. Also because it's a generator, you get one use out of it - but you will use significantly less memory.


问:
react-native type check on component
I have a component that I want to be able to handle two kinds of components. One is a Text component, the other Image component.

I have some default styles like the color I want to be able to apply that to both components, however, a text element can use the key of color in its styles, but on an Image, it has to be tintColor key.

Is there any way I can check for which element I have so I can set the appropriate styles to each one?

答:
If I understood correctly, you can use 3 styles object to handle it like this:

```<code>const styles = StyleSheet.create({
  default: { marginTop: 10, borderWidth: 1 },
  onlyButton: { borderColor: '#F0F' },
  onlyText: { borderColor: '#C9F' },
})

<Text style={[styles.default, styles.onlyText]} />
<TouchableOpacity={[styles.default, styles.onlyButton]} />
</code>```

Note that the code above might have typos, it's just an example to show the idea.

Let me know if it helped, or if I misunderstood your question.

Hope it helps

Title: react-native type check on component

Body:
If I understood correctly, you can use 3 styles object to handle it like this:

const styles = StyleSheet.create({
  default: { marginTop: 10, borderWidth: 1 },
  onlyButton: { borderColor: '#F0F' },
  onlyText: { borderColor: '#C9F' },
})

<Text style={[styles.default, styles.onlyText]} />
<TouchableOpacity={[styles.default, styles.onlyButton]} />

Note that the code above might have typos, it's just an example to show the idea.

Let me know if it helped, or if I misunderstood your question.

Hope it helps


问:
Finding an empty cell in a column using google sheet script

I am trying to find an empty cell in a specific column in google sheets. I am familiar with getLastRow(), but it returns the last row in whole sheet. I want to get the first empty cell in a specific column. So, I used a for loop and if. But I don't know why it is not working. The problem is that for loop does not return anything.
I am getting 10 rows of the column H (position 8) in the sheet test (line2). first 5 rows already have content. Data will be added to this cell later using another code. so, I want to be able to find the first empty cell in this column to be able to put the new data.

```<code>var sheettest = SpreadsheetApp.getActive().getSheetByName("test");
var columntest = sheettest.getRange(4, 8, 10).getValues();
    for(var i=0; columntest[i]=="" ; i++){
      if (columntest[i] ==""){
        var notationofemptycell = sheettest.getRange(i,8).getA1Notation();
        return notationofemptycell
      }

  }
</code>```

As I said, I want to find the first empty cell in that column. I defined the for loop to go on as long as the cell is not empty. then if the cell is empty, it should return the A1 notation of that cell.

It seems the for loop does go on until it find the empty cell, because I get no definition for the var "notationofemptycell" in debugging.

答:
You need to loop through the length of columntest. Try this:</p>

```<code>function myFunction() {
  var sheettest = SpreadsheetApp.getActive().getSheetByName("test");
  var lr=sheettest.getLastRow()
  var columntest = sheettest.getRange(4, 8, lr).getValues();
    for(var i=0; i<columntest.length ; i++){
      if (columntest[i] ==""){
        var notationofemptycell = sheettest.getActiveCell().getA1Notation();
        Logger.log( notationofemptycell)
        break;//stop when first blank cell on column H os found.
      }
  }
}
</code>```

Body:
I am trying to find an empty cell in a specific column in google sheets. I am familiar with getLastRow(), but it returns the last row in whole sheet. I want to get the first empty cell in a specific column. So, I used a for loop and if. But I don't know why it is not working. The problem is that for loop does not return anything.
I am getting 10 rows of the column H (position 8) in the sheet test (line2). first 5 rows already have content. Data will be added to this cell later using another code. so, I want to be able to find the first empty cell in this column to be able to put the new data.

var sheettest = SpreadsheetApp.getActive().getSheetByName("test");
var columntest = sheettest.getRange(4, 8, 10).getValues();
    for(var i=0; columntest[i]=="" ; i++){
      if (columntest[i] ==""){
        var notationofemptycell = sheettest.getRange(i,8).getA1Notation();
        return notationofemptycell
      }

  }

As I said, I want to find the first empty cell in that column. I defined the for loop to go on as long as the cell is not empty. then if the cell is empty, it should return the A1 notation of that cell.

It seems the for loop does go on until it find the empty cell, because I get no definition for the var "notationofemptycell" in debugging.

Body:
You need to loop through the length of columntest. Try this:

function myFunction() {
  var sheettest = SpreadsheetApp.getActive().getSheetByName("test");
  var lr=sheettest.getLastRow()
  var columntest = sheettest.getRange(4, 8, lr).getValues();
    for(var i=0; i<columntest.length ; i++){
      if (columntest[i] ==""){
        var notationofemptycell = sheettest.getActiveCell().getA1Notation();
        Logger.log( notationofemptycell)
        break;//stop when first blank cell on column H os found.
      }
  }
}


问:
MongoDB C# driver 2.0 update collection and ignore duplicates
I am very new with MongoDB (only spend a day learning). I have a relatively simple problem to solve and I choose to take the opportunity and learn about this popular nosql database.
In C# I have the following classes:

```<code>public class Item
{
    [BsonId]
    public string ItemId { get; set; }
    public string Name { get; set; }
    public ICollection<Detail> Details { get; set; }
}

public class Detail
{
    //[BsonId]
    public int DetailId { get; set; }
    public DateTime StartDate { get; set; }
    public double Qty { get; set; }
}
</code>```

I want to be able to add multiple objects (Details) to the Details collection. However I know that some of the items I have (coming from a rest api) will already be stored in the database and I want to avoid the duplicates.
So far I can think of 2 ways of doing it, but I am not really happy with either:

Get all stored details (per item) from MongoDB and then in .net I can filter
and find the new items and add them to the db. This way I can be sure that there will be no duplicates. That is however far from ideal solution.

I can add [BsonId] attribute to the DetailId (without this attribute this solution does not work) and then use AddToSetEach. This works and my only problem with that is that I don’t quite understand it. I mean, it suppose to only add the new objects if they do not already exists in the database,
but how does it know? How does it compare the objects? Do I have any control over that comparison process? Can I supply custom comparers? Also I noticed that if I pass 2 objects with the same DetailId (this should never happen in the real app), it still adds both, so BsonId attribute does not guarantee uniqueness?

Is there any elegant solution for this problem? Basically I just want to update the Details collection by passing another collection (which I know that contain some objects already stored in the db i.e. first collection) and ignore all duplicates.

答:
The AddToSetEach based version is certainly the way to go since it is the only one that scales properly.

I would, however, recommend you to drop the entire DetailId field unless it is really required for some other part of your application. Judging from a distance it would appear like any entry in your list of item details is uniquely identifiable by its StartDate field (plus potentially Qty, too). So why would you need the DetailId on top of that?

That leads directly to your question of why adding a [BsonId] attribute to the DetailId property does not result in guaranteed uniqueness inside your collection of Detail elements. One reason is that MongoDB simply cannot do it (see this link). The second reason is that MongoDB C# driver does not create an unique index or attempts other magic in order to ensure uniqueness here - probably because of reason #1. ;) All the [BsonId] attribute does is tell the driver to serialize the attributed property as the "_id" field (and write the other way round upon deserialization).

On the topic of "how does MongoDB know which objects are already present", the documentation is pretty clear:

If the value is a document, MongoDB determines that the document is a
  duplicate if an existing document in the array matches the to-be-added
  document exactly; i.e. the existing document has the exact same fields
  and values and the fields are in the same order. As such, field order
  matters and you cannot specify that MongoDB compare only a subset of
  the fields in the document to determine whether the document is a
  duplicate of an existing array element.

And, no, there is no option to specify custom comparers.

Body:
I am very new with MongoDB (only spend a day learning). I have a relatively simple problem to solve and I choose to take the opportunity and learn about this popular nosql database.
In C# I have the following classes:

public class Item
{
    [BsonId]
    public string ItemId { get; set; }
    public string Name { get; set; }
    public ICollection<Detail> Details { get; set; }
}

public class Detail
{
    //[BsonId]
    public int DetailId { get; set; }
    public DateTime StartDate { get; set; }
    public double Qty { get; set; }
}

I want to be able to add multiple objects (Details) to the Details collection. However I know that some of the items I have (coming from a rest api) will already be stored in the database and I want to avoid the duplicates.
So far I can think of 2 ways of doing it, but I am not really happy with either:

Get all stored details (per item) from MongoDB and then in .net I can filter
and find the new items and add them to the db. This way I can be sure that there will be no duplicates. That is however far from ideal solution.

I can add [BsonId] attribute to the DetailId (without this attribute this solution does not work) and then use AddToSetEach. This works and my only problem with that is that I don’t quite understand it. I mean, it suppose to only add the new objects if they do not already exists in the database,
but how does it know? How does it compare the objects? Do I have any control over that comparison process? Can I supply custom comparers? Also I noticed that if I pass 2 objects with the same DetailId (this should never happen in the real app), it still adds both, so BsonId attribute does not guarantee uniqueness?

Is there any elegant solution for this problem? Basically I just want to update the Details collection by passing another collection (which I know that contain some objects already stored in the db i.e. first collection) and ignore all duplicates.