Styles mysteriously override dark mode menu button

In dark mode, this is how the confirm modal is supposed to look like:

However, with Say Something it becomes:

This needs to be investigated.

These lines cause the issue.
https://github.com/Friends-of-Monika/mas-saysomething/blob/888d5b44bc9546c241bd9844860a7a2b9c8a5d9f/mod/screen.rpy#L1041-L1055

Fixed in 36fd2caa1fbcf9bd9dea72a17982296cd8f4cfa7


RawDeployment support for Inference Graph

What this PR does / why we need it:
This change is to bring RawDeployment to Inference graph. Currently Inference Services support raw deployment, this changes brings parity.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #2454
Type of changes
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[X] This change requires a documentation update

Feature/Issue validation/testing:
Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Checklist:

[X] Have you added unit/e2e tests that prove your fix is effective or that this feature works?
[X] Has code been commented, particularly in hard-to-understand areas?
[ ] Have you made corresponding changes to the documentation?

Release note:

/cc @rachitchauhan43

/cc @yuzisun  @Iamlovingit : Please help in reviewing this PR.

/cc @kmarquardsen

@yuzisun   @rachitchauhan43   Pls let me know if we can take this change forward.  Looking forward to get this merged and start using raw deployment in our environments.


Feature Request: Allow to drag-and-drop images from browser.

The drop event seems already to arrive. It contains a html snippet with the link to the image, if not mistaken. The image needs to be loaded and provided to Hangout similar to the local ones.

this is the line that should read it if someone wants to pick this up
element.src = clipboard.readImage().toDataURL()
https://github.com/yakyak/yakyak/blob/master/src/ui/dispatcher.coffee#L259


Styles also affect all subdomains

If I write a style that should affect example.com, it will also affect someothersite.example.com.
How can I get around this?

still not work - subdomain style affect root or another subdomains


Sort color dropdown by name

Took me a while to find "windows blue" in the color drop down 😆

Hi @medoror - I made a change to add background colors to the color dropdown, they're currently sorted by shade rather than by name. Does that help alleviate the problem you were having?

Sorting by shade has helped me enough to close this issue!


Hello guys. Am still working on the readme. I need those routes and images for the ussd

initial commit
Description
Please include a summary of the change and relevant motivation and context.
List any dependencies that are required for this change.
All pull requests should be related to open issues. Indicate the issue(s) bellow and remove this line:
Fixes #(issue number 1) #(issue number 2 if applicable)
How Has This Been Tested?
Please describe in detail how you tested your changes.
Include details of your testing environment, and the tests you ran to see how your change affects other areas of the code etc.
Screenshots (if applicable, else remove this line / section)
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added necessary inline code documentation
[x] I have added tests that prove my fix is effective and that this feature works
[ ] New and existing unit tests pass locally with my changes

And also I know many thing are missing. You can give suggestions


Added documentation for Wiggle Sort

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description
Added documentation for Wiggle Sort.
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
Fixes #374

@HarshCasper I have updated the documentation. Please have a look.


Should we tag Transactions, Addresses, or both?

Should we tag Transactions ("ChainEvent"), Addresses, or both?
In some use cases, it seems more efficient and user-friendly to tag addresses rather than transactions. For example, we may want to declare an "ON-RAMP" address. Or is it sufficient to declare ("tag") as "ON-RAMP" all transactions from that address?

The primary purpose of this library is for income tax accounting. In that case, do addresses have intrinsic properties we may want to tag, or are the meaningful properties primarily attached to transactions?
Are there cases where the same address may or may not have a property ("tag") depending on the transaction? For example, can an address sometimes be for on-ramping and other times for off-ramping?

While writing this, my intuition is tagging only at transaction-level should be sufficient, even if it may be more inefficient sometimes (we may trade O(1×n) to O(m×n) in the naive implementation).
I remain open to comments.

I solicited ChatGPT about that. Here is a summary of our discussion:
Question
I am designing an accounting application written in TypeScript for my personal use. The main goal is to collect the transactions from or to given addresses in order to detect fiat-to-crypto and crypto-to-fiat events and evaluate the global portfolio value on those dates to report to income tax services.
At this stage, I can collect the required transaction data from GnosisScan and keep them ordered by timestamp in a Ledger. The Ledger also stores a catalog of all the addresses discovered when extracting the transactions. I can also leverage the CoinGecko API to gather past token prices for portfolio evaluation purposes.
I suppose I will need a Portfolio object that will walk through the transactions in the Ledger and evaluate and store the total portfolio value for each event. It should also track whether fiat money was on-ramped or off-ramped in each transaction.
This requires additional user-supplied data to correctly classify each event. So, I need to enrich the data stored in the Ledger with things like:

Transactions to this address are crypto-to-fiat events.
Transactions from that address are fiat-to-crypto events.
A particular transaction is a rent yield.
Another transaction is an airdrop.
And so on...

I imagine a tag system to enrich the data stored in the Ledger so the Portfolio can handle the different events properly.
Question:
Should I tag only transactions, only addresses, or both?
What are the pros and cons of each approach?

Discussion Summary
Option 1: Tag Only Transactions
Pros:

Provides granular control for each transaction.
Simplifies Portfolio analysis by making event types explicit.
Allows handling edge cases where a single address serves multiple purposes.
Transparent for debugging and auditing.

Cons:

Requires tagging every relevant transaction, which could be labor-intensive.
May result in redundant tags if many transactions share the same behavior due to the involved address.
Complex queries might be needed to group transactions by address.

Option 2: Tag Only Addresses
Pros:

Efficient tagging: apply a tag once per address, reducing duplication.
Automatically applies to all transactions involving the tagged address.
Simplifies logic when the behavior of an address is static.

Cons:

Lacks granularity when the same address serves multiple roles (e.g., crypto-to-fiat and fiat-to-crypto events).
Assumes all transactions involving a tagged address share the same behavior, which can lead to incorrect classifications.
Struggles to handle exceptions or edge cases without additional mechanisms.

Option 3: Tag Both Transactions and Addresses
Pros:

Combines the efficiency of address tags with the granularity of transaction tags.
Allows default behaviors based on address tags while handling exceptions via transaction tags.
Enhanced analytics and flexibility for handling overlapping use cases.
Suitable for complex scenarios where transactions and addresses require distinct classifications.

Cons:

Increases complexity due to the need for reconciliation logic.
Requires maintaining two tagging systems, which could add overhead.
Potential for confusion if the precedence of address and transaction tags is not well-documented.

Recommendation

Start with transaction-level tagging if short on time, as it provides the granularity needed to handle ambiguous cases and edge scenarios.
Implement contextual inference for cases where explicit tags are missing (e.g., using transaction direction, amount, or token type).
Allow manual tagging or overrides for ambiguous transactions to ensure correctness.
Expand to include address-level tagging later to simplify common patterns while maintaining the flexibility of transaction tags.

Decision Tree for Tagging

Does the transaction have an explicit tag?

Yes: Use it.
No: Continue.

Does the address have a default tag?

Yes: Use it.
No: Continue.

Can the event be inferred from context (e.g., direction, amount, token)?

Yes: Infer it.
No: Continue.

Is the transaction ambiguous?

Yes: Prompt the user to classify it.
No: Leave it unclassified (or tag it as unknown).

Edge Case: Multi-Purpose Addresses

Problem: An address is used for both crypto-to-fiat and fiat-to-crypto events.
Solution:

Infer the event based on transaction direction (to or from), amount, or token.
Use transaction-level tags to override address-level defaults when necessary.
Allow manual classification for ambiguous transactions.

Conclusion
Using transaction-level tagging combined with contextual inference offers the flexibility to handle most scenarios, including multi-purpose addresses and ambiguous events. Expanding to include address-level tagging later can simplify tagging for common patterns, providing a robust system for classifying and analyzing transactions effectively.


[STORY]: Create new email notifications for 'Follow + Note'

Full User Story
As an organization, we would like to foster more collaboration between our users to allow for the sharing of knowledge and resources to empower them to more efficiently and effectively apply for the grants discovered on our platform.
As a grantseeker, I want to be able to easily share grants I’ve discovered with my team.
As a grantseeker, I want to be able to easily find collaborators who may be able to help me when preparing and applying for grants.
As a grantseeker, I want to be able to quickly see what grants my team members are interested in.
As an admin, I want to be able to easily surface and resolve issues and blockers my team is running into.
Why is this issue important?
In order to help build the collaborative spirit we're going for, we need to have a prompt to pull people back to the platform when people they may be interested in supporting or receiving support from mark interest in the same grant. This will help bring users back to the platform in a timely manner to collaborate on previously marked grants.
Action Plan

[x] Initial design drafted
[x] Initial acceptance criteria drafted
[ ] High level technical approach & feature flag use determined
[x] Designs & Acceptance criteria finalized
[ ] Eng task breakout complete
[ ] Assessment of whether partner training & communication actions are needed
[ ] Acceptance criteria testing completed & passed in staging
[ ] Feature flags enabled in production
[ ] Feature flags are removed once the feature is deemed stable

Engineering Tasks

[x] #3570
[ ] #3571
[ ] #3572

Acceptance Criteria
Designs
Trigger
A daily digest of follow & notes activity will send each morning to a user who:

