(light wallets) add support for e.g. "get_oldest_pending" ?

I'm writing a haiku light wallet, tailored for my needs (i.e. old fashioned power user rather than beautiful / visually appealing GUI :-)
Long Story Short:
I'm finding that implementing a light wallet (without a full node) can be done with ad-hoc code, except for one thing:
The wallet needs a way to retrieve the list of pending "sends", to be pocketed. To my understanding, the UDP based protocol does not provide for this currently, only access to a full-node's RPC port does.
There's also a few other less important improvements that could help.
I'll look at the source code of the iOS and Android wallets when available; but thought I'd file a ticket right now as I'm not sure when/whether those will answer my questions.
Details:
I'm writing this wallet to be as light as possible (it will be in C++ native to Haiku OS but that's another topic, if there's interest in porting the rai_node code to it?).
If the source code can be useful to others I could upload it to chiselapp after a clean-up.
The wallet does not store blocks at all, except for the pruned user's accounts' block chain.
It's 32bit and uses IPv4 code, since my router won't handle IPv6.
I'm at the stage where I can create "send" blocks:
After each send I keep track of the latest block hash, balance, and pre-calculate work for the next send.
There's also code to "catch up", if the app loses track, or if creating a wallet from seed and dealing with an account that has a pre-existing history to catch up on: I then use "bulk_pull", which returns the full account's block chain.
(suggestion 1: would that waste bandwidth for accounts with huge histories? Idea: with a special parameter, bulk_pull could return only the last block; after the transition to UTX blocks state_blocks that will be a bandwidth efficient way to catch-up).
What I haven't found a way to do yet: the equivalent of the RPC command "pending"...
As a stop-gap measure the wallet relies on www.nanode.co 's free services/API (thanks to whoever provides them BTW!) but that's not decentralized, and if I went to production with that I would have to provide my NaNode API key with copies of my application... Ouch.
Suggestion 2: Is the above something that should be addressed ? If so, how do we make life easier for light wallets ?
Do we add a new message type, "get_oldest_pending", working on UDP/IP port 7075 ?
Then the wallet calls "get_oldest_pending" to get the block hash of pending transactions (if any)..
Then I would run a "bulk_pull_blocks" on that hash (currently it's not necessary, but after the UTX state_blocks transition, a "receive" block will also have to add up the old balance to the amount, to provide the new balance). Or better yet, "get_oldest_pending" would provide not only the hash but also the balance, so that it's a one-message deal ?
Misc issues:

keepalive listings "pollution":
when I send a keepalive, nodes add me to their list of "contacts" and, I guess, will then provide my IP to others; yet I of course won't respond to connection attempts, won't honor requests to bulk_pull ..etc. (in fact the wallet closes the UDP port immediately when it's done).

Maybe there should be a way to say "I'm not a node, I just pinged you to say hello and publish a block or ask for a bulk_pull" ? Otherwise light wallets like me will 'pollute' the keepalive lists.. If too many wallets do that, nodes will have to sift through a bunch of non-responding addies before reaching a functional one.

keepalive flags:
E.g. there could be a variant of that message, like "keepalive_etc", that adds a two-bytes "flags" field in the header. When sending a keepalive_etc to hosts I would set the IM_NOT_A_FULL_NODE flag or some such, for the node to know who's talking to it.
Also, a second flag that could be useful is a "GOOD_SAMARITAN" flag, to be used by full nodes, when responding to wallets.. Or a flag with reverse semantics, a flag signalling that a node is not willing to provide light-wallet specific messages (like get_oldest_pending) because it does not like freeloaders :-]

That's all that comes to mind for now. Hope it's of interest

That's exactly how my wallet works by querying nanode.co. @rawrmaan said it was fine for this use.
I have been wondering about this same issue. These suggestions are fantastic for creating true decentralized light wallets. The bulk_pull_blocks PR seems like a decent guide on how to add a new message type.
What is the significance of oldest in get_oldest_pending? Why not have a message be simply get_pending? AFAIK, there is no way to provide an order to pending blocks so the only parameter in the body along with the account public key would be a limit perhaps?
Is there a political issue making this RPC action, previously private, public on the peer-to-peer interface? Obviously, this change plays with the incentive to run a node. Like you mention, a boolean config option for respond_to_get_oldest_pending would work to mitigate this. Internal rate-limiting seems like a good idea.

@numtel -- Come to think of it, it probably makes sense to..

retrieve the pending blocks for several accounts at once, not just one account (my app is shaping up to be account-intensive)
retrieve the whole pending list for each account, rather than only one pending block

Pretty much like the RPC command "pendings" plural. And also (similar to RPC commands), there should be a parameter to provide a limit -- just like you suggest.
My first take was motivated by saving bandwidth, not being too much of a "freeloader" on full nodes. But if you end up spooling several requests, that actually ends up increasing network traffic, so..
Light wallets are not very much emphasized or technically detailed (in terms of cutting off the full-node RPC "ombilical") in the recently  released roadmap.. So it's not quite clear how much of a priority they are. The "thumbs up" from dev is quite encouraging though.
I don't have previous experience with coding specifically a CC wallet or with cryptography but even at my level I realize it's a thin line to walk indeed, balancing light wallets vs. network health. Light wallets will probably want to have the very smallest footprint (don't overtax the nodes) they can, whilst still preserving security of the nano's they hold. Anyway.. will put this on the back burner for a little while, several things need to happen first: state_blocks/canary, open sourcing the official wallets ..etc.

Ouch, nanode.co's API is going offline soon
The email I received makes it sound like the API goes offlines in mid-june ("14 days notice") whereas this page https://www.nanode.co/node-api mentions Jul 15th
Anyhow, we'll have to do without soon
That has an impact for me as my perspective on nano is using it in a decentralized and light-weight way
Possible ways from here..

some leads from this ticket being applied in the future

a way for me to run my own node (optimized enough that I can shutdown in the evening and have it catch up to the latest blockchain activity when switching my computer back on in the morning; heavy pruning to have a small database, say a few dozen MB; run on IPv4 since that's what my ISP provides me)

failing all that, and that would s*ck, my wallet would have to open a web browser on a chain explorer and instruct the user to collect such and such value and paste it in such and such textfield

Just one guy's perspective, but I have a suspicion it would be good for the rest of the community too..

This can be implemented using the new bootstrapping primitive "bulk_pull_account".  See pull request #1039 and issue #988.
Let me know if this does not satisfy your requirements.

Kudos for all you've been doing those last few weeks rkeene.
 I think it's safe to close this ticket right now.
I'll get back on working on my wallet over the next few months and will file a ticket if I encounter new issues. (and I still swear I'm going to get the code clean enough to upload to chiselapp at some point, just hard to find some spare time for Haiku projects these days)

Thank you for your support !


Fix [(0)]

Another issue where babylon and flow ast are different. In babylon, it is NumericLiteral but flow is Literal. All the tests are running on flow so were working correctly, but the default in the command line is to use babylon, so people report bugs with it.

Yikes, we really need to get the tests running under babylon. I bet someone from that team would be willing to check that out sometime next week, so I'll follow up with that.

Thanks for doing this! This was one bug I wanted to be tonight before going to bed so you saved me time :)


fix(config_stage): blurry modules

fixes #100
Signed-off-by: Lukas Mertens<EMAIL_ADDRESS>

@hikinggrass in my tests it didn't affect performance. Can you please check if it's the same for you? If it runs smoothly we can just remove the caching


Question - considering of git clone to add existing app

Hello Freddy,
I can see you are using secure URL approach to get the remote content. Have you been considering using git clone to achieve that goal? Maybe I am missing something, maybe there are some valid reasons for using (only) the existing manner.
Thanks!!!

the add existing app can be run 5 times to extract just the app and add that.
You can also drag and drop your source files directly on-to github.com.
I have thought about adding support for other mechanisms to provide the app, git clone could certainly be one to extract whatever apps are available in that repo


Allow all literals to use code highlighting.

Currently, only literals with the :force: directive would actually benefit from code highlighting.
This change would allow all literals to benefit from the project's specified language for code blocks.
For example, this Python docstring...
'''
Usage::

    import module
    module.dosomething()
'''

...will now render with code highlighting in markdown:

Usage:
import module
module.dosomething(foo=5, bar='baz')

Thank you


Includes not working on self-hosted gitlab

Minimal .gitlab-ci.yml illustrating the issue
---
stages: [build]
include:
  - project: 'https://git.url.de/group/gitlab-ci-templates'
    file:
      - Jobs/Job.gitlab-ci.yml

Expected behavior
Getting includes from correct URL not gitlab.com/self-hosted.url/
(Not public)
Host information
macOS 15.1.1 (24B91)
gitlab-ci-local 4.55.0
Containerd binary
podman
Additional context
Logs:
🚀 gitlab-ci-local --stage build --fetch-includes
(node:41459) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
git remote get-url origin didn't provide valid matches
Project include could not be fetched { project: https://git.url.de/group/gitlab-ci-templates, ref: HEAD, file: Jobs/Job.gitlab-ci.yml }
Error: Command failed with exit code 128: set -eou pipefail; git archive --remote=ssh://git@gitlab.com:22/https://git.url.de/group/gitlab-ci-templates.git HEAD Jobs/Job.gitlab-ci.yml | tar -f - -xC .gitlab-ci-local/includes/gitlab.com/https://git.url.de/group/gitlab-ci-templates/HEAD/
remote:
remote: ========================================================================
remote:
remote: ERROR: The namespace you were looking for could not be found.

remote:
remote: ========================================================================
remote:
fatal: the remote end hung up unexpectedly

🗂  repo on ⚡add_tests
🚀 git remote get-url origin
https://git.url.de/group/group/repo/

Ive also tried using variables to set the CI but had no luck with that, something like this:

Pretty ugly but this workaround does the trick:
stages: [build]

include:
  - remote: 'https://git.url.de/group/gitlab-ci-templates/-/raw/main/Jobs/Job.gitlab-ci.yml'

could you try with this instead ?
---
stages: [build]
include:
  - project:  'group/gitlab-ci-templates'
    file:
      - Jobs/Job.gitlab-ci.yml

We currently do not supports this syntax   - project: 'https://git.url.de/group/gitlab-ci-templates', don't really see it documented in gitlab docs

We currently do not supports this syntax  - project: 'https://git.url.de/group/gitlab-ci-templates' ...
wasn't aware that this is supported, since it does'nt seemed to be documented in gitlab.com docs

Well, i actually have no idea if thats supported i havent actually pushed it yet to gitlab to see if it works, but i got it working with gitlab-ci-local with the remote syntax i mentioned in my last comment

I don't have a self hosted gitlab to test... but this should work with gitlab-ci-local

The issue it that gitlab-ci-local for doesnt recognize that its a self-hosted gitlab and will just try to get the includes from gitlab.com instead of git.url.dev. The gitlab itself doesnt have an issue with that syntax, it probably always defaults to itself when no remote is specified.
Idk if i just have that problem because of this:
git remote get-url origin didn't provide valid matches
but maybe it would be an option to check wether its managed gitlab or self-hosted gitlab with that URL.

Idk if i just have that problem because of this:
git remote get-url origin didn't provide valid matches

yeah, i suspect so..
could you share what's the output of your git remote -v ?

could you share what's the output of your git remote -v ?

Ups sorry didnt see your reply until now my bad.
🚀 git remote -v
origin	https://git.url.de/group/repo/ (fetch)
origin	https://git.url.de/group/repo/ (push)

sorry i cant be more specific, but the output looks correct to me

the mr should fix your issue...

NIcee, thank you very much! Ill maybe try to build it locally myself later and report back if it fixes my issues


fix: Remove getSession usage from SSR

Summary of change
This PR updates the boilerplate of Astro, Remix and NextJS (app dir) to remove the getSession usage in the SSR.
Related issues

Link to issue1 here
Link to issue1 here

Test plan

[ ] If added a new boilerplate

I tested the new boilerplate by running the CLI locally
I tested that the boilerplate is created and works correctly when using command line flags (--recipe=... for example)

[ ] If added a new recipe, frontend or backend

I tested that the newly added option is usable by passing command line flags (--recipe=... for example)

Checklist for important updates

[ ] Changelog has been updated
[ ] Changes to the version if needed

In package.json
In package-lock.json
In lib/ts/version.ts

[ ] Had run npm run build-pretty
[ ] Had installed and ran the pre-commit hook
[ ] If added a new recipe, I also modified types to include the new recipe in Recipe and allRecipes
[ ] If added a new frontend, I also modified types to include the new frontend in SupportedFrontends and allFrontends if required
[ ] If added a new backend, I also modified types to include the new backend in SupportedBackends and allBackends if required

Is there a documented reason behind this change?
These docs still show getSSRSession being used: https://supertokens.com/docs/thirdparty/nextjs/app-directory/protecting-route#using---presessionauthfornextjs-and-checking-for-sessions--pre

Hi @tocaherge!
The reason behind this change is that getSession / verifySession functions from the supertokens-node SDK may update the access token. These updated tokens would not be propagated to the client side properly, as request interceptors do not run on the server side. So, instead we use regular JWT verification library to parse the tokens to avoid any inconsistency.
As for the docs, they will be updated very soon. You can track the changes in https://github.com/supertokens/docs/pull/804


Bump to v1.0.0

This PR also fixes Codecov reports.

Codecov still hasn't commented it's report on this PR. Seems like I've missed something again.

Codecov is commenting and showing the correct coverage. A v1.0.0 tag is attached to the last commit which should trigger the publish to PyPi action.

Can we instead separate the CI fixes from the actual bump?
Also, maybe tagging the last commit with v1.0.0 is a bad practice. What if there are review comments etc? We'd need to un-tag and tag commits constantly. Maybe a better way would be to make the PR, merge it, and then we tag the corresponding commit in main.

Also, maybe tagging the last commit with v1.0.0 is a bad practice. What if there are review comments etc? We'd need to un-tag and tag commits constantly. Maybe a better way would be to make the PR, merge it, and then we tag the corresponding commit in main.

I didn't do this because the publish to PyPi action only runs on push, and I'm unsure if tagging the commit in main is considered a push.
I'll remove the v1.0.0 tag so the publish to PyPi action won't be run. Once this PR is merged you can tag the last commit in main and we'll see if the publish to PyPi action is triggered. If it's not triggered, I'll have to do some research in the best practices.

v1.0.0 deleted.

This seems good for publishing to PyPi. Should I implement this (as another PR)?

Ready for merge, followed by a release. This will be the first release since 14th December 2021!

Well, let's try! 🔥

@Stoops-ML please do the honors and proceed with the release if you have enough permissions :)


fix Codefresh PR number variable

:zap: Summary
This PR switches from the Pull Request ID, which is an internal Github ID, to the Pull Request Number, for Codefresh, which will make these links work:

https://codefresh.io/docs/docs/pipelines/variables/
Here's a similar issue with gitlab that I found, where they also switched over to the github PR number from PR id

:ballot_box_with_check: Checklist

[ ] Add specs

We pulled that in from node-coveralls, which still has this discrepency.

In the Coveralls app code, it is used from that link you showed, and it's also used for API calls to GitHub, GitLab, BitBucket, and Stash. I can confirm that those APIs -- the ones we use anyway -- expect a "PR number"-like value, and not an ID.
Looks good to me.

Sorry, that paragraph was an explanation clarifying that I checked the Coveralls backend and confirmed that this PR is correct.

@snackattas just doing some housekeeping to confirm this had been released and is working for you.
Thanks, @mike-burns!


Getting the following certificate error for a brand new kube-aws cluster

I get the following error when running kubectl cluster-info on a new kubernetes cluster created using kube-aws.
Unable to connect to the server: x509: certificate signed by unknown authority
I followed this guide on a new EC2 instance:
https://coreos.com/kubernetes/docs/latest/kubernetes-on-aws.html
I followed this guide to install kubectl
https://coreos.com/kubernetes/docs/latest/configure-kubectl.html
These guides worked for me a few days ago, however my recent attempts, starting from a clean slate result in this error.
My cluster.yaml file is using the default settings, accept for changing the m3.medium to m4.large instances inside a new VPC which kube-aws creates.
Has anyone else had this error, or would know how to debug it?
Thank you.

Are you seeing that with kubectl <command>? Did you swap out your old .kubeconfig for the new one?

Yes, I see it when I try to use : kubectl cluster-info or kubectl get nodes
I don't have any old config, I'm starting from a clean slate each time.

Can you try this with the new kube-aws?

Ill give it a go

Hey @gordonmurray , did you resolve your issue? it looks like I am having the same issue building a brand new cluster.


Clearing recent searches only removes last 10

Summary:
Currently, clicking the 'bin' icon on searches only deletes your last 10 searches. Personally I think it should wipe your entire search history - I'm not sure why it's implemented the way it is currently.
If however we do want it to only delete last 10 then at least the method call should be renamed to something other than deleteAll
https://github.com/commons-app/apps-android-commons/blob/b0b4b0810084a89d2be80c10814be921ecaa4835/app/src/main/java/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDao.java#L58

Hey.I had started working on this


Update Landscape Entry for [PROJECT]

Changes requested
The energy sector is following the telecommunications field by moving towards virtualization for increased flexibility and cost reduction. This leads to an IT/OT convergence where critical applications, previously hosted on specific hardware, become virtual machines. However, these applications require high availability, real-time performance, and cybersecurity.
SEAPATH is a project under the LF Energy umbrella that provides a solution for building a real-time virtualization industrial-grade platform based on Yocto or Debian. The technology behind SEAPATH includes the use of Ceph storage, Linux RT, Pacemaker for high availability, Open vSwitch (OVS) for network virtualization, SR-IOV for hardware acceleration, KVM for virtualization, and PTP synchronization for accurate timekeeping
The SEAPATH project can be used:

By vendors to build a fully virtualized digital substation and ensured to its client that it is based on open source
By integrators that wants to propose and support a real-time virtualization industrial-grade platform for their clients
By utilities, universities and start up that want to evaluate their concepts and take benefit of this collaboration framework

Recently the SEAPATH project has made big evolutions regarding testing and hardening:

testing/ci
debian hardening

Want to build your SEAPATH cluster? You should start here

slide updated


KYLIN-4154 Sync all events in broadcaster before closing

Can one of the admins verify this patch?

Codecov Report

Merging #833 into master will decrease coverage by <.01%.
The diff coverage is 41.66%.

@@             Coverage Diff              @@
##             master     #833      +/-   ##
============================================
- Coverage     25.62%   25.61%   -0.01%
+ Complexity     6050     6049       -1
============================================
  Files          1398     1398
  Lines         83523    83534      +11
  Branches      11701    11702       +1
============================================
- Hits          21400    21399       -1
- Misses        60070    60081      +11
- Partials       2053     2054       +1

Impacted Files
Coverage Δ
Complexity Δ

...g/apache/kylin/metadata/cachesync/Broadcaster.java
51.65% <41.66%> (-0.35%)
23 <1> (ø)

...he/kylin/dict/lookup/cache/RocksDBLookupTable.java
72.97% <0%> (-5.41%)
6% <0%> (-1%)

...he/kylin/job/impl/threadpool/DefaultScheduler.java
74.41% <0%> (-2.33%)
12% <0%> (ø)

...rg/apache/kylin/cube/inmemcubing/MemDiskStore.java
70.21% <0%> (-0.61%)
7% <0%> (ø)

Continue to review full report at Codecov.

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


A failed requirement does not fail the test

I would expect that when a requirement fails, the test would also fail.
Trace example:
=== RUN   TestKafkaSource/Delivery/Requirement/Kafka_topic_must_be_ready
    topic.go:64: kafka.strimzi.io/v1beta1, Resource=kafkatopics did not become ready, <nil>
=== CONT  TestKafkaSource
    kafka_source_test.go:230: Skipping feature 'Delivery' assertions because requirement "Kafka topic must be ready" failed
    --- SKIP: TestKafkaSource (11.74s)
    --- PASS: TestKafkaSource/Delivery/Setup/install_sink (2.08s)
    --- PASS: TestKafkaSource/Delivery/Setup/install_Kafka_topic (0.01s)
    --- PASS: TestKafkaSource/Delivery/Setup/install_a_kafkasource (0.02s)
    --- PASS: TestKafkaSource/Delivery/Requirement/Kafka_topic_must_be_ready (0.00s) <-- SHOULD BE FAIL
PASS

@n3wscott can you confirm this is a bug? If yes I'm can submit a PR.

Can you show me the code backing Kafka_topic_must_be_ready ?

I think there is a bug in the reconciler framework on how it sees failures from Requirement
f.Requirement("kafka topic must be ready", kafkatopic.IsReady(topicName))

Will look into it.


[DOCS-23] Set up sitemap.xml with full URL

Enhance SEO

OK'd by<EMAIL_ADDRESS>over Slack.


Additional functions for postprocessing / dissipation

Perhaps it would be nice to have some additional functionality for each material that allows recovering information e.g. for postprocessing. Here is an example for the material that's currently called Plastic:
function state_conjugates(
    ε::SymmetricTensor{2,3,T,6},
    material::Plastic,
    state::PlasticState{3},
)
    (; Eᵉ, r, H) = material

    σ = Eᵉ ⊡ (ε - state.εᵖ)
    k = - state.κ / (r * H)
    a = - 3/2 / ((1-r)*H) * state.α

    return σ, k, a
end

function strain_rates(
    material::Plastic,
    σ::SymmetricTensor{2,3},
    κ::Real,
    α::SymmetricTensor{2,3},
    λ::Real,
)
    (; κ_∞, α_∞) = material

    σʳᵉᵈ = σ - α
    σʳᵉᵈ_dev = dev(σʳᵉᵈ)
    σₑʳᵉᵈ = sqrt(3/2) * norm(σʳᵉᵈ_dev)
    α_dev = dev(α)

    # flow + hardening rules
    ν = 3/2 * σʳᵉᵈ_dev / σₑʳᵉᵈ
    ζ_κ = -1. + κ / κ_∞
    ζ_α = -ν + 3. / (2α_∞) * α_dev

    # evolution equations
    dεᵖdt = λ * ν
    dkdt = λ * ζ_κ
    dadt = λ * ζ_α

    return dεᵖdt, dkdt, dadt
end

function dissipation(
    ::Plastic, # could perhaps be more general
    σ::SymmetricTensor{2,3},
    κ::Real,
    α::SymmetricTensor{2,3},
    dεᵖdt::SymmetricTensor{2,3},
    dkdt::Real,
    dadt::SymmetricTensor{2,3},
)
    # dissipation
    𝔇 = σ ⊡ dεᵖdt + κ * dkdt + α ⊡ dadt

    return 𝔇
end

This design tries to avoid recomputations of variables where possible, thus the function signatures. For convenience, these functions can of course be glued together and then have simpler signatures:
## convenience wrappers if intermediate results are not needed
function strain_rates(
    ε::SymmetricTensor{2,3},
    material::Plastic,
    state::PlasticState{3},
    Δt::Float64,
)
    σ, _, _ = state_conjugates(ε, material, state)
    (; κ, α, μ) = state

    λ = μ / Δt
    return strain_rates(material, σ, κ, α, λ)
end

function dissipation(
    ε::SymmetricTensor{2,3},
    material::Plastic,
    state::PlasticState{3},
    Δt::Float64,
)
    σ, _, _ = state_conjugates(ε, material, state)
    (; κ, α, μ) = state

    λ = μ / Δt
    dεᵖdt, dkdt, dadt = strain_rates(material, σ, κ, α, λ)

    return dissipation(material, σ, κ, α, dεᵖdt, dkdt, dadt)
end

Happy to hear some feedback!

Perhaps they should have the same function call as material_response? Seems to fit for the dissipation-function (but you have switched material and \varepsilon). And I like your idea of having an internal _dissipation() or _strain_rates() function for code re-usibility.
This functions can be documented in the docs under each material :)


