Introduce Monaco Editor for template modification

Right now, modifying the Raytha templates is just raw  fields but this is not an enjoyable experience. Integration with CodeMirror was not successful in our first iteration.
We will investigate use of Monaco Editor (MIT Open Source) which is the same technology that powers VS Code.
npm install monaco-editor
import * as monaco from 'monaco-editor';

// Initialize the editor
var editor = monaco.editor.create(document.getElementById('editor-container'), {
  value: "function hello() {\n\talert('Hello, world!');\n}",
  language: 'javascript'
});

This was implemented and is working well:

This did increase the build time of the javascript compilation to the point where it was frustrating so I added another Build Configuration:

Debug without JS will build and run without compiling javascript, which is fine if you're not working on the javascript side.


TP2000-1024 Adding a measures tab for geo areas

TP2000-1024 Adding a measures tab for geo areas

Why

What

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (2b33730) 92.76% compared to head (bf3468b) 92.77%.
Report is 3 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1057      +/-   ##
==========================================
+ Coverage   92.76%   92.77%   +0.01%
==========================================
  Files         458      458
  Lines       33712    33890     +178
  Branches     2573     2588      +15
==========================================
+ Hits        31272    31441     +169
- Misses       1945     1953       +8
- Partials      495      496       +1

Files
Coverage Δ

geo_areas/tests/bdd/test_detail_geo_areas.py
98.38% <100.00%> (-1.62%)
:arrow_down:

geo_areas/tests/test_views.py
99.24% <100.00%> (+0.30%)
:arrow_up:

geo_areas/urls.py
100.00% <ø> (ø)

geo_areas/views.py
94.64% <98.07%> (+1.03%)
:arrow_up:

... and 4 files with indirect coverage changes

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


Group ID not selecting most precise mutual taxa in some cases

Apologies if this is a repeat...
This was identified as a vascular plant and I offered the ID of Sorbus. The mutual ID that came up was Plantae instead of Vascular Plants (Sorbus is vascular).  Perhaps I am just missing something but it looks like it may be a bug.

http://www.inaturalist.org/observations/2315221

Looks fine now. Is it possible Sorbus or Tracheophyta was just not correctly grafted at the time?


Redirect Links not working

Links to the demo and docs for af-virtual-scroll in Infinte Scroll is not working.

af-virtual-scroll

PR is welcome :)


Better formatted error messages in service responses

Our services currently return responses with 40x-50x if we encounter any client-side/server-side errors. The response now contains a plain text message explaining what's bad in the request and wraps it in to a Jax-rs response object. For example: all 400 responses use the JaxRsParamCondition method provided by beadledom.
It would be helpful to have a more structured error message Google API as an example passed to the service consumer which they can parse and take necessary actions.

@venki09 is the idea that beadledom provides a serializable model that supports this format (i.e. a jackson model)?

@b-boogaard : Yeah that is the idea. Let me know if there are better ways of handling this. Thanks

@venki09 I am pretty sure there are plans for something like this. The blocker is defining and settling on what the structure should actually be.

We actually ran into this being a problem with the last few releases of hi-service_client: https://jira2.cerner.com/browse/HEALTHEINT-23727. I have proposed that Infra make a small update to hi-service_client in order to get us around this issue for the time being but a services update to return JSON in these instances would be the best solution.

+1 to structure google is using, or even a simplified version of it.
{
  "error": {
    "code": 500,
    "message": "my error message"
  }
}

What I like about Google's error structure is that the errors array could be considered optional, so simple error messages could use the structure you have shown above, but something that is performing full validation on inputs may return back a full list of everything that needs to be correct in order to send a valid request.

Including a correlation id to link the error reported to the client to the error logged by the server would be helpful.  I'm otherwise in favor of the Google API.

The client should be setting the correlation id header when making the request, so that information should already be available to the client.

Fixed by 3ceffecc1f67cb5c4fa7a4cae51174571e6717ac


idf.py menuconfig - doesn't have any AT Commands

Hello All,
Looking at older posts - I can't seem to be able to enable the AT commands under the new tools using idy.py menuconfig.  I can't find the AT command menu like others have shown in their posts using the older msys2 process.
What's the correct sdkconfig.defaults -> sdkconfig file/process to start with?
Thanks,
John W.

@jwestmoreland Hi, could you please describe the issue detailly?
I am so sorry that can not get your point.

Hello,
Please look here:
https://github.com/espressif/esp-at/issues/368
When I run menuconfig - I never see and AT Command Window as is illustrated in this:
https://github.com/espressif/esp-at/issues/368
thread.
I obviously don't have an sdkconfig that matches the latest tools for using the AT Command strings - at least what I think...
Thanks,
John W.

@jwestmoreland Hi, I saw your issue. It seems that there may be something wrong with your AT port connection.
Generally, by default, AT has two ports:

USB0
It is your burning port, as well as the log port of the printing system log.

USB1
It it your AT commands input and AT log output.
Requires you connect the ESP32 to the computer by the fly line or serial port board.
you could take a look Set AT Port Pin.
Normally, by default:
TX ---> GPIO1
RX ---> GPIO3

When you burn the AT firmware, input AT by USB1. the AT will echo OK back.
For test whether AT has a right wire layout , you could download the AT firmware from release and have a test.
Good Luck.
CW.

CW,
I appreciate your answer - but I think there's a misunderstanding.
My serial ports are working - but I haven't seen a factory.bin being made by the tools yet - but that's another issue.
In the thread I reference,

That menu never comes up.  There's something incorrect I think with the sdkconfig.defaults I'm using.
Thanks,
John W.

@jwestmoreland Emm, are you using the latest master?
Try git pull && rm -rf build sdkconfig && make defconfig && make menuconfig
Emm, is there a clean environment to compile AT? What i mean is that you did not change any code, even not added a directory called at by yourself.
Intuitively, it could be an environmental issue.

CW,
Yes, I tried it - but for esp-at I rolled it back to the v.2.0esp32 version and for the esdp-idf back to v3.3.  I've been able to get the project to build - as I pointed out here:  https://github.com/espressif/esp-at/issues/369
but you're right.  With the new tools, Win10, Python 3.8, etc. - the build paths have got pretty mangled - I've had to just #define quite a few things to get a build to work.
I've looked at this tutorial as well:
https://youtu.be/KRyvly_SYS8
I'm going to set that up.  I tried setting up eclipse too - but there's issues with the .json files in the new environment - that's what I'm a little rusty on - I took some Java classes many year ago when they were talking about making a Java specific processor at Oracle; but I'm pretty much a C only guy even though I have taken quite a few C++ classes too - no pun intended - ha ha!
I'm working on a custom build as well - I cloned the code in main in esp-at and added a new file that basically adds an RTOS task to blink an RGB LED.  I posted this a while ago on the Arduino website since I did it originally for the MKR WiFi 1010 and the MRK Vidor 4K.  So, even though that's a simple example, it was tough getting the new build environment set up.
It's running now - the basic AT commands are working and the RGB LEDs are blinking in a background task - but I want to enable JTAG and I would like to do that from a decent IDE - that above tutorial will be a starting place for me.  Another issue I've wondered about as well - most of those examples are using one of the Segger tools even though the ESP-Prog is supposed to be the tool of choice.  I hope there's not some reason I don't know about why those are currently available on Mouser for $12,00 each.
Thanks,
John W.

@jwestmoreland I guess maybe some strange problems caused by the operating system win10 environment.
Because our development tools and suites have not been verified on win10, compatibility problems or other unpredictable problems are not excluded.
I personally suggest that you could install a virtual machine on win10, such as VirtualBox, VMware,
And then install the Ubuntu system in the virtual machine, so your problems may get better, because most of our engineer development environment is based on this, and we are easier to synchronize and reproduce problems.
Of course, if you download esp-at, and make menuconfig, compile and run AT  all are okey, maybe we can do something with your next issue.

Hello CW,
I have some linux development machines I can try - but I'm trying the plugin for MS VS Code right now - getting OK results even though there's apparently some .json files that have to be checked.
Also - launching the ESP-IDF gui configuration tool doesn't appear to work for me right now - but I've got some builds to make OK.
Thanks,
John W.

Hi jwestmoreland,
You could have a try to launch the make menuconfig menu at esp-idf.
If not work, you could raise a issue at esp-idf issue,
maybe some experienced colleagues would give you some advice.

Hello CW,
idf.py menuconfig does come up using the terminal shell inside the VS Code environment - please see the pic:

Thanks,
John W.

Could I understand that make menuconfig can pop up the menu at esp-idf,
But can not pop up the menu at esp-at?

CW,
Please take a look here and let me know if you have any questions about what I'm trying to convey.

Thanks,
John W.

Hi John,
Could you please navigate to Component config  menu, AT command config is under the LWIP.
Or you can type / to look for AT commands after make menuconfig pop up.

Hello CW,
I will look at this as soon as I get my environment updated to debug via JTAG - as soon as I'm done I will try that.  I'm pretty sure I tried the / search method previously and there were no matches on AT commands - but I didn't try that under LWIP when I did that.
I'll try to be back with you on this in a few hrs. at the most; hopefully sooner.
Thanks,
John

Hello CW,
Some good news - attached shows menuconfig working under VS Code; but I don't see any AT commands under LWIP - did a search too - nada.

Thanks,
John

Could you please drag the picture to github, for our network have no permission to access the
user-images.githubusercontent.com

Ohhh,
I thought you did it like the following:

To be honest, we have no experience on operating the make menuconfig at vscode IDE.
Sorry for that.

CW,
Can you send me your sdkconfig and sdkconfig.defaults file you use for the above?  I don't see the AT command on my end - at least when I run menuconfig.
Thanks,
John W.

CW,
github seems to claim all should be able to see that - I'm looking at the
'gist' stuff to see if I can get something there that's easier to access.
The only other way I know of it to make it part of a repo.
Regards,
John
On Thu, Mar 19, 2020 at 12:05 AM ustccw<EMAIL_ADDRESS>wrote:

Could you please drag the picture to github, for our network have no
permission to access the
user-images.githubusercontent.com
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/espressif/esp-at/issues/370#issuecomment-601021357,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AARTWJ7PVBNDETVGSTCQNSLRIG75LANCNFSM4LGXPB7Q
.

Hi Hohn,
The following is my sdkconfig, sdkconfig.defauls is in: https://github.com/espressif/esp-at/blob/master/module_config/module_esp32_default/sdkconfig.defaults
sdkconfig.zip
From your screenshot, I think it may be caused by the organization of your directory structure

CW,
OK - I'll take a look and see if I can get the AT commands to load.
I've been dragging that sdkconfig around - it's the same one I'm using for the esp-at builds - and the build that I have working does work with AT commands even though I didn't config via sdkconfig - I basically went through the #defines.
Thanks,
John

Hi John,
I am not sure your directory strcuture is OK or not, you could take a look at: https://docs.espressif.com/projects/esp-idf/en/v3.3/api-guides/build-system.html
If your environment still can not configurate the AT commands, could you please zip all of your code, I will try to make it work.

CW,
OK - I'm trying to get this going under VS Code - let me play with this a
bit; I'll see what that can do - and then if I still can't figure it out -
I'll zip up some example code and send it to you.
Thanks,
John
On Thu, Mar 19, 2020 at 1:13 AM ustccw<EMAIL_ADDRESS>wrote:

