[PL-44162] Add Harness local login to troubleshooting

Add Harness local login to troubleshooting
For reviewers, a preview is available:
What Type of PR is This?

[ ] Issue
[ ] Feature
[x] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[x] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65bbd9f540b0d70bf8a0522d--harness-developer.netlify.app


[SPARK-8660] [MLLib] removed > symbols from comments in LogisticRegressionSuite.scala for ease of copypaste

'>' symbols removed from comments in LogisticRegressionSuite.scala, for ease of copypaste
also single-lined the multiline commands (is this desirable, or does it violate style?)

Can one of the admins verify this patch?

@mengxr Would it be desirable to un-multiline the LOC in the file's comments? Or should these remain multiline to follow style? (What I mean is, the lines are long enough that they were being broken into multiple lines, so copy-pasting them would be harder. I made them back into single-line.)

For copypasteing in Scala mode :paste mode makes the multi-line copy/past work well (although requires remembering that + ctrl-d)

Let's keep the line width within 100. As @holdenk mentioned, we can copy & paste a paragraph of code to Scala and ipython easily. I also tried RStudio, which takes multiline statement as well.

@mengxr @holdenk Alright, I restored the multiline comments conforming to the 100-character rule

ok to test

LGTM pending Jenkins.

Merged build triggered.

Merged build started.

Test build #36316 has started for   PR 7167 at commit f4b9bc8.

Test build #36316 has finished for   PR 7167 at commit f4b9bc8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Merged into master. Thanks!


Doesn't work when username contains a space

Description of the issue. Please be specific.
I'm trying to run basel in CLion while being guilty of the crime of having a space in my username, Max Gerhardt. This username is controlled by my organization and I can't change it.
I tried importing the simplest possible example project but I immediately ran into the error
WARNING: Output user root "C:/Users/Max Gerhardt/_bazel_Max Gerhardt" contains a space. This will probably break the build. You should set a different --output_user_root.
ERROR: bazel does not currently work properly from paths containing spaces (C:/users/max gerhardt/downloads/examples-main/cpp-tutorial/stage1).
Sync finished
Sync failed

with it. Okay, I thought, I musn't have Bazel and the project directory in a path containing spaces -- no problem.
I relocated bazel.exe and the example project to a path without spaces, C:\dev. Now it can't possibly fail.
Well, it still does. Creating the project anew (to prevent any caching issues) and syncing the project gives
Syncing project: Full Sync (full)...
Updating VCS...
Running Bazel info...
Command: C:\dev\bazel.exe info --tool_tag=ijwb:CLion --curses=no --color=yes --progress_in_terminal_title=no --

WARNING: Output user root "C:/Users/Max Gerhardt/_bazel_Max Gerhardt" contains a space. This will probably break the build. You should set a different --output_user_root.
Computing VCS working set...
Querying targets in project directories...
Command: C:\dev\bazel.exe query --tool_tag=ijwb:CLion --output=label_kind --keep_going "attr(\"tags\", \"^((?!manual).)*$\", //main/...:all)" --

Sync finished
Sync failed