Bump 0.10.0-snapshot

Signed-off-by: Nana Essilfie-Conduah<EMAIL_ADDRESS>Description:
Bump 0.10.0-snapshot
Related issue(s):
Fixes #
Notes for reviewer:

Checklist

[ ] Documented (Code comments, README, etc.)
[ ] Tested (unit, integration, etc.)

Codecov Report
Base: 69.14% // Head: 69.14% // No change to project coverage :thumbsup:

Coverage data is based on head (ca2e7b7) compared to base (466adc6).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #587   +/-   ##
=======================================
  Coverage   69.14%   69.14%
=======================================
  Files          16       16
  Lines        1076     1076
  Branches      182      182
=======================================
  Hits          744      744
  Misses        281      281
  Partials       51       51

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

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


Add support for NO_PROXY or equivalent

A few more edge cases in enterprise environments, where some package indexes might need to go though a proxy while other don't.
In pip this is handled through the vendored requests package which allows,

defining HTTP_PROXY env variable to define the proxy
the NO_PROXY env variable to define domains that shouldn't be proxied

More related discussion in https://github.com/pypa/pip/issues/5378#issuecomment-388183686.
Currently as far as I can tell uv respects  HTTP_PROXY but ignores the NO_PROXY.  Having some mechanism for it would be nice.