Hi John,
I am not sure your directory strcuture is OK or not, you could take a look
at:
https://docs.espressif.com/projects/esp-idf/en/v3.3/api-guides/build-system.html
If your environment still can not configurate the AT commands, could you
please zip all of your code, I will try to make it work.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/espressif/esp-at/issues/370#issuecomment-601044719,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AARTWJ6AGRIBNWJKFAU75CLRIHH3JANCNFSM4LGXPB7Q
.

Hello CW,
I switched to Eclipse - and the sdkconfig editor seems to be working there OK - (I did get some AT Commands in the editor as well with VS Code - that entry needs to be made in sdkconfig.defaults... -) - but for now I'm going to keep running with Eclipse since the debugger is working OK under that vs. VS Code (via plugin).
Here's a screen shot:

Thanks for your help,
John

Thanks for the help here - I think we can close this thread.
Best Regards,
John W.


placemarkFromCoordinates implementation is missing on WEB

Overflow on channel: flutter.baseflow.com/geocoding.  Messages on this channel are being discarded in FIFO fashion.  The engine may not be running or you need to adjust the buffer size if of the channel.
Error: MissingPluginException(No implementation found for method placemarkFromCoordinates on channel flutter.baseflow.com/geocoding)
Version: geocoding: ^1.0.5
Platform:

WEB

@RajuMuliyashiya geocoding doesn't support web, currently only Android and iOS are supported.

@mvanbeusekom  In Future will you add web support on same?

Yes I am planning to but I don't have any indication on when I will get around to adding the implementation.

I would be happy to chip in $20 Does that help?
Most likely a copy and paste exercise, eg https://gist.github.com/tyrauber/3351515

and some more https://stackoverflow.com/questions/64007456/flutter-web-reverse-geocoding

PS this one seems to claim Web support maybe, merging efforts would be good https://pub.dev/packages/google_geocoding

Hi @RajuMuliyashiya , I just made a proposal about this topic. It would help out a lot if you could read the #69 proposal and react to it.
The main problem is that in contrary to Android and Apples geocoding service, a geocoding web service is free to an extend, but paid if you exceed a certain request limit. This problem is all explained in the proposal, and it would help us out a lot if you could react to it!


[Question] why need this sort in Sort.rs

@yjshen , Sorry for bothering you,  Why need positions.sort_unstable() below
https://github.com/apache/arrow-datafusion/blob/807b7a5f7eb858e9f7162e1f00ffeeedd0bf2050/datafusion/core/src/physical_plan/sorts/sort.rs#L460-L469
I think we should keep the order of the adding index in positions , so we can keep the order from indices , the result has correctly order.
https://github.com/apache/arrow-datafusion/blob/807b7a5f7eb858e9f7162e1f00ffeeedd0bf2050/datafusion/core/src/physical_plan/sorts/sort.rs#L433-L435

i mean in this situation

positions.sort_unstable();  will get wrong order

@yjshen  But i think you pre-sort all batches during insert, so this situation not exist。


c.json naked parameters vs object parameter

Is there currently any way to use an object parameter for the c.json function? I would like to use the return value(s) of a custom error function, including a default status code.
e.g.
public static sample(props: Props) {
    const { error, status = 400 } = props

    const object = {
      message: error
    }

    return { object, status }
  }

Hi @Zerebokep !
I don't know if I understand your question correctly.
I know I'm wrong but like this?
const { object, status } = sample(props)
return c.json(object, status)

Yes, that would work, however, I would like to have it as one-liner. I've put the c.json inside the sample function now, which also works for me. Thank you :)


Filesystem Error

Hey, I am trying to install the WHMCS module, but I cannot add the server. It gives this error in the panel logs: [2020-07-19 14:17:52] production.ERROR: ErrorException: file_put_contents(/var/www/pterodactyl/storage/framework/cache/data/54/7e/547e8233c20e047bc2a38d4c6cf8621b8ce3c49c): failed to open stream: No such file or directory in /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122. I also checked, and this file indeed does not exist. I'm not sure what is causing the problem. Please do help. Thank you! 😄

Please use the Pterodactyl Discord for configuration related support instead of GitHub issues.

@TrixterTheTux I did they don't know what the issue is.

As what username?

Dev.Not

And I was trying to figure this out for the past few days now

I am thinking its maybe a bug in the module

The error has nothing to do with the module.


Plugin Development - write binary data not work