has their Grant Activity notification set to "on" AND at the time of the check, if a new user in the organization follows a grant and/or a new note is added to a grant, and/or an existing note is edited for any grants that the user follows (i.e. since the previous day's check for activity).
if the user does not follow any grants or has no activity in the past 24 hours (since the last check) for any grant they follow, they will not receive an email
the user receiving the email must be following the grant at the time of the check (i.e. if I followed a grant at 10am today, but unfollowed it at 2pm today, then tomorrow morning I would not receive a grant activity notification email)
The person who followed the grant should not receive the email if the only activity is their own follow action and/or their own note creation/edit

General email specifications
Create new email notification for 'Grant Activity'
- From: USDR Federal Grant Finder<EMAIL_ADDRESS>- Email Subject: New activity in your grants
- Preview Text: See recent activity from grants you follow
General Email Content
- Header should match Grants Digest header (i.e. USDR Logo with "Federal Grant Finder" underneath)
- Email Title: New activity in your grants
- Subtitle: Today's date will display under the title
- Footer: Should display the text "Change notification preferences" - this text should link to the /my-profile  page of grant finder
- Body: - Each grant with activity should be displayed in its own box. There is no maximum of grants that should display. We will want to ensure that we are able to monitor frequency of the email size exceeding what can load (i.e. so we can understand how frequently users will not be able to see full content due to the email being too long)
Content within each grant box
- The grey header of the box should display the name of the grant - this should truncate after two lines with an ellipses at the end (see third grant in design as an example of truncation). The name of the grant should also link to the relevant grant details page in Grant Finder.
- Below the grant title, new note activity should display first if there is any. If there are no new or edited notes, then no note section should display. If there are no new followers, then no follow section should display. If neither new/edited notes or followers exist, the grant should not appear in the email digest.
- At the bottom of the grants box, the "View Grant" button should display and link to grant details page
Notes section:

The Notes section should begin with: "[#] NEW NOTES" with the total count of notes that are new or have been edited since the previous day's check. If a note was deleted in this time, it will not be included.
The list of notes should display as a bulleted list
Note line 1: [Name of user who left the note] • [User's team name]
Note line 2: [email address of user who left note]
Note line 3: Display full text of the note. This should wrap to additional lines as needed and should not truncate.
A maximum of two notes should display. If there are more than two new notes, then "+ See all notes" should display as text that links to the grant details page

Followers section

The Followers section should begin with "[#] NEW FOLLOWERS"
The list of followers should display as a bulleted list
Follower line 1: [Name of user who followed] • [User's team name]
Follower line 2: [email address of user who followed]
A maximum of one follower should display. If there are more than two new notes, then "+ See all notes" should display as text that links to the grant details page

My Profile

Add new entry to Email Notifications.

Name: Grant Activity
Description: Send me a daily summary of new activity for grants that I follow.
Enabled/Disabled Toggle: By default, this will be Toggled ON for all users.

Two leading designs thus far, one exploring pulling in the user avatar + comment visual component into the email

Additional comment: View My Grants button links to interested tab

Drafting some scratch for implementing these notes as a digest...
Querying for grant activity
The following query returns both new follows and note revision content for grants since a given :sinceDate, limited to a given tenan.id identified by :organizationId. In this example, the rows are ordered by grant ID (to keep rows pertaining to the same grant together), then new follower activity (oldest first), then new note revision content (oldest first).
SELECT
    g.grant_id AS grant_id,
    g.title AS grant_title,
    u.id AS user_id,
    u.name AS user_name,
    u.email AS user_email,
    a.name AS agency_name,
    activity.activity_at,
    activity.activity_type,
    activity.text_content AS activity_text_content
FROM grants g
JOIN (
    SELECT
        gf.id,
        gf.grant_id,
        gf.user_id,
        gf.created_at AS activity_at,
        'follow' AS activity_type,
        null AS text_content
    FROM grant_followers gf
    UNION ALL
    SELECT
        rev.id,
        gn.grant_id,
        gn.user_id,
        rev.created_at AS activity_at,
        'note' AS activity_type,
        rev.text AS text_content
    FROM grant_notes gn
    LEFT JOIN LATERAL (
        SELECT
            r.id,
            r.grant_note_id,
            r.created_at,
            r.text
        FROM grant_notes_revisions r
        WHERE r.grant_note_id = gn.id
        ORDER BY r.created_at DESC
        LIMIT 1
    ) AS rev ON rev.grant_note_id = gn.id
) activity ON activity.grant_id = g.grant_id
JOIN users u ON u.id = activity.user_id
JOIN agencies a ON a.id = u.agency_id
JOIN tenants o ON o.id = u.tenant_id
WHERE
    o.id = :organizationId
    AND activity.activity_at >= :sinceDate
ORDER BY
    g.grant_id DESC,
    -- Followers first, then notes (remove for grant activity in chronological order, regardless of type):
    array_position(array['follow', 'note'], activity.activity_type) ASC,
    activity.activity_at ASC;

Querying in this manner allows for the result set to be iterated over in a manner that can be used to progressively construct the contents of a digest email. Since rows with the same grant ID appear consecutively (and within those, rows representing the same activity type appear consecutively, ordered by oldest-first), the body of an iterating loop can watch for changing grant_id and activity_type values to determine when to construct a new digest section for a grant and a new sub-section pertaining to activity type within that grant.
Example result set:

grant_id
grant_title
user_id
user_name
user_email
agency_name
activity_at
activity_type
activity_text_content

987654
This grant has a lot of activity
5
Jennifer Coleman
<EMAIL_ADDRESS>Climate Office
2024-09-19 09:24:07.531172+00
follow
null

987654
This grant has a lot of activity
2
Ray Welch
<EMAIL_ADDRESS>Dept of Education
2024-09-19 15:20:37.545297+00
follow
null

987654
This grant has a lot of activity
5
Jennifer Coleman
<EMAIL_ADDRESS>Climate Office
2024-09-19 09:25:53.746174+00
note
First note of the day.

987654
This grant has a lot of activity
4
Ken Ingram
<EMAIL_ADDRESS>Public Works
2024-09-19 10:01:26.897312+00
note
This is the second note.

987654
This grant has a lot of activity
3
Traci Tran
<EMAIL_ADDRESS>Climate Office
2024-09-19 14:21:53.306255+00
note
Last note for today!

246813
A grant with a single new follower
4
Ken Ingram
<EMAIL_ADDRESS>Public Works
2024-09-19 10:45:29.726974+00
follow
null

123456
Two new followers and one new note
3
Traci Tran
<EMAIL_ADDRESS>Climate Office
2024-09-19 15:50:42.655014+00
follow
null

123456
Two new followers and one new note
5
Jennifer Coleman
<EMAIL_ADDRESS>Climate Office
2024-09-19 16:22:08.934724+00
follow
null

123456
Two new followers and one new note
5
Jennifer Coleman
<EMAIL_ADDRESS>Climate Office
2024-09-19 16:22:09.468254+00
note
This is the second grant I've followed today.

Note that this query can also make use of aggregate functions such as json_agg() along with GROUP BY grant.grant_id, grant.title so that each row represents an individual grant and provides a JSON column of aggregated activity data for that grant. Doing so can potentially simplify iteration on the JS side (although the tradeoff in query complexity may not be worth it).

@ClaireValdivia Just want to confirm whether or not the email digest a user receives will contain their own follow/note activity (assuming it is not the only activity for that day)

@greg-adams no, the user should not see their own follow/note activity in the digest.


ignore astropy_time attribute exception in show_properties

Fixes #655, so that available properties are successfully printed by call to show_properties when time is not astropy_time formatted.

Something funky appears to be going on with the tests, not necessarily related to this PR.  Will try to investigate asap!


BPF_LOG_SIZE does not take effect

What happened:
BPF_LOG_SIZE is used to set the err buffer size of the verification result returned when the BPF program fails to be loaded. However, the setting does not take effect.：
like this，the log is also be truncated：
load program: bad address: 12124: (25) if r2 > 0xd goto pc+165: The sequence of 8193 jumps is too complex. (truncated, 108 line(s) omitted)"
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

Kmesh version:
Others:

/assgin

/assign

also met this before. Sometimes increasing it will work: print more verifier logs, but the log size is not as expected.

This env will not take effect once we upgrade the pkg https://github.com/kmesh-net/kmesh/pull/717

BPF_LOG_SIZE has been removed, but the verifier's log cannot be dumped completely, We can temporarily modify the following code to ensure that all logs are exported
func (cl *collectionLoader) loadProgram(progName string) (*Program, error) {
        ... ...
	prog, err := newProgramWithOptions(progSpec, cl.opts.Programs)
	if err != nil {
		return nil, fmt.Errorf("program %s: %+w", progName, err)// %w can be modified to %+w
	}

	cl.programs[progName] = prog
	return prog, nil
}

	if err = l.workloadObj.Load(); err != nil {
		l.Stop()
		return fmt.Errorf("bpf Load failed, %s", err)
	}

We should always use %w tp print error instead of %s

close now, as BPF_LOG_SIZE  is no longer needed. If there is truncated issue, should report to cilium ebpf repo


Edit all_problem generator and regenerate exercises

This patch includes an edit in the all_problem test names to remove duplicate test names and a regeneration of the problems to reflect the test name edit.

Thank you! :heart:


cant access local/session storage and indexDB from iframes

its probably already been noticed but you cant access the local/session storage and indexDB from the iframes on ordinals.com or other sites, only the content link. i have an RPG ordinal and it breaks in these previews because it cannot access the local storage, there is also an issue exclusive to ordinals.com where the scroll bar doesnt show up in the previews. can we please solve both of these issues? i would really appreciate it
here is the link to the RPG ordinal: https://ordinals.com/inscription/1915ae7d46502199a7d03256efd7f6e2f6aabb8ed7176b34f70b7b8fd778b36ci0

you didnt even read my post bruh. there is no reactive code, this is an RPG game, the users save data is stored on in the browsers local storage and its inaccessible from the iframes. i know how recursive ordinals work and if you looked at my project you would see that i used recursion to make it possible.

In order to enable this, we would have to add the allow-same-origin attribute to inscription iframes. I don't think I understand the implications of doing so.


Implement library for communication with Flipper

We need a design doc for this library (libraries?).
Main requirements:

Should be served as a separate library (libraries?)
Should keep the connection to the device and notify about the connection status.
Should be implemented using plain listeners (no rxjava/coroutines)
Should provide Bluetooth device connection flow. (including UI)
Should provide high-level API to communicate with Flipper core (in future)
Should provide high-level API to communicate with Flipper plugins (in future)
Should provide rxjava/coroutines adapters

Should provide high-level API to communicate with Flipper plugins

I think in MVPv1 we don't need this

Should provide high-level API to communicate with Flipper core
We don't want implement any logic inside this library. This library response only about stable connection

Should provide high-level API to communicate with Flipper plugins

I think in MVPv1 we don't need this

Yes. I've added it to keep in mind when we will be thinking about the architecture of library.
This features can be separate modules, for sure.

DRAFT
So, here's the design proposal.
We will have two separate features.

Flipper BT communication kit (further - btcomm)
Flipper BT connection UI kit (further - btui):

BTComm
This module will give access to low-level communication between the application and Flipper.


[Rector] Apply MakeInheritedMethodVisibilitySameAsParentRector

Make method visibility same as parent one with MakeInheritedMethodVisibilitySameAsParentRector rector rule.
Checklist:

[x] Securely signed commits

These are all changes from public to protected, which technically is a breaking change. All the database classes have magic callers so should be fine; the Image handlers are "underscore protected" so should probably be protected and @internal anyway; the rest are all part of the Test namespace and seem appropriate for how those classes are intended to be used.
If we want to proceed with these I would still like these documented appropriately.

@MGatner do you think it needs to be in the changelog https://github.com/codeigniter4/CodeIgniter4/blob/df419297c5f85c28e1cb27ac0dac66c408e6d0ea/user_guide_src/source/changelogs/v4.1.4.rst ?

@samsonasik Yes, sorry to be unclear - that is precisely what I want. I think it is fine jus to list them out.
Breaking Changes

The following methods were changed from "public" to "protected" to match their parent class methods and better align with their uses:
* Alpha\Beta::foo()
* Gamma\Delta::bar()

@MGatner changelog updated.


Update mev-boost relay URLs

Closes #222
Changes:

Update relay URLs for mainnet and goerli according to https://github.com/eth-educators/ethstaker-guides/blob/main/MEV-relay-list.md

Types of changes
What types of changes does your code introduce?
Put an x in the boxes that apply

[x] New feature (non-breaking change which adds functionality)

Testing
Requires testing

[ ] Yes
[x] No

In case you checked yes, did you write tests?

[ ] Yes
[ ] No

Codecov Report
Base: 89.88% // Head: 89.97% // Increases project coverage by +0.08% :tada:

Coverage data is based on head (0def051) compared to base (fe491e3).
Patch has no changes to coverable lines.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #237      +/-   ##
===========================================
+ Coverage    89.88%   89.97%   +0.08%
===========================================
  Files           62       62
  Lines         3491     3491
===========================================
+ Hits          3138     3141       +3
+ Misses         270      269       -1
+ Partials        83       81       -2

Flag
Coverage Δ

unittests
89.97% <ø> (+0.08%)
:arrow_up:

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

Impacted Files
Coverage Δ

cli/root.go
81.08% <0.00%> (+8.10%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


travis rates urls

Fixes #42. Should be merged after #40
Comma-separated lists were handled in the poglink.utils.setup_config function which is being used in the main.py module right now, but the same level of type-checking/parsing wasn't being done for arguments passed directly to the BotConfig class for instantiation.

fix: Ensure certain BotConfig vals passed as strings are cast to length-1 lists
test: Add some tests for BotConfig
test: Add another test for bot instantiation
fix: Parse comma separated list types in BotConfig instantiation

We may want to handle the case where the user provides a list of strings

I would consider that invalid syntax that shouldn't be really expected by poglink, I'm afraid (note that it's a pyyaml error). The top level YAML structure is a map (key-value pairs), and the rates_urls key expects an array or a string (which may consist of a series of comma delimiters that your application is now smart enough to know how to handle).
There is no such construct within YAML as a bare "list of strings" that are separated by commas. It's either an array denoted by hyphen-prefixed newlines or by square brackets. The latter of those is likely what you intended to show here (reference).
Also worth noting in that case, the double quotes aren't really necessary either; YAML assumes string type by default and the quotes are mostly just good for escaping special characters or for readability.
So overall, you've got 3 options:

hyphenated line items (real YAML)
square brackets with comma separation (real YAML)
single string with comma separation (not real YAML, but your app will know how to break down the string into its individual parts)

I wouldn't handle this error personally, as the pyYAML library is already raising a descriptive error indicating that some invalid syntax is being supplied

You know what, on 2nd thought, I think I misspoke. It wouldn't be a terrible idea to create a custom exception like ConfigReadError to re-raise after catching the above yaml error. I just think it still should be re-raised and left uncaught unless you would prefer a different behaviour when provided an invalid configuration file?

I wouldn't handle this error personally, as the pyYAML library is already raising a descriptive error indicating that some invalid syntax is being supplied

You know what, on 2nd thought, I think I misspoke. It wouldn't be a terrible idea to create a custom exception like ConfigReadError to re-raise after catching the above yaml error. I just think it still should be re-raised and left uncaught unless you would prefer a different behaviour when provided an invalid configuration file?

Yeah, I just meant that we should catch and log the error rather than letting it crash without explanation

Yeah, I just meant that we should catch and log the error rather than letting it crash without explanation

I'll add that in now real quick


Prepare to publish it in NPM

Prepare for publishing this as NPM package.

Started a new package on NPM https://www.npmjs.com/package/hubot-natural
Still it isn't possible to add it as an external script to be used as a simple hubot package, somethings need to be redesigned for this to work.


feat: inclusion maps into finite coproducts in Stonean are open embeddings

... both the explicit and the abstract one.

[x] depends on: #6771

Co-authored-by: Riccardo Brasca @riccardobrasca<EMAIL_ADDRESS>Co-authored-by: Filippo A E Nuccio @faenuccio<EMAIL_ADDRESS>

bors r+


backup service: add metadata into backup response

we need to add meta info into the backup HTTP response
X-etcd-Version: <etcd_version>
X-Revision: <revision of the snapshot>

fixed via #695


can not customize the icon in toolbar

Jodit Version:  3.4.15
Browser:  Chrome
OS:  Windows/Mac
Code
var editor = new Jodit('#area_editor', {
       events: {
           getIcon: function (name, control, clearName) {
               var code = clearName;
               console.log(code);
               switch (clearName) {
                   case 'redo':
                       code = 'rotate-right';
                       break;
                   case 'video':
                       code = 'video-camera';
                       break;
                   case 'copyformat':
                       code = 'clone';
                       break;
                   case 'about':
                       code = 'question';
                       break;
               }

               return '<i style="font-size:14px" class="fa fa-' + code + ' fa-xs"></i>';
           }
       }

Expected behavior:
the editor will use the 'getIcon' function when create the icon in toolbar
Actual behavior:
it never call the 'getIcon' function,not fire the 'getIcon' event.

hey @athlan20 , I was able to work around this just by monkey-patching Jodit.modules.Icon and not using this event at all.
I did:
import icons from './icons';

const Icon = Jodit.modules.Icon as any;
Icon.icons = {...Icon.icons, ...icons};

where icons.ts is just an object with like {foo: '<svg etc...'}
Hope that helps!

okay，thx a lot，i will try it later


Generate features, configuration directory and serverXmlFile in non-default location

Users can specify locations for their configuration directory and serverXmlFile in the configuration block of the Liberty Maven plugin, ie.
<serverXmlFile>publish/servers/server.xml</serverXmlFile>
<configDirectory>publish/config</configDirectory>

Looks like generate features is not currently picking up these locations:
[WARNING] The server file C:\MyData\MyWDTWorkspaces\GarageSale\GarageSaleEE7\garageSale-ee7\GarageSaleRuntimeUtil\src\main\liberty\config\server.xml does not exist. Skipping its features.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  27.526 s
[INFO] Finished at: 2022-01-20T12:58:19-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.openliberty.tools:liberty-maven-plugin:3.5.2-SNAPSHOT:dev (default-cli) on
project GarageSaleRuntimeUtil: Failed to generate a working set of features. Error collecting list of directories to send
to binary scanner, list is null or empty.. To disable the automatic generation of features, start dev mode with -
DgenerateFeatures=false.

Error message above looks related to https://github.com/OpenLiberty/ci.maven/issues/1321
But the server.xml file indicated in the console output is incorrect. Will need to debug and test this scenario more once #1321 is fixed.

As part of this item, we need to update the logic we have to write the generated features comment to the user's server.xml file after feature generation. See https://github.com/OpenLiberty/ci.gradle/pull/752#discussion_r876167289


Which version of the API is used?

Hey,
How do you determine which version of the API to use? For example, the Catalog items API has 3 versions. Do you just pull the latest one? How do know if a new one was released?
I'm asking because we're generating C# code from the models using swagger codegen but we're coming up against this issue.

We generate all models.
See:
https://github.com/ScaleLeap/selling-partner-api-sdk/tree/master/src/api-models

https://github.com/ScaleLeap/selling-partner-api-sdk/tree/master/src/api-clients

https://github.com/ScaleLeap/selling-partner-api-sdk/blob/35f0a3715e0c3f898795385ded598ced97ba62ed/utils/generate.ts#L29-L33

I'm going to close the issue, as it's not really an issue. But feel free to continue the discussion.

Thanks :) You need a discussion tab!
How do you keep track of new releases from Amazon's side?

Thanks :) You need a discussion tab!

If we get more discussions we can add one. For now this is ok too.

How do you keep track of new releases from Amazon's side?

https://github.com/ScaleLeap/selling-partner-api-sdk/blob/35f0a3715e0c3f898795385ded598ced97ba62ed/.github/workflows/generate-models.yml#L3-L6

If we're starting anew project now, should we just take the latest version of each model?

Yes, especially the reports, as the older versions have convoluted report encryption for no reason. Also, older versions do get deprecated.

Okay thanks! What do you do about models that are used by more than one model? For example, the PartyIdentification model is used by quite a few of the Apis. How do you structure the code base?


JSON API output is missing some location info

When I view https://wttr.in/Stockholm in my browser, the weather data location is listed as "Weather report: Stockholm", and then further elaborated in the footer:
Location: Sthlm, Stockholm, Landskapet Uppland, Stockholms län, Svealand, Sverige [59.3251172,18.0710935]

Sadly I can only find a subset of this information when I hit https://wttr.in/Stockholm?format=j1 (snippet cut for brevity):
    "nearest_area": [
        {
            "areaName": [
                {
                    "value": "Riddarholmen"
                }
            ],
            "country": [
                {
                    "value": "Sweden"
                }
            ],
            "latitude": "59.333",
            "longitude": "18.067",
            "population": "0",
            "region": [
                {
                    "value": "Stockholms Lan"
                }
            ],
            "weatherUrl": [
                {
                    "value": ""
                }
            ]
        }
    ],
    "request": [
        {
            "query": "Lat 59.33 and Lon 18.07",
            "type": "LatLon"
        }
    ],

Ctrl+F for "Stockholm" over the rest of the response doesn't return anything but "Stockholms Lan", which is only the province.

Yes, it is true. The location data is added to the v1 and v2 views only, and is missing in the j1 view.
I agree that it would be helpful to have it in the JSON data too. Accepted.


Trigger tests in release-* branches

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

Comparison is base (7ba3c5f) 78.32% compared to head (b3de0aa) 43.68%.

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #444       +/-   ##
===========================================
- Coverage   78.32%   43.68%   -34.65%
===========================================
  Files          61       59        -2
  Lines        5039     4917      -122
===========================================
- Hits         3947     2148     -1799
- Misses        882     2633     +1751
+ Partials      210      136       -74

Flag
Coverage Δ

integration-test
?

unittests
43.68% <ø> (-0.07%)
:arrow_down:

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

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


Increase streaming server timeout

Increases the timeout for the streaming server to 60s which appears to allow sufficient time for the PVR Spark 2 tests to complete. In local testing this addresses #21473
Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Run Java Spark v2 PortableValidatesRunner Streaming

It worked! Okay, so it's really just that setting up and tearing down Spark can take awhile.

I'm no longer sure it's a race. I think the tests may just take awhile to run and get killed by the timeout if they overrun.

This is nice!


Add getter/setter functions for FormField's dontEscape

I've got a couple areas in the CMS on a project I'm working on where it makes sense to include a link to another record in amongst the form fields, and it's a pain to have to create an extra holder variable when everything else can be accessed by setters through ReadOnlyField::create.
Maybe it'd make more sense in the long term to make some kind of ClickableLinkReadOnlyField? But this at least brings $dontEscape inline with the other properties.

@tractorcow I'm sure there's already a way to do this?

Why not use a LiteralField?

Yes I think it needs getter/setter.
However, I really dislike the existing naming of this variable.
How about flipping the name though to make it more understandable.
public function setEscapeEnabled($enabled) {
	$this->dontEscape = !$enabled;
}

I'm going toclose this as stale - it's been open a long time with no progress from orignal author (sorry @mcccclean)
If you find you're able to implement the feedback, that'd be great and we can reopen this.


EDU-1114 Make room documents draggable

Closes https://educandu.atlassian.net/browse/EDU-1114
Owner view:

Collaborator view:

Member view (aka exclusive room member):

Looks nice, but I think I found an issue:
Dragging works perfectly fine for documents that were initially loaded with the page. But when I create a new document sequence in the room and then try to drag one of those new documents, they seem to fall back to their old place.
Another (but small) glitch is, that after dropping, the order reverts to the original order for a fraction of a second before turning into the new order (probably due to server communication because the glitch length is proportional to the network throttling :grimacing:)

Looks really nice 😍 , but I think I found an issue:
Dragging works perfectly fine for documents that were initially loaded with the page. But when I create a new document sequence in the room and then try to drag one of those new documents, they seem to fall back to their old place.
Another (but small) glitch is, that after dropping, the order reverts to the original order for a fraction of a second before turning into the new order (probably due to server communication because the glitch length is proportional to the network throttling 😬)

Nice finding! Did not think of document sequence resorting, and obviously nobody else did for some time on Production either, because the bug is already there.
I'll:

make another ticket for this bug you uncovered
will look into the glitch part within the current ticket/PR

Looks really nice 😍 , but I think I found an issue:
Dragging works perfectly fine for documents that were initially loaded with the page. But when I create a new document sequence in the room and then try to drag one of those new documents, they seem to fall back to their old place.
Another (but small) glitch is, that after dropping, the order reverts to the original order for a fraction of a second before turning into the new order (probably due to server communication because the glitch length is proportional to the network throttling 😬)

Nice finding! Did not think of document sequence resorting, and obviously nobody else did for some time on Production either, because the bug is already there.
I'll:

make another ticket for this bug you uncovered
will look into the glitch part within the current ticket/PR

Created https://educandu.atlassian.net/browse/EDU-1120 and fixed the flickering. Nice catch!

Created https://educandu.atlassian.net/browse/EDU-1120 and fixed the flickering. Nice catch!

Perfect :+1:


it doesent work

i added the dll in the geode mods folder and it still wont work

Did you add the tobyadd.gdh.geode dll to your geode mods folder? do you have CBF enabled? there are certain mods within geode that breaks GDH, such as other Mod menus like MH, etc.


"direct.h" file not found

@songbaoqiang, did you find any solution for this?

https://github.com/ZipArchive/ZipArchive

Is it different ? What's the difference between these two?

i don't know.It works for me.


Exposing setting atomSymbols to python for MolzipParams

Expose setting molzipparams atomSymbols to python
I decided to add two setter functions to the class because I couldn't figure out how to wrap std::vector as a def_readwrite.

Closed, I used a simpler method as @greglandrum suggested


Missing link to the blog post

In the Finetuning with LoRA markdown file there's a text pointing to a blog post but lacks the link tot he same.
The text:
(See [this blog article](How To Finetune GPT Like Large Language Models on a Custom Dataset) for how to prepare and use custom datasets.)
Thanks.

Good catch! I think it was meant to link to https://lightning.ai/blog/how-to-finetune-gpt-like-large-language-models-on-a-custom-dataset
Would you like to open a PR with the fix?


Refactor unit tests

Our unit tests make extensive use of default values, including in "util" functions implicitly used, which creates hard to understand relationships, and ultimately makes it difficult to understand why a test succeeds or fails. For example, some validation checks probably work because we used the default value for our ClientId, which happens to be also used when, say, creating the "dummy" packet.
I've also seen tests such as this one which claims a reason for the test to fail (e.g. the client doesn't have a consensus state at the required height), but no client is even installed in that MockContext.

After we refactor our errors with #269, each test should confirm that the right error was emitted as opposed to using Result::is_err().

One possible solution regarding defaults:
Found it effective and can result in a cleaner, easier-to-follow code, not just for default values, even for any new object construction within our tests, is to implement and use more helper methods. This can exist for each type in its own module under the mod test_util. Then simply be called everywhere needed. Similar to what we did here for MsgConnectionOpenInit, a new_valid_dummy method or something like that can be defined for e.g CleintId, Height, etc

I think #1074 was a duplicate of this. If that is the case, we can close this after fixing this title.


Add topic 'racket-languages'

Thank you for contributing! Please confirm this pull request meets the following requirements:

[X] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md
[X] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[ ] Suggesting edits to an existing topic or collection
[x] Curating a new topic or collection

Editing an existing topic or collection
I'm suggesting these edits to an existing topic or collection:

[ ] Image (and my file is *.png, square, dimensions 288x288)
[ ] Content (and my changes are in index.md)

Please replace this line with an explanation of why you think these changes should be made.

Curating a new topic or collection

[x] I've formatted my changes as a new folder directory, named for the topic or collection as it appears in the URL on GitHub (e.g. https://github.com/topics/[NAME] or https://github.com/collections/[NAME])
[X] My folder contains a *.png image (if applicable) and index.md
[X] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/master/docs

The topic 'racket-languages' indicates the repository includes languages made with the Racket language toolchain.

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

Thanks


Increment/Decrement on numeric field

query[Account].filter(_.id == userId).update(_.remain -> _.remain + 1)  how to achieve such queries ?

It's currently not supported, it should be available soon.

@jilen The feature is available on 2.2-SNAPSHOT, could you test it?

I've tested this, it's ok


Docker container is stuck at "Performing initial database setup..."

Running on debian bullseye amd64. When I start the container via "docker compose up" after building it I get this message over and over
matrix-eno-bot  | 2022-10-07 17:31:20,115 | storage [INFO] Performing initial database setup...
matrix-eno-bot exited with code 1

Below are my configs:
commands.yaml
#
# ***** Initialization *****
# This is an example command dictionary configuration. Mind you, this is an
# example configuration meant to convey the structure of the configuration
# file. It will probably not work as is in your environment.
# So, copy this file to "commands.yaml". Then modify and adjust
# "commands.yaml" to suit your needs. E.g. On Linux you would do

# $ cp commands.yaml.example commands.yaml
# $ nano commands.yaml # adjust to your needs, especially the paths!

# ***** Paths *****

# The bot needs to find your commands. For that the bot uses the PATH
# variable. By adjusting the "paths" values below you can add additional
# paths to the system PATH variable. If the bot is using commands that
# are not already on the system PATH, you must add the additional command
# paths below.
# Furthermore, make sure the bot has read and execute access
# to the commands, otherwise they won't work.
# Here we show two example command paths. Adjust them as needed.
paths:
  - /home/minnix/.local/lib/matrix-eno-bot/eno/scripts
  - /home/minnix/.local/etc/matrix-eno-bot/bin

# ***** Commands *****

# Commands are a list of specifications for your bot commands.
# The children of the "commands" key are the command names.
# Command names are nick names like "alert" or "backup".
# Each command, listed by its name, has the following
# keys (or properties):
#
#   cmd:               string: name of the command, executable, or script.
#                      The bot will attempt to execute this command when
#                      triggered. The bot will call this "cmd" and pass
#                      the given arguments to it.
#                      Example: "date" (a command provided by the OS)
#   help:              string: help string explaining the command.
#                      This is useful when you forget how use the command.
#                      The help string provided will be listed and shown with
#                      the 'help' command of the bot.
#                      Example: "returns the current date of the server"
#   regex:             string: regex pattern whose matches are valid ways to call the
#                      command.
#                      If a bot message matches a regular expression, then the
#                      corresponding command will be executed.
#                      If a bot message matched multiple regular expressions,
#                      only the first matching command will be executed!
#                      It is recommended that the regular expressions are used
#                      such that they are mutually exclusive to avoid
#                      situation where one messages matches multiple regular
#                      expressions.
#                      When the "regex" matches the "cmd" will be triggered.
#                      Example: "^date$" (only the exact string of "date"
#                      will match)
#   markdown_convert:  true or false: Specifies whether the message reply has
#                      been formatted in markdown.
#                      The bot will convert this markdown-formatted input
#                      and convert it into an HTML-like format understood by
#                      Matrix, so that the bot reply shows up visually as
#                      nice as the markdown input.
#                      Defaults to true.
#                      Example: Your command output is a markdown formatted
#                      string such as "I *really* like it!" Set
#                      markdown_convert to true and the receiver gets the
#                      text "I really like it!" with the word "really"
#                      visually in italic. In short, use "true", whenever
#                      your command output is a markdown-formatted string;
#                      false otherwise.
#   formatted:         true or false: Specifies whether message reply will
#                      be sent as a formatted message.
#                      Defaults to true.
#   code:              true or false: Specifies whether message reply will
#                      be formatted as a code block with fixed-size font.
#                      If set to "true", "markdown_convert" will be ignored.
#                      Defaults to false.
#   split:             string: if this string is set, splits the message reply
#                      into multiple messages wherever the string specified in
#                      split occurs.
#                      Defaults to None, no message splitting by default.
#                      Example: "\n\n\n" (Wherever the command output contains
#                      two empty lines, the output will be split. Each piece
#                      will be sent as a separate reply message.
commands:

  # There are 3 kinds of commands.
  # a) built-in commands
  # b) pre-packed commands provided by the matrix-eno-bot repo
  # c) your custom commands that you can add
  #    To add your custom commands go to the end of file, you will
  #    find a "Custom commands" header there. Add them there.

  # Built-in commands
  # ---------------
  # help : "help" is a reserved word, so don't use it as a custom command!
  # reload : "reload" is a reserved word, so don't use it as a custom command!

  # Pre-packed commands provided by the matrix-eno-bot repo
  # -------------------------------------------------------

  # alert if too many resources are used, best to use with cron
  alert:
    regex:             "alert$|^alert .*$|^alarm$|^alarm .*|^alert.sh$"
    cmd:               alert.sh
    help:              shows if any CPU, RAM, or disk thresholds have been exceeded
    markdown_convert:  false
    formatted:         true
    code:              true
  # perform a backup to disk
  backup:
    regex:             "^backup$|^backup .*$|^backup.sh$"
    cmd:               backup.sh
    help:              performs backup on server
    markdown_convert:  false
    formatted:         true
    code:              true
  # get BTC ticker
  btc:
    regex:             "^btc$|^btc .*$|^bitcoin$|^btc.sh$"
    cmd:               btc.sh
    help:              gives Bitcoin BTC price info
    markdown_convert:  false
    formatted:         true
    code:              true
  # get cheatsheets, see https://github.com/cheat/cheat
  cheatsheet:
    regex:             "^cheat$|^cheatsheet$|^chuleta$|^cheat.sh$|^cheat .*$|^cheatsheet .*$|^chuleta .*$|^cheat.sh .*$"
    cmd:               cheat
    help:              get cheatsheets, see https://github.com/cheat/cheat
    markdown_convert:  false
    formatted:         true
    code:              true
  # check status and look for updates
  # see also: upgrade
  check:
    regex:             "^check$|^chk$|^status$|^state$|^check .*$|^chk .*|^status .*$|^state .*$|^check.sh$|^check.sh .*"
    cmd:               check.sh
    help:              check status, health status, updates, etc.
    markdown_convert:  false
    formatted:         true
    code:              false
  # CPU temperature, to monitor the CPU temperatures
  cputemp:
    regex:             "^cpu$|^temp$|^temperature$|^celsius$|^cputemp.*$|^hot$|^chaud$"
    cmd:               cputemp.sh
    help:              give the current CPU temperatures
    markdown_convert:  false
    formatted:         true
    code:              false
  # get date and time
  datetime:
    regex:             "^date$|^time$|^tiempo$|^hora$|^temps$|^heure$|^heures$|^datum$|^zeit$|^datetime.sh$"
    cmd:               datetime.sh
    help:              give current date and time of server
    markdown_convert:  false
    formatted:         true
    code:              true
  # duckduckgo
  ddg:
    regex:             "^ddg$|^ddg .*$|^duck$|^duck .*$|^duckduckgo$|^duckduckgo .*$|^search$|^search .*|^ddg.sh$|^ddg.sh .*"
    cmd:               ddg.sh
    help:              search the web with DuckDuckGo search
    markdown_convert:  false
    formatted:         true
    code:              false
  # disk space, monitor disk space
  disks:
    regex:             "^disks$|^disk$|^full$|^space$|^disks.sh$"
    cmd:               disks.sh
    help:              see how full your disks or mountpoints are
    markdown_convert:  false
    formatted:         true
    code:              true
  # echo, trivial example to have the bot respond
  echo:
    regex:             "^echo$|^echo .*"
    cmd:               echo.py
    help:              bot echoes back your input
    markdown_convert:  false
    formatted:         true
    code:              false
  # get ETH ticker
  eth:
    regex:             "^eth$|^eth .*$|^ethereum$|^eth.sh$"
    cmd:               eth.sh
    help:              gives Ethereum price info
    markdown_convert:  false
    formatted:         true
    code:              true
  # get firewall settings
  firewall:
    regex:             "^firewall$|^fw$|^firewall .*$|^firewall.sh$"
    cmd:               firewall.sh
    help:              list the firewall settings and configuration
    markdown_convert:  false
    formatted:         true
    code:              true
  # get a compliment, hello
  hello:
    regex:             "^salut$|^ciao$|^hallo$|^hi$|^servus$|^hola$|^hello$|^hello .*$|^bonjour$|^bonne nuit$|^hello.sh$"
    cmd:               hello.sh
    help:              gives you a friendly compliment
    markdown_convert:  false
    formatted:         true
    code:              false
  # Hacker News
  hn:
    regex:             "^hn$|^hn .*$|^hn.sh$|^hn.sh .*"
    cmd:               hn.sh
    help:              read Hacker News, fetches front page headlines from Hacker News
    markdown_convert:  false
    formatted:         true
    code:              false
  # Messari News
  mn:
    regex:             "^mn$|^mn .*$|^mn.sh$|^mn.sh .*"
    cmd:               mn.sh
    help:              read Messari News, fetches the latest news articles from Messari
    markdown_convert:  false
    formatted:         true
    code:              false
    split:             "\n\n\n"
  # message of the day
  motd:
    regex:             "^motd|^motd .*|^motd.sh$"
    cmd:               motd.sh
    help:              gives you the Linux Message Of The Day
  # platform info
  platforminfo:
    regex:             "^platform$|^platform .*|^platforminfo.py$"
    cmd:               platforminfo.py
    help:              give hardware and operating system platform information
  # ps, host status
  ps:
    regex:             "^ps$|^ps .*|^ps.sh$"
    cmd:               ps.sh
    help:              print current CPU, RAM and Disk utilization of server
    markdown_convert:  false
    formatted:         true
    code:              true
  # restart, reset
  restart:
    regex:             "^restart$|^reset$|^restart .*$|^reset .*$|^restart.sh$|^restart.sh .*"
    cmd:               restart.sh
    help:              restart the bot itself, or Matrix services
    markdown_convert:  false
    formatted:         true
    code:              false
  # RSS
  rss:
    regex:             "^rss$|^feed$|^rss .*$|^feed .*$|^rss.sh$|^rss.sh .*"
    cmd:               rss.sh
    help:              read RSS feeds
    markdown_convert:  false
    formatted:         true
    code:              false
    split:             "\n\n\n"
  # Stock-to-flow
  s2f:
    regex:             "^s2f$|^mys2f.py.*|^flow$|^s2f|^flow .*$|^s2f .$|^s-to-f$|^stock-to-flow .*$|^eyf$|^eyf .*$|^e-y-f$"
    cmd:               s2f.sh
    help:              give Stock-to-flow info
    markdown_convert:  false
    formatted:         true
    code:              true
  # tides
  tides:
    regex:             "^tide$|^tides$|^marea|^mareas|^tide .*$|^tides .*$|^marea .*$|^mareas .*$|^gehzeiten .*$|^tides.sh$|^tides.sh .*"
    cmd:               tides.sh
    help:              give tidal forecast
    markdown_convert:  false
    formatted:         true
    code:              false
  # top CPU, MEM consumers
  top:
    regex:             "^top$|^top .*|^top.sh$|^top.sh .*"
    cmd:               top.sh
    help:              list 5 top CPU and RAM consuming processes
    markdown_convert:  false
    formatted:         true
    code:              true
  # get TOTP 2FA pin
  totp:
    regex:             "^otp$|^totp$|^otp .*$|^totp .*$"
    cmd:               totp.sh
    help:              get 2FA Two-factor-authentication TOTP PIN via bot message
    markdown_convert:  false
    formatted:         true
    code:              false
  # twitter
  twitter:
    regex:             "^tweet$|^twitter$|^tweet .*$|^twitter .*$|^twitter.sh$|^twitter.sh .*"
    cmd:               twitter.sh
    help:              read latest user tweets from Twitter
    markdown_convert:  false
    formatted:         true
    code:              false
  # update components
  update:
    regex:             "^update$|^upgrade$|^update .*$|^upgrade .*$|^update.sh$|^update.sh .*"
    cmd:               update.sh
    help:              update operating sytem
    markdown_convert:  false
    formatted:         true
    code:              false
  # list matrix users by issuing a REST API query
  users:
    regex:             "^usr$|^user$|^users$|^users .*$|^users.sh$"
    cmd:               users.sh
    help:              list registered Matrix users
    markdown_convert:  false
    formatted:         true
    code:              true
  # wake up PC via wake-on-LAN
  wake:
    regex:             "^wake$|^wakeup$|^wake .*$|^wakeup .*$|^wakelan .*$|^wake.sh$|^wake .*"
    cmd:               wake.sh
    help:              wake up another PC via LAN
    markdown_convert:  false
    formatted:         true
    code:              false
  # waves and surf conditions
  # see also: tides
  waves:
    regex:             "^wave$|^waves$|^wave .*$|^waves .*$|^surf$|^surf .*$|^waves.sh$"
    cmd:               waves.sh
    help:              give waves and surf forecast
    markdown_convert:  false
    formatted:         true
    code:              true
  # get weather forecast
  weather:
    regex:             "^weather$|^tiempo$|^wetter$|^temps$|^weather .*$|^tiempo .*$|^eltiempo .*$|^wetter .*$|^temps .*$|^weather.sh$|^weather.sh .*"
    cmd:               weather.sh
    help:              give weather forecast
    markdown_convert:  false
    formatted:         true
    code:              true
  # fetch web pages
  web:
    regex:             "^www$|^web$|^web .*$|^www .*$|^browse$|^browse .*|^web.sh$|^web.sh .*"
    cmd:               web.sh
    help:              surf the web, get a web page (JavaScript pages not supported)
    markdown_convert:  false
    formatted:         true
    code:              false
  # whoami
  whoami:
    regex:             "^w$|^who$|^whoami$"
    cmd:               whoami.py
    help:              return information about the user, whose unix account is running the bot
    markdown_convert:  false
    formatted:         true
    code:              false

  # Custom commands
  # ---------------

  # add your custom commands here

# End of commands configuration file

config.yaml
# Welcome to the sample config file
# Below you will find various config sections and options
# Default values are shown

# The string to prefix messages with to talk to the bot in group chats
# Changed from original "!c" to "1z! because on cell phone "!c" seems too
# complicated.
command_prefix: "1z"

# Options for connecting to the bot's Matrix account
matrix:
  # The Matrix User ID of the bot account
  user_id: "@lugbot:minnix.dev"
  # Matrix account password
  user_password: "<password>"

  # Matrix account access token
  # To create a new Matrix device for the bot, use and set the `user_password`
  # field. Once the device exists, you can optionally replace the
  # `user_password` with the `access_token` field. Using the `access_token`
  # field is slightly safer as it does not expose the password of the bot
  # account. You can use only one or the other: either use the `user_password`
  # or the `access_token` field. You can find the access token in the Matrix
  # client where you have registered the bot account or you can find it in
  # the bot log file. If the logging options are set accordingly the access
  # token will be logged to the bot log file.
  # Default: commented out
  # access_token: "PutYourLongAccessTokenHere"

  # The URL of the homeserver to connect to
  homeserver_url: https://matrix.minnix.dev
  # The device ID that is **non pre-existing** device
  # If this device ID already exists, messages will be dropped
  # silently in encrypted rooms
  device_id: lugbot_serverid
  # What to name the device? Often referred to as device name or display name.
  device_name: lugbot
  # Should the bot trust all the devices of its own Matrix account?
  # Default: false
  # If false, nothing is done. After login, no device will be automatically
  # trusted.
  # If true, once at startup, after logging in, the bot device will
  # automatically establish trust to all other devices of the bot account.
  trust_own_devices: false
  # Do you want to change the device_name of the already existing bot?
  # Default: false
  # If false, nothing is done. After creation, device_name will be ignored.
  # If true, device_name of bot will be changed to value given in device_name.
  change_device_name: false
  # encrytion is enabled by default

storage:
  # The path to the database
  database_filepath: "bot.db"
  # The path to a directory for internal bot storage
  # containing encryption keys, sync tokens, etc.
  store_filepath: "./store"
  # The path to the command dictionary configuration file
  command_dict_filepath: "./commands.yaml"

# Logging setup
logging:
  # Logging level
  # Allowed levels are 'INFO', 'WARNING', 'ERROR', 'DEBUG'
  # where DEBUG is most verbose
  level: INFO
  # Configure logging to a file
  file_logging:
    # Whether logging to a file is enabled
    enabled: false
    # The path to the file to log to. May be relative or absolute
    filepath: bot.log
  # Configure logging to the console output
  console_logging:
    # Whether logging to the console is enabled
    enabled: true

docker-compose.yaml
version: '3'

services:
  matrix-eno-bot:
    container_name: matrix-eno-bot
    image: 'matrix-eno-bot:latest'
    build: '.'
    restart: always
    volumes:
      - /home/minnix/lugbot/matrix-eno-bot/config.yaml:/bot/config.yaml
      - /home/minnix/lugbot/matrix-eno-bot/commands.yaml:/bot/commands.yaml
      - /home/minnix/lugbot/matrix-eno-bot/bot.db:/bot/bot.db
      - /home/minnix/lugbot/matrix-eno-bot/store/:/bot/store/
    stop_signal: SIGINT

Any help would be appreciated thanks.

I do not use docker frequently, so I cannot be of help.
Anyone else out there who can assist or provide some feedback? Please comment.

Also:
vim config.yaml # modify the logging parameters, increase logging
See in the log output helps you further.

Also:
vim config.yaml # modify the logging parameters, increase logging
See in the log output helps you further.

Ok I changed to DEBUG instead of INFO and was able to get a little more info:
matrix-eno-bot  | 2022-10-10 08:24:10,313 | storage [INFO] Performing initial database setup...
matrix-eno-bot  | 2022-10-10 08:24:10,314 | __main__ [DEBUG] Traceback (most recent call last):
matrix-eno-bot  |   File "./main.py", line 169, in <module>
matrix-eno-bot  |     asyncio.get_event_loop().run_until_complete(main())
matrix-eno-bot  |   File "/usr/local/lib/python3.7/asyncio/base_events.py", line 587, in run_until_complete
matrix-eno-bot  |     return future.result()
matrix-eno-bot  |   File "./main.py", line 59, in main
matrix-eno-bot  |     store = Storage(config.database_filepath)
matrix-eno-bot  |   File "/bot/storage.py", line 26, in __init__
matrix-eno-bot  |     self._initial_setup()
matrix-eno-bot  |   File "/bot/storage.py", line 33, in _initial_setup
matrix-eno-bot  |     self.conn = sqlite3.connect(self.db_path)
matrix-eno-bot  | sqlite3.OperationalError: unable to open database file
matrix-eno-bot  |
matrix-eno-bot exited with code 1

The debug log says: sqlite3 tries to create a database and it fails. wherever your bot.db there is a problem. Either the file exists and is not a real sqlite3 db, or the dir is not writeable, etc.
As a detail test: test that bot.db does not exist, but that the location is writeable. So, check if a file is there. Do a cat to create a tiny file, check file, (this verifies you can write), then remove the file (verify that it does not exist), then start bot.
Alternatively, run it without docker to learn more about it and then debug your docker yaml.

Ok the bot.db directory is there but is empty. If I try to write to the directory as a regular user there is a permission error, but using sudo is ok. I run docker as sudo so I would think it should be ok, unless something was supposed to be written there during the docker first run. I can prune all the docker stuff and re-run and see what happens.

bot.db is not a directory, should not be a directory. bot.db is a file to be created.
database_filepath: "/foo/bar/bot.db" then /foo/bar must be an existing dir with write permissions.
database_filepath: "bot.db" then . must be an existing dir with write permissions. . obviously depends, where you are, from where you execute the command, ...

So I removed the bot.db directory that was created from docker compose and just created a blank bot.db file to see what would happen than ran docker compose up again. This is the error:
[+] Running 1/0
 ⠿ Container matrix-eno-bot  Created                                                                                0.0s
Attaching to matrix-eno-bot
Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/home/minnix/matrix-eno-bot/bot.db" to rootfs at "/bot/bot.db": mount /home/minnix/matrix-eno-bot/bot.db:/bot/bot.db (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

So it looks like it is expecting bot.db to be a directory

Dockerfile

FROM python:3.7-slim

RUN apt update && apt upgrade -y && \
    apt install -y \
        wget \
        libmagic1 \
        build-essential

WORKDIR /bot

COPY *.py /bot/
COPY *.yaml /bot/
COPY *.txt /bot/
COPY eno /bot/eno/

# download libolm3 from Ubuntu focal distribution
# https://packages.ubuntu.com/focal/libolm3
# https://packages.ubuntu.com/focal/libolm-dev
RUN wget http://mirrors.kernel.org/ubuntu/pool/universe/o/olm/libolm-dev_3.1.3+dfsg-2build2_amd64.deb
RUN wget http://mirrors.kernel.org/ubuntu/pool/universe/o/olm/libolm3_3.1.3+dfsg-2build2_amd64.deb
RUN dpkg -i ./*.deb
RUN pip install -r requirements.txt

# clean up apt cache and remove gcc
RUN apt purge -y build-essential && \
    apt autoremove -y && apt clean && \
    rm -rf /var/lib/apt/lists/*

CMD [ "python", "./main.py" ]

docker-compose.yaml

version: '3'

services:
  matrix-eno-bot:
    container_name: matrix-eno-bot
    image: 'matrix-eno-bot:latest'
    build: '.'
    restart: always
    volumes:
      - /home/minnix/matrix-eno-bot/config.yaml:/bot/config.yaml
      - /home/minnix/matrix-eno-bot/commands.yaml:/bot/commands.yaml
      - /home/minnix/matrix-eno-bot/bot.db:/bot/bot.db
      - /home/minnix/matrix-eno-bot/store/:/bot/store/
    stop_signal: SIGINT

If there's anything amiss you can find please let me know.

I am not expert enough on Docker to make comments on Docker files.
Run it without Docker. You will see, that if bot.db is a directory, it will fail. If bot.db is an empty file it will also fail. And if bot.db does not exist it will create it. And if bot.db is a valid Sqlite file it will read it and use it.

Ok, trying to run it without docker. I'm having problems understanding what the paths should be in the systemctl file.
 Also do I need to create a User called matrix-neo-bot?

To start with you do not need any of this, this is if and only if you want to run it as a service. But you can run it without a service as well, just starting it by hand.
Environment=PATH= should include paths to all the scripts and binaries that your bot is going to call.
ExecStart= just has a full path to program and to 1 argument.
In your case likely: ExecStart=/home/minnix/matrix-eno-bot/main.py /home/minnix/matrix-eno-bot/config.yaml
You should be able to run this is your terminal /home/minnix/matrix-eno-bot/main.py /home/minnix/matrix-eno-bot/config.yaml
User called matrix-neo-bot? No, not needed.


JaggedArray.fromiter() functions fails for python lists

#170
awkward.JaggedArray.fromiter([[20.2, 10.1, 30.3, 50.5], [50.5], [60]])
fails on jupyter notebook only with numpy 1.18.5 and python 3.7.7 on awkward 0.12.22 build pyh9f0ad1d_0 from conda-forge
Update
for fresh conda environment with numpy 1.18.5 and python 3.7.7 on awkward 0.12.22 build pyh9f0ad1d_0 from conda-forge:

on my own laptop MacOS 10.15.5 with Clang 4.0.1 it fails on jupyter notebook only, not in python

on my GPU environment with GCC 7.3.0 it fails in both python and jupyter notebook

`---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in
----> 1 awkward.JaggedArray.fromiter([[20.2, 10.1, 30.3, 50.5], [50.5], [60]])
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/awkward/array/jagged.py in fromiter(cls, iterable)
150             return cls.JaggedArray.fget(None)([], [], [])
151         else:
--> 152             return awkward.generate.fromiter(iterable, awkwardlib=cls.awkward.fget(None))
153
154     @classmethod
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/awkward/generate.py in fromiter(iterable, awkwardlib, **options)
440         fillable = fillable.append(obj, typeof(obj))
441
--> 442     return fillable.finalize(**options)
443
444 def fromiterchunks(iterable, chunksize, awkwardlib=None, **options):
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/awkward/generate.py in finalize(self, **options)
216
217     def finalize(self, **options):
--> 218         return self.awkwardlib.JaggedArray.fromoffsets(self.offsets, self.content.finalize(**options))
219
220 class TableFillable(Fillable):
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/awkward/array/jagged.py in fromoffsets(cls, offsets, content)
154     @classmethod
155     def fromoffsets(cls, offsets, content):
--> 156         offsets = cls._util_toarray(offsets, cls.INDEXTYPE, cls.numpy.ndarray)
157         return cls(offsets[:-1], offsets[1:], content)
158
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/awkward/array/base.py in _util_toarray(cls, value, defaultdtype, passthrough)
319         else:
320             try:
--> 321                 return cls.numpy.frombuffer(value, dtype=getattr(value, "dtype", defaultdtype)).reshape(getattr(value, "shape", -1))
322             except AttributeError:
323                 if len(value) == 0:
TypeError: a bytes-like object is required, not 'list'`

Sorry, I've been unable to reproduce it:
>>> import numpy
>>> import awkward
>>> numpy.__version__
'1.18.5'
>>> awkward.__version__      # not my development version; a fresh copy from conda-forge
'0.12.22'
>>> awkward.JaggedArray.fromiter([[20.2, 10.1, 30.3, 50.5], [50.5], [60]])
<JaggedArray [[20.2 10.1 30.3 50.5] [50.5] [60.0]] at 0x7fa44f193c90>
>>> awkward.fromiter([[20.2, 10.1, 30.3, 50.5], [50.5], [60]])
<JaggedArray [[20.2 10.1 30.3 50.5] [50.5] [60.0]] at 0x7fa44f193d50>

But hopefully that narrows down your search—you might not be using the versions you think you're using (particularly in Jupyter; it sometimes gets packages from an entirely different installation) or maybe there's something else going on.
If you're just starting a project, you might want to consider Awkward1.
>>> import awkward1 as ak
>>> ak.Array([[20.2, 10.1, 30.3, 50.5], [50.5], [60]])
<Array [[20.2, 10.1, 30.3, 50.5, ... [60]] type='3 * var * float64'>

There's a ak.from_awkward0 and ak.to_awkward0 and you can load both Awkward0 and Awkward1 in the same project, so you can make a gradual transition if necessary.

Confirmed that it's a versioning issue instead(sorry!), thanks!


Add Ethereum DA config

Resolves L2B-6121

inb4 - I'll handle auto-linking in a separate PR since we have a lot of imports here


Improve the README

Description:
The current README is brief and could use some improvement to better describe the purpose and goals of the OpenDevFellows repository. We should aim to make the README more welcoming and informative to potential contributors and provide clear guidelines for how to get started.
Tasks:

Expand the "About" section to provide a more detailed overview of the repository's goals and purpose
Add clear instructions on how to contribute to the repository, including links to the CONTRIBUTING.md and CODE_OF_CONDUCT.md files
Provide examples of the types of issues that contributors can work on
Include information about the mentorship and ambassador programs and how to get involved
Add any relevant badges or links to the README to showcase the repository's accomplishments or contributions to the community

Hi!!
I would like to work in this issue and cover up few of the tasks
I like working on READMEs and would like to improve the README of this project
Do assign me if approved

hey @the-amazing-atharva
Sure. I assign this issue to you.

a lots of here !! i too want to work on this ...


Subdirectory support results in error for GitLab projects

Subdirectory support works great for GitHub repos as seen here, since GitHub follows a standard convention of having no hierarchy for its repositories and one can reference a package in a subdirectory using the $organization/repository/subdirectory$ pattern.
However, this imposes a problem for GitLab projects. GitLab supports a hierarchical structure for its repositories (projects).
So if we have a configuration that looks like:
current_repo:
  repo: parent-group/sub-group/r.package
  host: https://gitlab.example.com
  host_type: gitlab

This results in the following error:
Copying local dir /builds/parent-group/sub-group/r.package to cache dir ~/.staged.dependencies/packages_cache/local_parent-group_sub-group_r.package_1234567commit89123456sha
Error in check_dir_exists(repo_dir, "deps_info: ") :
  deps_info: Directory ~/.staged.dependencies/packages_cache/local_parent-group_sub-group_r.package_1234567commit89123456sha/r.package does not exist.
Calls: <Anonymous> ... rec_checkout_internal_deps -> lapply -> get_yaml_deps_info -> check_dir_exists

Proposed fix
Add support for an additional optional field in the staged_dependencies.yaml configuration that defines a new directive/key called subdir so that one can differentiate between a nested project in GitLab vs an actual subdirectory where the project is hosted. The default value of subdir should be "." and it should be an optional field.
Example:
current_repo:
  repo: organization/awesome-project
  host: https://github.com
  host_type: github
  subdir: awesomePackage

This is a problem that already have a decent solution implemented elsewhere - https://r-lib.github.io/pkgdepends/reference/pkg_refs.html.
pkgdepends::parse_pkg_ref("aa/bb")
#> $package
#> [1] "bb"
#>
#> $username
#> [1] "aa"
#>
#> $repo
#> [1] "bb"
#>
#> $subdir
#> [1] ""
#>
#> $commitish
#> [1] ""
#>
#> $pull
#> [1] ""
#>
#> $release
#> [1] ""
#>
#> $ref
#> [1] "aa/bb"
#>
#> $type
#> [1] "github"
#>
#> $params
#> character(0)
#>
#> attr(,"class")
#> [1] "remote_ref_github" "remote_ref"        "list"
pkgdepends::parse_pkg_ref("dd=aa/bb/cc/dd")
#> $package
#> [1] "dd"
#>
#> $username
#> [1] "aa"
#>
#> $repo
#> [1] "bb"
#>
#> $subdir
#> [1] "cc/dd"
#>
#> $commitish
#> [1] ""
#>
#> $pull
#> [1] ""
#>
#> $release
#> [1] ""
#>
#> $ref
#> [1] "dd=aa/bb/cc/dd"
#>
#> $type
#> [1] "github"
#>
#> $params
#> character(0)
#>
#> attr(,"class")
#> [1] "remote_ref_github" "remote_ref"        "list"
pkgdepends::parse_pkg_ref("dd=git::https://gitlab.example.com/aa/bb/cc/dd")
#> $package
#> [1] "dd"
#>
#> $protocol
#> [1] "https"
#>
#> $host
#> [1] "gitlab.example.com"
#>
#> $path
#> [1] "/aa/bb/cc/"
#>
#> $repo
#> [1] "dd"
#>
#> $commitish
#> [1] "HEAD"
#>
#> $ref
#> [1] "dd=git::https://gitlab.example.com/aa/bb/cc/dd"
#>
#> $type
#> [1] "git"
#>
#> $dotgit
#> [1] ""
#>
#> $url
#> [1] "https://gitlab.example.com/aa/bb/cc/dd"
#>
#> $params
#> character(0)
#>
#> attr(,"class")
#> [1] "remote_ref_git" "remote_ref"     "list"

Created on 2023-08-02 with reprex v2.0.2
Everything we need can be achieved with an input as a simple string rather than a list which is then processed by regular expressions. Honestly speaking, I was thinking about that during my recent feature development but I resigned because this is going to be a breaking change that would be quite painful to process in all of our repos. But the truth is that either way would be a breaking change.
Let me have a deeper look at the implementation again.


Updated Voicemod to version <IP_ADDRESS>.4

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

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

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

Resolves #39119
Microsoft Reviewers: Open in CodeFlow

Ooooo i was looking at this one when i checked every manifest older than 3-4 months, did you have to sign in?


Making Tasks Infinite-Horizon

Hi,
My question was how can we make the environments Infinite Horizon.
Reply from @eleurent:

I guess there are two ways to make an environment infinite-horizon:

make the road network closed, like the racing track environment
make vehicles spawn in some vicinity of the controlled vehicle, and disappear when they are far, like in the intersection environment (although it is finite horizon)

Further, in the Highway env, I removed the duration constrain here, and the environment resets only after collision. Though it is a Infinite-Horizon, but I am not sure if it's a good thing to try since after collision I will have to reset the environment.
Racetrack is also a good option to try out but here once again after collision we will have to reset the environment.
I have few other question:

Are there any other ways to make these tasks Infinite Horizon? Or any idea to make a completely new Infinite Horizon Tasks.
How to implement discrete action space for Racetrack?

Thanks! Looking forward to your reply @eleurent.

Are there any other ways to make these tasks Infinite Horizon? Or any idea to make a completely new Infinite Horizon Tasks.

If you want to forbid any kind of reset, including with another vehicle, then it means that

either the controlled vehicle has to be the single vehicle in the scene, with no other obstacle. This limits learning tasks to learning to follow a lane, to make maneuvers, to reach a desired location etc.
either there are other vehicles, but some kind of safe policy is monitoring the actions of the controlled vehicle, and blocking them when they would lead to a collision. However, no such policy exist for now, and it is not a trivial thing to implement. It may be achieved with model predictive control (i.e. simulate the desired action, and if there is a collision, rewind and choose another safer action instead), but that may be a bit costly computationally.

I'm not sure what other options you are thinking of...

How to implement discrete action space for Racetrack?

See the docs: https://highway-env.readthedocs.io/en/latest/actions/index.html

Thanks!
I wanted to know how to implement discrete meta-actions for Racetrack, to me it seems it uses continuous actions.

You have to do the following:
env = gym.make("racetrack-v0")
env.configure({
    "action": {
        "type": "DiscreteMetaAction"
    }
})
env.reset()

@eleurent Just a quick question, are all the environments here are stochastic? I wonder that it's it is the case though I haven't myself gone through the code. Will you please confirm.
Thanks

No, most environments are deterministic, at least by default. The initial state however, is sampled typically from some distribution, which brings some randomness to the agent's experiences.

Actually, in some environments the behavioural parameters of vehicles in the scene are also randomly sampled at initialization. Since these are not observed directly but affect the transitions of these vehicles, this can be seen as a form of stochasticity (although better described as partial observability).
In most cases however, these behavioural parameters are simply initialized to a default value for every vehicle, and then everything is properly deterministic.

Hi, thanks a lot for the detailed and quick response! I'm thinking of adding some form of stochasticity, either by adding some friction or by any other means (maybe some real world stochasticity 🤔). What are your views on this? Also, how should I proceed to implement it.
Thanks again.

@eleurent I really wanted a stochastic environment for my work. Is it possible for you to explain how should I add your mentioned stochasticity forms. I haven't fully gone through this codebase yet and hence it's difficult for me also being an high schooler, I'm little weak in coding sorry.

For instance, you could modify this line from the vehicle kinematics:
https://github.com/eleurent/highway-env/blob/764902f2d7675d2616f062b4c05a8f6618c3d03e/highway_env/vehicle/kinematics.py#L128
and add a random disturbance term, such as a linear friction term with a random coefficient:
       alpha = self.road.np_random.uniform(low=0.2, high=0.3)
        self.speed += self.action['acceleration'] * dt - alpha * self.speed * dt


duckdb version issue on superset using docker

Environment: MacOS Ventura 13.4.1
Command: make docker-run-superset
Description: When I run the docker container for the superset visuals, I get the error shown below in the dashboard. I tried setting the duckdb-engine version to 0.7.1 in the meltano.yml file, but it still didn't work.

Interesting. It looks like the version pinning in meltano.yml isn’t working, because it is set to duckdb-engine==0.6.8 which I think is actually for duckdb 0.6.0.
I’ll see if I can sort out the version pinning, but in the meantime, can you confirm what version of duckdb-engine is getting installed by meltano?

Ok, so the issue is actually not anything to-do with duckdb-engine, but rather that it has a dependency on duckdb. So the fix is just pinning the duckdb version so it is the same in dbt + superset.

Proof - running inside a codespace (on my iPad lol)

That makes sense. Also, meltano installed duckdb 0.7.1 when I changed the value in the meltano.yml file. But looks like superset is able to connect to the db now. Thank you! 😃


ATMega328 change to difficulty @16

ATMega328 with the optimized duino-coin library do about 215-220 H/s, however the server interpret the device as the arduino mega.
The server interpret 190 H/s arround as a standard arduino with dificulty of @6
But with this code 220H/s server rise to dificulty of @16, affecting the reward (which it pays less) and the performance, less submits.
In the few days the performance of the reward has been drop in about 30-40% when usually i do 80-90 DUCO per day, now i do about 40-50 DUCO per day with the same setup.

I have the same problem as you, and what if i add 100ms delay to ATMega328？
I am gona try it

does it work?

does it work?

https://github.com/revoxhere/duino-coin/issues/681
revoxhere has fixed that bug :)

wow thanks! BTW really nice board!

@ericddm nice board! Really cool!
@PipeDeveloper About the 215-220 H/s speed... The library uses a diferente encoder then the original project, I gonna create a new version on the library using the original encoder.
The job difficult probably gonna stay on 6.

I update the library to the default encrypted, and the server now uses difficulty 4.

This problem is back again on 2.7

Yes something change on the server, gonna make some tests...


update nodejs to 0.5.0 and npm to 0.3.0

Upgrades Node.js buildpacks.
Follow up:

upgrade nodejs buildpack to 0.6.0

@danielleadams Any risky bits in the downstream buildpacks to be worried about?

@jabrown85 There shouldn't be if devDependencies vs. dependencies in the package.json are being used to separation build/runtime dependencies. Here's the changelog for the NPM buildpack:
https://github.com/heroku/nodejs-npm-buildpack/blob/main/CHANGELOG.md#030-2020-09-16
It will remove devDependencies from the runtime environment if NODE_ENV is set to production, so I am worried about breakage downstream only in the event that a user's runtime dependencies were added to their devDependencies on accident AND they have set their NODE_ENV to production.
I have a follow up PR that will set NODE_ENV to production in the build environment unless otherwise specified (nodejs-engine/0.6.0), that will only cause issues in the event that runtime dependencies ended up in devDependencies.

(I'll do a better job of adding all this context in the descriptions moving forward too.. this would be helpful to include for reference.)

Sounds reasonable to me. Thanks! Feel free to merge. Once CI builds the new buildpack will be live for all users who pull a new builder.


C++ code to implement Selection sort Algorithm

Selection sort in CPP

@kanika9068  please i req you use the file format that i have mentioned
Sorry I m closing this PR


Adding missing brands. 12.22.24

Alexander Del Rossa
Allstar Innovations
Alpine Swiss
Amco
Arus
Balega
BCBGMAXAZRIA (Looks sketch. It is real, I had never heard of it)
bella
Ben Sherman
Bloomingville
Blue Diamond
Body Glove
Bogey Bros
BOSS
Brightech
Brooks Brothers
Built
Caraway
CAROTE
Casper
Chef'n
Chicago Metallic
Children's Factory
CleverMade
Copco
Craft
Creative Co-Op
EUREKA
Fanttik On the Fence. Up to you
Finch + Fennel
Fitz & Floyd
Fitz and Floyd
Gentle Souls
Genuine Fred
Globe Electric
GOLDTOE
Gotham Steel
GreenPan
Healing Solutions
Hoffritz
hOmeLabs
Honey-Can-Do
Household Essentials
ILLUME
International Silver
IZOD
Jerzees
JONATHAN Y
Kenneth Cole
Kensington
Kizmos
Lacoste
Lands' End (Replace Lands’ End. Fixing the directional apostrophe)
Lifetime Brands Inc.
LUXRITE
Made In
madesmart
MARQUESS
MARTHA STEWART
Melannco
Merten & Storck
Mikasa
Miracase
Misto
Mountain Hardwear
Mueller
Mueller Living
Munchkin
OttLite
Pfaltzgraff
Photo Paper Direct
Pitaka On the Fence. Up to you
PlanetBox
PPD
PurSteam
R&B Wire
R&B Wire Products
Rabbit
Real Essentials
Rhone
S'well
Sabatier
Seville Classics
Shop-Vac
Signature Design by Ashley
Sleek Socket
Smartish
Spalding
Spicy Shelf
Squatty Potty
StoveShelf
Taylor
Thermajane
ThisWorx
Tipsy Elves
Titan
TORRAS On the Fence. Up to you
Towle
Towle Living
Tramontina
True Religion
Walker Edison
Wallace
Whitmor
Wilton Armetale
WiZ
WiZ Connected
Year & Day
Year and Day

I left out the three on the fence entries


Connection to server problem

Hi.
When both server and client are on the same computer, what address should I use to connect to the server (e.g. 'localhost', '<IP_ADDRESS>', or the computer's name)? I can confirm the server is set up and running correctly, as identified by TCPview, but the only message returned by the experiment client are 'connection timed out', or 'failed to read from server'). Client and server ports match.

Fixed.

any idea how you fixed it?


Create a method to set iOS chat colors

Types of changes

New feature

Description of the proposed changes

create a method to set iOS chat colors, so this no longer needs to be configured natively on the host app

This looks dope. Any reason we're waiting on merging this in?


Move @types/phoenix to main dependencies

Change Overview
Trying out suggestion to include this type as a main dependency instead
Impact of Change

[ ] Bug fix

[ ] External Facing (resolves an issue customers are currently experiencing)
[ ] Security Impact (fixes a potential vulnerability)

[ ] Feature

[ ] Visible Change (changes semver of API surface or other change that would impact user/dev experience)
[ ] High Usage (impacts a major part of the core workflow for users)

[ ] Performance Improvement
[ ] Refactoring
[ ] Other: Describe here

Detailed Technical Description of Change

Testing Approach and Results

Collateral Work or Changes

Operational Impact

I've never seen open source libraries including @types inside their dependencies. Did you see any?

The typescript handbook actually mentions this here:

Here, our package depends on the browserify and typescript packages. browserify does not bundle its declaration files with its npm packages, so we needed to depend on @types/browserify for its declarations. typescript, on the other hand, packages its declaration files, so there was no need for any additional dependencies.

Our package exposes declarations from each of those, so any user of our browserify-typescript-extension package needs to have these dependencies as well. For that reason, we used "dependencies" and not "devDependencies", because otherwise our consumers would have needed to manually install those packages. If we had just written a command line application and not expected our package to be used as a library, we might have used devDependencies.


Model bounding sphere should scale with model scale

From #4038
The model bounding sphere needs to scale with the model scale in the function noted in #4038 as well as other functions in Model
(Be sure that the scale doesn't get applied more than once)

Reviewed this with @pjcozzi.
The scale is being correctly applied in the boundingSphere getter function.
The proposed change is applying the scale again and this results in incorrect behavior.

Agreed, this breaks minimumPixelSize.  Thanks for investigating @shehzan10!


DES_EDE_CBC difference between OpenSSL and mbed TLS

A potential error in decrypting DES_EDE_CBC. cc @Patater
ciphertext: {0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xb6, 0x00, 0x00} (16 bytes)
cipher iv: {0x00, 0x00, 0x02, 0x00, 0x08, 0x00, 0x08, 0xff} (8 bytes)
cipher key: {0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} (16 bytes)
cipher: DES_EDE_CBC
OpenSSL decryption result:
{0x6d, 0x8b, 0xb8, 0x9b, 0x26, 0x6c, 0xc1, 0xab, 0xd8, 0x2f, 0x9d, 0xb8, 0x91, 0x86, 0x80} (15 bytes)
mbed TLS decryption result:
{0xd8, 0x2f, 0x9d, 0xb8, 0x91, 0x86, 0x80, 0x01, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe} (15 bytes)

@guidovranken Thank you for your report!
Mbed TLS uses known and standard test vectors, so I suspect there might be something missing in your flow. Of course, there might be some corner case which was missed.
Could you please share sample of your code calling Mbed TLS functions?

@guidovranken I have taken your sample code from #2576 and modified it to use the data from this issue, and changed the lines to use AES_CIPHER_DES_EDE_CBC for decryption, and fixed the error I mentioned in the other issue, and I got same result as you got for Open SSL.
the issue is as mentioned in https://github.com/ARMmbed/mbedtls/issues/2576#issuecomment-482934755 :

the finish function writes to the position of out, and overwrite the encryption done in the update calls done earlier.


Update to the latest version of arcade

This is the first phase in getting some real signed builds up to MyGet ;).
This just updates the build to the latest version of arcade. No Azure DevOps (AzDO) support yet, but this will make it a lot easier to use the standard AzDO tools we've already got in place.
I believe I preserved the necessary MSBuild settings. Arcade generally uses a top-level Directory.Build.props, so I moved the one from src up. We can add lower level files if we need to configure individual folders differently.
I removed some content that I don't believe are necessary with the latest arcade:

BuildToolsVersion.txt - Not used anymore
DotnetCLIVersion.txt - Not used anymore
artifacts/toolset directory - Not used anymore
eng/Versions.props had some extra stuff specifying dependency versions but I didn't see those dependencies in use
netci.groovy - AFAICT there isn't a Jenkins build active on this repo, so this is unnecessary, it's in source control history if needed again :)
sign.proj - Arcade handles signing (or will handle, once we get AzDO up and running)
AssemblyInfo._ - Wasn't used (file extension was changed) and all that info is in Directory.Build.props now
pkg/Microsoft.Diagnostics.Runtime.nuspec - Not needed, SDK-style projects don't need a NuSpec, the metadata is in the project! 🎉

Some stylistic choices I made based on other repos (but am happy to revert if you prefer other patterns):

Moved the strong-name key up to the eng directory.
Moved the License file in to the project itself (since the new Sdk-style project handles packaging).
Changed build.cmd to produce packages by default (so now it does Restore, Build and Pack now). This is also just a style choice. The package is the primary artifact IMO and it takes very little time to build once the DLL is ready, so we generally make it part of the main build. Totally happy to revert that if you feel differently!

cc @pakrym @davidfowl
Next steps:

Add source-mirroring to dev.azure.com/dnceng
Add AzDO PR build from GitHub
Add AzDO Official build from AzDO mirror with real signing and publishing to MyGet

Thanks for your help here!


(PUP-4560) Add mcollective support

Adds migrating mcollective configuration - client.cfg and server.cfg -
to the new expected locations; and updating logdir, libdir, and
plugin.yaml to account for new locations.

I'm re-working this into multiple commits to make it a little easier to understand.

Relies on #12, need to rebase after that's merged.

@MikaelSmith needs a rebase

Working on the rebase, it's a big one.

Rebased and fixed.

Sorry I just merged the other PR about puppet version 4.0, could you rebase again, sorry about that

Should be ready now.

I just have the one question about whether to prepend or append mco settings, but since that was specified in the ticket, I think we can merge as-is, and if needed, fixup later. The other issue about params is just a question for my own understand.