⚠ Bofrost.de has degraded performance

In cc2c3e8, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1088 ms

Resolved: Bofrost.de performance has improved in ddf9a57 after 3 hours, 49 minutes.


Vulnerability manegement policy

This PR does two things:

Adds a policies folder to the Engineering subfolder of the handbook. We have quite a few policies to create for SOC2 owned at the Engineering level so @dcomas suggested a folder for them.
Adds our Vulnerability Management Policy. This was thoroughly discussed in this Google doc and reviewed by Engineering managers and stakeholders. This PR is just copy pasta of the last version of the document.

@beyang and @nicksnyder I'm tagging you both as approvers of the PR to record that it was approved by the CTO and VP of Eng respectively.

Does this replace this other page: https://handbook.sourcegraph.com/departments/product-engineering/engineering/cloud/security/security-incident-response? Seems like they have similar content.

@nicksnyder the Security Incident Response Policy is due for a big overhaul which will happen early January. It was written before we had incident.io and was done to fulfill a customer need. We need to review it and align it with the company's Incident Response (which tbh also needs its own review). We'll also create a Security Incident Response Process explaining how to proceed during in incident, using incident.io, places to look for logs, etc. Once we finish this work both documents will complement each other and satisfy different needs of our security program and SOC2.

@beyang are you happy with the answers? Happy to clarify any remaining topics


add: Aditya Singh

Description
followed all the steps mentioned in readme.md to add my profile and starred the repo.
Related Issues
NA
Changes Proposed
Added my profile
Checklist

[ ] I have read and followed the Contribution Guidelines.
[ ] All new and existing tests passed.
[ ] I have updated the documentation to reflect the changes I've made.
[ ] My code follows the code style of this project.
[ ] The title of my pull request is a short description of the requested changes.

Screenshots
Note to reviewers

Hi @Axestein , thanks for your interest in contributing to DevDisplay!
Before we proceed, we noticed you adding your profile on #DevDisplay but forgot to star the repo. It's like making an amazing sandwich and forgetting to take a bite! -- I think our repo's feeling a little lonely without your 🤗 So, be sure to star the DevDisplay GitHub Repository. 🌟
💌 This is a mandatory step for all contributors. & It's is the first priority of contribution in DevDisplay 💌
🚀 We look forward to your contribution once these steps are completed. 🚀
Thanks 👍🏻

I have already stared🌟 the repo.


Fix binding of BitToggle in BitColorPicker demo (#1755)

This closes #1755

@maryamhdr
review plz :)


[3580] Map other DTTP study modes to either part time or full time

Context
https://trello.com/c/ejyupGqS/3580-trainees-missing-study-modes
Changes proposed in this pull request

Pull in all possible study mode entity_ids from DTTP and map them to either full time or part time in Register

Guidance to review
Important business
~* Does this PR introduce any PII fields that need to be overwritten or deleted in db/scripts/sanitise.sql?~
~* Does this PR change the database schema? If so, have you updated the config/analytics.yml file and considered whether you need to send 'import_entity' events?~

 Trainees missing study modes


Color Profile

Hi.
Do you have any color profile for the NV156FHM-N43 on MacOs?
Thanks in advance.

Hi .
You can get it from Asus display app for your model .
I will make video Training for it .

I don't have an Asus laptop , but I have the same display and I'm trying to find a proper color profil for it.

I haven't any idea for it . But in Asus laptop you can get it from Asus display app .
Good luck

It is at /Library/Colorsync/profiles folder. Would you mind upload the conents of the folder for me?

icm.zip


Bookmarklets fail to build without first creating the "dist" folder by hand

Without already having the "dist" folder, you're unable to build any bookmarklets. A directory should be created automatically before writing a bookmarklet to disk.

Fixed.


Switch live test pipelines to use 1ES pools.

This PR makes changes to the pipeline definitions for live tests to make use of the 1ES pools for Windows.

/azp run net - storage - tests

/azp run net - storage - tests

/azp run net - storage - tests

/azp run net - eventhub - tests

/azp run net - appconfiguration - tests

/azp run net - keyvault - tests

/azp run net - textrecognizer - tests

@benbp we need to figure out how to insert pool selections into the new multi-cloud live test model that you've got going on here. At the end of the day we need the following value set for Windows (and soon Linux), but not macOS:
pool:
  name: [name of our new pool]
  vmImage: should be nothing

The storage tests work fine, but it seems that the Clouds parameter makes the live test pipelines take a different path. Ultimate what I think I would like to do is have a set of default pool names, and then base on OS selection we select the right pool.

@mitchdenny I think if we set pool as a matrix variable on a per-platform basis via the platform config (where OSVmImage is set), then that should allow for easy customization.

@mitchdenny yeah it seems that $(Pool) needs to evaluate prior to the job execution context stage, which is when matrix variables are populated (makes sense):
##[error]The pipeline is not valid. Could not find a pool with name $(Pool). The pool does not exist or has not been authorized for use. For authorization details, refer to https://aka.ms/yamlauthz.

@mitchdenny here's a fix that gets this working with the live test config model.
We have to switch on host/pool at a higher template level because of the either/or definition behavior (i.e. devops doesn't like empty fields, they want the field to not exist). Luckily we already had this problem for container builds, so we can plug in to that solution.
Working live test pipeline example: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=651855&view=logs&j=6558b98b-3d3e-504f-99d0-4f904aed18dc

Hi @mitchdenny.  There hasn't been recent engagement on this PR.  Would you please be so kind as to let us know if this is still an active work stream by removing the no-recent-activity label?  Otherwise, we'll close this out in 7 days.

Hi @mitchdenny.  There hasn't been recent engagement on this PR.  Would you please be so kind as to let us know if this is still an active work stream by removing the no-recent-activity label?  Otherwise, we'll close this out in 7 days.


push the code is not working on windows

here is my code
pub fn push(&self, branch: &str) -> Result<()> {
        let mut remote = self
            .repo
            .find_remote("origin")
            .with_context(|| "Failed to push the repository")?;

        let branch = self
            .repo
            .find_branch(branch, git2::BranchType::Local)
            .with_context(|| "Failed to find the branch")?;

        let refs = branch.into_reference();

        let name = refs.name().with_context(|| "The reference name is none")?;

        let mut callbacks = git2::RemoteCallbacks::new();
        callbacks.credentials(|_url, username_from_url, _allowed_types| {
            tracing::info!("Allowed types: {:?}", _allowed_types);

            Cred::ssh_key(
                username_from_url.unwrap(),
                None,
                std::path::Path::new(self.pub_key.as_str()),
                None,
            )
        });

        let mut options = git2::PushOptions::new();

        options.remote_callbacks(callbacks);

        // push the code to master branch
        remote
            .push(&[name], Some(&mut options))
            .with_context(|| "Failed to push the code")?;

        Ok(())
    }

it's working fine on mac but get an error on windows failed to set hostkey preference: The requested method(s) are not currently supported; class=Ssh (23)

Hi @phostann! Have the same issue on windows 11. Did you fix it somehow?
Everything working at linux (ubuntu 22.04), but getting the same error on windows 11

I also have this error when attempting to clone a repository. Any help or pointers would be much appreciated.

It dowsn't work on debian12 too

I also have this error when attempting to clone a repository。Everything working at Mac, but getting the same error on windows 11


Added MetaClass of FunctionType

Hello @Nimishkhurana did you have a chance to try out my suggestions yet?

Hello @kayhayen I wil try them now. I am busy with some academic work currently, so did not get enough time,

Hello @Nimishkhurana how is it going? :-)

Hello @kayhayen, I had made some changes 2 months ago. Can you please review :-)

Sorry for the delay, I had private issues and had to neglect Nuitka during the time. I am resuming now and will check this out this week.

Can you try to rebase this, I would want to continue with this.

See the original issue, the problem will be solved without a meta class, so this is obsolete now.


The client hangs after multiple calls

I tried a server implementations like this:
import msgpackrpc

class TestServer(object):
    def Add(self, a, b):
        print("Add({}, {}) called".format(a, b))
        return a + b

    def Mul(self, a, b):
        print("Mul({}, {}) called".format(a, b))
        return a * b

server = msgpackrpc.Server(TestServer())
server.listen(msgpackrpc.Address("localhost", 8070))
server.start()

The client looked like this:
    public partial class Form1 : Form
    {
        private RpcClientConfiguration _clientConfig = new RpcClientConfiguration();
        private dynamic _rpcProxy;

        public Form1()
        {
            InitializeComponent();
            _rpcProxy = new DynamicRpcProxy(new DnsEndPoint("<IP_ADDRESS>", 8070), _clientConfig);
        }

        ~Form1()
        {
            _rpcProxy.Dispose();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 50; ++i)
            {
                var result = (int) _rpcProxy.Add(Convert.ToInt32(i), Convert.ToInt32(tbB.Text));
                lblResult.Text = String.Format("Result: {0}", result);
                Thread.Sleep(100);
            }
        }

        private void btnMul_Click(object sender, EventArgs e)
        {
            var result = (float)_rpcProxy.Mul(Convert.ToSingle(tbA.Text), Convert.ToSingle(tbB.Text));
            lblResult.Text = String.Format("Result: {0}", result);
        }
    }

