absolute paths in generated config.ini

The generated config.ini contains absolute paths, there are two issues with this:

The file is not portable to a different folder without changing the paths from absolute to relative,
If the wile is committed to a public repo, some private information about the developer could be exposed (username).

After further reading I noticed:
https://riscof.readthedocs.io/en/stable/inputs.html#file-path-specification
The option 2 can cause confusion, for example, when both paths from 2 and 3 exist.
I would argue option 3 should have a higher priority.

I now noticed:
Hint: All paths provided by riscof are absolute and it is advised to always use absolute paths while executing/generating commands to avoid errors.
Please provide an explanation for the use of absolute paths, this is contrary to expectations of experienced developers and therefore requires proper arguments.

The intermediate files(such as database and test lists) are architected in a way that they can be manipulated/consumed by other programs as needed. A riscof run consists of 4 different phases - config check, database generation, testlist generation and test run on models. Each of the individual phases can be run independently and the generated outputs can be used as inputs to the next phase(after manipulation if necessary). Any change in the work directory or environment parameters might result in an incorrect run. To prevent this, relative paths are almost never used throughout riscof. All paths are turned into absolute at the start and maintained throughout the program.

So as I understand you, the hint is not referring to config.ini, but to how riscof interfaces with the user provided DUT code (simulator executable or makefile, ...).

Yes. It also includes the paths in the database files and testlists generated.

I would still argue the generated config.ini should have relative paths.

I can see why this would add value. This can be added as an optional feature enabled by a boolean switch in the cli.

There is a related question I did not ask yet, why are the same paths specified in the [RISCOF] section (keys ReferencePluginPath and DUTPluginPath) and inside plugin sections as pluginpath key. The duplication opens questions on which of the two paths would be used if they were different. If the two paths have different uses, this was not clear from the documentation.

The paths under the RISCOF node are for use inside riscof and are not available to the plugins themselves by default. Any values which need to be passed to the plugins should be passed via these nodes.

Would it be possible to list multiple Reference/DUT plugins but only selecting a pair in the [RISCOF] section (all could be listed, but the unused ones would be commented out)?
Yes. It is possible to do so. Only the plugins mentioned as DUTPlugin and ReferencePlugin are loaded & used during a run but the number of nodes in the ini file is not limited by this.


Consolidate package.json Metadata

Description
The package.json of a Piral instance contains some information that should be applied when scaffolding. This information is in the pilets section.
Furthermore, it contains some info on the app itself (app section).
The same is true for pilets, but here we do not have any scaffolding to do later on. And most of this information is actually just for (unnecessary) book keeping. The section here is called piral. The most important information here is name, which tells the Piral CLI which Piral instance / dependency as app shell to use.
Background
The piral section of the pilets is too verbose and results in unnecessary changes / updates to a VCS. Only the configurable part should stay here.
Discussion
Right now the idea is as follows:

Potentially keep everything in a Piral instance as-is (pilets remain, same structure)
Maybe piral gets reduced to Piral CLI infos and the name of the Piral instance
Rest is thrown out
Externals are now top-level and can only be added, i.e., "externals": [] would still contain all declared externals (shared dependencies) from the Piral instance

There are even some improvements for files scaffolding possible:

The generated emulator package may not need to contain a files section with a more or less complicated mechanism
Instead files placed in the files folder of the emulator package are just copied as-is from the paths

Is available in develop branch / preview version tagged next.


HDDS-9738. Display pipeline and container counts for the decommissioning Datanode

What changes were proposed in this pull request?
In order to track the progress of the decommissioning of a datanode, the number of pipelines associated to the datanode and the number of containers on the datanode blocking the decommissioning (i.e., unhealthy and under-replicated containers) is necessary to be shown as a part of the decommission status command.
These counts, along with the time at which decommission was started for the datanode are stored as a part of metrics in NodeDecommissionMetrics. In this PR, the JMX endpoint for SCM is queried for the NodeDecommissionMetrics class and the response is parsed to display the counts and starttime for each node currently in DECOMMISSIONING.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-9738
How was this patch tested?
Tested locally in docker set-up:
$ ozone admin datanode status decommission

Decommission Status: DECOMMISSIONING - 2 node(s)

Datanode: e56afcce-f5b5-4980-8b1b-d55a5714ad3c (/default-rack/<IP_ADDRESS>/ozone-datanode-4.ozone_default)
Decommission started at :<PHONE_NUMBER>19118/01/2024 12:54:21 UTC
No. of Pipelines: 1
No. of UnderReplicated containers: 0
No. of Unclosed Containers: 0

Datanode: 18e00b07-ad64-4b3f-a291-c786df35d6da (/default-rack/<IP_ADDRESS>/ozone-datanode-3.ozone_default)
Decommission started at :<PHONE_NUMBER>80918/01/2024 12:54:03 UTC
No. of Pipelines: 2
No. of UnderReplicated containers: 0
No. of Unclosed Containers: 0

Abandoning this PR as I seemed to have created a mess during rebasing the patch! I will raise another PR and comment the link to it here soon


Adding 4 files helper-* FR [skip ci]

Q
A

Is bugfix?
yes/no

New feature?
yes/no

Breaks BC?
yes/no

Tests pass?
yes/no

Fixed issues
comma-separated list of tickets # fixed by the PR, if any

Merged. Thanks!


Point to latest netforum_enterprise gem (2.0.0)

Event Writeback

https://trello.com/c/6Wi9FMyD

:+1:


refactor(CreateFullPageStep): add TypeScript types

Closes #4512
This PR changes the CreateFullPageStep file and component to use typescript
What did you change?
The file to be tsx and used types for the props
How did you test and verify your work?
ran tests and builds locally

Solving the merge conflict dismissed the reviews, but as there's been multiple approvals I will be merging this.

@makafsal Can't force merge this, would you be able to approve again? Thanks!


Bug: Latest Update breaks the better command palette

I don't now what, but the "open better command palette" command somehow stopped working?
Also, I tried reinstalling the plugin disabling all other plugins. Still not working. :(
app.js:1 Command failed to execute:  obsidian-better-command-palette:open-better-commmand-palette
app.js:1 TypeError: Cannot read property 'name' of undefined
    at eval (eval at <anonymous> (app.js:1), <anonymous>:15:13972)
    at Array.map (<anonymous>)
    at g.initialize (eval at <anonymous> (app.js:1), <anonymous>:15:13924)
    at P.updateActionType (eval at <anonymous> (app.js:1), <anonymous>:15:18058)
    at new P (eval at <anonymous> (app.js:1), <anonymous>:15:17116)
    at Object.callback (eval at <anonymous> (app.js:1), <anonymous>:15:23968)
    at SR (app.js:1)
    at t.executeCommandById (app.js:1)
    at t.eval (eval at <anonymous> (app.js:1), <anonymous>:74:11668)
    at t.o [as executeCommandById] (eval at <anonymous> (app.js:1), <anonymous>:23:77225)
t.executeCommandById @ app.js:1
eval @ VM154:74
o @ VM154:23
t.onTrigger @ app.js:1
t.handleKey @ app.js:1
t.onKeyEvent @ app.js:1

Looking at it now

Ah I think I found the issue. I think you have a command pinned that no longer exists. Probably due to a removed plugin. I should have a fix out in a few minutes. In the meantime you should be able to fix it, but adding back whatever plugin that was and un-pinning the command.

ah, got it. can confirm, re-installing the plugin makes BCP work again.

@chrisgrieser Just released 0.7.1. That should fix the issue. FYI sometimes obsidian takes a minute to realize that a plugin has been updated and lets you update it.

thanks for the quick fix :)


Resumable Code

With #142, the release mentioned Resumable Code as a way to keep allocations down.  We should look to see what, if anything, this library needs to do to benefit from it. Apparently AsyncSeq is going to receive changes so it will be beneficial to watch what happens over there.

AsyncSeq PR

Not all computation expressions need to implement resumable code as explained in great detail.
Since #142 exists and that's the only place that will need to use resumable code, I'm closing this.


chore: add surge preview action

https://github.com/marketplace/actions/surge-pr-preview

/rebase


Consider an improved sf::Clock API

Subject of the issue
Between a forum thread of mine and the discussion in #2004, there is motivation to find a better API for sf::Clock, especially now that it's a more feature-rich class. Now that sf::Clock has as many features as it will ever have, it's the prefect time to discuss how to better expose those features in a new API.
Here are a few complaints worth addressing:

The name "clock" does not match how the C++ standard uses the word "clock". An sf::Clock will not in fact tell you the time. It actually models a stopwatch.
Clocks are running by default which is not obvious.
.reset() does not put the clock in a default-constructed state.
You cannot construct a clock in a stopped state.

From my previous comment:

I also believe we don't have to provide every possible combination of operations "for convenience", and we might want to split functionalty. Maybe start/stop are still justified, as most of the cases, the logic around will know whether the stopwatch should be running or not, and thus setRunning(bool) might not be necessary.
What if we keep the API simple:
class Clock {
public:
    // Running state
    void start();
    void stop(); // formerly pause()
    bool isRunning() const;

    // Elapsed time state
    void reset();
    Time getElapsedTime() const;
};

One option would be to just keep the two states completely orthogonal, so reset() would not affect running/stopped state. But in practice, one is likely to either stop the clock or restart it, so maybe reset() can have a fixed meaning.
I'm not sure if we need the methods who act as both setters and getters simultaneously (current restart()) -- while convenient, it introduces some redundancy and makes the API surface broader. So far there was only one state (elapsed time), so it was manageable, but now we additionally introduce running/stopped, so we might focus on making sure the user always knows which state he is manipulating.

TLDR: a stopwatch has two states that are orthogonal by themselves:

is running
elapsed time

And much of the confusion arises by manipulating both at the same time, without having a clear name for it (e.g. reset vs. restart).

Just brainstorming, one option would also be to use assignment instead of setters to re-initialize the stopwatch.

I'm not sure. To me this doesn't feel very intuitive from an object oriented point of view.
How about renaming it to Timer instead and – to include the potentially expected functionality – add a new member sf::Timer::wait(timespan, relative)?
While this is somewhat covered by sf::sleep(), this would allow one to wrap functionality like "do these things, but make sure you'll need at least x seconds", just like the internal frame rate cap.

Just some of my opinions:

start indicates that you run from the initial value - 0.
so:

tm.start();
...
tm.stop();
...
//Would expect this to reset the clock!
tm.start();

If we change it to ```run```, then ```is_running``` is a bit more correct.

reset indicates that the value is set to the initial value.
restart indicates that you are starting again from the initial value. So restart is just stop->reset->start
stop indicates that you don't intend to run again.

