Display errorObject alongside message

Fixes #737, hopefully for real this time.
In simplifying my fix I had accidentally removed the part that was essential because I had tested it on a bad example.   errorObject sometimes contains what's necessary to fully describe the error, and I've verified it with the case mentioned in #737 that's still valid in strong mode:

putting this on hold for a moment.  It seems sometimes errorObject is needed, and sometimes it duplicates information already displayed.

Latest patch makes this work properly too, without doubling up on part of the error message.  (The example is only valid in Dart 1 land, but want to be sure that any other exceptions of the same type are handled).

PTAL: the try/catch method of handling exceptions is more portable and appears to work not only on Chrome, but on Firefox/Safari as well.
I've also reformatted how they appear to be closer to what the VM outputs for an exception.

A version of the Dart 2.0 supporting dartpad with this patched in is now available at https://dart2-test-dot-dart-pad.appspot.com/.


Is it possible to map watchers?

Hello team,
Is it possible to map the watchers in Jira with the followers in Azure?
I'm not sure about the "target" value.
{
"source": "watcher",
"target": "what's the value here??",
"mapper": "MapUser"
}
Thank you and Best Regards,
Ana

@anamarioc Sorry for the late response, but at the current time Azure Devops does not support this action.
If you have other problems feel free to contact us.

@madkoo that's ok, thanks for the reply.


Use post_install script

Once https://github.com/aiidalab/aiidalab/pull/295 is merged and released in a new docker image, we should be able to put all extra install instructions (e.g. setting up orca code node, installing xtb-python) in a single post_install scripts. This should alleviate all the extra steps that are currently needed for installation.

post_install is created, but we are now using our own Docker image so it is not as urgent. It only installs the orca code node. xtb-python cannot be installed in this way due to permissions, needs to be included in the docker image. Still need to test this whether it actually works with newest aiidalab.

Tested with most recent aiidalab-docker-stack:latest, this now works after a fix in 89e9911


Feat/survey stepper

IMPORTANT: Please do not create a Pull Request without creating an issue first.
Any change needs to be discussed before proceeding. Failure to do so may result in the rejection of the pull request.
Do not change the following line aside from replacing YOUR-ISSUE-HERE with the issue this PR fixes
fixes https://github.com/COVID-19-electronic-health-system/Corona-tracker/issues/391
Please provide enough information so that others can review your pull request:
Explain the details for making this change. What existing problem does the pull request solve?
Test plan (required)
Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes UI.

Final Checklist

[x] Have you bumped the version in package.json?

Second decimal for major change, third decimal for minor change. This can go past 10 i.e. 1.0.9 !=> 1.1.0, 1.0.9 => 1.0.10
Read here for more info

[ ] Have you added any new tests necessary?
[x] Is your PR rebased off the most current master?
[x] Have you squashed all commits, or if you will merge will you squash all commits?
[x] Did you use yarn, not npm?
[x] Did you use Material-UI wherever possible?
[x] Did you format according to Prettier?
[x] Did you run all of your most recent changes locally to make sure everything is working?

When you rebase to the master you will find that there is a new fourth survey now.
I am not sure if should be added or not @SomeMoosery

Thanks! @AdhamAH I just rebased and made some changes with the step 4

@liadove Nice work! Thanks for cleaning the warnings

That's why we need two reviews for each PR, so if some lazy eyes like me miss something more sharped ones will catch it.  I guess because they weren't used. Do you know what I can do to avoid errors?

@liadove I was thinking actually deleting the lines, not just uncommenting them.

they will be used later, I think it is easier they way she made them

Sounds good

@acthelemann @AdhamAH Thanks for reviewing, I will leave it as it is

Then I will merge and if needed I can delete them in my PR as I need to rebase any way @acthelemann @liadove


ES5 Version

https://github.com/azu/kvs/tree/master/packages/storage and https://github.com/azu/kvs/blob/master/packages/storage-sync/README.md use AsyncIteator or Iterator.
They are not compatible ECMAScript 5.
We can add storage-loose interface that does not user Iterator interface.

There was no need


Re-orgnize the controllers package

What type of PR is this?

/kind chore
What this PR does / why we need it:
It can help contributors to understand all the controllers.
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:

I deleted an useless CRD: fake
Does this PR introduce a user-facing change??

None

/cc @kubesphere/sig-devops


Service "ObservationsReports/FeatureServer" missing a layer

Service d518e58360304d26a1dc4ab78aa45e29 ObservationReports used to have a layer 0, now it only has layer 1 "SaluteReports". Many web maps references layer 0.

@elinz Do i need to republish this item to get the item layer to change?

@topowright yes you will need to republish.

@elinz This has been fixed

I can verify that the only layer is layer 0. I am closing this issue.


sgd code cleanup for topic entity tag UI

@azurebrd OK it totally makes sense!

Will change the names

fixed the two function names to 'tetTextArea' and 'tetPulldownMenu'. Thanks @azurebrd


llvmlite error during installation

error: legacy-install-failure
× Encountered error while trying to install package.
╰─> llvmlite
I don't know what's wrong with this package

llvmlite is a dependency for Numba which is a requirement for our package. According to its maintainers though, It is not compatible with newer versions of python yet. So, here we provide two solutions as follows:
1-	Try to install our package with former versions of python e.g. Python 3.8
2-	Install llvmlite manually before installing our package using the following code: pip3 install llvmlite==0.31.0


Move to the Stolostron Quay and GitHub orgs

Signed-off-by: Stephen Kitt<EMAIL_ADDRESS>

/cc @tpantelis @sridhargaddam

/approve

/cherrypick release-2.4
/cherrypick release-2.3


Enabling a routing channel gives Incorrect Reference error

Reproduction Steps:

Create a routing channel
Disable it via toolbar button or right-click menu
Enable routing channel....notice error

I can't reproduce this. I did see this during development, but put in a change that should have fixed it. Can you reliably reproduce this on your machine?

This is a race condition in System Explorer. In the GUID validation, we ensure the current GUID is either an enabled channel or a disabled channel. But before we do that check, we set the new GUID.
The problem is that in the check for an enabled channel, the GUID is for the disabled channel, but by the time we check the disabled GUID, the channel now says it's enabled, so both checks fail even though the GUIDs are actually valid.


Create ProcessProfilerBase and treat NoSuchProcess as DEBUG

Description
Started with logging NoSuchProcess exceptions from profilers as DEBUG, not ERROR.
Then created ProcessProfilerBase to reduce code dup, it was time...
Motivation and Context
Reduce the error logs & reduce code dup.
How Has This Been Tested?
CI
Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have updated the relevant documentation.
[ ] I have added tests for new logic.

@alonbentamar can you approve please? Or dismiss your review.


test: [DNM] kernel fragments support

Depends-on: github.com/kata-containers/packaging#646
Fixes: #1234567
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

/test

/test-fc

@grahamwhaley @ganeshmaharaj @egernst  FC CI is happy :smile:  . Next step is to check SRIOV / VFIO

nice @devimc - thanks!
metrics unhappiness is understood - suspect I need to update a PR for that:
21:52:08 .ci/jenkins_job_build.sh: line 167: .ci/run_metrics_PR_ci.sh: No such file or directory

/test

/re-test


[expect] Allow creation of custom asymmetric matchers.

🚀 Feature Proposal
This is a dog food feature request for the expect package.
Expect's internal matchers are defined using a powerful but private API: classes extending AsymmetricMatcher. While it is currently possible to import AsymmetricMatcher from expect's internal modules, it is not documented and expect.extend does not understand matchers defined as AsymmetricMatcher derivates. See this line where all non-internal matchers are assumed to be functions and wrapped in an AsymmetricMatcher.
I propose to document AsymmetricMatcher, give it an export symbol from the expect package, and modify expect.extend to wrap function type matchers in CustomMatcher (as is done already), while not performing any wrapping on matchers which extend AsymmetricMatcher.
Motivation
Providing complex named assertion types is done to facilitate the best possible messages for developers (and non developers!) when things break. By allowing matcher authors to create new asymmetric matchers they can better fulfill their goals, making Jest more powerful (without being any more complex) for end users.
Example
I am building assertions helpers for iterators. For example, I would like create
expect(iterable).toBeIterable()
It should pass if Symbol.iterator exists and is a function. not.ToBeIterable should pass only if Symbol.iterator does not exist.
Pitch
As proposed Jest API surface, this can't NOT be in the core platform.

I think we had an issue for that, but I'm on mobile so it's hard to find

I searched all the open issues for "matcher" and didn't find anything in that list.

Found it: https://github.com/facebook/jest/issues/4711.

Can we close this then? ;)

Actually I can't tell why the other one was closed. They seem to have come to the same conclusion, that it would be necessary to expose and document the AsymmetricMatcher class, however that issue was closed after #5517 was merged. This confuses me, because that PR does not change the Jest API, it only adds a few more internal asymmetric matchers.

We added custom asymmetric matchers in Jest 23, is this different?

Huuuuh? Those are symmetric matchers though. While their messages can be different when invoked in inverse, there is only one condition. The asymmetric matchers I am referring to have an inverse (.not) success condition which isn't a boolean not of their non-success condition. An existing example of this is expect.objectContaining.

Yeah these are the same thing 😄
Check out the implementation here: https://github.com/facebook/jest/pull/5503/files#diff-033f219e5ac882702ea47d090593655fR57. Looks like we map the API of AsymmetricMatcher to the other matchers
Up for discussion on the limits/benefits of the API

OK, I took some more time to see exactly what that feature is. I see now that it does allow asymmetry in matchers that are otherwise symmetric, but only with regard to matcher nesting.
This does, I think, solve my 80% use case, and I see how it solved the use cases presented in the other issue.
I still think that it makes sense to pursue this a bit further, because protocols have become a standard part of javascript life. In a protocol you use Symbols to attach data that fulfills a particular contract to an instance. For exmaple the Iterable protocol is satisfied when [Symbol.iterator] is a function which returns and iterator.
Symbols are the key to this pattern because they make intent unambiguous. It isn't possible that, say, you're accessing a data object that just happens to have a property named iterator defined. Thus when protocols are consumed, it isn't convention to guard them with checks like:
typeof obj[Symbol.iterator] === function && obj[Symbol.iterator]

