Epic: on-demand uploads & layer eviction

Motivation
DoD
Implementation ideas
Tasks

[ ]

Other related tasks and Epics

@hlinnaka , provide a description for this task

The download part is tracked by https://github.com/neondatabase/neon/issues/2029. The part that remains after that is the layer eviction.
In short, layer eviction means deleting layer files from local disk in the pageserver, to free up disk space. All the files on local disk are also present in the remote storage, and with the on-dmenad download, if a file is needed again, it will be automatically downloaded. This allows us to handle larger databases, and in particular databases with lots of "history", that would not otherwise fit in a single pageserver. It also allows us to pack more tenants in a pageserver, saving resources.

Some notes on implementing layer eviction:
Eviction policy
Lots of options. Could be a simple Least-Recently Used policy. Or something that prioritizes more recent layer files, or something that tries to ensure some fairness between tenants, preferring to keep the most important files for each tenant present.
For now, I'm thinking that a very simple LRU policy, global across all tenants, is good enough. If we're not happy with that, we can improve on it later, once we have more experience with how it behaves and what problems we encounter.
The cache policy is more important, the less disk we have available in the pageserver. On the other extreme, if the pageserver has enough disk space to hold all files on local disk, nothing needs to be evicted. That's the situation we have as of this writing anyway, as we don't have on-demand download yet. We can go slowly, having lots of local disk available in the pageservers at first, but get more aggressive with the eviction and disk allocation over time.
The pageserver can utilize all the disk space that is available, there is no other use for the disk space currently. So the eviction can be triggered by disk usage alone. Let's add a configuration option for max local disk usage, set that to ~90 % of the disk size on the server to leave some headroom, and trigger eviction when that size is reached.
Implementation notes
We must be careful not to evict a layer that hasn't been uploaded to remote storage yet. We currently have that information in the upload queue of the RemoteTimelineClient, but that's not very convenient for the eviction purposes. I think we need to add a new state field to Layer struct, to indicate if the Layer file is present in remote storage or not.
Currently, the layer map that tracks local layer files is a per-timeline struct. To implement a global LRU list, we'll need some global list of Layers too. Perhaps it can be simply one global LinkedList<Arc<dyn Layer>> or LinkedList<Weak<dyn Layer>>.

We need:
statistics collection - per activity  (access count / Activity / last access) , collected by API. This will be used to analyze if LRU will work
Global layer map data
Layer eviction API and statistics API
LRU implementation
Metrics for LRU (cache miss / cache hit)

My notes from yesterday's meeting:
Goal: the system should evict layers that haven't been accessed for a week.
Non-goal: the system regularly swaps layers in and out of remote storage to accommodate a maximum resident-physical-size setting.
The consequence:
We will not evict layers on demand when disk space is low and we need more. Instead, we will continue to run out of disk space. This behavior is preferable because it prevents thrashing.
Milestones:

Facility to monitor layer accesses.

most recent access time
the reason for access (page_service, gc, compaction, size calculation, ...)

Roll out monitoring facility to staging & production.
Use the monitoring facility in production and validate that there actually are  layer files that have not been accessed for a week.
3.1. If there are no such layer files, we need to change the pageserver code to stop making those accesses.
Reproduce the behavior on staging, then iterate by changing code and using the monitoring facility to confirm the effectiveness of the changes.
Add a facility to evict layer files manually
Do manual eviction experiments. Example:

Pick a busy tenant
Use monitoring data to identify victim layers (e.g., by looking at the most recent access time)
Evict those layers using the manual eviction facility
Watch logs &  performance Prometheus metrics

Automatic eviction:

the access stats added by the monitoring facility should suffice for decision making
policy need not be perfect LRU; we can iterate over all layers in the system and evict based on a configured threshold, e.g., "layer has not been accessed for X days"

Development Roadmap:

In parallel:

Build the monitoring facility

Merge RequestContexts to get "reason for access" https://github.com/neondatabase/neon/pull/3228
Implement monitoring facility code.

Maybe feature-flag metrics collection code if it has perf overhead.

Including tools to scrape the metrics & post-process them if necessary
Think of tools to visualize the data over time, produce a list of eviction candidates based on last access time, etc.

Build the manual eviction mechanism