So I propose this API:
class Clock {
    Time run();
    Time pause();
    bool isRunning();

    // Pauses, resets, and run again, returns the elapsed time. Maybe change to "restart"?
    Time rerun();

    Time getElapsedTime();
    // Doesn't pause! Just sets the value to 0. Also returnes the elapsed time.
    Time reset();
};

Having all the functions return the time can save a few calls at the call site, but maybe pollute the code with [[maybe_unused]]. I like it, but it may not be someone else's cup of tea.

reading documentation is part of the fun! I wouldn't spend more than a minute on reading the documentation for the clock before using it...
We can make the names more explicit:
struct clock{
    Time run(); //instead of continue
    Time pause();

    Time resetTime();

    Time runAndResetTime();
    Time pauseAndResetTime(); // "and" makes this sound like a code smell so bad

    Time getEstimatedTime();
};

These don't look amazing.
we can ask - "is there a subset of these operations that is good enough?"
ofc we can just take run,  pause, resetTime and getEstimatedTime. And have the user do multiple calls for the combinations at the call site. we can argue that pause would be coupled with resetTime  most of the time (i.e. pauseAndResetTime :) ) , and if you need to pause without resetTime you can pretty easily emulate it at the call site.
so maybe:
struct clock {
    Time run();

    // this:
    Time Stop(); // does it reset the value? i guess i gotta read the docs...
    // or this:
    Time pause(); // doesn't reset for sure -  so probably call resetTime too at call site...

    Time resetTime();
    Time getEstimateTime();
};

As of the second case:
I do think that the second case is understandable, albeit non-conventional:
sf::Clock c;
// C++20 using enum:
using sf::Clock::RunStates;
using sf::Clock::TimeStates;
...
// start the clock
Time t = c(Run);
...
// get time
Time t2 = c();
...
// pausing
Time t3 = c(Pause);

Time t4 = c(Run);
Time t5 = c(Reset);

just three words! Run, Pause and Reset! it's simple.

The team has chosen to not act on this issue in v3 so I’m going to close this issue.

What about keeping the issue open for SFML 4.0.0 milestone?

At this point I'd rather someone just submit a PR than continue the discussion in here. I don't think this matter is important enough to warrant keeping an issue open for potential a few more years.


Fix 'docker run' command in third use case (README.md)

Missed the pull request already fixing that issue. #5


Async read file

Original discussion here https://github.com/lemunozm/termchat/pull/16