While this is well and good, Symbol.iterator is a well known symbol, and as such it is expected to show up in userland code, and thus mistakes can be made, like assigning null to it.  I would argue then that well written tests should guard against this kind of mistake.
The matcher that checks for proper protocol implementation, however, must be fundamentally asymmetric. If the symbol is found, the remaining conditions of the protocol must be fulfilled in order for the protocol to be satisfied and the code to be correct. If the assertion is that the protocol is not present, then the symbol must not be found.
I'm intrigued by the possibility, however, that what I'm suggesting is simply a new internal matcher along the lines of satisfiesProtocol.

One possible version of satisfiesProtocol might look like:
expect.registerProtocol(Symbol.iterator, value => {
  const pass = typeof value === 'function';
  return { message: () => '...', pass }
}

expect.satistfiesProtocol(Symbol.iterator, myIterable);

The weakness here is that for more complex protocols it may be desirable to have a

The argument against this is that there's no way to know whether a Symbol's value satisfies a particular contract. At most you'll be able to check the type of whatever's on there. To verify a Symbol.iterator method for real you'd have to try calling it and pass its result along to, say, Array.from. This is not something an expect assertion should be doing. This should just be a test that is included whenever you override a symbol.
So I guess this suggests that when writing tests about protocols, you should simply check for a protocol's Symbol if you want to know if the protocol is present (which is symmetric). If you have implemented the protocol yourself, you should test your implementation.

OK here's what I've got so far:
expect.extend({
  toBeIterable(received, argument) {
    let pass = Symbol.iterator in received;
    const iterator = received[Symbol.iterator];

    if (pass && argument && typeof argument.asymmetricMatch === 'function') {
      return {pass: argument.asymmetricMatch(iterator.call(received))};
    }

    return {
      message: () =>
        this.utils.matcherHint(`${pass ? '.not': ''}.toBeIterable`) +
        '\n\n' +
        `expected${pass ? ' not' : ''} to find a [Symbol.iterator] property, but Symbol.iterator was:\n` +
        `  ${this.utils.printReceived(received)}`,
      pass,
    };
  },

  yields(received, ...args) {
    let pass = args.reduce((pass, arg, i) => {
      return pass && arg === received.next().value;
    }, true)
    const done = received.next();
    pass = pass && done.done;
    return {
      message: () => `Didn't do the thing.`,
      pass,
    }
  },
})
function* iter() {
  yield 2;
  yield 4;
  yield 6;
}
expect(iter).toBeIterable(expect.yields(2, 4, 6))

This code works, (succeeds and fails in the correct situations), however the failure message of the inner expect is lost. I don't fully understand, from the perspective of Jest's design, why the message would be discarded. I'm presuming it has to do with matching the Jasmine API.

@conartist6 but can you access any utils via this in the yields matcher?

I confirm that message from custom AssymetricMatcher is completely ignored. Also no utils are accessible this and it probably should be reflected in the docs, otherwise it's confusing.

This looks more like a bug (error message not shown, if I understand correctly?) than a feature request - seeing as we do have expect.not.toBeMyCustomThing(). Mind opening up a new issue as a bug report?

Here: https://github.com/facebook/jest/issues/7492

Hey guys, reanimating this old issue.
I came across this because I have this data structure (which I have already simplified for this issue):
type DiscoverEvent = [
  string,
  boolean,
  number,
  Advertisement,
];

interface Advertisement {
  localName?: string;
  txPowerLevel?: number;
  manufacturerData?: Buffer;
  serviceData?: Buffer;
}

So when I write my tests I want to see if my data matches my expected data:
const data = [
  "ae3f",
  true,
  4,
  {
    localName: "foobar"
  }
]

expect(data).toEqual(
  expect.arrayContaining([
    expect.any(String),
    expect.any(Boolean),
    expect.any(Number),
    expect.objectContaining({
      // difficult
    })
  ])
);

So the problem is that I'd like to use an asymmetric matcher that I can use within arrayContaining. As I understand it, I could not just use jest.extend because I could only write a custom matcher with that, like
expect(data).toBeAdvertisement();

which would work on its own, but I could not do this:
expect(data).toEqual(
  expect.arrayContaining([
    expect.any(String),
    expect.any(Boolean),
    expect.any(Number),
    expect(data[3]).toBeAdvertisement()
  ])
);

right? So to validate a data structure like this I would need a mechanism to write a matcher that can be used alongside with arrayContaining or objectContaining

I still really want this for iterables. To reiterate, I want it because when I write
a toBeIterableOf matcher I need two separate kinds of error messages:
"expected ... to contain items ... but instead got ..."
and:
"expected ... to be an iterable, but did no iterator was defined"
My use case is definitely not solved for yet.

@LukasBombach
When you jest.extend  asymmetric matchers get created for you.  I am going to open an issue for this being mentioned in the documentation.
In case you were not aware the arrayContaining is not strict, it does not care about order.
Below is a custom matcher that works in your example.
The additional typing provides for a type safe expect object for working with your custom matchers and the custom asymmetric matchers.  It also corrects definitely typed.  I will create a pull request for the correction and the additional JestExpectAndCustomMatchers.
describe('adding custom matchers with expect.extend creates Asymmetric Matchers',()=>{
    //this corrects definitely typed
    type JestExpect=JestExpectProperties&{(actual: any):JestExpectations}
    //Typesafe custom matchers
    type RemoveFirstFromTuple<T extends any[]> =
    T['length'] extends 0 ? [] :
        (((...b: T) => void) extends (a:any, ...b: infer I) => void ? I : [])
    type FunctionWithoutFirstArg<T extends (...args: any) => any>=(...args: RemoveFirstFromTuple<Parameters<T>>)=>ReturnType<T>
    type CustomThrowingMatcher<T extends (...args: any) => any>=(...args: RemoveFirstFromTuple<Parameters<T>>)=>void
    type CustomResolveRejectMatcher<T extends (...args: any) => any>=(...args: RemoveFirstFromTuple<Parameters<T>>)=>Promise<void>
    type JestMatchers<R>=Omit<jest.Matchers<R>,'not'|'resolves'|'rejects'>
    type JestExpectations=
        JestMatchers<void>&
        {not:JestMatchers<void>}&
        {rejects:JestMatchers<Promise<void>>&{not:JestMatchers<Promise<void>>}}&
        {resolves:JestMatchers<Promise<void>>&{not:JestMatchers<Promise<void>>}}
    type JestExpectProperties={
        [K in keyof jest.Expect]:jest.Expect[K]
    }

    type JestExpectAndCustomMatchers<T extends jest.ExpectExtendMap>=
        JestExpectProperties&
        ((actual: any)=>
            JestExpectations&
            {[K in keyof T]:CustomThrowingMatcher<T[K]>}&
            {not:{[K in keyof T]:CustomThrowingMatcher<T[K]>}}&
            {rejects:{[K in keyof T]:CustomResolveRejectMatcher<T[K]>}&{not:{[K in keyof T]:CustomResolveRejectMatcher<T[K]>}}}&
            {resolves:{[K in keyof T]:CustomResolveRejectMatcher<T[K]>}&{not:{[K in keyof T]:CustomResolveRejectMatcher<T[K]>}}}
        )&
        {[K in keyof T]:FunctionWithoutFirstArg<T[K]>}&
        {
            not:jest.Expect["not"]&{[K in keyof T]:FunctionWithoutFirstArg<T[K]>}
        }

    function expectExtend<T extends jest.ExpectExtendMap> (matchers:T):JestExpectAndCustomMatchers<T>
    {
            expect.extend(matchers);
            return expect as any;
    }

    it('should help LukasBombach',()=>{
        interface Advertisement {
            localName?: string;
            txPowerLevel?: number;
            manufacturerData?: Buffer;
            serviceData?: Buffer;
        }

        const isMatching=(received:any,match:(received:any)=>jest.CustomMatcherResult | Promise<jest.CustomMatcherResult>)=>{
            return match(received);
        }
        const extendedExpect=expectExtend({isMatching});

        function expectData(data:any,match:boolean){
            function hasProperty<T>(properties:Array<keyof T>){
                return extendedExpect.isMatching((entry)=>{
                    let pass=false;
                    for(let i=0;i<properties.length;i++){
                        pass=!!entry[properties[i]];
                        if(pass) break;
                    }
                    return {
                        pass,
                        message:''
                    }
                })
            }
            function isAdvertisement(){
                return hasProperty<Advertisement>(["localName","manufacturerData","serviceData","txPowerLevel"]);
            }
            let matchers=expect(data);
            if(!match) matchers = matchers.not;

            matchers.toEqual(
                expect.arrayContaining([
                  expect.any(String),
                  expect.any(Boolean),
                  expect.any(Number),

                  isAdvertisement()
                ])
              );
        }

        expectData([
            "ae3f",
            true,
            4,
            {
                localName: "foobar"
            }
        ],true);

        //just to demo arrayContaining
        expectData([
            {
                txPowerLevel: 42
            },
            "ae3f",
            true,
            4,

        ],true);

        //different property
        expectData([
            "ae3f",
            true,
            4,
            {
                else: undefined
            }
        ],false)

        //missing entry
        expectData([
            "ae3f",
            true,
            4
        ],false);

    })

})

Oh wow, what a detailed answer, thank you so much @tonyhallett

@LukasBombach no problem although I was incorrect with part of my custom typing.  I will revise.


fix: psql utility

As reported to @samwillis through electrify discord I discovered a problem with electric-sql psql utility that, if you didn't start the proxy with electric-sql start --with-postgres the electric-sql psql utility would fail to connect to the database. This PR adds a fallback that forces runs the connection using the host machine, still need to check if the host machine has psql installed to perform the connection, but I tested like this and it worked just fine. Before actually making that check I want to see the opinion of the owners of the project about this solution.

👋 we've been working the last month on a rebuild of the Electric server over at a temporary repo https://github.com/electric-sql/electric-next/
You can read more about why we made the decision at https://next.electric-sql.com/about
We're really excited about all the new possibilities the new server brings and we hope you'll check it out soon and give us your feedback.
We're now moving the temporary repo back here. As part of that migration we're closing all the old issues and PRs. We really appreciate you taking the time to investigate and create this improvement!


Add query example code

I add query example code because this behavior is unexpectedly to me.

Hi @deltam
Thank you for your PR.
Although it is possible to write code like this, but this is not a suggested way ;(
Thank you anyway.


euclidean_cluster package with Gazebo

As I mentioned here am trying to use Gazebo and I am running into some issues that may be either due to the fact that I am a new user or because (as it says in the README.md, Gazebo is not supported for ROS-kinetic).
Steps to Reproduce the Problem

Launch Gazebo under the Simulation tab
Click on the euclidian_cluster app

Then I get this error:
[ INFO] [1509676972.763606801,<PHONE_NUMBER>00]: vectormap_filtering: Could not find a connection between 'map' and 'base_link' because they are not part of the same tree.Tf has two or more unconnected trees.
[ INFO] [1509676972.764039357,<PHONE_NUMBER>00]: Euclidean Clustering : 0.000000
Could not estimate a planar model for the given dataset.
[ INFO] [1509676972.803600916,<PHONE_NUMBER>00]: vectormap_filtering: Could not find a connection between 'map' and 'base_link' because they are not part of the same tree.Tf has two or more unconnected trees.
[ INFO] [1509676972.803653652,<PHONE_NUMBER>00]: Euclidean Clustering : 0.000000
Could not estimate a planar model for the given dataset.
[pcl::SampleConsensusModel::getSamples] Can not select 0 unique points out of 0!
[pcl::RandomSampleConsensus::computeModel] No samples could be selected!
[pcl::SACSegmentation::segment] Error segmenting the model! No solution found.
[pcl::SampleConsensusModel::getSamples] Can not select 0 unique points out of 0!
[pcl::RandomSampleConsensus::computeModel] No samples could be selected!
[pcl::SACSegmentation::segment] Error segmenting the model! No solution found.

Looking at the tf

It can be seen that indeed, the map frame is not connected to the base_link. Should the mobility link be connected to the base_link?
While I could go mucking around to try and fix this, I do not want to do something that is silly because I am a new user of Autoware and help would be much appreciated! Thanks!
Specifications

Ubuntu version: 16.04
ROS Version: kinetic
Autoware branch: master
Gazebo Version: 8

@huckl3b3rry87 I am afraid that no-one is really using this version of gazebo to be able to help off the bet. I think that it would really make sense that completely switch to Gazebo 8 as mentioned in #758. We could definitely help integrating it with the current state of topics and services in Autoware.

So, is Gazebo 7 working fine with Autoware? Is this tree connected etc.?

@huckl3b3rry87 the simplest answer is that we do not know as noone had enough time to give it enough test. That is also why I would not bother it and go directly to Gazebo 8 (https://www.osrfoundation.org/simulated-car-demo/) which OSRF supports.

@dejanpan thank you for your response. I am familiar with car_demo, I actually posted an issue a while ago here. Among other things, If you look at my first post under 1. ,, long story short; I was hoping that we could build car_demo into something exactly like Autoware, but that was before I found Autoware. I really like what you guys (and gals) have done here and think it is better for me to start here.
I was simply wondering if it works with Gazebo 7. Personally, I do not have a strong affinity towards Gazebo 8 and if Gazebo 7 is working fine, I might consider just doing that.

@huckl3b3rry87 the error shown in Euclidean cluster basically means the input cloud is empty (There are no points in the received message)
I haven’t used Gazebo so I really cannot help you there.


mage.quit, mage.exit

Renamed mage.quit to mage.exit
Created a new mage.quit function that forwards the exit
request to the master process.

Requires #151
Fixes #140

If a module's setup causes an issue, does it not end up in an endless error-loop? Maybe that was already always the case though... Enlighten me please, oh wise one :)

I have module setup timeouts sometimes and have never seen this issue. What do you see that might change things in a way that it would be an issue now?

Fixed jsdoc issues.

Well that's the thing. I may have always been a problem.
What I saw was that module setup failure calls mage.exit(). So if a module always fails (due to some bug), the master process will never shut down in failure, I guess? It'll just keep rebooting workers until the universe ends or something?
I'm not saying this PR introduces an issue. I think it may have made an existing issue more obvious.

About module setup: I don't believe this occured in the past, at least not on my projects (had cases of timeouts, for instance)


fix: compute numeral constant on typed objects

Remove the spurious constraint that a constant must be untyped
when testing for arithmetic properties.
Fixes #631.

I agree with your suggestion to apply this PR (with additional test on isNatural), and keep #631 open for now.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: mvertes:x: mplYou have signed the CLA already but the status is still pending? Let us recheck it.


Prevent hiding the placeholder

According to the sources there isn't any right way to prevent hiding the placeholder on focus, for example, to do something like the text area here:
https://vuematerial.io/components/input/
Are there any plans about it?

The text you're seeing in that example is the label tag above the textarea, not the placeholder. Those two have different semantic meaning (especially around accessibility), so it's probably a good idea to keep them separate.

    Textarea
    <textarea id="md-textarea-1mm3pqoi" class="md-textarea"></textarea>

I think you should be able to build a similar effect in your code by simply not using the DraftEditor's placeholder, and make your own label instead.

I don't think there is a way to add the label inside DraftEditor, if I was building this I would try with absolute positioning like you describe.
Specifically,

The wrapper should be position: relative;
textarea / DraftEditor doesn't need any position override.
The label should be position: absolute;.

I think this is how your examples does it as well.


Inheritance of themes works reversed when more than one level exists

See originating issue.
Basically, if you have three themes: a, b and c and (c extends b extends a), when you build c files from a take precedence over those from b.

From the originating issue:
Details:
The customer created three themes (a, b and c) using: yo liferay-theme and installed them as global npm modules.
Next, they used gulp extend to make b-theme inherit from a-theme and finally for c-theme to inherit from b-theme.
To differentiate between the themes they added custom background-colours in _custom.scss. They also made overrides to the portal_normal.ftl templates but only in a- and b-theme to prove the issue that the inheritance isn't going in the correct order.
All they did in portal_normal.ftl was to add an h1 specifying the theme's name in the content section.
After extending the themes and finally building c-theme they would expect it to take the template file from b-theme but instead it's grabbing the one coming from a-theme.
It's not included in the attached example but they've tried to throw in a fourth theme in the mix as well to inherit from the third theme. The result then is for it to grab whatever is overridden in the second theme (not the third as you'd want it to but not the first either as when we had three themes).
Details about expected behavior:
They are expecting c-theme to have blue background-color as they're overriding _custom.scss. If they hadn't done that, they'd expect it to take the color set in b-theme as that's the one it inherits from. When it comes to the templates, they're expecting the same behavior when overriding. If they have a custom portal_normal.ftl in a-theme but none in b-theme or c-theme they'd expect both of the latter themes to use a-theme's portal_normal.ftl but when they override it in b-theme as in the attached example they'd expect both b-theme and c-theme to use the template from b-theme. Instead for some reason, c-theme grabs it from a-theme.


How to add W3 and W4 filters  in ARIADNE

Hi,
Here, I shoud how to add WISE_RSR_W3,WISE_RSR_W4 and APASS filters in ARIADNE.  These filters don't seem to be included in a list of allowed filters for the ARIADNE.
Thanks!

I mean that Phoenix V2 models do not cover W3 and W4. I need to check if Kurucz and C&K do, but I think they don't, which is why I didn't include them. In addition, these could be prone to infrared excess which could bias results anyway.
The APASS catalog has V B g' r' i' magnitudes, which are in ARIADNE

Yes, checking with my model creation tool it seems it does extend and it's just Phoenix V2 the one that doesn't.
In any case, the fact remains that I want consistency between all models, so given Phoenix V2 doesn't reach W3 and W4 I won't make them available for fitting.
I am working in an update that includes both W3 and W4 for visualization purposes only, however.

Hi,
Thank you very much for your reply.
If I want to include both W3 and W4 into the fit of the ARIADNE, can I try to fix the code in my machine?
Can you provide some suggestions for adding both W3 and W4 in the ARIADNE.

You can do whatever you want with the code in your machine, however, I won't be able to provide support.
I am adding W3 and W4 to the model grid so you'll need to either wait until that's ready or compile the models yourself, which means convolving the model spectra with the filter response functions and then integrating that flux.
Creating the model grid is an intensive task so it'll take me a couple of days to have it ready.

I mean that I will add them to the model grid but you won't be able to fit with them.
If you want to use them to fit with them you would need to enable it within the code. Convolving the model spectra and integrating is only necessary to create the model grid.
I don't understand your second question

Hi,
Here, my second question is that the obtained stellar parameters in your paper don't seem to include the fit for W3 and W4, which results from lack of the W3 and W4 observation or you didn't join the fit ?
Thanks

Oh.. well, of course it doesn't include W3 and W4. The paper explicitly states we only used W1 and W2.

Hi,
Many thanks.
Actually, I have a question why don't you consider adding W3 and W4 data if the source have W3 and W4 observation.
Is this due to W3 and W4 may be contaminated with radiation from dust?

I already told you why in my first answer.
To reiterate: I wanted photometric consistency between all models. If one filter was outside of the wavelength range of a given model, then I wouldn't use it in any model.
There was no reason to add the data if it wasn't used.

Thank you so much for your patience.

Happy to help.
I'll close this now, but if anything pops up feel free to reopen.


Bump versions post 0.7.0rc2 release

Summary
Details and comments
Fixes #536

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.01%) to 64.187%

Totals

Change from base Build<PHONE_NUMBER>:
-0.01%

Covered Lines:
3235

Relevant Lines:
5040

💛  - Coveralls


Is it suppose to instance vars be available as data values in Stimulus controllers?

export default class extends Controller {
  static values = { latitude: Number, longitude: Number }
  ...
}

class MyComponent < ViewComponentReflex::Component
  def initialize
    @latitude = 17.0213812
    @longitude = 13.9127312
  end
end

<%= component_controller do %>

<% end %>

Given the above component, how to access latitude and longitude values?
The component_controller helper seems not to accept the data-x-value as parameters.

<%= component_controller data: {
  'my-component-latitude-value': @latitude,
  'my-component-longitude-value': @longitude,
} do %>
...
<% end %>

This worked for me.

Apologies, I don't know why I didn't get this notification. That's about what you would have to do to access any ivars in a stimulus controller.


The problem about  input file of the old version fast5  for Calling Methylation

Hi @jts
I have downloaded the escherichia coli fast5 file "PRJEB13021" which  you uesd in your study   from ENA, but albacore can't perform to  basecall in R7.3 FAST5 file because of the wrong-match of  CONFIG in "read_fast5_basecaller.py" probably, would you please share the detail that  you use these data to   Calling Methylation ?

Hi,
Sorry for my slow response to this issue. The data you downloaded is very old and not supported by the latest basecaller (albacore). We have posted some example data that works with the latest basecaller here:
http://nanopolish.readthedocs.io/en/latest/quickstart_call_methylation.html
Jared

@jts
Thanks for you answer, in fact , I have gotten the output using  other R9 fast5 files.  At present, I have another problem about the output files-- after calculate how often each reference position was methylated using 'calculate_methylation_frequency.py', I get 'methylation_frequency.tsv', but I don't understand why the value in 'called_sites'  column  is '40','150' or more  larger ,when the 'num_cpgs_in_group'  is only "1"or "2" in the file, and  what  does "called_sites" mean ?

Thank you very much , it helps me a lot.


Adjust snap package to use classic confinement

After some thought, I think the way parca-agent accesses the underlying system makes it a more compelling candidate for classic confinement, rather than strict.
:warning:  This PR shouldn't be merged until the store have enabled classic confinement for this snap - I'll post back when that's done and take care of that getting sorted. :warning:

That's right, there is a little more info here: https://forum.snapcraft.io/t/classic-confinement-for-parca-agent/32076
I'll come back and comment once we're cleared to release a classic snap so we don't end up with red CI :)

Oops, I just realised that I was meant to wait until the classic snap release. My bad 😓


[Bug] Closing Bracket Appears In Formatted And Grouped List Query With An Array

Describe the bug
A closing bracket appears whenever any formatting is used in the query to display an array of items.
So anything added like "
", "Text", will cause the bracket to appear.

To Reproduce
On any LIST queries, format the displayed properties with this "" + rows.tags and the bracket will appear.
Query
```dataview
LIST "" + rows.Tags
FROM "D&D Let's Plays"
SORT Creator asc
GROUP BY Creator
```

Expected behavior
Expected no closing bracket on tags like when the query doesn't have groups:

Desktop (please complete the following information):

OS: Windows
Obsidian Version: 0.12.12
Dataview Version: 0.4.3

Additional context
Add any other context about the problem here.

Does it work with the query:
LIST join(rows.Tags, ", ")
FROM "D&D Let's Plays"
SORT Creator asc
GROUP BY Creator

Ah yeah that does fix the issue! I do wonder why this occurs though 🤔, something like this didn't happen with 0.3.13.

Ooh I see. I don't think I mind seeing it too much, it's just that for now it only shows me the closing bracket which was kinda confusing. I think join is a good workaround for now.

Going to close this since join is a "good enough" work around for now, and I don't think nested list behavior is going to change (at best, perhaps the nesting [] could be configurable to something else).


update to ochami-deployment compose file

Added lines to add the ochami.yaml file as a docker secret.
Requires an update to ochami-init to work: https://github.com/OpenCHAMI/ochami-init/pull/4

Added the not ready label to indicate that we should hold off on merging until we also have a new release version from ochami-init.

Hmm... During testing, it seems inconvenient to have to set two separate variables to change where to put the config. It seems better to, e.g:
$ OCHAMI_CONFIG=/path/to/config/ochami.yaml ./generate-configs.sh

and the script will mkdir -p /path/to/config, rather than to have to:
$ OCHAMI_DIR=/path/to/config OCHAMI_CONFIG=${OCHAMI_DIR}/ochami.yaml ./generate-configs.sh

Here is the change to be able to do the first:
diff --git a/lanl/docker-compose/generate-configs.sh b/lanl/docker-compose/generate-configs.sh
index a1496a8..6d5cef5 100644
--- a/lanl/docker-compose/generate-configs.sh
+++ b/lanl/docker-compose/generate-configs.sh
@@ -1,8 +1,7 @@
 #!/bin/bash

 # Ochami config file location
-OCHAMI_DIR=${OCHAMI_DIR:-/etc/ochami}
-OCHAMI_CONFIG=${OCHAMI_CONFIG:-${OCHAMI_DIR}/ochami-config.yaml}
+OCHAMI_CONFIG=${OCHAMI_CONFIG:-/etc/ochami/ochami-config.yaml}

 if [ -f $OCHAMI_CONFIG ]
 then
@@ -16,7 +15,7 @@ echo "BSS_POSTGRES_PASSWORD=$(openssl rand -base64 32)" >> .env
 echo "OCHAMI_CONFIG=$OCHAMI_CONFIG" >> .env

 #Copy Config template to real config location
-mkdir -p $OCHAMI_DIR
+mkdir -p $(dirname OCHAMI_CONFIG)
 cp configs/ochami-template.yaml $OCHAMI_CONFIG

 #replace passwords in template.

Looks good. One last thing: Could the script be made executable?


CherryPy does not use its own wsgiserver anymore, which ws4py depended on

From 9.0.0 onwards, cherrypy removed its wsgiserver module and is now using cheroot instead. Since ws4py tries to import from cherrypy.wsgiserver this causes everything to break.
Haven't looked into how big the change will need to be because of this, but at the very least i think there hsould be something indicating that ws4py doesn't support CherryPy from 9.0.0+

This is what we get when trying to run ws4py with latest CherryPy (10.0.0) now:
File "/usr/local/lib/python3.6/site-packages/ws4py/server/cherrypyserver.py", line 72, in <module>
    from cherrypy.wsgiserver import HTTPConnection, HTTPRequest, KnownLengthRFile
ModuleNotFoundError: No module named 'cherrypy.wsgiserver'

Are there any plans to make this compatible with cheroot?

Ref #206

@JoeStaines you may now close this issue.


moduleFileExtensions with dot cause to jest silently exit with error

🐛 Bug Report
When moduleFileExtensions is provided with extensions start with ., jest will exit with code 1 without obvious error.
To Reproduce
See this repl.it
Expected behavior
Jest should return an error leading user to the right direction, instead of saying "No tests found" and exist with 1. Most user will likely start to adjust testMatch or testRegex which is the wrong direction of debugging.
Link to repl or repo (highly encouraged)
repl.it demo
Run npx envinfo --preset jest
Paste the results here:
No tests found
No files found in /home/runner.
Make sure Jest's configuration does not exclude this directory.
To set up Jest, make sure a package.json file exists.
Jest Documentation: facebook.github.io/jest/docs/configuration.html
Pattern:  - 0 matches
exit status 1

@xbtsw good find! Want to submit a PR?


Add support for Xiaomi Mijia 1C

Hey. I’ve recently got this vacuum up and running and would love to see it integrated into this plugin. Please let me know if there’s anyway I can help

Developer's notes:

We need to create a brand new class to communicate with this model since the commands are way different to the current ones.
Implementation in Python with the commands to send: https://github.com/rytilahti/python-miio/pull/683/files#diff-1d60d6cac3e7d3a87e527874901056af

What is the log you can see when you try running this plugin?

What is the log you can see when you try running this plugin?

Thanks for the reply! I've spent the last two hours figuring out how to get Python up and running on my Windows machine in order to install python-miio. The device discovery produced 0 results so I've had to use ibackupviewer to get the token via the Mi Home backup, I've got the token decrypted successfully too, so I'm keeping my fingers crossed it'll work with the plugin!

I found it curious that the 'Model' didn't match up with that I was expecting! But then I've Googled it and found it listed here too, so I'm not the first to discover this lol

What is the log you can see when you try running this plugin?

Robot vacuum
Model: dreame.vacuum.mc1808
IP address: <IP_ADDRESS>
Token: 774d666238424b70326c6e6e4e557679
MAC: 44:23:7C:EC:19:1B
First of all I got this:
[4/25/2020, 14:05:01] [Xiaomi Mijia 1C] ERR connect | miio.device, next try in 2 minutes | Error: Could not connect to device, handshake timeout
Then 2 mins later:
[4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | Connected to: <IP_ADDRESS>
[4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | Model: dreame.vacuum.mc1808
[4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | State: undefined
[4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | FanSpeed: undefined
[4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | BatteryLevel: undefined
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] ERR getSerialNumber | Failed getting the firmware version. Error: Call to device timed out
at Timeout.retry [as _onTimeout] (/usr/local/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/miio-nicoh88/lib/network.js:493:18)
at listOnTimeout (internal/timers.js:549:17)
at processTimers (internal/timers.js:492:7) {
code: 'timeout'
}
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] ERR getDevice | get_serial_number | Error: Call to device timed out
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] INF getFirmware | dreame.vacuum.mc1808 | Firmwareversion is 3.5.8_1059
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] STA getDevice | Firmwareversion: 3.5.8_1059
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] INF changedCleaning | dreame.vacuum.mc1808 | Cleaning is OFF.
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] MON changedCharging | dreame.vacuum.mc1808 | ChargingState is now false
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] INF changedCharging | dreame.vacuum.mc1808 | Charging is cancelled
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] INF changedCharging | dreame.vacuum.mc1808 | Robot not anymore in dock.
It has showed up as a Fan in the Home app so seems to be working ok, I'll test it out properly and report back