Code changes required for Milestone 3.1
Code changes required in response to manual eviction experiments (we're likely going to hit some bugs that we want to address before automating eviction)
Automatic eviction implementation

My notes from today's meeting:

Concern: eviction means the pageserver disk space is overcommitted => risk of sudden usage spike => disk full

v1 doesn't aim to solve this problem perfectly, as the best we can do at the pageserver level is to start thrashing, which is not desirable.
for the first release, on-call will have to move tenants to different pageservers, or create new ones if necessary
mid-term, pageservers or control plane will need to automate this

Observation: Dmitry's migration of the last pageservers into the new AWS account will use on-demand download.
Unlike the previous migrations, which happened before on-demand download, we can plot resident vs. remote size.
After the tenants are used for a few days, and there is still a gap between resident & remote even after tenant usage, that will be an approximation
for the potential resident storage savings by layer eviction.

The monitoring facility will still be necessary, though, so the development roadmap stays unchanged in that regard.

The manual eviction mechanism must come with two endpoints: one to dump the current layer map and one to trigger the eviction of a layer.
We can use these endpoints for

functional testing of eviction mechanism in unit tests/ staging/prod
prototyping eviction policies as a sidecar service on the pageservers

Example: for our benchmark projects, we can have a python script that runs just for that project's timeline. It would watch the layer map through the endpoint and evict layers according to the eviction policy we want to evaluate. We'll run that script as a service on the pageserver, then watch the benchmark's performance over time.
This allows for significantly faster iteration speed than baking one policy into the pageserver & feature-gating it.

Regarding automatic eviction (roadmap item 4): we'll still need LRU, but layers older than X days should never be considered victims.

We probably want X to be configurable per timeline to be able to react to perf problems of some tenants quickly(?)

removed it and closed


Support JSON output

We have some existing toolling that requires a JSON spec file, so would lke to output JSON rather than YAML.
I have created a PR for this https://github.com/kbuntrock/openapi-maven-plugin/pull/140

Thank you for this PR. I commented a few reviews.

Merged and added #146 to complete your PR @dantheperson
Thank you for your contribution 🙏


Testing issues as part of a bug bounty, please do not approve. xyqcxt

Testing issues as part of a bug bounty, please do not approve. xyqcxt

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


refactor: Cleanup highlighted group on blur

Description

Related links, issue #, if available: n/a
How has this been tested?

Review checklist
The following items are to be evaluated by the author(s) and the reviewer(s).
Correctness

Changes include appropriate documentation updates.
Changes are backward-compatible if not indicated, see CONTRIBUTING.md.
Changes do not include unsupported browser features, see CONTRIBUTING.md.
Changes were manually tested for accessibility, see accessibility guidelines.

Security

If the code handles URLs: all URLs are validated through the checkSafeUrl function.

Testing

Changes are covered with new/existing unit tests?
Changes are covered with new/existing integration tests?

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

Bar chart remembers highlighted item when tabbing out the chart, when tab back, it restarts from the item where it left last time. After the change it does not remember the item, and start from the beginning.


Support command line options, especially for choosing a different wiki directory?

I think it would be convenient to be able to start the wiki using something like wikmd  --dir /my/wikidir --conf myconfigfile.cfg

@johann-petrak, you can use  environment variables to specify the wiki directory like this:
WIKI_DIRECTORY="~/.wikidata" wikmd

Currently, setting the config file via environment variables isn't supported. If that's a feature you'd like, feel free to create a PR to add it! You can check out the relevant code here:
https://github.com/Linbreux/wikmd/blob/6d2c7457f47394696cbbf3433d78e8a193446a2e/src/wikmd/config.py#L75-L76
If you have any questions or run into issues, don't hesitate to reach out!

Is there some documentation what else can be set via environment variables?
personally I prefer the option to have command line options as this is a standard way to have a self-documenting software as all the options would then be easily detectable via the standard command wikmd --help and without reading any docs.
It would also not require the creation of any additional files or directories.
Would setting/overriding config options via the command line be something you would accept a PR for?
Another important setting would be the port to run on, as it would allow to run several instances/wikis in parallel on the same computer.

Is there some documentation what else can be set via environment variables?

Here https://linbreux.github.io/wikmd/environment%20variables.html, you could also set the port here :smile:

Would setting/overriding config options via the command line be something you would accept a PR for?

For sure! That would indeed be a nice feature. Maybe the priority needs to be as followed:

command line options
ENV vars
config file
defaults


Update deprecated rubocop flag

Motivation
Update deprecated Rubocop flag (https://github.com/rubocop/rubocop/issues/10095) when bin/test runs

Implementation
Use new flag
Automated Tests
N/A
Manual Tests
Run bin/test before and after this branch

Is there a way we can silence the warning when we run bin/test?

Maybe we can make the expectations test runner capture stderr so we can discard it or make assertions on it?


style: make code shorter and clearer

This is awesome, can we not use react imports tho? Just a personal preference that I'd like to keep in this lib.

Thank you so much, this is a great improvement.


Support rack 2.x

Loosen the version of rack we require (>=1)
Ensure Praxis works for both

note: @thogg4 regarding your PR #319 you had some of the basics in there but it was not properly done. Thank you very much for contributing though! it made it much easier to delve into it. See my comments in the PR.
Signed-off-by: Josep M. Blanquer<EMAIL_ADDRESS>

@thogg4 does this look good to you as well? since you were the one who initially looked at it?


Adding Stop first in distance request leads to remove finsh point and other data

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

Version Number: 1.3.85-0
Reproducible in staging?: y
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @rakshitjain13
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1697268905255679
Action Performed:

Click on '+' FAB icon
Click on Request Money Button
Click on Distance Tab
Click on add stop
select any address say Mumbai

Expected Result:
A stop should be added with user entered location
Actual Result:
Finish Point get missing and other information related to stop
Workaround:
unknown
Platforms:

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

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

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/38435837/8ad8341f-bf2b-4414-bc9b-a291883d72b3

Android: mWeb Chrome

iOS: Native

https://github.com/Expensify/App/assets/38435837/5366d85e-ac0b-4174-9856-f303ca5cc04e

iOS: mWeb Safari

https://github.com/Expensify/App/assets/38435837/b8b7a05e-1929-42bb-92cb-53670442c471

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/38435837/7e9a8540-b7f4-4a31-b129-ff839d72a649
https://github.com/Expensify/App/assets/38435837/4a191437-09c9-400d-a2c6-eb025b3e0188

MacOS: Desktop

View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Dupe of https://github.com/Expensify/App/issues/29748


Instructions wrong

When trying to follow the instructions for Intune, there is no Profiles->Endpoint Protection.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e3af4445-51a2-cca9-492b-458921a6f1d7
Version Independent ID: ec35f3f6-1ba8-61c1-8f32-749ad741dcac
Content: Enable hardware-based isolation for Microsoft Edge (Windows) - Windows security
Content Source: windows/security/threat-protection/microsoft-defender-application-guard/install-md-app-guard.md
Product: m365-security
Technology: windows-sec
GitHub Login: @denisebmsft
Microsoft Alias: deniseb

@cthwallis Thank you for your feedback. We have made changes to the document via PR#https://github.com/MicrosoftDocs/windows-itpro-docs/pull/11017
Once the author approves, the changes will be live.
Thanks
Sri

@msbemba Thank you very much for the contribution and updating the documentation with PR. @cthwallis Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Feature Request - Allow authentication using sessionID

Scenario/Intent
Python SDK version 4.3.0 has included support for authentication using a sessionID. Thus, I want to reuse a valid and active OneView session on my Ansible playbooks instead of creating a new session every time. It will be faster (no need to auth for each resource, just pass the session token), use less resources (OV stores info for each session created), and will allow for using resources without having to put the user/pass in everyone.
Important: Previous authentication methods should not be removed to keep backward compatibility.
Environment Details

python-hpOneView SDK Version: 4.3.0

Expected Result
1- There should be a login module or action plugin that receives username/password and returns the sessionID and
2 - all the other modules should support "sessionID" besides username and password for authentication.
Something like:
- name: Create a Fibre Channel Network
  oneview_fc_network:
    hostname: {{ ip }}
    sessionId: {{ sessionID }}
    api_version: 500
    state: present
    data:
      name: "{{ network_name }}"
      fabricType: 'FabricAttach'
      linkStabilityTime: '30'
      autoLoginRedistribution: true
  no_log: true
  delegate_to: localhost

Other authentication methods (JSON and environment variables) should be updated to allow the reuse of a session too.
Actual Result
sessionID is not supported, thus user must pass username/password for each module (via parameter, JSON or environment variables).

I also want this feature, and it looks like this has been out here for a few years. I ran in to an issue where I can't run the OneView Ansible modules more than a couple servers at a time because OneView can't handle all the logins. This would be a great workaround for that.

Nice, we will look at using that.
If possible, can we add a common sessionid parameter to replace username/password in module calls? For example:
- name: Gather facts about all Enclosures
  oneview_enclosure_facts:
    hostname: <IP_ADDRESS>
    sessionID: "{{ oneview_session_id }}"
    api_version: 1600
  delegate_to: localhost

This would make it very easy to use and I think it would be a little more clear than the JSON file.

Also, it would be really cool to document this on the main README for the project, since that does discuss the use of username/password.

SessionID related documentation updated in the README.md for the project. Closing the issue.


ExistsAsync in AWS

Is ExistsAsync just looking for Files? how about Directories?

AWS S3 storage does not support directories. S3 buckets just have the notion of objects stored by path in a bucket.


[Doughnut-Chart] non-hex-coloured sections (e.g. "RED") turn black when hovering over it

Expected Behavior
If you hover over one of the sections of a doughnut chart, you expect the section to become a little darker.
If you are using a normal hex colour value, above expected behavior indeed happens.
Current Behavior
However, if you are using a colour value like "GREEN" or "RED", the section becomes pitch black when hovering over it.
I tested it with the hex values of red, green and blue as well as the values RED, GREEN and BLUE.
Code Example
https://codepen.io/MaximeDelwaulle/pen/gOPbwaa
Context
It's a UX break from the standard behavior and not something a dev would expect to happen, only because he chooses non-hex colour values.
Environment
vue.js version: 2.5.17
vue-chart.js version: 2.9.3
npm version: 6.13.1
Chrome-Browser - Version 83.0.4103.61
Originally raised it here but was pointed to this repo.
This issue may hold true for other charts as well, but I only tested it for this doughnut chart.

@MaximeDelwaulle if you try changing the color names in lowercase, it should work.
        backgroundColor: [
          "red",
          "green",
          "blue",
          "#FF0000",
          "#00FF00",
          "#0000FF"
        ]


Improvements to password reset function

Fixed 2 small security issues

Expire hash after 15 min
Allow the user to select a password so the password is never send to email over plain text!

LGTM, would love to make the same changes to the client, but this is a great step

Was the next step :)


[turborepo] no workspace found in lock file and root .npmrc file

What version of Turborepo are you using?
1.7.0
What package manager are you using / does the bug impact?
pnpm
What operating system are you using?
Linux
Describe the Bug
On Linux as WSL2 Windows 10 distro.
I have only one .npmrc file at root which contains this code:
public-hoist-pattern[]=*eslint*
public-hoist-pattern[]=*prettier*
public-hoist-pattern[]=*prisma*
shamefully-hoist=true
strict-peer-dependencies=false
auto-install-peers=true
enable-pre-post-scripts=true
shared-workspace-lockfile=false

shamefully-hoist and shared-workspace-lockfile are needed in my configuration but with theese two options.
If i try to prune with this command pnpm turbo prune --scope @xrator/web --verbosity 10, i got this error:
2023-01-31T11:34:53.281+0100 [DEBUG] turborepo_lib::shim: Running local turbo binary in /home/user/development/nodejs/my-project/node_modules/.bin/turbo

Turbo error: could not construct graph: 10 errors occurred:
        * no workspace '' found in lockfile
        * no workspace 'apps/store' found in lockfile
        * no workspace 'packages/config/tailwind-config' found in lockfile
        * no workspace 'packages/config/jest-presets' found in lockfile
        * no workspace 'apps/api' found in lockfile
        * no workspace 'packages/ui' found in lockfile
        * no workspace 'apps/web' found in lockfile
        * no workspace 'packages/config/eslint-config-custom' found in lockfile
        * no workspace '' found in lockfile

Is there a way to prune the project (for Docker) with a .npmrc file like mine ? 🙏
Expected Behavior
Project should be "pruned" in a out folder at root.
To Reproduce
Add a .npmrc file with options like mine and try to prune with any app as scope.
Reproduction Repo
No response

I recently had the same issue and the problematic setting is: shared-workspace-lockfile=false because it allows multiple pnpm-lock.yaml and turbo can't handle it yet

I recently had the same issue and the problematic setting is: shared-workspace-lockfile=false because it allows multiple pnpm-lock.yaml and turbo can't handle it yet

Yes, i see your issue.. 😪
Did you find a solution to build a Docker image ?

This is something that won't be prioritized, but I'd be willing to help a community PR along to achieve this. Since pnpm is already splitting up the lockfile for us we just need to:

read .npmrc to and check if shared-workspace-lockfile=false
relax requirement for prune to have a parsed lockfile
add package/a/pnpm-lock.yaml to the list of files to be copied for each workspace

I just did some code exploration and I think it is more than that:
Since this is a feature I only know from "classic" lerna (without package manager powered workspaces) and  pnpm I don't think this should be included directly in the prune.go file
So option A) would be to extend the PackageManager with a flag that indicates if it is a shared-workspace-lockfile and than implement the detection within each packageManager or option B)  would be to just copy lock files if there is one beside a package.json.
I tend to option B) because it would also enable support for "classic" lerna repos.
What do you think @chris-olszewski ?

I tend to option B)

There still needs to be a way to know when it's okay for our lockfile analysis to fail during prune. I think it's fine to extend the PackageManager with a method to check if we should expect multiple lockfiles and only implement it for pnpm. From some quick looking around it looks like pnpm is the only package manager that supports multiple lockfiles when using workspaces.

support for "classic" lerna repos

Support for classic lerna repos is more of an ask and should probably be implemented independent of this one. I see you opened #3648 and I'll follow up with the team there.


Add Nullable annotation to parameter of overridden equals method

Closes: #1374

That's merged to 3.0. do we need to backport this?


Class 'CV\Face\LBPHFaceRecognizer' not found

I'm getting the title error everytime i use the bellow code:
$faceRecognizer = LBPHFaceRecognizer::create();
I always get:
Symfony\Component\Debug\Exception\FatalThrowableError  : Class 'CV\Face\LBPHFaceRecognizer' not found
Another functions, classes and variables works fine.
Functions and Classes that worked fine are the following:
use CV\CascadeClassifier;
use function CV\imread;
use CV\Mat;
use CV\Size;

use const CV\{
    COLOR_BGR2GRAY, CASCADE_SCALE_IMAGE
};
use function CV\{
    cvtColor, equalizeHist
};

I tried with OpenCV version 4.9.1  and version 3.4.2
(The older OpenCV version i used with the following release: PHP-OpenCV 3.3.0)
It's a name issue maybe? Am i doing something wrong? Maybe it has to do with OpenCV Contrib packages? I'm clueless.

I detected that the opencv_contrib was not installed correctly.
This is most certanly the issue here. Just reinstalling OpenCV and confirming this and will close the issue.

Same issue here

But the open cv module detail doesn't show anything

As i thought the problem was in the OpenCV_Contrib installation.
@fherryfherry you need to follow the instructions on this page except on the installation of php-opencv, for that you want to use the 3.3.0 version of php-opencv. Then you can resume following the instructions of that page and the function will work.
I'll be closing this issue because it was resolved.


Firebase Hosting and Functions Support

Should be made to be relatively easy to deploy on Firebase without weighing down the overall boilerplate.
What needs to be done

