Form data

Hey, hope you don't mind me contacting you. I'm writing something very similar for my Ecowitt weather station, except mine is a Prometheus exporter as I don't currently use InfluxDB.
I'm also using Python/Flask to receive the POST data from the Ecowitt but I'm having some really weird issues with the request object and the way Flask parses out the request.form data.
Like you, I initially tried to access the POST data with:
data = request.form
for key in data:
    value = data[key]

which worked absolutely fine for my "faked" data submitted using curl but was empty for real data from the Ecowitt. A packet dump shows all the form data is present and correct, just that Flask doesn't seem to access it.
I also tried access the raw HTTP body and parsing it out manually like the Ecowither project does
for field in request.get_data(as_text=True).split('&'):
    [key, value] = field.split('=')

and this worked with my simulated curl data but was also empty with real Ecowitt data.
So it's the Ecowitt data that seems to be the problem, but like I say, it looks fine when I dump it
{
    "path": "/report",
    "headers": {
        "host": "<IP_ADDRESS>",
        "connection": "Close",
        "content-type": "application/x-www-form-urlencoded",
        "content-length": "493"
    },
    "method": "POST",
    "body": "PASSKEY=573AF40DB42C66057D20631F706CD585&stationtype=EasyWeatherPro_V5.1.1&runtime=1&dateutc=2023-06-20+14:56:02&tempinf=73.4&humidityin=49&baromrelin=29.917&baromabsin=29.536&tempf=72.5&humidity=58&winddir=251&windspeedmph=1.12&windgustmph=2.24&maxdailygust=9.17&solarradiation=293.99&uv=2&rainratein=0.000&eventrainin=0.638&hourlyrainin=0.000&dailyrainin=0.638&weeklyrainin=0.650&monthlyrainin=0.650&yearlyrainin=0.650&totalrainin=0.650&wh65batt=0&freq=868M&model=WS2900_V2.01.18&interval=60",
    "fresh": false,
    "hostname": "<IP_ADDRESS>",
    "ip": "::ffff:<IP_ADDRESS>",
    "ips": [],
    "protocol": "http",
    "query": {},
    "subdomains": [],
    "xhr": false,
    "os": {
        "hostname": "http-webhook-6675856576-j2jzb"
    },
    "connection": {}
}

Tearing my hair out here., Wondering if it's some kind of problem with Flask where it's refusing to parse out the form data because the headers are wrong or something. Did you have any issues with this?
Thanks

Hey,
This is not something I ran into I'm afraid.

I also tried access the raw HTTP body and parsing it out manually like the Ecowither project does

Now that's interesting, because it should totally work.
If just before your for loop you drop in
print(request.get_data(as_text=True))

Does it print the line.
If so, I'd be inclined to start looking at charsets and the like. I'm wondering if the & and = you're splitting on have ended up being unicode (or perhaps are unicode in the submission).

How weird... I remember years (and years) back, I ran into an issue in PHP where post data just wouldn't be there (it wasn't handling encoded carriage returns IIRC), so it's not unheard of for weird shit to happen.
Is anything higher in your call chain parsing the form data? the docs for get_data note:

Note that if the form data was already parsed this method will not return anything as form data parsing does not cache the data like this method does.