First of all I got this:
[4/25/2020, 14:05:01] [Xiaomi Mijia 1C] ERR connect | miio.device, next try in 2 minutes | Error: Could not connect to device, handshake timeout
Then 2 mins later:
[4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | Connected to: <IP_ADDRESS>
[4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | Model: dreame.vacuum.mc1808
[4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | State: undefined
[4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | FanSpeed: undefined
[4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | BatteryLevel: undefined
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] ERR getSerialNumber | Failed getting the firmware version. Error: Call to device timed out
at Timeout.retry [as _onTimeout] (/usr/local/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/miio-nicoh88/lib/network.js:493:18)
at listOnTimeout (internal/timers.js:549:17)
at processTimers (internal/timers.js:492:7) {
code: 'timeout'
}
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] ERR getDevice | get_serial_number | Error: Call to device timed out
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] INF getFirmware | dreame.vacuum.mc1808 | Firmwareversion is 3.5.8_1059
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] STA getDevice | Firmwareversion: 3.5.8_1059
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] INF changedCleaning | dreame.vacuum.mc1808 | Cleaning is OFF.
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] MON changedCharging | dreame.vacuum.mc1808 | ChargingState is now false
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] INF changedCharging | dreame.vacuum.mc1808 | Charging is cancelled
[4/25/2020, 14:07:26] [Xiaomi Mijia 1C] INF changedCharging | dreame.vacuum.mc1808 | Robot not anymore in dock.
It has showed up as a Fan in the Home app so seems to be working ok, I'll test it out properly and report back