Is there support for this in reqwest? I think we basically rely on them for networking behavior

NO_PROXY in reqwest seems implemented here originating in this PR

Yes, indeed. Maybe it was some other issue on my end. Thanks closing.


[BUG]  Cannot stream MJPEG

Describe the bug
Testing streaming of USB camera.  Works with Pi camera but not USB.
I realize that full support for USB may not be available, but it seems this is a straightforward use case that should work.
USB camera displays stills in preview with picam.create_preview_configuration({"format": "MJPEG"})
Pi camera works fine with:
picam2.configure(picam2.create_video_configuration())  but not
picam2.configure(picam2.create_video_configuration({"format": "MJPEG"}))
USB camera throws an error:
ValueError: Invalid format: MJPEG. Valid formats are: ...
This occures when attempting to capture video with either:
picam2.configure(picam2.create_video_configuration())
or
picam2.configure(picam2.create_video_configuration({"format": "MJPEG"}))
I tried YUYV (a valid  format and reported by camera as available)
picam2.configure(picam2.create_video_configuration({"format": "YUYV"}))
This gave a different error (see below)
To Reproduce
This following sample code is taken from one of the examples with some added code to provide info about the cameras.
All changes are at the end of the code.
#!/usr/bin/python3

# Mostly copied from https://picamera.readthedocs.io/en/release-1.13/recipes2.html
# Run this script, then point a web browser at http:<this-ip-address>:8000
# Note: needs simplejpeg to be installed (pip3 install simplejpeg).

import io
import logging
import socketserver
from http import server
from threading import Condition

from picamera2 import Picamera2
from picamera2.encoders import JpegEncoder
from picamera2.outputs import FileOutput

PAGE = """\

<title>picamera2 MJPEG streaming demo</title>

Picamera2 MJPEG Streaming Demo

"""

class StreamingOutput(io.BufferedIOBase):
    def __init__(self):
        self.frame = None
        self.condition = Condition()

    def write(self, buf):
        with self.condition:
            self.frame = buf
            self.condition.notify_all()

class StreamingHandler(server.BaseHTTPRequestHandler):
    def do_GET(self):
        if self.path == '/':
            self.send_response(301)
            self.send_header('Location', '/index.html')
            self.end_headers()
        elif self.path == '/index.html':
            content = PAGE.encode('utf-8')
            self.send_response(200)
            self.send_header('Content-Type', 'text/html')
            self.send_header('Content-Length', len(content))
            self.end_headers()
            self.wfile.write(content)
        elif self.path == '/stream.mjpg':
            self.send_response(200)
            self.send_header('Age', 0)
            self.send_header('Cache-Control', 'no-cache, private')
            self.send_header('Pragma', 'no-cache')
            self.send_header('Content-Type', 'multipart/x-mixed-replace; boundary=FRAME')
            self.end_headers()
            try:
                while True:
                    with output.condition:
                        output.condition.wait()
                        frame = output.frame
                    self.wfile.write(b'--FRAME\r\n')
                    self.send_header('Content-Type', 'image/jpeg')
                    self.send_header('Content-Length', len(frame))
                    self.end_headers()
                    self.wfile.write(frame)
                    self.wfile.write(b'\r\n')
            except Exception as e:
                logging.warning(
                    'Removed streaming client %s: %s',
                    self.client_address, str(e))
        else:
            self.send_error(404)
            self.end_headers()

class StreamingServer(socketserver.ThreadingMixIn, server.HTTPServer):
    allow_reuse_address = True
    daemon_threads = True

###  Starts here
available_cameras = Picamera2.global_camera_info()

for cam in range(len(available_cameras)):
    print(f'---- Details for camera {cam}')
    picam2 = Picamera2(cam)
    print(f'Camera: {available_cameras[cam]["Model"]}')
    print(picam2.sensor_modes)
    print(picam2.sensor_resolution)
    print(picam2.create_video_configuration())
    picam2.close()
    print('\n\n\n')

picam2 = Picamera2(1)
# picam2.configure(picam2.create_video_configuration())
picam2.configure(picam2.create_video_configuration({"format": "MJPEG"}))
output = StreamingOutput()
picam2.start_recording(JpegEncoder(), FileOutput(output))

try:
    address = ('', 8081)
    server = StreamingServer(address, StreamingHandler)
    server.serve_forever()
finally:
    picam2.stop_recording()

Expected behaviour
That it works :-)  or maybe a workaround?
Console Output, Screenshots
I added a few spaces to the console output for ease of reading.
I notice that the sensor.modes information from the pi camera (lots of it)  is very different to that of the USB camera([{'format': 'MJPEG'}, {'format': 'YUYV'}]).
The output using picam2.configure(picam2.create_video_configuration()) or
picam2.configure(picam2.create_video_configuration({"format": "MJPEG"}))
[43:40:01.815888245] [7540]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
[43:40:01.891635938] [7541]  WARN RPI vc4.cpp:383 Mismatch between Unicam and CamHelper for embedded data usage!
[43:40:01.893642427] [7541]  INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media3 and ISP device /dev/media0
[43:40:01.894019715] [7541]  INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'

---- Details for camera 0
[43:40:01.974919645] [7540]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
[43:40:02.047390862] [7544]  WARN RPI vc4.cpp:383 Mismatch between Unicam and CamHelper for embedded data usage!
[43:40:02.049173812] [7544]  INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media3 and ISP device /dev/media0
[43:40:02.049286571] [7544]  INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'

Camera: imx219

[43:40:02.067818512] [7540]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-XBGR8888 (1) 640x480-SBGGR10_CSI2P
[43:40:02.068869751] [7544]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 640x480-SBGGR10_1X10 - Selected unicam format: 640x480-pBAA
[43:40:02.092751166] [7540]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-XBGR8888 (1) 1640x1232-SBGGR10_CSI2P
[43:40:02.093790374] [7544]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 1640x1232-SBGGR10_1X10 - Selected unicam format: 1640x1232-pBAA
[43:40:02.130956077] [7540]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-XBGR8888 (1) 1920x1080-SBGGR10_CSI2P
[43:40:02.132345645] [7544]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 1920x1080-SBGGR10_1X10 - Selected unicam format: 1920x1080-pBAA
[43:40:02.186451899] [7540]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-XBGR8888 (1) 3280x2464-SBGGR10_CSI2P
[43:40:02.187829697] [7544]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 3280x2464-SBGGR10_1X10 - Selected unicam format: 3280x2464-pBAA
[43:40:02.261862148] [7540]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-XBGR8888 (1) 640x480-SBGGR8
[43:40:02.276421161] [7544]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 640x480-SBGGR8_1X8 - Selected unicam format: 640x480-BA81
[43:40:02.334499977] [7540]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-XBGR8888 (1) 1640x1232-SBGGR8
[43:40:02.335554237] [7544]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 1640x1232-SBGGR8_1X8 - Selected unicam format: 1640x1232-BA81
[43:40:02.380179080] [7540]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-XBGR8888 (1) 1920x1080-SBGGR8
[43:40:02.381506306] [7544]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 1920x1080-SBGGR8_1X8 - Selected unicam format: 1920x1080-BA81
[43:40:02.444123668] [7540]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-XBGR8888 (1) 3280x2464-SBGGR8
[43:40:02.445836931] [7544]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 3280x2464-SBGGR8_1X8 - Selected unicam format: 3280x2464-BA81
[{'format': SRGGB10_CSI2P, 'unpacked': 'SRGGB10', 'bit_depth': 10, 'size': (640, 480), 'fps': 103.33, 'crop_limits': (1000, 752, 1280, 960), 'exposure_limits': (75, None)}, {'format': SRGGB10_CSI2P, 'unpacked': 'SRGGB10', 'bit_depth': 10, 'size': (1640, 1232), 'fps': 41.85, 'crop_limits': (0, 0, 3280, 2464), 'exposure_limits': (75, 11766829, None)}, {'format': SRGGB10_CSI2P, 'unpacked': 'SRGGB10', 'bit_depth': 10, 'size': (1920, 1080), 'fps': 47.57, 'crop_limits': (680, 692, 1920, 1080), 'exposure_limits': (75, 11766829, None)}, {'format': SRGGB10_CSI2P, 'unpacked': 'SRGGB10', 'bit_depth': 10, 'size': (3280, 2464), 'fps': 21.19, 'crop_limits': (0, 0, 3280, 2464), 'exposure_limits': (75, 11766829, None)}, {'format': SRGGB8, 'unpacked': 'SRGGB8', 'bit_depth': 8, 'size': (640, 480), 'fps': 103.33, 'crop_limits': (1000, 752, 1280, 960), 'exposure_limits': (75, 11766829, None)}, {'format': SRGGB8, 'unpacked': 'SRGGB8', 'bit_depth': 8, 'size': (1640, 1232), 'fps': 41.85, 'crop_limits': (0, 0, 3280, 2464), 'exposure_limits': (75, 11766829, None)}, {'format': SRGGB8, 'unpacked': 'SRGGB8', 'bit_depth': 8, 'size': (1920, 1080), 'fps': 47.57, 'crop_limits': (680, 692, 1920, 1080), 'exposure_limits': (75, 11766829, None)}, {'format': SRGGB8, 'unpacked': 'SRGGB8', 'bit_depth': 8, 'size': (3280, 2464), 'fps': 21.19, 'crop_limits': (0, 0, 3280, 2464), 'exposure_limits': (75, 11766829, None)}]

