How to use this for dummies?

Hello,
I am trying to use this script to decode a ticket. Unfortunately, I have no experience with node or npm.
I tried the following (running on a Debian system as a normal user, not root):
git clone https://github.com/justusjonas74/uic-918-3.git
cd uic-918-3
npm install

Then I created test_new.js with the following contents:
const uic = require('uic-918-3');

const options = {
    verifySignature: true
}

file_path = "ticket.png";

uic.readBarcode(file_path, options).then((ticket)=>{
        console.log(ticket); // I hope this decodes everything???
});

Now I try to execute it by running node test_neu.js and I get the following errors:
node:internal/modules/cjs/loader:1137
  throw err;
  ^

Error: Cannot find module 'uic-918-3'
Require stack:
- /daten/homes/daniel-marschall/test/bahn/test_neu.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1134:15)
    at Module._load (node:internal/modules/cjs/loader:975:27)
    at Module.require (node:internal/modules/cjs/loader:1225:19)
    at require (node:internal/modules/helpers:177:18)
    at Object.<anonymous> (/daten/homes/daniel-marschall/test/bahn/test_neu.js:1:13)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/.../bahn/test_neu.js' ]
}

Node.js v18.19.0

What am I doing wrong?

What I want to achieve:

I want to display all data from a ticket, like in https://github.com/rumpeltux/onlineticket/ --> is this possible?

I have collected a lot of old tickets, however I only have the hex dump of the codes, not the barcode images --> is it possible to interprete the hex dump instead of a barcode with your solution?

Thanks for your help!

Hi Daniel,
my setup is like this:
I´ve cloned the repo. Did npm install.  And I´ve created the following scenario samples/test.js:
const uic = require('../index')
const binaryData = Buffer.from('2355543::::::::::...','hex')

const ticket = uic.interpretBarcode(binaryData)
console.dir(ticket, { depth: null });

Be aware that the library is not full compatible with UIC 918-9. This will be indicated if you find a U_FLEX part in the ticket section, which does not show the correct data there.
Here is an explanation:
The UIC barcode standard was adopted in 2006 as version UIC 918-3. The implementation at that time was based on a tabular recording of relevant ticket data in the barcode, which is displayed in this format on the control device during inspection. The layout-based procedure (TLB), which consists of at least the segments U_HEAD and U_TLAY, does not provide for automated evaluation of barcode contents and is considered outdated by today's standards. Therefore, further formats have been developed for optimized display on control devices (for example, the left-aligned (PLAIN) layout of the TLB, as well as manufacturer-specific layouts), all of which are widely known in the market under the designation UIC 918-3. Additionally, the functionality can vary depending on the interpretation of the TLB by different providers of control devices and software.

Therefore, an update of the UIC standard was carried out in 2018: Version 918-9. The new barcode standard includes, in addition to the contents already described in UIC 918-3, the definition of a structured component: Flexible Content Barcode (FCB). In the FCB component, data are encoded in a structured form so that the contained data can be specifically used for automated evaluation. The central barcode segment of the FCB is designated as U_FLEX.

The UIC 918-9 standard is an extension of UIC 918-3 and accordingly contains, among other things, the specification of both the FCB and the TLB. The Germany ticket (Deutschlandticket) is expected to make use of the backward compatibility of the standard during a transition period and use the necessary segments for both TLB and FCB. The TLB can be output either in the left-aligned PLAI layout or in the RCT2 format.

Hallo Arne,
thank you so much for your fast help! Your code helped me very much.
I had collected 25 version 1 tickets over time , and 6 of these codes do not work (header check failed).
I wonder if I can send these codes to you so you can look over it? (I am not sure about posting them here, because the codes might contain personal data)
Your website arnebr.de seems to be down, so I am not sure if you have an email address under that domain.
I hope I might be able to help contributing to this project soon
Kind regards,
Daniel

@danielmarschall You are welcome to send me the barcodes by e-mail to<EMAIL_ADDRESS>I will check why the barcode cannot be read.

I have noticed that there have been a lot of activity in the code, so I wanted to re-check my tickets in case something has changed.
Unfortunately, I cannot use node again. There is no "index.js" file anymore. What am I doing wrong?
git clone https://github.com/justusjonas74/uic-918-3/
cd uic-918-3
npm install

I get the confirmation from npm:
><EMAIL_ADDRESS>postinstall
> node postinstall/updateCerts.js

Load public keys from https://railpublickey.uic.org/download.php ...
Successfully loaded key file.
Loaded 46 public keys and saved under "keys.json".

><EMAIL_ADDRESS>prepare
> husky

up to date, audited 458 packages in 2s

82 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

Then create show_tickets.js with the following code:
const uic = require("uic-918-3")
ticket = uic.interpretBarcode("  hex code here ")
console.dir(ticket, { depth: null })

I get the error message:
Error: Cannot find module 'uic-918-3'
Require stack:
- .../show_tickets.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1134:15)
    at Module._load (node:internal/modules/cjs/loader:975:27)
    at Module.require (node:internal/modules/cjs/loader:1225:19)
    at require (node:internal/modules/helpers:177:18)
    at Object.<anonymous> (.../show_tickets.js:1:13)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '.../show_tickets.js'
  ]
}

Note that I am in user-land, not root.

Cloning the source code via github is usually not necessary. Instead, you should rather install the package via npm install uic-918-3. Then it will also find the module.
If you absolutely have to do it the hard way, then you have to build and install the local uic package within your NPM project in which the file "show_tickets.js" is located:
git clone https://github.com/justusjonas74/uic-918-3/
cd uic-918-3
npm install
npm run build
cd path/to/your/show_tickets.js
# maybe npm init -y
npm install ./path/to/uic-918-3

@justusjonas74 Thank you so much! I didn't expect that it is THAT simple to use this library!

@justusjonas74 Maybe in the README.md you could describe these steps. Because it reads like npm install uic-918-3 and git clone ... is the same. That it requires much more steps ( npm run build etc.) is not described there.
Thank you!


make typescript a peer dependency

Resolves #112

I can get the test passing by installing peer dependencies or adding Typescript as an additional dev dependency, if that helps get this pr through.

All green now ✅

Thanks for doing this @jasondibenedetto! I've opened up https://github.com/prisma/serverless-plugin-typescript/pull/135 to upgrade all dependencies and include your work.


Viewing complex PDFs is slow

PDFs with complex (eg. architectural) drawings feel sluggish. This isn't a network issue or document length issue since the app displays one page at a time. Might be a rendering issue; and part of the sluggishness might be because rendering is a blocking event (ie. buttons don't feel as responsive).
Some thoughts / to dos:

Test pdf w/ complex drawing with other pdf libs. Maybe this is always an issue and isn't specific to react-pdf-viewer.
Is there a way to delegate some tasks to Web Workers?