These are the messages that appear in the log when I turn it on via the Home app

(and the vacuum doesn’t do anything)

I have the Mijia 2 but I think it could also work with the addition of the Mijia 1c. Or?
If the plugin could support the Mijia 2 it would be really cool

@afharo is any of that helpful?

It is indeed! I'm only concerned that these models may have a different set of methods to call.
We actually had an initial discussion about them in this other issue: https://github.com/nicoh88/homebridge-xiaomi-roborock-vacuum/issues/100#issuecomment-581424913

It is indeed! I'm only concerned that these models may have a different set of methods to call.
We actually had an initial discussion about them in this other issue: #100 (comment)

Ah, that doesn't sound promising  lol

it's doable, but it may take me a while... especially since I don't have the model.
If anyone is willing to help on the development (or finding the methods to call on each case), it will be very welcomed :)

it's doable, but it may take me a while... especially since I don't have the model.
If anyone is willing to help on the development (either coding and providing a Pull Request or finding the methods to call on each case), it will be very much welcomed :)

Yeah sorry, I’m not in any way knowledgeable about this kind of thing, but I’m more than happy to run any commands or produce any logs which could help someone figure out how to get this working :)

Hi @robertybob ! Can you please try next branch?
I had the same issues with my Xiaowa E202-02 - it didn't start cleaning with similar error.