The doc is a little unclear whether its referring to calling it with parse_form_data or parsing elsewhere in request
Maybe stick that print() at the top of the method and see what you get - just in case something's consuming the data (wouldn't explain curl working though).
My ecowitt comes in via my Nginx reverse proxy, I wonder if that's why I didn't encounter this? Maybe stand up a docker container to put Nginx in front and see if the behaviour changes (although, like you, I don't see anything wrong with the dump of the request)

Yes I read about the way that some of the methods can cause change of behaviour in other methods when it comes to decoding form data. There's nothing else in my project that handles the request, and I tried putting the print() right at the top and it was still the same.
I'm running this in Kubernetes and it's currently just using a Service to expose port 8080 on my LAN. I can front it with an Ingress (which is just Nginx) so it will get proxied.

FYI I've logged a bug against Flask, just in case you're interested in following along: https://github.com/pallets/flask/issues/5168
Thanks for your help & advice on this, I'll close this issue now. Have a nice evening :+1:

No worries, have a goodun

Solved it. It was a combination of two bugs. Firstly the specific firmware version I'm running on my Ecowitt (v5.1.1) has a bug and misses a space in one of the HTTP headers. Secondly, Flask doesn't seem to catch this and fails to parse the POST data but otherwise seems happy to accept the request. The maintainer isn't keen on fixing this behaviour because the root cause lies with the Ecowitt, not with Flask. But every other HTTP server seems to cope fine with it.
https://github.com/pallets/werkzeug/issues/2734
Happily, using an NGINX reverse proxy (in my case, a Kubernetes Ingress) with no special config fixes the dodgy header in flight and it "just works".


add support for TLS Renegotiation

Related to https://github.com/Azure/go-autorest/issues/384

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

Can you please provide more context on why this is needed, specifically which cognitive services APIs require this to be enabled? It's a bit surprising that after 2+ years of the SDK this is only showing up now.

Sure, I have sent you an email to provide more details.


Fix MAUI build on v.next

Description
The MAUI sample viewer wasn't building, this has been fixed.
Type of change

Bug fix

Platforms tested on

[x] MAUI WinUI

Checklist

[x] Self-review of changes
[x] All changes work as expected on all affected platforms
[x] There are no warnings related to changes
[x] Code is commented and follows .NET conventions and standards
[x] Codemaid and XAML styler extensions have been run on every changed file
[x] No unrelated changes have been made to any other code or project files

I'm sorry I broke this, thanks for fixing.

No problem, easily done!


Split util_linux.go cgo specific code to seperate file

util_linux.go for all linux util functions, without cgo specific code
util_linux_cgo.go for all linux util functions depending on cgo
Reason:
github.com/sl1pm4t/terraform-provider-lxd uses the shared lxd code for
interactions with the lxd daemon. Compiling this for other
architectures, results in a build where archive_linux.go isn't
compilable because of missing functions defined in util_linux.go
This would fix compile errors where no cgo specific code is used but the code needed is not compiled because it is in a cgo only source file
with this, gox could build the terraform plugin for the following platforms
gox
Number of parallel builds: 7

-->     windows/386: github.com/sl1pm4t/terraform-provider-lxd
-->       linux/arm: github.com/sl1pm4t/terraform-provider-lxd
-->   freebsd/amd64: github.com/sl1pm4t/terraform-provider-lxd
-->   windows/amd64: github.com/sl1pm4t/terraform-provider-lxd
-->      darwin/386: github.com/sl1pm4t/terraform-provider-lxd
-->     openbsd/386: github.com/sl1pm4t/terraform-provider-lxd
-->     freebsd/386: github.com/sl1pm4t/terraform-provider-lxd
-->       linux/386: github.com/sl1pm4t/terraform-provider-lxd
-->    darwin/amd64: github.com/sl1pm4t/terraform-provider-lxd
-->     linux/amd64: github.com/sl1pm4t/terraform-provider-lxd
-->      netbsd/arm: github.com/sl1pm4t/terraform-provider-lxd
-->     freebsd/arm: github.com/sl1pm4t/terraform-provider-lxd
-->      netbsd/386: github.com/sl1pm4t/terraform-provider-lxd
-->    netbsd/amd64: github.com/sl1pm4t/terraform-provider-lxd
-->   openbsd/amd64: github.com/sl1pm4t/terraform-provider-lxd
-->     linux/s390x: github.com/sl1pm4t/terraform-provider-lxd

This pull request didn't trigger Jenkins as its author isn't in the whitelist.
An organization member must perform one of the following:

To have this branch tested by Jenkins, use the "ok to test" command.
To have a one time test done, use the "test this please" command.

Those commands are simple Github comments of the format: "jenkins: COMMAND"

jenkins: test this please

i tried it on a locally installed trusty box, and it  isn't enough for other architectures
it then fails on:
Stderr: # github.com/lxc/lxd/shared
../../lxc/lxd/shared/archive_linux.go:83:15: undefined: DeviceTotalMemory

that error was the reason why i started to split to cgo code in a separate file

@mjrider, I'm going to close my patch. Can you please copy the code I wrote in there for the ifdefines into this branch and then we can go on and merge it.

i pulled your change into my branch

Can you please remove the merge commit? Also, please do a make static-analysis as Jenkins looks unhappy with formatting in your branch.

jenkins: test this please

Jenkins went offline on two builder. Don't worry.


Feature: Filter logs STDOUT and STDERR

This will be very useful to filter logs between stdout and stderror (or both like is now).
In example...
We have image with apache and php ... to stdout we printig normal apache logs, and to stderr we printing error logs from PHP.
So on console I can redirect stdout to /dev/null and I only see php errors.

I suspect this should be done using some form of filtering

If you mean filtering utilizing the search input - that's not the best idea, since not everybody even know how docker gathers logs (stores the stream property for every line). And Portainer doesn't make it clearer either. For a newcomer the logs section looks like a undifferentiated dump.
So additionally to the OP two filter switches it would be helpful to color the lines accordingly, i.e. red for stderr, white for stdout. Right now both are indistinguishable. An option in settings (global, per container or per env) to define the color for the stream type would be very nice too. Because some conventions use stderr as a general output, i.e. not only errors (so having it always in red is not a good idea), while stdout is used for inter-app communications (in this case user might want to disable it's output).


chore: Move smooth_barycentric_coord

Moving it to a new file Analysis.Calculus.AddTorsor.Coord significantly reduces the imports to Analysis.NormedSpace.AddTorsorBases. Also rename Analysis.Calculus.AffineMap to Analysis.Calculus.AddTorsor.AffineMap.

Thanks! :tada:
bors merge


Switch to license expression

Port of:
https://github.com/std-uritemplate/std-uritemplate/issues/162

@thompson-tomo I did my best to keep the attributions consistent, let me know if I missed anything.

Thanks and sorry for the noise 👍


Add a config value for prompting if the default port is unavailable

As someone regularly running multiple prototypes locally this avoids needing to interact with the prompt each time I spin up a new prototype.

Set a config value for asking whether to try another port if the default is unavailable.
If set to true the behaviour remains the same (defaults to true).
If set to false the prototype will automatically try the next available port.
Example prompt outputs
When prompting
promptWhenDefaultPortIsUnavailable: 'true',
ERROR: Port 3000 in use - you may have another prototype running.

Change to an available port? (y/n) y
Changed to port 3001
Listening on port 3001   url: http://localhost:3001

ERROR: Port 3000 in use - you may have another prototype running.

Change to an available port? (y/n) n

You can set a new default port in server.js, or by running the server with PORT=XXXX

Exit by pressing 'ctrl + c'

When not prompting
promptWhenDefaultPortIsUnavailable: 'false',
ERROR: Port 3000 in use - you may have another prototype running.

Changed to port 3001
Listening on port 3001   url: http://localhost:3001

Based on #697

Closing in favour of using different default ports for each app.


Add @open-telemetry/collector-contrib-approvers with write access

Please +1 that we are ok to add @open-telemetry/collector-contrib-approvers with write access since the group is owner of chloggen.
cc @open-telemetry/go-maintainers @open-telemetry/collector-maintainers

:+1:
I would be good with adding @open-telemetry/go-approvers, @open-telemetry/collector-approvers, and @open-telemetry/collector-contrib-approvers with the same permissions they have on their respective repos.


Bunch of errors upon loading

My vim version is:
VIM - Vi IMproved 8.1 (2018 May 18, compiled Feb 22 2019 12:55:04)
Included patches: 1-875, 878, 884, 948

Am I missing something or loading this plugin incorrectly?
Error detected while processing /home/kevin/.vim/bundle/syntastic/plugin/syntastic.vim:
line   48:
E117: Unknown function: syntastic#util#isRunningWindows
line   55:
E121: Undefined variable: s:_running_windows
line   77:
E121: Undefined variable: g:_SYNTASTIC_UNAME
line  114:
E121: Undefined variable: s:_running_windows
line  117:
E121: Undefined variable: g:_SYNTASTIC_DEFAULTS
E116: Invalid arguments for function keys(g:_SYNTASTIC_DEFAULTS)
line  178:
E121: Undefined variable: g:SyntasticRegistry
line  179:
E121: Undefined variable: g:SyntasticNotifiers
line  180:
E121: Undefined variable: g:SyntasticModeMap
line  279:
E121: Undefined variable: g:syntastic_nested_autocommands

Hmm, moving the files in autoload to ~/.vim/autoload helped with a few of em.

I guess this is not meant to be loaded as a bundle. My bad.

You're probably loading it incorrectly, but it's hard to guess why / how from the info you have shown, and mind reading has never been my strong point. :smile:


Sponsorship removed?

No template, because this isn't really a bug or a feature request. [Sorry!]
I have sponsored JGraph on gh for a while, while it's only a small contribution, over time it adds up, and it's one of the only projects I've wanted to support.
Is there is a specific reason for the departure in allowing sponsorships? I'd like to continue supporting financially.
I appreciate there's a commercial arm to this project, however as a free product available to the general public, I genuinely think that drawio  (diagrams... whatever lol) is better than paid alternatives.
I just hope for the continued success of the project and that it can remain viable as a free to use tool!

Yeah, it's because the project is no longer technical open source, due to a line added into the license. We appreciate the wish to sponsor, but we needed to work on the assumption that a good number of the sponsorships were due to it being licensed under the Apache license.


Think about the GHC make2 build pattern

GHC has roughly:

stage1/compiler.exe depends on src/Main.hs
stage2/compiler.exe depends on src/Main.hs and stage1/compiler.exe.

A full build is easy enough. Sometimes they want to switch to changing src/Main.hs and only rebuilding stage2/compiler.exe. Then they want to switch back and properly rebuild everything. How do you support that? So effectively you know stage1/compiler.exe is dirty, but don't worry about it for now.
cc @snowleopard who will want to know the answer.

At some point I was thinking about the following generic solution, which is probably an overkill in this case and may be very difficult to implement, but let me record it here anyway.
Is it possible to introduce OR-like dependencies (with the usual ones being AND-like)? For example, we might want to say that Z depends on X OR Y in the following sense: if you have either X or Y you know how to build Z. Perhaps, a simpler example would be: if I have either an svg image or an eps image, I could produce a pdf (I don't necessarily need both).
You first need [X] and try to rebuild it if necessary and if you fail you don't give up, but need [Y] instead.
With this functionality in place, we could have the following: stage2/compiler.exe depends on stage1/compiler_shadow.exe OR stage1/compiler.exe. The former has no dependencies on its own and we have no build rules for it, we simply create a shadow copy of stage1/compiler.exe when we like to avoid rebuilding the latter (and at the same time remove stage1/compiler.exe from our targets). When we want to initiate the full rebuild, we delete stage1/compiler_shadow.exe and the second branch of OR kicks in.
(I guess it's more like orElse rather than a typical OR.)
Does this make any sense?

Or dependencies are frighteningly difficult to do. You might be able to put whether you are in make2 mode in an oracle, and then you can use a shadow compiler. The hard bit is that when you switch back to not make2 you don't invalid everything. I definitely need to think more...

Sorry for somewhat derailing the topic but I'd like to understand the difficulties of OR dependencies a bit better. Consider the following simple approach for the above example with svg/eps sources.
"build/img/*.pdf" %> \out -> do
    let name = takeBaseName out
    srcs <- getDirectoryFiles "" $ [ "src/img" </> name <.> ext | ext <- ["svg", "eps"] ]
    when (null srcs) . error $ "No sources for " ++ out
    let src = head srcs -- potential caveat here
    need [src]
    if "//*.svg" ?== src then svg2pdf src else eps2pdf src

The above code seems to be fairly robust and general (expensive getDirectoryFiles could be removed with help of doesFileExist but the result is less readable).
The XOR case seems particularly straightforward and I don't see how the above can break. One caveat I see with the OR case is that if we once build using an eps source and later an svg source appears, we won't stick to the previous decision (head srcs will change its value) and will therefore initiate a possibly undesirable rebuild. However, I think it is possible to fix this by storing the previous decision in an oracle and reusing it when both sources are available.
Am I missing anything?

I think if #436 was implemented you'd want --skip=stage1/**.
For the second point, I'd describe that as an if dependency, not an or dependency. You make a decision, and that forces you into one of two branches. For or dependency I mean where there are two dependencies and the build system has to make the choice which path to explore - that's difficult to model or implement.


WMS ID 11250 minor change - PR approved by Michelle

WMS ID 11250
General requirements
We need to modify some text in the Lab to address this request: “Regarding the GraphQL description, we do want to either update the description or credit the source.“It does not modify the instructions.
I sent a mail for the instructions. This request was approved by Michelle

@hope-fisher for your information


Hyper-V: Failed to update configuration files. -XMLSecuretFile [FilePath] is not provided.

Two possible issues here:

When run test for platform "Hyper-V", if do not provides -XMLSecuretFile, will get the error "Failed to update configuration files. -XMLSecuretFile [FilePath]' is not provided. ", this parameter -XMLSecuretFile should be optional for Hyper-v? Currently will output the red error log even it does not block test.

Cannot find xmlSecretFile template in the XML folder.  After check from script, it should include following elements. Do we need to put one secret xml template in the test framework?
$hyperVConfig.TestCredentials.LinuxUsername = $secrets.linuxTestUsername
$hyperVConfig.TestCredentials.LinuxPassword = $secrets.linuxTestPassword
$hyperVConfig.ResultsDatabase.server = $secrets.DatabaseServer
$hyperVConfig.ResultsDatabase.user = $secrets.DatabaseUser
$hyperVConfig.ResultsDatabase.password = $secrets.DatabasePassword
$hyperVConfig.ResultsDatabase.dbname = $secrets.DatabaseName

Thank you so much.

Close non-P0 issues


pythonPackages.gigalixir: init 1.2.3

pythonPackages.rollbar: init 0.16.2
pythonPackages.gigalixir: init 1.2.3

Fixes: #139063

Result of nixpkgs-review pr 139212 at 8db8243f run on x86_64-linux 1

4 packages built successfully:

gigalixir (python39Packages.gigalixir)
python38Packages.gigalixir
python38Packages.rollbar
python39Packages.rollbar

1 suggestion:

warning: unused-argument
Unused argument: enum-compat.
Near pkgs/development/python-modules/rollbar/default.nix:4:3:
  |
4 | , enum-compat
  |   ^

On macos 10.15:
builder for '/nix/store/xafbna5861brq4l8qp6hixjd1ms9py1z-gigalixir-1.2.3.drv' failed with exit code 1; last 10 log lines:
      resp = self.send(prep, **send_kwargs)
    File "/nix/store/cvv6agb0fs9cp9bpqcivm3zkp50a4baq-python3.8-requests-2.26.0/lib/python3.8/site-packages/requests/sessions.py", line 655, in send
      r = adapter.send(request, **kwargs)
    File "/nix/store/cvv6agb0fs9cp9bpqcivm3zkp50a4baq-python3.8-requests-2.26.0/lib/python3.8/site-packages/requests/adapters.py", line 516, in send
      raise ConnectionError(e, request=request)
  requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.rollbar.com', port=443): Max retries exceeded with url: /api/1/item/ (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x10515caf0>: Failed to establish a new connection: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)'))
  ERROR    gigalixir-cli:__init__.py:88 ('Connection aborted.', OSError(57, 'Socket is not connected'))
  =========================== short test summary info ============================
  FAILED test/test_gigalixir.py::test_rollback_without_version - assert '' == '...
  ========================= 1 failed, 53 passed in 1.56s =========================

Not sure why this doesn't fail on linux (doesn't run?).

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate
Not sure why this doesn't fail on linux (doesn't run?).

Seems a certificate issue. Could be a local issue. It is working here. But I don't have a Mac to test.


Enable fancy unicode

I think it's just for consistency (other people generally don't bother going to the effort of doing the fancy punctuation).
That being said, I just spotted that we can make our static site generator automatically do the ASCII-to-fancy-unicode translation if we want (smart_punctuation setting), so we might want to look at turning that on at some point - then we'd have consistency no matter how people write their sections.
Originally posted by @17cupsofcoffee in https://github.com/rust-gamedev/rust-gamedev.github.io/pull/1001#discussion_r846762100

I don't particularly have a preference if it is pretty well supported. It seems like it would be a good idea :)


Fix nine patch of circular TextureProgressBar

With nine patch enabled.
Before:

After:

@kleonc Good idea.

Thanks!

Cherry-picked for 3.5.

@akien-mga Should this be cherry-picked to 3.4.3?

Cherry-picked for 3.4.3.


Cannot set property 'networkStatus' of undefined Error occurs when fetchMore gets invoked

Intended outcome:

I'm trying to use fetchMore function that is described at your documentation. link : https://www.apollographql.com/docs/angular/recipes/pagination.html#fetch-more
below is the actual code :
this.fetchQuery = this.apollo.watchQuery<any>({
      query: gql`
          query FetchTrainingData ($projectId: String!, $label: String, $page: Int, $size:Int, $order: OrderType){
              trainingData(projectId: $projectId, label: $label, page: $page, size:$size, order: $order) {
                  sentence
                  labels
                  id
                  updateCount
              }
          }
      `,
      variables: {
        projectId: "",
        page: null,
        label: null,
        order: null,
        size: null
      }
    });

this.fetchQuery.fetchMore({
      variables: {
        projectId: this.projectId,
        label: null,
        page: page,
        size: size,
        order: null
      },
      updateQuery: (prev, { fetchMoreResult }) => {
        if (!fetchMoreResult) { return prev; }
        return Object.assign({}, prev, {
          feed: [...prev.feed, ...fetchMoreResult.feed],
        });
      },
    }).then(res => {
      console.log(res);
    })

but when fetchMore gets invoked, "Cannot set property 'networkStatus' of undefined" error occurs.
ps. After the 2.0.0 releases your documentations are very unstable .Inside the example code about usage of fetchMore(above link) there is no such "this.feedObs" property. Maybe you guys meant "this.feedQuery". And also the "forceFetch" property inside watchquery options does not exist in type WatchQueryOptions & TypedVariables.
Actual outcome:

How to reproduce the issue:

Version
"apollo-angular": "1.0.0-beta.2",
    "apollo-angular-link-http": "1.0.0-beta.5",
    "apollo-cache-inmemory": "1.1.0",
    "apollo-client": "^2.0.2",
    "apollo-link-context": "1.0.0"

@pycraft114
In<EMAIL_ADDRESS>we introduced a different way of watching queries. Let me show you, step by step how it works.
To watch query we stll use watchQuery() which QueryRef (this is new)
const ref = this.apollo.watchQuery(...) // QueryRef

QueryRef has methods like refetch(), fetchMore() and others.
ref.refetch({variables: foo: 'new'});

So where is an Observable that we could subscribe to?
ref.valueChanges.subscribe(...)

It's a pure RxJS Observable, previously it was a custom Observable that contained Apollo specific methods, for example refetch().
Thanks to that change it's way less buggy and it fully works with RxJS and also in TypeScript without any Type Errors.

You can read more about the migration process in the documentation.


Digest property return "" in Swift 3.1

All of the digest(MD2, MD4, MD5, SHA1, SHA224, SHA256, SHA384, SHA512) for String extension return "".
"sam".sha1 // ""

Crypto: 0.5.1
CommonCrypto: 1.1.0
Xcode: 8.3
Swift: 3.1

Thanks for quickly fix.

In our internal test, 0.5.2 still return "".

Sorry, its my mistake.
0.5.2 is correct +1

Good! Glad you got it! I spent the last half hour trying to make sure it worked (and even made a video). Glad you figured it out! Sorry for that weird bug :)


node_grpc rosservice write_state writes empty file

Calling rosservice write_state on a node_grpc (the ros/grpc bridge) writes an 8 byte pbstream file.

This should be resolved now.


Questions about USPTO-full preparation

I the article, author said: "The same procedure was used to build the edits vocabulary on USPTO-full dataset and the difference is that the edits Attach LG must appear at least 50 times in the training set of USPTO-full before it will be collected into the vocabulary. This edits vocabulary include 6 bond edits, 336 atom edits (8 Change Atom and 328 Attach LG), and a termination symbol."
Apart from processing training data, will test data for leaving the group that is not in the vocabulary be deleted?

In the USPTO-full dataset, the test data which the leaving group is not in the vocabulary were retained.


Feature Request: Ability to undo deleting a todo or confirm if you want to delete a todo

I find that it's too easy to delete todos, and I think one or both of the following would be nice features:

Ask me if I want to delete a todo before actually doing so (just hit enter to continue)
Allow me to undo deleting a todo

the functionality of confirm to delete an undone todo was actually made, but in recent updated it must be overridden... Currently investigating that

heyy buddy, please check the latest release

Works exactly how I would expect. Thanks for adding that!


How to apply the robust loss in Monodepth Estimation？

Hi，
Thanks for your wonderful job，I am confused on that how to apply the robust loss on monodepth Estimation？is it used to instead photo-metirc loss？could you give me more explanation about that？
Thanks

Hi, unfortunately we don't have a code release for the monocular depth estimation experiments of the paper (though that code is in TF anyways so it likely isn't what you're looking for). I believe that there are Pytorch implementations of SFMLearner on Github, and using this loss should be straightforward: just delete the existing multiscale photometric loss and the smoothness term and add in AdaptiveImageLossFunction on the full-res image with:
scale_lo=0.01
scale_init=0.01
and default settings for the rest and it should work (you may need to fiddle with the value of wavelet_scale_base).
Appendix H of the paper goes into more detail on this.
If you do end up porting this code to a PyTorch codebase and don't get the results you're expecting, please let me know and I'll do my best to help.

Thanks for your help！I will try it


WIP: community links

This adds frontmatter to the community page to make it easier to add links as new content becomes available that is relevant to the community.
@JasonEtco This could use some love if you have a few minutes
Fixes #214

Big fan of having more community links, but I think we should aim for a design that'll easily allow us to add more without cluttering the page too much. What do you think about arranging them into 2 or 3 columns and adding more as we continue?

(Just a note the build fails are unrelated, likely due to another spammy user)


I lose focus while developing every time the ssh terminal's stdout is receiving

i think it's this line of code:
https://github.com/vscode-ext-studio/vscode-ssh/blob/e5c710b7b59369d69337cb6bfdadc1e4685dec5c/src/pages/xterm/js/index.js#L83

Fixed in #36

Hi,  this extension has been discontinued and removed from the extension store.


Add support for DFS endpoint

This issue is to track the communities need for the support of DFS endpoint (for the ADLS Gen2 SDKs) in azurite.

@amishra-dev
Thanks for raising this request!
Will track it with other new feature request.

I was wondering what the latest progress is on this? Is this feature being worked on? Thanks.

@karimdabbagh
Thanks for raise the request!
Please see the reply in https://github.com/Azure/Azurite/issues/553#issuecomment-877929675.


Add link to BP.json

A link to manually open a new browser window and verify if BP json exists would nice to have

@Torresmorah
Epic:
As a guest, I'd like to add a new link to check if the corresponding BP.json file is working.
Criteria:
As the suggestion's mention, add a new link to open a new open a new browser window and verify if BP.json exists or not.
We could locate the link element next to the "website" title.
Tasks:


Suggest depictions by fetching nearby Wikidata items

When I take a pictures near Arc De Triomphe, suggest as depictions: Arc De Triomphe, Champs Elysees, and other items that might be in my picture.

Duplicate of #3633


Suggestion: Expose math functions to the API

In writing a Z80 program from scratch I'm dreading having to implement string-to-number and floating-point functionality myself. Anybody who wants to write a decently sized program that takes user input is probably going to need integer/fp & math routines.
Agon MOS doesn't implement these but BBC BASIC does. May I recommend putting the number/math functions into MOS and exposing an API for them so that every developer doesn't have to make a copy themselves.

That's a good idea. I like that.


Docker files changes

Could you add a description on your pull request? Why do you want to add those changes? Also, having one commit instead of the 9 currently would be better! Thanks

Closing since no responses. Please feel free to create a new one with the comments addressed if you want to see it merged


Add binding for git_message_trailers

I don’t know how to fix the current error from the CI.
The output on my machine:
$ if [[ "stable" != "nightly" ]]; then cargo run --manifest-path systest/Cargo.toml; fi
…
  running: "cc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-I" "<path-to-repo>/target/debug/build/libgit2-sys-b48a2ccdd54f1249/out/include" "-Wall" "-Wextra" "-Wall" "-Wextra" "-Werror" "-Wno-unused-parameter" "-Wno-type-limits" "-Wno-address-of-packed-member" "-Wno-unknown-warning-option" "-Wno-deprecated-declarations" "-o" "<path-to-repo>/target/debug/build/systest-ae23871569b4b2ee/out/all.o" "-c" "<path-to-repo>/target/debug/build/systest-ae23871569b4b2ee/out/all.c"
  cargo:warning=<path-to-repo>/target/debug/build/systest-ae23871569b4b2ee/out/all.c: In function ‘__test_field_type_git_message_trailer_array_trailers’:
  cargo:warning=<path-to-repo>/target/debug/build/systest-ae23871569b4b2ee/out/all.c:18438:28: error: return from incompatible pointer type [-Werror=incompatible-pointer-types]
  cargo:warning=                     return &b->trailers;
  cargo:warning=                            ^~~~~~~~~~~~
  cargo:warning=<path-to-repo>/target/debug/build/systest-ae23871569b4b2ee/out/all.c: At top level:
  cargo:warning=cc1: error: unrecognized command line option ‘-Wno-unknown-warning-option’ [-Werror]
  cargo:warning=cc1: error: unrecognized command line option ‘-Wno-address-of-packed-member’ [-Werror]
  cargo:warning=cc1: all warnings being treated as errors
  exit code: 1

  --- stderr
  rust version: 1.47.0

  error occurred: Command "cc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-I" "<path-to-repo>/target/debug/build/libgit2-sys-b48a2ccdd54f1249/out/include" "-Wall" "-Wextra" "-Wall" "-Wextra" "-Werror" "-Wno-unused-parameter" "-Wno-type-limits" "-Wno-address-of-packed-member" "-Wno-unknown-warning-option" "-Wno-deprecated-declarations" "-o" "<path-to-repo>/target/debug/build/systest-ae23871569b4b2ee/out/all.o" "-c" "<path-to-repo>/target/debug/build/systest-ae23871569b4b2ee/out/all.c" with args "cc" did not execute successfully (status code exit code: 1).

The C function at line 18438 in that file:
const git_message_trailer** __test_field_type_git_message_trailer_array_trailers(git_message_trailer_array* b) {
    return &b->trailers;
}

The error output from the CI is better than the one on my machine:
error: returning ‘git_message_trailer **’ {aka ‘struct <anonymous> **’} from a function with incompatible return type ‘const git_message_trailer **’ {aka ‘const struct <anonymous> **’} [-Werror=incompatible-pointer-types]

How can I provide a better type in src/libgit2-sys/lib.rs?

That looks like a difference of *const and *mut in Rust I think?

Oh wow.  Yep, that was it.  Thanks!


The flex property should have type double instead of int

Why is the flex property (e.g. in the Flexible widget) an int instead of a double?  If I for example want to use the golden ratio for relative sizing, I now have to use<PHONE_NUMBER>75 and<PHONE_NUMBER>00 as the (approximate) relative values.

@Hixie

@Hixie any plans to do anything about it or should the issue be closed?
Using num instead would allow double as well without breaking old code.

I have the same question...

Using num is interesting.
In practice, just multiply your doubles by 1000 and round, and it'll be close enough. But yeah, maybe num would work. There's a performance cost there though.

It should absolutely be double or num just to size Spacer to a fraction of a regular widget
                            Row(
                              children: <Widget>[
                                Spacer(flex: 0.5), // !!!
                                widget1,
                                widget2,
...
                                widgetN,
                              ],
                            ),

@duzenko If there's only one widget with flex, the number has no effect anyway, whether it's 0.5, 1, 2, or 1000.

@duzenko If there's only one widget with flex, the number has no effect anyway, whether it's 0.5, 1, 2, or 1000.

It has if other widgets are Expanded, etc.

Could the flex property be changed to double now that Dart 2.10 made integer literals work in double contexts?
From the Dart Changelog for version 2.10:
When passing a literal number to a function that expects a double, you no longer need an explicit .0 at the end of the number. In releases before 2.1, you need code like this when setting a double like fontSize:
TextStyle(fontSize: 18.0)
Now you can remove the .0:
TextStyle(fontSize: 18)
In releases before 2.1, fontSize : 18 causes a static error. This was a common mistake and source of friction.

                 Expanded(
                    flex: 1500, // 15%
                    child: Container(color: Colors.red),
                  ),
                  Expanded(
                    flex: 3000, // 30%
                    child: Container(color: Colors.green),
                  ),
                  Expanded(
                    flex: 5000, // 50%
                    child: Container(color: Colors.blue),
                  )

@ValentinVignal did great work in https://github.com/flutter/flutter/pull/147976 to investigate the performance impact of using num and we concluded that it's not worth it, so I'm going to close this.


