Issue Title: Aligned Donate a Book Section with Rate Section

Related Issue
[Cite any related issue(s) this pull request addresses. If none, simply state “None”]
Fixes:  #(issue no.)
#3595
Description
[Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.]
This PR addresses the issue of misaligned Donate a Book cards in the Rate section. The cards have been realigned to create a more visually appealing and user-friendly layout. Additionally, the text within the cards has been adjusted to ensure proper alignment and readability. These changes enhance the overall user experience and make it easier for users to navigate both sections.

Type of PR

[X] Bug fix
[ ] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
[Attach any relevant screenshots or videos demonstrating the changes. Make sure to attach before & after screenshots in your PR.]

Checklist:

[X] I have made this change from my own.
[X] My code follows the style guidelines of this project.
[X] I have performed a self-review of my own code.
[X] I have commented my code, particularly in hard-to-understand areas.
[X] My changes generate no new warnings.
[X] I have tested the changes thoroughly before submitting this pull request.
[X] I have provided relevant issue numbers and screenshots after making the changes.

ok

this doesnt look good . in donate books section , increase the width of the boxs .  ( 3X2 )

Okay will try that. But if you look in that issue I mentioned the boxes are actually visible now individually. Earlier they were misaligned with one above the other.

Hey there @abhi03ruchi , I have worked upon that problem you mention , I guess it looks better to me than earlier :

Please Merge it here, it has no conflicts as of now.


Update Google.Flutter to 3.16.3

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.5 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Exception during executable launch operation System.AggregateException: One or more errors occurred. (An error occurred trying to start process 'C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\flutter.exe' with working directory 'D:\TOOLS'. The specified executable is not a valid application for this OS platform.)  ---> System.ComponentModel.Win32Exception (216): An error occurred trying to start process 'C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\flutter.exe' with working directory 'D:\TOOLS'. The specified executable is not a valid application for this OS platform.    --- End of inner exception stack trace ---    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) Exception during executable launch operation System.AggregateException: One or more errors occurred. (An error occurred trying to start process 'C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\dart.exe' with working directory 'D:\TOOLS'. The specified executable is not a valid application for this OS platform.)  ---> System.ComponentModel.Win32Exception (216): An error occurred trying to start process 'C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\dart.exe' with working directory 'D:\TOOLS'. The specified executable is not a valid application for this OS platform.

@wingetbot waivers Add Validation-Executable-Error


Improve log feature to trace BufRead functions.

So currently we don't trace anything on BufRead because it's not clear how to check the buffer which we don't own.

Done for sync version.
Implementation for async version seems impossible at present since futures-lite implements a AsyncBufReadExt trait for default.

We could just re-implement it as methods but it won;t be compatible with the trait.
Which is OK I suppose

fix e91ca9fb2aa5b58d7134f6016d09f8614b98a1f0


FIX Can't call update when id is 0

Fix for Databases that use numbers as ID's and model's with number id 0 should be able to call the function 'update'.
#565

Good catch. Thank you,  I've made one tiny request.

Thank you!


how to deal with expired contexts?

If a retry's Context() method has been called with a context that is now expired and the retry has ended because of it, should we return the context's error or the error from the function?
At the moment, we opt for the latter, returning the error from the run function.
I think it makes more sense to return the context's error though because thats what prevented the retry from continuing.

But if we do decide to return the context's error instead of the error from the function, we should also do the same for the timeouts, where we return a error describing the timeout, not the error from the run function.

I think the error returned by the retry is more important than what caused the retry to finally stop.
From the debugger's perspective, the fact that the retry terminated from context cancellation or timeout is going to be obvious from the timings (and the fact it returned at all).
I'd be OK with wrapping the error based on why the retry stopped.

Fair enough, lets go with wrapping the error based on why the retry stopped.


Vending machine animation syncing

The vending machines don't sync their animations well.
Some of them like the NanoMed Plus only play the animation opening, then at the end instantly change back to the closed frame.
Others like the engineering vendors play the opening and closing animation, but close too early.

is this before or after #749 ?

I think this is different. The NanoMed Plus might only have half the animation compared to the engineering ones. So to fix it, the engineering animations might need to be split and the NanoMed needs to have a close animation added.


modified the address component to handle country selection and added column "address_country" in database

Description ✏
Closes #342

Modified the address component to handle country selection from either 'US' or 'CA'.
Added CA_PROVINCES constant to address component using official abbreviations for provinces.
Updated the address component to dynamically display values from USA_STATES or CA_PROVINCES depending on the selected country.
Updated Swag Pack form to have a field for selecting country and to render states or provinces depending on what is selected for countries.
Added addressCountry field to student database table.
Updated [claimSwagPack] and [orderSwagPack] to pass in country.

Type of Change 🐞

[x] Feature - A non-breaking change which adds functionality.
[ ] Fix - A non-breaking change which fixes an issue.
[ ] Refactor - A change that neither fixes a bug nor adds a feature.
[ ] Documentation - A change only to in-code or markdown documentation.
[ ] Tests - A change that adds missing unit/integration tests.
[ ] Chore - A change that is likely none of the above.

Checklist ✅

[x] I have done a self-review of my code.
[x] I have manually tested my code (if applicable).
[ ] I have added/updated any relevant documentation (if applicable).

@tomas-salgado Hi Tomas! I just wanted to give an update on what I've been working on. Let me know if I am heading in the right direction. Thank you!

@jessherlitz yep, this looks like it's on the right track! It seems the CI test is failing right now because of a types issue, but at first glance it doesn't look like it should be too tricky to resolve. Let me know if you need any help!

@tomas-salgado sorry for the delay on this.. I am almost done!!

Hi @tomas-salgado! I finished this issue. Could you please review it? Thank you!

One note for @ramiAbdou when he reviews: Right now the dropdown for states will default to US States, but it changes to Canadian territories if you select your country as Canada. This functionality works fine. Do you think this is good or we should have the remaining fields (State, etc.) only appear AFTER selecting country?

I took a look at other address fields (ie: Stripe) and they typically have the country field appear first, so I moved the country field to the top, so I think that should suffice. Don't think we need to hide the other fields or anything like that since most people will fill out the form in order.


Make spellcheck work cross-platform

Type of PR

[ ] BUG
[x] FEAT
[ ] MAINT
[ ] DOC

Is your Pull Request linked to an existing Issue or Pull Request?
#2101
Give a brief description for the solution you have provided
Adds cross-platform support to the spell-checker script. Simplifies passing of directory to spellcheck. Removes LibreOffice dictionary step which does not seem to be needed?
PR Checklist

[x] Added documentation for changes
[ ] Added feature to example notebooks or tutorial (if appropriate)
[ ] Added tests (if appropriate)
[ ] Updated CHANGELOG.md (if appropriate)
[x] Made changes based off the latest version of Splink
[ ] Run the linter

@zslade are you happy for us to go ahead and merge this?  Looks ok to me...

@zslade are you happy for us to go ahead and merge this? Looks ok to me...

I was waiting for @ThomasHepworth to return from leave to discuss but happy to review sooner if you want to reduce the PR backlog

No rush on this from my end, I can just direct Jonathan to these docs in PR form (since he is planning to contribute to the documentation and is not on a Mac).

For reference, have addressed the LibreOffice query here: https://github.com/moj-analytical-services/splink/issues/2101#issuecomment-2045889911

@zmbc, are you happy to make the last couple of small suggested changes to this and update the branch? Then we can get this merged into master :)


Add account edit feature

This adds the account edit feature and a feature flag to enable it. It won't save the changed settings and will be added as a separate pull-request.
Depends on: #7166

This is a working version of the account edit feature that is not able to save at the moment -> next PR. The solution is already quite old and not ideal to accomodate for changes to the toolbar and buttons. But that code needs to be rebased and that will take some time.


Update README.md with latest changes and tests feedback

Implements #22 .

Ciao @S-Dafarra , the rework is complete.

Thanks @S-Dafarra !


b1

Node ID:  55ada88aba178005
Logs will be submitted

confirmed:B1
node:55ada88aba178005

Form submitted 21.05 UTC +3


Error

I try to get this to work on windows since some time now but i cant handle this error
File "C:\Windows\system32\lib\pine.py", line 14, in
from lib.grab import grab_screen
ModuleNotFoundError: No module named 'lib.grab'
i already installed grab_screen via pip

lib.grab is referencing this file in the "lib" folder of this repo.
Make sure you're running pine.py from the base directory, not the lib directory.


Applications not getting installed

Describe the bug
Installing application are not actually installed.
To Reproduce
Steps to reproduce the behavior:

Select some applications to install
Click on "Install Selection"
Wait for the applications to be "installed"
No error is shown, but application are not installed, even though it claims they are.

Expected behavior
Actually having the applications.

They are not in program files.
They are not showing up when searching for them.
There are no shortcuts on my desktop.,

Screenshots

Additional context
Am I doing something wrong?

exact same thing happening to me.

oh wow okay so to fix it all you do is open the microsoft store. there's an app on that list called App Installer.
update that app and then restart winutil and it'll work.

Thanks just tried the tool and i was scratching my head why it would not work.

Might be useful to document @xuninc's solution somewhere, had the same issue on a freshly installed system


cfonts is licensed under GPLV2