Hi @robertybob ! Can you please try next branch?
I had the same issues with my Xiaowa E202-02 - it didn't start cleaning with similar error.

Hello! I will update in the morning and I will let you know if it works :) Thank you for thinking of me when looking into your own issue

@bedrin I’m afraid I’m still getting errors. These are some of those errors:

Thank you for thinking of me when looking into your own issue

@bedrin rocks!

I sincerely think the Mijia models have a different set of commands. We might need to create a "new" class of Vacuum for them in the miio repository: https://github.com/homebridge-xiaomi-roborock-vacuum/miio/blob/master/lib/devices/vacuum.js
I think the easiest way to implement it is to have a copy of that file, but modifying the commands to call and map it to the model in https://github.com/homebridge-xiaomi-roborock-vacuum/miio/blob/master/lib/models.js#L50
The list of specific commands for this model may be obtained from the python library: https://github.com/rytilahti/python-miio/issues/550

It may be easier to maintain if, at some point, we migrate the miio library (only the vacuum necessary stuff) to this plugin so we don't need to maintain two modules :)

@afharo I appreciate what you’re saying, you’re doing this for free in your spare time so I’m not going to put pressure on you to resolve this  :)

Thank you for your words and understanding @robertybob 😍
We can plan a quick win here:
Let's try to create a copy of the vacuum.js file in the miio library, but using https://github.com/rytilahti/python-miio/blob/20f915c9589fed55544a5417abe3fd3d9e12d08d/miio/viomivacuum.py to find the matching internal commands/properties to be read from the vacuum.
For example:
		// Define the batteryLevel property for monitoring battery
		this.defineProperty('battery', {
			name: 'batteryLevel'
		});

Should be something like
		// Define the batteryLevel property for monitoring battery
		this.defineProperty('battary_life', {
			name: 'batteryLevel'
		});

_battary_life obtained from https://github.com/rytilahti/python-miio/blob/20f915c9589fed55544a5417abe3fd3d9e12d08d/miio/viomivacuum.py#L83-L85

Thank you for your words and understanding @robertybob 😍
We can plan a quick win here:
Let's try to create a copy of the vacuum.js file in the miio library, but using https://github.com/rytilahti/python-miio/blob/20f915c9589fed55544a5417abe3fd3d9e12d08d/miio/viomivacuum.py to find the matching internal commands/properties to be read from the vacuum.
For example:
		// Define the batteryLevel property for monitoring battery
		this.defineProperty('battery', {
			name: 'batteryLevel'
		});

Should be something like
		// Define the batteryLevel property for monitoring battery
		this.defineProperty('battary_life', {
			name: 'batteryLevel'
		});

battary_life obtained from https://github.com/rytilahti/python-miio/blob/20f915c9589fed55544a5417abe3fd3d9e12d08d/miio/viomivacuum.py#L83-L85

That sounds good! I’m a novice at this kind of thing I’m afraid. If there is anything I need to do, would you be able to create a step-by-step list of commands I need to run? You may need to pretend I’m a child trying to do it 😄

haha! Don't you worry. It was just me adding a few developer notes to know when we can tackle it :)
I'll try to find some time this weekend to prepare a version for you to test :)

I'll try to find some time this weekend to prepare a version for you to test :)

😀👍🏻

Can you try installing homebridge-xiaomi-roborock-vacuum@next? It should include the initial implementation of added support to ViomiVacuum :)

@afharo  I’m still getting errors and can’t get the vacuum to start, but I think they are different errors this time which I assume is a good thing!

oh! ok! I'll take a second look :(
Thanks for testing!

Can you please try again with<EMAIL_ADDRESS>

Can you please try again with<EMAIL_ADDRESS>
Thanks! I haven’t uninstalled the existing branch, hope that’s ok (I presumed it would overwrite the files rather than create a new instance of it)

Do you mean the @next? Yeah... as long as you re-run the install, it will overwrite :)

@afharo I'll run sudo npm install -g<EMAIL_ADDRESS>--unsafe-perm right away and let you know if it works!

Thank you!

@afharo
Installation has finished and I got an error saying
 WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself. should I be worried?

I think when that log is shown, it means it's installed in the wrong directory.

Where/How did you install homebridge? And how did you install homebridge-xiaomi-roborock-vacuum?

I ran sudo npm install -g<EMAIL_ADDRESS>--unsafe-perm from the commandline. Was I supposed to run sudo npm install -g homebridge-xiaomi-roborock-vacuum@latest --unsafe-perm?

@afharo I've pasted the error messages here https://pastebin.com/sjyqwN8K  :)

I see [5/22/2020, 19:39:35] [Xiaomi Mi Robot Vaccum 1st Generation] ERR getState | {"code":"timeout"}
I think that's quite enlightening. I'll see if I can revisit it somehow.

I've installed the latest version you've just pushed and now getting slightly different error messages
https://pastebin.com/gTLUdftR

I've published another version. Hopefully it's better this time...
re the logs:
[5/22/2020, 20:08:56] [Xiaomi Mi Robot Vaccum 1st Generation] ERR getSerialNumber | Failed getting the serial number. Error: Call to device timed out
    at Timeout.retry [as _onTimeout] (/usr/local/lib/node_modules/homebridge-xiaomi-roborock-vacuum/miio/lib/network.js:519:23)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7) {
  code: 'timeout'
}

Will still show up. I can't find the command to retrieve the serial number in that model.
This one is the key one:
[5/22/2020, 20:09:09] [Xiaomi Mi Robot Vaccum 1st Generation] ERR getState | {"code":"timeout"}

@robertybob Does that thumb up mean it works now? 😇

@afharo Oh, no sorry it’s still not working. I had already updated to that new version you mentioned and that’s where those errors were coming from. Every 30 seconds the errors come up, so perhaps I should just uninstall for the time being?

to that new version you mentioned

Oh! Sorry! Can you try with the latest 0.11.4? I see other folks claiming it fixed it for them (only missing some minor bits #216)

Even better, 0.11.5 should also fix those minor bits :)

I’m installing it as we speak 😃