error: undefined method `*' for nil:NilClass

Under Ruby 1.9.3 (with pdf-reader downgraded to 1.1.1), I get
$ pdf-extract extract --references example.pdf
error: undefined method `*' for nil:NilClass. Use --trace to view backtrace

Under Ruby 1.9.1 (again with pdf-reader at 1.1.1), I get
$ pdf-extract extract --references example.pdf
error: undefined method `sort_by!' for #<Array:0x007fa62e9cc930>. Use --trace to view backtrace

Any suggestions? I'm not sure what else to try, but am excited to get pdfextract running!

@semorrison Hi! Sorry about replying on this topic again. I'm trying to run pdf-extract. For some PDF papers it runs very well, but some I get these errors with a blank output :

error: undefined method []' for nil:NilClass. Use --trace to view backtrace` and
error: undefined method *' for nil:NilClass. Use --trace to view backtrace`

I'm using Ruby 2.0.0 and pdf-reader 1.1.1. Do you know can I solve this?


Cannot start jupyter notebook in anaconda python 3.7 environment

Cannot start jupyter in python 3.7 environment.
It looks like reapperance of closed bug #3341 Run Cell fails to start Jupyter
Getting ImportError: DLL load failed: The specified module could not be found.
Environment data

VS Code version: 1.31.0
Extension version (available under the Extensions sidebar): 2019.1.0
OS and version: Windows 10
Python version (& distribution if applicable, e.g. Anaconda): minicoda python 3.7.1
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): conda env
Relevant/affected Python packages and their versions:
python 3.7.1
jupyter 1.0.0

Expected behaviour
Jupyter should start even with python 3.7
Actual behaviour
WHen using python 3.7 environment jupyter does not start. See logs below.
Steps to reproduce:

create a clean python 3.7 environment using conda: conda create -npy37 python=3.7 jupyter
open any python file and select py37 environment
Jupyter: start a new jupyter notebook

Logs
Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

Output for Jupyter

  File "C:\Users\user.account\AppData\Local\Continuum\miniconda3\envs\py37\Scripts\jupyter-notebook-script.py", line 6, in <module>
    from notebook.notebookapp import main
  File "C:\Users\user.account\AppData\Local\Continuum\miniconda3\envs\py37\lib\site-packages\notebook\notebookapp.py", line 47, in <module>
    from zmq.eventloop import ioloop
  File "C:\Users\user.account\AppData\Local\Continuum\miniconda3\envs\py37\lib\site-packages\zmq\__init__.py", line 47, in <module>
    from zmq import backend
  File "C:\Users\user.account\AppData\Local\Continuum\miniconda3\envs\py37\lib\site-packages\zmq\backend\__init__.py", line 40, in <module>
    reraise(*exc_info)
  File "C:\Users\user.account\AppData\Local\Continuum\miniconda3\envs\py37\lib\site-packages\zmq\utils\sixcerpt.py", line 34, in reraise
    raise value
  File "C:\Users\user.account\AppData\Local\Continuum\miniconda3\envs\py37\lib\site-packages\zmq\backend\__init__.py", line 27, in <module>
    _ns = select_backend(first)
  File "C:\Users\user.account\AppData\Local\Continuum\miniconda3\envs\py37\lib\site-packages\zmq\backend\select.py", line 27, in select_backend
    mod = __import__(name, fromlist=public_api)
  File "C:\Users\user.account\AppData\Local\Continuum\miniconda3\envs\py37\lib\site-packages\zmq\backend\cython\__init__.py", line 6, in <module>
    from . import (constants, error, message, context,
ImportError: DLL load failed: The specified module could not be found.

Output from Python:

Starting Microsoft Python language server.
Microsoft Python Language Server version <IP_ADDRESS>
Initializing for C:\Users\user.account\AppData\Local\Continuum\miniconda3\envs\py37\python.exe

Does it work outside of VS code? We should be running conda activate now. So it should be the same environment as running python -m jupyter notebook --version from a conda environment.

Your Jupyter version is super old too. It might not even support notebooks.

Well assuming 1.0 is accurate. That seems odd. For example, this is what I get:
(base) C:\Users\rchiodo>jupyter notebook --version
5.7.4

(base) C:\Users\rchiodo>jupyter --version
4.4.0

I created the environment using
conda create -npy37 python=3.7 jupyter
YOu are right, the version info is strange I got it from conda list -npy37
jupyter                   1.0.0                      py_1    conda-forge
jupyter_client            5.2.4                      py_1    conda-forge
jupyter_console           6.0.0                      py_0    conda-forge
jupyter_core              4.4.0                      py_0    conda-forge

when I run --version in command line I get the following:
(py37) C:\>python -m jupyter notebook --version
5.7.4

(py37) C:\>jupyter --version
4.4.0

and jupyter notebook works from command line. THe issue is onlyfrom within VSC

Can you include the output of the Developer Tools Console?
Go to Help | Toggle Developer Tools
Open a folder
Run a cell
Right click in the Developer Tools and click Save As
That should include a log of us trying to activate your conda environment. For some reason that isn't working.

Another thing you can try is to activate your conda environment, then from within that terminal/console run 'code.cmd '.
If that works, then my hunch about conda activation failing would be correct. If it doesn't work, then something else is going wrong.

Hi Rich,
Please find attached log file from "Development Tools"
About conda activation:

I opened terminal using: Python: create terminal. This acitvated py37
environment in terminal window
I run code.cmd which opened another VS Code

/Marek
On Wed, Feb 13, 2019 at 4:58 PM Rich Chiodo<EMAIL_ADDRESS>wrote:

Another thing you can try is to activate your conda environment, then from
within that terminal/console run 'code.cmd '.
If that works, then my hunch about conda activation failing would be
correct. If it doesn't work, then something else is going wrong.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode-python/issues/4358#issuecomment-463254623,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHv2OAJ9-tRL7dEIYk6BqQbT4UZq_tczks5vNDYtgaJpZM4a19Cj
.

--
Marek Ozana
mobile: +46-720-788 404

Sorry I should have been more explicit.
In the code window that opened from the activated conda environment, can you run cells?

I think you need to paste the log file into the issue directly. Your e-mail didn't send it.
You might also want to be careful about e-mailing. It looks like your signature includes your phone number.

Please find attached the log-file.
-1550075650188.log

Okay I think I know what the problem is. "Start a new Jupyter notebook" is not a command that is part of the Python Extension.
It's from this extension:
https://marketplace.visualstudio.com/items?itemName=donjayamanne.jupyter
You can see it in the package.json here:
https://github.com/DonJayamanne/vscodeJupyter/blob/be7180030258808e2a686a2b248d12ac0cb026c0/package.json#L96
Funny enough, Don does work on our extension, but the 'Jupyter' extension is obsolete now. You should uninstall it. This bug won't be fixed in his extension.
Docs on the new features for Jupyter in the Python Extension can be found here:
https://code.visualstudio.com/docs/languages/python#_jupyter-notebooks
Sorry for the confusion.

I am confused now.
When I uninstall the jupyter extension by Don and then try to evaluate cell I get this error:
Executing code failed : Error: Running cells requires Jupyter notebooks to be installed.
Is the support for evaluating parts of python code in jupyter notebooks completely dropped from VSC?

So you're saying you get the same problem with the 'Run Cell' command? Something that looks like so (after you remove Don's extension).

Please make sure to reload VS code though. Don's extension also puts up a 'Run Cell' command.

If that does fail, can you attach the new log again?

You are right, it works now. Must have been that I didn't reload.
Thank you for your time and help Rich!


Add feature to change the color for each tags

Add UIColor argument for the constructors

How is this going?


Fix match in fabric_doc_open_revs reply

Message handler in fabric_doc_open_revs returns tagged with 'ok' list of the replies and not expected {ok, Reply} tuple. This makes reply to go through Else clause and skip filter_reply function.

@davisp check it out, I've noticed it by a chance.

+1


LMenu selection triggers mouse events in LAxis behind it

Example:
scene, layout = layoutscene()
layout[1,1] = LMenu(scene; options=string.(1:20))
layout[2,1] = ax = LAxis(scene)
lines!(ax, rand(10))
on(ax.scene.events.mousebuttons) do buttons
    @show buttons
end
pt = select_point(ax.scene)
scatter!(ax, pt)
scene

Selecting a menu item triggers the mouse down and mouse up events on axis, and moves the scatter point.
I think the menu selection and hiding the menu should only happen on mouse up, and both events (mouse up and down) shouldn't trigger on the LAxis.

yeah that one's annoying, the problem is that the laxis registers clicks by area, so it doesn't know there are things in front of it. I haven't figured out yet if that can be distinguished


Debugging

Note: This is a work-in-progress-PR
Goal: Provide info about debugging with Haxe. There is some info scattered in the manual and old wiki but I think it should be in one chapter.
The trace-section from language features is removed and split it the position/trace/$type into separate sections. I've added a JavaScript debugging section.
TODO:

[ ] I think the hxcpp debugger info should be mentioned here too (https://github.com/HaxeFoundation/hxcpp-debugger/wiki/Getting-started) but I'm not sure how actual this is? Also, Im no cpp user, so I need help here.
[ ] Do we have other secret debug functionality?
[ ] Do we have other language specific debug information that is relevant to document?

Looks good to me. Did you try to actually TeX-compile this or are you still just hoping that it works?

I always hope it works. Haha, but I also tested it local ofcourse. So in current state it works.

Alright then, let me know when you want it merged.

When there is nothing more to add.
What do you know bout the hxcppdebugger?

Not much, but I wrote this once: https://github.com/HaxeFoundation/hxcpp-debugger/wiki/Getting-started

Yes that is exactly what I asked in first post :) how relevant is it? Because then ill port it, since wikis also seem to be hidden haha

We can have target-specific debugging sections I guess. Debugging is quite target-specific anyway.

Do you mean like i did now, or move it to the target-details section?

Like you did.

Lets go for this, ill add other sections later.

I've resolved the conflicts, should be mergable.
Reminder; when this is merged we need to add a redirect. (cc @ibilon)


Release 0.7.5

Hostname environment variable to docker
Username and password to docker for LS basic auth
Update s3 signature version to s3v4 to support more AWS regions (@wdvr)
Detailed logs from ML backend on ML page
Fixes for task validation in cloud storages
Task navigation improvements with hotkeys on tasks page
Minimum formatting of completed_at (@TTouka)
Maintain ordering in source.json and task.json for sequential sampling (@theconsummatedhruv)
Move external fonts to LS
New deserialization mechanics in LSF
Significant speed up for DOM render in LSF
A lot of UI fixes
Docs improvements
Show task code button on Tasks page
Add ML predictions on tasks page
Table tag support on import and its example
Update pip and six packages to avoid fails while LS install
Fix storage paths with trailing slashes
Previews for audio and texts on tasks page
Fix Project.next_task to sort task IDs for "sequential" sampling (@k4200)
Don't keep premade predictions in completion + Keep premade predictions if we can't get fresh (@hepaajan)

There's some missing images in the faq.html e.g. cors-lsf-error.png

@john-sandall Thanks a lot!


Develop

Fix font issues
add widget transparency setting