IANAL, but since we are not distributing cfronts (rather it is just listed as a dependancy), and since cfonts is not related to any code you distribute (it's just a package to make the console look cool, but not needed), I'm not aware of any issues with it being GPLV2.
That said I also don't fully understand how it's license would apply to 1. a template and 2. a development tool that is unrelated to any code generated using this template. Though you didn't really specify what the actual issue is here so I'm not sure how to address this. Just let me know if I'm missing something.


Fixed #33495 -- Improved debug logging message about adapting handlers for middlewares.

Ticket: https://code.djangoproject.com/ticket/33495

It's the wrapped handler that's adapted to the wrapping middleware. —  Carlton Gibson

The existing log message "Asynchronous middleware ... adapted" contradicts https://docs.djangoproject.com/en/4.0/topics/async/#async-views:

To see what middleware Django has to adapt, you can turn on debug logging for the django.request logger and look for log messages about “Synchronous middleware … adapted”.

This PR changes it to:
- To see what middleware Django has to adapt, you can turn
+ To see what middleware Django has to adapt for, you can turn
  on debug logging for the ``django.request`` logger and look for log
- messages about *"Synchronous middleware ... adapted"*.
+ messages about *"Asynchronous handler adapted for middleware ..."*.

@acjh Thanks :+1: Welcome aboard :boat:


Add model figures to readme

Codecov Report

Merging #17 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master     #17   +/-   ##
======================================
  Coverage    93.1%   93.1%
======================================
  Files           3       3
  Lines         203     203
  Branches       24      24
======================================
  Hits          189     189
  Misses          8       8
  Partials        6       6


Amamane [PCSG01293]

App summary
App name: Amamane
App serial: PCSG01293
App version: 1.00
Vita3K summary
Version: v0.1.8
Build number: 3212
CPU backend: Dynarmic
Test environment summary
Tested by: space1
OS: Windows 11
CPU: AMD Ryzen 5 3600
GPU: Nvidia 3070
RAM: 32 GB
Issues
Emulator crash after title.
Screenshots

Log
vita3k.log
Recommended labels
Bootable

emu crash after get first logo, so is intro


Clipboard Preview Pictures shrink on hover when 4 or less pictures are selected

Also happens for linked pictures/texts.


[Snyk] Security upgrade axios from 1.6.5 to 1.7.4

Snyk has created this PR to fix 1 vulnerabilities in the npm dependencies of this project.
Snyk changed the following file(s):

src/main/javascript/package.json
src/main/javascript/package-lock.json

Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Server-side Request Forgery (SSRF) SNYK-JS-AXIOS-7361793
  833

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Server-side Request Forgery (SSRF)

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 66.28%. Comparing base (0bae0d1) to head (56f0e64).
Report is 12 commits behind head on develop.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@              Coverage Diff              @@
##             develop     #239      +/-   ##
=============================================
- Coverage      66.85%   66.28%   -0.57%
- Complexity       424      426       +2
=============================================
  Files            152      154       +2
  Lines           1454     1477      +23
  Branches          61       62       +1
=============================================
+ Hits             972      979       +7
- Misses           427      442      +15
- Partials          55       56       +1

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


Stop search after depth 1 if there is only one legal move

Codecov Report
Patch coverage: 100.00% and project coverage change: -0.01% :warning:

Comparison is base (2511095) 92.71% compared to head (18517c9) 92.71%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #174      +/-   ##
==========================================
- Coverage   92.71%   92.71%   -0.01%
==========================================
  Files          88       82       -6
  Lines       13159    13149      -10
==========================================
- Hits        12201    12191      -10
  Misses        958      958

Files Changed
Coverage Δ

eval/src/complex.rs
95.94% <100.00%> (ø)

search/src/alpha_beta.rs
98.72% <100.00%> (+0.18%)
:arrow_up:

... and 11 files with indirect coverage changes

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


Upgrade from Aria to Nova doesn't give Dark Grey /glow.

Describe the Bug
All in the title! When you upgrade to Nova in the Nebula shop, you get all your rewards except for the dark grey /glow.
To Reproduce

Buy Aria
Upgrade to Nova
See results

Expected behavior
You'd be getting the dark grey glow.
Screenshots
Will do!
Username:
BUGJUUICER / BUG-JUICER#0940
Server name (all applicable):
Orion (But happens in all probably)

The command node for dark gray was missing from the Nova rank in general. I have added it, and added it's fix to all servers, but leaving open incase more testing needs to be done.

After some testing, fixes, and retesting, I have found that Jade was missing two colors for /glow, being Dark and Light Purple. Along with the fix to dark Gray, all colors of glow in every rank should now work properly on all servers! Thanks for the report.


Add support for Princeton Instruments SPE file format

Should be merged after #164. From stream should be implemented also for .spe format


C# 3.0.3 failed to build GodotSharp solution

Godot version: 3.0.3-mono

OS/device including version: Windows 10

Issue description: Clicking on "Create C# solution" (with VS Build Tools) lead to the fallowing errors:
failed to build GodotSharp solution
CSC(0,0): Invalid option 'portable' for /debug; must be full or pbonly

Steps to reproduce:
In Editor Settings -> Mono -> Builds set -> Build Tool: select "MS Build (VS Build Tools)".
Click "Create C# solution".
Creating solution with MS Build (Mono) works as expected.

The error sounds like it might be related to #18949, and #14822 where @neikeq commented:

For existing projects, you need to manually rename all <DebugType>full</DebugType> occurrences in your csproj file to <DebugType>portable</DebugType>.

@hpvb This should likely be mentioned in the 3.0.3 release notes.

Though wait before mentioning it in the release notes, it seems like the issue is the other way around here (portable used by only full supported?).

What's the version of MSBuild and csc?

I got same issue on Windows, last mono is installed but Godot is unable to locate it and compile.

It was my mistake. I've installed Microsoft Build Tools 2015 version 14.0.23107.10. It's a very old version I think. Installed newest one and it works like a charm. So I think I will close that issue :)


Support YAML configuration

We should have a configuration in the YAML file instead of defaults hardcoded in Configuration.ex
Thanks to that the user won't pass every needed arguments whenever he's running churn

Finally we're using .churn.exs configuration file.


configureProduction errors trying to require files that do not exist

In src/index you have this code:
const configureProduction = app => {
    const clientStats = require('./assets/stats.json');
    const serverRender = require('./assets/app.server.js').default;
    const publicPath = '/';
    const outputPath = join(__dirname, 'assets');

    app.use(publicPath, express.static(outputPath));
    app.use(serverRender({
        clientStats,
        outputPath
    }));

    app.set('views', join(__dirname, 'views'));
};

If I am running in development or these files do not exist then I get Can't resolve xxxx errors.
Am I missing something or how can this work?
Thanks for this project, I've found it very useful.

it is the node externals that I had missed


Qt QML: Radio Button - [Synthetic | Live] FLy Drone

Using the Qt Creator / QML Python:

Add the radio button that will let user select to fly the drone with Synthetic recorded data or Live brain reading; (3points)
Test it and check making the program works as expected; (2points)
Submit on D2L: short presentation going over the code, and demo showing the program working; (3points)
After (3); check if your code is approved to enter the Avatar code repo; if so, do pull request on GitHub to have your code merged; (2points)

IMPORTANT:
lines 21/22 are for synthetic data and use those when testing deployments without headsets;

Lines 16-18 are the ones when using the actual headset - so you just flip flop which ones are commented;

https://github.com/3C-SCSU/Avatar/wiki/Running-Avatar

Note - reason to move from PySimpleGUI to QT:
It might be best to move away from pysimplegui to keep avatar accessible to everyone https://news.ycombinator.com/item?id=39369353

https://github.com/3C-SCSU/Avatar/pull/121


I am randomly getting “ScriptTimeoutError” using protractor from last 5-6 days

My test suite contains more than 200 test cases and often I get ScriptTimeoutError for few test cases. This error is random and is not specific to a particulat test cases.
Please Note: allScriptsTimeout: 120000, is set in conf.js file
protractor version = 5.1.2
Please see the error log

  Failed: Timed out waiting for asynchronous Angular tasks to finish after 120 seconds. This may be because the current page is not an Angular application. Please see the FAQ for more details: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular
    While waiting for element with locator - Locator: by.cssContainingText(".ng-binding", "My example").
    The following tasks were pending:
     - $http: https://api.example.com/api/exampleionUsers
  Stack:
    ScriptTimeoutError: asynchronous script timeout: result was not received in 120 seconds
      (Session info: chrome=59.0.3071.86)
      (Driver info: chromedriver=2.29.461591 (62ebf098771772160f391d75e589dc567915b233),platform=Windows NT 10.0.14393 x86_64) (WARNING: The server did not provide any stacktrace information)
    Command duration or timeout: 120.07 seconds
    Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
    System info: host: 'LAPTOP-RNQ2JQBE', ip: '<IP_ADDRESS>', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_121'
    Driver info: org.openqa.selenium.chrome.ChromeDriver
    Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.29.461591 (62ebf098771772160f391d75e589dc567915b233), userDataDir=C:\Users\NEXTGEN\AppData\Local\Temp\scoped_dir15404_10872}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=59.0.3071.86, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=}]

Hi there!
Unfortunately timeouts like this are not uncommon with selenium based integration tests. This could be a problem with your application or with your CI setup or any number of things. If you believe there is an issue with Protractor, please isolate the problem and file another issue.
If you are looking for general help, please ask a question on StackOverflow or Gitter: ask a question there with the 'protractor' tag or post in the Gitter Channel to get help.
From the the getting help section of the README:

Please ask usage and debugging questions on StackOverflow (use the "protractor" tag) or in the Angular discussion group. (Please do not ask support questions here on Github.)

Thanks!


[Construction] Bug in responsiveness

The application isn't responsive in mobile mode. The navbar and main content window overlaps and the container doesn't even shrink to make it readable

Yeah, Need to work on the mobile version too.

Yeah! That is always the best practice


IPython console stuck restarting kernel when using different interpreter

Issue Report Checklist

[X] Searched the issues page for similar reports
[X] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[X] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[ ] Could not reproduce inside jupyter qtconsole (if console-related)
[X] Tried basic troubleshooting (if a bug/error)

[X] Restarted Spyder
[X] Reset preferences with spyder --reset
[ ] Reinstalled the latest version of Anaconda
[X] Tried the other applicable steps from the Troubleshooting Guide

[X] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
IPython console is stuck 'Restarting kernel' when using interpreter of python environment separate to Spyder default installation.
What steps reproduce the problem?

Install Spyder from standalone Windows executable
Create new conda environment spydertest and install latest spyder-kernels in this environment
In Spyder, select 'Preferences -> Use following Python interpreter' and then point to this dummy environment, i.e.
...Miniconda3/envs/spydertest/python.exe

What is the expected output? What do you see instead?
Using default interpreter, the IPython Console starts up and can execute code as normal.
Using the alternative python interpreter, in a separate conda environment, console doesn't initialize and is stuck at Restarting kernel ...

 Looking at the PYTHONPATH manager it seems to be completely empty by default, so nothing to unselect.

Ok, no problem. What commands did you use to do this?

Create new conda environment spydertest and install latest spyder-kernels in this environment

I created the environment using the following command
conda create -n spydertest conda spyder-kernels

I see. Perhaps that command installed an old Spyder-kernels version that it's not compatible with our 5.4.2 version.
Please try then
conda create -n test-1 -c conda-forge spyder-kernels

That will give you the latest Spyder-kernels version in a new environment and should solve your problem.