(3280, 2464)

{'use_case': 'video', 'transform': <libcamera.Transform 'identity'>, 'colour_space': <libcamera.ColorSpace 'Rec709'>, 'buffer_count': 6, 'queue': True, 'main': {'format': 'XBGR8888', 'size': (1280, 720)}, 'lores': None, 'raw': {'format': 'SBGGR10_CSI2P', 'size': (1280, 720)}, 'controls': {'NoiseReductionMode': <NoiseReductionModeEnum.Fast: 1>, 'FrameDurationLimits': (33333, 33333)}, 'display': 'main', 'encode': 'main'}

---- Details for camera 1
[43:40:02.739877953] [7540]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
[43:40:02.834190398] [7548]  WARN RPI vc4.cpp:383 Mismatch between Unicam and CamHelper for embedded data usage!
[43:40:02.836145065] [7548]  INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media3 and ISP device /dev/media0
[43:40:02.836309438] [7548]  INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'

Camera: Microsoft LifeCam HD-3000: Mi

[{'format': 'MJPEG'}, {'format': 'YUYV'}]

(1280, 720)

{'use_case': 'video', 'transform': <libcamera.Transform 'identity'>, 'colour_space': <libcamera.ColorSpace 'Rec709'>, 'buffer_count': 6, 'queue': True, 'main': {'format': 'XBGR8888', 'size': (1280, 720)}, 'lores': None, 'raw': None, 'controls': {}, 'display': 'main', 'encode': 'main'}

[43:40:03.056194782] [7540]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
[43:40:03.130713790] [7552]  WARN RPI vc4.cpp:383 Mismatch between Unicam and CamHelper for embedded data usage!
[43:40:03.132523094] [7552]  INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media3 and ISP device /dev/media0
[43:40:03.132719551] [7552]  INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'
[43:40:03.159512706] [7540]  INFO Camera camera.cpp:1033 configuring streams: (0) 1280x720-MJPEG
Traceback (most recent call last):
  File "/home/pi/videostream/./videostream-lite.py", line 103, in <module>
    picam2.start_recording(JpegEncoder(), FileOutput(output))
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1597, in start_recording
    self.start_encoder(encoder, output, pts=pts, quality=quality, name=name)
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1518, in start_encoder
    _encoder.format = streams[name]['format']
  File "/usr/lib/python3/dist-packages/picamera2/encoders/encoder.py", line 156, in format
    formats.assert_format_valid(value)
  File "/usr/lib/python3/dist-packages/picamera2/formats.py", line 39, in assert_format_valid
    raise ValueError(f"Invalid format: {fmt}. Valid formats are: {ALL_FORMATS}")
ValueError: Invalid format: MJPEG. Valid formats are: {'NV21', 'YUYV', 'R12', 'RGB888', 'R10', 'R8_CSI2P', 'SRGGB10', 'SGBRG12', 'SGRBG8', 'SGBRG12_CSI2P', 'SGBRG10_CSI2P', 'SGRBG12_CSI2P', 'R12_CSI2P', 'SRGGB12_CSI2P', 'NV12', 'BGR888', 'SGRBG12', 'SGBRG8', 'SRGGB12', 'SGBRG10', 'SRGGB10_CSI2P', 'UYVY', 'VYUY', 'YVYU', 'SBGGR12_CSI2P', 'XRGB8888', 'R8', 'YVU420', 'XBGR8888', 'SGRBG10', 'SBGGR10', 'SBGGR10_CSI2P', 'SGRBG10_CSI2P', 'SBGGR12', 'SRGGB8', 'SBGGR8', 'R10_CSI2P', 'YUV420'}

The error using picam2.configure(picam2.create_video_configuration({"format": "YUYV"}))
[44:35:30.213029403] [8098]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
[44:35:30.310570269] [8110]  WARN RPI vc4.cpp:383 Mismatch between Unicam and CamHelper for embedded data usage!
[44:35:30.312305189] [8110]  INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media3 and ISP device /dev/media0
[44:35:30.312428416] [8110]  INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'
[44:35:30.337001871] [8098]  INFO Camera camera.cpp:1033 configuring streams: (0) 1280x720-YUYV
Traceback (most recent call last):
  File "/home/pi/videostream/./videostream-lite.py", line 104, in <module>
    picam2.start_recording(JpegEncoder(), FileOutput(output))
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1597, in start_recording
    self.start_encoder(encoder, output, pts=pts, quality=quality, name=name)
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1522, in start_encoder
    min_frame_duration = self.camera_ctrl_info["FrameDurationLimits"][1].min
KeyError: 'FrameDurationLimits'

Hardware :
Pi 3B+ Glamor enabled Bullseye 64

Hi, I'm afraid support for USB cameras is very limited, and there are no plans to extend support for them.

Understood.  To what extent is there support for USB cameras?
I'm asking only so I don't go down a rabbit hole of investigation.  I can (and have) handled USB cameras with openCV  but was hoping to avoid that due to the various problems getting openCV to install on pi's of different stripes.
In other words - even experienced folks may have to try several techniques to get openCV installed.  My program is aimed at inexperienced folks :-)
Probably what I'll do is create a "lite" version just for dedicated pi cameras.

I think the support extends to getting frames out of USB cameras, and displaying them in the slow (non-EGL accelerated) preview. I think you can save it as a JPEG as well (which obviously doesn't need to do an extra JPEG encode now). I use USB cams mostly for testing multi-camera functionality without requiring a compute module!
You can't do "video encode" so far as I know, though there's a chance you could make something work by tossing the JPEG frames at the base Encoder class, for which encode is a no-op. I suppose that might even allow you to stream them, though I don't think USB cams are sufficiently important to us to devote resources to that.
I recommend installing OpenCV from apt (sudo apt install python3-opencv, I think). I've had no end of trouble installing from other sources, where it goes off and spends a day compiling stuff and then failing at the final hurdle. I would install Qt from apt as well, otherwise it can assume a different version of OpenCV from what you have (if you didn't get OpenCV from apt). It's all a bit of a minefield.


Split Vsphere login URL to its parts

Change Overview
Instead of getting one login url, construct login url by its parts.
Users will be asked to provide endpoint, username and password.
Pull request type
Please check the type of change your PR introduces:

[ ] Work in Progress
[ ] Refactoring (no functional changes, no api changes)
[ ] Trivial/Minor
[ ] Bugfix
[X] Feature
[ ] Documentation

I'd prefer to use https://golang.org/pkg/net/url/?m=all#URL if possible rather than concatinating these fields ourselves


Error on php 7.4

I upgraded my php version to 7.4 and I am running an application built with Laravel 5.6 using "sentry/sentry-laravel": "^0.11.0".
When I run php artisan in the command line I got this error:
In Client.php line 1551:
Undefined variable: version
I try to following the answer in this stackoverflow and it's work.
https://stackoverflow.com/questions/59155247/where-to-find-this-client-php-laravel

Closing this issue because it is quite old and it has been a long time since there was any activity, if there is still a problem please open a new issue.


resloved the issue In Logo Link

Description
This PR fixes #462
Previously when someone click on "OS-Code" logo it reload the page even when the user present in the index.html page.
Now the issue has been resolved
Notes for Reviewers
Now if you click on logo then it will not load the page and make the website more effective
Previous
https://github.com/OSCode-Community/OSCodeCommunitySite/assets/101205226/9a54363b-cd82-4f0d-b5df-2eed6493b33b
Now
https://github.com/OSCode-Community/OSCodeCommunitySite/assets/101205226/59c4b868-ab31-41be-b1ea-12e9dc433883

Great! Thanks @parasss19


Automated documentation generator

At the moment it is tedious to maintain the documentation, since it needs to be handwritten from scratch. Function definitions and explanations are repeated and as a result the documentation usually lags behind the actual code.
It would be convenient to have a script that automatically renerates/supplements .rst files in the doc folder from the docstrings in the source code. For example, an include statement in the .rst files might indicate the julia source file for which the docstrings and the calling signatures should be included. Probably we only want to include the exported functions in the user documentation.
Simply running the script then incorporates the docstrings for the appropriate functions in the corresponding documentation file (in restructured text).

It seems that the documentation issue is finally resolved, thanks to everyone who worked on this! I will close this general issue; if anything specific comes up it can be addressed in a separate issue.


Need to specify that left shift is modulo number of bits in the left operand

Currently, this documentation doesn't specify what happens when you left shift a number more than the number of bits in the number, e.g., left shift a 64 bit long 66 times. I was surprised to learn that this doesn't just keep shifting in 0s from the right 66 times but rather has the same effect as shifting the number 2 times, i.e., if x is a 64 bit long then x << 66 == x<<2. The documentation should call that out.
BTW: This is also left out in the Microsoft C++ documentation but the C++ language standard actually requires that the shift is modulo number of bits in the left operand.
Regards,
Martin

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 02b8f7c2-379e-7876-0d36-25b06a294baa
Version Independent ID: 2410c828-0c66-9efe-ae87-9b07708aa731
Content: Bitwise and shift operators - C# reference
Content Source: docs/csharp/language-reference/operators/bitwise-and-shift-operators.md
Product: dotnet-csharp
Technology: csharp-language-reference
GitHub Login: @pkulikov
Microsoft Alias: wiwagn

@mjess25 documentation has the section about it with the example:
https://www.nu.nl/economie/6169300/meer-amerikaanse-sancties-tegen-gaspijpleiding-nord-stream-2.html
Or you're looking for something else?

Thanks for starting this conversation.
@mjess25 Can you let us know if the referenced article provides the information you sought?