@froster82 I need some more translation, but only a few one:
https://github.com/pachi81/GlucoDataHandler/pull/97/files#diff-bd6311cc0b6875d4350bc94577a3598d016c2287731d2a5d9036cde4c9640ac6


https://github.com/Storj/dataserv-client/blob/v2.1.4/dataserv_client/common.py wrong

Hello,
https://github.com/Storj/dataserv-client/blob/v2.1.4/dataserv_client/common.py
DEFAULT_URL = "http://status.driveshare.org" is wrong, should be switch.driveshare.org
Cheers,

http://ping.eu/nslookup/
status.driveshare.org = <IP_ADDRESS>
switch.driveshare.org = <IP_ADDRESS>
Both DNS entries are pointing to the same server. Closed as user error.


fix(copilot): use full name of nvim-cmp plugin

Otherwise, :checkhealth complains of:

lazy.nvim

WARNING {nvim-cmp}: overriding <1>

That's actually ok and a bug in lazy.nvim's health. Just fixed it there. Will make a new release soon. Thanks for letting me know!


Support weight only quantization with intel-extension-for-transformers.

Support weight only quantization with intel-extension-for-transformers.
Intel® Extension for Transformers is an innovative toolkit to accelerate Transformer-based models on Intel platforms, in particular effective on 4th Intel Xeon Scalable processor Sapphire Rapids (codenamed Sapphire Rapids). The toolkit provides the below key features:

Seamless user experience of model compressions on Transformer-based models by extending Hugging Face transformers APIs and leveraging Intel® Neural Compressor
Advanced software optimizations and unique compression-aware runtime.
Optimized Transformer-based model packages.
NeuralChat, a customizable chatbot framework to create your own chatbot within minutes by leveraging a rich set of plugins and SOTA optimizations.
Inference of Large Language Model (LLM) in pure C/C++ with weight-only quantization kernels.
This PR is an integration of weight only quantization feature with intel-extension-for-transformers.

Unit test is in lib/langchain/tests/integration_tests/llm/test_weight_only_quantization.py
The notebook is in docs/docs/integrations/llms/weight_only_quantization.ipynb.
The document is in docs/docs/integrations/providers/weight_only_quantization.mdx.

we are moving to put integrations in langchain_community... should be a pretty straightfoward move, but lmk if any questions!

It‘s OK for me.

we are moving to put integrations in langchain_community... should be a pretty straightfoward move, but lmk if any questions!

Hi, @hwchase17 , Who can move the code to langchain_community?

Hi, @hwchase17 , I had moved code into langchain_community. Please review it, thanks very much!

@baskaryan , How can I veiw the error log for deploying on Vercel?

@baskaryan， could you review the PR? thanks!

Hi @baskaryan, thanks for your review and approval. Please let us know whether we should invite some other reviewers to make the PR move forward.

hi, @baskaryan , ITREX provides a package for Python 3.8, Please review the PR, thanks very much!

Hi @baskaryan Thanks for your review. Please let us know whether you have additional comments.


Save find and replace regex

I use some sets of find and replace more often while editing markdown files. Can I save those pair as a script file or as a shortcut that gets executed whenever I invoke the shortcut or the script file?

alt+up can navigate the history if you have find focused.

I many times using Search functionality in combination with regexp to do various code transformations.
For example here is how I replace all markdown links in format http://example.com to a 'tag' format http://example.com.

Another even more frequent example is transforming JSON file to a typescript mock object.
Regexp is trivial but it's kind of tedious to fill the fields in the UI it again and again.
Alt+up only iterates over values in one field. And it also contains history of all imperfect tries in that field.
I want to encourage others to vote if you think as me that this would be really huge boost for productivity and opening new possibilities.


Particle System

New core particle system. Currently fixing & optimizing & planning.

[x] Multiple renderers
[ ] Particle system does not stop rendering when far away (particlesystems don't dispose)
[x] Convert legacy particle stuff (block effects mostly)
[ ] Long-range particlesystem registry, "Chimney-problem"
[ ] Optimize updater to partition ParticlePool based on emissionRate of emmiters, not evenly.
[ ] Force-fields
[ ] Create documentation
[ ] Finish annotating code
[ ] Create tests

Uh oh, something went wrong with the build. Need to check on that

Uh oh, something went wrong with the build. Need to check on that

Uh oh, something went wrong with the build. Need to check on that

Hooray Jenkins reported success with all tests good!

Hooray Jenkins reported success with all tests good!

Hooray Jenkins reported success with all tests good!

Hooray Jenkins reported success with all tests good!

Thanks!
@emanuele3d this should be the redo with the smaller base than #2632 - 21 files vs 54. Hopefully that'll make review a more smooth process :-)

@emanuele3d On the old PR you said that it was a problem that this doesn't use RenderSystem. It does, the manager implements RendersSystem, and on a render call loops over all of the renderers and passes them the systems that they need to render (in my local version with multiple renderers that is, will push soon.)
Also, I'm not sure how the DAG rendering system works, (a wiki page with at least a tiny explanation would be nice!) But I was wondering on what call we want particles rendered on. Currently everything is on drawAlphaBlended.
Solution 1:
Have ParticleRenderers implement RenderSystem and call every draw method on each ParticleRenderer from every draw method in the manager. (one to one) So the drawAlphaBlended method in the manager will loop over all particle renderers and call their drawAlphaBlended method.
Solution 2:
Make a particles render node / call? Particles can have varying drawing methods though, so I'm not sure if it makes sense to generalize all particles to a particles rendering node / call. I may be wrong, I'm not sure how you have the rendering nodes system organized.
Thank you in advance for any explanations.

A couple of quick answers as I can't do a full review right now:
Documentation: high level documentation is problematic at this stage because the system is in a state of flux. It starts to make sense when the DAG-based architecture has stabilized enough to present an API, which is one of the goals of the renderer overhaul. Meanwhile, you might get some high level information in issue #2547. Furthermore, every PR I published of late has added a fair amount of low level documentation, not to mention a focus on self-documenting code - I'm trying to do this for every java file I touch. So, albeit slowly, it's all happening, but it's a long term project and in the short term you'll have to dig into the code.
Regarding the options 1-2 you mention: the "correct" approach is to go through RenderSystems. That's consistent with the current architecture: if you need something to get rendered you should have one or more classes implementing one or more methods of the RenderSystem interface. For example you'd have a set of particles needing alpha blending and those would be rendered through a class implementing the renderAlphaBlend() method. Another set of particles might be fully opaque instead and you'd render them through a system implementing the renderOpaque() method. And in some circumstances the same set of particles might need to be rendered multiple times through multiple methods, all requiring an implementation. The important thing is that particles requiring the same opengl state (i.e. the same shader, face culling enabled/disabled, etc..) should be rendered, as much as possible, within the same RenderSystem.render*() call.
For this purpose I seem to remember you can use the @RegisterSystem decorator or something similar for your instances to self-register. This way the renderer takes care of iterating through your particles calling the methods of the RenderSystem interface at the appropriate time.
New nodes are really only useful to add things that can't be rendered through the existing nodes or that must be done between existing nodes, for whatever reason.

Hooray Jenkins reported success with all tests good!

@emanuele3d Thanks for the explanation. I rewrote the multiple renderers scheme to work more like you explained. Here's how you would go about making a custom particle renderer now:

Create a system extending ParticleRenderer (which implements RenderSystem).
Use any of the RenderSystem render...() methods in your system.
ParticleRenderer provides a getParticleSystems() method that returns a filtered stream of ParticleSystemStateDatas that are supposed to be rendered by the your renderer. Handle those however you want in your system.

In order for a particle system state data to be sent to a certain particle renderer, you just have to set its renderer.
ParticleSystemComponent.setRenderer (customParticleRenderer.class)

I'll review everything as soon as I can.

Bump - @MaxBorsch have you had a chance to check this one out lately? :-)

Bumping @MaxBorsch for great justice :-)

Hooray Jenkins reported success with all tests good!

@emanuele3d I would let it up to you to review it. If this tests out good I think we can merge it from my side as it now is replacing the existing particle system.

Are we good to merge this soon/now or do you have any changes in the queue @MaxBorsch?

@skaldarnar You're clear to merge. I'll probably move the checklist from the PR to an issue later.

Bump - am remembering this one is open for merge now. @MaxBorsch could you submit that follow-up issue with details on future improvements needed please, so we don't lose track? Is there any particular easy way to test it? My apologies if that has come up in the past already :-)

@Cervator You can test it by making any particles, this replaced the legacy particle system. Just hit a block or spawn dustEffect for particles. Clear to merge, posted in new issue: #2909

Thanks @MaxBorsch :-)
Merged this and tested it out, and it works with a few observations/fixes needed:

Sand particles are nearly impossibly white - that's probably an existing issue with sand being super white in some circumstances
The rail gun didn't explode things as it failed to find engine:smokeExplosion - it works with Core:smokeExplosion (in TunnelAction - similar fix needed in `ArrowAction)
Causes compilation error in GooeysQuests which still uses BlockParticleEffectComponent - oh noes! That's technically an API violation.

I wish I had my mega-workspace so I could detect any other modules with problems (anybody else?) although I suspect the affected count is minor and fixes probably straight forward (could you advise on GooeysQuests, Max?). If we can pair this PR with fixes to affected modules we can let the API violation pass.

Hooray Jenkins reported success with all tests good!

Took it for another spin with https://github.com/Terasology/GooeysQuests/pull/13 included - thanks for that :-)
Seemed like it works fine! So that's a good example for how to fix things. Digging around in both my home workspaces I have a clearer picture of what's left on the todo list (some of those I can do while merging)

[x] GooeysQuests - fixed by https://github.com/Terasology/GooeysQuests/pull/13
[ ] CopperAndBronze has an old Charcoal pit with two classes using BlockParticleEffectComponent
[ ] Smithing has the same as it is a renewal of TTA
[ ] LightAndShadow also uses BPEC in its CardSystem
[ ] Rails as expected also has some smoke particles in MinecartSystem
[ ] Sample has a single prefab
[ ] JoshariasSurvival has 3 prefabs

