fix(FN-3460): fix numerical rounding errors during report upload

Introduction :pencil2:
During bank report upload to portal, we occasionally observe floating-point rounding errors for numerical cells. These are presented as validation errors (see screenshot below), meaning the report cannot be submitted.
Facility utilisation values of 3938753.80 and 761579.37 are two examples of this.
A spreadsheet with this issue has been attached to the ticket itself.
This affects production.
Validation errors for the above figures:
Note that the value displayed in Excel (3938753.80) does not match the value in the entry column of the first row (due to this rounding issue).

Resolution :heavy_check_mark:

Added a handler function to handle any floating-point rounding errors and correct these

Checks if the rounded 2 decimal place value is within 1e-6 of the original figure. If it is, we take the rounded value, otherwise we use the original figure. This approach means we can still handle genuine errors such as 12.345 (which isn't 2 DP, but is not a floating-point rouding error either).

Updated valid report spreadsheets in the e2e tests to include the two rows with the above problematic facility utilisation values.

Miscellaneous :heavy_plus_sign:
N/A

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

Project coverage is 28.27%. Comparing base (1f4b137) to head (94e48d3).

Additional details and impacted files
@@                Coverage Diff                @@
##           release-2.0.1    #3546      +/-   ##
=================================================
- Coverage          33.16%   28.27%   -4.90%
=================================================
  Files               1397      825     -572
  Lines              31254    18397   -12857
  Branches            5002     2555    -2447
=================================================
- Hits               10366     5201    -5165
+ Misses             18266    12000    -6266
+ Partials            2622     1196    -1426

Flag
Coverage Δ

api-test
0.39% <ø> (ø)

unit-test
28.64% <100.00%> (-4.79%)
:arrow_down:

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

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

Ignoring failing company house tests due to head branch ahead with recent company house API response change and possibly due to APIM migration.


docs: add roadmap in readme

refs: https://github.com/kataw/kataw/discussions/128

LGTM. But move the Roadmap to end of the readme.

I will fix v. 0.1, but I let you handle the bullet points for v. 0.2 👍

@aladdin-add friendly ping

@aladdin-add friendly ping

@aladdin-add I think the readme in this PR is kind of messed up ;)

missing a blank line before the toc, should be addressed now. :)

Shouldn't be added after the intro text? Makes it more readable.
And missing a section about printing

Shouldn't be added after the intro text? Makes it more readable.

yes, it should be. but the intro is a bit too long. it makes sense the toc be in the first page. thoughts?

You either split up the intro or rewrite it and then merge.  Everything is fine.

I still think you need to adjust the readme. Now at the top 'kataw' is used 3x. Should reduce to 1.

I still think you need to adjust the readme. Now at the top 'kataw' is used 3x. Should reduce to 1.


Content of text nodes is not escaped

When writing normal Elm, one does not have to do much escaping to avoid xss since, for example, Html.text just creates a text node, which cannot be interpreted as containing any tags.
When converting to html though, this library should ideally parse escape the contents of text nodes, so a view like
view : Html msg
view =
   Html.text "<script>//do evil stuff</script>"

does not generate malicious html files.
I realize this project may be superceded by a native Elm workflow in 0.19, but until then I feel this is still a security concern.

Since elm 0.19 seemingly won't be shipping with any static rendering capability built-in I think this issue might be relevant after all. Especially since the behaviour differs from how elm normally works. Code that was perfectly safe with pure elm suddenly becomes vulnerable when statically rendering.
Is there anything I can do to help dealing with this issue? Or is there anything I am missing and this isn't a problem after all?
(sorry if this comes across as demanding or similar. English is not my first language and I am just trying to start discussion of this issue :innocent:
I appreciate that you have many projects that demand your time and am not trying to get you to reprioritize :) )


Update the NL Library to v1 API

The library needs to be updated to the new version of API aka v1.

The SPI layer has been updated. I will close out this issue; a new release of google-cloud-java will be cut soon.


the farm weight calculation

Describe the bug
Is the farm weight calculated correctly?
For example, I'll calculate the weight for farm 1 in QAnet:
Farm 1 in QAnet has only 2 nodes, and both are up and have the same resource as shown below.

To calculate the CU and SU for the node, I will use the equation mentioned here.

Node resources is

HRU:  8383.559944153
SRU:<PHONE_NUMBER>89
CRU: 24
MRU:<PHONE_NUMBER>05

CU = min( max(MRU/4, CRU/2), max(MRU/8, CRU), max(MRU/2, CRU/4) )
CU = min(max(188.875312805/4, 24/2), max(188.875312805/8, 24), max(188.875312805/2, 24/4))
CU = min(max(47.21882820125, 12), max(23.609414100625, 24), max(94.4376564025, 6))
CU = min (47.21882820125, 24, 94.4376564025)
CU = 24
SU = HRU/1200 + SRU/200
SU = 8383.559944153/1200 +<PHONE_NUMBER>89/200
SU = 6.986299953461 + 2.384698905945
SU = 9.370998859406
The equation for the weight of a farm is: 2 * (sum of CU of all nodes) + (sum of SU of all nodes).
since both nodes have exactly the same resources,
Weight = 2 * (sum of CU of all nodes) + (sum of SU of all nodes)
Weight = 2 * (24+24) + (9.370998859406+9.370998859406)
Weight = 2 * 48 + 18.741997719
Weight =<PHONE_NUMBER>19
So the weight for Farm 1 should be 114, but in the chain it's shown as 88.

So is the wrong calculation from me, the equation am I using, or the chain?

So let s do the maths for this guy node_id =  3 and farm_id = 1 on QAnet:

Here is the rust code that calculates node weight extracted from TFChain (https://github.com/threefoldtech/tfchain/blob/eb36aa90df2d60cb1a534997903821fc68a096f1/substrate-node/support/src/resources.rs#L57-L91) and applied to this node:
const GIGABYTE: u128 = 1024 * 1024 * 1024;
const ONE_THOUSAND: u128 = 1000;
const CRU: u64 = 24;
const MRU: u64 =<PHONE_NUMBER>44;
const SRU: u64 =<PHONE_NUMBER>92;
const HRU: u64 =<PHONE_NUMBER>048;

fn calc_cu() -> u64 {
    let cru_min = CRU as u128 * 2 * GIGABYTE * ONE_THOUSAND;
    let mru_min =
        ((MRU as u128).checked_sub(1).unwrap_or(0) * GIGABYTE) * ONE_THOUSAND / 4;
    let sru_min = SRU as u128 * ONE_THOUSAND / 50;

    if cru_min < mru_min && cru_min < sru_min {
        cru_min as u64
    } else if mru_min < cru_min && mru_min < sru_min {
        mru_min as u64
    } else if sru_min < cru_min && sru_min < mru_min {
        sru_min as u64
    } else {
        0
    }
}

fn get_cu() -> u64 {
    let cu = calc_cu();
    let calculated_cu = 2 * (cu as u128 / GIGABYTE / ONE_THOUSAND);
    calculated_cu as u64
}

fn get_su() -> u64 {
    let su = HRU as u128 * ONE_THOUSAND / 1200 + SRU as u128 * ONE_THOUSAND / 250;
    let calculated_su = su / GIGABYTE;
    let result = calculated_su as u128 / ONE_THOUSAND;
    result as u64
}

fn main() {
    println!("CU: {}", get_cu());
    println!("SU: {}", get_su());
}

Copy past previous code in rust playground https://play.rust-lang.org/ and run gives:
CU: 18
SU: 8

Which gives for farm weight:
Weight = 2 * (sum of CU of all nodes) + (sum of SU of all nodes)
Weight = 2 * (18+18) + (8+8)
Weight = 2 * 36 + 16
Weight = 88

I guess the confusion is because you are using formulas from billing capacity instead of minting/farming capacity which are different.
Note: nevertheless, we already reported some incoherence related to weight calculation here https://github.com/threefoldtech/tfchain/issues/966 and need to check if it reflects what is done in minting code.

Yeah, with Resource Units Calculation it makes sense now.
Thanks for the clarification.


🚸 Alpha Environment

Create an alpha environment (Discord included) where local testing is possible without interrupting Beta and Prod environments.

Add tags.


Moving SSH Remoting readme.md file from docs to demos directory

Putting the document in a more appropriate location.  This also has previous review comments included.

Hi @PaulHigin, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Paul Higinbotham). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;


EditorNode3DGizmoPlugin Memory Leak With C# Rebuilding Project

Tested versions
-Reproducable in 4.3-dev6 and 4.2 stable
System information
Windows 10
Issue description
EditorNode3DGizmoPlugin seem to be unable to be unloaded when rebuilding the C# project, even if you dispose all related resources and set all references to null (in the EditorPlugin that created it).
For example:
internal sealed partial class TestGizmos : EditorNode3DGizmoPlugin
{
	public TestGizmos()
	{
		GD.Print("G CONS");
	}

	public override string _GetGizmoName()
	{
		return nameof(TestGizmos);
	}
	public override bool _HasGizmo(Node3D forNode3D)
	{
		return false;
	}

	protected override void Dispose(bool disposing)
	{
		GD.Print("G DIS");
	}
}

[Tool]
public sealed partial class TestPlugin : EditorPlugin
{
	private const int CHANGE_TO_REBUILD = 1;

	private readonly CSharpScript _testCS;
	private readonly Variant _test;
	private TestGizmos _testGizmos;

	// Called when plugin is enabled
	// Called after rebuild
	public TestPlugin()
	{
		GD.PrintS("P CONS");

		// The constructor and dispose are run on rebuilds which is dumb
		_testCS = GD.Load<CSharpScript>("res://addons/Test/TestGizmos.cs");
		_test = _testCS.New();
		_testGizmos = (TestGizmos)_test;

		AddNode3DGizmoPlugin(_testGizmos);
	}

	// Called when plugin is enabled
	//public override void _EnterTree()
	// Called when plugin is disabled
	//public override void _ExitTree()

	// Called when plugin is disabled
	// Called after rebuild
	protected override void Dispose(bool disposing)
	{
		GD.Print("P DIS");

		RemoveNode3DGizmoPlugin(_testGizmos);

		_testCS.Dispose();
		_test.Dispose();
		_testGizmos.Dispose();
		_testGizmos = null!;
	}
}