Yes I can confirm it works.
If it hags maybe somehow its picking up an old version of message-io, sometime cargo is weird and reads Cargo.toml of the parent folder(I'm saying this because that happened to me and I had to debug it)
Maybe just try with a new clean folder and make sure firewall is permissive.

The blocking problem sadly continues, I have tried to debug it and I have realized that if I comment this line: https://github.com/lemunozm/termchat/pull/17/files#diff-08f48d7f7b7769cab47740b2d52240222de76acaf454595315bb186af574a2e9R27 it works.
Does this mean that the problem is not related to the file/ event / network, maybe something drawing the progress bar? I will check it more deeply when I have time.
Note: The crash happens even if the current termchat is the only termchat

Commenting that line basically removes all the progress bar drawing logic, so its very probable that there is a bug there, I'll try to find a solution.

I have found the line that blocks into an infinite loop: https://github.com/lemunozm/termchat/pull/17/files#diff-acf9ca25b7b2d13e11c1035ebbda4140466603739b73a371b67a9a267d0ce626R109
Seems like ui_current take a huge value

Which line (the link is incorrect?),
Anyway nice find, this probably should be an easy fix

Sorry, the link doesn't work. It's ui.rs:109: https://github.com/sigmaSd/termchat/blob/read_file_event/src/ui.rs#L109

Can you try this and see if it fix it?
// round to 2digit
let ui_current = current as f32 * ui_step;
let ui_current = ((ui_current * 100.).round() / 100.) as usize;

I test it, It continues blocking in the same line :(

In fact, ui_current is<PHONE_NUMBER>854775808 that in binary is 2^63

Okay I'll the step algorithm probably fails with big numbers, I'll see what I can do

@lemunozm
    let width = width as f64;
    let pct = (current as f64) / (max as f64);
    let pct = if !pct.is_finite() { 0.0 } else { pct };
    let ui_step = width as f32 / max as f32;

    let ui_current = pct * width;
    let ui_remaining = width - ui_current;

    let current: String = std::iter::repeat("#").take(ui_current as usize).collect();
    let remaining: String = std::iter::repeat("-").take(ui_remaining as usize).collect();

taken from https://github.com/rust-lang/cargo/blob/2f115a76e5a1e5eb11cd29e95f972ed107267847/src/cargo/util/progress.rs

Thanks! I will check it. I saw fastly that when ProgressState is in Started state, the max value is 0, then this 0 is used as the denominator for the ui_step calculation. Maybe avoiding that this value is 0 can be a solution. Anyway, tomorrow I will check your changes.

Its probablt handled with is_finite() call, buy yes that probably was the issue.

I applied your suggestions + pushed the fix, hopefully now its ok!
To recap the bug (1.0 /0.0) as usize = some huge number

Now it works! 👍🏻
I transferred successfully a 1GB of file :)


[Sema] Fix PreCheckExpression to avoid walking into capture lists

PreCheckExpression should only walk into associated closure if
it's a single statement, and should avoid list itself since it should
already be properly type-checked by typeCheckDecl.
Resolves: rdar://problem/34852808
Resolves SR-7115.

@swift-ci please clean test

Cool!


[v1] Adds Underlines and double underlines

This PR:

adds underlines upon hover to many buttons to indicate hover status
adds double underline style upon hover to links in text to indicate hover status

This needs to be done because our styles currently rely on subtle color changes right now and this is not good practice.
This video presents a before and after : https://share.cleanshot.com/6XpDq821

This one will require bumping the version number and pushing to NPM.


bundle replay params

Problem
Replay takes a ton of parameters and has had a clippy exception for years. It can also be confusing to make sense of all of them for the casual developer wandering by.
Note: The broader context is investigating if replay stage can be further broken down and possibly do more things in parallel. This is just the beginning.
Summary of Changes
Bundle parameters into replay stage into one of 3 buckets:

Senders <-- sending from replay stage to somewhere else
Receivers <-- receiving in replay stage from somewhere else
Config <-- this is the existing, miscellaneous bucket

lumping the geyser and RPC stuff into one struct.

Yeah, that's an interesting idea. Let me look into that


What language should ahkpm be written in?

These are just my initial thoughts. Would love to hear from others as well.
AutoHotKey
✅ It's the language of the AHK community
❌ It's not really that great for general purpose programming
❌ No package management (yet) so would have to rely on a lot of copy-paste and/or custom code that could be left to libraries in other languages
❌ I don't know it very well
JavaScript/TypeScript
✅ I know it extremely well
✅ Commonly known
✅ Good package management
❌ Not a good way to produce standalone binaries
Rust
✅ Easily compiles to a standalone binary
✅ Plenty fast enough
✅ Good package management
❌ Very complicated language relative to what is needed (the memory model being the most complicated piece)
❌ I don't know it (yet)
Go
✅ Easily compiles to a standalone binary
✅ Plenty fast enough
✅ Well suited to the task at hand
❓ Package management
❌ I don't know it (yet)

At this point I'm leaning towards using Go.


Extract all debug logs texts to a separate file

Reason/Context
We have debug flag that enables logging of some additional info for the user. Log texts are "hardcoded" in code and therefore again hardcoded in tests.
Description
Move log message texts to a separate file and then import log messages in code and tests. This way, when you change or improve a log message, you do it in one file and do not touch tests at all

Hello sir , I have cloned the repo and understand the generator project . I have also watched that "streetlight" tutorial , can you help me out on how to go about things to solve this issue . I am a newbie and I want to contribute .
Thank you sir.

@vishesh13byte hey. the point here is to more all log debug messages like this https://github.com/asyncapi/generator/blob/master/lib/generator.js#L369 to a separate file with constants that would hold the log messages so later we do not duplicate the same log message in tests like https://github.com/asyncapi/generator/blob/master/test/test-project/test-project.test.js#L108.
Ideal world: all log messages are in a single file and in code and tests we just import and use constants and in some cases probably functions (if log message has some variable)
The outcome of this task should be this separate location with log messages and current code where logs are used, and tests, are refactored to use those log messages from new locations. I hope this makes sense.
Tip: @magicmatatjahu did something similar in the past in the react component here https://github.com/asyncapi/asyncapi-react/blob/master/library/src/constants.ts

Hello @derberg. I understand the situation and what one has to do. I can go ahead with making the first draft which will just consist of the plain strings.
However, wanted some more clarity on what to do with messages with variables.

and in some cases probably functions (if log message has some variable)

I understand this but how should I plan to solve scenarios like that of the templateName in the test file  which is being used in a significantly different (and dynamic) way in the generator.js file.
I don't want to make the log-messages-constants.js (proposed filename) file too crowded with utility logic.

logsConstants.js should be enough?
in the case of dynamic values inside log messages, you have no other choice than to provide a function where you can pass a dynamic function 🤷🏼♂ unless there is some better way I'm not aware of. I don't think it is bad, it is just a simple function that returns a simple string and that is it.
more important is to make sure you folks do not duplicate your efforts in the same issue, there are other issues too 😅
@vishesh13byte is this the issue you are already working on?

@derberg
Yes. I was overcomplicating things when I was thinking of how to do it. 😅 I get it now.
I'll start working on this if @vishesh13byte isn't currently working on it right now. 👍

logsConstants.js should be enough?
in the case of dynamic values inside log messages, you have no other choice than to provide a function where you can pass a dynamic function 🤷🏼♂ unless there is some better way I'm not aware of. I don't think it is bad, it is just a simple function that returns a simple string and that is it.
more important is to make sure you folks do not duplicate your efforts in the same issue, there are other issues too 😅
@vishesh13byte is this the issue you are already working on?

Yes sir , I am already working on it

@derberg  Sir , I have made a pull request . Can you please review my pull request. Thanks for helping me out ,learnt a lot of new things working on it and looking forward to solve more issues and also this issue if anything goes wrong .
Thank you.

@derberg sir , I have done all the necessary changes and the npm run lint is not giving any error and also when I ran command npm run test ,it created a new output file in test folder . I have tried my best in rectifying all the errors ,the latest PR is giving 8 successful checks . Please review my PR sir.
Thank you.

@vishesh13byte that was fast! onto the PR, cheers

@vishesh13byte that was fast! onto the PR, cheers

Thank you @derberg sir for helping me out ,it is a really good start and hopefully I can solve more issues 😄.

no worries, just keep in mind that you don't have to approach me with sir. In this community we are equal on all levels, even the age, even if I'm older 😆

I really appreciate this ,thank you for the nice words and the guidance😄.


Use default optimizations when AT_SECURE

As mentioned in #5860, OPENSSL_ia32cap (and other CPU environment variables), are taken from getenv instead of secure_getenv. This allows us to cause invalid optimizations to be taken in privileged program (e.g. suid/setcap) using openssl.
For a quick demo, imagine the following.
cp /usr/bin/openssl openssl_local
sudo chown root openssl_local
sudo chmod u+s openssl_local
echo test | ./openssl_local dgst -sha256 # works fine
echo test | OPENSSL_ia32cap=0xffffffffffffffff:0xffffffffffffffff ~/openssl_local dgst -sha256 # SIGILL on older intel CPUs

Any binary which links to openssl allows the user to pick the CPU optimizations used. This is great, however, in the case of AT_SECURE programs, I think it's a security concern.
For a concrete example, take a look at ssh-keysign, which is setuid root. Since ssh-keysign uses openssl, it will use OPENSSL_ia32cap.
$ gdb /usr/lib/openssh/ssh-keysign
(gdb) b getenv
Breakpoint 1 at 0x5310
(gdb) run
Starting program: /usr/bin/ssh-agent
Breakpoint 1, __GI_getenv (name=0x7fc9364ddf53 "OPENSSL_ia32cap") at ./stdlib/getenv.c:34
(gdb)

ssh-keysign appears to be internal to ssh and does not have much documentation, and so I have not been able to create a PoC that would crash ssh-keysign. Another binary which reads OPENSSL_ia32cap is ssh-agent, which is setgid as user "_ssh".
This pull request prevents openssl from getting CPU information from the user when the program runs with more privileges than the current user. OPENSSL_ia32cap (and the other CPU optimization variables) still work perfectly fine, during normal openssl use cases.
I was able to test that this prevents SIGILL for suid programs on x86. I was not able to directly test my changes for the non-intel CPUs, since I don't have a non x86 environment setup. But they should be equivalent to the x86 changes.

@bbb How does this look? And sorry, I was thinking the assignment was due on the 29th, not the 22nd. That's my bad.


MGMT-976 - remove support for None platform and for openshift version…

… 4.4

@yevgeny-shnaidman
./subsystem/host_test.go:				OpenshiftVersion: swag.String("4.4"),
./subsystem/host_test.go:				OpenshiftVersion: swag.String("4.4"),
./subsystem/cluster_test.go:				OpenshiftVersion: swag.String("4.4"),
./subsystem/cluster_test.go:				OpenshiftVersion:         swag.String("4.4"),
./subsystem/cluster_test.go:				OpenshiftVersion: swag.String("4.4"),
./subsystem/image_test.go:				OpenshiftVersion: swag.String("4.4"),
./subsystem/image_test.go:				OpenshiftVersion: swag.String("4.4"),
 mfilanov  …  github.com  filanov  bm-inventory 

please make sure you run subsystem.


Assignment_3

Dear all,

Follow the instructions in the Jupyter Notebook (JN) named as Assignment_3.
Each group must create their branch named group_#_ass_3_2024 (group_1_ass_3_2024) and save their results in the Assignment_3 folder. Name your JN like your branch.
Your Pull request should be linked to this issue.
All the questions about the assignment should be posted in this issue.
Follow the same procedure as in the previous assignment. Only the RM (Repository Maintainer) should do the final merge. Since, most of you will divide the work, the RP should make a summary of the work done by each member as a final comment before merging your work to the main branch. For the rest of the members be very explicit and detailed when you comment your work. Take this assignment as a simulacro of real work.
The RP is the lead of all the assignments and will be the same during the entire course. If any member does not work, we should be able to see it clearly in the RP's comments and in the branch's commit history.
If we do not see any commit of a member, we will consider that it did not work and will not be graded and get 0 automatically.

Deadline: 01/13/24 - 11:59am

Hello, Anzony. I have updated the files from the repository to my computer, but it still doesn't detect the specified file './_data/bogota_firms.xlsx' for the assignment.

Dear Alex and Anzony,
Hereby you will find attached the final version of the document group_2_ass_3_2024 #80
Best,
Marco

Here is the assignment 3 from group 8 #86

Here is the assignment 3 of Group 3 #89


Feature request: api routes to output json array of errors instead of html

When working with api routes, it'd be nice to have a json list of errors instead of a huge amount of html to dig through.

For suggestions and feature requests please use the https://github.com/laravel/internals repo.

well i'm was working on a pr.


PDBx/mmCIF support

PBxplore does not read PBDx/mmCIF files. Yet, the PDB format is going to be deprecated soon (http://pdbj.org/help/data-format), and will be replaced by PBDx/mmCIF.

Hello @jbarnoud,
could you have a look to the new release of this branch? I have added new tests and .cif.gz files are handled correctly in regression tests.

I made only one class for PDB and PDBx that is called from PBassign.py. I don't think we need two classes yet.
I removed sys.exit from modules.

PDBx/mmCIF is now supported.


Fails to build some targets

Apparently, sphinx-build fails to build some targets (e.g. text, latexpdf, XML) with this extension included.
An IOError Exception is thrown.

IOError: [Errno 2] No such file or directory: u'/mnt/g/git/api-docs/build/text/_static/redoc.js'

This appears to happen because redoc.py is unable to copy the redoc.js to the target folder for some reason.
Build target in the traceback: text
The full traceback:
sphinx-err-Zm6iYM.log

Thanks for reporting. ReDoc.js will not work with any target but html. However, it's definitely a bug because it must not error on other targets.


Feature/metrics

This pull request has the implementation of mean absolute error, as well as some unit test cases.

@anvelezec please rebase :)

@anvelezec would be cool if we could do more exhaustive tests using hypothesis like the one in here:
https://github.com/cgarciae/treex/blob/3fa742166b12cb808aa33c1df7b0b159093c6209/tests/losses/crossentropy_test.py#L21

@anvelezec can you accept the suggested changes? This PR is good to go.


Project Registry Description field 'Invalid Format' when return key is used

-Description field shows 'Invalid Format' message when return key is used.
-'Invalid Format' message is not very specific, leaves the user wondering what they did wrong.

**released on the registry-web-platform-registry-prod silver cluster: November 25, 2020


Deliverables 2/6

Status
Deliverable
Notes

Incomplete
Clean up repo
Brandon

Incomplete
Flask Back-End from one file to Request Handler, Request Dispatcher, Event Threads
Richard (Brandon will help)

Incomplete
Frontend GUI with registration
Will

Incomplete
Line Visualization
Brandon & Will

Incomplete
UI Meeting with Richard
All

In progress
Be On Time
Brandon

@bstadt and meeting with @dtward to discuss measure matching? as soon as possible would be great....
and please email richard asap as well, cc me & @gkiar
also, make sure to commit to things that are in your control.  eg, "UI meeting with richard" is a nice goal, but you can commit to sending email with availability by tonight, to maximize prob of meeting with him this week".

Already Met with @dtward to discuss matching, will E-Mail Richard immediately

https://github.com/NeuroDataDesign/orange-panda/issues/34
you can use this if you don't want to do socket level programming


Set currentVersion in PekkoCoreDependency to 1.1.0-M1 once M1 is released

As stated in https://github.com/apache/incubator-pekko/pull/857 specifically

It may be that for the Pekko module 1.1.x series they will have to build against Pekko core 1.1.x because while the
@inline annotations existed in Pekko 1.0.x, the inline keyword for Scala 3 in various places was only added in Scala 3. This however shouldn't cause any issues because a Pekko module built against Pekko core 1.1.x would inline all relevant code, so even if a Pekko core 1.0.x is linked at runtime in a Pekko 1.1.x module, all it means is that the Pekko 1.0.x will bring in some unused code.

Note that this will not have any effect if you use Pekko Http 1.1.x against Pekko Core 1.0.x, i.e. a Pekko Http built with Pekko Core 1.1.x will still work if you link against Pekko Core 1.0.x at runtime, I have already tested this. We also have nightly builds that confirm this.
Goes without saying that this will only be the case for Pekko 1.1.x or higher, i.e. the Pekko 1.0.x branches will not have this change.

If we are going to build Pekko HTTP 1.1.x against Pekko 1.1.x then we need to look at creating integration tests that use Pekko HTTP jars but that test with Pekko 1.0.x. We want to have Pekko HTTP 1.1.x support Pekko 1.0.x. If we decide not to do this, then we need a team decision to abandon Pekko 1.0.x compatibility.

If we are going to build Pekko HTTP 1.1.x against Pekko 1.1.x then we need to look at creating integration tests that use Pekko HTTP jars but that test with Pekko 1.0.x.

Sure I can do this, I actually had to do it before to diagnose a misleading MiMa false alarm, its not too hard to setup.

I asked in https://discord.com/channels/632150470000902164/922600050989875282/1196246949129629747 if there is a principled way to do this, otherwise I will add this capability to sbt-pekko-build using a technique similar to https://github.com/apache/incubator-pekko-connectors/pull/280#issuecomment-1807748739

Pekko Http built with Pekko Core 1.1.x will still work if you link against Pekko Core 1.0.x at runtime, I have already tested this

I think we should either drop support for Pekko 1.0 in Pekko HTTP 1.1, or keep building Pekko HTTP 1.1 against Pekko 1.0. I don't think we should build Pekko HTTP against Pekko 1.1 but still claim to support Pekko 1.0.
The problem with building against Pekko 1.1 but still claiming to support Pekko 1.0 is that it is really hard to avoid accidentally relying on stuff that is only in Pekko 1.1. I don't think 'testing' can protect us against that.
In contrast, if Pekko HTTP keeps depending on Pekko 1.0, it will also work with Pekko 1.1, as long as we have correctly adhered to our binary compatibility rules in Pekko. Here we are helped by the Scala compiler and tools such as MiMa, though having additional testing would of course still be welcome.
(mentioned before at https://lists.apache.org/thread/6stkdwh94tg9okbt4p28506s88q0mo5r)
I don't have a strong preference between building with Pekko 1.0 or dropping support for it.

So you mean we should do release a whole, eg 2024.04 release？
If we do this , we should remove  the code for compatibility, eg with methodhandles

So you mean we should do release a whole, eg 2024.04 release？

I personally don't think updating a dependency minor version should require an update of the project major version.

I mean a bom for all pekko projects. @raboof

The problem with building against Pekko 1.1 but still claiming to support Pekko 1.0 is that it is really hard to avoid accidentally relying on stuff that is only in Pekko 1.1. I don't think 'testing' can protect us against that.

There may be a tool that an help detecting this i.e. https://github.com/spotify/missinglink, currently looking into it it

I mean a bom for all pekko projects. @raboof

There is https://lists.apache.org/thread/zvr2bg028myz5yywprp7vkwp5xo9wptv

There are a few people asking about Slick 3.5 support and I was hoping to get onto releasing 1.1.0-M1 versions of our libs to sort this out but this issue is turning into a blocker on all release progress.

In practice, the mima filters show very very diffs between Pekko 1.0 and Pekko 1.1. My view is let's change the main branch builds to use 1.1 and document that it is strongly recommended not to mix Pekko 1.0 and 1.1 libs but that if you must, then you need to test the setup thoroughly.

In practice, the mima filters show very very diffs between Pekko 1.0 and Pekko 1.1.

I'm not sure if you meant 'very many' or 'very few', but if we added them to mima-filters, that means we have verified that they do not impact binary compatibility of the public APIs, right? That is what those filters are for.

My view is let's change the main branch builds to use 1.1 and document that it is strongly recommended not to mix Pekko 1.0 and 1.1 libs but that if you must, then you need to test the setup thoroughly.

That sounds fine to me.

In practice, the mima filters show very very diffs between Pekko 1.0 and Pekko 1.1. My view is let's change the main branch builds to use 1.1 and document that it is strongly recommended not to mix Pekko 1.0 and 1.1 libs but that if you must, then you need to test the setup thoroughly.

Im happy with this
In the meantime I can build an sbt plugin based on https://github.com/spotify/missinglink (the logic actually seems quite trivial) and if it works/is successful we can update the documentation to reflect its compatible.

In practice, the mima filters show very very diffs between Pekko 1.0 and Pekko 1.1.

I'm not sure if you meant 'very many' or 'very few', but if we added them to mima-filters, that means we have verified that they do not impact binary compatibility of the public APIs, right? That is what those filters are for.

My view is let's change the main branch builds to use 1.1 and document that it is strongly recommended not to mix Pekko 1.0 and 1.1 libs but that if you must, then you need to test the setup thoroughly.

That sounds fine to me.

Apologies, I meant very few. I don't think anyone will notice any API diffs but I can't guarantee that if someone had a mix of dependencies coming from some Pekko 1.0 libs and some other Pekko 1.1 libs that there will not be problems. Netty and Protobuf are 2 dependencies where we have upgraded to newer versions where users with complicated dependency setups could find themselves running into trouble.

Apologies, I meant very few. I don't think anyone will notice any API diffs but I can't guarantee that if someone had a mix of dependencies coming from some Pekko 1.0 libs and some other Pekko 1.1 libs that there will not be problems. Netty and Protobuf are 2 dependencies where we have upgraded to newer versions where users with complicated dependency setups could find themselves running into trouble.

Yeah I was about to write a comment on this point but dropped it, however it is worth noting that as you said correctly there have been such significant changes in Pekko 1.1.x due to major dependency updates like netty and protobuf that there may have been some merit in officially dropping Pekko 1.0.x support I think thats a step too far.
If we are going to do such a step, we should do as many breaking but significant improvements and just release Pekko 2.0.x otherwise it just leads to confusion.

there may have been some merit in officially dropping Pekko 1.0.x support I think thats a step too far.

I guess at some point we should specify what we even mean with 'support' ;) . Perhaps we don't need to flesh this out in detail here and now, but I think it's totally reasonable to say 'we' still 'support' Pekko 1.0.x, but if you want to use Pekko HTTP 1.1.x, then you'll have to use it with Pekko 1.1.x or later.

Afaics currently our support is strictly SemVer, with stuff like behavioural breakages changes allowed as long as they are documented. Hence my reasoning behind collating all of these actually SemVer breaking changes into a Pekko 2.0.x.
We should not break SemVer often, and if we do it should be for a good reason.
As you rightly pointed out, other types of support need to be fleshed out as it all depends on what (as a community) we can commit to

I think we can start to keep versions in sync from 2.0

this is done


simplify examples of Scrapy settings

In frontera docs and examples Scrapy middlewares are added like this:
from scrapy.settings.default_settings import SPIDER_MIDDLEWARES, DOWNLOADER_MIDDLEWARES

SPIDER_MIDDLEWARES.update({
    'frontera.contrib.scrapy.middlewares.schedulers.SchedulerSpiderMiddleware': 999,
    'frontera.contrib.scrapy.middlewares.seeds.file.FileSeedLoader': 1,
})
DOWNLOADER_MIDDLEWARES.update({
    'frontera.contrib.scrapy.middlewares.schedulers.SchedulerDownloaderMiddleware': 999,
})

Is this a requirement? Usually users should just define their settings like this, without any imports:
SPIDER_MIDDLEWARES = {
    'frontera.contrib.scrapy.middlewares.schedulers.SchedulerSpiderMiddleware': 999,
    'frontera.contrib.scrapy.middlewares.seeds.file.FileSeedLoader': 1,
}
DOWNLOADER_MIDDLEWARES = {
    'frontera.contrib.scrapy.middlewares.schedulers.SchedulerDownloaderMiddleware': 999,
}

Changing objects from scrapy.settings.default_settings directly is not supported by Scrapy, there are no docs/tests for this, and it may break in subtle ways. Scrapy settings are not global, but here a global variable is changed (the one which is used as an initial value of settings).
For example, if there are  two settings files, you set SCRAPY_SETTINGS_MODULE=settings1.py env variable to use settings1.py as settings, then run scrapy crawl foo. It tries to find a spider foo - to do so it imports python files, settings2.py get imported, global scrapy.settings.default_settings.DOWNLOADER_MIDDLEWARES is patched ==> you get options from settings2.py applied, not only from settings1.py.

Sure, absolutely makes sense. Could you make a PR?

@sibiryakov yep!


Updates layout of tables in the Keycloak guides

This fixes the layout of the tables, as experienced for example on https://www.keycloak.org/server/db
Old layout, missing a proper table heading and too much distance at the bottom of the table cells:

New layout after CSS changes:

Hi @jonkoops - I'd be happy if you could review this CSS change. Thanks!


add zipcode

@DashaKrutsko Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.


Messages panel

This is a work in progress.
What works:

using the docker compose env from api ( npm run start:docker )
cleaned up hardcoded urls
Added messages route
Added header with counts per type
added UI component for showing incidents
added button at the bottom to load more incidents
wiring for paginated results for all incident types
getting more messages of a type

What does not work:

approving/rejecting incidents
changing tab
showing anything other than pending incidents

Hey @andrei1489 thank you for your pull request, will test it soon and merge it if everything is ok.


Use Attribute Name Based on Attribute Class

If you use attr_name, such that the name in the Dynamo database is different from the ORM, update_item would do the wrong thing and create a new attribute using the ORM name.
This PR fixes that bug.

Coverage remained the same at 97.5% when pulling 2fbedf98449477b0ed55b4b355202083497d2643 on lyft:use-attr-name into<PHONE_NUMBER>04dd9900e54a664b28905cbf6aac1a on jlafon:devel.

@danielhochman @jmphilli

Coverage decreased (-0.2%) to 97.297% when pulling bc29e99cf574e4cc694ff27b3bee425236892935 on lyft:use-attr-name into<PHONE_NUMBER>04dd9900e54a664b28905cbf6aac1a on jlafon:devel.

Coverage increased (+0.003%) to 97.503% when pulling bc29e99cf574e4cc694ff27b3bee425236892935 on lyft:use-attr-name into<PHONE_NUMBER>04dd9900e54a664b28905cbf6aac1a on jlafon:devel.

Coverage increased (+0.003%) to 97.503% when pulling 16c8876d3b3a873ef7cb39850689bcb7d252cb0a on lyft:use-attr-name into<PHONE_NUMBER>04dd9900e54a664b28905cbf6aac1a on jlafon:devel.

Coverage increased (+0.003%) to 97.503% when pulling 1e4c9992ac95074673715abd80965bb6ed032c77 on lyft:use-attr-name into<PHONE_NUMBER>04dd9900e54a664b28905cbf6aac1a on jlafon:devel.

+1


Bug report for Nested subclasses cannot be resolved On Netty

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Component (please set component name):

Component: [e.g. Netty]
Version [e.g. 1.0.2]

Additional context
Add any other context about the problem here.

The problem can not be repeated, and no problem is found after the test. Please refer to the test example commit


Using a Twig template/front-end URL for a CSS File

Potentially related to #16, but I can't seem to get the path to a front-end URL or template working when listed in the CSS File(s) field.
I currently have a custom plugin generating CSS custom variables, and using variables to output them to the main wrapper. I've moved this its own template which loads successfully and outputs the processed Twig variables, but this content is not included in the CP CSS.
CSS File(s) field value:
<EMAIL_ADDRESS>
The redactor.css file is working properly, but the /styleGuide content is not being included. Any ideas?

I had a little more time to look into this today and noticed that, even though direct requests to /styleGuide were working properly, in the control panel it was returning 503. This may or may not be due to (what I thought were unrelated) issues I'm currently having on my local environment.
I also added {% header "Content-Type: text/css" %} to the template around the same time it started working, so that may have had something to do with it as well.
Thanks for a great plugin!

Ok great, glad you got it sorted out! 👍


Error when there is no production

Also, when it is night and no electricity is produced I am getting this error:
Logger: custom_components.tigo.tigo
Source: helpers/update_coordinator.py:354
integration: Tigo cloud ([documentation](https://github.com/MartinStoffel/tigo))
First occurred: 9:00:53 AM (238 occurrences)
Last logged: 12:57:55 PM

Unexpected error fetching TigoCoordinator data
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 354, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/tigo/tigo.py", line 178, in _async_update_data
    return await self.tigo_data.fetch_data()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/tigo/tigo.py", line 129, in fetch_data
    if self._lastTime != time:
                         ^^^^
UnboundLocalError: cannot access local variable 'time' where it is not associated with a value

All entities are blank and marked as unavailable.
Originally posted by @Testingfor101 in https://github.com/MartinStoffel/tigo/issues/4#issuecomment-2408911357

Just creatd a new Issue for this.
What should we report if there is no data available - apart form the fact that the error should be resolved.

At least put entities to zeros instead showing unavailable state.
I think this has to do with API, as it sends no data when solar panels not producing electricity.
https://ei.tigoenergy.com/api-docs/index
For example, data aggregate:
2024/10/12 18:26:00,0,0,0,0,0,0,0,2,2,0,2,0
2024/10/12 18:27:00,0,0,0,0,0,0,0,2,2,0,2,0
2024/10/12 18:28:00,0,0,0,0,0,,0,2,2,0,1,0
2024/10/12 18:29:00,0,0,0,0,0,,0,2,2,0,0,0
2024/10/12 18:30:00,1,0,0,0,0,,0,2,2,0,0,0
2024/10/12 18:31:00,0,0,0,0,0,,0,2,1,0,0,0
2024/10/12 18:32:00,0,0,0,0,0,,0,2,1,0,0,0
2024/10/12 18:33:00,0,0,0,0,0,,0,2,0,0,0,0
2024/10/12 18:34:00,1,0,0,0,0,,0,1,0,0,0,0
2024/10/12 18:35:00,0,0,0,0,0,,0,0,,,,
2024/10/12 18:36:00,1,0,0,0,0,,0,0,,,,
2024/10/12 18:37:00,1,0,0,0,0,,0,0,,,,
2024/10/12 18:38:00,1,0,0,0,0,,0,0,,,,
2024/10/12 18:39:00,1,0,0,0,0,,0,0,,,,
2024/10/12 18:40:00,1,0,0,0,,,0,0,,,,
2024/10/12 18:41:00,0,0,0,0,,,0,0,,,,
2024/10/12 18:42:00,0,0,,0,,,0,0,,,,
2024/10/12 18:43:00,0,0,,0,,,0,0,,,,
2024/10/12 18:44:00,0,0,,0,,,0,0,,,,
2024/10/12 18:45:00,0,0,,0,,,0,0,,,,
2024/10/12 18:46:00,0,0,,0,,,0,0,,,,
2024/10/12 18:47:00,0,0,,0,,,0,0,,,,
2024/10/12 18:48:00,0,0,,0,,,0,0,,,,
2024/10/12 18:49:00,0,0,,0,,,0,0,,,,
2024/10/12 18:50:00,0,0,,0,,,0,0,,,,
2024/10/12 18:51:00,0,0,,0,,,0,0,,,,
2024/10/12 18:52:00,0,0,,0,,,0,0,,,,
2024/10/12 18:53:00,0,0,,0,,,0,0,,,,
2024/10/12 18:54:00,0,0,,0,,,0,1,,,,
2024/10/12 18:55:00,0,0,,0,,,0,0,,,,
2024/10/12 18:56:00,0,0,,0,,,0,0,,,,
2024/10/12 18:57:00,0,0,,0,,,,,,,,
2024/10/12 18:58:00,0,0,,0,,,,,,,,
2024/10/12 18:59:00,0,0,,0,,,,,,,,
2024/10/12 19:00:00,0,,,0,,,,,,,,
2024/10/12 19:01:00,,,,,,,,,,,,
2024/10/12 19:02:00,,,,,,,,,,,,
2024/10/12 19:03:00,,,,,,,,,,,,
2024/10/12 19:04:00,,,,,,,,,,,,
2024/10/12 19:05:00,,,,,,,,,,,,
2024/10/12 19:06:00,,,,,,,,,,,,
2024/10/12 19:07:00,,,,,,,,,,,,
2024/10/12 19:08:00,,,,,,,,,,,,
2024/10/12 19:09:00,,,,,,,,,,,,
2024/10/12 19:10:00,,,,,,,,,,,,
2024/10/12 19:11:00,,,,,,,,,,,,
2024/10/12 19:12:00,,,,,,,,,,,,
2024/10/12 19:13:00,,,,,,,,,,,,

Works well!

Some of panels still at night shows Unknown state. Is there reason for this?


[SPARK-38202][CORE] Ignore jar download failures in Executor.run()

What changes were proposed in this pull request?
This change is to ignore failures in jar download when updating jar dependencies in Executor.run().
Why are the changes needed?
Currently when a user adds a jar with an invalid URL into SparkContext, all subsequent query executions will fail when trying to download that jar, even when the query has nothing to do with the jar dependency. This change is to fix that by ignoring the failure when downloading the jar.
Does this PR introduce any user-facing change?
Yes. After this change, users will be able to run queries even there are invalid URLs in SparkContext.addedJars.
How was this patch tested?
Added a unit test.

This change is to fix that by ignoring the failure when downloading the jar.

Is this really a good idea ?
The warning will be buried in the logs and it will be hard to notice that something is not as expected.

Yes there is a tradeoff between "making jobs that depend on the jar fail fast" vs "letting jobs that do not depend on the jar be runnable".
@dongjoon-hyun, I trust your judgement but could we have a way to fix a cluster after an incorrect "addJar"? Is adding a new API "removeJar" a good idea?

If your Spark job has a bug, you need to fix and resubmit it. It's not a Spark cluster issue.

could we have a way to fix a cluster after an incorrect "addJar"?

This is for the case when an incorrect addJar in a single notebook can block all others that connects to the same cluster.
Anyway let's close this PR for now.


How to create a stopwatch in javascript

Proposed title of article
How to create a stopwatch in javascript
Introduction paragraph (2-3 paragraphs):
In this article i will be explaining how to create stopwatch from scratch using javascript, html and css.I will also explain how to align and center elements using css, which a bit challanging to beginners.
This article is for beginner or intermidiate who what to have better understanding of javascript events,function and conditionals.
Key takeaways:
1.click event in javascript
2.basic css styling
3.javascript conditional
4.javascript function
References:
N/A

Good afternoon and thank you for submitting your topic suggestion.
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.

Hi @iankamau20
I did a direct search of this suggestion on the browser and I got a lot of articles, videos, and StackOverflow questions. So I was wondering if it really provides enough material that hasn't been done before.

Hello!  Yes, I am including css styling and JavaScript conditional which
are not implemented in most articles.Also I will explain different events
other than click event, which can  trigger the stopwatch.
I intend to make my article easier to understand since I will  include
documentation explaining what is happening at each line of code.
Thank you!
On Mon, Sep 20, 2021, 09:11 linusmuema @.***> wrote:

Hi @iankamau20 https://github.com/iankamau20
I did a direct search of this suggestion on the browser and I got a lot of
articles, videos, and StackOverflow questions. So I was wondering if it
really provides enough material that hasn't been done before.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/section-engineering-education/engineering-education/issues/3850#issuecomment-922659527,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASYUUOJDUGBWJAB2AFJZWH3UC3F7NANCNFSM5ECAG34A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Hi @iankamau20
After several inquiries and research, we have decided that the article would not provide enough content that hasn't already been published. There was just a lot on the internet that has the same exact content.
We also have another article that seems to have a similar topic and technologies as yours so we felt it did not provide enough "new" material.
We hope you understand.


generate a man page for cargo auditable

I needed a man page for cargo auditable, and thought it would be good form to also contribute it back upstream.
All of the content is taken from the README.md file

You will also need to commit the changes to Cargo.lock to make CI pass - the Cargo.lock being up to date is a requirement for packaging in some other distributions.

I'm going to merge this, then make a few manual changes on top, and make a release. Is that alright?

I've merged this, but then had to revert because it turned out the file is written to the wrong place.
In my case it was target/release/build/cargo-auditable-c1c528449aed5093/out/man-page/cargo-auditable/cargo-auditable.1 but that path is rather unpredictable.
I'm also not sure I want to put this in build.rs specifically. Would just shipping this in the Git source tree work for you? Are there any constraints on where the file should be placed?

It may be wise to look at how other Rust CLI applications such as ripgrep or fd-find handle this. I feel like we're reinventing the wheel here.

One pattern I have seen is to have it generated in build.rs, but also checked into git, here for example: https://github.com/bootandy/dust/blob/master/build.rs same with ripgrep: https://github.com/BurntSushi/ripgrep/blob/master/build.rs#L82

Thanks for the links. I'll get it working during the weekend.


Artifact expiration time-out should support serialised CI task execution

A week or two ago we had that (by accident) only one CI runner was active. This resulted in many internal CI jobs failing due to expired artifacts. However, it is probably wise that the artifact expiration is set so that serialised execution in principle is possible.
At current, there are two types of pipelines: develop/master vs. regular. In each, there are two build/consume pairs making each pipeline a 4-stage one. Put in a table, the most recent timings of a successful internal CI run are (entries in minutes, rounded upwards to halves):

Runtime
Stage 2
Stage 4

Develop
0.5+19+2+18.5
1+2+18.5

Regular
0.5+1.5+18.5
0.5+3.5

A careful estimate doubles the above numbers to set the artifact timeouts of stages 1 and 3 with:

Timeouts
Stage 1
Stage 3

Develop
80
43

Regular
41
8

This issue proposes to update the current artifact time-outs with the above new time-out values, whenever the current values are indeed lower than the table suggests.

Merged into develop, closing


Nucleo board Slow Code execution at power up - need to always reset

I am developing a system based on STM32 SoC using Nucleo board and found that when powering on the board the code is executing slower than normal. When i press the RESET button on the board everything come back to normal and my code is executing normally.
To investigate the issue i decided to execute the Blinking LED sample app delivered with Zephyr code and figured out that the same issue is happening also. The main loop should blink the LED every second but it's blinking a lot slower until i press the reset button. After the reset the LED blink normally.
I decided to debug it and saw that it seems to be related to the irq_unlock code which takes longer. From what i saw so far, it seems to be related to context switching taking really long to execute.
To Reproduce
Steps to reproduce the behavior:

Go to the blinking LED sample folder in zephyr/samples/basic/blinky
west build -p auto -b nucleo_f303re .
west flash --openocd /usr/local/bin/openocd

Expected behavior
The LED on the board should blink every second.
Impact
showstopper since i always need to manually reset the board
Environment (please complete the following information):

OS: MacOS
GNU ARM Embedded
Last Master branch version

Additional context
Add any other context about the problem here.

Could you please re-test now with #26036 merged?

Hi @tagunil it fixes the problem ! Thanks for your help on that !!
No more latency at the startup


Issues in building scratch [Important help needed](please help)

i followed the wiki the issues/output are as followed below,

please give a proper video Tutorial on how to build scratch locally

C:\Scratch\scratch-blocks-develop>npm install

><EMAIL_ADDRESS>install C:\Scratch\scratch-blocks-develop\node_modules\chromedriver
> node install.js

ChromeDriver binary exists. Validating...
ChromeDriver is already available at 'C:\Users\nepto\AppData\Local\Temp\94.0.4606.61\chromedriver\chromedriver.exe'.
Copying from C:\Users\nepto\AppData\Local\Temp\94.0.4606.61\chromedriver to target path C:\Scratch\scratch-blocks-develop\node_modules\chromedriver\lib\chromedriver
Done. ChromeDriver binary available at C:\Scratch\scratch-blocks-develop\node_modules\chromedriver\lib\chromedriver\chromedriver.exe
npm WARN prepublish-on-install As of npm@5, `prepublish` scripts are deprecated.
npm WARN prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only.
npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information.

><EMAIL_ADDRESS>prepublish C:\Scratch\scratch-blocks-develop
> python build.py && webpack

Using local compiler: google-closure-compiler.cmd ...

The command line is too long.
UNKNOWN ERROR
SUCCESS: blockly_uncompressed_horizontal.jsThe command line is too long.
SUCCESS: blockly_uncompressed_vertical.js

UNKNOWN ERROR
SUCCESS: blocks_compressed_horizontal.js
Size changed from 39 KB to 19 KB (49%).
blocks_vertical/vertical_extensions.js:54: WARNING - Misplaced function annotation. This JSDoc is not attached to a function node. Are you missing parentheses?
  return function() {
  ^^^^^^^^^^^^^^^^^^^

0 error(s), 1 warning(s)
SUCCESS: blocks_compressed_vertical.js
Size changed from 179 KB to 90 KB (50%).
SUCCESS: blocks_compressed.js
Size changed from 22 KB to 8 KB (37%).
 Exit status 2
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>prepublish script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      C:\Users\nepto\AppData\Roaming\npm-cache\_logs\2021-12-05T06_26_48_366Z-debug.log

I have python 2.7.18
I have java JDK,JRE(I am a proper java developer so no issues in it)
I have Node JS

You may be encountering this issue: https://github.com/LLK/scratch-blocks/issues/2080
Unfortunately we have not been able to resolve it yet.


Create large block and transaction test cases

As part of block and transaction validation (#428), we'd like to test large blocks and transactions.
Since Sapling, the maximum block and transaction size is 2,000,000 bytes (MAX). (Note that the maximum size of a transaction is actually slightly lower, because the block also contains a block header, and a transaction count compact size field.)
We would like the following test cases:
Block parsing:

a MAX size block
a (MAX+1) size block

Mempool transaction parsing:

~a MAX size transaction~ (moved to #571)
~a (MAX+1) size transaction~ (moved to #571)
a transaction that's the largest size that will fit in a MAX size block (moved mempool testing to #571)
a transaction that's 1 byte larger than the largest size that will fit in a MAX size block (moved mempool testing to #571)

These blocks and transactions should use the latest block and transaction formats (Blossom or Heartwood).
Our property tests may already cover these cases, but they are edge cases, so we'd like to be sure.
This issue is open to external contributors. But the Zebra team might also create some of these test cases ourselves.

Resolved by #558


Update data viz things

Summary
Attempting to address #107 and #106
Again, since I wasn't at the event I'm not exactly sure if these address the needs so feel free to adjust as necessary.

Resolves #106
Resolves #107


Bring things up to date

This adds support for Cabal 0.21.

This patch (as well as bumping the upper bounds of base to < 4.9) allows me to build packunused with GHC 7.10.

@bgamari: I think the Travis builds are failing because the latest version of Cabal on Hackage is <IP_ADDRESS>, which cannot be used due to the upper version bounds. Can you bump it to Cabal < 1.23 and see if it works?

I'm actually surprised actually the MIN_VERSION_Cabal() macro has wrong arguments... you also may want to add to update the .travis.yml file to include GHC 7.10.1 + cabal-install 1.22 in the build-matrix

@hvr indeed.

fyi, I just uploaded http://hackage.haskell.org/package/packunused-<IP_ADDRESS>


[Windows CI] Fix issue with Slack message for flaky tests

Signed-off-by: Sotiris Nanopoulos<EMAIL_ADDRESS>See recent CI build runs and https://github.com/slackapi/python-slack-sdk/issues/334#issuecomment-520246083
Risk Level: Low
Testing: CI

cc @envoyproxy/windows-dev creating as Draft and I will push a few empty commits to hopefully get some flakes and see the message in the chat.

cc @envoyproxy/windows-dev creating as Draft and I will push a few empty commits to hopefully get some flakes and see the message in the chat.

you might have to turn off caching here otherwise all the tests will always pass in this PR and we wont see flakes

@lizan @sunjayBhatia you can review now.

@davinci26 maybe just add a comment in the script describing why this is necessary? otherwise LGTM, seems to work 👍

@davinci26 maybe just add a comment in the script describing why this is necessary? otherwise LGTM, seems to work 👍

for posterity, there was a flaky test here: https://dev.azure.com/cncf/4684fb3d-0389-4e0b-8251-221942316e06/_apis/build/builds/59567/logs/158

@davinci26 maybe just add a comment in the script describing why this is necessary?
Added a small comment


Add favicon to tmt docs

Pull Request Checklist

[x] implement the feature

Nice! Thanks for the improvement. Thinking a bit about the icon size: Currently the image is 700x700 and the size is 432K, so the icon is larger then the page content :) But it will be cached, I guess, so probably not worth it?

It will be cached for sure, and we definitely can create a smaller one :)

Ok :) Adding here: https://github.com/teemtee/docs/pull/5

See the .ico from https://github.com/teemtee/tmt/pull/3072 (on the left) vs tmt.readthedocs.io/en/latest/

@martinhoyer Yeah, I didn't bother, I wouldn't even notice the image looks a bit weird on my screen. I guess it's like the sound quality, at some point my human ear don't hear the difference :)

@martinhoyer Yeah, I didn't bother, I wouldn't even notice the image looks a bit weird on my screen. I guess it's like the sound quality, at some point my human ear don't hear the difference :)

/me hiding his audio equipment :eyes:


4Gb download limit

Our service uses your API and some of our users are complaining because they can't download some of their biggest files. After investigation, we realized that an undisclosed 4Gb limit exists on downloads. I don't know if the same limit exists on upload, maybe it was added later, but the fact is that users have their files "trapped" in OneDrive.
Investigations lead me to this thread :
https://answers.microsoft.com/en-us/onedrive/forum/odwork-odshare/any-way-around-4gb-download-limit/46e80faa-bb1b-400b-9140-49f7994a666b
It is suggested that people trying to download a folder at once should split it. This tip can not be applied to my issue since there is no way to split a unique file before downloading it.
We tried splitting requests in < 4Gb requests using the "Range" header, but the requests still fail with a 429 code. This is the rate limit code but since it only happens with files over 4Gb and our requests stay the same we deduced the issue was the size and not the way we do the requests.
We use the @content.downloadUrl url to download, but I don't think there is another one since  /drive/items/{item-id}/contentredirects to it too.
Do you have any indication on how to proceed in this case?
Thank you for your time

Hi @silto, can you confirm whether you're seeing this behavior on OneDrive Consumer or OneDrive Business?

It looks like the user who noticed this problem had a premium consumer account (1To).

Our test account is a consumer basic account but I'm still in the process of uploading a >4Gb file to reproduce

OneDrive Consumer has a 10GiB file size limit, so you should definitely be able to download >4GiB. Do you have any logs that would indicate what error the clients encounter at this boundary?
Also, when you hit the 429 how many requests have you made? What range sizes are you requesting?

I just uploaded a 5GiB file, and downloaded it successfully with the following code:
    using (var fileStream = new FileStream(@"c:\temp\downloadedlarge.dat", FileMode.Create, FileAccess.Write))
    {
        HttpWebRequest request = WebRequest.CreateHttp(contentUrl);
        HttpWebResponse response = null;
        try
        {
            response = (HttpWebResponse)request.GetResponse();
            using (var stream = response.GetResponseStream())
            {
                stream.CopyTo(fileStream);
            }
        }
        catch (WebException ex)
        {
            response = (HttpWebResponse)ex.Response;
        }
        finally
        {
            if (response != null)
            {
                response.Dispose();
            }
        }
    }

So we'll need to see the error to debug further.

I'm going to close this issue - please reopen if you any new information comes up that would point to an issue on our side.

HI there
I believe this issue still exists

Yes, the issue exists. When downloading a  folder that is larger than 4gb, it cannot be unzipped and opened .

To my knowledge the API described by this documentation does not support downloading a folder as a zip. How are you triggering the download? Is this an action through the web site?


code tunnel mistake

Does this issue occur when all extensions are disabled?: yes

VS Code Version: code-cli 1.80.0 (commit 6cd5ac180a6362b45b415a624f62173caf7428a1)
OS Version: Ubuntu 20.04.6 LTS

Steps to Reproduce:

code tunnel
Agree terms
thread 'main' panicked at 'Cannot start a runtime from within a runtime. This happens because a function (like block_on) attempted to block the current thread while the thread is being used to drive asynchronous tasks.', /home/cloudtest/.cargo/registry/src/github.com-1ecc6299db9ec823/zbus-3.13.1/src/utils.rs:47:14
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.79.0. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

I can reproduce this problem with:

VS Code verison 1.80.0-insider (commit 6cd5ac1)
Ubuntu 22.04.2 LTS

Following the same procedure.

This bug has been fixed in the latest release of VS Code Insiders!
@sweetcoffee520, you can help us out by commenting /verified if things are now working as expected.
If things still don't seem right, please ensure you're on version 6545c4c2671127c323182225963fcd732e1fbcc5 of Insiders (today's or later - you can use Help: About in the command palette to check), and leave a comment letting us know what isn't working as expected.
Happy Coding!

/verified


Pushing sample ADF pipeline

ADF pipeline and documentation for moving data into CI from Dataverse

I'm closing this PR since there is no active work here. Let me know if you wish to reopen and have it merged. @ilyavenger


Graph.add_edges and add_vertices don't take List inputs

Description of bug / unexpected behavior

The documentation shows add_edges taking List[Tuple[Hashable, Hashable]] and add_vertices taking List[Hashable] but inputting these types yields a TypeError: unhashable type: 'list'.
Expected behavior

Methods take List inputs
How to reproduce the issue

Code for reproducing the problem
class GraphTestScene(Scene):
    def construct(self):
        g = Graph([1, 2], [(1,2)])

        g.add_vertices([3, 4])
        g.add_edges([(1,3), (3,4)])

Additional media files

Images/GIFs

Logs
Terminal output

PASTE HERE OR PROVIDE LINK TO https://pastebin.com/ OR SIMILAR

System specifications
System Details
This is being done on the provided Docker image

OS (with version, e.g Windows 10 v2004 or macOS 10.15 (Catalina)):
RAM:
Python version (python/py/python3 --version):
Installed modules (provide output from pip list):

PASTE HERE

LaTeX details

LaTeX distribution (e.g. TeX Live 2020):
Installed LaTeX packages:

FFMPEG
Output of ffmpeg -version:
PASTE HERE

Additional comments

Indeed, the type hints are wrong according to PEP484; the vertices and edges are starred arguments, you can pass
        g.add_vertices(3, 4)
        g.add_edges((1,3), (3,4))

which is consistent with some other parts of the library (like Groups etc.).

Thanks @behackl that fixes it. Is this something that should be changed in the docs though?

Thanks @behackl that fixes it. Is this something that should be changed in the docs though?

According to PEP 484 it seems that the type hints should actually be Tuple[Hashable, Hashable] for the *edges parameter in add_edges, and *vertices in add_vertices should be Hashable. It would be a good first issue to fix! :-)

#2055


Use new tools.mk structure for rclone

Pull Request Motivation
In #5398, I introduced Makefile target generation for the tools.mk file.
Somehow, I missed that the rclone target was not working yet.
This PR fixes that bug.
Kind
/kind bug
Release Note
NONE

Oops, I did not catch that while reviewing #5398.
/lgtm


make t-shirts!

People are clamoring—clamoring I tell you!—for new Catapult t-shirts.


External IP Address

Hi i have successfully managed to get the IR blaster working. currently at the bottom of the webpage is says failed to retrieve external IP.
I have put in my external IP and :9090 from my phone (on 4g) and successfully accessed the web page so i know the port forwarding etc is fine.
Below is the comments from the bottom of the web page
38979ms uptime; EPOCH 38
Device secured with SHA256 authentication. Only commands sent and verified with Amazon Alexa and the IR Controller Skill will be processed
Error - unable to retrieve external IP address, this is likely due to improper network settings
Error - EPOCH time is inappropraitely low, likely connection to external time server has failed, check your network settings
Any suggestions what to try next?
Thanks

It might be a DNS issue, are you using lwIP 1.4 or 2.0 when you compile and upload?

Yes, i solved it changing lwIP to 1.4 version in board serttings. Compile and upload again

I will try downgrading
It works fine when I manually input the external ip
Thanks

Any updates?


Connection to firehose broken

I've been using a custom sink similar to this one https://github.com/streamingfast/aptos-indexer/. It's been working fine so far until I update firehose-aptos to the latest version.
There seems to be some issues with the TCP connections. More specifically I'm seeing the following error when I run the sink.
Received error An error occurred while streaming blocks: Status { code: Unknown, message: "error reading a body from connection: broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Kind(BrokenPipe)) })) }
Processor stopped
2023-02-02T08:15:04.544516Z ERROR lapin::io_loop: error doing IO error=IOError(Custom { kind: Other, error: "IO driver has terminated" })
2023-02-02T08:15:04.544603Z ERROR lapin::channels: Connection error error=IO error: IO driver has terminated

Were you able to run and received some blocks or never succeed to connect and stream something with the new version?

Were you able to run and received some blocks or never succeed to connect and stream something with the new version?

it literally disconnects straightaway

Ok that's a bit strange at first sight. Do you see something in firehose logs when doing the connection?

Ok that's a bit strange at first sight. Do you see something in firehose logs when doing the connection?

I will try to further debug this and let you know with what my findings are

@maoueh sorry for the late response. So I did finally give it a go this morning. I setup everything locally to check the logs. It turns out that the issue is still this one https://github.com/streamingfast/firehose-aptos/issues/15. I could easily see it on the remote server because it was running in a process manager so it'd restart the process. But now that I run this locally, I can see that the moment the Sink connect to firehose the same error appears. I'm running the latest commit #5d683d6
Let me share the share the error logs again.
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x70 pc=0x103e7cfac]

goroutine 2210 [running]:
github.com/streamingfast/substreams/service.(*StreamFactory).New(0x1400014aa20, {0x105580660, 0x140002899e0}, {0x1055654a0, 0x140007f4000}, 0x103e7baf0?, 0x9184e72a000, {0x0, 0x0}, 0x0)
        /Users/xxxxx/go/pkg/mod/github.com/streamingfast/substreams@v0.2.1-0.20230130195638-895599b398e8/service/stream.go:47 +0x2ac
github.com/streamingfast/substreams/service.(*Service).blocks(0x1400079def0, {0x105580660, 0x140005bd080}, {0x3e8, 0x61a8, 0x2, {0x10558c1b8, 0x140004377c0}, 0x14000abbf00, 0x0}, ...)

@maoueh I have updated to the latest substream version 1.0.0 to no avail. I still see the same error which.

This PR fixes this issue https://github.com/streamingfast/firehose-aptos/pull/17/files


Add Font Awesome Icons to all of our Buttons: "DELETE" cut off page

Challenge Name

https://www.freecodecamp.com/challenges/add-font-awesome-icons-to-all-of-our-buttons#?
Issue Description

when adding the trash glyphicon, "Delete" text is cut off due to padding from "container" class.
Browser Information

using macbook with 13inch screen

Browser Name, Version:
Google Chrome
Operating System: El Capitan OSX
Desktop

Screenshot

Closing as a duplicate of #7842. Thanks and happy coding!


Sandboxed + Non Sandboxed apps.

please change Windows 10 + package manager so that when we install the app from winget we have an option to sandbox the app or run it natively.  that will give the end user total confidence and will unify the whole ecosystem of sandboxed + non-sandboxed apps.
It would be the same as you currently run any app on windows 10 with option to "run as admin" or as "normal user"

I agree, to have a system to have sandboxed app containers, preferably one for the program data, one for the data files.

@Pinox we've added support for "--scope" to be either "user" or "machine". Not all installers honor both scopes, but we've also added an elevation requirement to the schema as well so packages like Spotify and Postman will inform you when you try to install via administrator that they aren't supported, and other packages that require elevation will do the same. If the installer requires elevation, but it does so itself, you will also be informed that a UAC (User Account Control) prompt is required.
Does that address your ask here, or is there still something else you're looking for?

It's possible with WinGet Configuration to automate the creation of the Windows Sandbox and run a script to install packages in the Sandbox. There is a sample configuration over at https://aka.ms/dsc.yaml.


Implements StylePropertyMap append

Current dependencies on/for this PR:

main

PR #36   👈

This comment was auto-generated by Graphite.


Since it requires a type to add, and you can't add two of the same ty…

…pe, it only makes sure to take into the account so the port_defined function will grep for the type, and not just /^/, which triggers when using any ports already defined by default.
Signed-off-by: Bryan Killian<EMAIL_ADDRESS>

Thanks for the PR! Would you mind cleaning the name / description and provide some example cases?
I think I've got it, but not completely sure.

@trilom yeah that's a lot of testing :)
I'm sorry I can't thoroughly review it as I'm not very into SELinux Chef things these days, but I think what we're really missing is regression testing, e.g. a testcase (kitchen based probably) that will fail without your "fix" to explain the problem you're trying to fix.
Apologies if this is what your test is currently doing and I didn't get that

Leaving a comment to let you know that there is a kitchen test now added that would fail at the current master head, the branch here corrects that problem.

Hey @trilom could you resolve the conflicts please?
The metadata.rb conflict is a licence change to Apache-2.0.
thanks!

attempting to resolve, but this sat shelved for a while.  the fcontext.rb change should be dropped.
thanks

Looks good I'm going to pull in my foodcritic fix branch, which fixes the error you're seeing.


Update the README to be a bit more descriptive

Add images of website to readme

Go ahead, you can link a PR to this issue!


Financial Calculator

Financial Calculator
Feature Pitch Link: Microsoft/calculator#806

Another thing is should we use a text box or slider control for the term field? Can we use the number box instead of the text box (requires WinUI 2.3 and 2.4)

Also, can anyone help me with the booleantovisibility conversion (see gif below:)?

Okay, I found the numberbox. Add in xmlns:muxc="using:Microsoft.UI.Xaml.Controls" and then muxc:NumberBox

Hello?

@joseartrivera? @sanderl? What do you think?

Hi @Chips1234, Thanks so much for writing the spec for Financial Calculator. @grochocki will be able to answer your questions about the spec. He is pretty busy so it may take a bit for him to get back to you.

Ah, I was wondering. Thanks!

From: Stephanie Anderl<EMAIL_ADDRESS>Sent: Tuesday, July 14, 2020 3:51:10 PM
To: microsoft/calculator-specs<EMAIL_ADDRESS>Cc: Eric Tian<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [microsoft/calculator-specs] Financial Calculator (#22)
Hi @Chips1234https://github.com/Chips1234, Thanks so much for writing the spec for Financial Calculator. @grochockihttps://github.com/grochocki will be able to answer your questions about the spec. He is pretty busy so it may take a bit for him to get back to you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/calculator-specs/pull/22#issuecomment-658451190, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALKX3RWYUMMKXVSQAU7TVHTR3TON5ANCNFSM4OXQYOSQ.

@sanderl If you could give some feedback and review this, that would be great. Thanks

Hello?

@EriWong could you take a look? And possibly the other pr's (they've been inactive for a while now) thanks!

Taking a look at this now.  Sorry for the delay.

@Chips1234 Sorry for the delay. I'll see if I can bring this up with for our next set of feature pitch reviews. If there's anything we find that you need to add to this, we'll let you know.

Thanks!

As an aside, if you are working on a code sample and have questions about implementations, if you share with us your repo/branch information, we can probably more easily help you out in figuring out what's happening (with your conversion or with other things as well).

You can look at my branch here. Thanks again!

@Chips1234 I think I figured out the converter issue you encountered and it's a tricky one.
So I don't think m_FinanceCalcViewModel is actually getting set when navigating.  As a result, I'm not exactly sure what the view is bound to...  At any rate, I instatiated that, and am now hitting an error where IsCompound is not defined in your viewmodel.  This now makes more sense as I think you're casing in the viewmodel has it as isCompound.  After fixing that, everything seems to work.

@Chips1234 I think I figured out the converter issue you encountered and it's a tricky one.
So I don't think m_FinanceCalcViewModel is actually getting set when navigating.  As a result, I'm not exactly sure what the view is bound to...  At any rate, I instatiated that, and am now hitting an error where IsCompound is not defined in your viewmodel.  This now makes more sense as I think you're casing in the viewmodel has it as isCompound.  After fixing that, everything seems to work.

Ah, okay. Thank you!

@EriWong so how do you suggest we hook up the ViewModel, and what other feedback do you have? Thanks

@Chips1234 take a look at src\CalcViewModel\ApplicationViewModel.cpp and debug through the OnModeChanged method.

@Chips1234 One other thing to keep in mind is that this feature spec isn't signed off yet, and so there may be changes that are asked, and any code you are writing for it should really be treated more as prototyping.
If you're enjoying coding this up, by all means continue.  I just wanted to make sure you aren't spending a ton of time working on code that might ultimately need to change.
Also, I wanted to say thanks for contributing to Calculator.  We really do appreciate it.

You’re welcome! Yes, I understand. This is just a prototype I’m working on.
From: Eric<EMAIL_ADDRESS>Sent: July 31, 2020 15:13
To<EMAIL_ADDRESS>Cc: Eric<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject: Re: [microsoft/calculator-specs] Financial Calculator (#22)
@Chips1234https://github.com/Chips1234 One other thing to keep in mind is that this feature spec isn't signed off yet, and so there may be changes that are asked, and any code you are writing for it should really be treated more as prototyping.
If you're enjoying coding this up, by all means continue. I just wanted to make sure you aren't spending a ton of time working on code that might ultimately need to change.
Also, I wanted to say thanks for contributing to Calculator. We really do appreciate it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/calculator-specs/pull/22#issuecomment-667408175, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALKX3RSGZFSTGL6AC7QRHMTR6M6XDANCNFSM4OXQYOSQ.

Thank you for taking a look at this feature (and sorry it has taken a little while for taking a closer look)! Some thoughts and feedback on your spec:

You mention that we will support calculating tips. I really like this, but in general, we'll want to be explicit about what each mode looks like and the fields and equation we'll use to calculate the results.
Interest is more complicated than just compound interest. Does the compound interest include the principal? Or are we just calculating the interest? How about basic interest? If we are going to introduce a new calculator mode, we'll want to be thorough with the initial set of calculations we support. Like with tips, we'll want to be explicit about each of these as well as the fields and equations we'll use for each.
Should we only support calculating the end result (i.e., interest) or might it be more useful to solve for any variable? For example, when calculating interest, it might be interesting to solve for the amount of time it would take to earn a certain amount of interest. This may impact how we display each field as well as handle any "calculate" action.
For time/term, should we only support years? How about days/months?
How do we handle data input validation/show errors for invalid input?
We should think about they layout reflows with different window sizes. For the default Calculator window, I suspect having fields next to each other as you show in your mocks will be tight, especially for locales with longer translations or if the user has display scaling enabled.
We should double check to see what the most common terminology is for each field (e.g., "base rate" vs. "principal").
"Financial Calculator" means something really specific. Is this the best name for this mode? We'll want to think through this and find an icon that works that does not duplicate the icon for currency. We'll need to work with some internal folks on the icon, but open to suggestions.
I really like the "Over 10 years..." bit. I think this will help users better understand the result.
The color of the "Calculate" button changes between your mocks. Is this intentional? Or does this match the accent color? In general, we prefer to use the default control styling, unless there is a really good reason to deviate.

Overall, this is a really great start, but I think we'll want to add some more details before we move forward.

Alright. Will start the planning

From: Dave Grochocki<EMAIL_ADDRESS>Sent: Monday, August 10, 2020 11:55:35 PM
To: microsoft/calculator-specs<EMAIL_ADDRESS>Cc: Eric Tian<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [microsoft/calculator-specs] Financial Calculator (#22)
Thank you for taking a look at this feature (and sorry it has taken a little while for taking a closer look)! Some thoughts and feedback on your spec:

You mention that we will support calculating tips. I really like this, but in general, we'll want to be explicit about what each mode looks like and the fields and equation we'll use to calculate the results.
Interest is more complicated than just compound interest. Does the compound interest include the principal? Or are we just calculating the interest? How about basic interest? If we are going to introduce a new calculator mode, we'll want to be thorough with the initial set of calculations we support. Like with tips, we'll want to be explicit about each of these as well as the fields and equations we'll use for each.
Should we only support calculating the end result (i.e., interest) or might it be more useful to solve for any variable? For example, when calculating interest, it might be interesting to solve for the amount of time it would take to earn a certain amount of interest. This may impact how we display each field as well as handle any "calculate" action.
For time/term, should we only support years? How about days/months?
How do we handle data input validation/show errors for invalid input?
We should think about they layout reflows with different window sizes. For the default Calculator window, I suspect having fields next to each other as you show in your mocks will be tight, especially for locales with longer translations or if the user has display scaling enabled.
We should double check to see what the most common terminology is for each field (e.g., "base rate" vs. "principal").
"Financial Calculator" means something really specifichttps://www.bing.com/images/search?q=finance+calculator. Is this the best name for this mode? We'll want to think through this and find an icon that works that does not duplicate the icon for currency. We'll need to work with some internal folks on the icon, but open to suggestions.
I really like the "Over 10 years..." bit. I think this will help users better understand the result.
The color of the "Calculate" button changes between your mocks. Is this intentional? Or does this match the accent color? In general, we prefer to use the default control styling, unless there is a really good reason to deviate.

Overall, this is a really great start, but I think we'll want to add some more details before we move forward.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/calculator-specs/pull/22#issuecomment-671765145, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALKX3RW7CCVIWIB2SQRIMQDSADTOPANCNFSM4OXQYOSQ.

Alright, I have a few questions:

If we shouldn't call it "Financial", what should we call it?
How would we support months and days?
If we support calculating more then just the end result, should we do a table, graph?

If we shouldn't call it "Financial", what should we call it?

I think it might be ok, but we just need to recognize that some users who are expecting a full financial calculator may be disappointed.

How would we support months and days?

The math should be easy, but for the UI, we could maybe do something like this:

If we support calculating more then just the end result, should we do a table, graph?

I thought about this a bit more, and perhaps it is too complicated for what we are looking to do here. Being able to calculate anything is more of a generic formula solver, which I think might be an entirely different feature.

@Chips1234 I think I figured out the converter issue you encountered and it's a tricky one.
So I don't think m_FinanceCalcViewModel is actually getting set when navigating. As a result, I'm not exactly sure what the view is bound to... At any rate, I instatiated that, and am now hitting an error where IsCompound is not defined in your viewmodel. This now makes more sense as I think you're casing in the viewmodel has it as isCompound. After fixing that, everything seems to work.

@EriWong Sorry to bother your weekend but I still do not quite understand. Could you maybe share with me the code that you have? Thank you.

@Chips1234 Sorry if I wasn't super clear.  Take a look at ApplicationViewModel::OnModeChanged()  (around line 126 in ApplicationViewModel.cpp).
In there, there is an if block around NavCategory::IsCalculatorViewMode(m_mode).  Looking at the code there, we get the following check:
bool NavCategory::IsCalculatorViewMode(ViewMode mode)
{
    // Historically, Calculator modes are Standard, Scientific, and Programmer.
    return !IsDateCalculatorViewMode(mode) && !IsGraphingCalculatorViewMode(mode) && IsModeInCategoryGroup(mode, CategoryGroupType::Calculator);
}

The IsModeInCategoryGroup call is returning true.    As such, this thinks you want to bind a standard calculator viewmodel to your financial calculator.  It looks like date calculation and graphing calculator modes also fall into this pattern, hence the somewhat awkward if statement above.
A short term fix would be to add financial calculator to the IsCalculatorViewMode check (that's what date and graphing modes did).  Longer term, we may want to clean this up to something a little clearer, but that's probably outside the scope of this change.

@EriWong Ah, okay. I understand now. How about the switch from compound interest calculation mode and tip calculation? Thanks

From: Eric Wong<EMAIL_ADDRESS>Sent: Monday, August 17, 2020 3:47:12 PM
To: microsoft/calculator-specs<EMAIL_ADDRESS>Cc: Eric Tian<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [microsoft/calculator-specs] Financial Calculator (#22)
@Chips1234https://github.com/Chips1234 Sorry if I wasn't super clear. Take a look at ApplicationViewModel::OnModeChanged() (around line 126 in ApplicationViewModel.cpp).
In there, there is an if block around NavCategory::IsCalculatorViewMode(m_mode). Looking at the code there, we get the following check:
bool NavCategory::IsCalculatorViewMode(ViewMode mode)
{
// Historically, Calculator modes are Standard, Scientific, and Programmer.
return !IsDateCalculatorViewMode(mode) && !IsGraphingCalculatorViewMode(mode) && IsModeInCategoryGroup(mode, CategoryGroupType::Calculator);
}
The IsModeInCategoryGroup call is returning true.  As such, this thinks you want to bind a standard calculator viewmodel to your financial calculator. It looks like date calculation and graphing calculator modes also fall into this pattern, hence the somewhat awkward if statement above.
A short term fix would be to add financial calculator to the IsCalculatorViewMode check (that's what date and graphing modes did). Longer term, we may want to clean this up to something a little clearer, but that's probably outside the scope of this change.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/calculator-specs/pull/22#issuecomment-675152195, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALKX3RTLVW4I7JIRIAAFG7DSBGXPBANCNFSM4OXQYOSQ.

@Chips1234 Once you populate m_FinanceCalcViewModel correctly, switching between tip and interest modes should work.  The issues you were seeing were due to m_FinanceCalcViewModel not being correctly initialized.

Ok, thanks

From: Eric Wong<EMAIL_ADDRESS>Sent: Monday, August 17, 2020 4:43:33 PM
To: microsoft/calculator-specs<EMAIL_ADDRESS>Cc: Eric Tian<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [microsoft/calculator-specs] Financial Calculator (#22)
@Chips1234https://github.com/Chips1234 Once you populate m_FinanceCalcViewModel correctly, switching between tip and interest modes should work. The issues you were seeing were due to m_FinanceCalcViewModel not being correctly initialized.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/calculator-specs/pull/22#issuecomment-675169270, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALKX3RU5ZMB7HF4JKK4VN2LSBG6CLANCNFSM4OXQYOSQ.

@EriWong thanks again. It has worked. However (look at the gif below) the switching between modes does not seem to work. Thanks!

Here's my try at layout reflows:

If anyone can help me with it that'd be great. Thanks

@grochocki any more suggestions?

@Chips1234 apologies for the delay.  With respect to reflow, it's probably worth looking at how other pages handle reflow.  If you take a look at Calculator.xaml and take a look at <VisualStateGroup x:Name="LayoutVisualStates" ...>  You can see how we handle it there.

Hello @EriWong, if I have three options in the ComboBox (for example, I add the "Simple Interest" option), what would be a good way to show/hide the grids? Thank you.

Hello @EriWong, if I have three options in the ComboBox (for example, I add the "Simple Interest" option), what would be a good way to show/hide the grids? Thank you.

NumberBoxes or TextBoxes?

NumberBoxes or TextBoxes?

@mdtauk, I am using NumberBoxes.

@mdtauk, I am using NumberBoxes.

If space becomes tight, you could switch the Number of spin buttons between inline and compact

If space becomes tight, you could switch the Number of spin buttons between inline and compact

@mdtauk, Thank you for your tips. I'll do that.

@mdtauk, Thank you for your tips. I'll do that.