Even tough Bazel is in C:\dev\bazel.exe now, it (I assume it's bazel.exe and not the extension) still creates the folder C:\Users\Max Gerhardt\_bazel_Max Gerhardt (which contains two spaces) and tries to.. redirect the output in there?
The output hints that the --output_user_root option can be used to possibly change the folder and make it work. Can the extension do that? Or, can it be tested with a simple command that I can execute whether that would work?
What's the simplest set of steps to reproduce this issue? Please provide an example project, if possible.

Download https://github.com/bazelbuild/examples/tree/main/cpp-tutorial/stage1 to C:\dev
Download https://github.com/bazelbuild/bazel/releases/download/6.0.0-pre.20211019.1/bazel-6.0.0-pre.20211019.1-windows-x86_64.zip to C:\dev
Use File -> Import Bazel Project -> Workspace: "C:\dev\stage1" -> Next -> Generate from BUILD file, "main\BUILD" -> Next -> Finish
Open Project in this Window
Observe error

Version information
CLion: 2021.2.3
Platform: Windows 10 10.0
Bazel plugin: 2<IP_ADDRESS>.1-api-version-212
Bazel: 6.0.0

Hey Max, we don't support Windows, see #113

Wow, awesome.


Don't hardcode "today" into Rails Date cop

Currently, the RuboCop::Cop::Rails::Date cop generates messages like:

Do not use Date.yesterday without zone. Use Time.zone.today instead.

Clearly, this is the wrong message. This pull request fixes this issue.

:+1:


Doubt about optimizer_idx

Looking at the code I found the _do_step function that as I can tell via torch ligthining what it does is train at each iteration one time the generator and the other the discrimantor? Is this always the receipt in image inpatining. Have you studied oder strategies in order to train the generator and the discriminator.Maybe both at the same iteration ....

what it does is train at each iteration one time the generator and the other the discrimantor?

Correct.

Have you studied oder strategies in order to train the generator and the discriminator.Maybe both at the same iteration ....

No, we have not explored other strategies, e.g. updating generator and discriminator within a single step.

I'm closing the issue for now. If you have any other questions, feel free to reopen it or create a new one.


Support cross-domain in both directions with single proxy page

This is a continuation of failed PR #30 the code for this experiment is on the devel branch.
When this will be ready it should allow using sysend on CodePen for Cross-Domain communication.

This demo should work: https://codepen.io/jcubic/pen/ZEvEVLG?editors=1010

So the demo works but one way. I was testing the app and I'm almost sure that it's impossible to have both-way communication with a single proxy. You can only send from the page that doesn't have proxy to the one that has a proxy.
This is because to send to other domains you reach the iframe on the page. If there are no iframes for other domains you can't send the message.


Upgrade all the things

Noticed we are a little out of date on a few development dependencies. This PR just upgrades them all in anticipation for an upcoming release.
We have not fully upgraded tape to the 5.0.0 version yet, we will need to work on redoing all plan based specs for that. BUT they are maintaining 4.x, so that is super awesome!

Coverage remained the same at 100.0% when pulling 8118b9323449cb59aa8a41dbf3a4f34f1c4e9134 on chore/dep-updates into 54ab755da271956e20d57dc2e7df5e48cf06705c on master.

Gonna merge this on in.


ConventionalUnit package private

Hi again,
I'm trying to use the seshat as a dependency in my project and I get a parsed ConventionalUnit, which I cannot use cause it's package private.
I'm calling the parse method using several parsers until I get a good answer, something like
private javax.measure.Unit tryParsing(String unitRawName, List<UnitFormat> formatServices) {
        javax.measure.Unit unit = null;
        for (UnitFormat formatService : formatServices) {
            try {
                unit = formatService.parse(unitRawName);
                break;
            } catch (Throwable tr) {
                LOGGER.warn("Cannot parse " + unitRawName + " with " + formatService.getClass().getName(), tr);
            }
        }
        return unit;
    }

so I return a Unit object which I then try to figure out which class it's instanciated and cast it.
In this case I would need ConventionalUnit to be public. Might not be the best soluiton, feel free to advice, though.
Thanks
Luca
(BTW I know that catching Throwable is an orrific sin, but I wanted something simple cause the parse() can throw Exceptions and Errors 😅)

Having the class package-private reduce the risk of breaking user code if we modify the implementation in the future. Can we explore some alternatives for addressing your need first? Do you need to invoke some methods that are specific to ConventionalUnit (not defined in the Unit interface)? If the need is to identify the implementation but not necessarily to invoke methods that are specific to that implementation, would unit.getClass().getCanonicalName() be suitable?

Thanks for the advices.
I'm still exploring the best way to use it. For the time being we can close this ticket and I'm going to modify locally my version. it was more a question than an issue actually 🙂

Just one more question, for other types like ProductUnit or TransformedUnit I would use the casted unit to get the normalisation to base via for example:
transformedUnit.getSystemConverter().convert(numericValue)
but it seems that the ConventionalUnit implementation is slightly different. Is there a way to do the same as the other unit classes?
As a practical example I have μg/ml which I would like to normalise as kg/m^3.
Thank you in advance


Master Details CRUD

Hello, this is an awesome tool 👍
I am trying to do something like Customers-> Orders details page, can you please help with a Master Details, how do I set that up in the tool please

add a propery(IsMasterDetailPage) in YourEntity.json

ps. I forgot add this property to the snippet, I will add it later and I will also update the core of aspnetzeroRadTool to latest version

Awesome you rock!! 👍


Bugs fix/cypress/1251

First thing, PLEASE READ THIS: ReactPlay Code Review Checklist

Description
Cypress test fails because it tests twitter tweets but the tweets were replaced by the testimonial.
On localhost, sometimes contributors test fails too.
Sometimes tests fail just because of the timeout is too short
Fixes #1251
Type of change
Replace the current tests by new one for homepage.
Add minimum test for leaderboard and ideas.
Add a longer timeout to cypress config
Please delete options that are not relevant.

[X] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Use it another branch where tests are done before push
Run locally with cypress:run too
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.
run cypress:run
Checklist:

[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] Any dependent changes have been merged and published in downstream modules

Screenshots or example output

Hi @Angra974 can you please merge the latest changes from main?


⚠ Quirk Club Argentina (API endpoint) has degraded performance

In 06150e1, Quirk Club Argentina (API endpoint) (https://us-central1-quirkclub-dev.cloudfunctions.net/api/check/api) experienced degraded performance:

HTTP code: 200
Response time: 7650 ms

Resolved: Quirk Club Argentina (API endpoint) performance has improved in 97fde5d.


ENHANCEMENT: Lock down map options

remove options to make more mobile friendly:

pan
street view
satellite?

closing via #66


Unraid App cannot locate conf file

I installed the app today on Unraid and keep getting the following error:
`text  error  warn  system  array  login
2024/04/08 21:59:59 ERROR Cannot read conf.yml error="read /app/conf.yml: is a directory"
** Press ANY KEY to close this window ** `
I tried putting the actual conf.yml file in several folder locations and tried to map a different location and they all failed.
I think there is confusion within the image looking for a file named "conf.yml" but also trying to look at a folder named "conf.yml" in the coding.

Copying my post from Unraid forum here also:
I think the issue is that when the template runs with the default settings, it is creating a folder named "conf.yml" at /mnt/user/appdata/unraid-simple-monitoring-api/ because the "conf.yml" file doesn't exist.
In my opinion, it would be better to just point to the folder, rather than the file directly. I would change it to:

container path: /app
host path: /mnt/user/appdata/unraid-simple-monitoring-api

or

container path: /app/config
host path: /mnt/user/appdata/unraid-simple-monitoring-api/config

But. I will try the notes above and let you know if it works.

UPDATE: It works as noted above, but you have to delete the erroneous conf.yml folder that is created by the Unraid template because of the direct file mapping.

This is very interesting, I just completely uninstalled and reinstalled the app, while also removing the conf folder, and it does in fact create a folder named conf.yml upon first installation, which is certainly confusing. This is not something I had noticed in my testing so far.
I'll see what I can do to avoid this in future installations. Thanks for bringing this to my attention!

Commit for the proposed change to the app's conf: link


New techniques (from MRTM model variants)

Hi @skoehnen and @lzehl,
As a result of our discussion, I would like to have the following measurement methods entered as techniques:

binding potential measurement
relative delivery rate measurement
clearance rate measurement

Many thanks for your help!

@AnnaHilverling the PR is prepared. But I would like to get some expert feedback for those terms.

@AnnaHilverling I've discussed with @tgbugs and we decided to do the following with the MRTM model variants within EBRAINS:

register "multilinear regression" as technique
register "Multilinear Reference Tissue Model (MRTM)" and variants as keywords
register "PET-derived binding potential" etc. as study target

I've made a PR for the multilinear regression technique. The rest does not need to be handled here. PET-derived binding potential can be added as term suggestion for now.
@lzehl, I do not now what the status for your draft PR #203 is, but to me it looks like this should be move somewhere else (e.g. MeasuredQuantity). The 3 terms form the PR do not seem suitable techniques.


Dependency not found: 'highlight.js/lib/core'

version 9.18.1
import hljs from 'highlight.js/lib/core';

Throws error "This dependency was not found". There is no such file in node_modules:

Lib/highlight.   Core is for 10.0.

See https://github.com/highlightjs/highlight.js/tree/9-18-stable README.


Ability to view all issues assigned to a user at org-level

Feature Description
At repository level you are able to filter issues based upon Assignee. It would be extremely useful for team reviews with multiple repositories to perform a similar filtering at org-level across all repositories. Presently only sorting can be done at org-level issue view based upon newest, oldest etc...  while repo level can sort AND filter (label, project, author, assignee, type)
http://<IP_ADDRESS>/ORG/REPO/issues vs http://<IP_ADDRESS>/ORG/issues
Screenshots
No response

More background: The issue overview page(http://{host}/org/{org name}/issues) examines the issues related to you at the org level. Its underlying search engine does have some fields like assignee or project, but the routing layer has set those fields automatically, like assignee: currentUser.ID.
I think this page ideally can search with keywords such as assignee: xxx just like GitHub. However, there are other codes that rely on the search engine which are not easy to decouple.

i really think this a missing feature too. I had to move a users issues to another user. Really annoying i had to got into all repo to move the issues instead of just having the overview off all issues on org level for that user.

I think it will be supported by this?  Add label/author/assignee filters to the user/org home issue list #32779


Can't make build on master

I ran make build on git master for Warehouse and got:
$ make build
find: warning: you have specified the -depth option after a non-option argument -type, but options are not positional (-depth affects tests specified before it as well as those specified after it).  Please specify options before other arguments.

find: paths must precede expression: `1'
make[1]: Entering directory '[path redacted]'
find: warning: you have specified the -depth option after a non-option argument -type, but options are not positional (-depth affects tests specified before it as well as those specified after it).  Please specify options before other arguments.

find: paths must precede expression: `1'
make[1]: '.state/docker-build' is up to date.
make[1]: Leaving directory '[path redacted]'
docker system prune -f --filter "label=com.docker.compose.project=warehouse"
Total reclaimed space: 0B

I wonder whether this has to do with the line
LOCALES := $(shell find warehouse/locale -type d -depth 1 -exec basename {} \;)
that @woodruffw added to the Makefile in e646a4cfbd5b75589dd8eb423b33a7363493dce6 ?

Looks like -maxdepth/-mindepth is compatible between the two. PR incoming.


Deal with Unicode JS snippets

If a CodeMirrorJavascript instance contains unicode (which on Py3 it likely will), hashlib won't compute a hash if it's not encoded.

LGTM


How to debug?

Hello,
Thanks for the amazing work!
I am not familiar with jax and I am wondering how do you debug the training? For example, is there any flag that allows me to inspect the value of the tensors inside the ptrain_step function?
Thanks!

Debugging jax is very painful. I don't remember finding any good printing function when I was writing this repo, but it seems that there is a new jax.debug.print you can try.


gitAndTools.git-annex: fix darwin build

Motivation for this change
git-annex doesn't build on darwin, I suspect a case of NixOS/nix#1085
Fixes: #73435
Helps with: #40783
Things done

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

[ ] NixOS
[x] 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 nixpkgs-review --run "nixpkgs-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)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Should this target "haskell-updates" instead?

@veprbl Since it only affects Darwin, it is probably fine to merge into master, but we usually merge Haskell-related changes into haskell-updates.

This looks good to me, and it builds on darwin, so I think it is good to merge in.

Pushed this to the haskell-updates.

This is commit 18c2874 on https://github.com/NixOS/nixpkgs/pull/75857 for haskell-updates, so I am going ahead and closing this.


[BUG]: Getting "ERR" without any explanation

Which tool
tidal-gui
Version
<IP_ADDRESS>
Platform
Windows
Describe the bug
I keep getting random "ERR" message, but no explanation as to what actually happened. I'd love to know what happened.
Relevant log output
Where do I find the log?

Add screenshots

You may try choosing 'HiFi' instead of 'Master'

Oh interesting. Why does it not have an option for "highest available quality" or something?

It totally solved the issue btw. There might be an improvement to say what the ERR is and/or feedback for the user to fix the issue easily.


unverified HTTPS: don't set CURLOPT_SSL_VERIFYHOST=0

In https://curl.se/libcurl/c/CURLOPT_SSL_VERIFYHOST.html under "Limitations", it is documented that when CURLOPT_SSL_VERIFYHOST is set to zero this also turns off SNI (Server Name Indication):

Secure Transport: If verify value is 0, then SNI is also disabled. SNI is a TLS extension that sends the hostname to the server. The server may use that information to do such things as sending back a specific certificate for the hostname, or forwarding the request to a specific origin server. Some hostnames may be inaccessible if SNI is not sent.

Since SNI is required to make requests to some HTTPS servers, disabling SNI can break things. This change leaves host verification on and only turns peer verification off (i.e. CA chain checking). I have yet to find an example where turning host verification off is necessary.

Codecov Report

Merging #114 (86e52d7) into master (db1d8d5) will decrease coverage by 1.74%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #114      +/-   ##
==========================================
- Coverage   93.00%   91.25%   -1.75%
==========================================
  Files           5        5
  Lines         486      469      -17
==========================================
- Hits          452      428      -24
- Misses         34       41       +7

Impacted Files
Coverage Δ

src/Curl/Easy.jl
94.06% <ø> (-0.09%)
:arrow_down:

src/Curl/utils.jl
71.42% <0.00%> (-26.08%)
:arrow_down:

src/Downloads.jl
84.21% <0.00%> (-0.17%)
:arrow_down:

src/Curl/Curl.jl
100.00% <0.00%> (ø)

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 db1d8d5...86e52d7. Read the comment docs.

It seems that I can only trigger the lack-of-SNI failure (which this PR fixes) on macOS + Julia ≥ 1.6, which seems a little strange — I would expect this to be a problem everywhere or nowhere. @vdayanand, did you only encounter this issue on macOS or were you also able to trigger it on Linux/Windows?

I can't reproduce this on linux. Looks like the difference here is the TLS/SSL library that is being used. Maybe we should use LibreSSL like system curl?
Downloads.Curl version (Linux): libcurl/7.73.0 mbedTLS/2.24.0 zlib/1.2.11 libssh2/1.9.0 nghttp2/1.41.0
Downloads.Curl version (MacOS): libcurl/7.73.0 SecureTransport zlib/1.2.11 libssh2/1.9.0 nghttp2/1.41.0
System.Curl (MacOS): libcurl/7.64.1 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.39.2

It seems ok to apply this patch and stop setting VERIFYHOST to zero. I can't find any actual example cases where this causes an insecure connection to be rejected. I think the server needs to be presenting a certificate for the wrong host entirely for this option to be required, but even with this patch, you can still connect to https://wrong.host.badssl.com which is, as I understand it supposed to be presenting a certificate for the wrong host. But maybe it's not wrong enough: it seems to be presenting a certificate for *.badssl.com which is maybe supposed to be rejected because the wildcard shouldn't apply to two levels of subdomain? I can't find an example of an HTTPS server that presents a certificate for the entirely wrong domain to see if that works.

In testing a conda-forge build of Julia 1.6.2 / Downloads.jl 1.4.1, it seems that libcurl 7.78.0 built with openssl 1.1.1k rather than mbedTLS throws an error when CURLOPT_SSL_VERIFYHOST is not set to 0. The error raised is

SSL: no alternative certificate subject name matches target host name 'wrong.host.badssl.com'

Further details can be found here:
https://github.com/conda-forge/julia-feedstock/pull/119#issuecomment-900875170

Well, that makes sense as I would expect that test to fail with this option unset and was a little puzzled why it didn't fail. It seems like this is a build error when using MbedTLS and the OpenSSL behavior is correct.


dsc_xadgroup resource does not appear to be idempotent

Hi,
The dsc_xadgroup resource does not appear to be idempotent. I updated my puppetfile to pull in the master branch and ran a test using the code below. On the first pass the group is created; subsequent runs generate Error: The specified group already exists.
Here is the error and the code used.

mod 'dsc',
  :git => 'https://github.com/puppetlabs/puppetlabs-dsc',
  :ref => 'master'

class profile::windows::dsc_createad {

  $create_adgroup=hiera('create_adgroup')

  # Create an ADgroup
  dsc_xadgroup {'LSA-DSC-TESTING':
    dsc_ensure           => 'Present',
    dsc_groupname        => 'LSA-DSC-TESTING',
    dsc_category         => 'Security',
    dsc_groupscope       => 'Global',
    dsc_path             => <OU removed>,
    dsc_description      => "<puppet managed> ${::hostname} Users",
    dsc_domaincontroller => <dc removed>,
    dsc_credential       => {
      'user'     => <user removed>,
      'password' => "${create_adgroup}"
    }
  }
}

@davnport Thanks for reporting this. I'll be looking into this as soon as I get an test AD setup to reproduce this. Would you mind filing an issue at https://tickets.puppetlabs.com/browse/MODULES with a copy paste of what you have here? We don't track issues here and will be shutting the issue section down soon. I'll update the jira ticket with my progress once thats created.

Does https://github.com/PowerShell/xActiveDirectory/issues/90 apply to your issue?

@jpogran Thank you for the link to formal ticketing system; rookie mistake on my part.
https://tickets.puppetlabs.com/browse/MODULES-3365
The error message in the linked ticket is similar but the circumstances appear to be different. I am only trying to create a group, I have not made it to the point of adding users or computers as my first test did not pass.

Now that we have that over there, let's move forward with closing this ticket.


Expected class type but received "DeclarativeMeta"

Sorry for my awful english.
Environment data

Language Server version: 2020.9.4 (pyright 9983747f)
OS and version: Ubuntu 20.04
Python version (& distribution if applicable, e.g. Anaconda): 3.8.3, pyenv

Expected behaviour
No type errors, because in that case i am use DelcarativeBase metaclass for create sqlalchemy model
Actual behaviour
Pylance threat a class created from a metaclass as not a class

Thank you for reporting this problem. Pylance was not correctly handling the case where a class was created by directly instantiating a metaclass. Most libraries use the "metaclass hook" to statically declare new classes based on a metaclass, but sqlalchemy is doing something more dynamic here. I've added code to Pyright (the type checker used by Pylance) to handle this case, and the fix will be in the next release of Pylance.

This issue has been fixed in version 2020.9.5, which we've just released. You can find the changelog here: https://github.com/microsoft/pylance-release/blob/master/CHANGELOG.md#202095-16-september-2020

I am still receiving this error

@Distortedlogic, can you please file a new issue and provide more context — preferably a short snippet of self-contained code that repros the problem? Thanks!


[WIP] change obs program

Checks

[ ] Debugging completed
[x] Please debug me

Related Issue
This PR closes #124

Codecov Report
Base: 82.69% // Head: 82.78% // Increases project coverage by +0.08% :tada:

Coverage data is based on head (531a79d) compared to base (50dd4fd).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #126      +/-   ##
==========================================
+ Coverage   82.69%   82.78%   +0.08%
==========================================
  Files          50       50
  Lines        2242     2242
==========================================
+ Hits         1854     1856       +2
+ Misses        388      386       -2

Impacted Files
Coverage Δ

obs/rsky_obs.py
65.62% <ø> (ø)

obs/skydip_obs.py
72.97% <ø> (ø)

tests/ctrl/test_coordinate_conversion.py
55.35% <0.00%> (+0.89%)
:arrow_up:

necst/ctrl/antenna/horizontal_coord.py
84.26% <0.00%> (+1.12%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Mud-Boot – for platforms that cannot be supported well

Intro
Today I was watching the FOSDEM talk by @calebccff about U-Boot on ABL devices. Even though the bootloader situation there is grim and scary, the prospect of layering our own EFI runtime is a real ray of hope. Once materialized, that should be a massive improvement to packaging and boot infrastructure on upstream-first OSes like pmOS or Mobian.
What this is about

a lot of devices have their own complicated boot process we cannot get rid of or replace
if we could unify all of them (from the OS perspective) by flashing a device-specific payload, that would be great
"distribution of U-Boot" – essentially what Tow-Boot is
Tow-Boot is high-quality; this is not
what if that perfectionism is why Tow-Boot supports only a narrow selection of boards?

(looks like that from the outside at least)

keeping Tow-Boot consistent and polished is a great thing, but we could also use something more messy as a staging area

"Why waste time say lot word when few word do trick?" – after listing out all the points I want to write about, I realized that this list perfectly sums up what I wanted to say. So why would I make it more complicated by now re-writing it all into proper paragraphs? Also, making perfect the enemy of good would go directly against a major point of this post. If something is unclear, please ask for a better explanation.
Side-ideas
We could also have a flasher program that figures out what state the device is in, then flashes what needs to be flashed, re-partitions the device if that's a good idea, maybe knows some exploits to liberate locked-down devices and overall guides the user through the process.
A major point here is that the OS should not have to know about all these quirks. It should just put its EFISTUB kernels or a boot manager EFI app in \EFI\$distro\ of the ESP, ideally register it with the EFI runtime somehow and be done with it. No more bootloader flashing from the package manager. The OS doesn't "own" the global state and should not meddle with it if not asked to. Maybe teaching fwupd about these bits of 'firmware' would be a good idea. Or maybe this is too messy and it's better to leave all this complexity to that flasher from above (and do self-flashing?).
The name
So, about the name… I was trying to come up with one that would be associated with messiness and yet would still be somewhat similar to Tow-Boot. The first short word that came to my mind was "mud". I googled "Mud-Boot" to see if there's anything already called like that and to my surprise, instead of seeing a bunch of info about boats, all I got was pictures of muddy boots.
Perfect! We can think of it as a trusty pair of boots that protect us from all the mud we're standing on.
As you can see I had way too much fun with this name. And that's frankly the reason I wrote all of this (instead of shelving the idea on my long list of stuff to do in the future™).

I don't think any of what your describing is outside the scope of tow-boot, at least from my point of view as an outsider. Tow-boot is supposed to be the thing that handles the messy boot process so a distro doesn't have to care what hardware it's on. It's configured to detect and just boot any distro puts an efi image or config file in the right spot, and it even has some integration with fwupd already. I don't even think unfinished device support is that big a deal, as long upstream u-boot can boot the device.
With all that said, you have me convinced that mud-boot is a fun name, and could be great for something like a testing channel / nightly builds.

The reason I assumed it has to be a separate thing is that right now Tow-Boot only supports SBCs with a relatively clean and straightforward bootloader situation (+ the PinePhones and PineBooks, but they are essentially the same in this regard).
On these boards, we are in control of the whole boot chain – everything after the bootrom is replaceable – and so Tow-Boot has all the opportunities to shine.
Android devices already come with their own bootloader. One that is usually buggy, complicated and not flexible enough. But because in general we cannot get rid of, our only option is layering a second-stage bootloader on top. In the talk that I mentioned at the beginning @calebccff suggested using U-boot with its EFI implementation for this purpose. And since this is very similar to the mission of Tow-Boot, I think starting here would be the best course of action.
Keeping all the boot firmware in a dedicated place and leaving the entire main storage for the OSes is an important UX consideration. You can erase it all, yet the device will still turn on and let you re-install the OS without specialized tools. You can't brick your device by e.g. re-partitioning it.
Since we cannot uphold the same guarantees on these 'messier' platforms, I believe it would be better to keep the 'branding' separate. It would clearly set the correct expectations in both cases. Still, it could very well be developed in the same code base and as part of the Tow-Boot project. When the device is fragile like this, it might require a more careful and complicated approach, but even then a lot of the code could likely be shared.

I was considering implementing the messier U-Boot for Qualcomm-based phones into Tow-Boot proper, once I'd had the time and energy to dedicate into understanding the pitfalls.
Even if it needs adding a new "class" of devices.

Great to hear from you @samueldr
I hope to help with this effort (after I learn more how Tow-Boot is built – I'll be trying to bring up Libre Computer's RK3328 board).

Hello!
I think that we can do better here. I'm not as affluent at the upstreaming process as I wish I was, but regardless I think that we can do almost all that we need/want to in upstream U-Boot. For the Qualcomm devices I have so far implemented a few things that I think make great strides for Tow-Boot, of the top of my head:

The ability to map buttons to run arbitrary commands (this feature is upstream!).
Automatically mapping volume/power buttons to up/down/enter (not upstream but I plan to submit it).

I also think that having a "persistent" boot menu (so you never drop to a prompt) would be a relatively easy feature to add, I have some PoCs for this that really only require changing like 2 lines of code to re-enter the boot menu automatically.
The impression I get from a lot of the existing U-Boot board support is that a lot of it is a holdover from when U-Boot require writing board specific code. But this is just not the case anymore -- as of a few days ago it's now possible to have a single U-Boot image (installed via fastboot) which can be flashed to half a dozen different Qualcomm devices. It's of course a slow process, and avoiding breakage it hard, but I think we'll see Rockchip and sunxi support move in this direction too.
Some overall thoughts on this thread
Automatic U-Boot updates
I've spoken to Richard (of fwupd/LVFS) and some other folks both in industry and across the community. And the way things seem to be going, I see absolutely no reason why we can't eventually have 100% upstream U-Boot supported on devices like the OnePlus 6 (as well as msm8916 phones and plenty others) with updates provided automatically and in a distro-agnostic way.
Most recently I've been looking into generating firmware UUIDs dynamically based on the device model (so we don't need to maintain a hardcoded list in U-Boot itself) (see here). We would provide updates on a community fwupd channel and with this we'd be able to trivially support a new device just by adding it's DTB to the U-Boot image (or building a device specific one if need be) and adding it to LVFS.
Installing U-Boot
First-time installation is a tricky problem, we're obviously limited by whatever firmware is initially provided by the vendor. And it is far too easy to get stuck in the weeds trying to build something agnostic here. For qualcomm devices we can at least have something like https://flash.postmarketos.org/, as U-Boot is just flashed via fastboot.
I don't think it's reasonable to try and abstract this away from users. Beyond a certain point we're doing ourselves a disservice when we don't just say "hey, the manufacturer of this device sucks and they make it difficult to install your own software. We tried our best but you should vote with your wallet next time and/or complain to them".
Branding
To be honest, I would rather Tow-Boot didn't attempt to support Qualcomm platforms. I know upstreaming is slow going (I have ~120 patches in my branch...) but the situation is really good here, upstream DTBs are fully supported on Qualcomm, and all of the upstream DTS files are now synced to U-Boot. There is tentative work on newer SoCs going on, and older ones should be similarly trivial to support.
You'll find several opinionated configs and default environments in board/qualcomm in my integration branch which I fully intend to upstream as well.
Ideally, we can provide a consistent UX across Qualcomm devices. If you want to support a new device/platform, you can send clock/pinctrl drivers directly upstream, I will apply them upstream, and they will "just work" with my feature branch.
Get involved
Currently the main things that are lacking are documentation (as always :/ ) and also stuff like build system integration for generating Android boot images -- this would simplify the build process a lot as it's kinda convoluted right now.
We just merged support for a "generic SDM845" devices in postmarketOS, so it's now easier than ever to test out U-Boot based pmOS for yourself.
I'm really excited for what the future holds here, and especially getting LVFS up and running would be really huge!


ci: enable localCI in the continuous integration scripts

fixes #173
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

lgtm
Simple question - did we consider having localCI set PULL_REQUEST_NUMBER as an alternative route? I guess that is to say, make localCI somewhat Travis and/or Semaphore compatible?

@grahamwhaley that was other option, each CI defines its own environment variables

lgtm


Broadcast for the version of the player

Hello !
Could you add : when a player connects, a broadcast where it's written the name of the version.
Example : MylesIsCool joined the server with Snapshot 17w06a.

I would consider this bloating the console and for big servers, not something they would want, I'd suggest if you want this you consider making your own plugin using our API as it's easily possible. Otherwise, hope someone has made it / ask someone to make it for you.


push_to_gateway custom handler help

Hi, I am trying to write a custom handler to support client certificate authorization. I'm having some trouble understanding how custom handlers work and I was wondering if there are any examples I could reference.
This seems like a difficult thing to do with urllib and I can't seem to find any examples that don't use requests.
Any insight would be greatly appreciated.

Hello, you can see some examples for redirects and basic auth starting at https://github.com/prometheus/client_python/blob/master/prometheus_client/exposition.py#L317, if those are not enough, I recommend reaching out to the prometheus-users mailing list. On the mailing list, more people are available to potentially respond to your question, and the whole community can benefit from the answers provided.

Thank you @csmarchbanks. I appreciate your time.


Add support for deduplication testing

Add some basic support for testing deduplication feature.

Ability to set the producer name in the test client.
Ability to set the sendTimeout in the test client.
Ability to set the separator used between producername and threadnumber. As well as the topic and topic number. Defaults to '-'
Ability to customize format each payload record if enabled.

Ability to  customize/replace the formatting class which is used.
DefaultFormatter provided:
MetaData replacements: %p replaced with producer Name, %t nanoseconds when replacement occured, %i external messageId
Other replacements follow java sprintf formatting with %d %s %f %l with randomly generated strings or numbers.

Merlimat, RE the consumer side, I'm sure the consumer side would also benefit as well for a possible demo/software acceptance level validation. However, in my particular use case the validation and scanning for duplicates and lost records was easier implemented in the Data Sink which received the data  hence I did not invest extra to build a data validation layer within pulsar test client, only the ability to publish data using both the dedup enabled and dedup disabled.
Since, I did not have the requirement, it was not coded. And I did not want to assume that this was a requirement, as a poor implementation may show both strengths and weaknesses in the platform.  I can certainly take it in that direction. But would think that may be a separate PR.

/pulsar of rerun CI-CPP,Python Tests

This PR introduced a flaky test, reported as #10378. I have created a PR to fix the flakiness in #10379 . Please review.


recipes-test: Remove bootrr{,-init} from initramfs-bootrr-image

The bootrr and init script is now handled inside the CI
integration/mainline [1] jobs so don't need to have the into meta-qcom
layer.
The CI integration job now gets the last bootrr version and set the
initscript needed for boot the board [2][3].
[1] https://ci.linaro.org/job/lt-qcom-linux-integration/
[2] https://git.linaro.org/ci/job/configs.git/commit/?id=c7627a865
[3] https://git.linaro.org/ci/job/configs.git/commit/?id=132f0e8d0
Signed-off-by: Aníbal Limón<EMAIL_ADDRESS>

I plan to create a non machine specific test ramdisk and rename the recipe to don't suggest directly  bootrr because will be used for other purposes like functional testing.


Add navigation in page header

Links and static content for:

About
Standards (link to )
Open your data (link to openactive.io)

https://www.openactive.io/modelling-opportunity-data/
https://www.openactive.io/realtime-paged-data-exchange/
https://www.openactive.io/opportunity-data-primer/


tasks/buildah: respect user configuration for Syft

STONEBLD-2095
Syft makes many things configurable:
https://github.com/anchore/syft#configuration
For example, users can take advantage of this to get rid of false
positives. This will be useful for the Syft build itself:
https://github.com/redhat-appstudio/rh-syft/pull/21
Currently, our SBOM generation does not respect the user configuration.
Syft reads the config from the current working directory, not from the
target directory (https://github.com/anchore/syft/issues/2465).
Set the working directory to the root of the user's repository to ensure
we respect the configuration.

Testing in https://github.com/redhat-appstudio/rh-syft/pull/22

@chmeliik, are there any concerns that a user config may generate a less accurate SBOM (intentionally or not)?

Added a topic to the Feb 27 architecture call

Upon first review, LGTM. I think we should sync up with the docs team so that this gets properly documented in Konflux (otherwise, users might not even know this is possible).
I will run a few tests here so I can give you my final ack.

/retest

just a rebase

/retest

/retest

I believe tests are failing for the same reason as https://github.com/redhat-appstudio/build-definitions/pull/827#issuecomment-1977185422
The attestation was created 24 minutes after the image was pushed to quay.io
https://quay.io/repository/redhat-user-workloads/build-templates-e2e/test-app-832/devfile-sample-python-basic-qcxh?tab=tags&tag=latest

/retest

/retest


Can I set nmax and lmax larger?

I am using SOAP to describe the local atomic environment of amorphous materials. However, I notice that there is a limit for number of basis functions and lmax (nmax cannot exceed 12 and lmax cannot exceed 9).
I was wondering if I could set a larger value for nmax and lmax. That could help me to describe the local environment better.

Hi @lchaoyi,
When using the GTO-radial basis, there is a hard limit of lmax=9. This is simply because the analytical formulas have not been yet extended beyond that (very tedious work).
If you know that you need to have a more detailed sampling of the neighbourhood, I would suggest switching to the polynomial radial basis (in the SOAP constructor specify: rbf="polynomial"), which supports bigger lmax and nmax. This basis is a bit slower to calculate, but should be almost identical in terms of how well it can represent the local neighbourhood.
Hope this helps!

Thank you for your reply. That helps me a lot. However, when I set rbf as polynomial and let nmax be 18, the program shows ValueError：
Could not calculate normalization factors for the polynomial basis in the domain of real numbers. Lowering the number of radial basis function is advised.
Then I tried a smaller value of nmax (12), the program could run properly. I was wondering could I use Dscribe to depict local atomic environment with even larger number of radial basis function? Are there any ways to overcome this limit? (For example, could Dscribe get SOAP descriptor correctly when I set nmax as 18 ?)
Thank you for your generously help on this issue.

Hi @lchaoyi,
The problem that you are facing relates to the fact that if you try to fit too many radial basis functions to a small radius (small rcut), they are very hard to numerically orthonormalize. This is essentially the error you are getting. You have reached the maximum density at which the radial basis can be sampled with your current rcut. You can probably increase nmax by increasing rcut, but that does not make your radial sampling any denser, only makes the sampled area radially bigger.
Typically there is however little benefit in going to very large nmax and lmax values. This does, however, depend on the application you are interested in. I would suggest that you first ensure that your target property has not already saturated with respect to nmax and lmax. If you are still seeing big improvements beyond lmax>9 and nmax > 12, let us know so we might be able to see if the numerics can be made more stable. Hope this helps!

Hi @lauri-codes
Thank you for your information. I have a better understanding of SOAP descriptor. I would look into details of my projects and then find out the influence of number of radial basis. I would let you know if I really need large number of basis.
I really appreciate your generous help.


Update WindowsBuild.md

Clean up some of the windows recommendations.  This is motivated by trying to setup a clean environment with @keith.

migrate from toolchain to llvm-project for the LLVM project
extract swift and cmark from the llvm-project directory structure
use the EXTERNAL_PROJECT and ENABLE_PROJECTS properly
convert artifact fetching to use a command line tool to fetch the URLs rather than manually using a browser

This now reflects the standard checkout layout more closely.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@swift-ci please smoke test

Nice!


Looking for Example of InAppBrowser set up

Hi All,
Using oidc-client in Ionic, looking for an example of oicd-client using InAppBrowser with redirect to the app after login or signout.
Many Thanks
Paul

can you kindly explain the reasons why you do not recommend this library for native apps?
i am using it with Authorization Code with PKCE
thank you


where is train.h5?

thanks for your code!!
I can't find your train.h5. Where I can find this?  in your model.zip?

I have found this  thank you!!

How to achieve visualization？For example, key point detection visualization of pictures and videos?

Hi, thanks for interest in this work and sorry I do not have the visualization code formatted and arranged properly so I can't gaurentee its correctness. However you can find this code and suit it to your requirements!

Hello my friend! I have some question.
Currently, I have been able to implement some visual operations, but they are all based on the mpii dataset. I would like to ask, how to check the key points on my own data set, my data set does not have s (scale) and c (center), how to set these two parameters?
------------------ 原始邮件 ------------------
发件人: "Naman<EMAIL_ADDRESS>发送时间: 2019年10月4日(星期五) 晚上8:12
收件人<EMAIL_ADDRESS>抄送: "657361488"657361488<EMAIL_ADDRESS>主题: Re: [Naman-ntc/Pytorch-Human-Pose-Estimation] where is train.h5?(#12)
Hi, thanks for interest in this work and sorry I do not have the visualization code formatted and arranged properly so I can't gaurentee its correctness. However you can find this code and suit it to your requirements!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Hi, I don't think there is any easy option. In case you have gt. skeleon coordinates you can develop rought center and scale of person but otherwise you will need a trained detector to get rough annotations for your dataset


TodoMVC Example: note that example won't work if blocking 3rd party site data

The demo app isn't adding todos on enter.
Chrome OSX Version 53.0.2785.143 (64-bit)
https://vuejs.org/examples/todomvc.html

Works here, Chrome 53.0.2785.143.
Have you tested it without any extensions active (i.e. in an incgonito tab)?

I think I'd prefer to just fork that example so it doesn't use localStorage, as it's not an essential part of the demo.

localstorage is part of the TodoMVC spec:
https://github.com/tastejs/todomvc/blob/master/app-spec.md#persistence

@LinusBorg Ehh, OK. 😄  We'll add a note.

Same problem in Mozilla Firefox 45.4.0 (Debian stretch/sid). Nothing happens on <enter>. I don't seem to get a security warning either in the console when I press <enter>.
I block third-party cookies; if I accept all cookies, it works (as mentioned on MDN).
A warning would be nice because now it looks as if Vue itself isn't working, which is probably not the impression you'd like to make to people checking Vue's examples.

Just added a note.


Which version is compatible with django 1.6?

Hi!
Anyone knows which version of django-transaction-hooks is compatible with django 1.6?
Thank you!

See the latest version at https://pypi.python.org/pypi/django-transaction-hooks "django-transaction-hooks supports Django 1.6.1 and later on Python 2.6, 2.7, 3.2, and 3.3."

@carljm - Thank you!


Cannot load Scripting Addition on Macbook Air M1 2020

Hi! Im having an issue when trying to run the sudo yabai --load-sa command, where I get the following error:
could not spawn remote thread: (os/kern) invalid argument
yabai: scripting-addition failed to inject payload into Dock.app!

I've looked into fixing this through this issue: #1234, but none of the solutions that were provided worked (Changing boot args, fully disabling SIP, Uninstalling and Reinstalling SA, etc.)
Does anyone have another way to try and fix this issue?

 The M1 stuff hasn't been officially released but it's working well for me.

 Ventura 13.0 support isn't officially released yet but it's working well for me form master

I just tried it, and it doesn't seem to work still. I also get spammed by yabai wanting to be allowed with accessibility to control the computer, even though it is already allowed to. When I try to load SA it is the same error as before.

@DragonDev07 had the same issue, I think it's because you need to use the actual yabai binary (instead of just output of which yabai, which is a symlink). So whatever is the output of brew --prefix yabai)/bin/yabai basically.
Seems necessary both during self-sign step (as mentioned here), and when you add it to the accessibility settings.

@karlicoss I tried this, and it still doesn't work, giving the same error.

Follow the wiki instructions exactly as they are written, and it should work (does on both my machines anyway).
If you are still having issues, read this comment for instructions to debug your setup https://github.com/koekeishiya/yabai/issues/1515#issuecomment-1344070256


Compute the gradient color from the DOM for NamespaceSelect

Once on initial load, and the subsequently only when theme changes
have applied

Signed-off-by: Sebastian Malton<EMAIL_ADDRESS>Before: (This is on the beta for v5)

@aleksfront should I just use your diff? The problem I see with your fix is that it doesn't work for use in the Wizard.

@aleksfront should I just use your diff? The problem I see with your fix is that it doesn't work for use in the Wizard.

I will prepare a separate PR with those fixes.

This looks like a pretty complicated problem to nail down. At the same time, when I inspect the div.GradientValueContainer (both under light and dark themes), all I can see in gradient styles is:
element.style {
    right: 0px;
    background: linear-gradient(to left, rgb(255, 255, 255) 0px, transparent);
}

which ultimately amounts to no visible gradient at all, since the background color of parent element is white.

That would be it when used in a <Wizard>. But for instance on "Pods" view I see the following:

Alternatie fix https://github.com/lensapp/lens/pull/2761

This is a complicated piece of logic, but it has uses elsewhere and is documented very well, so LGTM

Closing because BG of transparent is now considered a bug, with that being static (wrt the theme) this will no longer be needed.


FIgure out the work needed for PubSub service

Out of curiosity, what would define this issue as done?

So far we treated this kind of an issue as "Add support for service X".
We kept this misleading title for consistency though I think we should stop doing that for future services and be more specific (or use this one for only getting the proposed API approved).

This was closed by #1085


Closed connection re-establishement behaviour

Hello @rueian!
I just came across one thing which I'd like to solve somehow. Let's imagine we have a Client and then the connection with Redis lost. For example, we can stop Redis server. Then quickly start it again.
In this case currently we get a behaviour that even though Redis is back, our next command issued to Redis over rueidis.Client (for some specific slot, which may be issued an hour after Redis restart happened for example) always returns EOF error. And only second command issued to Redis is successful.
It seems to me that connection re-establishement mark happens inside mux.pipeline method after we issue a command:
if resp = wire.Do(ctx, cmd); isBroken(resp.NonRedisError(), wire) {
	m.wire[slot].CompareAndSwap(wire, m.init)
}

At the same time in  the pipe._backgroundRead:
for {
	if msg, err = readNextMessage(p.r); err != nil {
		return
	}

– we get error from read when connection is closed (upon Redis stop) but it seems it does not mark it for re-establishement, so we will still get EOF when trying to issue next command over rueidis.Client, and no errors on subsequent commands.
One more thing I do not understand: it seems that rueidis does not PING all connections, only some of them. So the fact we have closed connection can not be discovered automatically soon after Redis available again. Dedicated connections are periodically PINGed, but general pipeline connections seems not. So connections are not re-established automatically.
This makes me think there are two possible ways to solve this:

When we receive an error from readNextMessage mark the connection in a way so that the next attempt to write a command over it will result in re-establishing the connection, so that we could avoid extra error on first command from application after some time.
PING all connections in background to detect closed ones and re-establish. So that from the application side temporary network loss works transparently. And internal connections of rueidis quickly come to live if Redis available again.
Probably combine 1 and 2

Theoretically I could add retries on app level if I am getting EOF from rueidis – but not sure this really required if can be handled internally by the library.

Hi @FZambia,

One more thing I do not understand: it seems that rueidis does not PING all connections, only some of them.

Currently, rueidis only does periodical PINGs after it starts pipelining because they are treaded as alternatives to ReadTimeout due to the fact that, after pipelining, there is no obvious way to set timeout to the net.Conn as we have discussed here.
In other words, currently, if there were no concurrent requests, client-side caching requests or pubsub subscriptions, then rueidis will just write the solely request to the net.Conn directly without batching and simply apply SetDeadline to the it.

This makes me think there are two possible ways to solve this:

When we receive an error from readNextMessage mark the connection in a way so that the next attempt to write a command over it will result in re-establishing the connection, so that we could avoid extra error on first command from application after some time.
PING all connections in background to detect closed ones and re-establish. So that from the application side temporary network loss works transparently. And internal connections of rueidis quickly come to live if Redis available again.
Probably combine 1 and 2

Theoretically I could add retries on app level if I am getting EOF from rueidis – but not sure this really required if can be handled internally by the library.

I agree. This should be better handled in this library and the combining both ways you proposed is the only solution, I think.
Again, though I already have some idea about how to implement it, it may still take some time.

I tried 3748f2ed1b8aad549c11d1e257fc86343e7e254d which looks close to make automatic re-establishement. It did not worked for me initially though, it seems that for general pipeline connections func (p *pipe) background() function is not called at all – so connection close not detected. As soon as I did sth like this:
+       p.background()
        if !r2 && !r2ps {
                if ver, ok := p.info["version"]; ok {
                        if v := strings.Split(ver.string, "."); len(v) != 0 {
@@ -169,9 +173,6 @@ func _newPipe(connFn func() (net.Conn, error), option *ClientOption, r2ps bool)
                                p.version = int32(vv)
                        }
                }
-               if p.onInvalidations = option.OnInvalidations; p.onInvalidations != nil {
-                       p.background()
-               }

All works fine - background routines start and connection closing/re-establishement works as expected. It seems I am still lacking some understanding of rueidis internals to properly reason about this change (as I am not sure how things work without running background - probably there is synchronous reading from the connection after issuing a command at some other place).

Hi @FZambia,
https://github.com/rueian/rueidis/commit/3748f2ed1b8aad549c11d1e257fc86343e7e254d only addresses the first part of your proposal:

When we receive an error from readNextMessage mark the connection in a way so that the next attempt to write a command over it will result in re-establishing the connection, so that we could avoid extra error on first command from application after some time.

I am still working on the second part:

PING all connections in background to detect closed ones and re-establish. So that from the application side temporary network loss works transparently. And internal connections of rueidis quickly come to live if Redis available again.

When the second part is finished, rueidis will be able to handle reconnection proactively without user engagement.

probably there is synchronous reading from the connection after issuing a command at some other place).

You are right. rueidis uses synchronous writing and reading until user fires concurrent requests or subscribes to pubsub channels. The p.background() invocation is the trigger making the *pipe actually start pipelining in background.

rueidis uses synchronous writing and reading until user fires concurrent requests or subscribes to pubsub channels.

I see, thanks for explaining! Do you think it's beneficial though? I mean always starting a background reading/pinging goroutine seems sufficient – it will anyway start in the hot path as we have concurrent requests, so trying to avoid goroutines while request rate is small or sequential should not produce big difference. Also connection closing may be detected immediately in many cases. Or am I missing sth here?

Indeed, it won’t have big difference. The only benefit is per sequential request latency will be smaller than pipelining in the background due to less goroutine switches.

Then do you think it's a good idea to reduce code complexity and reduce time to detect closed connections by always running background read and background ping? For me it seems as a logical thing as in concurrent usage case application moves to such state anyway. Plus it seems coming to this state as early as possible will make behaviour slightly more predictable right from the app start.

Hi @FZambia,

For me it seems as a logical thing as in concurrent usage case application moves to such state anyway.

Yes, application can trigger the underlying pipe to actually start pipelining very easily. Especially now, v0.0.87 released, I let it send background PINGs even in synchronous mode to detect closed connections proactively.
Therefore, synchronous mode can only be considered as a tiny latency optimization for sparse traffic or sequential usage.
But I think this optimization is still worth to have because sequential requests are not uncommon use cases.
Currently, the code complexity of the optimization is acceptable, I believe. It just use the p.waits counter to detect concurrent requests. Once detected then it triggers the pipe to actually start pipelining and never going back to synchronous mode.
Actually I am wondering if it is possible to go back to synchronous mode to provide lower latencies automatically. I haven't have idea how to implement such switching and it might be then really not worth to have in terms of code complexity.

Actually, I am not worried a lot about code complexity, it could be just a bonu I'd say my main concern is possibility to detect closed conns immediately what we can get when reading goroutine works. So that quick connection glitch was just unnoticeable by the app in most cases.

Yes, application can trigger the underlying pipe to actually start pipelining very easily

Sure, maybe AlwaysPipelining bool?

Sure, maybe AlwaysPipelining bool?

Thanks, works for me! May be also PipeliningMode: auto, always if you can imagine additional modes for the future or theoretically it can have more sense from the user perspective who expects that rueidis pipelines requests by default anyway.

Hi @FZambia,
AlwaysPipelining has been added in https://github.com/rueian/rueidis/commit/ba8001dce31d760731fcbcb105f76b6be2f88464.
And v0.0.88 is released with a fix to the performance issue introduced in https://github.com/rueian/rueidis/pull/151.
Please use the latest version if you have downloaded v0.0.87.

if you can imagine additional modes for the future

Many redis features rely on pipelining, such client-side caching and pubsub. So, I believe turning off pipelining is not an option. Therefore, there is probably no more modes I can imagine.

Awesome, many thanks - I updated rueidis version and it seems I now have an open road forward.


Run errcheck separately from gometalinter

Description:
To avoid timeouts, handle errcheck separately from gometalinter when make lint-required is run. The gometalinter command runs errcheck separately for each pkg, which means errcheck can't take advantage of caching after loading files for analysis. Loading and analyzing can be a slow process, making the use of caching important.
Issues affected:

Resolves #225

This change is

Based on the issue description, LGTM.

Comments from Reviewable


Multi instance migrations?

What will be happened if migrations run in two or more machines in parallel?

Can you give me a scenario please where you would do this?
The migrations run are stored in the db, so if run on two separate machines, only those not run on that particular db will be run.

Greetings, for example, if you update the code on several instances at the same time, it would be great to perform migrations on only one machine, I understand that it’s good to write safe migrations, but still )

If you have copies of the same db (e.g. for production, development x 3 etc) that is already handled - only migrations which have not yet run on the particular copy of the db you are migrating on will be run, so migrations are never run twice.
If you're talking about multiple databases running in production, you need some other way of keeping them in sync anyway like logical replication, and migrations should only be run against the primary db.
If that's not what you mean can you give a concrete example of the problem clearly describing the setup where you have a problem just now?


Pipelines to core modules

Treeview Imports from Pipelines.ViewImage - so Viewimage needs to be in core modules.
Idem for Pipelines.ViewMetaData in DeveloperTools
@JSousa-UoL can you check if you agree? I think anything that is called in CorModules should be a core module too - cannot be changed except by WEASEL developers.

I agree with you, but as mentioned before, scripts like this ViewImage and ViewMetadate were moved from CoreModules to MenuItems at the time (now Pipelines). This happened a couple of months ago as part of a restructuring task.
I'm ok to have a look at moving this back to CoreModules, but I'd like to hear some input from @IMI-TRISTAN. Is this doable with the current structure?

It should be Ok to move these modules to a new folder because the menu
building code takes the name of the module from the XML file and then walks
the Weasel folder structure looking for the location of that module.
On Wed, 17 Feb 2021 at 12:00, João Almeida e Sousa<EMAIL_ADDRESS>wrote:

I agree with you, but as mentioned before, scripts like this ViewImage and
ViewMetadate were moved from CoreModules to MenuItems at the time (now
Pipelines). This happened a couple of months ago as part of a restructuring
task.
I'm ok to have a look at moving this back to CoreModules, but I'd like to
hear some input from @IMI-TRISTAN https://github.com/IMI-TRISTAN. Is
this doable with the current structure?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/QIB-Sheffield/WEASEL/issues/41#issuecomment-780508817,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKUTUZGFNYAG4L3FOPJPRC3S7OVVDANCNFSM4XSIKPMQ
.


Update issue: Setup files are corrupted

hey guys. i am running on windows 10 pro v-1511 and code v-10.1 it's not updating automatically but it shows a pop-up, i click update now it closes the editor, i have tried to wait for 10 min it didn't work when i launched the code it was the same, what should i do ?  maybe it is because my windows is not activated ? i clean installed and lost my key.

Seems fixed.

joaomoreno it never works for me to be sarcastic !

@Johnaka, is it fixed?

joaomoreno nope if i could fix that i wouldn't be here

Is it constantly happening then? I mean the cycle of

Code reports there is an update.
You press Update Now
Editor closes.
Nothing happens.
You launch Code.
Code reports there is an update...

joaomoreno yep, it works perfectly, i could download and install but i don't wanna do it over and over.

this question you said happened during 0.10.2 updating, my two computer all met, but my cycle is

Code reports there is an update.
You press Update Now.
Editor closes.
A error report tell you the installer is not comlete.
You launch Code.
Code reports there is an update...
At last I had to go to visit http://code.visualstudio.com to download VSCodeSetup.exe and installed.

now it shows downloading update.... but nothing happens i have waited for 25 minutes with my 236kbs speed. it didn't update

this happened !

why can't you make it like google chrome ? i have never had troubles updating chrome. i actually never go there if it's updated or not. i am sure it will

Aha, an error! Good, we can do something about that.

thank you. can it be because of my internet speed ? it waves from 12 to 236 kbps ?

I am having the same issue, that only started yesterday (15 December) well after the 10.3 update.

vscode prompts that an update is available
When trying to update I get the the error prompt The setup files are corrupted
Re-installing a new vscode version 10.3 did not resolve the problem

oh i love you people. now that someone else has that issue i guess they will fix it

i think i know what causes that issue, it is internet. because i have the same thing happening when i download an app with my chrome browser, when internet bumps it gives me an error, and i start over.

also 'ext install' is not working

downloaded and installed v-10.05
noticed that in v-10.05 no highlighting
some time later new version has arrived
tried to update it told me
(Error) The setup files are corrupted. Please obtain a new copy of the program.
╫

Happened to me when VS code tried to update to version 1.1 from version 1.0

Also happened to me when VS code tried to update to version 1.1 from version 1.0

switched to Atom by github perfect my life is PERFECT now

Well I switched from Atom and have nowhere to go now.

when it comes to golang atom turns out to be better than vscode, vscode best for  typescript

always happens to me, I've never been able to update automatically, ofc, if you upgrade manually it works just fine(I'm on 8.1 x64)
thanks

I have the same issue with this update. It's easy to fix by re-downloading the installer, but still it would be better to have a button to re-download the update, or for VSCode to detect failed installs and re-download the update automatically.

+1 here.
Working from Costa now and VS Code starts to download newest version automatically. But unfortunately the file downloaded was somewhat corrupted. The first idea came into my mind was opening VS Code and triggered the check for update button again, but unfortunately I had to download the bits only from site.

Verified by code review.

It still happens to me with versions 1.5.2 -> 1.5.3 - on Windows 7.
And it was happening even with 1.5.1 -> 1.5.2, which I resolved by manually downloading and installing the "pure" setup package. And now it's still happening again.

Same issue here. Happened after a really bad internet connection. The download probably failed whereas VS Code assumed it downloaded correctly and keeps trying to install the failed download. Had to reinstall VS Code manually.

@fabrulana Is this Windows?

I'm experiencing this on a system where I have not previously installed Code.
Win 10, 64 bit.
Re-downloading the installer doesn't change the outcome unfortunately.
Neither does running it is administrator.

@mikeyjk Did you download it straight from https://code.visualstudio.com ? Can you give me the size and SHA1 of the Setup.exe you downloaded?

@joaomoreno thank you for your response! You were so prompt I missed it :).
I am now able to get past this issue, however the application is launching 'off screen', and no amount of win 10 tricks seems to be working (snap right, snap left, winkey + all arrows, right click + move).
Completely separate issue now, though.

@joaomoreno Sorry yes it was windows - also missed your comment like mikeyjk above.
@mikeyjk Use Alt+Space and then press 'm' key ... then move window with arrow keys.


Uploading prebuilt frameworks

Is there any reason you guys choose not to upload a prebuilt framework zip file with your releases? This would enable utilities like carthage to skip the manual build and just download the zipped framework.

See #383

Thanks!


StaticGeometry could calculate distance from a point using it's bounds

No longer relevant when new world system is implemented.


Remove lodash dependency to decrease global package size

Hi!
I am not sure if this repo is still active, but here is my contribution anyway.
I noticed that installing request + request-promise-native adds a whole 10Mb to my project.
The full Lodash is bundled and needed for only 4 basic functions (+1 for build).
I switch from lodash.isArray to Array.isArray, please tell me if this is a problem.

Coverage increased (+1.1%) to 100.0% when pulling 6c854e6d4f27d03d4737b3bd368466d0e295102d on kraynel:remove-full-lodash-dependency into 45c01b70d8cdbf8f662d1b6ce5754d9838a2e5ad on request:master.

Coverage increased (+1.1%) to 100.0% when pulling 6c854e6d4f27d03d4737b3bd368466d0e295102d on kraynel:remove-full-lodash-dependency into 45c01b70d8cdbf8f662d1b6ce5754d9838a2e5ad on request:master.

I've just seen https://github.com/request/promise-core/pull/7, so I guess you can close that one if you did not change your opinion on the subject.

+1, already discussed in #7 but this size reduction would still be beneficial for us :)

Ok I tried something new and extracted the lodash function into the lib. It has the advantage of adding no overhead and being self-contained, with the drawback of not profitting from any of the future lodash fixes.
As the copied code is quite short, I guess this could be acceptable.

Yes please!
This is the only thing dragging in the full lodash anymore, and we could save space in our build artifacts.
Was going to write a similar PR, but this is already better.

I created a patch too before seeing this and have thrown out all of the lodash functions used in production dependencies except isObjectLike() with one more generic typeOf() function. But is easily possible to inline this single function too.
Afterwards lodash.flatten is only used as devDependency...
Any thoughts as this patch here has not been merged by now?
https://github.com/sseide/promise-core/tree/reduce_lodash_dep
And hoping for lodash v5 is probably like waiting for Godot...


Support communication through a socket

Adds lsp4clj.server/socket-server, as an alternative to lsp4clj.server/stdio-server.
(lsp4clj.server/socket-server {:port "61235"})

This starts a socket server listening on the provided port, blocking until a client makes a connection. When the connection is made it returns a lsp4clj server that has the same behavior as a stdio-server, except that messages are exchanged over the socket. When the server is shut down, the connection will be closed.
@SevereOverfl0w, I'm going to say that this fixes #1. However, it wasn't clear from #1 whether you were hoping to analyze Clojure code. If you were, then there's more to do. At the risk of explaining things you might already understand, this project, lsp4clj, is agnostic about languages. All of the tools for analyzing Clojure code are over in clojure-lsp. lsp4clj provides the low-level communication tools that clojure-lsp is built on, but doesn't have any smarts about Clojure itself. If you'd like clojure-lsp to be able to listen on a socket, then feel free to open an issue over there. This PR will be an important prerequisite to that work. If you just wanted tooling to implement an LSP server that listens on a socket, then hopefully this PR has what you need.

This sounds exactly like what I need, thanks!

Great work @mainej!
Two thoughts on this though:
The way this is implemented makes us more reliant on the JVM. I was hoping we could get to a CLJS version at some point, so it might make sense to pull in the JVM stuff optionally? Not sure if you and @ericdallo see this as a goal.
Secondly, I wanted the same thing for websockets, just to have a more portable means of communication. Would you want to do this here or should I start it as a separate PR at some point?

Awesome work!
@Cyrik To be honest I didn't have the goal to offer support for cljs or websockets, since the LSP spec just mention stdio and sockets, so if we intend to support that, would be something custom, I don't see a problem with that, if we keep the code simple enough I'm ok with that.

The way this is implemented makes us more reliant on the JVM.

I know... I was reluctant to add a bunch of :import statements.

I was hoping we could get to a CLJS version at some point, so it might make sense to pull in the JVM stuff optionally? Not sure if you and @ericdallo see this as a goal.

I can definitely imagine a CLJC version of lsp4clj. Fundamentally lsp4clj is all about reading and writing bytes in a specific format, so there's no reason it can't work in CLJS. But there's a lot to refactor to get to that point.
Even before this PR, lsp4clj.json-rpc was highly tied to the JVM, depending deeply on java.io.InputStream and java.io.OutputStream. And since the logic in that namespace is crucial to interpreting LSP's flavor of JSON-RPC, the whole project is still very tied to the JVM. So that whole namespace would have to be re-worked.
Anyway, I'd say 👍 on CLJS (it would be a nice story about the evolution of lsp4clj) but 👎 on making that part of this PR.
If we do that work eventually, I think it'd be nice to maintain the public interface of lsp4clj.server. I view the rest of the project as implementation details. We can refactor it however we like to make it amenable to being used from CLJS. And even if we have to change lsp4clj.server, that'd be OK. It's a small enough user base that I wouldn't feel terrible about changing the API.

Secondly, I wanted the same thing for websockets, just to have a more portable means of communication. Would you want to do this here or should I start it as a separate PR at some point?

I can see some use cases for websockets. So yes, a separate PR would be great. Feel free to refactor the code in this PR however you like as you're doing that. I view this PR as a way to prove that something will work, not as a final decision about how this code should look.

Actually I'll make a few little changes to separate responsibilities a little. Might help support CLJS someday.

@Cyrik I've moved things around so that the java.net dependencies are only pulled in if you require lsp4clj.socket-server. I think it's better this way—thanks for the suggestion.
In retrospect, I wish lsp4clj.server/stdio-server was in its own (very small) namespace too. Then the README could say that you pick an implementation namespace (lsp4clj.stdio-server, lsp4clj.socket-server, or someday lsp4clj.websocket-server), use that namespace to create a server, then interact with that server through lsp4clj.server.

nice refactor, thanks @mainej!


Change Maximize text to Minimize when it is already maximized

Change the text from Maximize to Minimize in the model cards when they are already Maximized.
Minimized Card:

Maximized Card:

Whereas in the maximized version, the button should have text of Minimize

(Example Link: https://huggingface.co/facebook/musicgen-stereo-large?text=peaceful+music+for+studying)
Old PR (before the js files were removed from hub-docs): https://github.com/huggingface/hub-docs/pull/1138

Thanks a lot for working on it. Here is a suggestion to improve this part of the code.
Would you be down to add those changes: remove onClickMaximizeBtn and instead use bind:isMaximized
// WidgetWrapper.svelte
<script>
...
let isMaximized = false;

// remove the function onClickMaximizeBtn completely
...
</script>

<WidgetFooter bind:isMaximized {outputJson} {isDisabled} />

/// WidgetFooter.svelte

// update on click to toggle `isMaximized`
on:click|preventDefault={() => (isMaximized = !isMaximized)}

Thanks for the suggestion. I have made the changes, kindly review them.


Update dependencies.

Codecov Report
Patch and project coverage have no change.

Comparison is base (9427a79) 86.70% compared to head (a514091) 86.70%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #122   +/-   ##
=======================================
  Coverage   86.70%   86.70%
=======================================
  Files          29       29
  Lines         782      782
=======================================
  Hits          678      678
  Misses        104      104

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


For some reason it no longer returns value

… which always prints is already linked :(

Broken by this commit https://github.com/rnpm/rnpm-plugin-link/commit/801ae2fd0d436212870729207846835e0542a1c6#diff-e76d7672392aed2b927c3dedf1490560L96


Idempotency error on lists containing let .. in.

potentially linked to #243?
As of f97a163, Topiary throws an idempotency check error on
let foo =
  [
    let x = y in z
  ]

because the first phase formats it as:
let foo =
  [
    let x = y in z;
  ]

which the second phase then formats as:
let foo =
  [
    let x = y in z; ;
  ]

Fun facts:

The latter is actually valid OCaml, if I'm not mistaken, and is the singleton list containing let x = y in z.
After reaching these two semi-colons, Topiary becomes idempotent again and does not add more semi-colons.
This only happens in multi-line mode. The single line expression:let foo = [let x = y in z]

gets formatted as:let foo = [ let x = y in z]

which has a tiny spacing issue but is fine otherwise.

We have a real conundrum here.
The problem is that
[
  let x = y in z;
]

gets interpreted as
{ Node list_expression }
  { Node [ }
  { Node let_expression }
    { Node value_definition }
      { Node let }
      { Node let_binding }
        { Node value_name }
        { Node = }
        { Node value_path }
          { Node value_name }
    { Node in }
    { Node sequence_expression }
      { Node value_path }
        { Node value_name }
      { Node ; }
  { Node ] }

That is, the semicolon is parsed as a sequence delimiter, and not as a list element delimiter. So naturally, when Topiary parses the code a second time, it adds the missing semicolon.
The only solution I see would be to format the original code as
[
  (let x = y in z);
]

However:

this is a bit visually shocking,
this will cause other idempotency issues if the parenthesized expression is multi-line
it will have an even worse interaction with comments than what we already have

Both this issue and #243 clearly need addressing before the release of v0.1, and the only way I see it happening is if we stop enforcing the final delimiter on lists and arrays.
@aspiwack @torhovland @Xophmeister, what's your take on this?

We should normalise final delimiters. But maybe there is an argument that we can't quite yet and should drop it for v0.1
Some thoughts:

I went and checked: the tree-sitter grammar is correct: this ; is parsed as a sequence delimiter.  In particular [let x = 1 in x; ;] (space required) is parsed as a list of one element (you can't add a third ; though, which makes me a little bit sad).
As such it is of prime importance that if we add a ; after a let-expression, we parenthesise it: it needs to be (let x = y in z);. Otherwise, when adding an extra element[
  let x = y in z;
  "skippy the wonderdog";
]

Would, confusingly, be a single-element list! (Here I can add as many exclamation marks as I wish, so here are three more: !!!)
We also probably should think of how we normalise statement sequences. I assume that the right way is to remove a terminal semicolon there, as imperfect as it is, since 1/ there is no natural place to add a final delimiter 2/ we expect standard Ocaml code to have no semicolon. It's not fully necessary to normalise such final semicolon, as they are unlikely to be written to begin with. Except in lists like this, maybe, in which case they would almost always be a mistake (we only catch the case when the final statement is a let, but it's a start).

@nbacquey why are you afraid that the parenthesised version be failing to be idempotent in multiline settings?

Even if we succeed at tagging the last element of the list (and I'm really not sure how to do that, see https://github.com/tweag/topiary/issues/243#issuecomment-1421038366), we cannot simply surround it with parenthesis.
For instance,
let _ =
  [
    let x = y in
    z
  ]

would get formatted as
let _ =
  [
    (let x = y in
    z);
  ]

which isn't correctly formatted itself ; the correct format would be
let _ =
  [
    (
      let x = y in
      z
    );
  ]

However, to directly go from the first piece of code to the third one, we would need to check whether the encompassed node is multi-line.
Topiary isn't currently able to do that: it can only currently check the multi-lined-ness of a node containing a softline, or a node in a custom scope (and there are no correct nodes to which we could attach custom scope markers).

I think that the problem you are outlining is that we want the query to be called on the modified syntax tree, so that appropriate newlines are inserted. Alternatively, is it possible to duplicate the logic of parenthesised expression and inline it where we want to add parentheses? (I'm not saying it's a good idea, but it's good to know what is available to us).


Proposal: support more kinds of copy-all-properties

Ultimately, I'd like Tern to recognise the extend/mixin algorithm used by expresjs (see merge-descriptors):
function merge(dest, src) {
  Object.getOwnPropertyNames(src).forEach(function (name) {
    var descriptor = Object.getOwnPropertyDescriptor(src, name);
    Object.defineProperty(dest, name, descriptor);
  });
  return dest;
}

I am envisioning a set of incremental changes that I'd like to contribute:

Preserve iteratesOver flag when an intermediary variable is used.

for (var k in src) {
  var v = src[k];
  dst[k] = v;
}

Treat Object.getOwnPropertyDescriptor and Object.defineProperty in the same way as plain property-value assignment.

for (var k in src) {
  var desc = Object.getOwnPropertyDescriptor(src, k);
  Object.defineProperty(dst, k, desc);
}

Note: the example above is flawed as for..in iterates over inherited properties too, which will cause a runtime error (exception). I believe the type-analyser can afford to ignore such detail.

Treat Object.getKeys().forEach() and Object.getOwnPropertyNames.forEach() as for..in loop. Possibly add a flag to distinguish nuances of these three iterators.

With these three changes in place, Tern should support a much broader range of extend/mixin implementations.
@marijnh I'd like to hear your thoughts on this before I start implementing the changes, so that I don't waste time implementing features that you are not willing to accept.

which part do you expect to be expensive?

Instead of a single string type, we would be allocating new type objects to represent a lot of different string sets. Also, propagation of these types through functions would get a lot more complex.


Optimize log

Pull Request Test Coverage Report for Build 391

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.08%) to 79.05%

Totals

Change from base Build 389:
-0.08%

Covered Lines:
649

Relevant Lines:
821

💛  - Coveralls


Demos not working on IE9

Seems like angular is not initializing on the demos linked from readme.

It's probably console.log, if you're using a version before 0.1.3. Do the demos work with developer tools open?

Oh yes.

Will be fixed by PR #105


[ANN] Dev Status Update(mainnet)

Update 2020/10/27
Stopped at 4152605.
Problem: balance mismatch
Update 2020/10/29
The balance mismatch located.
Account: TLw48YQsUcKTkuPnn9nHjieacvntHADQaw
block #4137160 0xa33ca08a8cffff532fa43771527e145a63a37fca50dd1468632acc146e8e2d7a
An ExchangeTransaction
in opentron:
exchange sell #1000161:29218, buy #0:13516579895
while in javatron:
buy #0:13516579896
See-also: https://stackoverflow.com/questions/64586096/math-pow-in-java8-and-java13-returns-different-result
Update 2020/10/30
Recorded as #36. Fixed.

Update 2020/10/30
Stopped at block 4191802.

Update 2020/10/30
Stop at: 0xa58995a7160be51ec2388f749c8abe1468c0cac795a8e879f912837882e0d490 at block #4194116
thread 'main' panicked at 'protobuf decode error: DecodeError { description: "invalid wire type: LengthDelimited (expected Varint)", stack: [("CreateSmartContract", "call_token_id")] }', opentron/src/manager/executor/mod.rs:683:76

Update 2020/11/01
Stop at: 0x2293f1ec646c9c3bfc16aa9ad7867c702e14ba51bd82f4f5e8b09478bddf6754 at block #4255300
transfer from TXV5W1KHc4mAEUtReRycTwMW6Yaf1pZZsi to TVrNGFNUDvpqTiy1XJo1HAadSZ26YZvYMD with amount<PHONE_NUMBER>
insufficient balance

Update 2020/11/04
Stop at: 0xf6451b5238ad77c8024912343ea92267af247fb55fed03a02a21adfb801efee1 at block #4282748

Update 2020/11/04
Stop at: 0x8fdcc480c8bd869ec91dc515cb8c3d72aa0e49ade4452b9cc614c8a0a78a1260 at block #4452583
TVM contract result mismatch.

Update 2020/11/04
Stop at: 0x096a71541d3549230595b858a794abc41c89bffd035c79b16dd2933dc723b77f at block #4621946
TVM contract result mismatch.

Update 2020/11/06
Resync from genesis. sync speed=22block/s, the average txn process time is 0.2ms. (6core12threads, 32G)
NOTE: javatron's average txn process time is 5+ms for a typical cloud server.

Update 2020/11/06
Stop at: 0xe2be4dadd9c71e0b98716ec7b99f20ea2c657229df6688ed0f2e30af86c3c7b0 at block #4686682
TVM exit reason mismatch. required=Unknown, opentron=Revert.

Update 2021/01/15
Just had some busy days.
Resume developing.

Update 2021/01/15
Just had some busy days.
Resume developing.

Update 2021/01/16

Update dependencies, resolve compile errors

rocksdb 6.14.6, same version as brew

Now opentron should compile on all os

Update 2021/01/16

Update dependencies, resolve compile errors

rocksdb 6.14.6, same version as brew

Now opentron should compile on all os

Update 2021/01/18

Update to tokio 1.0
Refactor old graceful shutdown

Update 2021/01/18

Update to tokio 1.0
Refactor old graceful shutdown


Any plan to add nuxt.js as an option?

Overview of the feature request

Motivation for or Use Case

Related issues or PR

[x] Checking this box is mandatory (this is just to show you read everything)

Can you argue why Nuxt.js should be as an option ?
Can you give more details on how it could be done ?

I'd be happy to work with the Nuxt.js guys, they are French and we should meet sometime.
But I think your question is if the current team is going to do this: there's no plan on anything, it's OSS, things are done when people have time and will to do stuff.

We won't do it anytime soon, so I suggest to close this.


Timeouts Not Working

I'm evaluating Jedis and can't seem to get any of the timeout parameters to work. Here's the test code I'm using. It's pointing at a Redis instance that has been purposely stopped.
From looking at the code, this constructor should use the timeout parameter for both the connect and read timeouts but even if I use a different constructor I get the same result. That is, the call to "get" never returns.
Jedis jedis = new Jedis("localhost", 6379, 5000);
String value = jedis.get("test"); // this blocks indefinitely

I am on Mac OSX 10.11 and I'm using Jedis 2.7.3.

@dirges how / when did you stop the redis instance to generate a timeout?

The redis instance is a local one that I'm running in debug mode. I'm just manually stopping the process before I run the test case above.

@dirges which Jedis version are you running?

@dirges something is weird here. If you say you're stopping your redis instance before running the above code Jedis / Java throws a java.net.ConnectException: Connection refused exception when trying to connect to an ip/port that's not listening.
If you try to telnet localhost 6379 after stopping your redis instance. What do you get?

@marcosnils I feel like a dope but it appears the problem was on my end. I took a closer look at my process list and there was a second instance of redis running that seemed to be in some kind of unknown state. What's strange is that when I ran redis on a console in debug mode it never complained about being unable to bind to the default port and was definitely responding to my requests, yet, when I stopped it (and the old instance was still apparently running), Jedis behaved like I described. When I finally killed the old process and repeated my tests by starting/stopping the debug instance, everything worked as expected. I appreciate your help. Thanks.

anytime :). :+1: glad you're back on track.


plugin broken with current master of Jekyll

When upgrading to Jekyll master (rev: https://github.com/jekyll/jekyll/commit/68e633a56ec712acde4b2527b6f00125b419997a), then this plugin produces an error:
bundle exec jekyll s --watch --incremental                                                                                rriemann@mars
WARNING: Nokogiri was built against LibXML version 2.9.8, but has dynamically loaded 2.9.9
/home/rriemann/.rvm/gems/ruby-2.4.3/gems/jekyll-cache-1.2.0/lib/jekyll-cache.rb:11:in `<module:Jekyll>': Cache is not a module (TypeError)
        from /home/rriemann/.rvm/gems/ruby-2.4.3/gems/jekyll-cache-1.2.0/lib/jekyll-cache.rb:10:in `<top (required)>'
        from /home/rriemann/.rvm/gems/ruby-2.4.3/gems/jekyll-flickr-0.1.1/lib/jekyll-flickr/flickr_tag.rb:4:in `require'
        from /home/rriemann/.rvm/gems/ruby-2.4.3/gems/jekyll-flickr-0.1.1/lib/jekyll-flickr/flickr_tag.rb:4:in `<top (required)>'

The error comes from:
cache = Jekyll::Cache::FileStore.new 'flickr'

The reason is that Jekyll has changed how the cache works:

https://github.com/jekyll/jekyll/commits/55f0980716a2f3a032bdb1c578518d5f21230e4a/lib/jekyll/cache.rb
https://github.com/jekyll/jekyll/pull/7169
docs: https://github.com/jekyll/jekyll/blob/master/docs/_tutorials/cache_api.md

The error you are getting likely stems from a system build problem.  libxml2 and wherever you compiled nokogiri needs to be rebuilt.

The XML warning is just a warning and I have it for a long time already.
I fixed the problem already by:

removing your plugin
using Jeyll:Cache.new insteald of Jekyll::Cache::FileStore.new
and changing from #fetch to #getset

My gem has existed since well before Jekyll came around and made their own caching using an interface that is non-standard to most RubyGems.  I also use ActiveSupport::Cache which has existed also long before Jekyll created their diverging interface for caching.
I have no plans to change my interfaces to suite Jekyll.
Thanks!


Sqlite: Executing a migration results in a knex timeout

Describe the bug
When executing a migration using the sqlite driver the application appears to hang followed by the following error message:
Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?
Stack trace
 KnexTimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?
        at Client_SQLite3.acquireConnection (C:\Work\TypeScript\orm-bug\node_modules\knex\lib\client.js:348:26)
        at Transaction.acquireConnection (C:\Work\TypeScript\orm-bug\node_modules\knex\lib\transaction.js:213:28)
        at UnitOfWork.commit (C:\Work\TypeScript\orm-bug\node_modules\@mikro-orm\core\unit-of-work\UnitOfWork.js:173:17)
        at SqlEntityManager.flush (C:\Work\TypeScript\orm-bug\node_modules\@mikro-orm\core\EntityManager.js:457:9)
        at SqlEntityManager.persistAndFlush (C:\Work\TypeScript\orm-bug\node_modules\@mikro-orm\core\EntityManager.js:409:9)
        at SqlEntityRepository.persistAndFlush (C:\Work\TypeScript\orm-bug\node_modules\@mikro-orm\core\entity\EntityRepository.js:21:9)
        at Migration20201120112502.up (C:\Work\TypeScript\orm-bug\src\migrations\Migration20201120112502.ts:14:5)
        at MigrationRunner.getQueries (C:\Work\TypeScript\orm-bug\node_modules\@mikro-orm\migrations\MigrationRunner.js:34:9)
        at C:\Work\TypeScript\orm-bug\node_modules\@mikro-orm\migrations\MigrationRunner.js:22:33
    From previous event:
        at C:\Work\TypeScript\orm-bug\node_modules\umzug\lib\index.js:116:62
        at processImmediate (internal/timers.js:461:21)
    From previous event:
        at C:\Work\TypeScript\orm-bug\node_modules\umzug\lib\index.js:112:43
    From previous event:
        at Umzug.execute (C:\Work\TypeScript\orm-bug\node_modules\umzug\lib\index.js:112:9)
        at Umzug._run (C:\Work\TypeScript\orm-bug\node_modules\umzug\lib\index.js:279:19)
        at Umzug.<anonymous> (C:\Work\TypeScript\orm-bug\node_modules\umzug\lib\index.js:307:21)
    From previous event:
        at Umzug._run (C:\Work\TypeScript\orm-bug\node_modules\umzug\lib\index.js:306:10)
        at Umzug.up (C:\Work\TypeScript\orm-bug\node_modules\umzug\lib\index.js:198:17)
        at Migrator.runInTransaction (C:\Work\TypeScript\orm-bug\node_modules\@mikro-orm\migrations\Migrator.js:207:45)
        at C:\Work\TypeScript\orm-bug\node_modules\@mikro-orm\migrations\Migrator.js:202:70
        at C:\Work\TypeScript\orm-bug\node_modules\knex\lib\transaction.js:184:22

To Reproduce
Steps to reproduce the behavior:
I have created a minimal-repository to reproduce this issue.
You can find it here: https://github.com/rmuchall/orm-bug

npm install dependencies
run npm start script

Expected behavior
The migration should execute successfully without hanging.
Additional context
N/A
Versions

Dependency
Version

node
v14.15.0 LTS

typescript
4.1.2

mikro-orm
4.3.0

your-driver
@mikro-orm/sqlite 4.3.0

You should not use EM inside migrations, definitely not like this. Once #929 will be finished, this will be better suited for the seeder package.
What you can do is to use the driver provided in the Migration class:
async up(): Promise<void> {
  await this.driver.nativeInsert(User, { name: 'Rob' });
}

Thanks @B4nan!
I shall modify my code as per your suggestion :)

This has indeed fixed my problem. Many thanks for your assistance.


How to change the color of the Window Split line?

The color of split line is similar to the background, it is a bit difficult for me to figure out the boarder for each windows, so I want to change the color of split line
Could some one tell me how to do that?

Something like
require('tokyonight').setup {
    on_colors = function(c)
        c.border = c.blue0
    end,
}

yeah, i just find it in discussion😃

Just in case anyone is trying to figure out how to change color of the window split line in LazyVim; I got it to work by changing my lua/plugins/core.lua file like so:
return {
  {
    "LazyVim/LazyVim",
    opts = {
      colorscheme = function()
        local tokyonight = require("tokyonight")
        tokyonight.setup({
          style = "moon",
          on_colors = function(c)
            c.border = c.blue0
          end,
        })
        return tokyonight.load()
      end,
    },
    -- ...
  },
  -- ...
}

I don't know if this is the best way to solve this problem, but it worked for me 🤷♀