Steps to reproduce
Run the above sample code, the MRP below is basically just that as an addon.
Change the constant int to force a rebuild of the project (otherwise it says it's already up-to-date).
This will dispose the plugin and the gizmos, but the gizmos remain loaded for the assembly reload.
Each time you do this, there will be an extra gizmos object available but not in use, and it also shows up in the editor View->Gizmos tab. You can see the constructor being called one extra time each rebuild you run.
You may ask "why not use EnterTree and ExitTree in the plugin?" and that's because those are not called for assembly reloads, which basically makes it impossible to effectively manage your resources (like docks) when rebuilding. Also it doesn't solve the problem since I originally had this code there instead of in the constructor and dispose and that's when I tried this. This works better but you still have a memory leak present. Even when disabling the plugin, all instances remain in the editor...
Minimal reproduction project (MRP)
mrp.zip

I'm having the same issue with EditorInspectorPlugin which is also a RefCounted, so I'm not sure if it's just me missing something or if the rebuild really is messing it up. The docs even show putting them in _EnterTree and _ExitTree with no issues: https://docs.godotengine.org/en/stable/tutorials/plugins/editor/inspector_plugins.html
However that isn't called during rebuilds so the objects are becoming invalid after a build... It really doesn't make any sense to me


Remove print statement from init() to avoid printing benchmark info on other tests

Just have to rebase and should fix the build issue.


Annotation Toolbar background size changed after orientation changed

Tested on iPad,  when rotate the screen twice, the toolbar grey background size is not resized properly.

Thanks for your feedback. Let me check it.

Fixed


Can't change the device name

Compatible Device

[X] I'm running Raspotify on a compatible Device

Are you sure?

[X] I'm not trying to run Raspotify on a ARMv6 device

Compatible OS

[X] I'm running Raspotify on a compatible OS

Compatible Configuration

[X] I'm running Raspotify on a compatible Configuration

Latest Version

[X] I'm running the latest version of Raspotify

Are you sure?

[X] I'm not running Raspotify <IP_ADDRESS> on a Pi v1 or Pi Zero

Due Diligence

[X] I have done my due diligence

What happened?
I tried the issue #364 but the /etc/default/raspotify file dosent exicst because when i edit it, it was blank.
Relevant log output and/or the contents of /etc/raspotify/crash_report if any ( sudo journalctl -u raspotify -b and sudo cat /etc/raspotify/crash_report )
/etc/raspotify/crash_report: No such file or directory

My bad it's just just  "LIBRESPOT_NAME="Main TV""


gh actions: update manifest

based on
https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request
Signed-off-by: Francesco Romani<EMAIL_ADDRESS>

well known flake; what matters is that lanes are running.


Easy misuse in cxx::unique_ptr

Required information
Since the deleter is part of the constructor argument but otherwise unchangeable it is extremely hard to track which deleter is currently in use.
Do you spot the bug:
cxx::unique_ptr<int> a(new int(1), [](auto*ptr) {delete ptr;});
cxx::unique_ptr<int> b(custom_alloc.new<int>(1), [](auto * ptr) { custom_alloc.free(ptr); });

a = std::move(b);
auto old_int_ptr = a.release(new int(2));

The deleter changes silently when b is moved to a but the user may assumes that a is still a unique_ptr which calls delete on destruction. This can be mixed up extremely easily!
The solution would be to make the deleter part of the unique_ptr type like the STL does. The deleter would be a callable type which releases the underlying resource and would look like:
template<typename T>
struct CallDelete {
  operator()(T*ptr) { delete ptr; }
};

cxx::unique_ptr<int, CallDelete> a(new int(1));
cxx::unique_ptr<int, CustomDelete> b(custom_alloc.new<int>(1));

a = std::move(b); // compile failure ... bug from above cannot happen.

@elfenpiff I never understood why cxx::unique_ptr was implemented like it is today in the first place. IIRC @ithier wanted to store the same cxx::unique_ptrs with different deleters in a container, which wouldn't directly be possible with std::unique_ptr due to the different template instantiations. Not sure if that is still needed today.

@elfenpiff @mossmaurice having the deleter as part of the unique_ptr does not fully solve the problem. In our case, one still could call the wrong subscriber to release a sample.
// pseudocode
UntypedSubscriber s1;
UntypedSubscriber s2;

auto sample = unique_ptr<T>(static_cast<T*> s1.take(), [&](ptr) { s1.release(); });
sample.reset(static_cast<T*> s2.take());

To make this safe, the reset method must require a deleter.


Integrate with Cachet

Would it be possible to integrate with Cachet? You could provide the API endpoint, with the token and then have incidents and components updated automatically.

Cabot has a plugin system for alerts, so it should be quite doable, although the docs for Cachet seem a bit sparse at the moment. You might even be able to modify my Stashboard Plugin, since Stashboard is a similar system

Tried with a local stashboard but it's working seems i've missed something...  Sorry for hijacking this issue

@xinity if you're having issues with the Stashboard plugin, please open an issue on its github repo.

as i'm not really sure if it's related to stashboard itself or the plugin, i'll dig a little more before opening an issue :)

@jbrooksuk have you been successfull in integrating cachet ? we are currently evaluating it and will maybe use it with cabot

@xinity, afraid not. I've been busy developing Cachet instead :)

@jbrooksuk indeed :) i'll try on my own then and let you know how it goes :)

@xinity please let me know how you get on - we can list your integration on our website.

@jbrooksuk fine i'll do it definitely :)

Has there been any progress on this? I see the last comment was two years ago.

@nprail It does not appear to be the case. Definitely not from us at Arachnys (as we do not use Cachet) ; not sure if @xinity had started something or not :)

@JeanFred been frozen for a while but as we restarted our work on Cabot this week, i can help if needed :)

I would try to help out but I really don't know much Python at all.


Fix pdf link to "Cloud Native CI/CD at Lunar Way" slides

The current link hits a 404, so I updated it to point to the right file.

Thank you!

Thank you, @Crevil !


refactor: improve path handling in iroh dir

Description
Currently the handling of paths and files within the IROH_DATA_DIR was a bit ad-hoc. This adds an enum in config.rs to only use well-defined paths.
Notes & open questions

Change checklist

[x] Self-review.
[x] Documentation updates if relevant.
[x] Tests if relevant.

failure is unrelated (windows box fails to setup)


script not working with Arrays

Hey man, love your gem!
Sadly its not working when you got array params like state[]=123&state[]=456 - would love to see a fix!

wontfix


Cristian dev

Parametrizes the whole installation directory within the Spack yaml files (as opposed to the DATE_TAG parameter). This allows for testing of the scripts on a local directory.
Removes output redirection to logfiles in several parts of the installation process. All output is sent to stdout/stderr. Redirection can be used "at the top level", when running the installation script. It is better to have 1/2 files instead of keeping track of several log files in several locations (in my opinion).
Adds the install_software_stack.sh script to perform the software stack installation.

There is still work to do to make this looks nice and ready for production, but I would like to start a discussion around the changes.

Haven't looked at the implementation, just the summary.
I like point 1. a lot!
Agree on point 3.
Point 2. : not sure what outputs are affected.
The requirement I think it is important to try and comply with is the ability to log Spack installations of the various packages, so that we are able to later have a look at them. In doing that, it would also be good to categorise outputs according to some criterion, so as to have a filesystem hierarchy for the logs, for a few reasons:

being able to browse them in a friendly way
reducing the chance of data loss (lose 1 file -> you don't lose all logs)
enabling parallel Spack installations of packages, without conflicts in writing outputs to the same file.

Lots of words, sorry! :-D
What do you think @dipietrantonio ?

Hi Marco, thanks for your review, I appreciate the fact you spend time to carefully express and motivate your ideas.
On the long term, I believe setting up a more advanced log system is necessary for the reasons you pointed out. The fact is that Deva & I had to get up to speed with this complex set of scripts rather quickly and seeing its output in one place, in a sequential way, helped us to locate issues in the manner we were executing the scripts and correct them, as well as testing our improvements. For instance, not separating the error log from the standard output gave errors the context of where they happened.
I would prefer to keep the changes so we can debug faster the software stack installation. Once we are more comfortable with it, we can set up again the previous (or a new one) log system. I am keen to hear opinions from @ddeeptimahanti and @pelahi

I have addressed all the outstanding issues and I have tested them on Joey. Everything is working fine.

Thank you Cristian, always good to have these conversations to share perspectives!
What you say makes complete sense to me, in the end the functionalities of this setup need to work for those who deploy the software, in this case primarily you, Deva and Pascal! :-)
I certainly also support noting down a "mid future to-do" for a more articulated logging feature.

Great job!

@dipietrantonio I had one more thought around the re-parametrisation of the installation, DATE_TAG, and so on; note that I have not looked into your implementation, I am only thinking at a conceptual level.
When working on these configurations, make sure the setup can accommodate multiple stacks at once (e.g. 2022.05, 2022.11, and so on), in terms of both enabling a correct installation (in the right paths) and allowing usage (of a given dated stack). It is good to test these as well: which spack is in use? where does a package gets installed? which end user package gets used?
For instance, the previous Spack installation script was generating two modulefiles:

one using the current path symlink, for end users
one using the date_tag path, for internal use on a specific stack


trial phase task for @Hornet004

@todo

[ ] make a very detailed project plan for the new dat-ecosystem website using our github issues based project management methods

@input :package: dat-ecosystem project screencast
@input :package: github issue management system
@input :package: example project screencast "wizardamigos"
@input :package: example project screencast "datdot-ui"
@input :package: little checklist and summary
[ ] study all the input materials provided
[ ] create a new "roadmapping" issue called "new dat-ecosystem website project plan" and post it in the comments below as your first worklog

@output :question: new dat-ecosystem website project plan issue

[ ] create a detailed project plan from A to Z about the new dat-ecosystem website

[ ] keep in mind the project should last 4-8 weeks
[ ] include a high level list of tasks that can be issues itself to outline the important parts of the project
[ ] include all inputs listed above and whatever else you find important as inputs in your main project issue or any sub issue
[ ] create more sub tasks and sub issues to get to all tasks that will need to be executed to finish the entire project
[ ] write the expected input links to documents and expected output documents for each tasks or sub task in your project plan
[ ] link all planned outputs of the earlier tasks in your plan as inputs of the later tasks in your project structure
[ ] add for each task additional information or links or inspiration or anything in the issues @info section in each task issue or sub task issue you made
[ ] write down/adapt/modify/update the list of final output(s) for your plan plan in a comment here below in this issue

@output :question: website UI/UX specification & wireframes
@output :question: dat-ecosystem design system
@output :question: list of re-usable web components
@output :question: implemented website
@output :question: link to one or multiple final screencasts (each 3-5 minutes max) where the candidate walks us through the entire project plan