Oh... :(
It's kind of OK to see some errors at the beginning (I can work on that). But can you see if it reports OK after that? Or does it keep on failing to retrieve anything?

Oh! Shoot! I just realised this is different to the Viomi model!
I can see in the python library there is a PR with added support to this model. I'll try to work on adding support to it based on those changes: https://github.com/rytilahti/python-miio/pull/683/files#diff-1d60d6cac3e7d3a87e527874901056af
Sorry for all the testing for nothing!

Oh! Shoot! I just realised this is different to the Viomi model!
I can see in the python library there is a PR with added support to this model. I'll try to work on adding support to it based on those changes: https://github.com/rytilahti/python-miio/pull/683/files#diff-1d60d6cac3e7d3a87e527874901056af
Sorry for all the testing for nothing!

No need to apologise; I’ve only been installing the code, you’ve been writing the code and doing all of the trouble shooting! I’m glad that the other model seems to be working fine now 👍
That’s good news! I will keep my fingers crossed. But please, don’t stress about it too much if it isn’t possible to do, I appreciate all of the time and effort you’ve already spent on me.

Hello,
at this moment, 1C is partially supported or unsupported?

Hello,
at this moment, 1C is partially supported or unsupported?

Not supported, but the developer hopes that it will be at some point in the future

Hey! Sorry for being dormant on this. I didn't have much time to implement it yet (I was also waiting on the linked Python project to move forward so we know the right commands we need to send to this model).
I've updated the description with some Developer's notes of the findings so far :)

Hey @afharo! I've just set up Homebridge for my IP cam and also was worried if I could add my Xiaomi 1C cleaner using this plugin so I've found this thread :) Would be great to have this model supported soon! Thanks so much for your work on this one!

Hey @afharo! Would be great to have this model supported soon. Thanks so much for your work on this one! I can help with tests & logs if you need some. Let me know!

Good evening everybody, any follow up on this? thanks!

Good morning everybody. any follow up on this? Dreame F9 user here. thanks!

Does Xiaomi Mi Robot Vacuum Mop / mop 1c support?

Hey! Sorry for being dormant on this. I didn't have much time to implement it yet (I was also waiting on the linked Python project to move forward so we know the right commands we need to send to this model).
I've updated the description with some Developer's notes of the findings so far :)

Hey everyone! Mentioning my last update. Unfortunately, adding a new model is not a straightforward task. Cases like this model imply reworking each one of the commands that the module needs to send to the robot. On top of that, I don't own that model, and I cannot test any attempts.
I'll try to come up with a guide for unsupported model owners to find and provide the set of commands for their model.

Hi, i'm new to this, and I'm also owner of the Xiaomi Mijia 1C model.
As i figured out by this thread this homebridge plugin is not able to communicate with that model yet.
Are there any news to this? Is there anything i could do to help, adding support for this model?

Hi, i'm new to this, and I'm also owner of the Xiaomi Mijia 1C model.
As i figured out by this thread this homebridge plugin is not able to communicate with that model yet.
Are there any news to this? Is there anything i could do to help, adding support for this model?

+1

+1. I look forward to support 1C too.

Yeah tell what we can do and we try to contribute

I can remotely offer my Raspberry Pi device with latest Hoobs installed, IP and token of vacuum cleaner Xiaomi 1C at my home. You can test what is needed and monitor the logs in your plugin.

Good news, everyone! Support for 1C has been merged into python-miio in https://github.com/rytilahti/python-miio/pull/952.
I assume this will make it easier for this project to add the support for device as well, but I defer to @afharo to confirm this assumption.

@rafaelmagu I don't want to get my hopes up too much, but I'm sure this is excellent news

Hi.
I'm new here and I'm very interested in this thread.
I'm just wondering if there's a possible fix in these codes for the internal error in Xiaomi Mijia 1C, "Please check and clean my filter."
Thank you.

For everyone waiting I’d like to share a temporary solution: I got successfully running my 1C via Home Assistant and then added HA as a bridge to Homekit. Of course it has some problems & crashes that are fixed by rebooting HA instance all the time but at least it works to run & move back to the dock & show the charge of the vacuum.

For everyone waiting I’d like to share a temporary solution: I got successfully running my 1C via Home Assistant and then added HA as a bridge to Homekit. Of course it has some problems & crashes that are fixed by rebooting HA instance all the time but at least it works to run & move back to the dock & show the charge of the vacuum.

Please give a link on tutorial

Please give a link on tutorial

Instruction for the whole setup to work:

Have an IP & token for the 1C vacuum (the easiest way is to use this app or use instructions in this repository)
Have Home Assistant installed
Tutorial on how to add the 1C vacuum to Home Assistant: link
It's in Russian (use translator in chrome). An important thing to add to that tutorial is that in configuration.yaml file 1 more line after 'token: Vacuum_Token' should be added:
version: 1.0.0
Otherwise the latest HA won't add a variable of the vacuum. P.S. HACS is not needed for the Homekit integration (skip it in the second part of the tutorial if that Lovelace card is not needed for you)
Add Homekit integration inside Home Assistant & link this virtual bridge to the Homekit app

As I mentioned before this setup is very unstable and I loose the vacuum in Homekit within several minutes and have to restart Home Assistant server to have it connected again. Still trying to figure this out.

Please give a link on tutorial

Instruction for the whole setup to work:

Have an IP & token for the 1C vacuum (the easiest way is to use this app or use instructions in this repository)

Have Home Assistant installed

Tutorial on how to add the 1C vacuum to Home Assistant: link

It's in Russian (use translator in chrome). An important thing to add to that tutorial is that in configuration.yaml file 1 more line after 'token: Vacuum_Token' should be added:
version: 1.0.0
Otherwise the latest HA won't add a variable of the vacuum. P.S. HACS is not needed for the Homekit integration (skip it in the second part of the tutorial if that Lovelace card is not needed for you)

Add Homekit integration inside Home Assistant & link this virtual bridge to the Homekit app

As I mentioned before this setup is very unstable and I loose the vacuum in Homekit (& the whole HA bridge connection) within several minutes and have to restart Home Assistant server (or just reload the Homekit integration in HA) to have it connected again.
As forums say it might be because if IGMP tick on or off in router settings or just the router has to be power cycled (didn't help me at all) or because of a hub (Apple TV) is connected wirelessly & goes to sleep after some mins and drops connection with HA.
Still trying to fix this out somehow. But at the moment it's not dropping connection for an hour or so so I can call it a little success :)
Спасибо :)

If you still search for a plug-in that supports the Dreame F9 or similar miot vacuum cleaner: https://github.com/merdok/homebridge-miot

If you still search for a plug-in that supports the Dreame F9 or similar miot vacuum cleaner: https://github.com/merdok/homebridge-miot

Unfortunately it does not support dreame.vacuum.mc1808 which is 1C

Have you tested it? I have opened a thread here for my dreame and it was mentioned that the actions are similar to the Mija 1C

Have you tested it? I have opened a thread here for my dreame and it was mentioned that the actions are similar to the Mija 1C

Will test this out, thanks for letting know!

Have you tested it? I have opened a thread here for my dreame and it was mentioned that the actions are similar to the Mija 1C

Hey,
I've tried this one but it's not working. The plugin connects to the vacuum and shows it in HomeKit app as connected but it's not working. I've also tried specifying the device model dreame.vacuum.p2008 instead of mc1008 but it's not working either.

Have you tested it? I have opened a thread here for my dreame and it was mentioned that the actions are similar to the Mija 1C

Hey,
I've tried this one but it's not working. The plugin connects to the vacuum and shows it in HomeKit app as connected but it's not working. I've also tried specifying the device model dreame.vacuum.p2008 instead of mc1008 but it's not working either.

Maybe the actions are others. You can ask there if he can implement it. We do it so for my vacuum robot. Some testing and the he implemented it

+1 The 1C works great with the homebridge-miot plugin.

I followed the steps to download the info and send the plugin to that folder and after I downloaded homebridge-miot and I put all information with the folder of that and everything is working on my homekit.

+1 The 1C works great with the homebridge-miot plugin.

I followed the steps to download the info and send the plugin to that folder and after I downloaded homebridge-miot and I put all information with the folder of that and everything is working on my homekit.

Can you help me on this? i would like to add Mi 1C to Homekit using Homebridge - thanks!


Modded SoundCategory entries cause playSound to fail

If any mod has created a custom net.minecraft.sound.SoundCategory (class_3419) then attempting to use Audience#playSound will cause an exception to be thrown. Example mods include Noxesium, ExtraSounds. Here's a stacktrace from my mod crashing from trying to use the method with Noxesium installed:
java.lang.ExceptionInInitializerError
	at net.kyori.adventure.platform.fabric.impl.server.ServerPlayerAudience.playSound(ServerPlayerAudience.java:217)
	at net.kyori.adventure.audience.ForwardingAudience$Single.playSound(ForwardingAudience.java:352)
	at dev.qixils.crowdcontrol.plugin.fabric.commands.ToastCommand.lambda$executeImmediately$1(ToastCommand.java:79)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at dev.qixils.crowdcontrol.plugin.fabric.commands.ToastCommand.lambda$executeImmediately$2(ToastCommand.java:77)
	at net.minecraft.class_3738.run(class_3738.java:18)
	at net.minecraft.class_1255.method_18859(class_1255.java:156)
	at net.minecraft.class_4093.method_18859(class_4093.java:23)
	at net.minecraft.server.MinecraftServer.method_24306(MinecraftServer.java:778)
	at net.minecraft.server.MinecraftServer.method_18859(MinecraftServer.java:163)
	at net.minecraft.class_1255.method_16075(class_1255.java:130)
	at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:760)
	at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:754)
	at net.minecraft.class_1255.method_18857(class_1255.java:139)
	at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:739)
	at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:671)
	at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:263)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalStateException: Unmapped class_3419 element 'CORE_MUSIC_NOXESIUM!
	at net.kyori.adventure.platform.fabric.impl.MappedRegistry.checkCoverage(MappedRegistry.java:93)
	at net.kyori.adventure.platform.fabric.impl.MappedRegistry.<init>(MappedRegistry.java:78)
	at net.kyori.adventure.platform.fabric.impl.MappedRegistry$OfEnum.<init>(MappedRegistry.java:121)
	at net.kyori.adventure.platform.fabric.impl.MappedRegistry.named(MappedRegistry.java:54)
	at net.kyori.adventure.platform.fabric.impl.GameEnums.<clinit>(GameEnums.java:46)
	... 18 more

