[turborepo] `--continue': Tasks are executed even when dependencies have failed

What version of Turborepo are you using?
1.10.6
What package manager are you using / does the bug impact?
Yarn v2/v3 (node_modules linker only)
What operating system are you using?
Linux
Describe the Bug
We are currently running our CI pipeline with the --continue flag.
Since some days, we experience broken pipelines: We have a deploy:dev task that performs a deployment, and test:interface for interface tests of the same project that depends on it. When deploy:dev fails, the test:interface still executes afterwards.
Since we experience this issue, we tried to downgrade to a version that worked before (1.9.3), but here we now encounter the same issue. Could be that it's related to bug in a transient dependency of turborepo.
The task failures are reflected in the summary JSON, where we can see that a task like @myproject/some-service#deploy:dev exits with non-zero and is in the dependencies list of @myproject/some-service#test:interface. That latter task also doesn't start before the deployment task has finished.
Expected Behavior
We expect, that in case of failing tasks, only tasks that do not depend on these tasks are executed.
To Reproduce
Not sure if this is related:
Depending on the module, we have different dependencies and so multiple task configurations of deploy:dev in turbo.json.
        ...
        "deploy:dev": {
            "dependsOn": [
                "dockerize",
                "publish-cdn-assets",
                "@myproject/mock-server#deploy:dev"
            ],
            ...
        },
        "@myproject/mock-server#deploy:dev": {
            "dependsOn": [
                "dockerize",
                "publish-cdn-assets"
            ],
            ...
        },
        "@myproject/some-service#deploy:dev": {
            "dependsOn": [
                "dockerize",
                "publish-cdn-assets",
                "@myproject/mock-server#deploy:dev",
                "@myproject/other-service#deploy:dev"
            ],
            ...
        },
        "test:interface": {
            "dependsOn": [
                "deploy:dev",
                "@myproject/mock-server#deploy:dev"
            ],
            ...
        }

Reproduction Repo
No response

Quick update, it appears that we did previously have this behavior, but it was not intended, so we changed it to the current behavior. We'll investigate adding similar functionality post-port.

Thanks for the feedback @NicholasLYang 🙂
I was already very wondering because I was pretty sure that at some point in the past the behavior was like Carsten explained it 😅
We build parts of our pipeline based on this „unofficial“ behavior 😅 In the last days we did a bigger infrastructure migration and because of this our deployments are not so stable like before and we realized that the behavior changed.
We will have a look if we find some workaround until you implement the feature again.
Best regards
Matthias

Hi @NicholasLYang, we are using continue in our pipelines to get as many ("real", not followups) errors as possible and remote caching all other results.
I wonder what would be the value of a task execution where a prerequisite (task dependency) failed.

Can you tell us the last version that behaved the old way? Then we will downgrade. We also think about contributing with a pull request by ourselves.

Hey @robaca , we talked about this at our team meeting today and our current guidance is to not use the --continue flag for your case. The original intention of --continue was to ignore all errors, but our implementation of it was to stop execution for a task if a dependency did not succeed. This was a consequence of the DAG library we used. After the Rust port, we are back to the intended behavior of --continue.
However, it does seem like useful behavior to stop execution when a dependency fails while allowing other independent parts of the DAG to continue, so we want to spend some time thinking about the API. One idea is adding a value to the flag. Something like:
--continue=all
--continue=independent-tasks-only

Can we expect some progress here in near future?

@robaca the team doesn't have this on our immediate roadmap, but we would accept a proposal or a PR that implements the approach above!


How to completely remove this branch history?

I don't want to restore this branch history because of security. How could I clean up the history?

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

ID: 1b2f7bb6-eca8-ba34-0595-3bf2ec7c0e0f
Version Independent ID: 28093f80-26b9-b9f8-0d5d-639c1da1f493
Content: Restore a deleted branch in your Git repo - Azure Repos
Content Source: docs/repos/git/restore-deleted-branch.md
Product: devops
Technology: devops-code-git
GitHub Login: @kaylangan
Microsoft Alias: kangan

You cannot permanently delete the history of a branch that has been pushed to a repository on Azure DevOps. We don't do garbage collection on the server so the branch/commits remain part of the repo and its history.


SC-905 : improved condition for validation

Codecov Report

Merging #381 into release-1.14-sp3 will decrease coverage by 0.01%.
The diff coverage is 40%.

@@                  Coverage Diff                   @@
##             release-1.14-sp3     #381      +/-   ##
======================================================
- Coverage               40.74%   40.72%   -0.02%
  Complexity                772      772
======================================================
  Files                     110      110
  Lines                    7587     7589       +2
  Branches                  864      866       +2
======================================================
  Hits                     3091     3091
- Misses                   4164     4166       +2
  Partials                  332      332

Impacted Files
Coverage Δ
Complexity Δ

...g/sunbird/common/request/UserRequestValidator.java
31.96% <40%> (-0.11%)
79 <0> (ø)

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 415d29e...b07c9cb. Read the comment docs.


Change 'Link' on Zaviago Workspace Menu

Situation
Once click at 'Zaviago Workspace' Menu, it will go to this link http://beta.zaviago.com/app/selling and User will see The sidebar menu where it's suppose to be hidden.

Hidden: http://beta.zaviago.com/app/customer/chomchom


160 fix publish by release plz

Should close #160
Add features for cargo publish

Pull Request Test Coverage Report for Build<PHONE_NUMBER>8
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
12 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.02%) to 74.14%

Files with Coverage Reduction
New Missed Lines
%

foundationdb/src/directory/mod.rs
1
92.17%

foundationdb/src/directory/directory_layer.rs
4
93.67%

foundationdb/src/directory/directory_partition.rs
7
71.55%

Totals

Change from base Build<PHONE_NUMBER>1:
-0.02%

Covered Lines:
4309

Relevant Lines:
5812

💛  - Coveralls


Error 'dotnet build' on OSX

My environment
$ dotnet --version
1.0.1
$ dotnet
Microsoft .NET Core Shared Framework Host
Version  : 1.1.0
Build    : 928f77c4bc3f49d892459992fb6e1d5542cb5e86
Error:
$ dotnet build
Microsoft (R) Build Engine version 15.1.548.43366
Copyright (C) Microsoft Corporation. All rights reserved.
/usr/local/share/dotnet/sdk/1.0.1/Microsoft.Common.CurrentVersion.targets(1111,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5.1" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/Volumes/MacintoshHD2/git2/confluent-kafka-dotnet/src/Confluent.Kafka/Confluent.Kafka.csproj]

you need to build for netstandard only, as net451 is for windows only (so we fan use it in standard legacy project)
dotnet restore
dotnet build -f netstandard1.3 (for Confluent.Kafka)


Asset is nuked when save fails

Description
Added FileSystem::copy and basically it tries to create a .swp file and save the contents there. In case it fails, nothing happens to the original asset file. If everything goes right, we copy the contents from .swp to the original file
Checklist

[X] Self-review changes.
[X] Evaluate impact on the documentation.
[ ] Ensure test coverage.
[ ] Write new samples.

Eh I guess we should delete the .swp file after copying right


Opaque error when data sources is missing a column

When the "data sources" tab is missing a column (e.g., column G on old versions of the sheet), it exceptions with an opaque error:
>>> doc = es.excel_to_sbol(wb)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python39\site-packages\sbol_utilities\excel_to_sbol.py", line 426, in excel_to_sbol
    basic_parts, composite_parts, linear_products, final_products, source_table = read_metadata(wb, doc, config)
  File "C:\Python39\site-packages\sbol_utilities\excel_to_sbol.py", line 110, in read_metadata
    source_table = {row[config['source_name_col']].value: row[config['source_uri_col']].value
  File "C:\Python39\site-packages\sbol_utilities\excel_to_sbol.py", line 112, in <dictcomp>
    if row[config['source_literal_col']].value}
IndexError: tuple index out of range

It should at least be more graceful about its crash.

Hello @jakebeal , enclosing the part of reading_metadata where it fetches the G column (Literal part) in a try block seems to handle this, shouldn't this be all that's needed? Also, can you describe the issue of parsing with extra columns? I am not able to reproduce it by editing the simple library xl file.

@mohitdmak I'm not surprised if it's a fairly simple fix.
For the extra columns, example, try inserting some columns in the middle with new names. I don't think it's being smart enough to handle it. If it is, though, then add a test case to validate and we're good.


Add additional data into config file

Resolves #127
Data added into config file:

Sponsors
Team Member
Keynote Speakers
FAQ
Footer Data

I believe this takes care of the rest of the configurable class colors. We should probably review this pr and merge if it's good soon so that other branches can start utilizing the config colors

Ah so apparently there's a bunch of things in here that we don't want in the config file??? (@abdullah50053 confirm)
@MichaelZhao21:
That's correct, a lot of the things in here we're keeping in the DB. We need to keep the color and event config stuff and bin everything else

I resolved all merge conflicts with develop, but I don't have the brain cells rn to remove everything else from the config file

@nam-t24 Can we just recreate this PR with only @abdullah50053's wanted changes cause it's so much more painful to remove everything we don't want.

@nam-t24 Can we just recreate this PR with only @abdullah50053's wanted changes cause it's so much more painful to remove everything we don't want.

yah that'll be good

Irrelevent due to #216


elisp: C-J does not work

I am learning elisp. I pressed c+j after i entered (+ 1 1). And it just change to the next line without the result 2.  While, if i press c+x c+e, the result  will be showed at echo area.

The paredit package caused this. More detail at https://stackoverflow.com/questions/28566206/emacs-c-j-for-elisp-interaction#28567147

Evaluate this in your elisp buffer:
(local-set-key (kbd "C-j") 'eval-print-last-sexp)

@purcell how could we hack init-paredit.el to leave the original C-j binding in place in lisp-interaction-mode ?

Easiest solution for learning elisp might be to try ielm mode, which is shell-like (return to evaluate).
For example, M-x ielm
*** Welcome to IELM ***  Type (describe-mode) for help.
ELISP> (+ 1 1) ;; press return
2 (#o2, #x2, ?\C-b)
ELISP>

See https://www.gnu.org/software/emacs/manual/html_node/emacs/Lisp-Interaction.html

@sundexian It's not clear whether you're talking about IELM or just a regular elisp buffer. Only in IELM would you expect C-j at the end of an expression to execute it - is that what you meant?

@purcell  Thank you for your reply. I tried this in the buffer named scratch. I'll try to use the IELM mode as you and dcorking said.

@purcell In the scratch buffer of vanilla Emacs, C-j evaluates an expression. However paredit replaces this key binding.

In the scratch buffer of vanilla Emacs, C-j evaluates an expression. However paredit replaces this key binding.

Ah - interesting! I didn't know that, probably because I've been a paredit user for such a long time.

Since this is a paredit choice, and everyone should use paredit, I'm going to close this issue without changing my config: to change the behaviour yourself, you'd just unbind that key from paredit-mode-map.


PHP error

I'm not sure if you maintain this anymore or if you would even be willing to help me with my issue. Regardless I'll ask.
I'm using PHP 7.4 on Ubuntu 20.04.4 using nginx to server my site.
To my knowledge I have configured everything correctly.
Upon testing it does display the shortened url page however it does not finish its execution, therefore the shortened url isn't actually attached to anything.
Checking my error log (/var/log/nginx/error.log) I see it has produced the following exception.
2022/06/27 23:57:33 [error] 739740#739740: *1953 FastCGI sent in stderr: "PHP message: PHP Notice:  Undefined index: q in /var/www/mysite.com/shorty.php on line 314" while reading response header from upstream, client: <IP_ADDRESS>, server: mysite.com, request: "GET /index.php?url=http://www.google.com HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.4-fpm.sock:", host: "mysite.com"

The issue stems from this line
While I do not think this is the cause of my issues it might be relevant.
The mysql user that shorty is using only has INSERT, SELECT, and UPDATE permissions within the scope of shorty.urls

My apologies I did not see https://github.com/mikecao/shorty/issues/10#issue-394115347

Resolved (I was dumb)


Add App Encryption Documentation in info.plist

https://developer.apple.com/documentation/security/complying_with_encryption_export_regulations

Hi Hashir, I would like to work on this issue. Can you assign me, please? Thank you.


Fix the user experience for selecting a range.

... especially date ranges.
Date trimming?
Trie Indexing?
Iterating the term dictionary?

Some other ideas, not sure if actually helpful or not. :)
Trimming milli's and or seconds. So you can round to the minute.
Query everything but the last minute as well. (since the last minute may not be full)


Postgres extension : pg_repack (used for partitionning)

Is your feature request related to a problem? Please describe.
I want to partition some table to improve performances. But partitionning existing tables means create another table (with columns, constraints, triggers, indexes) + paritioning informations, then migrate the data, then remove the old table, then rename the new table.
A bit of a hassle + significant downtime.
Describe the solution you'd like
pg_repack (https://github.com/reorg/pg_repack) helps reorganize tables in PostgreSQL databases with minimal locks and minimal efforts.
That would be nice !
### Tasks
- [x] add postgres extension (see documentation https://reorg.github.io/pg_repack/)
- [x] PR to update the list of available extensions
- [x] update recommended versions
- [x] update schema

{14.13,15.8,16.4}-202401126-1 host just now released with this extension:
https://hub.docker.com/repository/docker/nhost/postgres/general


Tasks run in alphabetical order, not the order of the gruntfile

Hi,
There appears to be a bug where grunt-concurrent messes up the execution order of a task. For example, I have this setup:
	concurrent: {
		all: {
			tasks: [
				'concurrent:processJs',
				'concurrent:splitGlobal',
				'concurrent:splitAndWrapLegacy'
			],
			options: {
				limit: 4,
				//logConcurrentOutput: true
			}
		},
		splitGlobal: [
			'csssplit:global',
		],
		splitAndWrapLegacy: [
			'css_wrap:legacy',
			'concat:legacyAndLegacyExtra',
			'csssplit:legacy'
		],
		processJs: [
			'concat:globalJsAngular',
			'concat:globalJsComponents',
			'concat:globalJs',
			'copy:srcJsToTmp',
			'uglify:globalJs',
			'concat:globalJsMin',
			'concat:audiApp',
			'uglify:globalApps',
		]
	},

When I run all three of these tasks concurrently by running concurrent:all, I notice the processJs task executes in this order (I have trimmed the console output):
Running "concurrent:processJs" (concurrent) task

    Running "copy:srcJsToTmp" (copy) task
    Running "concat:globalJsComponents" (concat) task
    Running "concat:audiApp" (concat) task
    Running "concat:globalJsAngular" (concat) task
    Running "concat:globalJsMin" (concat) task
    Running "concat:globalJs" (concat) task
    Running "uglify:globalApps" (uglify) task
    Running "uglify:globalJs" (uglify) task

I am running grunt 0.4.5 on Mac OSX 10.10.2. Could you have a look and let me know if there is a solution to this?
Kind regards,
Alex.

Running them concurrently means that we can't control the order.


Add EOS metadata & logo

Not a square image

Think we could get a square image with a black background? This transparency basically requires a dark background.

How's this? Found a 700x700 & resized to 300x300. It's a jpeg though

Better to avoid text, and to crop the image close to the logo, since this will be rendered inside a small circle for MetaMask.

Cropped & resized.

That looks perfect, could you add it to the PR branch itself?


Only validate properties on the model that exist in the form

It would be useful to validate only the fields that exist in the form for instance, if I want to validate on one form against the user model with the properties : username and email but I also have validation rules on the user model the correspond to phone number and address for instance, the model is never vaild when it's just validated against the username and email as it also checks for phone number and address.
I don't want to create a unique model for each form however, I just want to validate against the single model but only the specified fields.
You can do model.isValid(['email', 'username']); but this only returns true or false whereas model.validate() or model.set(props, {validate : true}); will validate the entire model including properties that don't exist in the form.
I propose that this module only validates against a model if the names are in the form or that isValid() also returns the corresponding error message.

We are planning to build something to read fields of a form and validate based on they. Is this behavior you are thinking about?
Also, we are discussing the same thing on https://github.com/thedersen/backbone.validation/issues/244 — please, enter the conversation.


needimport path is not consistent to other directives

Other directives like image or include use relative path starting from rSt file. Looks like this is the standard.
needimport uses relative path starting from folder where conf.py is. This behavior is not consistent with the other directives.
Hint: Change to this behavior will break existing builds. Possibly it shall be changed asap or never.

Good point.
Absolute paths are starting from conf.py folder for e.g. image directive.
Relative paths from rst file.
I'm totally open to change this behavior for needimport to the sphinx default way.
Will do it already with the upcoming release.

This change will break the current implementation.
Maybe we can check if the "old" way is used to define the location (checking if file can be found) .
Then we throw an deprecation warning but go on without any error.
If old way does not lead to an existing file, use the new way (No warning).

Wouldn't it be better to use the new way first?

If file is found at new position, then OK.
If not found at new position, then use old way

if file at old position found throw an deprecation warning and go on
if no file found throw error

@Chriner : You are right, that makes more sense.
For clarification:
conf.py under /home/me/project/docs.
Example rst under /home/me/project/docs/subfolder/page.rst
.. needimport:: /my.json
    --> absolute from conf.py because of starting /
   --> /home/me/project/docs/my.json

.. needimport:: my.json
   --> relative from current rst-file because of missing /
   --> /home/me/project/docs/subfolder/my.json

   * if not found, check /home/me/project/docs/my.json
     * if found there, use it but throw  DEPRECATION warning
     * if not found, raise already implemented exception/warning


Bringing the bootstrapped environment up

What type of PR is this?
/kind enhancement
What does this PR do / why we need it:
https://github.com/redhat-developer/kam/issues/120
Have you updated the necessary documentation?

[ ] Documentation update is required by this PR.
[ ] Documentation has been updated.

Which issue(s) this PR fixes:
Fixes #120
How to test changes / Special notes to the reviewer:
Test scenario should pass in CI

/test v4.7-integration-e2e

/refresh

/retest


Corrections on the OpenAI docs?

Hello,

I think there is typo on this doc.

{family}-{capability}[-{input-type}]-{identifier} should read {capability}-{family}-[-{input-type}]-{identifier}.
Example: text-ada-001 is in the form capability, family, identifier

The order in the table below should likely be ordered accordingly

The capabilities should probably be things like text, code, etc. rather than the model family names in the following line:

For example, GPT-3 models include ada, babbage, curie, and davinci.

Hope this helps.

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

ID: 25c15e01-3578-c4ae-afbc-32c7172173d0
Version Independent ID: 0d20fad8-0e13-2d85-64e5-31861fabdcdd
Content: Azure OpenAI models - Azure OpenAI
Content Source: articles/cognitive-services/openai/concepts/models.md
Service: cognitive-services
GitHub Login: @ChrisHMSFT
Microsoft Alias: chrhoder

@SeaDude
Thanks for your feedback! We will investigate and update as appropriate.

Hi @SeaDude
Thanks for reporting this! We have created a PR for this issue and the changes should go live soon.

@SeaDude
We are going to close this thread as resolved but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


Six-button vs 3-button detection is wrong

product spec: http://www.tmeeco.eu/SMD/spec_6Buttons_pad_rev2.pdf
technical bulletin: http://www.tmeeco.eu/SMD/Sega_Genesis_Manual/Bulletins/Gen-tech/Tech27-09.gif
The four bits that SGDK is using to distinguish between 3-button and 6-button are actually undefined, and I have what appears to be an official 6-button controller that does not consistently set these bits.
The bits that you are supposed to use are bits 0 and 1 of the third read with TH LOW. These will read 00 on a six-button, which would correspond to pressing up+down on a 3-button.
Credit to Tiido (tmeeco.eu) for pointing this out to me.

Thanks, after reviewing the changes, it seems that it should work (except in the specific UP+DOWN case but that would very rarely happen). What is weird is that from docs, 6 btn controllers should always return 1111 on fourth TH LOW state from the documents but your does not. Also i think it's the first time someone reported an issue with 6 button controller read code so i guess it's rare to have controller behaving as your ;)

I have two SEGA 6-button controllers and one third-party one, and the different behavior only occurs on one of the SEGA 6 button controllers. If you hold X+Z+B+C then it changes from 1111 to 1100. I have no idea how many controllers behave like this, it's likely it's a small minority and it's a very specific situation where it comes up.
I discovered this because I noticed that mashing buttons on the controller caused 240p test suite's controller test to switch to 3-button. I first approached the problem as the controller being defective or counterfeit, but when I told Tiido about it they pointed out that the check in the code was wrong.

I merged your changes but i actually even slightly modified it to take care of that. Good to know it still show 1100 as this is exactly what i used to recognize it (make some sense after all) 👍

I think your additional commit might also be problematic... the technical bulletin says that the 1111 bits should not be used at all (I think? It says "shaded" and the scan makes it hard to tell). There may be other controllers out there that set those bits to other random combinations.
If you really wanted to handle the up+down case perfectly... I don't know if there's a way to do it that follows the letter of the spec. The closest thing I can think of is to check that the up/down bits are 00 in v2, and not 00 in the other reads. But even then, they could be holding up+down on a six-button controller.
I think the up+down case is really quite minor, as all that's really needed is to release that combination on the controller, the pad type will change to 3-button and then it won't change back to 6 unless JOY_reset is called while up+down are again held. It's likely this scenario would also cause misbehavior on real genesis games.

I do not see how my additional changes can be problematic as i'm just testing them if first condition wasn't enough to ensure we have a 3 button controller : i'm just testing bit for 0 value (not for 1 afaik) to confirm we have a 3 button controller whereas these bits have great luck to be 1 on a 6 button controller (and that was how we tested 6 button controller initially) so normally it just should help for the UP+DOWN case

Well, no use being worried about a problem that hasn't happened yet, but it's possible there are 6-button controllers out there that set those bits to zero. Given how I'm the first person to encounter this issue in general it could very well be that these are never set to 00 on a 6-button. In case it comes up, though, the conversation in this ticket could be good to help solve it. Thank you for responding to my PR and merging it :)

Indeed, but i think that at least that would help to solve the up+down case, i think having both cases at same time (up+down and 6 buttons returning 00xx instead of 11xx) is very unlikely to happen anyway.

Thanks to you for your contribution ! Honestly that issue would have be difficult to catch for me as i didn't know 6 buttons controllers could behave like this !

Indeed, but i think that at least that would help to solve the up+down case, i think having both cases at same time (up+down and 6 buttons returning 00xx instead of 11xx) is very unlikely to happen anyway.

I'm sorry if I'm not understanding correctly, but your commit has it setting the controller to 3-button if it detects either condition, so if a 6-button controller returns 00xx it will always be detected as 3-button, right?

Oh yeah indeed but i really believe that 6 btn controller returning 00xx is really unlikely to happen anyway, again you were the first to report the issue, and yourself you observed that your actually return 11xx at least, and in some way, that makes sense.
I'm afraid about the UP+DOWN issue to be a real problem on emulators used with keyboard for instance (in which case XYZ won't be taken in account)


DROOLS-733 - align KIE Server Rest URIs to be consistent and follow s…

…ame pattern - plurals in resource names

This will break the backwards compatibility between 6.3.x and 6.4.x, is that correct? (assuming it will only be merged into master). Or is it scheduled for 6.3.x as well?

the idea is to put it into 6.3 as well to make sure it will not be a breaking change after 6.3, so yes, it should go to 6.3.x as well


[Tech] Small refactoring of SwiftUI demos.

Remove some code duplication and added some helper views for the SwiftUIDemo, namely:

ThemeSelector
EnumSelector

Great idea !! Thank you Michael !


Verify error

java.lang.VerifyError
Lokhttp3/HttpUrl$Builder;
find verifyerror on Android devices(e.m. android 4.4.4)

Can you please post full stacktrace and version of OkHttp that you use?
It might be Instant Run problem btw.

I used okhttp-3.3.1jar okio-1.8.0.jar.
Find this problem on some devices,but I can't occurs.
logcat info below:
07-07 10:07:14.280 29891 29945 W TVM : VFY: storing non-ref v0 into ref field 'scheme' (Ljava/lang/String;)
07-07 10:07:14.280 29891 29945 W TVM : VFY: rejecting opcode 0x5b at 0x0081
07-07 10:07:14.280 29891 29945 W TVM : VFY: rejected Lokhttp3/HttpUrl$Builder;.parse (Lokhttp3/HttpUrl;Ljava/lang/String;)Lokhttp3/HttpUrl$Builder$ParseResult;
07-07 10:07:14.280 29891 29945 W TVM : Verifier rejected class Lokhttp3/HttpUrl$Builder;
07-07 10:07:14.283 29891 29945 W TVM : try to handle uncaught exception in bootstrap frame.
07-07 10:07:14.283 29891 29945 E TVM : 0x44618ad8 0x44cf2540 0x446143f0 0x5d03c694
07-07 10:07:14.283 29891 29945 E TVM : uncaughtException Ljava/lang/ThreadGroup;

Can you identify which device this occurs on? It looks like that device has a broken verifier.

Devices info:
H1(HOONRUN) Android 5.1.0,level 19
LD700(LD) Android 4.4.4,level 19
WP-S2(wellphone) Android 4.4.2,level 19
m1(Meizu) Android 4.4.4,level 19

Yikes. Not sure what to do here.

My suspicion is that this is an issue with those devices and not with OkHttp. If you can come up with a simple way to prevent the verify error, please send a pull request. But also please report the issue to those manufacturers.
No other action for us to take here.

java.lang.ArrayIndexOutOfBoundsException: length=0; index=1153466866
at java.util.HashMap.get(HashMap.java:307)
at android.content.Context$1.isNetworkDenied(Context.java:3230)
at java.net.Socket.connect(Socket.java:867)
at okhttp3.internal.a.a(AndroidPlatform.java:55)
at okhttp3.internal.a.c.c(RealConnection.java:185)
at okhttp3.internal.a.c.b(RealConnection.java:170)
at okhttp3.internal.a.c.a(RealConnection.java:111)
at okhttp3.internal.http.u.a(StreamAllocation.java:187)
at okhttp3.internal.http.u.b(StreamAllocation.java:123)
at okhttp3.internal.http.u.a(StreamAllocation.java:93)
at okhttp3.internal.http.j.k(HttpEngine.java:296)
at okhttp3.internal.http.j.a(HttpEngine.java:248)
at okhttp3.ag.a(RealCall.java:243)
at okhttp3.ag$a.a(RealCall.java:201)
at okhttp3.ag.a(RealCall.java:163)
at okhttp3.ag.a(RealCall.java:30)
at okhttp3.ag$b.b(RealCall.java:127)
at okhttp3.internal.i.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:848)


Update post install message

Currently when you install a plugin it outputs the message You can use the embedded Ruby by setting EMBEDDED_RUBY=true in /etc/default/sensu. This was helpful years ago before embedded ruby was enabled by default but now it can can be confusing as the message suggests you need to take action when none is required anymore.
EMBEDDED_RUBY=true was made the default in Sensu 0.21.0, which was released in 11/2015. The Chef cookbook and Puppet module default to EMBEDDED_RUBY=true as well.
Instead, we should say something like "Thanks for installing Sensu Plugins!"

Agreed on the whole EMBEDDED_RUBY message. For post install what about pointing it to IRC/slack? This gives people a quick helper to find our community communication challen.

Maybe we should have a page that has pointers to support resources and we link to that.

Yup, let's discuss what we should do and close out the PR if you are good with that. Too many moving things moving right now and once the communication, website, and all that get worked out I think we should avoid making the changes as we are just doubling our work.

@mbbroberg ping

@majormoses @eheydrick is there a place in the sensu-plugin.io page this could go?

atm I would guess not, the website is a mess. The builds are broken, it does not have valid ssl, and we have discussed redoing it. I feel like the order of operations on this is wrong. We should first figure that out before charging forward.

The only site maintained is sensuapp.org. I could see us adding /community here and linking appropriately. Thoughts?

that makes sense to me and then we can update that page later to point to the various locations of note.

@eheydrick also now with sensu 2.x and the asset management stuff it probably makes even more sense. I wonder if we should start creating a shared gem for this kind of stuff so we only have to update it in one place in the future?


"Atid" is listed in the drop-down menu

Description:
"Atid" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Atid" in the search bar.

Expected results
The location is listed in the drop-down menu as "Sat Atid, HARGHITA (Atid)".


Watch option doesn't update fonts hashes

Having such config:
    ...
    output: {
        path: path.join(distPath, '[hash]'),
        filename: "[name].[hash].js"
    },
    ...

where distPath is var distPath = path.resolve(__dirname, 'web/static/dist');
and some code which cleans previous builds (it removes all directories in the web/static/dist except the current hash directory) after build is complete.
I'm running it this way:
node_modules/.bin/webpack --watch --inline --progress --colors

I use a font-awesome library which includes some fonts (ttf, svg, etc.) inside this way:
  src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');

During the very first run - everything works fine and fonts are created in the web/static/dist/[hash] directory but after i change the code - it recreates all js files with a new hash, but without fonts. In result i don't have any fonts with a new hash. I guess it happens because fonts are not directly defined in the entry block but imported inside a library.
Could you please advice me a good solution here? Is there a way to force webpack recreate all files with a new hash even if they are not directly defined in the entry block but imported from the vendor library?

The fonts aren't changing though, so they won't have a new hash. That's normal.

Propably a bug, but it better to not use [hash] in path. Use [hash] in path will invalidate caching for all assets for every build ([hash] changes with every build). But fonts are not changed and could be cached longer. Remove [hash] from path.
This is a better config:
    output: {
        path: distPath,
        filename: "[hash]/[name].js",
        chunkFilename: "[hash]/[id].js"
    },

Or even:
    output: {
        path: distPath,
        filename: "[name].[chunkhash].js",
        chunkFilename: "[id].[chunkhash].js"
    },

@sokra Ok, but what is a good practice to clean up obsolete assets if all of them are in the same directory?

If the new version of your app doesn't include an asset this doesn't mean it's now obsolete. Users can keep browser windows open for weeks and deleting assets from server can give 404s for them.
Better wait a few weeks after publishing a new version before deleting old assets. Last modified time is a good hint. I think webpack rewrites assets (and timestamp) on every fresh build.

For reference: I had exactly this issue, where using a [hash] in the output path meant that assets like fonts weren't being loaded when running webpack in --watch. I solved it by moving the fonts specifically into a different directory by specifying a sibling directory to the hash path in the loader rules:
test: /\.(ttf|eot)(\?..., loader: "file-loader?outputPath=../fonts/&publicPath=../fonts/"

Since we already configured the name of the font files to include a hash, they don't need to be included in the hashed path - but this allows us to still include the hash in the path for other assets.


Re-record test cassettes with Xcode 7 Beta 6 changes

I hacked the cassettes to use API version 6, but I'm suspicious some details might have changed. Let's re-record all our test cassettes with the new Xcode Server.

😭😭😭


Delete function for hnswlib

I needed this in my app since I create different indexes on one server. Not sure If I should update the interface since this might be a specific feature for disk / in-memory stores only.
https://github.com/hwchase17/langchainjs/compare/main...anandkumarpatel:feature-hnswlib-delete?expand=1
I can add tests and flesh it out more if other people find this useful.

Yea, this is still relevant.

There are some issues with this PR, for example, the code await vectorStore.delete({ ids: uidsToDelete }) in the index to delete some data. It is clear that the current delete function does not support this and will cause an error.


Adding mouse button support

Merged conflicts of #248

This pull request adds mouse button support on top of existing functionality in response to #195 and #245. A mouse button is made to treat as a key in config file such that writing (non-modifier) key + mouse combination not supported. It is however possible to do for example shift + alt - mouse_left.
A total of 32 keywords are added to correspond to what Carbon supports.
It is possible to use -k flag to synthesize a mouse click. However it is intentionally made to click at coordinates (-1, -1) to prevent clicking any elements on screen.

I get this compiler warning which seems important:
In file included from src/skhd.c:39:
src/synthesize.c:76:24: warning: result of comparison of constant -1 with expression of type 'uint8_t' (aka 'unsigned char') is always false [-Wtautological-constant-out-of-range-compare]
    if (hotkey->button == -1) {
        ~~~~~~~~~~~~~~ ^  ~~

I think in cases like this it would be more appropriate to use UINT8_MAX instead of -1 to signal intent (even though -1 will have the same binary representation when stored in a uint8_t). I do think the compare with -1 is undefined behaviour unless explicitly casted to an unsigned type, and even if it is not, using the hex representation (0xFF) would be more appropriate.
There probably won't be further code changes to this repo, so it's not like I want or expect these changes to be done; just a note.

There's no mouse button support? I was looking to do a middle click. I did not know that. 🤔

@9tin9tin9 are there any updates on this? It would be very helpful to have this feature implemented. If this is blocked by something, can we resolve this? Thanks!

I don't think koekeishiya will merge this into master. So if you want to use this feature, maybe you can download and install skhd from my fork.
I won't be maintaining / adding new features besides merging from master because I personally is not a mouse user. However, if you have feature request about mouse hotkeys, I may consider implementing it.

Yes, I find this pretty useful. For example, when you have a mouse with additional keys you can map those keys to switch between workspaces. On the Apple mouse, you can do this simply with gestures. @koekeishiya is it possible to merge this PR?


Update Docking port alignment indicator

Set up for Curse scraping when it is implemented. Keeping frozen until then.
Added missing files installation as discovered through metadata checker by @godarklight

KSP-CKAN/CKAN#1608 is the change that will stop this from throwing errors.

Now on Spacedock, so this is not needed.


Translate blog/dont-panic-kubernetes-and-docker into Japanese

This is a Feature Request
What would you like to be added
Translate blog/dont-panic-kubernetes-and-docker into Japanese
Why is this needed
This page has not been translated.
Comments
/language ja
/assign

/triage accepted


Pin Direction Change compiles but does not seem to be working and produces weird Info Log messages that I can not supress:

The source-code below compiles but produces a informational log entry every time I try to change the pin direction
I tried to suppress it in the code with feature flags in the TOML and on the command line.
You can see logger config commented out.  I also tried with the command line
RUST_LOG=none cargo run --release  which had no affect.
If I understand the log message below it should be cycling state between inputEn:1 and OutputEN:1 as I toggle
the pin direction back and forth.  Since it is not doing so I am guessing the change from input to output mode is
failing.
Please Help:

How do I turn off these log messages the time to generate the messes up the algorithm?
Where is the documentation on how to interpret these log messages?
Why are the pin states shown in the log not changing as expected?

Should it be cycling between InputEn: 1 and OutputEn: 1
as I use the  csense_in.into_output()?;  and cout.into_input()?;

Where is a complete example showing changing pin direction change working as expected?
Is there a single line watchdog reset?

On the ESP IDF Page It mentions esp_task_wdt_reset() I think this is what we need. I am hoping that somebody has either written the safe wrappers for this or can at least give me a quick main.rs that demonstrates it use through unsafe calls.

SAMPLE OF LOG MESSAGES I CAN NOT DISABLE
I (346) sleep: Configure to isolate all GPIO pins in sleep state
I (353) sleep: Enable automatic switching of GPIO sleep configuration
I (361) main_task: Started on CPU0
I (371) main_task: Calling app_main()
I (371) gpio: GPIO[11]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (381) gpio: GPIO[1]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (391) gpio: GPIO[1]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (411) gpio: GPIO[1]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (411) gpio: GPIO[1]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (411) gpio: GPIO[1]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (421) gpio: GPIO[1]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown

Sample Source
from https://github.com/joeatbayes/embedded-rust-examples/tree/main/ex-gpio-change-pin-direction-var-cap-read-1-pin
//! WARN: Broken until we can figure out how to
//! turn of GPIO Direction Change Logging.
//! Use .... ../ex-gpio-measure-time-to-change-high-to-low)
// - It is similar but uses 2 pins to avoid the need to change pin direction.
//!
//! Measure change in capacitance by measuring time to discharge a
//! a capacitor from! VCC (3.3V) to logic 0 at approximately 0.7V
//! We Oversample and average this across a large number of passes
//! to help filter out noise.
//! See readme.md for pin mapping and explanation
#![allow(unused_imports)]
#![allow(dead_code)]

use anyhow::Result;
use esp_idf_hal::gpio;
use esp_idf_hal::gpio::PinDriver;
use esp_idf_hal::delay::Delay;
use esp_idf_hal::peripherals::Peripherals;
use esp_idf_hal::prelude::*;
use std::time::{Duration, Instant};
//use env_logger::{Builder, Target};
//use esp_idf_sys;

fn main() -> anyhow::Result<()> {
    esp_idf_hal::sys::link_patches();

    // Disable informational log messages just in case
    // they are what is affecting our timing.
    //Builder::new()
    //.filter(None, log::LevelFilter::Off)
    //.target(Target::Stdout)
    //.init();

    let peripherals = Peripherals::take()?;

    let led_pin = peripherals.pins.gpio11;
    let sense_pin = peripherals.pins.gpio1;
    let delay: Delay = Default::default();
    let mut led = PinDriver::output(led_pin)?;
    let mut csense_in = PinDriver::input(sense_pin)?;
    // must be mutable because we are assigning to it
    // latter to avoid moved rule violations.

    let num_pass = 1000;
      // Oversample number of passes more will
      // reduce variability but takes longer

    let full_discharge_time_ms = 2;
      // milliseconds to allow full discharge
      // any remaining charge in capacitor will add a
      // uknown element to how much charging is accomplished
      // during charge_time_us which means it could leave the
      // pin higher for longer modifying the readings.

    let charge_time_us = 25; // micro seconds to allow pin to discharge
     // Charge time is to allow capacitor a level close to
     // VCC once pin drive is set high.  It Should
     // be fast since no resistor between capacitor and
     // sensor.  May consider adding 3.3K resistor between pin
     // and electrode to avoid excessive drain on the pin.

    loop {
        led.set_high()?;
        let mut cout = csense_in.into_output()?; // Change our Pin into output mode
        cout.set_low()?;  // Start discharge cycle
        delay.delay_ms(full_discharge_time_ms); // Wait for long enough to ensure fully discharged
        csense_in = cout.into_input()?; // have to Move back to keep move/borrow checker happy
        let mut sum = 0;
        let start = Instant::now();
        for _pass in 1..1000 {
            cout = csense_in.into_output()?; // Change our Pin into output mode
            cout.set_high()?; // Start charging the capacitor**
            delay.delay_us(charge_time_us);
            csense_in = cout.into_input()?;
              // places drive pin into high impedance mode.
              // stops charging capacitor leaving pin in
              // input mode so we can sense hole long it takes
              // to drain.
            let mut cnt = 0;
            // Wait for capacitor to drain to ground
            // Through bleed resistor.
            while csense_in.is_high() && cnt < 1000000 {
                cnt += 1;
            }
            sum += cnt;
        }
        // Average out our oversamples
        let elap1 = Instant::now().duration_since(start).as_nanos();
        let tout = sum / num_pass;
        println!("elap during pin state change cnt={:?} {:?}ms", tout, ((elap1 as f64 / num_pass as f64 ) / 1000000_f64));
        led.set_low()?;

        delay.delay_ms(18); // Allow WDT to auto clear
          // TODO: TO RESET WATCHDOG IN TIGHT LOOP LIKE THIS
          // without depending on sleep time for auto reset

        delay.delay_ms(1000); // Slow things down so I can read them
    }
}

CARGO FILE
[package]
name = "ex-uart-non-block-rs485"
version = "0.1.0"
authors = ["joe ellsworth<EMAIL_ADDRESS>edition = "2021"
resolver = "2"
rust-version = "1.71"

[profile.release]
opt-level = "s"
debug = false
info = false

[profile.dev]
debug = true    # Symbols are nice and they don't increase the size on Flash
opt-level = "z"

[features]
default = ["std", "embassy", "esp-idf-svc/native"]

pio = ["esp-idf-svc/pio"]
std = ["alloc", "esp-idf-svc/binstart", "esp-idf-svc/std"]
alloc = ["esp-idf-svc/alloc"]
nightly = ["esp-idf-svc/nightly"]
experimental = ["esp-idf-svc/experimental"]
embassy = ["esp-idf-svc/embassy-sync", "esp-idf-svc/critical-section", "esp-idf-svc/embassy-time-driver"]

[dependencies]
#log = { version = "0.4", default-features = false }
log = { version = "0.4", features = ["release_max_level_off"] }
esp-idf-svc = { version = "0.48", default-features = false }
esp-idf-hal = "0.43.1"
anyhow = "1.0.82"
esp-idf-sys = "0.34.1"
#env_logger = "0.11.3"

[build-dependencies]
embuild = "0.31.3"

Arduino Sketch that works with Same Logic on Same Hardware and Same Circuit
/* Example of changing pin direction on ESP32
   Measuring capacitance by first Charing variable capacitor by driving pin
   high for a charging interval then converting pin into high inpedance input
   measuring time for it to drop below logic low.

   Tested on RainAmp Soil Sensor Baord 2020-04-20
   ESPS3 Mini 1 - 4MB Flash, 2MB PSRAM

   Arduino Board Selected: ESP32S3 Dev Module
     USB CDC Enabled On Boot - Enabled
     CPU Frequency 80MHz
     CPU Debug Level WARN
     CPU Firmware 4MB
     CPU PSRAM - QSPI RAM

  Wiring
    GPIO1 -> SENS_OSC
    GPIO1 -> 8M Resistor -> GND
    GPIO11 -> 4K Reistor -> GND
*/

#define LED_PIN 11
#define SENSE_PIN 1
#define NUM_PASS 100
#define FULL_DISCHARGE_MS 2
#define CHARGE_US 2000
#define MAX_COUNT_DISCHARG 1000000

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(115200);
  pinMode(LED_PIN, OUTPUT);
  pinMode(SENSE_PIN, OUTPUT);
  digitalWrite(LED_PIN, HIGH);
  digitalWrite(SENSE_PIN, LOW);
}

// the loop routine runs over and over again forever:
void loop() {
  // Give Sense Pin Time to fully discharge
  pinMode(SENSE_PIN, OUTPUT);
  digitalWrite(SENSE_PIN, LOW);
  delay(FULL_DISCHARGE_MS);
  digitalWrite(LED_PIN, HIGH);

  // Oversample collection of time to discharge
  long start = micros();
  unsigned long sum = 0;
  for (int pass=0; pass < NUM_PASS; pass++)
  {
    pinMode(SENSE_PIN, OUTPUT);
    digitalWrite(SENSE_PIN, HIGH);
    delayMicroseconds(CHARGE_US);
    pinMode(SENSE_PIN, INPUT);
    // Wait for capacitor to drain through
    // Bleed resistor
    unsigned long cnt = 0;
    while((digitalRead(SENSE_PIN) == HIGH) && (cnt < MAX_COUNT_DISCHARG)){
      cnt += 1;
    }
    sum  += cnt;
  }
  unsigned long avg = sum / NUM_PASS;
  unsigned long elap = micros() - start;
  unsigned long elapDrop = elap - (NUM_PASS * CHARGE_US);
  float avgUs = (float)elapDrop / (float) NUM_PASS;
  digitalWrite(LED_PIN, LOW);

  Serial.printf("avg Cnt %ld  Elap Avg %8.5f us\n", avg, avgUs);

  delay(1500);  // delay in between reads for stability
}

I can at least help you with the watchdog I think (if you are fine with slight jitter),
If you create the delay manually, eg
Delay::new(10), it will pause anything longer than 10us via the esp task delay, so basically do this (but convert time to clock cyles before):
unsafe { vTaskDelay(delay_for_at_minimum_clock_cycles) };
This will reset the task watchdog, as it does return controll FreeRTOS.
(Which you might need to do from time to time anyway to not fail out of wifi or other stuff that the os manages in background)

How do I turn off these log messages the time to generate the messes up the algorithm?

This messages come from the underlying esp-idf system and are hardcoded log messages. And for whatever reason they decided to have a info log level on a specifc api call we do. You can reduce the loglevel either at compile time via sdkconfig entry or in your code calling the esp-idf log api. The former is simpler and can be done via the different LOG options by either reducing the default log level or the maximum level. ( add CONFIG_LOG_MAXIMUM_LEVEL_WARN=y in your sdkconfig file).

Where is the documentation on how to interpret these log messages?

There are logs that come from our api and there are logs that come from the esp-idf system itself. In your case you are seeing esp-idf system logs. You can find out more in the offfical esp-idf doc

Why are the pin states shown in the log not changing as expected?

They are you just don't see it in the logs. The reason is on a state transition for example from output -> input we need to reset the pin to a know good than applying the new state e.g input into the config. The logs only show you the "resetting" part where everything seams to be off but not the new state part. From memory you would see the other transaction if you would increase the log level to debug.

empirephoenix

@empirephoenix   Why is the unsafe function vTaskDelay any better than just having the delay.delay_ms(18); either way it has to be outside the tight loop or it would mess up our timing.   Also do you have a complete main.rs showing how to use this along with the cargo changes.  There is also FreeRtos::delay_ms(1000); which I think may call vTaskDelay.   What I have found out of experimental testing is that anything less than 18ms yields timeouts.     What I really want is what I had in TI MSP430 SDK and AVR SDK which was the equivalent to resetWatchDog()  it is just a counter so it should not require any delay other than the time to change the counter value.

@Vollbrecht  Thanks for the Hint.  The actual CONFIG_LOG_MAXIMUM_LEVEL_WARN=y did not  remove the offensive log entries but you got me looking in the right direction.
The code started working correctly when I updated the file sdkconfig.defaults with the following lines:
#CONFIG_LOG_MAXIMUM_LEVEL_WARN=y
CONFIG_LOG_DEFAULT_LEVEL_NONE=y
CONFIG_ESP_TASK_WDT_TIMEOUT_S=60
CONFIG_ESP_DEBUG_STUBS_ENABLE=n
Thanks for the help,  I really appreciate it.

empirephoenix

@empirephoenix Why is the unsafe function vTaskDelay any better than just having the delay.delay_ms(18);

It is not better, but basically there are only two ways for a delay, busy loop or suspending the task and returning to freertos. the delay object will switch between both ways, based on the threshold it has configured. Since you are using the default threshold, is why you need to use a rather long delay to feed the watchdog. You can either set that threshold lower, or just directly tell the os, that you want to delay for only as short as possible (vTaskDelay(1) , tho no guarantees that it will not be longer if some other task blocks the cpu).
Anyway since you are on one of the dual core esp32 you can also just do
unsafe {esp_idf_sys::esp_task_wdt_reset()}
and hog the first core (but this might fail badly if you every switch to a single core one)

we go of topic here but i want to still clarify this: each core has its own IDLE task. Resetting the watchdog from a higher prio task than the idle task itself is fighting a symptom not a cause. You can increase the time till a watchdog task will trigger, and you dont need to delay in every itteration of your hot loop. You just need to give up some cpu execution time in the total time intervall ( E.g every 5 sec on default iirc). The idle task itself has also some other housekeeping stuff todo besides just updating the watchdog, so its good practice to give it a chance to run, For further info you can read on the official docu in esp-idf about the IDLE task.
Also for general question please use the matrix chat channel we provide.


Update architecture docs

Final decision on Astro and Tailwind
Adds overview and diagram

Thanks for this @knicklabs
I have tagged you in the one question I have. Once I get your answer, I will merge this in before our meeting.
Regards


Add MelSpectrogram layer

This PR will add the MelSpecrtoram layer as an audio_preprocessing layer as mentioned in #17657. I have added the backbone of this layer. This layer will convert raw audio signals to Mel spectrograms. This layer is compatible with both GPU & TPU.
Need to add some tests to ensure everything is okay.
Todo

[x] unbatched audio test
[x] batched audio test
[x] zero values audio test
[ ] serialize callable ref

cc: @fchollet , @mattdangerw

It turns out linting is failing due to conflict between flake8 and black. Black is making the formatted code line too wide which is flagged by flake8 on other hand if code is reformated  to adjust for too wide line then black flags it

@fchollet Thanks for your valuable feedback. While I understand your concern about the potential confusion caused by non-intuitive names, I would like to point out that the current argument names are widely used and recognized in the community, as demonstrated by popular libraries such as librosa,torchaudio, and nnaudio. For example,
for librosa
librosa.feature.melspectrogram(y=None, sr=22050, n_fft=2048, n_mels=128, hop_length=512, win_length=None,
                               window='hann', power=2.0, fmin=0.0, fmax=None)

for torchaudio
torchaudio.transforms.MelSpectrogram(sample_rate=16000, n_fft=400, win_length=None, hop_length=None,
                                     f_min=0.0, f_max= None, n_mels = 128, window_fn = <fn>, power = 2.0)

for nnaudio,
nnAudio.Spectrogram.MelSpectrogram(sr=22050, n_fft=2048, n_mels=128, hop_length=512,
                                   window='hann', power=2.0,fmin=0.0, fmax=None)

While I am open to alternative names, I believe that changing them could create confusion for users who are already familiar with these naming conventions. Therefore, it seems like a trade-off between renowned names and intuitive names. Any thoughts what should we do?

Therefore, it seems like a trade-off between renowned names and more intuitive names. Any thoughts what should we do?

We should use more intuitive names.

There are more people who will use these APIs in the future than they are people using these APIs today. We're doing them a service by adopting better naming conventions.
If the names are intuitive, then they will be intuitive / easy to understand for people already familiar with the current APIs.
Keras APIs must be consistent with the Keras API. It would be annoying and surprising if something called "sampling_rate" in several other places of the API was called "sample_rate" here.

@fchollet I've updated the names according to your suggestions and replaced the rest with better intuitive names. Let me know if they meet the requirements.
By the way just noticed, this PR keras-team/keras-nlp/pull/847 in Keras-NLP is using sample_rate instead of sampling_rate & stride instead of fft_stride.

@fchollet could you please check?

@gbaned any update?

@gbaned any update?

Hi @awsaf49  Sorry for the delay, this PR is in awaiting review status.

This pull request has been on hold for quite some time. @fchollet and @mattdangerw, would you kindly consider reviewing it? I strongly believe that this new layer will be helpful to people working with audio data. Thus, the sooner it is added into Keras, the sooner the community can get its benefits.

@gbaned could you approve the workflow for unit-test ??

@mihirparadkar Hi, I just noticed keras-team-review-pending label has been removed. Any update on this??

Currently the PR is on hold due to the following error,
/keras/distribute/ctl_correctness_test.runfiles/org_keras/keras/metrics/confusion_metrics.py", line 22, in <module>
    from keras import activations
  File "/home/kbuilder/.cache/bazel/_bazel_kbuilder/31d6f47147b75c35404d734345be7323/execroot/org_keras/bazel-out/k8-opt/bin/keras/distribute/ctl_correctness_test.runfiles/org_keras/keras/activations.py", line 22, in <module>
    import keras.layers.activation as activation_layers
ImportError: cannot import name 'layers' from partially initialized module 'keras' (most likely due to a circular import) (/home/kbuilder/.cache/bazel/_bazel_kbuilder/31d6f47147b75c35404d734345be7323/execroot/org_keras/bazel-out/k8-opt/bin/keras/distribute/ctl_correctness_test.runfiles/org_keras/keras/__init__.py)

I can't seem to find a fix for it as it relates to keras circular import but the code is written with a similar structure as the image_processing layer which works just fine. Any suggestions would be really helpful.
@fchollet @mattdangerw

Hello, Thank you for submitting a pull request.
We're currently in the process of migrating the new Keras 3 code base from keras-team/keras-core to keras-team/keras.
Consequently, merging this PR is not possible at the moment. After the migration is successfully completed, feel free to reopen this PR at keras-team/keras if you believe it remains relevant to the Keras 3 code base. If instead this PR fixes a bug or security issue in legacy tf.keras, you can instead reopen the PR at keras-team/tf-keras, which hosts the TensorFlow-only, legacy version of Keras.


UserDelegationKey fails with 500

Which service(blob, file, queue, table) does this issue concern?
blob
Which version of the Azurite was used?
$ azurite --version
3.31.0

Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)
npm
What's the Node.js version?
node --version
v20.12.1
What problem was encountered?
Try to generate user delegated key, see log below.
Steps to reproduce the issue?
If possible, please provide the debug log using the -d parameter, replacing <pathtodebuglog> with an appropriate path for your OS, or review the instructions for docker containers:
2024-07-02T15:12:11.124Z 	 info: Azurite Blob service is starting on <IP_ADDRESS>:10000
2024-07-02T15:12:11.127Z 	 info: AccountDataStore:init() Refresh accounts from environment variable AZURITE_ACCOUNTS with value *****
2024-07-02T15:12:11.191Z 	 info: BlobGCManager:start() Starting BlobGCManager. Set status to Initializing.
2024-07-02T15:12:11.192Z 	 info: BlobGCManager:start() Trigger mark and sweep loop. Set status to Running.
2024-07-02T15:12:11.192Z 	 info: BlobGCManager:markSweepLoop() Start next mark and sweep.
2024-07-02T15:12:11.192Z 	 info: BlobGCManager:markSweep() Get all extents.
2024-07-02T15:12:11.195Z 	 info: BlobGCManager:start() BlobGCManager successfully started.
2024-07-02T15:12:11.216Z 	 info: BlobGCManager:markSweep() Got 36 extents.
2024-07-02T15:12:11.216Z 	 info: BlobGCManager:markSweep() Get referred extents.
2024-07-02T15:12:11.230Z 	 info: BlobGCManager:markSweep() Got referred extents, unreferenced extents count is 0.
2024-07-02T15:12:11.230Z 	 info: BlobGCManager:markSweepLoop() Mark and sweep finished, taken 38ms.
2024-07-02T15:12:11.231Z 	 info: BlobGCManager:markSweepLoop() Sleep for 600000ms.
2024-07-02T15:12:11.235Z 	 info: Azurite Blob service successfully listens on https://<IP_ADDRESS>:10000
2024-07-02T15:12:42.541Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c info: BlobStorageContextMiddleware: RequestMethod=POST RequestURL=https://localhost/eastus1/?restype=service&comp=userdelegationkey RequestHeaders:{"host":"localhost:10000","x-ms-version":"2024-05-04","accept":"application/xml","x-ms-client-request-id":"b976eac5-a468-40e4-ae8a-4a666a741fe4","x-ms-return-client-request-id":"true","user-agent":"azsdk-net-Storage.Blobs/12.20.0 (.NET 6.0.31; Microsoft Windows 10.0.22631)","authorization":"Bearer <fake token but removed anyway>","content-type":"application/xml","content-length":"94"} ClientIP=<IP_ADDRESS> Protocol=https HTTPVersion=1.1
2024-07-02T15:12:42.541Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c info: BlobStorageContextMiddleware: Account=eastus1 Container= Blob=
2024-07-02T15:12:42.542Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c verbose: DispatchMiddleware: Dispatching request...
2024-07-02T15:12:42.543Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c info: DispatchMiddleware: Operation=Service_GetUserDelegationKey
2024-07-02T15:12:42.544Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c verbose: AuthenticationMiddlewareFactory:createAuthenticationMiddleware() Validating authentications.
2024-07-02T15:12:42.545Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c info: PublicAccessAuthenticator:validate() Start validation against public access.
2024-07-02T15:12:42.545Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c debug: PublicAccessAuthenticator:validate() Getting account properties...
2024-07-02T15:12:42.545Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c debug: PublicAccessAuthenticator:validate() Retrieved account name from context: eastus1, container: , blob:
2024-07-02T15:12:42.551Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c debug: PublicAccessAuthenticator:validate() Skip public access authentication.  Skip blob service SAS validation.
2024-07-02T15:12:42.552Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c info: BlobTokenAuthenticator:validate() Start validation against token authentication.
2024-07-02T15:12:42.553Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c info: BlobTokenAuthenticator:authenticateBasic() Validation against token authentication successfully.
2024-07-02T15:12:42.553Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c verbose: DeserializerMiddleware: Start deserializing...
2024-07-02T15:12:42.556Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c debug: deserialize(): Raw request body string is (removed all empty characters) <KeyInfo><Start>2024-07-02T15:07:40Z</Start><Expiry>2024-07-09T15:12:40Z</Expiry></KeyInfo>
2024-07-02T15:12:42.560Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c info: HandlerMiddleware: DeserializedParameters={"options":{"requestId":"b976eac5-a468-40e4-ae8a-4a666a741fe4"},"restype":"service","comp":"userdelegationkey","version":"2024-05-04","keyInfo":{"start":"2024-07-02T15:07:40Z","expiry":"2024-07-09T15:12:40Z"},"body":"ReadableStream"}
2024-07-02T15:12:42.561Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c verbose: SerializerMiddleware: Start serializing...
2024-07-02T15:12:42.562Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c error: ErrorMiddleware: Received an error, fill error information to HTTP response
2024-07-02T15:12:42.562Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c error: ErrorMiddleware: ErrorName=Error ErrorMessage=UserDelegationKey.SignedOid cannot be null or undefined. ErrorStack="Error: UserDelegationKey.SignedOid cannot be null or undefined.\n    at Serializer.serialize (C:\\Users\\aleonhard\\AppData\\Roaming\\npm\\node_modules\\azurite\\node_modules\\@azure\\ms-rest-js\\dist\\msRest.node.js:510:19)\n    at serializeCompositeType (C:\\Users\\aleonhard\\AppData\\Roaming\\npm\\node_modules\\azurite\\node_modules\\@azure\\ms-rest-js\\dist\\msRest.node.js:911:50)\n    at Serializer.serialize (C:\\Users\\aleonhard\\AppData\\Roaming\\npm\\node_modules\\azurite\\node_modules\\@azure\\ms-rest-js\\dist\\msRest.node.js:547:27)\n    at serialize (C:\\Users\\aleonhard\\AppData\\Roaming\\npm\\node_modules\\azurite\\dist\\src\\blob\\generated\\utils\\serializer.js:185:36)\n    at serializerMiddleware (C:\\Users\\aleonhard\\AppData\\Roaming\\npm\\node_modules\\azurite\\dist\\src\\blob\\generated\\middleware\\serializer.middleware.js:27:32)\n    at C:\\Users\\aleonhard\\AppData\\Roaming\\npm\\node_modules\\azurite\\dist\\src\\blob\\generated\\ExpressMiddlewareFactory.js:91:49\n    at Layer.handle [as handle_request] (C:\\Users\\aleonhard\\AppData\\Roaming\\npm\\node_modules\\azurite\\node_modules\\express\\lib\\router\\layer.js:95:5)\n    at trim_prefix (C:\\Users\\aleonhard\\AppData\\Roaming\\npm\\node_modules\\azurite\\node_modules\\express\\lib\\router\\index.js:328:13)\n    at C:\\Users\\aleonhard\\AppData\\Roaming\\npm\\node_modules\\azurite\\node_modules\\express\\lib\\router\\index.js:286:9\n    at Function.process_params (C:\\Users\\aleonhard\\AppData\\Roaming\\npm\\node_modules\\azurite\\node_modules\\express\\lib\\router\\index.js:346:12)"
2024-07-02T15:12:42.562Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c error: ErrorMiddleware: Set HTTP code: 500
2024-07-02T15:12:42.563Z 9b77d658-d254-40ae-8d39-8a3b85a4e35c info: EndMiddleware: End response. TotalTimeInMS=21 StatusCode=500 StatusMessage=undefined Headers={"server":"Azurite-Blob/3.31.0"}

Please be sure to remove any PII or sensitive information before sharing!
The debug log will log raw request headers and bodies, so that we can replay these against Azurite using REST and create tests to validate resolution.
Have you found a mitigation/solution?
not yet

OK, issue seems to be that the claims "tid" and "oid" were missing from by dummy auth token. These should probably be validated as part of the token validation.
For reference here is a TokenCredential which works:
namespace My.Test.Framework;

using System;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Security.Cryptography;
using System.Threading;
using System.Threading.Tasks;
using Azure.Core;
using Microsoft.IdentityModel.Tokens;

public class SelfSignedTokenCredential : TokenCredential
{
    private readonly TimeSpan _expiration = TimeSpan.FromHours(1);
    private readonly string _tenant = "aaaaaaaa-aaaa-aaaa-0000-aaaaaaaaaaaa";
    private readonly string _issuer = $"https://sts.windows.net/aaaaaaaa-aaaa-aaaa-0000-aaaaaaaaaaaa/";
    private readonly byte[] _secret = RandomNumberGenerator.GetBytes(32);

    public override async ValueTask<AccessToken> GetTokenAsync(
        TokenRequestContext requestContext,
        CancellationToken cancellationToken)
    {
        return GetToken(requestContext, cancellationToken);
    }

    public override AccessToken GetToken(TokenRequestContext requestContext, CancellationToken cancellationToken)
    {
        var audience = requestContext.Scopes.Length > 0 ? requestContext.Scopes[0] : "default-audience";
        audience = audience.Replace("//.default", "/");
        var expires = DateTimeOffset.UtcNow + _expiration;
        var token = GenerateJwtToken(audience, DateTime.UtcNow - TimeSpan.FromMinutes(5), expires.UtcDateTime);
        return new AccessToken(token, expires);
    }

    private string GenerateJwtToken(string audience, DateTime notBefore, DateTime? expires)
    {
        var securityKey = new SymmetricSecurityKey(_secret);
        var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);

        return new JwtSecurityTokenHandler().CreateEncodedJwt(
            issuer: _issuer,
            audience: audience,
            subject: new ClaimsIdentity(new []
            {
                new Claim("oid", "c0ffee00-c0ff-eeee-0000-c0ffee000000"),
                new Claim("tid", _tenant),
            }),
            notBefore: notBefore,
            expires: expires,
            issuedAt: null,
            signingCredentials: credentials);
    }
}

@EmmaZhu
Would you please help to look at this issue?

Object ID and tenant ID are required to generate a user delegation key, they should always be included in the token credentials to access Azure Storage Service.  Azurite's behavior is expected.

@EmmaZhu-MSFT, the issue is not that these fields are required, it is that
they are not validated as part of the token validation.
When they are missing, the user delegation fails with an internal error
rather than a proper error message.
On Thu, 12 Sept 2024 at 03:06, EmmaZhu-MSFT @.***>
wrote:

Object ID and tenant ID are required to generate a user delegation key,
they should always be included in the token credentials to access Azure
Storage Service. Azurite's behavior is expected.
—
Reply to this email directly, view it on GitHub
https://github.com/Azure/Azurite/issues/2420#issuecomment-2345111656,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACSTYSUJA4FJTCFUVRRTH4TZWDZJTAVCNFSM6AAAAABKHZE4TWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNBVGEYTCNRVGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

With a token with invalid tenant id or object id, Azure would return 401 error like following:
HTTP/1.1 401 Server failed to authenticate the request. Please refer to the information in the www-authenticate header.
Content-Length: 414
Content-Type: application/xml
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: 2932de7b-701e-0051-45e8-05d02c000000
x-ms-error-code: InvalidAuthenticationInfo
WWW-Authenticate: Bearer authorization_uri=https://eastus2euap.login.microsoft.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/authorize resource_id=https://storage.azure.com
Date: Fri, 13 Sep 2024 14:26:14 GMT
Connection: close

<?xml version="1.0" encoding="utf-8"?><Error>InvalidAuthenticationInfo<Message>Server failed to authenticate the request. Please refer to the information in the www-authenticate header.
RequestId:2932de7b-701e-0051-45e8-05d02c000000
Time:2024-09-13T14:26:14.5704756Z</Message><AuthenticationErrorDetail>Signature validation failed. Signature verification failed.</AuthenticationErrorDetail></Error>

401 error is for bearer token challenge logic, which Azurite cannot support.  We'd need to discuss on Azurite's behavior when tid or oid is missing.

I don't follow your last point. The following file already includes various verifications on the bearer token claims:
It seems to me all that is missing are some checks there to ensure tid and oid are set.
https://github.com/Azure/Azurite/blob/76f626284e4b4b58b95065bb3c92351f30af7f3d/src/blob/authentication/BlobTokenAuthenticator.ts#L96C2-L96C34

We definitely should check whether tid and oid is set. The above message is just about what kind of message we should report. We'll discuss internally about it, and will update in this issue with any progress.


Not working on GU502GU

Was able to install but the commands don't do anything to the lighting on the keyboard

Bumping for this issue since it is my hardware as well. @wroberts  Can you give a brief description of how you went about the initial discovery to get this working for your machine? I would be happy to add this work myself however I have limited experience in this specific area so explicit direction would be a great help. I am unsure how to begin going about accumulating the information necessary from my machine/asus armory crate/aura to properly tackle this.  Thanks for making this to begin with, 1 step closer.

@cjkoral Can you confirm that the changes now in master (the new brightness commands) do not enable you to activate your keyboard?

@JoshDreamland I just tried these changes and they unfortunately do not work either

Do you have a working Windows installation? The best way to get this working is to boot Windows, launch Wireshark and start recording, then install/launch ArmouryCrate. End the recording after your keyboard is initialized, and that should be enough for me to figure out what's going on. If you're good, you can isolate the messages being passed when you, eg, change colors or switch to a different built-in mode. For example, I did a recording pass where I just cycled between all the modes, and then cycled between rainbow and static color five or six times. I also did a recording where I upped the brightness to max, then lowered it to min, for about four cycles.
Also, just to be sure, have you tried just setting the color to red and the brightness to 3? That's the only thing that seems to reliably work across all models so far.

@JoshDreamland Yes i do have a working windows installation, thats how i'm currently adjusting my keyboard settings. I will get back to you with a wireshark dump of ArmouryCrate.  Setting color to red and brightness to 3 is not functioning on my machine either. Thank you very much for getting back to me here, itd be great to get all this working

Update here, my GU502GU now works after the initialize keyboard functionality was added.  The rainbow functionality does not work at this point, but i believe someone else opened up an issue for that at this time.  Thank you for all your work

Another update, the rainbow function from https://github.com/wroberts/rogauracore/pull/26 works for me.  Any timeline on getting that merged in? I have to hop back and forth between tools at the moment

We'll need to backport the existing rainbow messages to it, as well as the new init command. It turns out these models just vary widely in both default implementation and support, so we'll need to offer both until we can accurately detect which one your keyboard supports. We can probably do that detection by serial number if we start compiling that list.
I might find time to do some of that this weekend, but I can't make any promises.

Im new to linux, just started using Zorin, I have the exact same laptop, but I have no clue how to go ahead further to installing this program, can someone help? I copy pasted the first line that it says for the ubuntu install as i'm guessing it should work since it is debian, but the lines after that don't, can someone help?  I'm very new to linux. Thank you in advance for having the patience to even respond to this.


Move to Velocity testing framework

The Velocity testing framework is the de facto standard to testing Meteor applications. We need to rewrite our current tests, documentation, and CI commands to utilize this framework.
https://velocity.readme.io/

Bis +1 for this !

What's the reason we didn't go with this in the first place? More out of curiousity than anything.

@jimrollenhagen meteor packages use tiny test by default so we stuck with that.

Just fyi Im working on the refactor right now. PR will be sent later today.


Index error with categorical variables

(issue submitted by user)
During preprocessing, when flag variable is constant (either in full dataset or in just train set), the following error occures.
Needs to be investigated, reproduced and fixed.
Occurs when we call preprocessor.fit()

Confirmed - constant values raise this exact error:
preprocessor = PreProcessor.from_params()

df_base['cat_constant'] = 'foo'

# split data into train-selection-validation set using 50 - 20 - 30 split
basetable = preprocessor.train_selection_validation_split(
                data               = df_base,
                target_column_name = 'target',
                train_prop         = 0.5,
                selection_prop     = 0.2,
                validation_prop    = 0.3)

col_list = df_base.columns.sort_values().tolist()

continuous_vars = [cols for cols in col_list if (cols.startswith('amt_') or cols.startswith('cnt_') or cols.startswith('qtc_'))]
discrete_vars   = [cols for cols in col_list if (cols.startswith('cat_') or cols.startswith('cod_') or cols.startswith('flg_'))]
target_column_name = 'target'

for var in discrete_vars:
    print(var)
    preprocessor.fit(df_base[df_base["split"] == "train"],
                     continuous_vars    = [],
                     discrete_vars      = [var],
                     target_column_name = 'target')


bug: useSigner hook causing multiple rerenders

Is there an existing issue for this?

[X] I have searched the existing issues

Package Version
0.6.4
Current Behavior
calling the useSigner() hook within the context of component causes looping re-renders
Expected Behavior
No response
Steps To Reproduce
calling useSigner hook within the context of a component will cause component to continually re-render
Link to Minimal Reproducible Example (CodeSandbox, StackBlitz, etc.)
No response
Anything else?
No response

Thanks for reporting. This issue is temporarily closed due to lack of information. Please provide a minimal reproducible example and reopen this issue.


Upstream test and expectation for Firefox sync to puppeteer v20.9.0

This is a sync for test changes we need for the latest sync:

https://phabricator.services.mozilla.com/D184113
https://phabricator.services.mozilla.com/D184114
https://phabricator.services.mozilla.com/D184115
https://phabricator.services.mozilla.com/D184116

Basically:

in Mozilla CI, headless environments can really not run headful browsers, so I had to skip headful.spec.ts tests on firefox headful (I'm not 100% how rules can override each other so maybe there is a cleaner way to do that).
adding a missing await on a page.goto which was sometimes triggering failures later in the suite
skipping tests which require a regular install (we don't use one on Mozilla CI), but it would be better to have a flag for this in the expectations file
skipping the pdf timeout test, as it leads to frequent intermittents due to https://bugzilla.mozilla.org/show_bug.cgi?id=1841125

Let us know what you think, cc @OrKoN @Lightning00Blade

(I removed one unnecessary skip)


About D435i

Hi. I'm Using D435i. I have questions.
In Intel, they said they measure Depth by active IR Stereo technology. I have a question about this tech.
How many Infrared sensor inside? I understand there are 2 RGB sensors inside, and it measures depth by using parallax. But, I can't check how many Infrared sensor inside. I understood this technology like these.

There are 2 RGB sensors inside, and 1 Infrared sensor at the center of camera.
There are 2 RGB sensors inside, and 2 Infrared sensor with each RGB sensor.

Which on is right? Please help me!

Hi @nych9811
2 infrared sensors, 1 RGB (visible light) sensor, 1 infrared projector + an inertial measurement unit (IMU)
Depth is being generated from the two infrared sensors. This is done because indoor or in poor lighting stereo-matching is benefiting from extra projected pattern, and you cannot do this in visible light (you can, but it would be, well, visible)
Single extra RGB sensor is used to give texture to generated point-cloud.

Dear @dorodnic
Thanks to your reply. Can you tell me more details about generating depth with two infrared sensors? If you have any link about this, please copy it to me.
Thanks!


Clicking Connect on splash screen doesn't do anything

Hi, just getting started with this, but when I attempt to log in, nothing happens. We're on a VPN and don't require credentials (I think.)

Closing for now. Fixed in new release.


Filename not respected when using URL??

Description of the issue
Filename not respected when using URL??
SQL Server version and edition
SQL2016
Version of the script
Version: 2020-01-26 14:06:53
What command are you executing?
EXECUTE [dbo].[DatabaseBackup]
@Databases = 'USER_DATABASES',
@BackupType = 'FULL',
@Credential = 'mycreds'
@Compress='Y',
@Url='https://myblob.blob.core.windows.net/sqlbackup',
@FileName = '{DatabaseName}{BackupType}{Partial}{CopyOnly}{Year}{Month}{Day}{Hour}{Minute}{Second}{FileNumber}.{FileExtension}',
@DirectoryStructure = NULL,
@AvailabilityGroupDirectoryStructure = NULL,
@Verify = 'N',
@NumberOfFiles = 8,
@MaxTransferSize = 4194304,
@BlockSize = 65536
output
Message
BackupDiskFile::CreateMedia: Backup device 'https://myblob.blob.core.windows.net/sqlbackup/myserver$myinstance/mydab/FULL/FULL_20200818_144639_6.bak' failed to create. Operating system error 50(The request is not supported.).
myserver$myinstance is probably the issue.

totally different issue. sorry

Could you share some information about what was causing this?
I am puzzled that there are sub-directories when @DirectoryStructure = NULL.


refactor(Icons): change file structure to optimize svgs and reduce bundle size

Summary
Type

Refactor

Summarise concisely:
What is expected?
Since now we use to have icons inlined into a .ts file which was painful to maintain and impossible to optimize.
Today we have each .svg file who will be in assets folder of CategoryIcon and ProductIcon. Those individual files can be optimized thanks to svgo and so reduce the bundle size. This is also a good way to cleanup the .svg files coming from design and optimizing it while pushing on github thanks to husky.
To achieve this I needed to create special config for svgo as we need to keep className on svgs as they are useful for setting a color and allows those component to be theme compliant.
Relevant logs and/or screenshots

CI to be fixed 👌


mac: invalid name in the top-left corner of the screen

we need a post-install script in our package.json or we update the name before the installer is created. The name is in Electrons Info.plist file and cannot be set programmatically.

I think we need to build Electron ourselves (with a custom config) in order to fix this bug.

Do you think we should try to take advantage of https://github.com/maxogden/electron-packager or just go straight for https://github.com/paulcbetts/grunt-build-atom-shell ?

Hello @zaggino,
Citing electron-docs:

On OS X the label of application menu's first item is always your app's name, no matter what label you set. To change it you have to change your app's name by modifying your app bundle's Info.plist file. See About Information Property List Files for more.

Hope that helps.


Install gouml with error

I am trying to install gouml, but got this error.
go get -u github.com/kazukousen/gouml/cmd/gouml
# github.com/kazukousen/gouml/cmd/gouml
../../../go/src/github.com/kazukousen/gouml/cmd/gouml/main.go:37:15: cannot use []cli.Command literal (type []cli.Command) as type []*cli.Command in assignment

Same issue for me on latest macos :
go get -u github.com/kazukousen/gouml/cmd/gouml
# github.com/kazukousen/gouml/cmd/gouml
../go/src/github.com/kazukousen/gouml/cmd/gouml/main.go:37:15: cannot use []cli.Command literal (type []cli.Command) as type []*cli.Command in assignment

Hi nbossard,
We can get a PlantUML code by using "GoPlantUML".
If you want PlantUML hurry, please try jfeliu007/goplantuml.

Hi,
When PR #60 is accepted you will be able to install gouml. For now, you can add a pointer in cmd/gouml/main.go, line 37, from  []cli.Command to []*cli.Command, it will work flawlessly

Same issue has been happened Go 1.13.0, which is managed with goenv 2.0.0beta11, on my macOS 11.4.
However, self building can avoid this issue.
git clone https://github.com/kazukousen/gouml.git
cd gouml/cmd/gouml
go build -o /usr/local/bin/gouml main.go
gouml --version # now you can use this command!

I guess this issue is caused by version update of urfave/cli.

Changed
Occurrences of []Command have been changed to []*Command
ref: https://github.com/urfave/cli/releases/tag/v2.0.0

Or, this issue might have been happened because of goenv.
I'm not sure, but self building can avoid that.


Clear the timeout when the component is unmounted

Not clearing the timeout was causing build scripts to hang as we were generating after we included readt-timeago in one of our components even after we had unmounted the components. Clearing the timeout as the component is unmounted fixes this issue. This is the the better way to do it using state.

could you update line 57, as that will cause unneccesary updates. I would suggest updating the value directly without using setState.

Will do

see comment on your other PR

Other pull request has been accepted so I can close this one


⚠ Cioos National CKAN has degraded performance

In 6794a95, Cioos National CKAN (https://catalogue.cioos.ca/) experienced degraded performance:

HTTP code: 200
Response time: 9640 ms

Resolved: Cioos National CKAN performance has improved in 3af849a after 2 minutes.


[Bug]: Running migrations fails when upgrading from v4.0.0-beta.357 to v4.0.0-beta.358

Error Message and Logs
INFO  Running migrations.

  2024_10_10_081444_remove_constraint_from_service_applications_fqdn  4.41ms FAIL

In Connection.php line 825:

  SQLSTATE[42704]: Undefined object: 7 ERROR:  constraint "applications_fqdn_unique" of relation "applications" does not exist (Connection: pgsql, SQL:  alter table "applications" drop constraint "applications_fqdn_unique")

In Connection.php line 571:

  SQLSTATE[42704]: Undefined object: 7 ERROR:  constraint "applications_fqdn_unique" of relation "applications" does not exist

s6-rc: warning: unable to start service db-migration: command exited 1

Steps to Reproduce
Run the manual upgrade from v4.0.0-beta.357 to v4.0.0-beta.358
Coolify Version
v4.0.0-beta.358
Are you using Coolify Cloud?
No (self-hosted)
Operating System and Version (self-hosted)
Ubuntu 22.04.5 LTS
Additional Information
No response

Did you upgrade once and then downgrade to a lower version and after that upgrade again?

Try to run this part manually to get it working (and upgraded): sudo bash /data/coolify/source/upgrade.sh

@bohtho Running the upgrade manual doesn't work, because this migration fails
https://github.com/coollabsio/coolify/blob/main/database/migrations/2024_10_10_081444_remove_constraint_from_service_applications_fqdn.php

Fixed it by manually adding the unique constraint to the database


Fees for Tx building

This is a follow up PR after #34
The goal of this PR is to reliably estimate all things related to fees and variable ada amounts for the transaction building.
This includes:

Making sure min ada is respected when building outputs
Scripts executions are measured and priced
Overall Tx fees are estimated correctly

A lot of work has been done to improve the fees situation! More fields are handled that have an impact on fees computation. For example, the presence of collateral in the Tx when there are scripts.
This PR also adds tests, a dedicated Error type, and many code improvements for processing intents.
Things still left to do:

check minAda for auto generated outputs (assets sent at other addresses and the change)
correct implementation of scriptDataHash: prepare the whole thing but leave the final hashing for a follow up PR
define the ports to evaluate scripts costs

MinAda is now automatically checked and adjusted for everything! So we have only these two left:

correct implementation of scriptDataHash: prepare the whole thing but leave the final hashing for a follow up PR
define the ports to evaluate scripts costs

Ok, this is almost ready. As previously said, there are only two things left:

correct script data hash, that will need #39
script costs, that will need #41

So let’s merge this, work on those two issues/PRs, then we can go back to finish Tx Building :)


Please return the radio!!

Please return the radio, the messenger is not needed. If the radio does not appear in the next firmware, i will have to leave, but i did not want to((
Put a + if you agree.

This kind of attitude will not be welcome here.


No taxa imported into pg?

but where are they? How do we get from name to taxon? And there are no taxa???
http://api.col.plus/taxon
There should be 16000 for this dataset alone: http://api.col.plus/dataset/11/import

Caused by datasetKey param not present in URL. datasetKey param now optional

failed tests https://builds.gbif.org/job/colplus-backend/lastBuild/testReport/


certificates not being utilized

We have a private signing authority for our certificates and the plugin isn't taking them from the system /etc/ssl/certs or from the certs added into intellij Tools -> Server Certificates.  I get this error:
Docker Registry Error: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Hi!
Sorry for the late response. I've been quite busy at my day job.
I've disabled SSL checks for all registries because it's not actually needed (development tool).
I've also submitted the update to the JetBrains Marketplace and it should be available after their review process is completed. In the meantime you can download latest version from here.


Improve article 2302.08557

Exact location of issue
A red \BibSpecAlias appears at the top left of the paper.
Problem details
Unclear what this \BibSpecAlias is.
(Optional) Expected behavior
It should probably not appear.
Desktop (please complete the following information)

OS: Ubuntu
Browser firefox

The macro in question needs to be added to latexml's amsrefs.sty.ltxml support (which appears to be partial or outdated).


Design drafts

From design team: Please find attached first drafts – nothing fixed – all changeable – but a starting point. This is just a flavour of the design theme we're exploring, we've tried to keep it simple with some variation.
3Things_Artwork001.pdf

@ClairePUK hmm I think we'll need to have a chat about these

@andrewMacmurray Probably worth speaking with the design team during their session on Tuesday. Shall we plan a Google Hangouts chat once I know what times they will be in the lab from?

I think that would be good, the sooner the better. Are going to have a chance to chat with them before? It might be good to run through with you a couple of my concerns with implementing them technically

Yeah, we'll try and get the call in before the session starts, let's aim for 10am. I'm actually on leave on Monday, and working from home today, so Tuesday will be the first chance I get to speak to them.

Wondering what happens next.pdf

RE__Design_assests.zip
The squished speech bubble on the results page is just speech bubble no 1 squished. Is this something you can do or will you need a separate version?

LICENSE.txt


SMTP server is not really asynchronous (and so connections timeout when there are simultaneous connection attempts)

I've been investigating some issues with using the SMTP server to send emails (rather than the API). It was working great for some time, but recently, connections have been timing out. It appears that once a certain number of simultaneous connections try to connect, the connection time will get really long.
The server isn't under particularly high load (0.01). It just appears that the SMTP server is blocking really long if multiple connections are made at the same time.
I've looked at a number of previous issues with this same symptom, and many of those had MySQL connection issues. I'm not seeing any issues with connecting to MySQL in my case.
So, I started digging into the code.
The SMTP server is implemented using an asynchronous event loop:
https://github.com/atech/postal/blob/master/lib/postal/smtp_server/server.rb
However, the "client" code (the class that handles the individual connections) appears to be making multiple blocking calls to the database:
https://github.com/atech/postal/blob/master/lib/postal/smtp_server/client.rb
Checking user authentication and actually saving the message appear to be done through ActiveRecord, which uses blocking IO. :-( I think this is the source of the problem.
It should be possible to implement the SMTP server completely asynchronously, either by switching to something like AsyncRecord or just having the SMTP server communicate with the API (and using async HTTP communication) rather than working with the database directly. Or, switching the SMTP server to use a threading or forking model to handle the connections, so that it's no longer asynchronous, just like the API which is not asynchronous.
However, as it stands now, with an asynchronous server that uses synchronous IO, you're going to inevitably run into issues where it can't handle all the connections, even if the server has the resources...

Totally agree with your research.

Thanks for your efforts @dsnopek, I also imagine there would be a similar problem with the server receiving incoming emails from the general internet?
I don't really know Rails that well but FWIW I would say that the threading/forking approach is probably the least disruptive to the overall system.
Would you be able to make a pull request to address the problem with whatever you feel is the best solution?

I also imagine there would be a similar problem with the server receiving incoming emails from the general internet?

Yes, anything coming in on the SMTP server could be affected.

I don't really know Rails that well but FWIW I would say that the threading/forking approach is probably the least disruptive to the overall system.

I agree. Switching to threading/forking means the code in the client class can probably stay pretty much the same, and keep using ActiveRecord. Making the SMTP server be actually asynchronous would require much deeper changes.

Would you be able to make a pull request to address the problem with whatever you feel is the best solution?

Unfortunately, while I can sort of read Ruby, I'm not a Ruby developer. That said, over the past couple days I've been looking for a Ruby developer who can create PR and I'm hopeful I can find someone who can hack on it soon!

Ooo, this is interesting! It looks like the SMTP server used to be threaded, but was converted to an event loop in this commit:
https://github.com/atech/postal/commit/b90632b525dab624b07f7b072c50a9c8773e3a6e
So, here's the smtp_server/server.rb file before those changes:
https://github.com/atech/postal/blob/0f10481da0a276d2be5cb8ec5b7b181268f865c6/lib/postal/smtp_server/server.rb
Of course, the code has changed a bunch after the conversion to an event loop, and those changes would need to be maintained, but perhaps that old implementation could be helpful as a reference?

Or, actually, no... The old code wasn't pure threaded: it looks like it did an event loop (via epoll) under Linux, and threaded under other platforms. It also looks like it didn't use a thread pool, but created a new thread for every connection, which isn't super efficient. But that code might still be a little useful, I don't know. :-)

@dsnopek Hello, I installed Postal locally, tried to run RSpec tests, and got errors. Can you help?
postal@2f72d2a35a15:~/app$ rspec

An error occurred in a `before(:suite)` hook.
Failure/Error: DatabaseCleaner.clean

DatabaseCleaner::Safeguard::Error::ProductionEnv:
  ENV['RAILS_ENV'] is set to production. Please refer to https://github.com/DatabaseCleaner/database_cleaner#safeguards
...

@andrew2net I haven't personally tried to run the RSpect tests but if you follow the link in the error message, it suggests some environment variables that you can set to disable those safeguards:
export DATABASE_CLEANER_ALLOW_PRODUCTION=true
export DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL=true

Perhaps that will help?
I don't really know, but I suppose that may have a negative impact on the database you setup for Postal, so you might have to recreate it after or something?

@dsnopek The problem is ENV['RAILS_ENV'] is set to production.  I tried to set the variable to test and development. It has no effect. If we set DATABASE_CLEANER_ALLOW_PRODUCTION=true then it cleans production DB which I use to run Postal server.
Looks like there is a non-standard way to run tests, but I didn't find it in the documentation.

@andrew2net Unfortunately, that's beyond my limited Ruby knowledge, which is why I need your help with this. :-) Perhaps it would make sense to make a new issue asking about that and maybe someone else in the Postal community will be able to answer?

Here's a work-in-progress PR https://github.com/atech/postal/pull/751 from andrew2net

Per my comments on the PR, I believe the only blocking IO should be on local database requests. I realise this is not ideal, but it should not cause a noticeable problem unless there is a serious database performance problem.
I have found this approach to be considerably better than a threaded approach, however I can certainly understand how the database blocking the whole SMTP process could cause a problem.
There are really 4 options on the table here:

Make the database queries async. This is really very difficult.
Make the database faster. This works for us!
Build a second SMTP server that uses threads only. This is how Postal used to work, and may be a perfectly good option if someone wants to re-implement it.
Run multiple SMTP servers. This doesn't 100% solve the problem, but will reduce the impact of an individual slow query and allow more simultaneous queries with zero code changes.

@catphish One implementation of option nr 3 is PR #751 :-)