Ran another quick bit of testing to see if this could be merged in prior to tomorrow's play test even with known module changes to still make, but it crashed pretty hard in multiplayer with GooeysQuests. Immediately on joining player 2 (player 1 hosting) the game crashed with the following error:
01:35:45.498 [main] INFO  o.t.r.dag.RenderTaskListGenerator - Task list generated in 10.304 ms
01:35:45.498 [main] INFO  o.t.r.dag.RenderTaskListGenerator - 42 nodes, 38 enabled - 176 tasks (excluding marker tasks) out of 290 potential tasks.
01:35:45.498 [main] INFO  o.t.r.dag.RenderTaskListGenerator - ----------------------------------------------------------
01:35:45.758 [main] WARN  o.t.rendering.nui.asset.UIFormat - Field 'emptyIcon' not recognized for interface org.terasology.rendering.nui.UIWidget in {"type":"UIIconBar","id":"breathBar","icon":"engine:icons#bubble","family":"breathBar","emptyIcon":"engine:icons#burstBubble","halfIconMode":"shrink","spacing":2,"maxIcons":10,"layoutInfo":{"use-content-width":true,"use-content-height":true,"position-left":{"target":"CENTER"},"position-right":{"target":"RIGHT","widget":"healthBar"},"position-bottom":{"target":"TOP","widget":"healthBar","offset":1}}}
01:35:45.759 [main] WARN  o.t.rendering.nui.asset.UIFormat - Field 'crosshairIcon' not recognized for interface org.terasology.rendering.nui.UIWidget in {"type":"UICrosshair","id":"crosshair","crosshairIcon":"engine:gui#crosshair","layoutInfo":{"use-content-width":true,"use-content-height":true,"position-horizontal-center":{},"position-vertical-center":{}}}
01:35:45.775 [main] INFO  o.t.p.ParticleSystemManagerImpl - Registering GeneratorFunction for Component class class org.terasology.particles.components.generators.EnergyRangeGeneratorComponent
01:35:45.775 [main] INFO  o.t.p.ParticleSystemManagerImpl - Registering GeneratorFunction for Component class class org.terasology.particles.components.generators.VelocityRangeGeneratorComponent
01:35:45.775 [main] INFO  o.t.p.ParticleSystemManagerImpl - Registering GeneratorFunction for Component class class org.terasology.particles.components.generators.ColorRangeGeneratorComponent
01:35:45.775 [main] INFO  o.t.p.ParticleSystemManagerImpl - Registering GeneratorFunction for Component class class org.terasology.particles.components.generators.PositionRangeGeneratorComponent
01:35:45.775 [main] INFO  o.t.p.ParticleSystemManagerImpl - Registering GeneratorFunction for Component class class org.terasology.particles.components.generators.ScaleRangeGeneratorComponent
01:35:45.775 [main] INFO  o.t.p.ParticleSystemManagerImpl - Registering GeneratorFunction for Component class class org.terasology.particles.components.generators.TextureOffsetGeneratorComponent
01:35:45.775 [main] INFO  o.t.p.ParticleSystemManagerImpl - Registering AffectorFunction for Component class class org.terasology.particles.components.affectors.VelocityAffectorComponent
01:35:45.775 [main] INFO  o.t.p.ParticleSystemManagerImpl - Registering AffectorFunction for Component class class org.terasology.particles.components.affectors.AccelerationAffectorComponent
01:35:45.836 [main] WARN  o.t.rendering.nui.asset.UIFormat - Field 'crosshairIcon' not recognized for interface org.terasology.rendering.nui.UIWidget in {"type":"UICrosshair","id":"crosshair","crosshairIcon":"engine:gui#crosshair","chargeStages":["engine:gui#crosshairCharge1","engine:gui#crosshairCharge2","engine:gui#crosshairCharge3","engine:gui#crosshairCharge4","engine:gui#crosshairCharge5","engine:gui#crosshairCharge6","engine:gui#crosshairCharge7","engine:gui#crosshairCharge8"],"layoutInfo":{"use-content-width":true,"use-content-height":true,"position-horizontal-center":{},"position-vertical-center":{}}}
01:35:45.924 [main] INFO  org.terasology.work.WorkBoard - Initialize WorkBoard
01:35:45.925 [main] INFO  org.terasology.work.WorkFactory - Initialize WorkFactory
01:35:46.078 [main] WARN  o.t.l.nameTags.NameTagClientSystem - Can't create player based name tag for character as owner has no client component
01:35:46.223 [main] INFO  o.t.network.internal.ServerImpl - Dropping event PlaySoundEvent for unavailable entity EntityRef{id=0}
01:35:46.223 [main] INFO  o.t.network.internal.ServerImpl - Dropping event PlaySoundEvent for unavailable entity EntityRef{id=0}
01:35:46.228 [main] INFO  o.t.network.internal.ServerImpl - Dropping event PlaySoundEvent for unavailable entity EntityRef{id=0}
01:35:46.229 [main] INFO  o.t.network.internal.ServerImpl - Dropping event PlaySoundEvent for unavailable entity EntityRef{id=0}
01:35:46.233 [main] INFO  o.t.network.internal.ServerImpl - Dropping event PlaySoundEvent for unavailable entity EntityRef{id=0}
01:35:46.234 [main] INFO  o.t.network.internal.ServerImpl - Dropping event PlaySoundEvent for unavailable entity EntityRef{id=0}
01:35:46.234 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 221, netId = 217, prefab = 'Core:defaultBlockParticles'}
01:35:46.243 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 223, netId = 220, prefab = 'Core:defaultBlockParticles'}
01:35:46.244 [main] INFO  o.t.network.internal.ServerImpl - Dropping event PlaySoundEvent for unavailable entity EntityRef{id=0}
01:35:46.244 [main] INFO  o.t.network.internal.ServerImpl - Dropping event PlaySoundEvent for unavailable entity EntityRef{id=0}
01:35:46.246 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 228, netId = 228, prefab = 'engine:blockItemBase'}
01:35:46.248 [main] INFO  o.t.network.internal.ServerImpl - Dropping event PlaySoundEvent for unavailable entity EntityRef{id=0}
01:35:46.248 [main] INFO  o.t.network.internal.ServerImpl - Dropping event PlaySoundEvent for unavailable entity EntityRef{id=0}
01:35:46.249 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 225, netId = 223, prefab = 'Core:defaultBlockParticles'}
01:35:46.252 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 227, netId = 226, prefab = 'Core:defaultBlockParticles'}
01:35:46.254 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 229, netId = 229, prefab = 'Core:defaultBlockParticles'}
01:35:46.261 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 231, netId = 232, prefab = 'Core:defaultBlockParticles'}
01:35:46.263 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 234, netId = 235, prefab = 'Core:defaultBlockParticles'}
01:35:46.266 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 232, netId = 233, prefab = 'Core:dustEffect'}
01:35:46.269 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 235, netId = 236, prefab = 'Core:dustEffect'}
01:35:46.272 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 237, netId = 238, prefab = 'Core:defaultBlockParticles'}
01:35:46.273 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 233, netId = 234}
01:35:46.276 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 238, netId = 239, prefab = 'Core:dustEffect'}
01:35:46.277 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 240, netId = 241, prefab = 'Core:defaultBlockParticles'}
01:35:46.523 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 241, netId = 242, prefab = 'Core:dustEffect'}
01:35:47.277 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 242, netId = 243, prefab = 'Core:defaultBlockParticles'}
01:35:47.277 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 236, netId = 237}
01:35:47.879 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 243, netId = 244, prefab = 'Core:dustEffect'}
01:35:48.443 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 9543, netId = 245, prefab = 'Core:defaultBlockParticles'}
01:35:49.059 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 9544, netId = 246, prefab = 'Core:dustEffect'}
01:35:49.925 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 239, netId = 240}
01:35:49.926 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 12904, netId = 248, prefab = 'Core:defaultBlockParticles'}
01:35:50.558 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 12905, netId = 249, prefab = 'Core:dustEffect'}
01:35:51.069 [main] INFO  o.t.network.internal.ServerImpl - Destroying entity: EntityRef{id = 12907, netId = 251, prefab = 'Core:defaultBlockParticles'}
01:35:51.349 [main] ERROR o.terasology.engine.TerasologyEngine - Uncaught exception, attempting clean game shutdown
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	at java.util.ArrayList.rangeCheck(ArrayList.java:653)
	at java.util.ArrayList.get(ArrayList.java:429)
	at org.terasology.particles.functions.generators.TextureOffsetGeneratorFunction.onEmission(TextureOffsetGeneratorFunction.java:36)
	at org.terasology.particles.functions.generators.TextureOffsetGeneratorFunction.onEmission(TextureOffsetGeneratorFunction.java:27)
	at org.terasology.particles.updating.ParticleUpdaterImpl.lambda$emitParticle$2(ParticleUpdaterImpl.java:192)
	at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684)
	at org.terasology.particles.updating.ParticleUpdaterImpl.emitParticle(ParticleUpdaterImpl.java:190)
	at org.terasology.particles.updating.ParticleUpdaterImpl.updateEmitter(ParticleUpdaterImpl.java:219)
	at org.terasology.particles.updating.ParticleUpdaterImpl.updateParticleSystem(ParticleUpdaterImpl.java:231)
	at org.terasology.particles.updating.ParticleUpdaterImpl.update(ParticleUpdaterImpl.java:100)
	at org.terasology.particles.ParticleSystemManagerImpl.update(ParticleSystemManagerImpl.java:118)
	at org.terasology.engine.modes.StateIngame.update(StateIngame.java:169)
	at org.terasology.engine.TerasologyEngine.tick(TerasologyEngine.java:429)
	at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:394)
	at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:370)
	at org.terasology.engine.Terasology.main(Terasology.java:153)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
01:35:51.352 [main] INFO  o.terasology.engine.TerasologyEngine - Shutting down Terasology...
01:35:51.377 [main] INFO  o.t.n.internal.NetworkSystemImpl - Network shutdown
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	at java.util.ArrayList.rangeCheck(ArrayList.java:653)
	at java.util.ArrayList.get(ArrayList.java:429)
	at org.terasology.particles.functions.generators.TextureOffsetGeneratorFunction.onEmission(TextureOffsetGeneratorFunction.java:36)
	at org.terasology.particles.functions.generators.TextureOffsetGeneratorFunction.onEmission(TextureOffsetGeneratorFunction.java:27)
	at org.terasology.particles.updating.ParticleUpdaterImpl.lambda$emitParticle$2(ParticleUpdaterImpl.java:192)
	at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684)
	at org.terasology.particles.updating.ParticleUpdaterImpl.emitParticle(ParticleUpdaterImpl.java:190)
	at org.terasology.particles.updating.ParticleUpdaterImpl.updateEmitter(ParticleUpdaterImpl.java:219)
	at org.terasology.particles.updating.ParticleUpdaterImpl.updateParticleSystem(ParticleUpdaterImpl.java:231)
	at org.terasology.particles.updating.ParticleUpdaterImpl.update(ParticleUpdaterImpl.java:100)
	at org.terasology.particles.ParticleSystemManagerImpl.update(ParticleSystemManagerImpl.java:118)
	at org.terasology.engine.modes.StateIngame.update(StateIngame.java:169)
	at org.terasology.engine.TerasologyEngine.tick(TerasologyEngine.java:429)
	at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:394)
	at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:370)
	at org.terasology.engine.Terasology.main(Terasology.java:153)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
For more details, see the log files in C:\Dev\Terasology\Git\Terasology\terasology-2ndclient\logs\2017-05-06_01-34-51

Process finished with exit code 0

GooeysQuests has particles appear when Gooey spawns, which is usually triggered by a player spawning. Player 1 was already in place with a Gooey there, which itself respawned once every 30 seconds or so (unsure of exact timing) causing particles each time.
Also noticing some minor quirks with the particles themselves (like the Gooey special particles seem to have a black background rather than transparency, and some blocks like torches get really weird particles) but those I expect could be ironed out more easily after merging this.

Hooray Jenkins reported success with all tests good!

Merged this after a crash fix! @MaxBorsch aims to get to the modules soon, so long as we do that before Alpha 8 is released we should be okay. Thanks for all your hard work! :-)
JoshariasSurvival does work in the meantime but will have no particle effects. Some other modules will not until fixed.


Add overview diagram

This adds an overview diagram to the main README and also cleans up the README just a bit.

@benmoss As, I was going over the workflow and trying to understand it, I pulled together a diagram of the k8s components and how things are generally wired together, and thought that it might be generally useful. Let me know if this needs any tweaks.

The color scheme of the svg is hard to read, maybe a different background color instead of blue

I'm not sure the what the svg is trying to communicate, it's kind of confusing in general

@spkane I had an opportunity to review this diagram and I have a few notes here

This "one big diagram" is a little challenging to parse out and glean important information quickly. I think there are two key things that we want to get answered in a diagram:

how does a buildkite job land on an agent -> a pod get scheduled that uses --acquire-job that picks up the job ID and then is cleaned up at completion
How is a job managed within the pod execution -> buildkite-agent binary copied by the init container, bootstrap called by the agent container, then work executed by the additional ones

A more advanced diagram showing the buildkite-agent communication in the pod across the shared mounted workspace might be a nice thing to add when talking about how the job execution is handled. This could include things like the responsibility for uploading the logs, reporting status, and uploading artifacts.

Bottom line, let's make a simple map from buildkite job scheduled in the queue to pod execution at the top level, then a more detailed pod execution diagram that shows how the communication happens further down in the document.

For example, in a diagram, I don't need to be concerned about all the "kubernetes"-ifying of the stack, yes it has a cluster role, service account, deployment, configmap, but to an end user this is a single component. They can look at the helm chart for the stack if they need to make customizations to the agent itself.


Cannot ssh until I changed container

I am not sure whether this issue belongs to uwsgi.it or to the web interface. However, I have no chance to try again now that things are working, so I cannot chek :)
Today I got an account with a container on uwsgi.it. Here is what I did:

from the web interface, I could see that the distro was ubuntu 15.04
from the web interface, I added an ssh key
I tried to login, but my key was rejected by the ssh server
I rebooted the container, but still no login
I set the distro to ubuntu 14.10, then back to 15.04, then clicked on "update & reboot"
then I could finally login

The docs say that you must set a container and an ssh key before login, so I suspect that the distro was simply not set, despite what was shown by the web GUI.

Hi, maybe it is better to open it for https://github.com/20tab/uwsgiit_console as it looks like a gui bug.

done: https://github.com/20tab/uwsgiit_console/issues/49


[RESOLVED] Interface eth0(): High error rate (>2 for 5m)

Problem started at 16:51:29 on 2023.07.20
Problem name: Interface eth0(): High error rate (>2 for 5m)
Host: S100-Primario
Severity: Warning
Operational data: errors in: 1, errors out: 0
Original problem ID: 32889
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23483&eventid=32889

Problem has been resolved in 3m 0s at 16:54:29 on 2023.07.20
Problem name: Interface eth0(): High error rate (>2 for 5m)
Host: S100-Primario
Severity: Warning
Original problem ID: 32889


Quantum redefinition through quantum control behaviour inconsistent depending on scope

TL;DR: Cannot redefine quantum variable under quantum control in a subroutine, but the quantum variable under quantum control can be redefined in the environment/scope it is defined in
Whilst I have a more complex scenario, the behaviour also occurs in this simple example. Here is a program that takes a variable (q) and based on quantum control, changes the value:
n := 3;

def main(){
    q := 1 :uint[n];
    p := H(0:B);
    if p {
        q = 3:uint[n];
    }
    measure(p);
    return q;
}

This is accepted in Silq and runs as expected (before measurement the state is 1/sqrt(2) * (|1>|0> + |3>|1>)). This is helpful for generating oracles as you can just tell Silq what value you want the variable to take based on classical variables and there is no need to explicitly define all the operations that need to take place for the new value.
In one of my programs, I want to avoid code duplication and would like to put the if statement into a function and replace the if statement in main with q := func(p, q). However, an error occurs when doing so:
def func(const p:B, q:uint[n]){
    if p {
        q = 3:uint[n];  // Error: cannot reassign quantum variable
    }
    return q;
}

I do not think this error should occur.

An assignment q = expr; is essentially syntax sugar for:
forget(q);
q := expr;

Here, forget has to automatically synthesize an uncomputation for q. This is possible in main because the value of q is known. However, it is impossible in func. It may even be the case that there is not any way to uncompute the parameter q.
However, your use case is of course a reasonable thing to want to do.
The underlying issue is that there is information that is tracked by the type system that currently does not have syntax to cross function boundaries. We should therefore add some additional annotations, e.g.:
def func(const p:𝔹, forgettable q:uint[n]){
    if p {
        q = 3:uint[n];
    }
    return q;
}

Ideally, this should be able to pass around all information that is currently tracked by the type checker so that Silq programs regain full modularity.

Thanks for the information around this. I was thinking shortly after I posted and I think you are right that the issue is that q is known in main, but not in func. This would be a good enhancement to add considering that Silq code wants to be concise.


Shuffle around stdsimd::arch::detect bits

Compile more code on more platforms, tweak imports, try to catch mistakes
sooner.

This is fixing this error which wasn't caught during x86/x86_64 builds. I'm hoping to build a maximal amount of code on all platforms to check as much as we can statically and then most of it just ends up being dead code that's eliminated.

It would be nice to triple-check that the cache is indeed eliminated on platforms that don't need it.

Also in which platforms is this code failing, and why isn't it failing in stdsimd's CI ?

Oh yeah this is for sure all jettisoned from libstd, and it's an issue with integrating into libstd rather than stdsimd itself. In libstd there's no top-level _std item, but rather more tweaks need to happen for reexported items in the stdsimd crate's ci to integrate well into libstd

but rather more tweaks need to happen for reexported items in the stdsimd crate's ci to integrate well into libstd

Ah crap, maybe I screwed it up last time I touched it. Could you add a comment to the top-level crates explaining a bit how things must be done to not break anything in libstd ?

Oh no worries, I've renamed the import of std to __do_not_use_this_import to discourage further use :)


fix upgrade utility - resolves #3041

Fixes #3041 by checking  for upgraded props during the upgrade sequence at cluster start when the properties were previously converted with the config-upgrade utility

includes minor check-style suggestion to factor common code in if statement path.

I was able to reproduce the bug in #3041 with the steps given on that ticket. Then tried the same steps again except substituted this branch and everything seemed to work fine.

A full set of ITs passed - FateIT needed to be rerun.


Add ci- prefix for kops-aws jobs

ref https://github.com/kubernetes/test-infra/pull/1209
Also fix the renamed garbagecollector job
@fejta @zmerlynn
btw does this configmap change require a deployment of SQ or it's automatic?

This change is

is this k8s-oncall not mapping to the right alias?

/lgtm

/lgtm
@krzyzacy: It has to be restarted to take effect.

I (oncall) am getting these notifications. I'm just way behind :)


Implement SCN(Yang22C)

Hello @ccatbbella  ! Thank you for your submission. As we near the end of the challenge, I am collecting participant info for the purpose of selecting and announcing winners. Please email me (or have one member of your team email me) at<EMAIL_ADDRESS>so I can share access to the voting form. In your email, please include:

your first and last name (as well as any other team members)
the title of the model you implemented
the domain of the model you implemented
your pull request number (#132)

Before July 13, make sure that your submission respects all Submission Requirements laid out on the challenge page. Any submission that fails to meet this criteria will be automatically disqualified.


router-perf to exclude non-200 responses for latency

Description
MB tool is failing to record the right delay(latency) for non-200 response and hence affecting the overall P99 and P90 latency value. The more non-200 response the worse P99 latency value(1657660884527 second) due to the issue, this fix will only include 200 response for latency calculation.
This is a temporary work around while we work on the new benchmark-operator.
Fixes

Were you also going to ship the no. of non-200 response codes to ES or do we already do it?

Looks like we already do it. Relevant code: https://github.com/cloud-bulldozer/e2e-benchmarking/blob/f3991ff2595f1571cc49f54598ee48c108da68b2/workloads/router-perf-v2/workload.py#L127


Several places set the hostname as the domain name, even when dns is disabled.

zookeeper, jenkins, and docker are all suppossed to set the hostname to the dns record when public_hostname() is empty.
Firstly, the else statement never executes, due to #5.
Secondly, even if it did, it would be wrong when dns is disabled.
Unfortunately, there's not a great way to detect that dns is enabled from within a template. The only way I know of is to set a new custom property toggle to let the jobs know if bosh dns is enabled.

Thanks @karlkfi, fixed at https://github.com/cf-platform-eng/mesos-boshrelease/commit/b8adfbe8a123709c6a208ddeefcb5ee66ad7b898. The release doesn't need to set the hostname anymore.


Nest.js mongoose schema resource error

Describe the issue
When I try to use the mongoose schema from the official Nest.js documentation Mongo with Mongoose as a resource for the Admin.js the error occurs and the Admin.js doesn't work.
The error:
UnhandledPromiseRejectionWarning: TypeError: Cannot read property '
paths' of undefined
    at Resource.properties (E:\web\trading\trade-auto-fly\backend\node_modules\@
adminjs\mongoose\src\resource.ts:60:55)

Installed libraries and their versions
   "@adminjs/express": "^5.0.0",
   "@adminjs/mongoose": "^3.0.0",
   "@adminjs/nestjs": "^5.0.1",
   "@nestjs/common": "^9.0.0",
   "@nestjs/core": "^9.0.0",
   "@nestjs/mongoose": "^9.2.0",
   "@nestjs/platform-express": "^9.0.0",
   "adminjs": "^6.2.3",
   "express-formidable": "^1.2.0",
   "express-session": "^1.17.3",
   "mongoose": "^6.6.1",
   "nestjs-admin": "^0.4.1",
   "reflect-metadata": "^0.1.13",
   "rimraf": "^3.0.2",
 },
 "devDependencies": {
   "@nestjs/cli": "^9.0.0",
   "@nestjs/config": "^2.2.0",
   "@nestjs/schematics": "^9.0.0",
   "@nestjs/testing": "^9.0.0",
   "@types/express": "^4.17.13",
   "ts-loader": "^9.2.3",
   "ts-node": "^10.0.0",
   "tsconfig-paths": "4.1.0",
   "typescript": "^4.7.4"
 },

To Reproduce
Steps to reproduce the behavior:

Install Nest.js (latest), install Mongo/mongoose, and all the required Admin.js packages.

Create a Nest.js Mongoose schema as it described in the official documentation Mongo with Mongoose

Import the Mongoose Schema and use it as a Resource in Admin.js

See the error

Expected behavior
Admin.js should work fine
Screenshots
creating the Nest.js schema and using it as a resource for Admin.js:

the Error:

The Nest.js Mongo documentation page:

AdminJSOptions with schema
AdminModule.createAdminAsync({
      useFactory: () => ({
        adminJsOptions: {
          rootPath: '/admin',
          resources: [OrderSchema],
        },
        auth: {
          authenticate,
          cookieName: 'adminjs',
          cookiePassword: 'secret',
        },
        sessionOptions: {
          resave: true,
          saveUninitialized: true,
          secret: 'secret',

        },
      }),
    }),

Desktop (please complete the following information if relevant):

OS: Windows 10
Browser: Chrome
Version: latest

Additional context
I'm wondering how to use the Nest.js mongoose implementation with the Admin.js. It looks like the Admin.js documentation is missing this chapter because the Entity way that is described in the Admin.js documentation can't be applied for the latest Nest.js mongoose approach.
Thanks for any help!

I don't really use Nest nor Mongoose much, but have you tried to pass Order instead of OrderSchema into resources? Unless @nestjs/mongoose schema is different than mongoose schema. Our current documentation (https://docs.adminjs.co/installation/adapters/mongoose) and demo app doesn't use @nestjs/mongoose

Hi @dziraf , thank you for your feedback. Yes, I tried to use the Order but it also doesn't work. Probably it's a bit different than the mongoose native stuff.
So, if I understand correctly, if I want to use the Admin.js with Nest.js I shouldn't use their mongoose package but rather use the native mongoose schema, etc. ?

I'm 99.9% certain that with native mongoose package and schema it will work. Still, if it doesn't work with @nestjs/mongoose that isn't good too. It's strange though as other @nestjs/package work fine. If it's possible can you prepare a repository where I can reproduce this so I can prepare a fix?

i had the same isssue, the conosle said: "cannot read property 'paths' of undefined"

@dziraf Hi, I've tried to create a single dedicated repo with the minimal amount of code that contains the issue, hope it helps.
If you need some help, please, let me know:
https://github.com/velidan/adminjs-nestjs-mongoose-issue
to reproduce an issue:

install node_modules
run the mongod (mongo server)
stand the nest.js app (yarn start:dev)
try to open the Admin.js page http://localhost:3000/admin

Kind regards!

Is there any fix for this?

Any fix for this?


Ignoring setitem method of class Params

https://github.com/kpe/py-params/blob/77d6f99f7eb4618ca098eeee9dbc633369735044/params/params.py#L27
The above statement works fine and doesn't raise an AttributeError.
For example,  the codes
class TestParams(Params):
    param_a = 'a'
    param_b = True
p = TestParams(param_c=10)
p.update(param_d=20)
print(p)

result in
{'param_a': 'a', 'param_b': True, 'param_c': 10, 'param_d': 20}.
So accessing parameters not defined as class level variable may be possible.
I think the reason is that when subclassing built-in dict,  __setitem __ override is ignored by the ___init __ and ___update __ methods of the built-in dict.
See the book  Fluent Python    (Subclassing Built-In Types Is Tricky  in   Chapter 12 Inheritance: For Good or For Worse ).
That book also suggests that "Instead of subclassing the built-ins, derive your classes from the collections module using UserDict, UserList, and UserString, which are designed to be easily extended". (Page 349)

@ZhuBaohe -- thank you very much for your observations. I'll take care soon.
This must have gone broken at some point along the way.


AttributeError: 'CTCTrainer' object has no attribute 'scaler'

Error while trying the regression model
C:\Users\XTEND\anaconda3\envs\ftorch_gpu\python.exe "C:/Program Files/JetBrains/PyCharm Community Edition 2022.3.2/plugins/python-ce/helpers/pydev/pydevd.py" --multiprocess --qt-support=auto --client <IP_ADDRESS> --port 63293 --file C:\Users\XTEND\PycharmProjects\Regression_Wav2vec\regression_model_train.py
Connected to pydev debugger (build 223.8617.48)
Dataset({
features: ['name', 'path', 'emotion'],
num_rows: 6925
})
Dataset({
features: ['name', 'path', 'emotion'],
num_rows: 1732
})
A regression problem with 3 items: [0, 1, 2]
C:\Users\XTEND\anaconda3\envs\ftorch_gpu\lib\site-packages\transformers\configuration_utils.py:380: UserWarning: Passing gradient_checkpointing to a config initialization is deprecated and will be removed in v5 Transformers. Using model.gradient_checkpointing_enable() instead, or if you are using the Trainer API, pass gradient_checkpointing=True in your TrainingArguments.
warnings.warn(
regression
Ignored unknown kwarg option normalize
Ignored unknown kwarg option normalize
Ignored unknown kwarg option normalize
Ignored unknown kwarg option normalize
The target sampling rate: 16000
Map: 100%|██████████| 100/100 [00:01<00:00, 60.78 examples/s]
Map: 100%|██████████| 100/100 [00:01<00:00, 56.42 examples/s]
Some weights of Wav2Vec2ForSpeechClassification were not initialized from the model checkpoint at lighteternal/wav2vec2-large-xlsr-53-greek and are newly initialized: ['classifier.out_proj.weight', 'classifier.out_proj.bias', 'classifier.dense.bias', 'classifier.dense.weight', 'wav2vec2.encoder.pos_conv_embed.conv.parametrizations.weight.original0', 'wav2vec2.encoder.pos_conv_embed.conv.parametrizations.weight.original1']
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.
0%|          | 0/60 [00:00<?, ?it/s]C:\Users\XTEND\anaconda3\envs\ftorch_gpu\lib\site-packages\torch\amp\autocast_mode.py:250: UserWarning: User provided device_type of 'cuda', but CUDA is not available. Disabling
warnings.warn(
C:\Users\XTEND\anaconda3\envs\ftorch_gpu\lib\site-packages\torch\utils\checkpoint.py:429: UserWarning: torch.utils.checkpoint: please pass in use_reentrant=True or use_reentrant=False explicitly. The default value of use_reentrant will be updated to be False in the future. To maintain current behavior, pass use_reentrant=True. It is recommended that you use use_reentrant=False. Refer to docs for more details on the differences between the two variants.
warnings.warn(
Traceback (most recent call last):
File "C:\Users\XTEND\anaconda3\envs\ftorch_gpu\lib\contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "C:\Users\XTEND\anaconda3\envs\ftorch_gpu\lib\site-packages\accelerate\accelerator.py", line 988, in accumulate
yield
File "C:\Users\XTEND\anaconda3\envs\ftorch_gpu\lib\site-packages\transformers\trainer.py", line 1892, in _inner_training_loop
tr_loss_step = self.training_step(model, inputs)
File "C:\Users\XTEND\PycharmProjects\Regression_Wav2vec\regression_model_train.py", line 456, in training_step
self.scaler.scale(loss).backward()
AttributeError: 'CTCTrainer' object has no attribute 'scaler'
python-BaseException
0%|          | 0/60 [00:18<?, ?it/s]
Process finished with exit code -1073741510 (0xC000013A: interrupted by Ctrl+C)

trainer = CTCTrainer(
    model=model,
    data_collator=data_collator,
    args=training_args,
    compute_metrics=compute_metrics,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    tokenizer=processor.feature_extractor,
)

In the above code replace CTCTrainer with PyTorch trainer class Trainer. This tutorial is outdated due to newer versions of acclerate and transformers.


Integrating TokenVariants module's pop-up window

Adding buttons to bring up TokenVariants pop-up window as another means of image selection.
User request: https://github.com/Aedif/TokenVariants/issues/9

Thanks!


8 tests fail in my environment

Haven't run the test suite in a long time. When I do, 8 tests fail. They all seem related to the CI package; perhaps those tests require some online server credentials I don't have? I'm testing in Ubuntu with Python 2, both in a virtualenv and a known-working environment. I tested with b9b2559, a recent version right before some changes I made.
Full transcript attached, the tests that fail are:
ERROR: test_is_merged_to_master (openaddr.tests.ci.TestBatch)
ERROR: test_download_palmbeach (openaddr.tests.cache.TestCacheEsriDownload)
ERROR: test_webhook_badjson_content (openaddr.tests.ci.TestHook)
ERROR: test_webhook_one_master_commit (openaddr.tests.ci.TestHook)
ERROR: test_webhook_two_branch_commits (openaddr.tests.ci.TestHook)
ERROR: test_webhook_two_master_commits_early_fail (openaddr.tests.ci.TestHook)
ERROR: test_webhook_two_master_commits_late_fail (openaddr.tests.ci.TestHook)
ERROR: test_iterate_local_processed_files (openaddr.tests.TestPackage)

(A secondary problem is that there's warning and error logspam even when the tests pass, which makes the test output hard to follow. When I was actively working on the test suite I was doing my best to make sure that the test path never logged above info level, but maybe that's a mistake. Perhaps we should configure the test runner to simply print no logging messages at all.)

derp, wrong repo. sorry.


Type Error Main.js line 119 and 139

Please only submit reproducible issues.
If you're not sure if it's a real bug or if it's just you, please open a topic on the forum: https://forum.magicmirror.builders/category/15/bug-hunt
Problems installing or configuring your MagicMirror? Check out: https://forum.magicmirror.builders/category/10/troubleshooting
When submitting a new issue, please supply the following information:
Platform: Raspberry Pi 3B
Node Version: Not sure
MagicMirror Version: Not sure
Description:  When launching the magic mirror via nom start dev. In the console I just keep getting the following error
Type ErrorL Cannot read properly
'get ellementbyclassname' of null
Main.js LINE 139 and 119
what is this?

some module is returning NULL from its getDom()  function.. the full statcktrace should show the failing module

can you explain how to " show the full stacktrace" so I can pin this down? im very new, thank you for your help.

if you open the developers window, ctrl-shift-i, or start MM with npm start dev, then select the console tab... you should find the error there..

Hmm, that's where i saw the original error message..in the console LOL. I'll look again and see ifI can find out any more info.
I'm actually looking for a reason my motion detector module keeps turning off after 10-15 min. Is there anything you can think of that would cause the Raspberry pi/electron/magic mirror to make a module like mmm-motiondetecor to turn off my webcam after 10-15 min of working normally?

looking thru the diff cam engine code and the motion detector project I don't see any place where the camera is turned off. i use a web cam too.. but use the motion project  for camera mgmt...

This is why it is so strange.... the developer of that module also said that his module does not control the camera.
I can’t understand why mine keeps turning off after 10-15 min. The camera is still working as it is powered on and the microphone still is active for hotword/assistant.
When magic mirror first launches, it works very well and is active with a red light to indicate capturing video.... and reacts to motions... but after it deactivated the monitor... and I wait 10-15 min the red light turns off and the camera no longer turns the monitor on or off.
I’m pulling my hair out( what’s left of it)
Sent from my iPhone

On Apr 26, 2019, at 2:28 PM, sam detweiler<EMAIL_ADDRESS>wrote:
looking thru the diff cam engine code and the motion detector project I don't see any place where the camera is turned off. i use a web cam too.. but use the motion project for camera mgmt...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@dxfan227 do you might have a screensaver activated. what happens if zou move the mouse after it is not reacting anymore?

Thanks for the reply. So when I move the mouse nothing happens... the machine required me to manually send the activate monitor command in order for the screen to turn back on as the module turned off and then the camera turned itself off.
I ended up installing a different module called motion-detection..... this one works and does not time out or anything.
In the end it works out but I still wish I knew what was wrong befor

Please refer to http://forum.magicmirror.builders for support and troubleshooting.
I'm closing this issue for now. If you feel this issue should remain open, please let me know.


PREFIX can't be set in Makefile.conf

In Makefile the PREFIX variable is used before Makefile.conf is included this means the PREFIX can't be properly set in Makefile.conf.

closed with #1057