[HOLD for payment 2024-10-11] [HOLD for payment 2024-10-10] iOS - The phone heats up quickly when actively using the app with an expensifail account

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.43-1
Reproducible in staging?: Y
Reproducible in production?: N
Issue reported by: Applause Internal Team
Action Performed:

Open the app
Log in with an expensifail account
Keep actively using the app for 3-5 minutes (track or submit different expense types)

Expected Result:
It shouldn't heat up this much during a short amount of useage.
Actual Result:
The phone heats up quickly when actively using the app with an expensifail account. A gmail account doesn't heat up as much.
Workaround:
Unknown
Platforms:

[ ] Android: Native
[ ] Android: mWeb Chrome
[x] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
0210.txt
https://github.com/user-attachments/assets/808c4bad-2172-41d5-aedb-b88d699f6efa

View all open jobs on GitHub
Issue OwnerCurrent Issue Owner: @johncschuster

This is definitely my first time seeing a bug report based on physical temperature 😂
Not sure how to react, but I guess it's a fair report.
Does it happen only on staging but not production?

Relevant discussion is here

@jasperhuangg @roryabraham Can one of you assign this issue to me ?

@johncschuster I had helped with the review of the PR here.

Payment Summary:
Contributor+: @mananjadhav due $250 via NewDot

Thanks @johncschuster.

$250 approved for @mananjadhav


Support label matchers in Prometheus Client

fix #84
/cc @dsmith3197

should be good now @dsmith3197 :)

@juliusv I will merge the PR, feel free to yell once you are passing here if you are not agree with the changes :).


Code workflow

@microsoft-github-policy-service agree [company="{Cognizant}"]

@microsoft-github-policy-service agree
@microsoft-github-policy-service agree company="Cognizant"


Header actions with caret down display issues when using text

Select one ...  (check one with "x")
[x] bug
[ ] feature request
[ ] enhancement

Expected behavior
The caret down icon should be aligned next to the adjacent text without overlapping.
Actual behavior
The caret gets displayed on top of the text. In Edge the caret does not show at all.

Reproduction of behavior
In order to reproduce the issue I copied the header actions with a user email address from the header types demo.
Here's a plunker illustrating the issue:
https://plnkr.co/edit/JUSOfEUA0FTSTXJynIGf
It seems some styles are overwritten causing the width & height of the caret to grow to 22px instead of the intended 10px.
Environment details
Angular 2.2.3
Clarity 0.7.4
Windows 10

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Chrome 54.0.2840.99
Microsoft Edge 38.14393

Hi @rmaspoch. Thanks for reporting this. I will take a look at why this works in the demo but not on the actual header.


Non-promises-based Examples?

How do non-ES6 devs implement the API? I can't find any callback-based examples.

Is there a way to convert the promises-based examples to callbacks-based?

Hi,
The callback based API of App Security API plugin is deprecated.
However, you can still use the callback format (again, not recommended) by going over these samples:

https://software.intel.com/en-us/xdk/article/my-private-notes-sample  which demonstrates secureData & secureStorage
https://software.intel.com/en-us/xdk/article/my-private-photos-sample which demonstrates secureData, secureStorage & secureTransport.

If you have some questions on how to use the supported promises of the API, do not hesitate to contact us for assistance.
Thanks,
Dan.
From: ohenepee <notifications<EMAIL_ADDRESS>Reply-To: AppSecurityApi/com-intel-security-cordova-plugin <reply<EMAIL_ADDRESS>Date: Sunday, May 15, 2016 at 9:55 PM
To: AppSecurityApi/com-intel-security-cordova-plugin <com-intel-security-cordova-plugin<EMAIL_ADDRESS>Subject: Re: [AppSecurityApi/com-intel-security-cordova-plugin] Non-promises-based Examples? (#1)
Is there a way to convert the promises-based examples to callbacks-based?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHubhttps://github.com/AppSecurityApi/com-intel-security-cordova-plugin/issues/1#issuecomment-219303617
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

Thanks.. will do!


Standardizing grammar in UG/DG

Not necessary for v1.1, done over time.

Let's just close this issue. I doubt we get much time to do this, so make sure to follow the CS2101 advice for language yourselves.

That having have had sounding good to me.


Discord Invite Link

The Discord Invite link is dead.

Confirmed issue ^

Is there any fix yet?

CC @bdistin

It's known, donated domain expired... I haven't spent the time or money to fix it as I don't have any extra of either atm. For now, you can use this: https://discord.gg/AnvgbFr

This has been fixed... You may need to hard refresh to get the latest version of the website for the invite to work.
The above invite is now retired.

Still not working.

just checked, it is indeed working.

Link on https://klasa.js.org just open empty modal

@Satont try clearing your cache on the site, its working for me

Yes, Anv.... has been removed. But the website is generating invites, it seems you didn't leave that modal open long enough, or some error for using a non-mainstream browser happened... But I can see that the invite was generated in the guild.

Ok, i just need to wait some for join. It's not intuinitve. Thx guys.


IMAP-Hi L1A DE after Discussion with Paul

Change Summary
Overview

Update DE with few time changes and addition based on discussion with Paul
Add logic to handle if file starts without metaevent

Looks good! Sorry about leaving some comments (mostly questions) about some lines of code that I think you updated in the last PR. I didn't have time to finish reviewing the last one.

@sdhoyt Thank you for leaving comments from last PR. I still need to improve my communication with PR.

@tech3371 Don't worry about it! I need to improve my punctuality on reviewing PRs

I am going to merge this in the afternoon. Please don't hesitate to comment now or after merging.


[CONTROLLER] add double check for cluster id check

This PR is for:

Server

add double check for cluster id check
Checklist

[ ] Added unit test.

Backport to branches

main

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.zhengya seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Allow login with email address

Motivation

In WordPress, users are used to enter their email address when logging in instead of their username.
Proposed Solution

Make email address field unique in database
Allow the login with email address

Alternatives

Additional Context

Think about what happens if two users with the same email  address already exist in the database. Can we fix this in migrations?

Sven checked it and the email addresses in our current system are unique :)


Unable to install - Out of memory

I'm getting this when composer tries to required.
Fatal error: Allowed memory size of<PHONE_NUMBER> bytes exhausted (tried to allocate 4096 bytes) in phar://C:/laragon/bin/composer/composer.phar/src/Composer/DependencyResolver/Solver.php on line 223

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.

Any ideas?

Fixed this by upping the memory in the php.ini


Missing .coveragerc?

The pyproject.toml file sets the options for pytest. It expects a .coveragerc file which does not exist in the master branch. Is the .coveragerc file missing or should we simply delete that config option?

Are there any options for pytest that you would like to specify? If not, let's delete the config file if that is an option 🧹

Is something not working because pyproject.toml expects a .coveragerc file @kawindme ?
If everything is working fine I'd close this issue.


[T4A4][T17-B2] Shen Jiahui

Add Printable interface.

Ready for review.

@JIAHUIs Some comments added. Please close the PR after reading comments.


Represent 0 using log(1.0)

Related issue: #426
Add a new case to represent 0 as the log() function of the opaque one expression.

The CI fails, but it is due to this existing issue that (due to the wonders of randomization) your PR happens to un-mask:
https://github.com/google/graphicsfuzz/issues/435
I have a fix for that issue, so let's get that in first.

Oh, I was inspecting to the failures. Thanks for your informed!

I have fixed #435, so can you please rebase your changes?  I'm hopefully that the CI will then go through.

Done!


[Feature Request] Switch from binary sensor to sensor

Problem Description
No response
Feature Description
Sensor can have one of four states:

Disabled
Disabling
Enabled
Enabling

or something of that sort
Anything else?
not sure if this is all that useful or not, need to think about it

for which component?

@raman325 is this for the PIN sync sensor or a different sensor that I'm failing to identify? It would definitely be nice it it have more than on and off states.
For instance, I haven't raised a bug about it yet, but I noticed that if you change a PIN for a slot that has already been synced out the PIN synced to locks sensor never goes to off. Even though I would expect it to switch to off right away and then back to on after the PIN was updated. I would hope that this enhancement would take care of that.
I can see the following state transitions:
flowchart LR
    Empty[Sync: Disabled -- currently 'off'
    PIN: unset
    Enabled: false]

    Enabled[Sync: Enabled -- currently 'on'
    PIN: set
    Enabled: true]

    Disabled[Sync: Disabled -- currently 'off'
    PIN: set
    Enabled: false]

    DisabledWithPIN[Sync: Disabled -- currently 'off'
    PIN: unset
    Enabled: true]

    Empty -- PIN set, enabled: true, sync: Enabling --> Enabled
    Enabled -- enabled: false, sync: disabling --> Disabled
    Enabled -- PIN changed, sync: enabling --> Enabled
    Enabled -- PIN removed, sync disabling --> DisabledWithPIN
    DisabledWithPIN -- enabled: false --> Empty
    Disabled -- PIN removed --> Empty

I realized that the above diagram is sorta hard to read. I've would update it to be this:
flowchart LR
    Empty[Sync: Disabled -- currently 'off'
    PIN: unset
    Enabled: false]

    Enabled[Sync: Enabled -- currently 'on'
    PIN: set
    Enabled: true]

    Disabled[Sync: Disabled -- currently 'off'
    PIN: set
    Enabled: false]

    DisabledByPIN[Sync: Disabled -- currently 'off'
    PIN: unset
    Enabled: true]

    Empty <-- PIN changed or removed --> Disabled
    Empty <-- Enabled: changed --> DisabledByPIN
    Enabled -- enabled: false, sync: disabling --> Disabled
    Enabled -- PIN changed, sync: enabling --> Enabled
    Enabled -- PIN removed, sync disabling --> DisabledByPIN
    DisabledByPIN -- PIN added, sync: enabling --> Enabled
    Disabled -- enabled: true, sync: enabling --> Enabled

It's a bit easier to understand what I think the states should be. The 'Empty' state is effectively the unconfigured state and initial configuration would essentially follow two edges at once if the slot is set with a PIN and enabled at the same time. It's a little hard to show with mermaid and make the diagram clean :-/

Either way works. You're dealing either with a true / false and 2 sensors or string comparison and one sensor when doing tests.
Personally I think the single sensor with a finite state is better than having to deal with 2 sensors in all of the potential combinatorial states. It does, however, mean it's easier to typo things when doing checks if using a string based state.

single sensor with a finite state is better than having to deal with 2 sensors in all of the potential combinatorial states.

that's a solid point. comparing one sensor vs 4 combinations (on on, on off, off on, off off) feels simpler.