Confirmed on 5.5.2 and 5.10.1

This is a vanilla enum, so mods messing with it is certainly a choice. I'd be fine downgrading missing mappings issues to a warning, and only throw a hard error in adventure-platform-fabric's own mod dev environment to ensure we don't miss mappings in our own update process.

Wontfix a critical function failure? I appreciate that adding onto vanilla enums is a questionable decision but to be clear A) I am not doing that, and B) I am not using them. The mere existence of these other mods is killing all sound in my mod because of some code that IMO should not exist in a production environment


[BUG] Updated Docker image deployment fails

Describe the bug
#239 changed the Docker GitHub action to a new method using an Alpine image, but after merging into main, it is failing on a permission denied error.
To Reproduce
Steps to reproduce the behavior:

Merge a PR into main.
Observe failed Docker push.

Expected behavior
The push to DockerHub not to fail.
**Environment (please complete the following information) **
GitHub Actions
Additional context
Error from the action:
#20 ERROR: denied: requested access to the resource is denied
------
 > pushing wasmcloud/wash:alpine with docker:
------
error: denied: requested access to the resource is denied
Error: buildx failed with: error: denied: requested access to the resource is denied

Link to failed action
Also I could not be understanding the new action code but it looks like it is only pushing to DockerHub now, and also only pushing a alpine tag. Are we no longer pushing a latest tag or pushing to Azure?

@brooksmtownsend I have not been successful in recreating this in my fork.  When I run the same action, it succeeds...I will have to check the action's issues and see if anyone else experiences this.

@brooksmtownsend I have not been successful in recreating this in my fork. When I run the same action, it succeeds...I will have to check the action's issues and see if anyone else experiences this.

When you run it in your fork, you aren't attempting to actually push the image right? That seems to be where the issue is coming up.
Also I saw that the Docker and Azure logins got swapped around in your PR, could that be causing an issue?

I am pushing, but to mine....good catch on the switch, that was accidental.  I dont have a way to test it though...maybe @brooksmtownsend can test for me?

@jordan-rash I can't see where credentials got swapped around, https://github.com/wasmCloud/wash/pull/239/files looks fine to me 🤔 If those were swapped though then it would certainly fail to authenticate

@jordan-rash I can't see where credentials got swapped around, https://github.com/wasmCloud/wash/pull/239/files looks fine to me 🤔 If those were swapped though then it would certainly fail to authenticate

If you look at those changes, the action used to go Azure login and then Dockerhub login. The new one does the reverse. Perhaps the azure login action deletes the previous credentials?

This is what I am thinking as well

Wild. Okay let's swap the order and get a PR in

I'll take a look

my god https://github.com/wasmCloud/wash/runs/5413793973?check_suite_focus=true

No way lmao

great catch @mattwilkinsonn, I can't believe that was the issue 😅


Common modify max body size

What is the purpose of the change
org.apache.rocketmq.common.constant.DBMsgConstants.MAX_BODY_SIZE value is wrong.
modify DBMsgConstants.MAX_BODY_SIZE value.
Brief changelog
XX
Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Coverage decreased (-0.02%) to 43.147% when pulling a422ac4417eaf2e10ac0a1feb1f05c1411a54cb9 on jijs:common_modify_max_body_size into ef91e94e47fef9ed99a016cdc3a219ad3bfaf2bf on apache:develop.


[BUG] Consumption results generated by API Call do not match results from VRM Portal

Description: When using the Node Red VRM API Node, to pull consumption data, the data received does not match the data seen in the VRM Portal.
To Reproduce:  Create a Node Red Flow that pulls consumption data for a 24 hour period, with interval set to hour and dumps the data to a debug node.  Compare the data received to that found on the VRM portal of the same installation.  There is no correlation between the values on the interval basis nor the daily total.
Node Config:

Expected Behavior:
It is expected that the values would coincide, possible with some slight variation due to exact reporting minute used for each interval.
ScreenShots/Data:
Attached are the reported data via Node Red and that from the VRM Portal:
Consumption Message:
{"_msgid":"51c0ea40d0c8bc83","payload":{"success":true,"records":[{"instance":0,"stats":{"consumption":[[1726232400000,2340.0627146176203,451.48500382741,3695.79197177776],[1726236000000,633.6783185120647,200.53703563658,1556.30866949656],[1726246800000,621.5253134838861,521.93499347846,733.65768744612],[1726250400000,548.02971855667,449.98365865676,669.8383395457299],[1726254000000,541.1812281283009,452.74266362294,621.32199379492],[1726257600000,550.0601352092624,484.8136607314,600.66165539781],[1726261200000,521.3295299424075,386.07800493436,600.8796688236],[1726264800000,449.58033829035,424.2216714301,467.74666887318],[1726200000000,354.97222222222246,275,438],[1726203600000,301.19444444444497,215,401],[1726207200000,362.72222222222246,288,406],[1726210800000,348.4722222222217,320,390],[1726214400000,368.11111111111086,283,406],[1726218000000,330.3846153846162,269,399.33333333333],[1726221600000,296.0335958888626,212.4959996359,325],[1726225200000,376.3990838408275,312.02632753623,438.75133549027],[1726228800000,403.9808630951141,326.04733296808,455.03934767469],[1726239600000,390.3878514469209,237.89335232099,477.20130997054],[1726243200000,386.54523236641086,320.19435554886,467.66433725897]]}}],"totals":[{"instance":0,"totals":{"consumption":10124.650760985538}}],"options":{}},"topic":"installations stats 241800"}
VRM Portal Data:

There is no easy way to capture hourly data from the VRM Portal, however, the total listed at the bottom of the image is shown as 8.4kWh and is shown as 10,124 Wh in the Data (message). These were pulled at the same time.
Hardware:
Cerbo GX
Software:
victron-vrm-api version: 0.2.6
Venus OS Version: V3.40
Some additional datapoints:
I re-tested for Solar Yield, Solar Yield Forecast and Consumption Forecast, and all of these were either the exact same or very close between the API reported data and the information displayed within the VRM Portal.
I also retested, with the following settings:

and the results are even more wrong.  The data reports back as:
{"payload":{"success":true,"records":[{"instance":0,"stats":{"consumption":[[1726200000000,702.7907418259276,200.53703563658,3695.79197177776]]}}],"totals":[{"instance":0,"totals":{"consumption":702.7907418259276}}],"options":{}},"_msgid":"86ce4428aed8e7f6","topic":"installations stats 241800"}
702 total Wh (bolded)?  Also, the 4 fields (that are not identified in the documentation), show as<PHONE_NUMBER>000,702.7907418259276,200.53703563658,3695.79197177776.
I bring this up because it feels like a secondary bug to the first one identified.
Please let me know if any additional information is required.
Mike

As an additional datapoint, I re-tested for Solar Yield, Solar Yield Forecast and Consumption Forecast, and all of these were either the exact same or very close between the API reported data and the information displayed within the VRM Portal.

Same here. Maybe the API is cached? I remember seeing the same data at the beginning or end of the day. The tomorrow data right now (at sunset) is on point. Today (past) data is completly off.


BUGFIX - Cannot read property 'attributionControl' of null