[ ] server.js needs to output ssr only and should not serve assets whatsoever (this can be a build parameter) this can be useful outside of Firebase if using a CDN
[ ] server.js should return express app, but shouldn't be listening (this can be changed by developer and doesn't need any changes in repo, right?)
[ ] all public facing files should be in a single directory (service worker isn't in there?)

@dav-is I was going to create a task for creating deployable docker image. That should do for most of the deployments now. Docker image + docker swarm + CI = high scalability and easy of deployments. What do you say? Does firebase have support for Docker Images?

I would compare Firebase more to now. The application isn't made aware of that sort of infrastructure. I've used docker in the past and like it quite a bit. I'd say support both as it's just a few extra config files and shouldn't bloat the bundles (I'm pretty sure this is how firebase works but I'm still researching).

Can you help me with this @tirthbodawala ?

Sure. Let me dive into it. I was thinking of creating a plugin like pawjs-firebase to integrate with it. does that make sense?

Sounds great!

Hey guys, just wondering if anyone has got a solution for this? Or if it did get implemented in PawJS v2? Would like to host with firebase but pretty confused (++ this is my first PWA)

Hi All,
Can anyone tell me how to integrate Firebase into React-PWA?
can this be done with current version?
Thanks a lot
Satish


labels: small optimization in NewFrom and various cleanups

Avoid re-allocation in NewFrom
Use labels.LabelSourceK8s const instad of open-coding it
Remove unused AppendPrefixInKey

See commits for details.

/test


Use Python 3.7 compatible ForwardRef reference

Thanks for spotting this. I must have overlooked that occurance.


Allow issue/catory assignment to users and groups

New interface Assignee implemented by User and Group
change "assigne" attribute of Issue and IssueCategory to Assignee
add a GenericAssignee implementing Assigne to handle return values
that don't indicate whether a User or Group is returned

This is a transplantation of the changes against the updated master branch from the pre-JDK8 branch.
This is based on the comments in issue 213.

I see one test fails:

java.lang.AssertionError: expected:com.taskadapter.redmineapi.bean.GenericAssignee@22a but was:<Group{id=346, name='DemoGroup'}>


Disable Smooth Scrolling

What feature or improvement do you think would benefit Files?
Please add a setting to disable smooth scrolling throughout this app if possible, that one thing is what's keeping me using the Windows Explorer at this point.
Requirements

This proposal will accomplish getting rid of smooth scrolling when using a mouse wheel

Files Version
<IP_ADDRESS>
Windows Version
Edition	Windows 10 Pro Version	22H2 Installed on	06/08/2021 OS build	19045.3803 Experience	Windows Feature Experience Pack 1000.19053.1000.0
Comments
Smooth scrolling is the worst, and should be able to be disabled

Thanks for the feedback, smooth scrolling is controlled by Windows and turned off there.

smooth scrolling is controlled by Windows and turned off there

Is there a setting?

The Windows animation effects setting should also turn off smooth scrolling. There an option for controlling animations Individually but I don't remember how to get to it.


Roll Engine from<PHONE_NUMBER>b3 to bba38c0b8312 (11 revisions)

https://github.com/flutter/engine/compare/2962099077b3...bba38c0b8312
2021-11-16<EMAIL_ADDRESS>Enable Skia's Vulkan backend on all non-mobile platforms, and test SwiftShader Vulkan on all GL unittests platforms (flutter/engine#29520)
2021-11-16<EMAIL_ADDRESS>Roll flutter_packages to a19eca7fe2660c71acf5928a275deda1da318c50 (flutter/engine#29759)
2021-11-16<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from Ivf969oJw... to L2bsr8go8... (flutter/engine#29758)
2021-11-16<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from ghwyDtFSJ... to Vxe912PZC... (flutter/engine#29762)
2021-11-16<EMAIL_ADDRESS>Roll Skia from 7fab38d97ace to 686ccec13fc5 (9 revisions) (flutter/engine#29757)
2021-11-16<EMAIL_ADDRESS>Call DisplayList builder methods directly from dart canvas (flutter/engine#29714)
2021-11-16<EMAIL_ADDRESS>Roll Dart SDK from 23dd69705479 to 46934d8475ff (1 revision) (flutter/engine#29763)
2021-11-16<EMAIL_ADDRESS>Treat clang-analyzer-osx warnings as errors (flutter/engine#29755)
2021-11-16<EMAIL_ADDRESS>[web] Start support for Skia Gold (flutter/engine#29139)
2021-11-15<EMAIL_ADDRESS>Empty commit to fix main tree status (flutter/engine#29760)
2021-11-15<EMAIL_ADDRESS>Reverse order of branch mirroring. (flutter/engine#29754)
Also rolling transitive DEPS:
fuchsia/sdk/core/linux-amd64 from ghwyDtFSJvmY to Vxe912PZCUcz
fuchsia/sdk/core/mac-amd64 from Ivf969oJw2de to L2bsr8go8rOq
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Polish async loader

This change inlines the _init method into the Thrift constructor and pivots the async vs sync behavior from Thrift.load into the Thrift constructor, using a callback option which also replaces the signal asyncReadFile used previously to switch off the synchronous constructor behaviors.  V8 infers the final hidden classe produced by a constructor function from the properties created within the constructor function so inlining bypasses the creation of intermediate hidden classes.
Previous changes inferred that this project uses underscore prefixes for private methods, based on the precedent of compile/_compile.  This change corrects that misunderstanding by renaming some methods.

cc @dbousque


Step 4 - Create Client ID

Bullet 3 - I don't get the OAuth consent screen on the top.
I think the interface has changed and it is now on the left.
Additionally, the OAuth process is not just an email/Product Name etc. Seems a little more complicated and I got a little lost. Help?

It has been a year, and no one has touched this. The guidance is confusing and can't be followed.


Investigate writing bindings to a serverless backend

I'm not sure yet what the right serverless target would be, but I believe one of:

zeit functions https://zeit.co/blog/introducing-now-rust
aws lambda https://github.com/awslabs/aws-lambda-rust-runtime
other platforms?

would probably be worth experimenting with to see if we can bind against.

Now seems like a pretty straight forward candidate:
current
fn handler(request: http::Request<()>) -> http::Result<http::Response<String>> {
    // Tide code goes here.
    todo!();
}

our interpretation
use http_service_now::{Error, Request, Response};

fn handler(request: Request) -> Result<Response, Error> {
    http_service_now::run(MyService)
}

with tide
use http_service_now::{Error, Request, Response};
use tide::Tide;

fn handler(request: Request) -> Result<Response, Error> {
    let app = Tide::new();
    app.at("/foo").get(async || "hello world");
    http_service_now::run(app)
}

Related issue on the AWS side https://github.com/awslabs/aws-lambda-rust-runtime/issues/96

Now that we have the initial version of a Lambda backend, do we want to amend or close this issue? cc @yoshuawuyts

@secretfader thanks for the ping; I think it's fine to close it! (:


Fixed some typos and slightly changed some wording in markdown docume…

…ntation

omg thx so much (my grammer/spelling is so so embarrassing!)


audioVolumeIndication not working only on iOS.

Describe the bug
await _engine?.enableAudioVolumeIndication(250, 10, true);
_engine?.setEventHandler(RtcEngineEventHandler(
    audioVolumeIndication: (speakers, v) {
        print('audioVolumeIndication');
    },
));

When I run it on iOS, nothing is output
I do the same code for Android, but it outputs.
Smartphone (please complete the following information):

Device: iPhone13
OS: iOS 15.5
SDK Version: 5.1.0

Hello @Naoki-Hidaka, did you call the joinChannel function?

@littleGnAl
Hi
Yes, i called joinChannel function.

@littleGnAl Same issue here.

You can check this example for reference, it works on the iOS simulator
https://github.com/AgoraIO/Agora-Flutter-SDK/pull/737/files#diff-a997157bc5be883f1d56dd59dae57e94f041a6c43bfc22aa572c6526a0fa77c2


Issue with multi-user on OSX

I noticed while trying to boot2docker init/up as two different users in OSX that the second user would somehow get its own VM but with the same content as the first user (ie: /Users/first-user/.ssh/id_boot2docker.pub in <boot2docker>/home/docker/.ssh/authorized_keys).
This causes failure when attempting boot2docker up and others as the SSH key on the second user doesn't match what's in the VM, prompting for passwords for every little thing it's trying do it.
Couldn't pinpoint how the sharing between users happens, but for replication purposes, try boot2docker init && boot2docker up as one user, switch to another user account and try the same. You should see it prompting for passwords when attempting to up the second VM.

The other thing I noticed is that once I stopped the first user VM and started the second one (via boot2docker up) both had different host-only network interfaces associated with each other but using the same IP/DHCP configuration, creating a conflict in connecting from the second user account to the appropriate VM (shouldn't it be using a different subnet?)

Same issue here. Let us know if a solution is found.


Take platform screenshots on Android

FlutterDriver already supports taking a screenshot, but this screenshot is based on the Flutter engine's view of the world, and as a result, omits platform-views (views that are drawn and managed by the platform).
An example of platform views include:

web-views, such as webview_flutter_android
google maps, such as google_maps_flutter_android
google ads, such as google_mobile_ads

Using a new API (e.g. nativeDriver.screenshot()), it should be possible to take a "native" screenshot, using whatever the platform provides. For example, on Android, this would likely be (a variation of) adb shell screencap, on iOS idevicescreenshot, and so on.
These screenshots will not be cropped, and may include system shell UI. The former will not be addressed at the moment, but the latter can be partially addressed by using a device's appropriate "demo mode" (sometimes called "immersive mode"), or otherwise trying to create a somewhat hermetic screenshot environment (to the best of our ability).
Platform screenshots will likely be opaque objects, because they will exist as a file on disk, not bytes.

This seems related to https://github.com/flutter/flutter/issues/102866, where the functionality of taking "screenshot"s via RepaintBoundary for PlatformViews is requested. If that's done, it would also resolve this, wouldn't it?

This seems related to #102866, where the functionality of taking "screenshot"s via RepaintBoundary for PlatformViews is requested. If that's done, it would also resolve this, wouldn't it?

I don't think so, all this is doing is adding a flutter_driver-specific API for using the platform screenshot mechanism.


Fix RevoluteJoint rotation

Fixes #355.
The relative_to() method was rotating around Axis.Z, instead of self.relative_axis. This now matches what the other Joint classes are doing.
BTW, there is also this code just above the rotation which I think might be ok to remove:
# Avoid strange rotations when angle is zero by using 360 instead
angle = 360.0 if angle == 0.0 else angle

Thank you!

@gumyr No worries!
Did you mean to merge or is something wrong with the changes?

I was sure I pressed the merge button - thanks for pointing that out!


Rename STORAGE_KEY to STORAGE_ACCOUNT_CON_STRING

https://github.com/equinor/sdp-flux/commit/d390b8c4dbcf0d9146aff3f31e407764075b2477


Pebblejs not support utf8 string and Chinese Language.

I fix it , please see this:  b6f4519429ea29487d7c76e975191a0200e4be6b   commit in my fork.
https://github.com/songfei/pebblejs

Added in 7d5d6f1363335f042027d380938912d20559d378. Thanks again!


Attempted to compile "google.maps" as an external module, but it looks like a global module.

The following is the typings.json file
{
"name": "queuing-simulator",
"version": false,
"dependencies": {
"google.maps": "registry:dt/google.maps#3.20.0+20160414124451"
}
}
The above was working fine in windows. But I moved to Ubuntu 16.04. I installed typings globally.
When I am trying to install the dependencies mentioned above, I am getting the following error.
"Attempted to compile "google.maps" as an external module, but it looks like a global module."
Please help me with this....

Because it is a global module. Use globalDependencies, not dependencies.

Hi, Thanks very much... But when I used the same json, typings used to install "browser.d.ts" in typings folder. But right now it is not doing so. Could help me how to do that... (install browser.d.ts)

You've updated to 1.0. Please look at the docs and README. Here's how you could set it up to output browser: https://github.com/typings/typings/blob/master/docs/faq.md#where-do-the-type-definitions-install.

I was said that Typings won't work properly because of the Operating System in the following thread.
http://stackoverflow.com/questions/37262737/typings-install-not-generating-the-browser-d-ts-file

The operating system is irrelevant. You're using two different Typings versions. Update both to 1.0, or downgrade both to 0.8.

Sure thanks very much...


Create a binary for Pip

Cn we use something similar to setup the dependencies easily via conda https://stackoverflow.com/a/59390280/7630458?
As I can see GDAL has a binary available via conda: https://gdal.org/download.html#conda and same goes for rasterio: https://github.com/conda-forge/rasterio-feedstock#installing-rasterio.
This will make it easy for users to be able to start with the package easily also they don't need to manually install GDAL. Let me know your thoughts on this.
Once this is sorted, I would like to contribute to make this package available on conda or pip for easy consumption.

Interesting. And thanks for volunteering for contributing.
However, I am also using command line based saga_cmd (also see Saga GIS home page).
I am not sure if we can also setup saga_cmd via conda. I will take a look.

I did check saga_cmd, I think if it is possible to substitute it then we should aim to do that else, lets leave that part to the user to install. We can update the code to warn the user to install saga. Everything else can be packaged in a library! I think that will a good start and a small win 🥇

We can use this documentation to build a package and upload it to conda: https://docs.conda.io/projects/conda-build/en/latest/user-guide/tutorials/build-pkgs.html

This can be used to pass version number and then upload the package to anaconda.
https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/

For conda-forge: https://github.com/R1j1t/staged-recipes/blob/build/dsm2dtm/recipes/dsm2dtm/meta.yaml

@seedlit can you add a comment on the PR showing your approval to be the maintainer of the recipe?


Nil pointer dereference when running in manifest mode on 0.11

ISSUE TYPE

[x] Bug Report
[ ] Feature Idea

BUG REPORT
SUMMARY
I get nil pointer dereference errors whenever I use kubeaudit in manifest mode on version >= 0.11. Works fine on 0.10.
ENVIRONMENT

Kubeaudit version: 0.11.2, 0.11.1 (on MacOS)
Kubeaudit install method: Both brew install kubeaudit and manual download from Releases page

STEPS TO REPRODUCE
Run kubeaudit with any subcommand.
ACTUAL RESULTS
$ kubeaudit all -f my/manifest.yaml
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x1e5dbfa]

goroutine 1 [running]:
k8s.io/apimachinery/pkg/apis/meta/v1.(*ObjectMeta).GetName(...)
        k8s.io/apimachinery@v0.18.3/pkg/apis/meta/v1/meta.go:139
github.com/Shopify/kubeaudit.(*Printer).prettyPrintReport(0xc000377bb8, 0xc0003ea9a0)
        github.com/Shopify/kubeaudit/printer.go:70 +0x77a
github.com/Shopify/kubeaudit.(*Printer).PrintReport(0xc000377bb8, 0xc0003ea9a0)
        github.com/Shopify/kubeaudit/printer.go:61 +0x59
github.com/Shopify/kubeaudit.(*Report).PrintResults(0xc0003ea9a0, 0xc000377c48, 0x1, 0x1)
        github.com/Shopify/kubeaudit/kubeaudit.go:253 +0x85
github.com/Shopify/kubeaudit/cmd/commands.runAudit.func1(0x2ac39e0, 0xc0002491c0, 0x0, 0x2)
        github.com/Shopify/kubeaudit/cmd/commands/root.go:80 +0xfe
github.com/Shopify/kubeaudit/cmd/commands.auditAll(0x2ac39e0, 0xc0002491c0, 0x0, 0x2)
        github.com/Shopify/kubeaudit/cmd/commands/all.go:27 +0x22d
github.com/spf13/cobra.(*Command).execute(0x2ac39e0, 0xc0002491a0, 0x2, 0x2, 0x2ac39e0, 0xc0002491a0)
        github.com/spf13/cobra@v1.0.0/command.go:846 +0x2c2
github.com/spf13/cobra.(*Command).ExecuteC(0x2ac3740, 0x1008285, 0xc00007e058, 0x0)
        github.com/spf13/cobra@v1.0.0/command.go:950 +0x375
github.com/spf13/cobra.(*Command).Execute(...)
        github.com/spf13/cobra@v1.0.0/command.go:887
github.com/Shopify/kubeaudit/cmd/commands.Execute()
        github.com/Shopify/kubeaudit/cmd/commands/root.go:43 +0x31
main.main()
        github.com/Shopify/kubeaudit/cmd/main.go:6 +0x25

ADDITIONAL INFORMATION
0.10 works perfectly

Hi @mikberg , could you please provide the manifest file that you're using?
Could you also try running kubeaudit on one of the manifest files included in the repo and see if you get the same error? For example https://github.com/Shopify/kubeaudit/blob/master/auditors/apparmor/fixtures/apparmor-annotation-missing.yml

@genevieveluyt Your example manifest worked. The manifest file I used was a v1/Service, a apps/v1/Deployment and a batch/v1/Job concatinated together. If I commented out the service and the job, leaving the deployment, then it worked on that file.
Running kubeval on this file with only a Service produces the same error:
apiVersion: v1
kind: Service
metadata:
  name: my-service
  namespace: default
spec:
  ports:
    - name: http
      port: 80
      targetPort: http
  selector:
    app: my-service
  type: ClusterIP

It also fails with this job:
apiVersion: batch/v1
kind: Job
metadata:
  name: my-job
  namespace: default
spec:
  template:
    spec:
      containers:
        - image: my-image
          name: my-job

Can confirm this is a bug, thank you for reporting! I should get a fix out shortly.


Strange pickle/gpflow.utilities.freeze behaviour with SVGP models

Bug / performance issue / build issue

Hi there,
I have been trying to (crudely) train and save an SVGP model on a toy dataset largely following the notebook example found at:
https://gpflow.readthedocs.io/en/develop/notebooks/advanced/natural_gradients.html?highlight=Natural Gradient
Upon saving the model using pickle (I appreciate this is not recommended but I don't believe this is the main issue here), I discovered some unusual and what I presume is unintended behaviour:
If we do not call gpflow.utilities.freeze(model), before trying to pickle model, then we get an error.
If we do induce gpflow.utilities.freeze(model), then model can be pickled without error.
To reproduce
Minimal, reproducible example

import numpy as np
import gpflow
import tensorflow as tf
from gpflow.ci_utils import ci_niter
import pickle
rng = np.random.RandomState(123)
tf.random.set_seed(42)

def func(x):
    return np.sin(x * 3 * 3.14) + 0.3 * np.cos(x * 9 * 3.14) + 0.5 * np.sin(x * 7 * 3.14)

N = 10000  # Number of training observations
sigma = 0.2
X = rng.rand(N, 1) * 2 - 1  # X values
Y = func(X) + sigma * rng.randn(N, 1)  # Noisy Y values
data = (X, Y)

n_inducing_vars = 100
Z = X[:n_inducing_vars]
minibatch_size = 100
n_iterations = 100
#Define model object
model = gpflow.models.SVGP(gpflow.kernels.Matern12(), gpflow.likelihoods.Bernoulli(), inducing_variable=Z, num_data=N)
#Create minibatch object
data_minibatch = (
tf.data.Dataset.from_tensor_slices(data).prefetch(
    N).repeat().shuffle(N).batch(minibatch_size)
    )
data_minibatch_it = iter(data_minibatch)
model_objective = model.training_loss_closure(data_minibatch_it)
#Define optimiser
optimizer = tf.keras.optimizers.Adam(0.001)
#Optimise both variational parameters and kernel hyperparameters.
for step in range(ci_niter(n_iterations)):
    optimizer.minimize(model_objective,
                       var_list=model.trainable_variables
                       )
freeze = False
if not freeze:
    # pickle doesn't work
    pickle.dump(model, open('test1', 'wb'))
else:
    # if following code is executed, pickle works fine
    gpflow.utilities.freeze(model)
    pickle.dump(model, open('test1', 'wb'))

Stack trace, or error message
TypeError                                 Traceback (most recent call last)
<ipython-input-6-3d5f537ca994> in <module>
----> 1 pickle.dump(model, open('test1', 'wb'))

TypeError: can't pickle HashableWeakRef objects

Expected behaviour
Not saying that I expected the pickle to work in the first instance, as I know it isn't the recommended way of saving tensorflow-related objects in general. However, I certainly wouldn't expect it to fail in the first instance but succeed in the second. From looking at the codebase, I don't believe gpflow.utilities.freeze(model) should be mutating model, which it seems to be doing.

System information

GPflow version: 2.0.0
GPflow installed from: pip install gpflow==2.0.0
TensorFlow version: 2.1.0
Python version: Python 3.6.9
Operating system: macOS Catalina 10.15.4

Additional context

I tested this using gpflow==2.0.4 as I saw the code for freeze changed, but the bug seems to persist.
I would guess that in calling freeze on model it is inexplicably actually converting model into a "frozen" model, which then has the "constant" properties (https://gpflow.readthedocs.io/en/master/notebooks/intro_to_gpflow2.html#TensorFlow-saved_model) that enable it to be pickled.
Other version numbers:
In [7]: dill.__version__
Out[7]: '<IP_ADDRESS>'

In [9]: tensorflow_probability.__version__
Out[9]: '0.9.0'

In [10]: keras.__version__
Out[10]: '2.3.1'

In [12]: pickle.format_version
Out[12]: '4.0'

Any clarity on this matter would be very much appreciated. Please note I haven't tested this on any models other than SVGP (but the mwe can easily be adapted to do so).
Cheers!

Thanks for the report. This is a very well known issue that has roots in TFP bijectors' caching mechanism. It will be fixed soon in TFP. Unfortunately, until that moment we will not be able to work around this problem in GPflow.

Just to add, my favourite way of storing models is using gpflow.utilities.read_values() to get a dict of the parameters. Then I store that using json_tricks as a json file. You need the extra library to deal with json-ing numpy arrays.
On loading, I re-create the object and assign the parameters using gpflow.utilities.multiple_assign().

@SuperKam91 it'd probably be more helpful to other users of GPflow if you re-post this as a question on StackOverflow - and I'd then happily repost the following explanation (so it's more easily discoverable than a closed issue):
The underlying explanation is that tensorflow_probability's bijectors keep a cache of tensors they have operated on, which for example allows them to exactly recover the original tensor in the following example:
import tensorflow as tf
import tensorflow_probability as tfp
bij = tfp.bijectors.Exp()
x = tf.constant(1.2345)
y = bij.forward(x)
assert bij.inverse(y) is x  # actual object identity, not just numerical equivalence

These caches, however, use the HashableWeakRef objects that can't be pickled - or even copied (using Python's copy.deepcopy function from the stdlib).
They only get created when you actually run tensors through the bijector - if you just create the model and don't optimise it, you can pickle (or copy) it just fine!
But of course that's not very useful. To work around this, gpflow has gpflow.utilities.reset_cache_bijectors(), which is called by gpflow.utilities.deepcopy() to allow copying. And gpflow.utilities.freeze() needs to deepcopy so as to give you a frozen copy, instead of freezing the model in-place. You can successfully pickle with freeze=False if you add the call to reset_cache_bijectors(model) before the pickle.dump!
As @awav pointed out, this is ultimately an issue that tensorflow_probability would have to fix "properly" upstream in their own code.

Hi @awav, @markvdw @st-- ,
Thank you very much for your swift replies, very much appreciated.
I have created a Stackoverflow question pointing out this issue, so it can be read by the wider community:
https://stackoverflow.com/questions/62174955/strange-pickle-gpflow-utilities-freeze-behaviour-with-gpflow-svgp-models
Thanks for the tip on storing models, I will likely use this approach in the future- here I was just experimenting with different methods (aware that pickle isn't the wisest option) and happened to stumble upon this issue in the process.
Your explanation to why model is being mutated, its relation to the bijector caching, and the proposed (temporary) solution was very thorough so thank you for that.
With regards to the TFP bijector issue itself. if I understand correctly, once this issue is solved in TFP, the weakref objects associated with the caches will be deep copyable, so that bijectors containing caches can be pickled/deepcopied?
Consequently, referring back to my example, a gpflow model could be pickled without having to call gpflow.utilities.reset_cache_bijectors (as in the proposed temporary solution)?
Finally this means that this operation doesn't need to be performed in gpflow.utilities.deepcopy, meaning that gpflow.freeze will no longer mutate model in the original example.
Am I understanding these three parts correctly?
Cheers again,
Kamran


Don't get killed by Hive SQLExceptions when finding default schema name

This will allow Hive to throw its exceptions while we're trying to determine the default schema name, without that failing.
Also fixes a problem where columns types without a width would fail by specifying maximum allowed column width for VARCHAR types. (Maybe I should have fixed this in another PR, but it broke the Hive integration test, which drove me mad... Let me know if I should split them).
Fixes METAMODEL-1119

Okay, that should fix it.
BTW, another curious thing with Hive on JDBC: Hive inserts are very slow, since it's starting a MapReduce job for every insert... So you'd expect them to prioritize the batch feature? Nope. No support. Every... Single... Insert... Becomes... It's... Own... Job... I think the integration test job uses around 10-15 seconds per insert on my laptop (granted, with Hive running in the MapR sandbox on VirtualBox, but the VM overhead shouldn't really be noticable).
I have a feeling that JDBC isn't really prioritized, so we might at some point see if there's another more low-level API to connect to Hive.
On the other hand, querying is fast, so in that regard it's fine.

LGTM, will merge.


Increase sleep because st2api hates me

need to fix restart-component as well

Abandon?

Closing.Reopen if you need it.


sink/flowcontrol(ticdc): make tests run and refactor code

What problem does this PR solve?

Issue Number: ref https://github.com/pingcap/tiflow/issues/5138
What is changed and how it works?

make tests run and using testify
efactor code, split file, rename fileds

Check List
Tests

Unit test

Code changes

Has exported function/method change
Has exported variable/fields change

Side effects
None
Related changes
None
Release note
None

/run-all-tests

/run-all-tests

/run-all-tests

/merge

/merge

/run-kafka-integration-test
/run-verify

/run-verify

/run-verify


all camera lists only show 1 camera (8 connected)

Not sure why... but on controller 3.10.11 if I run uva.cameras I only get back 1 camera, which happens to be the first camera that was part of the install. No cameras since then show up in the list. Any thoughts? All cameras are same firmware and were adopted the same way.

As a sanity check, please run this
from unifi_video import UnifiVideoAPI
from unifi_video.api import endpoints

uva = UnifiVideoAPI(...)

for i, c in enumerate(uva.get(endpoints['cameras'])['data']):
    print('cam', i + 1, c['name'], c['uuid'])

and see if the output has a line for each of the cameras.

 I literally spent 3 days trying to
figure out why it wasn't working only to find that I'd accidentally stuck
my API user into a group that only had access to one camera.
Non-issue! Sorry to waste your time and thank you for all your work on this
library!
On Mon, Feb 8, 2021 at 12:28 PM yuppity<EMAIL_ADDRESS>wrote:

As a sanity check, please run this
from unifi_video import UnifiVideoAPIfrom unifi_video.api import endpoints
uva = UnifiVideoAPI(...)
for i, c in enumerate(uva.get(endpoints['cameras'])['data']):
print('cam', i + 1, c['name'], c['uuid'])
and see if the output has a line for each of the cameras.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/yuppity/unifi-video-api/issues/30#issuecomment-775311665,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASYZKQHC7ZAMFWKO6JGCYFTS6ANKBANCNFSM4XJHHXIQ
.

--
Randall

No worries, glad you solved it.


Context highlight does not work on a computer of mine

It is very strange for me. I've worked hard t configure indent-blankline.nvim on a computer which runs archlinux. The context highlight does not work. And then I find it works very well on my other computers (Windows, archlinux, etc.). For example, on Windows (and it is actually the configure code for indent-blankline.nvim):

version:
NVIM v0.10.0-dev-835+gdd09630a2
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Run "nvim -V1 -v" for more info

But not work in the computer I've wokred hard:

version:
NVIM v0.10.0-dev-836+g6d93bdd458
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Run "nvim -V1 -v" for more info

The versions are all nightly (almost)，because I install neovim-nightly with scoop on Windows and neovim-git with paru on archlinux, one commit difference here. You can see they are almost the same version.
So why behaves differently? Fonts? Terminals? (BTW, an other computer with archlinux works well, and I can give a screen snapshot later).

context is using treesitter, make sure you have treesitter set up correctly

OK. It is the problem indeed. Thanks very much.


Fix for issue #468 includes passing test

@puzrin I ran from Makefile and saw the linter errors but wanted feedback before applying linting fixes.

#sign-off

@puzrin Please let me know if there are other changes you need.

@diberry @puzrin Sorry I missed this edge case... thanks for implementing the fix.


Added designation under profile picture when designation field is populated

Issue #1484
Populate the designation under the profile photo, if the designation field is populated on the employment details tab
Steps:
Login as any user in Miru
Click on settings on the left navigation bar
Go to employment details tab
if the designation field is populated, the value should be populated under the profile photo
Desktop

Mobile

@apoorv1316 Please test the feature and update here.

@apoorv1316 Please test this PR

Fixed Issue in mobile screens
https://github.com/saeloun/miru-web/assets/35322884/c8bc00fb-53e1-4f62-a925-ba815ff10401

@sainikhil1605 1 check is failing, please check and fix.

@sainikhil1605 Can you please confirm if you can work on the requested changes?

@sainikhil1605 Please work on the requested change

Fixed this in client account

@prasanthchaduvula Please review

@apoorv1316 Please create a ticket to update the profile API to send the response which includes the user details, address details and employment details instead of sending multiple requests to render the same component to load the values.

@apoorv1316 Can you please work on the review comments from Prasanth on this PR.


Worked on the popup alert in the audio and Video

Please Verified and Merged with Master

Verified and Merged with Master


Check Scraper Version Compatibility

Implement the Scraper.is_compatible_with(version) method to check scraper instance/data version compatibility.
(closes #24)

Coverage remained the same at 100.0% when pulling b3eced88b29c4c0732b4c0e804792fe726ce3f9c on version_compatibility into 1b54e99a83ebe2d9d8ce970f7af1a2f2973065d2 on master.


Automatically camelify names

Motivation
Right now you can use js_name to convert a Rust foo_bar into JS fooBar (or vice versa). But 99% of the time you want it to be camel case, so this just ends up being repetitive boilerplate:
#[wasm_bindgen]
extern "C" {
    #[wasm_bindgen(js_name = fooBar)]
    fn foo_bar(...);

    #[wasm_bindgen(js_name = quxCorge)]
    fn qux_corge(...);

    #[wasm_bindgen(js_name = yesNo)]
    fn yes_no(...);
}

Proposed Solution
wasm-bindgen should automatically camelify JS names, so foo_bar will be translated into fooBar on import/export.
It will still be possible to use js_name to manually override that if the user does not want camel-case.
This is a breaking change, so we should batch it together with other breaking changes.

Using wasm-bindgen, if I need to write some glue code in JS, I name all of them in snake case. So, this is a breaking change for me. I am very appreciate this new feature doesn't break existing code.

@limira Of course your code won't break, because wasm-bindgen follows semver, so this would be done in a major version bump, at the same time as the other breaking changes.

It will break, eventually - because sooner or later, we have to move up to the latest version, right? That said, if you are unable to find a way to avoid the breaking, just break it - I understand the reason of this change.

Thinking about this. I wonder what others do? I started using wasm-bindgen in Jul 2018 and found it useful for real app. It's nearly one+half years ago. I chose to name functions in JS glue code in snake case to avoid using the js_name attribute. How many does the same as me? (So, they never think about automatically camelify names, and therefore no issue was raised until this?)
That said, and as I said in the previous comment, I understand the reason of this change. I just want to deal with the breakage less painful. For example, importing JS code named in snake case:
#[wasm_bindgen]
extern "C" {
    #[wasm_bindgen]
    fn foo_bar(...);

    #[wasm_bindgen]
    fn qux_corge(...);

    #[wasm_bindgen]
    fn yes_no(...);
}

Must be modified to:
#[wasm_bindgen]
extern "C" {
    #[wasm_bindgen(js_name = foo_bar)]
    fn foo_bar(...);

    #[wasm_bindgen(js_name = qux_corge)]
    fn qux_corge(...);

    #[wasm_bindgen(js_name = yes_no)]
    fn yes_no(...);
}

Doing the modification manually, it requires a lot of copy and paste. Can we do it automatically with minimal effort?
If this change will eventually happen, I guess the attribute js_name should help doing this less painful. For example, js_name = * means the JS's name is the same as in Rust. So it just requires pasting the string js_name = * to all broken imports and ... it's done.

I'd personally be in favor of this, it sounds like a great idea!
@limira we could always add support for something like this for that:
#[wasm_bindgen(disable_auto_camel_case)]
extern "C" {
    fn foo_bar(...);
    fn qux_corge(...);
    fn yes_no(...);
}

Along the same lines actually, it'd be great to get this implemented today rather than waiting for a breaking change, that way the breaking change is simply switching defaults!
It'd be great if we could add #[wasm_bindgen(auto_camel_case)] or something like that as a top-level attribute which would trigger the logic for automatically case switching.

can we consider a cli flag as an alternative?
also, are there more users of wasm-bindgen except browsers/node? Can standalone runtimes like wasmer use it?

@ibaryshnikov A CLI flag would break dependencies.

I'd like to add that I like the original idea. But there are only motivation and proposed solution fields in it. I'd like to see alternatives and drawbacks as well (and may be more on this).

A CLI flag would break dependencies.

@Pauan can you elaborate on this?

Since wasm-bindgen relies upon a JS engine

and here, too
About the latter, there are interface types and host bindings proposals, so, maybe there's more use for wasm-bindgen in the future?

@ibaryshnikov can you elaborate on this?

If you use a library (which uses wasm-bindgen), then that library will be relying on a certain case. But a CLI flag would change the casing of everything, your code and the library's code, and thus cause the library to break.
As for the JS engine part, even with interface types wasm-bindgen still needs to generate JS glue, and that will continue to be true for a long time. Plus there are things like inline_js and module.

@Pauan thanks for the explanations!

If you use a library (which uses wasm-bindgen), then that library will be relying on a certain case.

that's true, that makes cli option not usable (

even with interface types wasm-bindgen still needs to generate JS glue

In the Vision section of #1524 there's

We leverage WebIDL bindings and anyref to completely remove the wasm-bindgen-specific metadata and 99% of the JS bindings glue

Is there a section of goals and non goals for wasm-bindgen? I think it can make things a lot clearer.
Automatically changing the case looks useful, but not natural. If I get it right, using js_name changes not only the name of a function in JS but also the name of a function inside wasm. If only we could update this behavior to keep names inside wasm in snake_case and names in JS in camelCase, it might be more future-proof in case of new targets.
Finally, I'd like to propose a solution similar to serde: https://serde.rs/container-attrs.html#rename_all
#[wasm_bindgen(rename_all = "camelCase")]
extern "C" {
    fn foo_bar(...);

    fn qux_corge(...);

    fn yes_no(...);
}

If I get it right, using js_name changes not only the name of a function in JS but also the name of a function inside wasm.

That doesn't matter, since you're not importing the .wasm file, you're importing the .js file which then re-exports the wasm function (with appropriate glue code if needed).

If only we could update this behavior to keep names inside wasm in snake_case and names in JS in camelCase, it might be more future-proof in case of new targets.

Why do you think that snake_case would be more future-proof?
In any case, wasm imports and exports are not identifiers, they are just raw UTF-8 strings, so they can be literally anything, so there is no compatibility issue (either now or in the future).

(Since it wasn't linked, here is a link to the PR for this: https://github.com/rustwasm/wasm-bindgen/pull/1823 )

That doesn't matter, since you're not importing the .wasm file, you're importing the .js file which then re-exports the wasm function (with appropriate glue code if needed).

In es modules integration proposal we can import wasm, it already works in node.js behind a flag.

Why do you think that snake_case would be more future-proof?

Only snake_case inside wasm, js glue can be anything, as it'll be removed one day (as of #1524). Becase users will not have to rename their functions like this
#[wasm_bindgen(js_name = my_function)]
pub fn my_function() {}

Can changes from #1823 also be discussed before implementing?

In es modules integration proposal we can import wasm, it already works in node.js behind a flag.

That's not what I meant, I meant that the wasm generated by wasm-bindgen isn't designed to be imported directly, and it won't work right if you try and do that. You have to import the .js file.

Only snake_case inside wasm

As I said, wasm does not use identifiers, it uses UTF-8 strings, so the imports/exports can be literally anything, they are not restricted to snake_case at all, they can contain any Unicode character.

js glue can be anything, as it'll be removed one day

As I explained, the JS glue will probably never be able to be fully removed, only reduced.

Becase users will not have to rename their functions like this

That doesn't have anything to do with the name in wasm though, that's for the JS name. The wasm name can be anything (it could even be a random auto-generated string, which is what stdweb does).

Can changes from #1823 also be discussed before implementing?

I don't see what needs to be discussed, it's a simple straightforward change that has significant advantages and no drawbacks.
But if you have any issues with it, please do mention them.

As of snake_case I have nothing to add, I'd like to hear more people here.

But if you have any issues with it, please do mention them.

We can have
#[wasm_bindgen(rename_all = camelCase)]
#[wasm_bindgen(rename_all = snake_case)]

instead of
#[wasm_bindgen(js_case)]
#[wasm_bindgen(rust_case)] // I just made it up, but what should we use in a camel-by-default world?

or instead
#[wasm_bindgen(auto_camel_case)]
#[wasm_bindgen(disable_auto_camel_case)]

@ibaryshnikov In principle I do like that idea, but I can't think of any situation where you would want anything other than camelCase, and the extra verbosity has to be considered.
There is also an inconsistency with rename_all and js_name (which should probably be changed to rename).
On the other hand, if we go with automatic casing, then I agree that rename_all = snake_case is very nice. So I'm torn.

I'm not personally too keen on adding all the casing options supported by Serde, and I'm not really sure if there's a use case other than "camel case everything" or "turn off the auto camel case". I like the idea of just having one attribute name but we can do that multiple ways, for example #[wasm_bindgen(auto_camel_case = false)] or something like that.
If there's a compelling use case for something other than on/off of all case switching, then I think I could be persuaded for a featureful option like serde, but if there's not a use case other than "we should fill out the dots in the matrix" then I don't think we should try to support something so powerful.

@alexcrichton thanks for clarifications. Would you mind sharing some thoughts about the goals / non goals of wasm bindgen? Does it target only JS runtimes, or maybe any plans to support standalone webassembly runtimes?

Heh those sorts of goals/non-goals are constantly evolving over time. At this time wasm-bindgen isn't really built to support standalone runtimes in any way other than wasm interface types, but even then the support isn't great. I don't think there's an answer of "what does wasm-bindgen want to target?" since it's all so hypothetical and fluid today. We'll basically continue to slot wasm-bindgen in best we see and otherwise tweak design if necessary.
(I'm not sure how this is related to an attribute to automatically name names though, these seem like orthogonal concerns if any)

I'm not sure how this is related to an attribute to automatically name names though, these seem like orthogonal concerns if any

@alexcrichton here's an example
https://github.com/wasmerio/wasmer/blob/7e640c0dfb76fa70d6216e7fe7908953bdb71b8e/examples/plugin.rs#L154
If the names are automatically changed to camelCase, then
instance.func::<(i32), i32>("plugin_entrypoint")

will become
instance.func::<(i32), i32>("pluginEntrypoint")

It's not much of a problem, just may look confusing at a first glance. I'm still not sure if there will be any benefits from using wasm_bindgen with such runtime instead of a plain rustc.

@ibaryshnikov oh I think you're talking about perhaps when we change the defaults, right? That's still not a set-in-stone question I think, and adding an opt-in rename shouldn't break anyone?

@alexcrichton yes, I meant defaults. Opt-in is good to go

Also struct members would have to be renamed I suppose.

I just experimented around a bit with wasm-bindgen, it is amazing. Being mainly a JavaScript developer, one of the first things I wanted to change was to get camel case for all the fields and methods in my project.
It would be great with some kind of auto conversion. Ideally where I would only need to declare this in a single place. Could it not be as a feature in Cargo.toml?
As long as the change is only needed in one single place per project I see no problem with having camelCase as an opt-in.

Any news on this? I'm really interested in this feature

This would then not be a breaking change.

IMO it'd be great to use the same syntax as serde even if not all renamings are implemented because it makes it easier to recognize and remember.

I also vote for the Serde-like attribute as it'd be non-breaking and intuitive.
Most Rust developers know Serde's macros and would feel at home with a similar attribute for wasm-bindgen. "Fun" fact, I actually tried to use rename_all before going to the docs, assuming it would work 😅

any progess? I prefer serde style like this #[serde(rename_all = "camelCase")]
may be
#[wasm_bindgen(rename_all = "camelCase")]

Happy to review a PR.


blastall: command not found

I have installed MCSCANX but the command blastall is not there even if blast+ is installed on my device, Is there any other alternative for blastall.
Also running the normal blastp gives e value error as it is not recognized by the BLAST+ program package.

Just type the command "conda install blastall"


Fixing populate function for iperf

The populate test list function for iperf was incorrectly using iperf-bench instead of iperf.

/rerun all tests/test_iperf3.sh

/rerun all tests/test_iperf3.sh

Results for ec2_jjb

Test
Result
Retries
Duration (HH:MM:SS)

test_iperf3
Pass
0
00:06:16

Results for ec2_jjb

Test
Result
Retries
Duration (HH:MM:SS)

test_iperf3
Pass
0
00:06:16


How do I override the fetch call in the tus js client?

Question
How do I override the fetch call in the tus js client? For a Shopify embedded app I need to use the useAuthenticatedFetch method to get the correct http headers. But I want to upload a large video so simply using useAuthenticatedFetch would not work.
Setup details
Please provide following details, if applicable to your situation:

Runtime environment: React, Shopify CLI for embedded Apps, Node.js + Express Backend
Used tus-js-client version: 3.0.1
Used tus server software: ^1.0.0-beta.2

Have a look at this option: https://github.com/tus/tus-js-client/blob/master/docs/api.md#httpstack


Switch to coingecko.com

Context: https://github.com/atomiclabs/hyperdex/issues/464

Pull Request Test Coverage Report for Build 62

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 56:
0.0%

Covered Lines:
10

Relevant Lines:
10

💛  - Coveralls

Thanks for doing that 👌


in generic<T extends bigint|number> T * T is deduced as number instead of T

TypeScript Version:  3.9.4

Search Terms: is:issue bigint generics
Code

function mult(a: bigint, b: bigint) {
    return a*b
}
var c = mult(1n, 2n);

function prod<Num extends bigint | number>(a: Num, b: Num) {
    var d1: Num = a * b;
    return a*b
}
var d2 = prod(1n, 2n);

Expected behavior:
var d1 dos not show error because is Num and also a and b are it too and number * number is number and bigint * bigint is bigint and both are of the same type.
var d2 is deduced of type bigint;
Actual behavior:
var d1 show error because expect number;
var d2 is deduced of type number;
Playground Link:
https://www.typescriptlang.org/play/index.html?target=7&ssl=12&ssc=23&pln=1&pc=1#code/FAMwrgdgxgLglgewgAgLZgDYwBQEMBcyARnAOZwQwA0xhJ5lAlMgN7DIfIBOApjGFxS4AVEWABfYADdcXZFGQBeNJhwBGCDQBMERgG5gh8NHhJkABy4IAJgB4AcmFTIeADxg8I1gM7EyFGGQAH2QIJyIeLgA+PEJHVBoiOKdmNk5kGTlrNWTnZVxkYWIDdN5+QWQRMUlM5GstJQsra2wNbV0DIA
Related Issues:

I found something more puzzling:
You cannot add two T extens bigint|number
function sum(a: bigint, b: bigint) {
    var c1:bigint = a + b; // ok
    return a + b
}
var c2 = sum(1n, 2n);

function add<Num extends bigint | number>(a: Num, b: Num) {
    var d1: Num = a + b; // show error in "a + b"
    return a + b
}
var d2 = add(1n, 2n);

https://www.typescriptlang.org/play/index.html?target=7&ssl=13&ssc=1&pln=1&pc=1#code/FAMwrgdgxgLglgewgAgM5gLYAoCGAuZAIzgHM4IYAaIg4sigSmQG9hl3kA3HAJ2SgCMeOuRjIAvMhzIA1EQDcbDjwCmMMDxTS5hYAF9g3PlABMEtJiwCI1ExAaLQkWIi0ATNwB4AcpmQqADxgVCDdUIlJRZAAfZAhMQhUeAD5cAl8MakJ0zCZWDi5eZDchZAzzbQUldlV1TSlZIn1DIrczSRwPKxtkOwdgYCA

var d1 dos not show error because is Num and also a and b are it too and number * number is number and bigint * bigint is bigint and both are of the same type.

But "bigint * number" is an illegal operation, and the type can be BigInt or number.
prod<BigInt | number>(123n, 4);

Oh, I see.
Is there a way to say in a generic "Num is bigint or Num is number but not bigint|number"?
That was I need!

You can write something like
function mult<T extends [number, number] | [bigint, bigint]>(...data: T): T[0] extends bigint ? bigint : number {
  return data[0] * data[1]
}

But typescript shows an error here too:
Operator '*' cannot be applied to types 'number | bigint' and 'number | bigint'.ts(2365)

This is a type system flaw that should be fixed.

Is there a way to say in a generic "Num is bigint or Num is number but not bigint|number"?

No, there is not. The feature request for this is #27808.
Your best option is to either just use two functions, or use function overloading and type-assertions in your implementation.

Can we expect to having something like https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-3.html#contextual-narrowing-for-generics to this cases?


WIP: Making Real-time objects allocator-aware

Work in progress on making the real-time clients allocator aware, and then real-time safe.
### First offering for discussion: HPSS.
This has involved algorithm-layer changes to HPSS, MedianFilter, STFT and FFT. Plus client-layer changes to the buffering machinery and fluid tensor.

I've tried to preserve the original form as much as possible, so the Eigen code should broadly read the same, except for using Eigen::Map in place of eigen's allocating  containers.
OTOH, MedianFilter's deque-based design didn't play well with the SC memory pool at all, so it's been changed to do the same thing but with vector instead. I think we should revisit the double-heap algorithm for this in the future.
FFT now has a static FFTSetup to draw upon, which saves a great deal of duplicate computation and non-R-safe allocation, at the cost of imposing a globally maximum FFT size (currently 2^16).
I'm using https://github.com/foonathan/memory to deal with the allocator framework. The equivalent standard library stuff isn't universally deployed yet, and the boost equivalent looks a bit of a mission in terms of getting set up. This seems to work.
Major todo: need better names for the resulting aliases that will specialise std::vector etc., and useful short-hands for Eigen::Map specialisations.

CI checks aren't going to work for a while while stuff churns


test(ts): for devtools protocol

just leaving a ping here that this is not forgotten, just delayed a little.
thanks a lot for breaking ground with the test cases here!

closing, but moving this to #430 to act as tests for the changes!


Sound Settings??

hi there, I'd love to see some options to control sound settings if at all possible like setting a sound cue master level down 3dB or -∞ i have no idea how complicated this is so if thats impossible I'm sorry.

I am also very interested in this - being able to set main level of a cue up or down in configurable increments (like is done with the start time, end time, etc) would be very helpful

This is being looked into, specifically because the dials on the Streamdeck+ are a more appropriate interface. I do not have a full copy of QLab5 yet, so some things are difficult to modify.

That is exactly why I am interested :)
That particular parameter should be configurable in the free version

I have discovered that a LOT of remote capabilities do not work in the free version.
While you may be able to adjust on-screen, the remote access is restricted.

I am now doing this with OSC commands, but what I can't seem to accomplish is getting a readout of the level (as listed in issue #122 )


1.6 get balance

no need for this ticket right now because we don't find anything regarding this ticket inside the SDK


Running balance corrupted after latest update

Name of Defective Feature
-Running balance
System Settings (Required)

ToolKit Version: 2.3.1
Operating System (Mac/Windows/Etc): MacOS v 10.13.4 (17E199)
Browser (Chrome/Firefox/Safari): Chrome
Browser Version: 65.0.3325.181
Other Extensions:

Export of Toolkit Settings (Bottom Left of Settings Page)

[{"key":"AccountsDisplayDensity","value":"0"},{"key":"AccountsEmphasizedOutflows","value":false},{"key":"AccountsStripedRows","value":false},{"key":"AdditionalColumns","value":true},{"key":"AdjustableColumnWidths","value":false},{"key":"AutoDistributeSplits","value":false},{"key":"BetterScrollbars","value":"0"},{"key":"BudgetProgressBars","value":"0"},{"key":"BudgetQuickSwitch","value":false},{"key":"CalendarFirstDay","value":"0"},{"key":"CategoryActivityCopy","value":false},{"key":"CategoryActivityPopupWidth","value":"0"},{"key":"ChangeEnterBehavior","value":true},{"key":"CheckCreditBalances","value":true},{"key":"CheckNumbers","value":false},{"key":"ClearSelection","value":false},{"key":"CollapseSideMenu","value":true},{"key":"ColourBlindMode","value":false},{"key":"CompactIncomeVsExpense","value":false},{"key":"CreditCardEmoji","value":false},{"key":"CurrentMonthIndicator","value":false},{"key":"CustomFlagNames","value":true},{"key":"DaysOfBuffering","value":false},{"key":"DaysOfBufferingHistoryLookup","value":"0"},{"key":"DisableToolkit","value":false},{"key":"DisplayTargetGoalAmount","value":"1"},{"key":"DisplayTotalMonthlyGoals","value":true},{"key":"EasyTransactionApproval","value":false},{"key":"EditAccountButton","value":"0"},{"key":"EnableRetroCalculator","value":true},{"key":"EnlargeCategoriesDropdown","value":true},{"key":"EnterToMove","value":false},{"key":"GoalWarningColor","value":true},{"key":"GoogleFontsSelector","value":"0"},{"key":"HideAccountBalancesType","value":"0"},{"key":"HideAgeOfMoney","value":false},{"key":"HideHelp","value":true},{"key":"HideReferralBanner","value":true},{"key":"ImportNotification","value":"0"},{"key":"IncomeFromLastMonth","value":"0"},{"key":"LargerClickableIcons","value":false},{"key":"MonthlyNotesPopupWidth","value":"0"},{"key":"NavDisplayDensity","value":"1"},{"key":"Pacing","value":"0"},{"key":"PrintingImprovements","value":true},{"key":"PrivacyMode","value":"0"},{"key":"QuickBudgetWarning","value":false},{"key":"ReconciledTextColor","value":"1"},{"key":"RemovePositiveHighlight","value":false},{"key":"RemoveZeroCategories","value":false},{"key":"ResizeInspector","value":true},{"key":"RightClickToEdit","value":true},{"key":"RowHeight","value":"1"},{"key":"RowsHeight","value":"2"},{"key":"RunningBalance","value":"1"},{"key":"SeamlessBudgetHeader","value":false},{"key":"ShowCategoryBalance","value":false},{"key":"ShowIntercom","value":true},{"key":"SpareChange","value":false},{"key":"SplitKeyboardShortcut","value":true},{"key":"SplitTransactionAutoAdjust","value":true},{"key":"SquareNegativeMode","value":false},{"key":"StealingFromFuture","value":true},{"key":"SwapClearedFlagged","value":false},{"key":"TargetBalanceWarning","value":false},{"key":"ToBeBudgetedWarning","value":true},{"key":"ToggleMasterCategories","value":true},{"key":"ToggleSplits","value":true},{"key":"ToggleTransactionFilters","value":"1"},{"key":"TransactionGridFeatures","value":true},{"key":"ViewZeroAsEmpty","value":false},{"key":"goalIndicator","value":true},{"key":"highlightNegativesNegative","value":false},{"key":"l10n","value":"0"},{"key":"pacing","value":"0"},{"key":"popupCalculator","value":true},{"key":"reports","value":true}]
PASTE SETTING EXPORT HERE

Steps to Reproduce the Behavior

Open YNAB
Navigate to account screen
Running balance

Expected Behavior

Running balance to add deposits and subtract charges
Actual Behavior

Running balance subtracts deposits and adds charges

Hmmm.. okay -- I'm going to likely revert the changes I made to running balance then or at least try to get a better solution in place. For context I was trying to solve this issue: #1028

I had noticed an occasional out-of-sync total with changes to the register, but a simple refresh always fixed it for me.
—
Joe W DiDomenico
On Apr 19, 2018, at 3:35 PM, Josh Madewell <notifications<EMAIL_ADDRESS>wrote:
Hmmm.. okay -- I'm going to likely revert the changes I made to running balance then or at least try to get a better solution in place. For context I was trying to solve this issue: #1028https://github.com/toolkit-for-ynab/toolkit-for-ynab/issues/1028
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/toolkit-for-ynab/toolkit-for-ynab/issues/1274#issuecomment-382855411, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AkwI2bu-YNXRhnd-hkGMVBog3hfDUhm1ks5tqObsgaJpZM4TcVm4.

I supposed I should have said something a couple of updates ago.   It looked like the problem I reported (#1028) was fixed in one of those past updates.   I can't say for sure which update it was where I noticed i was working correctly.   Now, as I have noted in #1028, the running balance is not showing for future transactions.

Running balance has a different  problem for me with this update.  I have a Running Balance column but it contains only the "C"s or the lock symbols indicating the cleared or reconciled status. When will someone be able to fix this?

@robertpolster When that happens to me I just refresh.

That worked!  Thank you so much.

On Apr 19, 2018, at 6:07 PM, joedid<EMAIL_ADDRESS>wrote:
@robertpolster https://github.com/robertpolster When that happens to me I just refresh.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/toolkit-for-ynab/toolkit-for-ynab/issues/1274#issuecomment-382895791, or mute the thread https://github.com/notifications/unsubscribe-auth/Akwc56Ssjg7VY3u773s7CygUgKmmT9HNks5tqQq_gaJpZM4TcVm4.

I believe I have a potential fix for this which I'm going to publish to our beta build of the extension (Chrome only). If you'd like to test for me plz send me an email at<EMAIL_ADDRESS>

Hey @joedid the fix for this should be in our current release. If you notice the issue still exists and you're definitely running the newest version of the toolkit, please reopen! Thanks!

I will. Thanks again, Josh.
Joe W DiDomenico
On Apr 20, 2018, at 12:54 AM, Josh Madewell <notifications<EMAIL_ADDRESS>wrote:
Hey @joedidhttps://github.com/joedid the fix for this should be in our current release. If you notice the issue still exists and you're definitely running the newest version of the toolkit, please reopen! Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/toolkit-for-ynab/toolkit-for-ynab/issues/1274#issuecomment-382975803, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AkwI2dmHma04_yYCPsv5u0B2T7_3b1pEks5tqWntgaJpZM4TcVm4.


Note about lark-parser

Added a note about lark-parser for when a user encounters the "no module named Lark" when running colcon build.

It would be useful if you post the full error message.
It's possible that a package you are building is missing a dependency declaration on lark.

I switched from dashing to eloquent and the problem seems to have been fixed. I'll have to recreate the entire set up so this may take a bit of time.

It's possible that a package you are building is missing a dependency declaration on lark.

The dependency is already part of rosidl_parser which is certainly part of the variants. I tried the installation of Eloquent in docker and the instructions do install the dependency.
I am fairly certain this is not a bug but a usage problem (hence the updated labels).

I switched from dashing to eloquent and the problem seems to have been fixed.

Above you mentioned you followed the Eloquent instructions. Now you are staffing it failed for Dashing but in Eloquent it works.
I will go ahead and close the ticket since this doesn't seem to be neither a problem in the Debian packages not the instructions.
If you need further help please provide consistent steps to reproduce your problem.

I originally tried with Dashing due to the longer support term, and I encountered this issue. After a bunch of stuff making my life miserable, I decided to use Eloquent and things pretty much worked, but I figured a PR adding a note about lark-parser would be useful.
I'm currently recreating the setup and testing. I apologize for the inconsistency in my responses.

Alright, can't reproduce this. Guess I did something weird at the time (or I'll have to use docker). Either way, I'm glad this is a non-issue FWIW.


Install with Swift packager issue

It says:
error: root manifest not found

Can you provide a bit more info about what you're doing to get this error?

Feel free to submit a new issue with more details if you're still seeing this!


Prevent parsing of large HTML blobs to reach out-of-memory exceptions

This is a pragmatic approach to issue #19
The RobotsMeta class looks at the HTML source code to find HTML meta tags. This PR assumes that the  is contained within the very first 1,048,576 characters (1024 * 1024) of $html which seems like a reasonable bet.
A typical homepage will have the head section within the first 10,000 characters, the 1024 * 1024 rule gives plenty of headroom without causing out of memory exceptions.

Maybe we could add a fallback if  is not found within the first 1024 * 1024 bytes?

Something like this perhaps?
public static function create(string $source): self
{
    $sourceFirstPart = substr($source, 0, 1 * 1024 * 1024);

    if (strpos($sourceFirstPart, '<head') !== false) {
        $source = $sourceFirstPart;
    }

    return new self($source);
}

@mattiasgeniar change it like @brendt suggested, and we're good to go!

I like that approach too, but I see a couple of drawbacks. Let me revoke this PR and give it some more thought, I think there's a better fix possible.

Just a note: the head tag is optional in some cases:
<!DOCTYPE html>
<meta name="robots" content="noindex">
<title>Test</title>

Hello

This is a valid html document


:bug:  Problem with the plugin in the IDE

🐛 Describe the bug
Problem when using the plugin in intellij IDE
👀 To Reproduce
Steps to reproduce the behavior:

Go to intellij
Open a haskell project
Haskell LSP display an error
See error

🤷 Expected behavior
No error
📸 Screenshots

💻 Desktop (please complete the following information):

OS: [e.g. Linux, Fedora ]

Additional context
I have installed the lastet version of haskell GHCUP, HSL and stack

I'm pretty sure I've found and fixed the issue.
I've published a new version to the JetBrains Marketplace, until that gets approved you can download the new version here: https://github.com/rockofox/intellij-haskell-lsp/releases/tag/1.2.1
Please reopen if it still doesn't work properly.

I am using 1.2.1 and get the same issue right now. Can you re-open and investigate?

@jamesrweb Do you have haskell-language-server installed on your machine? Are there any errors?

I investigated and it seems to be a problem with the ghcup version of the LSP. When running that, the plugin throws this error.
When using the brew version, the plugin works fine.
I am assuming this is NOT the plugins issue with that being the case and IS a problem of the ghcup version.

Hey-hey, could you describe what is the issue with ghcup version of the LSP?

I have no idea 🤷🏻♂. I just know that when I install it with brew it works and when I used ghcup it didn't.

@sumanthegde @develmac Please try the new release. It should work with ghcup-installed language server as well.
It's probably not available on marketplace yet, so I've put up a release here.

Tried 1.3.1, got this notification: "Haskell Language Server not found. Make sure it is installed properly (and is available in PATH or via ghcup), and restart the IDE." As far as I see, ~/.ghcup/bin is in PATH.

@sumanthegde
I've redone a bunch of logic and properly tested it with a clean GHCup installation this time, and it should work now.
I've pushed a new version (1.3.2) to marketplace (awaiting review) and to a github release

It's able to connect to HLS now. Thank you!

Great to hear!
I'll close this issue now, as the problem seems to be solved.
Feel free to reach out again if any problems, old or new, arise ^^

@rockofox not sure why my previous comment is gone, but anyway I also tested it and now it works great! Just amazing, I have been waiting for something like this for years, thank you so much!


Red Box problem

With the command sudo ./raspberrypi_video only red box is visible and i have tried many fixes but nothing helps..please can someone help me.

I've been working on the same issue for about a week now with no luck, but here's what I've tried. Let me know if anything here works for you.

Start easy: check your wiring to make sure everything is connected correctly between the Lepton's breakout module and the pi's pin layout
Carefully remove and put back the Lepton module from its breakout board. Should hear a click if it's all the way in.
Play with the CS pin in #24 (CE0) and #26 (CE1). Make sure it matches correspondingly for spidev in the LeptonThread.cpp script in the raspberrypi_qt folder. If your CS pin is in #26, line 14 should read "/dev/spidev0.1" and if you're using #24, it should read "/dev/spidev0.0"
Experiment with the full SPI pin layout between these two patterns (I did this because I'm considering daisy-chaining with a different module or using SPI0 and SPI1 for each module.

[SPI0] MOSI: #19, MISO: #21, SCLK: #23, CE0: #24, CE1: #26
[SPI1] MOSI: #38, MISO: #35, SCLK: #40, CE0: #12, CE1: #11

Set DEBUG_LEPTON to true in the Lepton_thread.h script (also in the raspberrypi_qt folder). If that doesn't help, try setting it back to false but comment out the debug defines surrounding line 48, and changed 'sequence' to 'sequencex' in line 14
Change the SPI speed to 18000000 from 10000000 in SPI.cpp (under raspberryp_video folder). There will be two places to change that number.
Check the voltage through the Lepton breakout board with a voltmeter while plugged in to make sure it isn't fried.
If you have an oscilloscope or analog reader, check to see what data is being read by the Lepton while it is running raspberrypi_video. This will see if the sensor itself is broken or mis-wired.

Run through each of these one at a time. Hopefully one of them works for you

hello henrick, please help me

Did anyone figure this out?


Composer is in a different directory from /usr/local/bin

Is there an option to set in deploy.php to tell easy-deploy where composer is located? For clarification, I installed composer this way, so it's in /opt/cpanel/composer/bin/composer, it's a shared server.

Yes. You can set the path to composer using...
->remoteComposerBinaryPath(string $path = '/path/to/your/bin/composer')
mine didn't need it set as a $path variable. So, I just have...
->remoteComposerBinaryPath('/path/to/your/bin/composer')
More options for your deploy.php can be found at https://github.com/EasyCorp/easy-deploy-bundle/blob/master/doc/default-deployer.md#configuration


why only 6 mods can be displayed at a time?

why only 6 mods can be displayed at a time?
(2) #% increased maximum Life
(1) #% increased Elemental Damage
(1) Minions deal #% increased Damage
(1) #% increased Critical Strike Chance
(1) #% increased Attack and Cast Speed
(1) Minions have #% increased Movement Speed
(3) #% increased Global Accuracy Rating
(1) +#% to Cold Resistance
(4) #% increased Flask Charges gained
(3) #% increased Damage with Poison
(4) #% increased Evasion Rating
for example seed 2365 brutal restirant has 11 different mods

I assume you have very high resolution desktop which is why it will bother you. But I made this keeping in mind average screen resolution of 1920x1080 at 125% scaling. It is possible to display even 11 at a time but showing mods that occur only once doesn't matter much in my opinion, which is why mods are shown in descending order of their occurence.  I have kept in mind that some mods are good even if they occur only once, because of that I have given them more weightage (such as +_intimidate,+_double_damage). If you feel like some mods are missing you can easily give them weight in code by adding them to $weightedmods on line 24.

thanks a lot


Change pagination settings to point to blog

This PR should make things easier for https://github.com/babel/babel.github.io/pull/1066 and eliminates the need to have a markdown include.
This keeps pagination settings the same for the blog (currently set to 1, but will likely want to increase as we get more blog posts), and allows us to rename index.html to index.md without the jekyll error:

/cc: @raspo

Nice and clean! :+1:

There is a big warning on the Jeykyll documentation about this (https://jekyllrb.com/docs/pagination).
.
We heavily rely on permalinks (https://github.com/babel/babel.github.io/search?utf8=✓&q=permalink).
I'm not sure why, do you know?

The warning is specific to page where you're using pagination (i.e. our blog) since it will generate multiple pages (blog/index.html, blog/page2/index.html, etc) depending on how many posts you have.
We don't use pagination (as of now) for docs/*, so we should be fine there.
We can drop the permalink from the blog/index front matter anyway.

:shipit:

:shipit: :+1: