Update to v1.12.1

Added a custom abs.yaml because we get an overdepending error from libcurl, which isn't a direct dependency of the project and is therefore tricky to figure out.
Apart from that, some Windows specific changes had to be made to the recipe, none of which are present in the conda-forge recipe since they haven't added Windows support yet.
Key points: training mode is disabled (not sure if Snowflake needs it), and both the vec and no-vec options are built.

I'm not sure but it seems like ninja can cause issues on win64, see https://bugs.webkit.org/show_bug.cgi?id=161517

This is incredible. I haven't finished reviewing yet, but I will. Thank you!

Per conversation in slack, we would need this package to be updated to link against libprotobuf 3.20.1, which will introduce the pin libprotubuf >=3.20.1,<3.21.0a0

@mcg1969 Looks like the non-Windows builds are passing with the latest change, so please let me know if everything looks good.
(Note: You can ignore the failing win64 build as that is due to some defective Prefect behavior; it will build correctly if we close and re-open the PR).


Support for MultiCompiler?

Hi,
webpack supports MultiCompilers:
webpack([config1, config2, ...]);

It seems that this plugin doesn't support it, as one of the compilers (the latest one) always removes the files from the previous builds..
Is this something that is on the roadmap / can be fixed?

Multi-compilers are supported, you just need to setup your build correctly.
See https://github.com/johnagan/clean-webpack-plugin/issues/157#issuecomment-518347683 and linked issues.

All right, thank you @chrisblossom !


Merge in Alan's GSLB documentation

i'm not sure what this is tbh. i'm closing for now and if that's a mistake, please let me know.

All good, @russorat. I was asked to try and merge just Alan's changes for GSLB. This was the initial PR. It proved to be too complicated, so we linked to a blog post since we didn't have docs out yet.


One IndexedDbService per table?

So I'm trying to figure out how to use this library if I have multiple tables, of the same type that needs to live in multiple tables (think managing a queue).
Does each table name correspond to the "storeName" in the instructions, and I need to have one IndexedDbService per table?
Thanks!

IndexedDB object stores are better thought of as NoSQL key-value stores, rather than SQL-style tables. They don't enforce any structure on the objects you put in them, other than a shared key. The storeName parameter for the IndexedDb constructor corresponds directly to the name parameter of the IndexedDB API's objectStore method.
If your use case involves duplicate keys among your tables, then the solution you described is absolutely correct. Set up multiple IndexedDb objects with different store names. Instead of calling the AddIndexedDb convenience method, you can use keyed services to register separate instances of the service for each database. You can find the correct call here. I may make that process easier in a future update.
If you don't have duplicate keys among your objects, nothing prevents you from putting them all in the same store. Even if you would normally want them in separate tables in a SQL database, NoSQL storage like IndexedDB can be much more tolerant of mixed content. You can use whichever setup seems best to you for your use case.

I really appreciate your time in building this library and answering my question so quickly.
I'm basically building an IndexedDB backing store for my SimpleMessageBus library, so I can build an out-of-band processing system for Blazor WebWorkers. The experience I'm looking for is to let the developer be able to open DevTools and see different "tables" in the IndexedDB to see which calls have succeeded or failed.
The other backing stores we've built (file system and Azure Storage Queues) have the same structure, so we want to be consistent.
I'm not 100% thrilled with the idea of having to inject multiple services, but I will try it and see what happens.
I'm looking at this library also. What I like about it is that it has essentially a DbContext that lets you have object sets mapped to different storenames in a single DB "object". What I don't like is how out of date its dependencies are.
You definitely do a better job of keeping your code up to date, making the end user NOT have to register the JS themselves, and your compiled JS does not have Webpack artifacts in it, so kudos to you there.
You might consider updating your JS assets under the covers are putting out an updated build. I think idb is on V8.0 now, among other dependencies. And if you have your assets compile to "wwwroot" instead of "assets", you won't have to have so many extra MSBuild instructions in your project file.
HTH!

You make some excellent points.
I've just refactored the project to make the API a little bit more rational. I also updated and improved my build process a bit.
The service is now responsible only for JavaScript interop and should only be injected once (with a new extension AddIndexedDbService).
The IndexedDb object now serves much more as a representation of a database. They can be registered with dependency injection as keyed services with the AddIndexedDb extension, or simply instantiated with a constructor as needed.
The new IndexedDbStore object represents object stores directly, and the methods formerly used on the service are now instance methods on this object. The IndexedDb object contains a dictionary property for these, and also has an indexer for direct access. The indexer also supports lazy initialization: retrieving a store which was not explicitly added beforehand creates, adds, and returns it on demand.
v4.0 is available on NuGet now


Allow git_credentials to be configurable

This will make it so repo2docker can clone private GitLab repos as long as GitLabRepoProvider.git_credentials is configured.
I have no way of testing that this will work with an actual secret.yaml file. I believe there is more work to do for it to read this value from a yaml file -- in the helm-chart templates. Can someone confirm this for me?
Also the tests fail for me on master, probably because I'm missing some step I need in order to run them. The contributing docs just say to run pytest, but it seems there's more to it than that. Anyway, I can't test this.
There are a couple other ways I could do this:

Only make it configurable in GitLabRepoProvider, instead of in all repo providers via the RepoProvider base class.
Create a new configurable value, like git_username, and build the credential string in a method on GitLabRepoProvider (since access_token is already configurable and that's the git password).

I'm not sure what way is best. Please provide feedback.

This pull request has been mentioned on Jupyter Community Forum. There might be relevant details there:
https://discourse.jupyter.org/t/how-do-you-configure-binder-when-running-locally-with-minikube/666/10

Thanks for following up with this PR!
After (re)reading our code for a while and pondering why it is the way it is I think for the GitLab repo provider we should copy the GitHub one:
https://github.com/jupyterhub/binderhub/blob/591b9cf1b7bf5d0f600d5af6a34ad7e744203aa3/binderhub/repoproviders.py#L330-L341
but change the comment and format of the git credentials string it produces. This would save people from having to put their access tokens in two places in the config. From a bit of googling it seems the username can be set to anything and the token goes in the password field (unlike GitHub where it is the other way around ...) So git clone https://mybinderhubuser:<private<EMAIL_ADDRESS>should work. Wondering if we should hardcode binderhub as the username.
I think the reason that git_credentials doesn't have the config=True set by default is that it was/is intended to be used as it is in the GitHub repo provider. This means that users don't actually set it themselves but it is computed from the access token.
Regarding setting these value from a helm config file: this should be automatic if you set the BinderHub.config key in the yaml file. We use this for mybinder.org config here

Ok, I've updated this according to feedback, and updated the docs as well. I decided to use the private_token config instead of access_token since the GitLab documentation says private_token. I don't know what the difference is otherwise.
I have manually tested this.

Looks good to me. Merging!
Congratulations on your first merged PR to BinderHub and thanks for the patience :)
Maybe some day someone who knows about access vs private token will stop by and explain it to us.

I learned something -- so, private tokens were a thing that was deprecated, but ?private_token=<token> is still what's expected in API calls:

To make authenticated requests to the API, use either the private_token parameter or the Private-Token header
https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#personal-access-tokens

Technically it's an access_token, but it still has to be called private_token.


Anagram

Description
Solved anagram problem using java
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

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

Test Configuration: (If any)

Firmware version:
Hardware:
Toolchain:
SDK:

Checklist:

[x] My code follows the style guidelines of this project
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] Any dependent changes have been merged and published in downstream modules

@soumyaranjan-panda lets discuss again and then start committing and pulling


typeerror jquery cannot read property indexof undefined

Please the error is on this line in my javascript file,
Keyword holds an attribute in my .php
if(thumbnailKeywords.indexOf(keyword)!= -1)

Sorry, I dont' understand what you asking about.


Add initial docs for the napari plugin and Python api

Fixes #60

using sphinx to build the docs; hosted on readthedocs at http://epitools.readthedocs.io/ (we'll need to merge into main before the docs are built)

updated the docstrings of the public functions

using the README as the landing page for the documentation

using the pydata sphinx theme with dark-mode disabled as the epitools logo only supports light-mode

I've recorded several short movies showing how to use the plugin (they're all in docs/_static/). It should be possible to add them in docs/napari_plugin/index.rst using the sphinx-contrib-video extension, but the movies might first need to be converted form .mov to .mp4

Thanks for the speedy review! Time for me to👨🍼

Getting /Users/paddy/arc/napari/epitools/epitools/docs/api/index.rst: WARNING: document isn't included in any toctree

I'll merge and fix anything I find later!


Test if O0 flag in debug builds fixes some coverage issues

Pull Request Test Coverage Report for Build<PHONE_NUMBER>4
Details

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

Totals

Change from base Build<PHONE_NUMBER>1:
0.0%

Covered Lines:
427

Relevant Lines:
431

💛  - Coveralls


Invoke returns panic because of nil instance

Hey! I have a problem. I have a config struct and want to provide some instances for my application.
main.go:
di := do.New()

do.Provide[*redis.Client](di, func(i *do.Injector) (*redis.Client, error) {
  db, err := c.ConnectRedis()
  if err != nil {
	  return nil, err
  }
  return db, nil
})

do.Provide[*bun.DB](di, func(i *do.Injector) (*bun.DB, error) {
  db, err := c.ConnectPostgres()
  if err != nil {
	  return nil, err
  }
  return db, nil
})

And the strange thing is that the Redis client was created successfully and I can invoke it, but the Postgres client instance is nil (found with debugger). What is the logic of that? Because I didn't understand and can't do the job, because some of my clients weren't built.
Example of invocation
redisClient := do.MustInvoke[*redis.Client](i) // ok, I can use it
postgresClient := do.MustInvoke[*bun.DB](i) // panic here and in debugger: built = false, instance = nil

Can you call both:
fmt.Printf("%v\n", di.ListProvidedServices())
fmt.Printf("%v\n", di.ListInvokedServices())

It may help for debugging ;)

fmt.Printf("%v\n", di.ListProvidedServices()) - [*webroute.WebRoute aws *user_accounts.Service *preferences.Service *system_preferences.Service *auth.Authenticator *providers.Service *accounts.Service *preference_options.Service *account_preferences.Service *logrus.Logger *redis.Client bun email_provider *users.Service *user_preferences.Service *notifies.Service *prefer.Service *user_auth.Service]
fmt.Printf("%v\n", di.ListInvokedServices()) - []

do. ListProvidedServices() should have *bun.DB registered.
You should check your code. do.Provide[*bun.DB] might not be called.

The problem gone when I invoke service right after provide it


rm unused provider

what

aws provider is not being used

why

adds an extra entry into my lockfile

/test all

@Gowiem that test failure is a weird one. any ideas?

/test bats

@kevcube looks like it was a fluke. Thanks to @joe-niland for running again!

@Gowiem yes I think a genuine networking issue or short outage


Add missing documentation for output destination

Took me some time to get it running with missing documentation. Hope this clarifies how its supposed to be used.

Thanks and sorry for the lost time due to lacking docs.

Well, I've already been using your software in several projects and it was really helpful, so I guess I'm in no position to complain. ;-)
I'm sure next time your documentation will be just as good. ;-)


[Issue 1907]  Extension -  Handle case 0 networks connected

🚀 Deployed on https://pr-3298--sw-web-runner.netlify.app


Support watch mode

Reference: https://twitter.com/srush_nlp/status/1361704681391685632?s=20

I will close this for now. Maybe one day we will add it, but no priority. :)

Ooooh, a shame, I would love to have this, as I really dislike editing with default keybindings, it would be amazing to be able to edit .livemd files on vim and watch its updates on livebook.


add flag to hide preds

Example:
#lang forge

sig Node {edges: set Node}

pred wheat hiddenPred {
    edges = ~edges
}

check { true } for { hiddenPred }
// without "wheat" = uncaught exception: "Invalid bind: (&& (&& (= (Relation edges) (~ (Relation edges)))))"
// with "wheat" = uncaught exception: "Invalid bind: #<wheat>"

Syntax suggestions welcome!

Ping @sidprasad . All wheats should use this, so students can't print them.

Does this break deparse?

Yes it did. Added a deparse case.
Any ideas how to test deparse? I ran some local checks. Not sure how to create good input for deparse.

Update: planning to merge in a few days & start using for forge2

Merged so forge2 can start hiding wheats. Sorry Tim if you get a merge conflict with pardinus!


feat: bump the tf module version

https://companieshouse.atlassian.net/browse/JU-889

CI: IaC Security warnings found!

CI: IaC Security warnings found!

CI: IaC Security warnings found!

CI: IaC Security warnings found!

CI: IaC Security warnings found!

CI: No IaC security warnings found


Dead link on hompage

link to documentation is dead - http://www.ryanbensonmedia.com/documentation

Oops, my bad. Thanks for catching that! I'm on vacation at the moment but
I'll try to fix it soon, maybe later this week.
On Sep 22, 2015 5:11 AM, "Daniel Varga"<EMAIL_ADDRESS>wrote:

link to documentation is dead -
http://www.ryanbensonmedia.com/documentation
—
Reply to this email directly or view it on GitHub
https://github.com/ryanbenson/Harvest/issues/12.

@DaVarga this documentation stay this link http://www.ryanbensonmedia.com/harvest/documentation

Yes, i found it myself. But thanks.

Ah! My sincere apologies, I completely forgot about this. I fixed the link on the harvest home page. Sorry about that! But I'm glad you were able to find it, and thanks for jumping in @YanMagale to help with this!


Version Packages

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
<EMAIL_ADDRESS>Patch Changes

#566 81a943e Thanks @threepointone! - add support for team deploys

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


[BUG] Tooltip hides when icon within the button is hovered

Provide a general summary of the issue here
"@sl-design-system/tooltip": "1.0.1"

🤔 Expected Behavior?
Tooltip should be displayed when user hovers the icon within the button.
😯 Current Behavior
Tooltip that is set to sl-button hides when fa-icon placed inside is hovered.
💁 Possible Solution
No response
🖥 Steps to Reproduce
Example code to reproduce:
<sl-button
aria-describedby="eye-btn-tooltip"
fill="ghost"
size="sm"
icon-only

  <fa-icon [icon]="faEye"></fa-icon>

      Hide side panel

What browsers are you seeing the problem on? (only for bugs in code)
Chrome
If other, please specify.
No response
What operating system are you using?
Windows
🧢 Your product/team
ETSL
🎨 Your Theme(s)
Editorial Suite

The issue became apparent because the icon in the button is not an sl-icon. I've made changes to that content other than text or sl-icon now also doesn't capture events (and causes the tooltip to disappear).
There is another problem with the video however, also caused by not using sl-icon:
The padding on the button is incorrect:

We only check for sl-icon to add the icon-only property, which is used in the css to apply the correct padding.
It should look like this:


internal/recommendations: fix package recommendation url

The recommendation team is exposing this service and adding proxy configuration with a different URL. Therefore, I'm updating the URL accordingly

Oh codecov.io is working again, cool.


installing timesfm on databricks

Hello,
I would like to test timesfm on databricks notebook.
Since i cannot set up an environment, I simply did
(1) git clone, and install by (2) pip install -e .  however am getting below error.
ERROR: File "setup.py" not found. Directory cannot be installed in editable mode: /databricks/driver/timesfm
(A "pyproject.toml" file was found, but editable mode currently requires a setup.py based build.)
Any ideas how i can install it ??

We went the way of using a .toml file for package setup. For a setup.py route, you would have to write your own setup.py.

@rajatsen91 Does this mean it is not possible to test it in  google colab either without writing my own setup.py???


[IOTDB-2439]Library-UDF documents on website

Description
This pr merges all udf documents.

This PR has:

[x] been self-reviewed.

[ ] concurrent read
[ ] concurrent write
[ ] concurrent read and write

[x] added documentation for new or modified features or behaviors.
[ ] added Javadocs for most classes and all non-trivial methods.
[ ] added or updated version, license, or notice information
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious
for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold
for code coverage.
[ ] added integration tests.
[ ] been tested in a test IoTDB cluster.

Key changed/added classes (or packages if there are too many classes) in this PR

Coverage increased (+0.02%) to 67.753% when pulling be7020e93561235ca886b8a26c4e08b9e7a4ff99 on trin1t:library-merge-doc into 061a9787e199ca0c85735232aaef335dce93e7c6 on apache:master.


662 more strict tolerance for unitintegration tests

Closes #662
This also corrects the oregonator test translation which happened in #593 (originally introduced in #222). We weren't actually testing anything useful. However, now we have the same shape and order of magnitude. I don't understand why I had to do the transformations on the true values. I do get why I needed to multiple time by the tau transformation value, but not anything else about it

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 93.16%. Comparing base (58ccf32) to head (2cfba60).
Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #670      +/-   ##
==========================================
- Coverage   93.33%   93.16%   -0.18%
==========================================
  Files          53       53
  Lines        3603     3569      -34
==========================================
- Hits         3363     3325      -38
- Misses        240      244       +4

Flag
Coverage Δ

93.16% <ø> (-0.18%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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


Adding National University of Colombia

Add

lib/domains/co/edu/unal.txt	Adding the name of the national university to the unal.edu.co domain

@CuvxCol I am sorry, the domain unal.edu.co is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Consider allowing custom annotations

Currently, we support a handful of annotations for common usages. However, we could allow users to add 'hooks' or custom annotations for custom Zsh output. Something like custom:myfunc so that a user could define myfunc to emit whatever custom Zsh init code they want. That would let you get fancy with plugin management without adding bloat for every annotation scenario to antidote.

Hook/callback function support would be really useful for deferred plugins setup, for example, configuring specific options which are only available after the deferred plugin is sourced.

Just to clarify where we're at with this feature.
pre:before_func and post:after_func annotations exist, and should be sufficient for 90% of what someone would need a hook for. As an example, if you bundle with the pre/post annotations, functions you define get called:
$ antidote bundle zsh-users/zsh-autosuggestions pre:do_before_autosuggest post:do_after_autosuggest
do_before_autosuggest
fpath+=( /Users/matt/.cache/repos/zsh-users/zsh-autosuggestions )
source /Users/matt/.cache/repos/zsh-users/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh
do_after_autosuggest

What remains of this feature is determining if there's any value in any of the other potential hooks:

pre/post install (clone)
pre/post update
pre/post remove

It would help to have a user with a specific use-case where these are strictly necessary. Since antibody didn't implement anything like this, understanding a use-case from antigen/zinit might be helpful, as well as pointing to a specific plugin that requires this additional feature.
See also: https://github.com/mattmc3/antidote/discussions/67


Update readme.md

Add file extension to CSS link.
The link https://esm.sh/<EMAIL_ADDRESS>doesn't work for me (Module not found), but https://esm.sh/<EMAIL_ADDRESS>works.

It should work. Otherwise it's a bug in esmsh

Hm does the link  https://esm.sh/<EMAIL_ADDRESS>really work for you?
But maybe I just don't understand how esm.sh should work here.

It should work according to the export map in our package.json.
I haven’t tested whether it works with esmsh


Edit: Venus HD (Argentina)

Channel ID (required)
VenusHD.ar
Channel Name
No response
Alternative Names
No response
Network
No response
Owners
No response
Country
No response
Subdivision
No response
City
No response
Broadcast Area
No response
Languages
No response
Categories
No response
NSFW
TRUE
Launched
No response
Closed
No response
Replaced By
No response
Website
No response
Logo
No response
Notes
No response

K

8


push vc1, present vc2 and pop vc1?

How to do that correctly? Possibly should I dismiss vc2 and only then pop vc1?

something like dismissLast(...) { returnTo(...) }


Prepare for Senzing release 2.0.0

See https://github.com/Senzing/docker-compose-demo/issues/96

Pull requests

https://github.com/Senzing/docker-web-app-demo/pull/36


[HUDI-679] Make io package Spark free

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contributing.html before opening a pull request.

What is the purpose of the pull request
Make io package spark free.
Brief change log

Introduce SparkSupplier.java
Remove the usage of TaskContext in io package.

Verify this pull request
This pull request is a trivial rework / code cleanup without any test coverage.
Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@vinothchandar @yanghua Please take a look when you are free. Thanks

Codecov Report

Merging #1460 into master will decrease coverage by 0.16%.
The diff coverage is 97.67%.

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

@yanghua Updated this PR to address your comments.

@yanghua Updated this PR to  package three suppliers into Suppliers.  PTAL, thanks.

@yanghua @vinothchandar Thanks for your review, just updated the PR to address your comments. PTAL.


add max_child_jobs option

fix #23

I haven't yet tested though 🙃 I think we should have unit tests for Kannon.build() 's queue consumption

I added integration test, and detect a bug so fixed it https://github.com/m3dev/kannon/pull/24/commits/149da8185a8fdeb84e29054b3cc0b09579214e09
Now it's ready to review

@maronuu @kitagry

@yokomotod Could you resolve conflict?

@maronuu @kitagry refreshed!


prefix jobname with rule name

Currently, the jobname is the run_uuid - some computer readable gibberish. It is proposed to prefix this with the rule name for better readability during runs and workflow debugging on a cluster.

As far as I see, using the same name for all jobs of a workflow has the advantage of reducing the number of queries to slurm, since we can get all submitted/running jobs of that workflow with a single query (e.g. sacct -X --parsable2 --noheader --format=JobIdRaw,State --name 38917ff1-c2bf-428a-b85b-1accc2f4846f).
If we prefix the job name with the rule name, then I think we'd have to go back and query each job individually by the job id, no?

No, you are right, my idea is nonsense, and your PR will be the remedy to display human-readable output. -- I stand corrected. Thanks for pointing this out.

I would like to point out that in the cluster where I work, comments are not stored after the job ends, so it is not easy to work with sacct or reportseff (https://github.com/troycomi/reportseff).
Prefixing the jobname with the rule name would save me a lot of time when developing my workflows. Would it be possible to have this as an option?
On the contrary, so far, I've had no use of the following:

we can get all submitted/running jobs of that workflow with a single query

Getting all submitted/running jobs of that workflow with a single query is used bysnakemake when checking job status. Instead of querying sacct once per job, it does it for all jobs (since all have the same job name). This way we avoid overloading sacct.

Ah, I understand now. Thanks. This is good from the point of view of how snakemake interacts with slurm, but this is not convenient for "forensics".

For every broken job, you get information by Snakemake, incl. the log files (albeit, that the Snakemake logfiles are informative, whereas the SLURM-Logfiles just display the terminal output of that one job).
If your program in question does not give you any hints, when breaking or you write a shell script, you can always add some more verbose output to it (e.g. by printing the variables). When using the script directive, you can run this rule in question with --debug for Python.
Snakemake itself will print the SLURM_JOB_ID, when a job fails.

One of my goal is to better adjust the resources asked by each rule.
I used to do that using the benchmark directive, and then parsing the generated files, but reportseff, recommended by my cluster admins, turned out to be much more practical for my needs. The only problem is that it doesn't have access to the comment associated with the jobs, so it is not easy to figure out the rules for which resource usage information is reported.
Currently, my solution is to use a wrapper around reportseff that parses the .snakemake/slurm_logs/<rulename> folder to extract the jobids from the log file names, and then uses those jobids with reportseff to get only the reports for a given rule.


Implement Module, GPRegression, SparseGPRegression and SVGPRegression…

Issue #31
Description of changes:
Implement the base class of module and GP modules. For each GP module, a log_pdf and sampling inference algorithm is implemented.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #42 into develop will decrease coverage by 1.14%.
The diff coverage is 74.11%.

@@             Coverage Diff             @@
##           develop      #42      +/-   ##
===========================================
- Coverage     85.7%   84.56%   -1.15%
===========================================
  Files           60       64       +4
  Lines         2525     2986     +461
  Branches       484      558      +74
===========================================
+ Hits          2164     2525     +361
- Misses         243      308      +65
- Partials       118      153      +35

Impacted Files
Coverage Δ

mxfusion/inference/forward_sampling.py
90% <ø> (+2.12%)
:arrow_up:

mxfusion/inference/inference_parameters.py
85.36% <100%> (+3.25%)
:arrow_up:

mxfusion/modules/gp_modules/__init__.py
100% <100%> (ø)

mxfusion/models/factor_graph.py
86.05% <100%> (+3.65%)
:arrow_up:

.../components/distributions/gp/kernels/add_kernel.py
100% <100%> (ø)
:arrow_up:

mxfusion/components/variables/variable.py
83.2% <100%> (+0.12%)
:arrow_up:

mxfusion/components/factor.py
80% <33.33%> (-2.26%)
:arrow_down:

mxfusion/util/customop.py
57.57% <44.89%> (-12.43%)
:arrow_down:

mxfusion/modules/module.py
56.71% <56.92%> (+1.16%)
:arrow_up:

mxfusion/modules/gp_modules/gp_regression.py
84.09% <84.09%> (ø)

... and 10 more

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 6e6c76b...b5fc757. Read the comment docs.


satty fails to start with Wayland protocol error on nixpkgs-unstable

Describe the bug
satty fails to start when running on nixpkgs-unstable with the following error:
MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:763: FINISHME: support YUV colorspace with DRM format modifiers
MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:794: FINISHME: support more multi-planar formats with DRM modifiers

(satty:869730): GLib-GObject-CRITICAL **: 19:05:33.707: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed
Gdk-Message: 19:05:33.707: Error 71 (Protocol error) dispatching to Wayland display.

The application does not start unless the following environment variable is set:
GSK_RENDERER=ngl

This issue seems to be linked to Vulkan rendering and Wayland interaction in a hybrid GPU setup.
Steps To Reproduce
Steps to reproduce the behavior:

Run satty on a Wayland compositor (e.g., Hyprland) with a hybrid GPU setup (Intel + Nvidia).
Observe the application failing to start with the error message above.
Set GSK_RENDERER=ngl and retry to confirm it works with this workaround.

Example command:
/nix/store/7s1riz2v0n3ifxr02b2m2kxvrkil0zb6-satty-0.14.0/bin/satty --fullscreen --filename Downloads/aron.png

Expected behavior
satty should start without requiring additional environment variables or workarounds, even on a hybrid GPU setup.
Screenshots

N/A
Additional context

Vulkan drivers and GPUs detected:

Intel GPU: CoffeeLake-H GT2 [UHD Graphics 630] with Mesa Vulkan driver (version 24.2.6).
Nvidia GPU: GeForce GTX 1060 Mobile with Nvidia proprietary Vulkan driver (version 560.35.03).

The issue might be related to the Intel open-source Vulkan driver. vulkaninfo logs warnings about unnecessary Vulkan ICDs:
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Received return code -3 from call to vkCreateInstance in ICD /nix/store/.../libvulkan_dzn.so. Skipping this driver.
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Received return code -3 from call to vkCreateInstance in ICD /nix/store/.../libvulkan_virtio.so. Skipping this driver.

A similar issue was reported in [#354080](https://github.com/NixOS/nixpkgs/issues/354080), but the workaround there (uninstalling Vulkan) does not apply as vulkaninfo runs correctly in this case.

Metadata

 - system: `"x86_64-linux"`
 - host os: `Linux 6.11.5-zen1, NixOS, 25.05 (Warbler), 25.05.20241119.23e89b7`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.24.10`
 - channels(root): `"home-manager, nixos-22.11"`
 - nixpkgs: `/nix/store/c9wv7i0af6mysmy65x6nvyfw5izzxv4g-source`

Notify maintainers
@pinpox @donovanglover

I have the same issue on Macbook air M1. I use the this version with Vulkan drivers. The solution with the environmental variable helps.


Please only build tests when BUILD_TESTING=ON

Describe the bug
Currently tests are built unconditionally. Package build doesn't need tests, so they just waste CPU during package build.

We don't build many tests so the gains would be fairly minimal and in general I'd rather always build tests for validation.


Mini-review of LittlevGL in progress

Hi guys, this post is to let you know about my mini review/evaluation, and to ask a question about next step.
Here are my two blog posts:
http://bkhome.org/news/201808/first-go-at-evaluating-littlevgl.html
http://bkhome.org/news/201808/tentative-first-step-framebuffer-with-littlevgl.html
I am doing a couple of other things right now, but in a day or two intend to write part-3 of the review. I was wondering if someone could help me to extend that example Hello World program in part-2, with maybe a button, and with mouse input.
This is to work with the Linux framebuffer, and evdev is available.
If I have done anything wrong with the Makefile, let me know!

Hi,
Great reviews!
Let's start with the mouse support:
Here is an SDL based mouse driver: https://github.com/littlevgl/lv_drivers/blob/master/indev/mouse.c
It is initialized in the PC simulator by default.
Here you find an evdev driver: https://github.com/littlevgl/lv_drivers/blob/master/indev/evdev.c
Keep in mind, AFAIK, in command line mode (if you kill Xorg) the evdev's are not working by default.
To add a cursor to the GUI modify hal_init in main.c like this:
    mouse_init();
    lv_indev_drv_t indev_drv;
    lv_indev_drv_init(&indev_drv);          /*Basic initialization*/
    indev_drv.type = LV_INDEV_TYPE_POINTER;
    indev_drv.read = mouse_read;         /*This function will be called periodically (by the library) to get the mouse position and state*/
    lv_indev_t * mouse_indev = lv_indev_drv_register(&indev_drv);

    lv_obj_t * cursor_obj =  lv_img_create(lv_scr_act(), NULL); /*Create an image for the cursor */
    lv_img_set_src(cursor_obj, SYMBOL_POWER);                 /*For simlicity add a built in symbol not an image*/
    lv_indev_set_cursor(mouse_indev, cursor_obj); /* connect the object to the driver*/

Hi,
I'm just also fighting with mouse support of lvgl in linux framebuffer. So far I managed to write a prog which can display text and values from my sensors in different colors and size on the framebuffer /dev/fb0. Next I like to create buttons and rulers in display and control them with gmp mouse. I know gmp mouse support is working as /dev/input/event3 in my case, because I have written my own program without lvgl, but ncurses, which is an array of a lot of simple buttons, which can be controlled (clicked) with the gmp mouse and initiates certain actions in linux (playing music, display sensor values, showing images, halt, reboot etc.
Now I would like to use lvgl library as gui, because already has a lot of controls and graphics, which I need.
But I'm unable to get the mouse working. I have the cursor, but on click nothing happened. As start point I used following code
#include` "lvgl/lvgl.h"
#include "lv_drivers/display/fbdev.h"
#include <unistd.h>
#include <stdio.h>

//Add a display for the LittlevGL using the frame buffer driver
void register_display(void)
{
	lv_disp_drv_t disp_drv;
	lv_disp_drv_init(&disp_drv);
	disp_drv.disp_flush = fbdev_flush;      //It flushes the internal graphical buffer to the frame buffer
	lv_disp_drv_register(&disp_drv);
}

static lv_res_t btn_click_action(lv_obj_t * btn)
{
    uint8_t id = lv_obj_get_free_num(btn);

    printf("Button %d is released\n", id);

    /* The button is released.
     * Make something here */

    return LV_RES_OK; /*Return OK if the button is not deleted*/
}

int main(void)
{
    /*LittlevGL init*/
    lv_init();

    /*Linux frame buffer device init*/
    fbdev_init();

    // get a display
	register_display();

	// enable event input
	evdev_init();

	// get an input device like mouse
	// register_inputdev();

	/*Create a title label*/
	lv_obj_t * label = lv_label_create(lv_scr_act(), NULL);
	lv_label_set_text(label, "Default buttons");
	lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 5);

	/*Create a normal button*/
	lv_obj_t * btn1 = lv_btn_create(lv_scr_act(), NULL);
	lv_cont_set_fit(btn1, true, true); /*Enable resizing horizontally and vertically*/
	lv_obj_align(btn1, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
	lv_obj_set_free_num(btn1, 1);   /*Set a unique number for the button*/
	lv_btn_set_action(btn1, LV_BTN_ACTION_CLICK, btn_click_action);

	/*Add a label to the button*/
	label = lv_label_create(btn1, NULL);
	lv_label_set_text(label, "Normal");

	/*Copy the button and set toggled state. (The release action is copied too)*/
	lv_obj_t * btn2 = lv_btn_create(lv_scr_act(), btn1);
	lv_obj_align(btn2, btn1, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
	lv_btn_set_state(btn2, LV_BTN_STATE_TGL_REL);  /*Set toggled state*/
	lv_obj_set_free_num(btn2, 2);               /*Set a unique number for the button*/

	/*Add a label to the toggled button*/
	label = lv_label_create(btn2, NULL);
	lv_label_set_text(label, "Toggled");

	/*Copy the button and set inactive state.*/
	lv_obj_t * btn3 = lv_btn_create(lv_scr_act(), btn1);
	lv_obj_align(btn3, btn2, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
	lv_btn_set_state(btn3, LV_BTN_STATE_INA);   /*Set inactive state*/
	lv_obj_set_free_num(btn3, 3);               /*Set a unique number for the button*/

	/*Add a label to the inactive button*/
	label = lv_label_create(btn3, NULL);
	lv_label_set_text(label, "Inactive");

	/*Handle LitlevGL tasks (tickless mode)*/
    while(1)
	{
        lv_tick_inc(5);
        lv_task_handler();
        usleep(5000);
    }

    return 0;
}

It compiles and display the buttons and gmp mouse cursor, but on click on button, there is no printf from callback function. I'm missing something, but I don't know what. I enabled edev support in lv_drv_conf.h with /dev/input/event3 (because I know it the correct event for my mouse). I added evdev_init(); in main, but still no success. (sorry, if format looks ugly, I'm not sure how to do it correctly)

renegat56, kisvegabor,
Regarding getting evdev working without X, do I need to use gmp?
renegat56, in your example, you haven't added mouse-cursor code as shown by kisvegabor, but you get a mouse cursor -- is that because of gmp?
I tried your program, and I get the buttons, but no mouse. But, I don't have gmp.

Got it! This works:
#include "lvgl/lvgl.h"
#include "lv_drivers/display/fbdev.h"
#include "lv_drivers/indev/evdev.h"
#include <unistd.h>
#include <stdio.h>

//Add a display for the LittlevGL using the frame buffer driver
void register_display(void)
{
	lv_disp_drv_t disp_drv;
	lv_disp_drv_init(&disp_drv);
	disp_drv.disp_flush = fbdev_flush;      //It flushes the internal graphical buffer to the frame buffer
	lv_disp_drv_register(&disp_drv);
}

static lv_res_t btn_click_action(lv_obj_t * btn)
{
    uint8_t id = lv_obj_get_free_num(btn);

    printf("Button %d is released\n", id);

    /* The button is released.
     * Make something here */

    return LV_RES_OK; /*Return OK if the button is not deleted*/
}

int main(void)
{
    /*LittlevGL init*/
    lv_init();

    /*Linux frame buffer device init*/
    fbdev_init();

    // get a display
	register_display();

	// enable event input
	evdev_init();

	// get an input device like mouse
	lv_indev_drv_t indev_drv;
	lv_indev_drv_init(&indev_drv);
	indev_drv.type = LV_INDEV_TYPE_POINTER;
	indev_drv.read = evdev_read;
//	lv_indev_drv_register(&indev_drv);

    lv_indev_t * mouse_indev = lv_indev_drv_register(&indev_drv);

    lv_obj_t * cursor_obj =  lv_img_create(lv_scr_act(), NULL); /*Create an image for the cursor */
    lv_img_set_src(cursor_obj, SYMBOL_POWER);                 /*For simlicity add a built in symbol not an image*/
    lv_indev_set_cursor(mouse_indev, cursor_obj); /* connect the object to the driver*/

	/*Create a title label*/
	lv_obj_t * label = lv_label_create(lv_scr_act(), NULL);
	lv_label_set_text(label, "Default buttons");
	lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 5);

	/*Create a normal button*/
	lv_obj_t * btn1 = lv_btn_create(lv_scr_act(), NULL);
	lv_cont_set_fit(btn1, true, true); /*Enable resizing horizontally and vertically*/
	lv_obj_align(btn1, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
	lv_obj_set_free_num(btn1, 1);   /*Set a unique number for the button*/
	lv_btn_set_action(btn1, LV_BTN_ACTION_CLICK, btn_click_action);

	/*Add a label to the button*/
	label = lv_label_create(btn1, NULL);
	lv_label_set_text(label, "Normal");

	/*Copy the button and set toggled state. (The release action is copied too)*/
	lv_obj_t * btn2 = lv_btn_create(lv_scr_act(), btn1);
	lv_obj_align(btn2, btn1, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
	lv_btn_set_state(btn2, LV_BTN_STATE_TGL_REL);  /*Set toggled state*/
	lv_obj_set_free_num(btn2, 2);               /*Set a unique number for the button*/

	/*Add a label to the toggled button*/
	label = lv_label_create(btn2, NULL);
	lv_label_set_text(label, "Toggled");

	/*Copy the button and set inactive state.*/
	lv_obj_t * btn3 = lv_btn_create(lv_scr_act(), btn1);
	lv_obj_align(btn3, btn2, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
	lv_btn_set_state(btn3, LV_BTN_STATE_INA);   /*Set inactive state*/
	lv_obj_set_free_num(btn3, 3);               /*Set a unique number for the button*/

	/*Add a label to the inactive button*/
	label = lv_label_create(btn3, NULL);
	lv_label_set_text(label, "Inactive");

	/*Handle LitlevGL tasks (tickless mode)*/
    while(1)
	{
        lv_tick_inc(5);
        lv_task_handler();
        usleep(5000);
    }

    return 0;
}

kisvegabor,
In the above post, I registered the mouse differently from your suggestion. My code is working for me, can you see anything wrong with it?
Also, SYMBOL_POWER is not very appropriate for a mouse pointer! Is there any mouse pointer image available?
Note, I found this page helpful:
http://www.vk3erw.com/index.php/16-software

I have written part-3 of my mini-review, created a static executable (linked with uClibc):
http://bkhome.org/news/201808/littlevgl-evaluation-part-3.html

@bkauler,
congratulations that you manged to get it working!
But in my case it does not :-(
I killed gpm mouse process, but still no success. I used your extended code, it compiles, but now I have no mouse cursor anymore (before it was the rectangle one of gpm mouse in virtual terminal mode).
I'm using a raspberry pi 3 with wheezy. Please let me know some details of your setup

hardware, mouse (USB?)
linux distribution and version?
which event did you use for input?
as I understodd, you do not run a terminal in X server, but directly in vt mode without X server, right?

I'm running on a desktop pc, with usb mouse. Intel i5 cpu and Intel video.
EasyOS starts up in text mode, but when the intel kernel driver loads, it changes to graphics framebuffer. So, it is the framebuffer running the screen when I exit from X.
I left the event handler at the default, /dev/input/event0
Running EasyOS 0.9.6 (x86_64), which is a port of Puppy Linux:
http://bkhome.org/news/201808/easyos-version-096-released.html
Yes, EasyOS, like all pups, has a choice in the menu to exit from X to commandline. That's where I test, not in an alternative terminal.
I have Quirky Linux, another of my Puppy-ports, running on my Pi3b, I will test on that, and report back.

Yes, it works in the Pi3b.
My Quirky Linux is aarch64, 64-bit, but in all other respects is pretty much like any other Puppy Linux derivative. It is experimental, not publicly released.
No changes, I just copied everything onto the sd-card, booted the Pi, ran make, exited from X and ran "./demo".

so finally I made some progress. I stopped gpm mouse server -> rectangle cursor stopped moving with mouse. No other cursor is visible, even I added Gabor's 3 lines for the cursor image. But by blind clicking I found the buttons and could activate the callback function and also the button changed, when I clicked it.
So the only problem which remains is, I can not see a cursor :-( which is quite impractical
@bkauler your change from mouse_init() to edev_init() like in my org code seems resonable, because we use event system of linux
@kisvegabor
Gabor, please can you give me another advice to see the cursor?

First of all, sorry for the late answer. Anyway, you made a great progress! :)
@bkauler

I happily hear that it works there! And good to see the next part on your blog!
The only difference I see is that you replaced mouse_init() with evdev_init(). Or have I missed something? Sorry, maybe it was misleading, I thought mouse_init should be replaced with your indev init.
Real mouse cursor image: You can use the online image converter to create a C array from an image. To add the image as cursor:

LV_IMG_DECLARE(my_cursor);
lv_img_set_src(cursor_obj, &my_cursor);

@renegat56

Format the code block: You can add syntax highlight like this: ```c   ...your code block... ```
Invisible cursor: please attache your lv_conf.h. There are some configs to check.

@kisvegabor
Yes, I changed mouse_init() to evdev_init()
Heh, heh, for now, I am using SYMBOL_GPS, it looks very much like a mouse pointer!

@renegat56
I have bundled my lv_conf.h, lv_drv_conf.h, main.c and Makefile into a tarball, for you to try.
The tarball expands to folder 'wks2'.
wks2.tar.gz

Hi Gabor,
here is my lv_conf.h. I think I know what is wrong. I haven't enabled the SYMBOL font, which size should I enable? I will check tonight. Am I right or anything else wrong?
/**
 * @file lv_conf.h
 *
 */

#ifndef LV_CONF_H
#define LV_CONF_H

/*----------------
 * Dynamic memory
 *----------------*/

/* Memory size which will be used by the library
 * to store the graphical objects and other data */
#define LV_MEM_CUSTOM      0                /*1: use custom malloc/free, 0: use the built-in lv_mem_alloc/lv_mem_free*/
#if LV_MEM_CUSTOM == 0
#define LV_MEM_SIZE    (32U * 1024U)        /*Size memory used by `lv_mem_alloc` in bytes (>= 2kB)*/
#define LV_MEM_ATTR                         /*Complier prefix for big array declaration*/
#define LV_MEM_AUTO_DEFRAG  1               /*Automatically defrag on free*/
#else       /*LV_MEM_CUSTOM*/
#define LV_MEM_CUSTOM_INCLUDE <stdlib.h>   /*Header for the dynamic memory function*/
#define LV_MEM_CUSTOM_ALLOC   malloc       /*Wrapper to malloc*/
#define LV_MEM_CUSTOM_FREE    free         /*Wrapper to free*/
#endif     /*LV_MEM_CUSTOM*/

/*===================
   Graphical settings
 *===================*/

/* Horizontal and vertical resolution of the library.*/
#define LV_HOR_RES          (1280/4)
#define LV_VER_RES          (720/2)
#define LV_DPI              200

/* Size of VDB (Virtual Display Buffer: the internal graphics buffer).
 * Required for buffered drawing, opacity and anti-aliasing
 * VDB makes the double buffering, you don't need to deal with it!
 * Typical size: ~1/10 screen */
#define LV_VDB_SIZE         (20 * LV_HOR_RES)  /*Size of VDB in pixel count (1/10 screen size is good for first)*/
#define LV_VDB_ADR          0                  /*Place VDB to a specific address (e.g. in external RAM) (0: allocate automatically into RAM)*/

/* Use two Virtual Display buffers (VDB) parallelize rendering and flushing (optional)
 * The flushing should use DMA to write the frame buffer in the background*/
#define LV_VDB_DOUBLE       0       /*1: Enable the use of 2 VDBs*/
#define LV_VDB2_ADR         0       /*Place VDB2 to a specific address (e.g. in external RAM) (0: allocate automatically into RAM)*/

/* Enable anti-aliasing (lines, and radiuses will be smoothed) */
#define LV_ANTIALIAS        1       /*1: Enable anti-aliasing*/

/*Screen refresh settings*/
#define LV_REFR_PERIOD      50    /*Screen refresh period in milliseconds*/
#define LV_INV_FIFO_SIZE    32    /*The average count of objects on a screen */

/*=================
   Misc. setting
 *=================*/

/*Input device settings*/
#define LV_INDEV_READ_PERIOD            50                     /*Input device read period in milliseconds*/
#define LV_INDEV_POINT_MARKER           0                      /*Mark the pressed points  (required: USE_LV_REAL_DRAW = 1)*/
#define LV_INDEV_DRAG_LIMIT             10                     /*Drag threshold in pixels */
#define LV_INDEV_DRAG_THROW             20                     /*Drag throw slow-down in [%]. Greater value means faster slow-down */
#define LV_INDEV_LONG_PRESS_TIME        400                    /*Long press time in milliseconds*/
#define LV_INDEV_LONG_PRESS_REP_TIME    100                    /*Repeated trigger period in long press [ms] */

/*Color settings*/
#define LV_COLOR_DEPTH     16                     /*Color depth: 1/8/16/24*/
#define LV_COLOR_TRANSP    LV_COLOR_LIME          /*Images pixels with this color will not be drawn (with chroma keying)*/

/*Text settings*/
#define LV_TXT_UTF8             1                /*Enable UTF-8 coded Unicode character usage */
#define LV_TXT_BREAK_CHARS     " ,.;:-_"         /*Can break texts on these chars*/

/*Graphics feature usage*/
#define USE_LV_ANIMATION        1               /*1: Enable all animations*/
#define USE_LV_SHADOW           1               /*1: Enable shadows*/
#define USE_LV_GROUP            1               /*1: Enable object groups (for keyboards)*/
#define USE_LV_GPU              1               /*1: Enable GPU interface*/
#define USE_LV_REAL_DRAW        1               /*1: Enable function which draw directly to the frame buffer instead of VDB (required if LV_VDB_SIZE = 0)*/
#define USE_LV_FILESYSTEM       1               /*1: Enable file system (required by images*/

/*Compiler settings*/
#define LV_ATTRIBUTE_TICK_INC                 /* Define a custom attribute to `lv_tick_inc` function */
#define LV_ATTRIBUTE_TASK_HANDLER             /* Define a custom attribute to `lv_task_handler` function */
#define LV_COMPILER_VLA_SUPPORTED    1        /* 1: Variable length array is supported*/

/*================
 *  THEME USAGE
 *================*/
#define USE_LV_THEME_TEMPL      0       /*Just for test*/
#define USE_LV_THEME_DEFAULT    0       /*Built mainly from the built-in styles. Consumes very few RAM*/
#define USE_LV_THEME_ALIEN      0       /*Dark futuristic theme*/
#define USE_LV_THEME_NIGHT      0       /*Dark elegant theme*/
#define USE_LV_THEME_MONO       0       /*Mono color theme for monochrome displays*/
#define USE_LV_THEME_MATERIAL   0       /*Flat theme with bold colors and light shadows*/
#define USE_LV_THEME_ZEN        0       /*Peaceful, mainly light theme */

/*==================
 *    FONT USAGE
 *===================*/

/* More info about fonts: https://littlevgl.com/basics#fonts
 * To enable a built-in font use 1,2,4 or 8 values
 * which will determine the bit-per-pixel */
#define LV_FONT_DEFAULT        			   	&lv_font_dejavu_40     /*Always set a default font from the built-in fonts*/

#define USE_LV_FONT_DEJAVU_10              	0
#define USE_LV_FONT_DEJAVU_10_LATIN_SUP    	0
#define USE_LV_FONT_DEJAVU_10_CYRILLIC     	0
#define USE_LV_FONT_SYMBOL_10              	0

#define USE_LV_FONT_DEJAVU_20              	0
#define USE_LV_FONT_DEJAVU_20_LATIN_SUP    	0
#define USE_LV_FONT_DEJAVU_20_CYRILLIC     	0
#define USE_LV_FONT_SYMBOL_20              	0

#define USE_LV_FONT_DEJAVU_30              	0
#define USE_LV_FONT_DEJAVU_30_LATIN_SUP    	0
#define USE_LV_FONT_DEJAVU_30_CYRILLIC     	0
#define USE_LV_FONT_SYMBOL_30              	0

#define USE_LV_FONT_DEJAVU_40              	8
#define USE_LV_FONT_DEJAVU_40_LATIN_SUP    	0
#define USE_LV_FONT_DEJAVU_40_CYRILLIC     	0
#define USE_LV_FONT_SYMBOL_40              	0
#define USE_TEST_100_GILSAN				   	0
#define USE_MY_TERMINAL_200				   	0
#define USE_VERAMONOBOLD_10				   	8
#define USE_VERAMONOBOLD_20				   	8
#define USE_VERAMONOBOLD_40					8
#define USE_VERAMONOBOLD_50					8
#define USE_VERAMONOBOLD_80					8
#define USE_VERAMONOBOLD_100				8
#define USE_VERAMONOBOLD_150				8
#define USE_VERAMONOBOLD_200				8
/*===================
 *  LV_OBJ SETTINGS
 *==================*/
#define LV_OBJ_FREE_NUM_TYPE    uint32_t    /*Type of free number attribute (comment out disable free number)*/
#define LV_OBJ_FREE_PTR         1           /*Enable the free pointer attribute*/

/*==================
 *  LV OBJ X USAGE
 *================*/
/*
 * Documentation of the object types: https://littlevgl.com/object-types
 */

/*****************
 * Simple object
 *****************/

/*Label (dependencies: -*/
#define USE_LV_LABEL    1
#if USE_LV_LABEL != 0
#define LV_LABEL_SCROLL_SPEED       25     /*Hor, or ver. scroll speed [px/sec] in 'LV_LABEL_LONG_SCROLL/ROLL' mode*/
#endif

/*Image (dependencies: lv_label*/
#define USE_LV_IMG      1

/*Line (dependencies: -*/
#define USE_LV_LINE     1

/*******************
 * Container objects
 *******************/

/*Container (dependencies: -*/
#define USE_LV_CONT     1

/*Page (dependencies: lv_cont)*/
#define USE_LV_PAGE     1

/*Window (dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page)*/
#define USE_LV_WIN      1

/*Tab (dependencies: lv_page, lv_btnm)*/
#define USE_LV_TABVIEW      1
#if USE_LV_TABVIEW != 0
#define LV_TABVIEW_ANIM_TIME    300     /*Time of slide animation [ms] (0: no animation)*/
#endif

/*************************
 * Data visualizer objects
 *************************/

/*Bar (dependencies: -)*/
#define USE_LV_BAR      1

/*Line meter (dependencies: *;)*/
#define USE_LV_LMETER   1

/*Gauge (dependencies:bar, lmeter)*/
#define USE_LV_GAUGE    1

/*Chart (dependencies: -)*/
#define USE_LV_CHART    1

/*LED (dependencies: -)*/
#define USE_LV_LED      1

/*Message box (dependencies: lv_rect, lv_btnm, lv_label)*/
#define USE_LV_MBOX     1

/*Text area (dependencies: lv_label, lv_page)*/
#define USE_LV_TA       1
#if USE_LV_TA != 0
#define LV_TA_CURSOR_BLINK_TIME 400     /*ms*/
#define LV_TA_PWD_SHOW_TIME     1500    /*ms*/
#endif

/*************************
 * User input objects
 *************************/

/*Button (dependencies: lv_cont*/
#define USE_LV_BTN      1

/*Button matrix (dependencies: -)*/
#define USE_LV_BTNM     1

/*Keyboard (dependencies: lv_btnm)*/
#define USE_LV_KB       1

/*Check box (dependencies: lv_btn, lv_label)*/
#define USE_LV_CB       1

/*List (dependencies: lv_page, lv_btn, lv_label, (lv_img optionally for icons ))*/
#define USE_LV_LIST     1
#if USE_LV_LIST != 0
#define LV_LIST_FOCUS_TIME  100 /*Default animation time of focusing to a list element [ms] (0: no animation)  */
#endif

/*Drop down list (dependencies: lv_page, lv_label)*/
#define USE_LV_DDLIST    1
#if USE_LV_DDLIST != 0
#define LV_DDLIST_ANIM_TIME     200     /*Open and close default animation time [ms] (0: no animation)*/
#endif

/*Roller (dependencies: lv_ddlist)*/
#define USE_LV_ROLLER    1
#if USE_LV_ROLLER != 0
#define LV_ROLLER_ANIM_TIME     200     /*Focus animation time [ms] (0: no animation)*/
#endif

/*Slider (dependencies: lv_bar)*/
#define USE_LV_SLIDER    1

/*Switch (dependencies: lv_slider)*/
#define USE_LV_SW       1

/*************************
 * Non-user section
 *************************/
#ifdef _MSC_VER                               /* Disable warnings for Visual Studio*/
# define _CRT_SECURE_NO_WARNINGS
#endif

#endif /*LV_CONF_H*/

@bkauler
thanks for the tarball, I will take a look at it tonight

Hi,
I couldn't wait and checked. Yes, success!! I enabled the SYMBOL fonts and voila cursor appeared.
I also learned that the gpm mouse conflicts with lvgl.
 I'm happy to hear it works there!

You didn't bother. Feel free to ask in the future too! :)


Implement foundry example

Description:

Related issue(s):
Fixes #
Notes for reviewer:

Checklist

[ ] Documented (Code comments, README, etc.)
[ ] Tested (unit, integration, etc.)

Needed this test PR to debug an issue. Closing.


Deployment don't work.

hardhat-deploy version: 0.8.11
I am trying to deploy a simple contract with one dependency called ProtectionResolver.sol

I get stuck, no error and no deployment.

Let me know if you need more information.
Thanks!

This is most likely due to gas change while the deploy tx was sent, you can safely restart the process.
new version of hardhat-deploy will ask you if you want to increase gas
older will keep waiting for the tx unless you delete the .pendingTransactions file in the deployment folder


ImportError: cannot import name 'Clubhouse'

After last update to clubhouse-py-304.0.1 ImportError

from clubhouse.clubhouse import Clubhouse
added on README.md


Blank screen after submit order

Hello team
I've got block screen after I submit order
https://newmind.com/coingate/pay/redirect/
I have firecheckout module installed.
http://templates-master.com/magento-one-page-checkout.html
No. clue in logs. What Could Be the Reason…?

Hello,
Our plugin is not compatible with some plugins which modify checkout page. Apparently, our plugin is not compatible with the Firecheckout module you are using. Unfortunately, since Firecheckout plugin is not free, we have no possibility to check the reason why it is not compatible with our plugin and / or to fix the incompatibility.


why IPersistedGrantStore does not work with SQL storage ???

I was following the documentation tutorial and the topic "Using EntityFramework Core for configuration data" indicates that the configurations can be stored in the base, but the problem is that following the documentation the only thing that works for me are the configurations of client, scope, user.
the Storage of the PersistedGrant when the application is deployed, is still handled in memory
How do I make the IPersistedGrantStore not to be handled in memory??
If someone owns in a git repository an implementation of the IPersistedGrantStore that can facilitate me would be very helpful.

https://github.com/IdentityServer/IdentityServer4.Samples/blob/release/Quickstarts/8_EntityFrameworkStorage/src/QuickstartIdentityServer/Startup.cs#L34

Using the QuickStarts example, the DB table PersistensGrand always passes empty even though users log in and ask for a token in the application

How is the acces_token stored in the SQL database?

Only reference tokens, user consent, authorisation codes, and refresh tokens are stored in this table. If you're sending out the full JWT then you won't see the access token in this table.

If I want to do load balancing
How do you configure two IDENTITYSERVER4 servers to serve the tokens in either?

open a new issue if the docs are missing what you need.


Fix template download progress

Currently after last changes on subos the template downloader progress is broken because the output of subutai CLI changed.

Done


Help with migration script: sed errors

Orb version:
Not sure how to answer...I guess 10 → 11??
What happened:
I was trying to follow the Migration Guide and got to the "run migrate.sh" step and:
❯ bash migrate.sh
Namespace: geos-esm
Orb name: circleci-tools
Context name: orb-publishing
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   997  100   997    0     0   3720      0 --:--:-- --:--:-- --:--:--  3706
sed: can't read s/<namespace>/geos-esm/g: No such file or directory
sed: can't read s/<orb-name>/circleci-tools/g: No such file or directory
sed: can't read s/<publishing-context>/orb-publishing/g: No such file or directory
sed: can't read s/<namespace>/geos-esm/g: No such file or directory
sed: can't read s/<orb-name>/circleci-tools/g: No such file or directory
sed: can't read s/<publishing-context>/orb-publishing/g: No such file or directory
Successfully upgraded config files.
You must now open "test-deploy.yml" and add your integrations tests.
Docs: https://circleci.com/docs/2.0/testing-orbs/#integration-testing

When complete, delete the '.bak' files in the .circleci directory.
Commit your changes and the next version of your orb will be published when a tag is created.

And if I look in the produced .circleci/config.yml file:
      - orb-tools/publish:
          orb-name: <namespace>/<orb-name>
          vcs-type: << pipeline.project.type >>
          requires:
            [orb-tools/lint, orb-tools/review, orb-tools/pack, shellcheck/check]
          # Use a context to hold your publishing token.
          context: <publishing-context>
          filters: *filters

I'm guessing those should have been sed'd to what I provided? (Note: I'm not even sure if what I provided was correct. I'm not an Orb expert...
Expected behavior:
I'm guessing no sed errors?
Additional Information:
I am on a macOS machine and perhaps this script assumes GNU sed? I mean, I do have GNU sed from Homebrew and I've symlinked my sed to be the gsed from Homebrew:
❯ which sed
/Users/mathomp4/bin/sed
❯ sed --version
sed (GNU sed) 4.8
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jay Fenlason, Tom Lord, Ken Pizzini,
Paolo Bonzini, Jim Meyering, and Assaf Gordon.

This sed program was built without SELinux support.

GNU sed home page: <https://www.gnu.org/software/sed/>.
General help using GNU software: <https://www.gnu.org/gethelp/>.
E-mail bug reports to<EMAIL_ADDRESS>
But maybe the script assumes something?

I believe it should work but this is likely it.
Would you be willing to brew install gnused?
sed --version
gsed (GNU sed) 4.8
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jay Fenlason, Tom Lord, Ken Pizzini,
Paolo Bonzini, Jim Meyering, and Assaf Gordon.

This sed program was built without SELinux support.

GNU sed home page: <https://www.gnu.org/software/sed/>.
General help using GNU software: <https://www.gnu.org/gethelp/>.
E-mail bug reports to<EMAIL_ADDRESS>
Perhaps we should detect and warn on the version

I'm closing this as I just tried the migrate script and it worked. Of course, I now need to figure out what to do after it ran...so confused. but that's for another issue!


can't connect to server, Showing remote host key changed.

Hi,
I have been facing some issue while connecting from cli to server
The cli logs are:

The server logs are:

Thanks!

This is not a problem specific to netopeer2 and it would good to try to understand what exactly is going on to avoid potential security issues. But, to solve this problem (during testing) you can simply remove the offending key(s) using the knownohsts --del <idx> command in the CLI.

Thanks @michalvasko but now I am facing new errors

On your system, the root user is not allowed to authenticate using a password so the server refuses to do it as well. Not sure what else to tell you, either use another user or change your system root user.

Hi @michalvasko , If we use another user we can't access files while using:
edit-config --source running --test test-only --config=interfaces.xml

Fine, then fix your root user or you can also use SSH keys to authenticate, not the password.

We have already used SSH key. This is the process we used
Generate the ssh keys using this command
ssh-keygen -f id_rsa -N ""
Public and private keys will be generated in the root directory.
Create a directory .ssh using this command
mkdir –p .ssh/authorized_keys
Copy the public key id_rsa.pub to this file /root/.ssh/authorized_keys
cp id_rsa.pub /root/.ssh/authorized_keys
After copying the public key, we can connect to the netopeer2-server, get into this path /usr/local/bin and execute this command netopeer2-cli. We will get into the prompt “>”
sudo netopeer2-cli
**Help command provides all the available commands related to netopeer2-cli.
Provide the below three auth related commands to manage ssh authentication options.**

auth pref publickey 4 && auth keys add /root/id_rsa.pub /root/id_rsa && auth hostkey-check disable

Normally, the keys are stored in ~/.ssh/id_rsa(.pub) and authorized_keys is a file with all the authorized public keys. Also, I do not think && works in the CLI, it is not bash but a custom command line that supports only direct commands.

Could you please look into it

and the server log is

Firstly, you ignored the message
The new private key is not accessible...

meaning the CLI is not able to read the keys it is supposed to use so they will never be used, obviously.
Then, you may want to change the authentication preferences, print them with auth pref and then can make publickey most preferred by calling auth pref publickey 4, for example.


Add Turtl / Notes and Tasks

Turtl is a secure alternative to Evernote

Is it still maintained? AFAIK the project has been abandoned.


Feature request: Exception list

It would be very useful if Kubescape could list all the exceptions in a cluster/namespace etc... It'd be easier to track down actual problems

Hello @dwertent ,
Thanks for the answer, but I was hoping for a solution within the UI. We have Kubescape running as a helm chart and I would like to avoid sshing into the server pod just to see the exception list

Hey !! I will like to work on this issue and start my contribution to kubescape.
Thanks!

@lamenawuer We will have a solution from the UI, it is in our roadmap.
Unfortunately, w do not support it yet (from the UI).

@dwertent i am fullstack Developer and i can work on the Frontend for this issue, is the Frontend repository open to contribution? Let's connect offline to discuss more on it.

This is in the roadmap.
/cc @yossi77


Add  i22 beamline and devices

Rebased and refactored i22 beamline
Requires #327, closes #305
Instructions to reviewer on how to test:

On machine day run on i22 control machine
Confirm devices are instantiated and operable

Checks for reviewer

[ ] Would the PR title make sense to a scientist on a set of release notes
[ ] If a new device has been added does it follow the standards

Failing only because of the i24 failing test #329

Closed as these devices have all been merged seperately.


Favicon

Is there a simple way to add a custom favicon?

Admin-on-rest is just a library of components. Favicon is the responsibility of your app.


feat(Icons): add new icons miniThumbsUpIcon and miniThumbsDownIcon

Overview
Add new icon miniThumbsUpIcon and miniThumbsDownIcon for AI Feature Reconciliation.
Figma:- https://www.figma.com/file/AMM6cj988fxhTGiQFKw5nL/🌀-AI-features-reconciliation?type=design&node-id=1-2927&mode=design&t=5SBDpOJWxWtbqZY2-4

PR Checklist

[x] Related to designs:
[x] I have run this code to verify it works
[x] This PR includes unit tests for the code change
[x] This PR includes testing instructions tests for the code change
[ ] The alpha package of this PR is passing end-to-end tests in all relevant Codecademy repositories

Testing Instructions

Don't make me tap the sign.
PR Links and Envs

Repository
PR Link
PR Env

Monolith
Monolith PR
Monolith Env

Portal
Portal Link
Portal Env

Another Repo
Another Link
Another Env

📬Published Alpha Packages:@codecademy/gamut@55.17.4-alpha.46db83.0@codecademy/gamut-icons@9.22.1-alpha.46db83.0@codecademy/gamut-kit@0.6.401-alpha.46db83.0@codecademy/styleguide@66.17.5-alpha.46db83.0


Improve UnitPriority

Try to improve the "GetUnitPriority" function in MTCS. (src/UCTCDState.cpp)
Test with different values to find the best weights.
Also, try to explain the given value of 15.

Pour le 15 je voulais juste que la priorité soit plus haute pour un
banneling que pour les zerglings (dps de 10 si je me souviens bien).
On Mar 16, 2018 11:22 AM, "Jean-Philippe Croteau"<EMAIL_ADDRESS>wrote:

Try to improve the "GetUnitPriority" function in MTCS. (src/UCTCDState.cpp)
Test with different values to find the best weights.
Also, try to explain the given value of 15.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/RaphaelRoyerRivard/commandcenter/issues/30, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AFkCE4OvK7aIrAylZ13OWIG5c9TTmXvaks5te9jDgaJpZM4St-HR
.

Le dps est fixé selon http://liquipedia.net/starcraft2/Damage_per_second. Done commit 64ed1a30c223b5a1823cd0b8eb69d78c13307c72


Wall plant.

Describe the bug
A nice wall plant that violates many rules.
To Reproduce
Steps to reproduce the behavior:

Go to Winterhold look at oddments shop wall.
Do an existential crisis since gravity seems to be a suggestion and nutrition.

Expected behavior
Plants should grow on dirt not shop walls.
Screenshots

Modlist version
<IP_ADDRESS>
Did you add any additional mods?
Yes, MXAO on re-shade.

While the plant's tenacity is appreciated, its hatred of gravity is not.  Removed in upcoming update.


Missing parentOverrideContext when a nested child route is loaded at first time

I'm submitting a bug report

Library Version:
1.4.0

Please tell us about your environment:

Operating System:
OSX 10.13

Node Version:
8.9.0

NPM Version:
5.5.1

JSPM OR Webpack AND Version
NA

Browser:
all

Language:
ESNext

Current behavior:
When a nested child route is loaded at first time, the parentOverrideContext is missing.
https://gist.run/?id=24bddb1ca8e502bcac280fbb3368dd30
This demo setup a nested route, two routes at top level, plus two nested routes in one of the top level page.
The top app.js module defined a variable face with value ":-)". Due to all components loaded by aurelia-router have access to app.js component through overrideContext chain, the app is able to display the face in every leaf pages.
But there is a problem, when nested page "/two/one" is loaded first time, the face is missing, but if you visit "/two/two" then visit "/two/one" again, the face comes back.
A debug log in two/one.js prints bindingContext and overrideContext in bind() callback, it reveals the parentOverrideContext was missing when page "/two/one" was loaded first time, it comes back to normal when it was loaded second time.

Expected/desired behavior:

What is the expected behavior?
The first load of nested child route should have correct parentOverrideContext set.

What is the motivation / use case for changing the behavior?
I was trying to have a fix by looking into router implementation about the bindingContext manipulation during route activation, but could not find where the related code is. I would appreciate someone from Aurelia team could give me some hint, I would like to attempt to fix it.

I have the same problem.

See the PR above for a fix.

In my app, I have to inject a common obj to avoid using binding scope chain.

This is definitely a bug as the same behavior should occur on the first and each subsequent navigation. Thanks for the PR.
@Lichtjaeger If you really need access to a parent scope in a child route, there is likely a better way to approach the problem. Here are two suggestions.
Use a parameterized route
There's a temptation to jump on child routes when a parameterized route would do. For the above example, the parent and child routers have the following structure:
parent
configureRouter(config) {
  config.map([ { route: 'two', moduleId: 'two' } ])
}

child
  config.map([
    { route: 'one', moduleId: 'one' },
    { route: 'two', moduleId: 'two' }
])

This particular example could be rewritten with a parameterized route in a single router:
recommendation
configureRouter(config)
  config.map([ { route: 'two/:type', moduleId: 'two' } ]);
});

In this case, you'll have the exact same types of routes, but all the content would live within the same view / viewModel pair and therefore the same bindingContext. You would not need any messy workarounds requiring diving into the parent binding context.
Use a service pattern
The above strategy works in all the most common cases. If it does not work in your particular case, then consider leveraging the service pattern. The service pattern involves creating a third module that provides common data across your application.
my-service.js
export class DataService {
  constructor() {
    this.foo = 'bar';
  }
}

This only works when the data you want to share is not state data. For example, this is not the pattern to use if you want to share which element is selected in the parent view. (That particular use case is better handled by the parameterized route, though).
Inject the parent (not recommended!)
If all else fails, consider injecting the parent element itself. This strategy requires that the parent view is an application singleton, and it is in general a sloppy and less maintainable solution. It can work, and I've used it once or twice in very special use cases, so I'm including it here:
child.js
// Avoid doing this as much as possible. There's almost always a better way.
@inject(Parent)
export class ChildViewModel {
  constructor(parent) {
    this.foo = parent.foo;
  }
}

Thanks for all the options @davismj.
I am using option2 "use a service pattern", it looks like the best I can get.
Option1 has one limitation, parameterized routes are not in router.navigation. Hard to build menu for them.

@huochunpeng You're right. Personally, I never use the navModel. It's too limited for nearly every application I build. I've worked on a lot of applications and haven't found a one size fits all solution. Going to continue that conversation here: https://github.com/aurelia/router/issues/90#issuecomment-366575999.
In any case, I recommend building the best routing structure for the router, option 1, and solving the nav model problem differently. It's an easier problem to solve.

I am with you.
I am not sure whether to inflate that thread even more with following very rough idea.
If there is a way to support parameterized routes in router.navigation, even a hint, that will be great to reduce the need of dynamic route.
It could be just static route with dynamic navigableTo, no more need of dynamic route itself (at least for my use case, the only reason I use dynamic route is for the menu links).
{
  route: 'something/:type',
  moduleId: 'something',
  navigableTo: myLimitedTypes.map(type => {
    return { title: type.label, params: {type: type.value} };
  })
}

Thank you @davismj.
In the end, I definitely will use a service because these states will be from a backend logic. The project I'm working on is in a very early stage so I thought using a transparent state that is inherited from parent to child would be easier to debug for now.


feat: change message_queue to class attribute

Change message_queue to class attribute.
Add message queue test case.
Change custom message docs.

Hi vvanglro, thanks for all these contributions, very cool! 😎
I only had a quick glance over this, so I have no feedback on the code. Re:docs the new parameters to the client are missing in connecting-to-the-broker.md.

Thanks for yet another contribution to asyncio-mqtt. 👍 Keep it up! 💪 :)
I like the idea that the user can choose a Client-wide default for the message queue class. I also like the current approach where the user can choose a queue class per message loop (i.e., per call to messages). Let's keep both!
I propose that we:

Add message_queue_class to Client.__init__ (this PR already does so)
Simply save self._message_queue_class = message_queue_class and not an instance of said class (this PR does the latter, which I think is a bug anyhow).
Keep the def messages(..., queue_class) kwarg as is (this PR currently removes this kwag).
Simply use queue_class if given and if not given, fall back to self._message_queue_class

I thank that gives of the best of both worlds: A client-wide default that the user can override per message loop. :) Does it make sense?
On a side note: I really like the test that you have in place for this! 👍 It's a great example of how to use this feature.
Thanks again for you contribution to asyncio-mqtt!

@frederikaalund Sorry, maybe I didn't explain the reason for this change.
This is multiple messages, and different message queues, But no matter which topic the message belongs to, the message will be put in all message queues, So in this case, I don't think it is necessary to set up a queue for each message.
def _on_messageEvery time there is a message, all the callback methods will be called back to put the message in the queue.
https://github.com/sbtinstruments/asyncio-mqtt/blob/9366b32b6ea95dc9dc95b23c71672d17bd5d296f/asyncio_mqtt/client.py#L816-L818
import asyncio
import asyncio_mqtt as aiomqtt

class CustomPriorityQueue(asyncio.PriorityQueue):
    def _put(self, item):
        priority = 2
        if item.topic.matches("humidity/#"):  # Assign priority
            priority = 1
        super()._put((priority, item))

    def _get(self):
        return super()._get()[1]

async def message1(client):
    async with client.messages(queue_class=CustomPriorityQueue) as messages:
        await client.subscribe("temperature/#")
        async for message in messages:
            await asyncio.sleep(0.1)
            print("temperature/#:", message.payload)

async def message2(client):
    async with client.messages(queue_class=asyncio.Queue) as messages:
        await client.subscribe("humidity/#")
        async for message in messages:
            await asyncio.sleep(0.1)
            print("humidity/#:", message.payload)

async def main():
    async with aiomqtt.Client("test.mosquitto.org") as client:
        task = [asyncio.create_task(message1(client)), asyncio.create_task(message2(client))]
        await asyncio.gather(*task)

asyncio.run(main())

from asyncio_mqtt import Client
client = Client("test.mosquitto.org")

async def run():

    await client.connect()
    await client.publish("temperature/outside", payload=1.312)
    await client.publish("humidity/outside", payload=21)
    await client.disconnect()

if __name__ == '__main__':
    import asyncio
    asyncio.get_event_loop().run_until_complete(run())

These are my thoughts, I don't know if I missed something else.

Thanks for the detailed response! 👍 Now I understand what the purpose of this PR is. I agree that it makes sense to use a client-wide "queue" for all incoming messages. I'm worried about the implementation in this PR. I think the client-wide queue opens us up for race conditions. Take this counter example for instance:
import asyncio
import asyncio_mqtt as aiomqtt

async def fast_consumer(client: aiomqtt.Client):
    async with client.messages() as messages:
        await client.subscribe("counter_example/#")
        async for message in messages:
            print(f"Fast consumer received: {message.payload}")

async def slow_consumer(client: aiomqtt.Client):
    async with client.messages() as messages:
        await client.subscribe("counter_example/#")
        async for message in messages:
            await asyncio.sleep(1)
            print(f"Slow consumer received: {message.payload}")

async def producer(client: aiomqtt.Client):
    for i in range(5):
        await client.publish("counter_example/int", i)
        await asyncio.sleep(0.1)

async def main():
    async with aiomqtt.Client("test.mosquitto.org") as client:
        tasks = [
            asyncio.create_task(fast_consumer(client)),
            asyncio.create_task(slow_consumer(client)),
            asyncio.create_task(producer(client))]
        await asyncio.gather(*tasks)

asyncio.run(main())

Normally (without this PR), the counter example code always produce:
Fast consumer received: b'0'
Fast consumer received: b'1'
Fast consumer received: b'2'
Fast consumer received: b'3'
Fast consumer received: b'4'
Slow consumer received: b'0'
Slow consumer received: b'1'
Slow consumer received: b'2'
Slow consumer received: b'3'
Slow consumer received: b'4'

With this PR, the counter example code produces something like:
(asyncio-mqtt-py3.10) fpa@sbt-fpa-desktop1:/projects/asyncio-mqtt$ poetry run python ./counter_example.py
Fast consumer received: b'0'
Fast consumer received: b'1'
Fast consumer received: b'1'
Fast consumer received: b'2'
Fast consumer received: b'2'
Fast consumer received: b'3'
Fast consumer received: b'3'
Fast consumer received: b'4'
Fast consumer received: b'4'
Slow consumer received: b'0'

Note how the fast consumer accidentally consumed almost every message! That's bad.
I hope that makes sense. Let me know if I missed something. :)

Oh, I understand🤯

I think there's a good idea here. If we go all in on one client-wide queue, we could simplify:
async with Client("test.mosquitto.org") as client:
    async with client.messages() as messages:
        await client.subscribe("humidity/#")
        async for message in messages:
            print(message.payload)

to something like:
async with Client("test.mosquitto.org") as client:
    await client.subscribe("humidity/#")
    async for message in client.messages:
        print(message.payload)

That could be neat. At first glance, it's also maybe not super clear that each client.messages() creates a separate queue.
This makes the default use case simpler (And avoids issues like #109) but breaks the use case where we have:

fast and slow consumers that handle the same messages
consumers that should handle the same messages in a different order

(Those are the ones I can think of, at least.)
However, if someone needs this functionality, it should be possible to implement this on top by transferring the messages to other queues inside async for message in client.messages:.
What are your thoughts on that?

Personally, I like this "single client-wide queue" approach. I agree that it simplifies things (which I guess is why @vvanglro made this PR to begin with).
Pros:

Simpler implementation and API (this PR shows how and @empicano's comment details further)
More intuitive since we avoid that whole "multiple queues" thing. I don't know if our users actually realize that's how it works.

Cons:

Breaking change. This is v2.0.0 material. :)

Maybe we should open a GitHub discussion and collect all these ideas there?
Again, thanks for @vvanglro for putting this PR out there and opening the discussion. 👍

Good idea 👍 I opened one here


Still wrong return values when masking (see #50)

I saw the fix in #50 but I belive that it has not been fixed completely. The following still occurs in 0.8.4:
from awkward import JaggedArray

array = JaggedArray.fromiter([[1, 2, 3]])
empty = array[False]

print(empty.content)
# array([1, 2, 3])
print(empty.flatten())
# array([], dtype=int64)

while we also have
print(array[array != 1].content)
# array([2, 3])
print(array[array != 1].flatten())
# array([2, 3])

Should this be the behavior we expect?

I think empty = array[False] is a typo (and I don't know what it's supposed to be).
Other than that, everything else looks correct.

Oh, now I see the array defined above it (I thought this was supposed to be a function call— sorry!).
Still looking at it, I don't see any errors. This is how content and flatten() are supposed to act.
Slicing a jagged array does minimal work: it replaces the starts and stops arrays, but doesn't touch the content. This avoids having to recursively make changes to all the contents, which might be a wide Table. In a very common case, you'll be applying cuts on an array of events. You don't want it to have to modify every field of every particle— you want it to quickly mark some events as bad.
This is why there's an important difference between content and flatten(). If you want to logically flatten the data, so that only the desired values exist, use flatten().

Another thing to notice is that your first example used a flat boolean array as a mask, which masks out the top level of structure. The second example used a jagged boolean mask, which has a different meaning: it filters at the depth of its own jaggedness.
Removing inner values ("particles"):
array[array != 1]

Removing outer values ("events"):
array[array.min() != 1]

(Look at the mask arrays directly to see the difference.)

I think this should be made clear in the uproot README. Currently it only shows jagged_array.content to access the underlying ndarray when this may not always be semantically the right function to use.


Relax qpid_proton requirement

Relax the qpid_proton version requirement.
Fixes https://github.com/ManageIQ/manageiq/issues/19942

Sorry, it's not as simple as I thought...
Tried installing the latest qpid_proton gem (0.30.0) on a 'master' appliance which has qpid-proton-c-devel 0.29.0 and that doesn't work.
So it seems we need to control versions in a way gem and RPM are compatible. Gem and RPM don't get released at the same time, though. We might need to install qpid-proton-c-devel differently so we can lock to a certain version, along with gem version. I'll take a look at appliance build.

would relaxing this possibly have us using a gem with a later version that is not supported by the c libs (rpms) installed?

would relaxing this possibly have us using a gem with a later version that is not supported by the c libs (rpms) installed?

0.30.0 gem with 0.29 c library that I mentioned above - that's exactly that case. We're already locking gem version in Gemfile, but c library is not locked. So what we really need is to lock c library to the version that matches the gem version.

@simaishi is that something that we can do from the Gemfile though?  That sounds more like an appliance-build issue and relaxing the version here would enable that

Right, that's an appliance build change. I originally thought we can just relax gem version. But after trying out, I realized that's not the case...

The only way to ensure gem and RPM are compatible is to lock on both sides. Since EPEL only keeps the latest RPM in its repo, I will build whatever version needed in ManageIQ copr repo.
We're currently using 0.26.0 gem + 0.29.0 rpm for master/jansa appliance. 0.30.0 rpm is on the way (it's in testing -> stable transition). If we want to keep 0.26.0 gem, I'll build 0.29.0 rpm in copr repo. Or we can update gem/RPM to 0.30.0.  There is no 0.29.0 gem available.
Also just noticed EPEL 7 already has 0.30.0 rpm, which means bundle install is failing on ivanchuk. I'll build 0.29.0 rpm for that branch.
@agrare would you prefer keeping 0.26.0 or update to 0.30.0?

@simaishi if there is going to be a 0.30.0 rpm why don't we update the gem to match

@agrare 0.30.0 is in EPEL now. Please update the gem version. I'll make build change to lock RPM to 0.30.0 as well, but since EPEL has the same version, gem version update alone will work for now.

:+1: done @simaishi

Don't we want ~>0.30.0 so it will only allow 0.30.x version?

Jansa backport details:
$ git log -1
commit 1b1ab199de3479fb5c5e79fcc55d5cce4673c108
Author: Nick Carboni<EMAIL_ADDRESS>Date:   Wed Apr 8 09:21:02 2020 -0400

    Merge pull request #20016 from agrare/relax_qpid_proton

    Relax qpid_proton requirement

    (cherry picked from commit 74746cc88096bfa33311bf3403f8cc60138dcec3)


Error: attempt to index field 'action_tuples'

Describe the bug
After https://github.com/glepnir/lspsaga.nvim/issues/1001 was fixed I'm now getting spontaneously following error:
E5108: Error executing lua: .../share/nvim/lazy/lspsaga.nvim/lua/lspsaga/codeaction.lua:291: attempt to index field 'action_tuples' (a nil value)
stack traceback:
        .../share/nvim/lazy/lspsaga.nvim/lua/lspsaga/codeaction.lua:291: in function 'do_code_action'
        .../share/nvim/lazy/lspsaga.nvim/lua/lspsaga/codeaction.lua:230: in function <.../share/nvim/lazy/lspsaga.nvim/lua/lspsaga/codeaction.lua:226>

Steps to reproduce
Unfortunately the same as in https://github.com/glepnir/lspsaga.nvim/issues/1001: it just happened right now and I can't navigate up like for example 42k
Expected behavior
Navigating directly to line number should work.
Neovim version (nvim -v)
0.8.3
lspsaga commit
a86ff8f2294deca4278a71ebf0ef4f19fffe4231
Terminal name/version
Kitty 0.27.1

reproduce step? I can't reproduce your issue

I try to reproduce it. Unfortunately it just came "out of the blue" so to say.

what i guess you do move after use diagnostic jump ?

I did a diagnostic jump, yes. As far as I can remember I applied a diagnostic suggestion and then I tried to jump to another line. Unfortunately I cannot remember it to 100% because it happened to "fast". I'm trying right now to reproduce it. Can take a while...


freezes on splash screen (İOS)

The same problem happens when I run the unity project without flutter, but when I delete the "assets / editor" and "assets / plugins" folder and try again, the unity project works on my phone without the flutter
When I run with flutter, it doesn't throw any error. It only throws "Thread 1: EXC_BAD_ACCESS (code = 1, address = 0x64)" when I run the unity project.
thanks in advance and sorry for my bad english

I solved the Auto Graphics API setting in player settings by turning it on


#290: Adding missing methods.

Adding to Basis:

invert()
inverse()
transpose()
transposed()
flip_x()
flip_y()
flip_z()

Looking for a touch of feedback before getting too far into the changes. Is this the right direction? I've yet to add tests to compare with the functions from Godot.
I'm not sure if flip_x/y/z() are expected to be like this, or if they are useful.

Thanks for the PR! I thought FLIP_* are constants in the GDScript interface, so maybe they can be implemented as associated constants if you want to add them?
impl Basis {
    ///  The basis that will flip something along the X axis when used in a transformation.
    pub const FLIP_X: Basis = Basis {
        elements: [
            Vector3 { /* .. */ },
            Vector3 { /* .. */ },
            Vector3 { /* .. */ },
        ],
    };

    // - snip -
}

It's annoying that you can't use Vector3 constructors here because const fns aren't stabilized yet.

However, identity is also implemented as a function, so functions could work as well. I don't think I'm particularly favoring either of them to the other.

Added:

determinant()
get_euler()
get_rotation_quat()
is_equal_approx()
orthonormalized()
scaled()
xform()
xform_inv()

Not sure on the need for

get_orthogonal_index(), seems to be used by the editor.

Still needed:

get_scale()
rotated()
slerp()

On the clippy errors: approx wss added to current master as an optional dependency. If you need approximate float comparisons, consider rebasing on master and making approx unconditional.

Thank you for your feedback! I'll go through it today.
I've added some sanity tests. The one for invert() is commented out, only 5 of the 9 values are calculated correctly. I've had extra eyes on it and we haven't figured out where it is breaking. Could you take a look or suggest someone that could help?
Thanks!

I will take a look later!
As an aside, please don't work around the CI by commenting out code and tests. Having broken code in comments accidentally merged can complicate maintenance later. If you want to get other methods merged first, take the code out and put it in a new PR instead.

You might have seen other commented code in the repo while working on it, but keep in mind that these are relics from the early days. We don't do that anymore.

@toasteater Thank you for the detailed review! Updated and squashed.


Fuchsia tests should retry on initial failure

There have been at least two Fuchsia failures in the last day that failed due to network connectivity issues.  The Fuchsia bots should retry (preferably the package serving requests, or perhaps the whole test) after an initial failure.
/cc @godofredoc @keyonghan @digiter

Should we try to find out the cause for the network problems before adding retries? Any links to logs that I can take a look at?

https://chromium-swarm.appspot.com/task?id=47c534daef2ea210
https://chromium-swarm.appspot.com/task?id=47c4c2ff6ba48b10
Are two examples

I replaced some of the network cables, hopefully it was just a bad cable.
Going forward we'll need the serial output to triage paving problems. Are there any plans to collect those logs?

I haven't seen the network problem anymore. Please reopen if you find it again.


Update JGI Plate well description

Currently, the description for plate well is
"Required when 'plate' is selected for container type. Corner wells must be blank. For partial plates, fill by columns. Leave blank if the sample will be shipped in a tube."
Should be
"Required when 'plate' is selected for container type. Corner wells must be blank. For partial plates, fill by columns. Provide "NA" if the sample will be shipped in a tube."
Completion involves updating the schema and merging the change into main.

@turbomam
When the schema is updated, the submission portal schema updates, and an ingest (?) triggers the update to the submission portal. Right?

@mslarae13 @turbomam is this issue being actively worked on?

Haven't heard back so removing from sprint

This is a reasonable issue, but

Required when 'plate' is selected for container type. Corner wells must be blank. For partial plates, fill by columns. Provide "NA" if the sample will be shipped in a tube.

isn't a description. We should create an actual description and capture this kind of knowledge in comments.
Blank entries are allowed now so I wouldn't recommend entering 'NA'. In fact, I don't think NA will validate.
There's a DataHarmonizer issue to address an implementation that won't require this workaround at all. But I don't think there's any development on that yet. I haven't created the necessary rule in the schema yet either.

I'm starting to work on this now. You're talkinga bout slot dna_cont_well, right?

@sujaypatil96 pointed out that the place that text appears in the Data Portal is in the Guidance, which sources its content from an element's description and comments!

Comments and rules have been written to address this. Enforcement of the rules in DataHarmonizer has not been, but has been raised as an issue in the DataHarmonizer issue tracker.


Change outlier Offers link to lowercase for consistency

I recently got a result with the link:
    "offers": {
      "href": "https://horizon-testnet.stellar.org/accounts/GBS43BF24ENNS3KPACUZVKK2VYPOZVBQO2CISGZ777RYGOPYC2FT6S3K/Offers{?cursor,limit,order}",
      "templated": true
    }

It tripped up my template parse because I expected last path item to be lowercase offers just as https://github.com/stellar/horizon/blob/master/src/github.com/stellar/horizon/init_web.go has it as lowercase.

I didn't test this at all. I also didn't find any other code references with Offers (case sensitive)

+1


hope!

Hi,
Can you consider putting this list in all-in-one?
https://raw.githubusercontent.com/ookangzheng/blahdns/master/hosts/rpz.blacklist
thanks!

Seems like it's malformed: with "CNAME ."


Oauth issue

Build project or download apk ？？ All  config like Readme ？

Build project or download apk ？？ All  config like Readme ？

Download apk

Thx, I found that is some bug with GitHub action config, I update a new apk.  This issue may be solved

Thx, I found that is some bug with GitHub action config, I update a new apk.  This issue may be solved

Sure lemme test


Logotype for drop

Hi @nabakin  , my name is Zuur W. I'm a graphic designer and I'd like to collaborate on your open source project and propose free logo/icon design for your project. If it's something you're interested in, please, let me know!
Best Regards
Zuur

Hey!  That sounds great, I'd appreciate it!  I have a few preferences:

Needs to be similar to the current logo.  I like it a lot, but it's also pretty plain/dry, so I'm hoping you can help me improve it.
I want to keep green as the main color, but I'm open to gradients and other effects if you think they will look good.
Needs to be simplistic.
Has to look good in a wide range of sizes (specifically 16x16, 32x32, 256x256, and 512x512) because it will be used as a taskbar icon, window icon, shortcut, and a dock icon for Macs.

Thanks!

@zuurw what's up?  Still planning on doing it?

Hi I try to make something but I did not like the result, so I will try to make other.
Here are my work that I was doing.


Add code generation for function calls

The function call expression needs to have the code generated for it. This will probably involve adding a function in the compiler.rs file to handle function calls. Also, function calls to the standard library will also need to be implemented. For example, a function call to print should result in "print EXPRESSION". An easy way of detecting standard library functions will need to be implemented as well.

This will most likely bring about the creation of the standard library.