The HTTP request is unauthorized with client authentication scheme 'Basic'

I receive the below error when trying to connect to Autotask with the latest version of the module ERROR: Exception calling "query" with "2" argument(s): "The HTTP request is unauthorized with client authentication scheme 'Basic'. The authentication header received from the server was 'Basic Realm="webservices4.autotask.net"'."
I was using <IP_ADDRESS> previously and that connected fine.

@SBartley08 are you connecting with a API Tracking Identifer?
either way, can you post the code you are using to connect?

This is how im trying to connect (credentials are my Autotask username and password), I have also changed the path to XXXX to hide some infomation.
Connect-AutotaskWebAPI
cmdlet Connect-AtwsWebAPI at command pipeline position 1
Supply values for the following parameters:
Credential
ApiTrackingIdentifier: powershell
ERROR: Exception calling "query" with "2" argument(s): "The HTTP request is unauthorized with client authentication scheme 'Basic'. The authentication header received from the server was 'Basic Realm="webservices4.autotask.net"'."
Stacktrace:
at Get-AtwsData, C:\Users\XXXXX\Documents\WindowsPowerShell\Modules\Autotask\1.6.10\Private\Get-AtwsData.ps1: line 112
at Connect-AtwsWebServices, C:\Users\XXXX\Documents\WindowsPowerShell\Modules\Autotask\1.6.10\Private\Connect-AtwsWebServices.ps1: line 215
at , C:\Users\XXXX\Documents\WindowsPowerShell\Modules\Autotask\1.6.10\Autotask.psm1: line 134
at Connect-AtwsWebAPI, C:\Users\XXXX\Documents\WindowsPowerShell\Modules\Autotask\1.6.10\Public\Connect-AtwsWebAPI.ps1: line 187
at , : line 1

Looking at it again I think I see what the issue is, I want to connect to the V1.5 of the API (without the api key) is there a way to do this with the latest module or do I need to use a old version ?

@SBartley08 interesting. did not eaven know the 1.5 version still worked. The 1.6V requires an API tracking identifier, and cannot be empty. I dont know of any reason why anyone would stay behind on the 1.5v? why are you not using the 1.6v?
However, the module probably lost support for v1.5 at some point after <IP_ADDRESS>, i dont know any details unfortunately.
@klemmestad , you have anything to add to this?
@SBartley08 , mr. Klemmestad may not answer in a while, but worth a shot.
Im currently using the 2.0.0beta2 module myself, along with the API 1.6v. This module is a lot faster, and ps core enabled.

I've tried various versions, including the beta. but when I try to connect I get the message: ERROR: Exception calling "query" with "2" argument(s): "The HTTP request is unauthorized with client authentication scheme 'Basic'. The authentication header received from the server was 'Basic Realm="webservices4.autotask.net"'."
I use the script below, but can't find the issue.
Password setup
$ATpassword = ConvertTo-SecureString -String $ATapiUserPassword -AsPlainText -Force
$ATCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ATapiUserName, $ATpassword
Import Module Refresh
Import-Module AutoTask -Argumentlist $ATCredential, $ATapiKey
Connect
Connect-autotaskWebAPI -Credential $ATCredential -ApiTrackingIdentifier $ATapiKey

The message claims rather bluntly that either your username or password is wrong. Random guess: I have noticed that Autotask retains only the 15 first characters of any password. If you have used a longer one you may have to truncate it at 15 characters. Could this be your problem?

ok, I changed the length to 14 characters. Still it didn't work. so I removed all ofther characters than letters and numbers, and the password works. If I use a password longer than 15, it always works when using interactive logon (get-credential).

So we may have a character encoding issue? I do not force any specific encoding in the SOAP client. I was kind of hoping that defaults would suffice...

@SjoerdSlabbers; if you do
$binding = New-Object ServiceModel.BasicHttpsBinding
$binding.TextEncoding.EncodingName
Do you get "Unicode (UTF-8)"? Is it the same as $OutputEncoding.EncodingName?

$binding = New-Object ServiceModel.BasicHttpsBinding
$binding.TextEncoding.EncodingName

Gives; Unicode (UTF-8)
$OutputEncoding.EncodingName gives: Western European (Windows)

Thats is probably the default for PowerShell 5.1 on Windows. PowerShell Core has Unicode (UTF-8) as default on both. You had special characters in you password when it failed? If so, could you share the characters with me? So I could test if the different output encoding is the problem.

the charcters were: !#@$

That is not characters that would be affected by encoding. Any chance you may have had a quoting mishap? Did the password variable have the correct length?

I removed the characters and shortened the password both in one step. Might be that the password length was the issue

Might be that the password length was the issue


fix(fault_injection): fix launch_testing

Signed-off-by: Keisuke Shima<EMAIL_ADDRESS>Related Issue(required)

Description(required)

Fixed an error in launch_testing.
The problem was in the test code, which was testing the state after initialization and the state after receiving a message separately.
Therefore, I decided to work around the issue by combining the test suites into one.
Review Procedure(required)

Ensure that the CI passes.
Related PR(optional)

https://github.com/tier4/autoware.iv/pull/2088
Pre-Review Checklist for the PR Author
PR Author should check the checkboxes below when creating the PR.

[x] Read commit-guidelines
[x] Assign PR to reviewer

If you are adding new package following items are required:

[ ] Documentation with description of the package is available
[ ] A sample launch file and parameter file are available if the package contains executable nodes

Checklist for the PR Reviewer
Reviewers should check the checkboxes below before approval.

[ ] Commits are properly organized and messages are according to the guideline
[ ] PR title describes the changes

Post-Review Checklist for the PR Author
PR Author should check the checkboxes below before merging.

[ ] All open points are addressed and tracked via issues or tickets

CI Checks

Build and test for PR / build-and-test-pr: Required to pass before the merge.
Build and test for PR / clang-tidy-pr: NOT required to pass before the merge. It is up to the reviewer(s). Found false positives? See the [guidelines][clang-tidy-guidelines].
Check spelling: NOT required to pass before the merge. It is up to the reviewer(s). See here if you want to add some words to the spell check dictionary.

https://github.com/autowarefoundation/autoware.universe/runs/5445008216?check_suite_focus=true
It appears that launch_testing is not running.
Hmmm, I guess I need to add some sort of label.
Related:
https://github.com/autowarefoundation/autoware-github-actions/blob/main/colcon-test/action.yaml#L94

Test label for launch_testing will be added in ros2/launch 0.21.1. https://github.com/ros2/launch/commit/f40029f2b42d72a17113d318f444261331c9c281#diff-12d0b0fc99d046d60698b3b304d5579778fe7a6006cf39ef27ed6adee9853870R7
In the meantime, I will add custom labels.


use variable instead of hard-coded path

here is a fix for hard-coded paths -- let me know if it works for you.

Works for me.  One less thing to worry about, plus the same dbl file can be used for everyone without modification, simplifying maintenance.


react-dom peerDependency

Buggy Behavior
react-apollo has a peerDependency on react-dom, so you get a warning when installing it with react-native.
Expected Behavior
No warning ;)
Version

<EMAIL_ADDRESS><EMAIL_ADDRESS>

@brentvatne there isn't really a way around this? We use react-dom for SSR support as part of the library.

Would an optional dependency work here?

@jbaxleyiii - maybe react-dom-apollo in that case? or optional dependency

This seemed to appear as an error in react-apollo 0.7.3. It's really annoying on react-native.


Hide the deprecated packages

The PR is not needed anymore, as all issues have been addressed by the script work


Particles don't fire again when unmarking "One Shot"

Ubuntu 17.04 - Godot version: 3.0.alpha1
Issue description:
When unmarking the "One Shot" option in a Particles/Particles2D node, it will not start firing again unless either the scene is restarted, or setting off and on the Emitting opition.

I think it's expected. That is the point of One Shot.
Emitting ON + OneShot ON will play the particle only once during its Time/Lifetime and then Stopped. To play the particle again, need to restart Emitting.

I think it could be fixed, there is no reason why this should not happen transparently for the user. Presentation from the actual issue:

I'm not sure but this probably should not be hard to (hence junior job)


[5.5] Fix for migrate:fresh command being unusable if PostGIS is installed

By excluding the spatial_ref_sys table from being deleted, the migrate:fresh command and the RefreshDatabase trait for testing become
usable if the PostGIS extension is enabled for a Postgres database.
Fixes: #20972

Cheers, Taylor!

Good job ! @shabushabu


Improve pup_stl performance

Original author: Nils Deppe (@nilsdeppe)
Original issue: https://charm.cs.illinois.edu/redmine/issues/1572

The serialization of std::vector (and other STL containers) is extremely slow. The reason for this is twofold. First, push_back is used to push into a zero-size (not just empty) container, which results in an insane amount of calls to malloc. My testing found that this can be solved by changing the pup_stl_container function in pup_stl.h to be:

  template <class container,class dtype>
  inline void PUP_stl_container(er &p,container &c) {
    p.syncComment(sync_begin_array);
    int nElem=PUP_stl_container_size(p,c);
    if (p.isUnpacking()) {  // Unpacking: Extract each element and push_back:
      c.resize(nElem);
    }
    PUP_stl_container_items<container, dtype>(p, c);
    p.syncComment(sync_end_array);
  }

This provides a factor of 2-3 or so speedup in serializing std::vector.
The second issue is that even for arithmetic types, such as int, double, and float, the same inefficient algorithm is used. By using PUParray for these cases I get a speedup of more than a factor of 4-5. Here is the changed function:

  template <class T>
  inline void operator|(er &p, typename std::vector<T> &v) {
    if (std::is_arithmetic<T>::value) {
      int number_of_elements = PUP_stl_container_size(p, v);
      if (p.isUnpacking()) {
        if (v.size() != number_of_elements) {
          v.resize(static_cast<size_t>(number_of_elements));
          v.shrink_to_fit();
        }
      }
      PUParray(p, v.data(), number_of_elements);
    } else {
      PUP_stl_container<std::vector<T>, T>(p, v);
    }
  }

The code could be further optimized by removing the if statement in favor of std::enable_if in the function template parameters to "specialize" the function call for arithmetic and non-arithmetic functions. Unfortunately std::is_arithmetic is part of C++11. However, the code is easy to implement. See, for example, the libc++ implementation. At the very least this change should be made for v6.9.0.

Original date: 2017-05-25 22:45:27

I can't imagine why it was written this way, and the git history offers no explanation. I added Nils's first suggestion as a patch here: ~~https://charm.cs.illinois.edu/gerrit/#/c/2554/~~ https://github.com/UIUC-PPL/charm/commit/a0bbd97ab011317faab00e5459684583082be7e6

Original author: Nils Deppe (@nilsdeppe)
Original date: 2017-05-26 12:17:02

Thank you! I think we should keep this ticket around setting the target to 6.9.0 for the second optimization. Thinking about it now, the second optimization could be added to PUP_stl_container by checking container::value_type, but that still requires C++11.

Original date: 2017-05-26 18:19:03

I added explicit specializations for the common arithmetic types so that we have that for the common cases in 6.8.0: ~~https://charm.cs.illinois.edu/gerrit/#/c/2559/~~ https://github.com/UIUC-PPL/charm/commit/d4f7eaa0e7d178d87f4b1e0b277d70db9462825b
We can leave this open targeted to 6.9.0 to complete it once we require C++11 support.

Original date: 2017-05-30 14:34:42

The two patches I posted above were merged, so the remaining issues are to specialize for all arithmetic types (or all types declared PUPbytes), and to use reserve() when possible instead of resize() to avoid calling the constructor repeatedly when unpacking.

Original date: 2017-05-30 14:44:45

Also to use emplace_back instead of push_back where possible to move instead of copy.

Original author: Nils Deppe (@nilsdeppe)
Original date: 2017-05-30 14:53:52

push_back has an r-value override in C++11, so as long as std::move is used that will work fine. I prefer using emplace_back only when wanting to call a constructor other than the copy and move, but this is merely a personal preference :)

Original date: 2017-05-30 15:19:08

Ah, yeah, that makes sense. I'd agree with your preferred expression.

Original date: 2017-10-27 02:46:04

Implemented the second optimization here, now that we are clear of 6.8.2 and are requiring C++11 support for 6.9.0: ~~https://charm.cs.illinois.edu/gerrit/#/c/3177/~~ https://github.com/UIUC-PPL/charm/commit/78480a6186dfb157ccbe98595619b7c801827bf3


fix: allow update enqueue for parent resources being deleted when ignoreStatusChanges is being set to true

fixes part of https://github.com/metacontroller/metacontroller/issues/986
we should also handle the case when deletiontimestamp is added to the parent object, metacontroller should enqueue it. Otherwise, whenever a parent object is deleted, because only timestamp is added in metadata, it will come to updateParentObject() method which will ignore it because there has been no change in the generation, labels or annotations.

@Shashankft9 can you amend commit message to fit the convention:
fix: message
?
Thank you


How to interpret result? No documentation at all

rateR=124.17,threads=5
rateR=127.70,threads=5
rateR=124.80,threads=5
Requestor3: STOP
Requestor1: STOP
totalIterations=14549,avgDuration=122.54,maxrateR=127.73
What is rateR means and also totalIterations and maxrateR?
This is same test run again two MQ using different nfs file system. Which one is better ?
totalIterations=54753,avgDuration=122.54,maxrateR=464.57
totalIterations=14549,avgDuration=122.54,maxrateR=127.73

Hi panho - the default statistics reporting module is RollingAvgStats (https://github.com/ot4i/perf-harness/blob/master/PerfHarness/src/com/ibm/uk/hursley/perfharness/stats/RollingAvgStats.java).
If you run java -cp <CLASSPATH> JMSPerfHarness -hf you should see detailed help information, the last section should give some information on the RollingAvgStats:
com.ibm.uk.hursley.perfharness.stats.Statistics:
  ss    Statistics reporting period. (default: 10)
        Setting this to 0 will disable periodic reporting entirely.
  sp    Display per-thread iteration counts. (default: false)
        The infomation given per thread is the number of iterations (not a
        rate/sec) in the reporting period.
  sw    Statistical discard period (seconds). (default: 0)
        The given warmup period is excluded from the calculations of
        final summary.
  sc    Statistics module to use - options are BasicStats, ResponseTimeStats or RollingAvgStats. (default: RollingAvgStats)

  sd    Sets what is reported as totalDuration. (default: normal)
        "normal" = from 1st iteration to last iteration, excluding setup/takedown.
        "tlf" = Time to Last Fire, from start of main thread till last iteration completes
        (includes setup time but not takedown).

com.ibm.uk.hursley.perfharness.stats.RollingAvgStats:
  sr    Rolling average period (seconds). (default: 30)
        Performance is sampled every second, the number reported is the
        average over the last rolling average period.  During the first period, the
        figure reported is the average over the actual number of seconds elapsed.

com.ibm.uk.hursley.perfharness.cmd.Command:
  cmd_c Command module to use. (default: DummyCommandProcessor)

There should be an extra description under the RollingAvgStats which is missing above but should be addressed with the following pull request I have just submitted for my colleague to review:
https://github.com/ot4i/perf-harness/pull/10
When that pull request is in the help information should additionally show:
com.ibm.uk.hursley.perfharness.stats.RollingAvgStats:
Prints the average of performance over the last 30 seconds on a periodic basis.  The
final summary is the average duration of the WorkerThreads and the maximum
rolling average achieved during that period.

  sr    Rolling average period (seconds). (default: 30)
        Performance is sampled every second, the number reported is the
        average over the last rolling average period.  During the first period, the
        figure reported is the average over the actual number of seconds elapsed.

Other options for statistic reporting modules are BasicStats and ResponseTimeStats.
I will look to improve the documentation here as I agree that it is lacking but hopefully the above should give you the information you need on the output.
Your first test has the result totalIterations=54753,avgDuration=122.54,maxrateR=464.57 which indicates that 54753 messages have been sent/received (depending on how you invoked PerfHarness), that the average duration of each thread was 122.54 seconds and the maximum rolling average (default 30 second) achieved over the period was 464.57.
Your second test has the result totalIterations=14549,avgDuration=122.54,maxrateR=127.73 which indicates that 14549 messages have been sent/received (depending on how you invoked PerfHarness), that the average duration of each thread was 122.54 seconds and the maximum rolling average (default 30 second) achieved over the period was 127.73.
So as long as the tests are comparable the results indicate that the first test showed a higher message rate was achieved.

thanks

Hi all, Can you help me how to increase message rate via this tool/command, I am only getting below result after executing this command -
./cph -tc Requester -nt 5 -jb QMGR1 -jh 10.x.x.x -jp 1416 -jc SYSTEM.DEF.SVRCONN -iq INPUTQ -oq OUTPUTQ -db 1 -rl 300 -jt mqc -pp -tx -ms 4194304
./cph -tc Responder -nt 5 -jb QMGR1 -jh 10.x.x.x -jp 1416 -jc SYSTEM.DEF.SVRCONN -iq INPUTQ -oq OUTPUTQ -db 1 -rl 300 -jt mqc -pp -tx
Result -
totalIterations=1003,totalSeconds=305.84,avgRate=3.28

Hi all, Can you help me how to increase message rate via this tool/command, I am only getting below result after executing this command -
./cph -tc Requester -nt 5 -jb QMGR1 -jh 10.x.x.x -jp 1416 -jc SYSTEM.DEF.SVRCONN -iq INPUTQ -oq OUTPUTQ -db 1 -rl 300 -jt mqc -pp -tx -ms 4194304
./cph -tc Responder -nt 5 -jb QMGR1 -jh 10.x.x.x -jp 1416 -jc SYSTEM.DEF.SVRCONN -iq INPUTQ -oq OUTPUTQ -db 1 -rl 300 -jt mqc -pp -tx
Result -
totalIterations=1003,totalSeconds=305.84,avgRate=3.28

Hi all, Can you help me how to increase message rate via this tool/command, I am only getting below result after executing this command -
./cph -tc Requester -nt 5 -jb QMGR1 -jh 10.x.x.x -jp 1416 -jc SYSTEM.DEF.SVRCONN -iq INPUTQ -oq OUTPUTQ -db 1 -rl 300 -jt mqc -pp -tx -ms 4194304
./cph -tc Responder -nt 5 -jb QMGR1 -jh 10.x.x.x -jp 1416 -jc SYSTEM.DEF.SVRCONN -iq INPUTQ -oq OUTPUTQ -db 1 -rl 300 -jt mqc -pp -tx
Result -
totalIterations=1003,totalSeconds=305.84,avgRate=3.28

This issue is closed and unrelated but to answer your question:
The tool is being run unrated (you're not specifying the -rt parm on the requester), so the results you're getting indicate the fastest you can put and get persistent 4MB messages to a single queue using 5 threads in your environment. You can try increasing the number of threads, but I suspect at the rates you're getting that's not going to help. Spreading the load across multiple queues will reduce locking (e.g. specify -oq REPLY -iq REQUEST -db 1 -dx 5 -dn 1 to spread the messages across queues REQUEST1-REQUEST5 & REPLY1-REPLY5).  The tool is reporting your performance, as designed, you now need to investigate why the rate is that low, check the CPU utilisation of the machines, the network performance and the performance of the filesystem hosting the MQ recovery log. You can find performance rports and other helpful documnetation on our MQ performance GitHub site here: https://ibm-messaging.github.io/mqperf/

Hi all, Can you help me how to increase message rate via this tool/command, I am only getting below result after executing this command -
./cph -tc Requester -nt 5 -jb QMGR1 -jh 10.x.x.x -jp 1416 -jc SYSTEM.DEF.SVRCONN -iq INPUTQ -oq OUTPUTQ -db 1 -rl 300 -jt mqc -pp -tx -ms 4194304
./cph -tc Responder -nt 5 -jb QMGR1 -jh 10.x.x.x -jp 1416 -jc SYSTEM.DEF.SVRCONN -iq INPUTQ -oq OUTPUTQ -db 1 -rl 300 -jt mqc -pp -tx
Result -
totalIterations=1003,totalSeconds=305.84,avgRate=3.28

This issue is closed and unrelated but to answer your question:
The tool is being run unrated (you're not specifying the -rt parm on the requester), so the results you're getting indicate the fastest you can put and get persistent 4MB messages to a single queue using 5 threads in your environment. You can try increasing the number of threads, but I suspect at the rates you're getting that's not going to help. Spreading the load across multiple queues will reduce locking (e.g. specify -oq REPLY -iq REQUEST -db 1 -dx 5 -dn 1 to spread the messages across queues REQUEST1-REQUEST5 & REPLY1-REPLY5).  The tool is reporting your performance, as designed, you now need to investigate why the rate is that low, check the CPU utilisation of the machines, the network performance and the performance of the filesystem hosting the MQ recovery log. You can find performance rports and other helpful documnetation on our MQ performance GitHub site here: https://ibm-messaging.github.io/mqperf/

Hi @pharrishur
thanks a lot for your reply, I have tried as per given instruction from you and getting same result.
would you suggest any thing else like finetunning over the Linux VM etc ? or this is just a limitation of this CPH tool where we can only get below result.
./cph -tc Requester -nt 5 -jb RDQM1 -jh 10.x.x.x -jp 1416 -jc SYSTEM.DEF.SVRCONN -iq INPUTQ -oq OUTPUTQ -db 1 -dx 5 -dn 1 -rl 300 -jt mqc -pp -tx -ms 4194304
totalIterations=1032,totalSeconds=305.09,avgRate=3.38
./cph -tc Responder -nt 5 -jb RDQMDRHAQM2 -jh <IP_ADDRESS> -jp 1416 -jc SYSTEM.DEF.SVRCONN -iq INPUTQ -oq OUTPUTQ -db 1 -dx 5 -dn 1 -rl 300 -jt mqc -pp -tx
totalIterations=1032,totalSeconds=308.98,avgRate=3.34
where below is utlization result during test run -
Disk IO - is 16%
CPU is 22% where 2 CPU are allocated
Network utlization is 7GB
Memory - 35%, where 8GB memory allocated.

Hi @pharrishur
thanks a lot for your reply, I have tried as per given instruction from you and getting same result.
would you suggest any thing else like finetunning over the Linux VM etc ? or this is just a limitation of this CPH tool where we can only get below result.
./cph -tc Requester -nt 5 -jb RDQM1 -jh 10.x.x.x -jp 1416 -jc SYSTEM.DEF.SVRCONN -iq INPUTQ -oq OUTPUTQ -db 1 -dx 5 -dn 1 -rl 300 -jt mqc -pp -tx -ms 4194304
totalIterations=1032,totalSeconds=305.09,avgRate=3.38
./cph -tc Responder -nt 5 -jb RDQMDRHAQM2 -jh <IP_ADDRESS> -jp 1416 -jc SYSTEM.DEF.SVRCONN -iq INPUTQ -oq OUTPUTQ -db 1 -dx 5 -dn 1 -rl 300 -jt mqc -pp -tx
totalIterations=1032,totalSeconds=308.98,avgRate=3.34
where below is utlization result during test run -
Disk IO - is 16%
CPU is 22% where 2 CPU are allocated
Network utlization is 7GB
Memory - 35%, where 8GB memory allocated.

This is a closed issue and your concern relates to the cph test harness. Can you raise an issue at: https://github.com/ibm-messaging/mq-cph
You might want to add information such as the configuration youve applied to your QM, results for varying numbers of requester clients (ensuring that #responders > #requesters), latency between clients and QM, details of your IO subsystem, results for NP messaging etc.

This is a closed issue and your concern relates to the cph test harness. Can you raise an issue at: https://github.com/ibm-messaging/mq-cph
You might want to add information such as the configuration youve applied to your QM, results for varying numbers of requester clients (ensuring that #responders > #requesters), latency between clients and QM, details of your IO subsystem, results for NP messaging etc.

thanks Sam, we are raising the new request. sorry for writting on closed issue.

thanks Sam, we are raising the new request. sorry for writting on closed issue.


Run all test files command (phpunit)

Hey,
sometimes during development I like to check if still all tests pass after I change something so I run phpunit. Would be handy to run it from within Sublime. Simply a "phpunit" call without any options or parameters.
PS: I'm not 100% sure if this does already exists in this extension but I couldn't find it :)

You can setup a keymap to the run all the tests, see https://github.com/gerardroche/sublime-phpunit#key-bindings. The phpunit_test_suite is the command you're looking for. You runall the commands via the Command Palette too, see https://github.com/gerardroche/sublime-phpunit#commands.
Add your preferred key bindings: Menu > Preferences > Key Bindings

[
    { "keys": ["ctrl+shift+a"], "command": "phpunit_test_suite" },
    { "keys": ["ctrl+shift+f"], "command": "phpunit_test_file" },
    { "keys": ["ctrl+shift+n"], "command": "phpunit_test_nearest" },
    { "keys": ["ctrl+shift+l"], "command": "phpunit_test_last" },
    { "keys": ["ctrl+shift+v"], "command": "phpunit_test_visit" },
    { "keys": ["ctrl+shift+s"], "command": "phpunit_test_switch" },
    { "keys": ["ctrl+shift+c"], "command": "phpunit_test_cancel" },
    { "keys": ["ctrl+shift+r"], "command": "phpunit_test_results" },
]


Can't login to support (and therefore can't contact support)

Hi
Can't login to support.sendgrid.com. The big 'Login & Contact Support' button doesn't bring up the login fields. Login to app.sendgrid.com works fine. I tried from 3 different browsers and 2 different Computers (Asked my friend from a different city and of course different IP). Turned off addblockers. Tried with browsers without adblockers. Tried from Window & Linux.
More info:
(step 1) At first when you click login & contact support it brings you to
https://app.sendgrid.com/login?redirect_to=https%3A%2F%2Fsendgrid.com%2Fsupport%2Fsso%2Flogin%3Freturn_to%3Dhttps%253A%252F%252Fsupport.sendgrid.com where you enter credentials and then it returns you to https://support.sendgrid.com/hc/en-us but still doesn't say you are logged in.
Though you actually are logged in - you can confirm by going to https://app.sendgrid.com and see your dashboard.
But at support: https://support.sendgrid.com/hc/en-us still not logged in. and then whenever you click(at https://support.sendgrid.com/hc/en-us) Login & Contact Support it redirects you to https://support.sendgrid.com/hc/en-us/signin?return_to=https%3A%2F%2Fsupport.sendgrid.com and then you arrive the same place not logged in.
Since then clicking the login button just return you to same URL,
But if you go to app.sendgrid.com - where you are logged in- if you log out through there and then click Login & Contact Support - then you will be back to step 1
https://support.sendgrid.com/hc/en-us/signin?return_to=https%3A%2F%2Fsupport.sendgrid.com
Also tried the 'Trouble Logging In?' > 'I am having a different login issue.' and submit there but I didn't get a confirmation that the message was sent.
Something doesn't work there- maybe the captcha?
Please fix this so I can talk to support about my actual problem. Thank you
p.s. It's not so much as you can't log in to support as much as it's the support page not recognizing you are logged in.

Hello @Roko131,
Sorry you're having this issue and thanks for the feedback. I'll pass this info along and see if we can't get you sorted.

Hi @Roko131
Were you able to get taken care of by support? The response that I got was that it might be a cache/cookies issue on your end. Hopefully this helps!

It was not cache/cookies issue on my end.
The support account was blocked by Sendgrid.
And after 6 days of back and forward messages of them saying it's a problem at my end
They finally acknowledged it and unblocked it.
Thanks for checking on the issue.

Hi, I'm having the same problem. I don't know if it's related, but I can't verify my e-mail address, additionally. I always receive the e-mail but the app always return a generic error.


Added documentation about API endpoints and thier purposes

Hi @wei-lee. As you suggested, I have added some documentation about the API endpoints (based upon your updated comments) and inserted into this README.md. Could you please review for correctness.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Yes
On 28 June 2017 at 13:44, Automatron<EMAIL_ADDRESS>wrote:

Can one of the admins verify this patch?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/feedhenry/fh-messaging/pull/19#issuecomment-311548623,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHCe77VEk1dlU7d9K-6OrUlijRvyHvwvks5sIcwEgaJpZM4OHdLw
.

--
CRAIG ROBINSON
SENIOR CLOUD OPERATIONS ENGINEER, RED HAT MOBILE
Red Hat QLD https://www.redhat.com/
193 North Quay, BRISBANE, QLD, Australia
<EMAIL_ADDRESS>  M: +61-431-913-345    IM: crarobin
https://red.ht/sig

add to whitelist

@jasonmadigan I have made some changes to the HTTP method text as you requested.

@brizrobbo 👍  thanks! Merging.


More clean up work

Call eng/common/scripts/SetTestPipelineVersion.ps1
Clean up unused scripts.

/check-enforcer override


Resource Lock

Need capability to provide Locks (CanNotDelete, ReadOnly) at:

[x] Subscription (committed in branch ben_mgmt_lock)
[x] Resource Group  (committed in branch ben_mgmt_lock)
[ ] Resource level (TBD)

As discussed with @LaurentLesle copying sample code below:
resource_groups = {
// #
// # Log Analytics resource groups
// #
la_eus_rg_01_ss = {
name   = "rmazssprdhpblogrg001"
region = "region1"
tags   = {
# "application_id"    =  ""
"application_id"    =  "hpb"
"environment"       = "prd"
"termination_date"  = "NONE"
"created_by"        =<EMAIL_ADDRESS>"stack_name"        = "terraform"
"data_class"        = "yellow"
# "name"    =  "--<resource_type>"
"name"              = "hpb-prd-loganalytics"
"description"         = "resource group for monitoring"
}
# Include this in aztfmod Issue
// resource_lock = {
//   name = "lock for Log Analytics Resource Group"
//   lock_level = "CanNotDelete"
//   notes = "locked to prevent accidental deletion. Remove lock to delete"
// }
}

Hi! Could this be opened again? It would be nice to be able to configure locks with Terraform.
I have seen this PR https://github.com/aztfmod/terraform-azurerm-caf/pull/383 in which @manojtjacob was working on it, it got merged once, but not to main and instead to a branch which does not exist anymore (https://github.com/aztfmod/terraform-azurerm-caf/tree/ben_mgmt_lock) by @arnaudlh
Sadly I haven't found any info about what happened with this development. Could you please let me know which is the status?


I couldn't find method to  get auth callback url and OAuthCode and then access and refresh token authorization.

I have tried the below request to make rings out calls using the SDK in c# and I could not be getting the right way to get access-token and authCode.
var rc = new SDK(appKey, appSecret, sandboxServer,"RingCentralApi");
var authroizeUri = rc.Platform.AuthorizeUri(redirectUri); // here, I got https://platform.devtest.ringcentral.com/restapi/oauth/authorize?response_type=code&state=&redirect_uri=http://localhost:51847/OAuthCallbackUrl&client_id=Ojlp5Fh2Qr-XO13zEmYH5g
rc.Platform.Authenticate(authCode, redirectUri); // here authCode is null how could get authCode ?

First of all, this project has been deprecated. Please use https://github.com/ringcentral/ringcentral-csharp-client instead.
  Once you get authroizeUri , you need to redirect user to this uri in browser.  You cannot get the tokens directly because it is "3-legged."  For a complete process please read: https://github.com/tylerlong/ringcentral-python#authorization-code-flow-3-legged-authorization-flow  It is for Python but the process is the same for all programming languages.

Hi,
First of all, Thank you for the reply now I have passed the authorization
steps so, I can get access token in response now. I have read all the API
documentation about Ringout to make a ringout call but, I am a little bit
of confusing how can I make a call from my C# application's web page?
I am using  https://github.com/ringcentral/ringcentral-csharp-client c# SDK
in my c# application and  I am not able to send the request and get the
response from the Rest API, I have no idea how to post request
with "/restapi/v1.0/account/{accountId}/extension/{extensionId}/ring-out";.
On Wed, Apr 18, 2018 at 9:45 AM, Tyler Long<EMAIL_ADDRESS>wrote:

First of all, this project has been deprecated. Please use
https://github.com/ringcentral/ringcentral-csharp-client instead.
 Once you
get authroizeUri, you need to redirect user to this uri in browser. You
cannot get the tokens directly because it is "3-legged." For a complete
process please read: https://github.com/tylerlong/ringcentral-python#
authorization-code-flow-3-legged-authorization-flow It is for Python but
the process is the same for all programming languages.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ringcentral/ringcentral-csharp/issues/71#issuecomment-382253797,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AkrFbdPhP9edfDqmfJmfr69P7Vjx6Hgjks5tpr3QgaJpZM4TYL-6
.

--
Thanks and Regards,
Kundan Jaiswal
Contact-9074509278


Swap to use the new imodels clients

The new iModels public API and libraries are officially ready to be consumed. Updating our repository to start using it for all integration tests and test apps.
The following changes are in the PR:

Stop publishing the @bentley/imodelhub-client package
Completely remove the imodelhub integration tests
Rename the existing imodelhub-client package to imodelbank-client as it currently is required to keep supporting the iTwin Stack/Bank workflows. The updates to support the new APIs and the changes to the client libraries is being worked on but is not yet available and will follow after the 3.0 release.
Clean up all unneeded changelogs from removed packages

There is a webpack issue with a couple of the full-stack-tests that I'm attempting to resolve now but do want to start getting feedback on the PR.
Note: While the number of files looks huge, there's only about 40-50 with real changes in them and all test-apps/tests. The rest of it is deletions of the old changelogs and test of the client.

Could you add an entry in nextver.md re the removal of the bentley/imodelhub-clients pkg in favor of the new itwin/imodels- pkgs?
https://github.com/iTwin/itwinjs-core/discussions/2992

@robertas-kerpys can you please approve if you have no more comments?


System occupy the whole storage of sd card

I use pi imager flash openfyde os to a 64GB sd card in raspberry pi os.
Then i reboot device with openfyde os. And try to enable linux environment.
But system told me that i do not have enough space (less than 3GB).
Then i checked storage, i found system has occupied 61.8 GB. And it seems not reasonable.
What i can do to release the space which used by system?

i have the same isue i also dont know what to do

@uranus0206 if you use another flasher it will work and not do the whole SD card thing


Either Disable or Fix Dark Mode

Running stagewhisper through poetry while dark mode is active on MacOS causes this:

Can we just fully disable dark mode or is this an issue where Gooey is automatically going to try to enter dark mode if the OS is in dark mode? The former is not a big deal, since we can just disable dark mode for now. The latter would be a very big problem.

We cannot disable dark mode :(

We might be able to change the label text. It's a little hackish but there's a label color and help color option for each field, so we could just make sure we always pass explicit color options to each field based on dark mode status.
https://github.com/chriskiehl/Gooey/blob/master/docs/Gooey-Options.md#global-style--layout-options

Input color is white, right? So it at least shows up. OK, let's try making the label and help color white if it's in dark mode (or should the help color be like a whitish grey?) and see if that fixes the problem.

I'd be happy to try my hand at this. This was the first issue I encountered.

Fixed 🥳


[cli] change the bitcoin public key output to hex

Proposal Details
Change the bitcoin public key output in rooch account list from base58 to hex format

line50-> public_key: hex::encode(account.public_key)

May I handle this issue?

May I handle this issue?

fixed in #2552


Carthage compatibly

The project is missing .xcodeproj/xcshareddata/xcschemes

Due to new Swift 4.1 features, Carthage support is now possible... will look into this soon

Waiting for this =)

Any progress to support Carthage?

Added in #65.
Can use my fork for the time being.


0.8.9 drifting into right lane

Describe the bug
Openpilot drifted into the right lane a few times on one of my routes.
How to reproduce or log data
Drive at night using the leftmost lane.
Device/Version information (please complete the following information):

Device: comma two
Dongle ID: f28c43ff6a3dea6f
Route: f28c43ff6a3dea6f|2021-10-02--19-48-56
Timestamp: 19:49:06, 19:49:25
Version: I already updated my device, so I'm not sure what the commit hash was. It was Shane's fork 0.8.9 though.
Car make/model: Toyota Corolla Hatchback 2020

Additional context
Maybe not important, but when openpilot was enabled at 19:49:56, it was driving right on the lane's right edge which felt uncomfortable, but at least it didn't drift into the next lane.

Can you make sure the raw logs are uploaded? Turn on your device, go to https://useradmin.comma.ai/?onebox=f28c43ff6a3dea6f|2021-10-02--19-48-56 and click on "upload all files".


[MS Connector] [Post-ship stabilization] Selective fullsync on add/remove data

When the user adds new folders, we currently run a full resync.
Change the logic to only run the fullsync on the newly added folders, not on those that were already synced

Closing as stale.
What's the status of Gdrive?

Gdrive is done here : https://github.com/dust-tt/dust/pull/6711
Reopening as PR is opened and ready for review

Yes, important to adress, reopening indeed :)


Add generalized OS/arch support to Justfile

This PR enhances the Justfile to add generalized OS/arch support for a more versatile development setup and binding process. It includes the following changes:

Detection and setup of Rust targets based on current OS and architecture.
Adjustments to the Justfile to support different environments.

With these changes, the development environment should now properly configure itself for both macOS and Linux environments, targeting both ARM and x86_64 architectures.

Nice addition.  Looks like still WIP since tests are failing but like the direction.

Closing as this was mostly testing goose's capabilities.


Fix for users trying to access CL_DEVICE_DOUBLE_FP_CONFIG on OpenCL 1.1 or lower

Currently, trying to query for double precision standards using CL_DEVICE_DOUBLE_FP_CONFIG on OpenCL 1.1 or lower, throws an error saying "the macro is undeclared in this scope". Querying for half using CL_DEVICE_HALF_FP_CONFIG works fine, hence double should work as well.
Furthermore, The OpenCL 1.0 and 1.1 specification, in section 9.3.8, also state that applications can query configuration information for devices that support double precision floating-point using the above macro.
The issue arises because cl.h defines the macro for CL_VERSION_1_2 which means for OpenCL 1.2 or greater. Then cl_ext.h states that the macro is already defined in cl.h and doesn't define it. This leaves out OpenCL version 1.1 and 1.0. Note that CL_DEVICE_HALF_FP_CONFIG is defined in the cl_ext.h regardless of the version, hence it works fine for all versions.
The commit fixes this issue by adding the macro definition in cl_ext.h for OpenCL 1.1 and 1.0. It also removes CL_DEVICE_HALF_FP_CONFIG from cl.h since it is already defined in cl_ext.h where it should be since cl_khr_fp16 is still an extension and not a core feature in my knowledge.
Note:-
I have checked the both cl.h and cl_ext.h generated from CUDA toolkit 7 which supports till OpenCL version 1.1. And the commit changes comply with these old headers. The old headers do define CL_DEVICE_DOUBLE_FP_CONFIG in cl_ext.h.
Thanks.

Looks fine to me - would appreciate a quick check from @bashbaug before merging though.

This looks reasonable to me - thanks for fixing this!
I do wonder if it makes more sense to use #ifndef CL_VERSION_1_2 instead of #if CL_TARGET_OPENCL_VERSION <= 110? Functionally there should be no difference between the two, but given that the macro definition in cl.h uses #ifdef CL_VERSION_1_2 it would perhaps be a bit more obvious why the macro definition also exists in cl_ext.h?
No reason to hold up the merge because of this, but something to consider for the future.

Thanks, new to github so do I need to close this now? or the person who merges will close it?

I will merge this shortly which will automatically close the pull request.
Thanks for the contribution!

@jrprice
Thanks, Also this issue was also creating problems for the C++ api. The pull request for that is here
https://github.com/KhronosGroup/OpenCL-CLHPP/issues/48
I would appreciate if you can look into that as well.


Link to paystack documentation seems broken

In the readme the paystack documentation link only opens the homepage
The link: https://developers.paystack.co/docs/paystack-inline#section-working-with-paystack-inline

Fixed by #53


Fix reading tokens of length 8 (bytes)

#17 introduced a regression whereas a token of length 8-bytes would throw an IllegalArgumentException. Was an oversight that despite the RFC not stating a need to read 64-bit numbers, we store the token in a Long (since it can be up to 8-bytes in length).

@Chris-Corea can you validate that this works as expected?
repositories {
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}

dependencies {
    implementation "com.juul.koap:koap:0.3.1-SNAPSHOT"
}

Once validated, I'll cut a release.

@twyatt Confirmed it works in a unit test in tin-can. Thanks for the quick turnaround!


Related model on same model

Hi,
I'm trying to add 'related articles' on an 'article' entity. In the migration process, I'm doing :
        createDefaultRelationshipTableFields($table, 'article', 'article');

... which does not work since it tries to the same column twice (article_id). Any workaround for that ?
Thanks !

Hi @tchapi!
Right, our helper doesn't support creating a relationship table for the same model. However you can take a look at the source code and replicate for your use case, something like this:
Schema::create('article_article', function (Blueprint $table) {
            $table->increments('id');

            $table->integer("article_id")->unsigned();
            $table->foreign("article_id")->references('id')->on('articles')->onDelete('cascade');
            $table->integer("related_article_id")->unsigned();
            $table->foreign("related_article_id")->references('id')->on('articles')->onDelete('cascade');

            $table->integer('position')->unsigned()->index();

            $table->timestamps();
});

And in your Article model:
public function voices()
{
    return $this->belongsToMany(Article::class, 'article_article', 'article_id', 'related_article_id')->withPivot('position')->orderBy('position');
}

Ooh that's so simple I had forgotten belongsToMany() had arguments for that kind of case. Sorry for the inconvenience and thanks for your time (and that wonderful project).

@ifox Hi, and first off thank you very much for this wonderful CMS and the time your putting in to helping us out:) I have this far tried to find out what i can with extensive Googling, but am now at a loss. I have implemented the above code, but to store the related project I would need to add something to the ProjectRepository i guess. I have currently this, wich returns an error Call to a member function map() on null
public function afterSave($object, $fields) {
        $this->updateBrowser($object, $fields, 'projects');
        parent::afterSave($object, $fields);
    }
    public function getFormFields($object) {
        $fields = parent::getFormFields($object);
        $fields['browsers']['related'] = $this->getFormFieldsForBrowser($object, 'project');
        return $fields;
    }

I hope you find time to help, and appreciate your time! Cheers

I'm at the same point as @emilsomm is. Love to know how to handle this. Thanks!


Turing RK1

Basic information

Board URL (official): https://turingpi.com/product/turing-rk1/
Board purchased from: (Review sample, but I also pre-ordered four 8GB modules)
Board purchase date: 2023-08-15 (pre-order placed)
Board specs (as tested): 16 GB RAM / 64 GB eMMC
Board price (as tested): $169

Linux/system information
# output of `neofetch`
            .-/+oossssoo+/-.               ubuntu@ubuntu
        `:+ssssssssssssssssss+:`           -------------
      -+ssssssssssssssssssyyssss+-         OS: Ubuntu 22.04.3 LTS aarch64
    .ossssssssssssssssssdMMMNysssso.       Host: Turing Machines RK1
   /ssssssssssshdmmNNmmyNMMMMhssssss/      Kernel: 5.10.160-rockchip
  +ssssssssshmydMMMMMMMNddddyssssssss+     Uptime: 6 mins
 /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Packages: 694 (dpkg)
.ssssssssdMMMNhsssssssssshNMMMdssssssss.   Shell: bash 5.1.16
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   Resolution: 1920x1080
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   Terminal: /dev/pts/0
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   CPU: (8) @ 1.800GHz
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   Memory: 184MiB / 15715MiB
.ssssssssdMMMNhsssssssssshNMMMdssssssss.
 /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
  +sssssssssdmydMMMMMMMMddddyssssssss+
   /ssssssssssshdmNNNNmyNMMMMhssssss/
    .ossssssssssssssssssdMMMNysssso.
      -+sssssssssssssssssyyyssss+-
        `:+ssssssssssssssssss+:`
            .-/+oossssoo+/-.

# output of `uname -a`
Linux ubuntu 5.10.160-rockchip #17 SMP Fri Nov 3 03:00:41 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux

Benchmark results
CPU

Geekbench 6: (799 single / 3154 multi - https://browser.geekbench.com/v6/cpu/3376758)
56.967 Gflops (geerlingguy/top500-benchmark HPL result)

Power
(Currently can't measure individual node power consumption.)

Idle power draw (at wall): TODO W
Maximum simulated power draw (stress-ng --matrix 0): TODO W
During Geekbench multicore benchmark: TODO W
During top500 HPL benchmark: TODO W

Disk
Built in eMMC (64GB)

Note: eMMC speed may improve with final firmware.

Benchmark
Result

fio 1M sequential read
149 MB/s

iozone 1M random read
154.26 MB/s

iozone 1M random write
108.57 MB/s

iozone 4K random read
19.425 MB/s

iozone 4K random write
36.77 MB/s

NVMe SSD (TODO)

Benchmark
Result

fio 1M sequential read
TODO MB/s

iozone 1M random read
TODO MB/s

iozone 1M random write
TODO MB/s

iozone 4K random read
TODO MB/s

iozone 4K random write
TODO MB/s

curl https://raw.githubusercontent.com/geerlingguy/pi-cluster/master/benchmarks/disk-benchmark.sh | sudo bash
Run benchmark on any attached storage device (e.g. eMMC, microSD, NVMe, SATA) and add results under an additional heading. Download the script with curl -o disk-benchmark.sh [URL_HERE] and run sudo DEVICE_UNDER_TEST=/dev/sda DEVICE_MOUNT_PATH=/mnt/sda1 ./disk-benchmark.sh (assuming the device is sda).
Also consider running PiBenchmarks.com script.
Network
iperf3 results:

iperf3 -c $SERVER_IP: 943 Mbps
iperf3 --reverse -c $SERVER_IP: 927 Mbps
iperf3 --bidir -c $SERVER_IP: 939 Mbps up, 236 Mbps down

(Be sure to test all interfaces, noting any that are non-functional.)
GPU

TODO: Haven't determined standardized benchmark yet. See Issue #2.

Memory
tinymembench results:

Click to expand memory benchmark result
tinymembench v0.4.10 (simple benchmark for memory throughput and latency)

==========================================================================
== Memory bandwidth tests                                               ==
==                                                                      ==
== Note 1: 1MB = 1000000 bytes                                          ==
== Note 2: Results for 'copy' tests show how many bytes can be          ==
==         copied per second (adding together read and writen           ==
==         bytes would have provided twice higher numbers)              ==
== Note 3: 2-pass copy means that we are using a small temporary buffer ==
==         to first fetch data into it, and only then write it to the   ==
==         destination (source -> L1 cache, L1 cache -> destination)    ==
== Note 4: If sample standard deviation exceeds 0.1%, it is shown in    ==
==         brackets                                                     ==
==========================================================================

 C copy backwards                                     :  11768.5 MB/s (21.3%)
 C copy backwards (32 byte blocks)                    :  11745.9 MB/s
 C copy backwards (64 byte blocks)                    :  11746.9 MB/s
 C copy                                               :  12041.0 MB/s
 C copy prefetched (32 bytes step)                    :  12222.2 MB/s
 C copy prefetched (64 bytes step)                    :  12252.1 MB/s
 C 2-pass copy                                        :   5175.5 MB/s (0.5%)
 C 2-pass copy prefetched (32 bytes step)             :   7927.3 MB/s
 C 2-pass copy prefetched (64 bytes step)             :   8370.9 MB/s
 C fill                                               :  30185.7 MB/s (0.4%)
 C fill (shuffle within 16 byte blocks)               :  30183.5 MB/s
 C fill (shuffle within 32 byte blocks)               :  30183.9 MB/s
 C fill (shuffle within 64 byte blocks)               :  30183.6 MB/s
 NEON 64x2 COPY                                       :  12238.2 MB/s
 NEON 64x2x4 COPY                                     :  12171.9 MB/s
 NEON 64x1x4_x2 COPY                                  :   5605.7 MB/s
 NEON 64x2 COPY prefetch x2                           :  11016.5 MB/s
 NEON 64x2x4 COPY prefetch x1                         :  11359.5 MB/s
 NEON 64x2 COPY prefetch x1                           :  11104.4 MB/s
 NEON 64x2x4 COPY prefetch x1                         :  11359.0 MB/s
 ---
 standard memcpy                                      :  12208.5 MB/s
 standard memset                                      :  30184.2 MB/s (0.6%)
 ---
 NEON LDP/STP copy                                    :  12232.0 MB/s
 NEON LDP/STP copy pldl2strm (32 bytes step)          :  12201.4 MB/s
 NEON LDP/STP copy pldl2strm (64 bytes step)          :  12224.4 MB/s
 NEON LDP/STP copy pldl1keep (32 bytes step)          :  12251.8 MB/s
 NEON LDP/STP copy pldl1keep (64 bytes step)          :  12247.8 MB/s
 NEON LD1/ST1 copy                                    :  12175.6 MB/s
 NEON STP fill                                        :  30185.9 MB/s (0.6%)
 NEON STNP fill                                       :  30183.7 MB/s
 ARM LDP/STP copy                                     :  12215.6 MB/s
 ARM STP fill                                         :  30181.5 MB/s (0.6%)
 ARM STNP fill                                        :  30182.1 MB/s

==========================================================================
== Framebuffer read tests.                                              ==
==                                                                      ==
== Many ARM devices use a part of the system memory as the framebuffer, ==
== typically mapped as uncached but with write-combining enabled.       ==
== Writes to such framebuffers are quite fast, but reads are much       ==
== slower and very sensitive to the alignment and the selection of      ==
== CPU instructions which are used for accessing memory.                ==
==                                                                      ==
== Many x86 systems allocate the framebuffer in the GPU memory,         ==
== accessible for the CPU via a relatively slow PCI-E bus. Moreover,    ==
== PCI-E is asymmetric and handles reads a lot worse than writes.       ==
==                                                                      ==
== If uncached framebuffer reads are reasonably fast (at least 100 MB/s ==
== or preferably >300 MB/s), then using the shadow framebuffer layer    ==
== is not necessary in Xorg DDX drivers, resulting in a nice overall    ==
== performance improvement. For example, the xf86-video-fbturbo DDX     ==
== uses this trick.                                                     ==
==========================================================================

 NEON LDP/STP copy (from framebuffer)                 :   1942.3 MB/s (0.1%)
 NEON LDP/STP 2-pass copy (from framebuffer)          :   1654.2 MB/s
 NEON LD1/ST1 copy (from framebuffer)                 :   1941.0 MB/s
 NEON LD1/ST1 2-pass copy (from framebuffer)          :   1661.1 MB/s
 ARM LDP/STP copy (from framebuffer)                  :   1875.6 MB/s
 ARM LDP/STP 2-pass copy (from framebuffer)           :   1655.5 MB/s

==========================================================================
== Memory latency test                                                  ==
==                                                                      ==
== Average time is measured for random memory accesses in the buffers   ==
== of different sizes. The larger is the buffer, the more significant   ==
== are relative contributions of TLB, L1/L2 cache misses and SDRAM      ==
== accesses. For extremely large buffer sizes we are expecting to see   ==
== page table walk with several requests to SDRAM for almost every      ==
== memory access (though 64MiB is not nearly large enough to experience ==
== this effect to its fullest).                                         ==
==                                                                      ==
== Note 1: All the numbers are representing extra time, which needs to  ==
==         be added to L1 cache latency. The cycle timings for L1 cache ==
==         latency can be usually found in the processor documentation. ==
== Note 2: Dual random read means that we are simultaneously performing ==
==         two independent memory accesses at a time. In the case if    ==
==         the memory subsystem can't handle multiple outstanding       ==
==         requests, dual random read has the same timings as two       ==
==         single reads performed one after another.                    ==
==========================================================================

block size : single random read / dual random read
      1024 :    0.0 ns          /     0.0 ns
      2048 :    0.0 ns          /     0.0 ns
      4096 :    0.0 ns          /     0.0 ns
      8192 :    0.0 ns          /     0.0 ns
     16384 :    0.0 ns          /     0.0 ns
     32768 :    0.0 ns          /     0.0 ns
     65536 :    0.0 ns          /     0.0 ns
    131072 :    1.1 ns          /     1.5 ns
    262144 :    2.3 ns          /     2.9 ns
    524288 :    4.4 ns          /     5.7 ns
   1048576 :   10.1 ns          /    13.0 ns
   2097152 :   14.3 ns          /    16.5 ns
   4194304 :   62.3 ns          /    92.7 ns
   8388608 :  101.6 ns          /   135.8 ns
  16777216 :   97.3 ns          /   139.9 ns
  33554432 :  151.3 ns          /   164.4 ns
  67108864 :  141.1 ns          /   161.7 ns

sbc-bench results
sbc-bench results
Phoronix Test Suite
Results from pi-general-benchmark.sh:

pts/encode-mp3: 12.278 sec
pts/x264 4K: 5.62 fps
pts/x264 1080p: 24.02 fps
pts/phpbench: 408760
pts/build-linux-kernel (defconfig): 1150.972 sec

First step for bringup was getting the boards working. I plugged them into my original Turing Pi 2 prototype board... which is a bit worse for the wear :)
I couldn't get them to boot, and that old board didn't have PWM fan headers either, so I popped them into my kickstarter "v2.4" board, and they booted and had fans running full blast—but I was told I should upgrade to the 2.0.0 (currently RC1) firmware to get full functionality.
So I initially tried updating over the BMC Web UI, and found that later versions only ship an .img file, not an .swu file, so you have to do one of the more 'advanced' BMC update methods.
I initially tried using PhoenixSuit on my Windows PC, but kept running into all kinds of permissions issues (would not like to work in an ecosystem that requires disabling so many security features, heh...), then was told I can just flash the .img to microSD, boot off it, and get it upgraded that way.
So it was as easy as:

Flash the 2.0.0-RC1 .img from here to a microSD card with Etcher (if you're reading this later, go get the latest release...)
Insert the microSD card into the Turing Pi 2's rear microSD card slot.
Power on the Turing Pi 2 while observing UART through the BMC_UART3 header. (green to RX, white to TX, black to GND on my Adafruit adapter)
When prompted, type CONFIRM over UART and press enter, the firmware will upgrade.

I also attempted to install the RK1 into a Jetson development board. The product page states:

The Turing RK1 compute module is compatible with Nvidia Jetson pin layout. This means you can plug it into any Nvidia Jetson carrier board.

Unfortunately, the tiny retention pins on the slot on my carrier board seemed to smash into two tiny components on either side of RK1 making it close to impossible to reliably insert the board (without bending some of the metal tabs...).
The Jetson Nano has two tiny holes in the PCB in those areas to accept the little underside retention tabs, the RK1 does not. I'll upload a picture of the problem if I can remember :)
So back to Turing Pi 2 we go!

It looks like @Joshua-Riek maintains a bunch of images for Rockchip RK3588 devices, and supports RK1 in that repo: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/tag/v1.29
I've downloaded ubuntu-22.04.3-preinstalled-server-arm64-turing-rk1.img.xz and will try flashing it to a node via the BMC web UI... fingers crossed!

After all that, I got:
2023-11-02T22:30:28.888Z INFO  [bmcd::app::firmware_runner] started writing to node 1
2023-11-02T22:35:26.221Z INFO  [bmcd::persistency::app_persistency] commiting persistency to disk
2023-11-02T23:31:21.412Z INFO  [bmcd::app::firmware_runner] Verifying checksum of written data to node 1
2023-11-02T23:46:51.843Z INFO  [bmcd::app::firmware_runner] Flashing node 1 successful, restarting device...
2023-11-02T23:46:52.269Z INFO  [bmcd::api::streaming_data_service] worker done. took 1h 16m 26s 669ms 421us 43ns (#1779206829)
thread 'main' panicked at 'source slice length (0) does not match destination slice length (16384)', src/utils/ring_buf.rs:22:33
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

And the web UI showed: Upgrade failed: [object Object]

Trying with an updated version from https://github.com/Joshua-Riek/ubuntu-rockchip/actions/runs/6740498946

...it looks like the RK1 is booted, but it's not giving me any SSH access. Default user/pass should be ubuntu (both).

It might need a moment for cloud-init to do its thing. But the default credentials are ubuntu and ubuntu. You can connect to the node through UART on the BMC if ssh does not want to work.
Connect to the Turing RK1 through BMC
On the BMC use microcom to connect
microcom -s 115200 /dev/ttySX

Slot number to devnode:

Slot
Devnode

Slot 1
/dev/ttyS2

Slot 2
/dev/ttyS1

Slot 3
/dev/ttyS4

Slot 4
/dev/ttyS5

That's a nice flashing experience, better than I was expecting having worked with the CM4. So you insert an SD card with an image, then use the BMC over HTTP to flash it to a node's eMMC? Is the serial console over USB a must - or would the HTTP BMC work on its own?

@Joshua-Riek Your images look like great community resource. Those build times look really quite long. Are you using QEMU for them, or how do you build them? This is why I ask.

I cross-compile the bootloader and kernel, but then the rootfs is built with QEMU. I have an army of RK3588 dev boards that would be perfect to set up as GitHub runners to speed things up, but lack the space right now to do so. I need to optimize the build process and figure out how best to proceed. I never thought I would need this much computational power when the project started, but it should only grow from here.

All my benchmarks a are a few percentage points faster than Rock 5 B, which is interesting.

All my benchmarks are a few percentage points faster than Rock 5 B, which is interesting.

According to the submitted sbc-bench result the DMC memory governor was set to performance (no idea whether that's @Joshua-Riek's intention or caused by running sbc-bench -r prior which adjust the DMC memory governor to 'always top speed'). So if you ran Geekbench after sbc-bench -r w/o any reboot in between Geekbench was executed with DRAM clocked all the time at 2112 MHz.
When you benchmarked your Rock 5B most probably the software shipped back then defaulted to dmc_ondemand memory governor adjusting memory clock dynamically between 528 MHz and 2112 MHz based on CPU utilization. Actual benchmark scores then did depend on the up_treshold value, see at the very bottom of:
https://github.com/ThomasKaiser/Knowledge/blob/master/articles/Quick_Preview_of_ROCK_5B.md#important-insights-and-suggested-optimisations
The difference between clocking DRAM at either 528 MHz or 2112 MHz on RK3588 depends on the benchmark in question. Some (like the infamous sysbench or older benchmarks in general where the whole data fits inside modern CPU's caches) are not affected at all but for example with Geekbench 6 it looks like this (the individual tests are the interesting ones since they show which test depends on memory latency/bandwidth and which rather don't):
https://browser.geekbench.com/v6/cpu/compare/3337274?baseline=3336736

There is a system script to set the CPU / GPU governor to performance on boot, to address some performance and micro stutter issues for desktop users. But if the DMC memory governor is set to performance by default that is not intentional.

There is a system script to set the CPU / GPU governor to performance on boot

That's important to know for @geerlingguy since measuring idle performance is negatively affected by that.
With Jeff's use cases for the RK1 in mind I would switch back to ondemand if I were him and use /etc/sysfs.d/tk-optimize-rk3588.conf from the aforementioned link to get both low idle consumption as well as high overall performance since with RK's defaults (no io_is_busy and especially up_threshold = 40) the CPU clockspeeds won't ramp up quickly enough for mixed workloads (and also a lot of benchmarks).

@geerlingguy re this comment:
https://github.com/geerlingguy/sbc-reviews/issues/25#issuecomment-1791634464
I flashed the same firmware from the link you gave to a microSD card, inserted it on the rear, booted and watched the serial console. It just boots normally without the prompt you saw. Did you do anything else like short any headers?

It looks like the modules are complete! See: https://twitter.com/turingpi/status/1746937693110403303
I checked on my order from August 15 (for 4x 8 GB models plus heatsinks) and so far it still says 'Processing'.

It looks like the modules are complete! See: https://twitter.com/turingpi/status/1746937693110403303
I checked on my order from August 15 (for 4x 8 GB models plus heatsinks) and so far it still says 'Processing'.

 Just flashing them now!

@AnEvilPenguin - how goes testing? My shipment should arrive today! Hoping to re-test everything on a production unit and see how it goes.

Installation and flashing went smoothly (though I had to reboot each module myself - docs imply that they should handle it themselves).
Heatsinks are nice and quiet (especially compared to some of the Rpi PoE modules I've tried!). Detected all of my nvme drives with no issues (I've had issues there in the past).
Done a basic k3s setup and just need to figure out where I want to take it next.
I've not really pushed them that hard yet, but so far they feel pretty snappy compared to my Rpi 4bs and Jetson Nano.
I can say that I'm pretty pleased with them! Overall a good experience so far! I look forward to hearing your thoughts as well!

Got two 16 GB modules yesterday, looks like they decreased eMMC from 64 GB to 32 GB.

Got two 16 GB modules yesterday, looks like they decreased eMMC from 64 GB to 32 GB.

All RK1 modules contain a 32GB flash. I checked the photo from the first post just to make sure about this specific unit, and the flash chip is a 32GB model. :)

Daniel (Turing Machines)

@geerlingguy Could we correct the flash size in your post? The flash size is 32GB. There are 2 places that mention 64GB - the basic information section and the benchmark results section. Thank you! :)

Daniel (Turing Machines)

@daniel-kukiela - Done! I hope to re-test with my new production copies this month!

Thank you!
As for the disk speeds, for anyone wondering, the maximum speed should be roughly twice what the benchmark results show right now - there was a software bug that caused the flash chip to not be configured correctly, but recent OS versions have this fixed.

I got shipping notice for my couple of 32gb ram ones today

Following up with some testing of the 32GB module (since the 16GB ones I've been testing are earlier revision, and I would like to base my final review on the 32GB ones): https://github.com/geerlingguy/sbc-reviews/issues/38

Do you still consider updating the disk benchmark results here (or removing them)? The firmware version you used there was a pre-release and was not meant to be used for this purpose. The issue with the storage speed has been fixed with the first firmware release and these numbers here might suggest lower performance of the storage in 16GB modules. :)

@geerlingguy Just in case you are interested in the H264/H265 hardware decoding/encoding performance on RK3588.
Try this ffmpeg-rockchip, which has RKMPP & RKRGA support, and it also has a Wiki page. Based on it, Jellyfin recently added hardware transcoding support for RK3588.

@daniel-kukiela - Do you have a good guide for upgrading the firmware on the 16GB boards? Or is it just apt upgrade? I'll re-test tomorrow.

@Joshua-Riek I believe apt upgrade should work in this case, right?

Yes, that is correct.

Thank you @Joshua-Riek .
So, yes @geerlingguy, apt upgrade. Thank you!

@daniel-kukiela - Updated the results for eMMC, looks like it is quite improved, thanks :)

Thank you! :)


support custom models

closes #58
See https://github.com/stac-utils/stac-fastapi/pull/147#issuecomment-882111611 for more info.

Barring one failing test case in pgstac this PR is mostly done.  The initial goal of this PR was to better support custom data models by removing pydantic from the interface between API/backend.  This ended up being quite a lot more than I initially expected, here is a summary of the major changes:
Code Changes
1. Replacing pydantic.

Define LandingPage, Conformance, Item, Catalog, Collection, and ItemCollection types using TypedDict, which is just a more descriptive type annotation for Dict[str, Any].
Replace all calls to stac_pydantic in the base classes with the new TypedDict types.
Remove pydantic from link factories, these just return dictionaries now.
Refactor sqlalchemy and pgstac implementations of the base classes to use the new TypedDict types.  This mostly required switching from dot notation (item.id) to dictionary syntax (item['id']).  But there were a few backend specific changes:

sqlalchemy

Removed pydantic orm mode and getterdicts.  Defined a new Serializer abstract base class which implements Serializer.db_to_stac and Serializer.stac_do_db methods for transforming between stac types and the database model.  An instance of the serializer is passed to the sqlalchemy backend for collections and items.

pgstac

Add AsyncBaseCoreClient which is identical to BaseCoreClient but implements async def functions instead of normal def.  Update the pgstac backend to use AsyncBaseCoreClient.  Also add a AsyncBaseTransactionsClient for the same reson.
Implement a LandingPageMixin class which is used by both BaseCoreClient and AsyncBaseCoreClient to create the initial landing page.
Update pgstac backend to return TypedDict instead of ORJSONResponse to match the base clients.
Lots of little changes to the pgstac transaction extension implementation to align with the base class.

2. API layer changes
I needed to make several changes to the API layer to accommodate the switch away from pydantic:

Add the ApiSettings.enable_response_models attribute which determines whether or not API responses are validated against the appropriate stac_pydantic model (defaults to false).  When set to false, the /docs endpoint will not autogenerate OpenAPI docs for most endpoints.
Add the StacApi.response_class attribute (defaults to JSONResponse) which determines what Starlette response class is used to send data back to the caller.  Defaults to ORJSONResponse for the pgstac implementation.
Add the StacApi.router attribute which contains the FastAPI router used to build the application, defaults to a standard APIRouter.
Changes to endpoint creation and registration.

Differentiation between async def and def endpoints is now determined based on an isinstance check against the backend client (ex. isinstance(client, AsyncBaseCoreClient)).
Added an additional else statement to endpoint factories to handle creating an endpoint with a TypedDict.  More on this below.
Define a single function for each route that is registered, making it easier for the caller to override route-level kwargs for a single route.

Current Pydantic Usage
After all of these changes, where is pydantic still used?

Validating the input to POST /search requests.
For settings management in ApiSettings (pydantic.BaseSettings).
Validating API responses if ApiSettings.enable_response_models = True.
In the tiles extension (integration with titiler/ogc tiles).  Both titiler/ogc tiles are pretty rigid so it makes sense to use pydantic here.
In test cases to help with dictionary equality comparisons.
Sqlalchemy backend still uses pydantic includes/excludes syntax to implement the fields extension.

Futher Consideration
There are several things which need further consideration:

Pydantic has support for validating TypedDict (https://pydantic-docs.helpmanual.io/usage/types/#typeddict), which means if we specify a TypedDict as the request model of a FastAPI api route it will create a pydantic model matching the TypedDict which is used to validate the API responses.  This breaks the API/backend interface because the backend is expecting a dictionary but the API gives it a pydantic model.  For now the route factories fall back to using the Dict[str, Any] type declaration instead of the appropriate TypedDict to side step this behavior, but it might be a useful feature.  Either way we need to spend more time looking into this interaction.
TypedDict is a pretty new feature in python, and doesn't properly differentiate between required and optional field suntil python3.9.  The typing_extensions package does have this differentiation, so we should consider switching to typing_extensions.
Endpoint factories are quite flimsy, we really want them to be transparently wrapping the underlying function but instead we are brute forcing it with a bunch of isinstance checks and conditional logic.  It "works" for now but I won't be surprised if it breaks in the future.  I'm thinking a combination of decorators + type introspection could fix this nicely.
There is a flag which enables using pydantic for response models, it may be valuable to users to also provide a flag for enabling pydantic for request models as well.  Especially for the transactions extension where the backend code is relying on the data to be structured a certain way.  But for now this is not implemented.

Bugs
I found a few other bugs that aren't really related to this PR:
pgstac

The TransactionsClient.delete_item and TransactionsClient.delete_collection methods expect to return a stac_types.Item class, but pgstac does not include this information which causes the implementation to diverge from what the base class expects.  This isn't a big deal because the delete functionality still works, but I thought I would mention it.  The probable solution here is to update the base class to return None on delete endpoints which is just as RESTful as returning the thing being deleted.
When using the fields extension with pgstac, if item.collection is not returned it will cause the code to fail because the pgstac search implementation (_search_base) atempts to access this information (item['collection']) when building links.  For now I've updated the pgstac fields extension test cases to always return item.collection.

sqlalchemy

This backend currently won't return stac_extensions.  I can't find it in my notes and can't remember why, but there was a good reason for this at the time lol.  Shouldn't be too hard to fix.
We are using a custom Geoalchemy2 geometry type which converts the geometry to geojson upon access, but this has become annoying because this conversion only happens if we are accessing an orm object bound to the database.  If we call item.geometry on an unbound orm object it returns a WKBElement.  This type divergence is annoying, probably best to remove the custom geometry type.

@bitner The tests/resources/test_item.py::test_pagination_post pgstac test case is failing, the test requests 5 items with limit=1 but only ever finds 3 pages.  I've looked at my changes and I don't think I changed the underlying pagination logic, could you please take a look?

Hey @geospatial-jeff still looking through things and checking out the test case with pagination issue, but one thing I noticed: @lossyrob had made the observation that Pydantic type checking in many places where it was redundant on data that is known and "should" already be validated was causing a very noticeable slow down. That is why we had switched to just directly outputing ORJSON rather than Pydantic models and also why when we were using Pydantic models essentially to pass through data we were using model.construct(**foo) rather than model(**foo).

That is why we had switched to just directly outputing ORJSON rather than Pydantic models and also why when we were using Pydantic models essentially to pass through data we were using model.construct(**foo) rather than model(**foo).

This hasn't changed with this PR.  Pgstac backend returns TypedDict (not pydantic) and uses an ORJSONResponse as the route's response_class.  So if anything it should be slightly faster now because we are skipping any calls to pydantic by default.

Oh as I'm reading more I realize the response_class is just there for documentation, I'll fix this today by directly returning response classes in the endpoint factories.

@geospatial-jeff thanks for the write up - this looks like a set of great changes. I'm going to try and review this this week.
One question I had which is related to the pydantic validation stuff - you mention that enable_response_models = True would validate the response models, which I'm assuming means passing them through pydantic validation? In that case for the optimization David's mentioning, we'd want to have that be False so that the response goes directly from TypedDict -> ORJsonResponse. So seems like we'd want this to be False. But is there any way to get the OpenAPI docs to document responses with Pydantic models (in case we'd like that feature), without passing the responses through Pydantic validation?

These changes look really good

Seeing a bit of a downside to TypedDict in situations where things are optionally included. E.g. https://github.com/stac-utils/stac-fastapi/blob/custom-models/stac_fastapi/types/stac_fastapi/types/stac.py#L47 - it would be nice to have this as an Optional[Dict[str, Any]], and if were None to make sure it's not included in the JSON response (like pydantic's dict(exlude_none=True). There's not a good mechanism for that. You mention in your notes that potentially 3.9 or typing_extensions handle optional attributes better, but I don't see where that is - I only see PEP 655 - Marking individual TypedDict items as required or potentially-missing, which is still a draft.
Another instance of this is the attribute stac_extensions: Optional[List[str]] - you actually wouldn't want this to be set as None, as that would translate to having "stac_extensions":  null, in the JSON output, which I don't believe would be valid STAC. I'm likewise going to comment it out because of this issue.
This generally makes me question the utility of TypedDict as a benefit over Dict[str, Any]...the annotated types won't be complete and therefore may cause more confusion than anything. As a way forward, I'm going to document these additional fields in the types.stac types, but not include them as TypedDict entries. That way we can avoid having nulls, and if they are included in the construction of the TypedDict, that works fine - though setting them explicitly causes a type checking error.

TypedDict supports differentiation between required/optional fields in python3.9.  But the typing_extensions.TypedDict type already supports this.  I mentioned this in a previous comment:

TypedDict is a pretty new feature in python, and doesn't properly differentiate between required and optional field suntil python3.9. The typing_extensions package does have this differentiation, so we should consider switching to typing_extensions.

So I'd recommend just switching to using typing_extensions until we decide to switch to python3.9.  I think the value of using TypedDict over Dict[str, Any] is it makes it much clearer what the expected keys are (and their types) which should make it easier for people who are unfamiliar with the STAC spec to build their own backend, or understand how to access certain dictionary members in the responses of existing backends.
I'm fine with switching to Dict[str, Any] as well.

You mention in your notes that potentially 3.9 or typing_extensions handle optional attributes better, but I don't see where that is - I only see PEP 655 - Marking individual TypedDict items as required or potentially-missing, which is still a draft.

Oh I totally read over this.  I pulled this from the pydantic docs.  But I guess the release slipped to 3.10.  So probably best to use Dict[str, Any] for now.

I saw you mentioned it, and mentioned that:

You mention in your notes that potentially 3.9 or typing_extensions handle optional attributes better, but I don't see where that is - I only see  PEP 655 - Marking individual TypedDict items as required or potentially-missing - Marking individual TypedDict items as required or potentially-missing, which is still a draft.

</mention inception>
Can you link to docs around the optional fields in python 3.9 (I'm only seeing these docs for 3.9.6 which doesn't mention it)? For the typing_extensions implementation, I'm seeing this code but not docs on how it's used or other indications about that feature. Do you have any links about how to utilize the optional and required fields?
Another option I thought about is to have clients return either a Dict[str, Any] or a pydantic model (or perhaps a PySTAC object for that matter). That way if you want the clear development path as you mention, you can use those guiding tools, but if you want the speed of just dealing with Dicts, you can also go that route. Would be matter of changing signatures like
def get_collection(self, id: str, **kwargs) -> Collection:

to
def get_collection(self, id: str, **kwargs) -> Union[Collection, Dict[str, Any]]:

Where Collection can either be the TypedDict, from stac-pydantic or from PySTAC.  What do you think?

I really hate Union types, they are a PITA.  I'd rather just have a single return type.
I'd say for this PR lets go with Dict[str, Any] because it requires the least change, and maybe we can open an issue for switching to pystac types because I think that might be a good thing long term.

I'd say for this PR lets go with Dict[str, Any] because it requires the least change, and maybe we can open an issue for switching to pystac types because I think that might be a good thing long term.

Sounds like a plan.
The thing about PySTAC types is there's some copying in and out of dicts that I'd rather avoid along critical paths. @duckontheweb had mentioned an idea to make all PySTAC types wrap dicts of properties rather then translate in and out of dicts at construction time - this is something we do a lot in the extensions. If we did this, then the cost of serialization/deserialization pretty much goes away, in which case I think using PySTAC here might be a good option. Not sure if that's generally the direction to go in PySTAC, but this is certainly a data point in the +1 column.
I'll change things over to use Dict[str, Any] and push things up to this branch; I've merged in the latest and fixed most tests and I think it's pretty close.

Ended up keeping TypedDict, but using total=False; this makes all of the attributes optional, which gives the benefit of a simple way to check what STAC properties are expected, but without enforcing any potentially incorrect requirements.

@lossyrob your commits look great!  I can't approve the PR since I opened it but this is ready to merge.  Once it's merged I'm going to do a follow up PR to add documentation for some of the new features we've introduced.


Items get deleted when breaking armor stand

Fabric 1.21 server
Items get deleted when breaking Armor stands.

Hi, sorry for the late reply, i cant see anything that we are running that would elete entities at all, we're just running fabric, no lag mods etc and the list below


include param to remove container on the runner

In This PR

docker parameter to remove the docker container after check on the runner.

This will prevent to create hundreds of containers, as the Checkov creates a new container for every run.
Without that change, the user machine will looks like this:
> docker container ls -a
CONTAINER ID   IMAGE                COMMAND                  CREATED              STATUS                          PORTS     NAMES
286efb66ee54   bridgecrew/checkov   "checkov -s --skip-c…"   About a minute ago   Exited (0) 56 seconds ago                 suspicious_antonelli
befd916ce9d1   bridgecrew/checkov   "checkov -s --skip-c…"   About a minute ago   Exited (0) About a minute ago             funny_bartik
9fb956a9fa0f   bridgecrew/checkov   "checkov -s --skip-c…"   About a minute ago   Exited (0) About a minute ago             distracted_ride
09c61061aa38   bridgecrew/checkov   "checkov -s --skip-c…"   About a minute ago   Exited (0) About a minute ago             ecstatic_edison
e7fb0af49795   bridgecrew/checkov   "checkov -s --skip-c…"   About a minute ago   Exited (0) About a minute ago             inspiring_moore
... hundreds more ...
d0f2d93fc8a4   bridgecrew/checkov   "checkov -s --skip-c…"   About an hour ago    Exited (0) About an hour ago              hardcore_carson
f6e61a9058af   bridgecrew/checkov   "checkov -s --skip-c…"   About an hour ago    Exited (0) About an hour ago              reverent_johnson
cd9d8dad1e21   bridgecrew/checkov   "checkov -s --skip-c…"   About an hour ago    Exited (0) About an hour ago              fervent_feistel
555127cd9d1c   bridgecrew/checkov   "checkov -s --skip-c…"   About an hour ago    Exited (0) About an hour ago              sleepy_blackwell
b6d12a9538e5   bridgecrew/checkov   "checkov -s --skip-c…"   About an hour ago    Exited (0) About an hour ago              jolly_herschel
...

Fixes issue #41

Congrats on your first PR merged @junior! Happy to count you as a contributor.
Feel free to reach out at https://slack.bridgecrew.io/ for contributor swag pack!


Tweak repositories to cache null values as string

Fixes #637
Because of Laravel cache remember method, null values are not retrieved from cache but callback is runned every time.
Storing null as 'null' fixes this and prevent database queries to be run a lot of time if hostname or website is not found in database

Makes sense. Can you please rename 'null' to 'none' otherwise I'm afraid this will cause a lot of confusion in case you quickly browse the code.

Thanks!


Team enhancements 1

Suggestion: What are your thoughts for breaking up "register" and "sign in" into two different pages/processes?  Right now it will either create the user or sign them in, and I find it confusing to understand the user's intent.
Deleting a user:

Display "Are you sure?  If you delete this user they will no longer be able to access your team on DonorSync."
Currently logged in user cannot delete themselves
When deleting a user the teamId becomes NULL

Inviting a user:

Creates the user in the Users table and at the same time sends the "user verification email" -- will use the same template as invite created
Attempting to add a user to a team that already exists on a different team is not permitted and will display an error "This user already exists on a different team in DonorSync.  Users cannot be a part of more than one team."
If the email address that is being invited already exists in the User table AND deleted === 1 then update the teamId and send the "user verification email"

Logging In:

a deleted user should not be able to login (edited)

User Roles:
the first user will have the role of 'admin'

Oops this is the wrong repo, sorry everyone :)
Sent with Proton Mail secure email.
------- Original Message -------
On Tuesday, October 10th, 2023 at 11:20 PM, vercel[bot] @.***> wrote:

@.***(https://github.com/astanley86) is attempting to deploy a commit to the Rooted Software Team on Vercel.
A member of the Team first needs to authorize it.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

wrong repo.. removing this


The input device is not a TTY -- Mac

I'm getting the same issue through bitbucket.  If I run it on Windows, I have to change $PWD for %cd%. However, at the time that I added to my YAML file for my bitbucket pipeline, it will send me as output the following message:
docker run -it -v $PWD:/e2e -w /e2e cypress/included:6.2.1
the input device is not a TTY

My YAML file is:
image: atlassian/default-image:2

pipelines:
  default:
    - step:
        services:
          - docker
        script:
          - docker run -it -v $PWD:/e2e -w /e2e cypress/included:6.2.1

What could be the issue here?
It seems that if I run this script docker run cypress/included:6.2.1 it will run, but it will tell me that it cannot locate the cypress.json file.
What command should I run at this point?
@docker-jenkins
@CypressJosh

You cannot specify -it option with Cypress run, since CI is not a terminal, and cannot have interactive feature. Remove -it

You cannot specify -it option with Cypress run, since CI is not a terminal, and cannot have interactive feature. Remove -it

Ok, if I remove the it will tell me that it cannot locate the cypress.json. What should I change? @bahmutov

Ok, if I remove the it will tell me that it cannot locate the cypress.json. What should I change? @bahmutov

Did you forget to first check out the files? I don’t see the code checkout command
Sent from my iPhone

On Jan 12, 2021, at 18:04, Andres Haro<EMAIL_ADDRESS>wrote:

Ok, if I remove the it will tell me that it cannot locate the cypress.json. What should I change? @bahmutov
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Did you forget to first check out the files? I don’t see the code checkout command
Sent from my iPhone

On Jan 12, 2021, at 18:04, Andres Haro<EMAIL_ADDRESS>wrote:

Ok, if I remove the it will tell me that it cannot locate the cypress.json. What should I change? @bahmutov
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

I'm sorry for my ignorance, but this is the first time that I'm building something like that. Meaning that I'm not sure what do you mean by check out files, could you help me a little bit more? The thing is that if I'm running that command on my local machine, I will get my docker container to work, but I'm not sure what is the request that I have to make under the pipeline.

I'm sorry for my ignorance, but this is the first time that I'm building something like that. Meaning that I'm not sure what do you mean by check out files, could you help me a little bit more? The thing is that if I'm running that command on my local machine, I will get my docker container to work, but I'm not sure what is the request that I have to make under the pipeline.

@hvaandres I cannot teach you from scratch how to use BitBucket.
You can see our BitBucket running example at https://bitbucket.org/cypress-io/cypress-example-kitchensink and read more about setting the continuous integration tests in our guide http://on.cypress.io/ci

@hvaandres I cannot teach you from scratch how to use BitBucket.
You can see our BitBucket running example at https://bitbucket.org/cypress-io/cypress-example-kitchensink and read more about setting the continuous integration tests in our guide http://on.cypress.io/ci

@bahmutov I found the solution. The solution was more complex than I thought docker run -v "$PWD:/e2e" -w /e2e cypress/included:6.2.1 This run as I wanted. However, I believe that sometimes is not that you have to teach me from scratch but new developers have questions, and we made mistakes like everyone.

@bahmutov I found the solution. The solution was more complex than I thought docker run -v "$PWD:/e2e" -w /e2e cypress/included:6.2.1 This run as I wanted. However, I believe that sometimes is not that you have to teach me from scratch but new developers have questions, and we made mistakes like everyone.

hi @hvaandres , could you please share the solution? I would appreciate it :) thanks!

hi @hvaandres , could you please share the solution? I would appreciate it :) thanks!

@ivan1405 hear me out. You can use the above solution which is a bad example that I created since it will work, but I now understand better what I'm doing.
You can use this other configuration:
image: node:10.15.3
options:
  max-time: 15
pipelines:
  default:
  - step:
      name: Pipeline Cypress E2E
      caches:
        - npm
        - cypress
      image: cypress/included:6.3.0
      script:
        - npm ci
        - npx cypress run
      artifacts:
        - cypress/reports/**
        - cypress/videos/**

definitions:
  caches:
    npm: $HOME/.npm
    cypress: $HOME/.cache/Cypress

In this configuration, you are using a docker image that contains everything that you need. Docker/Cypress or you can check this GitHub link Docker/Cypress
If you would like to test it before you send it through the pipeline, you will have to download Docker. Then, you will have to clone the docker image to your project to make sure you can run it. From there, you can decide what scripts you will be using to test your code.

@ivan1405 hear me out. You can use the above solution which is a bad example that I created since it will work, but I now understand better what I'm doing.
You can use this other configuration:
image: node:10.15.3
options:
  max-time: 15
pipelines:
  default:
  - step:
      name: Pipeline Cypress E2E
      caches:
        - npm
        - cypress
      image: cypress/included:6.3.0
      script:
        - npm ci
        - npx cypress run
      artifacts:
        - cypress/reports/**
        - cypress/videos/**

definitions:
  caches:
    npm: $HOME/.npm
    cypress: $HOME/.cache/Cypress

In this configuration, you are using a docker image that contains everything that you need. Docker/Cypress or you can check this GitHub link Docker/Cypress
If you would like to test it before you send it through the pipeline, you will have to download Docker. Then, you will have to clone the docker image to your project to make sure you can run it. From there, you can decide what scripts you will be using to test your code.


Hugo site down?

Not getting any DNS response right now from the .io authoritative servers for gohugo.io. Other .io sites seem fine.
EDIT (fixed query to show authority section):
> SITE=gohugo.io; for auth in $(dig +noall @l.root-servers.net ${SITE} +auth | awk '{print $5}'); do echo ${auth}; dig +noall @$auth ${SITE} +answer +auth; echo; done

a0.nic.io.
io.			900	IN	SOA	a0.nic.io. noc.afilias-nst.info.<PHONE_NUMBER> 10800 3600 2764800 900

a2.nic.io.
io.			900	IN	SOA	a0.nic.io. noc.afilias-nst.info.<PHONE_NUMBER> 10800 3600 2764800 900

b0.nic.io.
io.			900	IN	SOA	a0.nic.io. noc.afilias-nst.info.<PHONE_NUMBER> 10800 3600 2764800 900

c0.nic.io.
io.			900	IN	SOA	a0.nic.io. noc.afilias-nst.info.<PHONE_NUMBER> 10800 3600 2764800 900

ns-a1.io.
io.			900	IN	SOA	a0.nic.io. noc.afilias-nst.info.<PHONE_NUMBER> 10800 3600 2764800 900

ns-a3.io.
io.			900	IN	SOA	a0.nic.io. noc.afilias-nst.info.<PHONE_NUMBER> 10800 3600 2764800 900

Sorry if this is the wrong place for this.

Came here because I'm running in to the same issue.

maybe the owner of domain gohugo.io forgot to renew, it's expired.

Perfect, works fine - thanks. Hope you guys will sort this out.

you guys can manually edit your hosts file and add this record.
<IP_ADDRESS> gohugo.io

only a temporary solution.

Any chance @ManassehZhou or someone else happens to know the IP address for discourse.gohugo.io as well? It's not listed on the SecurityTrails record for the domain and none of the other DNS history tools I'm aware of support .io TLDs. If not, no big deal.

It appears to correspond to gohugo.hosted-by-discourse.com, which resolves to <IP_ADDRESS>.
<IP_ADDRESS> discourse.gohugo.io

I confirm the issue. The site (Docs, Themes) is down.
Only @spf13 has control of the domain and it expired on the 16th of September.
Only the Forum works right now.
CC / @bep

It seems that the domain is still expired.
There's a temporary solution, we can still send dns query to its nameserver ruth.ns.cloudflare.com, andy.ns.cloudflare.com to get the IP manually, and write hosts file.
$ dig gohugo.io @ruth.ns.cloudflare.com +short
<IP_ADDRESS>

$ dig themes.gohugo.io @ruth.ns.cloudflare.com +short
gohugo.io.
<IP_ADDRESS>

$ dig discourse.gohugo.io @ruth.ns.cloudflare.com +short
gohugo.hosted-by-discourse.com.

$ dig gohugo.hosted-by-discourse.com. +short
<IP_ADDRESS>

I'll reopen this as this isn't resolved. But please don't fill this thread with suggestions, we know what the issue and solution is.

This is now fixed.


Invalid links in Modulith section in spring.io

Spring-modulith "landing page" (https://spring.io/projects/spring-modulith) contains invalid links in Overview "tab". The links are rendered as empty "Oops, 404" pages:
For example:
https://docs.spring.io/spring-modulith/docs/current/reference/html/#fundamentals.modules.application-modules
https://docs.spring.io/spring-modulith/docs/current/reference/html/#observability
I've noticed https://docs.spring.io/spring-modulith/docs/current/ contains only api subdirectory (there is no reference) whereas https://docs.spring.io/spring-modulith/docs/current-SNAPSHOT/ contains both api and reference.
I'm not sure if this is the right repository to raise this issue. Please let me know if I should raise it somewhere else.

The link to the reference documentation for the current version (1.2.1) on https://spring.io/projects/spring-modulith#learn points to https://docs.spring.io/spring-modulith/reference/current/, which also returns 404 Not Found.

Thanks for bringing this up! This was a mismatch between the version handling of our website and Antora. The former should point to the version explicitly, i.e. https://docs.spring.io/spring-modulith/reference/1.2.1. I've fixed that for the project page.

@odrotbohm - I'm not sure wha Anthora is and I still see invalid links. Therefore I have one question: should I expect the website to contain correct links now? When I go to https://spring.io/projects/spring-modulith#overview and click links in overview "tab" I still get 404:

Thanks for following up. Those links should be fixed now, too.

Thank you, @odrotbohm!


Eth 2.0 Phase 2 with "precompiles" proposal

The execution engine part is mostly found here: https://notes.ethereum.org/s/HylpjAWsE#Shard-processing
Official discussion thread: https://ethresear.ch/t/a-layer-1-minimizing-phase-2-state-execution-proposal/5397
We should investigate the feasibility of this proposal in ewasm and provide feedback on the ethresearch forum.

A translation of the proposal into (non-comprehensive) Ewasm design follows:

Entry point is main(), receives no arguments
The following EEI methods are defined:

copyData(offset: i32ptr, length: i32, memoryOffset: i32ptr), where memoryOffset is the memory area of the current execution to copy data to
setStorage(key: i32ptr, valuePtr: i32ptr, valueLength: i32)
getStorageSize(key: i32ptr) -> i32
getStorage(key: i32ptr, offset: i32, length: i32, memoryOffset: i32ptr)
saveReceipt(target: i32ptr, dataPtr: i32ptr, dataLength: i32)
call(id: u64, dataPtr: i32ptr, dataLength: i32) -> i32 where it returns execution status
getResponseSize() -> i32 size of the data returned by previous call
getResponse(offset: i32, length: i32, memoryOffset: i32ptr)
currentShard() -> u64
getRecentBeaconStateRoot(slot: i32, memoryOffset: i32ptr)
getRecentShardStateRoot(slot: i32, memoryOffset: i32ptr)
abort() to signal failure
finish() to signal success
executeCode(codePtr: i32ptr, codeLength: i32, dataPtr: i32ptr, dataLength: i32)

Differences to @vbuterin's version:

adapted it to the fact that wasm cannot handled 256-bit data natively
execution input (data) must be retrieved via copyData
call returns a result code and data must be retrieved separately


[question] Finding a block

I need to be able to find a block defined by the occurrence of an H2 title followed by a number of html elements and ending just before the opening of following H2, or the end of the container, in order to add a
 around it. Here is an example of the markdown:
##Ingredients

* Garlic
* Bread
* Cherry tomatos

##Preparation

* Peel the garlic
* Cut the cherry tomatoes in half
* Toast the bread
* Eat the whole thing

The final output from twig should be something like this:

Ingredients

(…)

Preparation

(…)

Can Stringy help me to do that? How?
Any help on the subject is appreciated!

Stringy doesn't have any special functions for assisting with that. Are you converting from markdown to HTML? If there's only a single level of nesting as in this example, you could convert the first h2 to

, each subsequent to

, and append a closing
.
That said, it sounds like you just want a markdown parser: https://github.com/erusev/parsedown