while it is slightly easier to create a template based off of one sensor rather than two, I don't think it's as clean of a solution since the possible state combinations are the same, and there are two different aspects of keeping the PIN in sync (whether it is considered active or not and whether that decision is reflected in the lock). While I want to keep the user experience as simple as possible, I also want to keep the integration as simple as possible to future proof it.
I am going to move forward with the two binary sensor solution and will revaluate in the future if needed

That works too.


Support user-provided certificates and keys

Is your feature request related to a problem? Please describe.
The requests package that Hera relies on to send requests to the Argo server supports specifying client-provided certificates and keys. This is very useful for specific user setups, such as having a proxy that intercepts a request and performs authentication not on the bearer token but on the certificate.
Describe the solution you'd like
An API on the global config similar to the token API that allows either a string path to the certificate / key or a function to load that from a custom location (useful for when the cert is loaded dynamically from another location that needs auth on the user side). Maybe cert would be enough, and all it does is load a tuple that's passed to requests like this
Describe alternatives you've considered
Could explore ways to intercept a requests package request but that feels like extra burden on the user and conflicts with Hera's ambition to support "configuring a platform" via hooks
Additional context
None atm

@flaviuvadan  I will give this a try this week. First I'll open a PR that only covers the global config. Then I am thinking to also patch (separate PR) the WorkflowService to include the cert
What do you think?


Fix timeout to be what it was before. 10 seconds isn't long enough

Jim hit this on Friday
I just hit this today trying to test the release branch
We have yet to ship the new timeout, so putting back before we ship.

Codecov Report

Merging #8504 into release-2019.11 will decrease coverage by 0.4%.
The diff coverage is n/a.

@@                 Coverage Diff                 @@
##           release-2019.11    #8504      +/-   ##
===================================================
- Coverage            59.14%   58.73%   -0.41%
===================================================
  Files                  509      509
  Lines                23390    23020     -370
  Branches              3774     3774
===================================================
- Hits                 13834    13521     -313
+ Misses                8650     8584      -66
- Partials               906      915       +9

Impacted Files
Coverage Δ

...nt/datascience/jupyter/invalidNotebookFileError.ts
0% <0%> (-75%)
:arrow_down:

.../client/datascience/jupyter/jupyterConnectError.ts
0% <0%> (-66.67%)
:arrow_down:

...science/jupyter/jupyterKernelPromiseFailedError.ts
0% <0%> (-50%)
:arrow_down:

...ent/datascience/jupyter/jupyterWaitForIdleError.ts
0% <0%> (-50%)
:arrow_down:

src/client/common/utils/platform.ts
64.7% <0%> (-23.53%)
:arrow_down:

src/client/language/characters.ts
12% <0%> (-18.77%)
:arrow_down:

...cience/jupyter/jupyterDebuggerNotInstalledError.ts
50% <0%> (-10%)
:arrow_down:

src/client/datascience/cellFactory.ts
51.51% <0%> (-6.18%)
:arrow_down:

src/client/common/platform/pathUtils.ts
66.66% <0%> (-5.56%)
:arrow_down:

src/client/linters/pydocstyle.ts
84.61% <0%> (-5.13%)
:arrow_down:

... and 36 more

Continue to review full report at Codecov.

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


[CSL-265] Key-value database: initial research and development about its integration

@georgeee

@gromak
Ok, so some intermediate results. Basically it consists of two related parts: the first one is making leveldb/rocksdb compile and work, the second one is rewriting cardano-node to use it.
Let me start with the first part. In general I think results are good, but it took more time than I wanted it to take. When I installed leveldb-haskell and tried to build cardano-sl with this library as dependency I was getting Attempt to free invalid pointer error from tcmalloc. I tried to investigate it, but didn't manage to do it. This error didn't happen for very tiny projects, but for it happened for any non-tiny project which I tried to build (adding dependency was enough to break, I didn't even import it). The same was true for rocksdb-haskell. I decided not to waste time on this error (there were too many places where the reason could be) and decided to use jemalloc (which is in general better than tcmalloc, especially when you have fragmentation problems :wink:). Fortunately it's very easy to build rocksdb with jemalloc: nowadays it's enough to install jemalloc and then rocksdb will use it automatically. So I decided to use rocksdb instead of temporarily using leveldb and migrating a little bit later (which would be almost trivial, but anyway).
Then I switched to research of the second part for a while, but it will be described later.
Then I tried to actually use rocksdb, i. e. get at least one put and get. Some notes about it:
• bindings are outdated, names of some functions have been changed, as well as their signatures. Some types have been changed too. So fork is inevitable and I have already forked that repository. Well, we can work with 3-years old version of RocksDB instead, but it's ridiculous.
• I renamed it from rocksdb-haskell to rocksdb for two reasons: a) it seems more reasonable for me (why would one add haskell prefix to haskell package :confused:) and b) if we decide to upload it to hackage at some points, we'll need different name.
  We will change it.
• Since rocksdb provides C API as well (c.h), writing bindings is very easy: https://github.com/agrafix/rocksdb-haskell/blob/master/src/Database/RocksDB/C.hsc
• Since binding are outdated, I got some linkage problems. I just commented out this functionality for a while: https://github.com/serokell/rocksdb-haskell/commit/9910b9dc5c49c660eb7b5de233c11717e133f0b9
• Fortunately, main functionality is up-to-date, so eventually I made it work. See cardano-tmp executable in feature/csl265-rocksdb branch. It works fine on my computer.
So if we decide to use rocksdb we need to actualize bindings (which is an easy task, just port types from C/C++ to haskell, mostly a routine), improve interface (at least eliminate stupid things, see above) and that's all. Maybe we'll need to write something more complex if we see that we need some complex feature (e. g. merge operator). But let's add bindings to new features lazily. The most basic functionality works already. Of course we'll need to tune options later, so we'll need to actualize some bindings anyway.

@gromak
Ok, so as a result of this issue we have done the following:

We did some research regarding state of bindings to leveldb and rocksdb. Story about it can be found in the first comment, let me only write results here. Bindings to rocksdb are outdated, but main part works. We have already [https://github.com/serokell/rocksdb-haskell forked] them. Make sure to build rocksdb (C++ library) with jemalloc (it will be done automatically if you have jemalloc in your system). So now we only need to actualize these bindings. I will create a separate issue about it.
We did a big research about how to store data and work with it. I will describe results of this research below, because I expect them to be very long (though I will try to do make them short and w/o unnecessary information). I think that now we have an understanding of how to do everything. Some technical details are missing, but they don't seem to cause big difficulties. Also there are some possible improvements and open questions about them, but they can be discussed later.
We started playing with rocksdb and writing code in cardano-sl which uses rocksdb. Also we made a refactoring in rocskdb-haskell, because old interface was ridiculous. Main development will be done in separate issues.

In the next message I will write detailed plan regarding (2), after that I will create new issues and close this one.

@gromak
The second part is about rewriting cardano-sl to use rocksdb. This part is still in progress, at least because the first part took more time than expected. Some notes about it:
• block processing logic is bad now and will be reworked (currently I think we should use approach similar to Bitcoin's getheaders, where blocks are received from oldest to youngest, but I haven't finished this research). So we shouldn't blindly port current logic to rocksdb. As I said many times, issues are tightly related (switching to another DB, CSL-5, improving block processing algorithm).
• Our approach should be based on another approach is known to work in production. Most likely it will be Bitcoin (I imply Bitcoin Core here) as the most popular and well described (well, I didn't read about any other cryptocurrency implementation, so it's not correct to say about well-described property). We are not experts so we shouldn't invent something totally new and different. Of course it's not necessary to precisely copy everything from Bitcoin (we use very different language with different set of libraries and concepts after all) and it's impossible to precisely copy it (because our algorithm is different, lol, we have SSC, for example).
I have read how Bitcoin stores data. Tl;dr if you don't know:
★ blocks are stored in plain files (serialized in network format as is). Also there are plain files with data necessary to rollback blocks.
★ There are two leveldb databases: block index and utxo.
★ Block index lets one find blocks in plain files quickly. It has some service information which can easily imagine I guess.
★ Structure of utxo database is not very interesting now too.
Some further thoughts:
✱ Bitcoin stores block index fully in memory. ~So let's use acid-state.~ It sounds reasonable (for Bitcoin), because I guess the heaviest part is block index records, each record is about 100 bytes (my rough calculation), current height of blockchain is 4.5 * 10^5, so together these records should take only 45 Mb. Other parts are probably smaller, so all this index takes about 80 Mb now, I suppose and should easily fit in memory for a long time (probably RAM volumes grow faster).
✱ Bitcoin builds some smart in memory caches to speed-up access to utxo (it is not fully stored in memory). I am not sure if we need it. RocksDB has supports LRU cache and Bloom filters, so read access should be faster. Probably it won't be necessary to create our own cache on top of it, but it has to be benchmarked.
✱ Some differences between our algorithm and Bitcoin which can be important:
— we need to know balances to check threshold.
— We need to validate SSC part of block before accepting it.
— We can't check consensus w/o using blocks body (for sequence of blocks at least).
✱ Apparently accepting blocks from oldest to youngest simplifies things crucially.
✱ I have some ideas regarding threads synchronization (e. g. how to deal with situations when two threads received two different valid blocks), but not a final understanding. I want to read https://en.bitcoin.it/wiki/Bitcoin_Core_0.11_(ch_6):_The_Blockchain and think more about it. Utxo database stores hash of head block header, when we receive block, we make a snapshot (rocksdb supports them), check that hash is really parent of received block, verify all transactions using the same snapshot. If we decide to update utxo, we perform a batch update. One of the problems which I have in mind: how to ensure that utxo db and TVar with SSC data have the same version (i. e. correspond to same block).
✱ Btw, as I wrote somewhere, I think we don't need to store SSC data on disk at all.
And now I am tired of writing. I will continue research tomorrow and hopefully will start writing some code as proof-of-concept.

@gromak
So now some details about how to store data and work with it.
First of all, let me describe how to store data. We store the following data:
• Utxo DB. It is a RocksDB database where we store Utxo = Map TxIn TxOut (unspent outputs), Balances = Map Address Coin (which can be calculated from Utxo, see below why it's needed), HeaderHash (for block after which this Utxo takes place).
• Blocks DB. It is another RocksDB database where conceptually we store blocks, undo data and blocks index (i. e. some data necessary to find blocks quickly). In practice we can store (Block, BlockExtra) associated with key 'b' + hash of block's header and UndoData associated with key 'u' + hash of block's header. Here BlockExtra is whatever extra data which we need to know about block and which is not part of Block. Currently I think that we only need to store whether block is part of main chain (see below). UndoData is extra data that we need to revert application of block. In our case UndoData is [[TxOut]]. Undo[i][j] is TxOut corresponding to j-th input in i-th transaction in block.
Future improvement: consider storing blocks in raw files instead of database. Bitcoin does it this way. Probably the reason is that this way migration to another database is cheap. Another possible reason is that storing too much data in RocksDB may affect performance. Also RocksDB has space amplification, but we don't want any amplifier on size of blocks. We may only want to compress them.
• SSC data. We need to store some data to verify SSC payload from received blocks quickly and to maintain our local SSC payload for inclusion into block if we generate one. I expect size of this data to be small and I don't think it makes sense to store it on disk, let's store it in memory. Persistence is not needed, because it can be relatively quickly calculated from blocks. There are two reasons why it's small: it's reset when new epoch starts and size of committee will be small. The only concern is about Vss certificates (because they are not reset when new epoch starts). But I think they won't take much space as well, because we will have limit on TTL.
My current vision of what should be stored in SSC data is the following (in GodTossing case, NistBeacon is trivial). We need to store GtGlobalState which takes place right after last processed block. We also need to store local GtPayload. When we receive GT data we verify it against both GtGlobalState and GtPayload. We don't need any ''undo'' data for GT, because content of block should be enough to rollback GT data.
• Mempool of transactions. These are transactions which we will put into block if we create one. They will be stored in memory. We also need to store an update of Utxo. It can be stored as (Utxo, HashSet TxIn) where the first part is data to add to Utxo and the second part is data to remove from Utxo.
We can also make some optimizations, e. g. caching. For instance, we can store in-memory cache of last accepted transactions (which is done now) together with mempool.
We can also have some cache for Utxo, but let's not hurry with it. RocksDB lets one use LRU cache for it, so maybe it won't be necessary. Let's not do optimizations w/o profiling or something.
P. S. It's only an overview, I am almost sure that something else will be necessary.

@gromak
Now few words about block creation. When we create block we simply take transactions from mempool and GtPayload from SSC data. Since we are using MVar to synchronize threads, we can be sure that our mempool and GtPayload correspond to the same version.
So yes, we know tip, we know payloads, we create blocks, everything is easy.

@gromak
The next part is about block processing.
We will store some MVar in context (NodeContext) which will ensure that only one thread can apply block to state (to Utxo DB, SSC data, mempool of transactions). It makes sense to store HeaderHash in this MVar for convenience (which will correspond to our tip, i. e. head of main chain).
Let's start with the simplest case of block processing. Suppose our main chain is A B C D E. And we receive header F whose previous block is E. We check that F is valid (e. g. BodyProof is ok) and request this block. When we receive this block we check its data against Utxo DB and Ssc data. We must ensure that checks are performed for correct versions (for versions corresponding to E). Note that Utxo DB and Ssc data can change at any moment, because we haven't taken MVar yet. To make sure that all checks are performed for correct versions we use Snapshot in case of RocksDB and atomically for Ssc data. First of all we check hash and only then everything else. Note that we need to return different results when check fails because of hash mismatch and because of malformed data (only in the latter case we need to ban peer). If we see that F is a valid continuation of E we take MVar and modify Utxo DB and Ssc data (applying block F to them). It's important to check hash after taking lock. We also modify txs mempool (because some txs could become invalid). We also put information about F into Blocks DB, it can be done w/o lock, because this data is immutable. I suppose that's all about processing of a single block which continues main chain.
Now let's proceed to more complex cases. There are two difficulties: 1) we may have outdated state and need to fetch a lot of blocks and 2) forks can appear.
Let's consider the most general case of block processing. Suppose our main chain is A B C D E. And suppose someone else has chain A B C DD EE F. Sooner or later we receive header of F. Then we request headers of blocks up to F which have common ancestor with us. We receive headers of some subset of A B C DD EE F. Then we go through these headers and ignore those which are already part of main chain (recall from previous message that we store this information in Blocks DB). After ignoring some (possibly none) headers we request all other blocks and receive them one by one. When we receive DD we can't simply apply it, because it is not a continuation of E. To solve it we introduce stateful sockets which let us associate some state with socket (i. e. with peer). One thing from this state is [HeaderHash] which stores all hashes for which we expect to receive blocks. It is empty if we don't wait for any block, it's fully updated when we send getblocks and hash is removed from it when we receive block.
When we receive block whose prev is our tip, we simply apply procedure described above (and remove hash from state of socket).
When we receive block whose prev is not our tip, we put it into state of socket and wait for next blocks until we get block which is more difficult than our tip. After we get DD, EE, F we try to apply them. It consists of LCA search, rollback, verification, application. Anyway, it's similar to what we have already.
Sometimes we may want to request more blocks than one getblocks message allows us to request (after long offline). For this we store HeaderHash of block up to which we want to receive blocks. After receiving all blocks for one getblocks we send another one getblocks (probably getheaders first).
P. S. I didn't want to write too much, so probably omitted some details. You can ask me questions if you have any.

@gromak
And (hopefully) the last part is about calculation which require knowledge about balances. We need it in two cases:

To check that node has enough stake for being part of committee (CSL-93).
For FTS (CSL-90 is related).
After a long discussion we decided to store balances in Utxo DB (balances = Map Address Coin).
When epoch finishes we iterate over balances and do two things: FTS and find all nodes whose stake is above threshold. We store both results somewhere so that we don't recalculate again. This way CSL-93 is as easy as checking whether node is in this set of rich nodes. Note that we use the same stake distribution to find rich nodes as the one used for FTS. This is mostly for convenience.
Current implementation of FTS should be somehow generalized to work with iterator.

Possible future improvement: start FTS and rich nodes calculation earlier than end of epoch. Restart if big rollback happens.
Possible future improvement: don't iterate through all balances (maybe using B-tree).
Future: when we start taking delegated stake into account, let's store balances with delegated stake.

@gromak
Some isses have been create as a result of CSL-265. Also some issues have been updated in a sense that at least their essence has changed. New issues:
• CSL-275
• CSL-276
• CSL-277
• CSL-278
• CSL-279
• CSL-280
• CSL-281
• TW-96
• CSL-282
• CSL-283
Updated issues:
• CSL-93
• CSL-90
I am going to close this issue soon, let's work in fine-grained issues since now.


🚧 Move Chef docs in to the Chef repo

So this is (hopefully obviously) still a work in progress, but I want to get a place for conversation ASAP. Basically I think we need to split up chef-web-docs and put each project's documentation in their own repo. So Chef's docs go here, Chef Server's docs go in chef/chef-server, Ohai in chef/ohai, etc. For internal stuff within Chef Software I leave it to the company to work out where best to store things, could remain in a single, shared repo or could be broken up to the various internal repos.
With that out of the way: what now? We can look at hosting each project effectively independently (possibly via Read The Docs) or use some kind of submodule or build script system to combine all the doc sets and build them into a single HTML site. Sphinx has a system called Intersphinx for linking between isolated doc sets so we can leverage that at least somewhat. This will also probably be the death of the dtags system, but I'm pretty okay with that as I think it does more harm than good at this point.
And with that, discuss.

Hey @coderanger, what's the fundamental problem (or problems) you're trying to solve with such a change? Is pulling the OSS docs out of chef-web-docs the only way to achieve it/them?
As a member of the doc team, I'm strongly in favor of keeping the docs together and feel having the OSS content split into their respective repos would lead to a poor user experience overall. Scenario content that crosses multiple technologies, having a common IA, and keeping one place for people to submit doc updates are a few reasons that I have for keeping all of the content in one repo.
Instead of having this conversation in PR comments, I'm open to discussing this through zoom with folks, in-person at ChefConf, or in some other fashion.

@coderanger Do we want to keep this one open?

Probably not, I'm unthrilled that there continues to be no motion on this topic after months but I did what I could.


Write Value While in SmartAnalyze

Hanlin-Dong,
I am still working with the SmartAnalyze function and would like to be able to report in an external file whether SmartAnalyze failed or passed it's analysis. Within SmartAnalyze, this is indicated in the SmartAnalyzeTransient function in the "for seg in range(1, int(npts)+1):" loop.
When I try to open a file and write to it, within this loop, nothing happens. I also, cannot define a global variable and set its value within this loop.
Can you help me with this? Hopefully the image attached below.
Thanks,
Amy

Can anyone help me with this issue?

Hi Amy,
I'm not very sure why this happens. But you should not call open that many times. The correct way should be: call open at the very beginning, then call write within the loop, and call close at the very end. If you want to monitor the process, each time after you open and write, a close should be called.
I recommend you to use the terminal redirect operator > to setup a pipe and stream the stdout and stderr to a file. It seems easier and logs the OpenSees outputs as well. You can google how to use it.
Hanlin


fix(composition): do not submit when user is composing

"composing" is used on Japanese (and other CJK scripts) when typing on a qwerty or similar keyboard, showing something akin to autocomplete on iOS.
Still needs to be tested thoroughly, as it's possible we need to check isComposing earlier to prevent searching for the intermediate romaji characters.
Fixes https://github.com/algolia/docsearch/issues/1304
Fixes https://github.com/algolia/docsearch/issues/1043
Fixes https://github.com/algolia/autocomplete/issues/1135

This fix is integrated and tested in https://github.com/algolia/autocomplete/pull/1226.


Use attach list to hide overridden functions

In RStudio, many backend functions are put into a list and the list is attached so that it appears in the search path.
For example, in a fresh RStudio session, tools:rstudio contains the attached list of functions:
> search()
 [1] ".GlobalEnv"        "tools:rstudio"     "package:stats"     "package:graphics"  "package:grDevices"
 [6] "package:utils"     "package:datasets"  "package:methods"   "Autoloads"         "package:base"

If we use similar method, the overridden functions will not be shown in the global environment to be mixed up with user defined functions:

Following is a minimal example:
attach(list(
  print = function(x, ...) {
    base::cat("new print:\n")
    base::print(x, ...)
  }
), name = "tools:vscDebugger")
search()
ls()

m <- rnorm(10)
print(m)

> attach(list(
    print = function(x, ...) {
      base::cat("new print:\n")
      base::print(x, ...)
    }
  ), name = "tools:vscDebugger")
The following object is masked from package:base:

    print

> search()
 [1] ".GlobalEnv"         "tools:vscDebugger" "package:stats"      "package:graphics"
 [5] "package:grDevices"  "package:utils"      "package:datasets"   "package:methods"
 [9] "Autoloads"          "package:base"

> ls()
character(0)

> m <- rnorm(10)

> print(m)
new print:
 [1]  0.4019033 -0.5384726 -0.7945924  0.2734667  0.1027051 -1.2539160  0.7839037
 [8]  1.0921911  2.3513295  0.8522005

You're right, having these functions in the .GlobalEnv does look a bit clumsy...
I think it's important that the assignments made by the debugger (outside of its own namespace/environment) are transparent to the user, but your suggestion looks like a good compromise between transparency and tidiness.

My best solution so far is to assign print <- vscDebugger::.vsc.print in the extension, but this also causes print to be overwritten for any calls from the .GlobalEnv.

I don't quite understand. Isn't that what we want?

What bothers me is that you have to alter the code of the extension and include explicit references to code from vscDebugger. Which can cause problems when the same code is run from the terminal/RStudio

But it's not a very urgent issue, since you can simply use the default print and cat methods and just not see the filename/line


Malaria Cell Image Classification

Deep Learning Simplified Repository (Proposing a New Issue)
:red_circle: Project Title : Malaria Cell Image Classification
:red_circle: Aim: The malaria dataset contains cell images with equal instances of parasitized and uninfected cells from the thin blood smear slide images of segmented cells. The task is to perform image classification on that.
:red_circle: Dataset : https://www.tensorflow.org/datasets/catalog/malaria
:red_circle: Approach : Try to use 3–4 algorithms to implement the models and compare all the algorithms to find the best-fit algorithm for the model by checking the accuracy scores. Also, do not forget to do exploratory data analysis before creating any model.

📍 Follow the Guidelines to Contribute in the Project:

You need to create a separate folder named Project Title.
Inside that folder, there will be four main components.

Images - To store the required images.
Dataset - To store the dataset or information or source about the dataset.
Model - To store the machine learning model you've created using the dataset.
requirements.txt - This file will contain the required packages and libraries to run the project on other machines.

Inside the Model folder, the README.md file must be filled up properly, with proper visualizations and conclusions.

:red_circle::yellow_circle: Points to Note :

The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.
"Issue Title" and "PR Title should be the same. Include issue number along with it.
Follow Contributing Guidelines & Code of Conduct before start Contributing.

:white_check_mark: To be Mentioned while taking the issue :

Full name : Sitam Meur
GitHub Profile Link : https://github.com/sitamgithub-MSIT
Email ID<EMAIL_ADDRESS>Participant ID (if applicable):
Approach for this Project:

Import necessary libraries like Keras and Keras-cv
Performing the necessary pre-processing, image resizing, rescaling, and all.
Creating all the required functions. Probably some visualization utility functions and others.
Split the data into test and training datasets.
Train the model on VGG-16, Resnet-50, and other algorithms if needed.
Checking the validation accuracy and loss.
At the end, label all the accuracy of all models in a table.

What is your participant role? (Mention the Open Source program.) Codepeak'23 Contributor.

Happy Contributing 🚀
All the best. Enjoy your open-source journey ahead. 😎

@abhisheks008 Would you please review this issue? and designate it for me.

Issue assigned to you @sitamgithub-MSIT


German translation

GitHub Resume Generator

Thank you so much for opening a pull request! :smiley:
Please provide the following information where possible to help the pull request reviewer merge your PR quicker!
Relevant Project Issue Numbers :hash:
#15
Involved Project Members :bust_in_silhouette:
@sabesansathananthan
An Explanation of Your Changes :speech_balloon:
Aded German translation and fixed minor markdown formatting
For transilators.

[ ] Create a file called README.lang.md in the translations folder.
lang means shorten form of your language Refer this site.

[ ] Check all the links are working.

[ ] Check all the parts are translated.

[ ] If about and built-with are not working then inspect the page and copy the href and paste in your file.

[ ] Edit the translations/Translations.md adding you language icon/link

[ ] Edit the main README.md adding your language icon

<!-- ## Any Screenshots of Your Changes :camera:

![README de](https://user-images.githubusercontent.com/13013670/95656856-5b5b6d00-0b11-11eb-859b-ca7cfba157b0.png)

@esau-morais I reviewed Could you please review it?

Please fill the PR form and Edit Main README and remove the word upcoming in German

Thank you for your PR... <3

Don't forget to give a star to this repository...


Add conversion functions for more Legacy types

Part of #182

I will be making some edits to this PR to move the conversion functions into a dedicated module, and to add a few more conversion functions

Done. Once this PR is re-approved, I will merge it even though CI isn't passing: we disabled the mempool tracers temporarily, which makes some mempool tests fail.


Hello guys, i have a problem with updating my unity project.

Hello, after the holidays i got back into making my map. And i found the problem with my first mapping attempt, you can not put the map below 0 otherwise you will not be able to move.
Now to my problem, the map is up and running and you can download it. But it is in <IP_ADDRESS>. an now i wanted to update it. but when i put the .deli into the plugin folder and remove .dll unity will not recognise it and i can not export the files.
I get that error message.
Assets/Scripts/EnumPicker.cs(134,30): error CS0246: The type or namespace name `WurstMod' could not be found. Are you missing an assembly reference?
I really liked to have it in <IP_ADDRESS> so it is easier for everyone.
is there something i did wrong, or did i use the wrong file?
Edit:
Today I tried updating the .dll file with the <IP_ADDRESS> realease, that seemed to work but then if i tried to place Holds or Spawns or anything they just get put down as a named Empty, so there is nothing left, then if i reimport the workbench it works but the .dll file gets replaced as well.

Please make sure to read the release notes entirely. From the v2.0.2 release notes:

To upgrade a Unity project to v<IP_ADDRESS> replace the old WurstMod.dll in your plugins folder with the new version, found below.

So the fix here is instead of downloading the .deli file, download the .dll. If you want to get a clean slate, you can remove all of the files imported from the workbench file, re-import it and then replace the WurstMod.dll in the plugins folder with the most recent one.
In future releases I will make the process of updating a Unity project more clear with better formatting.

Please make sure to read the release notes entirely. From the v2.0.2 release notes:

To upgrade a Unity project to v<IP_ADDRESS> replace the old WurstMod.dll in your plugins folder with the new version, found below.

So the fix here is instead of downloading the .deli file, download the .dll. If you want to get a clean slate, you can remove all of the files imported from the workbench file, re-import it and then replace the WurstMod.dll in the plugins folder with the most recent one.
In future releases I will make the process of updating a Unity project more clear with better formatting.


BPP Mozilla submit error

In https://github.com/vict0rsch/PaperMemory/runs/5352857182?check_suite_focus=true#step:3:12 there's an error with the extension id.
In the secrets I put "extId": "paper-memory" in the "firefox" field. Maybe the extId is actually what's called the UUID in the Mozilla addons dev tools?
That being said, the Chrome submission worked! Thanks so much for #51 @louisgv :)

Yes, the extId for Mozilla store is the UUID string. However, if you specified it in your manifest under gecko.id (see: https://extensionworkshop.com/documentation/develop/extensions-and-the-add-on-id/ ), you would need to omit the extId in the secrets :)

Ok! I'll check with the next release. Feel free to suggest improvements


React Module- Sign In Page

I would love to work on the sign in page

You are good to go. Don't forget to follow Readme Guidelines

Please assign sign-in page to me.


Allow Unions to have same resolvers just like on interfaces

i have this schema
interface ChallengeType {
  id: ID
  challenge: Challenge
  createdAt: String
  updatedAt: String
}

type Ticket implements ChallengeType {
  id: ID
  challenge: Challenge
  createdAt: String
  updatedAt: String
  chargeId: String
}

type Product implements ChallengeType {
  id: ID
  challenge: Challenge
  createdAt: String
  updatedAt: String
  name: String
}

type Service implements ChallengeType {
  id: ID
  challenge: Challenge
  createdAt: String
  updatedAt: String
  expiration: String
}

but instead of using interfaces i would like to use unions
like this
type Ticket {
  id: ID
  challenge: Challenge
  createdAt: String
  updatedAt: String
  chargeId: String
}

type Product {
  id: ID
  challenge: Challenge
  createdAt: String
  updatedAt: String
  name: String
}

type Service {
  id: ID
  challenge: Challenge
  createdAt: String
  updatedAt: String
  expiration: String
}

union ChallengeType = Ticket | Product | Service

but i've had issues on resolvers
when i'm doing this on a union but this works on interfaces
  ChallengeType: {
    challenge: ({ challenge }, args, { Challenge }) =>
      Challenge.model.findById(challenge),
    __resolveType(obj, context, info) {
      console.log(obj, context, info);
    }
  },

with this error
graphql-tools\dist\schemaGenerator.js:262
                throw new SchemaError(typeName + " was defined in resolvers, but it's not an object");
                ^

Error: ChallengeType was defined in resolvers, but it's not an object
[nodemon] app crashed - waiting for file changes before starting...

@ralphchristianeclipse could you share the queries you are planning to expose in order to return the challenges?  it will make it easier to fully understand your case.
But with the current context I would say that you have to return the __resolveType as part of every result.
That means that you can set it as part of regular resolvers or (preferably in my opinion) as a field resolver named __resolveType.
So if I'll change your code (with the limited knowledge I have of your server):
  ChallengeType: {
    // This resolver will run for each object of that type to determine the right type for it
    __resolveType(obj, context, info) {
      return // some logic to determine the obj's type;
    },
  },

and the logic of fetching the right entities from the database can go in another place and depends on your implementation (on the query itself or on the type resolvers for your entities).

@Urigo thanks for the idea what i'm thinking is having only one resolver on that type.
What i'm thinking is
  ChallengeType: {
    challenge: ({ challenge }, args, { Challenge }) =>
      Challenge.model.findById(challenge),
    __resolveType(obj, context, info) {
      console.log(obj, context, info);
    }
  },

this resolver the challenge one will be used to all of the types

@ralphchristianeclipse I think I understand.
The thing is the union and interface are a bit confusing.
interface and like and for the fields, so when interface implements a type, it adds additional fields to it.
But union is more like or on each result.  so each result can be only Ticket , Product  or Service, it can't be ChallengeType .
That's why you will have to handle each result and it's type and have a type resolver for each result.
This is also why the code that worked for you on interface didn't work for you on union. those are different mechanisms.


Added keyboard shortcuts to select drawing tools (#90)

ALT-1 - Boxes
ALT-2 - Select & Move
ALT-3 - Freeform
ALT-4 - Arrow
ALT-5 - Line
ALT-6 - Text

Two points up for consideration:

When every dialog is expanded, the toolbox is too big and doesn't fit on my screen, and right now I have no idea how to fix that.
I have no idea what the alt key would be on mac. I noticed this was taken into account for the cmd / ctrl key.

Thanks for this and sorry for the delay!
I've taken a pass at improving what you started, fixing the rendering issues and making the chips only show after you press alt, with help text that explains that.
I don't know about Mac keys either as I don't have one. Perhaps someone who does will come along and improve it :)
https://github.com/lewish/asciiflow/pull/222


Error durring subtitle.parseSync

Context:
I'm trying to translate a SRT extracted from a MKV file, from English to Portuguese (Brazilian).
Reproduction:

Changed the config.json file, with my own OPENAI_API_KEY and "TARGET_LANGUAGE": "PT-BR"
Placed the SRT file is at "./src"
Installed node_modules npm i
Run node index.js

Error:
/home/fernando/Downloads/subtitle-translator-main/node_modules/subtitle/dist/subtitle.cjs.development.js:109
    return new Error("expected " + expected + " at row " + (index + 1) + ", but received: \"" + row + "\"");
           ^

Error: expected timestamp at row 1, but received: "[Script Info]"
    at Parser.getError (/home/fernando/Downloads/subtitle-translator-main/node_modules/subtitle/dist/subtitle.cjs.development.js:109:12)
    at Parser.parseTimestamp (/home/fernando/Downloads/subtitle-translator-main/node_modules/subtitle/dist/subtitle.cjs.development.js:187:18)
    at Parser.parseId (/home/fernando/Downloads/subtitle-translator-main/node_modules/subtitle/dist/subtitle.cjs.development.js:174:10)
    at Parser.parseHeader (/home/fernando/Downloads/subtitle-translator-main/node_modules/subtitle/dist/subtitle.cjs.development.js:147:14)
    at Parser.parseLine (/home/fernando/Downloads/subtitle-translator-main/node_modules/subtitle/dist/subtitle.cjs.development.js:130:11)
    at /home/fernando/Downloads/subtitle-translator-main/node_modules/subtitle/dist/subtitle.cjs.development.js:299:19
    at Array.forEach (<anonymous>)
    at parseSync (/home/fernando/Downloads/subtitle-translator-main/node_modules/subtitle/dist/subtitle.cjs.development.js:298:44)
    at file:///home/fernando/Downloads/subtitle-translator-main/index.js:17:14
    at ModuleJob.run (node:internal/modules/esm/module_job:193:25)

Setup:
Ubuntu 22.04.2 LTS
node v16.20.0 (npm v8.19.4)

My SRT wasn't on the right format. Now I'm extracting them using "fluent-ffmpeg" which is working fine.
But now I'm getting the error: 'You exceeded your current quota, please check your plan and billing details.'
The same as verified at https://github.com/gnehs/subtitle-translator/issues/10#issue-1776090536


Multi-objective optimization - VRP

What language and solver does this apply to?
Python /  Routing
Describe the problem you are trying to solve.
Multi-objective optimization for VRP with distance and priority (soft) as the objective
Describe the solution you'd like
Add priority as soft constraints/objectives
Describe alternatives you've considered
I have read through issues and googling but the closest I have seen is the:

VRPTW example (although we enforced the time windows within certain range)
Job shop: link

Additional context
See the question that I posted on stackexchange.
Any example or similar issue in Python that I can refer to? Thanks in advance!

Modeling questions should go on the mailing list.


Add Phantom Ledger support

Hello everyone 🙋♂
This PR adds support for Phantom Ledger connection.
wallet-adapter currently supports only PhantomWalletAdapter and neglects phantom ledger users.
There are plenty of people connecting their ledger to the phantom app but have no access to some apps since wallet-adapter does not provide programmers with PhantomLedgerWalletAdapter out of the box.
relevant link: Phantom Ledger setup
Credit for this PR goes mostly to <TODO: @Splintr>, kudos to him
Let me or <TODO: @Splintr> know if you have any questions.
Cheers 🍻,
Josip.

@jordansexton unsure if you're an official maintainer for the PhantomWalletAdapter from phantoms developer team, but I do see a lot of commits there from your side.
In case you are from phantoms developer team, could you please take a look at this PR and see if it needs tweaking or if you can push things further with solana-labs
Cheers

It's not necessary to produce a copy of the existing Phantom adapter with the signMessage method removed in order to support Ledger devices through Phantom.
The fact that the Solana Ledger app doesn't support message signing is known. You can also see that this has come up before, and is out of scope for Wallet Adapter until it's supported.
If you're unsure about how to use a Ledger device with Phantom in an app that uses Wallet Adapter, please ask here: https://solana.stackexchange.com/


feat: make POST requests cacheable

This PR is related to https://github.com/StarpTech/apollo-datasource-http/issues/19
It makes POST requests cacheable. Default behavior will still be the same – only GET requests will be cached. But you may manually overwrite isRequestCacheable() to define a default behaviour. Additionaly you should/must overwrite onCacheKeyCalculation to define an adequate caching key (including the body for example).

Hi @dwrBad thank you for the PR. Before I review this PR we need to wait for https://github.com/StarpTech/apollo-datasource-http/pull/26. Please update this branch after the merge.

Hi @StarpTech
I adjusted the code to fix the behaviour with the changes from #26 and updated the branch.
Thank you for looking into it!

+1 on this PR. LGTM.


chore: bootstrap should try and use cache always. l1-contracts from cache.

As title.

Benchmark results
No metrics with a significant change found.

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit e84759f9 and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
128 txs

l1_rollup_calldata_size_in_bytes
54,212
214,436
855,332

l1_rollup_calldata_gas
259,880
1,019,756
4,059,920

l1_rollup_execution_gas
354,066
1,139,204
4,281,321

l2_block_processing_time_in_ms
1,294 (+1%)
4,809 (+1%)
19,031 (+1%)

note_successful_decrypting_time_in_ms
221 (-2%)
636 (+3%)
2,279 (+5%)

note_trial_decrypting_time_in_ms
33.5 (-14%)
76.5 (+37%)
190 (+3%)

l2_block_building_time_in_ms
21,444 (+1%)
84,910
345,016 (+1%)

l2_block_rollup_simulation_time_in_ms
16,092 (+1%)
63,626
260,119 (+1%)

l2_block_public_tx_process_time_in_ms
5,324
21,203 (+1%)
84,638 (+1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
16,312 (-3%)
31,597 (-3%)

note_history_successful_decrypting_time_in_ms
1,418 (-1%)
2,718

note_history_trial_decrypting_time_in_ms
170 (-2%)
238 (-3%)

node_database_size_in_bytes
18,706,512
36,130,896

pxe_database_size_in_bytes
29,923
59,478

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
334
44,664
27,457

private-kernel-ordering
215
45,777
14,627

base-rollup
1,744
175,344
933

root-rollup
83.4 (+1%)
4,192
825

private-kernel-inner
444
73,099
27,457

public-kernel-app-logic
275
32,254
25,379

merge-rollup
7.93 (+2%)
2,712
933

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
2 leaves
8 leaves
16 leaves
32 leaves
128 leaves
64 leaves
512 leaves
1024 leaves
2048 leaves
8192 leaves

batch_insert_into_append_only_tree_16_depth_ms
10.2
11.4 (+7%)
18.6 (+3%)
17.5 (+1%)
27.1 (+17%)
64.3 (+1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.9
17.5
23.0
31.6
47.0
143
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.593
0.632 (+6%)
0.783 (+3%)
0.539 (+1%)
0.563 (+17%)
0.442
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
N/A
N/A
N/A
75.8 (+1%)
47.9
242 (+1%)
469 (+2%)
916 (+1%)
3,575 (+1%)

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
N/A
N/A
N/A
159
96.0
543
1,055
2,079
8,223

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
N/A
N/A
N/A
0.467 (+1%)
0.489
0.439 (+1%)
0.439 (+1%)
0.435 (+1%)
0.429

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
N/A
N/A
N/A
106 (+1%)
57.1 (-1%)
359 (+1%)
688
1,378 (+1%)
5,468 (+1%)

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
N/A
N/A
N/A
197
104
691
1,363
2,707
10,771

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
N/A
N/A
N/A
0.499 (+1%)
0.497 (-1%)
0.485 (+1%)
0.472
0.475
0.474 (+1%)

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
N/A
N/A
64.7
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
N/A
N/A
110
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
N/A
N/A
0.557
N/A
N/A
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contracts are deployed in the tx.

Metric
0 deployed contracts
1 deployed contracts

tx_size_in_bytes
15,388
36,001

Transaction processing duration by data writes.

Metric
0 new commitments
1 new commitments

tx_pxe_processing_time_ms
586 (+2%)
1,509

Metric
0 public data writes
1 public data writes

tx_sequencer_processing_time_ms
0.0329 (+2%)
655


Add validation of path expression configuration for Field Extractor (in json-api-analyzer-filter)

Currently path expression accepts almost any non-blank String, using logic of:

Split String by commas
Trimming each segment, skipping empty ones
Failing if no (non-empty) segments found, otherwise
Use remaining tokens as path expressions, further splitting by comma

This means that expression like:
{A, B}

would be considered a set of 2 path expressions, {A and B}, which is probably not what user intends.
It would make sense to further validate either whole String, or (more likely) each segment so that remaining path segments must only contain Valid names and optional periods as path indicators.
Immediate question here is what "Valid" means. My initial thinking is that it should follow Cassandra rules of name validity.
Alternate possibility is to just require caller to ensure validity and using current naive logic as-is.

Based on discussions with @maheshrajamani I think we know of one concrete problem that can be detected at this level: that of "no inclusion" (blank comma-separated list string, or all empty segments).
I think what I should add is just isEmpty() method in extractor class that caller can use to determine this case and indicate failure appropriately.

Implemented via:
https://github.com/tatu-at-datastax/json-api-analyzer-filter/issues/3
so there is possibility to validate against "empty" inclusion criteria.


get rid of ugly string concatenation and add sassy template strings e…

…verywhereeeee

Suggestions:

Keep the space between function names and the parameter list, to maintain current style
Use templates only for the strings that are currently concatenated, also to not affect current code style too much

No, that last commit doesn't fix spaces. Get me back the spaces between the function names and the parameters. I want my lovely spaces.

Merged

me peru >.<

You pru


Why not pass?

Challenge Nest an Anchor Element within a Paragraph has an issue.
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:
<link href="http://fonts.googleapis.com/css?family=Lobster" rel="stylesheet" type="text/css">

CatPhotoApp

View more cat photos

cat photos

Kitty  ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.

Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.

simply because you have 2 anchor element. please don't post a git hub issue. if you need help you can ask here [https://gitter.im/FreeCodeCamp/Help](help room)

Hi,
There's no issue with the challenge.
Read more carefully instructions and expectations where you get red and change your code.
Trial and error is important in your learning.
If you're really stuck, ask your questions in fcc forums.
Keyword here is nest. ;)
Can you close this issue please?
Thanks.


PhantomJS default configuration file support

Load the file phantomjs.json if it exists at the root of the working directory to initialise default configuration
https://github.com/ariya/phantomjs/issues/13300

I'm sorry, we're not going to make this change.  See #13300 for explanation.


Format bounty sats with separators

Introduce format option on numWithUnits fn, consumed by bounty listing. Format option is disabled by default, and only applicable when abbreviate is false.
Uses Intl.NumberFormat, so it should honor each user's browser locale settings automatically.
Inspired by this thread.
Can be used elsewhere in the codebase, but this is the place of inspiration, so I only adopted it here.

Can be used elsewhere in the codebase, but this is the place of inspiration, so I only adopted it here.

I think it makes sense to also use this for the stacked amount in user profiles and in /wallet.

Can be used elsewhere in the codebase, but this is the place of inspiration, so I only adopted it here.

I think it makes sense to also use this for the stacked amount in user profiles and in /wallet.

Makes sense. I can do that as part of this PR.

Going to merge. I can make the changes to the other parts

Ok sounds good, sorry I have been busy today and didn't get to it.

Dood no worries!

Maybe we should also have done this for invoices?

Probably


CLOUDP-231603: Fix bot permission to commit

All Submissions:

[X] Have you signed our CLA?

is it possible to test this pre-merge?

Unfortunately no that I know of. This will only trigger with the bot permissions we want to test when it is merged in main. If I try it out manually it will run with my permissions, which already made us think this was fine before.


Confidence fix and RecognizeCustomForm test

Correctly overwrites confidence value when the service returns null
Adds test for RecognizeCustomForm
Adds DeleteModel -> Improvements for this will be done later with issue https://github.com/Azure/azure-sdk-for-net/issues/11480

FYI issue to undo this once service returns a confidence value => https://github.com/Azure/azure-sdk-for-net/issues/11487


Update DaisyChain token symbol

I'm submitting a ...
[ ] bug report

Summary

Updating DaisyChain token information (changing token symbol). This is to address a duplicate symbol issue.

From PR https://github.com/solana-labs/token-list/pull/21729

merged


Extend http tools

It would be nice to support most, in not all of those assertions.

Maybe separate Http into Request and Response traits


Support no build_deps in presubmit

Issue #, if available:
Description of changes:
Instead of building the entire dep tree of images in each presubmit, support building only the one being tested in the current presubmit job.  It will use whatever base images are needed from the existing images in public ecr.  This is actually more of a match for our typical use case of building these images which is done via the periodic job which only builds images with security updates.
The big change is instead of relying on the JOBTYPE, it uses the -pushed files as the source of truth to determine the base image tag, and now the base image repo.  Any image built in a presubmit will have the pushed file created and set to true and so when subsequent images are built, within that single job, it will know to use the local image it just built vs the one in public ecr.  This case really only comes into play for the compiler images which build on top of each other.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/test all

/hold

/test all

/test all

/test all

/approve


Port for NXP iMX RT1064

Hi @team,
Is there any port/guidance available for implementing OCPP 1.6J feature to iMX RT1064 EVK board ? Quite important guys...

Hi @GanesanGuru,
Here is a general guide on how to integrate this library into custom platforms: https://github.com/matth-x/MicroOcpp/issues/172#issuecomment-1669574485
I will soon update that guide with the newest naming conventions. In the meantime, please also see these migration notes: https://matth-x.github.io/MicroOcpp/migration/
Feel free to reopen if you have follow-up questions.

Hi @matth-x ,
With reference to your #172 commit,  for iMXRT1064-EVK with MCUXprsso IDE, I've done the following. Kindly, let me know whether I'm on right track...

Created a c++ project tcp_echo project wth lwip& freeRTOS middleware and added the mongoose embedded network stack following this ref
Then, added the gitclone repo of ArduinoJson into directory and added its path in include. There were duplication due to rerad/write/accept/bind calls in ArduinoJson & lwip's socket.h file. Hence, I've renamed those in lwip's socket.h file alone - and made corresponding name changes in lwip depended other files too..
Then, added the gitclone repo of MicroOCPP into directory and added its path in include. Then passed these flags - MO_PLATFORM_NONE -MO_CUSTOM_CONSOLE -MO_CUSTOM_TIMER -MO_CUSTOM_WS -MO_PLATFORM=MO_PLATFORM_NONE -MOCPP_DEACTIVATE_FLASH
Then, added the gitclone repo of MicroOcppMongooseClient into directory and added its path in include.

Now, in main source file, I've added the following, there is no error - still some warnnings are there !!
#include "mongoose.h"
#include "ArduinoJson.h"
#include "MicroOcpp.h"
#include "MicroOcppMongooseClient.h"
I'm certain the process is not completed. As, my lwip example uses ETH interface, while the Connection.h uses WiFi as of now. I've to edit those. Yet, till now, am I on right track? If not kindly let me know @matth-x


Change package and app name

App name: Bhagavad Gita instead of bhagavad_gita
Package name: com.gitainitiative.bhagavadgita

Done.


TupleCountMismatchError when incorrect mapper is used

We have an unfortunate behavior when a mapper that doesn't transform relation graphs is used to map a relation graph, the outcome is that when hitting .one on the relation you get an error telling you that there were more than 1 result, it happens because the mapper didn't map the relation and passed down an array with two tuple sets (result from a relation graph).
No idea how to solve this yet, probably needs mappers with explicit arity specified so that we can apply proper arg validation and raise meaningful errors.

Not going to address this after all. Custom mappers are advanced usage after all.


Sage find_root error

Don't know why but find_root(x*tan(x), -1, 5) gives me 1.570796 which is incorrect, since it is pi/2, the value at which tangent doesn't exist.

wat

You should update to Sage 8.2.0 IMHO


Downloading stops every single time!

Checklist

[x] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2019.10.29
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

PASTE VERBOSE LOG HERE

Description

I am facing this error, and it happens every single time, either this type of error, or something else, but the download stops that is for sure.
[youtube] 2gkYr7hoBj8: Downloading webpage
[youtube] 2gkYr7hoBj8: Downloading video info webpage
[download] Destination: Juristic Maxims  - Qawaa'id Fiqhiyah (Part 1) - Shaykh Ahsan Hanif-2gkYr7hoBj8.f244.webm
[download]  71.3% of 243.03MiB at 669.13KiB/s ETA 01:46  [download] Got server HTTP error: [WinError 10054] An existing connection was forcibly closed by the remote host. Retrying (attempt 1 of 10)...
ERROR: unable to download video data: <urlopen error [Errno 11001] getaddrinfo failed>
C:\Users\M. Umar Farooq\Downloads\youtube-dl>

Network/DNS issue on your side.

How can I make it resume or force continue after it happens? So that when I wake up in the morning, I don't see an ugly error, but a nice finished download message.


Update Jenkins Job Builder to 2.6.0

This PR updates Jenkins Job Builder to the latest stable version, closing the outstanding Trello ticket.
Only small changes were required to the job definition files (changing the pipeline: script key to dsl), the main blocker was the interaction between jenkins-job-builder and jenkins-job-builder-pipeline. It turns out that having jenkins-job-builder-pipeline with later versions of jenkins-job-builder will cause pipeline job definitions to fail. This was fixed by adding a task to the Ansible playbook to ensure that jenkins-job-builder-pipeline is uninstalled from the system Python environment.
These changes have now been manually tested on the Jenkins box.

Probs not worth the force uninstall of jjb-pipeline but otherwise looks awesome! Nice one 👍

Removed.


Added random latency to SQS receives.

Latency is based on the inclusion of two environment variables
(GOAWS_RANDOM_LATENCY_MIN and GOAWS_RANDOM_LATENCY_MAX), which, if set
will prevent messages from being released from the queue until after a
period of random, simulated latency has elapsed.
The purpose of this change is to aid in local testing against AWS when
SQS latency is expected and needs to be developed against.

@p4tin does this PR look ok now?


fn: add goroutine manager

Change Description
The package provides type GoroutineManager which is used to launch goroutines until context expires or the manager is stopped. Stop method blocks until all started goroutines stop.
Original code by Andras https://go.dev/play/p/HhRpE-K2lA0
Adjustments and tests by Boris.
I also added another unrelated fn fix to this PR: fn: generalize type of t in UnwrapOrFail.
Steps to Test
CI runs unit test. Also I used GoroutineManager in https://github.com/lightningnetwork/lnd/pull/9140
Pull Request Checklist
Testing

[ ] Your PR passes all CI checks.
[ ] Tests covering the positive and negative (error paths) are included.
[ ] Bug fixes contain tests triggering the bug to prevent regressions.

Code Style and Documentation

[ ] The change obeys the Code Documentation and Commenting guidelines, and lines wrap at 80.
[ ] Commits follow the Ideal Git Commit Structure.
[ ] Any new logging statements use an appropriate subsystem and logging level.
[ ] Any new lncli commands have appropriate tags in the comments for the rpc in the proto file.
[ ] There is a change description in the release notes, or [skip ci] in the commit message for small changes.

Looking at this a bit more closely while reviewing https://github.com/lightningnetwork/lnd/pull/9253.
The defer g.wg.Done() within GoroutineManager.Go isn't protected by the mutex anymore, since it's running in a Goroutine. But Done() internally calls Add(-1), so we still have a potential race condition with Wait().

Yes I think you are right, if we call Add(-1) while also adding a goroutine concurrently it will panic, wonder if there could be a fix for this @starius
from the waitgroup impl. we would panic:
// This goroutine has set counter to 0 when waiters > 0.
	// Now there can't be concurrent mutations of state:
	// - Adds must not happen concurrently with Wait,
	// - Wait does not increment waiters if it sees counter == 0.
	// Still do a cheap sanity check to detect WaitGroup misuse.
	if wg.state.Load() != state {
		panic("sync: WaitGroup misuse: Add called concurrently with Wait")
	}

@guggero @ziggie1984  Thanks for looking into it!
Documentation of sync.WaitGroup.Wait has the following part:

Calls with a negative delta, or calls with a positive delta that start when the counter is greater than zero, may happen at any time.

I guess this means, that Add(-1) (= Done()) may happen at any time, even in parallel with Wait(). Intuitively this also makes sense, because it is not a race condition logically: the outcome does not depend on the order of Done() and Wait() calls, in opposite to a situation when Add(1) and Wait() are called in parallel. In the later case, the outcome depends on the order (if Wait() should block or just return immediately).
I also created a stress test testing GoroutineManager trying to catch this race condition, if it exists:
// TestGoroutineManageStopsStress launches many Stop() calls in parallel with a
// task exiting. It attempts to catch a race condition between wg.Done() and
// wg.Wait() calls. According to documentation of wg.Wait() this is acceptable,
// therefore this test passes even with -race.
func TestGoroutineManageStopsStress(t *testing.T) {
        t.Parallel()

        m := NewGoroutineManager(context.Background())

        // jobChan is used to make the task to finish.
        jobChan := make(chan struct{})

        // Start a task and wait inside it until we start calling Stop() method.
        err := m.Go(func(ctx context.Context) {
                <-jobChan
        })
        require.NoError(t, err)

        // Now launch many gorotines calling Stop() method in parallel.
        var wg sync.WaitGroup
        for i := 0; i < 100; i++ {
                wg.Add(1)
                go func() {
                        defer wg.Done()
                        m.Stop()
                }()
        }

        // Exit the task in parallel with Stop() calls.
        close(jobChan)

        // Wait until all the Stop() calls complete.
        wg.Wait()
}

The test passes under -race.
I think, that the current implementation is correct.

@Crypt-iQ From "or calls with a positive delta that start when the counter is greater than zero" part this should be allowed.

@starius thanks for the explanation, I missed that part in the doc. It indeed looks like the current implementation is correct then!

I think there is still a possibility of a race but not sure how to trigger it via tests:
Imagine you call Done() (which leads to a counter of 0) but in the same time a Wait was called (before the goroutine counter was 0) then you cannot be sure that the semaphore will release the waiter because the implementation would panic anyways but if it would not panic not as many semaphore release calls would be triggered.
if wg.state.Load() != state {
		panic("sync: WaitGroup misuse: Add called concurrently with Wait")
	}
	// Reset waiters count to 0.
	wg.state.Store(0)
	for ; w != 0; w-- {
		runtime_Semrelease(&wg.sema, false, 0)
	}

This is part of the Add implementation

@ziggie1984 If Done() and Wait() parallel calls result in a panic, this is a bug in Go, because this is allowed according to the documentation. If it works as stated in the docs, then the eventual outcome is Wait() returning soon (either immediately or waiting for small time until Done() unlocks it).
I'll try to look deeper into the code implementing Add(). It has many branching depending on delta's sign. I suspect one of them results in disabling the panic in case of negative delta. But I need to check this deeper.

@ziggie1984 If Done() and Wait() parallel calls result in a panic, this is a bug in Go, because this is allowed according to the documentation.

the docs says clearly when the counter is greater than zero and I was exactly refering to the case where we call Wait() concurrently when the last goroutine called the Done() method. Because then we run into t he issue that this done method will never be notified. I analysed the waitgroup and I am really convinced that this would trigger the above linked panic. But this panic seems to be more unlikely if even the race detector cannot trigger it.

@ziggie1984 I think that "when the counter is greater than zero" part applies only to "calls with a positive delta", not to "Calls with a negative delta" part in that sentence.
If counter=0, this means Add(-1) has already been applied. Doesn't this mean, that Add(-1) precedes Wait() in this case?

Because then we run into t he issue that this done method will never be notified.

Can you elaborate on this, please? If Wait() sees counter=0, it doesn't need to be notified, because it return immediately in that case.
While writing the response, I made a small table version of how I understand the rules of using Add():

delta
counter = 0
counter > 0

positive
before a Wait
at any time

negative
not allowed
at any time

Add(-1) is not allowed when counter=0, because then the counter would become negative.

@ziggie1984 Also check example of WaitGroup, please.
https://pkg.go.dev/sync#example-WaitGroup
They call wg.Done() from a goroutine and it can run at the same time with Wait(). If this is not allowed, then the example is wrong and it is a bug in Go.

After discussing with @ziggie1984 this morning I think this is correct.


Ability to choose particular pages where plugin works

First of all, thank you for your plugin. It really useful and save my eyes from visual noise. ❤
But, I use several pages with different scenarios so for some of pages is OK to be hidden when completed, but for some of them - NOT.
I see the option target, but it doesn't allow to choose particular page, just opt out all pages or all journal pages.
It would be really nice to have an ability to (at least) exclude some of pages by their name.
Because it's quite annoying to toggle plugin every time you switch the page.

For example, what if here we can check if the page name contains in settings (as excluded page) and if so, then use empty array of blocks instead of real blocks?
https://github.com/mlanza/logseq-wide-eyed/blob/54725f53df21ab8df0efc5e6236c2462e7f0636f/index.js#L173

I may retire this plugin soon.  I wrote a simpler, better implementation in Style Carousel, supplemented further by Classy.  In fact, v2 of Wide Eyed plugin is Style Carousel.  I just pushed it today.  I used the same core logic.  The only change I made was to keep the same icon you're already familiar with.
Between those two plugins, assuming you have some developer skills with the DOM and CSS you can customize your stylesheet to your heart's content.  All Style Carousel does is makes it easy to add buttons that allow toggles like showing/hiding completed todos.
If you don't want to wait on Wide Eyed's manifest fix you could just switch to Style Carousel.
Unfortunately, I had to update my manifest.  If you pull the update before that change gets pulled by the Logseq maintainers, your plugin will break.  I anticipate a couple days at most.

Please look to Style Carousel (it is successor of Wide Eyed) and direct any issue you might have there.  Thank you.


Non ESM example with Node?

How to use this library with require and not import? I'm using Node with all non esm. I cannot change that for now. I have to use the require structure. Any example on how to use this with this model? Please find my codes below.
const getLinkPreview = require('link-preview-js');

// pass the link directly
getLinkPreview(url).then((data) =>
  console.debug(data)
);

non ESM shouldn't be a problem, why don't play around and try importing it different ways, one of the should work
const LinkPreview = require('link-preview-js')
LinkPreview.getLinkPreview(url).then...


Emit registration point in listener execution build operations

Context
Required to distinguish rootProject and projectsLoaded listener executions, given that rootProject listener executions happen inside projectsLoaded as an implementation detail.
Will also assist users to find callsite of slow or otherwise problematic listeners.
Also fixed a bug in attribution of listeners registered in allprojects callbacks.

Passed


Difficult to reassemble some course titles form 2005-2006 report

In PDF, "CRS" is part of the course title, but is on a separate row:

In XML:

In refined XML it splits into two separate training attributes, pretty much orphanning it:

When grouped in the XSLT the page numbers are also grouped, creating some wierdness:

Interim solution

nuke the rows in the raw XML so they don't travel further.:w

Also see:

NCO PROFESSN'L DEV -, which is orphaned from SPANISH on the next row


Yahya.md

@Yahya-hossaini Please check where you created your Yahya.md file

@abbas-roholamin is it in wrong place?

@abbas-roholamin is it in wrong place?s

@Yahya-hossaini Yes, it has to be in the member folder

@abbas-roholamin  So I have to do all things from the first?

@abbas-roholamin So I have to do all things from the first?

@Yahya-hossaini No, you can fix it on your local, and push again


No directive present in 2.5

I'm submitting a ...  (check one with "x")
[* ] bug report => check the FAQ and search github for a similar issue or PR before submitting
[ ] support request => check the FAQ and search github for a similar issue before submitting
[ ] feature request

Current behavior
install 2.5.0 and directive "translate" does nothing. If I look in the code in the node_module directory, the word 'directive' is not even present anywhere.
Expected/desired behavior
well... I would have expected this to work.
Note that ng2-translate 2.3.1 works fine. I was interested in the 'translate' directive and couldn't install 2.4.x as it would cause all sorts of problems. So I took the ts file for the directive from Github , fixed the imports and all was ok.
I just saw that 2.5 came out and seemed to have the problems I had been having with 2.4.1 fixed, so I tried to install it. The errors are gone. The pipe works. But the directive is nowhere to be found.
I added the directive to my project using the ts sources on github. The problem now is that the directive accesses translateService.getParsedResult, which is private.
The directive finally works if one modifies the translate service and changes the getParsedResult method to public.
Please tell us about your environment:

ng2-translate version: x.x.x
2.5.0
Angular version: 2.0.0-rc.X
2.4.0
Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]
chrome (latest)
Language: [all | TypeScript X.X | ES6/7 | ES5]
ts

Hello,
sorry but the directive was added in version 4.1.0: https://github.com/ocombe/ng2-translate/releases/tag/v4.1.0
If you want to use it, just update the library.
Unless you're talking about 5.0.0 when you say 2.5.0 ?


⚠ Bofrost.es has degraded performance

In 2198b07, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1691 ms

Resolved: Bofrost.es performance has improved in f071b39 after 8 minutes.


add path between dydx and terra2

Thank you for the submission, but this was just added via the PR prior https://github.com/cosmos/chain-registry/pull/3376

oh, I just want to run the relayer between dydx and terra2 yesterday but didn't found the path. Someone has already submitted a PR, that is great!


feat/support-page-extensions

Adding support for custom page extensions through the NextRoutesPlugin Webpack plugin.
I'm not sure of the best way to make this work with the CLI, since the next-config file can be quite dynamic (the file can export the config as a function or async function, it can use CJS or ESM, etc.)

Hey @JohnDaly this is a great idea. I'd like to look into reading next.config.js directly rather than pulling in NextRoutesPlugin. That would also be generally useful in the future.
I'm curious how useful the dedicated cli command is now that we have withRoutes.

Are any changes necessary here? nextjs-routes is currently extension agnostic. What issue are you running into?

Are any changes necessary here? nextjs-routes is currently extension agnostic. What issue are you running into?

The changes in this PR will prevent non-page files from being included in the generated types.
Consider this example, where the test files are co-located with the page files:
./pages
├── _app.tsx
├── api
│   └── hello.ts
├── bars
│   ├── [bar].test.tsx
│   └── [bar].tsx
├── foos
│   ├── [foo].test.tsx
│   └── [foo].tsx
├── index.test.tsx
└── index.tsx

The generated types end up looking like this:
declare module "nextjs-routes" {
  export type Route =
    | { pathname: "/api/hello"; query?: Query | undefined }
    | { pathname: "/bars/[bar].test"; query: Query<{ bar: string }> }
    | { pathname: "/bars/[bar]"; query: Query<{ bar: string }> }
    | { pathname: "/foos/[foo].test"; query: Query<{ foo: string }> }
    | { pathname: "/foos/[foo]"; query: Query<{ foo: string }> }
    | { pathname: "/index.test"; query?: Query | undefined }
    | { pathname: "/"; query?: Query | undefined };

  type Query<Params = {}> = Params & { [key: string]: string | string[] | undefined };
}

This PR would generate the following types for the same project:
declare module "nextjs-routes" {
  export type Route =
    | { pathname: "/api/hello"; query?: Query | undefined }
    | { pathname: "/bars/[bar]"; query: Query<{ bar: string }> }
    | { pathname: "/foos/[foo]"; query: Query<{ foo: string }> }
    | { pathname: "/"; query?: Query | undefined };

  type Query<Params = {}> = Params & { [key: string]: string | string[] | undefined };
}

I'd like to look into reading next.config.js directly rather than pulling in NextRoutesPlugin. That would also be generally useful in the future.
I'm curious how useful the dedicated cli command is now that we have withRoutes.

NextRoutesPlugin is a slightly tweaked version of the existing nextRoutesPlugin that is used in withRoutes -- the only difference is that it allows for the pageExtensions to be passed in from the nextConfig. It's not an external dependency, or anything like that.

Are any changes necessary here? nextjs-routes is currently extension agnostic. What issue are you running into?

The changes in this PR will prevent non-page files from being included in the generated types.
Consider this example, where test files are co-located with the page files:
./pages
├── _app.page.tsx
├── api
│   └── hello.api.ts
├── bars
│   ├── [bar].test.tsx
│   └── [bar].page.tsx
├── foos
│   ├── [foo].test.tsx
│   └── [foo].page.tsx
├── index.test.tsx
└── index.page.tsx

The generated types end up looking like this:
declare module "nextjs-routes" {
  export type Route =
    | { pathname: "/api/hello"; query?: Query | undefined }
    | { pathname: "/bars/[bar].test"; query: Query<{ bar: string }> }
    | { pathname: "/bars/[bar]"; query: Query<{ bar: string }> }
    | { pathname: "/foos/[foo].test"; query: Query<{ foo: string }> }
    | { pathname: "/foos/[foo]"; query: Query<{ foo: string }> }
    | { pathname: "/index.test"; query?: Query | undefined }
    | { pathname: "/"; query?: Query | undefined };

  type Query<Params = {}> = Params & { [key: string]: string | string[] | undefined };
}

This PR would generate the following types for the same project:
declare module "nextjs-routes" {
  export type Route =
    | { pathname: "/api/hello"; query?: Query | undefined }
    | { pathname: "/bars/[bar]"; query: Query<{ bar: string }> }
    | { pathname: "/foos/[foo]"; query: Query<{ foo: string }> }
    | { pathname: "/"; query?: Query | undefined };

  type Query<Params = {}> = Params & { [key: string]: string | string[] | undefined };
}

Got it. Would it be fair to summarize the motivation here to omit .test files from the generated routes? And using pageExtensions is an implementation option?

Got it. Would it be fair to summarize the motivation here to omit .test files from the generated routes? And using pageExtensions is an implementation option?

The motivation is to support projects that make use of this Next.js feature: https://nextjs.org/docs/api-reference/next.config.js/custom-page-extensions and ensure that nextjs-routes only generates routing types for the actual page files.
It's not only to filter out .test files. There could be scenarios where non-page files that have more conventional extensions (e.g. .tsx, .ts, .jsx, .js, .cjs, .mjs) are co-located with page files that have special extensions (e.g. .page.tsx or .api.ts).

@JohnDaly My inclination is to take this in a simpler direction: https://github.com/tatethurston/nextjs-routes/pull/54. This library has an easier problem to solve than NextJS because we don't need to locate the file to serve.
The only case that comes to mind that this approach doesn't solve for is files in the pages directory that don't share the same filename, eg:
./pages
├── foos
│   ├── [foo].test.tsx
│   └── some-file.md

But I'm not concerned about supporting that use case.
Happy to keep this open in the event that a use case materializes isn't solved by #54.

@JohnDaly My inclination is to take this in a simpler direction: #54. This library has an easier problem to solve than NextJS because we don't need to locate the file to serve. This also sidesteps the issue of getting pageExtensions to the cli.
The only case that comes to mind that this approach doesn't solve for is files in the pages directory that don't share the same filename, eg:
./pages
├── foos
│   ├── [foo].tsx
│   └── not-[foo].md

But I'm not concerned about supporting that use case right now.
Happy to keep this open in the event that a use case materializes isn't solved by #54.

No worries, totally understand the desire to keep things simple here 👍


Website link on Chrome Store broken

On the Blue fin page on the chrome web store, the website link points to http://blufin.teapotcoder.com/ rather than http://bluefin.teapotcoder.com/ ("blue" is missing an "e")

Thank you. Just fixed it.


prependListener support

#123 mentioned prependListener support and opted to not implement it back in late 2017.
This poses a problem as prependListener turns out to be quite quicial for our current project. preprendListener also seems to be a standard Node.js API function for event emitters: https://nodejs.org/api/events.html#events_emitter_prependlistener_eventname_listener
Is there a plan to suppot this feature in the near future? / Do you accept PRs for this?
//Edit:
For now I opted to create our own library with an API compatible with eventemitter3(It compiles and runs with Phaser3 which uses eventemitter3) which I alias in our webpack.config.js(alias: { 'eventemitter3': path.resolve(__dirname, './node_modules/sahnee-eventemitter') })
Instead of implementing the preprendListener function I went for a priority parameter here, which is not standard compilant by the looks of it but much more powerful. https://github.com/Sahnee-DE/eventemitter/blob/master/src/index.ts#L104

prependListener support would be much appreciated


Revert "fix: "You no longer have access to your previous.." displayed when submit first expense via QAB"

Reverts Expensify/App#53746
This is blocking the app deploy, and is responsible for

https://github.com/Expensify/App/actions/runs/12350358982/job/34463064849
Lint tests are failing, but they are already failing on main (see https://github.com/Expensify/App/actions/runs/12353330258)

Closing this one in favour of https://github.com/Expensify/App/pull/54197
See https://expensify.slack.com/archives/C03TQ48KC/p1734356351264019?thread_ts=1734355925.915119&cid=C03TQ48KC


How to install

Hello @guillecro I see you are the one who has updated this code the last time.
There are no instructions on how to install Votación de Autoridades and I was wondering if there was any way of providing them as I would like to test it out.
Thank you.

Hi!
Thanks for your interest in this repository.
Sadly, this project was outsourced and our provider didn't include documentation.
We were working on something, but that will be available in a month or two.
On it's core it's been done with Laravel, which is a framework quite well known and usually the installation is pretty the same in each Laravel project. So any php developer could understand on how to install it.
Do you have one?

Thank you for answering so fast!
This is for my master's thesis where I'm comparing a few voting software solutions. I'm familiar with php although unfortunately I'm not very familiar with deploying projects. I can do it, just perhaps not without any instruction.
The only thing I really needed here was to explore it as a normal user would, and take notes. For example "the option to extract data to a .csv file is available", "You can customize the list of trustees", "You can set voter weight by individual voter" - honestly nothing technical even. In the off-chance that there is some sort of demo or maybe a docker image I could use, that would be great. But that's just a long shot! I'm asking just in case - and I know there probably isn't anything of the sort available.
Thank you for the tip about Laravel, I'm also familiar with it and will proceed with that. I appreciate the help.

Hello, I understand this is anticlimatic, but I've realized that DemocraciaOS is not exactly the type of voting software that I was looking for in my analysis (SaaS voting software, a service like spotify for example), and that is my mistake. Apologies 😅
Thank you for the links, while they do not apply to my thesis' theme, it's refreshing to see these types of youth-engaging voting activities. Portugal needs one of these for sure!
Nevertheless, thank you SO much for your help and readiness. Best of luck with your work and developments.


C AST Architecture Discussion

C AST is defined here.
For converting IR -> AST, I think we need more simple C-AST which have only necessary operator such as Div, Mul instead of Shr, Shl and only Gotos instead of Loop, Break.
What I mean is to define another struct as a subset of CASTNode.
So the decompilation process would be

IR -> Simple C-AST
Simple C-AST -> C-AST (remove Gotos, elaborate exprs)

This is slightly indirect approach, but I think each process would be clearer.

The idea seems good to me 👍
We should expose a mechanism to allow the user to implement analysis passes over both the AST structures in this case and improve overall decompilation. Can help evaluate PoC algorithms.

This is my detailed idea,
Simple C-AST
This is equivalent to block by block C-AST.
The block is a slice of instructions which starts from function's entrypoint or end point of jmp, branch instruction, also ends at the end of function, or jmp, branch instruction.
enum SimpleCASTNode {
    Constant(Ty, String),
    Var(String),
    ExpressionNode(Expr),
    Conditional,
    Goto(u64),
}

CASTEdge and Expr node of the AST can be same to the C-AST which is final output.
Possibly we can implement Simple C-AST just by replacing CASTNode in CAST with SimpleCASTNode or creating generic types.
IR -> Simple C-AST
We need to slice instructions into expressions.
Simple C-AST -> C-AST

I will implement simple Simple C-AST to C-AST convert which have Gotos at first. (GSoC week 1 ~ 4)
@HMPerson1 will implement the algorithm of structuring control flow. (GSoC week 5 ~ 8)

I have submitted PR #145.
The architecture of SimpleCAST in the PR is different from the one mentioned above.
The architecture is similar to SSAStorage. Each node is value or action. Value represents variable or immediate value, action represents call, goto, assignment, etc.


Fix environment variables quotes typo

Typo discovered during Devoxx workshop

Thanks for the PR! Though the main branch is generated by a script in the base branch, so I fixed it in the script instead


Update complex-data-model.md

Address https://github.com/aspnet/AspNetDocs/pull/205
@cnolewajka please review

@tdykstra  please review


Remap controls, make pickup function slower, make wrist movement stop…

Remapped controls (check google drive for controls), made pickup function slower, made wrist movement stop when button is let go, make claw movement controlled by one button.
Before issuing a pull request, please see the contributing page.

look gret


Loading screen

Created the animation gic and changed the letter type.
Organized the items to the center of the screen.

Wrong branch to merge.


Fixes errors in readme

Build fail caused by an old Gradle plugin, I'll resolve separately, thanks for checking this!