Sqlxmq starts the same job multiple times concurrently

Hi!
I just noticed something weird happening on low-performance systems:
When starting only a single job on a VM set to using 5% of the CPU only (4 cores), it executes the job twice concurrently (checked job UUID, it is the same). Automatic keep_alive is activated. Another keep_alive in the job itself does not help either. So it seems to start the same job multiple times before it even starts executing.
This causes issues on a real system under heavy load, as things that should only run once actually execute multiple times concurrently :/
Thank you in advance and for your work!

I should mention I was on pre 0.3.5, I just noticed it and will check if that fixes it

Ok tested with newest version, but still fails

Did you run the new migrations?

Did you run the new migrations?

Yes

That is confusing - does this happen every time? If so, could you try manually executing mq_poll through your SQL client, and post the state of the database before / between / after the two calls?

No it is randomly, but happens consistently at a low performance like 5%.
I am starting with a clean database, running only migrations in before. After execution, mq_poll returns afterwards:
 id | is_committed | name | payload_json | payload_bytes | retry_backoff | wait_time
----+--------------+------+--------------+---------------+---------------+-----------
    |              |      |              |               |               |
(1 row)

This was with only one spawned job, a single runner and just using 1% of the CPU. Previously, I had multiple tests running at once, so more performance was still resulting in failures.

I suspect that the filtering for keep_alive doesn't work with using checkpoints. After further debugging and logging, it appears that after setting a checkpoint, but not stopping the job, another instance is set running from the checkpoint on.

It would probably not fix it, but the time::time::sleep should probably be a tokio::time::interval instead. Would make it less likely to occur. But a real fix is difficult. One could make custom functionality to avoid multiples occurring or increase the retry_backoff to reduce probability of it occurring as well. Really difficult one.

I don't think this is correct - from the moment you call mq_poll, the returned jobs should already be pushed back into the future, and will not be returned again until that time. Do you have a very small retry_backoff or something?

It was on the default of 1s.
Setting it to 30s helped, but of course it also decides the retry for failures.
But it can always happen, as there is a tiny frame between the mq_keep_alive calls.

If the retry is 1s, then it doesn't matter about anything else it should not be possible for two calls within 1s of each other to both return the same message.

Yeah it probably is not within 1s, this is why it matter that it happened only on low performance systems. The job took longer and under high load, the sleep often sleeps even longer, making the gap bigger. The interval would be executed a little earlier and fits slightly better. However, it can still happen under heavy load, that the keep_alive job is not executed fast enough and mq_poll returns the job again.
To be clear, what happened on my machine is:

Spawning the job
mq_poll executes it
mq_poll is empty
mq_poll is called exactly at the point, where the keep_alive ran out, but before the sleep timed out and updates keep_alive, so it returns the job again for retry.
Now 2 instances are running and interfering.

Is the high load coming from sqlxmq, or is this high load in your tokio application. If it is the former, then you should reduce the amount of concurrency in the job runner to something the system can handle. If the latter, then you may need to find some way to reduce that contention, or else increase the retry timeout.
0.5s is quite a long time for a task to be stalled on any system, and it is expected behaviour that the job will be retried in this way. Are you sure you are not running CPU-bound tasks on the tokio thread(s)?