Hello,
I'm trying to write binary data to external SD card using fs library (acode.require('fs')).
Written data are always formatted to text in final file.
My code is like below :
this.fs(path).writeFile(data)
data is Buffer type in above example.
The resulted file contains data like below :
{"type":"Buffer","data":[255,116,79,99,0,0,0,2,0,0,0,1,0, ...
Is there an option to write binary data with this module ?
I see that in Cordova plugin, there is an option to tell that argument is ArrayBuffer type :
In SDcard.java
private void writeFile(
final String filename,
final String content,
final Boolean isArrayBuffer,
final CallbackContext callback
) {
final Context context = this.context;
...
But in externalFS.js, there is no option for this, may be the solution is adding this option there.
Thank you for help.

I finally managed to solve my problem.
The issue is that I passed an object of type "Buffer" to the writeFile function. This type is not supported as mentioned in the documentation.
I just converted my Buffer object to ArrayBuffer like this :
Buffer.from(data).buffer
Thank you.

Solved as not issue.


torch_unet_kvasir_gramine_ready example plan initialization fails on dataset download

Describe the bug
Plan initialization of torch_unet_kvasir_gramine_ready example fails due to hash mismatch of the downloaded dataset.
Data file is downloaded from the following URL: https://datasets.simula.no/downloads/hyper-kvasir/hyper-kvasir-segmented-images.zip
When changing the downloaded file name to _hyper-kvasir-segmented-images.zip, initialization succeeds
To Reproduce
fx workspace create --prefix workspace --template torch_unet_kvasir_gramine_ready
cd workspace
fx plan initialize -a `hostname`

Expected behavior
Plan initialization succeeds
Screenshots

I see now that this is a duplicate of #505 , which is already fixed. Closing issue


iOS9 Crash when export video with SCAssetExportSession

crash when Received memory warning.

#205 this solved my problem. Thanks @rFlex


Provisioning: When a failure occurs, capture and persist the log output

Is your feature request related to a problem? Please describe.
The provisioning process takes a long time and produces a large amount of log output. Currently the output is displayed as notifications. However, since notifications are ephemeral, important
Describe the solution you'd like

Describe alternatives you've considered

Additional context

Closing as a dupe


Remove unwanted kernel telemetry events

Codecov Report

Merging #11566 (06d10cf) into main (6c16907) will increase coverage by 0%.
The diff coverage is 83%.

@@          Coverage Diff           @@
##            main   #11566   +/-   ##
======================================
  Coverage     63%      63%
======================================
  Files        477      477
  Lines      34025    34008   -17
  Branches    5521     5521
======================================
- Hits       21513    21508    -5
+ Misses     10462    10450   -12
  Partials    2050     2050

Impacted Files
Coverage Δ

src/telemetry.ts
7% <ø> (+<1%)
:arrow_up:

...ls/jupyter/launcher/liveshare/hostJupyterServer.ts
73% <80%> (-2%)
:arrow_down:

src/kernels/raw/session/rawJupyterSession.node.ts
78% <100%> (-4%)
:arrow_down:

src/kernels/installer/productInstaller.node.ts
78% <0%> (-2%)
:arrow_down:

src/platform/common/utils/async.ts
49% <0%> (-2%)
:arrow_down:

src/kernels/variables/kernelVariables.ts
56% <0%> (-2%)
:arrow_down:

src/kernels/raw/finder/localKernelFinder.node.ts
75% <0%> (-2%)
:arrow_down:

src/platform/common/utils/decorators.ts
90% <0%> (-1%)
:arrow_down:

...c/kernels/execution/cellExecutionMessageHandler.ts
77% <0%> (-1%)
:arrow_down:

... and 5 more


Integrated wallet is not working properly with wordbazaar.

Confirmations for transactions do not appear, rendering the creation of an asset stuck at step 1.

@mradkov doesn't seem to be an issue when you allow pop-ups


CX-2729: Fix empty reply

CX-2729
Description
Downloading many videos using slow network (3G) causes ERR_EMPTY_RESPONSE to be received by the browser. This is caused by the NGINX timing out. To resolve this we

Need to upgrade (openresty-<IP_ADDRESS> to openresty-<IP_ADDRESS>) since with the older version increasing timeout values doesn't work:

proxy_connect_read_timeout
proxy_connect_send_timeout
proxy_read_timeout

Increase these timeouts from default 60s to around 10min:

proxy_connect_data_timeout
proxy_read_timeout

For some reason HLS test is failing while in practice it works fine:
https://github.com/mirainc/funes/assets/3447630/43f8b255-898a-4b5c-97ee-acb0201608a8
Testing
Tested locally with index.html file:
<!doctype html>
<html>
  <head>
    <title>This is the title of the webpage!</title>
  </head>
  <body>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/attract/layer1/attract.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product2/layer2/2-hty2jgcjugi2p9z2w2o7.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product3/layer2/3-hty2jgcjugi2p9z2w2o7.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product4/layer2/4-ol1w2kduwwnhqs0jeqkw.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product5/layer2/5-hty2jgcjugi2p9z2w2o7.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product6/layer2/6-hty2jgcjugi2p9z2w2o7.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product7/layer2/7-ol1w2kduwwnhqs0jeqkw.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product10/layer2/10-PC_WET_ECOM_2022UPDATE.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product11/layer2/11-PC_WET_ECOM_2022UPDATE.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product12/layer2/12-rt24dph8plhjt8hqimhh.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product13/layer2/13-DNTLF_PUPPY_VIDEO_V1.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product14/layer2/14-i0cqam1clihwnxmwymzj.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product15/layer2/15-i0cqam1clihwnxmwymzj.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product16/layer2/16-i0cqam1clihwnxmwymzj.mp4"></video>
    <video loop src="https://purina-meijer-p13-gateway.vercel.app/assets/products/product17/layer2/17-i0cqam1clihwnxmwymzj.mp4"></video>
  </body>
</html>

Before
https://github.com/mirainc/funes/assets/3447630/b6f6496c-881c-413e-b537-8ef52ff2e281
After

Will the new timeout be defined on the docker image in the screenray repo, as I don't see it here. Is there any issue in setting it say 1 hour?
For Purina P13 Gateway, the largest asset is 20mb. That would take just over 10 minutes on a 250kb/s connection. I'm not sure how that compares to the speed in stores, but I think they could be slower.

Will the new timeout be defined on the docker image in the screenray repo, as I don't see it here. Is there any issue in setting it say 1 hour?
For Purina P13 Gateway, the largest asset is 20mb. That would take just over 10 minutes on a 250kb/s connection. I'm not sure how that compares to the speed in stores, but I think they could be slower.

Current default values represent library/nginx defaults. I am not sure if setting these variables for let's say 1 hour wouldn't cause problems for other use cases. If we need to change them we should be able to do so using environmental variables as per @jschr :


Updates to SQLINTBLOGLP for errata published on June 9, 2019

Updates to SQLINTBLOGLP for errata published on June 9, 2019

Docs Build status updates of commit ec0349b:
:warning: Validation status: warnings

File
Status
Preview URL
Details

documentation/blog/MS-SQLINTBLOGLP/07bd0af5-bd43-4ae9-8bd7-dc9bba21c4e8.md
:warning:Warning

Details

documentation/blog/MS-SQLINTBLOGLP/1d0338c5-7d2f-47be-be42-0b20e4189a46.md
:warning:Warning

Details

documentation/blog/MS-SQLINTBLOGLP/f40a5f0a-c244-4a5b-b137-1c6833a4c063.md
:warning:Warning

Details

documentation/blog/MS-SQLINTBLOGLP/toc.yml
:white_check_mark:Succeeded

documentation/blog/MS-SQLINTBLOGLP/07bd0af5-bd43-4ae9-8bd7-dc9bba21c4e8.md

[Warning] Author openspecs-office cannot be recognized in GitHub.

documentation/blog/MS-SQLINTBLOGLP/1d0338c5-7d2f-47be-be42-0b20e4189a46.md

[Warning] Author openspecs-office cannot be recognized in GitHub.

documentation/blog/MS-SQLINTBLOGLP/f40a5f0a-c244-4a5b-b137-1c6833a4c063.md

[Warning] Author openspecs-office cannot be recognized in GitHub.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Allow empty string for config property values.

Yeah, I thought about this, and just did t really have a satisfactory answer. Do I just let some config be empty string? Which? Just the one I know needs to allow it so far? Add some others? What’s the rule? In the end it felt better to just consistently allow it. If you want to set it, we take what you said. The same as if you set something to ‘t’ for an address it will still end up failing and showing you set it to empty string.


Fixed bug with login, added directive

I fixed a bug with the login modal upon intercepted 401-errors where it creates multiple modals or doesn't forward the data properly. Now any 401-error occurring anywhere in oms will automatically stall the application, pop up a login modal and refire the failed request with the new login data.
Also I added a directive to show an user by id

I find this hard to review, I will just fire it up and check if this still works?
Maybe for the future, you can attach a quick screenshot of what you added/changed?

Okay, I can do that. In this case there is not really a screenshot as the modal looks the same, I just experienced a bug during development with it before. And actually I think I found another one, so maybe leave it open atm as I am trying to track it down. I am not sure though I can't reproduce that one atm

Well as it is right now I approve of it, it seems to work overall. If you want to track down that bug, do it!

Yeah, it's a schoolbook-case of a heisenbug, so idk, I will try some rubber-duck-debugging and when I give up just merge it


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-1.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 310

Questions ?
Please refer to the Backport tool documentation


DEVPROD-5790: Make parseSortString more generic

DEVPROD-5790
Description
The tests table name sort was failing because the sort categories were hardcoded into the parseSortString function. I updated the typing allow defining the categories as well as the output keys.
The new code is a little more verbose but now the parseSortString output typing can be linked directly to GQL input types. It's also a lot harder to pass in incorrect parameters and this code will be reused for the task duration table sort improvements (DEVPROD-828).

evergreen retry

evergreen retry


Update limits-specifications-teams.md

Amendments to indicate 30 private channel limit also extends into deleted channels
(Source MVP discussion thread)

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@SerdarSoysal PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


August 30th, 2021 Community Meeting

Please add a topic in this thread and add a link to the Github issue associated with the topic.
Please make sure you give folks enough time to review/discuss the topic offline on Github before coming into the meeting
(optional) Paste the image of an animal :smile_cat:

Discussion topic - organization of build strategies. https://github.com/shipwright-io/build/issues/852

Next release (v0.6.0 for build) - can we do this?

Approvers vs reviewers, https://github.com/shipwright-io/community/pull/27.

Minutes:

Samples

Organize directory by tool that produces the image (kaniko, buildpacks, etc.)
Add individual files by variation (adding trivy scanning, paketo vs. heroku buildpacks)
Consensus in favor of updating names, only having ClusterBuildStrategy examples. BuildStrategy items can be moved to test data.

Current user pain point - specifying resources on builds. Currently handled with build strategies, which leads to teams to creating multiple flavors of build strategies based on resource usage.


Mac/iOS: Selection + Caret - needs a way of setting the text color, not just the background

This is to support theme colors from iTerm2 which come with both foreground and background colors.   Currently the iOS and Mac terminal views only support changing the background.

https://github.com/migueldeicaza/SwiftTerm/pull/289


Updates to the Corporate Terms of Service - Spring 2019

This update to the Corporate Terms of Service includes a few changes for clarification in the following sections:

Definitions
Account Terms

These changes will take effect on May 1, 2019.

These changes will take effect on May 1, 2019.

took effect - merging a bit late 😉


Delete Mistyped Chords Option disallows chained chords if any chord by itself is not in dictionary

Describe the bug
Summary:
When the Delete Mistyped Chords Option is enabled - chained chords no longer work as expected.
What happens, and what do you expect to happen instead?
If a chord in a chained chord does not have a standalone chord definition (with the exception of the last chord) then it gets deleted as a mistyped chord and any followup chord entry will not trigger the chained chord output.  So for example I can't type Monday using "1 da" because the "1 " does not have a chord definition on it’s own. I expect that because "1 " is a member of a chained chord, it should not be deleted, then if the second chord typed is invalid then everything entered so far should be deleted.
Useful Details

Which settings do you have selected in the ZipChord settings?
Delete Mistyped Chords Option: Enabled

If the output is wrong, what is the sequence of keys pressed, the dictionary entry, and what text appears on the screen?
dictionary entry: "1 da" = Monday
dictionary entry: "da" = day
keys pressed: "1 " then "da"
output to screen: day

Workaround:
As workaround of course I can make dictionary entries for the 1st chords of chained chord definition for all my chained chords, but this results in a lot of chords that exist that I don't actually want to exist on their own. For example I have this saved "ple zr"=pleasure, but to get it to work I first have to save "ple"=ple, because I don't have a need yet for this chord outside of this chained chord definition.

That's a good use case I did not think about. Apologies for responding only now. I've been very busy with my day job, but will look into fixing this.


Error : Bad value (line 497, file "Code")

I had done all the settings as you described at Link. But at the end, when i click on the menu Run->start it displays an error that "Bad value (line 497, file "Code")". Google Scriprt which I used is posted herein below,
/* global Logger CalendarApp ScriptApp ContactsApp Utilities Calendar UrlFetchApp MailApp */

/*
 * Thanks to this script you are going to receive an email before the birthday of each of your contacts.
 * The script is easily customizable via some variables listed below.
 */

// START MANDATORY CUSTOMIZATION

// You need to personalize these values, otherwise the script won't work.

/*
 * GOOGLE EMAIL ADDRESS
 *
 * First of all specify the gmail address of your Google Account.
 * This is needed to retrieve informations about your contacts.
 */
var myGoogleEmail =<EMAIL_ADDRESS>
/*
 * NOTIFICATION EMAIL ADDRESS
 *
 * Now specify to which email address the notifications should be sent.
 * This can be the same email address of the previous line or any other email address.
 */
var myEmail =<EMAIL_ADDRESS>
/*
 * ID OF THE BIRTHDAY CALENDAR
 *
 * Open up https://calendar.google.com, in the menu on the left click on the arrow next to the birthday calendar
 * and choose 'Calendar settings', finally look for a the "Calendar ID field" (it should be something similar to
 * #contacts@group.v.calendar.google.com): copy and paste it between the quotes in the next line.
 */
var calendarId =<EMAIL_ADDRESS>
/*
 * YOUR TIMEZIONE
 *
 * If you need to adjust the timezone of the email notifications use this variable.
 *
 * Accepted values:
 *  GMT/UTC - examples: 'UTC+2' 'GMT-4'
 *  regional timezones: 'Europe/Berlin' (See here for a complete list: http://joda-time.sourceforge.net/timezones.html)
 */
var myTimeZone = 'UTC+05:30';

/*
 * HOUR OF THE NOTIFICATION
 *
 * Specify at which hour of the day would you like to receive the email notifications.
 * This must be a number between 0 and 23.
 */
var notificationHour = 9;

/*
 * HOW MANY DAYS BEFORE BIRTHDAY
 *
 * Here you have to decide when you want to receive the email notification.
 * Insert between the square brackets a comma-separated list of numbers, where each number
 * represents how many day before a birthday you want to be notified.
 * If you want to be notified only once then enter a single number between the brackets.
 *
 * Examples:
 *  [0] means "Notify me the day of the birthday";
 *  [0, 7] means "Notify me the day of the birthday and 7 days before";
 *  [0, 1, 7] means "Notify me the day of the birthday, the day before and 7 days before";
 *
 * Note: in any case you will receive one email per day: all the notifications will be grouped
 * together in that email.
 */
var anticipateDays = [0];

/*
 * LANGUAGE
 *
 * For internationalization (translation) enter the two-digit lang-code here (to add your language just fill in the
 * 'i18n' hash below and change lang here to match that).
 */
var lang = 'en';

// For places where an indent is used for display reasons (in plaintext email), this number of spaces is used.
var indentSize = 2;

// END MANDATORY CUSTOMIZATION

// START DEBUGGING OPTIONS

// When debugging is not wanted you can set this true to disable debugging calls, for a slight speedup.
var noLog = false;

// When debugging (noLog == false) and you want the logs emailed too, set this to true.
var sendLog = false;

/*
 * The test() function can be run on a specified date as if it is "today". Specify that date here in the format
 * YEAR/MONTH/DAY HOUR:MINUTE:SECOND
 * Choose a date you know should trigger a birthday notification.
 */
var fakeTestDate = '2017/02/14 06:00:00';

// END DEBUGGING OPTIONS

/*
 * There is no need to edit anything below this line.
 * The script will work if you inserted valid values up until here, however feel free to take a peek at my code ;)
 */

var version = '2.1';

// Merge an array at the end of an existing array.
if (typeof Array.prototype.extend === 'undefined') {
  Array.prototype.extend = function (array) {
    var i;

    for (i = 0; i < array.length; ++i) {
      this.push(array[i]);
    }
    return this;
  };
}

if (typeof String.prototype.format === 'undefined') {
  String.prototype.format = function () {
    var args;

    args = arguments;
    return this.replace(/\{(\d+)\}/g, function (match, number) {
      return typeof args[number] !== 'undefined'
        ? args[number]
        : match
      ;
    });
  };
}

var indent = Array(indentSize + 1).join(' ');

var i18n = {
  // For all languages, if a translation is not present the untranslated string
  // is returned, so just leave out translations which are the same as the English.

  // An entry for 'en' marks it as a valid lang config-option, but leave it empty
  // to just return unaltered phrases.
  'en': {},
  'el': {
    'UNKNOWN': 'ΑΓΝΩΣΤΟ',
    'Age': 'Ηλικία',
    'Birthday': 'Γενέθλια',
    'Birthday today': 'Γενέθλια σήμερα',
    'Birthday tomorrow': 'Γενέθλια αύριο',
    'Birthday in {0} days': 'Γενέθλια σε {0} ημέρες',
    'Hey! Don\'t forget these birthdays': 'Μην ξεχάσετε αυτά τα γενέθλια',
    'Google Calendar Contacts Birthday Notification': 'Ενημερώσεις Γενεθλίων του Ημερολογίου Google',
    'version': 'εκδοχή',
    'by': 'από τον', // τον=masculine,την=feminine (using the masculine, in one place, for now but may need more context in future)
    'dd-MM-yyyy': 'dd-MM-yyyy',
    'send email now': 'στείλτε email τώρα',
    'Mobile phone': 'Κινητό',
    'Work phone': 'Τηλέφωνο εργασίας',
    'Home phone': 'Τηλέφωνο οικίας',
    'Main phone': 'Κύριο τηλέφωνο',
  },
  'it': {
    'UNKNOWN': 'SCONOSCIUTO',
    'Age': 'Età',
    'Birthday': 'Compleanno',
    'Birthday today': 'Compleanno oggi',
    'Birthday tomorrow': 'Compleanno domani',
    'Birthday in {0} days': 'Compleanno fra {0} giorni',
    'Hey! Don\'t forget these birthdays': 'Hey! Non dimenticare questi compleanni',
    'version': 'versione',
    'by': 'by',
    'dd-MM-yyyy': 'dd-MM-yyyy',
    'send email now': 'invia email ora',
    'Mobile phone': 'Cellulare',
    'Work phone': 'Telefono di lavoro',
    'Home phone': 'Telefono di casa',
    'Main phone': 'Telefono principale',
  },
  /* To add a language:
  '[lang-code]': {
    '[first phrase]': '[translation here]',
    '[second phrase]': '[translation here]',
    ...
  }
  */
};

var birthdayCalendar = CalendarApp.getCalendarById(calendarId);
var calendarTimeZone = birthdayCalendar ? birthdayCalendar.getTimeZone() : null;
var inlineImages;

// Replace a Field.Label object with its "beautified" text representation.
function beautifyLabel (label) {
  switch (label) {
    case ContactsApp.Field.MOBILE_PHONE:
      return _('Mobile phone');
    case ContactsApp.Field.WORK_PHONE:
      return _('Work phone');
    case ContactsApp.Field.HOME_PHONE:
      return _('Home phone');
    case ContactsApp.Field.MAIN_PHONE:
      return _('Main phone');
    default:
      return label;
  }
}

/*
 * Get the translation of a string.
 * If the language or the chosen string is invalid return the string itself.
 */
function _ (string) {
  return i18n[lang][string] || string;
}

function doLog (arg) {
  noLog || Logger.log(arg);
}

/*
 * Look for birthdays on a certain date.
 * If testDate is not specified Date.now() will be used.
 */
function checkBirthdays (testDate) {
  var anticipate, subjectPrefix, subjectBuilder,
    bodyPrefix, bodySuffix1, bodySuffix2, bodyBuilder, htmlBodyBuilder, now, subject, body, htmlBody;

  doLog('Starting run of GoogleCalendarBirthdayNotifications version ' + version + '.');
  // The script needs this value in milliseconds, but the user entered it in days.
  anticipate = anticipateDays.map(function (n) { return 1000 * 60 * 60 * 24 * n; });
  // Verify that the birthday calendar exists.
  if (!birthdayCalendar) {
    doLog('Error: Birthday calendar not found!');
    doLog('Please follow the instructions at this page to activate it: https://support.google.com/calendar/answer/6084659?hl=en');
    return;
  }

  // Start building the email notification text.
  subjectPrefix = _('Birthday') + ': ';
  subjectBuilder = [];
  bodyPrefix = _('Hey! Don\'t forget these birthdays') + ':';
  bodySuffix1 = _('Google Calendar Contacts Birthday Notification') + ' (' + _('version') + ' ' + version + ')';
  bodySuffix2 = _('by ') + 'Giorgio Bonvicini';
  // The email is built both with plain text and HTML text.
  bodyBuilder = [];
  htmlBodyBuilder = [];

  // Use the testDate if specified, otherwise use todays' date.
  now = testDate || new Date();
  doLog('Date used: ' + now);

  inlineImages = {};
  /*
   * Look for birthdays on each of the days specified by the user.
   * timeInterval represents how many milliseconds in the future to check.
   */
  anticipate.forEach(
    function (timeInterval) {
      var optionalArgs, birthdays, formattedDate, whenIsIt;

      // Set the search filter to include only events happening 'timeInterval' milliseconds after now.
      optionalArgs = {
        // Filter only events happening between 'now + timeInterval'...
        timeMin: Utilities.formatDate(new Date(now.getTime() + timeInterval), calendarTimeZone, 'yyyy-MM-dd\'T\'HH:mm:ss\'Z\''),
        // ... and 'now + timeInterval + 1 sec'.
        timeMax: Utilities.formatDate(new Date(now.getTime() + timeInterval + 1000), calendarTimeZone, 'yyyy-MM-dd\'T\'HH:mm:ss\'Z\''),
        // Treat recurring (like birthdays) events as single events.
        singleEvents: true
      };
      doLog('Checking birthdays from ' + optionalArgs.timeMin + ' to ' + optionalArgs.timeMax);

      // Get all the matching events.
      birthdays = Calendar.Events.list(calendarId, optionalArgs).items;
      doLog('Found ' + birthdays.length + ' birthdays in this time range.');
      // If no event is found for this particular timeInterval skip it.
      if (birthdays.length < 1) {
        return;
      }

      formattedDate = Utilities.formatDate(new Date(now.getTime() + timeInterval), calendarTimeZone, _('dd-MM-yyyy'));
      // Build the headers of birthday grouping by date.
      bodyBuilder.push(' * ');
      htmlBodyBuilder.push('
');
      switch (timeInterval / (24 * 60 * 60 * 1000)) {
        case 0:
          whenIsIt = _('Birthday today') + ' (' + formattedDate + ')';
          break;
        case 1:
          whenIsIt = _('Birthday tomorrow') + ' (' + formattedDate + ')';
          break;
        default:
          whenIsIt = _('Birthday in {0} days').format(timeInterval / (24 * 60 * 60 * 1000)) + ' (' + formattedDate + ')';
      }
      bodyBuilder.push(whenIsIt, ':\n');
      htmlBodyBuilder.push(whenIsIt, '

');

      // Add each of the birthdays for this timeInterval.
      birthdays.forEach(
        function (event, i) {
          var contact;

          doLog('Contact #' + i);
          contact = new Contact(event);
          subjectBuilder.push(contact.fullName);
          bodyBuilder.extend(contact.getPlainTextLine());
          htmlBodyBuilder.extend(contact.getHtmlLine());
        }
      );

      bodyBuilder.push('\n');
      htmlBodyBuilder.push('

');
    }
  );

  // If there is an email to send...
  if (bodyBuilder.length > 0) {
    subject = subjectPrefix + subjectBuilder.join(' - ');
    body = [bodyPrefix, '\n\n']
           .concat(bodyBuilder)
           .concat(['\n\n', indent, bodySuffix1, '\n', indent, bodySuffix2, '\n'])
           .join('');
    htmlBody = ['
', bodyPrefix, '

']
               .concat(htmlBodyBuilder)
               .concat(['

', bodySuffix1, '
', bodySuffix2, '
'])
               .join('');

    // ...send the email notification.
    doLog('Sending email...');
    MailApp.sendEmail({
      to: myEmail,
      subject: subject,
      body: body,
      htmlBody: htmlBody,
      inlineImages: inlineImages
    });
    doLog('Email sent.');
  }
  // Send the log if the debug options say so.
  if (!noLog && sendLog) {
    MailApp.sendEmail({
      to: myEmail,
      subject: 'Logs for birthday-notification run',
      body: Logger.getLog()
    });
  }
}

/*
 * Extract contact data from a birthday event and integrate it with additional data
 * recovered directly from Google Contact through the contactId field if present.
 */
var Contact = function (event) {
  var eventData, googleContact, currentYear, birthdayYear, phoneFields;

  // Extract basic data from the event description.
  eventData = event.gadget.preferences;
  this.id = (typeof eventData['goo.contactsContactId'] === 'undefined') ? '' : eventData['goo.contactsContactId'];
  this.fullName = (typeof eventData['goo.contactsFullName'] === 'undefined') ? '' : eventData['goo.contactsFullName'];
  this.email = (typeof eventData['goo.contactsEmail'] === 'undefined') ? '' : eventData['goo.contactsEmail'];
  this.photo = (typeof eventData['goo.contactsPhotoUrl'] === 'undefined') ? '' : eventData['goo.contactsPhotoUrl'];
  this.age = '';
  this.phoneFields = [];
  if (this.email !== '') {
    doLog('Has email.');
  }
  if (this.fullName !== '') {
    doLog('Has full name');
  }
  if (this.photo !== '') {
    doLog('Has photo.');
  }

  // If the contact has a contactId field try to get the Google Contact corresponding to that contactId.
  if (this.id !== '') {
    googleContact = ContactsApp.getContactById('http://www.google.com/m8/feeds/contacts/' + encodeURIComponent(myGoogleEmail) + '/base/' + this.id);
  }

  // If a valid Google Contact exists extract some additional data.
  if (googleContact) {
    // Extract contact's age if the contact has the birthday year.
    if (googleContact.getDates(ContactsApp.Field.BIRTHDAY)[0]) {
      doLog('Has birthday year.');
      currentYear = Utilities.formatDate(new Date(event.start.date.replace(/-/g, '/')), calendarTimeZone, 'yyyy');
      birthdayYear = googleContact.getDates(ContactsApp.Field.BIRTHDAY)[0].getYear();
      this.age = birthdayYear !== '' ? (currentYear - birthdayYear).toFixed(0) : '';
    }
    // Extract contact's phone numbers.
    phoneFields = googleContact.getPhones();
    if (phoneFields.length > 0) {
      this.phoneFields = phoneFields;
      doLog('Has phones.');
    }
  }

  /*
   * Use the extracted data to build a plain line of text displaying all the
   * collected data about the contact.
   */
  this.getPlainTextLine = function () {
    var line;

    line = [];
    // Full name.
    line.push('\n', indent, this.fullName);
    // Age.
    if (this.age !== '') {
      line.push(' - ', _('Age'), ': ', this.age);
    }
    if (this.email !== '' || typeof this.phoneFields !== 'undefined') {
      line.push(' (');
      // Email address.
      if (this.email !== '') {
        line.push(this.email);
      }
      // Phone numbers.
      this.phoneFields.forEach(function (phoneField, i) {
        var label;

        if (i !== 0 || this.email !== '') {
          line.push(' - ');
        }
        label = phoneField.getLabel();
        if (label !== '') {
          line.push('[', beautifyLabel(label), '] ');
        }
        line.push(phoneField.getPhoneNumber());
      });
      line.push(')');
    }
    line.push('\n');
    return line;
  };

  /*
   * Use the extracted data to build a line of HTML text displaying all the
   * collected data about the contact.
   */
  this.getHtmlLine = function () {
    var line, imgCount;

    line = [];

    line.push('
');
    // Profile photo.
    if (this.photo !== '') {
      imgCount = Object.keys(inlineImages).length;
      inlineImages['contact-img-' + imgCount] = UrlFetchApp.fetch(this.photo).getBlob().setName('contact-img-' + imgCount);
      line.push('');
    }
    // Full name.
    line.push(this.fullName);
    // Age.
    if (this.age !== '') {
      line.push(' - ', _('Age'), ': ', this.age);
    }
    if (this.email !== '' || typeof this.phoneFields !== 'undefined') {
      line.push(' (');
      // Email address.
      if (this.email !== '') {
        line.push(this.email);
      }
      // Phone fields.
      this.phoneFields.forEach(function (phoneField, i) {
        var label;

        if (i !== 0 || this.email !== '') {
          line.push(' - ');
        }
        label = phoneField.getLabel();
        if (label !== '') {
          line.push('[', beautifyLabel(label), '] ');
        }
        line.push('', phoneField.getPhoneNumber(), '');
      });
      line.push(')');
    }
    // Mailto link.
    if (this.email !== '') {
      line.push(' ', _('send email now'), '');
    }

    return line;
  };
};

// Start the notification service.
function start () {
  stop();
  ScriptApp.newTrigger('normal')
  .timeBased()
  .atHour(notificationHour)
  .everyDays(1)
  .inTimezone(myTimeZone)
  .create();
}

// Stop the notification service.
function stop () {
  var triggers;
  // Delete all the triggers.
  triggers = ScriptApp.getProjectTriggers();
  for (var i = 0; i < triggers.length; i++) {
    ScriptApp.deleteTrigger(triggers[i]);
  }
}

// Check if notification service is running.
function status () {
  var toLog = 'Notifications are';

  if (ScriptApp.getProjectTriggers().length < 1) {
    toLog += ' not';
  }
  toLog += ' running.';
  Logger.log(toLog);
  if (!noLog && sendLog) {
    MailApp.sendEmail({
      to: myEmail,
      subject: 'Status for birthday-notification',
      body: Logger.getLog()
    });
  }
}

// Normal function call (This function is called by the timed trigger).
function normal () {
  checkBirthdays();
}

/*
 * Use this function to test the script. Edit the date in the debugging
 * configuration above and click "Run"->"test" in the menu at the top
 * of the Google script interface.
 */
function test () {
  var testDate;

  testDate = new Date(fakeTestDate);
  doLog('Testing.');
  doLog('Test date: ' + testDate);
  checkBirthdays(testDate);
}

Please help me and thanks in advance.
regards,
Arjun Chavda

Hello @arj0903, thank you for reaching out.
At a first glance the only thing I can see that could cause some problems is line 35: are you sure you enterd the right calendar ID?
Please make sure you followed the procedure correctly:
/*
 * ID OF THE BIRTHDAY CALENDAR
 *
 * Open up https://calendar.google.com, in the menu on the left click on the arrow next to the birthday calendar
 * and choose 'Calendar settings', finally look for a the "Calendar ID field" (it should be something similar to
 * #contacts@group.v.calendar.google.com): copy and paste it between the quotes in the next line.
 */

What you enterd for that line looks more like an email address than a calendar ID...
I am not fully convinced, however, as this should not produce the kind of error you are describing.
Please verify this firts hypothesis and if this does not solve your problem I will be happy to further assit you.

@arj0903
Actually it looks like the problem lies in line 46 (myTimeZone declaration).
Google documentation about timezones in Google Scripts is extremely poor and I did some test to understand them better, although it looks like I failed to notice that UTC is NOT supported.
You should change UTC+05:30 to something else (GMT or name-based timezones should work) and this should solve the issue.
I'll soon add a piece of code to verify that the timezone is actually valid and throw a meaningful error if not.
Hope this helps!

I've added an additional check which should cause a meaningful error message to be displayed in cases such as this In the latest version.
I0ve removed the UTC example as well.

Hello, @arj0903
Are you still experiencing this problem?
Best regards

Hello @arj0903,
on 24/08/2017 this issue will be closed in compliance with the rule about unresponsive help requests.
If you are still experiencing this problem just reply to this issue explaining what problems you are experiencing.
Best regards

This issue has been closed in compliance with the rule about unresponsive help requests.
@arj0903: if you are still experiencing this problem post a message in this issue asking for it to be re-opened.
Best regards


Add an option to inject baseApiUrl

Would make the wrapper easier to integrate in development phase

Thanks for your addition!


Panel height resize off

From home: clicking on a POI in the list:
The panel isn't rezsizing:

Not sure if updates we've made have impacted this.

Should be fixed.

Looks good.


Build of procfs crate failed

Not your fault and not really an issue but, the attachment failed to upload on matrix.
procfs is a Linux Only crate. Actually, procfs is a Linux only concept.
EDIT: https://man.netbsd.org/mount_procfs.8
   Compiling procfs v0.12.0
error[E0433]: failed to resolve: could not find `linux` in `os`
  --> /usr/pkgsrc/wip/musage/work/vendor/procfs-0.12.0/src/process/mod.rs:66:14
   |
66 | use std::os::linux::fs::MetadataExt;
   |              ^^^^^ could not find `linux` in `os`

error[E0425]: cannot find function `stat64` in crate `libc`
   --> /usr/pkgsrc/wip/musage/work/vendor/procfs-0.12.0/src/process/namespaces.rs:25:31
    |
25  |             if unsafe { libc::stat64(cstr.as_ptr(), &mut stat) } != 0 {
    |                               ^^^^^^ help: a function with a similar name exists: `stat`
    |
   ::: /usr/pkgsrc/wip/musage/work/vendor/libc-0.2.114/src/unix/mod.rs:715:5
    |
715 |     pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int;
    |     ------------------------------------------------------------ similarly named function `stat` defined here

error[E0599]: no method named `st_mode` found for struct `Metadata` in the current scope
   --> /usr/pkgsrc/wip/musage/work/vendor/procfs-0.12.0/src/process/mod.rs:701:23
    |
701 |             mode: (md.st_mode() as libc::mode_t) & libc::S_IRWXU,
    |                       ^^^^^^^ method not found in `Metadata`
    |
    = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
    |
    55  | use std::os::netbsd::fs::MetadataExt;
    |

error[E0599]: no method named `st_uid` found for struct `Metadata` in the current scope
   --> /usr/pkgsrc/wip/musage/work/vendor/procfs-0.12.0/src/process/mod.rs:759:23
    |
759 |             owner: md.st_uid(),
    |                       ^^^^^^ method not found in `Metadata`
    |
    = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
    |
55  | use std::os::netbsd::fs::MetadataExt;
    |

error[E0599]: no method named `st_mode` found for struct `Metadata` in the current scope
   --> /usr/pkgsrc/wip/musage/work/vendor/procfs-0.12.0/src/process/mod.rs:994:31
    |
994 |                     mode: (md.st_mode() as libc::mode_t) & libc::S_IRWXU,
    |                               ^^^^^^^ method not found in `Metadata`
    |
    = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
    |
55  | use std::os::netbsd::fs::MetadataExt;
    |

Some errors have detailed explanations: E0425, E0433, E0599.
For more information about an error, try `rustc --explain E0425`.
error: could not compile `procfs` due to 5 previous errors
*** Error code 101

Stop.
bmake[1]: stopped in /usr/pkgsrc/wip/musage
*** Error code 1

Stop.
bmake: stopped in /usr/pkgsrc/wip/musage
error: External command failed
   ┌─ shell:14:1
   │
14 │ bmake
   │ ^^^^^ command failed

Reproducible in the CD pipeline when building for Apple/Darwin. See this.
Not sure where to start with this one.

I don't think there is much you can do. Unless, you somehow can work around the need for procfs.
Even if, they fix the build for MacOS, I don't think it will help NetBSD.

Quite possibly. Solving one problem might give insight into the other.
Seems the latest procs 0.12.1 was published 10m ago. I'll have a look at it tonight, see if anything changed.

Seems I mixed up procfs and procs, both with similar versions, sorry.
Can you mount_procfs on your baremetal and then run musage - does that produce any output?
If yes, I can investigate how to control it, possibly via the nix crate.


:bug: Fix data-*color view bindings

They were setting the data attributes to the CSS properties instead of the other way around.
Fixes #613.

This is not a bug.


pluginable sender

Coverage increased (+0.5%) to 86.416% when pulling a91eac57e46dfa1991664ba88307f3db9d4e351d on pluginable_multiple_envs into e50e0466a5c3420db3ea880881e7435a1c462cbc on develop.

Coverage increased (+0.5%) to 86.416% when pulling 02ed2c38913d33e76c501d71d14079f12d14a0b8 on pluginable_multiple_envs into e50e0466a5c3420db3ea880881e7435a1c462cbc on develop.

Coverage increased (+0.5%) to 86.416% when pulling f309ee13d246f8111a79b3fd3b575712b65de2c8 on pluginable_multiple_envs into e50e0466a5c3420db3ea880881e7435a1c462cbc on develop.

Coverage increased (+0.5%) to 86.416% when pulling fa93252d513ad4d099e433841c9c2964a46c86cb on pluginable_multiple_envs into e50e0466a5c3420db3ea880881e7435a1c462cbc on develop.


Add Cask for BitPim.App  (CDMA phone explorer) v1.0.7

This is my first commit to an open-source project, so please be kind. Constrictive criticism would be appreciated (please ELI5).
Not sure if I did the 'uninstall' and 'zap' stanzas correctly...  I figure that the 'quit' is needed for zap because you don't want those pref files being re-written if the app is still open. But does the 'quit' belong in the 'uninstall' stanza as well?
FYI - Is one of the best GUI tools for pulling data from old phones. It hasn't been updated in a few years, but it still works on 10.9 (as tested by me), and probably 10.10.

Thank you for the contribution. Some refinements are needed, yes. I’ll comment on each line and then write how the cask should be in the end (so you can copy and paste), mainly because the order of stanzas is wrong (functionally it works, but is inconsistent with other casks).
cask :v1 => 'bitpim' do
  version '1.0.7'
  sha256 '567d41ececc8c416746c3aa9365182797b339001d255dc4da7acc285bb289880'

  url "http://downloads.sourceforge.net/project/bitpim/bitpim/#{version}/LEOPARD-bitpim-#{version}.dmg"
  name 'BitPim'
  homepage 'http://www.bitpim.org/'
  license :gpl

  app 'BitPim.app'

  uninstall :quit => 'org.bitpim.bitpim'

  zap :delete => [
    '~/Library/Preferences/org.bitpim.bitpim.plist',
    '~/Library/Preferences/LaunchpadCleaner/Local Store/applicattons/appicons/org.bitpim.bitpim.png',
  ]

  depends_on :macos => '>= :tiger'
end


Tank ult charge negation logic innaccurate

Created by: MaxwellJung
          > I got a question regarding this line : https://github.com/MaxwellJung/ow1_emulator/blob/staging/src/ow1/passives/no_ult_negation.opy#L65C126-L65C126 Why do we add 3% which is a lot whenever we want to compensate missing ult point

For example for ashe during the ultimate
I do one head shot on a tank so 150*1.3 = 195 ultimate points 10 seconds for BOB : 50 points charge So it should give 245/2240 = 10.9 % so 11%
But with the 3% percent in the end we get 14% instead which is not the expected percentage

Honestly, that 3% has no good explanation. It's really just an arbitrary value used to cover up the difference between expected behavior and observed behavior when executing that code in testing.
For example, the code in theory should work as intended without that 3%, but when you actually execute that code by shooting tanks in practice range, you always get less ult charge than shooting non-tanks (like ~10% less ult charge overall for the same amount of damage). I arbitrarily kepting increasing that value, until the observed behavior matched expected behavior.
So, yes, that is technically a bug that someone should fix.
Originally posted by @MaxwellJung in https://github.com/MaxwellJung/ow1_emulator/issues/259#issuecomment-1646448793

Created by: MaxwellJung
basically the root cause is this:
overwatch will floor the ult % shown to the user by flooring percent(charge_points/total_charge)
so for example, if every bullet you land gives you 2.5% ult charge,
you'll see 2% -> 5% -> 7% -> 10%
even though the underlying percentage is:
2.5 %-> 5% -> 7.5% -> 10%
however, when you use the function setUltCharge() to modify the ult percentage, any decimal percentages get lost.
so you would see something like:
2% -> 4% -> 6% -> 8% instead
Confirmed by comparing 600 damage dealt to 3 200hp heroes vs shooting 1 roadhog with 600hp.

Created by: novalderya

          > I got a question regarding this line : https://github.com/MaxwellJung/ow1_emulator/blob/staging/src/ow1/passives/no_ult_negation.opy#L65C126-L65C126 Why do we add 3% which is a lot whenever we want to compensate missing ult point

For example for ashe during the ultimate
I do one head shot on a tank so 150*1.3 = 195 ultimate points 10 seconds for BOB : 50 points charge So it should give 245/2240 = 10.9 % so 11%
But with the 3% percent in the end we get 14% instead which is not the expected percentage

Honestly, that 3% has no good explanation. It's really just an arbitrary value used to cover up the difference between expected behavior and observed behavior when executing that code in testing.
For example, the code in theory should work as intended without that 3%, but when you actually execute that code by shooting tanks in practice range, you always get less ult charge than shooting non-tanks (like ~10% less ult charge overall for the same amount of damage). I arbitrarily kepting increasing that value, until the observed behavior matched expected behavior.
So, yes, that is technically a bug that someone should fix.
Originally posted by @MaxwellJung in #259 (comment)

Do you remember which tank and with what dps did you do those test ?

mentioned in merge request ow1_emulator_backup!308

moved from ow1_emulator_backup#691


Piping blob lists or reading from source file for az storage blob operations

Is it possible to pipe through a list of blob files or read a list source file for blob operations?
Example:
I have a large amount of blobs to cleanup that are stored using UUID naming - the list of files that needs deleting is generated from our SQL.
I have a script that can delete those files line by line using xargs but it's extremely slow given that the list can be in the 100,000s or even 1,000,000s.
az storage blob delete-batch seems to only be able to do operations based on container names, regex matching, time match etc and I see no way to have it run against a pre-generated list of files.

Any answers?

@nofunatall, you can create a script that goes through the list of the files and call 'az storage blob delete' to delete each file.

A single operation takes a few seconds.
As mentioned I already have a script using xargs which is essentially the same as a For loop going over a file.
If I have over 1,000,000 files that need deleting it will take days.
Is there no better way to do bulk operations rather then one by one?

'--output none' won't skip waiting for the Azure response.
One thing you can try is 'az storage blob sync' command. Another is try to use azcopy. The storage-preview has azcopy to remove blobs.

@nofunatall We have released a new command az storage remove in v2.0.70. You can use this command to delete files more effectively.


Will there be a Demo?

Hi!
Getting into the Plugin blind is quite overwhelming and it'd really help to have a Demo Project to look into for reference.
Thanks for your time.

There is one?
If you install the plugin without disabling the example/ folder, you get a 2D and 3D scene with all main features and some hint popups.

I'll need to fix that, yeah.
The translated string is supposed to have a "%s" to insert a number, but a new user won't have the translation files added. I'll probably make it a hard-coded string for the example.

On toolbar, Project > Project Settings > Localization -> Add and add example/translation/ui.en.translation.
I'm quickly gonna update it so it's not gonna be needed.


Require resources

Includes #203; fixes tests.

Current coverage is 60.06% (diff: 82.50%)

Merging #204 into master will increase coverage by 0.07%

@@             master       #204   diff @@
==========================================
  Files           120        120
  Lines          6454       6488    +34
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           3872       3897    +25
- Misses         2250       2258     +8
- Partials        332        333     +1

Powered by Codecov. Last update bc1c0e2...547a9b2

Woohoo! Over 60% coverage!


Use mockery and stretchr/testify/mock instead of gomock

I discovered that the OTel collector codebase has a preference for testify/mock.
The first of these has adopted most of the features of the second and is now more popular.

I find the gomock support is easier to test with, particular its DoAndReturn() construct. Closing this.


Add ToFSharpFunc overloads for Func<...>, especially for .NET Core

Addresses https://github.com/Microsoft/visualfsharp/issues/1847 - ToFSharpFunc(Func) missing in .NET Core
Basically there was no good way to create an FSharpFunc object on .NET core with a method call.

@cartermp @neoeinstein  Just to note this will need an RFC since this also adds more overloads for ToFSharpFunc on .NET Framework

Surface area change ... FSharp 4.2?

Hmmm... Yes in principle.  But we should get the missing functionality into our FSharp.Core for .NET Core sooner than that I think.  I'll look if we can add just the one overload somehow

@dsyme I'm okay with reving the version number, there are a number of PR's we would take if we do this.

@dsyme can you resolve the conflicts pls.

@KevinRansom resolved

@cartermp @KevinRansom I've written the RFC https://github.com/Microsoft/visualfsharp/pull/3013/
However as noted in the RFC this is a breaking change for some C# code, so don't merge this until we resolve that design question

See comment here and in the RFC - I think we should not go ahead with this because it is a breaking change, and instead we should provide a .NET Standard 2.0 build of FSHarp.Core.dll where System.Converter is available.  Then we can keep the FuncConvert API the same as it has always been.

Everything except System.Func<'T,'U> can be safely taken, right?
In that case, why not just skip it?
IF the user proves an inline lambda, then the C# compiler will happily map it to a Converter instead of a Func.
IF the user wants to pass-through an existing Func delegate, then he would need to wrap it once - but I don't think that would be a killer-downside.

@dsyme ... what do you want to do with this PR?

@dsyme, can you retarget this to master?  I deleted the dev15.6 branch (which this was targeting) because it's old and we have a tag for it.

@brettfo Are you sure you don't want this at dev15.8?  It needs to target a branch that can bump the FSharp.Core version number

Continued at https://github.com/Microsoft/visualfsharp/pull/4815


Test ROS on a poor network connectivity condition

Closes https://github.com/realm/realm-cocoa/issues/4900
This is a WIP, but I’d appreciate it if you could give me your feedback.
Add an ROS test that running on a slow network environment. It uses pfctl,  dnctl and dummynet to simulate a slow network. Network Link Conditioner probably uses the same mechanism. Since Network Link Conditioner doesn't has command line interface, it doesn't seem to affect local hosts.
@jpsim Does this fit your thoughts? These commands require sudo. How should we handle a password?
CC @bdash @stel

This looks great. Is it possible to create a script that completely disables and re-enables the network connection as well?

@austinzheng Added verify-osx-object-server-no-network that is completely disables network connection. I'm not sure if this is what you are saying. Is my understanding is correct?
@austinzheng @jpsim I also modified testUsernamePasswordAuthentication(), testAddObjects() and testDownloadRealm() to split original test cases and confirming reconnect issues. Probably those would succeed if https://github.com/realm/realm-cocoa/pull/4957 is merged.

Should this be moved to S:Review?

@austinzheng @jpsim It turns out that ReachabilityStatus does not change when the network is disabled by Network Link Conditioner or the server is down. So a session opened while the server is down (or packets are lost due to some network problem) will never reconnect again.
https://github.com/realm/realm-cocoa/issues/5104

@austinzheng This PR is ready for review again. Could you please review this if you get a chance?

This PR looks good. I've restarted the CI job to get the object server tests to run again (the last time they failed was on the "child process" issue in https://github.com/realm/ci/issues/145), and if everything looks good I'll approve.

@austinzheng I split the tests into normal condition tests and poor network condition tests. Could you please check just in case?
https://github.com/realm/realm-cocoa/pull/4923#discussion_r132041430


Mend issue from micromatch and braces

Hi @oklemenz2 ,
We're facing the mend issues as below:

Can you please kindly help to update the depth of the dependency ?
Many Thanks.
Regards,
Xin

Please use the latest version of CDS OData V2 Adapter. Furthermore all dependencies are declared as open, so that a „npm update“ should pick up the fixed versions. Can you check?

Hi @oklemenz2 ,
Yes. The latest version is OK. Thanks. Regards, Xin


Rest of mobile version

Rest of mobile version done according to spec from curriculum-html-css/portfolio/2_mobile.md
Preview:

https://htmlpreview.github.io/?https://github.com/yghoor/My-portfolio/blob/rest-of-mobile-version/index.html

Use width: 375 in devtools device toolbar

Changes made👍

Changes made 👍


How to customize button's wordings when editing image?

When editing image, button shown on the bottom are 'Cancel' and 'Choose'. How to customize the wordings of them and also the buttons when taking photo.

This is kind of a duplicate of #150, so read the comments there. Basically, those are native iOS strings. They can be changed with localization settings.


Slippage indicator in swap view

Display the average price / current price - 1 as price slippage in percent when doing a swap

The new indicators resolve this


Update disk-encryption-linux.md

I changed this line word on one line, from "2st" to "2nd".
There is no such word as 2st - it is 2nd.

I am not authorized to merge changes

@sumitdatabase - thanks!
@msmbaldwin - this seems straightforward so I'm approving this for merge (tomorrow after the content freeze), but if let me know if we need to revert it for some reason.
#label:"missed-content-complete"
#label:"event-triaged-to-10AM"
This PR is ready for merge. Due to the upcoming Ignite conference, all merging and publishing is on hold until the morning of the keynote address.
The PR review team will resume merging on the morning of the keynote address for the regularly scheduled daily publish cycles. You don't need to take further action on this PR; we'll merge it on the day of the keynote address.
Don't add more commits to this reviewed PR.
Thanks.


How to apply Incremental Static Regeneration?

Is your feature request related to a problem? Please describe.
How to apply Incremental Static Regeneration with this template, if im just using MDX files in the /data/blog folder?
Describe the solution you'd like
If ISR is applied, I don't have to redeploy the whole site after I correct a typo.
https://vercel.com/docs/concepts/incremental-static-regeneration/overview

Sure, here's a more refined version:
In order to utilize Incremental Static Regeneration (ISR), it's essential to retrieve blog data from a database or another server. If you're employing MDX, you'll have to rebuild and redeploy it regardless. Consequently, there wouldn't be any advantage to using ISR.
To leverage ISR effectively, you must fetch data from an alternative source, enabling its utilization.


Option to import globals

Hey @pascalduez , thanks for the plugin!
What do you think of introducing an option to import globals? (just like the importFrom of https://github.com/postcss/postcss-custom-properties#importfrom)
I am aware of sets which already does a similar job, but having this new option would make things even easier, as it would allow us passing global mixins files directly, without having them converted into JS objects / JSON.
I can -try to- create a PR soon - if you are ok with it.

@tameraydin Did you get any further on this?

@conor-darcy nope, unfortunately


Feature request - JA3S TLS fingerprints

JA3S is JA3 for the Server side of the SSL/TLS communication and fingerprints how servers respond to particular clients.  See https://github.com/salesforce/ja3.  Hopefully not too complicated since we already have JA3 for the client side.

3e942e7d8a6d6d18b98d8e8406fc08a7877bacc9


L.Browser.touch value is true on chrome windows 10 x64 bit

Up to leaflet v1.6.0 L.Browser.touch returned false on chrome. After the change in PR #7010 in leaflet v1.7.1 this returns true, which messes up some styles for leaflet plugins e.g. https://github.com/pelias/leaflet-plugin/
Is this behavior intended?
Environment

Leaflet version: v1.7.1
Browser (with version):
OS/Platform (with version):

Google Chrome | 85.0.4183.102 (Official Build) (64-bit) (cohort: Stable)
-- | --
Revision | ffe848af6a5df4fa127e2929331116b7f9f1cb30-refs/branch-heads/4183@{#1770}
OS | Windows 10 OS Version 1903 (Build 18362.1082)

Paging @johnd0e

Nothing wrong is here.
See docs:
https://github.com/Leaflet/Leaflet/blob/dda26ba96d7dc79213818d1bcc0565b6ac3c69c4/src/core/Browser.js#L98-L102

Close as duplicate of #5266


VWAP that matched values of TradingView VWAP indicator (anchor)

Running
python: 3.8.5
pandas_ta version: 0.3.14b0
Description:
Trying to get VWAP that matched values of TradingView indicator at this link.
https://www.tradingview.com/support/solutions/43000502018-volume-weighted-average-price-vwap/
I think the key to matching this TradingView indicator is its "Anchor Setting", default is "session".
I want pandas_ta VWAP that matches TradingView indicator 30 minute chart.
The "Timeseries Offset Aliases" documentation shows:  T,min = minutely frequency
I am not sure what combination of pandas_ta "anchor" and "offset" settting can be used to match TradingView VWAP on 30 minute chart.
Also, I am not sure if pandas_ta can match this TradingView indicator.
Code I have tried:
df.set_index(pd.DatetimeIndex(df["date"]), inplace=True)
vwap = df.ta.vwap(anchor="T", offset=30, append=True)

I can provide screenshots if necessary.

Hello @slhawk98,

I want pandas_ta VWAP that matches TradingView indicator 30 minute chart.

I see

Also, I am not sure if pandas_ta can match this TradingView indicator.

Neither am I at this point.

The "Timeseries Offset Aliases" documentation shows: T,min = minutely frequency

That is correct. However it either does not allow other minute frequencies such as 5min, 30min, et al or I do not know where to find the example code to make it happen. It may take some digging.
Also, the offset in the following code does not make the anchor`` set to 30 mins. As it says in help(ta.vwap)``` and the rest of the indicators, it shifts the final calculation left or right by so many bars/rows.
vwap = df.ta.vwap(anchor="T", offset=30, append=True)

Assuming there is a way to anchor other than by minute "T", ideally the code should look like this to execute:
vwap = df.ta.vwap(anchor="30T", append=True) # for 30 mins

Lastly while Pandas TA does have many indicators that are correlated with TradingView, this is not a Python TradingView TA Library. It is at minimum an alternative to TA Lib, which can be difficult to install in some cases. I do my best to get most indicators with greater than 99% correlation for both TA Lib and TradingView, but sometimes it's not possible.
In any case, I'll keep digging around and hope that someone else has seen a solutions to this and can comment or contribute.
Kind Regards,
KJ

Hello @slhawk98,
So I tested the exported TV data at 30min timeframe and Pandas TA vwap does work as intended. Before applying vwap, your data must be in the desired timeframe (30 mins in your case). In fact there is 100% (1-1) correlation of Pandas TA's vwap with TV's vwap.
Here is the  TV SPY 30min VWAP.csv source I exported for the test below.

vwapdf = pd.read_csv("../TV_SPY_30min_VWAP.csv")

vwapdf.set_index(pd.to_datetime(vwapdf["time"]), inplace=True)
vwapdf.drop(columns=["time", "VMA", "LB", "UB"], inplace=True)
vwap = vwapdf.ta.vwap(anchor="D", offset=None, append=True)

last = 150
vwapdf.index = vwapdf.index.astype("str") # To remove the session gaps for plotting
vwapdf.iloc[:,-2:].tail(last).plot(figsize=(16,8), color=["blue", "red"], linewidth=1, title=vwap.name)
vwapdf.close.tail(last).plot(figsize=(16,8), color=['black'], linewidth=1.4, grid=True)

vwapdf.iloc[:,-2:].corr()  # TV vs Pandas TA vwap correlation

Results:

vwapdf.iloc[:,-2:].tail(30).style.background_gradient()

Hope this clears up any confusion.
Kind Regards,
KJ

Hello @slhawk98,
I assume by no response that the solution provided was sufficient. Thus I will be closing this issue in a few days.
Kind Regards,
KJ

Sorry for late response. Let me see if I can duplicate your TV SPY results.
I also saw this suggestion. I will try both. Thanks
vwap = df.ta.vwap(anchor="30T", append=True) # for 30 mins

I was able to replicate matching results using your data (TV SPY 30min VWAP.csv) and code above.
It's possible my time series was not set correctly. I also see you used anchor="D" (default), with 30m data. Makes since.
I will attempt on BTCUSDT and let you know the results. Thanks

Results did not match with BTCUSDT, ETHUSDT or AAVEUSDT (Binance API Data, 30 minute candles)
I also tried MSFT data from yfinance API , which did not match.
Both our indexes results are of type string (<class 'str'>) but the SPY date appear to be delta format. Could that make a difference? Could there be a difference with API data?
2021-08-24 07:30:00 (BTCUSDT example )
2021-06-04 14:00:00+00:00 (SPY example )

Sorry for late response. Let me see if I can duplicate your TV SPY results.
I also saw this suggestion. I will try both. Thanks

No problem

vwap = df.ta.vwap(anchor="30T", append=True) # for 30 mins

This does not work as intended. Hence the first comment was hidden.

Results did not match with BTCUSDT, ETHUSDT or AAVEUSDT (Binance API Data, 30 minute candles)
I also tried MSFT data from yfinance API , which did not match.

So you downloaded both the Binance API data for BTCUSDT, ETHUSDT, and AAVEUSDT and their vwap values  to compare? If so please provide a sample csv from one of the three tickers with Binance API's vwap values; I will need it to compare and contrast. I need real data not anecdotal evidence.

Both our indexes results are of type string (<class 'str'>) but the SPY date appear to be delta format. Could that make a difference?

You can comment out vwapdf.index = vwapdf.index.astype("str"). If you do, the chart will have the gap hours included. Your choice. It was the recommended statement to remove the weird gaps in the chart. For crypto/fx and other 24/7 assets, you can likely comment that line out.

Could there be a difference with API data?

It's possible. It's not uncommon for errors or missing data to occur; it's the users responsibility to manage that. In fact, expect live/stream data to include erroneous/missing data.
To compare and correlate non-TA Lib indicators such as TV, Binance et al. I need TV data plus the TV/Binance indicator values.
Thanks,
KJ

I have attached the BTUSDT & ETHUDT - 30 minute csv.
What package are you using to plot graph? I don't get a graph, but the code does not produce an error.
I am using Windows 10, python 3.8.5 and visual studio code.
Also, not sure how you get the "TV_VWAP_30m" column in you examples above.
https://github.com/slhawk98/files/blob/main/BTCUSDT.csv
https://github.com/slhawk98/files/blob/main/ETHUSDT.csv

@slhawk98,

What package are you using to plot graph?

Matplotlib. See Pandas Visualization

Also, not sure how you get the "TV_VWAP_30m" column in you examples above.

I manually rename the columns before reading the csv.

I have attached the BTUSDT & ETHUDT - 30 minute csv.

Are those VWAP_D's in BTUSDT & ETHUDT - 30 minute from Binance or did you generate it from Pandas TA's vwap? If VWAP_D is not from your data source, I can not compare it with Pandas TA vwap.
KJ

(TV_VWAP_30m column) - "I manually rename the columns before reading the csv."
The only way I can think of to get the actual Teamviewer VWAP values is to manually hoover over each candle and manually add the TV VWAP values to the spreadsheet/csv/dataframe. Am I missing something here?
This is actually how I verified results against your SPY.csv data. Example, when I loaded the SPY 30 min chart in TeamViewer, I was able to hoover over a few candles listed in your data and the VWAP values on TV matched those returned by pandas_ta. When you hoover over a candle in Teanviewer values for all indicators are displayed.
What's confusing is why SPY (TV/Pandas_TA) values matched but not when I try using API data directly.
What code did you use to download your SPY data?

@slhawk98,

The only way I can think of to get the actual Teamviewer VWAP values is to manually hoover over each candle and manually add the TV VWAP values to the spreadsheet/csv/dataframe. Am I missing something here?
What code did you use to download your SPY data?

TeamViewer, The Remote Desktop Application Software? Or did you mean TradingView? 🤔
Yes. That is of course inefficient. There currently is no script or Python package you can use to download data from TV nor do they provide REST API access for non-brokers. 😑  You need a paid TV plan that allows you to manually (click) export/download the data. See the following https://github.com/twopirllc/pandas-ta/issues/376#issuecomment-902123018 process I use so I can do correlation tests with Pandas TA.

What's confusing is why SPY (TV/Pandas_TA) values matched but not when I try using API data directly.

I am curious also. Let me know when you find out. 😎
KJ

;-) - Mixing my TV applications I meant TradingView.
Bummer. I have TV Pro but you need Pro+ to export data.
You can consider this one close for now.
Thanks


BUG when download a track

What is the purpose of your issue?

[x] Bug
[ ] Feature Request
[ ] Question
[ ] Other

Description
I'm in WSL in windows 10.
I would like to download a track but I have a bug.
Log
spotdl -s https://open.spotify.com/track/3DMgqRAbgkH3v2AoRsaHdP -nm -ll DEBUG
DEBUG:spotdl.command_line.main:24:
spotdl 2.2.2
DEBUG:spotdl.authorize.services.spotify:71:
Setting master Spotify credentials.

INFO:spotdl.command_line.core:140:
Downloading "https://open.spotify.com/track/3DMgqRAbgkH3v2AoRsaHdP"
DEBUG:spotdl.authorize.services.spotify:66:
Reading cached master Spotify credentials.
DEBUG:spotdl.metadata_search:322:
Extracting YouTube metadata for input Spotify URI.
DEBUG:spotdl.metadata_search:346:
Extracting Spotify metadata for input Spotify URI.
DEBUG:spotdl.metadata.providers.spotify:77:
Fetching Spotify metadata for "https://open.spotify.com/track/3DMgqRAbgkH3v2AoRsaHdP".
DEBUG:spotdl.metadata.providers.youtube:232:
Fetching YouTube results for "Indochine - Song for a Dream lyrics" at "https://www.youtube.com/results?sp=EgIQAQ%253D%253D&q=Indochine - Song for a Dream lyrics".
DEBUG:spotdl.metadata.providers.youtube:189:
YouTube returned malformed HTML. Attempting to parse possible JSON data.
DEBUG:spotdl.metadata.providers.youtube:62:
Matched with: Indochine - Song for a Dream (Clip officiel) (https://www.youtube.com/watch?v=DkffTDkSADI) [5:34]
DEBUG:spotdl.metadata.providers.youtube:419:
Fetching YouTube metadata for "https://www.youtube.com/watch?v=DkffTDkSADI".
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner                                                     self.run()
File "/home/elviro/.local/lib/python3.6/site-packages/spotdl/util.py", line 39, in run                               **self._kwargs
File "/home/elviro/.local/lib/python3.6/site-packages/spotdl/command_line/core.py", line 347, in threaded_metadata
metadata = search_metadata.on_youtube()
File "/home/elviro/.local/lib/python3.6/site-packages/spotdl/metadata_search.py", line 190, in on_youtube
metadata = caller(self.track)
File "/home/elviro/.local/lib/python3.6/site-packages/spotdl/metadata_search.py", line 324, in _on_youtube_for_type_spotify
youtube_metadata = self.providers["youtube"].from_url(youtube_video["url"])
File "/home/elviro/.local/lib/python3.6/site-packages/spotdl/metadata/providers/youtube.py", line 421, in from_url
content = pytube.YouTube(url)
File "/home/elviro/.local/lib/python3.6/site-packages/pytube/main.py", line 92, in init                      self.descramble()
File "/home/elviro/.local/lib/python3.6/site-packages/spotdl/patch/youtube.py", line 169, in descramble
self.js_url = extract.js_url(self.embed_html)
NameError: name 'extract' is not defined

Same here, when trying to download this songs:
Downloading "https://open.spotify.com/track/1ULa3GfdMKs0MfRpm6xVlu"
Downloading "https://open.spotify.com/track/0PyWKgNmGiYTFe6MXN5U4K"
Downloading "https://open.spotify.com/track/40Cjeug6bYFqYrta3w7cMT"
Downloading "https://open.spotify.com/track/7ujx3NYtwO2LkmKGz59mXp"
Downloading "https://open.spotify.com/track/0Fv5N0cHBsl4bzCbollCAS"
Exception in thread Thread-368:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/gcruz/.local/lib/python3.6/site-packages/spotdl/util.py", line 39, in run
    **self._kwargs
  File "/home/gcruz/.local/lib/python3.6/site-packages/spotdl/command_line/core.py", line 349, in threaded_metadata
    metadata = search_metadata.on_youtube_and_spotify()
  File "/home/gcruz/.local/lib/python3.6/site-packages/spotdl/metadata_search.py", line 159, in on_youtube_and_spotify
    metadata = caller(self.track)
  File "/home/gcruz/.local/lib/python3.6/site-packages/spotdl/metadata_search.py", line 287, in _on_youtube_and_spotify_for_type_spotify
    youtube_metadata = self.providers["youtube"].from_url(youtube_video["url"])
  File "/home/gcruz/.local/lib/python3.6/site-packages/spotdl/metadata/providers/youtube.py", line 421, in from_url
    content = pytube.YouTube(url)
  File "/home/gcruz/.local/lib/python3.6/site-packages/pytube/__main__.py", line 92, in __init__
    self.descramble()
  File "/home/gcruz/.local/lib/python3.6/site-packages/spotdl/patch/youtube.py", line 169, in descramble
    self.js_url = extract.js_url(self.embed_html)
NameError: name 'extract' is not defined

Pytube3 error.  Try v3. Should be fixed


dont view the menu services

Description

Steps to reproduce the issue:
1.dont view the menu services
2.the install is in docker run
3.
Any other info e.g. Why do you consider this to be a bug? What did you expect to happen instead?
Technical details:

Portainer version:
Target Docker version (the host/cluster you manage):
Platform (windows/linux):
Command used to start Portainer (docker run -p 9000:9000 portainer/portainer):
Target Swarm version (if applicable):
Browser:

Hi there,
As I understand, you are not able to see the services view in the Portainer UI? Are you using Portainer with a Docker swarm or Standalone Docker endpoint? As services are a feature of Docker Swarm, we do not show this in Portainer UI when managing standalone endpoints.

Since no further activity has appeared on this issue it will be closed. If you believe that it has been incorrectly closed, leave a comment and mention @itsconquest. One of our staff will then review the issue.
Note - If it is an old bug report, make sure that it is reproduceable in the latest version of Portainer as it may have already been fixed.


Updated ZWO SDK to v1.15.0617

I recently purchased as ZWO ASI462MC to use with Allsky but upon installation on my Pi 4 I found the software wouldn't recognize my camera. After a bit of review of your code and research on the ZWO website I realized that I needed to update the ZWO SDK. Per https://astronomy-imaging-camera.com/software/change_log/change_ASISDK_Unix.txt, v1.15.0617 added support for my camera.
As the header file has not changed from the version on the master, all I needed to do is update the static libs. I updated every version that was available from ZWO (armv5 is no longer available).
After testing on my camera, I created my own fork/branch and built the whole thing from scratch just to make sure no other change from my initial experimentation was required.
Congratulations on this very impressive and successful long running project. I first saw it many years ago but am just now building my own sky camera to go along with remote observatory.

Hi Andrew, I saw your post in the issue tracker earlier this week and I meant to update the SDK but haven't found the time this weekend. Thanks for doing a fresh install to make sure it was all working.

Thanks Thomas,
I am just learning to use git and github so this was a great exercise for
me. I am a software developer in my day job, but my primary tools are Java
and SVN.
I have lots of experience breaking things, so I try to be very careful
before committing.
On Mon, Sep 14, 2020 at 10:28 PM Thomas Jacquin<EMAIL_ADDRESS>wrote:

Hi Andrew, I saw your post in the issue tracker earlier this week and I
meant to update the SDK but haven't found the time this weekend. Thanks for
doing a fresh install to make sure it was all working.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/thomasjacquin/allsky/pull/254#issuecomment-692473417,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAOLSIGVJAKG25F4SK5CAFTSF33P7ANCNFSM4RMPVYMA
.


L10N: java.lang.StringIndexOutOfBoundsException if there are 2 or more same occurrences in locator

verified on mfp side


Libraries don't know who they are

The data in for each library doesn't include the libraries name.  The library name only appears as a key in the enclosing map/dict.  This creates an issue if you pass the library data around because the name isn't available.

No longer a problem.  Libraries know who they are.  They even have a canonical URI to disambiguate forks, etc.


Funny bug in startup

Hi,
I found a funny bug in file: ch32v003fun/attic/ch32v003evt/startup_ch32v003.c
I am surprised that nobody noticed before. :-)
The first line in  SystemInit48HSI() is:
RCC->CTLR  = RCC_HSION | RCC_PLLON; 				// Use HSI, but enable PLL.
This has the assumption that CTLR is zero after booting. But this is wrong. That
register has an only readable part for correction of RC oszillator. By writing a
0 in this field the clockfrequency on my part is 5% off.
Vanye

What would you like it to be?  That line does not read back CTLR, but instead sets it to a specific value.  Are you saying we should also be setting HSITRIM?  Or do you suggest it should be read back? HSICAL is unwritten.
On second note - it's interesting that there is no symbol for HSICAL.

OH wait!
That code is in the attic because it's part of the EVT, that's the official material from WCH.
you've discovered another reason why we don't use it.

The reference manual V1.7 at page 17/18 show the CTRL register.
There is HSICAL wich ist marked as RO!
But the code line in my first message write a zero to HSICAL!
I guess in HSICAL is the calibration value that is written by the
bootloader at startup. If you write a zero in this it destroy the
messured RC calibration value from factory.
The RC frequency of my device had an error of 5% after
destroying the value!
I changed it to:
RCC->CTLR  |= (RCC_HSION | RCC_PLLON);
Now  my HSI is spot on! (measured with my RTB)
But a funny remark the HSI has a horrible, realy horrible
jitter that is also changing in depency of what happens inside
of the MCU. That is bad design, no internal LDO for the HSI on the die.
But unfortunatly this is something we can not change.
Let me show you a picture:

I wounder what is the impact of this for the ADC. :-D
Vanye

Please read my second message. the code there is incorrect.  You are using the wrong code.

Could this issue be closed to avoid any (further) confusion given that it's effectively invalid?

Yes. Done.


Syntax highlighting and completions for __all__

Somewhat related to #2289
Pylance does already have (limited) support for syntax highlighting and completions in string annotations. It would be awesome if something similar could be implemented for __all__.

Example code
from .const import CustomConstant

__all__ = [
    "CustomConstant",
    "func",
    "SomeClass",
]

def func(): ...

class SomeClass: ...

Thanks for the request. This is not something that is currently supported but will reevaluate based on upvotes or community feedback.

Captured in discussion #2289


Dapps notifications - change text + button

Design https://zpl.io/25X0oln

For DAPPs transactions rename "contract transaction ..." to " dapp transaction ..." in header of notifications.
Change "details" button to "open the app" button (click on that button should open Dapp's transactions screen with unfolded transactions details https://zpl.io/br3m1lW)

why dapp-app?
what if app/dapp was removed?

Let's keep "dapp" everywhere. Fixed the design https://zpl.io/25X0oln

Rename "app" to "dapp" and change the icon as in the design

Make the icon as in the design

click on the "open the app" button should open Dapp's transactions screen with unfolded transactions details https://zpl.io/br3m1lW - added to the task #361

Checked


strict v non-strict builds

Since we're implementing to the spec based on correctness, it would be nice to have a globally-scoped variable, STRICT, which is included as a boolean check whenever doing checks that one wouldn't want in a high-performance production loader where correctness is not important.
We can then run two builds of the loader through dead code removal that set STRICT=false and STRICT=true respectively to get different builds for the different requirements here.

Would https://github.com/mishoo/UglifyJS#use-as-a-code-pre-processor be the best way to do this? And perhaps make es6-module-loader.dev.js be run with STRICT == true, and have es6-module-loader.js be the one with STRICT set to false?

Also, would we want tests to be run on the code in both modes? Or would we just make very sure that nothing that uses the STRICT variable would have any logic/implementation in it.

Yes exactly like that, although perhaps as a completely separate unminified build so we have es6-module-loader-strict.src.js and es6-module-loader.src.js or something similar? Then we should run the tests on both as well ideally.


Outlier detection docs are outdated

Title: Outlier detection docs are outdated
Description:
Either the explanation for things like ejections_enforced_consecutive_5xx needs to include semantics for TCP.. or that it should have entirely different statistics
https://www.envoyproxy.io/docs/envoy/v1.5.0/configuration/cluster_manager/cluster_stats.html

Closing per comment in https://github.com/envoyproxy/envoy/pull/4822. We can reopen if needed.


Create Enum

Thoughts about adding an enum class type to be able to use enums in CodeIgniter?
I think this would be particularly useful for database field types.

DB Forge already has (unofficial) support for enum fields, but even if it didn't ... it wouldn't happen via a class.
Also, if you're looking for "thoughts" again in the future, please open a thread on the forums instead.

Thanks for directing me to the forums, but would it not be a good feature to have official support for enums in the database forge class?

Depends on what you mean by "good" and "official" ...
I said it's unofficial because it's not documented and not really tested, but we'd still, for example, accept bugfixes for it if something's broken about it.

By official I mean documented, but in any case, where can I find and use this? I would like to check it out! :+1: