Panic occurs when certificates do not exist on disk

Note that I am missing the -unbound.ca flag which then defaults to a non-existant file /etc/unbound/unbound_server.pem. We should detect file existence and not panic.
Systemd unit
[Unit]
Description=Prometheus exporter for Unbound metrics, written in Go with pluggable metric collectors. The metrics exporter converts Unbound metric names to Prometheus metric names and labels by using a set of regular expressions.
Documentation=https://github.com/letsencrypt/unbound_exporter
After=network.target

[Service]
Type=simple
ExecStart=/opt/prometheus/bin/unbound_exporter \
    -unbound.cert "/etc/unbound/unbound_control_ec.pem" \
    -unbound.key "/etc/unbound/unbound_control_ec.key" \
    -unbound.host "tcp://localhost:8953"

[Install]
WantedBy=multi-user.target

Logs
unbound_exporter[5031]: level=info ts=2022-08-09T21:18:30.787Z caller=unbound_exporter.go:492 Startingunbound_exporter=(MISSING)
unbound_exporter[5031]: panic: open /etc/unbound/unbound_server.pem: no such file or directory
unbound_exporter[5031]: goroutine 1 [running]:
unbound_exporter[5031]: main.main()
unbound_exporter[5031]:         /tmp/tmp.pHIIcqYEmU/unbound_exporter.go:495 +0x679

There's also a panic if you set
-unbound.ca ""
unbound_exporter[5031]: level=info ts=2022-08-09T21:22:43.240Z caller=unbound_exporter.go:492 Startingunbound_exporter=(MISSING)
unbound_exporter[5031]: panic: open : no such file or directory
unbound_exporter[5031]: goroutine 1 [running]:
unbound_exporter[5031]: main.main()
unbound_exporter[5031]:         /tmp/tmp.pHIIcqYEmU/unbound_exporter.go:495 +0x679

To be clear, we should do this by handling this subcategory of error using https://pkg.go.dev/os#IsNotExist (i.e. not by statting the file first to see if it exists).
We should also have a separate useful error for the empty string.

There's also a panic if you set -unbound.ca ""
unbound_exporter[5031]: level=info ts=2022-08-09T21:22:43.240Z caller=unbound_exporter.go:492 Startingunbound_exporter=(MISSING)
unbound_exporter[5031]: panic: open : no such file or directory
unbound_exporter[5031]: goroutine 1 [running]:
unbound_exporter[5031]: main.main()
unbound_exporter[5031]:         /tmp/tmp.pHIIcqYEmU/unbound_exporter.go:495 +0x679

@pgporada - FWIW setting -unbound.ca "" works if you also set -unbound.cert "" .  In this case you get non-TLS to the unbound-control socket.

To be clear, we should do this by handling this subcategory of error using https://pkg.go.dev/os#IsNotExist (i.e. not by statting the file first to see if it exists).
We should also have a separate useful error for the empty string.

@jsha  - Perhaps a better way of handling this is simply to not set the ca, cert and key values by default? Changing defaults can break things for sure, but if this exporter is expected to be run on Prometheus targets (ie. hosts running Unbound) then communication between the exporter and unbound-control is local to the host anyway.
If I'm interpreting the docs correctly TLS is  ignored even when control-use-cert is set to yes in the remote-control section of unbound.conf, when unbound-control is listening on a local socket. Since listening on a local socket is assumed (-unbound.host defaults to tcp://localhost:8953) the default setup ends up doing this:
unbound-exporter (9167) -------TLS------> unbound-control (8953) ------->no-TLS------> unbound server (53)
...which is a bit odd.

If I'm interpreting the docs correctly TLS is ignored even when control-use-cert is set to yes in the remote-control section of unbound.conf, when unbound-control is listening on a local socket. Since listening on a local socket is assumed (-unbound.host defaults to tcp://localhost:8953) the default setup ends up doing this:

The "socket" terminology is a little confusing because there are both TCP sockets and Unix domain sockets. I believe the docs are saying "If you are using TCP sockets, the TLS options are relevant. If you are using Unix domain sockets, the TLS options are ignored."
I have a slight preference here for being opinionated, and supporting only the mode of operation that uses Unix domain sockets. It is simpler to configure and (broadly speaking) more secure. That would allow us to remove the certificate options entirely from unbound-exporter.

The "socket" terminology is a little confusing because there are both TCP sockets and Unix domain sockets. I believe the docs are saying "If you are using TCP sockets, the TLS options are relevant. If you are using Unix domain sockets, the TLS options are ignored."

I finally got around to testing this and you are correct. control-user-cert is only ignored if UNIX domain sockets are used.

I have a slight preference here for being opinionated, and supporting only the mode of operation that uses Unix domain sockets. It is simpler to configure and (broadly speaking) more secure. That would allow us to remove the certificate options entirely from unbound-exporter.

Agreed. TLS seems more valuable inbound to the exporter anyway ( #50 ) where the connection is much less likely to be local to the host.


message serialization: should tangle arrays be alphabetized too?

as a continuation of #1, i wonder if we should alphabetize the tangle arrays, since they are strings.
the use case is if someone wanted to store messages in an SQL database. with this change, as far as i can tell we'd be able to store the message metadata in different tables, columns, rows, whatever. (note: the content would be need to be stored as is, in a JSON column.) then you could re-construct the original message, in the exact same format. otherwise at the moment, we'd need to keep track of the original order of tangle arrays, if we want to re-construct the original message.

Oh, great use case you wrote there to justify the sort. I fully agree and am happy to accept the change to sort tangle arrays.


Added vue.js single-file component support

It looks like Vue.js is cool enough to deserve some attention. I added a first iteration of .vue templates support.

I think this code is ready to replace htmlmixed (after some adjustments). Ideas?

@marijnh can you please review my merge for Vue and htmlmixed? Even if you don't like an idea of .vue,  I think new htmlmixed mode code is much better structured and flexible (and may be a little bit faster).

I've merged this as bfbb9c716d1b3 and largely rewrote it in eb56e911191.
Things that were broken:

Detecting close tags inside tokens didn't work anymore because you were passing a regexp that started with ^.

People could no longer pass non-string mode specs in your object format.

The dependency on addon/mode/overlay wasn't declared.

The demo html page was still a mess with the text from the htmlmixed demo in it.

Attributes other than lang weren't recognized, since you passed the hard-coded string "lang" to getAttrValue.

My patch changes the format to arrays-of-arrays, removing the need for the huge deepmerge function, and fixes these bugs.

@marijnh whatever, man, if it will make this software better :) I'm a newbie in CodeMirror world.


Update Composer dependencies (2021-09-14-00-06)

Visual regression test passed!
View the visual regression test report


Add code sniffer and missing return types

Feature

Add a new composer sniff command to the project to check for PSR2 code standards.
Add several missing return type declarations

Impact

No changes to testing or library

well done, sir


Create very basic 404 page

Still need to figure out how to get it to actually display

Thanks @WCRest - merging now!


Make the CRUD of the template consistent

Originally, we treat LG file as the combination of templates and use empty string as the separator.
From now on separator "\r\n" would be used.
So, if we update a template with the body "- A", we would always get the body "- A" but not "-A\r\n" in any case. This idempotent relationship will greatly increase robustness and consistency

Pull Request Test Coverage Report for Build 115791

38 of 40 (95.0%)  changed or added relevant lines in 3 files are covered.
4 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.03%) to 81.485%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libraries/botbuilder-lg/src/templateExtensions.ts
2
3
66.67%

libraries/botbuilder-lg/src/templates.ts
31
32
96.88%

Files with Coverage Reduction
New Missed Lines
%

libraries/botbuilder-lg/src/template.ts
1
92.31%

libraries/botbuilder-lg/src/templates.ts
3
87.44%

Totals

Change from base Build 115560:
-0.03%

Covered Lines:
9303

Relevant Lines:
10996

💛  - Coveralls


Detect Multiple Artboards

If we can see if a document has multiple artboards before importing, we can implement some form of selection.

Hi Ben, I love framer and am pretty excited about Framer-Sketch integration work! It would be pretty awesome if Framer natively provides support for multiple artboards. That ways I can continue building designs and prototype them along the way. To me, native support means:

I don't need to manually hide artboards, the topmost artboard in sketch is visible and others are hidden
I can select an artboard from layer panel and have the viewer navigate to that artboard
Symbols are supported the way Sketch handles them.

Ping @benjaminnathan: just checking if you need anything from us to do this. I believe you can already get that info from Sketch using scripting or SketchTool, but I thought I'd ask just in case : )

Building a UI around this is a bit overkill for it's functionality, for now I propose we use the * flattening trick so it just becomes a flat layer.


value is not a valid dict (type=type_error.dict)

Hello!  If you have any questions or feedback, please feel free to reach out to us at
https://github.com/robusta-dev/krr/issues

Watch our latest video to optimize your workloads and save costs: https://www.youtube.com/watch?v=TYRA2QcDIuI

Running Robusta's KRR (Kubernetes Resource Recommender) v1.18.0
Using strategy: Simple
Using formatter: table

[13:17:07] INFO     Using clusters: ['yc-core-prod-v2']                                                                                runner.py:280
           INFO     Prometheus URL is specified, will not auto-detect a metrics service                                                                             loader.py:55
           INFO     Trying to connect to Prometheus for yc-prod-v2 cluster                                                                 prometheus_metrics_service.py:68
           INFO     Using Prometheus at http://victoria-metrics-01:8428 for cluster yc-prod-v2                                prometheus_metrics_service.py:97
           INFO     Prometheus found                                                                                loader.py:74
           INFO     Prometheus connected successfully for yc-prod-v2 cluster                                                                                loader.py:47
           INFO     Listing scannable objects in yc-prod-v2                                                                                __init__.py:96
[13:17:08] ERROR    An unexpected error occurred                                                                                runner.py:349
                    Traceback (most recent call last):
                      File "robusta_krr/core/runner.py", line 342, in run
                      File "robusta_krr/core/runner.py", line 288, in _collect_result
                      File "robusta_krr/core/integrations/kubernetes/__init__.py", line 579, in list_scannable_objects
                      File "robusta_krr/core/integrations/kubernetes/__init__.py", line 582, in <listcomp>
                      File "robusta_krr/core/integrations/kubernetes/__init__.py", line 101, in list_scannable_objects
                      File "robusta_krr/core/integrations/kubernetes/__init__.py", line 297, in _list_scannable_objects
                      File "robusta_krr/core/integrations/kubernetes/__init__.py", line 297, in <genexpr>
                      File "robusta_krr/core/integrations/kubernetes/__init__.py", line 212, in __build_scannable_object
                      File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
                    pydantic.error_wrappers.ValidationError: 2 validation errors for K8sObjectData
                    labels
                      value is not a valid dict (type=type_error.dict)
                    annotations
                      value is not a valid dict (type=type_error.dict)

Hi @patsevanton, is this fixed for you on master? I suspect this is the issue that was fixed by https://github.com/robusta-dev/krr/pull/377


Re-organizing the main.py file: moving website creation and transcription data creation

For the moment, the __main__ contains code to prepare the metadata as well as the website. I'd say that we better move this code somewhere else, maybe to clts/prepare-data.py or similar, as this code is nothing we want users to run regularly via commandline, since it changes content in the package.
It is needless to say that we need an automated routine to create both website and links to phoible, etc., but as we may as well manually correct the links to phoible, and the sound classes, we may better put this into an extra script that can be run, but should not be that easy to run as currently.
The question is: where? At the package level, as I said before, right next to the setup.py? Or better somewhere else? And how should be best call it?

I'll take care of that. Have a couple more changes for the tests in the making, so please don't merge anything big :)

okay, excellent, but note that I have a bigger merge with revised tests, especially on the tone-system, which doesn not work with frozensets (i.e., I worked on the #55 issue and consider it solved, but did not yet do the PR, compare. Should I PR now, so you can see what I chagned?


New logo proposal

I made some quick edits to the Haskell logo:

.

Thanks for the suggestion, very creative!
The current logo is used in many places right now and changing it is going to be a bit of a pain. It would also feel like bikeshedding given the small size of the community right now. As the community grows, we will probably have to take another look at the logo at some point though and can consider changing the logo then.


Undefined symbols for architecture arm64

HI, I am trying the code on MacOS with apple m1, here is the result I get
example-nim-cmake on  master [?] via △ v3.26.4
❯ make
[ 25%] Generating libnim.a
  Verifying dependencies for<EMAIL_ADDRESS>  Compiling fib (from package interop) using c backend
   Success: Execution finished
[ 50%] Building Nim static library
[ 50%] Built target nimbuild
[ 75%] Building C object src/CMakeFiles/example.dir/main.c.o
[100%] Linking C executable example
ld: warning: ignoring file nim/libnim.a, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
Undefined symbols for architecture arm64:
  "_NimMain", referenced from:
      _main in main.c.o
  "_fib", referenced from:
      _main in main.c.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [src/example] Error 1
make[1]: *** [src/CMakeFiles/example.dir/all] Error 2
make: *** [all] Error 2

I'm guessing you have the x86_64 compiler installed, make sure MacOSX: arm64 is present when you run nim --version
If so try building the compiler from source, M1 isn't officially supported yet (will be for Nim 2.0.0)
See https://forum.nim-lang.org/t/7823#49678

hi, I have been trying to find out how is libnim.a file generated.　it seems that this file is compiled as x86_64

The command line for building libnim is here - https://github.com/stoneface86/example-nim-cmake/blob/a44bfc4ca97040d61cf80343485c7c4f919f70fb/src/nim/CMakeLists.txt#LL34C1-L41C2
It uses nimble to build a static library. The nimble that is used is determined from the FindNim.cmake script. My guess is that the nim/nimble it finds on your system are x86_64 releases, so it builds for x86_64 by default.


Add new workflow to verify binary install

Description
I have observed some issues within other plugins of issues being only caught at run time. This is because several things can go wrong during the build process, which may not be caught in a dev setup. This adds a workflow to verify that building and installing into OSD works on every PR.
Related issues:
https://github.com/opensearch-project/security-dashboards-plugin/issues/1709
https://github.com/opensearch-project/security-analytics-dashboards-plugin/pull/875
https://github.com/opensearch-project/dashboards-observability/pull/309
https://github.com/opensearch-project/OpenSearch-Dashboards/issues/5952
Issues Resolved
List any issues this PR will resolve, e.g. Closes [...].
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Workflow is failing due to core issue

I'm curious if such errors were captured by integration tests?


Problem with node.matches in IE

Hi. Found simple.html not working with Version 0.5.4 and IE.
Problem is "!node.matches(properties.query)" in wysihtml-toolbar.js
IE needs "node.msMatchesSelector".
I changed it in my source but i'm not good enought to do it in the correct way direct in the sources here :o)

I had this same issue with Microsoft Edge 20.10240.16384.0 until I upgraded to version 0.5.5 of the library, but still persists in Microsoft Edge 25.10586.0.0, where first time I try to edit text I get a WRONG_DOCUMENT_ERR exception thrown by the assertSameDocumentOrFragment function. Subsequent clicks on the text throw the error about the nonexistent matches method, throw by the test method in
    if (properties.query) {
      if (!node.matches(properties.query)) {
        return false;
      }
    }

In Edge 20.xxx, the code never reaches those lines, so there is no problem editing using the mouse (position the cursor clicking, selecting text). In Edge 25.xxxx, I've checked the window.Element.prototype.matches is polyfilled correctly to use the native msMatchesSelector, the problem is that node doesn't include the method
I'm working on a patch for my app as I need to fix this ASAP,a quick hack would be adding a check before trying to use matches to use the microsoft prefixed version if necessary, but I'm afraid that isn't a proper fix to be implemented in the library. I could try to do something better if I get some hints about where could I have a look to try to get to the real cause of the problem.

The bug is in the polyfill for Element.prototype:
(function (ELEMENT) {
...
}(Element.prototype));
Element.prototype should be win.Element.prototype so that when the second call for iframe's polyfill is made, it updates the iframe's Element object (right now it is updating the main window's Element.prototype twice).

But I'm using the editor in the main window, I don't create an iframe, so making that change doesn't fix it either. What puzzles me is this:
I placed a breakpoint inside the if (properties.query) to check the content of the node var. In both, Edge 20 and 25, node seems to be the paragraph I'm editing, writing node in the console outputs
bla bla
, but in Edge 20,
node instanceof Element
true
node.matches
function msMatchesSelector() { [native code] }

in Edge 25,
node instanceof Element
false
node instanceof Object
false
node.matches
undefined

However it has a lot of methods attached, as it is was an Element object, including msMatchesSelector.

I found the root of my problem, and is that the editor is intended to be used in the same window where is loaded, but my use case is to use the same loaded code both in the main window and an iframe, and despite of working fine across several browsers, it blows up the first time I click on the toolbar in Microsoft Edge, getting the WRONG_DOCUMENT_ERR exception thrown by assertSameDocumentOrFragment.
Adding a matches polyfill inside the iframe fixes some other issues in Edge, but still figuring out how to sort this out.

In the end is an issue with the rangy library, as the getSelection method returns a null selection (null anchorNode, 0 rangeCount, etc...) in Chrome but in Edge it returns a selection anchored to the body of the main window, so the problem is in that library.


Wrong version in README.md?

Should this line:
      - uses<EMAIL_ADDRESS>read
      - uses<EMAIL_ADDRESS>

Versions are generated by semantic-release, the readme is just an example on how the action is used. I'd recommend Dependabot for Actions to keep your workflow up to date.


JsonSyntaxException when using GetUserProfile

Hey Mr. Wizard. I've tried to update Daijishou with your API recently. But I encountered an Issue below when I use GetUserProfile. I've tried other options like GetUserSummary and it works correctly. Could you enlighten me, or it could be a bug?
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected an int but was BOOLEAN at line 1 column 307 path $.UserWallActive

Thank you very much.

And I found out UserWallActive is inconsistent between different endpoints. Take a look at responses from API docs:
User Profile (Boolean)
  "ID": 16446,
  "UserWallActive": true,
  "Motto": "Join me on Twitch! GameSquadSquad for live RA"

User Summary (Integer)
  "ID": 224958,
  "UserWallActive": 1,
  "Motto": "",

Yes, unfortunately this inconsistency will have to be remedied on our end as to not break compatibility with other programs depending on that value being an Integer.

Thanks!


Some options for what's shown on the results page

Particularly, David Wishart wants the option not to show the questions and advice on the printed version of the results page (they're hidden in the screen stylesheet).
There could be options to show/hide each of the other sections: student info, score breakdown, timing.

I'd be up for giving this a go, have just set up the local instance so I'll have a toy around if no-one else has started.

Thanks! Let me know if you get stuck.

There are two halves to this:

Add the option to the Numbas editor for exam authors.
Make the Numbas compiler (this repository) load the option, and act on it when displaying the results.

In the Numbas editor, you'll need to add some settings to the Exam object, and make sure they get saved and loaded.

In editor/exam/edit.js, add an object this.results_options = {showquestions: ko.observable(true), showadvice: ko.observable(true)}
Make sure those options are loaded and saved by the Exam.load and Exam.toJSON methods
Add the options to the exam editor template, inside the Feedback tab.

Then, in this repo:

In exam.py, load the options in Exam.fromDATA and produce some corresponding XML in Exam.toxml (yes, it's a bit redundant to have to translate JSON to XML, but there are historical reasons)
In runtime/scripts/exam.js, load the options from the XML.
Finally, in the default theme, you'll have to do something to question.html and the print stylesheet to only show questions or advice if the corresponding settings are turned on.

Implemented, thanks to @stuwilmur!


[DRAFT] cannot set headers after they are sent to the client

Background
As a followup to #inc-141 (Force 504 errors and unleash request spike) the velocity team is looking to update the sentryFilters removing the response timeout from the list of ignored errors (which currently does not end up in sentry). As of today 10AM ET, the sentry statistics over the last 24h are:

The decision to do this was a result of not being able to trace the 504s seen during the mentioned incident. One of the concerns is that removing this type of error from filters may contribute to us hitting sentry rate limits. As I started to look at sentry (and papertrail) I noticed that the following error is occurring many times throughout the day: Cannot set headers after they are sent to the client.

Going by sentry issue title, this affects multiple endpoints:

According to sentry, the error was first seen on Jan 31st.
Problem
During the request lifecycle (server side), the application is doing some redirecting and there seems to be logic missing that tells the server to stop processing a request once the necessary redirects have been triggered.
I decided to look into this specific error (and other errors) before updating the sentry filters and introducing another type of error being sent to sentry.
As far as the specific exception is concerned, Cannot set headers after they are sent to the client, the frequency in sentry is:
~90/h (vs 2nd most seen error ~30)
~2k/day (vs 2nd most seen error ~500)
~65k/mo (vs 2nd most seen error 16k)

During our weekly mob @artsy/velocity-engineers spent some time discussing this issue. We were able to reproduce the issue and introduce a hacky fix, mostly for the sake of demonstration to start a discussion about whether a more appropriate fix should be introduced.
Demonstration
Running force (locally) in production mode and then signing in results in the following:
GET /auth-redirect?redirectTo=https%3A%2F%2Fstagingapi.artsy.net%2Fusers%2Fsign_in%3Fredirect_uri%3Dhttp%253A%252F%252Flocalhost%253A5000%252F%26trust_token... 302 1388.480ms <IP_ADDRESS> "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36"
lib/middleware/errorHandlerMiddleware | 500 Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
    at ServerResponse.setHeader (_http_outgoing.js:561:11)
    at ServerResponse.header (/Users/ozzievasdi/code/force/node_modules/express/lib/response.js:767:10)
    at ServerResponse.send (/Users/ozzievasdi/code/force/node_modules/express/lib/response.js:170:12)
    at done (/Users/ozzievasdi/code/force/node_modules/express/lib/response.js:1004:10)
    at tryHandleCache (/Users/ozzievasdi/code/force/node_modules/ejs/lib/ejs.js:278:5)
    at View.exports.renderFile [as engine] (/Users/ozzievasdi/code/force/node_modules/ejs/lib/ejs.js:489:10)
    at View.render (/Users/ozzievasdi/code/force/node_modules/express/lib/view.js:135:8)
    at tryRender (/Users/ozzievasdi/code/force/node_modules/express/lib/application.js:640:10)
    at Function.render (/Users/ozzievasdi/code/force/node_modules/express/lib/application.js:592:3)
    at ServerResponse.render (/Users/ozzievasdi/code/force/node_modules/express/lib/response.js:1008:7)
    at n.renderServerApp (/Users/ozzievasdi/code/force/server.dist.js:1:574465)
    at /Users/ozzievasdi/code/force/server.dist.js:1:3114205
    at tryCatch (/Users/ozzievasdi/code/force/node_modules/regenerator-runtime/runtime.js:45:40)
    at Generator.invoke [as _invoke] (/Users/ozzievasdi/code/force/node_modules/regenerator-runtime/runtime.js:274:22)
    at Generator.prototype.<computed> [as next] (/Users/ozzievasdi/code/force/node_modules/regenerator-runtime/runtime.js:97:21)
    at asyncGeneratorStep (/Users/ozzievasdi/code/force/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)

This is one path, that was obvious from looking at papertrail, to trigger this error. There are likely others. The committed change prevents this one error from being thrown but as mentioned previously, there are likely other redirect related conditions that would trigger it.
Open Questions

Is it worth pursuing a more appropriate fix for this issue?
What would be an appropriate fix for something like this?
If the fix is deemed worth it, who is in the best position to tackle the fix?

I tried to capture the problem as best as I could. Hope this is enough to start a meaningful discussion.

I have indeed seen this error from onServerSideRender from time-to-time but so far it's been harmless compared to the benefit. That said its been on the list. I'd suggest removing the responseTimeout from sentryFilters and adding Cannot set headers after they are sent to the client instead, for the time being.

Here's a quick sketch:
interface RedirectProps {
  path?: string
  statusCode? string
  onRedirect?: () => void
  req: ArtsyReq
  res: ArtsyRes
}

export function redirect({ path, statusCode, onRedirect, req, res }: RedirectProps) {
  res.locals.hasRedirected = true

  if (onRedirect) {
    onRedirect()
  } else {
    res.redirectTo(path, statusCode)
  }
}

Which can then be used like so:
import { redirect } from 'v2/System/Server'

onServerSideRender: props => {
  redirect({
    onRedirect: () => redirectPostAuth(props)
  }
},

Or if we don't have a function that has a lot of its own behavior, redirect can be used more simply like so:
onServerSideRender: props => {
  redirect({ to: "/foo", status: 304 })
}

I have indeed seen this error from onServerSideRender from time-to-time but so far it's been harmless compared to the benefit. That said it's been on the list to fix, and the implementation around onServerSideRender is def a first pass.
For now, I'd suggest removing the responseTimeout from sentryFilters and adding Cannot set headers after they are sent to the client instead, for the time being, or creating a generic redirect function that will set props.res.locals.hasRedirected = true internally, so that we don't have to litter them throughout the code, and instead update each redirect that we're using in onServerSideRender to use that redirect function instead.
The addition to v2/server seems fine!

@damassi thank you for the explanation and for providing suggestions and path forward. Seeing as the issue is on your radar I am happy to close this up and let the experts handle solving this.
Since you took the time to provide a nice example, I wanted to give it a try tho and see what the test suite has to say about it.

Spent some time looking into this and am not able resolve the issues. As this isn't strictly necessary and y'all are aware, I shall close this.


Fire Fox

please proved support for Mozilla Fire for

BETA version is release - https://addons.mozilla.org/en-US/firefox/addon/auto-clicker-autofill-beta/versions/


Fixed document Error.

In Chinese document, res.sendFile not has ().

@jonchurch Can you merge this PR ?

@yiyu0x I don't have merge permissions. Someone will come along and merge this at some point though 👍


plugin:obsidian-custom-attachment-location:841 Error: Destination file already

when run collect attachments in curren note,  error occured.I've uploaded my test notes。

windows 11
obsidian v1.6.7
test note.zip

Please retest with https://github.com/RainCat1998/obsidian-custom-attachment-location/releases/tag/4.20.0
If the issue persists, please provide a copy of entire vault, not just note. And also record a video with the issue

Add  entire vault and video gif
obsidian_test.zip

动画2.zip


Unable to flash Monster Illuminessence LED light strip

I can successfully connect this device to tuya.
I have the most up to date version of tuya-convert and have flashed many other devices without issue. Would appreciate any help to troubleshoot.
smarthack-web.log
smarthack-wifi.log
smarthack-mqtt.log
smarthack-psk.log
smarthack-udp.log
I do have this showing up in my smarthack-psk log.
new client on port 443 from <IP_ADDRESS>:62861
('could not establish sslpsk socket:', SSLError(1, u'[SSL: NO_SHARED_CIPHER] no shared cipher (_ssl.c:727)'))
new client on port 443 from <IP_ADDRESS>:62862
('could not establish sslpsk socket:', SSLError(1, u'[SSL: NO_SHARED_CIPHER] no shared cipher (_ssl.c:727)'))
new client on port 443 from <IP_ADDRESS>:62863
('could not establish sslpsk socket:', SSLError(1, u'[SSL: WRONG_SSL_VERSION] wrong ssl version (_ssl.c:727)'))
$ openssl version
OpenSSL 1.1.1d  10 Sep 2019

The SSL errors are from your mobile device, it looks like the device never connected to the vtrust-flash AP. Can you provide information about the device you are trying to flash?

Here is the device information from tuya-cli
{
name: 'RGBW LED Strip',
id: 'eb178b415375cfb5fei7ur',
key: '0bd9ab46dc17e9bc'
},

I wiped the logs and tried tuya-convert again. Here are the rsulting logs.
smarthack-udp.log
smarthack-web.log
smarthack-wifi.log
smarthack-mqtt.log
smarthack-psk.log

I can see the device has connected now, but unfortunately it is not a supported device. We can only install ESP82xx firmware and this device does not use an ESP82xx.

Bummer, but good to know, thank you. May I ask how can you tell from the above information? Teach this guy to fish a little please.

Sure, there are three clues.
The first is the MAC address from your wifi log, looking up the OUI you can see it is not from Espressif Inc.
The second clue is that the device ID does not end with the MAC address of the device, or a MAC address of any kind. Devices with the ESP SDK use an ID constructed from the product ID followed by the MAC address.
The third clue is a bit more obscure, in your udp log, the discovery packet for this device contains the misspelling "ablilty" which is not present in the Tuya ESP8266 SDK, only in their other SDKs.

My apologies but one thing I don’t understand is how there is a tasmota template for this device if it is not supported. https://templates.blakadder.com/monster_smart_illuminessence.html

The manufacturers are in the process of switching over, you may be able to find models that still use the ESP82xx.


Fix handling of --migrate option

@mkoistinen @FinalAngel plz review (it's not elegant, and probably we should work a bit more on app-manage integration, but we can postpone that)

@yakky just that I understand it correctly, if you would do:
python manage.py --migrate --no-migrations which results in ````python manage.py --no-migrations``?
If this is correct, could we also display a warning, saying "You cannot provide --migrate when using --no-migrations"?

Yes --no-migrations "wins". How about something like Both --migrate and --no-migrations have been provided. --no-migrations is in effect.

:+1: @yakky


Improve discoverability of your work on HF

Hi,
Niels here from the open-source team at Hugging Face. I discovered your work through the paper page: https://huggingface.co/papers/2407.16988 (feel free to claim the paper so that it appears at your HF account!).
However there are a couple of things which could improve the discoverability of your work, which I've listed below.
Upload and link models to the paper page
I see the models are currently on Google Drive, which hurts their discoverability. Would be awesome to push them to the hub so that people find them when filtering on "image-to-3D": https://huggingface.co/models?pipeline_tag=image-to-3d&sort=trending
Here's a guide: https://huggingface.co/docs/hub/models-uploading. Make sure to add pipeline_tag: image-to-3d as metadata to the model card so that people find them. There's a guide here.
It would be great to link the models to the paper, see here on how to do that: https://huggingface.co/docs/hub/en/model-cards#linking-a-paper
Let me know if you need any help regarding this!
Cheers,
Niels
ML Engineer @ HF 🤗

Thanks for your good suggestion. We've uploaded our checkpoint in huggingface https://huggingface.co/xiaobiaodu/dreamcar123/tree/main

Hi,
Thanks for doing that. I'm curious, where did you find about uploading a model? Cause ideally one could leverage this guide: https://huggingface.co/docs/hub/models-uploading#upload-a-pytorch-model-using-huggingfacehub in case your model is a custom PyTorch one.
Also, would it be possible to add a minimal model card (README)?

Done. I upload the checkpoint by the web interaction UI.

Great, feel free to link to it from the main README of this Github repo :)


Timeout issue being received. Message still sent

Not exactly sure what's going on here:
I am simply echoing out the response for now but don't want the original users message to show so i'm using a delayed response (i believe that's the only way to hide the message?).
Here is my code:
slashCommand.replyAcknowledge;             slashCommand.replyPublicDelayed(message<EMAIL_ADDRESS>has asked: "+message.text)
However in action this does the following:
i) message is sent
ii) timeout message received privately
iii) box refills with message I was attempting to send.
If i log in as another user I can see that the message was successful. So i'm confused as to why I'm receiving the issue and how to clean it up better?
The below image shows what happens after sending a message

@danhodkinson I posted a solution in #595, let me know how it works for you!

Closing this in order to concentrate the conversation in the linked thread above


fix: add local Hashable instance (#1737)

Could you please add tests for the issue being fixed?
It would also be nice to have comments explaining the change.

you should also put "fixes #1737" in the PR description or commit comment if it is intended to address/close an issue.

you should also put "fixes #1737" in the PR description or commit comment if it is intended to address/close an issue.

Sure, will do! I actually took a quick peek at the recent commits and followed what I saw there: fix: .. (#????).

The reference in the commit title is a PR number from squashing, not the issue number


Deploy transaction is not declaring the class

While using the re-execution tool I've found that Deploy transactions are not working: it looks like Deploy is missing the step of actually declaring the class.
The Deploy transaction actually did declare the class and deployed a contract with the class just declared. Currently the code seems to do just the second step -- which won't work because the class is not really added to state.

Adding a state.set_contract_class(&self.contract_hash, &self.contract_class) call to Deploy.apply() seems to fix the issue (after adding self.contract_class that contains the actual class definition of course).


Add ZSXX basis to 1q euler decomposer

Summary
This commit adds a new basis ZSXX to the 1q euler decomposer. This basis
is identical to the ZSX basis except it does an additional
simplification pass so that instead of having 2 sx gates in the
synthesized output a single X gate is used instead.
Details and comments
Fixes #5722
~This PR depends on #5928 (and will be on hold until that merges)~

We might want to wait on this one until #5827 is ready. That PR has some fixes for the ZSX basis which would also apply here.

This has been superseded by: #5827 which included this commit so closing this now.


Access is Denied

I have a Samsung Galaxy S7 Active.
Model Number: SM-G891A
Region Code: ATT
Does anyone know what the problem is?

Unfortunately, you can't download AT&T or Verizon firmware directly from Samsung's servers.


Bash operator

Add BashOperator.

Keep in mind:

[X] Documentation updates
[X] Changelog updates

Closing in favour of https://github.com/getindata/dbt-airflow-factory/pull/83


Update kernel

Allow for kernel updates without breaking the install

How does this prevent breaking the install after kernel updates?
This would require manually running frzr-deploy --update-bootloader but it would still not find the newly installed kernel.

It's true we need to run it manually. We can do a pacman hook for it. It will copy the generated initramfs and kernel image to the deployments boot so it will match the installed modules (the thing preventing from boot).
The bootloader configuration will be reset to our default.

I prefer this solution for the problem of kernel updates:
https://github.com/ChimeraOS/frzr/commit/62934aefc38d350e54cca7585ae8e594377456df

I prefer this solution for the problem of kernel updates when unlocked: 62934ae

Seems simpler. Maybe this one could help on argument parsing. If you prefer I'll only keep that part.


Module not found: Can't resolve '@mui-treasury/components/flex'

Hello Siriwatknp,
First off, I'm very appreciative of your nice project. It's saving me a lot of time.
When I tried to use your showcase component here  I have met an error

"Module not found: Can't resolve '@mui-treasury/components/flex' in ..."

I installed the newest module by using the NPM & Yarn but still met the same error. (it seems the flex module is missing!?)

Please help me to fix it.
Thanks,

Oh, yes. I haven't publish this component yet. will do it today. sorry for that.

just published new version, please upgrade to
"@mui-treasury/components": "^1.4.0",
"@mui-treasury/styles": "^1.7.0"

It works well now. Thanks.

@siriwatknp Really really appreciate the work you've put into this library. I ran into similar issues where I was trying to use this card I found but I had to downgrade to "@mui-treasury/components": "^1.5.2", to get it to work. It seems like the demos should list which version they are built with? Anyway, I don't mean to be a complainer. But you might mention in the docs which version people need for each demo.

@siriwatknp Really really appreciate the work you've put into this library. I ran into similar issues where I was trying to use this card I found but I had to downgrade to "@mui-treasury/components": "^1.5.2", to get it to work. It seems like the demos should list which version they are built with? Anyway, I don't mean to be a complainer. But you might mention in the docs which version people need for each demo.

Hello Siriwatknp, tell me, please, I've try using components ChatMsg in my React-project v.18.2.0 from @mui-treasury/components/chatMsg/ChatMsg, but I get error/ How I can fixed this problem? Thanks!


cocalc cloud → onprem

Rename all "CoCalc Cloud" → "CoCalc OnPrem" and related phrases.
In particular, this concerns https://doc.cocalc.com/cocalc-cloud.html
Regarding the URL itself, I propose to move this page to cocalc-onprem.html and keep the cocalc-cloud.html URL: the old page should just mention that it has been renamed and link to the new page (to avoid broken links)
Also, all hosts in URLs have to change: doc-cloud.cocalc.com → onprem.cocalc.com

This is very redundant:

There has to be just one page mentioning CoCalc OnPrem as well as On Prem Compute Servers and link to much more detailed real docs.

Also "On-Premises" versus "On Prem" versus "OnPrem".  Which is it?  We should make a consistent choice everywhere.  I personally think "OnPrem" is what we should switch to everywhere.

Although if one can actually install "CoCalc OnPrem" on an "OnPrem" Compute Server, things may get confusing ;-)

One can!
I just made a change in the frontend UI: https://github.com/sagemathinc/cocalc/commit/accd6d27f6087331b44a76cda336aae57bea6b04

After pondering what to do with links to old blog posts and discussions and how to rephrase things in general, I've deleted most of the content linking to full CoCalc OnPrem instead and mentioning the store page as well. I've kept OnPrem Compute Server section since for some people that may be exactly what they need. The main page file name is still on-premises, should we change it? Internal links are done using ref instead of doc now, so TOC is the only place that relies on the file name.
https://doc.cocalc.com/cocalc-cloud.html
https://doc.cocalc.com/on-premises.html


Construct signature not recognized when declared as a function-typed property

var C : {
   new: () => number;
   new(x: number): string;
}

var x = new C();
var y = new C(1);

(same thing on playground)
The y declaration works fine, but the x declaration generates an error saying that "Supplied parameters do not match any signature of call target".
Incidentally, this also doesn't work:
var C : {
	new: {
		(): number;
		(x: number): string;
	}
}

One could argue that "who cares!", but I would object that this prevents some cases of code reuse, for example:
interface I<T> {}
type Ctor<T> = (t: T[]) => I<T>

var sn : {
	new: Ctor<string> & Ctor<number>;
}

var nb : {
	new: Ctor<number> & Ctor<boolean>;
}

The syntax new: () => number declares a property named new, not a constructor. The declaration actually behaves as expected:
var C : {
   new: () => number;
   new(x: number): string;
}

var x = C.new();   // Ok, call new method
var y = new C(1);  // Ok, call constructor


Linkage Checker to examine linkage error at artifact level

Linkage Checker to examine linkage error at artifact level

gax-grpc has linkage errors caused by gRPC dependencies. The errors are suppressed by gax-grpc/linkage-checker-exclusion.xml.

As part of linkage-monitor.sh script, new linkage checker tasks worked for each artifact:
> Task :gax:checkJavaLinkage
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

> Task :gax-grpc:checkJavaLinkage
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

> Task :gax-httpjson:checkJavaLinkage
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/4.9/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 16s

log

@elharo @chingor13 PTAL.

What went wrong:
A problem occurred configuring root project 'gax-java'.

Could not resolve all artifacts for configuration ':classpath'.
Could not resolve net.ltgt.gradle:gradle-apt-plugin:0.10.
Required by:
project :
Could not resolve net.ltgt.gradle:gradle-apt-plugin:0.10.
Could not get resource 'https://plugins.gradle.org/m2/net/ltgt/gradle/gradle-apt-plugin/0.10/gradle-apt-plugin-0.10.pom'.
Could not GET 'https://plugins.gradle.org/m2/net/ltgt/gradle/gradle-apt-plugin/0.10/gradle-apt-plugin-0.10.pom'.
sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: signature check failed

Try:
Run with --stacktrace option to get th

Java 7 from Kokoro
A problem occurred configuring root project 'gax-java'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve net.ltgt.gradle:gradle-apt-plugin:0.10.
     Required by:
         project :
      > Could not resolve net.ltgt.gradle:gradle-apt-plugin:0.10.
         > Could not get resource 'https://plugins.gradle.org/m2/net/ltgt/gradle/gradle-apt-plugin/0.10/gradle-apt-plugin-0.10.pom'.
            > Could not GET 'https://plugins.gradle.org/m2/net/ltgt/gradle/gradle-apt-plugin/0.10/gradle-apt-plugin-0.10.pom'.
               > sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: signature check failed

@chingor13 @stephaniewang526 Would you update repository setting for "Required" check? I stopped Kokoro's checks for gax-java.

Remove Kokoro checks from "Required" checks
Mark the 4 GitHub Actions checks as "Required"

Updated the settings manually and will manage this repo's settings via our settings bot: https://github.com/googleapis/repo-automation-bots/pull/565


gin  插入了2次记录

// 日志记录到文件
func LogerMiddleware() gin.HandlerFunc {
	dir := file.GetPwd()
	logFilePath := fmt.Sprintf("%s/%s%s", dir, setting.AppSetting.RuntimeRootPath, setting.AppSetting.LogSavePath)
	logFileName := "gin"

	// 日志文件
	fileName := path.Join(logFilePath, logFileName)
	fmt.Println("LogerMiddleware: " + fileName)

	// 写入文件
	src, err := os.OpenFile(fileName, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0777)
	if err != nil {
		fmt.Println("err", err)
	}
	// 实例化
	logger := logrus.New()
	//设置日志级别
	logger.SetLevel(logrus.DebugLevel)
	//设置输出
	logger.Out = src

	// 设置 rotatelogs
	logWriter, err := rotatelogs.New(
		// 分割后的文件名称
		fileName+".%Y-%m-%d.log",
		// 生成软链，指向最新日志文件
		rotatelogs.WithLinkName(fileName),
		// 设置最大保存时间(7天)
		rotatelogs.WithMaxAge(7*24*time.Hour),
		// 设置日志切割时间间隔(1天)
		rotatelogs.WithRotationTime(24*time.Hour),
	)

	writeMap := lfshook.WriterMap{
		logrus.InfoLevel:  logWriter,
		logrus.FatalLevel: logWriter,
		logrus.DebugLevel: logWriter,
		logrus.WarnLevel:  logWriter,
		logrus.ErrorLevel: logWriter,
		logrus.PanicLevel: logWriter,
	}

	logger.AddHook(lfshook.NewHook(writeMap, &logrus.TextFormatter{
		TimestampFormat: "15:04:05",
	}))

	return func(c *gin.Context) {
		//开始时间
		startTime := time.Now()
		//处理请求
		c.Next()
		//结束时间
		endTime := time.Now()
		logger.Infof("%3d | %8v | %13s | %s | %s | %s | %s | %s |",
			c.Writer.Status(),
			endTime.Sub(startTime),
			c.ClientIP(),
			c.Request.Method,
			c.Request.RequestURI,
			c.Request.Proto,
			c.Request.UserAgent(),
			c.Request.Referer(),
		)

	}
}
```

```
time="16:48:31" level=info msg="200 | 4.000226207s |     <IP_ADDRESS> | GET | /gapi/MenuGoods/login | HTTP/1.0 | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36 Edg/80.0.361.69 |  |"
time="2020-04-03T16:48:31+08:00" level=info msg="200 | 4.000226207s |     <IP_ADDRESS> | GET | /gapi/MenuGoods/login | HTTP/1.0 | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36 Edg/80.0.361.69 |  |"
time="16:54:12" level=info msg="200 | 4.000376069s |     <IP_ADDRESS> | GET | /gapi/MenuGoods/login | HTTP/1.0 | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36 Edg/80.0.361.69 |  |"
time="2020-04-03T16:54:12+08:00" level=info msg="200 | 4.000376069s |     <IP_ADDRESS> | GET | /gapi/MenuGoods/login | HTTP/1.0 | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36 Edg/80.0.361.69 |  |"

```

I'm not familiar with gin nor logrus. Would it be possible for you to provide with a runnable sample?

I'm not familiar with nor . Would it be possible for you to provide with a runnable sample?gin``logrus

比如正常的程序,  我的代码有问题吗

比如正常的程序, 我的代码有问题吗

At first glance, nothing seems weird. I need to reproduce it to figure out if this is my problem or gin problem or logrus problem or a combination of any of the above.

比如正常的程序, 我的代码有问题吗

At first glance, nothing seems weird. I need to reproduce it to figure out if this is my problem or gin problem or logrus problem or a combination of any of the above.

我单独写个gin试试看, 是不是我有其他日志的影响

我单独写个gin试试看, 是不是我有其他日志的影响

sorry, google translate didn't work for this particular sentence, so I didn't get it :/
Anyways, I'm open to the idea that it could be a bug in my code, but I just need a standalone program or a Go test case (func TestXXXX(t*testing.t)) to try to replicate what you are doing

我单独写个gin试试看, 是不是我有其他日志的影响

sorry, google translate didn't work for this particular sentence, so I didn't get it :/
Anyways, I'm open to the idea that it could be a bug in my code, but I just need a standalone program or a Go test case (func TestXXXX(t*testing.t)) to try to replicate what you are doing

win10  is ok
centos7 会出现这个情况
ginLogerMiddleware.zip

Hey, sorry, I didn't realize you had sent me in your program.
I ran on my Mac, and I couldn't replicate.
You say it happens on CentOS 7, but if it doesn't happen on other platforms, I highly doubt that the problem lies in  our code (both of ours), and instead would be much suspicious of the environment that you have in CentOS 7.   I don't know, maybe you are redirecting output wrongly, maybe there's a configuration error in whatever daemon ....
Have you tried running in other Linux environments?

@huchenghua 你可以试试不同的 InfoLevel  使用不同的 logWriter，这是logrus使用的问题

noConsolePrint, _ := os.Open("/dev/null")
gin.DefaultWriter = io.MultiWriter(noConsolePrint)

I also encountered the same problem, repeatedly write logs

All: thanks for sending in your reports, but I really need to replicate this myself first. Can somebody please send me a minimal case that reproduces this issue?

I'm not familiar with nor . Would it be possible for you to provide with a runnable sample? ginlogrus ``

比如正常的程序, 我的代码有问题吗

有问题，openfile里面的filename 改为os.devnull就行了，否则就会出现logrus记录一次，hook又记录一次

If I understand @dzwvip 's commet correctly, that looks like a it's an issue on how to use logrus hooks.
If you think this is a bug on this library, please provide a test case. Until then, I'm closing this issue.


This is just the basic android project without any coding


[IMPORTANT] - InvalidApiVersionParameter in VMSS

Hey there, just updated my SDK to the latest 11.1.0-beta version and I'm getting this error when trying to list the instances in a VMSS using the public azure cloud.
2017/10/10 17:06:30 compute.VirtualMachineScaleSetVMsClient#List: Failure responding to request: StatusCode=400 -- Original Error: autorest/azure: Service returned an error. Status=400 Code="InvalidApiVersionParameter" Messa
ge="The api-version '2017-03-30' is invalid. The supported versions are '2017-08-01,2017-06-01,2017-05-10,2017-05-01,2017-03-01,2016-09-01,2016-07-01,2016-06-01,2016-02-01,2015-11-01,2015-01-01,2014-04-01-preview,2014-04-01,2014-01-01,20
13-03-01,2014-02-26,2014-04'."

What's even more strange is that I've tried downgrading my SDK to the  previous version (10.3.1-beta) and still doesn't work.
2017/10/10 17:00:07 compute.VirtualMachineScaleSetVMsClient#List: Failure responding to request: StatusCode=400 -- Original Error: autorest/azure: Service returned an error. Status=400 Code="InvalidApiVersionParameter" Messa
ge="The api-version '2016-04-30-preview' is invalid. The supported versions are '2017-08-01,2017-06-01,2017-05-10,2017-05-01,2017-03-01,2016-09-01,2016-07-01,2016-06-01,2016-02-01,2015-11-01,2015-01-01,2014-04-01-preview,2014-04-01,2014-
01-01,2013-03-01,2014-02-26,2014-04'."

Seems to me like something is really broken here, either from the SDK versioning POV or the Azure API versioning. Now I'm stuck in this situation and I can't get my code to work even if I try to rollback. Any suggestions on how to proceed?

How come the API Version is hardcoded in the code and we can't change it?

Managed to find the issue and it was in my side, my code wasn't populating the vmss name and the resource group correctly and those were being set as empty in the url. I realized after enabling logging in the SDK and checking the output URL
pwd        | test2017/10/10 19:22:30 Sending GET https://management.azure.com/subscriptions/027a4841-76cc-4b35-8361-b4986a761635/resourceGroups//providers/Microsoft.Compute/virtualMachineScaleSets//virtualMachines?api-version=2017-03-30
pwd        | test2017/10/10 19:22:31 GET https://management.azure.com/subscriptions/027a4841-76cc-4b35-8361-b4986a761635/resourceGroups//providers/Microsoft.Compute/virtualMachineScaleSets//virtualMachines?api-version=2017-03-30 received 400 Bad Request
pwd        | 2017/10/10 19:22:31 compute.VirtualMachineScaleSetVMsClient#List: Failure responding to request: StatusCode=400 -- Original Error: autorest/azure: Service returned an error. Status=400 Code="InvalidApiVersionParameter" Message="The api-version '2017-03-30' is invalid. The supported versions are '2017-08-01,2017-06-01,2017-05-10,2017-05-01,2017-03-01,2016-09-01,2016-07-01,2016-06-01,2016-02-01,2015-11-01,2015-01-01,2014-04-01-preview,2014-04-01,2014-01-01,2013-03-01,2014-02-26,2014-04'."

I believe that the Azure SDK should return a more representative error instead of api version error.

Howdy @marcosnils, sorry to hear you're running into trouble! We've had a few other reports of this, and I'm currently in the middle of investigating the situation. The particular issue you're hitting smells like an API Specs or service issue to me. I'm going to close this issue as a duplicate of #803, but feel free to continue the conversation here, and definitely alert us if you continue to be blocked once #803 is resolved.

@marcosnils says:
How come the API Version is hardcoded in the code and we can't change it?

There are a few reasons why we hard-code the API Version in the preparers, but important part is that we do this to add guard rails to protect people from inadvertently sending requests that are bound to fail because something changed between API Versions. To unblock you in the short-term, I should mention you can bypass the hardcoded version by writing your own Preparer that wraps the generated Preparer but updates the Request's API-Version header.
Long-term, what we're doing is generating out code for each API Version. You can see an experimental branch with what the SDK would like in that world here: azure-sdk-for-go/services @ experimental/allAPIVersions. In this world, you both get guard-rails and the ability to easily change the targeted API Version. It draws attention to the real problem with today's SDK which is that it can only hold models for a single API Versions.

Thx for the update and the detailed information about the SDK desgin upcoming changes. As you might have seen already, i was hitting a very dumb issue from my side, but the Azure response was totally confusing me


docs: add extension documentation

add README.md, PREINSTALL.md, and POSTINSTALL.md documentation

Merging since this is just docs.  I will update if needed.


Server integration tests run too soon...

So, we have a Meteor app that has lots of calls to Meteor.startup(). In certain cases, we use these calls to bootstrap data in a sample database (for dev/testing purposes). Said bootstrap data is also used in some of our server integration tests. This causes a problem since the server integration tests are also run via Meteor.startup() and are called before the bootstrapping functions. Is there any way to force the execution of the integration tests until after the other bootstrap functions have been called?
I don't think Meteor itself provides a means for post-startup callbacks, but one horrible hack would be (in registerFrameworks.js):
var startServerIntegrationTests = function () {
  if (process.env.JASMINE_SERVER_INTEGRATION !== '0' &&
      process.env.FRAMEWORK === frameworks.serverIntegration.name
  ) {
    if (__meteor_bootstrap__.startupHooks.length) {
        startServerIntegrationTests()
    } else {
        frameworks.serverIntegration.start()
    }
  }
};
Meteor.startup(startServerIntegrationTests);

But it would be nice if there was a better way that doesn't munge with Meteor's private variables.

See https://github.com/Sanjo/meteor-jasmine/issues/171#issuecomment-77795912

I don't think this actually solves the problem completely since I cannot guarantee that the beforeAll() function is called after all of the Meteor.startup callbacks have been called. If my initialization function depends on other startup callbacks that I don't directly control or even have access to, I cannot guarantee that my initialization function will work correctly.

Should be fixed in 0.12.5. If not please reopen.


rocAL - ROCm Agumentation Library

Level 1 name changes - RALI - rocAL

@paveltc can you run some RALI sanity tests -> to merge rocAL @rrawther any particular tests you want to verify?


fix: minor subscribe btn ui

Fix the subscribe btn ui (minor issue)

@Prakash-Raut thank you! points added !


Rsvp work

What was done:

Creating the open api spec for the rsvp endpoint
Creating the endpoint and handling attendees
Putting player onto the game's team roster

We had a conversation with Jacob a while ago about player rsvp-ing. He said that a game roster is a list of players that actually attended and that rsvp is potentially different. So we may need to add a flag to the roster model indicating if the player did rsvp and another if they actually attended.
I'd say we can call what you have good for now and maybe leave a few comments for whoever picks this up next.

We had a conversation with Jacob a while ago about player rsvp-ing. He said that a game roster is a list of players that actually attended and that rsvp is potentially different. So we may need to add a flag to the roster model indicating if the player did rsvp and another if they actually attended. I'd say we can call what you have good for now and maybe leave a few comments for whoever picks this up next.

Sounds good. I'll add a couple of comments explaining this and then merge. Thanks.


Exception filter causes lockup when exception thrown from instance method

TinyCLR 0.8.0
VS2017
FEZ Spider (EMX)
In the following contrived example, when the catch (...) when (...) expression evaluates to true the system locks up and control never falls into the catch block. I'm forced to pull power from my board and erase/reload firmware every time.
using System;

namespace MaschMaker
{
    public class TestANE
    {
        public void ThrowANE() { throw new ArgumentNullException(paramName: "ANE", message: "some message"); }
    }

    class Program
    {
        static void Main()
        {
            try
            {
                new TestANE().ThrowANE();
            }
            catch (ArgumentNullException e) when ("ANE" == e.ParamName)
            { }
        }
    }
}

Removing the when () expression makes it work just fine
            catch (ArgumentNullException e) //when ("ANE" == e.ParamName)

OR
keeping the when () expression but changing ThrowANE() to a static method also works, probably because Main() is static.
using System;

namespace MaschMaker
{
    public class TestANE
    {
        public static void ThrowANE() { throw new ArgumentNullException(paramName: "ANE", message: "some message"); }
    }

    class Program
    {
        static void Main()
        {
            try
            {
                //new TestANE().ThrowANE();
                TestANE.ThrowANE();
            }
            catch (ArgumentNullException e) when ("ANE" == e.ParamName)
            { }
        }
    }
}

OR
keeping the when () expression but moving ThrowANE() to be a local method works. This is probably the same case as using a static method but was another test I did.
using System;

namespace MaschMaker
{
    class Program
    {

        static void Main()
        {
            void ThrowANE() { throw new ArgumentNullException(paramName: "ANE", message: "some message"); }

            try
            {
                //new TestANE().ThrowANE();
                //TestANE.ThrowANE();
                ThrowANE();
            }
            catch (ArgumentNullException e) when ("ANE" == e.ParamName)
            { }
        }
    }
}

I obviously have a workaround but would like to use the exception filters if possible.

We were able to reproduce it, and not just on the EMX. The generated IL is nearly identical. So it looks to be a problem in the runtime.

We've done a bit more investigation and it seems the problem occurs because the handler is too close to the end of the method, which triggers an assert validating bytecode boundaries. For example, blinking an LED after the try/catch was enough to let it work. That's also why you could rearrange things slightly to get it to work. We don't yet have an actual fix but we are continuing to investigate.


Initial Implementation of PMM Curve

Watch out, this pulled in a lot of other changes!

Thanks @joncinque for the review. I'll work on these during this week and request your re-review.

@KhaledEmaraDev bumping this - any more progress on this PR?

@jnappy I have pushed @joncinque requested changes.


CPU heavy load

My cpu(2 core digital ocean, 2GB instance) goes to 15% with just 2 players, I wonder what is going to be with 50 or 100?
Do you guys have some real statistics with your hosting? What are the hosting requirements?
What kind of a server do I need? How many instances of the server do you run, basically what is your approach  in regards of the heavy cpu load?

Performance has been a big issue for a long time now. Nobody's actually tested this clone on a large scale, so there aren't really any numbers or recommended specifications for hosting.

Thanks for your response. Could you point me to the most cpu consuming part of this project, I would like to have a look....Would you say that the Ogra open source server with a custom client(or maybe agar.io client) is doing any better?

agar.io custom clients are not allowed by their ToS I believe. Ogar server, though, does better IIRC.

I created a new branch for multi server supporting recently here https://github.com/huytd/agar.io-clone/tree/multi-server
hopefully it will help increase the performance and reduce CPU load

@abalabahaha   custom clients are fine as long as they are written from scratch, the client in this repository is fine and i saw the agar.io dev to post comments on that.
@huytd thanks about the multi server repo - could you explain really fast how it works and how it helps the cpu load issue?

@huytd I Have some doubt than @abstream
Quoting him:
"@huytd thanks about the multi server repo - could you explain really fast how it works and how it helps the cpu load issue?"
Ty so much!

I put some brief explaination in this wiki file, please check it https://github.com/huytd/agar.io-clone/wiki/Multi-server-Experimental
I'm here for any question :D

I'm gonna look into methods for this as well. I'm sure we can optimize the weaknesses of the game to bring down the cpu usage.

I was able to remove some of the canvas renderings (since I'm working on the logic for z-index). Viruses are image sprites and the players will be too. The grid was moved to a background image instead of canvas rendering it. People will also be able to customize their backgrounds if they don't want a grid :)

By the way I tried converting from socket.io to ws on my own fork. I did not get as far as using binary protocol, but it did not significantly improve things it seems.
In my environment the problem is that the rendering on the client simply takes too long to fit into the 16ms budget required for smooth (60fps) animation. I think it is likely that the changes made by @underGhost should improve that but I haven't tried it yet.
So I am inclined not PR the socket changes because it's quite disruptive and doesn't really seem to help.

I think we should thinking how to improve the rendering performance, mostly is, reduce the unnecessary for loops, for example:

Using an image instead of drawing shapes for foods
Use multiple canvas layers (http://www.ibm.com/developerworks/library/wa-canvashtml5layering/)
...

The binary protocol merely makes packets smaller, but doesn't help with CPU that much, so it isn't the biggest issue at hand.

And it also would be faster if we migrate from socket.io to ws

socket.io to ws doesn't make a huge amount of difference by the way. I tried it. Rendering is more of a problem. network might end up being the bottle neck in the end so it could still be worth it though.

https://github.com/socketio/socket.io/pull/2838 will increase performance drastically. So you can stick with socket.io.

Binary packets help alot. It reduces network lag. Also, if you dont know how to create a binary protocol, I created a binary-protocol generator at https://github.com/ThreeLetters/SimpleProtocols.

I was reading up on socket.io vs WebSocket and it seems that socket ends up starting with fallback Ajax before upgrading, which causes a lot of waste. In combination with WebSocket, I think several of the fixes you all have mentioned would really clear the engine up. As for binary: It will be more strain on the CPU to parse the data into binary, you might consider storing the data in binary to cut the chase. I know y'all haven't even been here for a year, but I'm interested in taking a poke into the code, and might do the mentioned changes on my own fork.


Expandable Child with different height sizes

I have different descriptions that can be longer compared to other child views. I used initLayout() but it makes the height too big that it makes the user scroll too much before reaching into the next row.

I also got this issue. Not sure how to fix or workaround.


<> operator not recognized

The <> operator is not recognized as NOT_EQUAL, as in:
`line 8:17 no viable alternative at input 'x <>'
   ...
   IF x <> 5
       ADD 1 TO x.
   ...

`

Fixed in 8619c6f0321e7454282d269044a3347d4c437afb and added unit test. Thanks!


create volume from a existing glance image failing with cannot connect to glance

cinder create --image-id c1bc8abb-e13c-46a6-9ff3-21c7d7b74397 --display-name ndpvol1 1
Note: below logs are from converge blueblox environment that has standard openstack ports as ha_proxy ports
oot@qint-lon02-c2:~# tail -f /var/log/cinder/cinder-api.log | grep -i error
2015-08-31 17:36:29.999 8322 ERROR cinder.image.glance [req-65a7a235-b0d7-4b11-bf91-6af5d129ff85 d6531889acdf4008a8fe7494ed418fbe c31b076b13d14cccb99adc5baef05d03 - - -] Error contacting glance server 'storage-bb.open-test.ibmcloud.com:9292' for 'get', done trying.
2015-08-31 17:36:29.999 8322 TRACE cinder.image.glance     raise exc.CommunicationError(message=message)
2015-08-31 17:36:29.999 8322 TRACE cinder.image.glance CommunicationError: Error finding address for http://storage-bb.open-test.ibmcloud.com:9292/v1/images/c1bc8abb-e13c-46a6-9ff3-21c7d7b74397: ('Connection aborted.', BadStatusLine("''",))
Purpose fix:
Modify cinder-common/templates/cinder/cinder.conf by adding following property
glance_port = {{ glance.backend_api_port }}

cancelling this issue as it will not impact current master where standard openstack ports are used as backend ports. Will address this issue part of Ports standardization PR.


Fail to install Xcode

Describe the bug
I can't install Xcode 12.5.
The same goes for Xcode 12.4, 12.2, and others.
An error occured

The archive "Xcode-12.5.0+12E262.xip" is damaged and can't be expanded.

To Reproduce
Click the [INSTALL] button.
Expected behavior
Xcode will be installed.
Screenshots

Advanced

Version

MacBook Air (M1, 2020)
OS: macOS Big Sur 11.2.3
Xcodes: 1.0.5 (6)

Installing the helper and restarting the Mac did not fix the problem.

Downloading command line developer tools did not fix the problem.
xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.

Bumping macOS from 11.2.3 to 11.4  did not fix the problem.

Hi @uhooi
I just released v1.1 that has better support for M1
check for updates in the menu to install the new version
Thanks

Sorry, I had signed in with an Apple ID that was not registered with the Apple Developer Program.

I can install Xcode.

I close this issue.


Potential bug in login and playground access

How can we help?
Is there an existing issue in the layer5.io and meshery.io website login? I was able to access the Meshery playground with this link, after filling out the Community Member form, but as soon as I logged out, I could not access it. Moreover I logged in with my Github account but can't login again because it keeps redirecting to the signup page, it seems. Can anybody reproduce this?

@Boombag0607 thanks for raising this question. When you visit https://playground.meshery.io, are you able to login successfully?

@leecalcote

This link directs me to the login page
I click Sign in with Github since I used my GH account to sign up
It redirects to the signup page
I click continue which and returned response is "An account with the same identifier (email, phone, username, ...) exists already."
Same thing happens with the Google Account.

When did you first sign up for playground access (what date)? Try the "forgot my password" link.

I signed up and could access the playground on 20/06/2023 (dd/mm/yyyy). "forgot my password" kind of worked, it logged me into "meshery.layer5.io" but I still can't seem to access the playground. Directs to the signup form "https://play.meshery.io/#signup-form".

@Boombag0607 thanks for raising this concern, we will look into this issue.
We will also require more inputs about your scenario  as we debug this issue

@MUzairS15 I looked into the code and could not find the authentication code for the playground; if you can point it out, I can see if anything works.

@Boombag0607 as a workaround, what you can do is, go to meshery.layer5.io, copy the link that you received in the email and then it should ask you to enter recovery code (which is provided in the email itself)
Try the above step once, I am hopeful you will be able to set up your account and access Playground.

Oh I can access it now. I logged in the website yesterday. Thanks for the help.


fix timeout + multiple cred in gitaction

:tada: This PR is included in version 1.4.0 :tada:
The release is available on:

GitHub release
v1.4.0

Your semantic-release bot :package::rocket:


Fallback route not working with groups

The Route::fallback() doesn't seem to work well with groups. In my scenario I'd have to define 6 fallbacks, which seems like overkill.
/{site}/foobar triggers the fallback, but /{site}/store/foobar does not.

Ping @themsaid.

that's fixed in https://github.com/laravel/framework/pull/21261


Fix windows install path for codegen executable

Previously was 404ing causing the entire install process to fail

Hi @StevePavlin,
Thank you for your contribution! We really value the time you've taken to put this together.
Before we proceed with reviewing this pull request, please sign the Lightbend Contributors License Agreement:
https://www.lightbend.com/contribute/cla

Thanks for the fix! Merging in spite of CI failure because that's unrelated and being tracked in #265.


Database apps management

I some cases, we create a server to manage many apps, so, do this on a table is more useful than in a config file. Any chance of this become a feature?

No plans for this atm, sorry.


Create UI to update user email

Purpose

The purpose of this PR is to fix #348
Goals

To create a new ui to update user email
Approach

Added a new Settings page to the navbar of the home page
Screenshots

Good job! @YaiyaSam Can we have different content at the initial login? Like, Confirm Email and just an input? After that, It will be like yours.

Good job! @YaiyaSam Can we have different content at the initial login? Like, Confirm Email and just an input? After that, It will be like yours.

sorry just saw this. what i was going to do was...have something similar to the loginmodal to appear on the home page asking if the current email is the one they are using. and if the user select yes, that would just the update the db, if the user selects no, then they would get redirected to this page to update the email.

Good job! @YaiyaSam Can we have different content at the initial login? Like, Confirm Email and just an input? After that, It will be like yours.

sorry just saw this. what I was going to do was...have something similar to the loginmodal to appear on the home page asking if the current email is the one they are using. and if the user select yes, that would just the update the db, if the user selects no, then they would get redirected to this page to update the email. which one should I go with?

I think modal is good cuz we don't have much content to show as well. Your solution is better


Update log-analytics-network-performance-monitor-service-endpoint.md

Changing the name of the capability to Service Connectivity Monitor

Microsoft authors of articles need to make updates through the private repository so the updates can be staged and validated by the current validation rules. After you review staging and fix all validation issues, you can add the sign-off comment to let the PR reviewers know the updates are ready to be merged.It's easy to access the private repo version of your articles in GitHub. Just add -pr to the URL, as follows:
Public repo URL: https://github.com/Microsoft/azure-docs/blob/master/articles/azure-portal-overview.md
Private repo URL: https://github.com/Microsoft/azure-docs-pr/blob/master/articles/azure-portal-overview.md
We have closed this pull request. Please resubmit the updates through the private repo. If you need perms to the private repo, see the contributor guide instructions


V1.0

Quality Assurance Checklist
To make reviews more efficient, please make sure the board meets the following standards and check everything off once the board meets the quality check. Once everything has been checked, the assigned reviewers will begin the review process. Edit this description to check off the list.
There are exceptions with all guidelines. As long as your decisions are justified, then you are good! Contact the reviewers or the leads about any exceptions.
Please read every word on every bullet point before checking off the corresponding box.
Minimum Prerequisites

[X] The board passes ERC and DRC.

[X] All traces are routed.
[X] Units are in metric.
[ ] Gerbers are in a zip file in the main directory (after physical design is done)

Please read every word on every bullet point before checking off the corresponding box.
Schematic Level Requirements

[X] Is proper noise resistance given to all peripheral devices (bypass caps and coils/ferrites)?
[X] Is proper ESD protection given to all MCU input pins (zener diodes)? You could also write the input pin rating for the MCU on the schematic.
[X] Is proper power protection given to peripheral devices (zener diodes)?
[X] Are peripheral units used properly (reading datasheet)?
[X] Are testing points added at useful places?
[X] Is there proper short to GND protection at MCU outputs (inline resistors)?
[X] Do ADC inputs have caps (appropriately sized to prevent RC delay)?
[X] Are ADC inputs biased so there is room above expected value to determine if value is being overflowed?
[X] Are LEDs located at useful places (comm, power, debugging, extra GPIO)? They should be placed in locations
[X] Are parts chosen easy to collect?
[X] Are parts chosen easy to solder?
[X] Is there reverse polarity protection on inputs?
[X] Do parts in the schematic match the actual part datasheet?

Please read every word on every bullet point before checking off the corresponding box.
BOM Requirements

[ ] Bill Of Materials: is there an Excel Sheet BOM and a Mouser Cart link?
[ ] Are all the correct parts in the BOM?
[ ] Is each part in the Mouser Cart in stock (or do we have the part in stock)?
[ ] Does each part in the Mouser Cart have a margin for part quantity?
[ ] Does every component in the schematic have a footprint, mouser link/datasheet, and reference number associated with it?

Please read every word on every bullet point before checking off the corresponding box.
Layout Level Requirements
2D Spacing

[X] The components are spaced out at an optimal distance.

All components can be easily hand-soldered.
IPC-SM-782A Standard requires a minimum distance of 1.0mm from edge to edge.

[X] Components that are in parallel with each other are spaced out at an equal distance when possible.
[X] The components are aligned with each other when possible.
[x] Components are grouped based off of functionality.

E.g. all components for CAN should be grouped.

[X] Bypass capacitors are less than 1cm away from their respective IC's power pins.

3D Spacing

[X] Layout of components have been placed with mounting location and usage of the board in mind.

Are PCBs going to be stacked on above/below this board? Are tall components placed accordingly?
Are buttons and lights easily accessible and viewable?
When mounted into the car, are the heights of the components and connectors accounted for?

[ ] I am not reading every word and I need to start this checklist over.

Please uncheck everything you have checked and start over.

[x] Location of connectors and wires going out of the board will prevent messy wiring.

Are all the wires that are going in the same direction placed on the same edge of the board?

Components

[X] Do footprints match the schematic?

Make sure pins on the footprint correspond to pins in the schematic
(e.g. counterclockwise pins on footprint and alternating pins on schematic is bad)

[X] Custom footprints have been double checked with the datasheet.
[X] Footprints are consistent across the PCB: i.e. all 0805 for Resistors/Capacitors
[x] Pin 1 of the footprint is labeled in some way.
[X] Are LED's in easy to see places?
[X] Are test points in easy to reach places?
[X] Are critical paths of switching converters as small as possible?

Copper Layer

[X] The trace widths and trace clearances are greater than JLCPCB's minimum requirements (https://jlcpcb.com/capabilities/Capabilities).

[ ] Are signal traces are .15mm unless provided with reasoning?

NOTE: One net can have multiple trace widths

[X] The trace lengths are as short as possible.

Can there be a more optimal route if you go to another layer?

[ ] Each trace's width is capable of handling the expected current flow.

Use PCB width calculator to calculate trace width.

[X] *No sharp corners. No trace angles equal to or less than 90 degrees.

Orthogonal traces should have vias if necessary.

[ ] Are edges of board surrounded by clean ground on both layers with stitching vias?
[x] Traces are in parallel with each other when possible (exceptions can be made to prevent signal coupling).

E.g. traces connected between an IC and MCU can be placed in parallel with each other.

[X] There are no random trace appendages.
[X] Vias placed in copper pads are fully encompassed in the copper pads.
[X] Through-hole components do not have extraneous vias.
[ ] Vias should be appropriately sized according to the connected net(s) and expected current capacity.

*Not really a problem for modern manufacturing techniques but good practice and important for high speed signal integrity.
Silkscreen Layer

[X] Visible text sizes are greater than .8mm(L), .8mm(H), .15mm(W).
[X] All visible text is on the silkscreen layer.
[X] All reference labels of each component are not overlapping a copper pad or another component.
[x] All connector pins are labeled with a meaningful and helpful name.
[x] All LEDs are labeled with a meaningful and helpful name.
[X] Silkscreens are mostly facing one direction (or 2).

Edge Cut Layer

[ ] The dimensions of the board and the mounting holes are nice values in metric i.e. no long decimals.
[X] The physical outline of the board is on the edge cut layer.
[X] Edge cuts are straight and parallel with opposite edge of the board.
[ ] Mounting holes are aligned and support M3 screws. All mounting holes should have distances between them shown in comments layer.
[x] Corners are curved and contoured to mounting holes.

Please read every word on every bullet point before checking off the corresponding box.
IMPORTANT NOTICE

[ ] I am confident that this board will be safe to use in a safety critical environment.
[ ] I have read every word on every bullet point and have only checked off a bullet point if I have read every word.
[ ] ((( OPTIONAL ))) I had fun :^)

Other Comments
Write any comments about the board that would help the reviewers here.

try reduce the number of these trace "turns"

if you could try place all of the test points in one location (top of the board perhaps)

not sure if the humidity sensor has a direction, but if not, rotating this 90 degrees could simplify the traces a bit

run ERC on your sch. There are some issues with your power delivery (e.g. 12V not connected to an input source).

Looks really good! I like the consistency in the direction of your traces.
Make sure to run DRC on the board since a few errors popped up. Two of the warnings you're getting are that the via is only connected onone side. For example, this 12V_In trace is on the top layer and it is going to a top layer plane so you don't need a via. You need a via for GNDPWR since GNDPWR is on the bottom layer and you are doing a via to it.

You're getting thermal relief errors, basically in a plane you need a few connections to a pad for it to pass JLCPCB's design rules. Here you only have one, but a minimum of two are required. When I have this error I like to see what is preventing the plane from filling into the other sides of the pad. In this case it's both the GND via and the PA1 trace. Moving the GND via down a little bit fills it one side. You can also do some shenanigans with the PA1 trace by moving it to the other side.

Looking at the 3D model, I don't really like that the connectors are on the bottom but I see it's cuz u wanted to make the board small. Did you make sure to talk to Frank and Emech about this? Did you also check with emech if this board needs its own mounting hole. Also, I'd add a testpoint for the analog output of the temp sensor.

I question the need for a big power plane for 12V and GNDPWR. If the benefit is a higher current then that higher current is getting choked by that smaller trace soooooo. There's a benefit of capacitance on the plane, but I'd just add more capacitors. You can make the 12V and GNDPWR traces into fills that are localized to just connect what you need (weird fucky rectangles).

Also, what was the consensus on this board in regards to water proofing and enclosures? For the airflow and temperature specifically

These mounting holes should be fine according to emech. They also said waterproofing isn't necessary so we should be good with the sensors. I'll work on fixing the rest, thank you!

Would personally prefer to have testpoints on the front
Same for the LED
Since you have so much space on the back of the board, it'd be cool to keep most components to one side of the board (just for ease of soldering). Stuff like LEDs and testpoints still keep on the front.
Protip: you can the B.Fab and F.Fab layers to make ur eyes not in pain
The temp chip routing is a lil bit messy (honestly not that deep tho). Prioritizing easy of the VDDA and GNDA pins makes things a bit cleaner. Have the bypass cap parallel horizontally also helps so you can keep all your VDDA traces in one little section. Up to you tho, it's pretty small.

In general, it's nice to keep components pointing in the same direction just for ease of soldering and since you have the space you can make the traces a lil bit more wonky. so stuff like flipping the vreg cap.

For ease of debugging, can you add some headers for a logic analyzer (just the 2.54 pitch breadboard ones) to your I2C sensors. It'll make whoever is writing a drivers lives easier.
since it doesn't look like it's filling inside the connector, you can route stuff like the PA1(ADC) inside the connector footprint and make that red to keep trace consistency.

i agree w lakshays points about test points and less. even if you have to extend the board a bit i would probably try and make them accessible from the top. shouldn't really matter but i would probably route the CAN_L trace underneath the connector so you don't really choke ground power at the bottom but again shouldn't really matter since things are such low current anyways.

merging to move to purely breakout implementation


Portrait Orientation Lock

After successful jailbreak, although the portrait orientation lock is disabled, the device doesn’t recognize orientation left, right, up or down. It works perfectly fine after reboot before applying Dopamine jailbreak again.

Can't reproduce.


Update bosh/integration build

uses .ruby-version to determine ruby version to install
installs latest bosh cli, meata4 cli, ruby-install executables
installs JDK from uaa-release

The build args generated (as of today) would be:
{
  "BOSH_CLI_URL": "https://github.com/cloudfoundry/bosh-cli/releases/download/v7.6.3/bosh-cli-7.6.3-linux-amd64",
  "META4_CLI_URL": "https://github.com/dpb587/metalink/releases/download/v0.5.0/meta4-0.5.0-linux-amd64",

  "RUBY_INSTALL_URL": "https://github.com/postmodern/ruby-install/releases/download/v0.9.3/ruby-install-0.9.3.tar.gz",
  "RUBY_VERSION": "3.2.5",
  "GEM_HOME": "/usr/local/bundle",

  "UAA_RELEASE_URL": "https://s3.amazonaws.com/bosh-compiled-release-tarballs/uaa-77.14.0-ubuntu-jammy-1.506.tgz",
  "JAVA_INSTALL_PREFIX": "/usr/lib/jvm",

  "POSTGRES_MAJOR_VERSION": "13"
}

These can be used to run docker build as follows:
docker build \
--build-arg=BOSH_CLI_URL="https://github.com/cloudfoundry/bosh-cli/releases/download/v7.6.3/bosh-cli-7.6.3-linux-amd64" \
--build-arg=META4_CLI_URL="https://github.com/dpb587/metalink/releases/download/v0.5.0/meta4-0.5.0-linux-amd64" \
--build-arg=RUBY_INSTALL_URL="https://github.com/postmodern/ruby-install/releases/download/v0.9.3/ruby-install-0.9.3.tar.gz" \
--build-arg=RUBY_VERSION="3.2.5" \
--build-arg=GEM_HOME="/usr/local/bundle" \
--build-arg=UAA_RELEASE_URL="https://s3.amazonaws.com/bosh-compiled-release-tarballs/uaa-77.14.0-ubuntu-jammy-1.506.tgz" \
--build-arg=JAVA_INSTALL_PREFIX="/usr/lib/jvm" \
--build-arg=POSTGRES_MAJOR_VERSION="13" \
.


Provide a fast path for filter consists of only "FQN=" and "|"

Scenario:
The matching algorithm used for testcase filter is based on a tree structure and is recursive. It is too inefficient (O(n^2)) when used to run a large amount of tests by name.
For example, running 10k mstest tests using TestCase takes ~4s whereas using filter takes ~150s. As you can see from the screenshot below, in the 10k tests scenario, more than 90% of time is spent in filtering testcases.

This change replaces the FilterExpression with a hash table of fully qualified name of test methods, if we detect that only "FullyQualifiedName=" and "|" is used in the filter. As a result, running 10k tests by filter now takes ~15s.
This PR is based on #1052, which should be merged first. And all my change is in bc84847

FYI @AbhitejJohn @peterwald

@genlu : Had a quick chat on this fix internally. Could we make fast filter generic, so other properties could benefit from this as well? The logic we have here does seem quite generic in that we optimize the case where we only have "|" and one property(could be FQN, could be category etc).
/cc @codito , @smadala

An orthogonal query: Is the delta of 11s in execution acceptable? How does this compare to discovery + execution of 10k tests using the traditional approach?

@AbhitejJohn @genlu @peterwald for theory tests can we form a filter expression like FullyQualifiedName=NS.Class.A | FullyQualifiedName~NS.Class.TheoryB? In this case, all the child tests for the theory test NS.Class.TheoryB should match.
It will be costlier than a regular = check, I think filter based execution is anyways a onetime operation. We shouldn't add test framework specific constructs in the platform, it stays forever and impacts other frameworks (learning from TPv1 and mstest days).

@AbhitejJohn @genlu @codito I think the FullyQualifiedName~NS.Class.TheoryB could work well. When doing execute by name, we'd need to basically run every test this way (theory or not) in order for it to work on all frameworks.
Basically, it would still be an = comparison but in the case of a filter defined with ~, we'd just need to extract the method name from FullyQualifiedName (remove extra trailing data) before doing the comparison.
I like the idea of using a different comparison operator since it remains backwards compatible with the current functionality.

@Genlu: Looks fairly good to me. Were you able to get the numbers with this flow?

@shyamnamboodiripad @drognanar @navin22 @codito @smadala Could you guys please review this change?

@dotnet-bot : test Windows_NT / Debug Build please.
@dotnet-bot : test Windows_NT / Release Build please.

@genlu : Just wanted to bring this up here again(We had an offline discussion on this earlier): This would end up executing tests with the same FQN across multiple assemblies. This is a limitation with the filtering logic unfortunately. I do not think this is a prevalent scenario however.
You might want to validate how this works with MTFM and the new project system though. I believe the source we send over there would only be of one framework - so that should not ideally cause problems.
/cc @ManishJayaswal

@genlu Changes LGTM. Can we add one E2E Acceptance tests in Microsoft.TestPlatform.AcceptanceTests

@navin22 I think existing acceptance tests already cover this change. They helped me caught a bug for matching property with multiple values.

@dotnet-bot : test Windows_NT / Debug Build please.


Detect HAPROXY_GROUP=external and automatically disable HAPROXY_FRONTEND_HEAD

Marathon-LB will offer frontend ports for every service on their service port. While this is normally desired behavior, it's less awesome when using the default external group, as when launching on a public slave. In this particular case, we'd like to automatically disable the creation of these frontends to prevent any security-related surprises.

I'm not convinced this requires changes to MLB. To me this sounds like a firewall/security policy issue. Since you might want to still use the same instance of MLB for internal routing, you would simply close those ports to the internet rather than disabling binding altogether.

The behaviour you describe is the desired outcome and can be overridden using HAPROXY_{n}_FRONTEND_HEAD on a per service port bases.
The group name external is just an arbitrary string. It has no special meaning to marathon-lb. It just happens to be what the Dockerfile uses for the --group arg by default. In non-docker installations the default group matches *.
Doing this change would break existing marathon-lb installations.

Good deal, thanks for considering!

Related wiki page: https://github.com/mesosphere/marathon-lb/wiki#disable-binding-to-service-ports


adding a definition of  "backwards-incompatible change"

adding a definition of  "backwards-incompatible change". This would help to clarify what types of changes are allowed in stable releases and what types of changes should be avoided.

I will work on this issue

done with @9744


Vs code运行代码直接终止，并且没有报错

你好，请问我复现该代码的时候，使用VS code 和anaconda来跑，环境都没问题，在跑的时候，进入第一次训练，然后程序就直接终止了了，也没有任何的报错，请问这怎么解决呢？

@MosasaurYi Can you post the screenshot of your error? I was able to run successfully using the python virtualenvironment.

here,it stop directly without any error
------------------ 原始邮件 ------------------
发件人:                                                                                "kenziyuliu/MS-G3D"                                                                                @.>;
发送时间: 2021年7月19日(星期一) 晚上7:30
@.>;
<EMAIL_ADDRESS>主题: Re: [kenziyuliu/MS-G3D] Vs code运行代码直接终止，并且没有报错 (#45)
@MosasaurYi Can you post the screenshot of your error? I was able to run successfully using the python virtualenvironment.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@MosasaurYi Can you post the screenshot of your error? I was able to run successfully using the python virtualenvironment.

I find my code will stop in “loss.backward()”，and without error，do you know why，thanks

Decrease your batch-size and see if your GPU memory is getting full.

Decrease your batch-size and see if your GPU memory is getting full.

it is all ok,when i debug it,i find the tensor of loss was empty and the error “RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED”，is there any problem with the version of cuda and cudann,cuda9.2 and cudann 7.6.5for cuda92 in my computer,What version are you using?Thanks for reply

I am using python3.5, cuda 10, cudnn 7 on ubuntu.

Hi there, sorry for the late reply. Have you resolved the issue? This looks like a problem relating to your local environment setup.