Hi Petr,
The link you sent me is a news article in Dutch, is that what you meant to send?
Regards,
Martin
From: Petr Kulikov @.>
Sent: Friday, December 10, 2021 5:59 AM
To: dotnet/docs @.>
Cc: martin jessfamily.com @.>; Mention @.>
Subject: Re: [dotnet/docs] Need to specify that left shift is modulo number of bits in the left operand (Issue #27486)
@mjess25https://github.com/mjess25 documentation has the section about it with the example:
https://www.nu.nl/economie/6169300/meer-amerikaanse-sancties-tegen-gaspijpleiding-nord-stream-2.html
Or you're looking for something else?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dotnet/docs/issues/27486#issuecomment-990995946, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AG3VBAELPUWJBKZISTJDXWDUQIBTFANCNFSM5JXX2LIQ.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@mjess25 No, that was my mistake, sorry. Please check the updated message:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators#shift-count-of-the-shift-operators

Ah, got it you’re right, it is described there.
Might be worth adding a forward reference from the shift section to the shift count section though, I think other developers than me also do the occasional lookup where you do an online search, hop to that specific section and read just that and then go back to the coding. I’m new to C# so I do that a lot as I’m learning. Just a suggestion.
Regards,
Martin
From: Petr Kulikov @.>
Sent: Saturday, December 11, 2021 2:04 AM
To: dotnet/docs @.>
Cc: martin jessfamily.com @.>; Mention @.>
Subject: Re: [dotnet/docs] Need to specify that left shift is modulo number of bits in the left operand (Issue #27486)
@mjess25https://github.com/mjess25 No, that was my mistake, sorry. Please check the updated message:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators#shift-count-of-the-shift-operators
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dotnet/docs/issues/27486#issuecomment-991583323, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AG3VBAGKAUFI6WRD2FHPUGTUQMOY5ANCNFSM5JXX2LIQ.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@mjess25 hm... there is a forward reference in the first sentence:

"...the number of bits is defined by its right-hand operand" is a link

@mjess25 and the last sentence in the section explicitly references that section again:

@mjess25 #27516 improves the article

Thanks Petr, much appreciated!
From: Petr Kulikov @.>
Sent: Sunday, December 12, 2021 11:14 AM
To: dotnet/docs @.>
Cc: martin jessfamily.com @.>; Mention @.>
Subject: Re: [dotnet/docs] Need to specify that left shift is modulo number of bits in the left operand (Issue #27486)
@mjess25https://github.com/mjess25 #27516https://github.com/dotnet/docs/pull/27516 improves the article
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dotnet/docs/issues/27486#issuecomment-991954326, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AG3VBAF7XRELF7NAIKFZQALUQTYALANCNFSM5JXX2LIQ.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Allow to run system tests against an external Pulsar Cluster

@cbornet  PTAL
probably some tests will fail in a real env, I think we should make some options configurable: connections timeouts, await assertion wait time.. I'll do it in another PR once we have the whole pipeline working well


Validate data points and make API-key overridable in BaseScript

This change is

Awaiting on other pending changes before merging.


SqlContext has no option to configure platforms

The SqlContext's constructor hard-codes three platforms and provides no options to customise the desired plugins and therefore used platforms:
public SqlContext(Configuration configuration) throws SQLException {
        Configuration configuration1 = configuration.fork(String.format("SqlContext(%s)", configuration.getName()));

        wayangContext = new WayangContext(configuration1)
                .withPlugin(Java.basicPlugin())
                .withPlugin(Spark.basicPlugin())
                .withPlugin(Postgres.plugin());

        calciteSchema = SchemaUtils.getSchema(configuration);
    }

A proposed solution would be to change SqlContext so that it extends WayangContext, providing the desired functionality.

@juripetersen Indeed. Can you go ahead with your proposed solution and create a PR?

@kbeedkar the PR is now linked.


fix 'subject' name in service-account claim

Hi
I noticed an issue in this library when trying to access the GSuite Admin Directory API.
Basically all requests to e.g. https://www.googleapis.com/admin/directory/v1/groups fail (with 403) if the JWT Claim requesting an access-token does not include the sub field — which it of course never does if the field is named subject ;)
Looking at Google's documentation I'm pretty confident that sub instead of subject is valid/required in general.

Codecov Report

Merging #132 into master will not change coverage.
The diff coverage is 66.66%.

@@           Coverage Diff           @@
##           master     #132   +/-   ##
=======================================
  Coverage   58.65%   58.65%
=======================================
  Files          10       10
  Lines         890      890
=======================================
  Hits          522      522
  Misses        368      368

Flag
Coverage Δ

#stable
58.65% <66.66%> (ø)

Impacted Files
Coverage Δ

src/service_account.rs
69.60% <66.66%> (ø)

Continue to review full report at Codecov.

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

Thank you, and sorry for the inconvenience! Not sure when this changed, I am sure it worked at some point in the past :grimacing:

Haha, no problem, thanks for your work!
Finding and fixing this bug was still much less work than implementing this authentication-flows on my own ;)


Fix: adapt to changes in the sample code

Old requests are not working anymore because:
String as key instead of UUID
https://github.com/cap-js/incidents-app/blob/b610b8dbcdf39efe4dee6861149c644d3c5c589a/db/schema.cds#L9-L10
new sample data
https://github.com/cap-js/incidents-app/blob/b610b8dbcdf39efe4dee6861149c644d3c5c589a/db/data/sap.capire.incidents-Customers.csv

ci won't succeed from fork → force merge


X xiwi command doesn't load

Please paste the output of the following command here: sudo edit-chroot -all
crosh> shell
chronos@localhost / $ sudo edit-chroot -all
name: precise
encrypted: no
Entering /mnt/stateful_partition/crouton/chroots/precise...
crouton: version 1-20160715134041~master:0dc76a22
release: precise
architecture: amd64
xmethod: xiwi
targets: xiwi,xorg,xfce
host: version 8530.24.0 (Official Build) dev-channel panther
kernel: Linux localhost 3.8.11 #1 SMP Wed Jul 20 04:19:49 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux
freon: yes
Not unmounting /mnt/stateful_partition/crouton/chroots/precise as another instance is using it.
chronos@localhost / $ ```

#### Please describe your issue: When I try to enter xiwi using: sudo startxfce4 -X xiwi the window opens but doesn't load.  When I enter using only: sudo startxfce4 there is no problem.
![screenshot 2016-07-23 at 3 33 04 pm]
![screenshot 2016-07-23 at 3 33 04 pm](https://cloud.githubusercontent.com/assets/12481134/17085604/cff4571e-51dc-11e6-87af-2e7bb6249815.png)

#### If known, describe the steps to reproduce the issue:
I open Crosh
I type: shell
then: sudo startxfce4 -X xiwi

The x must be a capital "X"


Setting base_url breaks Datasette in surprising ways

https://github.com/datasette/datasette-write-ui/blob/d7c4d54b1d808f7a292af83dce74b83f6a7aaf3f/datasette_write_ui/__init__.py#L16-L23
The problem with setting base_url is that it over-rides the Datasette base_url variable, set here:  https://github.com/simonw/datasette/blob/943df09dcca93c3b9861b8c96277a01320db8662/datasette/app.py#L1209
Which results in things like URLs to static assets coming out as -/static/ instead of /-/static.

Here's the commit that caused the problem: https://github.com/datasette/datasette-write-ui/commit/9a7b1c9c314592e4986ac8696d926b87715c89b4

Merged and deploy your fix in 0.0.1a8, sorry about that!


testing addition of graceful shutdown handler

Hey @stevehu ,
I'm sure you've looked into integrating the graceful shutdown handler into l4j before.. was just wondering why it's been omitted... was it for performance reasons? Or is there another reason?
Thanks

Nicely done. We should put this on the server. It is in my mind all the time but never got it implemented.

We certainly need a performance test comparison before merging though. From just looking at the source it could potentially add a fair bit of overhead


Add support for AsciiDoctor extensions

I propose adding a feature which automatically detects which AsciiDoctor extensions are installed, and (if they make sense in the context of Hugo) enable them.
My motivation for this is that I want to use asciidoctor-bibtex.   This extension allows BibTeX files to be used from within an AsciiDoc file, and to render citations and bibliographies.  But this change will also be effective for other extensions, such as asciidoctor-diagram.
I am busy working on a solution for this and would be able to submit a pull request soonish.
Related to #3330 and #2996.

WIP result attached.  asciidoctor-bibtex fails when a page does not contain a bibliography, so it can't be enabled for every page.  Will add logic to only enable an extension if certain criteria in the document is met.

Submitted PR #5692

What this really comes down to is allowing control over the -r flag of the asciidoctor command. I wouldn't limit the acceptable values to a fixed set since the catalog of extensions is open ended.

Sorry for the slow reply.  Busy planning a wedding and things are a bit crazy.
I agree with you.  I was hoping that this would be a simple fix (I have never developed in Go before), but then I couldn't figure out how to access elements specified within the document.  I.e. how to get the value which must be passed to the -r parameter.  Matters are further complicated by the fact that the extension in which I am interested (asciidoctor-bibtex) fails the document conversion if the extension is specified, but not used within the source document.  So it cannot be "on by default".

how to get the value which must be passed to the -r parameter

I would imagine it would come from the Hugo configuration object.

Great, thanks for the tip.  I'll have a look at this when I next have a chance.

How can this issue be marked as stale when there's an open PR that's never been addressed?

PR #5692 is still open.

What is the status of PR #5692?

@celtic-coder Seems to be stale. There is newer one with ongoing discussion: #6561

Hi @snipem,
Yes, I have been keeping an eye on that one as well. Thanks for the heads up! 🙂
Kind Regards,
Liam


Support the use of variables inside of if conditional blocks

Is your feature request related to a problem? Please describe.
When using variables inside of an if conditional block the parser will return an error
{{#if` isDelivered}} Delivered on {{deliveredAt}} {{/if}}
At the moment this is producing the error "Unexpected varid token: "deliveredAt""
Describe the solution you'd like
Allow the use of variables inside of if conditional blocks.
Describe alternatives you've considered
None exist as far as I know apart from not using an if conditional and changing deliveredAt to a String type with some sort of place holder text while isDelivered is false.

Thinking about this some more, perhaps as a workaround you could use an Ergo block?
https://docs.accordproject.org/docs/markup-ergo.html
That would allow you to conditionally insert text into the contract?