Hi, thanks. Sadly, that still doesn't work for me. Kernel is still stuck restarting when pointing to the newly created environment.
In either environment, the spyder-kernels version installed is the same 2.4.2
with conda-forge
spyder-kernels            2.4.2           win_pyhd8ed1ab_0    conda-forge
with conda
spyder-kernels            2.4.2           py310haa95532_0

Ok, then please open the Anaconda Prompt, run
conda activate test-1
python -m spyder_kernels.console

and post the text printed in the console after that.

(test-1) PS C:\Users\[]> python -m spyder_kernels.console
0.02s - Debugger warning: It seems that frozen modules are being used, which may
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off
0.00s - to python to disable frozen modules.
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.
NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.
To exit, you will have to explicitly quit this process, by either sending
"quit" from a client, or using Ctrl-\ in UNIX-like environments.

To read more about this, see https://github.com/ipython/ipython/issues/2049

To connect another client to this kernel, use:
    --existing kernel-27932.json

To connect another client to this kernel, use:
--existing kernel-27932.json

Interestingly, I can connect to this kernel using 'Connect to existing kernel' function in the IDE.

Ok, thanks for the extra testing @aberrington.
Now, please open the following file
 ...Miniconda3/envs/test-1/lib/site-packages/spyder_kernels/console/start.py

and add the following at the beginning of its main function (i.e. around line 279):
os.environ['PYDEVD_DISABLE_FILE_VALIDATION'] = 1

and try to start a new console in Spyder. That (hopefully) should fix your problem.

Thanks @ccordoba12. I had to write the integer in that command as string variable otherwise there was an error.
At line 280 of ../Miniconda3/envs/test-1/lib/site-packages/spyder_kernels/console/start.py, I put:
def main():
     # Remove this module's path from sys.path:
     os.environ['PYDEVD_DISABLE_FILE_VALIDATION'] = '1'

IPython Console is still caught in a restart kernel loop when using test-1 interpreter - ...\Miniconda3\envs\test-1\python.exe

Output now from following command:
conda activate test-1
python -m spyder_kernels.console

is
(test-1) PS C:\...> python -m spyder_kernels.console
NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.

To exit, you will have to explicitly quit this process, by either sending
"quit" from a client, or using Ctrl-\ in UNIX-like environments.

To read more about this, see https://github.com/ipython/ipython/issues/2049

To connect another client to this kernel, use:
    --existing kernel-24092.json

Ok, thanks for your continued help and patience @aberrington. Let's try something else.
Please open the Anaconda Prompt, run there the following commands:
conda activate test-1
conda install pyzmq=24

and try again.

Sorry, @ccordoba12. It still doesn't work even with the downgraded pyzmq package.
pyzmq                              25.0.1-py311h7b3f143_0 --> 24.0.1-py311h7b3f143_1

Ok, no problem. This still baffles me, but given that my proposed solutions didn't work, let's go with proper debugging.
For that, please go to this entry in the File menu:

and select Verbose:

After Spyder restarts, go to the Tools > Debug logs menu

open the first file and upload it here.

Yes - it is quite strange and frustrating behaviour!
Now, when I restart Spyder using those instructions, the 'Restarting...' window appears briefly and then disappears but Spyder doesn't start.

It doesn't start even when restarting normally using File -> Restart.

@aberrington to launch the standalone installer application in debug mode you should run from a cmd something like:
"<installer root directory path location>\Spyder\Python\python.exe" "<installer root directory path location>\Spyder\Spyder.launch.pyw" --debug-info verbose

Checked and the restart functionality is not working with the standalone installer

Thanks @aberrington. Now, please open the Anaconda Prompt and run there the following command there:
C:\Users\bbzapb\AppData\Local\Programs\Spyder\pkgs\spyder\plugins\ipythonconsole\scripts\conda-activate.bat C:/Users/bbzapb/AppData/Local/Programs/Spyder/pkgs/spyder/bin/micromamba.exe C:/Users/bbzapb/AppData/Local/miniconda3/envs/test-1 C:\Users\bbzapb\AppData\Local\miniconda3\envs\test-1\python.exe C:\Users\bbzapb\AppData\Roaming\jupyter\runtime\kernel-f44176ec4f40.json

and post its output here.

Hi @ccordoba12. When I run that command, there is no output at all.
I am wondering if it is something to do with my system administrator, not allowing .bat files to be executed perhaps.

@ccordoba12
I have been looking into this .bat issue on my system. It seems something may have been corrupted at some point in my Windows registry when uninstalling/installing Anaconda versions which introduced an 'AutoRun' entry to the command processor. This meant that I was unable to run cmd.exe without AutoRun and causing issues running .bat files.
I followed the steps outlined in the answer here:
https://stackoverflow.com/questions/66335300/cmd-crashes-with-exit-code-1-after-uninstalling-anaconda/66836989#66836989?newreg=d1a0080e93834699a82850420bf1672d
C:\Windows\System32\reg.exe DELETE "HKCU\Software\Microsoft\Command Processor" /v AutoRun /f
Essentially, deleted that registry entry for the Command Processor and now I am able to connect to a different interpreter no problem!
This has now appeared to have fixed my Spyder issue with kernel restarting when using different interpreter.
Thanks again for all your help and patience with this.

Great! I'm really glad you were finally able to solve your problem.
Closing this issue then.


Radio doesn't start or randomly stops while playing

As the title says. The bot will either join without playing or randomly stop while playing.

Fixed in 6f14432.


tags parsing includes ',' when determining size of tags in packet

I was using OscCore to send Vector3s; position and rotation. The values seemed to be sent correctly. However, the received x value was always 0. The received Y was the sent X. Z was Y.
What corrected it for me was changing the byte alignment of the tags parsing. ',fff' was being treated as 3 bytes when it was really 4. The ',' wasn't being counted. Working with the tag size, instead of the count, corrected how the Vector3s were received.

Hey thanks!  sorry i put this project down after covid hit, i lost the motivation to work on it.

No worries. Thanks for merging this in!


Add @Generated annotation to Builders

Currently we only add @Generated annotation to clients in issue https://github.com/Azure/autorest.java/issues/1099. But we builders are also customer faced, we need to add @Generated annotation to builders as well, so that when handling partial update, we can handle for builder classes. n handling partial update, we can handle for builder classes.

supported via https://github.com/Azure/autorest.java/pull/1292


Simplify if checks syntax

As there is only one line of code executed inside of each if statement, the syntax can be vastly simplified.
For instance,
if (someBoolean) {
    someFunction()
}

could be simplified to
if (someBoolean) someFunction()

In this case, after using console.time and running the function 1 million times, here are the results:

Current
Simplified

~9.875ms
~9.319ms

Thanks but I'm going to pass. This project was simplified enough by your comment.


Policy: Approve PRs before merging?

@jpsc I think it would be good to have someone - who has experience with a newly proposed guideline - check and approve the guideline before merging. For the voorhoede/riotjs-style-guide we have an "approved" label which reviewers (assignees) can add. @thadeetrompetter introduced that one, not sure how :)

Sounds good @jbmoelker.


🐛 Quickly clicking two unexpanded wellbores can cause logs data to not be retrieved correctly, causing a crash

:bug: Describe the bug
Sometimes, when quickly clicking on two wellbores where data has not yet been retrieved, can cause log data to not be retrieved correctly. When expanding the logs of one of the wellbores, if there is no log data, the application will crash due to a null-reference
To Reproduce
Steps to reproduce the behavior:

Find a well with two wellbores.
Click on both wellbores in the sidebar in quick succession.
Open logs.
Sometimes the application crashes

Expected behavior
Log data is retrieved correctly and there is no crash.
Screenshots

Desktop (please complete the following information):

OS: Windows
Browser: Chrome
Version 89.0.4389.90 (Official Build) (64-bit)

Can we still reproduce this, or is it maybe solved ?


[CxxInterop] Fix static-var-irgen test for arm/ios

This PR fixes the build failures reported at https://github.com/apple/swift/pull/31362 (https://ci.swift.org/job/oss-swift_tools-RA_stdlib-DA_test-device-non_executable/70/consoleText).

@swift-ci Please smoke test

@swift-ci Please test

Build failed
Swift Test Linux Platform
Git Sha - 01bf1f3f64fd36fcf65ae656637be617242a3701

Build failed
Swift Test OS X Platform
Git Sha - 01bf1f3f64fd36fcf65ae656637be617242a3701

@swift-ci Please test Windows

@swift-ci Please test

Build failed
Swift Test OS X Platform
Git Sha - 93b92b41921c854ec12ebbbd238da5849a6a34e5

Let's try a clean test. This is odd
@swift-ci clean test

The OSX file include error is just a spurious CI bug. Just ignore those. It looks like the linux build is almost done then you can merge!


/register will almost always get overwhelmed, and will probably crash

Since uvcorn has no default concurrency limit and since the business flow is designed such that all users will hit /registerat roughly the same time, this is a classic thundering herd problem. uvcorn will accept too many requests and will: slow down, consume lots of memory, increase GC overhead and will have increased latency, at which point users will retry in a loop. This will continue until either uvcorn dies, users give up or all users are registered  - which may take a long time, much longer then if handled serially (due to retry loops).
Suggested solution:

Limit uvcorn concurrency according to DB connection pool capacity, memory and CPU capacity
Change the business flow such that users are not selected based on temporal order but rather on random selection. If this seems "unfair" to you, notice that users are already randomly selected based on their retry loop and the (random) load status of the server. The new flow will be:

User fills the form (form will not be displayed or will be locked when room is closed)
User submits the form immediately, server assigned a random waiting_position (which can be uuid, doesn't have to be a number)
After waiting room is closed, /room.registrants lists users ordered by waiting_position

Removing the coordinated time based enabled of the register button will remove the initial thundering herd and subsequent retry loop. Load will be "smeared" on the entire waiting room activity period and this is also conceptually more "fair" to users who do not have to spend time clicking "register" again and again

Re:

Limit uvcorn concurrency

Excellent suggestion, will probably do that before the next event.
Re:

Change the business flow such that users are not selected based on temporal order but rather on random selection.

There are legal implications that I am not willing to undertake by randomizing the participant. look for out-of-band disscussions on this.


Primary key mark isn't showing

Primary key marks aren't showing in result tab, I have to see the table's properties to know what is. Two or three versiones ago the header was showing a light bulb, I guess.
It's happening with SQL Server and Oracle connections with a simple and single query.
Thank you for your work!

In fact currently this is supported only for MySQL. Because MySQL server provides this information out of the box.
I'll mark this as FR. Perhaps we'll add this bulb for SQL Server identity columns in near version.

It would be a very useful feature
Thanks for your reply Serge!


f-droid

Have you considered adding the application to the f-droid.org repository?

For others ending up here, the api key issue is now resolved and the source can be built without manually editing any files now. Dependencies on closed libraries is still an issue though. I'm closing this because I don't see such a version will be maintained by me anytime soon I'm afraid.


Weather/temperature stopped showing up.

As of yday, the temperature and wind has stopped working and isn't showing any data. Can anyone else confirm if they have this issue? I have solar only.

I'm seeing the same thing today.
I just restarted the computer I run Powerwall-Dashboard on. I'm seeing data in the other areas, but nothing in Temperature, Humidity and Clouds or Wind, Pressure and Precipitation

I'm seeing the same thing today.
I just restarted the computer I run Powerwall-Dashboard on. I'm seeing data in the other areas, but nothing in Temperature, Humidity and Clouds or Wind, Pressure and Precipitation
It looks like they've moved from API 2.5 to 3.0.
https://docs.openweather.co.uk/api/one-call-3
So this setup will have to do the same.

Hi @Jot18 & @YesThatAllen
For myself, everything still appears to be working as normal.

It looks like they've moved from API 2.5 to 3.0.

OpenWeather have not moved to the OneCall 3.0 API for the free calls to get current weather, from what I can tell.
The 3.0 API has been around a while and is their paid subscription plan that gives you additional information (e.g. historical weather data + granular forecast weather data down to per minute etc.)
The 3.0 API should not be required for the weather411 service to work. The current OpenWeather API documentation is still showing the 2.5 API call to get current weather data for free accounts.
Can you test the below by browsing directly to this link (replace "your_api_key" with your own API Key) and see if it is working?
https://api.openweathermap.org/data/2.5/weather?lat=-33.868&lon=151.207&units=metric&appid=your_api_key
You should get a response similar to below:
{"coord":{"lon":151.2068,"lat":-33.8715},"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01d"}],"base":"stations","main":{"temp":20.34,"feels_like":19.71,"temp_min":18.6,"temp_max":23.12,"pressure":1017,"humidity":49},"visibility":10000,"wind":{"speed":6.17,"deg":170},"clouds":{"all":0},"dt":1684214913,"sys":{"type":2,"id":111111,"country":"AU","sunrise":1684183231,"sunset":1684220563},"timezone":36000,"id":1111111,"name":"Sydney","cod":200}

I have just signed up with another free account to test this myself, however need to wait a few hours before active.
It is possible my current account is still working (for both 2.5 and 3.0 calls) as I have a paid OneCall 3.0 API subscription, which I use with the weather-history tool to get historical weather data (I use the same API key for both 2.5 & 3.0 calls).
I wonder if OpenWeather could have possibly broken something for free accounts. I received an e-mail from them about upcoming new features they will be adding (snippet below), so it is possible I suppose if they are making changes.

Hello, it’s OpenWeather!
We are pleased to inform you that the new feature will be released soon in One Call API 3.0 and will be available for all product users by default.
We will add the proper human-readable text description of the daily forecast, for example, “The day will start with rain through the late morning hours, transitioning to partly cloudy”.

Update: I just re-tested this with a newly created free account and calls to the 2.5 API are working correctly. This is the API call used by the weather411 service, e.g.:
https://api.openweathermap.org/data/2.5/weather?lat=-33.868&lon=151.207&units=metric&appid=your_api_key
If it is not working for you, perhaps try generating a new API key for your account at the link below?
https://home.openweathermap.org/api_keys
After waiting a couple of hours for it to become active, re-test above and if it is working, then edit the weather411.conf file and replace APIKEY with the new one.
Finally, restart the weather411 docker container and hopefully you should see weather data again? (you may need to wait 10mins or so)
# Restart weather411
docker restart weather411

Other items to try - you could turn on debug output of weather411 and check the logs.
Edit weather411.conf and set DEBUG = yes, then:
# Restart weather411
docker restart weather411

# View weather411 log output
docker logs -f weather411

The debug output should show the calls to the OpenWeather API and writes to InfluxDB if working correctly (and perhaps some clues as to what is wrong if not working correctly).
DEBUG:https://api.openweathermap.org:443 "GET /data/2.5/weather?lat=xxxx&lon=xxxxx&units=metric&appid=xxxxxxx HTTP/1.1" 200 511
DEBUG:Weather data loaded
DEBUG:Writing to InfluxDB

In my case, my weather/weather411.conf file had what looked to be a typo...
# Enter your location in latitude and longitude
LAT = 30.1234567
LON = -91.1234567,15

probably something from when I copied the info from google maps.
I fixed that by removing the ,15 and used upgrade.sh to get to the recently released 2.9.8… et voilà!..
weather is showing again.

Update: I just re-tested this with a newly created free account and calls to the 2.5 API are working correctly. This is the API call used by the weather411 service, e.g.:
https://api.openweathermap.org/data/2.5/weather?lat=-33.868&lon=151.207&units=metric&appid=your_api_key
If it is not working for you, perhaps try generating a new API key for your account at the link below?
https://home.openweathermap.org/api_keys
After waiting a couple of hours for it to become active, re-test above and if it is working, then edit the weather411.conf file and replace APIKEY with the new one.
Finally, restart the weather411 docker container and hopefully you should see weather data again? (you may need to wait 10mins or so)
# Restart weather411
docker restart weather411

Other items to try - you could turn on debug output of weather411 and check the logs.
Edit weather411.conf and set DEBUG = yes, then:
# Restart weather411
docker restart weather411

# View weather411 log output
docker logs -f weather411

The debug output should show the calls to the OpenWeather API and writes to InfluxDB if working correctly (and perhaps some clues as to what is wrong if not working correctly).
DEBUG:https://api.openweathermap.org:443 "GET /data/2.5/weather?lat=xxxx&lon=xxxxx&units=metric&appid=xxxxxxx HTTP/1.1" 200 511
DEBUG:Weather data loaded
DEBUG:Writing to InfluxDB

-Docker restart weather411 did the trick. It's updating now. Didn't change anything else. :)

-Docker restart weather411 did the trick. It's updating now. Didn't change anything else. :)

Good to hear @Jot18 - it must have gotten into a bad state or something? Very strange.
I wonder if the logs showed anything?
# View weather411 logs
docker logs -f weather411

-Docker restart weather411 did the trick. It's updating now. Didn't change anything else. :)

Good to hear @Jot18 - it must have gotten into a bad state or something? Very strange.
I wonder if the logs showed anything?
# View weather411 logs
docker logs -f weather411

I tried to find errors but couldn't really see anything wrong....If it happens again, I'll check again.


Event metadata is missing in _input() when events are passed through Input.parse_input_event()

Tested versions
v4.3.rc2.official [3978628c6]
System information
Ubuntu 20.04 LTS
Issue description
See title.
Steps to reproduce
Create a node, attach the following script, and run
func _ready():
  var test = InputEventMouseButton.new()
  test.set_meta("test", 123)
  Input.parse_input_event(test)

func _input(event: InputEvent):
  if event is InputEventMouseButton:
    print(event.get_meta("test", "(nothing)"))

Output:
(nothing)

Note
This occurs due to the event being cloned with xformed_by() (like here and here), but xformed_by() does not copy the metadata.
Some overrides of xformed_by copy the pointer (this is technically a bug, since it looks like callers expect a new instance), while others do a copy but forget to copy the metadata, like InputEventMouseButton::xformed_by
Minimal reproduction project (MRP)
N/A

Hi! I'm currently working on fixing this issue and have made some progress. However, I'm a bit confused by the note regarding xformed_by() not copying the metadata. I’ve looked into InputEventMouseButton::xformed_by() and added the necessary metadata copying, but I'm unsure of how I can continue or where else I should focus my attention to fully resolve the problem.
Should I be focusing specifically on ensuring metadata is preserved across all event types, or is there a particular part of Input.parse_input_event() that might need further investigation?

Should I be focusing specifically on ensuring metadata is preserved across all event types

This issue occurs with every input event, not just InputEventMouseButton.
So I believe if every override of xformed_by copies the metadata, then this bug is fixed.
I suggest to add a public method to Object or a protected method in InputEvent, and call that method in xformed_by, to avoid redundant code.  Though I'm not a maintainer and there could be other opinions.
Additionally, and not exactly this bug, I think every override of xformed_by should be reviewed.  I suspect that callers expect a copy of the input event, and some of the implementations ref-count the pointer instead.

I've applied metadata copying to all xformed_by() overrides in InputEvent, but I have a couple of questions for clarification:
For overrides like InputEvent::xformed_by() that currently copy the pointer:
Should these be creating new instances of the input event with transformations applied? Or is there a specific reason they return the same pointer? What would be the correct approach here?
For InputEvent functions that don’t have an xformed_by() override:
Should these functions also involve metadata copying, or are they unrelated to the transformations being handled by xformed_by()?
Apologies for the questions, this is my first issue and I want to make sure that I don't mess up.

For overrides like InputEvent::xformed_by() that currently copy the pointer:
Should these be creating new instances of the input event with transformations applied? Or is there a specific reason they return the same pointer? What would be the correct approach here?

I think they should do a copy, and not ref count the pointer.  Changing this will change existing behavior, for better or worse.  I don't know the right call here.  We may need a maintainer to chime in.

For InputEvent functions that don’t have an xformed_by() override:
Should these functions also involve metadata copying, or are they unrelated to the transformations being handled by xformed_by()

I think they should be; it would have to be added to InputEvent::xformed_by

@Yelloween10

Hi! I'm currently working on fixing this issue and have made some progress. However, I'm a bit confused by the note regarding xformed_by() not copying the metadata. I’ve looked into InputEventMouseButton::xformed_by() and added the necessary metadata copying, but I'm unsure of how I can continue or where else I should focus my attention to fully resolve the problem.

Thank you for putting effort into this!
Every InputEvent***::xformed_by function, that instantiates a new input event, needs to be adjusted, so that it copies the metadata to the new object.

Should I be focusing specifically on ensuring metadata is preserved across all event types, or is there a particular part of Input.parse_input_event() that might need further investigation?

In Input::_parse_input_event_impl there are 4 places regarding mouse<->touch event emulation. These 4 instances should also contain code, that preserves the meta-data.