@info
all details of the dat-ecosystem project can be found here

#3 in the @info section

questions
Please ask us anything you don't understand or need to know about the project.
To find out how exactly, please watch the @input tagged explanatory video linked above

in short:

Just post a worklog comment and write or post a screencast to show us the materials
or anything you want to ask and we will quickly post a feedback comment to provide answers.
How this works is descibed in your personal issue in the input screencasts that explain it further.

task
The "end users" of the website will be the members of the dat ecosystem consortium
and everyone who founds and build their own project on top of the same software stack,
which at the moment is mainly https://hypercore-protocol.org and we can answer all questions on behalf of all other "end users".
Based on the many resources above which you can use as inputs How would you structure the website to somehow integrate the long history into the new website?

Please feel free to edit your issue and make more tasks and todos and move some of the inputs under todos where they belong
If you can group inputs based on the part of the website that will deal with them, that might make it better.
You might also want to create new issues and link them as todos so some inputs can be handled in that sub issue.
Everything that helps to keep things more neat is great :-)
to repeat it again - the technique how to do all that is described in the @input video above

WorkLog 28-4-2020 8hrs

@output ❓ new dat-ecosystem website
@output ❓ solution concept
@output ❓ concept Validation
@output ❓ wireframes/Iterations
@output ❓ ui designs
@output ❓new dat-ecosytem website
@output ❓new dat-ecosystem github page

@Hornet004
worklog 2022.04.28

@output ❓ : #12

merged into #49


REQUEST: New membership for

GitHub Username
@tzzcfrank
Requirements

[X] I have reviewed the community membership guidelines
[X] I have enabled 2FA on my GitHub account
[X] I am actively contributing to 1 or more Koordinator subprojects
[X] I have two sponsors that meet the sponsor requirements listed in the community membership guidelines
[X] I have spoken to my sponsors ahead of this application, and they have agreed to sponsor my application
[X] I have verified that my sponsors are a reviewer or an approver in at least one OWNERS file within one of the Koordinator GitHub organizations (excluding the contributor-playground)
[ ] OPTIONAL: I have taken the Inclusive Open Source Community Orientation course

Sponsor 1
@hormes
Sponsor 2
@eahydra
List of contributions to the Koordinator project
PRs Authored
#996
PRs Reviewed
#33

Welcome to the community! We encourage you to submit more issues and help us improve the project.

+1


Support "direct booking" in the current firebase Admob plug-in

Customer mentioned that it is a requirement for them to add custom ads beside those from Google, namely, direct bookings.
However, the current firebase Admob plug-in does not support direct bookings. Direct bookings is a feature available in Double Click. Hence, customer is requesting Flutter to support either DoubleClick, or at least add this feature to existing Admob plug-in.

@kroikie , may I ask why is this issue closed now?


Typo fix

Small fix (the past tense of "to find" is "found"; "founded" has a different meaning)

closing this commit as it should target the dev branch


Relax timing requirements for expiring deferred transactions (adds new expired status type to transaction receipts)

This issue replaces #2063.
After talking with Dan about the problem described in #2063, we will be going forward with a different solution to the problem. The attack vector described in that issue is repeated below:

If deferred transactions (whether delayed input transactions or generated transactions) expire, they must all be processed in clear_expired_transactions() at the end of the block (or at least prior to the start of the next block) in order to delete them from the generated_transaction_multi_index and return the allocated RAM back to the payer.
The problem arises from the fact that users can target a particular time slot in which this processing must happen by setting the appropriate expiration time. If their deferred transaction is processed prior to the expiration, then it will be destroyed prior to getting to clear_expired_transactions(). But block producers make no guarantees of processing deferred transactions at any particular time or at all prior to execution. If an attacker creates lots of deferred transactions with an expiration that is a very short time away, there is a good possibility that a large subset of them are not able to be processed by the expiration time. This subset would then have to be processed prior to the next block in our current design, which could overload a producer to the point of causing them to miss the time slot to produce their block. The attacker has the flexibility to target their efforts with this attack to a particular block producer.

Instead of requiring explicit "reaping" of expired deferred transactions, we want this to be done automatically by block producers. But to avoid the attack vector described above, we cannot demand as part of consensus that destroying an expired deferred transaction (and returning the RAM usage to the payer) be done by a particular time (or at all).
The solution is to add an expired status for transaction receipts which can be added into the block summary by a producer if the deferred transaction has in fact expired. Processing such an expired transaction receipt causes the generated_transaction_object to be removed and the RAM usage to be returned to the payer.
Block producers are expected (but not required by consensus) to add expired transaction receipts for all expired deferred transactions as soon as is reasonable. This is a subjective policy: block producers are technically free to implement their own policy for their generated block (subject to pressures put on them by their voters of course). All 21 block producers could just not bother to appropriately add expired transaction receipts for some expired deferred transactions (thus locking up some of the RAM of the payers of those deferred transactions), but that is functionally no different than block producers colluding to censor particular reap actions in the previous solution described in #2063.
Other things to note:

canceldelay would be invalid if the delayed transaction it refers to has expired regardless of whether the expired transaction receipt for it has been processed yet or not.
Contract code calling cancel_deferred on a generated transaction that has already expired has no side effect (it is not an error, it just does nothing just like it would do nothing right now if a generated transaction from the sender with the specified sender_id didn't exist).

That has been implemented in slim, but it needs testing.

Hi I've pushed a pull request https://github.com/EOSIO/eos/pull/3027 to fix the expired scheduled txn handing. Please would you review my code?

Closed by PR #3027


V3ify docker docs

Did some updates for the Containerized Builds with Docker doc:

Moved the env vars info to new sections about using Docker Compose/Docker without plugins
Update the docker-compose.yml example
Update the "Configuring the build step" section with plugin examples and descriptions
Update the "Docker without docker compose" section with plugin examples and descriptions
Add links to the plugins github readmes
Add info about docker system prune to the cleanup section

This is looking awesome @harrietgrace! Nice one!


Profile Picture in Database

Hi Neozhu
I'm trying to change something in your project and I ran into a problem how to save the picture profile in the database.
Currently, only the link to an image on the Internet or the path to a file on the local disk is saved.
I am interested in saving the image directly to the base in binary data format.
Is it possible?
Bogdan

change profile photo need re-login

Ok, that's right.
Only that I have to save the image in the sql database in byte [] (varbinary) format

Best case scenario you should be storing images as paths in your database for quite a few reasons, which mostly can be found here! Obviously, there might be use cases where you do want to store the image as a stream in your database, but this is far from ideal and is not recommended. This issue will be closed as it doesn't have to do with the code base.


initial setup

love how idea refactors inside comments. I don't see problems here, this is just a stub so far

oh ok


Fixes #125303

This changes the placement of a div with this class from top: auto to top: 0, which will avoid placing this div vertically below a sibling div.
This PR fixes #125303

Thanks for authorizing the workflow run.
Seems like there was an unrelated issue running the workflow:
2021-06-08T13:48:59.5178694Z ##[section]Starting: Request a runner to run this job
2021-06-08T13:49:01.1752379Z Can't find any online and idle self-hosted runner in current repository that matches the required labels: 'macos-latest'
2021-06-08T13:49:01.2311633Z Can't find any online and idle self-hosted runner in current repository's organization/enterprise account that matches the required labels: 'macos-latest'
2021-06-08T13:49:01.3261910Z Found online and idle hosted runner in current repository's enterprise account that matches the required labels: 'macos-latest'
2021-06-08T13:49:01.4295703Z ##[section]Finishing: Request a runner to run this job

Thank you!


No audio on Ubuntu 21.04 on NAMI baseboard, after setup-audio run

Hello,
I'm running Ubuntu 21.04 on an Acer Spin 13 (NAMI). After running setup-audio, I am able to see the soundcard in alsamixer; however, the soundcard is not appearing in my Ubuntu system settings and I still cannot hear anything.
Here's an alsa-info dump: http://alsa-project.org/db/?f=8088832603e27ce02756d681db06508c4c717797
Here's the result of aplay -l:
**** List of PLAYBACK Hardware Devices ****
card 0: kblda7219max [kblda7219max], device 0: Audio () []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: kblda7219max [kblda7219max], device 4: Hdmi1 () []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: kblda7219max [kblda7219max], device 5: Hdmi2 () []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: kblda7219max [kblda7219max], device 6: Hdmi3 () []
Subdevices: 1/1
Subdevice #0: subdevice #0
I appreciate whatever support you can give.

I support @sgulino . @MilkyDeveloper said that I should start it from scratch to achieve the result, but I still can't get the sound. The output from aplay and speaker-test is the same.
Maybe the inventor should show the video with actions step-by-step to dispel doubts? We would be right happy to!

According to the output of alsa-info, you didn't update the kernel. On the docs, it says first to run:

VERSION=ALT bash updatekernel.sh on the PC you built Breath with

Since you did not run this first, you have to run rm -rf /usr/share/alsa/ucm2/kblda7219max* on your chromebook.  You can boot the chromebook and then run setup-audio.

According to the output of alsa-info, you didn't update the kernel as instructed in the docs. On the docs, it says first to run:

VERSION=ALT bash updatekernel.sh on the PC you built Breath with

Since you did not run this first, you have to run rm -rf /usr/share/alsa/ucm2/kblda7219max* on your chromebook.  You can boot the chromebook and then run setup-audio.

Can I use updatekernel-on-emmc instead of using the second PC?

You can try, but it might not work due to a kernel bug in syncing.

speaker-test gives the following:

seby@ubuntu:~$ speaker-test
speaker-test 1.2.4
Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 2048 to 16384
Period size range from 1024 to 1024
Using max buffer size 16384
Periods = 4
was set period_size = 1024
was set buffer_size = 16384
0 - Front Left

I can't hear anything, though. Unfortunately the alsaucm call you provided didn't change anything.

Will PulseAudio break things further? Or should I try to install it?

When I enter alsamixer, Master is stuck at 100; it's maxed out and I can't even lower it.

I ran update-kernel-on-emmc. It finished successful. I ran setup-audio as usually. Sound is not exist.

@ArtemPozharov what is the output of uname -r? Seems like the kernel still did not update.

5.10.106. Which value should be?

5.10.70

If I run updatekernel.sh, is it mandatory to have a preinstalled Chrome OS on Chromebook to install Ubuntu?

Yes.

I ran updatekernel.sh with Linux laptop which did NOT build the image for my Chromebook. I selected a required USB drive, wrote the kernel, rebooted to Chromebook with Ctrl+U, but still see the Linux kernel 5.10.106.

In addition, WiFi become broken on USB stick.

@sgulino I don't think booting from a USB/SDCard would make a difference, your lack of audio is probably due to UCM files.

git clone https://github.com/cb-linux/cb-ucm
cd cb-ucm/nami/akali360
rm /usr/share/alsa/ucm2/kblda7219max/*
sudo cp * /usr/share/alsa/ucm2/kblda7219max

Just did a new install on a USB following instructions, to have a clean slate.
Here's the result of a search for pulseaudio and pipewire packages:
seby@ubuntu:~$ sudo apt list --installed | grep -E 'pulseaudio|pipewire'

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

gstreamer1.0-pulseaudio/impish,now 1.18.5-1ubuntu2 amd64 [installed]
libpipewire-0.3-0/impish,now 0.3.32-1 amd64 [installed,automatic]
libpipewire-0.3-common/impish,now 0.3.32-1 all [installed,automatic]
libpipewire-0.3-modules/impish,now 0.3.32-1 amd64 [installed,automatic]
pipewire-bin/impish,now 0.3.32-1 amd64 [installed,automatic]
pipewire-media-session/impish,now 0.3.32-1 amd64 [installed,automatic]
pipewire/impish,now 0.3.32-1 amd64 [installed,automatic]

I'll remove the packages and report back.
Unrelated question: do I need to remove write protection to run the install to internal storage script?

No, you don't need to remove WP to run the install script. It seems like everyone's audio is breaking on newer installs because either PulseAudio or Pipewire is installed. However, Pipewire is a dependency of gnome-session, so maybe:
systemctl --user disable pipewire.socket
systemctl --user disable pipewire.service

would work better.

In installs created with the commit I just published, this should be done by default.

When I run alsaucm -c kblda7219max set _verb HiFi set _enadev Speaker I get the following output:
ALSA lib parser.c:1846:(parse_master_file) Syntax field not found in kblda7219max.conf
ALSA lib main.c:1014:(snd_use_case_mgr_open) error: failed to import kblda7219max use case configuration -22
alsaucm: error failed to open sound card kblda7219max: Invalid argument

Add Syntax 3 to the top of /usr/share/alsa/ucm2/kblda7219max/kblda7219max.conf

Command worked, but I'm right back to where I was earlier: speaker-test returning no sound, despite nothing being muted in alsamixer.
Do you also have all of the pulsewire packages I listed above? should I remove any of those?

Remove all of the packages you mentioned above.

When I remove the packages above, I am no longer able to start a desktop session.
In order to log back into my Budgie desktop, I had to run apt install --reinstall ubuntu-budgie-desktop. That re-installed a lot of the packages automatically:
gstreamer1.0-pulseaudio/impish,now 1.18.5-1ubuntu2 amd64 [installed,automatic]
libpipewire-0.3-0/impish,now 0.3.32-1 amd64 [installed,automatic]
libpipewire-0.3-common/impish,now 0.3.32-1 all [installed,automatic]
libpipewire-0.3-modules/impish,now 0.3.32-1 amd64 [installed,automatic]
pipewire-bin/impish,now 0.3.32-1 amd64 [installed,automatic]
pipewire-media-session/impish,now 0.3.32-1 amd64 [installed,automatic]
pipewire/impish,now 0.3.32-1 amd64 [installed,automatic]
pulseaudio-module-bluetooth/impish-updates,now 1:15.0+dfsg1-1ubuntu2.2 amd64 [installed,automatic]
pulseaudio-utils/impish-updates,now 1:15.0+dfsg1-1ubuntu2.2 amd64 [installed,automatic]
pulseaudio/impish-updates,now 1:15.0+dfsg1-1ubuntu2.2 amd64 [installed,automatic]

I'm going to run apt remove for pulseaudio and pipewire alone, and leave the libs/gstreamer. Will report back.

You could just run
systemctl --user mask pipewire.socket
    systemctl --user mask pipewire.service
    systemctl --user mask pulseaudio.socket
    systemctl --user mask pulseaudio.service

I successfully removed the packages and also masked the services to be safe.
I've got two observations; they might be helpful.

I'm getting a crackling noise if I unmute codec1_out mo media0_in mi in alsamixer.
I've noticed the following when running dmesg:

[   63.312080] snd_soc_skl 0000:00:1f.3: Invalid pipe config: 2 48000 24 for pipe: 2
[   63.312084] snd_soc_skl 0000:00:1f.3: ASoC: PRE_PMU: codec0_out mo event failed: -22
[   71.287682] snd_soc_skl 0000:00:1f.3: ASoC: POST_PMD: codec0_out mo event failed: -22

Must be the toplogy/kernel version. Try playing around some more with alsamixer. Just to make sure, what's the output of uname -r within ChromeOS?

I'll continue playing around with each item in the mixer.
uname -r returns 5.4.172-17736-gfddbc46e9604

OKAY big progress: internal speakers don't work, but the headphone jack is working -- I am now getting audio (right channel only) from the jack. A massive improvement. I'm going to continue tooling around with ALSA configuration.
I appreciate all of your help.

How did internal speakers work? After rebooting or did you need to change anything else in alsamixer? :D
Headphone jacks are a WIP, even for newer SOF devices, so I’m going to be closing this for now.

Spoke too soon.
Internal speakers never worked; headphone jack worked perfectly.
Unfortunately, it's now back to not working at all -- it was just playing static from my headphones, and now I can't get it to play anything.
Back to the drawing board! I'm trying to reset Alsa settings and hoping I can get lucky in the config one more time. I'll be more careful to note down exactly what I do if I get it to work this time.

Looks like it's related to mux settings; changing the Out DACL Mux, Out DACR Mux, Out DAIR Mux, and Out DAIL Mux settings all either provide static or tone generator output.

You could get this perfect configuration by running alsactl store within ChromeOS. There should be a file created in /var/lib/alsa that has the name asound.state. Copy this to /var/lib/alsa/asound.state and to /etc/asound.state in the Breath USB.

I don't think ChromeOS has alsa; I'm getting command not found. Any way to install it onto ChromeOS?
I got static from speaker-test -c 2 -t wav; there should not have been static there, as it should have instead read out each channel. It also would change from static to tone generation when I set either DACL or DACR mux to Tone Generator, proving that alsa is working to some extent

okay; alsamixer works in chronos, but alsactl does not work. I'll manually copy the settings and report back

Using identical settings & playing around with ST mixer output filters, I'm now able to hear sound in both ears in all applications!
new problem: it's all in slow motion and sounds ridiculous.

Looks like either an issue with alsa configuration (maybe format sampling or rate?). Might be related to my upgrade to Ubuntu 21.10 impish. Not sure how to adjust audio timers or clocks, but I'll see what I can do


chore(sites): typo

PR
PR Checklist
Please check if your PR fulfills the following requirements:

[ ] The commit message follows our Commit Message Guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?

Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Summary by CodeRabbit

New Features

Updated the naming convention for the radar chart in the menu to enhance consistency with other chart names.

Bug Fixes

Corrected the capitalization of "Chart" in the radar chart entry for improved uniformity.

@all-contributors please add @Simon-He95 for doc


support modal draggable and resizable

please support modal draggable and resizable

I don't know how useful this would be given the isle case of modals in general.  I think what might be a much better enhancement would be to allow dragging and resizing of panels.
That said, this is probably not going to be a huge priority for us since people haven't been clamoring for this feature.  Please feel free to submit a PR.

I think this is outside the scope of this library - it should be noted that by creating custom directives and using custom modal templates, one can implement this oneself. This would require too much code for an edge case that can be implemented on the user side.

I'd like to see this reopened.  Yes, it is very easy to do this with jqueryUI.  But there are many clashes/problems with use of jqueryUI with bootstrap. A pure bootstrap solution wd be excellent

I agree with @peterrobinson. using jqueryUI next to bootstrap doesn't do any good. would be a great improvement. so...please please please :D

@peterrobinson, @Lenndev - per @wesleycho's comments, this is not a feature we are going to support and as mentioned you can do this yourself by using custom directives and templates.
Every feature added has to be balanced with what is the purpose/scope of this library and what is maintainable.  Recall that we are all unpaid volunteers.

Indeed, I have implemented this, as a custom directive in Angular 2, so it is not an issue for me now. I guess the query is more relevant to people who are NOT working in Angular. -- but that is outside the scope of this list


Ps plot

Fixed the bug "Unable to find type [PSPlot]

I don't know if it the best way to do this but I think it worked
From the GitHub website I crated a branch from before my changes and updated it with the "compare" option.
Then copped the commit to it with "git cherry-pick e52731cd70c86b5e4f9addac2841404f82cb58e4"


FlutterError (setState() or markNeedsBuild() called during build when calling setState in onFocusItemChanged

When using setState in onFocusItemChanged. For example:
onFocusItemChanged: (int index) {
setState(() {
_isLifted = !_isLifted;
});
},
I get the following error:
FlutterError (setState() or markNeedsBuild() called during build.
This FortuneWheelView widget cannot be marked as needing to build because the framework is already in the process of building widgets. A widget can be marked as needing to be built during the build phase only if one of its ancestors is currently building. This exception is allowed because the framework builds parent widgets before children, which means a dirty descendant will always be built. Otherwise, the framework might not visit this widget during this build phase.

I also encountered this problem. I wanted to display the results on the turntable, but the results would keep scrolling, but an error occurred.


bash docker/scripts/install_docker.sh，err

I am trying to install Apollo on my VM VirtualBox on Mac. The OS in VirtualBox is Ubuntu 14.04.3 LTS. When I was running
$ bash  docker/scripts/install_docker.sh
I got those issues:
Err https://apt.dockerproject.org ubuntu-trusty/main amd64 packages
gnults_handshake() failed: A TLS packet with unexpected length was received.
w: Failed to fetch https://apt.dockerproject.org/repo/dists/ubuntu-trusty/main/binary-amd64/Packages gnutls_handshake() failed: A TLS packet with unexpected length was received._

@lishirui we don't support installing docker via "scipts/install_docker.sh" any more. That script has been removed from code base.
Please refer to the latest document for docker setup.
https://github.com/ApolloAuto/apollo/blob/master/docs/howto/how_to_build_and_release.md
Hope the information answered your question. If you have any follow up question, please leave a comment below. If we did not hear back from you in 72 hours, we will close the issue and we encourage you to open an new issue if you have any more questions.
Thank you for supporting Apollo!

note that scripts/install_docker.sh is still in the instructions in the root README.

Thanks! Fixed with https://github.com/ApolloAuto/apollo/pull/3653.


[Enhancement] Change frontend to React

Currently, our application utilizes EJS for rendering dynamic pages. However, to achieve real-time interactivity and enhance user experience, we aim to migrate from EJS to React, a powerful JavaScript library for building interactive user interfaces.

@Satyam1923
I've been following the discussions regarding our application's development closely, and I fully agree with the decision to migrate from EJS to React. React's capabilities in building dynamic and interactive user interfaces align perfectly with our goal of enhancing user experience.
Given my expertise in React and experience with similar migrations in the past, I believe I can contribute effectively to this migration process. Could you please assign this issue to me? I'm eager to be part of this transition and ensure a smooth and successful migration.
Looking forward to your response!

@sadvika05, since you will be working on React, it would be helpful for both of us if you work according to the Figma design that I have provided. I'll also give you the link for it. Currently, it's only for widescreen, but by the time everything works, I'll create a UI for mobile as well. Since you are also implementing a login page, you can design the UI with a background blur just for the login part of the main page.
figma link: https://www.figma.com/file/mrTzLDEAtHPOsDl99R3kOY/Spring-Music-Player?type=design&node-id=0%3A1&mode=design&t=M0XrFomli5ApTypl-1

I want to work on this issue. I can improve it by adding the framer Motion to it and make the website better and animated with the help of react so Can u please assign this to me @Satyam1923 sir.

@Satyam1923
yes, I'll do that

I want to work on this issue. I can improve it by adding the framer Motion to it and make the website better and animated with the help of react so Can u please assign this to me @Satyam1923 sir.

So as @sadvika05 is going to port the application from EJS to React after she is done with you can go ahead with it

I hope you're doing well. I'm interested in working on the issue of improving website animation by integrating Framer Motion with React. I believe this enhancement can significantly elevate the user experience.
Could you please assign this issue to me?

Sir im frontend developer with good hand in reactjs,tailwind CSS , diff animation library like acertinity can I work with you?

@Satyam1923
Hi there! I've been involved in the design process of our application and have a solid understanding of React.js, making me well-equipped to tackle this migration task. Additionally, I'd like to emphasize that we can make design changes if needed during the development stage, ensuring optimal user experience. I'd love to take ownership of this issue and ensure a smooth transition from EJS to React. Looking forward to contributing!

Hey I have a solid understanding of ReactJS, please assign this issue to me. Thank you!

@atharvmalve help @sadvika05 as she is already assigned for this issue

@Satyam1923 Thank you for the oppourtunity!

@Satyam1923 Hi, I have a good understanding of React JS and have myself made some projects. I would like to work on this issue with fellow contributors to gain knowledge of working on a real-life project. It would provide learning to me.

@rahulpoonia29 you can go with it just collaborate with other till what they have reached.

@Satyam1923 Thanks

@sadvika05  @rahulpoonia29  can we connect on discord, to discuss the distribution of the work??

@Satyam1923 should i separate client-side and server-side before migrating ?

@atharvmalve @sadvika05 https://discord.com/invite/duNfJ9fb

@sadvika05 yes that would be very helpful.

@Satyam1923 I would be happy to work on this issue

PLEASE ASSIGN ME AS I KNOWN FULL STACK SO I CAN DO IT BETTER PLEASE ASSIGN ITS A REQUEST

Assign this issue to me, I have built a lot of personal and client projects on React.


"Don't Get Tricked" screen shows Hints card

Observed
"Don't Get Tricked" screen shows the Hints card
Screenshot on iPhone X:

Expected
"Don't Get Tricked" screen doesn't show the Hints card, only Question and Choose One cards.

I think the build is #29

Actually https://github.com/rightoneducation/righton-app/pull/36 PR


Merge vNext into Office2016

This brings all the changes (up through VS 2017 support) into the Office2016 branch.
Fixes #126

@tomjebo I see on the related issue that you had this locally. With the recent project changes I've done, I figured it would be best to get this branch up-to-date. If you'd rather wait, I can close it.

@twsouthwick no, let's go ahead and get this up to date now. I'll sync locally and when we're ready for Office 2016 (next release, probably 2.8 but not determined yet - and @kfertitta that should be in the next month or two), then I'll merge new commits.


Elements with a v-if tag are not evaluated as a descendant.

It seems that anything located in or beneath an element using v-if is disqualified from inheritance.

              DivContent

            This still triggers "doAction" (even with someFlag set to true)

This was happening in my custom directive as well. It seems that v-if breaks .contains() in some way.

We had the same issue, we found the work around by using v-show instead of v-if tags

@astarrh @aralzaim7 Can you try remove this return and see if that works
https://github.com/VinceG/vue-click-away/blob/master/index.js#L37

Sorry, I'm having trouble replicating this issue now. The example I pasted is working fine for me when I try to re-implement it.

@VinceG I ran into this same issue. I removed the return as you suggested and it seems to work as expected now.

It can be solved by

Or use v-show


Send instructions with my mail wrapper

I have madmimi wrapper that somebody wrote as a helper, andi i have to use it not matter what. So i was wondering how would i go about sending forgot password mail with reset link with my own wrapper.
My method works like this:
MyApp::MadMimi.send! :forgot_password, @user, @link

How i can somehow override send_reset_password_instructions, generate a link and send it like this?
Thanks guys.

Please use the mailing list or StackOverflow for questions/help, where a wider community will be able to help you. We reserve the issues tracker for issues only.

Ok, if anybody can help refer to http://stackoverflow.com/questions/33126052/devise-send-instructions-with-my-mail-wrapper


Update dry run to cache editable dependency files

Dumping cached dependency files individually with file extensions making it possoble to edit the cache and re-run the script. This is helpful when trying to narrow down a reproduction case.
When running the dry run script it will always dump the dependency files in: dry-run/account/repo/branch/directory/* (omitting branch and directory unless they are set)
To read from the cache pass --cache=files to the script: bin/dry-run.rb npm_and_yarn "dependabot/website" --cache=files
You can edit the contents of this folder (make sure it's in sync with the cache-manifest.json file) and re-run against the edited cache.
Minimal example with only local cache
If you run the dry run with bin/dry-run.rb npm_and_yarn "test/test" --cache=files you'll need a cache-manifest.json in ./dry-run/test/test with the file metadata and corresponding files , for example:
./dry-run/test/test/cache-manifest.json:
[
  {
    "name": "package.json"
  }
]

You can change any of the DependencyFile defaults by extending the cache manifest hash:
[
  {
    "name": "package.json",
    "directory": "/app",
    "symlink_target": "./symlink",
    "support_file": true
  }
]

./dry-run/test/test/package.json:
{
  "dependencies": {
    "extend": "1.8.2"
  }
}

/cc @hmarr @greysteil @rebelagentm FYI changed the way the dry run script reads the cache to make it possible to re-run against an edited cache, also pretty easy to run without a repo and just create the cache manually.


backend/s3: Add support for virtual style

Waiting for AWS Rust SDK's support.

As we have reqsign now, we can implement this feature by ourselves when needed.

Not needed anymore, let's close it.


request context menu for exist file handle

Hi~ Currently could custom profile for .mp4 file extension (toggle * off, so empty property value could be seen and edited in Preview Panel), but there is no context menu for the file.
Maybe there is some custom property, or already present / build-in ones users want to export.
Related: Windows 10 and media files \ The current situation

A reboot is require.


Feature: Duplicate items

Hi,
Love the tool !
I think being able to duplicate items would be great, in addition to #13 we could duplicate whole blocks so we could make "presentations" from top left to bottom right, like this :

I'm sorry I'm no dev and can't help you at all :(
Thanks for the work !!
Zeylos

Thankyou for the suggestion @zeylos and thanks for sharing your use case.  Yes I think copy / pasting blocks would be a natural extension to #13.


Document SSR Floating Element Behavior

By default, Svelte has SSR enabled. This means that you cannot wrap binded element references with #if statements, as the element will not be contained within the DOM.
We should provide some guidance around this. @Hugos68 suggested:
<div bind:this={elements.floating}>
  {#if floating.isPositioned}
       ...
  {/if}
</div>

But this seems to be affecting the position and stying in an adverse manner, so more research is needed.
References

https://austencam.com/posts/quick-tip-fixing-initial-position-and-transitions-with-floating-ui

Note: this can now be added to the /docs/getting-started page. Let's added it towards the bottom.


Fix sample code and add claude v3 code generation

2 changes:
Change 1: Fixing incorrect sample code

Above result from sample generated code is incorrect. It should be 'P003' and '2023-04-23'.

The changed code is also generated from Claude v2 but it gets the result correct.

Change 2: Adding Claude v3 generated code for comparison / easy access to users who want to play with Claude v3 in this particular notebook.
Changed prompt a little bit to avoid Claude v3 from using pandas.
Claude v3 also generates desired output, so I included sample as well.

@chpecora Added! Is there any other points about messages API that I should be adding?


We need to get processing logs from LOKI

We need to find a way to get LOKI logs for agents, so we will be able to get logs of run of SAVE-cli application

will be handled in https://github.com/saveourtool/save-cloud/issues/1323


statusline: prepend disabled-info always

Includes #1864.
New base for #1862?!

Thanks for this and #1862. I'll take a look tomorrow.

I can't push here, so closing in favour of #1862.

I can't close this either.

Included in https://github.com/neomake/neomake/pull/1862.


[Member] links don't render

We seem to use [Type] and [Method(func)] annotations in some of our API documentation, presumably hoping that these will get rendered as hyperlinks. For example, see Output:

At ‘deployment time’, the correct way to work with the underlying value is to call [Output.apply(func)]. This allows the value to be accessed and manipulated, while still resulting in an [Output] that is keeping track of [Resource]s appropriately. At deployment time the underlying value may or may not exist (for example, if a preview is being performed). In this case, the ‘func’ callback will not be executed, and calling [.apply] will immediately return an [Output] that points to the [undefined] value. During a normal [update] though, the ‘func’ callbacks should always be executed.

I assume the [Output.apply(func)], [Resource], [.apply], and various [Output]s, are intended to be hyperlinked to the relevant members?
This pattern is prevalent in the Pulumi SDK itself in addition to addition to packages like AWSX (Crosswalk). I believe @CyrusNajmabadi has written most of them, so we should ask whether this is a convention that should be being respected, or maybe the API docs themselves are simply wrong and should use a different syntax.

Yeah, basically this was a way to just call things out as being 'code related'.  Happy to actually switch everything to an appropriate hyperlinking form once someone can tell me what that form should be that is reasonable stable :)

There's no rhyme or reason on [] usage.  It's just a way to callout that something is code versus non-code.  I'm happy to go and adopt any sort of pattern that actually works.  If we can make some sort of hyperlinkable tag, that would be excellent.  @justinvp can you check and see what works and report back?  i can then update our libs accordingly.  Thanks!

Yep, I'll take a look and report back.

Editor support for @see and {@link} in JSDoc comment tags is on the roadmap for TypeScript 4.1. https://github.com/microsoft/TypeScript/issues/35524


test(extension): e2e - set specific chrome/chromedriver version

Latest chrome version 121 introduced a bug (?) when running multiple tests:
WebAssembly.instantiate(): Out of memory: Cannot allocate Wasm memory for new instance","source":"javascript","timestamp":1706755040366}
This PR downgrades Chrome and chromedriver to version 120. It is a temporary solution and should be removed when problem above is fixed in Chrome.

coverage: 52.044%. remained the same
when pulling bebe9b0a44f171cb470ee8e644a9d1f0d425588d on test/set_chrome_version
into 08fead536822fb2d0660c63fc6b018fae79c2a9b on main.


Import: improve the layout of nodes in the material graph

Done on top of #1061, merge that first.
Followup to https://github.com/KhronosGroup/glTF-Blender-IO/pull/1061#issuecomment-626096178. The pieces of the node graph (emission, base color, etc.) were placed at fixed positions before this. This makes a simple pass over the material before we start creating stuff to choose a position for each piece.
The pieces are now (more or less) centered vertically on the Principled node.
Here's an example before/after for a material with only a normal and clearcoatNormal texture

I rearranged the blocks so they go in the same order as the sockets on the Principled node. For example, emission (whose socket was at the very top in 2.79) is now near the bottom.
The node with the occlusion hookup is also placed just underneath the Principled node now.

Another example. Material has an emissive, normal, and occlusion texture.

@scurest Can you please rebase? It will be easier for me to review with only diff from this PR

Yeah, no problem.

@julienduroure Any update?

Hello,
I approve the changes. I will merge it soon.
Sorry, not so much time to work on it these days.
Lockdown is not an easy time : Much work, less time. Hope my calendar will go back to normal in following weeks


SLM-246 Add unit tests for authentication middleware

Rolled into this PR https://github.com/ministryofjustice/send-legal-mail-to-prisons/pull/321


Prediction of images/dog.jpg with resnet50_opt_quant.onnx

Describe the bug
I setup the chipyard and gemmini following https://github.com/ucb-bar/gemmini/blob/master/README.md, and the onnxruntime-riscv following current repo. When I run spike --extension=gemmini pk ort_test -m resnet50_opt_quant.onnx -i images/dog.jpg -p caffe2 -x 2 -O 99, I got prediction like:
0.045356 window screen
0.067687 tray
0.068786 switch, electric switch, electrical switch
0.145288 stopwatch, stop watch
0.182146 cup

However, the expected prediction should be like:
0.031456 giant schnauzer
0.075702 curly-coated retriever
0.087432 Great Dane
0.271946 Labrador retriever
0.361813 Rottweiler

as mentioned in the tutorial. Similar prediction mismatch has also been shown in https://github.com/ucb-bar/onnxruntime-riscv/issues/90.
Meanwhile, I tried -x 0 in the spike command above. For resnet50, -x 0 and -x 2 result in different prediction,  and -x 0 matches the result shown in tutorial, which gives Rottweiler. For googlenet, the two different options result in the same prediction, which is:
0.010029 Newfoundland, Newfoundland dog
0.017131 curly-coated retriever
0.083233 Great Dane
0.288698 flat-coated retriever
0.548024 Labrador retriever

in my run.
Could u please help figure out why?
Thanks!
(all models downloaded from https://github.com/ucb-bar/onnxruntime-riscv/releases)
Urgency
hopefully asap
System information

OS Platform and Distribution: Linux Ubuntu 18.04:
ONNX Runtime installed from: onnxruntime-riscv
ONNX Runtime version: 2021-12-23
Python version: 3.6.9
Visual Studio version (if applicable): None
GCC/Compiler version (if compiling from source): 7.4.0
CUDA/cuDNN version: None
GPU model and memory: None

To Reproduce

Describe steps/code to reproduce the behavior.
Attach the ONNX model to the issue (where applicable) to expedite investigation.

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here. If the issue is about a particular model, please share the model details as well to facilitate debugging.

I recently found that spike --extension=gemmini pk -p ort_test -m resnet50_opt_quant.onnx -i images/dog.jpg -p caffe2 -x 2 -O 99(adding -p after pk) could give the Rottweiler prediction, but the cycles still don't match.


WIP: Update map_tree.py

Moving the roimap array as a table instead of being in the header when using HealpixMapROI.
The current patch can write hdf5 files now. Reading the HDF5 using the script hal_hdf5_to_fits.py gives a bit of problems since hal expects to read the roimap from the header. I'll see if this can be modified somehow.

I tested the changes using both HealpixROIMap and HealpixConeMap. I also used the script hal_hdf5_to_fits.py and it seems it works for both of them. I also noticed, although probably not that important, that tables 3.5.2 or bigger was needed. Maybe not necessary in py3.

@hayalaso  is this ready for review or are you still working on it?
Could you add something to the tests as well?

I got busy with other things the past couple of weeks so I  don't remember. I'll need to double-check.

Btw, on github, using WIP in the pull request name doesn't do anything. Instead, you can mark pull requests as draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/ You can also convert to draft later, there's a link on the upper right, underneath where you can select reviewers.

I added a test to write a model map using the HealpixROIMap and also read it back. I think it should be ready to merge.

Hi @hayalaso!
Thank you for implementing this!
Please pull in the most recent version of the hawc_hal master into your branch and resolve any conflicts. Note that the tests directory moved to hawc_hal/tests.
Once the tests pass, this is ready to merge.

Fixes #22
Fixes #55


Riak Links with Bucket Types

Tested this on both Riak 2.0.2 and Riak 2.0.4 on CentOS.
Trying to create some Links attached to an object using the Links header.
We are using bucket types and this behaviour doesn’t seem to replicate when using plain buckets.
Doing the following works as expected
curl -H "Content-Type:text/plain" -X POST "http://<IP_ADDRESS>:8098/types/mybuckettype/buckets/temp/keys/key1" -d "some text"
curl -H 'Link: </buckets/temp/keys/key1>; riaktag="tag\"' -H "Content-Type:text/plain" -X POST "http://<IP_ADDRESS>:8098/types/mybuckettype/buckets/temp/keys/key2" -d "some other text"

However when I try to read the key2 entry it returns a 500 internal server error.
curl -X GET "http://<IP_ADDRESS>:8098/types/mybuckettype/buckets/temp/keys/key2"
<title>500 Internal Server Error</title>
Internal Server Error
The server encountered an error while processing this request:

{error,
    {error,function_clause,
        [{riak_kv_wm_utils,format_uri,
             ["temp","key1","riak",3],
             [{file,"src/riak_kv_wm_utils.erl"},{line,188}]},
         {riak_kv_wm_utils,format_links,4,
             [{file,"src/riak_kv_wm_utils.erl"},{line,180}]},
         {riak_kv_wm_object,produce_doc_body,2,
             [{file,"src/riak_kv_wm_object.erl"},{line,847}]},
         {webmachine_resource,resource_call,3,
             [{file,"src/webmachine_resource.erl"},{line,186}]},
         {webmachine_resource,do,3,
             [{file,"src/webmachine_resource.erl"},{line,142}]},
         {webmachine_decision_core,resource_call,1,
             [{file,"src/webmachine_decision_core.erl"},{line,48}]},
         {webmachine_decision_core,decision,1,
             [{file,"src/webmachine_decision_core.erl"},{line,558}]},
         {webmachine_decision_core,handle_request,2,
             [{file,"src/webmachine_decision_core.erl"},{line,33}]}]}}

<ADDRESS>mochiweb+webmachine web server</ADDRESS>

Also, a HEAD on the key is hanging indefinitely
curl -X HEAD "http://<IP_ADDRESS>:8098/types/mybuckettype/buckets/temp/keys/key2"

As this isn't a Java client issue (demonstrated by curl not working), there's not much I can do with it.
That said, links are not supported except in the default bucket type, which is probably the issue.

My bad, this should go in the Riak issues list Sorry. Will relocate.

That said, links are not supported except in the default bucket type, which is probably the issue.
Oh, good to know. Any reference to the docs stating this?


If a post has no categories, it won't render

Forgive me, it's been awhile since I've used Github so I'm not sure how all the cool kids link to stuff properly anymore.
Basically if a post has no category, it'll throw a NullReferenceException when evaluating the permalink. The "offending" line (for lack of a better term) is this:
permalink = permalink.Replace(":categories", string.Join("-", page.Categories.ToArray()));
https://github.com/Code52/pretzel/blob/master/src/Pretzel.Logic/Templating/Context/SiteContextGenerator.cs#L402
Now, I know I could send in a PR but there would be a couple of things to think about:

A check before hand, if (page.Categories != null) solves the issue, easy done, right? Well, does that then necessitate a check for each of the date properties?
Investigate why page.Categories isn't initialised, because in theory it is in the constructor for Page.

Thanks for reporting this, but I cannot reproduce the bug: for a post with no categories, the Categories property is well initiated and empty.
Can you indicate some way to reproduce it?

 It's not that my posts have no categories, its that Pretzel didn't pick them up because of incorrect syntax and nulled  its on values.
Using the post below as context, page.Categories = header["categories"] as IEnumerable<string>; (ln245 of the same file) comes out as null because in this context I haven't provided multiple categories. Now the key here is my syntax is off - it should be
categories:
-foo
-bah

So the solution is for me to fix my syntax, but the only way I discovered my syntax was off was by digging into the source code of Pretzel. There isn't an error (other than NullValueException) indicating what was wrong.
I think ultimately pretzel should do a "best effort" at delivering a page rather than stopping on an error (obviously depending on the scope of the error!). I think the null value check on L400 would still be a good idea for idiots like me :D

Here is an example of the YAML front matter thats failing (the rest of the post isn't super relevant)
---
layout: post
title:  "Building a fancier work bench for the mini lathe"
date:  2015-02-11
categories:  video
---

Thanks for the info.
Yeah, I think we can add the check, and also support the "one categories" case.
For info, you can also use the syntax:
categories: [video]


Feat support jxl

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (276b7b4) 92.53% compared to head (b0f5058) 94.36%.

Files
Patch %
Lines

src/browser.ts
96.15%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master       #3      +/-   ##
==========================================
+ Coverage   92.53%   94.36%   +1.82%
==========================================
  Files           3        4       +1
  Lines          67       71       +4
  Branches       14       18       +4
==========================================
+ Hits           62       67       +5
+ Misses          5        4       -1

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


⚠ DDoS-Relay US-W-sfo3-01 has degraded performance

In 70c0cf1, DDoS-Relay US-W-sfo3-01 (http://<IP_ADDRESS>:42069/;csv) experienced degraded performance:

HTTP code: 200
Response time: 138 ms

Resolved: DDoS-Relay US-W-sfo3-01 performance has improved in 67004b2 after 5 minutes.


No module named oemof.db

hi,
I'm getting started with oemof, but I can't figure out how to use oemof.db.
I always get the error "No module named 'oemof.db'.
Thx!

Hi, could you please tell us a bit more about your problem? Did you install oemof.db using pip or just download the repository? If you installed oemof.db what operating system and python version are you using?

The complete error thrown by python is also interesting. Do you use a IDE, such as spyder? Which operating system are you using? Lots of questions, but as you just start with oemof, these information might be useful for questiong still to come as well :)

ok! some answers:
I'm using spyder
Python 3.5
If I run pip install oemof.db, I get the following error:
ErmissionError: Access is denied C:\Users...\anaconda3\lib\site-packages\pandas\algos.cp35-win_amd64.pyd
Win7 64bit

Permission error sound like you want to install oemof.bd somewhere, where you (as the current user) do not have permission to write or read files. I assume, you can not install any python packages this way?
You can try to test for example:
pip install pandas (which you would need anyway for oemof, and would be installed automatically)

Have you tried executing the shell or program where you run the installation as administrator?

pip3 install oemof.db
and... it works!
Thx!

Sorry. I just fixed it in the documentation.

Looks like this resurfaced again when installing the PyPi package. You can install via pip install -e and the package will be found. I updated the README.rst accordingly but I'll also keep this bug open until I finally figure out how to make oemof and oemof.db play well together in all cases.
There's also an oemof issue related to that, which I'll have to dig up again. I might be closed too.


Issues with "paste" in Windows verions when using the mouse

Cant paste addresses into the receiver text box under the "Send" tab using the mouse in Microsoft Windows 7. I am using daedalus version. 1.0.3769

@darko-mijic @nikolaglumac is that due to the fact we're running as admin?

Have the same problem. The context menu by right click are calling, but there is no action for Copy or Paste. When I click to Copy or Paste - nothing happens. But Ctrl+C and Ctrl+V works perfectly

@darko-mijic im not sure if this is related to the rights issue (running as admin) we discovered for drag & drop. We need to further investigate (i couldn't find the issue a while ago)


adding dark mode to playNow page and fixing footer

Related Issue
None
Fixes:  #4043
Description
added dark mode toggle and styling on playNow page (accessible from play now button on homepg) and decreased the font size of footer (prev too big) while improving some other styling of footer.
(will be improving header next)
Type of PR

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

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

Checklist:

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

fix the navbar also of this page , u can create separate pr for it . decrease the width , fix font etc.. . chk other pages for reference ( like community spotlight ) .
also u can work on responsive design of this page . it doesnt look good  in mobile .


can I use metadata?

How can we help you?

can I use metadata? just like paper Odinson: A Fast Rule-based Information Extraction Framework said

Hi, @dvzhang. Yes, you can use metadata to filter your results using lucene-style queries. This is accomplished through

Creating the metadata along with each document. Metadata creation from Processors documents is not yet implemented in the Utils, but a custom method could add this data from a separate data store without much change or extension. To help with this, the TokensField and DateField classes have implicit converters from JSON.
Submitting a query of the parent document (which contains the document metadata) in addition to the other queries, using mkParentQuery. You can see an example of this being applied in Odinson's API here.

Hope this helps! Please feel free to follow up.

@danebell  @dvzhang -- FWIW i'd be really interested to know if the OdinsonWebapp supports these, so if you get them "ready", would you be up for updating me so I know if I need to make changes over there?

To expand on what I wrote above, there are two existing API endpoints that use parentQuery to encode metadata queries.

@BeckySharp If you mean the IDE, AFAIK it's not supported yet. But what you say does make me think I should open an issue. The older version of the IDE does support parent queries, but I don't think it will work without serious updates.

@danebell I don't mean the IDE or the OdinsonUI, I was referring to https://github.com/BeckySharp/OdinsonWebapp

Hi, @dvzhang. Yes, you can use metadata to filter your results using lucene-style queries (like location:Tucson). This is accomplished through

Creating the metadata along with each document. Metadata creation from Processors documents is not yet implemented in the Utils, but a custom method could add this data from a separate data store without much change or extension. To help with this, the TokensField and DateField classes have implicit converters from JSON.
Submitting a query of the parent document (which contains the document metadata) in addition to the other queries, using mkParentQuery. You can see an example of this being applied in Odinson's API here.

Hope this helps! Please feel free to follow up.

Thanks for your reply!
I try to make an annotated file like this to try metadata queries. But it doesn't work

so, I have two questions:

can you give me an annotated file that I can use to try metadata queries? I can learn from it.
can you tell me how to do to Submitting a query of the parent document? in the shell? or something else?
Thanks for your help!

adding @myedibleenso in case it's helpful

I don't believe is supported in the shell.
I'll take a look at this request tonight and see if I can generate/locate an MWE using the REST API.

I'd also like to support this in the OdinsonWebapp -- so I'm interested in
knowing what I need to do to make that happen.
Thanks!
On Tue, Feb 2, 2021 at 9:39 AM Gus Hahn-Powell<EMAIL_ADDRESS>wrote:

External Email
I don't believe is supported in the shell.
I'll take a look at this request tonight and see if I can generate/locate
an MWE using the REST API.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/lum-ai/odinson/issues/246#issuecomment-771771248, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABJCPCPTS5IEFKC7TJSQ2DDS5ATA5ANCNFSM4W5AZMHA
.

Quick update:
I'm working on a simple example, but I may have stumbled on a bug/lost functionality.  Unfortunately, it looks like it may take a bit longer than originally anticipated.  Glad this issue was opened, though!

Quick update:
I'm working on a simple example, but I may have stumbled on a bug/lost functionality. Unfortunately, it looks like it may take a bit longer than originally anticipated. Glad this issue was opened, though!

Thanks a lot!

@dvzhang , way later than intended, but the documentation and unit tests now illustrate how metadata queries can be used.  If you have further questions, we can reopen this issue, but I'm closing for now.


Implementation of vertex agnostic offline isolation

The producer MuonVtxAgnosticIsoProducer allows to reevaluate the offline isolation for pat::Muons using packedPFCandidates in MiniAOD. The parameters in the configuration file muonvtxagnosticiso_cff.py are set so as to match the standard cuts in the default isolation calculation. Originally there was also a MuonCrossCheckIsoProducer which allowed to reevaluate the default isolation using the packedPFCandidates, it has been dropped since we don't plan to actually used in the actual analysis.

Do you want this to go in CMSSW central some day? Related, do you want me to make code quality/style comments or not?

Do you want this to go in CMSSW central some day?
I guess it's a possibility, but we would first need to convince the rest of collaboration about the usefulness a change in isolation definition. But I guess at that point one could just change it for all the steps with what is already there, while this is more for MiniAOD. But I see that this could be used as an "intermediate step" while CMS catches up with this change (say one analysis team finds out that they might be sensitive to this effect, but don't want to go all the way back to AOD, if not even RECO. Having a producer which deals with this at MiniAOD level might be useful. The same goes if one wants to reproduce just the NanoAOD centrally, instead of everything).
Related, do you want me to make code quality/style comments or not?
Ok, why not.

Ok, why not.

Well it depends on if you want to go through the trouble of implementing the comments or not. If you just want it merged now because it gets the job done I won't bother

If you already have comments I guess I can implement them as soon as I can, but otherwise we could also just merge this, it gets the job done. Then, if one wants to push this to central CMSSW, at least some of those comments will arise (they have to, otherwise the CMSSW checks fail).

On second thought, it's probably just best to merge this, if everything is alright of course, so that we can produce at least tnp nTuples and then the SFs soon.


What does dev_rev.json mean?

Hi, thanks for your solid work!
May I ask how does dev_rev.json come from? It is not included in the TACRED dataset I download from LDC.

dev_rev.json is the denoised development set proposed in the paper https://aclanthology.org/2020.acl-main.142.pdf. It can be obtained following the instructions in https://github.com/DFKI-NLP/tacrev.


Receive messages

Is it possible to receive messages?

Yep,
But I have not coded that. If you were to implement it, I'd suggest calling api.get_updates('INSERT_TIME_AGO') and checking the JSON response for new messages. You'd have to keep it running constantly though if you wanted live message receipt.


[flutter_releases] Flutter 1.22.2 framework cherrypicks

Scheduled Cherrypicks

Stylus tap gesture registering as drag/pan #67869

https://github.com/flutter/flutter/issues/67869
https://github.com/flutter/flutter/commit/c606f044d772a24f489b52c72e71ab6621a5a5a1
Original author @jonahwilliams, original approver @gspencergoog

Flutter Doctor: Android Studio 4.1 is not detected #67986

https://github.com/flutter/flutter/issues/67986
https://github.com/flutter/flutter/commit/1c976933f39a0fd05ee3a5d820abf2290a5d6c3c
Original author @jonahwilliams, original approver @zanderso

Wonder if 1.22.2 will contain #66647 issue fix. The #66647 issue is causing crashes on our app's latest production release, so it would be really appreciated if the coming 1.22.2 fix will resolve #66647.


Instructions for urlService conflicts with urls

https://github.com/babaskate/grunt-tenon/blame/66298e1db782f93fdc0bb0599c46184d97aaf796/README.md#L84
urlService [string], I believe this is suppose to refer to

//If the site has a service that returns URLs to pages, hit the service to fetch the urls and pass to tenon
Maybe...The url of the file that contains a list of URLs?
The url [array] has the same instructions
https://github.com/babaskate/grunt-tenon/blame/66298e1db782f93fdc0bb0599c46184d97aaf796/README.md#L91
Correct if I'm wrong please. BTW, thanks for this.

Sorry for the very slow reply. I've finally have some time to readdress some things:
The urlService is a custom service endpoint that must return JSON and has a urls property. This property is an array of object literals. An individual object literal has a property called, path, which is the path to a page. The path can be fully qualified or relative to the httpBase. The urlService path can also be relative to the httpBase or fully qualified.
I'll be updating the README to reflect this information. Hope this helps.
Thanks

This has been update in the latest version 0.0.5


OCTOPUS-397: Changes for end to end run

Approve CSR changes are fine tuned.
Proxy setting added for nfs_provisioner.yml

Lgtm


Update Middleware.php

Build problems are due to some syntax in the tests that only work with 5.5 and up -- but the other points need to be corrected. :)

Done.

Awesome, thanks.


rename passedStations to stopovers

Thanks for letting me know. In fact, this list of options is quite outdated. These are supported:
https://github.com/derhuerst/hafas-rest-api/blob/6c3609cae1647fa782cd08e36091b28ad5e43057/routes/journeys.js#L21-L36
https://github.com/derhuerst/hafas-rest-api/blob/6c3609cae1647fa782cd08e36091b28ad5e43057/routes/journeys.js#L47-L49
Would you mind replace when by departure/arrival and add earlierThan/laterThan, remarks, polylines, startWithWalking and scheduledDays, as documented in [the journeys()docs ofhafas-client`](https://github.com/public-transport/hafas-client/blob/215fce004ba0c5f007b325d916fbe3ff0ba0122c/docs/journeys.md)? I can also do it if you want.


Fix some encoding-related issue of readability

Summary

This PR fixes some issue of readability by added <meta charset="UTF-8"> to the top of content.html

Tested on Microsoft Edge and Google Chrome
Changes these areas

[x] Bugfixes
[x] Feature behavior
[ ] Command line interface
[ ] Configuration options
[ ] Internal architecture
[ ] Snapshot data layout on disk

I have this issue as well, on many pages. Beautifulracket.com:

However, it looks fine in the index, because the index page has <meta charset="utf-8" declaration.

Perhaps surprisingly, context.txt is broken as well, so this pull request alone won't fix that.

How to reproduce:
docker exec archivebox-archivebox-1 wget 'https://beautifulracket.com/' -O beautifulracket.html
docker exec archivebox-archivebox-1 readability-extractor beautifulracket.html 'https://beautifulracket.com/' > some_article.json

You can see some characters don't render.

Leads
a) https://readability.readthedocs.io/en/latest/api.html#readability.encoding.fix_charset
b) https://github.com/dankito/Readability4J#output-encoding "Readability.js returns its output in a
 element, and the only way to set the encoding in HTML is in a <meta charset=""> tag."

I'm not super comfortable modifying the output html like this, is there a way to do this by sending a header through django instead of modifying the archived files?

I'm not super comfortable modifying the output html like this, is there a way to do this by sending a header through django instead of modifying the archived files?

Yes. Some sites only send a header, as I discovered when I dug into this. The header is "content-type: text/html;charset=utf-8".

Great, we can add that as a middleware to Django that will serve this header with archived files when appropriate. That way we don't have to modify the on-disk archived data.

Great, we can add that as a middleware to Django that will serve this header with archived files when appropriate. That way we don't have to modify the on-disk archived data.

But how do you determine when it's appropriate? Not all html pages are utf-8. The page stripped by Readability no longer has all the information necessary to know for sure what the character set the page intended to be in. The character set information has to be determined before or during the readability-extractor step.

Great, we can add that as a middleware to Django that will serve this header with archived files when appropriate. That way we don't have to modify the on-disk archived data.

But how do you determine when it's appropriate? Not all html pages are utf-8. The page stripped by Readability no longer has all the information necessary to know for sure what the character set the page intended to be in. The character set information has to be determined before or during the readability-extractor step.

I had an idea, the readability-extractor json output could have a "content-charset" key, that later Django could choose to read, to send the correct header. That way we don't alter the html.
{
  "title": "",
  "byline": null,
  "dir": null,
  "content": "
©\n
",
  "content-charset": "UTF-16LE"
  "textContent": "©\n",
  "length": 2,
  "siteName": null
}

I'm going to close this for now as the issue remains unsolved until we have better charset detection upstream from readability.
If anyone wants to take a stab at fixing this, it will involve a PR to readability first to get them to add the detected charset in their JSON output, then we can revisit using it to add some headers for ArchiveBox viewers.


Object Comprehension Support

Work-in-progress to address the "object comprehension" part of issue #439.
Implementation rationale is that whenever  the following is seen:
{
  for identifier of expression
    [a] : b
    [c]:  d
    //...
}

Then it should be recognized as object comprehension (instead of being recognized as a block containing a ForOf statement).
This works because for identifier of expression being followed by a computed property key-value pair is invalid syntax in js.
I need some guidance:
1
My rules recognize the syntax but it isn't prioritized over "block containing a for-of" rule when the [a] : b are indented. This results in the following input-output pair:
{ for x of [1, 2, 3]
  [x]:  2 * x
  [x * 2]: 4 * x
}
// Becomes:
 for (const x of [1, 2, 3]) {
  ({[x]:  2 * x,
  [x * 2]: 4 * x})
}
}

This is also a test (last one) which fails. If I remove the leading whitespace, then it works fine
{ for x of [1, 2, 3]
  [x]:  2 * x
  [x * 2]: 4 * x
}
// Becomes:
(()=>{const _results = {};
  for (const x of [1, 2, 3]) {
    Object.assign(_results, {
      [x]:  2 * x,
      [x * 2]: 4 * x
  })};
  return _results
})()

Which provides the output { '1': 2, '2': 4, '3': 6, '4': 8, '6': 12 } if you run it. Note that the indentation in this output has been done by me manually for readability.
2
How should I deal with the indentation in output? I'm introduce an IIFE, a for loop, and an Object.assign. That's 3 extra levels of nesting. Should I just add two spaces for each level?
3
The second test case transpiles but it's incorrect because the inner _results shadows the outer _results and I need to use the variable I introduce in the inner scope. How do I create a variable that's guaranteed to not conflict with the inner scope?
4
I've noticed that my code differs from the existing code in following ways:

Most rules return an object with type
There's some way to deal with source locations so that it's useful for source mapping

I'll address these in future commits. Tell me if there are other conventions that I should learn about!

Good start!
Instead of making a separate rule ObjectComprehension, I'd suggest adding for loops to ObjectLiteralContent. This would allow multiple for loops, mixing non-for content, etc. For example:
{
  name: "Upgrade"
  for key, value in object
    [key.toLowerCase()]: value + 1
}

Admittedly, this will be harder to compile. I'm imagining this:
{
  name: "Upgrade",
  ...(() => {const results=[]; for (key in object) {const value = object[key];
    Object.assign(results, {[key.toLowerCase()]: value + 1})
  })()
}

The code above might look complicated, but it's mostly what we already get from the for loop currently: the only difference is results.push( vs. Object.assign(results,.
You might check out the recent PR #1509 that provided alternatives to results.push, such as results += when using for sum. In the parser, I think you could just allow arbitrary for loops, and attach an extra property like object: true to denote that they're an object comprehension. Then, in iterationDeclaration where this code gets generated, you could use Object.assign when the object property is true.
I think this approach might also fix your first issue about priority of blocks vs. object literals, because object comprehensions will now be considered an object literal. (I'm not totally sure, but generally we favor object literals.)

How should I deal with the indentation in output? I'm introduce an IIFE, a for loop, and an Object.assign. That's 3 extra levels of nesting. Should I just add two spaces for each level?

No, try to preserve the indentation in the original input. Also try not to add any extra lines (except what for already does — we aim to remove those eventually, but obviously not this PR). So just one-line whatever you need to add.

The second test case transpiles but it's incorrect because the inner _results shadows the outer _results and I need to use the variable I introduce in the inner scope. How do I create a variable that's guaranteed to not conflict with the inner scope?

Use makeRef("results") to create a variable named results or results1 or results2 or ..., whatever avoids conflict with existing variable names.

2. There's some way to deal with source locations so that it's useful for source mapping

To help with this, use tokens as much as possible. For example, instead of using "for", use For, which attaches $loc data for source mapping. That said, I don't think you need for at all; ideally, you'd use ForStatement directly (though you may need to manually wrap this in an IterationExpression node so that it gets expressionized) and support the many many for loops that Civet already supports.
Hope this helps!

Thanks, very helpful! I did not even realize that Civet already has these for loops. The fact that they are expression-like (they evaluate to their results) is quite interesting and changes the way I was thinking about incorporating loops into Object Comprehensions.
I'll study these a bit and then proceed.

Hey @edemaine, look at this! I think it's exactly how you wanted to implement it?
When a loop (IterationExpression) is found where you'd normally expect a property definition, we now expressionize it and spread it into the containing object.
A few notes:

We can limit it to ForStatement, but since the loop is expressionized and loop's value is what's Object.assigned to the result, so in principle it doesn't matter. I'm yet to investigate utility of other loops and add tests for them.
Initially I wanted to restrict the loop body to be only computed-key computed-value pairs, but I now believe that's both unnecessary (see the last test case) and less clean to implement
Conceptually, this is actually a "reduction" much like the other reductions: we have an accumulator {}, an update operation, and we return the accumulated value. But in code, statement.reduction corresponds to a particular parsing and transpiling logic belonging to the for reduction loops (#1509).

Technically this is a "support loops inside object expressions" implementation which is rather clean, and as a special and most-commonly used case, it provides for syntax such as in #439.
As a consequence, here's a nice self-describing program
console.log({
  name: 'Square table generator'
  description: 'This table contains numeric properties mapped to their squares'
  for x of [1, 2, 3]
    [x]:  x * x
    [x * 2]: 4 * x * x
})

That would produce:
{
  name: 'Square table generator',
  description: 'This table contains numeric properties mapped to their squares',
  '1': 1,
  '2': 4,
  '3': 9,
  '4': 16,
  '6': 36
}

What do you think?

Possible TODO: if there's just a single loop and nothing else in the object literal, then we don't need a { ...(comprehension) } wrapper so should avoid emitting one. Also postfix loops remains an interesting TODO.

I also wish to leave this optimization for later. I could definitely investigate both of these myself, but only later and not now.