I get this exception when tried to open & close a marker popup immediately:
TypeError: Cannot read property 'attributionControl' of null
at NewClass._layerAdd (http://localhost:8100/build/main.js:20926:39)
at NewClass.whenReady (http://localhost:8100/build/main.js:20566:13)
at NewClass.addLayer (http://localhost:8100/build/main.js:20982:8)
at NewClass.openPopup (http://localhost:8100/build/main.js:24186:15)
at NewClass.openPopup (http://localhost:8100/build/main.js:24292:14)
at NewClass._openPopup (http://localhost:8100/build/main.js:24367:9)
at NewClass.fire (http://localhost:8100/build/main.js:17552:11)
at NewClass._fireDOMEvent (http://localhost:8100/build/main.js:20541:15)
at NewClass._handleDOMEvent (http://localhost:8100/build/main.js:20500:8)
at HTMLDivElement.handler (http://localhost:8100/build/main.js:21164:14)
It runs the following code:
_layerAdd: function (e) {
 var map = e.target;

 // check in case layer gets added and then removed before the map is ready
 if (!map.hasLayer(this)) { return; }

 this._map = map;
 this._zoomAnimated = map._zoomAnimated;

 if (this.getEvents) {
  var events = this.getEvents();
  map.on(events, this);
  this.once('remove', function () {
   map.off(events, this);
  }, this);
 }

 this.onAdd(map);

 if (this.getAttribution && this._map.attributionControl) {
  this._map.attributionControl.addAttribution(this.getAttribution());
 }

 this.fire('add');
 map.fire('layeradd', {layer: this});
}

but the line:  this.onAdd(map); can make this._map be undefind, like in:
...
layer._map = layer._mapToAdd = null;

so I replaced it with map instead which must be defined because it is used afterwards as well.

@hagai26 What's the code that triggers this? (I mean "can you show us the way you are opening and closing a popup immediately?") It would be nice to use it to build a unit test for this.

Sure.
I needed the popup feature only for autoPan after click. I didn't need the popup itself, so I did this:
this.map.on('popupopen', (e: L.LeafletPopupEvent) => {
	const marker = e.popup._source;
	marker.closePopup();
});

thus, a popup is closed after it is opened.
If I commented out 'marker.closePopup();', there is no exception.
With 'marker.closePopup();' there is the exception above.


Canvas XML Namespace Issue

We're running through Instructure's Canvas Dev course (https://canvas.instructure.com/courses/785215) and noticed that the outcome service response in the course uses the xml namespace from the 1.1 draft spec (http://www.imsglobal.org/lis/oms1p0/pox) but LtiLibrary uses the one from the 1.1.1 final spec (http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0). We understand that Canvas is using an outdated namespace but it would be nice if the library accepted either.

That's a great course! I just pointed someone to it yesterday.
I'm using .NET's built in XmlSerializer functionality, including using xsd.exe to generate a serializer (OMSv1p0_LTIv1p1Profile_SyncXSD_v1p0.cs). That's where the most recent namespace is captured. For example,
'''c#
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
[System.SerializableAttribute()]
[XmlType(TypeName="imsx_CodeMajor.Type", Namespace="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0")]
[XmlRoot("imsx_codeMajor", Namespace="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0", IsNullable=false)]
public enum imsx_CodeMajorType {
'''
How do I accept either namespace?


Remove the jshint global configuration for the removed global variable

Included in https://github.com/sbstjn/timesheet.js/pull/41
Thanks!


Are discrete genomic features supported?

Hi Yi-Fei,
I was wondering whether the MKregression would work with discrete genomic features, like gene categories for instance. Can one code a feature as "A", "B", "C", "D", etc., or maybe should separated binary columns be made, like feature A 0/1, feature B 0/1, etc. ?
Thanks a lot in advance for your insights,
Julien.

Hi Julien,
Thanks for asking. That's a great question! In the current implementation of MK regression, we need to convert categorical variables to dummy variables. For instance, if we have a feature with four levels ("A", "B", "C", "D") and assume "D" is the baseline level, we need to create three binary dummy variables for "A", "B", and "C." It is worth noting that we cannot create a dummy variable for the baseline level "D." Otherwise, the model will be overparameterized and unidentifiable.
Best,
Yifei

Dear Yifei,
Thanks a lot for your prompt answer, I will give it a go!
All the best,
Julien.


Create Home Page List ,Add Article to list and delete Article from List

@MohammedAnsary @bassemmagdy  @MinaHany94 @omarelhariry  @AndrewMagdy

Code reviewing will be the last step after resolving conflicts and being ready to merge. @mohabashraf

@omaressameldin

@bassemmagdy

@MohammedAnsary  @bassemmagdy  @omaressameldin  @mayarali  @AndrewMagdy

@mohabashraf
add parameters to find methods
dont return type f
remove last alt box
change body of alt box before last

@omarelhariry  @MohammedAnsary

@mohabashraf
remove square boxes aroudn results and wrtite result insrtead of string
add return statements in the last alt box (else part)
put the statement inside secodn alt box in teh if part not else part
in first alt box return message in else part not if part

@MohammedAnsary  @omarelhariry

@MohammedAnsary

@omarelhariry  typing error

@MohammedAnsary

Tests look fine. Concerning the code, I have few notes. First, please delete the folder vendor/bundle.
Second, I noticed that a Curator cannot add others' articles to the list so please add the permission to ability.rb to be like
return if user.nil?
          can :update, Article do |article|
            article.user_id == user.id || user.curator
          end

Third, there're inconsistent indentations in ability.rb. I know we are all to blame for it, but please run rubocop autocorrect.
That's all.


Ability to rename file

Hello,
It’s a great library, but it would be better if it provided the ability to rename files.
If a callback could be considered for this purpose, that would be fantastic.

Hi,
what's news?

@dmitriy-nz please add this enhancement.

This one in progress


Coverity Fixes : RSA code

The missing NULL checks in BN_clear, BN_CTX_end() are now handled by this PR:
https://github.com/openssl/openssl/pull/8518.
So this now just fixes coverity issues in the tests.

Checklist

[ ] documentation is added or updated
[x] tests are added or updated

Why not change BN_clear etc to allow NULL pointers?

Hi Rich, I thought you would be the most opposed to adding NULL checks :)

I think Rich would agree that in some cases, NULL is valid input.  This is true for all _free functions, and I don't find it very far fetched to have the same treatment in _clear functions.  As a matter of fact, functions like OPENSSL_clear_free and OPENSSL_clear_realloc take NULL as valid input.

Will add a PR that does the NULL check

ping

What @levitte said in https://github.com/openssl/openssl/pull/8507#issuecomment-474105266.  Putting the NULL check in clear routines makes this PR just about closeable :)

@richsalz the RSA_set0_ functions take ownership of the BIGNUMs. When they fail, the Bus need to be freed separately or they'll be double freed (or lost).

Merged to master.  Thanks all.


Update 404-not-found-simple.html

Html tag add

What type of PR is this? (check all applicable)

[ ] ♻ Refactor
[ ] ✨ Feature
[ ] 🐛 Bug Fix
[ ] 👷 Optimization
[x] 📝 Documentation Update
[ ] 🚩 Other

Description
Related Tickets & Documents
Mobile & Desktop Screenshots/Recordings (if there are UI changes)
Added to documentation?

[ ] 📜 readme
[x] 🙅 no documentation needed

[optional] What gif best describes this PR or how it makes you feel?

No need to add the HTML tags, it's added on the site to showcase the component and it is a component anyway. 🤷♂


Pearson correlation probability might be incorrect (correlation_p_pearsonr2)

From https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient
t = r\sqrt{\frac{n-2}{1 - r^2}}
from the correlation_p_pearsonr2:
def correlation_pearsonr2(data0, data1):
    return stats.pearsonr(data0, data1)**2

def correlation_p_pearsonr2(data0, data1):
    correlation = correlation_pearsonr2(data0, data1)
    if math.isnan(correlation):
        return float('NaN')
    if correlation == 1.:
        return 0.
    n = len(data0)
    assert n == len(data1)
    # Compute observed t statistic.
    t = correlation * math.sqrt((n - 2)/(1 - correlation**2))
    # Compute p-value for two-sided t-test.
    return 2 * stats.t_cdf(-abs(t), n - 2)

The function correlation_pearsonr2 is returning the square of the pearsonr2 (verified this against the scipy pearsonr2, which agrees with the bayeslite pearsonr2), but then in correlation_p_pearsonr2 the square is getting squared again!  So now the correlation value is to the 4th power.  I believe this is incorrect, I think the formula from wikipedia was expecting an unsquared correlation coefficent.
This would also fix the fact that I found the scipy version of pearsonr to have the same correlation value but wildly different p-values.  Of course I might just have misunderstood what the code is doing.

Fixed in 58f7fa8d880d82a38d77edcac33ac92688e50087.


Skip UTF-8 validation for PMCE fragments

If the message was marked with rsv1 on the inital frame then
we should skip utf-8 validation on subsequent continuation
frames as well.
Added test for this case.
Found by autobahn wstest tool.

Thank you!  Merged.


Grammar change on website

This obviously isn't that important, just something I noticed.
On the homepage of the site in the box saying The World's Simpilest Bot Framework it uses Simpilest instead of Simplest.
It also says this in the homepage example code.
I'm guessing it should be The world's simplest bot framework as per the package.json file.

@PXgamer Good catch! I'll try to get that fixed up.

NP. I also was gunna do a pull request to change the README.md logo to the following.

Would that be alright?

Can this be closed?

Thanks!


Fix for sample in doc

log_to_file() expects a filename.

I'd possibly recommend skipping the getting started guide entirely, and just focusing on the working code under examples/. "the_basics.py" is very heavily commented

Merged to docs-master. Thanks!


App needs a better name

We have been calling it "Animator," which is super boring.

Renamed to ECODATA-Animate


Uploading Images Mangled By Possible Fingerprinting

Steps to Reproduce

Use a browser hardened against fingerprinting techniques
Upload image or link to an image
BlueSky mangles the image
Turn off fingerprinting protections
Upload image or link to an image
BlueSky does not mangle the image

Attachments

What platform(s) does this occur on?
Web (Desktop)
Device Info
No response
What version of the app are you using?
Whatever the main bsky.app site is.
Additional Information
This behavior occurs on no other website nor app (like Discord) that I use anywhere with the same browser.  Most likely the scripts BlueSky is using for such image uploading trigger a rejection due to privacy techniques.

Bluesky uses a canvas element to resize and recompress images before upload, here: https://github.com/bluesky-social/social-app/blob/fa4cca11fedb78b31b7b606eafa74ebc17435f24/src/lib/media/manip.web.ts#L115-L134 I'm not sure what about this triggers the protection, as fingerprinting usually involved drawing some text. Maybe an OffscreenCanvas would be unaffected?
Discord sends all files uploaded on web verbatim (rejecting ones that are too large) and most other websites still upload the original and do the recompression serverside. That bypasses this problem here, but potentially introduces other (security, privacy) issues.

Yeah, I sometimes also get warnings about some sites wanting to use canvas so that would make sense; though none of those sites do any kind of image uploading whatsoever.  My bank, for instance, is one.  I found it odd that only BlueSky was affected by this.  Hopefully that can be fixed as I am not interested in relaxing security for this feature.

Canvas fingerprinting is mitigated by either blocking the canvas functionality entirely or rendering it completely useless, the latter is what seems to be going on.
Ideally we would've just backed out of compression, but this would've been easier if canvas was blocked rather than rendered useless. Given that the use is on preventing fingerprinting, I'd doubt we'd see a way to check for this specific scenario.
So the only way is for you to disable canvas fingerprinting on Bluesky.

Thanks for that explanation! Yeah, I see no reason to lessen security for any website, let alone social media. I guess I can just redirect users to the Mastodon versions of the posts.


move bug

root node
---- node 1-1
---- root node
-------- node 2-1 [v]
---- <--- target
---- node 1-2
---- node 1-3
---- node 1-4
included example.html
node 2-1 moving to target.
not moved.

Thanks for response!
I will try to test and fix issue in nearest time..

included example.html
Do not see any included files

https://github.com/dkhlystov/jquery-treegrid/assets/3735511/1b5ad6b1-78a5-46c1-a8eb-139c6f0afea6