For overrides like InputEvent::xformed_by() that currently copy the pointer:
Should these be creating new instances of the input event with transformations applied? Or is there a specific reason they return the same pointer? What would be the correct approach here?

I believe it is fine, that they don't create a new instance. It is simply faster, than creating a new instance and simply copy everything without changing anything.

For InputEvent functions that don’t have an xformed_by() override:
Should these functions also involve metadata copying, or are they unrelated to the transformations being handled by xformed_by()?

Some input event types don't have an xformed_by override, so they use InputEvent::xformed_by. Since that function returns a pointer to the original object, no adjustments are necessary, because it already contains the metadata.

Thanks for the clarification! I'll start working on it when I'm available.

I'll continue working on this, I'm interested and I was just waiting for clarification.


PowerToys Run Network folders when disconnected from LAN

ℹ Computer information

PowerToys version: v.0.27.0
PowerToy Utility: PowerToys Run
Running PowerToys as Admin: yes
Windows build number: Build 19041.630

📝 Provide detailed reproduction steps (if any)

Be disconnected of the network (In my case, I was logged off of the VPN)
run PowerToys Run
type a network location: For example \\Computer15

✔ Expected result
What is the expected result of the above steps?
Open the file explorer and get the error that the network location was not found
❌ Actual result
What is the actual result of the above steps?
Get a crash message of PowerToys Run with the following log:
Version: <IP_ADDRESS>
OS Version: Microsoft Windows NT 10.0.19041.0
IntPtr Length: 8
x64: True
Date: 12/4/2020 3:58:01 PM
Exception:
System.ComponentModel.Win32Exception (2): The system cannot find the file specified.
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at Microsoft.Plugin.Uri.Main.<>c__DisplayClass23_0.b__0(ActionContext action)
at PowerLauncher.ViewModel.MainViewModel.<>c__DisplayClass23_0.b__0()
at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority, CancellationToken cancellationToken, TimeSpan timeout)
at System.Windows.Threading.Dispatcher.Invoke(Action callback)
at PowerLauncher.ViewModel.MainViewModel.OpenResultsEvent(Object index, Boolean isMouseClick)
at PowerLauncher.ViewModel.MainViewModel.b__24_12(Object index)
at PowerLauncher.ViewModel.RelayCommand.Execute(Object parameter)
at System.Windows.Input.CommandManager.TranslateInput(IInputElement targetElement, InputEventArgs inputEventArgs)
at System.Windows.UIElement.OnKeyDownThunk(Object sender, KeyEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(MSG& msg, Boolean& handled)
at System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(MSG& msg, ModifierKeys modifiers)
at System.Windows.Interop.HwndSource.OnPreprocessMessage(Object param)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
EXTRA
If I connect to the vpn and run the command, and then I disconnect from the VPN and run the command again, I get the error of network not found in the file explorer. In other words, it fails only when you have never accesed the network folder before.
📷 Screenshots
Are there any useful screenshots? WinKey+Shift+S and then just paste them directly into the form

Agree. This problem also occurred when I tried to access a wrong LAN address.

I think that this exception could be handled simply by a MessageBox().

Same as https://github.com/microsoft/PowerToys/issues/8364
Closing as duplicate.


autoStart doesn't seem to do anything

I want to open the scanner but not automatically start scanning, so I set autoStart to false, but it seems to do nothing until I look into the code and autoStart isn't used anywhere

What version of mobile_scanner are you using?
It is used here https://github.com/juliansteenbakker/mobile_scanner/blob/02e4c66eb645ccfd8072cfcf12f66d3274e1f569/lib/src/mobile_scanner.dart#L260

i'm using 5.2.3
oh i see.. i think i misunderstood the autoStart means, didn't check mobile_scanner.dart part
while we're here, is there a way to pause detection without turning camera off?

You can pause the stream subscription for the barcode stream.

thanks that helps a lot. I do have another question but, i think i'll open another issue


fix(stylekit): apply CSS vars to root selector

Best practice: Apply CSS vars to root selector to decrease specificity.

@FredLL-Avaiga I understand your point, but using CSS variables allows motivated users to do redefine them, whether you want it or not, by scoping a descendant selector like body. This :root selector practice works just as well, but avoids creating frustration.

You're right I don't think we should fight users :-) or windmills !
But we should promote the use of stylekit_variables as a way of modifying those css vars.
From your change, I understood that it allows easier overriding of these and thus easier inconsistency between pure CSS and MUI Theme ?

@FredLL-Avaiga In that I agree with you, we don't have to promote this. My initial argument was kinda wrong.
But I still think it's good to apply this change as a best practice to let the door open.


chore: release main

:robot: I have created a release beep boop
devcontainer: 1.5.2
1.5.2 (2024-11-17)
Bug Fixes