(I also tried a C++ server implementation but I'll omit that for brevity; I had the same results with it.)
What happens is after the 10th or so call the application hangs. It always hangs on this line: https://github.com/yfakariya/msgpack-rpc-cli/blob/master/src/MsgPack.Rpc.Client/Rpc/Client/AsyncResult.cs#L224
I does not matter how much I wait between the calls, it can even be as long as two seconds per call.
Am I doing something wrong with the client or is this a bug?

Confirming the issue, but cant track down the problem... looks like some blocking queue overflow

Detailed tracing points that
var responseContext = this.Manager.GetResponseContext( this, context.RemoteEndPoint );
at ClientTransport::OnSent locks because the object pool is empty at borrowing!

Created pull request (#5) about this issue (fixed by myself)

Sorry, I found the design bug that ResponseContext is not reused correctly, so it leads pool exhausion.
So we should add the mechanism to reuse the connection and ResponseContext when we have established connection to the server.

Hi,
Just wanted to drop by and say that I really appreciate that you are working to solve this bug. Thanks!

@yfakariya Does the pull request of Skydev0h solve the issue?


Add --bad and --modules Argument to find-ppr.py

Hey @epi052 !
I noticed the find_ppr script has a hard coded set of BADCHARS, which might not be applicable to all targets. Rather than manually modifying it each time,  I made badchars a command-line argument so it can be set dynamically. Additionally, I moved modules from a positional argument to a flag in order to support this. The new usage is:
find-ppr.py [-h] [-s] [-b BAD [BAD ...]] -m MODULES [MODULES ...]

Hope this is useful, thanks!

Looks great, thank you for this!


⚠ Samsung has degraded performance

In a6674e9, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2741 ms

Resolved: Samsung performance has improved in 2521ed9.


chore(deps): update github-actions

This PR contains the following updates:

Package
Type
Update
Change

actions/cache
action
digest
0c45773 -> 2cdf405

camunda/camunda-tf-rosa
action
digest
d0471d2 -> 340d579

github/codeql-action
action
digest
3c13be0 -> 572cc52

sigstore/cosign-installer
action
minor
v3.6.0 -> v3.7.0

tj-actions/changed-files
action
digest
48d8f15 -> c3a1bb2

[!WARNING]
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

Release Notes

sigstore/cosign-installer (sigstore/cosign-installer)
v3.7.0
Compare Source
What's Changed

Bump actions/checkout from 4.1.7 to 4.2.0 by @dependabot in https://github.com/sigstore/cosign-installer/pull/172
bump for latest cosign v2.4.1 release by @bobcallaway in https://github.com/sigstore/cosign-installer/pull/173

Full Changelog: https://github.com/sigstore/cosign-installer/compare/v3.6.0...v3.7.0

Configuration
📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.


ocamlPackages.fix: 20130611 -> 20201120

Motivation for this change
ocamlPackages.fix: 20130611 -> 20201120
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 125809 at de8915c0 run on aarch64-linux 1

3 packages failed to build:

ocamlformat_0_14_0
ocamlformat_0_14_1
ocamlformat_0_14_2

7 packages built successfully:

ocamlformat (ocamlformat_0_18_0)
ocamlformat_0_14_3
ocamlformat_0_15_0
ocamlformat_0_15_1
ocamlformat_0_16_0
ocamlformat_0_17_0
reason

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement. Does something look off? Please file an issue or reach out on IRC.

Please fix the meta.homepage attribute and set minimumOCamlVersion (to at least 4.03).


Searchbar input event passed

Searchbar docs need to be updated to reflect that the event that gets passed has changed per this issue https://github.com/driftyco/ionic/issues/6989

Fixed by https://github.com/driftyco/ionic-site/commit/bb78500cc156c85e14c5c5c668dbd048f9f58e32


MAISTRA-1398: Address pilot failure when merging filter chains

Please provide a description for what this PR is for.
And to help us figure out who should review this PR, please
put an X in all the areas that this PR affects.
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

@dgn Yes, although interestingly they didn't bother with creating the test.  Upgrading should be part of 1.1.3.


Finalize a Data Model

Context
We need a data model finalized so that backend can implement it and serve our data to users.  This task is to work with Backend and Data Science to determine which data we'll need and how it'll be organized.
[Link in proposed data model from @katiefg]
Definition of Done
Engineering Details

@katiefg don't hesitate to put up any questions, also might be something we can work on/finalize as a mini-group

Data tables with variable column names, constraints, and descriptions documented in markdown on wiki's "Database Tables" page under the "Database (SQLAlchemy)" section.
Open to any questions, concerns, or edits!

Data tables with variable column names, constraints, and descriptions documented in markdown on wiki's "Database Tables" page under the "Database (SQLAlchemy)" section.
Open to any questions, concerns, or edits!


How can I view my Instagram backup data in a friendly way?

recently i have downloaded a backup of my Instagram account ...
and the zip file contained a lot of ".json" files and i have no idea how to view
it like... the way that Instagram did

I think it's an important feature ... And it's not available anywhere else ...

Have a Look (https://github.com/mainigautam/instagram_backup_manager)

thanks mate but it needs some optimization.

Yes I Know , It's like sprint code of 2-3 days to get it working to see some messages, wasn't intended for public use but i thought it would be good to share . btw u used ? any suggestions where the optimization is required . except for setting this up . i'm working in it

any suggestions where the optimization is required . except for setting this up . i'm working in it

the setup needs to be reduced ... it produces tons of file makes it so annoying when moving or copying the folder.

any suggestions where the optimization is required . except for setting this up . i'm working in it

the setup needs to be reduced ... it produces tons of file makes it so annoying when moving or copying the folder.

Yes , i totally get it , Thanks i'll try work on it . Also Convert this into Android App for further convinience

Also Convert this into Android App for further convinience

that would be really amazing too.

Try It Now , Made a lot of changes You'll see Yourself

Try It Now , Made a lot of changes You'll see Yourself
https://www.github.com/mainigautam/instagram_backup_manager
go for branch igbm-1.0 and follow Instructions hope you love it more this time

testing it now the setup seems to take forever

@mainigautam still tons of files and takes long to install ( less than the first time so )

but the interface is now better and good job on the upload zip file feature.

@mainigautam still tons of files and takes long to install ( less than the first time so )

but the interface is now better and good job on the upload zip file feature.

Will be reduced this weekend


Difference between IActivity.ServiceUrl and IActivity.ChannelId for initiating a conversation

What is the difference between IActivity.ServiceUrl and IActivity.ChannelId in .Bot Builder .NET SDK? I am trying to initiate a new conversation from bot by having a UserId (stored from previous conversations) and a channelId (also stored) by using CreateConversationAsync. This requires an ConversationParameters instance, which in turn requires an Activity instance. An activity, though, has both these properties. Is it enough to set a ChannelId there without using ServiceUrl? The reason I'm asking this is because ServiceUrl can be changed (which happened for Skype channel), so there's no point in storing it for a long period of time.
Thanks a lot

Hi @shigasumi,
Please take a look at the Bot Framework IDs guide and let me know if you need additional help.

Thanks a lot for the link, @RobStand.
I guess the title of the issue was a bit misleading (I've edited it a bit). The problem is, I still don't understand whether ChannelId can server as the only other necessary primitive (in addition to UserId) to start a conversation - it seems there's no way to get an instance of ConnectorClient other than having a ServiceUrl. If this is true, what's the purpose of ChannelId? How it is supposed to be used (except "serving as namespaces for other IDs").
Thanks again!

Hi @shigasumi, I'll chat with the team and get back to you.

Hi @shigasumi, the values are simply different.
The Service URL is the endpoint where you send your responses.
The channel ID is the namespace for other IDs, and is used to identify which channel you're talking to. (Channels differ in the way they behave, and the channel ID is the way you identify them.)
You may have more than one Service URL per channel. This can happen when a channel has multiple deployments/tenants/geographies.
You may have more than one channel per Service URL. This can happen when channels are hosted on the same backend infrastructure.

You may have more than one Service URL per channel. This can happen when a channel has multiple deployments/tenants/geographies.
You may have more than one channel per Service URL. This can happen when channels are hosted on the same backend infrastructure.

@dandriscoll this is very interesting. I wish there was an API to get Service URL by channel ID, and Conversation ID. I'm working on the case when we use hard-coded Service URL and store Conversation ID in DB and we are sending messages to those chats. I was looking into https://github.com/MicrosoftDX/botFramework-proactiveMessages but I would dare to say that it's just a joke (storing Service URL in global variable once you get private message from the bot).
So goal right now to make this work without hard-coded Service URL values. The problem is following. Imagine you want to send a message to Conversation ID that was inactive for a month and you know that it's skype (Channel ID). Do you use Service URL value that you just got from another conversation in skype? Do you use the value you got for this particular Conversation 30 days ago? Or you use just hard-coded skype.botframework.com?
So far the message that I quoted is the only information that I found regulating Service URL values, but it means that you can't actually trust in Services URL data at all. And the only solution "just wait (potentially another 30 days) until you get the message from this Conversation ID and use its Service URL.".

p.s. I just found a similar request in https://github.com/Microsoft/BotBuilder/issues/2021 difference in my request in that I guess I want I want "Ability to resolve ServiceUrl by Channel ID + Conversation ID" (and potentially Message ID for replies?).
From there I see the solution

so we're recommending you use Resumption Cookie or Address for now.

for how long it is safe to assume Resumption Cookie or Address values to be valid? What do I do once those are no longer valid?

@JLarky Does the bot has the ability to send a message to user ag=fter 30 days?
I go this error message within 24hours.
System.UnauthorizedAccessException: Authorization for Microsoft App ID c860c43a-44fe-47ae-8534-ebecfb84aac7 failed with status code Unauthorized and reason phrase 'Unauthorized' ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
   at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
   at Microsoft.Bot.Connector.JwtTokenRefresher.<SendAsync>d__2.MoveNext()
   --- End of inner exception stack trace ---
   at Microsoft.Bot.Connector.JwtTokenRefresher.<SendAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.Http.HttpClient.<FinishSendAsync>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Microsoft.Bot.Connector.Conversations.<SendToConversationWithHttpMessagesAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Bot.Connector.ConversationsExtensions.<SendToConversationAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---

@willportnoy Please help.

@alokraj68 token that you get from /common/oauth2/v2.0/token from your app id and secret is only good for some limited time, but you can get new one at any time. Topic we are discussing here is about ServiceUrl and ConversationId, not the token

@JLarky Thank you. I wanted to clarify the line you wrote "Do you use the value you got for this particular Conversation 30 days ago? "
Is it possible in such way from bot side to refresh this token without a user message?

@alokraj68 we have logic in JwtTokenRefresher to refresh the oauth token on demand, usually when sending a message back to the connector or state service.

@willportnoy Then I would lie to report it has some issues, I get authorization error with the same token at times, while it works after I send a message from the user to bot, that is manually refreshing.

@alokraj68 we've improved the oauth refreshing logic to refresh oauth tokens on both 401 and 403 because some channels were incorrectly reporting a 403 instead of just a 401.


On delete behaviour for tables

By default Supabase, foreign keys have either RESTRICT or NO ACTION as on delete behaviour. This obviously doesn't work for most of our tables, but there is not way to change this except by dropping and reapplying these FK constraints manually.
Currently I have implemented the following:

cascade users -> profiles
cascade profiles -> event_registrations
cascade events -> event_registrations
set null storage.objects (header_images) -> events

We will have to do the following:

[x] cascade profiles -> votes
[x] cascade profiles -> event_user_pairs
[x] cascade event_user_pairs -> votes

What should happen when the organizer of an event deletes their account? Do we just set the organizer null and cancel the event? Do we delete the event and try notifying the users? If we do not delete the event, do we delete parts that may include sensitive information about the organizer like the description?
Note that some tables' rows cannot be deleted by users at this point, but we should probably already start thinking about the expected behaviour, because it will making testing easier.

This is an interesting one.
I think we should add a button that enables the organizer to delete their event - then there wouldn't be a difference between cancelling and deleting the event.
After the deletion of an event the users just get notified that their event got cancelled and the mail contains the events title, description, address so they remember what it was.

After an event host deletes their account, all their thrown events get deleted aswell (but from the participants perspective the events were "cancelled")

This is because being notified about someone deleting their account makes it more likely that you delete yours aswell


Add image folder to registry scanner

Add image folder to registry scanner module.

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

Project coverage is 74.64%. Comparing base (c3f0eff) to head (e3e6b25).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #952   +/-   ##
=======================================
  Coverage   74.64%   74.64%
=======================================
  Files          31       31
  Lines        3913     3913
=======================================
  Hits         2921     2921
  Misses        856      856
  Partials      136      136

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


Consider PEP 702 style decorators for types with no public constructor

A fair number of Noda Time types have no public constructor. Python doesn't have constructors in quite the same way, but __new__ and __init__ are always present.
We have the rather hacky, poorly-named _private decorator which enforces that trying to instantiate such classes raises an error at runtime.
Generally this sort of heavy-handed approach is frowned upon in Python, but I really do want to discourage reliance on unintentional/implicit facets of this port where possible, in order to save pain down the line if/when the mother project's API changes. With that said, I think we can try to do better UX than runtime exceptions.
PyCharm has a nice feature that, if you have the relevant deprecation inspection enabled (which it is by default), it displays strikethrough text and the message of the DeprecationWarning when you hover over the symbol.

The problem is, this doesn't seem to work with dunder methods like __init__ and __new__, unless you call them directly.
(Ideally the foo = Foo() would show strikethrough text on the right hand of the assignment)

There are a bunch of open enhancement tickets around this. See PY-25798 (and click through to the related/similar tickets). Some of them mention supporting existing third-party packages; while that support may come some day in PyCharm, I personally have no appetite to take another dependency just for this purpose.
Besides which, none of this works in VS Code as far as I am aware. (Maybe via extensions, but I haven't looked.)

More interestingly, there is https://youtrack.jetbrains.com/issue/PY-61651/Deprecation-highlighting-with-PEP-702-deprecated-decorator which requests support for PEP 702 deprecation decorators.
Those decorators are available in 3.12 as backports in typing.extensions, and while they don't currently affect PyCharm's UI, I would expect support for something in the stdlib to be much more likely to materialise than support for third-party packages.
To add even more credibility to that, it looks like this is already supported in pyright. For example:
At time of writing, PyCharm doesn't understand what these decorators are.

In VS Code however, it looks exacly as I would like it to; The class itself is not deprecated, but individual methods can be marked deprecated, including magic methods:

Mypy supports this as of 1.14. For now, a note is emitted but "Deprecation errors will be enabled by default in a future mypy version."


[QUESTION] Custom logic during animation

Hi,
I may have overlooked solutions and questions already in the issues but I think there isn't something like that. I was wondering if there was a way to add custom logic during an animation, for example take a UIView with some labels inside, I want a flip animation and when I flip I will switch the text inside the labels.
My current code (which is working) looks like this :
 contentView.animate(.flip(along: .y), duration: 1, damping: 1, velocity: 1, force: 1)
     UIView.animate(withDuration: 1, animations: { }) { (finished) in
       // do the text switch
     }

Of course I tried the completion block but it's not what I want since it will do the switch after the animation.
Also, while I could do my own custom transition or whatever but that wouldn't be very flexible like I want it.
Maybe there is another way I didn't get while reading the examples and docs or maybe there is no developed way to do that and in that case is there a good practice to follow ?
Thanks !

@dzamani I can't figure out a way you how can we change the text during the animation using IBAnimatable. If you would like to have this feature. What kind of API would you like to see? another closure in the chainable API? Thanks.

Yes a closure would be perfect as it would allow nearly anything.
An equivalent of the UIView.animate that would allow running code during the animation.

@dzamani thanks, let's how can we improve it. We have some Core Animation as well. Since we already use animate method, can't find a good name for it 🤣

@JakeLin Adding 2 closures would be the perfect solution, one inside UIView.animate animations and one inside UIView.animate completion handler.
It would only take either some refactoring or another function definition for your API .animate

@dzamani we are using chainable API, it will be a promise-like method. And we already have completion method for completion handler
view.animate(.squeeze(way: .in, direction: .left))
    .completion { print("Animations finished!") }

how can we name the method to run one inside UIView.animate?

Well it's not the same behaviour, if the custom logic (switching text for example) was working with your completion handler I wouldn't need to user UIView.animate (like you can see in my example, the logic is inside the completion handler).
For the name we could call it animationHandler or animationCallback something like that.

If I did understand well, you want another closure which will be called while the animation is running? Then, what about a animationFired or a name telling us that it will be called during the animation. Personally, I will have a hard time to differentiate the completion closure, and a animationHandler or animationCallback 🤔

may call it like .alsoRun{ label.text = "I am changing during the animation"}


Support global character initialization and initialization with logical and equality operators

This PR fixes the issue where global assignments cannot assign characters and do not support logical and equality operators. Corresponding tests have been added to ensure these changes.

Thank @AW-AlanWu for contributing!


🐞 Fix locals default types.

Last minute type fix.

MIssed something last night.  There was ambiguity between the locals types.  This fixes that.


Update README.md

Add double quotes to the huggingface_hub[hf_transfer] and ckpt-0/*.
git clone https://github.com/xai-org/grok-1.git && cd grok-1
pip install "huggingface_hub[hf_transfer]"
huggingface-cli download xai-org/grok-1 --repo-type model --include "ckpt-0/*" --local-dir checkpoints --local-dir-use-symlinks False

LGTM 👍
External example where this is also done: psf/black


JSON formatted Agent output

Is there a way to use model_kwargs, output_format, or anything like this to get OpenAIs JSON mode?
I don't want to format data after it comes back, I want it specifically provided as JSON.
Example code from OpenAI docu: https://platform.openai.com/docs/guides/text-generation/json-mode
from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
  model="gpt-3.5-turbo-1106",
  response_format={ "type": "json_object" },
  messages=[
    {"role": "system", "content": "You are a helpful assistant designed to output JSON."},
    {"role": "user", "content": "Who won the world series in 2020?"}
  ]
)
print(response.choices[0].message.content)

Is there a way to utilize that with CrewAI Agents? I'm using langchain_openai and gpt-4-1106-preview as llm model.

In the mean time, you can ask explicitly to return JSON and provide an example. That already works 99% of the time without the official JSON flag.


Change description of uuid in the RequestForProvidingAcceptanceDataCausesReadingConfigurationFromCache

Fixes #78

Hi Prathiba, the description has been updated. Please merge the changes if you find the new one adequate.
Kind Regards, Ana


Generate a histogram of the raw scores (population) before finding the means

Will it help the user understand the randomly generated data if I plot just the raw scores? I think this is worth including for my own benefit to learn what the data looks like before plotting the means (cases). For example, when I generate data after a user selects a distribution type, let's say 'binomial', I call on the following code in prompt_user():
98    # flip a coin 1 time, tested <samples> times
99    pd.Series(np.random.binomial(1, 0.8, samples))

If I plot the data before finding the means, what will it look like and should I display it next to the plotted means? The solution could be as simple as:
128   #               [rows X cols]
129   # df.shape = [samples X cases];
130   df.plot.hist()

Finding the means in find_stats():
132   # loop through each sample and find its respective mean
133   for i in range(0, sample_num):
134   	mean = round( df.iloc[0:, i].mean(), 3) # mean of sample size from generated random values
135   	means.append(mean)

Reference Commit 323d4f8b957a9b78243fa3aa3b7416624d71b9bb


when there's an error running a container, report it

currently, when a container fails to run (e.g. docker is not running on the RP), you just get this:

instead, detect the error and tell the user it failed

#49

@levirybalov can you take a look over this?


Only setting a minimum window size limit doesn't work (Tested on Linux)

OS and version:
Ubuntu 16.04 (64bit) — 4.4.0-36-generic GNU/Linux
Release or commit:
GLFW: 3.2.0 (according to GLFW.java from lwjgl)
Problem:
I'm using LibGDX, which uses LWJGL 3 (among others), which uses GLFW. When I call
cfg.setWindowSizeLimits(640, 480, 999999999, 999999999);

it works. When I use
cfg.setWindowSizeLimits(640, 480, -1, -1);

it doesn't seem to work. I can make the window smaller than 640 x 480.
Note that -1 gets transformed to GLFW_DONT_CARE.
As I don't know much about GLFW, I can only provide an SSCCE using LibGDX:
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;

public class DesktopLauncher {

    public static void main(String[] arg) {
        Lwjgl3ApplicationConfiguration cfg = new Lwjgl3ApplicationConfiguration();

        cfg.useOpenGL3(true, 3, 3);
        cfg.useVsync(false);
        cfg.setWindowSizeLimits(640, 480, -1, -1);
        cfg.setResizable(true);

        new Lwjgl3Application(new ApplicationListener() {
            @Override
            public void create() {

            }

            @Override
            public void resize(int width, int height) {

            }

            @Override
            public void render() {

            }

            @Override
            public void pause() {

            }

            @Override
            public void resume() {

            }

            @Override
            public void dispose() {

            }
        }, cfg);
    }
}

I believe this was fixed in glfw 3.2.1 (see #805).

Oh nice. (Didn't find this when I was searching.) Thanks! Closing.


Flaky WebSocket test; Don't need to check for receive

Using the EchoEndpoint you aren't guaranteed to receive the echo before closing the socket. This test is only actually testing close (according to the name), so it doesn't need to check if receive worked.

The message is being sent before the websocket is closed so the client should receive it.

So the server echo's then immediately sends the close frame. Then the client receives both close to the same time and sometimes processes the echo before the close frame and sometimes doesn't and gets cancelled resulting in a flaky test.

From: Pawel Kadluczka<EMAIL_ADDRESS>Sent: Monday, August 21, 2017 4:12:25 PM
To: aspnet/SignalR
Cc: Brennan Conroy; Author
Subject: Re: [aspnet/SignalR] Flaky WebSocket test; Don't need to check for receive (#745)
The message is being sent before the websocket is closed so the client should receive it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Faspnet%2FSignalR%2Fpull%2F745%23issuecomment-323875960&data=02|01|brecon%40microsoft.com|112ffb386c764e38504208d4e8ea1630|72f988bf86f141af91ab2d7cd011db47|1|0|636389539475606540&sdata=cwLo0cHOyMM1VMiy5zpaK2MXd%2BCQDLkBYG1sOvovwlM%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHOVEZruOjJb_3jnXbIWG55FTKz8J2Dmks5sag7YgaJpZM4O97IN&data=02|01|brecon%40microsoft.com|112ffb386c764e38504208d4e8ea1630|72f988bf86f141af91ab2d7cd011db47|1|0|636389539475606540&sdata=7YUpDPmyclioqX0OSqHx4duypNOUTqVmM%2BlGG6bf80Y%3D&reserved=0.

Is it because of this: https://github.com/aspnet/SignalR/blob/dev/src/Microsoft.AspNetCore.Sockets.Client.Http/HttpConnection.cs#L319?

Its because
https://github.com/aspnet/SignalR/blob/dev/src/Microsoft.AspNetCore.Sockets.Client.Http/WebSocketsTransport.cs#L161
and
https://github.com/aspnet/SignalR/blob/dev/src/Microsoft.AspNetCore.Sockets.Client.Http/WebSocketsTransport.cs#L184
can happen at the same time


Set a cooldown for automation

Added cooldown for automations
Description:
Ability to pause an automation for a given time after it has been triggered, so its not triggered within that timerange again (cooldown). This would have been made before with
- condition: template
        value_template: >-
          {{ ((as_timestamp(now()) - as_timestamp(states.automation.entity_id.attributes.last_triggered))) > 3600 }}

This is a lot of code and not good for the config. The entity name of the automation had to be changed also every time.
Service cooldown_reset resets the current cooldown of the automation
Closed my last PR by accident (https://github.com/home-assistant/home-assistant/pull/16228). Some changes made in this PR compared to the last one.
I need help to setup tox unit test, because i've never done that and i dont know the HA specific needs (Change time etc.)
Related issue (if applicable): fixes #
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):
automation:
  - alias: 'automation'
    cooldown:
      # Set a cooldown for 30 seconds
      time: '00:00:30'
      # Set a cooldown for the current day starting from 00:00:00 to 24:00:00
      once_per_day: true
      # Set a cooldown for the current week starting from monday to sunday
      once_per_week: true
      # Set a cooldown for the current month starting from the first to last day of the month (eg 01-31)
      once_per_month: true
    trigger:
    condition:
    action:

Checklist:

[ ] The code change is tested and works locally.
[ ] Local tests pass with tox. Your PR cannot be merged unless tests pass

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Please open a Issue here: https://github.com/home-assistant/architecture/issues
In past, and I like that, @balloob defined that scripts/automation component not replace code. If things going to complex, you should use python or other language and not yaml.
I'm fine to have a kind of simple delay but that what you want do is to wired.

Why should i open an issue at the architecture repo?
Further i dont understand what you mean complex things should be done in python not in yaml. This PR adds  a simple parameter to the yaml config and offers the user a way to have an automation triggerd not twice within a time range (day for example or 5 minutes). It saves a lot of complicated template code in the yaml file and is easy to use for beginner. Its been a requested feature and has quite some usecases

Could not find a matching documentation PR. Added the docs-missing label.

It's too complex because it has all these options like once a day/week etc. Also just open older PRs as now all comments are getting lost.

Yeah, i'll reopen next time. I wasnt aware that i could do this.
Maybe its being missunderstood. From all possible options the user would choose only one, because they are mostly redundant. (once_per_month=true -> once_per_week = true -> ...)
So if for example you have an automation for your kids to wake up or leave home to work, you'll use
    cooldown:
      once_per_day: true

For automation which should fire only every X minutes, a simple:
    cooldown:
      time: '00:0X:00'

How is that not simpler than:
- condition: template
        value_template: >-
          {{ ((as_timestamp(now()) - as_timestamp(states.automation.entity_id.attributes.last_triggered))) > 3600 }}

I would be only vote for the delay function for automation to cooldown the automation for this time. All other is to complex and will be rejected.

It's too complex because it has all these options like once a day/week etc.

I don't agree with closing this Pascal. I think that a cooldown is a nice feature to add, however I don't want a very complicated configuration syntax in YAML. It should just stick to a time. We can see how that feature evolves over time and if there is a very clear need, we can look into adding more options.

I close this in favor of the first simple implementation. I don't say a delay function is not usefully.


About selection of html

I tried a html coding Group selection list in web browser and it works fine, while it errors in Calcpad. So how could I realise the Group selection list in Calcpad.

Maybe there is a need for structural engineer, i.e. input some patameters in the prosess of calculation, because judgements should be made according to some trial calculation. Whether it is possible in Calcpad worksheet?

Inputing a greek letter with a Latin letter plus Ctrl+G is not so efficient, how about Esc plus a Latin letter, or a Latin letter plus Tab?

I found ＜= and ＞= are not recognizable in Calcpad. I think using mouse to click and input logical symbols is not so convenient.

Maybe there is a need for structural engineer, i.e. input some patameters in the prosess of calculation, because judgements should be made according to some trial calculation. Whether it is possible in Calcpad worksheet?

+1
But there are problems with back compability and other.

Inputing a greek letter with a Latin letter plus Ctrl+G is not so efficient, how about Esc plus a Latin letter, or a Latin letter plus Tab?

It's unlikely that the operating system allows shortcuts like Esc+Letter.
And how to separate Letter/Tab inserting from Tab+Letter shortcut?
But you can experiment with Clavier++ and Beeftext to try to find shortcuts better then Letter, Ctrl+G.
Enother alternative is to install greek keyboard layout.

I found ＜= and ＞= are not recognizable in Calcpad. I think using mouse to click and input logical symbols is not so convenient.

I can't find shortcuts for it too and use Beeftext with shortcuts <=++, >=++.
2 @Proektsoftbg - is this shortcuts exists?

Can you please share the source of what you are trying to do and what errors do you get? Meybe we can figure out something.
Sorry, cannot fully understand what is needed.
Ctrl + G is the same as MathCAD.
Even if＜= and ＞= are not supported, we can include them as shortucts. If you type these sequences, the editor will replace them with ≤ and ≥, respectively. What about that?

4 - html has not sequeses like <= or =>. So, no problem to convert it to ≤ and ≥ on input

@Proektsoftbg i think the item 2 of @idealkindom is:
Example:
In a pile cap, the steel reinforcement is determined after we have defined the geometry and angle of struts, but we need to do some trial and error to encounter the correct values.
Today, in calcpad we have two option's (maybe more):

Leave the post input's equal zero (The reinforcement area) until we analyze the result's, with results in hand, we can run the script again including the missing parameters.
Using a second script just to determine the reinforcement area.

Maybe a new output visibility control with a similar behaviour to a break point.
Example:
#section(1)
Some function and input values to define the strut angles and verify the tension
#end section(1)
#section(2)
Some function and input values to define the reinforcement
#end section(2)
When we run the script using (F4), calcpad show the input values of the #section(1).
Pressing (F5) to run, calcpad show the results of #section(1). The user analyze this result's and choose to   run #section(1) again, or go to #section(2).
After run all sections, calcpad show the complete results to export.
I dont know if this can be achievieng using #macros, i still need to study this. If this is possible, sorry for this long answer.
Best regards

Can you please share the source of what you are trying to do and what errors do you get? Meybe we can figure out something.
Sorry, cannot fully understand what is needed.
Ctrl + G is the same as MathCAD.
Even if＜= and ＞= are not supported, we can include them as shortucts. If you type these sequences, the editor will replace them with ≤ and ≥, respectively. What about that?

Is the same in smath studio.
This would be great!

@Proektsoftbg i think the item 2 of @idealkindom is:
Example: In a pile cap, the steel reinforcement is determined after we have defined the geometry and angle of struts, but we need to do some trial and error to encounter the correct values.
Today, in calcpad we have two option's (maybe more):

Leave the post input's equal zero (The reinforcement area) until we analyze the result's, with results in hand, we can run the script again including the missing parameters.
Using a second script just to determine the reinforcement area.

Maybe a new output visibility control with a similar behaviour to a break point.
Example: #section(1) Some function and input values to define the strut angles and verify the tension #end section(1)
#section(2) Some function and input values to define the reinforcement #end section(2)
When we run the script using (F4), calcpad show the input values of the #section(1).
Pressing (F5) to run, calcpad show the results of #section(1). The user analyze this result's and choose to run #section(1) again, or go to #section(2).
After run all sections, calcpad show the complete results to export.
I dont know if this can be achievieng using #macros, i still need to study this. If this is possible, sorry for this long answer.
Best regards

Absoulutely is what I want to say.Some parameter can not decided and be input at the begining, breaks are need and new prompt input brackets are need in the calculation process.

Can you please share the source of what you are trying to do and what errors do you get? Meybe we can figure out something.
Sorry, cannot fully understand what is needed.
Ctrl + G is the same as MathCAD.
Even if＜= and ＞= are not supported, we can include them as shortucts. If you type these sequences, the editor will replace them with ≤ and ≥, respectively. What about that?

Can you please share the source of what you are trying to do and what errors do you get? Meybe we can figure out something.
Sorry, cannot fully understand what is needed.
Ctrl + G is the same as MathCAD.
Even if＜= and ＞= are not supported, we can include them as shortucts. If you type these sequences, the editor will replace them with ≤ and ≥, respectively. What about that?

2.the code in html fies:

Red Flag
BYD
Cherry

<optgroup label="German Car">
    <option value="BZ">BMW</option>
    <option value="VK">Volkswagon</option>
</optgroup>
<optgroup label="Janpanese Cherry" disabled>
    <option value="HD" selected>Honda</option>
    <option value="TY">Toyota</option>
    </optgroup>

and the results in web browser can be easily checked.
The codes in comments.for Calcpad should be like:
'<selectname ="car">
'<optgrouplabel = "Chinese Car">
'<optionvalue = "HQ"> RedFlag
'<optionvalue ="BYD">BYD
'<optionvalue ="QR">Cherry
'
'<optgrouplabel = "German Car">
'<optionvalue = "BZ"> BMW
'<optionvalue ="VK">Volkswagon
'
'<optgrouplabel="Janpanese Cherry"disabled >
'<optionvalue="HD"selected>Honda
'<optionvalue="TY">Toyota
'
'
Calcpad does not errors but the outcome is not expected.
2.See What Hild said, that's what I want to convey.Some calculation you can not inout all the parameter values at the begining, you need some preparation calculation to help you to judge and guess a close parameter vaule and continue the calculation and observe and retry, for which breaks and prompt input boxes would be a very good choice.
3.I never used MathCad, instead I used wxMaxima and TeXmacs a lot. The former one use Esc+ keyboard to call a selection box to input greek letters and some logical operators, the latter, maybe use a more convenient way, just keyboards+Tab. Both of them are quite efficient.Ctrl+G  could be accustomed, of course.
4.That's a good idea to add ＜= to be recognized as ≤ and the counterpart reverse. I advise to add == also for the logical = with 3 lines.

Hi,
Please, do not put so many different things in one issue. It is better to have a separate issue for each separate thing. It will be easier to read and discuss.

Calcpad has native support only for input (text) fields, generated by the question marks "?". Everything else is not parsed by Calcpad but simply sent to the output as is. For Calcpad it is just comments. It works because the output is Html and it is rendered in a web browser control.

So, in order to have any other Html UI elements working in Calcpad, they must be bound to some question marks "?". It is done by assigning data-target="tgt" that matches the id of some container element, e.g. '
' x = ?'

Please, checj the following discussion about UI elements: https://github.com/Proektsoftbg/Calcpad/discussions/30
Since Calcpad supports only numeric values as input, only numbers can be placed in the "value" attribute. So, the correct code is:
'Select a car - <select name="car" data-target="car">
'<optgroup label = "Chinese Car">
'<option value="1">RedFlag</option>
'<option value="2">BYD</option>
'<option value="3">Cherry</option>
'</optgroup>
'<optgroup label="German Car">
'<option value="4"> BMW</option>
'<option value="5">Volkswagon</option>
'</optgroup>
'<optgroup label="Janpanese Cherry" disabled>
'<option value="6">Honda</option>
'<option value="7">Toyota</option>
'</optgroup>
'</select>
'
 Values:'id = ? '

You can try it, it works, but you have to compile the code to a web form with the left one button.

Then, when you run the solution, you will get:

Thank you @hildebrandopsj. Now I see. What I do in such cases now is very simple:
2.1. Put some initial values for all parameters.
2.2. Run the calculations.
2.3. See the results.
2.4. Go back to input and change what I need.
Sometimes, I may want to change not the reinforcement area, but section depth or concrete/steel grade or other factor that matters.

However, we can consider some step-by-step solution that pauses for user input.
But instead of #section - #end secton, we can simply put #pause. It will run the code until it reaches #pause, render the results to that line and display the rest as an input form (to the next #pause).
It will aslo allow for what @cser requested - to display one or other input, depending on some intermediate value. Now, it will be possible, because the value in the #if check will be calculated at the previous stage.
If you agree with this, I will include it to the wish list, but after vectors and matrices.

We have already implemented at as Ctrl+G and it is not good to change shortcuts, because existing users will get confused. Also, it is not good to have many shortcuts for one and the same thing. So, we will leave it Ctrl+G for now, it is not a big issue. What we can do in future is to allow users to customize shortcuts. In this way, everyone can set whatever shorcut he/she likes. :)

If you agree with this solution, I will add it to the wishlist.

OK, I will add <=, >= and == as shortcuts for the respective symbols. This is a very good idea. They will be simply rewritten during typing / syntax highlithing. So, it is not required to change the language parser. I can do it very quick and easy and will post an update the next few days. :)

OK, I will add <=, >= and == as shortcuts for the respective symbols. This is a very good idea. They will be simply rewritten during typing / syntax highlithing. So, it is not required to change the language parser. I can do it very quick and easy and will post an update the next few days. :)

OK, I will add <=, >= and == as shortcuts for the respective symbols. This is a very good idea. They will be simply rewritten during typing / syntax highlithing. So, it is not required to change the language parser. I can do it very quick and easy and will post an update the next few days. :)

That's great.

We have already implemented at as Ctrl+G and it is not good to change shortcuts, because existing users will get confused. Also, it is not good to have many shortcuts for one and the same thing. So, we will leave it Ctrl+G for now, it is not a big issue. What we can do in future is to allow users to customize shortcuts. In this way, everyone can set whatever shorcut he/she likes. :)

If you agree with this solution, I will add it to the wishlist.

Yes, alowing the user to set shorcuts would be a more versatile answer .

Thanks a lot,Ned.I copied your code but I found Calcpad is so space sensitive. I checked word by word, symbol ny symbol, finally made it. Still it' quite not so intuitive and easy to do.

@idealkindom Maybe the problem is that we recently made the "select" element to be automatically replaced by the selected content in the #post stage. Please check the discussion:
https://github.com/Proektsoftbg/Calcpad/discussions/25#discussioncomment-3127629
This is good in general but it does not allow you to see the immediate result while coding. Thanks to your feedback, I can realize now, that in this way, we made more dificult to program the Html element. So, we can make this replacement to happen only if you add class="post".
Yes, I agree that these things are difficult now, but after we recently introduced macros, it will be much more easier. We can create a library with macro helpers for all useful Html elements. Please, check this discussion:
https://github.com/Proektsoftbg/Calcpad/discussions/33#discussioncomment-3348527

@idealkindom Maybe the problem is that we recently made the "select" element to be automatically replaced by the selected content in the #post stage. Please check the discussion:
#25 (comment)
This is good in general but it does not allow you to see the immediate result while coding. Thanks to your feedback, I can realize now, that in this way, we made more dificult to program Html elements. So, we can make this replacement to happen only if you add class="post".
Yes, I agree that these things are difficult now, but after we recently introduced macros, it will be much more easier. We can create a library with macro helpers for all useful Html elements. Please, check this discussion:
#33 (reply in thread)

Thanks a lot,Ned.I imagine the tool→insert→html could add more function, and if Calcpad could add a switch to hide and show the codes about html elements gloabally with one click when writing math codes, it would help the user concentrate more on the logics and calculations.

Thank you @hildebrandopsj. Now I see. What I do in such cases now is very simple:
2.1. Put some initial values for all parameters.
2.2. Run the calculations.
2.3. See the results.
2.4. Go back to input and change what I need.
Sometimes, I may want to change not the reinforcement area, but section depth or concrete/steel grade or other factor that matters.

However, we can consider some step-by-step solution that pauses for user input. But instead of #section - #end secton, we can simply put #pause. It will run the code until it reaches #pause, render the results to that line and display the rest as an input form (to the next #pause).
It will aslo allow for what @cser requested - to display one or other input, depending on some intermediate value. Now, it will be possible, because the value in the #if check will be calculated at the previous stage.
If you agree with this, I will include it to the wish list, but after vectors and matrices.

That be amazing! Thank you so much!
Off course, there is no problem to do after vetors and matrices, it's the only thing that keep me apart from leaving completily Smath Studio.
Best regards!

We have already implemented at as Ctrl+G and it is not good to change shortcuts, because existing users will get confused. Also, it is not good to have many shortcuts for one and the same thing. So, we will leave it Ctrl+G for now, it is not a big issue. What we can do in future is to allow users to customize shortcuts. In this way, everyone can set whatever shorcut he/she likes. :)

If you agree with this solution, I will add it to the wishlist.

Hi,Ned. I propose to add Greek letters into auto completion selective list when you press the mapped key, i.e when you press a,the autocompletion box may appear and the second one might be α,thus making a beginner with no need to remeber the key to input the Greek letters, and direct input with key pressing should be more efficient than clicking the mouse on the platte.

@idealkindom Maybe the problem is that we recently made the "select" element to be automatically replaced by the selected content in the #post stage. Please check the discussion:
#25 (comment)
This is good in general but it does not allow you to see the immediate result while coding. Thanks to your feedback, I can realize now, that in this way, we made more dificult to program Html elements. So, we can make this replacement to happen only if you add class="post".
Yes, I agree that these things are difficult now, but after we recently introduced macros, it will be much more easier. We can create a library with macro helpers for all useful Html elements. Please, check this discussion:
#33 (reply in thread)

Hi,Ned. I found that in recent version of Calcpad, when there is a selection list syntax in the calc sheet, when you press F5 to run it, the selction button looks like a circle with the number "21".Though it does not influence the cplalculation, it looks unnatutral.

Thank you @hildebrandopsj. Now I see. What I do in such cases now is very simple:
2.1. Put some initial values for all parameters.
2.2. Run the calculations.
2.3. See the results.
2.4. Go back to input and change what I need.
Sometimes, I may want to change not the reinforcement area, but section depth or concrete/steel grade or other factor that matters.

However, we can consider some step-by-step solution that pauses for user input. But instead of #section - #end secton, we can simply put #pause. It will run the code until it reaches #pause, render the results to that line and display the rest as an input form (to the next #pause).
It will aslo allow for what @cser requested - to display one or other input, depending on some intermediate value. Now, it will be possible, because the value in the #if check will be calculated at the previous stage.
If you agree with this, I will include it to the wish list, but after vectors and matrices.

"2.Maybe there is a need for structural engineer, i.e. input some patameters in the prosess of calculation, because judgements should be made according to some trial calculation. Whether it is possible in Calcpad worksheet?"
On this tip,Ned, I read what you wrote in Calcpad's blog on the advantage of Calcpad over excel, where you mentioned "intermediate checks", that's is famialiar with what I think about, "intermediate input", I hope this could make it more clear.
Recently, I wrote several articles on a very popular app called "Zhihu",introducing and promoting Calcpad for Chinese college students and scholars, hoping to see a rise in user number from China.I found I am the first one to mention Calcpad on "Zhihu" and "Weibo", but I think many students will like it.

That's why i love the internet, we all are from different countries and trying to contribute with this software

@idealkindom It is not exactly what i mean in the block post. In most design codes, we often fall into one or other case, depending on some value. If we take wind load for example, a wall may have one, two or three zones (A, B, C), depending on building dimensions. In shuch cases, Calcpad is capable to show different text and pictures in the output for every case. Please, check the example bellow:

It shows the pircture, text and formulas for case 2. This is not what you can do with Excel, MathCAD or many other softwares.
However, step-by-step execution is also need for the user to decide what values to input, depending on some previous results. I completely agree that this can be very useful in some cases. BTW I have almost managed to implement it with the #pause keyword, but still not ready. I have to solve a few problems yet. So, you can expect this feature to appear very soon :).
And thank you both for promoting Calcpad. Your support gives me faith to go on.

@idealkindom It is not exactly what i mean in the block post. In most design codes, we often fall into one or other case, depending on some value. If we take wind load for example, a wall may have one, two or three zones (A, B, C), depending on building dimensions. In shuch cases, Calcpad is capable to show different text and pictures in the output for every case. Please, check the example bellow:
 It shows the pircture, text and formulas for case 2. This is not what you can do with Excel, MathCAD or many other softwares.
However, step-by-step execution is also need for the user to decide what values to input, depending on some previous results. I completely agree that this can be very useful in some cases. BTW I have almost managed to implement it with the #pause keyword, but still not ready. I have to solve a few problems yet. So, you can expect this feature to appear very soon :).
And thank you both for promoting Calcpad. Your support gives me faith to go on.

Yes,I.got what you meant. Thanks a lot Ned.

I think that all suggested features from 1 to 4 are implemented in one or another of the the recent versions. So, I will close this issue. Thank you so much for your cooperation! :) If any other suggestions arise, you can always open a new issue.


Support for increasing file size, establishment time and modification time

Hi ,Support for increasing file size, establishment time and modification time.

Hey @songlinshu , Can you elaborate more on what you said? It's quite hard to understand.

That's a nice feature we can add.


go back to modifying individual lines instead of using a lot of buffer_redraws

This is causing problems for me after updating recently, I believe. I made a couple of changes to chanmon.pl to have it process notify_message and notify_private tags, but the new redraws (and history?) cause the chanmon window to replay chunks of channels. I can provide more information if it's useful.
A quick look in debug spew didn't show any tags to identify redrawn messages vs. the original.
I appreciate your work on wee-slack, and no worries if this isn't a priority. Just wanted to drop a note here. If I can find the time to grok the meaning of weechat tags a bit better I may take a stab at solving it that way.

thanks for the bump @ishigoemon. i have a branch nearly completed that goes back to the old way. the precision of date storage on messages is a bit of a problem, so sometimes the wrong one is modified. i'm working to ensure this doesn't happen before pushing to master.

I finally had time to work on this and my initial run at it is working well: https://github.com/rawdigits/wee-slack/pull/124 - hopefully it will test okay and be in master soon.

That's awesome! I'll be away from my computer for the weekend, but from 5min of running with that code, it's looking great. Will look more closely at backscroll when I get back, but thumbs up so far!
Thanks!

That's awesome! I've only run it for a few minutes, and will be away from my computer for the weekend, but it's looking great so far. I'll look closely at scrollback when I return.
Thanks, and thanks again for wee-slack!

Handled in the refactor here: https://github.com/rawdigits/wee-slack/pull/124
Note: we still fall back to a full buffer redraw in rare circumstances, but it should be very unlikely unless you are in an extremely large and active channel.


No module named 'rest_framework'

step1. makemigration
No module named 'rest_framework'

Run "pip install djangorestframework" in terminal or cmd. I have also added rest framework in the requirements, so you can also re clone the project and install requirements.


Fix storage of incoming ingested files

When we ingest a file in the ReportFunction, we store a copy of it, in our blobstore.    The problem is that we store it in the wrong version.
We need to store the file exactly as it is sent to us, and instead we store it in our "INTERNAL" format.
This task is done when:
[ ] Instead of storing the INTERNAL format of the file, we store the file exactly as it is sent to us, byte for byte.  No reason to also store the INTERNAL formatted file.
[ ] Other features continue to work as before:  eg, the report is associated with the lineage, it shows up properly as a 'parent' in the report_lineage table, the 'blob_digest' is correct.
[ ] Write a new TestReportStream.kt test called 'ingest', so that ./prime test --run ingest runs the test.   This test will do the following:

Create a bit of fake data, and figure out its digest hash value.
Ingest it into the system with the option=SkipSend as an http parameter, so it does not go further down the pipeline.
Query the database and confirm that the file is in the report_file table, and that it has the correct blob digest value; check other values as needed.

Hi Pathik, any progress on this?

I generally work on these tasks from Tues-Thurs unless it's urgent or have nothing else going on.  Not that far yet but should be able to complete it in a day or two.

Just an update......after making the changes...I was still seeing internal format being sent to the Azure Blob Storage (Azure Storage Explorer locally) and report file table in Postgres last week.  I believe I have made all the Internal format related changes so not sure where exactly it was coming from.  I will have to debug more.

Pathik,
There are lots of steps that should and do create the .internal format.   Only the very first creation of the received file needs to be modified.    All others should remain as .internal.
Jim

For example, if you submit a file with 10 rows and 5 go to NJ and 5 go to MD, then the receive step will create 3 files.
The 5 to NJ, and 5 to MD should both be .internal.    But we also want to store the 10-record original data, exactly byte for byte as it appeared in the payload.   That's the bug, right now we are storing an 'internal' representation of that data, instead of storing it exactly as it was sent to us.

@tlosbo please check with Pathik, and take this issue over.  Thanks!

@pathikkothari do you have a branch that I can view to see how far you got with this? I can take over from there.

@tlosbo I do have a branch that I haven't checked in.  It might be better to start on a clean branch since I might have changed things that might need to there.  It seems like we need both internal and original formats.  Testing was tedious.....let's sync up and see if it would make sense for you to work on top of it or work on your own branch.

@tlosbo I do have a branch that I haven't checked in. It might be better to start on a clean branch since I might have changed things that might need to there. It seems like we need both internal and original formats. Testing was tedious.....let's sync up and see if it would make sense for you to work on top of it or work on your own branch.

I find some time on the calendar to meet on it.

This was implemented as part of #1416


KUBERNETES_SERVICE_PORT set to 443, when it's 16443

Hi,
Trying to run helm from within a pod fails with:

Error: Kubernetes cluster unreachable: Get https://<IP_ADDRESS>:443/version?timeout=32s: dial tcp <IP_ADDRESS>:443: connect: connection refused

It gets these values from the automatically provisioned variables KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT. The HOST seems correct, but the port seems wrong according to https://microk8s.io/docs/ports and anecdotally:
p2074@microk8s:~$ kubectl run -it --image alpine -- sh
If you don't see a command prompt, try pressing enter.
/ # echo $KUBERNETES_SERVICE_PORT
443
/ # echo $KUBERNETES_SERVICE_HOST
<IP_ADDRESS>
/ # nc -v <IP_ADDRESS> 443
/ # nc -v <IP_ADDRESS> 16443
<IP_ADDRESS> (<IP_ADDRESS>:16443) open

inspection-report-20210204_193839.tar.gz

Hi, this seems fairly easy to verify. Am I alone in this experience? Can I do anything further to help?
Thanks, Dan.

Hi @djmcgreal-cc, if you microk8s kubectl get svc -A you should see a kubernetes service on port 443. So I think the port is right. If you cannot access this service from a pod it means that the pod on the <IP_ADDRESS>/16 network cannot reach the <IP_ADDRESS>/24 network. However, looking at the list of pods you have I see coredns is working and coredns does talk to the kubernetes service. So I suspect there might be something off with the pod itself. Could you try another pod preferably not one based on alpine? We have seen some routing problems with those images.

I do indeed have such a service. I can't explain it, but the exact process I demonstrated above is now working as expected.
I'll get back in touch if I find out why.
Thanks! Dan.


Collector logs should distinguish filtered resources

Example
RestPerf says 5 but the plugin filtered those out
{"level":"info","Poller":"aff-251","collector":"Rest:Qtree","task":"data","caller":"collector/collector.go:346","time":"2022-11-18T08:47:50-05:00","message":"no instances, entering standby"}
{"level":"info","Poller":"aff-251","collector":"RestPerf:Qtree","parseMs":0,"calcMs":0,"metrics":40,"apiMs":803,"pluginMs":0,"instances":5,"skips":0,"caller":"collector/collector.go:483","time":"2022-11-18T08:48:22-05:00","message":"Collected"}
{"level":"info","Poller":"aff-251","collector":"RestPerf:Qtree","apiMs":777,"pluginMs":0,"instances":5,"skips":0,"parseMs":0,"calcMs":0,"metrics":40,"caller":"collector/collector.go:483","time":"2022-11-18T08:49:22-05:00","message":"Collected"}
{"level":"info","Poller":"aff-251","collector":"RestPerf:Qtree","apiMs":359,"pluginMs":0,"instances":5,"skips":0,"parseMs":0,"calcMs":0,"metrics":40,"caller":"collector/collector.go:483","time":"2022-11-18T08:50:22-05:00","message":"Collected"}
{"level":"info","Poller":"aff-251","collector":"RestPerf:Qtree","apiMs":788,"pluginMs":0,"instances":5,"skips":0,"parseMs":0,"calcMs":0,"metrics":40,"caller":"collector/collector.go:483","time":"2022-11-18T08:51:22-05:00","message":"Collected"}
{"level":"info","Poller":"aff-251","collector":"RestPerf:Qtree","pluginMs":0,"instances":5,"skips":0,"apiMs":819,"parseMs":0,"calcMs":0,"metrics":40,"caller":"collector/collector.go:483","time":"2022-11-18T08:52:22-05:00","message":"Collected"}

Can we achieve something similar in AbstractCollector by logging the number of exported in logMetadata

Verified in 24.02 84e2f7ca
2024-02-12T10:24:58-05:00 INF collector/collector.go:585 > Collected Poller=u2 apiMs=1414 calcMs=0 collector=ZapiPerf:Volume exportMs=4 instances=187 instancesExported=316 metrics=5049 metricsExported=4667 parseMs=47 pluginMs=1 pollMs=1465 skips=0 zBegin=1707751497181


disk.ReadAt not return EOF

disk.WriteAt("cfs0/newfile", []byte("123"), 0)

buf := make([]byte, 3)
disk.ReadAt("cfs0/newfile", buf, 0)  return 3, nil
disk.ReadAt("cfs0/newfile", buf, 3)  return 0, nil   // actual expected 0, io.EOF?

When disk.Readat  wrap to io.Reader interface, then as a read param for io.Copy, it will dead loop.

Do we actually want to return eof when you just read enough bytes into your buffer?

sorry I misread that. You are right, this is a bug if you readat 3 and return nil error.


python3Packages.teslajsonpy: init at 0.10.4

Motivation for this change
Python library to work with Tesla API.
https://github.com/zabuldon/teslajsonpy
This is a Home Assistant dependency.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 108985 run on x86_64-linux 1

2 packages built:

python37Packages.teslajsonpy
python38Packages.teslajsonpy

Result of nixpkgs-review pr 108985 run on x86_64-linux 1

2 packages built:

python37Packages.teslajsonpy
python38Packages.teslajsonpy


App crashes when attempting to open an #admins room

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

Version Number: 9.0.3-1
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @francoisl
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1719528213578329
Action Performed:

Create a workspace
Open the workspace's settings page and change anything that would cause a system message in the admins room
For example, create, delete, rename or disable a category ; add tags, etc.
Try to open the admins room for that workspace

Expected Result:
Workspace Admin room opens
Actual Result:
App crashes when opening admin room
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/38435837/e07e4060-8a43-4293-988a-72735763cca0
https://github.com/Expensify/App/assets/38435837/7746a3c8-93b2-4316-8299-0e0d6fd7e39a
https://github.com/Expensify/App/assets/38435837/88cd1457-3005-4f91-ac8e-f0e05d286507

View all open jobs on GitHub

Fixed on latest main:
https://github.com/Expensify/App/assets/64629613/ff8fdf09-cb8e-426f-9a40-16c3a0b8b983

got it, thanks!

@neonbhai Sorry to confirm, you mentioned its fixed on main, but is it fixed on staging?

@mountiny hi, cannot reproduce on staging:
https://github.com/Expensify/App/assets/64629613/2f0fd0b0-60d4-4aa9-954e-7831e2347461

@mountiny we are still able to reproduce this bug and clicking on the WS right after creating the WS also crashes the app.
https://github.com/Expensify/App/assets/38435837/0671c6e8-7101-41fa-9c96-d5037a9352b7

@neonbhai can you try in offline? maybe its issue with optimistic data

I can reproduce the crash when creating a workspace -> changing name -> switching to it from workspace switcher:
https://github.com/Expensify/App/assets/64629613/69acc422-ea5a-4f21-a6e7-20232304fc67
The console error is for maximum update depth exceeded. Ref link

Crash doesn't reproduce for me for the system message steps (both online and offline):
Attempt 1 (offline)
https://github.com/Expensify/App/assets/64629613/ba77f7b9-f30b-473a-8afe-a0f12aebb245
Aside: We don't set an optimistic system message for toggling of category/tags

Attempt 2 (online)
https://github.com/Expensify/App/assets/64629613/846f4b8b-ea9d-4929-bb88-6cae8dabd56c

cc: @mountiny

Was this a regression from a recent change? 👀

Looks like its coming from the ReportScreen component:

At first glance this seems suspicious: https://github.com/Expensify/App/pull/44412

https://github.com/Expensify/App/pull/44412 is not the cause :/

The issue has either something to do with:
the optimistic data set when we call UpdateWorkspaceGeneralSettings
Something about how the workspace switcher works
Something about how the ReportScreen works

I can't seem to reproduce this on desktop

I can reproduce the crash when creating a workspace -> changing name -> switching to it from workspace switcher:
Screen.Recording.2024-06-28.at.5.01.28.PM.mov
The console error is for maximum update depth exceeded. Ref link

Crash doesn't reproduce for me for the system message steps (both online and offline):
Attempt 1 (offline)
Attempt 2 (online)
cc: @mountiny

@neonbhai I can't seem to reproduce this at all anymore when following these steps 🤔

I think this is the cause https://github.com/Expensify/App/pull/44559
Namely the code that calls getSnapshot here cc @roryabraham
Can reproduce this consistently with my account on staging with the following steps:

Sign into any account
Create a new workspace.
Rename that workspace.
In the workspace list, click the three dots and click "Go to #admins room".

@jasperhuangg Awesome investigation! 🙇

@robertjchen @roryabraham Still looking into this, it's either caused by https://github.com/Expensify/App/pull/44412 or https://github.com/Expensify/App/pull/44559, or a combination of the two 😆 I'm trying every possible combination now.

Okay yep confirmed it's caused by https://github.com/Expensify/App/pull/44412, reverting that fixes things for me locally

Looks like @roryabraham is OOO today so in the interest of pushing deploy forward I'm gonna go ahead and revert that PR

btw @roryabraham here's the error

Reverting that PR will cause another regression @jasperhuangg

@jasperhuangg can you try this PR and see if it solves the problem?
https://github.com/Expensify/App/pull/44681

If it does, you could actually take it a step further and just remove the useLastAccessedReportID hook and put findLastAccessedReport in a useEffect directly

Came across very similar warning to https://github.com/Expensify/App/issues/44583#issuecomment-2201379355  on native device, asking to memoize getSnapshot call in useOnyx
Image

Ah shoot @roryabraham jumped the gun and missed your messages, my bad! The CP is already under way and it looks like that PR you linked is still an early draft–do you mind if we try to get it out in tomorrow's deploy?

Can't reproduce this anymore on staging


Dockerfile has typo in server proxy uri variable

I'm writing docs today and am adding a section to our installation section about running postgrest from docker. I encountered this:
$ docker pull postgrest/postgrest
$ docker run postgrest/postgrest
postgrest: ParseError "" "no such variable \"PGRST_SERVER_PROXY_URI\""

The problem was that the dockerfile was providing a default value for PGRST_SERVER_PROXY_URL instead.
When we merge this our build process will automatically rebuild the :latest tag, right? I guess we'll have to release v4.3.1 as well... 😞

I pushed another commit to ignore the proxy uri if it is present but blank, as it is by default in Docker. Otherwise I get:
$ docker run -e PGRST_SERVER_PROXY_URI="" postgrest/postgrest
postgrest: FatalError {fatalErrorMessage = "Malformed proxy uri, a correct example: https://example.com:8443/basePath"}

Why not just manually replace the v<IP_ADDRESS>/latest docker images with the PGRST_SERVER_PROXY_URI fix now, is not working anyway and I see this more as a flaw of the build process, I think it would be better to leave the version bumping for changes in the PostgREST application codebase. After that we could include the Treat blank proxy uri as missing commit in v<IP_ADDRESS> with the other recently merged PR's.

yes, rebuild the docker images manually (both tags, just like the build script) and push. no need for a new version

What about my change in Config.hs though?

that can be a 4.3.1, along with other small changes, it's too small to merit a .1 i think.

I just pulled the latest image from Docker Hub and followed the instructions but I still get the Malformed proxy uri error. The Docker Hub image seems to have been pushed 4 days ago. This patch was merged 6 days ago. I guess this patch did not make it into the Docker image.

I tried with postgrest/postgrest:latest (cd5df30b4a7e435aafe9abeac0e4158b98df03182de5bce93823c843293223c1), same result. When can this be merged into master?

it is in master, :latest does not mean master, it means the latest release, which is 4.3

Sorry, my bad. I did not see it was already merged. I'll await the next release :).


Migrate from Newtonsoft.Json to System.Text.Json

@BloodShadow174 HI!
Can you view this pull request?


Fixes in multi line description generation

This pull request contains two fixes:

New line separators are now rendered in enumerated values.
Multi line field descriptions are now rendered correctly in write and read registers.

This issue happened because the original code accidentally unescaped and respaced twice in field parse proccess. It uses escaped description L292 as input, but in desctiption_with_bits function later L1001 it unescaped again, resulting in loss of new line separators \n.
Before:

After:

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @Emilgardis (or someone else) soon.
Please see the contribution instructions for more information.

LGTM. Update changelog, please.

@burrbull Thanks for noting! I have updated changelog just now.

The CI check failed just now for code format, I used cargo fmt and committed again.

squash commits, pls

Squashed into 1 commit

bors r+


ZAP in Docker with reproducible builds

Problem

Including ZAP in chip-build-vscode for use in CI/CD

ZAP is currently a submodule in the CHIP repo. The submodule commit is the source of truth for the "right" zap version.

We need to ensure images do not get out of sync and builds are reproducible, with ONE artifact from the CHIP repo remaining the source of truth.

Change overview

changes outside of chip-build-zap:

build.sh runs buildcontext.sh before build if buildcontext.sh exists in the build context
dependency versions for git and node
chip-build-vscode updated to copy from ZAP

changes to chip-build-zap:

Added README.md
Added buildcontext.sh to populate ZAP build context with hash of working tree
Add zapverify.sh to run the check which ensures that any images built stay in sync with git origin and provide instructions if anything is out of sync
Rebase chip-build-zap on chip-build to fit with other images and for multistage into chip-build-vscode

Add logic to chip-build-zap to support the sync verification process.
Clone at build time to ensure all builds are verifiably reproducible.

Testing

Building chip-build-vscode and ensuring ZAP file generation works
Changing the hash in chip-build-zap Dockerfile and building chip-build-zap to ensure verification process works.
Intentionally building in unintended ways to ensure helpful messages are communicated.
Ran ZAP file generation test in builds to verify installation.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Windows Compatibility

Hi! I have been playing around with the template, and there was some minor headache with figuring out why bash is not behaving as expected. I have resolved it in the end by first trying this:

In tasks.json, change all Windows program.command values to C:/Program Files/Git/git-bash.exe. This is because the original bin/bash.exe was very limited in the accessible folder scope, and the one I used has access to the whole drive C.
But then it still didn't work (Error: awk: fatal: cannot open file 'C:/Defold/config' for reading (No such file or directory)), so I had to run the commands manually in a git-bash.exe (note: not bin/bash.exe) terminal in an extra window. But ultimately, it doesn't matter for me to have a working VS Code task, as long as the bash script itself works well.

But I was curious if this is a difference between your and my Windows machines, or not? How extensively have you tested the scripts on Windows? If it wasn't done much before, mb this piece of info/workaround could be added to README?

I have looked into it a bit more, and the original bin/bash.exe works only if to run the command manually out of the terminal. Do you have any ideas why the VS code task is not able to read the config file? I don't even run the terminal with admin rights, so I find it a bit weird

Hi!
Yes, the truth is that I am not a Windows user and the instructions were compiled from the feedback of those who have made it work. But for sure it may not take into account some cases.
All that I know about running bash on Windows is here. Is there a potential answer to your question there?

Also some fresh points here https://stackoverflow.com/a/50159674

I see, thanks for the info. I was just curious about how much config editing was required to make it work on Windows. But I think the takeaway is that Windows users might need to run the commands from .vscode/tasks.json manually in a bash terminal (at least in my case).

The expected behavior of VSCode is to run commands without problems using bash installed with Git. If I knew how to fix it in your situation, I'm sure it would be better, but I'm no expert at all in integrating bash into Windows. Maybe if you do everything from scratch on a clean machine, it will work.


Async generator function does not flatten yielded promises

TS 2.3 RC
declare const console: any;
{
    (Symbol as any).asyncIterator = Symbol.asyncIterator || "__@@asyncIterator__";

    const gen = async function* () {
        yield Promise.resolve(10)
        yield Promise.resolve(20)
    }

    const main = async () => {
        for await (const y of gen()) {
            console.log(y)
        }
    }

    main();
}

This outputs:
❯ tsc && node ./target/AsyncIterable.js
Promise { 10 }
Promise { 20 }

I expected it to output (promises are flattened):
10
20

@OliverJAsh Not super familiar with this, but I think you might want to be yield await-ing stuff inside gen. Does this work?
declare const console: any;
{
    (Symbol as any).asyncIterator = Symbol.asyncIterator || "__@@asyncIterator__";

    const gen = async function* () {
        yield await Promise.resolve(10)
        yield await Promise.resolve(20)
    }

    const main = async () => {
        for await (const y of gen()) {
            console.log(y)
        }
    }

    main();
}

I think the point of marking a function with async is so that you can write your code inside as if it was synchronous, await-ing at any points where you have to interact with asynchronous code. The transpiler machinery wraps all this appropriately so that your function obeys the async-iterator interface and returns promises from next.

Ah, interesting.
I can confirm this does fix the issue, although I have a feeling the flattening should work without the await. I don't know if it's anything to go by, but this works in Babel.

@OliverJAsh I did some digging and it looks like there was an issue filed in the proposal repo to make it behave as you are describing: tc39/proposal-async-iteration#8. This means TypeScript isn't following the spec, and should be unwrapping as you expected.


[Azure] Object Detection, about create new compute

How to how to solve this problem: "This workspace does not have any valid compute sizes. Try a workspace in a different region."

Which version of model builder are you using. We just updated the supported compute size inside model builder recently.
@zewditu  for FYI

I'm facing the same issue. How can I solve the problem?

@TheFedex87   where is the region of your workspace?

West Europe, but I have resolved this afternoon. I download the updated extension of model builder and now the train of object detection can also be done locally without use any Azure resource. However tomorrow I will try also using Azure to check if this new version can work properly on Azure too.

@TheFedex87, I hope the latest will work on latest Model Builder I am able to create new compute on West Europe region. If you still hit the issue let us know.
Thanks!

@zewditu I confirm that with the new updated extension I'm also able to create the compute on Azure. The error message "This workspace does not have any valid comput sizes" is gone!!


Add openembedded targets

Do you have a link to the PR adding these targets in upstream rust-lang/rust?

This is coming from using the OpenEmbedded rust-common class in bitbake with TARGET_VENDOR defaulting to oe-: https://git.openembedded.org/openembedded-core/tree/meta/classes-recipe/rust-common.bbclass
I see this is a difference between this version and the one here:
https://github.com/meta-rust/meta-rust/blob/master/classes/rust-common.bbclass
Let me try to understand why that is before going futther.


3D Printer Queue

So we have two 3D printers in the lab and we have students interested in using them. The website should have a sign-up page allowing people to view the availability of the 3D printers and grab time slots.
This could be as simple as a claim-next-use queue, but ideally this would be something like a two-week calendar (let's limit it to you can claim a time up to two weeks into the future) wherein you can sign up for time slots up to two hours long.
Let's also programmatically enforce a two-hours per week limit.
Thanks!

EDIT: Just kidding, prints can take hours. Let's nix the time limit and allow people to reserver arbitrarily long times, and we'll deal with complaints/abuse outside of software.

Jonathan wrote an app, let's get it hosted

the repo is https://github.com/johnnicholson/PrinterQueue
need to do some work on it over winter break though before it is ready

Let's get this rolling, possibly with a "Current Print Status" badge on thewhitehat.club?


[eBPF] Updated the kernel adaptation feature code

For kernel-devel-4.19.91-26.6.al7 (Anolis OS)
This PR is for:

Agent

Affected branches

main

Checklist

[ ] Added unit test to verify the fix.
[ ] Verified eBPF program runs successfully on linux 4.14.x.
[ ] Verified eBPF program runs successfully on linux 4.19.x.
[ ] Verified eBPF program runs successfully on Linux 5.2+.

等客户验证，再合并


fix initialize_as_grid and implement square_grid etc

add_square_grid(initial_offset: int, bounds: Rect2D , orthogonal_cost: float =1.0, diagonal_cost: float =INF, terrain: int=-1)
add_isometric_grid(initial_offset: int, bounds: Rect2D , orthogonal_cost: float =1.0, diagonal_cost: float =INF, terrain: int=-1)
add_hexagonal_grid(initial_offset: int, bounds: Rect2D , orthogonal_cost: float, terrain: int=-1)

I wont do it today but I might do it tomorrow!

I've already implemented them. Currently bounds can only be Rect2. I intend to add support for any arbitrary Shape2D, but it's more complicated than I originally thought.

nice!


Allow drawing a subset of a buffer

The raw Vulkan draw commands, such as vkCmdDraw, have parameters to specify which vertex to start drawing at, and how many to draw. These parameters are exposed by SyncCommandBufferBuilder, and the implementation of AutoCommandBufferBuilder provides these values based on the size of the buffer. But there is no way to specify these directly in AutoCommandBufferBuilder other than by using indirect drawing. This makes it impossible to draw only a subset of a buffer, which is useful when a single buffer contains data for many different objects. Can this feature be exposed somehow?

Hello, have you tried using a BufferSlice as the vertex buffer argument when calling AutoCommandBufferBuilder::draw? With the BufferSlice::slice function, you can specify the offset and range of the vertex data you want to pass to the draw call.

Same as https://github.com/vulkano-rs/vulkano/issues/1054, a valid solution has been provided. I'll make a PR to document this on the draw_* methods


Provisioner and for_each meta-arguments are missing

The provisioner and for_each meta-arguments supported by Terraform are not implemented in tf-ncl yet.
Provisioners seem to mostly require a lot of extra attributes. Conditions need a proper encoding.
for_each is easily emulated in pure Nickel for statically known iteratees. For dynamically generated collections, we again need a proper encoding.

Dynamically generated collections actually aren't a thing. From the documentation:

However, unlike most arguments, the for_each value must be known before Terraform performs any remote resource actions.

So, I will leave for_each to Nickel.

Provisioner connection blocks need to reference fields defined in the surrounding resource. This is not supported using the standard syntax in terraform. Instead they put a self reference in scope to access those fields, e.g.
resource "aws_instance" "web" {
  # ...

  # Establishes connection to be used by all
  # generic remote provisioners (i.e. file/remote-exec)
  connection {
    type     = "ssh"
    user     = "root"
    password = var.root_password
    host     = self.public_ip
  }

  provisioner "remote-exec" {
    inline = [
      "puppet apply",
      "consul join ${aws_instance.web.private_ip}",
    ]
  }
}

Our computed field solution, see #12, will need to provide a solution for that.


Option to hide external code in call stack

Requesting an option to hide external code in call stack while debugging.

Well I actually wonder why is this issue is not requested and upvoted at all. In my opinion it's very essential. I've a background in Visual Studio and this option was quite crucial to me. A lack of this feature in Visual Studio Code caused to create the subject issue.