(If you are, you should offload CPU-bound work using https://docs.rs/tokio/latest/tokio/task/fn.spawn_blocking.html)

Sorry - I closed the issue because the retry behaviour is expected. The keep alive behaviour is less expected, but if the tokio event loop is so overloaded that tasks cannot be polled promptly, then there's not a lot I can do - it's something you'd need to address in your application code.
What else are you running on the tokio event loop? Can you implement some kind of backpressure? These are the kinds of application-level questions you need to answer.

Ah I see, thank you for the explanation.
Yeah thinking more about it there is no way to solve really, I guess this is on my side to avoid interference then.


Added exception to SuspiciousOperation logging.

The other logging calls from response_for_exception() include the exception, it seems to only have been missed here. This allows better debugging and filtering of errors.

LGTM, FWIW.

Rebased!


pythonPackages.BoltzTraP2: init at 18.9.1

Things done
pythonPackages.BoltzTraP2: init at 18.9.1

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Fits CONTRIBUTING.md.

By the way, when contributing a bunch of Python packages, it is fine to put them in one PR, as long as they are in separate commits.

Package name normalized and ready for merge.

@GrahamcOfBorg build python3Packages.atomman

No attempt on x86_64-linux (full log)
The following builds were skipped because they don't evaluate on x86_64-linux: python3Packages.atomman
Partial log (click to expand)
Cannot nix-instantiate `python3Packages.atomman' because:
error: attribute 'atomman' in selection path 'python3Packages.atomman' not found

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: python3Packages.atomman
Partial log (click to expand)
Cannot nix-instantiate `python3Packages.atomman' because:
error: attribute 'atomman' in selection path 'python3Packages.atomman' not found

@GrahamcOfBorg build python2Packages.atomman

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: python2Packages.atomman
Partial log (click to expand)
Cannot nix-instantiate `python2Packages.atomman' because:
error: attribute 'atomman' in selection path 'python2Packages.atomman' not found

No attempt on x86_64-linux (full log)
The following builds were skipped because they don't evaluate on x86_64-linux: python2Packages.atomman
Partial log (click to expand)
Cannot nix-instantiate `python2Packages.atomman' because:
error: attribute 'atomman' in selection path 'python2Packages.atomman' not found

@GrahamcOfBorg build python3Packages.boltztrap2

Success on x86_64-linux (full log)
Attempted: python3Packages.boltztrap2
Partial log (click to expand)
/build/BoltzTraP2-18.9.1
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/g61kcsx1kzwjd4psqqssnm8dczdzwsx6-python3.6-BoltzTraP2-18.9.1
shrinking /nix/store/g61kcsx1kzwjd4psqqssnm8dczdzwsx6-python3.6-BoltzTraP2-18.9.1/lib/python3.6/site-packages/BoltzTraP2/sphere/frontend.cpython-36m-x86_64-linux-gnu.so
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/g61kcsx1kzwjd4psqqssnm8dczdzwsx6-python3.6-BoltzTraP2-18.9.1/lib  /nix/store/g61kcsx1kzwjd4psqqssnm8dczdzwsx6-python3.6-BoltzTraP2-18.9.1/bin
patching script interpreter paths in /nix/store/g61kcsx1kzwjd4psqqssnm8dczdzwsx6-python3.6-BoltzTraP2-18.9.1
checking for references to /build in /nix/store/g61kcsx1kzwjd4psqqssnm8dczdzwsx6-python3.6-BoltzTraP2-18.9.1...
wrapping `/nix/store/g61kcsx1kzwjd4psqqssnm8dczdzwsx6-python3.6-BoltzTraP2-18.9.1/bin/btp2'...
/nix/store/g61kcsx1kzwjd4psqqssnm8dczdzwsx6-python3.6-BoltzTraP2-18.9.1

Success on aarch64-linux (full log)
Attempted: python3Packages.boltztrap2
Partial log (click to expand)
/build/BoltzTraP2-18.9.1
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/f1qlk4zx1flimgwgfsxpis0lcm7b20j6-python3.6-BoltzTraP2-18.9.1
shrinking /nix/store/f1qlk4zx1flimgwgfsxpis0lcm7b20j6-python3.6-BoltzTraP2-18.9.1/lib/python3.6/site-packages/BoltzTraP2/sphere/frontend.cpython-36m-aarch64-linux-gnu.so
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/f1qlk4zx1flimgwgfsxpis0lcm7b20j6-python3.6-BoltzTraP2-18.9.1/lib  /nix/store/f1qlk4zx1flimgwgfsxpis0lcm7b20j6-python3.6-BoltzTraP2-18.9.1/bin
patching script interpreter paths in /nix/store/f1qlk4zx1flimgwgfsxpis0lcm7b20j6-python3.6-BoltzTraP2-18.9.1
checking for references to /build in /nix/store/f1qlk4zx1flimgwgfsxpis0lcm7b20j6-python3.6-BoltzTraP2-18.9.1...
wrapping `/nix/store/f1qlk4zx1flimgwgfsxpis0lcm7b20j6-python3.6-BoltzTraP2-18.9.1/bin/btp2'...
/nix/store/f1qlk4zx1flimgwgfsxpis0lcm7b20j6-python3.6-BoltzTraP2-18.9.1

Ready for merge


Ring definition approaches

Hi!
I've read in the Arend tutorial that you solve the "diamond problem" for implementing ring structure by copying structure definitions:
Tutorial: https://arend-lang.github.io/documentation/tutorial/PartI/records
Ring definition: https://github.com/JetBrains/arend-lib/blob/master/src/Algebra/Ring.ard
Root of copied classes: https://github.com/JetBrains/arend-lib/blob/master/src/Algebra/Pointed.ard
My questions are:
Why was this approach choosen? What are pros/conses in comparision to other solutions?
In particular, I'm curious what do you think about Agda standard library's approach.
I very much like the approach that Agda's standard library uses:
Split classes into structure definitions (where 0/1 and +/* are class parameters) and structure bundles (where 0/1 and +/* are class fields).
Structure definition (IsRing): https://github.com/agda/agda-stdlib/blob/master/src/Algebra/Structures.agda#L432
Bundle definition (Ring, which uses IsRing internally): https://github.com/agda/agda-stdlib/blob/master/src/Algebra/Bundles.agda#L623
Regards,
Wojciech

Right now, Arend classes only allow one classification field, while Agda seems to support no matter how many.

I see, thanks for answering!
Still, what are advantages and disadvantages of \extending two copied hierarchies instead of:

making the Ring \extend only the BaseSet,
and using class fields to store the abelian group and the monoid?

This way the abelian group and the monoid could share a single hierarchy.
If I'm unclear, this code might present my intentions better:
https://gist.github.com/WojciechKarpiel/e9d60b268ee5dc39d314fb2ecd59a64e

If we put the group and monoid structures to fields, then we need to add another fields (or functions) with names * and + that evalute to operations we need. The problem is that they will be evaluated during normalization and will be printed not in a nice way.

Btw, this is not a good place to ask questions. Try something from this list https://github.com/JetBrains/Arend#community next time.


autocompletes based on student id as well

This branch is dependent on the branch with database migration of student id and email

I think this part needs some work.

It would be good to get the seed data to have randomly-generated 10-digit numbers for ids for students.
I don't think LIKE works for integers in the same way as strings.
We should show both name and student number in the view in the autocomplete box.


when is the forge version?

this mod is for fabric, but its really just a single SpongePowered mixin. Basic modding knowledge should be well more than enough to port this to forge.


[website] fix SDK docs link

Motivation
Fix links
Have you read the Contributing Guidelines on pull requests?
YES
Test Plan
Manual

/land

/land


View gets stuck

Describe the bug
The view gets stuck on the app icon if I segue to any other UINavigationViewController then use an unwind segue to get back.
To Reproduce

Load into the CircleBarController.
Segue to a UINavigationViewController.
Unwind back.
Switch tabs.

See the behavior / bug here:
https://youtu.be/pMLhlNLp9pI
See how it is caused here: (Note I segue to the Messages tabbarview controller)
https://youtu.be/W9nSDG_fVLk

Basically, it works. Then you segue. Then you unwind. And it gets stuck

Clearer video of how it is caused here: https://youtu.be/jdwUzHPFNbQ

@joshwolff1 , I updated the library

Thank you!


p11-kit: build with meson

Description of changes
replaces https://github.com/NixOS/nixpkgs/pull/73341, fixes https://github.com/NixOS/nixpkgs/pull/244111#issuecomment-1643362450

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Checked build output, seems ok. Not sure about the now dropped localstatedir flag.

The localstatedir flags seems relevant, but not sure how it's configured in meson (don't have time to check now)


Why is this not added to Microsoft Learn?

Please add this as a page in Microsoft Learn to be more authoritative.

Hi @subashsivaji, there is already an MS Learn article on running the SHIR in a container. However this sample is specifically for running the container in an App Service. Does the existing doco cover your request?


Example in nextjs?

Is it possible to get an indication of how/if you would use this with nextjs - ideally with SSR.
Love your work team

I am going to close this issue:

There is no immediately actionable item here.
We have decided to explore Remix right now which fits this request.

Reopen if you feel otherwise.


Dashboard Token Listing: ARSALANGx

Discord Handle of Submitter: arsalan200900
Token Symbol: ARSALANGx
Network: Base
Token Address: 0xE858fC86dF9895Dbeb823E01e9DadA6D46d444Bb
Network Explorer Link: https://basescan.org/token/0xe858fc86df9895dbeb823e01e9dada6d46d444bb
Is a Super Token? true
Address of Underlying Token:  0xa26491f730a5338d2e5941d4cc7ee32d453294ab
SVG Logo Link: https://drive.google.com/file/d/1IC7T2ISOW4iRe78mR3ZMiaCK9SOe3j3S/view?usp=drive_link
Coingecko or Hardcoded Price?: Hardcoded
Coingecko ID:
Harcoded Price (if Coingecko ID is unavailable): 0.026
Token HEX Color: #76b5c5
Info on Listing: This is a token based on the Moxie protocol, called the Fan Token. I intend to stream this token to players in the "MoxieFlow" project
warpcast : https://warpcast.com/arsalang75523
x : https://x.com/ArsalanG75523
stack.so : https://www.stack.so/leaderboard/leaderboard-40a3-78225-6597
Please close only after token has been added to resolver!

Handled here: https://github.com/superfluid-finance/tokenlist/pull/70

ok thank you! listed now ?

Yes, check the Superfluid Explorer or the Superfluid Dashbpard.

ok thanks!

Hello! I wanted to activate Frame and wrap the token, but it’s not in the token list. Do you know what the issue might be?

It should be available since version 5.15.0: https://www.npmjs.com/package/@superfluid-finance/tokenlist?activeTab=versions
Not sure what you tried to show in the upload but it didn't seem to finish.

yes i find it ! thank you!


You should use Promise.all if you're gonna have multiple requests going at once.


offsetcache.h file not found

Describe the bug
I clone the project to local, and run the Undecimus.xcodeproj with xcode, a error was occurred : 'offsetcache.h' file not found.
My iPhone is : iPhone 6s plus

Same problem here

Try recursive clone.
Dupe of #939 ?

Oops.  Answered it myself on another thread but forgot to post the answer here too

Not working for me :(. Would someone be able to upload and post the file on their own?
Edit: While git submodule update doesn't work, recloning the repo with git clone --recursive does work 🤷🏽♀


How to prevent candle bars from overlapping?

Hey, when zooming out the candle bars start overlapping each other. How can I prevent this?
Right now:

What I want:

https://poloniex.com/exchange#btc_eth
Maybe it's an issue with the width? Thank you!

Set a lower widthRatio prop on CandlestickSeries.
I have it on 0.6 and its working out nicely.

Hello guys any one was successfully able to convert a stock array like a Bitfinex api
https://api.bitfinex.com/v2/candles/trade:1m:tBTCUSD/hist
into Data that could be used with this chart , i have been trying for days with out sucess

Thanks, @mxs that improved the situation, but still on big zoom out the candle bars continue overlapping. Maybe a different approach is needed here

you could go even lower, 0.5, the problem will still be there, but hard to notice.
The root cause is that, the width of each candle is determined by the width of the chart and the number of candles in the viewport. But we also do a Math.round of the width, so it will certainly overlap when zoomed out.
The reason of Math.round is to avoid blurred edges, canvas (and svg) show up washed edges when on decimal values. So it is a trade off between washed edges all the time or slight overlap when zoomed out


Add filtering by OS and Workload profile to VM Templates list

📝 Description
Add filtering by OS and Workload profile column to VM templates list.
Rename the existing Boot source availability column name to shorter Boot source, according to the design updates.
🎥 Demo
Filtering by OS, Boot source availability renamed to Boot source:

Make new Workload profile column sortable: first Desktop, then High performance, then Server (when ascending order)

@glekner @avivtur @metalice @pcbailey @yzamir @vojtechszocs please review

/lgtm

/lgtm


Fix logging

Description
Remove slf4j implementation from modules and include logging in sample module

Codecov Report

Merging #324 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #324   +/-   ##
=========================================
  Coverage     51.28%   51.28%
  Complexity      272      272
=========================================
  Files            99       99
  Lines          1248     1248
  Branches         50       50
=========================================
  Hits            640      640
  Misses          577      577
  Partials         31       31

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ed2e89f...7015267. Read the comment docs.


Add missing failure_bican to github workflow

Fixes the error in https://github.com/2i2c-org/infrastructure/actions/runs/8527031771/job/23357757638


Question: How to work with nested configurations - binding?

Given the following config:
config:
  http:
    interfaces:
      - host: "test"
        port: 6666
      - host: "test1"
        port: 1234

and the corresponding config definition:
interface Config {
    Http http();
    interface Http {
        List<Interface> interfaces();
        interface Interface {
            String host();
            Integer();
        }
    }
}

How do I bind the Config during runtime,
configurationProvider.bind("config", Config.class);
does not seem to work. Is the only option to use configurationProvider.getProperty in this case?

Hi, I am also facing the same issue, that's why we have decided to keep simple config file without any nesting., but also want the solution for this issue

Hey @siyb and @vinaypatil18. I'm already working on adding this feature. You can track it here: https://github.com/cfg4j/cfg4j/issues/166


Pod stuck after ETIMEDOUT error

We have discovered multiple times that the external-secrets pod got stuck. The last error messages where these:
{"level":50,"time":1587377647230,"pid":18,"hostname":"kube-external-secrets-kubernetes-external-secrets-d8489bbcmx892","errno":"ETIMEDOUT","code":"ETIMEDOUT","syscall":"connect","address":"<IP_ADDRESS>","port":443,"msg":"failure while polling the secret example-mod-example/example-mod-app-laravel","stack":"Error: connect ETIMEDOUT <IP_ADDRESS>:443\n at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1128:14)","type":"Error","v":1}
{"level":50,"time":1587377647228,"pid":18,"hostname":"kube-external-secrets-kubernetes-external-secrets-d8489bbcmx892","errno":"ETIMEDOUT","code":"ETIMEDOUT","syscall":"connect","address":"<IP_ADDRESS>","port":443,"msg":"failure while polling the secret example-mod-selfservice/example-mod-selfservice-laravel","stack":"Error: connect ETIMEDOUT <IP_ADDRESS>:443\n at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1128:14)","type":"Error","v":1}
{"level":50,"time":1587367885196,"pid":18,"hostname":"kube-external-secrets-kubernetes-external-secrets-d8489bbcmx892","message":null,"code":"ParameterNotFound","time":"2020-04-20T07:31:25.195Z","requestId":"1b430ddc-458a-44f7-b6d7-d08b1460dac5","statusCode":400,"retryable":false,"retryDelay":78.85242507033838,"msg":"failure while polling the secret example-mod-example/example-mod-example-laravel","stack":"ParameterNotFound: null\n at Request.extractError (/app/node_modules/aws-sdk/lib/protocol/json.js:51:27)\n at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:106:20)\n at Request.emit (/app/node_modules/aws-sdk/lib/sequential_executor.js:78:10)\n at Request.emit (/app/node_modules/aws-sdk/lib/request.js:683:14)\n at Request.transition (/app/node_modules/aws-sdk/lib/request.js:22:10)\n at AcceptorStateMachine.runTo (/app/node_modules/aws-sdk/lib/state_machine.js:14:12)\n at /app/node_modules/aws-sdk/lib/state_machine.js:26:10\n at Request.<anonymous> (/app/node_modules/aws-sdk/li/request.js:38:9)\n at Request.<anonymous> (/app/node_modules/aws-sdk/lib/request.js:685:12)\n at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:116:18)","type":"Error","v":1}

It would be better to just crash the process in this case. This would allow k8s to restart the pod.
In this example I just deleted the pod and the secrets were updating again...

Can somebody address this quickly as it blocks our deployments..

@VinothChinnadurai PR's welcome :)


What does the Floor mean?

What is the meaning of the Floor? If it refers to the upper price for the NFT, why can I sell the minted NFT for 5 RING?
For the second question, the Listed/Total shows there are 218 NFTs. Is there a way to display them all instead of just the listed ones?

Floor means the lowest price on sell, this has been fixed.
The second question is an option, however for trading market usually availble for sale are displayed.


Prevent fatal when not an object

Should resolve #256

@paquettg please merge this 🙏

This repo is no longer maintained. I suggest moving to another one. See the comments in https://github.com/paquettg/php-html-parser/pull/289


fix(tensorrt): add workaround for cudnn installation on arm arch

Description
address this issue comment.

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[x] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

Thank you!
Please let me change this to a bit more simple way. :pray: I'll push some code.

Thank you!
Please let me change this to a bit more simple way. :pray: I'll push some code.

Addressed in #219.
@wep21 Could I close this?


Multiple editors update

Hello, I have multiple editors in one page. How can I update their content with data variable?
if I do
    this.on('editor-update', this.editorUpdate)

I do not know which editor was updated. Can I name them somehow?

I already solved this with creating separated  component for every editor.


Add Display PCD8544 support

PCD8544

[x] Find a implementation usign SPI
[x] Addapt the SPI implementation - https://github.com/PedalPi/Physical/issues/1#issuecomment-249417892 - https://gpiozero.readthedocs.io/en/latest/api_spi.html
[x] Font support
[ ] Image support
[ ] Multiple displays
[ ] Use WiringPi to bitbang - http://binerry.de/post/25787954149/pcd8544-library-for-raspberry-pi
References

https://github.com/XavierBerger/pcd8544
https://github.com/PedalController/Display

Try with: https://github.com/notro/pydrm


Serveuser1

Hi Vamshi ,
Yes I used system to create user session,
From: vamshikega @.>
Sent: Monday, December 6, 2021 11:17 AM
To: dhawalbhakta-ugam/ugamdemo @.>
Cc: Dhawal Bhakta @.>; Author @.>
Subject: Re: [dhawalbhakta-ugam/ugamdemo] Serveuser1 (PR #5)
@vamshikega commented on this pull request.
Have you used system to user to create a user session to ececute your query ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/dhawalbhakta-ugam/ugamdemo/pull/5#pullrequestreview-823555335, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AUMI5XZBIBPJK6TQKAKUO23UPRE5VANCNFSM5JEHK2JA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
---------------------------------------------------------------------------------------Disclaimer----------------------------------------------------------------------------------------------
****Views and opinions expressed in this e-mail belong to  their author and do not necessarily represent views and opinions  of Ugam.
Our employees are obliged not to make any defamatory statement or infringe any legal right.
Therefore, Ugam does not accept any responsibility or liability for such statements. The content of this email is confidential and intended for the recipient specified in message only. It is strictly forbidden to share any part of this message with any third party, without a written consent of the sender.
If you have received this message by mistake, please reply to this message and follow with its deletion, so that we can ensure such a mistake does not occur in the future.
Warning: Sufficient measures have been taken to scan any presence of viruses however the recipient should check this email and any attachments for the presence of viruses as full security of the email cannot be ensured despite our best efforts.
Therefore, Ugam accepts no liability for any damage inflicted by viewing the content of this email.. ****
Please do not print this email unless it is necessary. Every unprinted email helps the environment.


SSH's iframe not loading

I seem to be having problems getting the iframe for the remote SSH connection to work, or even load with the page. Everything else works, its just the remote SSH that seems to be failing
This is what it currently looks like:

And this are the console logs for the browser when i click connect:

It would seem like the problem is that i am running admin.domain on HTTP and not HTTPS, and i am not quite sure how to switch to HTTPS.
I followed the troubleshooting on issue #3
But it doesnt seem to be the same issue as at least his iframe loaded the error message.
Thanks again.

Update:
Alrigth by using the insecure flag for process.env.HOST_MODE === and trying to recreate the link in an other browser window like this:
http://remote.NOTREALPAGE.COM:10000/?service=ssh&container=host&uuid=c160ea6&apiKey=
I am able to get to this

and here the logs of openbalena-admin_remote_1 container

But nothing much else.


Is it possible to append plaintext to a note using python API?

Thank you for your work on this project!
I could not find any reference to adding text to an existing note, is this possible?
Thx!

Yes you can by setting the body of the note to the new value. However, there are some important caveats. Through the Python API, Note.body is an HTML representation of the body and Note.plaintext is a plaintext representation. When you set the body, you must set it as HTML to preserve any formatting or line breaks. However, you will lose formatting specific to Notes (e.g. todo lists are converted to HTML bulleted lists, etc.) You will also lose attachments and you have would to re-apply them. This is due to severe limitations of the Notes AppleScript API which is used under the hood by macnotesapp.
For example:
"""Demonstrate appending to a note"""

import macnotesapp

notesapp = macnotesapp.NotesApp()
note = notesapp.make_note("Test Note", body="
This is a test note
")
note.body = note.body + "
This is a second paragraph
"

Here's a note that was created in Notes:

And after appending, notice formatting is lost and the attachment is gone:

I wish Apple provided a more robust interface but this is the best I can do given the currently hamstrung API.


runtime: Interferes with Windows timer frequency

What version of Go are you using (go version)?
go version go1.11.1 windows/amd64
Does this issue reproduce with the latest release?
Try to set a high frequency timer
What operating system and processor architecture are you using (go env)?
windows amd64
What did you do?
Set the OS to a high frequency tick using NtSetTimerResolution
What did you expect to see?
NtQueryTimerResolution should return 1ms
What did you see instead?
NtQueryTimerResolution returned 15ms
This used to work but was broken by the following commit:
https://github.com/golang/go/commit/11eaf428867417b9d5fab4deadd0ef03c9fd9773
This "reduces the timer resolution when the Go process is entirely idle" however this is a system wide setting so golang cannot just assume another app on the machine doesn't require a high resolution timer to work correctly, hence setting it back to 15ms isn't safe.

The following code demonstrates the issue:
package main

import (
	"log"
	"syscall"
	"time"
	"unsafe"
)

var (
	ntdll = syscall.NewLazyDLL("ntdll.dll")

	procNtQueryTimerResolution = ntdll.NewProc("NtQueryTimerResolution")
	procNtSetTimerResolution   = ntdll.NewProc("NtSetTimerResolution")
)

// QueryTimerResolution gets the min, max and current timer resolution.
// minRes is highest possible delay (in 100-ns units) between timer events.
// maxRes is lowest possible delay (in 100-ns units) between timer events.
// curRes is the current timer resolution, in 100-ns units.
func QueryTimerResolution() (minRes, maxRes, curRes uint32, err error) {
	ret, _, err := procNtQueryTimerResolution.Call(
		uintptr(unsafe.Pointer(&minRes)),
		uintptr(unsafe.Pointer(&maxRes)),
		uintptr(unsafe.Pointer(&curRes)),
	)

	if ret == 0 {
		err = nil
	}

	return
}

// SetTimerResolution sets the timer resolution (to the nearest allowed value).
// curRes is the actual timer resolution that was set, in 100-ns units.
func SetTimerResolution(newRes uint32) (curRes uint32, err error) {
	var setRes uint32

	setRes = 1
	ret, _, err := procNtSetTimerResolution.Call(
		uintptr(newRes),
		uintptr(setRes),
		uintptr(unsafe.Pointer(&curRes)),
	)

	if ret == 0 {
		err = nil
	}

	return
}

func main() {
	if min, max, cur, err := QueryTimerResolution(); err != nil {
		log.Fatal(err)
	} else {
		log.Println("min:", min, ", max:", max, ", cur:", cur)
	}

	if cur, err := SetTimerResolution(1000); err != nil {
		log.Fatal(err)
	} else {
		log.Println("cur:", cur)
	}

	for range time.Tick(time.Second * 10) {
		if min, max, cur, err := QueryTimerResolution(); err != nil {
			log.Fatal(err)
		} else {
			log.Println("min:", min, ", max:", max, ", cur:", cur)
		}
	}
}

If you run this code on a Windows host with a default timer resolution of 15ms and a min resolution of 0.5ms you should get a current resolution of 0.5ms however with osRelax in play you will see a mixture of 0.5ms and 15ms.
If you disable osRelax e.g. return 0 always then you will get the correct behaviour of always 0.5ms for example:
osRelax Enabled
2018/10/17 21:05:51 min: 156250 , max: 5000 , cur: 9765
2018/10/17 21:05:51 cur: 4882
2018/10/17 21:05:52 min: 156250 , max: 5000 , cur: 156250
2018/10/17 21:05:53 min: 156250 , max: 5000 , cur: 156250
2018/10/17 21:05:54 min: 156250 , max: 5000 , cur: 156250
2018/10/17 21:05:55 min: 156250 , max: 5000 , cur: 156250
2018/10/17 21:05:56 min: 156250 , max: 5000 , cur: 156250

osRelax Disabled
2018/10/17 21:08:12 min: 156250 , max: 5000 , cur: 156250
2018/10/17 21:08:12 cur: 4882
2018/10/17 21:08:13 min: 156250 , max: 5000 , cur: 4882
2018/10/17 21:08:14 min: 156250 , max: 5000 , cur: 4882
2018/10/17 21:08:15 min: 156250 , max: 5000 , cur: 4882
2018/10/17 21:08:16 min: 156250 , max: 5000 , cur: 4882
2018/10/17 21:08:17 min: 156250 , max: 5000 , cur: 4882

Oh, now I understand better what you meant in your comment on that commit.
The problem isn't that the timer resolution is a system-wide setting. What Go does with the timer resolution won't affect other processes on the system that want a high-resolution timer. The problem is that the user Go code wants a high-resolution timer, and this is a per-process setting.
Anything that's per-process like this is going to be problematic (POSIX signals are another great example of this, which is why we abstract them away in Go). There's nothing we can do if the program reaches directly for Windows APIs, especially undocumented ones like NtSetTimerResolution. We could potentially expose TimeBeginPeriod and TimeEndPeriod from the syscall package and make those cooperate with the runtime, though then we're just inflicting the badness of this API on users.
Ideally we'd make the runtime itself not depend on high-resolution timers. I'm not entirely sure what that would take, and even then this gets in the way of portability because people expect to be able to write Go code that, say, sleeps for 1 millisecond, and then that code doesn't work as expected on Windows.
cc @alexbrainman for any insights.

I've been doing some more digging and it turns out that a second call to timeBeginPeriod(1) actually allows  NtSetTimerResolution to operate correctly.
What is even more odd is there is a strange interaction between the two functions:

timeBeginPeriod(1) + NtSetTimerResolution(5000) results in a timer resolution of 0.5ms
timeBeginPeriod(2) + NtSetTimerResolution(5000) results in a timer resolution of 2ms
timeBeginPeriod(1) on its own results in a timer resolution of 1ms

Just to be clear both these functions have a system global effect not a per process one:
https://docs.microsoft.com/en-us/windows/desktop/api/timeapi/nf-timeapi-timebeginperiod

This function affects a global Windows setting. Windows uses the lowest value (that is, highest resolution) requested by any process.

The strange thing is there is an interaction between timeBeginPeriod / timeEndPeriod and NtSetTimerResolution if they are both called from within the same process.

What did you expect to see?
NtQueryTimerResolution should return 1ms
What did you see instead?
NtQueryTimerResolution returned 15ms

Your goal is to have highres timer. But some people would like their laptop battery last longer (#8687). Why should Go runtime side with your goal? https://github.com/golang/go/commit/11eaf428867417b9d5fab4deadd0ef03c9fd9773 is trying to please both sides - when runtime has work to do, highres timer is on, when runtime is idle highres timer is off. I think https://github.com/golang/go/commit/11eaf428867417b9d5fab4deadd0ef03c9fd9773 is doing best job possible in this situation. If you need something different, you should be able to adjust runtime as you pleased.

cc @alexbrainman for any insights.

I am out of insights in this matter long time ago. :-) Sorry.
Alex

runtime package actually needs timeBeginPeriod itself. How do you propose handle that?
Alex

Here's the sort of thing I have in mind:

@stevenh thank you for explaining. You suggest we use undocumented NtQueryTimerResolution. How do you propose we make sure that your change does actually work. And not just on your computer and mine?
And thinking about your original issue. Why cannot you just call timeBeginPeriod ? From your Go program or from any program on your computer. That should have effect you want. No?
Alex

That does indeed workaround the issue, but the problem remains that the go runtime is making changes to the system that impact how users code works, without either documenting it or providing the option to prevent it from doing so.
The underlying issue that timeBeingPeriod and NtQueryTimerResolution don't play nice and that timeBeginPeriod isn't a exact replacement for NtQueryTimerResolution i.e. it lacks the ability to set sub 1ms frequency.
We have the workaround we need, but the question remaining is how do we prevent others from being bitten by the same issue as very hard to spot?

For the latter osRelax(false) could check the frequency already in use using NtGetTimerResolution and only call timeBeginPeriod if the frequency is not already high enough. Then on for osRelax(true) only call timeEndPeriod if it had made the corresponding call to timeBeginPeriod.

The problem with this is that, if user Go code is running and able to call NtSetTimerResolution, the runtime has already adjusted the timer frequency. The runtime will never see an adjusted timer resolution when calling osRelax(false).

You suggest we use undocumented NtQueryTimerResolution. How do you propose we make sure that your change does actually work. And not just on your computer and mine?

@alexbrainman, does Microsoft have a policy on undocumented APIs like this? My impression is that some are in pretty wide-spread use, which would seem to make them de facto standard.
Specifically, I'm wondering if we can provide a more abstract API from syscall that uses NtSetTimerResolution if it can or TimeBeginPeriod otherwise and interacts with the runtime's use appropriately.

While NtSetTimerResolution is undocumented its used a lot in the wild so, as you say is kind of a defacto standard. I've not found a Windows version yet which doesn't provide it, not to say that won't change in the future though.
While I can't prove it, it seems likely that timeBeginPeriod  and timeEndPeriod are actually built on top NtSetTimerResolution with per process reference accounting. I expect that NtSetTimerResolution is called with false when the reference hits zero on timeEndPeriod which would explain the behaviour we're seeing.
With regards to providing an syscall the problem with falling back to timeBeginPeriod is they aren't functionally equivalent when it comes to the maximum frequencies they support.

While I can't prove it, it seems likely that timeBeginPeriod and timeEndPeriod are actually built on top NtSetTimerResolution with per process reference accounting.

Surely NtSetTimerResolution also sets a per-process setting like Time{Begin,End}Period, not a system-wide setting? It would seem completely unusable if it were system-wide. If two processes use NtSetTimerResolution to set high resolution, and then one of them lowers its resolution, presumably the system continues to run at high resolution?

With regards to providing an syscall the problem with falling back to timeBeginPeriod is they aren't functionally equivalent when it comes to the maximum frequencies they support.

I understand that, but if NtSetTimerResolution isn't available and TimeBeginPeriod is the only API provided by the kernel, there's not much we can do but use TimeBeginPeriod.

While I can't prove it, it seems likely that timeBeginPeriod and timeEndPeriod are actually built on top NtSetTimerResolution with per process reference accounting.

Surely NtSetTimerResolution also sets a per-process setting like Time{Begin,End}Period, not a system-wide setting? It would seem completely unusable if it were system-wide. If two processes use NtSetTimerResolution to set high resolution, and then one of them lowers its resolution, presumably the system continues to run at high resolution?

They are both a system-wide setting, based on the highest resolution set by a process.
_ NtSetTimerResolution can be called to set timer resolutions by more than on application. To support a subsequent process setting a timer resolution without violating the resolution assumptions of a previous caller, NtSetTimerResolution never lowers the timer's resolution, only raises it. For example, if a process sets the resolution to 5 milliseconds, subsequent calls to set the resolution to between 5 and 10 millseconds will return a status code indicating success, but the timer will be left at 5 milliseconds.
NtSetTimerResolution also keeps track of whether a process has set the timer resolution in its process control block, so that when a call is made with Set equal to FALSE it can verify that the caller has previously requested a new resolution. Every time a new resolution is set a global counter is incremented, and every time it is reset the counter is decremented. When the counter becomes 0 on a reset call the timer is changed back to its default rate, otherwise no action is taken. Again, this preserves the timer resolution assumptions of all the applications that have requested high resolution timers by guaranteeing that the resolution will be at least as good as what they specified. _
Source: http://mirrors.arcadecontrols.com/www.sysinternals.com/Information/HighResolutionTimers.html

With regards to providing an syscall the problem with falling back to timeBeginPeriod is they aren't functionally equivalent when it comes to the maximum frequencies they support.

I understand that, but if NtSetTimerResolution isn't available and TimeBeginPeriod is the only API provided by the kernel, there's not much we can do but use TimeBeginPeriod.

Indeed its more around making it very clear to the user.

While NtSetTimerResolution is undocumented its used a lot in the wild so, as you say is kind of a defacto standard. I've not found a Windows version yet which doesn't provide it, not to say that won't change in the future though.

I agree. Microsoft will try to support broken programs that use API incorrectly or use undocumented API.
Alex

Any chance this will get addressed? It would be nice to at least have some easy way for specific Go programs to disable the dynamic raising of the timer interrupt frequency.
I work at Google and my workstation has several custom Go programs running on it at all times. This means that the timer interrupt frequency is essentially always raised. This means that it is impossible for me to test how the Chrome web browser behaves on a system running with the normal timer interrupt frequency. This is tracked by the Google internal bug b/133354039 and by the public Chromium bug crbug.com/927165.

people expect to be able to write Go code that, say, sleeps for 1 millisecond,
and then that code doesn't work as expected on Windows.

I would argue that on Windows that is not actually a reasonable expectation. Go needs to be portable, but it also needs to respect platform norms and expectations. Probably the only way to resolve these conflicting desires is to provide an API or environment variable to let programs specify whether they want the automatic raising of the timer interrupt frequency. I think it should default to off, but the default value isn't as important as creating such a method. Only then can my coworkers use that API to make the Go programs they put on my machine not raise the timer interrupt frequency, and then I can try to make Chromium more power efficient.

Is there any difference between this issue and #8687?  #8687 is marked as a release blocker for the 1.15 release.  Should we close this issue as a dup of that one?

@ianlancetaylor, they're certainly related. I think this issue has become more about providing an API to give users control over the timer resolution, while #8687 is about fixing the runtime to not require high timer resolution. It may be that we need to solve both together, though, so perhaps the issues should be folded together.

@randomascii recently blogged this change of timer behavior to Windows 10 in mid-2020:
https://randomascii.wordpress.com/2020/10/04/windows-timer-resolution-the-great-rule-change/

@randomascii recently blogged this change of timer behavior to Windows 10 in mid-2020:
https://randomascii.wordpress.com/2020/10/04/windows-timer-resolution-the-great-rule-change/


Second iteration on the server

Overview
We need to improve/mature the server codebase based on the information we already know from using it current client with current set of features

DONE


Adjust FEP protocol

Description
Until now we have provided a specific number of switches for running FEP (instantaneous switching) and conformations have been selected randomly from the provided pool of equilibrium samples. In this PR this will be changed:
There is still an option in the FEPProtocol to provide a specific nr_of_switches. If this option is chosen, the conformations will be selected randomly. If nr_of_switches is not provided, all equilibrium samples (reference_samples and/or target_samples) will be used for calculating \Delta U.
Todos

[x] adjust the switching procedure in neq.py
[x] add test
[x] adjust switching script for HiPen systems

Status

[x] Ready to go

This PR was created from a branch, which was not up to date. It will be closed and a new PR will be created


added form for profile

Current coverage is 83.25% (diff: 76.19%)

Merging #40 into master will decrease coverage by 5.51%

@@             master        #40   diff @@
==========================================
  Files            19         22     +3
  Lines           187        203    +16
  Methods           0          0
  Messages          0          0
  Branches          1          1
==========================================
+ Hits            166        169     +3
- Misses           21         34    +13
  Partials          0          0

Powered by Codecov. Last update 36c3da9...04d1eed


Update Tinkers' Tool Leveling for v.1.16.5?

Will there be an update for the new version of Tinkers Construct?

afaik there is no 1.16 port planned. however you are free to update it if you want.

Duplicate of #121.


User Interface

There needs to be a web browser based user interface for clients to be albe to input a file and get an output of the results. The user should be able to specify the input file (or files) and the destination for the output results.
Nice to have: Visualize the input, intermediate steps, and output in the UI. Perhaps this will be anothe issue downsteam.
This should also print out any relevant config issues to the screen (such as if Tesseract is not found, and what to do about it). -- Ideally there should be no need for an external dependency, as discussed in issue #4.

Addressed by PR #63.


bump build number

Fixing #20  where build had not been bumped.

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

@conda-forge-admin rerender


CupertinoColors: Add diagrams

fixes https://github.com/flutter/flutter/issues/72926
Assets: https://github.com/flutter/assets-for-api-docs/pull/183
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@guidezpl
https://github.com/flutter/assets-for-api-docs/pull/183 has merged, this PR, if approved, will close the


wallpaperboard | Wallpapers menu customization

@danimahardhika The previous versions of the wallpaperboard had a gridview displayed when you launched the app. Now in the 1.5.6 update there are different view options available such as categories and a list dropdown menu. Can we manipulate the order of the different views?

How can you change the view order of the Wallpapers section.
For an example. Can we display the 3 given aspects in a different order like:
Wallpapers Grid view | Wallpapers Categories | Wallpapers Dropdown Menu

@besidesordinary Let me explain first. With latest release there are 3 tabs, Latest Wallpapers, Wallpapers, and Categories.
Latest Wallpapers should be shown first, why? Because it will automatically check for new wallpapers and put in there. Each time you open the app, you will notice left tab (Latest wallpapers) will shown loading progress. If you swipe to left, navigate to wallpapers tab, you will also notice wallpapers tab already loaded, no loading progress.

@danimahardhika Yes I understand the functionality of each tab, thank you for taking time to explain them even more. I am just curious as to know how the entire menu has been created, more precisely which part of the code is allocated for each of them, Latest Wallpapers, Wallpapers and Categories. Just want to learn how to do it myself if I were to use that feature of wallpaperboard for another app.


Auto-generate code documentation

We should auto-generate code documentation for:

The public API
Plugins, along with a descriptor of the labels added by the plugin

Duplicate of #523.


Switching between global/local rotation (for Viro3DObject)

Is there a way to switch between global and local rotation for objects?
We get rotation values from the server that considers each axis to always point in the same direction world wise
The rotation values given to the Viro3DObjects seem to get used as local rotation so applying our rotation values results in different angles when the rotation contains more than 1 axis
A bit OT: having support for Quaternions would be nice :)

Hey @Sejadis, thanks for reaching out. We actually do support Quaternions - you can view the documentation on them here.
Saying that you should be able to grab the world transform of a given node, and then to extract the Quaternion rotation from that.
Hope that helps! Do let us know if you are having troubles with this!

Hey @dthian thanks for the answer.
It seems this is all ViroCore which i understand is android only?
Im new to react so i may mix some things up but i would think that you stay in (Viro)React if you want both iOS and android? Or is it common to mix in ViroCore?
Is any of that available in ViroReact?
I also posted this question in slack as that probably is the more appropriate place

Apologies, i was thinking about ViroCore instead of ViroReact. No, they are not interchangeable at the javascript layer.
When you mention "Switch between global and local", did you mean convert? You should be able to grab the world transform through async calls, and local transforms through props for most Viro controls. The only caveat here is in dynamic situations where the object is constantly moved by the renderer via animations, physics, etc.
From the above, it sounds like the rotation that you are providing to set with is a global one, since "rotation values from the server considers each axis to always point in the same direction world wise".  Since the rotation props set on a Viro3DObject represents a local rotation, you can't really just apply that same rotation values directly without defects, especially if any parent node of the 3D object is rotated (it probably wouldn't work). Unfortunately, there isn't a way currently to set the world transform directly on a ViroNode, only local.
Having said that, I wonder if a mitigation is possible: to instead find the desired local rotation, given the current world rotation of that ViroObject3D parent's node, and your desired world rotation. That is:
desiredLocalRotation = parentWorldRotation - desiredWorldRotation;
So for example:
desiredWorldRot = [0, 45, 45]
parentWorldRot = [0, 10, 0]
localTransformOfViro3DObject = [0, 35, 45]
Where you can get currentWorld Rotation through getTransformAsync().
Where parentWorldRot is the rotation (with getTransformAsync) of the parent node of the Viro3DObject.
This should ideally realign your Viro3DObject towards the world rotation provided by your servers, by setting a properly calculated local rotation on your 3D object.
Is this something that you have tried? If you are having problems with the above, please let us know, and provide the full code, and as well as input rotation values from your servers.
Hope that helps!

Having said that as well, the above mitigation is kind of gnarly. While the mitigation is implemented, in the mean time we can also implement a feature that makes it easier to convert to and from world transforms to local transforms. For example:
var worldTrans = nodeRef.getAsync(localTransform);
How does this sound?


Cannot connect to browser: TypeError: Cannot read property 'protocol' of undefined

I apologise if I am doing something daft..
I have a working scraper setup using CDP and Chrome Canary Headless on windows via a NodeJS script running from another Non-Canary Chrome browser with Cors disabled. Fine.
Now, I have packaged that same NodeJS script into a command-line application expecting it to function just the same, but I get the error in the title.
Am I doing something fundamentally wrong in trying to package it into a nodeJS command line script or is there likely just a daft error?
Thanks in advance.

Can you show me the stack trace?

Sure, though I am having difficulty getting Node to output source-mapped errors on the commandline so it's not very helpful:
$ alpha-scraper
getPageContents: Cannot connect to browser: TypeError: Cannot read property 'protocol' of undefined
    at Object.s.request (D:\Projects\Homestead\projectalphascraper\dist\build.js:33238:31761)
    at Object.s.get (D:\Projects\Homestead\projectalphascraper\dist\build.js:33239:9)
    at n (D:\Projects\Homestead\projectalphascraper\dist\build.js:33240:19736)
    at r (D:\Projects\Homestead\projectalphascraper\dist\build.js:33238:6187)
    at D:\Projects\Homestead\projectalphascraper\dist\build.js:33238:8795
    at D:\Projects\Homestead\projectalphascraper\dist\build.js:33238:6340
    at Object.List (D:\Projects\Homestead\projectalphascraper\dist\build.js:33238:6314)
    at D:\Projects\Homestead\projectalphascraper\dist\build.js:33247:18006
    at t.c (D:\Projects\Homestead\projectalphascraper\dist\build.js:33247:17750)
    at t.s (D:\Projects\Homestead\projectalphascraper\dist\build.js:33247:17374)

I get the same error regardless of Canary headless running or not, so it's not getting that far. Malformed http header would seem to be the culprit? The code works in the browser however.

AFAICT your setup should work, but since it doesn't, I have to understand where the error happens, can't you just run the non-minified version?
The only thing that's different in browser usage is that you provide a criRequest function, with Node.js instead the connection to the HTTP endpoint happens directly, try double-checking your options object.

I will see if I can generate some more useful errors.
I need to run the built version as webpack is transpiling some ES6 stuff that Node can't handle yet but perhaps I can prettify the output at least.

The error is occuring on this line of chrome-remote-interface.js
var o = e.location.protocol.search(/^https?:$/) === -1 ? "http:" : "", s = t.protocol || o, p = t.hostname || t.host, c = t.port, d = t.path || "/";
Although I can't find which file that is being compiled from.
I triple checked that I am not getting the same error in the browser with the exact same project and can confirm it runs in Chrome.

Hm, but are you using chrome-remote-interface.js with Node.js? You aren't supposed to, that's for browser usage only.

I simply did
npm install chrome-remote-interface
and then
import CDP from 'chrome-remote-interface'
I am then wrapping the entire build.js file in a node command using a shebang of
#!/usr/bin/env node
I guess what I am trying to do is incorrect and not possible? If so I will just run the scraper from the browser and have done with it.

I'm afraid you can't run a bundle which has been web-packed for the browser with Node.js because it's using objects that don't exist in a Node.js context, e.g., location.
See what happens if I try to list the available targets using the chrome-remote-interface.js file which comes with this module:
$ node
> const CDP = require('./chrome-remote-interface.js')
undefined
> CDP.List(function () { console.log(arguments); })
TypeError: Cannot read property 'protocol' of undefined
    at Object.s.request (/tmp/node_modules/chrome-remote-interface/chrome-remote-interface.js:1:31755)
    at Object.s.get (/tmp/node_modules/chrome-remote-interface/chrome-remote-interface.js:2:9)
    at n (/tmp/node_modules/chrome-remote-interface/chrome-remote-interface.js:3:19736)
    at r (/tmp/node_modules/chrome-remote-interface/chrome-remote-interface.js:1:6181)
    at /tmp/node_modules/chrome-remote-interface/chrome-remote-interface.js:1:8789
    at Function.<anonymous> (/tmp/node_modules/chrome-remote-interface/chrome-remote-interface.js:1:6373)
    at repl:1:5
    at ContextifyScript.Script.runInThisContext (vm.js:44:33)
    at REPLServer.defaultEval (repl.js:239:29)
    at bound (domain.js:301:14)

So if you already have a JavaScript application that successfully uses chrome-remote-interface and that does not use any other browser-specific feature then you can simply import CDP from 'chrome-remote-interface' as you do but then do not web-pack the application.
If you need some JavaScript features that are not yet part of the Node.js runtime (e.g., import) then just use Babel.
Hope this helps.

Thank you for your help.
I have it working now by removing webpack from the equation and just using babel-cli.

Great, you're welcome!

Hi! I have the same problem inside of react, i just copy and pasted your code corcerning print to pdf but i get the same error you've described here, how can i fix that?


IC-2170 set dummy values in performance report to null

What does this pull request do?
Remove dummy values from performance reporting.
What is the intent behind these changes?
The 'dummy' values are causes issues currently, not need to be replace by null/empty values.

📝 My concern was that we won't be able to distinguish between genuinely missing entries and placeholder entries, but this will be handled by communication.


Cluster in an undefined state 2.0

Hi,
my cluster is in a weird state and not reachable anymore.
What has been done:

Setup
Creation of an app
Deployment of some env-vars to this app
Deployment of a PHP application
Added a SSL certificate to the standard route of the application
Added a second route to the application with a SSL certificate
Leaving it alone for like 1.5 weeks

Symptoms:

The application is not reachable
The dashboard is not reachable
An attempt to get the status results in this:

flynn run curl http://status-web.discoverd

Get https://controller.flynn.smfhq.com/apps/beobachtungsboegendev/release: dial tcp x.x.x.x:443: connection refused

An attempt to update the cluster results in this (note that it didn't get the latest version from today according to https://dl.flynn.io/ec2/images.json ):

INFO[01-14|10:58:45] initializing TUF client
INFO[01-14|10:58:45] updating TUF data
INFO[01-14|10:58:47] getting configured release channel
INFO[01-14|10:58:47] determining latest version of stable release channel
INFO[01-14|10:58:47] latest stable version is v20151223.0
INFO[01-14|10:58:47] downloading v20151223.0 flynn-host binary
INFO[01-14|10:58:47] executing latest flynn-host binary
INFO[01-14|10:58:47] initializing TUF client
INFO[01-14|10:58:47] reading TUF database
INFO[01-14|10:58:47] getting host list
EROR[01-14|10:58:47] error getting host list                  err="object_not_found: service not found"
10:58:47.883781 host.go:136: object_not_found: service not found

When collecting the debug info, I got this line in between:

EROR[01-14|11:05:28] error getting job logs, falling back to on-disk logs err="could not list hosts: object_not_found: service not found"

And here is the gist: https://gist.github.com/0999d3c54f7dd01951d7

It looks like the discoverd consensus cluster has failed, logs from the other nodes would be useful.

The second node gave this as well:

EROR[01-14|11:41:38] error getting job logs, falling back to on-disk logs err="could not list hosts: object_not_found: service not found"

Resulting in this log: https://gist.github.com/519e1005a46479b38215
The third node gave this:

EROR[01-14|11:42:56] error getting job logs, falling back to on-disk logs err="could not list hosts: Get http://<IP_ADDRESS>:1111/services/flynn-host/instances: dial tcp <IP_ADDRESS>:1111: connection refused"

Resulting in this log: https://gist.github.com/e18c73f74e707578d84a

Can you also gist /var/log/upstart/flynn-host.log from all three nodes as well as /var/log/flynn/79091488-6ad3-43bc-a83d-ef97ca05a344.log from the third node? Thanks!

Sure.
On the first node, the file doesn't exist. But here is the flynn-host.log.1.gz
https://gist.github.com/philiplb/228f2211bf3cb7d69781
Same on the second node:
https://gist.github.com/philiplb/52222ce3a3d4693e9664
Same on the third node:
https://gist.github.com/philiplb/9431cfe5d0e1b726c18c
And the /var/log/flynn/79091488-6ad3-43bc-a83d-ef97ca05a344.log from the third node:
https://www.philiplb.de/79091488-6ad3-43bc-a83d-ef97ca05a344.log

Turns out that the storage cluster of our VM provider had some issues which might have caused this. The file systems were suddenly read only. So closing it.


GDAL warning when running script

Warning 3: Cannot find header.dxf (GDAL_DATA is not defined)
Cannot find header.dxf (GDAL_DATA is not defined)

probably stems from shape file conversion?

could you provide a minimal example that reproduces this warning?

shape_to_wkt('stavis_odense/POLYGON.shp')
stavis_odense.zip

I am not able to reproduce this warning. Are you certain this is not caused to something specific to your python installation?
Could you try creating a fresh python venv and only install cdsetool? cdsetool does not depend on GDAL, so having a GDAL error originating from cdsetool would be highly unusual.

I am not able to reproduce this warning. However, I can suggest the following:
1- As @pedep said, create a freshly new environment only with cdsetool;
2- If you need to use Geopandas and GDAL together in the same environment try this (works for me):
conda create -n CDSETool-env python=3.9
conda activate CDSETool-env
conda install -c conda-forge gdal=3.5.0
pip install geopandas
pip install cdsetool

Sometimes Geopandas and GDAL are not good friends in the same environment and you need to try different installation options...
3- Share your environment.

That resolved it. It appears that GDAL was the reason here.


Add bulk delete endpoints

Split off from #101.
To minimize actual functionality in the reset script (bin/reset.js), we should have bulk deletion endpoints, or at least service methods, implemented. Currently, this is only the case for /voc/concepts.
If we actually add endpoints, this could be used in the admin interface (#39).

I think it's enough to be able to purge:

all concepts in a vocabulary (implemented as DELETE /voc/concepts)
all mappings in a concordance (TODO extend DELETE /concepts)
all annotations by a creator user (TODO: DELETE /annotations)


Remove the icon in phone number Enhance the UI

Title
I want to remove the icon present in phone number Input field
Screenshot

Description
Assign me under GSSOC'23

@AtriSukul1508  Can you assign me this task under GSSOC'23


fix find parent node issue

This PR fixes #22342
Depends on: https://github.com/microsoft/sqltoolsservice/pull/1949
Root cause:
the schema information is set on the table column node, but the node path doesn't have it, as a result, we couldn't find the parent path.
Fix:
The extension side shouldn't have knowledge of how the provider is constructing the node path (especially schema is not a common concept across all providers), if we need to know it, we should get it directly from the providers.

this is the actual change: https://github.com/microsoft/azuredatastudio/pull/22356/files#diff-29942eaeb9ec5e20de436b4fd36ae4ee41588c3d50e58761787ccc863ec50a4aR100, all other changes are just to add the new property.
STS changes:

this is the actual change: https://github.com/microsoft/azuredatastudio/pull/22356/files#diff-29942eaeb9ec5e20de436b4fd36ae4ee41588c3d50e58761787ccc863ec50a4aR100, all other changes are just to add the new property.

You do have a compile error to fix it looks like though

@Charles-Gagnon yes, I am working on fixing them. they didn't show up locally within the watch window, I had to rerun it for the errors to appear.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

7 of 12 (58.33%)  changed or added relevant lines in 5 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.02%) to 41.93%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sql/workbench/services/objectExplorer/browser/objectExplorerViewTreeShim.ts
0
1
0.0%

src/sql/workbench/services/objectExplorer/browser/serverTreeActionProvider.ts
0
1
0.0%

src/sql/workbench/api/common/extHostObjectExplorer.ts
5
8
62.5%

Files with Coverage Reduction
New Missed Lines
%

extensions/sql-bindings/src/common/azureFunctionsUtils.ts
1
80.65%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
28831

Relevant Lines:
63839

💛  - Coveralls


ci: Add workflow to run unit tests

This is the default nodejs workflow to build and test a Node.js project with npm.
This only difference is that this is adjusted to run only our unit tests.
Resolves #144

Looks like we already have this setup!

Not sure I see that it's set up already. I was waiting to push my setup-ci branch until #146 landed.

Yeah I was unware it existed until I seen that the check failed:


Create storybook of components

We used storybooks inbetween to develop the visualizations but now merged it back into the main dev branch; ui components do have storybooks;


Migrated to pyproject.toml

And adopted the src/ layout. This should help keep pyqtconsole up-to-date.

Hm, it looks like Python 3.7 on Mac-OS for the Github action is simply not working anymore. Might be not so relevant anymore anyway: #81
@marcus-oscarsson I've seen you're thumbs-up. You're on board with this?

@RobertoRoos yeah its great thanks !. I also agree for the Python support.

You could probably add yourself and @coldfix as authors, or why not all the contributors, not sure how the authors field is supposed to be interpreted :)


No information on how to secure the Container and Service

The setup here is great for getting a demo working, but I am unsure how I would be able to secure one of these containers in production. Specifically, this setup exposes a public IP for the service over http. Anyone can access this container. I was wondering if there is some kind of key I could add to the container so only my API can access this service by adding to a header (Or something comparable?). I am hoping my API can act as a persistent and authorization layer in front of this container. Any help or clarification would be greatly appreciated.

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

ID: 3dbfe595-4580-6c6b-1d7d-30e955e9e7b3
Version Independent ID: a7b90464-f00f-75ae-ee6c-6ebb06bd7e47
Content: Use Computer Vision container with Kubernetes and Helm - Azure Cognitive Services
Content Source: articles/cognitive-services/Computer-vision/deploy-computer-vision-on-premises.md
Service: cognitive-services
Sub-service: computer-vision
GitHub Login: @IEvangelist
Microsoft Alias: dapine

Hi again @SpicySyntax, it seems as though our paths are crossing more and more frequently. I have this ask into the engineering team and I'll report back my findings as soon as I hear back from them -- thank you :pray:

Hi @SpicySyntax,
I'm going to close this issue for now, as we are tracking it internally. I'll let you know when the docs are updated -- but to answer your question more directly, there are many options. Here was some of the immediate feedback from the engineering team:

They need to augment the container with a front-facing component, keeping the container endpoint private. One of the many choices is to use Istio (istio.io) as a sidecar/ingress gateway. Istio supports Https/SSL and client-certificate authentication. So their API will call the frontend exposed by Istio instead of directly calling the container endpoint, presenting the client certificate that is whitelisted beforehand with Istio.

Thanks again for the suggestions 👍
#please-close

@IEvangelist  I appreciate the update. I think we plan on just making it a ClusterIP service, this just makes it so that we need to deploy it first so the Internal IP can be used as a deployment parameter for the main API (which uses Nginx Ingress). I was just curious if there was a built in mechanism so that I did not need to deploy the container before the API. Thanks


Trying to install active demo example app but fails

Expected behavior
Following the instructions mentioned in the demo app, I should be able to set up the demo app.
Actual behavior
bundle exec rake db:drop db:create db:migrate db:seed
Could not find activemodel-3.0.10 in any of the sources
Run `bundle install` to install missing gems

Steps to reproduce

checkout in a new folder https://github.com/getgauge/activeadmin-demo
Follow the instructions.
On bundle exec rake db:drop db:create db:migrate db:seed getting the above error.

Gauge version
Gauge version: 0.5.1.nightly-2016-06-14

Plugins
-------
html-report (2.1.1.nightly-2016-06-02)
java (0.4.1.nightly-2016-06-14)
xml-report (0.1.2.nightly-2016-05-27)

Could you try running bundle install before bundle exec?
By the way, you don't need to build this app locally. This app has been packaged into activeadmin-demo.war. You can use that. See this for more details.

@mahendrakariya : I followed all the steps
bundle install
Fetching dependency metadata from http://rubygems.org/
Using rake 0.9.2
Using abstract 1.0.0
Using activesupport 3.0.10
Using builder 2.1.2
Using i18n 0.5.0
Using rack 1.2.3
Using tzinfo 0.3.29
Your Gemfile.lock is corrupt. The following gem is missing from the DEPENDENCIES
section: 'mini_portile'

This is a new folder and a fresh checkout. I just wanted to test it by building it locally following all the instructions given.

The recommendation is to use the war which is already built.


Consolidate j5 version

I have created a j5.VERSION that is used for docs and packaging. Additionally, this could be used in code to have different behaviour if we need to do so.

Should this be __version__ or are we not following PEP 396? (Not saying we have to, just wondering if there was a reason)

I was not aware of PEP 396. I will update this.

Also note: resolves #80

This is now failing on a lack of Type Defininitions for packaging. Any suggestions on how we solve this? I'm not sure if we really should bother making a .pyi for it, somewhat out of scope.

We could add a hint to ignore typing on the offending import.
However, is packaging.Version necessary, especially since we immediately convert back to a string? Unless I'm missing something it doesn't seem like introducing a new dependency for this is justified.

We could add a hint to ignore typing on the offending import.
However, is packaging.Version necessary, especially since we immediately convert back to a string? Unless I'm missing something it doesn't seem like introducing a new dependency for this is justified.

I made use of packaging.Version as it ensures that the version are compatible for PEP440 and it's a requirement of setuptools anyway. I'm happy to remove this if you'd like. It also make it possible to dynamically find the short version number that Sphinx wants.

I can see the benefit if the Version object was exposed directly, but if the only purpose is validating the string then that might as well be done once by a human during code review rather than every time the library is loaded. I don't feel that strongly about it though, you're welcome to keep it (so long as the typing gets fixed).

I think I'm probably in favour of removing it now, especially considering that the types on it are broken.


[WIP] Async Http Client

See #74 and #75 discussion for a more detailed description.
This PR intend to add asynchronous support for httplug by adding a new interface HttpAsyncClient which allow to send an asynchronous request and return a promise for the response.
The current Promise interface follow specification of https://promisesaplus.com/ from an user point of view (there is no method for fulfilling or rejecting the promise, it should be up to the implementation user only care on how to handle the return and not on how to resolve the promise)

Actually the onFulfilled / onRejected are a callable, WDYT if we replace them by an interface ?
(Would be easier to typehint and also not so a problem with inline implementation for the futur, as we will have anonymous class, and we can always wrap a defaut implementation which takes a callable)

Default implementation on the other hand causes to depend on the utils package.

Hum right, we can stick with callable for the moment.
I think it is ready for review then, i don't see anything to add. I will maybe add some docs on the getState method as in my mind this method as the role to wait / check the underlying implementation (like a stream_select).

very cool!
in terms of usability, i wonder if this client could extend the normal HttpClient. when you can send async requests, you for sure can also send other requests (worst case waiting for the result of an async request in the client). or not? just trying to think how many if instanceof we want users of the library to do...

Yes i was thinking the same thing, but we really depend on implementation as guzzle provide both mecanism we don't need to do that, but for React adapter i think we will provide also a "wait" mechanism for the synchronous sendRequest

I think interface inheritance does not really matter here.

yeah, actually a use case where you need both async and sync request seems not very obvious. guess we are fine like this, keeps things simpler.
so lets clean up the exception behaviour and callback documentation and then merge this. oh, and maybe build a doc PR that goes with this ;-)

:+1:

Just updated but dot not merge it, i want to try react and guzzle6 implementations before submitting this, to be sure that this interface has all requirements. Also i will do the documentation PR linked to this.

Won't merge it until the WIP tag is included in the title.

After looking at the Guzzle and React implementation for their async request i think we need a wait function to this interface.
As in real, expect with some "hacking" (like using the tick register handler of PHP), there is no way that our callback will be called magically if somehow we do not wait for the result to be available at some moment.
So IMO we must provide a wait function for the user when he needs the response of this request to be complete.

agreed. can we just use the guzzle impl in the guzzle adapter?

We have to provide a decorator to not collide with their interface, but this is pretty straigthforward otherwise.

We have to provide a decorator to not collide with their interface, but
this is pretty straigthforward otherwise.

:+1: decorator is more clean than extend to add the interface anyways.

Not sure if I completely get this async idea. Shouldn't calling the wait return the response or throw an exception?

Guzzle does that by default but also provide a way to do like here (using the $unwrap parameter)
In our case, i prefer to have a limited ways of getting the response, (this also make implementation lighter).
But i really don't mind about one solution or the other.

hm, i agree we only want one or the other way. not sure which is better though. when using the callable mechanism, not returning anything makes sense. when not using them, returning would make more sense.
but i guess the callable mechanism is really useful, particularly when there are several promises and we don't know which will be resolved first. (does that work with php? when i wait on one promise, if another one resolves while i wait, will the callable of the other promise be executed?)
if callables work that way, i would prefer that we promote the callable approach in the doc and have wait() not return anything. we should keep getError / getResponse in either case, to make it not unnecessary hard to access that information if desired (like write a callable to deposit the information somewhere...)

but i guess the callable mechanism is really useful, particularly when there are several promises and we don't know which will be resolved first. (does that work with php? when i wait on one promise, if another one resolves while i wait, will the callable of the other promise be executed?)

What do you mean by several promises ?
A promise for another sendAsyncRequest ?
Or a chained one like with a chained then :
$promise
  ->then(function() ..., function() ...)
  ->then(function () ..., function () ...)
;

If it's a promise for another sendAsyncRequest, it will depend on the implementation, for guzzle i don't think so but for react certainly if we use a global event loop.
For the chained one it wall promises in the order of declaration for all the cases.
By the way even if we return a Response / Exception in the wait method, the then callables will always be called as it is mandatory.

i was thinking about parallel async requests, yes. so lets not return anything in the wait and promote the callables way, but keep the getResponse / getException methods for people that want to work differently.

So, this should be good to merge, after reviewing the Observable vs Promise discussion on the Promise RFC on fig group, i don't think this pattern is better or not (i find it very similar, see discussion on slack with @sagikazarmark).

how soon can we expect FIG to release a promise standard? if its reasonable to expect it by end of the year, i would delay support for async to 1.1 of HTTPlug to get their promises rather than define our own.
alternatively i could live with clearly stating that the Promise interface is to be considered experimental and will be replaced by the FIG one in a minor version change. or we just go 2.0 after 3 months... its hard to say i guess how long FIG will take. and we really want to wait with adopting their thing until its actually stable released. maybe a version 2.0 of HTTPlug in half a year is the way to go.

I don't think we can expect a standard this year.
What if we place the async stuff in a separate repository as @joelwurtz suggested. We can have it experimental until the Promise question is cleared, we can merge them afterwards. This way we would have a clear and super stable contract without experimental stuff.

okay, that makes sense to me. with a note that this will become
deprecated and move to the HTTPlug main repo once PSR is released.

Sure. @joelwurtz I've setup httplug-async repo. Can you push content there? Keep in mind that it must require the httpluh repo because of exceptions.

Sure, should i keep the same namespace or put everything under Http\Client\Async ?

I think you should keep it as it is only a temporary solution.

yeah, it technically works with composer to have several packages
provide classes/interface in the same namespace

done in https://github.com/php-http/httplug-async

hurray!


Update version of Phosphor Icons 2.1

I think the Phosphor icon pack could be updated to v ^2.1 https://github.com/steeze-ui/icons/blob/main/packages/builders/phosphor-icons/package.json#L33.
Thanks 🙏🏻

available in<EMAIL_ADDRESS>


Notifications are not shown when modals are cancelled

Closes #183. I added callbacks to most modals so that notifications would only be called when they were meant to.

You gut us 80% of the way there, but I realized that the remaining 20% was surprisingly tricky, so I did a pretty significant overhaul of our forms and modals over here: https://github.com/sillsdev/languageforge-lexbox/pull/188


Minor edits

I saw a few things which could be cleaned up or extended, feel free to reject some of these (I'm looking at you, no-by-default).
Adds support for 'editor' and 'sensible-editor' (for debian systems).
Defaults to not executing the script
Does some cleanup

Looks good to me! Thanks.


Display file name of offending implicits in flamegraph

Looking at the flamegraph, it's hard to understand where the code is coming from. You need to guess.
It would be nice to have something that points to the definition of the function taking implicit parameters, so I can then check its usages or ways to improve it.

We need someone from the scalac maintainers to confirm it's possible according to the gathering statistics approach (-Ystatistics compiler flag, I mean).


⚠ Bofrost.es has degraded performance

In 0a66c47, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1851 ms

Resolved: Bofrost.es performance has improved in 6d18194 after 6 minutes.


[WIP] Incorporate the official templates in core repository

I'm considering about incorporate the official templates with main repository to reduce maintenance costs of them. My idea is:

Check versions of PredictionIO/Scala/Spark/etc by TravisCI using a shell script and if these versions are not same among PredictionIO and templates, test will fail.
Include the official templates and examples in the distribution which is made by make-distribution.sh.
Documentations which refer these templates or examples will be fixed to be started from:$ cd $PIO_HOME/templates/template-scala-parallel-recommendation
$ pio build
...

instead of:$ git clone https://github.com/apache/predictionio-template-recommender.git
$ cd predictionio-template-recommender
$ pio build
...

Currently, for every release, we have to update versions of PredictionIO/Scala/Spark/etc, then create tag for each template repository by hand. If the official templates are in the same repository with PredictionIO itself, we will be able to finish this boring operation at once. Also, it will ensure that all official templates is synchronized with the latest PredictionIO version.

I think it causes some confusions when new users try to learn PIO and found that they will need to clone the template from another repository.
So it is definitely better for us to put it together with the main repo.
Since we already have those examples in the main repo, I think it makes a lot of sense.
One question that I will bring up is:
Are we still going to use the package org.example.recommendation?
or maybe we could change it to org.apache.predictionio.template?


dotnet publish fails for Raspberry Pi: detected package downgrade

Issue Title
dotnet publish produces error NU1605 when publishing for the Linux-ARM platform.
More info
When publishing for Raspberry Pi with this command:
dotnet publish -r linux-arm

the build doesn't complete and lots of errors like this are shown in the build output:
F:\Repos\Plotty\CodeGeneration\CodeGen.Intermediate.Tests\CodeGen.Intermediate.Tests.csproj : error NU1605: Detected package downgrade: System.IO.FileSystem.Primitives from 4.3.0 to 4.0.1. Reference the package directly from the project to select a different version.  [F:\Repos\Plotty\CodeGeneration\Code Generation.sln]
Snapshot

General
The problem doesn't occur when with either dotnet build or dotnet publish (without the -r linux-arm option).
You can reproduce the issue cloning the following repository:
https://github.com/SuperJMN/CodeGeneration
Version
Microsoft (R) Build Engine version <IP_ADDRESS>536 for .NET Core
Under Windows 10 Fall Creators Update

Thanks for the report. It's not specific to linux-arm. It is specific to publishing by RID. I'll get some folks to PTAL.

@richlander was there any follow up here? Who should take a look?
@SuperJMN do you still face the problem?

No response, closing.
@SuperJMN if you still hit the issue, feel free to repopen. Thanks!


Additional requests while preparing transaction

When making eos.transaction() call with eos returned from scatter it makes a bunch of get_info/get_block/get_abi requests:

When using<EMAIL_ADDRESS>directly, however it's much better:

Plus I was able to reduce additional requests to just only one get_abi call, by providing transaction headers myself. Through scatter only one get_block request is saved this way.
Is where anyway to reduce the overhead?
Btw, does scatter have it's own version of eosjs which it uses? Because it looks a lot like this issue, which appears to be almost fixed in newest eosjs.

I'd suggest tagging onto the ticket I created on eosjs (https://github.com/EOSIO/eosjs/issues/208). There's really nothing Scatter can do about this. Scatter already caches ABIs on our side but all those requests are coming from eosjs alone. I agree, it's a problem which needs a solution.

Why I don't see that many unnecessary requests when using eosjs directly?


Don't panic, return error

I think the following error is not user-friendly.
$ RUST_BACKTRACE=1 cargo run install hoge
    Finished dev [unoptimized + debuginfo] target(s) in 0.03s
     Running `target/debug/frum install hoge`
thread 'main' panicked at 'internal error: entered unreachable code', src/version.rs:33:13
stack backtrace:
   0: rust_begin_unwind
             at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:515:5
   1: core::panicking::panic_fmt
             at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/panicking.rs:92:14
   2: core::panicking::panic
             at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/panicking.rs:50:5
   3: frum::version::Version::parse
             at ./src/version.rs:33:13
   4: <frum::input_version::InputVersion as core::str::traits::FromStr>::from_str
             at ./src/input_version.rs:47:15
   5: frum::main::{{closure}}
             at ./src/main.rs:58:21
   6: core::option::Option<T>::map
             at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/option.rs:823:29
   7: frum::main
             at ./src/main.rs:57:26
   8: core::ops::function::FnOnce::call_once
             at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

I found at least two not-good points of error handling of this repository.

Version.parse() panics. This should return an error if the parse failed.
Dispatch of command uses expect(). Here, we should receive errors and show them to users.

I recommend you to use eyre and color-eyre. See https://github.com/yaahc/color-eyre/blob/master/examples/usage.rs and try to run.
(eyre is a fork of anyhow and I think eyre suits CLI programs because it has additional features like suggestion.)

Note that you can mix thiserror and eyre.


Throw error when adding scope in Association

Hey,
My rails version is rails-<IP_ADDRESS> and ack_as_paranoid version is acts_as_paranoid-0.4.5. When i try to add scope in belong_to association then it throws exception during getting any record from db. Let me know why it's happening. Here is my code
class Touch < ActiveRecord::Base
acts_as_paranoid
has_many :touch_transactions, class_name: "ActivityTransactions", :foreign_key => 'touch_id'
end
class ActivityTransactions < ActiveRecord::Base
belongs_to :touch, -> {Touch.all}
end
If i removed scope then it will work fine.

I can't reproduce this.
@MuhammadRazaAslam do you still experience this issue? If so, can you please provide a clear way to reproduce this error, as well as details on what exception is thrown?


Suppress warning for ERB

Because ERB changed how to handle initialization arguments since Ruby 2.6.0, it warns lib/git/pr/release/util.rb 's usage.
/Users/ohbarye/.ghq/github.com/ohbarye/git-pr-release/lib/git/pr/release/util.rb:97: warning: Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments.
/Users/ohbarye/.ghq/github.com/ohbarye/git-pr-release/lib/git/pr/release/util.rb:97: warning: Passing trim_mode with the 3rd argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, trim_mode: ...) instead.

Ruby commit: https://github.com/ruby/ruby/commit/cc777d09f44fa909a336ba14f3aa802ffe16e010
Rubocop's handling: https://github.com/rubocop-hq/rubocop/pull/5614/files
Testing
Run rspec with v2.6.0 or above.
Before
There're warnings for ERB.
$ bundle exec rspec

Randomized with seed 20925
.../Users/ohbarye/.ghq/github.com/ohbarye/git-pr-release/lib/git/pr/release/util.rb:97: warning: Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments.
/Users/ohbarye/.ghq/github.com/ohbarye/git-pr-release/lib/git/pr/release/util.rb:97: warning: Passing trim_mode with the 3rd argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, trim_mode: ...) instead.
./Users/ohbarye/.ghq/github.com/ohbarye/git-pr-release/lib/git/pr/release/util.rb:97: warning: Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments.
/Users/ohbarye/.ghq/github.com/ohbarye/git-pr-release/lib/git/pr/release/util.rb:97: warning: Passing trim_mode with the 3rd argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, trim_mode: ...) instead.
.....To be released: #3 Provides a creating release pull-request object for template
To be released: #4 use user who create PR if there is no assignee
.....Dry-run. Not updating PR
Release 2020-01-04 16:51:09 +0900
- [ ] #3 Provides a creating release pull-request object for template @hakobe
- [ ] #4 use user who create PR if there is no assignee @motemen
.Created pull request: https://github.com/motemen/git-pr-release/pull/1
.Updated pull request: https://github.com/motemen/git-pr-release/pull/1023
.Searching for existing release pull requests...
.Searching for existing release pull requests...
..No pull requests to be released
........../Users/ohbarye/.ghq/github.com/ohbarye/git-pr-release/lib/git/pr/release/cli.rb:59: warning: already initialized constant OpenSSL::SSL::VERIFY_PEER
.

Finished in 0.62901 seconds (files took 0.48012 seconds to load)
31 examples, 0 failures

Randomized with seed 20925

After
No warnings for ERB.
$ bundle exec rspec

Randomized with seed 53861
............../Users/ohbarye/.ghq/github.com/ohbarye/git-pr-release/lib/git/pr/release/cli.rb:59: warning: already initialized constant OpenSSL::SSL::VERIFY_PEER
..........No pull requests to be released
.To be released: #3 Provides a creating release pull-request object for template
To be released: #4 use user who create PR if there is no assignee
.Created pull request: https://github.com/motemen/git-pr-release/pull/1
.Updated pull request: https://github.com/motemen/git-pr-release/pull/1023
.Dry-run. Not updating PR
Release 2020-01-04 16:51:09 +0900
- [ ] #3 Provides a creating release pull-request object for template @hakobe
- [ ] #4 use user who create PR if there is no assignee @motemen
.Searching for existing release pull requests...
.Searching for existing release pull requests...
.

Finished in 0.70155 seconds (files took 0.6799 seconds to load)
31 examples, 0 failures

Randomized with seed 53861

Thank you!


Deleting a topic from a minutes can lead to loosing informations from the topics list

A common scenario is removing an empty topic from a minutes which was injected automatically because the topic was not closed in the previous minutes. When deleting this topic it will also be deleted from the meeting series topcis list together with all information which might be added in previous meetings.
To solve this problem we will close the topic in the topic list of the series automatically when removing the topic. Additionally we will display a hint together with the confirmation dialog which is shown before the topic will be actually deleted. Plus an auto-generated info item will be appended to the topic (living in the series) which makes clear that the topic was removed.
Scenario

A topic with infos/actions was added in minutes #(n-1)
The topic will be removed in the following minutes #n
If #n will be finalized: The representation of Topic T in the parent series will be closed and the recurring state will be removed. This leads to the fact that the topic will not be carried to the follow-up minutes #(n+1) even if it contains sticky info items or open action items. The state of the info items (sticky or not) as well as the state of the action items (open / closed) will not be modified.

ACs

[ ] Write an E2E-Test which reproduces this scenario
[ ] Make sure that the topic will be closed instead of deleted when finalizing the minutes, iff the topic contains items displayed in the meeting series
[ ] Make sure that the topic will not be injected into the minutes when un-finalizing it
[ ] Display a hint which explains this procedure, iff the topic contains items displayed in the meeting series
[ ] If the topic was created within the current minutes it will be deleted silently

Question

Is it necessary to remove the "recurring" attribute of a deleted topic while setting it to "closed"? -->  Yes, it is! When removing a topic the user made the decision that he do not want this topic anymore so we remove the recurring "recurring" attribute, too.
How should we handle the case if the "to-be-deleted"-topic contains open action items (from previous minutes) ? --> This is not allowed!

Problems with this approach

By auto-closing a topic the topic will be marked as closed in the meeting series but is not closed in any protocol. This make the impression that an finalize-error might have occurred. --> We solve this problem by adding an auto-generated info item which explains the situation.

Together with @derwok we decided to handle this issue completely different: we will forbid deleting topics / items which were not created within the same minutes. This approach will be much more straightforward.
The new approach will be discussed in #205