🐛 test devcontainer release (#259) (6f48aa2)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

devcontainer-v1.5.2
:sunflower:


create  sponsors list screen without design

Idea Description
create  sponsors list screen without design
issue devided apply design
Reference images and links
coming soon

🙋♂

Thanks! Assigned 👍

May I ask a question?
Do you mean implementing UI logic such as ViewModel other than UI in Compose?

👀

I mistakenly thought it had a welcome-contribute tag 🙇
I don't know what the problem is, but I would like to try!

I'm just trying this Issue, and let me ask you a question 🙇
What is the scope of what I need to create in this Issue?

create feature-sponsor module
definite navigation
think design myself and create screen with Compose(I think this is out of scope.)
add ViewModel, Repository, and so on with logic for display in Screen
fetch sponsors from specific endpoint and map to model from response model.
testing

Is the scope of this Issue all except 3? (Some may not be listed.)
If so, is there API documentation on what kind of Response is returned? 👀

@ho2ri2s
Thank you for creating your breakdown of the issue.
Currently, we are creating the API. (by @RyuNen344 )
I think the response will be like this.
[
  {
    "id": "xxxxx"
    "sponsor_name": "DroidKaigi",
    "sponsor_logo": "https://hoge.png/",
    "plan": "GOLD",
    "link": "https://company.com/"
  },
...
]

Is the scope of this Issue all except 3?

Yes, but it doesn't need to make a perfect screen. I think we can improve it.

If you have any questions let me know 🙏

I will try to implementation by dividing PR.
Thank you for your answer 🚀

@ho2ri2s
sorry for late
you can check it at https://ssot-api-staging.an.r.appspot.com/events/droidkaigi2022/sponsor
"status": "OK",
"sponsor": [
  {
    "sponsorName": "DroidKaigi",
    "sponsorLogo": "https://hoge.png/",
    "plan": "GOLD", // PLATINUM, GOLD, SUPPORTER
    "link": "https://company.com/"
  },
]

If you have any questions let me know 🙏


Does router.param always respect ordering?

I have a situation wherein I have two parameters, and loading the second parameter value sometimes requires using the result of the first parameter.
Are params guaranteed to be executed in the order they were added?

@richthegeek If we call it sequentially, then yes
router
  .param('user', async (paramVal, ctx,  next) => {
    ctx.test = paramVal
    await next();
  })
  .param('moser', async (paramVal, ctx,  next) => {
    console.log(ctx.test);
    // ctx.test = paramVal
    await next();
  })
  .get('/users/:user/:moser', (ctx, next) => {
    ctx.status = 200;
  });


Conflicts with other loaders

Because of the automatically registered "file" specifier, this conflicts with any defined loaders that also use file.
For example following esbuild options:
{
    plugins: [...denoPlugins()],
    entryPoints: entryPoints,
    ...
    loader: {
      ".graphql": "file",
    },
  }

If i now import a graphql file like this:
import query from "./query.graphql";

The deno-loader plugin throws the following error:
 The module's source code could not be parsed: Expected ',', got ':'
 ~ [plugin deno-loader]

The plugin should not handle all file namespaces as TypeScript/JavaScript files.

I agree with your assessment. I was able to wrap the default loaders like text and dataurl to lock files to a new namespace and ordering the plugin before esbuild_deno_loader's plugins like:
const dataURILoader: esbuild.Plugin = {
  name: 'DataURILoader',
  setup(build) {
    build.onResolve({ filter: /\.svg$/ }, (args) => ({
      path: path.join(args.resolveDir, args.path),
      namespace: textLoader.name,
    }))

    build.onLoad(
      { filter: /\.svg$/, namespace: textLoader.name },
      async (args) => ({
        contents: await Deno.readTextFile(args.path),
        loader: 'dataurl',
      }),
    )
  },
}

const opts: esbuild.BuildOptions = {
  ...
  plugins: [
    dataURILoader,
    ...denoPlugins() as unknown as esbuild.Plugin[],
  ],
  ...
}

It's very clumsy but fortunately isolated to my build script.
The bigger issue to me is https://github.com/denoland/deno/issues/15132 which has nothing to do with esbuild.


[zk-sdk] Create zk-sdk crate

Problem
There are a number of breaking changes that must be made to the solana-zk-token-sdk (https://github.com/anza-xyz/agave/issues/671) that break downstream (essentially just spl). To lift the CI spl downstream check, we need to wait until we have a v2.0 release. However, confidential transfers in the token extensions is high priority and it would be really great if we can include these changes as part of the v2.0 release. Furthermore, the necessary changes we would need includes renaming solana-zk-token-sdk to solana-zk-sdk. It would actually make things a lot simpler if we publish a new solana-zk-sdk, migrate the logic from solana-zk-token-sdk to it, and then deprecate solana-zk-token-sdk in the future.
Summary of Changes
Create the zk-sdk crate. I don't have anything in the crate yet. Each submodules from the zk-token-sdk will be moved into the new crate incrementally.
Fixes #

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

Project coverage is 81.9%. Comparing base (f133697) to head (12140b4).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #988   +/-   ##
=======================================
  Coverage    81.9%    81.9%
=======================================
  Files         855      856    +1
  Lines      232134   232135    +1
=======================================
+ Hits       190134   190150   +16
+ Misses      42000    41985   -15


Unclear model maps + redefined models in sub_circuit_identification

There are a few separate but related issues here:

There is no mapping from the Transistor (M*) device types represented in basic_element.sp to default devices in SPICE. We should either refactor basic_elements.sp to refer exclusively to NMOS & PMOS for M* devices... Or we should add appropriate .model statements so that the mapping is clear. I elected to take the second route in Circuit/tests/basic_template.sp as shown below.

.model NMOS_VTL NMOS
.model PMOS_VTL PMOS
.model nmos_rvt NMOS
.model pmos_rvt PMOS
.model nch NMOS l=60N m=1 w=1u
.model pch NMOS l=60N m=1 w=1u

We should not be overriding default SPICE types as it results in significant confusion. For example, we are overriding Res & Cap with subcircuit definitions in basic_element.sp. This makes it very confusing as to whether future Res / Cap instantiations should start with X* or R* / C*. For the new Spice Parser in Circuit, I am simply throwing an assertion if the user attempts to redefine something that's already in the library. I have commented out the lines of concern in Circuit/tests/basic_template.sp.

** You may not redeclare an existing library element
; .subckt Cap PLUS MINUS
; CC1 PLUS MINUS 60f
; .ends Cap

** You may not redeclare an existing library element
; .subckt Res PLUS MINUS
; RR1 PLUS MINUS 10k
; .ends Res

Number of terminals is often ambiguous. We cannot be using 2 terminal devices to be creating 3 terminal ones. I have circumvented the issue by creating empty subcircuit definitions in Circuit/tests/basic_template.sp as shown below.

** CANNOT USE 2 TERMINAL CAP TO CREATE 3 TERMINAL CAP
; .subckt Cap_b PLUS MINUS BULK
; CC1 PLUS MINUS BULK cap cap=60f
; .ends Cap_b
.subckt Cap_b PLUS MINUS BULK
.param cap=60f
.ends Cap_b

.subckt spiral_ind PLUS MINUS BULK CTAP
.param w=9u
** DEFAULT INDUCTOR IS 2 TERMINAL NOT 4.
** SUBCKT SHOULD STAND ON ITS OWN
; L0 PLUS MINUS BULK CTAP spiral_sym_ct_mu_z w=9u
.ends spiral_ind

Summary:
I have made proposed fixes in basic_template.sp in Circuit/tests/basic_template.sp but this is not yet being used by sub_circuit_identification. Please let me know if there is a good reason for the redefinitions / lack of .model mapping from a system-level perspective. I believe it was mainly to construct a list of supported primitives but we should be able to create default spice devices anyway as I highlighted in #221.

The initial idea behind the redefinition of primitives (nmos/cap/res) in basic_template.sp is to make the netlist annotation technology independent. Each technology or PDK library has its own way of defining these primitives, E.g.,
For example, multiple ways of the declaration of a current mirror.
Declaration type 1:
M0 (DA DA S 0) NMOS_VTL w=w l=90n
M1 (DB DA S 0) NMOS_VTL w=w l=90n
```bash
Declaration type 2:
```bash
xM0 DA DA S 0 nmos_rvt w=w l=90n
xM1 DB DA S 0 nmos_rvt w=w l=90n
```bash

The cells generated from cell generator are right now not the same as NMOS_VTL/nmos_rvt so a different name was assigned for them "Switch_NMOS" using this subckt mapping (similar with cap/res).
```bash
.subckt Switch_NMOS  D G S
M0 (D G S 0) NMOS_VTL w=w1 l=l1
.ends Switch_NMOS
```bash
Now both current mirror declaration types, as shown above, will be considered as a combination of two "Switch_NMOS" instead of "nmos_rvt/NMOS_VTL" whose device characteristics we don't know.
Here basic_template.sp is acting as a way to map any library to ALIGN.

The other option is to get these cell names from a cell library which we don't have access to now.

Think I am missing something here.
NMOS_VTL & nmos_rvt are both technology specific models of type "NMOS". So if we want to make basic_template.sp technology independent, we should be really talking in terms of the model type & not the technology-specific model (which our tool doesn't know anything about).
I think we do need a concept of an inbuilt cell-library (which should correspond to inbuilt spice types in Xyce) and define basic_template.sp in terms of that cell-library. So the current mirror declaration in basic_template.sp should look like:
M0 DA DA S 0 NMOS
M1 DB DA S 0 NMOS

Note that I even left out w & l values since basic_template.sp is really all about topologies to the best of my understanding.
Then when we want to deal with technology specific netlists... We can just add .MODEL statements (or .SUBCKT statements) that clarify what a given model corresponds to. So basically, let's suppose we have a technology specific current mirror as part of a bigger netlist... We need to add a .MODEL line to our netlist as follows:
.MODEL NMOS_VTL NMOS

M0 DA DA S 0 NMOS_VTL w=w l=90n
M1 DB DA S 0 NMOS_VTL w=w l=90n

I am assuming we want the topology to be identified across all technologies. Is there some technology-specificity in subcircuit identification that I am missing or does this look like it might work?
By the way... The .model example was for Declaration type 1. Declaration type 2 looks like nmos_rvt is a subcircuit not a transistor (instance name starts with X not M). Without knowing anything about the actual PDK, I would capture it as follows
.SUBCKT nmos_rvt D G S B
.PARAM w=180n l=90n
M0 D G S B NMOS w=w l=l
.ENDS

Yes, we can make an inbuilt cell-library like xyce as it can provide me standard. The subcircuits within basic template right now don't adhere to particular device models. My first thought of keeping it like this was if the user wants to add a new subckt inside basic_template/user_defined_template he can just copy-paste his ckt elements from his spice file. I don't care if they are named as NMOS/NMOS_VTL/NMOS_RVT/nmos_rvt, similarly values are also just placeholders in basic_template. Right now I am storing a map between device type defined in netlist and the mapped device type by parser and overite all values to the mapped device type.
But if the user wants to use the primitive layout generator the subcircuit name should match the available cell generator names. So .SUBCKT is used for mapping primitives to our library similar to MODEL line (we can switch to .MODEL type declaration for mapping res/cap/transistor). We can say I am using this basic_template for topology as well as mapping to cell generator. I think we can separate them as it provides more clarity.
I used a two-terminal device to map three-terminal device because the number of terminals in a transistor I have seen varying from 3-6.
3 terminal when it doesn't have a separate body terminal.
5 when it has an extra deep well connection

similarly caps can be 2-4 terminal devices. As a workaround, I map both of them to a two-terminal device and ask designers to connect rest terminals. Now when we are moving towards LVS clean we need to standardize these.
XM0 is also an NMOS declaration variation that I see in USC circuits so I use a mixed (use the first letter and device type) kind of parser to map these.

Right now I am storing a map between device type defined in netlist and the mapped device type by parser and overite all values to the mapped device type.

Storing as in manually specifying it within the code? Perhaps by doing a substring match? Feels like something the user should be doing explicitly.
And yes. Let's have a call for the number of pin issues. I am not quite sure how to tackle those as well. Alternatively, we could discuss some of this during our regular Tuesday meeting.

For each device in a netlist, I have a dictionary element that stores the mapped inst type (key "inst_type")  and device type in netlist (key "real_inst_type"). I create a bipartite graph of these dictionary elements. Tuesday is fine or we can discuss it on Monday before 3 Pm pacific time if it is blocking your work.

We can talk anytime between 1pm and 3pm.
I also provided some feedback on your active pull request that references the .model stuff at least. Getting that pull request merged quickly is high priority for me. The user input to sub_circuit_identification can come later.

Summarizing outcomes from our discussion below:

There should be a list of built-in layout templates corresponding to Xyce internal types
We will use .MODEL statements to map derived types to their base types
We have observed number of capacitor pins etc vary based on technology. Need additional investigation to see how we may best represent this.

In the short term, we have modified basic_templates.sp to use Xyce internal device types (NMOS, PMOS) and the parasitic extractor is using those exact same names. Better handling of model types is required in the long run so we are keeping this issue open.

We have merged the initial part of using specific models file.
For adding more terminal primitives we can modify the base models for specific PDKs.


consider libui for ui

On of design decisions for xi-editor is:

Native UI. Cross-platform UI toolkits never look and feel quite right. The best technology for building a UI is the native framework of the platform. On Mac, that’s Cocoa.

According to libui description, it is:

Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.

It also has rust bindings, so why not using libui?

I feel as though a native cross platform UI will be very challenging with respect to plugins. If a plugin developer wants to target any part of the UI the consistency across platforms will be hard to achieve. I haven't seen any talks of plugins which alter the UI outside of the core editing behavior but one has to assume it will be an eventual goal to be competitive with the other big editors.
I've never heard of libui but it may be a step in the right direction.

I've looked at libui, but am skeptical that it can provide the highest performance and level of polish. There's a strong tendency of cross-platform UI's to provide a lowest common denominator, often because it uses older versions of platform libraries. For example, on Windows is the text drawing based on GDI or DirectWrite? On Mac, does it provide access to Automatic Termination?
I think the way to pursue this is to try a libui front-end as a prototype, and compare it to the Cocoa one for quality and performance (I am considering the latter to be the standard). If it really holds its own, we could consider using it for the other platforms.
But my strong gut feeling is that fully native UIs will be considerably better.

For example, on Windows is the text drawing based on GDI or DirectWrite? On Mac, does it provide access to Automatic Termination?

DirectWrite, I guess Automatic Termination is not supported (there is shouldQuit API function), even though libui requires Mac OS X 10.8+, but I don't think it is a performance issue.

I don't think there's anything wrong with a libui front-end at all, even as a reference front-end, but I strongly disagree that we should have one single, central front-end at all. The architecture we have, with explicit and clean separation between the core and front-end implementations, is very important to facilitate the amount of flexibility and diversity of implementations a developer's editor should have.
An ecosystem of different front-ends and IDEs implementing xi and their own front-end as their built-in editor is very easy to imagine if we stick to the current architecture.


Update readme

Also, get rid of the old Clustal api code.

The clustal api version has its own branch now.

Done.


Update contributor

Summary

Concisely describe the issue and your solution:
Link to existing issue (type "#" to check):
Specify the tests done so far:

Solutions (Optional)
Please describe the details of your solution if it might be too complicated for reviewers.

Codecov Report

Merging #110 into release/1.5.0 will not change coverage.
The diff coverage is n/a.

@@               Coverage Diff                @@
##             release/1.5.0     #110   +/-   ##
================================================
  Coverage            44.98%   44.98%
  Complexity            1354     1354
================================================
  Files                  180      180
  Lines                 9916     9916
  Branches              1267     1267
================================================
  Hits                  4461     4461
  Misses                4951     4951
  Partials               504      504

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 d55b2d8...298c67c. Read the comment docs.


All root actions are disabled

Hello,
I have installed xrdp on Manjaro xfce. I can connect but all actions that require root are disabled.
For exemple, I can't start timesheeft or I can't update the system.
Timesheet require to fill the password as root to start it. It works fine on the machine but not via the rdp connection.
That is the same kind of issue if I want to add a new application. Normally, the Manjaro package manager ask for the password. From the rdp connection, it just says "authenfication failed".
How can I solve this issue ?
Thanks

You'll need to configure polkit to allow the root actions you require.
By default polkit does not confer privileges on remote sessions as you're not sitting at the console.
Have a look at #1584 - this should give you enough to get going with, as it's also Manjaro related.

Thanks for your answer.
I have not the same polkit log as in the issue 1584. I cannot enter the password for the following steps :
When starting Timeshift :
system-bus-name::1.53 is inquiring whether unix-process:1373:5606 is authorized for org.freedesktop.policykit.exec
Oct 25 22:20:00 djondu polkitd[536]:  user of caller is unix-user:root
Oct 25 22:20:00 djondu polkitd[536]:  user of subject is unix-user:christophe
Oct 25 22:20:00 djondu polkitd[536]: checking whether unix-process:1373:5606 is authorized for org.freedesktop.policykit.exec
Oct 25 22:20:00 djondu polkitd[536]:   (nil)
Oct 25 22:20:00 djondu polkitd[536]:  challenge (implicit_authorization = auth_admin)
Oct 25 22:20:00 djondu polkitd[536]:
When trying to remove an application from the package manager :
Oct 25 22:25:13 djondu polkitd[536]: system-bus-name::1.95 is inquiring whether system-bus-name::1.94 is authorized for org.manjaro.pamac.commit
Oct 25 22:25:13 djondu polkitd[536]:  user of caller is unix-user:root
Oct 25 22:25:13 djondu polkitd[536]:  user of subject is unix-user:christophe
Oct 25 22:25:13 djondu polkitd[536]: checking whether system-bus-name::1.94 is authorized for org.manjaro.pamac.commit
Oct 25 22:25:13 djondu polkitd[536]:   (nil)
Oct 25 22:25:13 djondu polkitd[536]:  challenge (implicit_authorization = auth_admin_keep)

Thanks for the log - that's useful.
The (nil) in the log suggests to me that this might be related to #1684 which is currently unresolved.
When you log in over xrdp, does loginctl show an entry for your session?

I have always this result even after an new login over xrdp
christophe@djondu ~]$ loginctl
SESSION  UID USER       SEAT  TTY
2 1000 christophe       pts/0
c1  969 lightdm    seat0
Thanks

I'd like to explore whether this is related to #1684
If you're running a simple home directory, could you edit /etc/pam.d/system-auth and comment out the calls to pam_systemd_home.so with a '#' symbol?
Let me know whether that improves the situation with polkit.
Thanks.

Hi @christophebe,
Did the suggested changes above help your situation?
Thanks.

Hello,
Sorry for the delay, I didn't get the time to check this. I will try to do it asap

No rush - it's just a loose end to tie up. Thanks.

You'll need to configure polkit to allow the root actions you require.
By default polkit does not confer privileges on remote sessions as you're not sitting at the console.
Have a look at #1584 - this should give you enough to get going with, as it's also Manjaro related.

If you want a working "Unlock" button in Polkit-aware applications but want to force the user to key the root password, for example to comply with UK government IT standards that say that the administrator account and user account must be separate, auth_admin will not work but auth_admin_keep will.  This is on Ubuntu 22.04 with XRDP.
root@workserver:~# cat /etc/polkit-1/localauthority/90-mandatory.d/99-xrdp.pkla
[xRDP All Actions Allowed]
Identity=unix-user:*
Action=*
ResultAny=auth_admin_keep
ResultInactive=auth_admin_keep
ResultActive=auth_admin_keep

无效,在debian11中,解决办法是,sudo apt install policykit-1 policykit-1-gnome

无效,在debian11中,解决办法是,sudo apt install policykit-1 policykit-1-gnome

Both those packages are already installed on the Ubuntu 22.04 system I am using, yet I still have problems with colour management dialogs wanting admin password when I log in remotely using XRDP.

你需要修改配置文件,我的办法是最佳的,修改配置文件很麻烦,请自行参考
https://en.linuxportal.info/tutorials/troubleshooting/how-to-clear-the-not-authorized-to-perform-operation-error-message-when-automatically-attaching-USB-flash-drives-and-other-external-USB-storage-devices


Support more generalized macro for enum

Hi 👋
While using Rustler, I've wanted to use more complex enum types for Elixir bindings. So I tried to implement it, which can be used like the following snippet.
#[derive(rustler::NifEnum)]
enum Test {
  Foo{ x: i32, y: i32 }, // Allow named enum
  Bar(String),
  Baz(String),  // Allow duplicated types
  Qux
}

#[rustler::nif]
fn claim_test(value: i32) -> Test {
  match value {
    0 => Test::Foo{ x: 1, y: 2 },        // %{__enum__: :foo, x: 1, y: 2}
    1 => Test::Bar("Hello".to_string()), // {:bar, "Hello"}
    2 => Test::Baz("world".to_string()), // {:baz, "world"}
    3 => Test::Qux,                      // :qux
    _ => panic!("")
  }
}

If there are more idiomatic ways to bind, please let me know!
Also, I didn't realize there was a related issue, #426. I'm really sorry about that 🙏

#[derive(rustler::NifStruct)]
enum Test {

I think annotating an enum with NifStruct might be confusing.
Side-note: should we also deprecate NifUnitEnum if we go with this PR? I think NifEnum would also cover NifUnitEnum.

#[derive(rustler::NifStruct)]
enum Test {

I think annotating an enum with NifStruct might be confusing.

I found it clear because I thought that Struct refers to the elixir struct. But yes, if you take it to refer to Rust structs, it doesn't make sense anymore.

@turion Thank you for your reply. I also like your suggestion, but as @evnu said, the Enum idiom for Rust's enum would be more appealing to me.

Side-note: should we also deprecate NifUnitEnum if we go with this PR? I think NifEnum would also cover NifUnitEnum.

@evnu If this PR is approved, I think it will.

I also want to have some conversation about encoding for named enums. I encoded it using Elixir's map, but the keyword list is also idiomatic.
#[rustler::NifEnum]
enum Test {
  foo{ x: i32, y: i32 },
}

#[rustler::nif]
fn claim() -> Test {
  Test::foo{ x: 1, y: 2 }
}

# Current PR
iex(1)> claim()
%{__enum__: :foo, x: 1, y: 2}
# Use keyword list
iex(2)> claim()
{:foo, x: 1, y: 2}

This feature looks pretty cool! I think it will be useful to me in a task I'm doing.

I also want to have some conversation about encoding for named enums. I encoded it using Elixir's map, but the keyword list or a tuple contains the map are also idiomatic.

In my mind the version with __enum__ looks a little bit weird. I would suggest one of the other two options you suggested. Keyword (2nd) seems slightly better because you can keep the order. But I'm OK with a map (3rd) too :)

@philss Thanks for your reply!
After reading your comment, I think it will be more promising the 3rd option rather than the 2nd one. It's because, in Rust, the order of named enum does not matter.
So, in my mind, even though the Keyword (2nd) looks more simple, map syntax (3rd) makes more sense.

It's because, in Rust, the order of named enum does not matter.

Also, the form resembles NifMap for structs. So if we use maps, the form is essentially the same and the enum variant is simply a tagged NifMap.

I've implemented the third option and added more complex test cases!

@philss @SeokminHong  Wrt to unit variants, what do you prefer:
3 => Test::Qux,                      // {:qux}         OPTION 1
3 => Test::Qux,                      // :qux           OPTION 2
3 => Test::Qux,                      // {:qux, nil}   OPTION 3

Option 2 looks nicer, but Option 1 might be closer to the non-unit variant cases. Option 3 is closest to the other forms, nil would indicate that this does not carry any more data. Alas, Option 3 conflicts with a variant Qux(Option<T>). Maybe there are better options?

@evnu  I prefer the second option, with only the atom. The first one is strange, with a tuple of one element. But I would be OK with that too. I'm not sure how could be a forth option :thinking:

@evnu I also prefer the second option. It will also provide convenience for moving to NifEnum from NifUnitEnum.

@evnu Before approving this review, could you review #448 first? If the PR merged, I would fix the Result type in this PR too.

It will also provide convenience for moving to NifEnum from NifUnitEnum.

Right, that's a good reason as well! I like it.

@evnu, I fixed all of what you reviewed!

@SeokminHong thanks a lot for the changes! I am quite swamped right now, but will try to review soon!

@SeokminHong I really like where this is going! :) The gen_decoder() and gen_encoder() functions seem quite long, I think it might be beneficial to introduce helper functions and reduce the amount of code in those functions. I think that will also help with reviewing. What do you think?

@evnu I handled more detailed error messages for each decoding logic. However, there are some points that could be improved.
In the following test case, the enum expects the payload type is a map. But in this case, it passes a struct.
https://github.com/SeokminHong/rustler/blob/998e61a18547ab7263fae8a827595a3b5fec103b/rustler_tests/test/codegen_test.exs#L260-L263
The error message is The map must have 2 elements, but it has 3 because the struct has a hidden field, __struct__. However, I think it's not intuitive. Do I improve this message to check the map has __struct__ field and raise the proper message for this case?

Do I improve this message to check the map has struct field and raise the proper message for this case?

The behaviour here should be similar to NifMap: If the map which is to be decoded contains all fields of the struct and the types match, decoding should work, even if the map contains more fields than actually required. So in this case, maybe the error should indeed tell the user, that a field is missing (simply the first field that we check). The exact number of fields is not that relevant I think.

This all looks very very exciting! This has the potential to make these proc macros more powerful and easier to use.
Has there been any discussion about allowing attributes on the enum variants in order to specify its behavior?
One case I can imagine is wanting a struct variant in Rust to correspond to a tuple with an atom tag in Elixir. It might also allow you to specify the atom tag.
I have not thought about this very much (names and everything is just invented), but here is a quick example of what I mean:
#[rustler::NifEnum]
enum Test {
  // This might be the default?
  #[rustler(encoding = map_in_tuple)
  SomeVariant1 { x: i32, y: i32 },
  #[rustler(tag = "overridden_tag", encoding = tuple)
  SomeVariant2 { x: i32, y: i32 },
}

Test::SomeVariant1 { x: 1, y: 2 } => {:some_variant_1, %{x: 1, y: 2}}
Test::SomeVariant2 { x: 1, y: 2} => {:overridden_tag, 1, 2}

We might also want to allow specifying stuff on the fields within the enum variants.
We could potentially rework the other proc macros to unify (for example) NifStruct and NifTuple as well.

Has there been any discussion about allowing attributes on the enum variants in order to specify its behavior?

@turion suggested using attributes to unify with structs earlier. Your suggestions look appealing and resemble serde, which is nice! I would probably move this discussion into a follow-up ticket in order to have this PR merged as a first working implementation towards something more unified. @hansihe What do you think? See also https://github.com/rusterlium/rustler/issues/426, which also aims to unify the different approaches.

We could potentially rework the other proc macros to unify (for example) NifStruct and NifTuple as well.

Yes, we have a lot of overlap w.r.t. internals in the different macros.

@SeokminHong thanks for all the work you put into this PR! Is there anything missing you wanted to add before we merge?

I think it's fine! Thanks for all your feedback 😄


How to escape the pipe character in Markdown?

VSCode Version: 0.10.11
OS Version:Win 10

After doing some searching, I was unable to find how to escape the pipe character - if I include it in my table, it throws off all my formatting.

How is this even related to VS Code? This is just simple markdown editing... Google -> https://github.com/gitlabhq/gitlabhq/issues/1238#issuecomment-10022918

I saw the thread you posted, and it did not solve the issue. It's related to VS Code b/c vscode purports to support Markdown, and when it fails using this editor in this way, it's worth reporting.

Yes please let us know anyway you feel we can improve the product :)
This is what I see in 0.10.12 (not yet released):

Seems fine, now at least.


Questions about the articulated object's state and the high-level primitive skill

Hi, I have some questions when using omnigibson:

Is it possible to access some key parts of the articulated objects (e.g. the handle of the cabinet, the door of the microwave) ? If possible, expert demonstration generation can be easy.
will the next release support high-level primitive skills mentioned in your paper ?

Thank you very much!

If the key parts of the articulated objects is a separate link (e.g. door of the microwave or door handle that can rotate), you can access its pose by querying obj.links[link_name].get_position_orientation.
Not in the immediate next release, but it's definitely in our road map. Contribution is also very welcomed!


Select List item not working in Google Chrome

Hi team,
Starting with few weeks ago the select list items not working on Google Chrome and it's not open at the first pressing on the left mouse click, it's open on the second pressing on the left mouse click and not double click and i saw that it's open from first pressing on the right mouse click.
In IE 9 and 11 it's working, but i didn't find a solution for Google Chrome.
Can you help me with a suggestion?
I'm working with Apex 5.1
Thank you,
Marian

Hi Vincent,
I tested on the demo application from version v0.12.2 for Apex 5.1.
I installed app-demo.sql from this version and after i go in the Patterns region -> Interactive Report -> i pressed on the pen for Employee Details and there i have a select list item with the name Deptno.
When i try to open that select list is not open on the first left mouse click and it's open at the second left mouse click(not double click), but it's working at the first right mouse click.
This behavior is only on Google Chrome and it happens in my application.
Thank you very much,
Marian

Hi Vincent,
Can you help me with a suggestion?
Thank you,
Marian

I'm sorry for the delay. I don't have access to a v0.12.2 for Apex 5.1 environment, so I will need a link to your app so I can tweak some css or js for you.

Hi Vincent,
You can try with this link: https://sodexoonline.bg/apex/f?p=12192:1::::::
Is your demo application for apex 5.1.
You can go in Patterns region -> Interactive Report -> and follow the steps from my previous comment "i pressed on the pen for Employee Details and there i have a select list item with the name Deptno.
When i try to open that select list is not open on the first left mouse click and it's open at the second left mouse click(not double click), but it's working at the first right mouse click.
This behavior is only on Google Chrome and it happens in my application."
Thank you,
Marian

This is the fix: https://github.com/Dogfalo/materialize/pull/6339/files#diff-338f03716a63d52eee0f79b4510d617c
You have to insert that in the appropriate place in your file here: https://sodexoonline.bg/apex/interaktiv/r/12192/files/theme/500/v953/lib/materialize/js/materialize.min.js

Hi Vincent,
Thank you very much for your help.
I added your code in the next place, but is not working, maybe is not the right place where was added by me:

"key: "_setupDropdown",
value: function _setupDropdown() {
var _this71 = this;
    this.wrapper = document.createElement('div');
    $(this.wrapper).addClass('select-wrapper ' + this.options.classes);
    this.$el.before($(this.wrapper));
    this.wrapper.appendChild(this.el);

    if (this.el.disabled) {
      this.wrapper.classList.add('disabled');
    }

    **this.wrapper.click(function (e) {
    e.stopPropagation(); });**

    // Create dropdown
    this.$selectOptions = this.$el.children('option, optgroup');
    this.dropdownOptions = document.createElement('ul');
    this.dropdownOptions.id = "select-options-" + M.guid();
    $(this.dropdownOptions).addClass('dropdown-content select-dropdown ' + (this.isMultiple ? 'multiple-select-dropdown' : ''));

    // Create dropdown structure.
    if (this.$selectOptions.length) {
      this.$selectOptions.each(function (el) {
        if ($(el).is('option')) {
          // Direct descendant option.
          var optionEl = void 0;
          if (_this71.isMultiple) {
            optionEl = _this71._appendOptionWithIcon(_this71.$el, el, 'multiple');
          } else {
            optionEl = _this71._appendOptionWithIcon(_this71.$el, el);
          }

          _this71._addOptionToValueDict(el, optionEl);
        } else if ($(el).is('optgroup')) {
          // Optgroup.
          var selectOptions = $(el).children('option');
          $(_this71.dropdownOptions).append($('
' + el.getAttribute('label') + '
')[0]);

          selectOptions.each(function (el) {
            var optionEl = _this71._appendOptionWithIcon(_this71.$el, el, 'optgroup-option');
            _this71._addOptionToValueDict(el, optionEl);
          });
        }
      });
    }

    this.$el.after(this.dropdownOptions);

    // Add input dropdown
    this.input = document.createElement('input');
    $(this.input).addClass('select-dropdown dropdown-trigger');
    this.input.setAttribute('type', 'text');
    this.input.setAttribute('readonly', 'true');
    this.input.setAttribute('data-target', this.dropdownOptions.id);
    if (this.el.disabled) {
      $(this.input).prop('disabled', 'true');
    }

    this.$el.before(this.input);
    this._setValueToInput();

    // Add caret
    var dropdownIcon = $('<svg class="caret" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');
    this.$el.before(dropdownIcon[0]);

    // Initialize dropdown
    if (!this.el.disabled) {
      var dropdownOptions = $.extend({}, this.options.dropdownOptions);

      // Add callback for centering selected option when dropdown content is scrollable
      dropdownOptions.onOpenEnd = function (el) {
        var selectedOption = $(_this71.dropdownOptions).find('.selected').first();

        if (selectedOption.length) {
          // Focus selected option in dropdown
          M.keyDown = true;
          _this71.dropdown.focusedIndex = selectedOption.index();
          _this71.dropdown._focusFocusedItem();
          M.keyDown = false;

          // Handle scrolling to selected option
          if (_this71.dropdown.isScrollable) {
            var scrollOffset = selectedOption[0].getBoundingClientRect().top - _this71.dropdownOptions.getBoundingClientRect().top; // scroll to selected option
            scrollOffset -= _this71.dropdownOptions.clientHeight / 2; // center in dropdown
            _this71.dropdownOptions.scrollTop = scrollOffset;
          }
        }
      };

      if (this.isMultiple) {
        dropdownOptions.closeOnClick = false;
      }
      this.dropdown = M.Dropdown.init(this.input, dropdownOptions);
    }

    // Add initial selections
    this._setSelectedStates();
  }"

Can you help me with a suggestion?

Thank you,
Marian


Create diagnostic settings to send platform logs and metrics to different destinations: Destination requirements to use Azure storage account doesn't mention compatible types.

Create diagnostic settings to send platform logs and metrics to different destinations: Destination requirements to use Azure storage account doesn't mention compatible types.
https://docs.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings?tabs=CMD
Following the steps to create diagnostic settings using the PowerShell cmdlet I noticed the error "InternalServerError". Without more information, after troubleshooting I noticed that the storage account used was not compatible to storage this type of logs. But reviewing the document I cannot find any reference to this in the destination requirements sections.

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

ID: 89743709-c3fa-9ce1-55fb-e9b7f6d2dba9
Version Independent ID: a4c9f0b7-5dde-d60c-1110-3ca53d904d61
Content: Create diagnostic settings to send platform logs and metrics to different destinations - Azure Monitor
Content Source: articles/azure-monitor/essentials/diagnostic-settings.md
Service: azure-monitor
Sub-service: essentials
GitHub Login: @bwren
Microsoft Alias: bwren

Thanks for brining this to our attention. We will investigate it further and update you shortly.

@mishagen My sincere apologies for delay in getting back to this thread.
Can you please share some additional information on below items so that we can better address this issue ?

Which Azure resource you were trying to enable the diagnostic logs using powershell, is it Azure keyvault as given in the doc example or any other service ?
Which type of storage account you are using and see this error ?
What type of logs you are trying to send to storage account ?

Looking forward to hear from you , thanks

@mishagen Checking in to see to if you could share the above information, which would help us to address the issue. Thank you

@mishagen Needed your help to get some additional information to further proceed on this issue. For now we will proceed to close this thread. However, as you get back to us with additional information we will gladly reopen the issue and continue the discussion.


Added details for docker-push

Added brief details and sample command for docker-push

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

@bspai Thank you for  creating this PR.  However, since it was created, the underlying document has changed.  Can you please review and resolve the current merge conflicts?  It could be the changes to the underlying document are so significant that your changes are no longer relevant.  If the latter is the case, it might be easier to just close this PR and create a new PR with any changes you still feel are important to make.
If you need any assistance or have questions about resolving the merge conflicts, please reply back or contact someone in the Contributors Room on Gitter.
Thank you.

Hi @bspai
As there has been no response from your end for a while, we are closing this PR.
Feel free to request this PR to be reopened or create a new PR, if you still wish to make the changes you originally added plus any additional change requests asked of you.  Also, remember to update your fork, so you have the latest version of master in case it has changed significantly.
Happy Coding!