laggy experience across browsers on macbook pro

Things like re-sizing windows, scrolling in VS code etc is very laggy/slow -
Consistent across browsers: Firefox 94.02, Chrome 96.0.4664.55, Safari 14.1.2 on Macbook pro (Early 2015, Big Sur, 2.7 Ghz Dual-Core Intel i5, 8GB memory)

I tested a few things and the problem is docker running on Mac.
Solutions for the problem:

use Visual studio code on the mac to access neurodesktop: https://neurodesk.github.io/docs/neurodesktop/visual-studio-code/ (this will help because vs code runs natively on mac)
run neurodesktop on a remote server and connect to it via the browser

the problem is not the browser performance in the browser!


Remove stub assignments: image_test.py

Slightly larger change, broke up a test into three smaller tests since they were basically independent

@prbot approve
pure test change


[Translatable] Class inheritance

Hi, I think I encountered a bug using personal translations and class table inheritance.
I know they are already closed issues related to my problem but none of them seems to be linked to my problem.
My parent class is:
/**
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="discriminator", type="string")
 * @ORM\Table(name="selection")
 * @ORM\Entity(repositoryClass="ApiBundle\Repository\Selection\SelectionRepository")
 * @ORM\HasLifecycleCallbacks()
 * @Gedmo\TranslationEntity(class="ApiBundle\Entity\Selection\SelectionTranslation")
 */
class Selection
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     * @Gedmo\Translatable
     * @ORM\Column(name="name", type="string", length=255)
     * @ORM\JoinColumn(nullable=false)
     */
    private $name;

    /**
     * @Gedmo\Locale
     * Used locale to override Translation listener`s locale
     * this is not a mapped field of entity metadata, just a simple property
     */
    private $locale;

    /**
     * @var SelectionTranslation[]
     * @ORM\OneToMany(
     *   targetEntity="SelectionTranslation",
     *   mappedBy="object",
     *   cascade={"persist", "remove"}
     * )
     */
    private $translations;

    public function __construct() {
        $this->translations = new ArrayCollection();
    }

    /**
     * @return string
     */
    public function getName(): string
    {
        return $this->name;
    }

    /**
     * @param string $name
     * @return Selection
     */
    public function setName(string $name): Selection
    {
        $this->name = $name;
        return $this;
    }

    public function getTranslations()
    {
        return $this->translations;
    }

    public function addTranslation(SelectionTranslation $t)
    {
        if (!$this->translations->contains($t)) {
            $this->translations[] = $t;
            $t->setObject($this);
        }
    }

    public function setTranslatableLocale($locale)
    {
        $this->locale = $locale;
    }
}

The child class is:
/**
 * @ORM\Entity(repositoryClass="ApiBundle\Repository\Selection\SelectionObjectRepository")
 * @ORM\Table(name="selection_object")
 */
class SelectionObject extends Selection
{
    /**
     * @var SelectionObjectHasObjects[]
     *
     * @ORM\OneToMany(targetEntity="SelectionObjectHasObjects", mappedBy="selection")
     */
    private $selectionObjectHasObjects;

    public function __construct() {
        parent::__construct();
        $this->selectionObjectHasObjects = new ArrayCollection();
    }
}

If I try to add a name by doing this:
$selectionObject = new SelectionObject();

$selectionObject
    ->setName('Ma valeur')
    ->setTranslatableLocale('fr_FR');

$selectionObject->addTranslation(new SelectionTranslation('en_GB', 'name', 'My value'));

$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($selectionObject);
$entityManager->flush();

I'm getting the error "Property locale does not exist" because \ReflectionClass is throwing an exception as the property is only present on the parent class (see line 307 of TranslatableListener for the line where the error is thrown).
What am I doing wrong here?
If it is indeed a bug, please let me know. I've already made a fix in local and it would be a pleasure to open a pull request.

You're going to be mad at yourself... Make the locale property protected instead of private.
SelectionObject is a child class of Selection, but since Selection::$locale is set to private, child classes do not have direct access to its value, even via reflection. More on visibility on PHP.net.

Thanks a lot for your reply @AkenRoberts! :star:


Length of reverse

, \ <list>(db) means len(reverse(<list>)) which can be just len(<list>). Should it be extension?

It could be an extension except that there are already other extensions that start with hex code b, so for example if it were length of chunkby that would be valid. It would be ambiguous which extension to apply.

Same applies to reverse(reverse(. Starting with b should be b9(chunk by) and bc(group by) colliding 9(filter) and c(map), so need function that only one make sense for both

What about ,* <int> <vec> (len(vec.map(t=>t*int)))? da3 seems no ambigious with type

Same applies to reverse(reverse(. Starting with b should be b9(chunk by) and bc(group by) colliding 9(filter) and c(map), so need function that only one make sense for both and db9(count f(i)!=f(i+1)) and dbc(count different f(x)) may be used, so db filter and db map need avoided

I'm not sure I follow, are you just saying that reverse reverse would be a possible extension but has the same problem?

What about ,* <int> <vec> (len(vec.map(t=>t*int)))? da3 seems no ambigious with type

I agree that length or reverse of + or * on a list would be a valid extension. I think these are unused because there wasn't much need for more functions of type int <a>, a <a> would be more useful. Although overlapping slices of size n sounds pretty useful and has that type (although maybe a bit too specialized).
It could be good to keep a list of possible extensions along with most desired ops. Here is a list I have in my old notes:
anytime expect a constant (like justify, hashmod, etc) could have it be an overload of something that takes a FN (constant is good since doesn't increment used debruijn indices)

if there is no good fn for something like str,int, just make it be a str function and use hex 1 to specify it. (useful for strip)

available
append append

list available
------------
filter filter
map map
length take n a = min n (length a)
take x drop y = drop y take x
reverse replicate = replicate reverse

diff a reverse b = diff a b
reverse .+ (etc) = .+ reverse
length .+ etc = length
map replicate = replicate map
map step = step map
map take = take map
map drop = drop map
subscript map = ; subscript
length replicate = * length
index replicate = index
replicate .* = .* replicate (but its 3 arg, need to work for other types too then it can be remapped to 2 arg, there's more like this)
rep rep = rep *
diff diff = diff :

num
====
+- = -+
// = */
** = * ... *
same for ++/min/etc

Note that some of those ideas may be invalid / outdated.
I personally will likely not be adding more features to Nibbles. But I welcome contributions from others if you'd like to contribute. Just know that part of the philosophy is to keep things simple, not to fill every possible byte sequence with meaning. So worth discussing new features first before implementing them! I am sure there are some simple powerful ops that I have overlooked.
Also btw if you didn't know about this page already it could be useful for finding extensions: fullref (since the quickref hides some things that are abstracted away as implementation detail)

I meant e.g. introducing some 3-nibble instructions to mean db x and dbx still mean d bx for specified bx seems worth.

- + $ @ _ equals + - $ _ @. Not sure if some op(int,int,int) is helpful and if this affect compability

I'm sure that op(int,int,int) could be useful, but it seems like it will be complicated and the current amount of complexity managing extensions is already too high!


Rollup build works in Development fails In Production Environment

I'm working on a library that utilizes async/await feature with babel. When I was working on the library I noticed when I setup the production settings for the output that the development environment works great, but as soon as I switch to production it fails. I've tried lost of different transform combinations to try to get it working switching from transform-async-to-generator to async-to-promises but to no avail. I'm not sure but I think it could be something I may be doing wrong with runtimeHelpers, the reason why I turn them on is because If they are not included I get an error when the library is required in an application saying the regeneratorRuntime is undefined.
Here is my .babelrc:
{
  "env": {
    "development": {
      "presets": [
        "es2015-rollup",
        "es2017",
        "stage-1"
      ],
      "plugins": [
        ["transform-runtime", {
        "polyfill": true,
        "regenerator": true
        }],
      ]
    },
    "production": {
      "presets": [
        "es2015-rollup",
        "es2017",
        "stage-1",
        "babili"
      ],
      "plugins": [
        ["transform-runtime", {
        "polyfill": false,
        "regenerator": true
        }],
      ],
      "comments": false,
      "minified": true,
      "compact": true
    }
}

Here is my is the rollup.config.js:
import babel from 'rollup-plugin-babel';

var dest = 'dist/greed.js';
var destES = 'dist/greed.es.js';

if (process.env.NODE_ENV === 'production') {
	dest = 'dist/greed.min.js';
	destES = 'dist/greed.min.es.js';
}

export default {
	entry: 'src/greed.js',
	moduleName: 'Greed',
	targets: [
		{ dest: dest, format: 'umd' },
		{ dest: destES, format: 'es' },
	],
	plugins: [
		babel({
			babelrc: true,
			runtimeHelpers: true,
			exclude: 'node_modules/**',
		})
	],
	external: [
                'whatwg-fetch',
		'babel-runtime/regenerator',
		'babel-runtime/core-js/json/stringify',
		'babel-runtime/helpers/asyncToGenerator'
	],
	globals: {
                'whatwg-fetch': 'whatwg-fetch',
		'babel-runtime/regenerator':'babel-runtime/regenerator',
		'babel-runtime/core-js/json/stringify':'babel-runtime/core-js/json/stringify',
		'babel-runtime/helpers/asyncToGenerator':'babel-runtime/helpers/asyncToGenerator'
	}
};

The error message:
Error transforming /Users/kennetpostigo/Projects/greed/packages/greed/src/greed.js with 'babel' plugin: An unexpected situation arose. Please raise an issue at https://github.com/rollup/rollup-plugin-babel/issues. Thanks!
Error: Error transforming /Users/kennetpostigo/Projects/greed/packages/greed/src/greed.js with 'babel' plugin: An unexpected situation arose. Please raise an issue at https://github.com/rollup/rollup-plugin-babel/issues. Thanks!
    at preflightCheck (/Users/kennetpostigo/Projects/greed/packages/greed/node_modules/rollup-plugin-babel/dist/rollup-plugin-babel.cjs.js:50:10)
    at Object.transform$1 [as transform] (/Users/kennetpostigo/Projects/greed/packages/greed/node_modules/rollup-plugin-babel/dist/rollup-plugin-babel.cjs.js:104:18)
    at /Users/kennetpostigo/Projects/greed/packages/greed/node_modules/rollup/src/utils/transform.js:19:35
    at process._tickCallback (internal/process/next_tick.js:103:7)
    at Module.runMain (module.js:609:11)
    at run (bootstrap_node.js:382:7)
    at startup (bootstrap_node.js:137:9)
    at bootstrap_node.js:497:3

The only difference that seems to make the output fail is babili. Is this a known issue?


Suggestion: Rebirth Breakpoints by Number -optimization

Hello,
Rebirth by Number is great, but needs some tweaking... for example if You starting from zero for Challenges purposes, then You quite a long time doing 3m rebirths and paradoxically the progress is much slower. Setting higher target (multiplier) is not solution because needs manual lowering after some time.
I believe it is necessary to add a condition for not rebirthing under specified minimal time and after that Number>Target take priority.
something like:
"Rebirth": {"Type": "Number", "Target": 10, "Time": 600, "Challenges": []},

probably more of a subjective view than a general problem and needs more testing


v0.0.4

Change way to specify cors headers
Enable cors by default
Change engine to node 14+

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
-0.04%

Covered Lines:
164

Relevant Lines:
168

💛  - Coveralls


FR: Volvo Trucks Compare Models

Agile Requirement
As a user, I want to be able to compare characteristics of different truck models to make the correct purchase for my needs.
https://www.figma.com/file/yv0VtHTvMoGPqkv0RAYcVp/PDP?type=design&node-id=8465-52002&mode=design&t=ZPrXUdQRUIIO3ABZ-4

Per discussion with @williebender , this work is on hold for now.

@BeckyMedlin to add to this, I'm not sure this needs to built twice, it already exists on the configurator – https://truckbuilder-vtna-9023.onecx.stag.rapidimages.net/#/trucks/build

@williebender Closing as it is not needed. Configurator will handle.


Change the word unarchived to unarchive

Would it be good to change the command in UG to unarchive also?

Would it be good to change the command in UG to unarchive also?

Yup, I will do so in another branch and pr. Can help merge if there's no problem for this pr. Thanks.


HTML Component Attempts to Unmount synchronously when removed from the DOM

I see there is an issue opened already mentioning the unmount synchronously warning:
https://github.com/konvajs/react-konva-utils/issues/25
But I am opening a new issue because what I want to raise only appears when Html is removed from the DOM. See the example below:
https://user-images.githubusercontent.com/18724600/220667212-595baf52-170a-4f63-979c-2e2e18a8597e.mp4
I noticed this issue is related to how Konva is imported in Next.js (as mentioned in this other issue) because I tested it in a React environment without Next.js and the error didn't happen when the Html was removed from the DOM.
Here is a reproducible repository with Html and Next.js

@markcnunes Thanks for posting this... see issue 25.. :)

@davesargrad no worries, I saw that issue before creating this one and I mentioned it in the description. However, my case only happens when I remove the Html from the canvas, otherwise, it works fine for Next.js but it is good to know your issue happens with create_react_app. I will let the maintainers decide if this is exactly the same issue you mentioned and close this one if it makes sense.

@markcnunes Ty for that thought. As I think about when it is happening to me, I think it may also be that Html is being removed from the DOM. I have a single page application (SPA).. There are many views. The error I see happens when one of the views that has a Konva canvas is redrawn with other information. At that point, I think the Html component is unmounted (from the DOM), and then remounted in the new view. So I really think that your finding is a great finding. I think under the covers they may be the same fundamental issue with the code.

Thanks for the reproducible repo. It should be fixed with<EMAIL_ADDRESS>


Orchestrator can't properly update or migrate when it more than one.

When deploy 3 replicas of operator. Mysql-operator helm chart generate peers list in orchestrator config. And when 3 pods start in one time, all work fine. Upgrade mysql-operator via helm release is broking raft. Because when pod restart it have new ip. This ip doesn't updated in raft peer list in old ones. Eventually in the end of upgrade all pods in raft have different peers list. Killing all pods in one time solve problem.
Same problem I catches when evict Kubernetes cluster node.
Solutions:

operator use orchestrator api to add/delete peers

Temporary solution:

Use network host(bad one)
Always use only one replica.

@w33dw0r7d Hi, what version of mysql-operator do you use. They fixed this issue long time ago and now k8s svc is used in raft list.
      "RaftNodes": [
        "mysql-operator-0-svc",
        "mysql-operator-1-svc",
        "mysql-operator-2-svc"
      ],

@ruslanloman I use latest version. Please read one more time.

@w33dw0r7d read sever times. Could you please share logs from orchestrator with old and new ip address ?

@ruslanloman
How to reproduce.

Deploy operator with 3 instance

NAME                                 READY   STATUS    RESTARTS   AGE   IP           NODE                          NOMINATED NODE   READINESS GATES
mysql-operator-mysql-operator-im-0   2/2     Running   2 (41s ago)   42s   <IP_ADDRESS>   vf-im-k8s-node-02 <none>           <none>
mysql-operator-mysql-operator-im-2   2/2     Running   2 (40s ago)   42s   <IP_ADDRESS>   vf-im-k8s-node-01 <none>           <none>
mysql-operator-mysql-operator-im-1   2/2     Running   2 (40s ago)   42s   <IP_ADDRESS>   vf-im-k8s-node-03 <none>           <none>

Raft status
# raft status in mysql-operator-mysql-operator-im-0
{
  "RaftBind": "<IP_ADDRESS>:10008",
  "RaftAdvertise": "<IP_ADDRESS>:10008",
  "State": "Leader",
  "Healthy": true,
  "IsPartOfQuorum": true,
  "Leader": "<IP_ADDRESS>:10008",
  "LeaderURI": "http://mysql-operator-mysql-operator-im-0.mysql-operator-mysql-operator-im-orc:3000",
  "Peers": [
    "<IP_ADDRESS>:10008",
    "<IP_ADDRESS>:10008",
    "<IP_ADDRESS>:10008"
  ]
}
# raft status in mysql-operator-mysql-operator-im-1
{
  "RaftBind": "<IP_ADDRESS>:10008",
  "RaftAdvertise": "<IP_ADDRESS>:10008",
  "State": "Follower",
  "Healthy": true,
  "IsPartOfQuorum": true,
  "Leader": "<IP_ADDRESS>:10008",
  "LeaderURI": "http://mysql-operator-mysql-operator-im-0.mysql-operator-mysql-operator-im-orc:3000",
  "Peers": [
    "<IP_ADDRESS>:10008",
    "<IP_ADDRESS>:10008",
    "<IP_ADDRESS>:10008"
  ]
}
# raft status in mysql-operator-mysql-operator-im-2
{
  "RaftBind": "<IP_ADDRESS>:10008",
  "RaftAdvertise": "<IP_ADDRESS>:10008",
  "State": "Follower",
  "Healthy": true,
  "IsPartOfQuorum": true,
  "Leader": "<IP_ADDRESS>:10008",
  "LeaderURI": "http://mysql-operator-mysql-operator-im-0.mysql-operator-mysql-operator-im-orc:3000",
  "Peers": [
    "<IP_ADDRESS>:10008",
    "<IP_ADDRESS>:10008",
    "<IP_ADDRESS>:10008"
  ]
}

Then i restart one by one pods. Like in rolling upgrade.

mysql-operator-mysql-operator-im-1   2/2     Running   0          39s   <IP_ADDRESS>   vf-im-k8s-node-03   <none>           <none>
mysql-operator-mysql-operator-im-2   2/2     Running   0          18s   <IP_ADDRESS>   vf-im-k8s-node-01   <none>           <none>
mysql-operator-mysql-operator-im-0   1/2     Running   0          14s   <IP_ADDRESS>   vf-im-k8s-node-02  <none>           <none>

Raft is broken.
# raft status in mysql-operator-mysql-operator-im-0
{
  "RaftBind": "<IP_ADDRESS>:10008",
  "RaftAdvertise": "<IP_ADDRESS>:10008",
  "State": "Candidate",
  "Healthy": false,
  "IsPartOfQuorum": false,
  "Leader": "",
  "LeaderURI": "",
  "Peers": [
    "<IP_ADDRESS>:10008",
    "<IP_ADDRESS>:10008",
    "<IP_ADDRESS>:10008"
  ]
}
# raft status in mysql-operator-mysql-operator-im-1
{
  "RaftBind": "<IP_ADDRESS>:10008",
  "RaftAdvertise": "<IP_ADDRESS>:10008",
  "State": "Follower",
  "Healthy": true,
  "IsPartOfQuorum": true,
  "Leader": "<IP_ADDRESS>:10008",
  "LeaderURI": "http://mysql-operator-mysql-operator-im-2.mysql-operator-mysql-operator-im-orc:3000",
  "Peers": [
    "<IP_ADDRESS>:10008",
    "<IP_ADDRESS>:10008",
    "<IP_ADDRESS>:10008"
  ]
}
# raft status in mysql-operator-mysql-operator-im-2
{
  "RaftBind": "<IP_ADDRESS>:10008",
  "RaftAdvertise": "<IP_ADDRESS>:10008",
  "State": "Leader",
  "Healthy": true,
  "IsPartOfQuorum": true,
  "Leader": "<IP_ADDRESS>:10008",
  "LeaderURI": "http://mysql-operator-mysql-operator-im-2.mysql-operator-mysql-operator-im-orc:3000",
  "Peers": [
    "<IP_ADDRESS>:10008",
    "<IP_ADDRESS>:10008",
    "<IP_ADDRESS>:10008"
  ]
}

Latest restarted pod is never be Ready.
Logs from mysql-operator-mysql-operator-im-0.
2022/12/02 11:13:01 [INFO] raft: Node at <IP_ADDRESS>:10008 [Follower] entering Follower state (Leader: "")
[martini] Started GET /api/raft-health for <IP_ADDRESS>:58530
[martini] Completed 200 OK in 476.064µs
2022/12/02 11:13:03 [WARN] raft: Heartbeat timeout from "" reached, starting election
2022/12/02 11:13:03 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:03 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:03 [DEBUG] raft: Newer term discovered, fallback to follower
2022/12/02 11:13:03 [INFO] raft: Node at <IP_ADDRESS>:10008 [Follower] entering Follower state (Leader: "")
2022/12/02 11:13:04 [WARN] raft: Heartbeat timeout from "" reached, starting election
2022/12/02 11:13:04 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:04 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:04 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:06 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:06 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:06 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:06 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:07 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:07 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:07 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:07 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:09 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:09 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:09 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:09 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
[martini] Started GET /api/raft-status for <IP_ADDRESS>:49594
[martini] Completed 200 OK in 448.184µs
2022/12/02 11:13:10 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:10 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:10 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:10 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
[martini] Started GET /api/raft-health for <IP_ADDRESS>:35094
[martini] Completed 500 Internal Server Error in 617.468µs
2022/12/02 11:13:12 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:12 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:12 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:12 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:13 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:13 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:13 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:13 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:15 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:15 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:15 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:15 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:16 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:16 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:16 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:16 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:17 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:17 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:17 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:17 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:18 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:18 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:19 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:19 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:20 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:20 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:20 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:20 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
[martini] Started GET /api/raft-health for <IP_ADDRESS>:57130
[martini] Completed 500 Internal Server Error in 1.052564ms
2022/12/02 11:13:21 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:21 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:21 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:21 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:22 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:22 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:22 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:22 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:24 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:24 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:24 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:24 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:25 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:25 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:25 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:25 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:26 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:26 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:26 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:26 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:28 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:28 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:28 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:28 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:29 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:29 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:29 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:29 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
[martini] Started GET /api/raft-health for <IP_ADDRESS>:37114
[martini] Completed 500 Internal Server Error in 789.122µs
[martini] Started GET /api/raft-health for <IP_ADDRESS>:37128
[martini] Completed 500 Internal Server Error in 441.75µs
2022/12/02 11:13:31 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:31 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:31 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:31 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:33 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:33 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:33 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:33 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:35 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:35 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:35 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:35 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:36 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:36 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:36 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:36 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:38 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:38 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:38 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:38 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:39 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:39 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:39 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:39 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:40 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:40 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:40 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:40 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
[martini] Started GET /api/raft-health for <IP_ADDRESS>:37182
[martini] Completed 500 Internal Server Error in 560.405µs
2022/12/02 11:13:41 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:41 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:41 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:41 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:42 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:42 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:42 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:42 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:44 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:44 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:44 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:44 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:45 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:45 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:45 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:45 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:47 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:47 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:47 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:47 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:48 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:48 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:48 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:48 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
2022/12/02 11:13:50 [WARN] raft: Election timeout reached, restarting election
2022/12/02 11:13:50 [INFO] raft: Node at <IP_ADDRESS>:10008 [Candidate] entering Candidate state
2022/12/02 11:13:50 [DEBUG] raft: Votes needed: 2
2022/12/02 11:13:50 [DEBUG] raft: Vote granted from <IP_ADDRESS>:10008. Tally: 1
[martini] Started GET /api/raft-health for <IP_ADDRESS>:60402
[martini] Completed 500 Internal Server Error in 822.438µs

I see and what do you have in mysql-operator-orc configmap in RaftNodes list ?

@ruslanloman This https://github.com/bitpoke/mysql-operator/blob/bf0e3831875ab1d33c37a1c9f8e3aba84bffa33b/deploy/charts/mysql-operator/templates/_orchestrator-helpers.tpl#L11

I double checked and they fixed it in v0.4.0 version and seems introduce it as regression in v.0.6.xx.

In mysql-operator v0.4.0 in RaftNodes list there are list of services, that is agnostic to pod recreation and everything works as expected.
  "RaftNodes": [
    "mysql-operator-0-svc",
    "mysql-operator-1-svc",
    "mysql-operator-2-svc"
  ],

But in mysql-operator v0.6.xx they decided to move back to old approach and specify list of pods.
  "RaftNodes": [
    "mysql-operator-0.mysql-operator-orc",
    "mysql-operator-1.mysql-operator-orc",
    "mysql-operator-2.mysql-operator-orc"
  ],

I'm getting this problem and not sure what to do about it:
   "RaftNodes": [
        "mysql-operator-0-svc",
        "mysql-operator-1-svc",
        "mysql-operator-2-svc"
      ],

This doesn't work as there is no service for this that is auto created.


Lack of Lettered List Functionality

As far as I know, based on the documentation, lettered lists are not possible. Would there be any possibility to add lettered lists or is it simply not in the documentation.

After making a fork, I suppose this isn't an option because the WdBuiltinStyle enumeration doesnt support different numbering schemes other than simply numbers; without majorly changing the code.


How to pass customOptions to the native ad factory?

Plugin Version
0.13.0
I can successfully display the native ads but can't set options when passing via "customOptions".
Is this the right way to pass options?
Like set the preferredAdChoicesPosition:
 Future<NativeAd> _loadAd() async {
    final ad = NativeAd(
      adUnitId: AdHelper.nativeAdUnitId,
      factoryId: 'listTile',
      request: AdRequest(),
      listener: NativeAdListener(
        onAdLoaded: (_) {
          // print('Ad loaded');
          setState(() {
            _isLoaded = true;
          });
        },
        onAdFailedToLoad: (ad, error) {
          // print('Ad load failed (code=${error.code} message=${error.message}');
          ad.dispose();
        },
        onAdOpened: (ad) => print('ad openned'),
        onAdClosed: (ad) => print('ad closed'),
        onAdImpression: (ad) => print('ad impression'),
        onNativeAdClicked: (ad) => print('Ad clicked'),
      ),
      customOptions: {'preferredAdChoicesPosition': 1},
    );

    // print('await for load');
    await ad.load();

    return ad;
  }

Using the above code don't display the icon on the left side as needed.
It remains on the right side.

My flutter doctor output.
[✓] Flutter (Channel stable, 2.2.0, on Mac OS X 10.15.7 19H1217 darwin-x64, locale en)
    • Flutter version 2.2.0 at /Users/xxxx/FlutterSDK/flutter
    • Framework revision b22742018b (11 days ago), 2021-05-14 19:12:57 -0700
    • Engine revision a9d88a4d18
    • Dart version 2.13.0

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/xxxx/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more
      details.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 55.0.5
    • Dart plugin version 211.6693.108

[✓] VS Code (version 1.56.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.22.0

[✓] Connected device (2 available)
    • iPhone 12 Pro (mobile) • AF124E8E-F902-4518-85EE-A8E8B46BF839 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
   . . .

@Milluz From where did you get the "factoryId" for Native ad?

@Milluz From where did you get the "factoryId" for Native ad?

Hello,
It the string value defined in AppDelegate.swit.
...

FLTGoogleMobileAdsPlugin.registerNativeAdFactory(
	 	self, factoryId: "listTile", nativeAdFactory: listTileFactory)

...

@Milluz Thanks for the reply. Kindly tell me where I can find the AppDelegate.swit file? I am unable to find it.

You need to create it. Try to take a look at the codelab or the sample code. They updated the code for the latest package version. Hope it helps.

@Milluz After integrating native ad. I got the following errors. Any solution for this???

Sorry @wahab4222, I'm coding only for iOS now. Can't help you about kotlin. But it looks like you are missing the plugin references on your code. When you install the package there some configuration you need to set, try check if you did miss some.

@Milluz Thanks for your help.

customOptions: {'preferredAdChoicesPosition': 1},

@Milluz The way you have passed the custom options is correct, and you may fetch those value and use it on the native side.

@maheshmnj I see it now. Thank you very much.

from where did you get this {'preferredAdChoicesPosition': 1}


Test Method

When I run the same test consecutively, some times i am getting pass sometimes not, code is as following :
casper.test.begin('Login test', 1, function(test){

    casper.then(function(){

    this.fill('form[action="/login"]', {
        "login": username,
        "password": password,
    },true);

    this.echo(this.getCurrentUrl(), 'PARAMETER');

    this.waitForUrl(base_url+'/adm/candidates',function(){

    test.assertUrlMatch(/\/adm\/candidates\/list/ , 'Login sucessfull');

    });

});

 casper.run(function(){
        test.done();
    });

});

casperjs test s.js
Test file: s.js
Login test
http://localhost:8080/login
PASS hey I am sucessfull
nuruddin@Ubuntu:~/Desktop$ casperjs test s.js
Test file: s.js
Login test
http://localhost:8080/login
nuruddin@Ubuntu:~/Desktop$ casperjs test s.js
Test file: s.js
Login test
http://localhost:8080/login
PASS hey I am sucessfull
PASS 1 test executed in 1.538s, 1 passed, 0 failed, 0 dubious, 0 skipped.
nuruddin@Ubuntu:~/Desktop$

This is because that you needs to wait to test login pages.
Try to use casper.waitForselector(function() {..})  or casper.wait(function() {..}).

Look at new code that i am trying now,
i will edit my code above

Ah, waitForUrl is also valid method. I didn't notice it.
waitForUrl requires onUrlChanged event.
This event does not fired, waitForUrl is not work correctly, I think.

i thnk it is working, but can't get to the end of the test, because it is printing PASS

Hmm, it is curious for me.... :confounded:

:+1:  for me too :octocat:

FYI: Here is an issue tracker. You shouldn't register a question for Casperjs this issue tracker.
You should to post a question for Casper.js in Google Group - CasperJS.

Oh thanks

As part of a cleanup effort:
Looks to be a stale help request. Assuming you've moved on to better and cooler things. Please feel free to re-open if this is still an active issue for you and we'll try our best to help out.


Update command chaining to ignore commands preceding an invalid command

As requested ma'am

Codecov Report

Merging #134 (e6bb773) into master (77ce65f) will decrease coverage by 0.02%.
The diff coverage is 82.35%.

@@             Coverage Diff              @@
##             master     #134      +/-   ##
============================================
- Coverage     55.02%   54.99%   -0.03%
- Complexity      571      572       +1
============================================
  Files           115      115
  Lines          2248     2251       +3
  Branches        225      227       +2
============================================
+ Hits           1237     1238       +1
- Misses          936      938       +2
  Partials         75       75

Impacted Files
Coverage Δ

...rc/main/java/seedu/address/logic/LogicManager.java
54.09% <82.35%> (+8.09%)
:arrow_up:

src/main/java/seedu/address/model/tag/Tag.java
82.35% <0.00%> (-5.89%)
:arrow_down:

...c/main/java/seedu/address/model/person/Person.java
67.85% <0.00%> (-2.04%)
:arrow_down:

.../java/seedu/address/logic/commands/AddCommand.java
100.00% <0.00%> (ø)

...java/seedu/address/logic/commands/EditCommand.java
96.42% <0.00%> (ø)

...java/seedu/address/logic/commands/SortCommand.java
89.28% <0.00%> (ø)

...address/logic/commands/FindTransactionCommand.java
0.00% <0.00%> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Are network priorities fixed in this new update?

In the fall creators update a bug was introduced. This bug is not limited to IoT core, but als appeared on Windows for Desktop (since update 1709, 1703 still works fine).
The problem is that if you have an active ethernet connection without internet, Windows does not route the internet through a USB connected MBIM modem anymore.
A ping test with forced routing works fine, but any other traffic is not routed through the modem. Disconnect the ethernet connector and it starts working.
It seems to be an MBIM driver specific problem since the combination WiFi and LAN without internet works fine.
We tried several things like: leaving the default gateway blank, changing metric interface and managing network adapter priorities (which I understand is created especially for these situations and should work/has worked).
The problem is more thoroughly described here, but this thread seemed to have died quickly: https://social.technet.microsoft.com/Forums/windows/en-US/e20c2af2-f2c1-419c-a2a3-cd2d07d8e699/network-problem-with-mbim-after-upgrading-windows-10-1709.
Only one LAN Port (OR wifi) without internet and a MBIM modem are enough to reproduce te problem. also on a normal Win 10 1709.
You put a static address on the lan cable. no gateway filled in. So "route print"/"netstat -rn" looks fine.
If the cable is connected, no internet trough the cellular modem.
Without a cellular modem: for example one LAN without internet. wifi with internet -> works fine. It gets broken in windows 1709 if a cellular (mbim) modem is in the game. Tested with a telit 910 v2 & Vodafone K5150 with the microsoft stock driver.
The problem is described here : https://social.msdn.microsoft.com/Forums/en-US/6800f827-45d2-4118-9a10-6a8958208e39/network-adapter-priorities-in-iot-broken-after-creators-fall-update?forum=WindowsIoT&prof=required
I'm asking because all channels where I tried to address the issue have died out. I did find several people that have problem with this issue however so we are not the only one.
I did not find anything in the change log about this issue but it would be great if this was fixed.

Hi @Vincation,
This is by design. If you have Ethernet or Wi-Fi connected, access to Cellular is blocked.
We have options if you need to bypass Windows policy and allow connectivity over a costed Cellular connection even if Ethernet is connected. Is this Ethernet connection non-routable (e.g. it has no default gateway / no routes)? If so, you can configure the device with a registry value and Windows will allow Cellular traffic even with Ethernet is connected (but not-routable).
HKLM\Software\Microsoft\WcmSvc
IgnoreNonRoutableEthernet (REG_DWORD) set to 1
Note that this is not IoT-specific.

Hi @saraclay,
This is very good news. We already heard via a partner that it was by design, but got a different registry key which did not do the trick. We're going to test this right away!
The ethernet connection is indeed non routable. Mostly it gets connected to modbus TCP and other Industrial protocol networks via ethernet.
Are these registry keys documented somewhere? Because we have been searching a while for a solution for this issue and could not find anything.
In the future me might have other applications which require some non-standard settings and it would be nice to be able to fix this without help.
Thank's for the help!

I am having similar problem but adding the above registry did not help in my case.
In my case i have IoT device that has cellular and two ethernets. 1 ethernet port is used for an IP camera.
IoT device is running windows 10 pro.
Cellular is on first priority then the ethernet for internet and i believe there is no route for the internet on ethernet .
From server, I am using SSH tunnel to rdp on the IoT device. rdp works until the ethernet/camera is not plugged in on the port.
As soon as i plug in the camera, rdp drops. Though ping still seems to work.
Any thoughts?

Hi @saraclay,

Hi @saraclay,
Is there a solution for routable ethernet now?
Win10 version 1909, both connect cellular and ethernet.  After adding a static route with gateway for the ethernet, the cellular network will be blocked.
Anyone knows? thx

@guce
The fix is another registry tweak. this one is located in HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WcmSvc\Local
Create a dword key of fMinimizeConnections and set it to 0
I setup a bunch of PD laptops that use a vpn service over cellular but also dock to a server in their car. This allows the non routable ethernet to still connect without taking priority of cellular.
Hope this helps!
-Erik

@guce
Heres the original fix working on v1809
HKLM\Software\Microsoft\WcmSvc
IgnoreNonRoutableEthernet (REG_DWORD) set to 1
The v1909 fix is another registry tweak. this one is located in HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WcmSvc\Local
fMinimizeConnections (REG_DWORD) set to 0
I setup a bunch of PD laptops that use a VPN service over cellular but also dock to a server in their car. This allows the non routable ethernet to still connect without taking priority of cellular.
Hope this helps!
-Erik

@eskilbred
The "fMinimizeConnections" configuration works for me !!!
Now, I can use both the cellular add ethernet (with static route).
Thanks a lot!

Sorry for resurrecting this thread. I have somehow the problem the other way round. My cellular modem always takes priority over my LAN connection which I don't want. I want the cellular just to be there as backup in case my LAN connection goes offline.
I set the interface metric to prefer the LAN connection but this does not make any difference. Can anybody help?


Is live server reloading twice?

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report
[ ] Feature request
[ ] Documentation issue or request
[x] Other: help request

## Current behavior

Start live server and see the console.log printing the message once. Change the message, save and the console.log will print twice.

## Expected behavior

print only once

## Environment

simple html + js.

Browser:

- [X] Chrome (desktop) version 68.0.3440.75
- [ ] Firefox version XX
- [ ] Safari (desktop) version XX
- [ ] IE version XX
- [ ] Edge version XX

For Tooling issues:

- Live Server: 5.1.1
- Platform:  Windows 10 Pro (1803, build 17134.191)
- Visual Studio Code: 1.25.1

Others

Strange! Can you please share a screenshot of your HTML & other extensions that you're using code --list-extensions?

Hey! thanks for the quick response!
I'll do better: please watch it: https://www.youtube.com/watch?v=YXUsDgWtcAE

After watching the video guessing this is an issue. @ritwickdey what you think?

yep, I agree! but I tried my friends' laptop also, I don't see this type of issue....
and I'm now little bit busy... the issue is really strange...

Hi @camilopedroso, can you please try following?

Open Vscode with required files & start live server.
Now Open the javascript file in Notepad
Try to edit & save from notepad.

Is this working expected? or the same problem?
If the same problem, can you please help me to debug (Just I'll take your 30min, we'll text chat in skype/hangout or whatever you prefer)?

Hey guys, FYI:
I found what is causing the weird behaviour and I want to share with you!
When I open a folder in a OneDrive synced folder, for example, at the desktop, the Live Server fires the refresh twice, but, when I open a regular folder, for example, c:\code, everything works fine!
Best regards,
Camilo

@camilopedroso Thanks for the sharing above issue. We will look into that too.

Great! If you need some help to test, call me!
I love the live server extension!

Sure. Good to hear from you :smiley:


Can you preview excel?

Can you preview excel?

Yes and no. Data only. E.g. styles like red text or frozen 1st row are not shown.


seeking for help in SeisIO.jl's read_data() function

Dear Professor Clements,
I am a first-year graduate student from China. I still get some wrongs in SeisIO's read_data fuction.
I can't read the data in sac format for disk like yours in the website
SeisNoise.jl/preprocessing.md at master · tclements/SeisNoise.jl (github.com).
My codes are as follows, the program running result is shown in the attached picture.
julia>using Pkg
julia>Pkg.build()
julia>using SeisIO,SeisNoise,Plots
julia>S=read_data("sac","2<IP_ADDRESS>.40.31.YD302.BHE.sac")
#"2<IP_ADDRESS>.40.31.YD302.BHE.sac" is the name of a sac file

Thank you, I have sovled it.


Token Simulation Plugin crashes Camunda Modeler

See: https://github.com/bpmn-io/bpmn-js-token-simulation-plugin/issues/12

I can reproduce this error.

Any news on using the Token Simulation with current Camunda Modeler builds? Is it a Modeler issue or a plugin issue?

Which Camunda Modeler version is affected by this?

The nightly of the day when I opened the issue was effected.

This does not help us to track down and reproduce this issue.
Is the latest release (v2.2.0) or latest nightly affected. @pinussilvestrus Maybe you can step in and provide the necessary details.

I tested it again. The current nightly is affected.

The latest release (v2.2.0) is affected, too.

IRC the last release still worked.

Thanks for investigating. We will have a look.


import different models in stage1 and stage2

I have a question about your code.
In main_moco_supcon_imba(stage1), it uses models imported from moco_models, which includes the ResNet model you wrote. However, in main_lincls_imba(stage2), it imports models from torchvision.models, and then loads the model that was trained and saved in stage1.
Is there any specific reason why you import different models in stage1 and stage2?
Thanks for providing the paper!

For stage 1, the moco training requires two ResNet models, one for q and one for k. For stage 2, we only need to load the weights of the pre-trained q model.


Add take by scriptname

Hey. I would like to contribute a small improvement to the '- take' command.
This allows to take multiple, different items , when they share the same scriptname.
i.e. - take scriptname:MyFancyDiamond
I tested the functionality of the new feature on my server.
Feedback ? Tell me.

BloodEko

There's no issue requesting any of this.

hell kek


Using arguments in a resolver on a generic type causes schema initialization to fail

Take the following generic collection type:
@strawberry.type
class Collection(Generic[ItemType]):
    @strawberry.field
    async def by_id(self, ids: List[int]) -> List[int]:
        return []

Using it as follows yields the following error:
@strawberry.type
class Post:
    id: int

@strawberry.type
class Query:
    @strawberry.field
    async def posts(self) -> Collection[Post]:
        ...

TypeError: PostCollection fields cannot be resolved. 'dict' object has no attribute 'name'

This error is caused by the ArgumentDefinition obj getting converted to a dict in this line: https://github.com/strawberry-graphql/strawberry/blob/6e4af5ba8f3908758c3de33b2711c37c30a25063/strawberry/types/generics.py#L77
Locally, I'm able to fix this by editing that to become:
preserved_subfields = {
    subfield_name: getattr(field, subfield_name)
    for subfield_name in ["arguments", "federation"]
}
kwargs = dataclasses.asdict(field)
kwargs.update(preserved_subfields)

(and also removing the reconversion for "federation" at https://github.com/strawberry-graphql/strawberry/blob/6e4af5ba8f3908758c3de33b2711c37c30a25063/strawberry/types/generics.py#L100-101)

Did #758 solve this issue?

Yes, it did.


Build error: "unknown type name '_Bool'" when using macOS

Hello,
When trying to run this with Qt5 on Apple Silicon (M1 SoC; ARM-based) it doesn't work out of the box.
It requires setting a flag as discussed here: https://github.com/ilius/ayandict/discussions/6#discussioncomment-11187308. This has been tested with the "helloworld" example (https://github.com/mappu/miqt/blob/master/examples/helloworld/main.go)
Does work: $ export CGO_CXXFLAGS='-D_Bool=bool' && go run main.go
Doesn't work: $ go run main.go
Same applies to build instead of run.
Without the flag it will throw the following errors:
$ go run main.go
# github.com/mappu/miqt/qt
In file included from gen_qabstractanimation.cpp:15:
cgo-gcc-export-header-prolog:54:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:58:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:70:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:71:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:80:69: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:81:70: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:83:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:86:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:97:95: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:101:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:119:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:126:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:126:104: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:140:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:141:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:143:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:144:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:164:8: error: unknown type name '_Bool'
cgo-gcc-export-header-prolog:166:8: error: unknown type name '_Bool'
fatal error: too many errors emitted, stopping now [-ferror-limit=]

Reproduction:

Be on macOS 15.1.1 with an Apple M1
$ brew install qt@5
Add the following exports to e.g. ~/.zshrc:

export LDFLAGS="-L/opt/homebrew/opt/qt@5/lib"
export CPPFLAGS="-I/opt/homebrew/opt/qt@5/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/qt@5/lib/pkgconfig"

Create a demo directory; $ mkdir ~/miqt-test && cd ~/miqt-test
$ go mod init helloworld
$ go get github.com/mappu/miqt/qt@master
Create main.go with the contents of https://github.com/mappu/miqt/blob/master/examples/helloworld/main.go
$ go run main.go

Thank you for the detailed report. I had only tried an older version of macOS, but it seems like this -D_Bool=bool is needed for all newer Clang versions I tried. It also affects Windows as well.
For now I'll add a note in the macOS build guide section of the README. But, a proper fix would be to understand why this is needed (maybe some std change?) and change MIQT's own cflags.go files to solve it automatically.

Interesting, so macOS would've worked fine before without the flag? And that would make it seem that it's not really an arm64 vs amd64 problem either.
Also the clang version I've tried it with:
$ clang --version
Apple clang version 16.0.0 (clang-16<IP_ADDRESS>)
Target: arm64-apple-darwin24.1.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

I might not be able to find a fix for this as it's all quite new to me, but if you need anything tested on macOS let me know.

@FalcoG I have a draft branch up at #103 that I think will remove the requirement to add -D_Bool=bool yourself. I'll test it on all platforms I have access to, but if you could also test it on macOS arm64, that would be appreciated,

@mappu nice! That seems to do the trick. On that branch it now runs without issues when omitting the flag.


power_sensor_active_energy_forward_active_energy showing total instead of per day

Describe the bug
The Entitie: 'sensor.power_sensor_active_energy_forward_active_energy' shows the total instead of per day.

When I try to work with this sensor in ApexChart I get the wrong information:

When I go into the HA energy default dashboard I get the correct data for today:

My question is, does the HA dashboard automatically do a calculation to calculate today?
** Debug information **
Answer the questions below before submitting a new issue.

Are you using the latest version of Home Assistant?: Yes
Are you using the latest version of this integration? : Yes
Have you looked into the closed issues and did not find a similar issue.  Yes
Are you using Kiosk or Northbound / OpenAPI mode? :  OpenAPI
If you ar using Northbound / OpenAPI mode. Check if your credentials are still valid. See How can I verify my Northbound API / OpenAPI credentials?: credentials are valid
Have you checked the logs for any info? : yes

This is expected. xxx_active_energy_forward_active_energy is the total return to grid.

I created a helper to get the kWh per day.


Fixed how we load webhook config

Codecov Report

Merging #15 into master will increase coverage by 0.37%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master      #15      +/-   ##
==========================================
+ Coverage   38.03%   38.41%   +0.37%
==========================================
  Files           5        5
  Lines         305      302       -3
==========================================
  Hits          116      116
+ Misses        185      182       -3
  Partials        4        4

Impacted Files
Coverage Δ

main.go
9.34% <0%> (+0.25%)
:arrow_up:

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 a848979...2616783. Read the comment docs.


paast, e2e, Skip if featureGate is disabled

What this PR does / why we need it:
This PR skips Paast e2e tests if the Passt featureGate is disabled.
This skip also affects tier1 tests running on d/s clusters.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:
NONE

/retest-required

/retest-required

/hold
@RamLavi This needs rebase.

/hold @RamLavi This needs rebase.

Done

/hold @RamLavi This needs rebase.

Done

https://prow.ci.kubevirt.io/view/gs/kubevirt-prow/pr-logs/pull/kubevirt_kubevirt/8266/pull-kubevirt-generate/1557694331635109888
You also need to run make generate

The same is needed for the passt slirp tests.

The same is needed for the passt slirp tests.

@AlonaKaplan not sure which test you mean. Perhaps you meant istio Passt tests?

Looks good now. @AlonaKaplan PTAL

The same is needed for the passt slirp tests.

@AlonaKaplan not sure which test you mean. Perhaps you meant istio Passt tests?

Yes yes, I meant istio.

/retest-required

The same is needed for the passt slirp tests.

@AlonaKaplan not sure which test you mean. Perhaps you meant istio Passt tests?

Yes yes, I meant istio.

Done

/hold
See @AlonaKaplan comment

/hold See @AlonaKaplan comment

Fixed

/lgtm
I think the PR is OK.

/retest-required

/hold cancel


Domain access request from sandbox: psl.noaa.gov

What domain(s) needed? Please describe.
psl.noaa.gov
Why this domain(s) needed? Please describe.
Access to climate data for DEA Waterbodies

Requested domain got added to our list. @MatthewJA Please confirm.

Works!


Reuse compute budget processing

Problem
Compute budget instruction processing for transactions is performed multiple times in the transaction pipeline. The computed budget limits should be reused through the pipeline.
Summary of Changes

Remove one instance of re-processing compute budget instructions in the SVM transaction processor
Add metrics for transactions rejected due to invalid compute budget issues (this should never happen since banking stage filters these transactions out)
Fail earlier in SVM if compute budget processing fails (again, this shouldn't make any difference because banking stage filters these transactions)

Fixes #

@tao-stones, I just rebased to fix conflicts, can you take another look?


Introduce Autopilot compatibility checks

Community Note

Please vote on this issue by adding a 👍 reaction
to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do
not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment.

Description
Introduce additional set of rules for checking if a given GKE Standard cluster, and workloads running on it, are compatible with GKE Autopilot mode.

[ ] Introduce ./gke-policy check compatibility CLI command that will enable required inputs and process REGO rules from gke.compatibility package
[ ] Add compatibility rules

References

Compare GKE Autopilot and Standard
GKE Autopilot security capabilities
Resource requests in Autopilot

References:

Compare GKE Autopilot and Standard
GKE Autopilot security capabilities
Resource requests in Autopilot

This feature most likely duplicates the already existing API capabilities and existing gcloud command:
gcloud container clusters check-autopilot-compatibility
We need to verify what checks are supported by the API provides however.


Add simulator support

Add CosmosSDK simulator support.
Currently blocked by https://github.com/strangelove-ventures/poa/issues/170 and https://github.com/strangelove-ventures/tokenfactory/issues/11

The x/manifest module simulation support has proved more challenging than expected because of https://github.com/liftedinit/manifest-ledger/issues/21#issuecomment-2183376789

I was able to make it work with the workaround described in https://github.com/liftedinit/manifest-ledger/issues/21#issuecomment-2189330468.
However, the determinism simulation fails and I'm still tracking the root cause.

I fixed the determinism issue and implemented the remaining messages.

Removing the x/distribution module fixed the crashes I was having.
I'm currently running the simulator with the parameter file defined in https://github.com/strangelove-ventures/poa/issues/170#issuecomment-2209213973


Added Sengi to clients

Looks cool, the support for multi-account is often requested and I think there is a demand for this.

Looks cool, the support for multi-account is often requested and I think there is a demand for this.


Out of date

I'm super super fascinated to explore this, and try out the @autojit decorator, but llvmpy has been deprecated in favour of llvmlite.
I'm installing on OS X but via brew+pip instead of Anaconda just because I have been building the rest of my software on this machine against those versions and I'm in too deep to switch to Anaconda just to experiment.
Here's how I installed python:
$ brew install python

# add the suggested line to ~/.bash_profile
---------------------------------------------------------------
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
----------------------------------------------------------------

Trying to install llvmpy fails for me with
ip-192-168-2-145:src kousu$ pip install llvmpy
Collecting llvmpy
  Using cached https://files.pythonhosted.org/packages/97/0f/98b78dc8a5ec032e05179fc406622e550d5c571f036beca8f06a4752f648/llvmpy-0.12.7.tar.gz
    Complete output from command python setup.py egg_info:
    LLVM version = '6.0.1'
    LLVM targets =
    Generate intrinsic IDs
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/sy/qyp_73v51_757c_h339_h9xw0000gn/T/pip-install-_1kua0qb/llvmpy/setup.py", line 83, in <module>
        auto_intrinsic_gen(incdir)
      File "/private/var/folders/sy/qyp_73v51_757c_h339_h9xw0000gn/T/pip-install-_1kua0qb/llvmpy/setup.py", line 76, in auto_intrinsic_gen
        intrgen.gen(path, fout)
      File "/private/var/folders/sy/qyp_73v51_757c_h339_h9xw0000gn/T/pip-install-_1kua0qb/llvmpy/tools/intrgen.py", line 13, in gen
        for line in open(f):
    FileNotFoundError: [Errno 2] No such file or directory<EMAIL_ADDRESS>
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/sy/qyp_73v51_757c_h339_h9xw0000gn/T/pip-install-_1kua0qb/llvmpy/

I'll try to patch numpile to run against llvmlite. First, for that, I need to do:
$ brew install llvm@6  # llvmlite is only up to date with last-year's llvm
  ~/.bash_profile
----------------------------------------------------------------
export LDFLAGS="-L/usr/local/opt/llvm@6/lib -Wl,-rpath,/usr/local/opt/llvm@6/lib"
export PATH="/usr/local/opt/llvm@6/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/llvm@6/lib"
export CPPFLAGS="-I/usr/local/opt/llvm@6/include"
----------------------------------------------------------------

$ source ~/.bash_profile

$ pip --version
pip 18.0 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
$ pip install numpy
$ pip install llvmlite

... TODO ...

Fixed by #7.


Bump luet-makeiso version to 0.3.8

Problem:
Running command make build-iso to generate ISO results in error.
Solution:
Update the version of luet-makeiso so that it supports changing boot_file, boot_catalog, and isohybrid_mbr, which are required for Grub2.
Related Issue:
https://github.com/harvester/harvester/issues/1320
Test plan:
make build-iso should generate ISO without any issue.

Thanks! I can build successfully with the fix.
Another issue is When I create a tag(e.g. v0.3.0-dev) and make build-iso, it generates the following artifacts. I would expect we use the Harvester version instead:
$ ls dist/artifacts/
harvester-v0.2.4-amd64.iso  harvester-v0.2.4-amd64.iso.sha256  harvester-v0.2.4-initrd-amd64  harvester-v0.2.4-rootfs-amd64.squashfs  harvester-v0.2.4-vmlinuz-amd64

Thanks! I can build successfully with the fix. Another issue is When I create a tag(e.g. v0.3.0-dev) and make build-iso, it generates the following artifacts. I would expect we use the Harvester version instead:
$ ls dist/artifacts/
harvester-v0.2.4-amd64.iso  harvester-v0.2.4-amd64.iso.sha256  harvester-v0.2.4-initrd-amd64  harvester-v0.2.4-rootfs-amd64.squashfs  harvester-v0.2.4-vmlinuz-amd64

if DRONE_TAG presents, that should be change to it: https://github.com/harvester/harvester-installer/blob/212059f8bc7561477e258bb3554ed7ba008f3a36/scripts/package-harvester-os#L22-L24

@johnliu55tw Can you help to pick this commit to v0.3 branch?

@gitlawr Done: #1322


ACTs for VM SV39 with Coverpoints

Description
Hello everyone,
This PR is adding a comprehensive set of self-checking assembly tests for the architectural verification of SV39 with coverpoint defination. These tests are hand-written and follows the test plan provided in the following testplan. All the tests are RISCOF compliant. I have executed these tests using SAIL as our reference model and SPIKE as the Device Under Test (DUT).
For detailed information on the code coverage and verification outcomes, please refer to the rendered report, accessible via the provided coverage report
I've added clear test descriptions at the beginning of each test, detailing their behavior and expected outcomes. I've also created separate commits for each test as per the test plan for better organization.
Here's an overview of the different categories covered by these tests

Test Features
Test Description

PMP Permissions
Assesses PMP permissions on both physical addresses and PTEs.

PTE Validity and Permissions
Evaluates the Read/Write/Execute (RWX) permissions of PTEs with the valid bit set to 0, including reserved encodings at level2, level1 and level0 PTEs, and non-leaf PTEs for level 0 in both user and supervisor modes.

Access on Supervisor and User Pages
Tests access permissions for Supervisor and User mode pages in both supervisor and user privilege level2, level1 and level0 PTEs.

Executable Page Readability
Checks the behavior of readable executable pages with different s/mstatus.MXR set and unset.

RWX access on U mode pages in S mode
Examines RWX access of User mode pages in Supervisor mode with different s/mstatus.SUM set and unset.

Access and Dirty Bit Implementation
Evaluates the implementation and effects of the access and dirty bits (A and D) on page fault exceptions.

Misaligned Superpage
Investigates page faults for misaligned superpages at level 2 and level 1 PTEs in both user and supervisor modes.

Important Note
These tests have been specifically designed for the RV64 architecture. However, it's important to note that by default, both SPIKE and SAIL do not support addresses greater than 32 bits. The physical address space for sv39 architecture extends up to 56 bits. To enable support for this 56-bit address space:

For SPIKE, use the -m<size in MB> flag in the execute command within the riscof_spike.py script. In the context of a 56-bit address space, set the size to<PHONE_NUMBER>208 MB, equivalent to 0x80000000000, effectively encompassing the entire 56-bit memory.

For SAIL, utilize the --ram-size=<size in MB> flag in the execute command within the riscof_sail_cSim.py script, again setting the size to<PHONE_NUMBER>208 MB.

Ensure that this size is configured as the starting address in our linker file to correctly map memory for these tests.

Related Issues

This PR is related to SV39 Vm ACTs, as discussed in Virtual Memory ACT

Ratified/Unratified Extensions

[x] Ratified
[ ] Unratified

Reference Model Used

[x] SAIL
[x] Spike
[ ] Other - < SPECIFY HERE >

Mandatory Checklist:

[x] All tests are compliant with the test-format spec present in this repo ?
[x] Ran the new tests on RISCOF with SAIL/Spike as reference model successfully ?
[x] Ran the new tests on RISCOF in coverage mode
[x] Link to Google-Drive folder containing the new coverage reports (See this for more info): Folder Link
[ ] Link to PR in RISCV-ISAC from which the reports were generated
[x] Changelog entry created with a minor patch

Optional Checklist:

[x] RISCV-V CTG PR link  : PR#89
[x] Were the tests hand-written/modified ?
[ ] Have you run these on any hard DUT model ? Please specify name and provide link if possible in the description
[ ] If you have modified arch_test.h Please provide a detailed description of the changes in the Description section above.

I think there may be a bug lurking in these tests.
You set up the pointers to the sve areas, and the execute GOTO_LOWER_MODE without first executing GOTO_MMODE.
The problem is that GOTO_LOWER_MODE must calculate the difference between the previous mode that set EPC and the what that address would be in the new lower mode, but you haven't initialized either xEPC, and  mstatus.MPP.
GOTO_MMODE does both.  I'm not actually sure how or why these tests pass,


Editing tracker list mid-experiment leads to problematic trialData.csv

My experimental design involves different types of trials, with different needs for data recording.  As a result, I modify the session's tracker list mid-experiment.  This leads to issues with trialData.csv, which assumes a stable tracker list, where each tracker file is linked in its own column, which receives its own header at the start of the session.
The issues is that these headers are invalid once the number of trackers is modified.
The simple fix would be to stop using a column per tracker, and instead switch to a SINGLE column output regardless of the number of trackers.  The column, which I will call, "Trackerlist" would list all data files associated with that trial in string format, with a non-comma delimiter between filenames.  Eg, "head_movement.csv; foot_movement.csv; tool_orientation.csv".
This solution is an improvement in that it avoids having a CSV that changes the number of columns when the number of trackers changes.

Whilst your solution is OK, I think it makes it complicated for simple experiments. One way to solve this in my experience is make a GameObject called e.g. "Tracker" with the PositionRotationTracker component attached, then you can just reparent this Tracker GameObject to the head, foot, tool etc. E.g.
if (trialType == "foot")
{
    tracker.transform.parent = foot.transform;
}
else if (trialType == "head")
{
    tracker.transform.parent = head.transform;
}
...

This is still a bit limiting, as it assumes that you know all the trackers you will need at the beginning of the experiment. Jack, can you point me towards the code where the tracker's filenames are written out to the trial data file?

At the end of each trial, this is called:
https://github.com/immersivecognition/unity-experiment-framework/blob/3716bf0018fcece530b65f2cfe77a09b430f4da0/Assets/UXF/Scripts/Etc/Trial.cs#L113-L119
Which calls this per tracker:
https://github.com/immersivecognition/unity-experiment-framework/blob/e09e4ce821763500d4d48e7aa23c23ad41c95c93/Assets/UXF/Scripts/Session.cs#L379-L403

In general, I would prefer a simple approach rather than a complex approach that hurts most use cases, which I think splitting a string delimited by ; does. For your exact issue where an unknown number of trackers are needed, you can actually write your own tracker class which collects data however it wants, and can be different on each trial. You would need to create a class which inherits from Tracker and implements all the methods. The PositionRotationTracker is an example of this:
https://github.com/immersivecognition/unity-experiment-framework/blob/3716bf0018fcece530b65f2cfe77a09b430f4da0/Assets/UXF/Scripts/PositionRotationTracker.cs
You could copy the above file but add public fields which point to the object(s) you are currently tracking, and change the data it spits out based on the content of the field.

?Thanks, Jack.  I'll see what I can do.

Gabriel J. Diaz, Ph.D.
Associate Professor
Rochester Institute of Technology
Chester F. Carlson Center for Imaging Science
Founder of PerForM Labs
Click for demos.https://www.cis.rit.edu/performlab/
Office 2108, Building #76
Rochester, NY 14623
Office:<PHONE_NUMBER>tel:(585) 475-6215
gabriel.diaz<EMAIL_ADDRESS>
From: Jack Brookes<EMAIL_ADDRESS>Sent: Tuesday, August 4, 2020 11:51 AM
To: immersivecognition/unity-experiment-framework
Cc: Gabriel Diaz; Author
Subject: Re: [immersivecognition/unity-experiment-framework] Editing tracker list mid-experiment leads to problematic trialData.csv (#30)
At the end of each trial, this is called:
https://github.com/immersivecognition/unity-experiment-framework/blob/3716bf0018fcece530b65f2cfe77a09b430f4da0/Assets/UXF/Scripts/Etc/Trial.cs#L113-L119
Which calls this per tracker:
https://github.com/immersivecognition/unity-experiment-framework/blob/e09e4ce821763500d4d48e7aa23c23ad41c95c93/Assets/UXF/Scripts/Session.cs#L379-L403

You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/immersivecognition/unity-experiment-framework/issues/30#issuecomment-668677141, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACEL7WZM77NDHDE4DMPDWR3R7AU6RANCNFSM4POITKWQ.

@performlabrit I have news! I tested this out with the new "Ad Hoc Header Add" setting in the Session component, everything should work out of the box.
The way to do it is to edit the session.trackedObjects as the trial begins, and then remove that object from the list after the trial has ended. Something like this, assuming you have a reference to the "Foot" tracker in your script:
// starting your trial
session.NextTrial.Begin();
session.trackedObjects.Add(foot);

...

// ending your trial
session.CurrentTrial.End();
session.trackedObjects.Remove(foot); // <-- IMPORTANT, REMOVE AFTER TRIAL ENDED

Of course you get something like this as the output, but I think this is preferable as it requires no further processing.

Jack, I believe I did try something like this.  This works within Unity, but presented some complications later on.  If my memory is correct, the issue is that the trackers/filenames specified in the CSV headers will apply to some rows/trials, but not others. Really, the tracker files need to be specified on a row-by-row basis in the trial results file, not once at the headers, for all rows.
If your proposed solution solves that problem, then we're all set.
In my particular use-case, I've just opted to have all trackers on, all the time.  Because trial types can differ qualitatively (e.g. some trials are for eye tracking calibration, others for performing a visual-motor task), each trial type will have tens of columns of "nan" data.

gD

Gabriel J. Diaz, Ph.D.
Associate Professor
Rochester Institute of Technology
Chester F. Carlson Center for Imaging Science
Founder of PerForM Labs
Click for demos.https://www.cis.rit.edu/performlab/
Office 2108, Building #76
Rochester, NY 14623
Office:<PHONE_NUMBER>tel:(585) 475-6215
gabriel.diaz<EMAIL_ADDRESS>
From: Jack Brookes<EMAIL_ADDRESS>Sent: Monday, August 17, 2020 1:36 PM
To: immersivecognition/unity-experiment-framework
Cc: Gabriel Diaz; Mention
Subject: Re: [immersivecognition/unity-experiment-framework] Editing tracker list mid-experiment leads to problematic trialData.csv (#30)
@performlabrithttps://github.com/performlabrit I have news! I tested this out with the new "Ad Hoc Header Add" setting in the Session component, everything should work out of the box.
The way to do it is to edit the session.trackedObjects as the trial begins, and then remove that object from the list after the trial has ended. Something like this, assuming you have a reference to the "Foot" tracker in your script:
// starting your trial
session.NextTrial.Begin();
session.trackedObjects.Add(foot);
...
// ending your trial
session.CurrentTrial.End();
session.trackedObjects.Remove(foot); // <-- IMPORTANT, REMOVE AFTER TRIAL ENDED
Of course you get something like this as the output, but I think this is preferable as it requires no further processing.
[image]https://user-images.githubusercontent.com/23621596/90425497-bb0c3d80-e0b7-11ea-840a-046db1598a76.png

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/immersivecognition/unity-experiment-framework/issues/30#issuecomment-675015803, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACEL7W77E2QF6NM3KYBV3CTSBFTDPANCNFSM4POITKWQ.

...or, maybe I'm misunderstanding the organization implied by that image.  Maybe the number of columns is indeed constant (as indicated by the top-row) and the repetitions in each column serve more as bools to indicate that the file is included.  If that's the case, then that works, too.

There is a constant number of columns within a session. If the cell is blank, it just means that tracker was not active on that trial.
There would be a variable number of columns (across participants) if some participants did not experience some trials which had those trackers, correct. This is why the adhoc option is optional, because it requires a bit more thinking if you are importoring and merging lots of participants' data files.


Use warnings.warn.

pytest 4.1 (released a couple of days ago) removed Config.warn in favor of warnings.warn.
https://github.com/pytest-dev/pytest/pull/4542
This makes the corresponding change here.

Could we have a patch release with this?

published 0.3.0


Support for ili9486

Type of Raspberry Pi
RPi 4 Model B
Linux Kernel version
Linux raspberrypi 5.10.0-rc4-v7l+ #1372 SMP Tue Nov 17 14:26:25 GMT 2020 armv7l GNU/Linux
Description
This is not an issue with luma.lcd.  It is instead a request for help in adding ili9486 support.
The display is alive, and luma.lcd can turn it on and off.  Those commands and the column, row commands have not changed from the ili9341.
The display is definitely not correct though.  The attached images show what's going on for the demo and bounce examples from luma.examples.  I was just curious whether you've seen anything resembling that before and had any advice.  It's almost like some sort of odd interlacing mode.
You're under absolutely no obligation to help, of course. :)  If you don't have any suggestions, I can just close this issue out.
Modification to device.py at this point amount to the following, adapted from the MIT Licensed code at
https://github.com/bkosciow/gfxlcd/blob/master/gfxlcd/driver/ili9486/ili9486.py
        self.command(0x0b, 0x00, 0x00)                      # Read Display MADCTL
        self.command(0x11)                                  # sleep out
        self.command(0x3a, 0x66)                            # Interface Pixel Format
        self.command(0x36, 0x88)                            # Memory Access control (rotations)
        self.command(0xc2, 0x44)                            # Power Control 3 (for normal mode)
        self.command(0xc5, 0x00, 0x00, 0x00, 0x00)          # VCOM control

        self.command(0x0e,                                  # Positive Gamma control
                     0x0f, 0x1f, 0x1c, 0x0c, 0x0f, 0x08, 0x48, 0x98,
                     0x37, 0x0a, 0x13, 0x04, 0x11, 0x0d, 0x00)
        self.command(0xe1,                                  # Negative Gamma control
                     0x0f, 0x32, 0x2e, 0x0b, 0x0d, 0x05, 0x47, 0x75,
                     0x37, 0x06, 0x10, 0x03, 0x24, 0x20, 0x00)
        self.command(0xe2,                                  # Digital Gamma control 1
                     0x0f, 0x32, 0x2e, 0x0b, 0x0d, 0x05, 0x47, 0x75,
                     0x37, 0x06, 0x10, 0x03, 0x24, 0x20, 0x00)
        self.command(0x21)                                  # Display inversion ON for LCD(B)
        self.command(0x11)                                  # sleep out
        self.clear()
        self.show()

I'm just hard-coding rotation at this point.  I need another 90-degress of course to get into a landscape orientation, but I thought the existing view captured the problem nicely.
Thanks,
Matt
demo

bounce

Yes this looks familiar and is quite common when tweaking the correct init sequences. Your best bet is to get hold of the datasheet for the device. You're on the right track with the rotation, but there will be another init setting that dictates the way the display memory is laid out (I vaguely recall it is often called something like Remap, MUX or COM mode). There will almost certainly be a section in the datasheet going into quite a bit of detail about how it can be configured. However, usually, for me at least, it is sometimes a game of whack-a-mole until it works 😬
Does the other library code work unaltered with your device?

Does the other library code work unaltered with your device?

So far.  I've only been using the full_frame update technique.  The display on and display off commands do work.  The rest of the infrastructure, with suitable updates in luma/lcd/driver.py is perfectly happy to give a display type of ili9486 a try.
Hmm... this comment, in the "blazing fast" C-based driver juj/fbcp-ili9341 is potentially interesting:
https://github.com/juj/fbcp-ili9341/blob/5ff367c0966e933659599ed7e3abd46dead82948/ili9486.h#L19
// On ILI9486 the display bus commands and data are 16 bits rather than the usual 8 bits that most other controllers have.
Because of that define, the initialization sequence in that driver's ili9486.cpp ends up having pre-processor branches that conditionally "expand" the initialization commands.  For instance:
https://github.com/juj/fbcp-ili9341/blob/662e8db76ba16d86cf6fd09d85240adc19e62735/ili9486.cpp#L57-L66
Standalone commands, such as controlling display inversion, are not similarly modified (see Lines 51-55 in that file).
If the ili9486 (or Waveshare's implementation of it) indeed uses a 16-bit shift register to receive SPI data and then transfers that on a parallel interface, what accommodation would have to be made within luma.lcd?
I've modified my initialization code to match the 16-bit version shown, but I'm still essentially at the same point I was.  The display shows all of the elements of demo.py, but only at half-width, splitting interlaced lines across that half.  (If one stares at the "hello", for instance, you can see that different pixels are present in each half's letters.  Taken together, they would form the intended character.)
The display I picked up is the 3.5-inch IPS LCD(B) from Waveshare:
https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(B)
I'll have to play more tomorrow.
Cheers!
Matt

// On ILI9486 the display bus commands and data are 16 bits rather than the usual 8 bits that most other controllers have.
Looking at the datasheet for ILI9486 (a version marked preliminary) and comparing it with ILI9341, I'm not sure where the above statement originates.  I haven't found much of a difference, thus far, in the discussing of serial transfers for the two controllers.

Instead of doggedly treating the display as 480x320, which is what I was doing yesterday, I decided to try letting it be a 320x480 display.  Look what resulted!

Rotation (on the command line of the luma.examples) works nicely, too.

The following changes seem to work for display().  There are two aspects of the changes:

There's definitely something to the "Waveshare is using a 16-bit shift register" statement.  Note the zeros between the arguments; these appear to be necessary for this display.

Switching width and height requires a similar transpose to other measurements.

Anywhere, here is the working display(), complete with print statement for debug:
        for image, bounding_box in self.framebuffer.redraw(image):
            top, left, bottom, right = self.apply_offsets(bounding_box)
            print("left",left," top",top," right",right," bottom",bottom)

            self.command(0x2a, 0, top >> 8, 0, top & 0xff, 0, (bottom - 1) >> 8, 0, (bottom - 1) & 0xff)     # Set row addr
            self.command(0x2b, 0, left >> 8, 0, left & 0xff, 0, (right - 1) >> 8, 0, (right - 1) & 0xff)     # Set column addr
            self.command(0x2c)                                                                   # Memory write

            self.data(image.tobytes())

The bounce demo is achieving 17.6 fps on this 320x480 display at 48 MHz with the print statement in place (and 18.1 without it).  Pushing the SPI frequency much higher results in some artifacts.
That seems pretty good for a display of this size.

Here's my application on the (rotated) display.  The update speed is perfectly adequate for this usage.

driver.py modifications submitted as #136

The following changes seem to work for display(). There are two aspects of the changes:
* There's definitely something to the "Waveshare is using a 16-bit shift register" statement.  Note the zeros between the arguments; these appear to be necessary for this display.

* Switching width and height requires a similar transpose to other measurements.

Anywhere, here is the working display(), complete with print statement for debug:
        for image, bounding_box in self.framebuffer.redraw(image):
            top, left, bottom, right = self.apply_offsets(bounding_box)
            print("left",left," top",top," right",right," bottom",bottom)

            self.command(0x2a, 0, top >> 8, 0, top & 0xff, 0, (bottom - 1) >> 8, 0, (bottom - 1) & 0xff)     # Set row addr
            self.command(0x2b, 0, left >> 8, 0, left & 0xff, 0, (right - 1) >> 8, 0, (right - 1) & 0xff)     # Set column addr
            self.command(0x2c)                                                                   # Memory write

            self.data(image.tobytes())

The bounce demo is achieving 17.6 fps on this 320x480 display at 48 MHz with the print statement in place (and 18.1 without it). Pushing the SPI frequency much higher results in some artifacts.
That seems pretty good for a display of this size.

RE: 16-bit registers, I just found this : https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/tiny/ili9486.c#L38