Is your feature request related to a problem? Please describe.
When using variables inside of an if conditional block the parser will return an error
{{#if` isDelivered}} Delivered on {{deliveredAt}} {{/if}}
At the moment this is producing the error "Unexpected varid token: "deliveredAt""
Describe the solution you'd like
Allow the use of variables inside of if conditional blocks.
Describe alternatives you've considered
None exist as far as I know apart from not using an if conditional and changing deliveredAt to a String type with some sort of place holder text while isDelivered is false.

This also possibly relates to #521.
@jbroudou Could you please share the model that you are expecting?
Currently {{#if}}...{{/if}} blocks correspond to Boolean variables. So let's say you have a model like this:
asset MyClause extends AccordClause {
  o Boolean isDelivered
  o DateTime deliveredAt
}

When isDelivered is true you would get the deliveredAt value, but what do you expect the contract data to be if isDeliever is false ?

Also this is somewhat of a duplicate of #17

@jeromesimeon The contract is a simple proof of concept
asset InspectionContract extends AccordContract {
  o AccordParty buyer
  o AccordParty seller
  o Boolean isDelivered
  o DateTime deliveredAt optional
  o DateTime inspectionCutOff optional
}```

When isDelivered is false I would expect deliveredAt to have no value and the template would not generate the statement that includes deliveredAt

A similar feature is supported in the upcoming new parser using the notion of optional block:
bash-3.2$ more grammar.tem.md
This is a contract between {{seller}} and {{buyer}} for the amount of {{amount}} {{currency}}.{{#optional forceMajeure}}
This applies even in the presence of force majeure with a discount of {{rate}}%.{{/optional}}
bash-3.2$ more sample.md
This is a contract between "Steve" and "Betty" for the amount of 3131.0 EUR.
This applies even in the presence of force majeure with a discount of 10.5%.
bash-3.2$ more model.cto
namespace org.test

import org.accordproject.cicero.contract.* from https://models.accordproject.org/cicero/contract.cto
import org.accordproject.money.CurrencyCode from<EMAIL_ADDRESS>
/**
 * The template model
 */
concept DiscountRate {
  o Double rate
}
asset MyClause extends AccordClause {
  o String seller
  o String buyer
  o Double amount
  o CurrencyCode currency
  o DiscountRate forceMajeure optional
}
bash-3.2$ ~/git/markdown-transform/packages/markdown-cli/index.js transform --to data --grammar grammar.tem.md --ctoFiles model.cto --input sample.md
5:17:14 PM - info:
{
  "$class": "org.test.MyClause",
  "seller": "Steve",
  "buyer": "Betty",
  "amount": 3131,
  "currency": "EUR",
  "forceMajeure": {
    "$class": "org.test.DiscountRate",
    "rate": 10.5
  },
  "clauseId": "049f70d6-feff-4c11-99df-d43076d3dff3"
}
bash-3.2$

@jbroudou Would that address your use case?

@jeromesimeon I'm assuming that the optional block in your example will only render when forceMajeure has a "truthy" value? In which case, yes that would address my use case.

hi @jbroudou No this is based on the presence or absence of the optional value. There is no easy way to correlate the truthful value of one field to another.
Concretely, I do not know how to handle the cases:

isDelivered=true but deliveredAt=null
isDevlivered=false but deliveredAt="somedate"

So I am not sure we would want to support that use case as is.
Suggestions for how to handle it or any feedback welcome.

@jeromesimeon I've had a look at #17. Can you clarify what you mean by present or absent?

DiscountRate forceMajeure optional

In this example how would forceMajeure be absent?

@jeromesimeon I've had a look at #17. Can you clarify what you mean by present or absent?

DiscountRate forceMajeure optional

In this example how would forceMajeure be absent?

I will use the forceMajeure example above. For optional fields, it can either be present, with the following JSON serialization:
{
  "$class": "org.test.MyClause",
  "seller": "Steve",
  "buyer": "Betty",
  "amount": 3131,
  "currency": "EUR",
  "forceMajeure": {
    "$class": "org.test.DiscountRate",
    "rate": 10.5
  },
  "clauseId": "049f70d6-feff-4c11-99df-d43076d3dff3"
}

Or absent, with the following JSON serialization:
{
  "$class": "org.test.MyClause",
  "seller": "Steve",
  "buyer": "Betty",
  "amount": 3131,
  "currency": "EUR",
  "forceMajeure": null,
  "clauseId": "049f70d6-feff-4c11-99df-d43076d3dff3"
}```

Thanks for the clarification. This would indeed address my use case.

Great. Thanks for the feedback. This feature should go out with the next Cicero release.

Support for optionals is now available in Cicero 0.21.


Parameter names synced (from fsi to fs file)

This PR actually fix issue #127
I did sync parameter names from fsi to fs file in order to save backward compatibility
but would be nice to have an additional pair of eyes before merge and release

LGTM


#703 update iconography resource page to link to google drive folder

thanks @abelhancock and @naoki-evan-hisamoto — merging this — note that the SVG folder is empty:

Are there more user-friendly names we can use? Looks difficult to find things in here:

thank you guys! I'm gonna use them :)

@plhnk yep, this is definitely not ideal.
Issues:

Naming the icons semantically isn't very intuitive for some icons because of multiple meanings/uses per icon.
We haven't been able to find a good system/tool that allows for keyword tagging and searching/filtering.
Added criteria for said tool is the ability to export svg and png (bonus if we can set colors)

Solution:
The recommended solution (issue #709) is to build something ourselves (as simple as possible while meeting the needs) that allows user to search/filter and download icons directly on blueprints.
Temporary solution is to host these icons in drive and "tag" them using file descriptions. This will make them searchable (eg. "first place" or "cup" would pull up lr-icon-176 ☝).
Even more temporary, it's easier to browse these icons if you download the entire folder and browse them in your file system.


Mapping Array of Arrays having models in them

I want to map something like this, I am stuck
“list”: [
[{
“name”: “Amy",
“age”: “19”
}]
]

struct User:Unboxable{
 var name:String
 var age:String
    init(unboxer: Unboxer) throws {
        name:String = try unboxer.unbox(key: "name")
        age:String =  unboxer.unbox(key: "age")
 }
}
struct NastyHackModel:Unboxable{
    var arraysOfUsers:[[User]?]?
   init(unboxer: Unboxer) throws {
        contentId = try unboxer.unbox(key: "contentId")
    }
}

self.nastyArray   = try! Unboxer.performCustomUnboxing(dictionary: JSONHERE, closure: { unboxer -> [NastyHackModel] in
                do {
                   return   try unboxer.unbox(keyPath: "list")
                } catch {
                    print("An error occurred: \(error) ")
                }
                return []
            })


Fix description for array-like fields

Fixes #178

I think this also applies to other field - in particular had an error with json_schema now here

@sydney-runkle , I am a bit confused that 313 line is uncovered: revert it and the newly added test will fail as expected. May be it is an issue with codecov?

Huh, odd! Yeah, maybe an issue. I'll see if I can try to skip that check for this PR.

Ah ok I think perhaps this is because we changed a line that was not covered before?


Remove duplicate azuredeploy.json

There's one in the root and in the deployment folder. We should use only one, and have the deployment folder reference the one at the root.

@lindydonna This is as designed as we want to make sure that we have a project for the ARM Template as there is some great tooling available to test and modify the templates. The azuredeploy.json is required in the root for the Deploy to Azure button to function.
What I would prefer is to change the task of this to "Add Post Build step to copy ARM template to the repository root"

I have a PR that uses the root file in the VS project, and it works fine. I removed the version in the deployment folder.  That seems simpler than a post build step, no?

Fixed in  b40338fb.


refactoring max file size

References

https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/web/servlet/MultipartProperties.html
https://github.com/DSpace/dspace-angular/pull/577#pullrequestreview-384052998

Description
File uploads were limited to 1MB. This is because the incorrect configuration fields were used to determine the max size
Instructions for Reviewers
I've tested this by uploading a 6MB file based on master code and based on this PR
Checklist

[X] My PR is small in size
[X] My PR passes Checkstyle validation based on the Code Style Guide
[X] My PR passes all tests

Merging as this fixes the bug. I'm going to add in a followup PR (of just comments) to enhance the instructions here around overriding with local.cfg.


Remove statement about supporting node v12

Description

Node V12 is out of Support - the doc implies it is still supported and therefore ok for use with Zowe. Recommend similar comments be added for Node V12 as were done for Node V6 and V8. https://docs.zowe.org/stable/user-guide/install-nodejs-zos
Proof of V12 out of support here: https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_sm/s/760/ENUS5655-NJS/index.html&lang=en&request_locale=en
Pages to Update

Screenshots

Expected behavior

Additional context

The instructions about node v12 have been removed. Closing.


Bump to pytest-benchmark>=4.0.0.

Closes #65. Updates pytest-benchmark pinning to >=4.0.0 for compatibility with pytest>=7.2.0.

@bdice was this tested with the newer pytest-benchmark versions?  The reason for the tight pin is because this plugin uses some APIs in the rapids-pytest-benchmark code directly, which seem like they could change in newer versions.

@rlratzel I have not tested this, I only updated the pin. I am not familiar with this package or its test suite, and it doesn’t appear to have any CI configured. Would you be able to test this?

@rlratzel I have not tested this, I only updated the pin. I am not familiar with this package or its test suite, and it doesn’t appear to have any CI configured. Would you be able to test this?

Sure, I can test this. Turnaround time might be ~1 day though if that's okay.

I just submitted #68 , which includes these updates and was tested with pytest-benchmark 4.0.0, so I'll close this one. Please re-open if we need this merged separately.


Copilot comments search

Fixes #6460 (and #6650 #6776)

Thank you @yeojunh for your contributions! 🚀


Write final paper/presentation due 12/7

Hi, I'm really impressed with this well-constructed project!
Now I'm curious what papers or models did you refer to? Thanks!

Here's the paper
which includes our cited works. You can find everything else in
our README


[RUNTIME] FastRPC interface for Hexagon runtime

Co-authored-by: Ravishankar Kolachana<EMAIL_ADDRESS>Co-authored-by: Krzysztof Parzyszek<EMAIL_ADDRESS>

@FrozenGene

Thanks @kparzysz-quic @abhikran-quic ! It is merged now.


Add PHP runtime support

PHP has now been officially added to OpenWhisk.
https://github.com/apache/incubator-openwhisk/commit/9401f8b29ae2ddc470d9e543f0f790776ae0b028#diff-e3e2a9bfd88566b05001b02a3f51d286
We should add this as a supported runtime to the project. Here are the tasks that need completing...

Add new runtime module for PHP to existing list of runtimes here. Python example is a good source example to copy and modify. Update tests to include this new runtime.

Update docs with new runtime. This means README.md in this project repo and also framework docs.

Add examples for PHP + OpenWhisk to serverless/examples. Re-use one of the existing Python examples.

Add new serverless template to framework. This allows developers to scaffold a boilerplate PHP + OpenWhisk application from the command-line. Examples are listed here.

Added examples here: https://github.com/jthomas/examples/commit/c2f25d2a1635e592f37698354a4cc579e1084ef7

Update docs here: https://github.com/jthomas/serverless/commit/2da8f33bfc5c1d21bb1941de5fad97e7d07cc3ab

Once this version is released, need to open PRs to get changes back into framework.


one plus5 image picker from camera is not working

I have made application in that image picker from camera is not working. it is working fine for other devices.

@vartikaantino
Can you provide flutter doctor -v, plugin version you are using, a minimal complete reproducible code sample that shows the behavior you are reporting ?
Also, what do you mean by camera not working ? Does it throw any error while doing so ? If yes, can you provide the complete error log ?
Can you also try the image_picker plugin example on same device and see if you still get the same behavior of not working with it too ?

Hey ,
I am mentioning console log in case we capture image from camera in one plus 5.
Console log:
D/vndksupport(19827): Loading /vendor/lib64/hw/gralloc.msm8996.so from current namespace instead of sphal namespace.
The Flutter DevTools debugger and profiler on ONEPLUS A3003 is available at: http://<IP_ADDRESS>:9101?uri=http://<IP_ADDRESS>:57396/LSyOlnS5lnM=/
E/BpSurfaceComposerClient(19827): Failed to transact (-1)
E/BpSurfaceComposerClient(19827): Failed to transact (-1)
W/Binder (19827): Caught a RuntimeException from the binder stub implementation.
W/Binder (19827): java.lang.SecurityException: Permission Denial: writing com.android.providers.media.MediaProvider uri content://media/external/file from pid=19827, uid=10148 requires android.permission.WRITE_EXTERNAL_STORAGE, or grantUriPermission()
W/Binder (19827): at android.os.Parcel.createException(Parcel.java:1950)
W/Binder (19827): at android.os.Parcel.readException(Parcel.java:1918)
W/Binder (19827): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
W/Binder (19827): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
W/Binder (19827): at android.content.ContentProviderProxy.delete(ContentProviderNative.java:561)
W/Binder (19827): at android.content.ContentResolver.delete(ContentResolver.java:1813)
W/Binder (19827): at android.media.MediaScannerConnection$1.scanCompleted(MediaScannerConnection.java:83)
W/Binder (19827): at android.media.IMediaScannerListener$Stub.onTransact(IMediaScannerListener.java:61)
W/Binder (19827): at android.os.Binder.execTransact(Binder.java:752)

@darshankawar  please see this. this is error log when we pick image from camera and it will not come when we pick image from gallery

Closing this as duplicate of https://github.com/flutter/flutter/issues/87896


PowerToys Run: Random Suggestions/Inaccurate Results

Microsoft PowerToys version
0.63.0
Running as admin

[ ] Yes

Area(s) with issue?
PowerToys Run
Steps to reproduce

Two consecutive searches back to back produce different results and regularly suggest regularly searched apps (Youtube) instead of obeying the text in the search bar
✔ Expected Behavior
Expected Run to identify the text and produce accurate results as normal.
❌ Actual Behavior
Run offered varying results each occurrence becoming less consistent or predictable.
Other Software
Windows 11 21H2 (latest build)

Are you still experiencing this issue? /needinfo


Separated files for Snek and Statemine

[ ] docker-compose
[ ] project.yml

Snek will use most likely SubSquid


add github-actions

I add github-actions for Linux and Windows

Made changes based on recommendations.

@wp-xyz Could you accept the PR?

Again, you're PR will be renaming the source directory. I don't want that.

@wp-xyz I have done

@wp-xyz change src -> source

@wp-xyz  Will you accept the PR?

Not answer


Drag/Drop of tmp folder does nothing

Testing #33275

I have a folder called tmp and all it has in it is a json file:

When I drag/drop it to the explorer, nothing happens:

D/D of a folder without any content "fails" as well, but the tmp folder i have on disk has one file.
If i d/d the tmp folder to the editor space (NOT the Explorer), I get a prompt to save an existing workspace (I say No) and then the editor is restarted with tmp folder opened.

One more update... I can do File | Add Folder to Workspace and include the tmp folder or any empty folder.

@chrisdias I saw in the insiders 1.16 doc that the drag and drop now only works when dragging in the editor area (not the solution explorer like you are trying). See the docs here for open a folder via drag and drop

@ghiscoding I can drag folders into the Explorer to add to the existing workspace. What I can't do is drag this particular folder or empty folders.  Other folders can be dragged into the Explorer just fine.
@bpasero ?

This looks like an upstream issue with Electron/Chrome. I have seen the DND from external working funky under certain patterns (e.g. empty files).


Feedbacks on the love letter

[x] mention the fact that CSV is a collective idea
[x] add a clickbaity abstract
[x] Mention the non palindromic escape

@robindemourat I added a blurb on CSV being an free and open collective idea.

I did a few minor modification directly within this commit: https://github.com/medialab/xsv/commit/421b19204e9d94c836169f061806f3d197782cde


first version for BackgroundAction

Implements #24
Currently BackgroundAction is not a type but it can easily be in the future. Wherever Action is used it should be ActionType in the future.

Do you mind to create a proper GitHub review to show me where I missed docstrings?


Some MSVC/clang-cl build issues

Building  AbracaDABra.exe using MSVC or clang-cl has been very easy (compared to e.g. Welle-IO or Qt-DAB (yuk!)).
But I had some minor issues:

This triggers a warning in clang-cl:
bool muteRequest = m_muteFlag | m_stopFlag;        // false == do unmute, true == do mute
Shouldn't it be  bool muteRequest = m_muteFlag || m_stopFlag;? Same issue on line 791.
MSVC fails on lines like: #warning "Best ensemble to be implemented".
But a #pragma message ("Best ensemble to be implemented") works.
Looks like these are for internal use. So could they be dropped?

And PS, it would be nicer if the DAB date/time had seconds printed:
--- a/gui/mainwindow.cpp 2022-09-01 10:45:57
+++ b/gui/mainwindow.cpp 2022-09-01 12:43:24
@@ -694,7 +694,7 @@

 void MainWindow::updateDabTime(const QDateTime & d)
 {
-    timeLabel->setText(d.toString(QString("dddd, dd.MM.yyyy, hh:mm")));
+    timeLabel->setText(d.toString(QString("dddd, dd.MM.yyyy, hh:mm:ss")));
 }

bool muteRequest = m_muteFlag | m_stopFlag;        // false == do unmute, true == do mute
Shouldn't it be  bool muteRequest = m_muteFlag || m_stopFlag;? Same issue on line 791.

MSVC fails on lines like: #warning "Best ensemble to be implemented".
But a #pragma message ("Best ensemble to be implemented") works.
Looks like these are for internal use. So could they be dropped?

I would say that this is caused by strict compiler settings when warning leads to error.  Normally #warning should just do warning, but you are right, these are for me to remember, I will remove it to clean-up the compilation.

And PS, it would be nicer if the DAB date/time had seconds printed:
--- a/gui/mainwindow.cpp 2022-09-01 10:45:57
+++ b/gui/mainwindow.cpp 2022-09-01 12:43:24
@@ -694,7 +694,7 @@

 void MainWindow::updateDabTime(const QDateTime & d)
 {
-    timeLabel->setText(d.toString(QString("dddd, dd.MM.yyyy, hh:mm")));
+    timeLabel->setText(d.toString(QString("dddd, dd.MM.yyyy, hh:mm:ss")));
 }

No, if you try, you will see that is it not behaving as you would like, the update is not fast enough.

I forgot this issue: error C4716: 'SPIApp::parseAttributes': must return a value. Fixed by:
--- a/gui/spiapp.cpp 2022-07-26 11:29:08
+++ b/gui/spiapp.cpp 2022-09-01 13:12:30
@@ -614,4 +614,5 @@
     default:
         break;
     }
+    return nullptr;
 }

The same issue as above - compiler is too strict and interprets warnings as error. But it agree to remove this warning, SPI application code was just a trial that I did to remove from the repository. The code is not working and not used, I hope I will find some time to work on that in future.

I would say that this is caused by strict compiler settings when warning leads to error.

That's not it. MSVC does not parse a #warning statement.

I hate that compiler, always something special :-/

you will see that is it not behaving as you would like, the update is not fast enough.

I can see it jumps over a second often. But isn't that's due to rounding errors of the milli-sec part?

you will see that is it not behaving as you would like, the update is not fast enough.

I can see it jumps over a second often. But isn't that's due to rounding errors of the milli-sec part?

I would say it is because it gets updated approx. every 800ms. To make is running smoothly we would need probably half of this period. This would increase CPU load for nothing I would say. Still, with all the delays in the system it will not be precise time.

The new gui/soapysdrinpuyt.cpp does not compile due to the use of VLA. Errors:
gui/soapysdrinput.cpp(494): error C2956: usual deallocation function
'void operator delete[](void *,std::align_val_t) noexcept' would be chosen as placement deallocation function.
predefined C++ types (compiler internal)(62): note: see declaration of 'operator delete[]'
...
gui/soapysdrinput.cpp(600): error C2131: expression did not evaluate to a constant
gui/soapysdrinput.cpp(600): note: failure was caused by a read of a variable outside its lifetime
gui/soapysdrinput.cpp(600): note: see usage of 'len'
gui/soapysdrinput.cpp(603): error C3863: array type 'int16_t [len/4]' is not assignable

which I fixed by:
--- a/gui/soapysdrinput.cpp 2022-11-05 14:02:33
+++ b/gui/soapysdrinput.cpp 2022-11-05 14:57:03
@@ -491,14 +491,22 @@
     m_rxChannel = rxChannel;

     // we cannot produce more samples in SRC
+#ifdef _MSC_VER
+    m_filterOutBuffer = (float*) _aligned_malloc (sizeof(float)*SOAPYSDR_INPUT_SAMPLES*2, 16);
+#else
     m_filterOutBuffer = new ( std::align_val_t(16) ) float[SOAPYSDR_INPUT_SAMPLES*2];
+#endif
     m_src = new InputDeviceSRC(sampleRate);
 }

 SoapySdrWorker::~SoapySdrWorker()
 {
     delete m_src;
+#ifdef _MSC_VER
+    _aligned_free (m_filterOutBuffer);
+#else
     operator delete [] (m_filterOutBuffer, std::align_val_t(16));
+#endif
 }

 void SoapySdrWorker::run()
@@ -597,7 +605,7 @@
 #if SOAPYSDR_DUMP_INT16
         // dumping in int16
         float * floatBuf = (float *) buf;
-        int16_t int16Buf[len/sizeof(float)];
+        int16_t int16Buf[SOAPYSDR_INPUT_SAMPLES*2];
         for (int n = 0; n < len/sizeof(float); ++n)
         {
             int16Buf[n] = *floatBuf++ * SOAPYSDR_DUMP_FLOAT2INT16;

Could you please try with b24d853e018a019549df18fadb0a2e6952c011a6?

Works fine!

Great, I will leave this issue open for further incompatibilities of MSVC with C++ standard ;-)

Another minor issue which I continue here: Enabling MOTOBJECT_VERBOSE, the MOTDirectory class member is named
m_carousel (not carousel):
--- a/gui/motobject.cpp 2022-11-05 14:02:33
+++ b/gui/motobject.cpp 2023-01-04 14:31:35
@@ -400,7 +400,7 @@
     if (m_carousel->end() == it)
     {  // object does not exist in carousel - this should not happen for current directory
 #if MOTOBJECT_VERBOSE
-        qDebug() << "New MOT object" << transportId << "number of objects in carousel" << carousel->size();
+        qDebug() << "New MOT object" << transportId << "number of objects in carousel" << m_carousel->size();
 #endif
         // add new object to cache
         it = m_carousel->addMotObj(MOTObject(transportId));
@@ -560,7 +560,7 @@

 #if MOTOBJECT_VERBOSE
     qDebug() << "MOT directory carousel contents:";
-    for (MOTObjectCache::const_iterator it = carousel->cbegin(); it < carousel->cend(); ++it)
+    for (MOTObjectCache::const_iterator it = m_carousel->cbegin(); it < m_carousel->cend(); ++it)
     {
         qDebug("\tID: %d, isComplete = %d, body size = %lld, name = %s", it->getId(), it->isComplete(), it->getBody().size(), it->getContentName().toLocal8Bit().data());


Not all Attachment converted

We have around 300k attachments we have run the job for all records and job completed successfully  but some attachment are not converted into files .is there any criteria why it is not working .
is there a way to find those record which are not converted and if we can run the record again.why it is not working ..we might loos the data we can't do the testing for all 300k records.
quick help will really helpfull .
Thanks in advance

Could you please help me in this

Hi @rbhagat30,
Are any errors being reported in the Convert Attachments to Files Log object?
In my next release I'm addressing reportability of which records did and didn't get converted (and why). I can't give a definite ETA when that'll happen, but it's in the develop branch at the moment on github.

Hi Douglas,
I can not see any error ,that’s why  I am not able to find it out ☹
Please let me know if you have alternate way to do this.
Thanks
Rajni
From: Doug Ayers<EMAIL_ADDRESS>Sent: Wednesday, August 02, 2017 8:50 AM
To: DouglasCAyers/sfdc-convert-attachments-to-chatter-files<EMAIL_ADDRESS>Cc: Bhagat, Rajni<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [DouglasCAyers/sfdc-convert-attachments-to-chatter-files] Not all Attachment converted (#30) (External Email)
Hi @rbhagat30https://github.com/rbhagat30,
Are any errors being reported in the Convert Attachments to Files Log object?
In my next release I'm addressing reportability of which records did and didn't get converted (and why). I can't give a definite ETA when that'll happen, but it's in the develop branch at the moment on github.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/DouglasCAyers/sfdc-convert-attachments-to-chatter-files/issues/30#issuecomment-319556678, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AcEJ3r4MQ4UApY2tjDb1wd4D9rtu1DToks5sT-rngaJpZM4OmPoF.

Without any errors or log files to trace back an issue to, I'm not really sure how to help.
You might try Salesforce's own attachment conversion tool they made available in Summer '17 release: https://appexchange.salesforce.com/listingDetail?listingId=a0N3A00000EHAmyUAH
Sorry I couldn't be of more help on this issue


Prefix tags / releases with v

Is your feature request related to a problem? Please describe.
Currently there is no version transparency when installing tomato. The last acknowledged version number is v1.1.0 https://pkg.go.dev/github.com/tomatool/tomato?tab=overview. This makes readability around what version we have harder.

As you can see here, it picks up the last acknowledged version, then appends the date and commit for the latest release.
Describe the solution you'd like
I could be lost, but I believe v prefixing the tags will make this small problem go away.
Describe alternatives you've considered
I have not considered any, happy to hear if there are.
Additional context
N/A

Thank you @alileza


batch-track2

Looking at the file changes, it seems like there were sample test files generated that seem to be testing the API endpoints i.e. sdk/batch/arm-batch/samples/v7/typescript/src/poolDeleteSample.ts, sdk/batch/arm-batch/samples/v7/typescript/src/poolCreateSample.ts, etc. How were these sample files generated through autorest? Is this a new autorest feature or a specific flag that has to be configured?

I am curious as to how these changes are being tested. I am not completely familiar with the ARM SDK release/testing process, but is there any involvement the Batch team can take on this process? For instance, are we able to modify the https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/batch/arm-batch/test/sampleTest.ts file to create code coverage unit tests hitting some of the changes in the API or do we already have test coverage on these new changes?

I am curious as to how these changes are being tested. I am not completely familiar with the ARM SDK release/testing process, but is there any involvement the Batch team can take on this process? For instance, are we able to modify the https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/batch/arm-batch/test/sampleTest.ts file to create code coverage unit tests hitting some of the changes in the API or do we already have test coverage on these new changes?

These samples are generated from swagger examples. you can find the original swagger example file from the x-ms-original-file description https://github.com/Azure/azure-sdk-for-js/pull/20609/files#diff-1853bcdb32d49d01b5ef76ee1c74d3421fec27a74c1aa9abdba3f1030c6bb816R18
As we are not sure of the swagger example quality, we haven't change the generated samples into test directly. The sampleTest.ts is auto generated sample. You can add more test in it if you like. Maybe have a new file with a different name inside the same folder with sampleTest.ts. You may use the following step to run the test in your local.

see https://github.com/Azure/azure-sdk-for-js/blob/main/CONTRIBUTING.md#testing for futher information.


Difference not clear of LTSC & SAC in examples

Section "How to tell whether a server is running an LTSC or SAC release"
I don't see clearly the difference between the two examples (one is Datacenter edition the other Standard).
Please clarify a bit more precise the different in output.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: dd87c102-6f5d-376b-4665-98ff94b4ca41
Version Independent ID: f6140fb6-30bc-e9e7-463a-bf5bfc926165
Content: Servicing Channels
Content Source: WindowsServerDocs/get-started-19/servicing-channels-19.md
Product: windows-server
Technology: server-general
GitHub Login: @JasonGerend
Microsoft Alias: jgerend

#assign:IngridAtMicrosoft

#assign:xelu86

Hey trudolf-msft,
Thanks again for contacting us, we value your feedback.
Based on the time this issue was generated, the page in question has gone through several updates and the How to tell whether a server is running an LTSC or AC release section has been clarified.
We will now be closing this thread. Thank you and have a most pleasant day.
#please-close


Document how to make build.rs write to the terminal

Documenting the solution mentioned here: https://github.com/rust-lang/cargo/issues/985

@bors: r+
Thanks!

:pushpin: Commit 723945c has been approved by alexcrichton

:hourglass: Testing commit 723945cb0eae7d642caa88812c6ecee3ed5895a1 with merge 2f779743f4579febf674dbbb6e24bb2e709a7982...

:sunny: Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing 2f779743f4579febf674dbbb6e24bb2e709a7982 to master...


Compatibility with olders versions of Node (Error fixed).

Fixes an error occurred when trying to compile projects with old versions of Node that do not support the Buffer library.

We don't intend to support old versions of Node wihth no Buffer


'Keep me signed in' not available when redirect url is chrome-extension://xxxx

Library

[x]<EMAIL_ADDRESS>or<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>
Description
We are creating an edge extension using msal.js to authenticate users against AAD. For edge extension the redirect url is in such format chrome-extension://xxxx. I noticed that in such case the 'Keep me signed in' option is not longer available. However, if I just replaced the redirect_url segment in the url with https://xxxx, the 'Keep me signed in' option showed up.
I am wondering if there is something that I should do to enable KMSI, or it is a bug/limitation on the msal/AAD side.
Thanks.

This is expected behavior at this time for AAD.  Non-HTTP(S) redirect URIs at this time indicate to the login server that the request is going to a native application or otherwise embedded app, and therefore there's no reason to keep the session around.
In your scenario this is not desirable, of course, since you are inside a browser and would like the session to stick around.  This limitation has cropped up as well in native apps using the system webview/system browser on Windows/Android/iOS as well, so we're looking at was to improve our detection of these browser scenarios.  I don't have any estimates on if or when that will be possible however.

Thanks for the reply.

@hpsin just out of curiosity, since chrome-extension:// protocol is clearly the browser scenario, specially now given that edge browser uses the same protocol, lots of microsoft 1st party extension will suffer this problem, is it possible to expedite it just for chrome-extension:// protocol?

Closing as no further action needed by msal


Fully document pixi.toml format

Problem description
Hi, I think to increase the ease of adopting pixi, please document fully all the different options in the pixi.toml format and explain each section.
Most of the basics are available, but when I look at examples, there are some uses like (build-dependencies) and host/target that aren't fully documented.
Also some references to other package managers and their features and how they can be replicated within pixi would be helpful (for example dependency groups or optional dependencies).

Yes you are completely right. A detailed document about the details of the pixi.toml is already underway. Should probably be online this week. We are also planning on writing some comparisons with other package managers but I cant give you a date yet.

And here it is: https://prefix.dev/docs/pixi/configuration

Yeah we should definitely pay attention to update the docs as we add/change features. We will be merging the docs in this repository soon so we can make sure they are updated with a PR.
pixi build is indeed still in development (see this PR: https://github.com/prefix-dev/pixi/pull/85). Do you think it would be better if we'd remove that reference from the documentation until that feature lands? Im a bit on the fence about it because some of the configuration in the pixi.toml is mostly there to support pixi build.

I updated it in the new documentation!


accessibility: GridView of files and folders is not accessible for screenreaders

Hello.
A GridView for displaying files and folders is not accessible for screenreaders.
columns and rows are not readable.
to reproduce an issue, you can launch narrator by pressing ctrl+shift+enter, open filels application, open some folder in it and try to navigate in a Grid by arrow keys.
expected result:
screenreader should read names of files and folders and all other possible columns in a row.
Actual result:
Screenreader is silent there.
Final words:
Files application is very good replacement for windows explorer, but because of a gap of accessibility in such areas, blind people cannot use this application.

@beqabeqa473 What version of Files are you using? I just tested with the latest version of Files, and the screen reader is working fine in the grid view. By any chance, are you using the details layout?

@yaichenbaum I downloaded 1.5 version fro mgithub.
Yes, Details view was selected by default.

I am sorry about the inconvenience especially since accessibility is priority number one for us. I am happy to report that this issue is already resolved in main and will be available when we ship the next update, in the meantime, the grid view layout should be accessible with the screen reader.

I am ready to test and report issues if they still persist, because accessibility is high priority for me also, as i am blind person.
i found some other issues which could be already resolved.
do you have some beta channel or nightly builds so i could download and test the latest version?
thanks for prioritising accessibility.

@beqabeqa473 Please make sure to report other issues that you find, it's likely that many of them are already resolved in the dev builds, but it's better to report them in case we missed them. You can also join our Discord server to get access to preview builds.


Localised foreign currency

Hello!
Trying to figure out how to handle foreign currencies together with the users locale.
For example in the US you write $100 for a hundred dollars but if you're displaying a foreign currency you often display the currency code instead, like this for one hundred Swedish krona for  en-US locale: SEK 100.
And for a Swedish user it should be the opposite: 100 USD and 100 kr (notice the currency symbol is after the amount).
While I can see that currency code is defined for the different languages I can't figure out how to use them and how to set the currency for formatting, am I missing something? 😅

Hej
I'll do something like
let { symbol } = numbro.languages()["sv-SE"].currency;
numbro(100).formatCurrency({currencySymbol: symbol}); //=> "kr100"

Nice! Ended up writing something similar in a helper where code is the currency code for the amount I'd like to display...
const currencySymbol = code => {
  const { currency } = numbro.languageData()
  return code === currency.code ? currency.symbol : code
}

Thanks for the help! 🙂