Possible Solution: Convert PDFs to images
Looking at other projects (eg. Fermat's Last Margin and Procore), it might be best for PDFs to be converted to images server-side. The client would then only need to render images, which will be more performant.
Caveat
With this solution, texts will not be rendered as texts. An app like Procore deals with this by separating the text layer from the drawing layer in the PDF. Drawings are sent to the front end as images and the text layer is displayed as native text superimposed on the image.

First stab at a microservice that converts PDFs to PNGs and uploads files to S3: https://github.com/raa-tools/conveyor


[Internal] Randomized Client Telemetry

Currently it will send every 10 min from initialization , but we have work item where sdk will randomize first call between 1-10 min and then stick to 10 min on wards. This will help in the scenario where we have one customer having many accounts many clients , it will scatter the requests between 10 min to avoid load from a customer on juno at the same time

i don't think it will be required.
Will pick it up later if we found any use case for this.


Implement Dark Mode for the Website (#422)

Description:
To enhance the website's usability and improve user experience, this PR introduces a dark mode feature, allowing users to toggle between light and dark themes. This change aims to reduce eye strain, particularly during nighttime or low-light browsing.
Requirements:

Added a toggle button in the website's header to enable/disable dark mode.
Adjusted all website elements, including text, backgrounds, buttons, and icons, for dark mode while maintaining readability and aesthetic harmony.
Ensured theme preference persists across sessions via local storage.
Verified compatibility and responsiveness across all devices and screen sizes.

Acceptance Criteria:

A visible, accessible dark mode toggle is present for theme switching.
Consistent color scheme across all pages in dark mode with appropriate contrast.
Theme preference (light or dark) is remembered on subsequent visits.
Dark mode is cohesive with the existing design elements and complements the site's overall theme.

Additional Context:
This dark mode implementation is designed to enhance accessibility and modernize the website's user interface. The dark color palette aligns with current design aesthetics and complies with accessibility standards for a seamless and enjoyable user experience.

Summary by CodeRabbit
Release Notes

New Features

Introduced a dark mode theme toggle for enhanced user experience.
Added a slider feature for eco-tips to improve content engagement.
Enhanced form validation for signup and login processes.

Styling Improvements

Updated various sections with new dark mode styles and improved visual separation using borders.
Added hover effects for interactive elements.

Bug Fixes

Improved error handling for newsletter subscriptions and form submissions.

@khushi-joshi-05 can you please assign label to it


Not working with RetroLambda

I seem to be seeing issues with this not working with RetroLambda?
It works OK with the Jack compiler and no RetroLambda - but unfortunatley I'm also using Glide... which doesn't work with Jack!

Seemed to start working... Maybe my mistake somewhere.


wskdeploy failing to read configuration file from user home directory for 386 version

The 386 release of the tool fails to retrieve the user's home directory from the system. This causes it to expect the wskprops file in the current directory rather than the user's home directory.
example

Run a docker run -it ubuntu container and retrieve the latest release archive of the tool from the release page.

Using a simple manifest run the 386 & amd64 versions of the tool with the -v flag and check the different CfgFile property values.

root@8651a121af02:~/wskdeploy/linux/amd64# ./wskdeploy -v -m manifest.yaml
Info: deploy using deployment file []...

Info: Configuration:
      > ApiHost: []
      > Auth: []
      > Namespace: []
      > ApiVersion: []
      > CfgFile: [/root/.wskprops]
      > CliVersion: [latest]
      > ProjectPath: [.]
      > DeploymentPath: []
      > ManifestPath: [manifest.yaml]
      > Preview: [false]
      > Strict: [false]
      > Key: []
      > Cert: []
      > Managed: [false]
      > ProjectName: []
      > ApigwAccessToken: []
      > Verbose: [true]
      > Trace: [false]
      > Sync: [false]
      > Report: [false]
      > Param: [[]]
      > ParamFile: []

 ./wskdeploy -v -m ../amd64/manifest.yaml
Info: deploy using deployment file []...

Info: Configuration:
      > ApiHost: []
      > Auth: []
      > Namespace: []
      > ApiVersion: []
      > CfgFile: [.wskprops]
      > CliVersion: [latest]
      > ProjectPath: [.]
      > DeploymentPath: []
      > ManifestPath: [../amd64/manifest.yaml]
      > Preview: [false]
      > Strict: [false]
      > Key: []
      > Cert: []
      > Managed: [false]
      > ProjectName: []
      > ApigwAccessToken: []
      > Verbose: [true]
      > Trace: [false]
      > Sync: [false]
      > Report: [false]
      > Param: [[]]
      > ParamFile: []

cause
The cause is due to user.Current method not being available for 386.
Here's a test file to show the issue...
package main

import "fmt"
import "os"
import "os/user"

func main() {
	usr, err := user.Current()
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	fmt.Println(usr.HomeDir)
}

# GOOS=linux GOARCH=386 go build main.go
# ./main
user: Current not implemented on linux/386

solution
I've found an existing workaround in another project - that we might want to add:
https://github.com/schachmat/ingo/blob/4b355b487cca8ac509823a2b410a1d9c79fb214c/in.go#L35-L41
func fallbackHome() string {
	if home := os.Getenv("HOME"); home != "" {
		return home
	}
	// For Windows.
	return os.Getenv("UserProfile")
}

This can be used when user.Current() returns an error.

Thanks James... and it looks easy to slot in that fallback function on error
func GetHomeDirectory() string {
	usr, err := user.Current()
	if err != nil {
		return fallbackHome()
	}
	return usr.HomeDir
}

and I believe while we are at it, we should emit a warning if we drop into looking for a "fallback" method and add Verbose/Trace to indicate where we ended up finding the value we will attempt to use (and the value itself)

Looks like the wsk CLI handles this using an external library.
https://github.com/apache/incubator-openwhisk-cli/blob/461f94fafe405feb3c664a43f6c117bac4d3c27f/commands/property.go#L26
We might want to follow that approach instead.

@jthomas @pritidesai be aware we believe that the long-term fix (i.e., use a robust library like the one you found) within go-client is the correct fix and that would cause us then to clean up wskdeploy to not have ANY fallback methods.  For now, we have a PR to do a quick fix.  Priti volunteered to open issues address this in go-client and then leveraged afterwards in wskdeploy.

Looks like James Dubee added this lib. and "Expand()" to the CLI as part of the Go formatting PR: https://github.com/apache/incubator-openwhisk-cli/commit/c615efb697af7ef05c9b238005d5c8efe506c323

I've checked the new version and it works - thanks for the quick turnaround.

@pritidesai @jthomas Thanks James for bringing this issue to us and also pointing us to the quick fix.  Priti, can you merge ASAP please?


Try and force precompilation

using OrdinaryDiffEq, SnoopCompile

function lorenz(du,u,p,t)
 du[1] = 10.0(u[2]-u[1])
 du[2] = u[1]*(28.0-u[3]) - u[2]
 du[3] = u[1]*u[2] - (8/3)*u[3]
end

u0 = [1.0;0.0;0.0]
tspan = (0.0,100.0)
prob = ODEProblem(lorenz,u0,tspan)
alg = Rodas5()
tinf = @snoopi_deep solve(prob,alg)

Before:
InferenceTimingNode: 2.285476/19.503069 on Core.Compiler.Timings.ROOT() with 54 direct children

After:
InferenceTimingNode: 2.247376/19.289887 on Core.Compiler.Timings.ROOT() with 54 direct children

with the TriangularSolve one.

It might be worth refactoring the code here, splitting off pieces that don't depend on the function input or argument types to reduce the amount that has to get recompiled for every new @batch.


Failing to parse e2e.log for v1.26 PRs

when parsing the e2e.log, it appears to not be correctly parsing those for Kubernetes v1.26, but remains fine for older versions

https://github.com/cncf/k8s-conformance/pull/2313#issuecomment-1345648687
https://github.com/cncf/k8s-conformance/pull/2312#issuecomment-1344527510

There may have been a change in the format in sonobuoy once again.

For supporting versions <v1.26, Sonobuoy provides a line like this
{"msg":"PASSED [sig-cli] Kubectl client Update Demo should create and stop a replication controller [Conformance]","completed":1,"skipped":23,"failed":0}

for each test in e2e.log
It appears that in e2e.log files <=v1.26, the line looks like this instead
[It] should update pod when spec was updated and update strategy is RollingUpdate [Conformance]
```

With this change, it may be required to drop support for checking on what tests match between the e2e.log and junit_01.xml

With this change, it may be required to drop support for checking on what tests match between the e2e.log and junit_01.xml

Checking if test results are valid is core to the cncf-ci bot's work.

Checking operations that the bot is currently doing

e2e.log tests pass
all required tests are present in e2e.log
junit_01.xml tests pass and are not skipped
all required tests are present in junit_01.xml
the tests count of e2e.log and junit_01.xml both matches

TLDR; an important file's formatting has been changed (again).

TLDR; an important file's formatting has been changed (again).
Let's loop in the sonobuoy folks. For now let's focus on junit_01.xml only and not verify the log file contains the same info.

Let's loop in the sonobuoy folks.

Conversation in the sonobuoy channel
https://kubernetes.slack.com/archives/C6L3G051C/p1670809082212069

For now let's focus on junit_01.xml only and not verify the log file contains the same info.
We may need to hold Conformance Submissions for a bit as we figure out a way to update the format or create a workaround.

Not having access to determine which tests have failed in the e2e.log severally dulls the submission validation, removing

e2e.log tests pass
all required tests are present in e2e.log
the tests count of e2e.log and junit_01.xml both matches

From https://onsi.github.io/ginkgo/MIGRATING_TO_V2#generating-machine-readable-reports

Ginkgo V2 introduces a new JSON format that faithfully captures all available information about a Ginkgo test suite. JSON reports can be generated via ginkgo --json-report=out.json. The resulting JSON file encodes an array of types.Report. Each entry in that array lists detailed information about the test suite and includes a list of types.SpecReport that captures detailed information about each spec. These types are documented here.

The switch to Ginkgo v2 was back in July,  (Migrate Ginkgo from v1 to v2 #109111)  which was before 1.25 was cut, so it's maybe it's a follow up change somewhere - From @heyste

Would it make sense for sonobouy to add an additional --json-report=e2e.json to the args it provides to gingko ?
We could document that work around until it’s part of the image and update our validation to use ‘e2e.json’ if it exists.

Hopefully  kubernetes/kubernetes#114416 is a simple enough fix to get upstream and consumed for submissions.

The JSON file from kubernetes/kubernetes#114416 is in a format specific to Ginkgo. If you want to know which tests ran and which failed, use the junit_01.xml file. It's content now follows the (vague) JUnit spec a bit more closely. For the specific type definitions used by Ginkgo, see https://github.com/onsi/ginkgo/blob/master/reporters/junit_report.go
Regarding the JSON output on stdout: that got removed in kubernetes/kubernetes@3e560e8 because it had multiple problems:
* The ginkgo v2 CLI redirects stdout, so that output wouldn't be visible without `--output-interceptor-mode=none`.

* The stats are per worker, so it wasn't clear what that output is supposed to mean when running multiple workers in parallel.

* The extra JSON output was undesirable noise during normal E2E test runs.

Can someone explain what information you need that cannot be obtained from the junit_01.xml file?

Thank you for your response, @pohly.
This ticket has evolved through my understanding of the issue.
It's just the e2e.log file which has had unexpected output changes
After each test run, there's a JSON object kinda like
    Message   string `json:"msg"`
    Total     int    `json:"total"`
    Completed int    `json:"completed"`
    Skipped   int    `json:"skipped"`
    Failed    int    `json:"failed"`

which is currently consumed in the conformance bot

Without the e2e.log containing these structures, it means that the bot will not be able to report which individual tests have failed.

Why can't the bot use junit_01.xml for this?

Why can't the bot use junit_01.xml for this?

My understanding is the that junit_01.xml only contains the list of test which will run (including which are skipped) and not whether the tests have completed or failed. is this correct @pohly

No. junit_01.xml is a representation of all test that ran, failed, or were skipped. It's the complete test suite result that we use in Kubernetes to determine the result of a test suite invocation.

No. junit_01.xml is a representation of all test that ran, failed, or were skipped. It's the complete test suite result that we use in Kubernetes to determine the result of a test suite invocation.

@pohly, thank you for the correction, this is helpful! I'll see what I can do

The format for junit_01.xml has changed since v1.25.
The old format, I had to specify types for (https://github.com/cncf-infra/verify-conformance/blob/main/pkg/suite/suite.go#L113), for parsing; see here
https://github.com/cncf/k8s-conformance/raw/3752c68b19d87692a2931ef0127b9b532eccdea5/v1.24/volcengine-vestack/junit_01.xml (from https://github.com/cncf/k8s-conformance/pull/2305/files) for v1.24
then in v1.25 the format is different and it's using the Sonobuoy provided type (https://github.com/cncf-infra/verify-conformance/blob/main/pkg/suite/suite.go#L20)
https://github.com/cncf/k8s-conformance/raw/226bf4b91dc2d2959c2bdbea7d6208516ce3369c/v1.25/digitalocean/junit_01.xml (from https://github.com/cncf/k8s-conformance/pull/2302/files) for v1.25
This is why we've been using e2e.log files for this information historically.

In Summary: Both the junit_01.xml and e2e.log file formats have changed in this release:

e2e.log no longer contains the json structs with per test passfail info
junit_01.xml previously did not contain passfail info for each test and now does

Prior to this release we were unable to use junit_01.xml as it didn’t have pass/fail, so we used e2e.log. Now that junit_01.xml has pass/fail we will need to update the conformance-bot to where the information has migrated.

@BobyMCbobs Let's go ahead and update the logic for >1.26 to only examine the unit_01.xml.

@BobyMCbobs Let's go ahead and update the logic for >1.26 to only examine the unit_01.xml.

Yes, that's the plan @hh, see https://github.com/cncf-infra/verify-conformance/issues/40

Fixed by #41


Create 1.3 Branch

Backport "easy" 2.0 features, such as new threading model, but not those that require Java 8 - such as ConsumerAwareMessageListener.

Complete


Font/karla bold

Karla bold imported and updated in index.html

Hi Marta, a couple of things when I tested:

I think the same @font-face code needs to be added to the preview-head.html file to work in Storybook. This is due to the way Storybook loads assets (https://storybook.js.org/docs/react/configure/story-rendering#adding-to-head)

The code looks good but I think the .woff files are not the correct weight. I'm seeing no difference between 600, 700, and 800 in Storybook components. Let me know if you are seeing the same.

Hopefully that makes sense but ping me on Slack if you want to discuss.

Hi, I have changed the files and tested them - there is a difference between using font-weight: 600 and 700. Please double check if everything looks correct.


Incognito mode doesn't work

When I open Salesforce in a Chrome incognito window and try to open Salesforce Inspector Reloaded extension, a blank sub-window is displayed.
Steps to reproduce the behavior:

Allow Salesforce Inspector Reloaded in incognito (Manage Extensions --> Details --> Allow in Incognito)
Open an incognito window and login to Salesforce
Click the Inspector icon on the right side of the window
A blank window is displayed:

Expected behavior
Salesforce Inspector window opens regularly as in normal mode
Desktop (please complete the following information):

OS: Windows 10
Browser: Chrome
Version: 116.0.5845.141

In Chrome Console I can see this error message. It seems to be related to the extension:

I just found the cause. As mentioned here https://github.com/tprouvot/Salesforce-Inspector-reloaded/issues/125 allowing cookies the extension works.


Update _value when on is called in Property

Keeping Property's _value same with the last emitted value seems more consistent.

👍


No Default Install - WslRegisterDistribution failed with error: 0x80370102

Windows Version
Microsoft Windows [Version 10.0.22621.2428]
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Kernel Version
I cannot tell since I cannot get a default distro to launch
Distro Version
Ubuntu (Default)
Other Software
Docker Desktop will not completely install due to wsl2 not completing installing and launching any distro.
Repro Steps

Install wsl2 per the instructions (cmd prompt wsl --install).

Ubuntu is already installed.
Launching Ubuntu...
Installing, this may take a few minutes...

Expected Behavior
I would expect the default Ubuntu distro to launch and not give the proverbial _WslRegisterDistribution failed with error: 0x80370102_
Actual Behavior
WslRegisterDistribution failed with error: 0x80370102
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.

Diagnostic Logs
outputnetworking.txt
wmicdriveinfo.txt
WslLogs-2023-10-10_10-28-21.zip

I have done everything I have read including updating to WSLv2 2.0.4.x etc.  Nothing works.  If I run wslv1 I can install the default distro, but since this is preventing me from using Docker Desktop, I need WSLv2.

Is it possible your hypervisor is not being started, perhaps because you've installed a type 2 hypervisor (vmware etc)? Try running this command and restarting your machine:
BCDEDIT /Set {current} hypervisorlaunchtype auto


added GCC compatibility

Caused an boost::any_cast runtime error, since no matching function was found, when compiled with GCC. See https://github.com/irods/irods/issues/4083 for a detailed description.
Clang compatibility should be checked first.

ah, very good.    just force push to your gcc branch, and this PR will update itself

@joergsteinkamp please squash and force-push, we're coming around soon to a release.  thanks!

This plugin will probably be archived - the way to talk to rados has shifted to be via CephFS or the S3 protocol.


Alt-tab to cycle through services not working.

Describe the bug
Before I updated (not sure what previous version was), I was able to alt+tab to cycle through the active services. I can no longer do this.
To Reproduce
Steps to reproduce the behavior:

Open Franz with more than one service.
Hold alt, press tab.
Nothing happens.

Expected behavior
The window should switch to show the next active service.
Screenshots
N/A
Desktop (please complete the following information):

OS: Windows 10 Home 64-bit
Browser: Firefox
Version: 65

Smartphone (please complete the following information):

Device: iPhone 6
OS: iOS 12.1.2
Browser: Safari
Version: N/A

Additional context
Franz version: 5.0.0 beta 2.4

I can also confirm this issue with version 5.0.0 beta 2.4, version 5.0.0 beta 2.3 did not have this issue.

I just updated to version <IP_ADDRESS>6 for Mac and I'm not able to switch between services using ctrl + tab. Since the issue is potentially the same, I'll leave my comment here.

Just updated to 5.0.0 (Win10, not beta) and seeing this. Previously I was able to CTRL-TAB to go to the next service, and CTRL-SHIFT-TAB to go to the previous one
+1 for a fix

:+1:


Where is the Implicit Grant option?

I'm getting unauthorized_client even though I did for public / personal Microsoft account while App registration.

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

ID: fafd4de9-a6d0-b206-d4b2-008aecee39b8
Version Independent ID: 6b9d8293-945f-c122-340b-3f1d0c19fa44
Content: Modify Microsoft identify platform app accounts
Content Source: articles/active-directory/develop/quickstart-modify-supported-accounts.md
Service: active-directory
Sub-service: develop
GitHub Login: @rwike77
Microsoft Alias: ryanwi

Thanks for the question! We will review and get back to you shortly.

This is explained in the sign-in section, but you just need to go to Azure Active Directory > App Registrations > Select the app > Overview > Authentication > Implicit Grant
I made a pull request to add these instructions to that section. Thanks for the feedback.
https://github.com/MicrosoftDocs/azure-docs-pr/pull/115323


Fixing Botanist role numbers in various stations

About the PR
Very plainly reduced the number of botanists in some stations (Fland, Oasis, Packed, Saltern) that couldn't fit all of them.
Why / Balance

There is no need for (e.g.) 4 botanists in Oasis; all it will do is force 1 or 2 of them to eventually get out of the department and find something else to do.
One botanist finds it hard to work with only 3 or 4 trays unless the station is very small and cramped; if the station isn't cramped, on the other side, they should be able to utilize a higher number of trays without having to divide between many more of them.
Technical details

The main thought I put behind this was that you should give a max of 5~6 trays per botanist in the bigger maps, and lower the ratio in the smaller ones, still thinking about equally splitting the trays number equally between players.

Fland: 17 trays, that's 6 trays for one and 5 for the other 2. Doesn't need 4 players total.

Oasis: 12 trays, it's not nearly enough for 4 players; while I was thinking of very curtly putting just 2, having another one maybe join later in the round can work, and use the dirt patches outside.

Packed: 9 trays, small station needs less resources, so one Botanist can manage the whole department by themselves while another is able to join later.

Saltern: 9 trays, same reasoning as Packed.

[ ] This PR does not require an ingame showcase.

:cl: Scott Dimeling

tweak: Reduced the number of botanists in some stations, for optimal workflow

I'll make sure to create a branch for it, sorry Emisse if it pinged you.


(SP: 1) Write dbHandler for integration test

Write dbHandler which will use mongodb-memory-server

Already in develop branch.


feat: add --locale cli flag

This PR allows us to dynamically specify a locale with the --locale CLI flag.

@ttskch Would you make this PR in this repo as well ? :)


HttpApi did not apply changes during a stack update.

Description:
I'm working on switching over one of my Rest APIs in a service to HTTP API. I had it initially deployed with three routes each with their own Lambda function. I then pushed an update that condensed those three Lambdas to a single one with three events attached to it for the route.
The HTTP API correctly removed the old route-integrations but then didn't apply any of the new ones. The API and the Lambdas were all created, but none of the integrations were.
When view the $default stage in the console I could see a message that the deployment failed as there were no routes configured, but this deployment failure within API Gateway did not report back to CloudFormation where it reported everything had deployed successfully.
Deleting and re-creating the CloudFormation stack brought up the HTTP API correctly with all of the route-integrations configured.
Steps to reproduce the issue:

Create an HTTP API with multiple Lambdas/routes. Deploy it.
Update the HTTP API to use a single Lambda with all three routes attached in the Events. Deploy the change.

Observed result:
The HTTP API loses all routes and has no integrations configured.
Expected result:
The HTTP API removes the old route-integrations and correctly configures the new ones.

@brysontyrrell it appears that there's a bug in CloudFormation that causes this silent failure. For now, we're exposing FailOnWarnings, which should be set to true to at least cause a rollback instead of a silent failure. We're also adding support for reading and adding path parameters, which should help with this problem (if not fully fix it).

#1509 and #1510

Thanks @keetonian
I don't think it's related to the deployment issue, but I also came across a problem with HTTP API event payloads. This is what I was getting from my HTTP API in Lambda:
{
    "version": 1.0,
    "resource": "/v1/bdb00c02-9147-4c41-879a-25fef3caaf81/software",
    "path": "/v1/bdb00c02-9147-4c41-879a-25fef3caaf81/software",
    "httpMethod": "GET",
...

And it should be like this (as it is with REST APIs):
{
    "version": 1.0,
    "resource": "/v1/{contributor_id}/software",
    "path": "/v1/bdb00c02-9147-4c41-879a-25fef3caaf81/software",
    "httpMethod": "GET",
...

The HTTP API event is passing the client inputted path into the resource key.

@brysontyrrell thanks again! I discussed that with ApiGateway, we'll see what we can do!


[Sema] Diagnose misplaced InOutExpr in preCheckExpression

Since there are cases where use of & is still allowed e.g. case statement patterns, let's move
diagnostics of extraneous use of InOutExpr to preCheckExpression where it's much
easier to do so comparing to doing that in parsing, where we'd have to thread a flag through
most of the parseExpr* calls to support that case.

Resolves: rdar://problem/40945329
Resolves SR-7877.

@swift-ci please test

@swift-ci please test source compatibility

@slavapestov That example is going to be diagnosed by preCheckExpression I've added, but there are cases which can't be e.g. allowed one in test/Parse/pointer_conversion.swift.gyb line 302 p == &x and disallowed in test/expr/expressions.swift line 830 &x += y, both are related to operators so it doesn't seem we can't just reject it all upfront instead need to double-check after solution is formed...


Blog for week 2

@kmehant @Ammoniya @1209973 My blog for week 2 of the coding phase has been published.
Blog link: https://medium.com/scorelab/gsoc21-scan8-server-side-operations-baf9c5d57ed0


Colorblind support for verification

Colorblind people cannot differentiate red/green.
Develop a way to negate this issue

Is this issue still open now that Verification has changed?


Exposing RestClient or adding helper methods (solves client certificate auth)

New Feature Description
Right now if you use client certificate based auth with HA this library will fail.  RestClient easily supports client certificates but it is protected in all the client classes so we can't add certs.
Options I see:

Just flip RestClient Client to public: https://github.com/qJake/HADotNet/blob/f2d6d254690da3d3cded54107b9ecc89888903f5/HADotNet.Core/BaseClient.cs#L18
Add a .Configure(Action client)  (not sure is much better)
Add specific method for adding client certs (although there may be other client prefs a user would want access to)

I can do a PR with the best action if desired

Hey @mitchcapper, in v1.6.0 we refactored from RestSharp to just using the built-in HttpClient.
If you're using the ClientFactory, you can access the HttpClient instance directly, after initializing, like so:
ClientFactory.Initialize("https://my.home.assistant/", "eyJ...............");
ClientFactory.Client // This is the underlying HttpClient that is used for API communication, you cannot set it, but you can manipulate its properties.

I think this will work for you, if not please let me know and I will reopen!

Sorry I missed this reply.    HttpClient is great however to do the bulk of configuration for it you need to use the HttpClientHandler class and it can only be then passed to the HttpClient constructor, you cannot access it after the fact.
The good news is because of the refactor no modification to this library is needed to do so, we just create our own factory.  If you like I can put a PR in to add an overload to the current initialize method that takes a HttpClientHandler to make it easy for others.
 public static class OurClientFactory {
            public static bool IsInitialized { get; internal set; }
            public static HttpClient Client { get; private set; }
            public static void Initialize(Uri instanceAddress, string apiKey, HttpClientHandler handler) {
                Client = new HttpClient(handler) {
                    BaseAddress = instanceAddress,
                    DefaultRequestHeaders =
                    {
                    Authorization = new AuthenticationHeaderValue("Bearer", apiKey),
                    AcceptEncoding =
                    {
                        new StringWithQualityHeaderValue("identity")
                    }
                }
                };
                IsInitialized = true;
            }
            public static void Reset() {
                IsInitialized = false;
                try {
                    Client?.Dispose();
                } catch {
                    // Can't dispose? Oh well.
                }
                Client = null;
            }
            public static void Initialize(string instanceAddress, string apiKey, HttpClientHandler handler) => Initialize(new Uri(instanceAddress), apiKey, handler);
            public static TClient GetClient<TClient>() where TClient : BaseClient => (TClient)Activator.CreateInstance(typeof(TClient), Client);

        }

This then allows you to do something like:
OurClientFactory.Initialize(uri, token, new HttpClientHandler { ClientCertificateOptions= ClientCertificateOption.Automatic });
or
OurClientFactory.Initialize(uri, token, new HttpClientHandler { ClientCertificateOptions= ClientCertificateOption.Manual,ClientCertificates.Add(client_cert) });


MediaSession not supported by TypeScript 2.3.4

TypeScript Version:  2.3.4
Code
  navigator.mediaSession.metadata = new MediaMetadata({
    title: "Podcast Episode Title",
    artist: "Podcast Host",
    album: "Podcast Name",
    artwork: [{src: "podcast.jpg"}]
  });
  navigator.mediaSession.setActionHandler('play', function() {});
  navigator.mediaSession.setActionHandler('pause', function() {});
  navigator.mediaSession.setActionHandler('seekbackward', function() {});
  navigator.mediaSession.setActionHandler('seekforward', function() {});
  navigator.mediaSession.setActionHandler('previoustrack', function() {});
  navigator.mediaSession.setActionHandler('nexttrack', function() {});
}

Expected behavior:
MediaSession and MediaMetadata should be recognized by Typescript.
https://developer.mozilla.org/en-US/docs/Web/API/MediaSession
https://developers.google.com/web/updates/2017/02/media-session
Actual behavior:
Visual Studio Code Version 1.17.2 is showing the following Problems after saving the ts file:

message: 'Property 'mediaSession' does not exist on type 'Navigator'.'
message: 'Cannot find name 'MediaMetadata'.'

System information:

pablo@pablo-Inspiron-7520:~/projects/fpt3$ ionic info
cli packages: (/usr/lib/node_modules)
@ionic/cli-utils  : 1.13.1
ionic (Ionic CLI) : 3.13.2

global packages:
cordova (Cordova CLI) : 6.5.0

local packages:
@ionic/app-scripts : 2.1.4
Cordova Platforms  : android 6.1.2 browser 4.1.0
Ionic Framework    : ionic-angular 3.7.1

System:
Android SDK Tools : 25.2.5
Node              : v7.10.0
npm               : 3.10.10
OS                : Linux 4.4

Misc:
backend : pro

As a workround I have installed @types/wicg-mediasession:
https://www.npmjs.com/package/@types/wicg-mediasession

PRs welcomed. You can find more information about contributing lib.d.ts fixes at https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md#contributing-libdts-fixes.

I would be glad to help in the future. Currently I do not have the enough knowledge to contribute.
However I have given a workaround to help other people facing the same issue.
Best regards,
Pablo

Hi @pablo-gonzalez, I am getting exactly same error while trying to use MediaSession in Typescript. I tried installing @types/wicg-mediasession as well but couldn't resolve the issue.
Here's the response from the developer when I tried to this library in my Angular project:
https://github.com/WICG/mediasession/issues/206#event-1998400585
Thanks!

(Exactly) 3 years after this issue, the only "solution" is using // @ts-ignore?

The "solution" is not // @ts-ignore but installing @types/wicg-mediasession as stated by @pablo-gonzalez
npm install --save-dev @types/wicg-mediasession

I'm using it now and it's working fantastic!

The "solution" is not // @ts-ignore but installing @types/wicg-mediasession as stated by @pablo-gonzalez
npm install --save-dev @types/wicg-mediasession

I'm using it now and it's working fantastic!

+1, this is working, the issue may be closed imo. Also add this to some docs so it is google'd better)

The "solution" is not // @ts-ignore but installing @types/wicg-mediasession as stated by @pablo-gonzalez
npm install --save-dev @types/wicg-mediasession

I'm using it now and it's working fantastic!

+1, this is working, the issue may be closed imo. Also add this to some docs so it is google'd better)

I installed @types/wicg-mediasession but its not doing anything to solve the error for me.

I installed @types/wicg-mediasession but its not doing anything to solve the error for me.
Edit: using // @ts-ignore which is working

Try using:
navigator.mediaSession.metadata = new MediaMetadata({
    // ...
});

instead of:
navigator.mediaSession.metadata = {
    // ...
};

I installed @types/wicg-mediasession but its not doing anything to solve the error for me.
Edit: using // @ts-ignore which is working

Try using:
navigator.mediaSession.metadata = new MediaMetadata({
    // ...
});

instead of:
navigator.mediaSession.metadata = {
    // ...
};

because I was also having trouble after installing this library and switching to that fixed it for me.
EDIT: Also make sure to add wicg-mediasession to the compilerOptions.types array in your tsconfig.json.

Thanks for your recommendation. My code was already instantiating the Object with new but I was missing the tsconfig.json entries. However its working now even without those changes in the typescript config, no more errors just like that. Seems it's officially supported now?

Okay.

Just looking at old issues; this was fixed in #44684.


[Snyk] Upgrade @giscus/react from 2.2.4 to 2.2.6

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade @giscus/react from 2.2.4 to 2.2.6.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 2 versions ahead of your current version.
The recommended version was released 23 days ago, on 2022-12-18.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

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

Coverage data is based on head (aa7c8ae) compared to base (e77b208).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #470   +/-   ##
=======================================
  Coverage   80.00%   80.00%
=======================================
  Files          31       31
  Lines         365      365
  Branches       60       60
=======================================
  Hits          292      292
  Misses         67       67
  Partials        6        6

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.


Qute is now supporting fragments

It seems VSCode extension doesn't support this yet.
See https://quarkus.io/guides/qute-reference#fragments
cc @mkouba

Thanks for reporting this issue. We need to implement it.

@mkouba how do you sync new features with the tooling teams? Maybe those should be anticipated?

@mkouba how do you sync new features with the tooling teams? Maybe those should be anticipated?

Yes they should :-)

@mkouba how do you sync new features with the tooling teams? Maybe those should be anticipated?

Unfortunately, there is no sync process at the moment. I believe that we should just file a new issue here when a new feature lands in the main branch?
FTR Type-safe Fragments: https://quarkus.io/guides/qute-reference#type_safe_fragments

@fbricon if we create an issue here, is this synced in the team for all IDEs plugins?

If the work only involves development on the https://github.com/redhat-developer/quarkus-ls side, then all IDEs will automatically reap the benefits. VS Code is the 1st consumer, Eclipse and IntelliJ will pick it up eventually.
Anything that involves custom UI work, exposing settings and whatnot, requires custom client development. If @jeffmaury follows changes on the quarkus-ls repo, I think he should be able to follow up on the Eclipse and IntelliJ side of things on his own. Else we'll give him a nudge ;-)

For fragment it will require some work on JDT LS side, so @jeffmaury will need to do the same thing for IJ.
I have the intention to work on this issue.

@ia3andy in your sample I have the impression that when you write $ in method of TemplateInstance it defines the fragment id (noteList). Is it corect?
I have not found some documentation which explains that in https://quarkus.io/guides/qute-reference#fragments
Which support of fragment are you expecting?

I have not found some documentation which explains that in https://quarkus.io/guides/qute-reference#fragments

I believe that this is documented in the Type-safe Fragments section (it's a quarkus-specific feature).

I believe that this is documented in the Type-safe Fragments section (it's a quarkus-specific feature).

Thanks for your clarification @mkouba
I started the support of fragment with https://github.com/redhat-developer/quarkus-ls/pull/768
You can notice that cmpletion, hover of section show link(s) of the documentation

It will avoid for newbie (like me) to forget some part of documentation.

@ia3andy is it possible to share your project with fragment please, in order to that I play with it. Thanks.

@mkouba @ia3andy you can see a demo with my current work for fragment support at https://github.com/redhat-developer/quarkus-ls/pull/769#issuecomment-1386729827
Please add comments in this PR if you need some improvement , another features for fragment support, etc. Thanks.

@angelozerr sorry for the delay, here is the project: https://github.com/ia3andy/renotes/

@angelozerr sorry for the delay, here is the project: https://github.com/ia3andy/renotes/

Thanks so much @ia3andy I will try with your project to see if there are not some usecases that I could miss.


Storing CRDTs in the database

Idea of storing CRDTs into triple store has came up, specifically what if we just stored those as blob values ?

Here is my rough thoughts on the matter
I think we could absolutely store arbitrary stuff as serialized blobs, I expect we'll need to regardless. It's not unreasonable to do it for an automerge document, however there are several nuances to consider:

Every change will be a conflict as in two concurrent updates will produce two CRDT docs that are different so retracting old and writing new is not going to pan out.
We could potentially do compare and swap (CAS) operations that reject assertion if retraction is outdated. This is going to prevent unintentional overwrites, and not really in eventual consistency settings, but probably better than not have it.
Yet another alternative could be to for each actor to write own op-log and merge at the edge, but I'm not sure if that would fit right in or some of the storage will need to be altered (If I recall correctly automerge's binary format lumped everyones changes together).
We could also potentially support custom merge system e.g. if we want automerge we could express somehow that assertion is not compare & swap but rather merge. This is probably most promising out of above options

⚠ however it would likely affect sync in not so pleasant way.

This does raise some interesting questions around indexing and what one would except there ? My general suggestion is treat triple store as an index, that is index data locally in terms of derived triples and transact those. Storing actual data separately (e.g. in S3 like thing) is probably a better anyway. That would provide faster (index) sync and on-demand reads from things that cache well.

However index locally is probably not going to pan out as local replicas diverge and will end up with conflicting indexes.
Perhaps this is where deriving index at DB would make more sense

Finally I think CRDTs natively with Datalog seems a lot more promising, but admittedly more complicated.


Digitally sign tsp.ps1

Clear and concise description of the problem
I met the following error when trying to install vs code plugin for typespec.
PS C:\Users\xxx> tsp code install
tsp : File C:\Users\xxx\AppData\Roaming\npm\tsp.ps1 cannot be loaded. The file
C:\Users\xxx\AppData\Roaming\npm\tsp.ps1 is not digitally signed. You cannot run this script on the current
system. For more information about running scripts and setting execution policy, see about_Execution_Policies at
https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ tsp code install
+ ~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

It would be better if we could digitally sign tsp.ps1. Otherwise, customers have to downgrade the execution policy.

My local execution policy is set to AllSigned by default.
Checklist

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

This is not created by us, where did you get this ps1 file?

This is likely the PS1 wrapper generated by npm on windows and placed in the bin folder. I don't think we can do anything to sign it.

Issue from npm https://github.com/npm/cli/issues/470 about this

This is likely the PS1 wrapper generated by npm on windows and placed in the bin folder. I don't think we can do anything to sign it.

Thanks. Per conclusion of solutions here, looks like we need to add a doc to let users delete the tsp.ps1?

I don't think so, the conclusion is to loosen the script execution policy or use npx. And not sure this is really for us to show the docs on this

close since there is no easy solution for that


Add hal::soft::dual_pwm_motor implementation

#include <libhal/motor.hpp>
#include <libhal/pwm.hpp>

class dual_pwm_motor : public hal::motor
{
  dual_pwm_motor(hal::pwm& p_forward, hal::pwm& p_reverse);
  hal::status slow_decay(bool p_enable = true);
};

Some motor controllers require two pwm signals to operate with speed control for both forward and reverse operations.
A list of such drivers can be found below:

https://www.ti.com/lit/ds/symlink/drv8833.pdf
https://www.st.com/en/motor-drivers/l298.html
https://www.allegromicro.com/en/products/motor-drivers/brush-dc-motor-drivers/a4950

This slow_decay() function allows the user to control whether the motor is in slow decay or fast decay mode. The driver should default to slow decay. Fast decay allows the motor to coast when not driven by the driver or when reducing speed. Slow decay means braking when speed is reduced which tends to give a better and more linear drive response for control.

Also! The constructor should also take in a struct that identifies what voltage level represents slow decay and fast decay. Usually slow decay would mean setting both pins to HIGH and fast decay is setting both pins LOW, or vise versa.


Fixing the absence of 2.6 on Anaconda

It seems the upload on Anaconda didn't work. Latest entries are for 2.4 https://anaconda.org/conda-forge/torchsde/files

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

It seems the upload of 2.6 on Anaconda never worked

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found some lint.
Here's what I've got...
For recipe/meta.yaml:

❌ This recipe is using a compiler, which now requires adding a build dependence on {{ stdlib("c") }} as well. Note that this rule applies to each output of the recipe using a compiler. For further details, please see https://github.com/conda-forge/conda-forge.github.io/issues/2102.

For recipe/meta.yaml:

ℹ In conda-forge.yml: $.build_with_mambabuild = False.

'Build With Mambabuild' is deprecated.
build_with_mambabuild is deprecated, use conda_build_tool instead.

Schema
{
  "anyOf": [
    {
      "type": "boolean"
    },
    {
      "type": "null"
    }
  ],
  "default": true,
  "deprecated": true,
  "title": "Build With Mambabuild"
}

Hi! This is the friendly automated conda-forge-webservice.
I tried to rerender for you but ran into some issues. Please check the output logs of the GitHub actions workflow below for more details. You can also ping conda-forge/core for further assistance or you can try rerendering locally.
The following suggestions might help debug any issues:

Is the recipe/{meta.yaml,recipe.yaml} file valid?
If there is a recipe/conda-build-config.yaml file in the feedstock make sure that it is compatible with the current global pinnnings.
Is the fork used for this PR on an organization or user GitHub account? Automated rerendering via the webservices admin bot only works for user GitHub accounts.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/11939675762.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe/meta.yaml:

ℹ In conda-forge.yml: $.build_with_mambabuild = False.

'Build With Mambabuild' is deprecated.
build_with_mambabuild is deprecated, use conda_build_tool instead.

Schema
{
  "anyOf": [
    {
      "type": "boolean"
    },
    {
      "type": "null"
    }
  ],
  "default": true,
  "deprecated": true,
  "title": "Build With Mambabuild"
}

Hi! This is the friendly automated conda-forge-webservice.
I tried to rerender for you but ran into some issues. Please check the output logs of the GitHub actions workflow below for more details. You can also ping conda-forge/core for further assistance or you can try rerendering locally.
The following suggestions might help debug any issues:

Is the recipe/{meta.yaml,recipe.yaml} file valid?
If there is a recipe/conda-build-config.yaml file in the feedstock make sure that it is compatible with the current global pinnnings.
Is the fork used for this PR on an organization or user GitHub account? Automated rerendering via the webservices admin bot only works for user GitHub accounts.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/11939882707.

@conda-forge-admin, please rerender


Key based on multiple column information

My data doesn't have a single column that can act as a key, but a combination of columns.
Can react-bootstrap-table be used in this situation?
Cheers
Greg B.

HI, @Wind4Greg, react-bootstrap-table need a column presented as a key column. But a workaround is you can generate a new column for key by a time serial or a combination column, then you can hide it will be perfect.  How about that?
Thanks:)

Thanks for the quick response. That works great!
Cheers


WFLY-10431 upgrade guava from 20.0 to 25.0-jre

https://issues.jboss.org/browse/WFLY-10431
This fixes CVE-2018-10237.

Adding hold until some internal discussions are resolved


Add inputs for merge-method and merge-author-email

Codecov Report

Merging #3 (e4b28d0) into main (0ce90ba) will increase coverage by 19.70%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             main        #3       +/-   ##
============================================
+ Coverage   80.29%   100.00%   +19.70%
============================================
  Files           2         2
  Lines         137       143        +6
  Branches       27        28        +1
============================================
+ Hits          110       143       +33
+ Partials       27         0       -27

Impacted Files
Coverage Δ

src/result.ts
100.00% <100.00%> (+10.00%)
:arrow_up:

src/run.ts
100.00% <100.00%> (+20.47%)
:arrow_up:

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 0ce90ba...e4b28d0. Read the comment docs.


Memory.shift() losing blocks

MVE:
>>> foo = bytesparse.Memory.from_blocks([[123, b'foo']])
>>> area = foo.extract(100, 200, pattern=None)
>>> print(list(area.blocks()))
[[123, bytearray(b'foo')]]
>>> area.shift(300)
>>> print(list(area.blocks()))
[]

Expected behavior: the modified area object should report the block at position 423.

Hi, please try by providing bound=False to extract().
By default, bound=True because it's the only way to hold information about any empty space around the selection bounds.

Hi, okay, setting bound=True seems to resolve it. I.e. the selected data appears after shift(), with the correct offset.
But from the naive user's perspective this looks quite unnatural and surprising. So there is a semi-hidden concept of "bounds" in the Memory class which I probably haven't fully understood yet, and then there are hidden trimming attributes applied to content at some later moment (that is what shift... modifies, right?). But when you are programming defensively, and checking of what your object probably carries, the check with .blocks() or similar lures you into wrong assumptions. Please don't get me wrong, it probably makes sense in the overall picture, it's just sometimes hard to comprehend.

I agree that there are some features that need better documentation and cross-referencing.

I have done more with it now and sorry, no, it is still doing the wrong things. And it is just not about the bounds=... parameter. What I see is that when cut or extract is used, the data is simply reported as missing. .content_size tells the size, but the blocks() iterable is suddenly empty. And the similar pattern happens on other places.
Just have a look at the attached example, code should be self-explaining. Instead of getting the binary chunk being pasted multiple times into the Memory object, it seems to simply have destroyed its contents. For a moment, I though that the write() command might be intentionally consuming the contents, but even using a copy does not confirm that hypothesis. Or is maybe even .copy() buggy?
So the the output is:

ID    SIZE  RANGE

0      89  0x00000000--0x00000059
ID    SIZE    RANGE

ID    SIZE  RANGE

0      89  0x00000000--0x00000059
ID    SIZE    RANGE

ID    SIZE  RANGE

0      89  0x00000000--0x00000059
ID    SIZE  RANGE

0      89  0x00000000--0x00000059
1      89  0x00000400--0x00000459
2      89  0x00000800--0x00000859
ID    SIZE  RANGE

0      89  0x00000000--0x00000059
ID    SIZE  RANGE

0      89  0x00000000--0x00000059
1      89  0x00000400--0x00000459
2      89  0x00000800--0x00000859
python-BaseException
Traceback (most recent call last):
File "/home/theone/.local/lib/python3.11/site-packages/hexrec/records.py", line 1835, in save_memory
cls.write_memory(stream, memory,
File "/home/theone/.local/lib/python3.11/site-packages/hexrec/records.py", line 1760, in write_memory
cls.write_blocks(stream, memory.blocks,
File "/home/theone/.local/lib/python3.11/site-packages/hexrec/records.py", line 1601, in write_blocks
records = blocks_to_records(blocks, cls,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/theone/.local/lib/python3.11/site-packages/hexrec/records.py", line 251, in blocks_to_records
for start, items in blocks:
TypeError: 'method' object is not iterable
Process finished with exit code 1

That is on Linux with Python 3.11.1. On Windows and with Python 3.9.x I have seen other things, like .cut() apparently has erased contents but not really, just replaced them with blanks (filling zeroes), but writing the extracted object back with write() has apparently not added anything.
And the commented out part shows the strange effects mentioned in the beginning.
And in the end I have ended up pasting the bytes() ranging manually. That seemed to work on the first glance, but then I cannot even save the resulting object to a file, see exception.
playground.py.txt

Ok I'm going to debug as soon as I can (I'm very busy these weeks).

Hi, I've just debugged the code.
It looks like the problem is related to Memory.copy(), because currently it creates a shallow copy, as stated in its docstring.
So, for usability purposes, that method should create a deep copy instead.
As a workaround, please call Memory,__deepcopy__().
As an example, I replaced the red file with bytes.bin, and uncommented the final part.
With this quick and dirty replacement, I get the following output:
  ID    SIZE  RANGE
----  ------  ----------------------
   0     256  0x00000000--0x00000100

  ID    SIZE  RANGE
----  ------  ----------------------
   0     256  0x00000000--0x00000100
   1     256  0x00000400--0x00000500
   2     256  0x00000C00--0x00000D00

  ID    SIZE  RANGE
----  ------  ----------------------
   0     256  0x00000000--0x00000100

  ID    SIZE  RANGE
----  ------  ----------------------
   0     256  0x00000000--0x00000100
   1     256  0x00000400--0x00000500
   2     256  0x00000C00--0x00000D00

  ID    SIZE  RANGE
----  ------  ----------------------
   0     256  0x00000000--0x00000100

  ID    SIZE  RANGE
----  ------  ----------------------
   0     256  0x00000000--0x00000100
   1     256  0x00000400--0x00000500
   2     256  0x00000800--0x00000900

  ID    SIZE  RANGE
----  ------  ----------------------
   0     256  0x00000000--0x00000100

  ID    SIZE  RANGE
----  ------  ----------------------
   0     256  0x00000000--0x00000100
   1     256  0x00000400--0x00000500
   2     256  0x00000800--0x00000900

ID    SIZE    RANGE
----  ------  -------

ID    SIZE    RANGE
----  ------  -------

  ID    SIZE  RANGE
----  ------  ----------------------
   0     256  0x00000000--0x00000100
   1     256  0x00000400--0x00000500
   2     256  0x00000800--0x00000900

About the exception: it looks like you're using a hexrec version take from PyPI, which isn't aligned with the bytesparse package. You should instead install both from source.


API Gateway should scale (enhancement)

The gateway could be a bottleneck in very high workloads. It should be able to scale.
Current Behavior
Prometheus scraping would break
Possible Solution
Add to prometheus.yml config:
  - job_name: "gateway"
    scrape_interval: 5s
    dns_sd_configs:
      - names: ['tasks.gateway']
        port: 8080
        type: A
        refresh_interval: 5s

I'm looking at deploying this on a Swarm cluster with dynamically scaled VMs. I was thinking of deploying the admin UI on the master node (on a separate port) and having the gateway be a Swarm replicated service.
Being able to split the admin UI from the gateway (on separate ports) would also help with #32, since it would make it easier to put something like an OAuth-enabled reverse proxy in front to authenticate humans.

Would be good to find out more of your use cases. What are the benefits of splitting UI/gateway over keeping them together and just scaling?

The gateway can now scale and Prometheus will respond to this too - docker service scale func_gateway=2. I'm still interested in the idea of scaling via CPU workload.


ITI sex and gender profiling

The HL7 September Ballot includes the following ballot item "HL7 Cross Paradigm Implementation Guide: "Sex and Gender Representation, Release 1". This introduces v2 segments, FHIR extensions and CDA updates for encoding sex and gender.
IG: https://build.fhir.org/ig/HL7/fhir-gender-harmony/branches/main/index.html
Use Cases: https://confluence.hl7.org/display/VOC/Cross+Paradigm+Use+Cases
This work item will likely entail:

Inventory of ITI transactions that profile administrative sex
Analysis of related Volume 1 content in the context of  Gender Harmony Use Cases
Supplement or several CPs

Should we address all IHE profiles that could be impacted?
PIX, PIXm, PDQ, PDQm, PIMR, XCPD
do we touch PIXv3, PDQv3?
do we add an option that helps guide readers to using the HL7 gender harmony IG methodology?
How does a community handle having participation from organizations that handle gender differently, or not at all. What happens when one org is using the gender harmony methods, and another is not?
what is the impact to Privacy from the use of gender harmony? Especially within a community.

will continue to wait for HL7 output

Create a gender harmony CP to be processed on the usual CP call.
For at least FHIR, v2, XCPD, and Document Entry Source Patient Info

CP was created.  Has been submitted: CP-ITI-1297

see the latest Patient profiling in us-Core (ci build) for recommended way to pull in gender harmony. I think we should do similar.
https://build.fhir.org/ig/HL7/US-Core/StructureDefinition-us-core-patient.html


we need to migrate to AGP 3.2.0

Before reporting issue, please confirm your project that

your Activity's windowSoftInputMode is set to the mode that actually changes Activity's height upon Keyboard visibility change.
If windowSoftInputMode does not change Activity's height, the library can't detect Keyboard visibility change.

your Keyboard is actually changing Activity's height.
The library can't detect event when a user is using a keyboard that does not change Activity's height.

If either of these are true, It's the library's limitation. I can't help you for now.
If you come up with something nice to handle these situation, please help me :)
If neither of these are true, please tell me your issue.
You need to let me know:

your Activity's windowSoftInputMode
Android version
Android device
and other stuff you think might be helpful

dupe of #29
Please be polite. Do not spam.


Bad kerning in Text()

Description of bug / unexpected behavior

When using Text() or Paragraph(), the spacing between letters is generally off regardless of the choice of the font. This is probably an issue with Pango.
See the attached images.
Expected behavior

The spacing between the letters should be more balanced and evenly distributed.
How to reproduce the issue

Code for reproducing the problem
class DemoScene(Scene):
    def construct(self):
        paragraph = Paragraph(
            """
        Lorem ipsum dolor sit amet, consectetur adipiscing elit,
        sed do eiusmod tempor incididunt ut labore et dolore
        magna aliqua. Ut enim ad minim veniam, quis nostrud.""",
            font="Helvetica", font_size=32, line_spacing = 0.5
        )
        self.add(paragraph)

Additional media files

Images/GIFs

Logs
Terminal output

PASTE HERE OR PROVIDE LINK TO https://pastebin.com/ OR SIMILAR

System specifications
System Details
I rendered it using the Manimator in the Manim Community Server. The version is 0.15.2

OS (with version, e.g., Windows 10 v2004 or macOS 10.15 (Catalina)):
RAM:
Python version (python/py/python3 --version):
Installed modules (provide output from pip list):

PASTE HERE

LaTeX details

LaTeX distribution (e.g. TeX Live 2020):
Installed LaTeX packages:

FFMPEG
Output of ffmpeg -version:
PASTE HERE

Additional comments

I've found this same issue. I think it's a problem about pango and/or cairo and the font size. Let me explain.
Cause of the issue
If you run this code:
class BadKerning(Scene):
    def construct(self):
        import manimpango

          g = VGroup()
          for size in range(0,100,2):
              g += Text("{}:THIN".format(size), font="Open Sans", font_size=size, disable_ligatures=True)
          self.add(g.arrange(DOWN).scale(0.25))

You will something like this:

Using large font sizes, the kerning is good. But if you download the image (it's a 5000x5000), and check smaller font sizes, then you can see bad kerning. I've read: https://gitlab.gnome.org/GNOME/pango/-/issues/686. And I think it's an issue about generating text for screens, in pixel size.
Proposed solution
Using bigger font sizes clearly improves the kerning. But I don't want to have bigger fonts all the time, obviously. That's why I changed the line 77 in text -> text_mobject.py
TEXT_MOB_SCALE_FACTOR = 0.005 # Or even a smaller value.
That reduces the scale or the text object. You have to choose bigger font sizes to look similar, but it will look nice even in small texts.

@Fairlight8 works fine, thank you for your answer


Improvement to login page of SwapReads

I will be improving the login page by making the following changes:

Changing the "Submit" button text to "Login."
Adjusting the length of the login card so the user won't need to scroll while logging in.

These changes will enhance the page's usability and user experience.
@anuragverma108 please assign this to me

by using antd and shadcn
i will improve and better login page
@anuragverma108 please assign this to me


Change .first behaviour

For now this wouldn't work:
let id = knex('users').insert(user, 'id').first();

So I have to right something like:
let id = knex('users').insert(user, 'id').spread((id) => id);

Would you change this behaviour?
Or maybe add insertOne method?

I'm actually considering altering the insert behavior so the shape of what is passed in matches the shape of the result ->
knex('users').insert({firstName: 'User'}, 'id') -> returns an id

while:
knex('users').insert([{firstName: 'User'}], 'id') -> returns an array of ids

This'd be a breaking change but it seems more consistent.

@tgriesser I think this would be inconsistent, and also breaks a lot of code. Return type shouldn't depends on incoming args.
I guess it would be better add insertOne method.
For example, mongodb deprecated same api in new driver, and introduces insertOne and insertMany, instead of insert. http://mongodb.github.io/node-mongodb-native/2.0/api/Collection.html#insert

Note that Bluebird has a .get() method, so you could do .get(0) to get the first element of an array from a promised value. I'm not 100% certain that knex proxies this method though. At one point I remember submitting a patch to flesh out the proxied Promise methods, but ideally we'd iterate over the prototype or something to keep up to date with any changes to Bluebird's API.

.get(0) works, I have used it.

For future reference of anyone coming from Google, using ES6 array destructuring with .returning() is similar to first(). E.g.:
(async () => {
  const [firstRow] = await knex('mytable').insert({field: 1}).returning('*');
})()


add v3 tags to action conditions

Actions have several publish steps that are gated by pushes to tags starting with v2. This adds the same for tags starting with v3.

Looks good superficially, but I think most importantly @roidelapluie should approve the latest change as he is the mastermind behind the module versioning and should verify that I have remembered correctly.


[MPG][Python] Unify CodeGen - Support AutoRest Extensions for OpenAPI 2.0

https://github.com/weidongxu-microsoft/work-notes/pull/6/files#diff-a0291ccf094def4ea830dfc9fb671cb6c9eb5d8ec6547ff9f2fdc838e0588f91

I believe python has parity, closing because of this, @ArthurMa1978 please reopen if still an issue


Custom signing key requirement missing?

I followed the article and got as far as getting an error response from AAD. Is a step to create a custom signing key for the app missing from the article? (I am having trouble finding how to do this for an OIDC app)
AADSTS50146: This application is required to be configured with an application-specific signing key. It is either not configured with one, or the key has expired or is not yet valid.

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

ID: fe819e4f-33cb-8ab0-a5f1-f197e9fbe499
Version Independent ID: f1818b00-ab24-133a-2ca0-6a268c842614
Content: Custom claims provider reference - Microsoft identity platform
Content Source: articles/active-directory/develop/custom-claims-provider-reference.md
Service: active-directory
Sub-service: develop
GitHub Login: @JasSuri
Microsoft Alias: davidmu

@mrochon
Thanks for your feedback! We will investigate and update as appropriate.

Actually, the missing piece of information in the article is that the app receiving the token has to have the acceptMappedClaims property set to true. I don't know whether using custom signing key works as well or even how to do this but that's the error message. It could be that the message is wrong.

@mrochon
I have assigned the case to content author who will update accordingly.

In this part of the article we state to set the acceptMappedClaims property to avoid using a custom signing key:
{
  "acceptMappedClaims": true,
  "accessTokenAcceptedVersion": 2,
  "appId": "22222222-0000-0000-0000-000000000000",
}

https://learn.microsoft.com/en-us/azure/active-directory/develop/custom-extension-get-started?tabs=azure-portal#33-enable-your-app-for-a-claims-mapping-policy

In this part of the article we state to set the acceptMappedClaims property to avoid using a custom signing key:
{
  "acceptMappedClaims": true,
  "accessTokenAcceptedVersion": 2,
  "appId": "22222222-0000-0000-0000-000000000000",
}

https://learn.microsoft.com/en-us/azure/active-directory/develop/custom-extension-get-started?tabs=azure-portal#33-enable-your-app-for-a-claims-mapping-policy

Which is then immediately followed by this which links to a page that says nothing at all about custom signing keys:
Warning
Do not set acceptMappedClaims property to true for multi-tenant apps, which can allow malicious actors to create claims-mapping policies for your app. Instead configure a custom signing key.

This PR is merged.
#please-close


[Fix #10148] Fix Style/QuotedSymbols handling escaped characters incorrectly

Two cases are improved here:

Escaped double quotes (\") within a double-quoted string are handled correctly (replaced with an unescaped double quote) when converting to a single-quoted string.
Escaped backslashes (\\) are treated properly and not doubled for both single- and double-quoted strings.

Fixes #10148.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Thanks!


rgb/float combination for texture creation produces rgba texture.

(Checked against public version 0.11.0).
See requirebin.
Key excerpts:

    let fbo = regl.framebuffer({
      color: regl.texture({
        color: 'rgb',
        type: 'float'
      }),
      depth: false,
      stencil: false
    });

    console.log('texture.internalFormat:',fbo.color[0]._texture.internalformat);
    console.log('texture.type:',fbo.color[0]._texture.type);

Output:
texture.internalFormat: 6408
texture.type: 5126

Constants show that 6408=0x1908=rgba, and not the expected rgb.

The problem is that using rgb rendertargets should not be allowed, so it should be throwing an exception. But it is not doing that for some reason.

@Erkaman what happens if the texture is created without the FBO?

rgb textures are allowed, if that's what you are asking. But rgb fbos are not allowed.

Are rgb fbos allowed or not?  Some browsers seem ok with it.
At any rate this is not really a 1.0 blocker so I'm taking the milestone tag off.

rgb fbos is not standard. See
https://www.khronos.org/registry/webgl/specs/latest/1.0/#6.6
only when using rgba, we have a guarantee that it will work.

working on this right now.

Turns out that the code posted in the issue was wrong. It should have been
   let fbo = regl.framebuffer({
      color: regl.texture({
        format: 'rgb', // CHANGE IS HERE
        type: 'float'
      }),
      depth: false,
      stencil: false
    });

for this code, it correctly reports that the color attachment is invalid. Which is expected behaviour.
Close.


Start and stop job scheduling

I want to start and end scheduling through start and stop buttons. Once the scheduling works in the background, how can I stop it and vice versa? I didn't find the way to stop scheduler anywhere. cancelAll() only cancels the pending jobs but the scheduler does works again.
Main class
public class LiveTrack extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_live_track);

        //start scheduling
        startLiveTrackBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                jobScheduler = (JobScheduler)getSystemService(JOB_SCHEDULER_SERVICE);
                ComponentName jobService =
                                new ComponentName(getPackageName(), MyJobService.class.getName());
                JobInfo jobInfo =
                                new JobInfo.Builder(MYJOBID, jobService)
                                        .setPeriodic(15 * 60 * 1000L)
                                        .setExtras(bundle)
                                        .build();
                int jobId = jobScheduler.schedule(jobInfo);

                if(jobScheduler.schedule(jobInfo)>0){
                }else{
                    Log.e("status","failed");
                }
            }
        }

        //stop scheduling
        endLiveTrackBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //how can I stop scheduling here until the start button is clicked again??
                jobScheduler.cancelAll();
            }
        });
    }
}

JobService class
public class MyJobService extends JobService{
    @Override
    public boolean onStartJob(JobParameters jobParameters) {
        //some work
    }

    @Override
    public boolean onStopJob(JobParameters jobParameters) {
    }
}

This sample has been deprecated/archived (check README for more information on newer samples related to this technology).
As recommended by GitHub, we are closing all issues and pull requests.


Outdated in Dockerhub

Latest version in Dockerhub is still 4.37.3, which is outdated.
Any plan to update them?

Done. Thanks for notice.


POST to S3 Bucket Returning 403

I am writing a program that will POST a file to a website that is making me go through a few steps to get the file properly uploaded.  In the first step, I perform a simple POST which alerts the site that a file will be uploaded and returns a URL to an S3 bucket, along with some more response content.  The next step is to POST the file to the URL returned in step one, and this is where things break.  An abbreviated version of my code is as follows:
url = 'https://myurl.s3.amazonaws.com/'
payload = {all of the content returned from step one, minus the URL}
file = {'file': open('C:\...\file_name.imscc', 'rb')}
r = requests.post(url, data=payload, files=file)

At this point the code waits for about 15-20 seconds and then gives back a 403 error.  My initial thought was that the file was too large (about 18.58MB) so I tried to use the Multipart Encoder from the Requests Toolbelt.  When I ran this code:
m = MultipartEncoder(fileds={the same values as above, 'file': (files[0], open('C:\Users\jonathan.kulakofsky\Documents\Code\Downloads\\' + files[0], 'rb'))})

I got a Traceback Error that ended with 'Connection aborted.', error(10054, 'An existing connection was forcibly closed by the remote host').
As far as I can tell, I am passing the proper authentication key back to Amazon with the rest of the fields in the payload.  Does anyone have any ideas why I'm getting these errors?

I suspect that Amazon is returning a 4XX status code and then getting mad when we keep sending the data.
Do you need to multipart encode this data, or do you just want to post only the bytes of the file?

I only need to post the file.  I only tried the multipart encoder because the requests documentation has a line about requests.post failing for larger files, but doesn't state what qualifies as "large."

Are you sure? You're definitely still posting the data, which suggests you do need the multipart encoding.
Is there any documentation for this API anywhere?

I am not sure, I am a fairly new developer.  Here is the documentation https://canvas.instructure.com/doc/api/file.file_uploads.html#method.file_uploads.post

The most interesting requirement here is that the file must be the last element in the multipart form data. Otherwise, the streaming multipart encoder from the toolbelt is exactly the right thing to be using.
Try changing your fields argument from a dictionary to a list of two-tuples, ensuring that the file parameter comes last, and don't bother providing any other arguments to the file. That would mean, for example:
m = MultipartEncoder(fields=[
    ('key1', 'value1'),
    ('key2', 'value2'),
    ('file', open(<path>, 'rb'))
])

See if that works better. Don't forget to set the headers as in the example.

It's certainly taking longer to process now, but it's still giving me a 403.

It's giving a 403? You're sure?

The next line in the program is print r.status_code and it says 403.

That's interesting @JKulakofsky. A forbidden means that you're not allowed to access that. Are you sure your constructing your request correctly? Is there a reason you can't show us exactly the code you're using?

Well, splitting a list along ':' is great until you hit the item in the list that is 'https://......'.  I was splitting up the success action redirect URL which was throwing off the rest of the post.  I fixed that issue and now I'm getting a 500 error.  So... progress?

@sigmavirus24 The main reason I was avoiding posting the whole code was because it's long and dirty, but here you go:
import requests
import os
import re
from requests_toolbelt.multipart.encoder import MultipartEncoder

etlmig = '*******'
auth = {'Authorization': 'Bearer ' + etlmig}

files = os.listdir('C:\Users\jkulakofsky\Documents\Code\Downloads')

parameters = {'name': files[0]}
r1 = requests.post('https://......', headers=auth, data=parameters)
print r1.status_code # This returns a 200
content1 = r1.content

contentlist1 = content1.split('{')
url1 = contentlist1[1]
url2 = url1.split(',')
url3 = url2[0]
url4 = 'ht.+/'
url5 = re.compile(url4)
url6 = re.findall(url5,url3)
url = url6[0]
contentlist2 = contentlist1[2].split('}')
contentlist3 = contentlist2[0].split(',')
aws = contentlist3[0].split(':')
aws1 = aws[0]
aws1 = aws1[1:-1]
aws2 = aws[1]
aws2 = aws2[1:-1]
fil = contentlist3[1].split(':')
fil1 = fil[0]
fil1 = fil1[1:-1]
fil2 = ''
key = contentlist3[2].split(':')
key1 = key[0]
key1 = key1[1:-1]
key2 = key[1]
key2 = key2[1:-1]
acl = contentlist3[3].split(':')
acl1 = acl[0]
acl1 = acl1[1:-1]
acl2 = acl[1]
acl2 = acl2[1:-1]
pol = contentlist3[4].split(':')
pol1 = pol[0]
pol1 = pol1[1:-1]
pol2 = pol[1]
pol2 = pol2[1:-1]
sig = contentlist3[5].split(':')
sig1 = sig[0]
sig1 = sig1[1:-1]
sig2 = sig[1]
sig2 = sig2[1:-1]
suc = contentlist3[6].split('"')
suc1 = suc[1]
suc2 = suc[3]
flp3 = contentlist2[1].split(',')
flp = flp3[1].split(':')
flp1 = flp[0]
flp1 = flp1[1:-1]
flp2 = flp[1]
flp2 = flp2[1:-1]

m = MultipartEncoder(fields=[
	(key1, key2),
	(acl1, acl2),
	(fil1, fil2),
	(aws1, aws2),
	(pol1, pol2),
	(sig1, sig2),
	(suc1, suc2),
	('file', open('C:\Users\jkulakofsky\Documents\Code\Downloads\\' + files[0], 'rb'))
])
r2 = requests.post(url, data=m, headers={'Content-Type': m.content_type})
print r2.status_code # This returns a 500

It looks like (from the documentation) that you are receiving JSON back. Can you try using r1.json() and accessing that like a dictionary instead of trying to parse out the values by hand?

(Also at this point, I'm very certain this problem isn't in requests and this support request is better suited for StackOverflow.

OK, I'll move it over there.  Thanks for your help, moving the multipart encoder from a dictionary to a list at least solved one of the issues.  When I eventually get a solution working I'll post it here and close the thread.

I think when you start using r1.json() you'll be able to wrap this up quickly. StackOverflow will help you write this code though, which is not what we're here for. We're here to fix bugs in requests.

@JKulakofsky instead of using split across a url string, why not use the module urlparse (i think the relevant method is urlparse.urlsplit)?

@ueg1990 you're misunderstanding the problem.


Add completion code to "thank you for participating" after everything is done

or just make the debrief screen what they see after the batch is closed

Specifically, this means editing the "completeMessage" in NoGames.jsx to include the completion code. We could also add a completion code for the failureMessage.

Complete in https://github.com/Watts-Lab/deliberation-empirica/pull/683


Added snippet RGBToCMYK

This PR adds a new snippet RGBToCMYK for converting RGB values to CMYK format.

Hey @Melvin-Abraham, thanks for your effort and submission.
I am not entirely sure we accept these kinds of snippets considering colors in CMYK format are not used in the digital world at all.
based on this source:

When to use CMYK?
Use CMYK for any project design that will be physically printed, not viewed on a screen.

I honestly do not see a use case for such a snippet.
I'll let @Chalarangelo make the final decision here.

I agree with @fejes713 on this one. CMYK is a print-only format which doesn't really apply to web technologies. I'll close this due to that. Thanks for contributing anyhow.

@fejes713 @Chalarangelo Your point seems fair but there's one important point to consider. If you read through this article, you might notice the following:

Certain RGB colors that you can see on your monitor (in particular, bright blue, green and red) cannot be replicated with standard CMYK inks. These unachievable RGB colors are said to be "out of the CMYK color gamut." When selecting colors for your print project, use CMYK color builds to avoid potential RGB conversion issues.

So, the main application of the CMYK color space is in image manipulation applications that gives more accurate color representations for printers and avoids the suspense of prints coming out with inaccurate colors (e.g. for billboards, posters, etc.). This is implemented by some of the reputed softwares like Photoshop, Illustration, etc. (just refer to the link that was sent by you: source).
As an example, I could think of an electron.js based image manipulation application making use of CMYK color space optimizing for prints which could make use of this snippet.
Do reconsider this point and if you think that's valid, I would be happy to reopen this PR...


Two documents of JS How to use jsdoc generate one document

One of my problems is that I have two JS documents in a folder,  A.js and B.js，when I use the JSDoc command, the later generation will always cover the document over the front side. How should this be solved?
I look forward to your reply. Thank you.

I find the way from http://usejsdoc.org/about-commandline.html,thanks


Enhance escrow interface for metadata resolution from escrowed NFTs & FT Vaults

Description
As reported by @bjartek, the interface for metadata resolution on escrowed NFTs is lacking. At a minimum a caller should be able to:

Resolve a view against an escrowed NFT
Get views supported by an escrowed NFT

Originally, the idea of exposing a reference to an escrowed resource sounded like a potential vulnerability given the ability to downcast the reference. However, any project implementing an NFT in a manner that would expose sensitive methods by downcasting form a publicly available reference (see ViewResolver.ResolverCollection.borrowViewResolver) would be doing so against the intended use of the ecosystem standards and so would be vulnerable in any context, not exclusively from escrow.
What we'll likely do then is simply add the ability to borrow an escrowed NFT as a &{ViewResolver.Resolver} to FlowEVMBridgeNFTEscrow with a signature like:
access(all) view fun borrowViewResolver(nftType: Type, id: UInt64): &{ViewResolver.Resolver}?

We'll of course also want to add a similar method to FlowEVMBridgeTokenEscrow

we have https://github.com/onflow/flow-evm-bridge/blob/a9d52f9b715b141c343b985b1aafa7e25e3202f7/cadence/contracts/bridge/FlowEVMBridgeNFTEscrow.cdc#L124 so I am not sure this is really needed.

Updating to reflect recent conversations. Any non-view method calling through to an escrowed resource should be protected with view to ensure state in the escrowed resource cannot be mutated by external actors. To ensure metadata can be resolved, scripts should be updated to support retrieval of metadata solely within the context of a script which is inherently non-mutating.

Updating to reflect recent conversations. Any non-view method calling through to an escrowed resource should be protected with view to ensure state in the escrowed resource cannot be mutated by external actors.

Seems you are trying to solve the unsolvable.


Implement logic for retrieving all pages, and falling back when an error is encountered

This should be fixed in a single PR associated with issue #256


Remove trailing commas from Exemplar API docs

The trailing commas here make this example invalid JSON. This removes them.

Thanks!