fix: Revert back to previous bf-generate for 1.3

Description
The updated version of bf-generate has some bugs that we don't want to ship in this 1.3 patch update.
Task Item
#minor
Screenshots
N/A

@boydc2014 @cwhitten I would be good to have this as part of the 1.3 patch today so we don't regress form dialogs.

@boydc2014 @cwhitten I would be good to have this as part of the 1.3 patch today so we don't regress form dialogs.

I'm retargeting this into main, and merge everything we need to main, then take the latest main to 1.3patch.

I'm retargeting this into main, and merge everything we need to main, then take the latest main to 1.3patch.

Coverage remained the same at 54.901% when pulling 7fad0f513fd1133a871f788e59c553f9dd9dfaba on gcox/rollback-bf-generate-upgrade into c7a932266b4be0a099a1cedd70573d4334927d43 on main.

Coverage remained the same at 54.901% when pulling 7fad0f513fd1133a871f788e59c553f9dd9dfaba on gcox/rollback-bf-generate-upgrade into c7a932266b4be0a099a1cedd70573d4334927d43 on main.

I'll do a rollback of the change that we don't want in 1.3 instead.

I'll do a rollback of the change that we don't want in 1.3 instead.


[WIP] Add DSL definition for IDEA

The main lacking feature is support of fields definitions in messages. Working on it.

Hey @roman-mazur!
Cannot find ticket WIP in JIRA

cc @Burbaka


syscall: cannot use syscall.NewCallback for procs that run on new threads

This is basically a duplicate of the frozen issue #9240
It is not possible to call Win32 API functions that spawn new threads because the callback wrapper generated by syscall.NewCallback does not perform the needed steps to set up the call stack as needed by the Go runtime for a new thread unless "C" is imported.
Attempting to call such functions will cause the new thread to hang forever.
This can be easily reproduced with the following simple test program:
package main

import (
    //"C" // Uncomment this and it works
    "fmt"
    "syscall"
)

func ThreadProc(p uintptr) uintptr {
    fmt.Println("FOO")
    return 0
}

func main() {
    modkernel32 := syscall.MustLoadDLL("kernel32.dll")
    procCreateThread := modkernel32.MustFindProc("CreateThread")
    r1, _, _ := procCreateThread.Call(0, 0, syscall.NewCallback(ThreadProc), 0, 0, 0)
    h := syscall.Handle(r1)
    syscall.WaitForSingleObject(h, syscall.INFINITE)
    syscall.CloseHandle(h)
}```

I'm re-raising this as we burned may hours over the past few days identifying why Windows callbacks weren't working, which turned out to be this issue.

At the very least ```syscall.NewCallback(..)``` should have a warning about this issue, but ideally we should fix this.

@rsc suggestion of always enabling "C" under Windows seems reasonable, if its an option.

#9240 was closed as a dup of #6751, which is still open. Is this not a dup of #6751 as well?

Sorry yes it Is I read, #9240 and the last thing was "gopherbot added the FrozenDueToAge label on Jun 25 2016" so I assumed it has been frozen without resolution, which is not the case. I'll add the repoduction case and info to #6751.


Prepare community day talk: Demo of the MVP for the new Dataverse Single Page Application

Overview of the Feature Request
Create and prepare the resources necessary for the community talk: Demo of the MVP for the new Dataverse Single Page Application
What inspired the request?

Dataverse community day

What kind of user is the feature intended for?

Dataverse community day attendees

What existing behavior do you want changed?
N/A
Any brand new behavior do you want to add to Dataverse?
N/A
Any open or closed issues related to this feature request?
N/A

Guillermo will coordinate a meeting with the contributors to discuss and finalize the demo components and strategy.


[K-Nearest Neighbors] evaluation problem.

I trained with this command
[K-Nearest Neighbors]

Using Map prior:

python nn_train_test.py --train_features /media/han/E46A4C3C6A4C0E2C/hsi_ws/argoverse-forecasting/forecasting_features/forecasting_features_train.pkl --val_features /media/han/E46A4C3C6A4C0E2C/hsi_ws/argoverse-forecasting/forecasting_features/forecasting_features_val.pkl --test_features /media/han/E46A4C3C6A4C0E2C/hsi_ws/argoverse-forecasting/forecasting_features/forecasting_features_test.pkl --use_map --use_delta --obs_len 20 --pred_len 30 --n_neigh 3 --model_path /media/han/E46A4C3C6A4C0E2C/hsi_ws/argoverse-forecasting/model_path/knn_model_map.pkl --traj_save_path /media/han/E46A4C3C6A4C0E2C/hsi_ws/argoverse-forecasting/forecasted_trajectories/knn_map.pkl
and then I was trying Evaluating a K-NN baseline that can use map for pruning and allowing 6 guesses
with below command.
python eval_forecasting_helper.py --metrics --gt /media/han/E46A4C3C6A4C0E2C/hsi_ws/argoverse-forecasting/ground_truth_data/ground_truth_val.pkl --forecast /media/han/E46A4C3C6A4C0E2C/hsi_ws/argoverse-forecasting/forecasted_trajectories/knn_map.pkl --horizon 30 --obs_len 20 --features /media/han/E46A4C3C6A4C0E2C/hsi_ws/argoverse-forecasting/forecasting_features/forecasting_features_val.pkl --prune_n_guesses 6

then I got this error.
Would you help me?

may i know where did you find the ground truth pkl? thanks

may i know where did you find the ground truth pkl? thanks

@SHITIANYU-hue
https://github.com/jagjeet-singh/argoverse-forecasting/issues/8
I used code in this issue.


Add the content length to WSGI input reading

This is required to stop the input from being indefinitely read, and
thereby blocking the response

@lloesche  please review

@woegjiub thank you!
LGTM


adding token='cache' use after token='browser' in doc

Fair enough.
I thought I had already done this, but apparently only in the docstring.

Thanks @rsignell-usgs !


provide download link for configuration.json in final configuration generation step

Currently, the wizard created a configuration json file and sends it to the configuration api to generate the osmose_config.zip . If something goes wrong in the osmose_config.zip, it takes some technical skills to retrieve the provided configuration json.
Suggest to provide a download link for the generated configuration json that is used to send to the configuration api. This way, Arnaud, or any other user, can easily check what the wizard generated for the configuration api to consume.

@FIN-casey @FIN-JBarile this is a suggestion for a UI features that would help debugging easier. Which label would you like to use for this?

@jhpoelen @agruss2 , I implemented the addition of download link for the generated configuration JSON, when the call doesn't return the osmose_config.zip.
The text for the download link is "Click here to download the configuration JSON".
Please check so that we can close the issue.

@jhpoelen I think that this issue can now be closed; please close it if you feel the same. Otherwise, please let Casey know if something else should be done here. Thanks a lot.


Keycloak vcauthn login

New class which replaces micronauts default class if keycloak is being used.
New class is identical except for presentationRequestConfigurationId member and loading of that value into the parameters of the redirect request.
Requires micronaut.security.oauth2.clients.keycloak.vcauthn.pres_req_conf_id to be set to non-null value other application will not start. Is there a safe way to load this with a default. The ideal behaviour is that keycloak would be able to log in in any way but using the exact vc-authn service that handles the VC Verification would not work without the proper value set.
Looking for input, could possibly configure a more generic query parameter injection.

screenshots of local environment using cloud hosted keycloak to authenticate with BPA (via BCGov vc-authn service).


is it possible to open and read PDF report using pywinauto?

Hi,
I would like to open a  report generated in PDF format and then read the data using pywinauto.  Do I need to import any library for this?
Thanks
Smita

Technically it's possible to use pywinauto to open PDF with Adobe Reader etc etc.
But I would recommend reading the PDF file directly using appropriate library: https://github.com/pmaupin/pdfrw

thanks vasily !!.  I will read and try.
while working I found that I have some custom controls, table controls and pane control.  Is there any way that I can work with all these controls?
Smita

It depends how these controls are implemented. Standard table controls are supported in UIA backend. But usually they are visible as Pane. If such a control has NativeWindowHandle property in Inspect.exe, it's possible to monitor window messages handled by this control in Spy++. These window messages can be used to implement custom wrapper (generally it would look like standard wrappers for "win32" backend).

In other words it's kind of reverse engineering if source code of these controls is not available. In the worst case authors of the custom controls could implement such window message handlers on app side to improve its test-ability. But this is mostly communication or management problem if anyone considers it as a problem of course.

Hi Vasily,Thanks for reply.  Is this standard table control supports rows and columns?  I have few dialogs with table controls but haven't got success  with these rows and columns and test it.I am really confused with pane controller which is a custom control and there are many objects/elements inside this control which are not getting recognized.  Is there any example of this which I can see to understand more of this control.
Sorry, I am not a hard core developer.  I am a QA person who is trying to work on this tool.
Smita
On Tuesday, August 7, 2018, 11:45:32 AM EDT, Vasily Ryabov<EMAIL_ADDRESS>wrote:

In other words it's kind of reverse engineering if source code of these controls is not available. In the worst case authors of the custom controls could implement such window message handlers on app side to improve its test-ability. But this is mostly communication or management problem if anyone considers it as a problem of course.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

If all these tables are shown as Panes, this is pain. :)
What is a ClassName property values for these controls? Maybe some children class names are also important.


Quadratic behavior when filtering long lines

I have a problem with slow filtering performance in Selectrum when using consult-grep with many candidates (~5k). When I enter some filter string #grep-regexp#filter-str, the Selectrum filtering is only using the filter-str. For some reason the filtering is very slow, while for many more candidates (~50k) the filtering in Selectrum is still reasonably fast when using a non-async function. So it seems there is some problematic interaction going on between Consult and Selectrum. On the side of Consult I make sure that I call selectrum-exhibit only every 0.25s, which should not be too often. I am not observing this issue with Icomplete despite using an icomplete-compute-delay of 0. I believe that this issue is fixable given that Selectrum usually copes well with 50k candidates. When doing some profiling I found that most of the time is spend in the orderless-filter function called from selectrum--update. When I am using another completion style like substring, the performance effect is less pronounced since substring is a faster filter than orderless, but it is still much slower than when using a non-async Consult function.

Okay, I think I know what the issue is, it is not related to Consult async. The problem is that in my test cases there were very long lines found via grep. I already had some quadratic behavior in Consult (https://github.com/minad/consult/commit/951a03a1d541064121b417269ce80dad281cca07), which I removed. But it seems that there is still quadratic behavior for long lines somewhere else, either in Selectrum or Orderless. This is the performance issue I am seeing here. For now I added some mitigation in Consult which severely restricts the line length of the found candidates (https://github.com/minad/consult/commit/94cd0fbc1a6d27cf464820cfb71660827e5a2167). It would be a bit better if such a truncation could be avoided.

Another minor issue - it seems that selectrum--update-window-height is slow. When I tested without orderless, but only with the substring completion-style, the function appears prominently in the profile. The problem seems to be the function line-pixel-height introduced in #424, #432, 6a63e08e5fee060c4704d13d08fde1acfc547c6c.

Not the first time that long lines cause problems in Emacs :roll_eyes:. Thanks for spotting the problem with line-pixel-height I will calculate it once in setup hook then.

Thanks, I wonder why some of these Emacs primitives are slow. I would certainly not have expected that line-pixel-height is slow. Computing it in the setup hook or caching is a good solution, I was just about to propose the same :)

Probably pixel calculation is a hard problem when emulating a 1980s Symbolics Lisp Machine emulating an old-fashioned Motif-style Xt toolkit emulating a 1970s text terminal emulating a 1960s teletype :laughing:
--

Okay, after doing more checking: I had set completion-styles to substring+orderless, therefore I didn't observe the problem in Icomplete. This is actually some misconfiguration on my side since I am setting the selectrum refine/highlight functions to orderless. So for the quadratic (or worse) behavior on long lines, Orderless seems to be the culprit (cc @oantolin). Have you already observed such issues with Orderless already? Probably it has something to do with how initialisms etc are compiled. Selectrum only has this line-pixel-height issue, which should be fixed.

It certainly sounds like initialisms might be a problem on long lines, for example (orderless-initialism "abc") is the regexp \(?:\(\<a\).*\(\<b\).*\(\<c\)\). I bet for initialisms non-greedy matching is better: if any b-word has a c-word after it, then certainly the first b-word does.
I'll try to scrounge up a good test case with long lines, but in the meantime, maybe you can try on the same test case you've been using with the non-greedy variant of initialisms:
(defun orderless-initialism (component)
  "Match a component as an initialism.
This means the characters in COMPONENT must occur in the
candidate, in that order, at the beginning of words."
  (orderless--separated-by '(*? nonl)
   (cl-loop for char across component collect `(seq word-start ,char))))

The non greedy variant does not change anything. I am still observing a huge slowdown for large lines. I am working around this issue by truncating lines in consult--grep-matches now.

Yeah, I don't know what I was thinking. The non-greedy variant might find a match a little faster, but it should take just as long to fail as the greedy variant, and most matches fail.

Is it definitely initialisms? For example, is literal matching fast?

I didn't check carefully until now. I also don't have a proper test case as you may infer from my confusion when I initially opened the issue. If I use literal matching by adding a = there seems to be no slowdown. You can test it by setting consult-grep-max-columns to a large value and executing it in a directory with files with very long lines (10k columns...).

If I use literal matching by adding a = there seems to be no slowdown.

I was afraid you'd say that. I think it means that the problem is the regexps that initialisms compile to, that have lots of .*.
It might speed things up if instead of compiling the initialism abc to the single regexp \<a.*\<b.*\<c (ignoring grouping), I compiled it instead to the list of regexps, \<a, \<b, \<c, \<a.*\<b.*\<c. That way the slow one with .* would be tested against fewer candidates. I'll find some long lines and test that. (It'll require changing types: currently matching styles are functions String -> Regexp, I'll have to make them String -> Either Regexp [Regexp]; like hooks which are either single functions or lists of functions).


[Bug] Temporal services are not starting when deployed in istio enabled namespace

What are you really trying to do?
I am running temporal with ISTIO enabled namespace as we are using istio mesh.

Describe the bug
Temporal run schema setup job before deploying temporal cluster, and expect that these startup job should be successful executed, but in istio enabled namespace istio run as sidecar due to which these job not terminate successfully and deployment get stuck in between.

Minimal Reproduction
Install istio and enable istio-injection="enabled" for temporal namespace.

Environment/Versions

OS and processor: EKS managed cluster
Temporal Version: latest master branch
Are you using Docker or Kubernetes or building Temporal from source?
No, I am installing using helm-chart

Additional context

Related to #373


Add verify ed25519 and evm signatures to old bindings

Description of change
Adds VerifyEd25519Signature and VerifyEvmSignature methods to old account bindings.
Links to any relevant issues

#535

Type of change
Choose a type of change, and delete any options that are not relevant.

Enhancement (a non-breaking change which adds functionality)

Dang it, my merge commit message got borked by my IDE 🤦♀


Usage examples for HashMap.lean

Currently the HashMap docs have no code examples. We should have examples similar to those from Std.Data.List.Basic:
/--
Split a list at every occurrence of a separator element. The separators are not in the result.
```
[1, 1, 2, 3, 2, 4, 4].splitOn 2 = [[1, 1], [3], [4, 4]]
```
-/
@[inline] def splitOn [BEq α] (a : α) (as : List α) : List (List α) := as.splitOnP (· == a)

@digama0 are there other files needing examples or general documentation?

Most of them are in lean core: Init.Data.List.BasicAux, Init.Data.List.Control, Init.Data.Fin.Basic, Init.Data.String.Basic, Init.Data.Array.Basic all contain many functions which should have documentation at around the same level as Init.Data.List.Basic or Std.Data.List.Basic. Std has had mandatory documentation from the beginning so it's not hurting quite as much for docs.


Build & publish Docker images for arm64 architecture

Is your feature request related to a problem? Please describe.
Currently, Docker images for argocd-image-updater are only built & published for amd64 architecture. People might want to run on arm64 architectures.
Describe the solution you'd like
We should build & provide official Docker images for arm64 architecture.

Might be of some use: https://github.com/argoproj/argo-cd/pull/3554#issuecomment-784145537


Enable re execution of failed one way messages

Currently when a one way message fails it is simply thrown away, to allow more efficient use of many cross chain protocols we need to guarantee the execution of these messages, so no data is lost.

The issue with this is that there is a potential for many non executable messages are stored. If used with a protocol that increases cost per storage unit we might need a pruning functionality. But no such protocol is planned for integration that i know off.

Another issue is that payloads can be stored that should be removed.
Example a borrow or a bid that was supposed to only be relevant at a time and not in the future. Having it stored indefinitely can cause unexpected attack vectors to  current xCall dapp designs. So lets hold off on a change like this.


Support for Windows

Please provide tokml.bat file that will do the job on Windows.

My bad, haven't seen this already exists.
Closing.


fypp syntax highlighting support

Would it be possible to add support for fypp (https://fypp.readthedocs.io/en/stable/fypp.html)?
I imagine two modes, one where fypp directives (lines beginning with #, $ or @) are highlighted as comments, and a second mode which would add coloring also to the preprocessor directives. Which mode to use could be set in a JSON settings file of the package.
As a side note, what are the advantages/differences of this package compared to the older https://packagecontrol.io/packages/Fortran? I've been using the previous one, but after re-installing Sublime thought I'd give this package a go instead.
Also perhaps of interest, @cdslaborg has published a list of Fortran keywords in response to a thread at Fortran Discourse. These can be useful to cross-check for syntax highlighting.

Thanks for opening the issue!
I haven't used fypp myself, but it seems like it will be relatively straight-forward to add support for it. I will look into it soon. Pull requests are also welcome, if you instead want to try adding support yourself.
The main difference between this package and the older one is that this package has improved highlighting for features introduced in modern Fortran standards (especially 03, 08, 18). The older package also includes support for fixed-format Fortran, which is not specifically supported in this package (yet).
Thanks for the keywords link. I will check whether we have missed some keywords in the syntax.

Since fypp is essentially just a Python module, it's easy to drop it directly into the Sublime packages folder. Together with a Sublime build script, it makes it very easier to generate generic Fortran code directly from Sublime. An advanced example of using fyppy is the generic tensor contraction.
Are there any good resources I can follow on Sublime syntax highlighting? I've never used or written a regex before.
I imagine I'd start with something similar to
  fppCommands: (define|undef|ifdef|ifndef|if|elif|else|endif|include|error|warning|line-number|line)

and the block:
  preprocessing:
    - match: '(?i){{firstOnLine}}(\#{{fppCommands}})'
      captures:
        1: keyword.control.directive.fortran

Thanks for developing this package.

Yes, I've used these two extensively (for syntax and for selecting scopes):
https://www.sublimetext.com/docs/syntax.html
https://www.sublimetext.com/docs/scope_naming.html
What scopes to use is sometimes conventional, so it might also be useful to check out some other syntaxes that are included with Sublime - see https://github.com/sublimehq/Packages.
I've also found it useful to use https://regex101.com/ to test out the regex on some examples. Would also recommend using  PackageDev (https://github.com/SublimeText/PackageDev), which provides highlighting of the syntax code.

Slowly, I'm getting a hang of this:
%YAML 1.2
---
name: fypp
file_extensions: [fypp]
scope: source.fypp

variables:
  firstOnLine: '^\s*'
  fyppDirectives: (set|del|if|elif|else|endif|for|endfor|def|enddef|block|endblock|call|endcall|global|include|mute|endmute|stop|assert)
  fyppPredefinedFunctions: (defined|getvar|setvar|delvar|globalvar)

contexts:
  main:
    - include: fypp_comments
    - include: fypp_preproc

  fypp_comments:
    - match: '#!(?![$])'
      scope: punctuation.definition.comment.fypp
      push:
      - meta_scope: comment.line.fypp
      - match: \n
        pop: true

  fypp_preproc:
    - match: '(?i){{firstOnLine}}(\#:\s*{{fyppDirectives}})'
      captures:
        1: keyword.control.directive.fortran

Great!
I prefer if fypp is added similarly as fpp, i.e., that the fypp syntax is incorporated into the modern-fortran syntax. If you want I can incorporate your code into a branch based on the modern-fortran syntax (as a starting point). Let me know.


feat: add echo support

closes #5
adds support to the echo web framework

While we are at it, maybe we can also include the echo middleware as well?
 // Middleware
  e.Use(middleware.Logger())


Fix docs & sanity check Scala version coherence

The new sbt-scalafix 0.9.18 release includes a
scalafixScalaBinaryVersion key that can be used to run, for instance,
the Scalafix for Scala 2.13 when running against sources compiled with
2.13.
Add those instructions to the README.  The nice thing is this new
version and setting can be used the releases scala-rewrites 0.1.0.
But also add a sanity check to ExplicitNonNullaryApply (continuing to
copy from Scalafix's ExplicitResultTypes), with some fixing tips.  This
is what it looks like on a test project:
[error] (scalafixAll) scalafix.sbt.InvalidArgument: Scala version mismatch:
(1) the target sources were compiled with Scala 2.13.2; (2) Scalafix is
running on Scala 2.12.11. To fix make scalafixScalaBinaryVersion == 2.13.
Try `ThisBuild / scalafixScalaBinaryVersion :=
CrossVersion.binaryScalaVersion(scalaVersion.value)`.

Also switch the docs to scalafixAll, and prep for a 0.1.1 release.
Fixes #43

Nice README! Also, that shows that scalafix-core should provide some plumbing so that advanced rules authors don't need to replicate what ExplicitResultTypes does.

https://github.com/scalacenter/scalafix/issues/1199


Added Steam User Rating on game details page (fixed css prettify)

LGTM

can close because of #419


Add support for retry condition in retry effect

If I am not missing some information about the awesome retry effect, It would be nice to have it work with conditions.
A use case would be if I do not want to retry on a certain errors status.
My suggestion is to add a callback with the error object, as one of the argument in the retry function
retry(maxTries, delay, condition, fn, ...args)

const condition = (error)=> !error.response.status === 503
const response = yield retry(3, 1000 * 10, condition, request, data)

We could consider it, but unfortunately the proposed API would be a breaking change right now.

I'd also like tho see this feature implemented, there are some valid use cases for controlling when the retry effect should retry.

This should be part of the API

@neurosnap @Andarist I would like to contribute to this issue if there are still plans to add this feature.
One way I am thinking to solve this is via adding the error condition in q10 function of packages/core/src/internal/sagaHelpers/retry.js file. Let me know if this is the right approach?
PS: This is going to be my first open-source contribution, so I am not much aware of the processes involved and where to discuss this. Any help would be really appreciated :)


clash-verge-rev: Fix shotcuts name and uninstall script

The shortcuts name was wrong. Also, the services must be uninstalled, or it will prevent to remove related files.
Relates to https://github.com/ScoopInstaller/Extras/pull/14460#issuecomment-2510626853
Closes #14495
Closes #14500

[X] I have read the Contributing Guide.

/verify

Oops, my bad. I forget to send this comment.
Thank you!

Authou has removed portable version since v2.x, so the config path is C:\Users\YOU\AppData\Roaming\io.github.clash-verge-rev.clash-verge-rev now without any config, while old portable-version users have their config in %SCOOP%\persist\clash-verge-rev\.config\io.github.clash-verge-rev.clash-verge-rev.
Should we still make a symbollink to get the config files under scoop dirctory?

Author has removed portable version since v2.x, so the config path is C:\Users\YOU\AppData\Roaming\io.github.clash-verge-rev.clash-verge-rev now without any config, while old portable-version users have their config in %SCOOP%\persist\clash-verge-rev\.config\io.github.clash-verge-rev.clash-verge-rev. Should we still make a symbollink to get the config files under scoop dirctory?

But the author still retains the detection of the "PORTABLE" flag. Please refer to the file "clash-verge-rev/src-tauri/src/utils/dirs.rs", the original approach of using "$persist_dir\.config" is still valid.


Disable archaic plugins on from the plugins server

I've done a quick sweep of plugins in the Plugin List, and I think these should be disabled/not available for download:

[ ] Salling Clicker - control your Mac/PC with a Sony Ericsson, lol
[x] Clutter Artwork - http://sofa.ambitiouslemon.com/ server no longer exists)
[ ] Backpack Module - Backpack has been retired
[ ] AcidSearch Queries - seems to be a thing of the past
[ ] Cube Interface - this used to be a funky interface. Tabbing to the 2nd pane seems to crash QS now though.
[ ] Pushdialer - the app no longer exists

There may be more, but this is a start. I'd disable them myself, but I no longer have access @skurfer
I'd suggest disabling them by setting the MAX OS X version number to something like 10.12

So most of the above plugins already have their max OS version set to 10400. But it seems there's an underlying bug here with the update server here. The server is still providing these plugins, even though the max OS version string is set. Need to debug the server code further

OK, I got this working. From the logs, I noted that most QS user agent strings are as follows:
Quicksilver/4026 (Macintosh; Intel Mac OS X 10_16_0; en-us)
However, the code on the server was checking for /.*macOS (\d{1,})_(\d{1,})_(\d{1,}).*/.
Adding another check for /.*OS X (\d{1,})_(\d{1,})_(\d{1,}).*/ fixed this issue.

Found another bug in the server:
If I update the latest version of a plugin in the system to have e.g. maxOSVersion = 100900, (10.9.0), then the plugin system will just serve up an earlier version of the plugin that doesn't have a maxOSVersion set.
To solve this problem, you have to go through each version of the plugin on the server, and change its maxOSVersion


Added Haskell course titled Zor Yoldan Haskell

What does this PR do?
Add resource(s) | Remove resource(s) | Add info | Improve repo
Added Haskell course titled Zor Yoldan Haskell in Turkish free books
For resources
Description
Why is this valuable (or not)?
How do we know it's really free?
It's a github repo;
https://github.com/joom/zor-yoldan-haskell
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Thanks, and welcome to free-programming-books!


[protocol] wlr_export_dmabuf_v1 bindings added.

Merging this will help with vulkan renderer screenshots if I'm not mistaken.

Thanks!

Apologies for the tab inconsistency error. I tried to fix it but I guess it's something to do with my editor.


Pb doc 3

Problem Summary:
tikv/sig-transaction#25 : More documentation added within tikv/src/storage at module level, type and function level as part of sig-transaction documentation quest.
What's Changed:
Comments added to a couple of source files in src/storage
Tests

No code

Side effects

None

Tagging @nrc for visibility and review. If other developers feel these kind of comments are useful, I'll continue working along the same lines some more.

LGTM

/merge


The bool parameter now automatically creates on/off options. Reopen.

When a bool parameter is encountered the on/off options should be created automatically as per documentation.
This should solve the second part of issue https://github.com/mavlink/MAVSDK/issues/2046.
And is a reopen of #2056 PR which got automatically closed.

Rebased and force pushed.


Make Scratch Org creation manually executable

Suggestion by Marcel in Developer Meeting Q4.
I didn't test this.

This function is already available via the workflow "user:scratch-org:display/create [feature]". Somehow it seems not to be possible to use "create" and "workflow_dispatch" together.


GH-536: Upgrade to log4j 2.22.1

Thanks - I'll also check if some shaded classes need to be updated.

@grgrzybek I checked the classes already, but yeah four eyes validation is better :) I will move forward with the release.


Need allow_empty=True for glob with Bazel 8

In Bazel 8, glob's default allow_empty is False. This broke my build because some of the local_cuda's globs were empty. I manually fixed it in my local repo in two spots.
# local_cuda BUILD

filegroup(
    name = "compiler_deps",
    srcs = [
        ":_cuda_header_files",
    ] + glob([
        "cuda/version.txt",
        "cuda/version.json",
        "cuda/bin/**",
        "cuda/lib64/**",
        "cuda/nvvm/**",
    ], allow_empty=True),
)

...

cc_library(
    name = "cupti_headers",
    hdrs = glob(["cuda/extras/CUPTI/include/*.h"], allow_empty=True),
    includes = ["cuda/extras/CUPTI/include"],
)

Are you using an old release?

Ah, yes I assumed the version mentioned in the readme (0.2.1) was the latest. Upgrading to 0.2.3 fixes it. Thanks!


Empty project

Hi,
I try to use payforme downloaded from the apple store but I hava to issues :

The QR code scanner doesn't work. The camera works but the app doesn't recognise any qr code and i have to close it manually.

I use a personal ihatemoney server. The server and project are connected (manually) but there is no users, no bill, no ability to add a bill. There is just the project in the projects list.

( The web site works well and moneybuster on android too)
Did I do anything wrong?
Regards

For 2), same issue as https://github.com/mayflower/PayForMe/issues/53#issue-1321894856
To fix it :
Need to name the project without space ( or special characters?).


Fix crash during raw connect failures

In the case of raw open, the server_txn will generally be a nullptr.  We
tried to use server_txn when calling set_connect_fail, which resulted in
a crash. This change simply removes the call. Note that a generic call
to set_connect_fail was already called previous to calling this
function.
This error was introduced with PR #7849

Looks good to me.  Might be nice to add back the particulars of the errno at some point, but for the raw open the data argument may be the netvc structure or the lerrno directly.


Broken link for reseting user password

Thanks for using Postleaf! 💙💚
This issue tracker is ONLY for bug reports. If you need help with something or would like to request a feature, please ask on https://community.postleaf.org/ instead.

Issue Summary
Link for reseting user password doesn't have schema, it starts with //
Example:
If this was sent in error, you can ignore this message.

To reset your password, visit this address: //localhost:8000/admin/login/reset/?username=USER&token=84325b15d6dbaf881a594c41654405e7786d8c8726c40abe5484fdecd5564097e40d0e51ea0f4794ac82deff1a1624da9545

It makes it unusable as a proper link.
Steps to Reproduce
Tell us how to replicate the problem.

Go to login page
Click on recover my password
Put your user name and click Continue
Look for an email in your inbox with a broken link

Additional info

Postleaf version: master (74b5522)
PHP version: 7.0
Affected browsers: n/a
Operating system: n/a

Provide any additional information that may be relevant to the bug here.

This was broken in c9a3c0a7c5819c97a9f416db7a1e3d6d4de156ab. I'll see what I can come up with for a proper solution.

public static function url($withProtocol = false) {
        $protocol = empty($_SERVER['HTTPS']) ? 'http' : 'https';
        // Get the hostname
        $hostname = $_SERVER['HTTP_HOST'];
        // Determine if Postleaf is running from a subfolder
        $subfolder = self::subfolder();
        // Get args and prepend subfolder
        $args = func_get_args();
        array_unshift($args, $subfolder);
        // Remove empties
        $args = array_filter($args, 'mb_strlen');
        // Glue them together
        $path = implode('/', $args);
        // Convert backslashes to forward slashes
        $path = str_replace('\\', '/', $path);
        // Remove duplicate slashes
        $path = preg_replace('/\/+/', '/', $path);
        // Remove preceding slash
        $path = ltrim($path, '/');
        // Generate the URL
        return ($withProtocol) ? "$protocol//$hostname/$path" : "//$hostname/$path";
    }

That will reintroduce the same issue we saw with #57. It also doesn't account for the other URL functions that are wrappers for Postleaf::url().

Protocols have been added back to the URL generator, along with a new method to detect SSL.
The old SSL check seemed to work for 99% of environments, and adding the isSsl() method will make it easier to adjust for edge cases.


PALMSpy - improve tsv file

As discussed via email, the tsv file needs description of each parameters.

Closing because facilitating PALMSpy does not have priority at the moment


Notification loop caused by modifying object in notification handler without invoking notification logger

Steps to reproduce:

Install RBQ notification listener
Change object with invoking change logger
When receiving notification, in your notification handler change the same object again, but do not invoke change logger

Actual result: Your program is stuck in notification loop where you receive same entity changes object every time
Expected result: Your program continues execution normally and no further notifications of these changes are reported since notification logger was not invoked.
I already dug into this problem a bit and probably found out the reason why this happens. This code inside RBQRealmNotificationManager.m, lines 485-505:
- (void)registerChangeNotification
{
    typeof(self) __weak weakSelf = self;

    self.token = [self.realm
                  addNotificationBlock:^(NSString *note, RLMRealm *realm) {

                      if ([note isEqualToString:RLMRealmDidChangeNotification]) {

                          // Pass the changes to the RealmNotificationManager
                          [[RBQRealmNotificationManager defaultManager] sendNotificationsWithRealm:realm entityChanges:weakSelf.entityChanges];

                          // Nil the changes collection
                          weakSelf.internalEntityChanges = nil;

                          // Remove the token and nil it so we get dealloc
                          [weakSelf.realm removeNotification:weakSelf.token];
                          weakSelf.token = nil;
                      }
                  }];
}

There, because this listener listens all changes in realm, even the ones which does not invoke notification logger, my change in step 3 will invoke this listener again. Because entity changes object is not nilled (the execution is still in sendNotificationsWithRealm), the same entity changes object will be send again and the loop continues. Probably taking independent copy of the changes object and nilling the original before calling sendNotificationsWithRealm would fix the issue. Not 100% sure though, but my best guess so far :)

Sorry for slow reply, been in and out for some health reasons. Thanks for reporting this! What you describe makes sense, but I am concerned that this isn't related to this library but instead is an issue with Realm. This library works off of the global realm notification and if you start a write transaction in the same Realm from the global notification, it can create an infinite loop. See this issue that was opened awhile back to note it in the docs: https://github.com/realm/realm-cocoa/issues/1413
Can you confirm that if you simply create a realm notification block and trigger your second set change in it after making the first chance this loops?


Installation guide for Linux needs some update

I've been trying to install flutter on 'Linux Mint 19.1' according to documentation guideline. According to documentation's this part I've to create or, modify $HOME/.bash_profile file to add this line to permanently update flutter path:

export PATH="$PATH:[PATH_TO_FLUTTER_GIT_DIRECTORY]/flutter/bin"

Where [PATH_TO_FLUTTER_GIT_DIRECTORY] should be replaced by the folder where I've cloned the latest flutter repository in my computer. And then running this command below to refresh the current terminal:
source $HOME/.bash_profile
After following all these guidelines and steps I've restarted my computer but the problem arises when I opened a terminal and run the flutter command and it said:

flutter: command not found
That means flutter path wasn't actually updated to all my terminal sessions permanently.

How I've overcome this problem?

Removed the $HOME/.bash_profile file

Opened $HOME/.profile in an editor as Super user. In my case, it was:

sudo gedit .profile

After the last line of this .profile file I've added  this line below:

export PATH="$PATH:[PATH_TO_FLUTTER_GIT_DIRECTORY]/flutter/bin"

In my case, it was like this because I've cloned flutter repository to a folder named packages in home directory:

export PATH="$PATH:/home/packages/flutter/bin"

Then I've reboot the system and it was all perfect to run the flutter command then.

My goal of writing this much of problem and solution that worked for me is to request the docs modifier to review this problem and to update documentation to make the installation process easier.
Thank you.
#HappyProgramming

I think rebooting is not required.
And for me I add anything related to extending the PATH variable in ~/.bashrc instead of bash profile.

You do not need to reboot, just load your bash again (or open a new Terminal). Each Linux distribution can vary on how they find the user bash profile, so it's not the case to update the guide to describe the Linux Mint mode.

As it says in the linked documentation:

The steps for modifying this variable permanently for all terminal sessions are machine-specific. Typically you add a line to a file that is executed whenever you open a new window. For example:

And then later:

Open (or create) $HOME/.bash_profile. The file path and filename might be different on your machine.

(Emphasis added in both cases.)
Covering every case is beyond the scope of the documentation, so it gives an example which is labelled and such.


Adds cheap string encoding for IpV4 path used in protobuf

Commonly, we parse protobuf, but write json. This implies reading bytes
and encoding IP literals. This improves performance of IpV4 address
encoding and tries to pay for the extra bytecode by removing some.

my laptop isn't as fast as @anuraaga's :)
before:
EndpointBenchmarks.parseIpv4_bytes:parseIpv4_bytes·p0.99             sample             0.360             us/op
EndpointBenchmarks.parseIpv4_bytes:·gc.alloc.rate.norm               sample      15   184.015 ±   0.001    B/op

ProtoCodecBenchmarks.bytes_zipkinDecoder:bytes_zipkinDecoder·p0.99         sample            2078.024               us/op
ProtoCodecBenchmarks.bytes_zipkinDecoder:·gc.alloc.rate.norm               sample     15  2191141.794 ±    45.769    B/op

after:
EndpointBenchmarks.parseIpv4_bytes:parseIpv4_bytes·p0.99             sample             0.281             us/op
EndpointBenchmarks.parseIpv4_bytes:·gc.alloc.rate.norm               sample      15    88.011 ±   0.005    B/op

ProtoCodecBenchmarks.bytes_zipkinDecoder:bytes_zipkinDecoder·p0.99         sample            2043.392               us/op
ProtoCodecBenchmarks.bytes_zipkinDecoder:·gc.alloc.rate.norm               sample     15  2095169.988 ±    32.752    B/op

note: this puts us within "spitting distance" of grpc's proto library, yet with no external dependencies
ProtoCodecBenchmarks.bytes_protobufDecoder:bytes_protobufDecoder·p0.99       sample            1974.108                us/op
ProtoCodecBenchmarks.bytes_protobufDecoder:·gc.alloc.rate.norm               sample     15  2023204.399 ±     33.559    B/op
ProtoCodecBenchmarks.bytes_wireDecoder:bytes_wireDecoder·p0.99               sample            2368.840                us/op
ProtoCodecBenchmarks.bytes_wireDecoder:·gc.alloc.rate.norm                   sample     15  2435408.756 ±     54.127    B/op
ProtoCodecBenchmarks.bytes_zipkinDecoder:bytes_zipkinDecoder·p0.99           sample            2162.688                us/op
ProtoCodecBenchmarks.bytes_zipkinDecoder:·gc.alloc.rate.norm                 sample     15  2095172.026 ±     45.379    B/op

by "this" I mean this change but all the several changes today by @anuraaga which actually made the most difference.

found another spot in latest commit which closes the gap even more
ProtoCodecBenchmarks.bytes_protobufDecoder:bytes_protobufDecoder·p0.99       sample            1953.710                us/op
ProtoCodecBenchmarks.bytes_protobufDecoder:·gc.alloc.rate.norm               sample     15  2023206.265 ±     32.203    B/op
ProtoCodecBenchmarks.bytes_wireDecoder:bytes_wireDecoder·p0.99               sample            2351.104                us/op
ProtoCodecBenchmarks.bytes_wireDecoder:·gc.alloc.rate.norm                   sample     15  2435408.568 ±     53.612    B/op
ProtoCodecBenchmarks.bytes_zipkinDecoder:bytes_zipkinDecoder·p0.99           sample            2002.944                us/op
ProtoCodecBenchmarks.bytes_zipkinDecoder:·gc.alloc.rate.norm                 sample     15  2095165.920 ±     33.639    B/op

will remove the random commit from here and do another PR independently which will fold some code in our Buffer object as I think it is in the way at this point


Support android sdk 3.0 and swift 4.0

Seems to work for my current implementation for both Android and iOS 👌


Fixed false error in GhidraJarBuilder.java

Changed from "only giving an error if we WERE able to write to the sources jar" to "only giving an error if we were NOT able to write to the sources jar".

/* ###

IP: GHIDRA

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//Example script for training random forests to find function starts
//@category    machineLearning

import java.util.*;
import java.util.Map.Entry;
import java.util.stream.Collectors;
import ghidra.app.cmd.disassemble.DisassembleCommand;
import ghidra.app.cmd.function.CreateFunctionCmd;
import ghidra.app.script.GhidraScript;
import ghidra.machinelearning.functionfinding.*;
import ghidra.program.model.address.Address;
import ghidra.program.model.address.AddressSet;
import ghidra.program.model.block.BasicBlockModel;
//NOTE: This script is referenced by name in the help for the
//RandomForestFunctionFinderPlugin.  If you change the name be
//sure to update the help.
public class FindFunctionsRFExampleScript extends GhidraScript {
@Override
protected void run() throws Exception {

	//get the parameters controlling how many models are trained and
	//what data is used to train/test them
	FunctionStartRFParams params = new FunctionStartRFParams(currentProgram);

	//maximum number of function starts to use in the training set
	//a warning will be issued if there are no functions left over for the test set
	params.setMaxStarts(1000);

	//minimum size of a function to be included in the training/test sets
	params.setMinFuncSize(16);

	//number of bytes before a function start
	params.setPreBytes(Arrays.asList(new Integer[] { 2, 8 }));

	//number of bytes after (and including) a function start
	params.setInitialBytes(Arrays.asList(new Integer[] { 8, 16 }));

	//number of non-starts to sample for each start in the training set
	params.setFactors(Arrays.asList(new Integer[] { 10, 50 }));

	//for every function start in the (test,training) set, add the code
	//units immediately before and immediately after to the (test,training) set
	//as non-starts.
	params.setIncludePrecedingAndFollowing(true);

	//uncomment to include features for each bit rather than just byte-level features
	//params.setIncludeBitFeatures(true);

	//bound for reducing the size of the test sets
	long testSetMax = 1000000l;

	//this is where the trained models will go
	List<RandomForestRowObject> trainedModels = new ArrayList<>();

	RandomForestTrainingTask trainingTask = new RandomForestTrainingTask(currentProgram, params,
		r -> trainedModels.add(r), testSetMax);

	//launch the task to train the models in parallel
	trainingTask.run(monitor);

	//sort the models by the number of false positives (ascending)
	//if you actually need *unsigned* comparison it's likely that something has gone
	//horribly wrong
	Collections.sort(trainedModels,
		(x, y) -> Integer.compareUnsigned(x.getNumFalsePositives(), y.getNumFalsePositives()));

	//grab the model with the fewest false positives
	//note: there could be ties; could sort the winners by recall
	RandomForestRowObject best = trainedModels.get(0);

	printf(
		"Best model: pre-bytes: %d, initialBytes: %d, sampling factor: %d, false positives: %d," +
			" precision: %g, recall: %g\n",
		best.getNumPreBytes(), best.getNumInitialBytes(), best.getSamplingFactor(),
		best.getNumFalsePositives(), best.getPrecision(), best.getRecall());

	//to get more information about the test set errors, apply the model to the error set

	FunctionStartClassifier classifier = new FunctionStartClassifier(currentProgram, best,
		RandomForestFunctionFinderPlugin.FUNC_START);
	//uncomment to see false negatives as well
	//classifier.setProbabilityThreshold(0.0);

	Map<Address, Double> errors = classifier.classify(best.getTestErrors(), monitor);

	List<Entry<Address, Double>> falsePositives = errors.entrySet()
			.stream()
			.filter(x -> currentProgram.getFunctionManager().getFunctionAt(x.getKey()) == null)
			.sorted((x, y) -> Double.compare(y.getValue(), x.getValue()))
			.toList();

	//print out addresses of false positives
	printf("False positives:\n");
	falsePositives.forEach(x -> printf("  %s %g\n", x.getKey().toString(), x.getValue()));

	//show the true function starts most similar to one of the false positives
	if (!falsePositives.isEmpty()) {
		SimilarStartsFinder finder =
			new SimilarStartsFinder(currentProgram, currentProgram, best);
		List<SimilarStartRowObject> neighbors =
			finder.getSimilarFunctionStarts(falsePositives.get(0).getKey(), 10);
		printf("\nClosest function starts to false positive at %s :\n",
			falsePositives.get(0).getKey());
		neighbors.forEach(n -> printf("  %s %d\n", n.funcStart(), n.numAgreements()));
	}

	//grab the set of bytes in executable memory which are undefined (i.e., initialized but
	//not yet assigned to be code or data) or instructions which are not assigned to a function
	//body
	//don't bother looking in small undefined ranges
	long minUndefinedRange = 16;
	GetAddressesToClassifyTask getAddressTask =
		new GetAddressesToClassifyTask(currentProgram, minUndefinedRange);
	getAddressTask.run(monitor);

	AddressSet toClassify = getAddressTask.getAddressesToClassify();

	Map<Address, Double> potentialStarts = classifier.classify(toClassify, monitor);

	//grab all of the addresses with probability of being a function start >= .7
	//and disassemble any that are currently undefined

	//block model is needed to get the interpretation of an address
	//e.g., undefined, block start, within block,...
	BasicBlockModel blockModel = new BasicBlockModel(currentProgram);

//@formatter:off
List addresses = potentialStarts.entrySet()
.stream()
.filter(x -> {return x.getValue() >= 0.7d;})
.map(x -> x.getKey())
.collect(Collectors.toList());
//@formatter:on
	AddressSet toDisassemble = new AddressSet();
	for (Address addr : addresses) {
		Interpretation inter =
			Interpretation.getInterpretation(currentProgram, addr, blockModel, monitor);
		if (inter.equals(Interpretation.UNDEFINED)) {
			toDisassemble.add(addr);
		}
	}

	//see DisassemblyAndApplyContextAction#actionPerfomed if you need to
	//apply context register values
	printf("Found %d addresses to disassemble\n", toDisassemble.getNumAddresses());
	DisassembleCommand cmd = new DisassembleCommand(toDisassemble, null, true);
	cmd.applyTo(currentProgram);

	//create functions at any address with probability of being a function start > .8,
	//where an instruction exists,
	//which is defined as a BLOCK_START (so not already a function start)
	//and with no conditional flow references to it
	//FunctionStartRowObject represents a row in a table in the gui, but you don't
	//actually need the gui and it's a convenient container for information about an address

//@formatter:off
List funcRows  = potentialStarts.entrySet()
.stream()
.filter(x -> {return x.getValue() >= 0.8d;})
.map(x -> new FunctionStartRowObject(x.getKey(),x.getValue()))
.collect(Collectors.toList());
//@formatter:on
	for (FunctionStartRowObject funcRow : funcRows) {
		funcRow.setCurrentInterpretation(Interpretation.getInterpretation(currentProgram,
			funcRow.getAddress(), blockModel, monitor));
		FunctionStartRowObject.setReferenceData(funcRow, currentProgram);
	}

	AddressSet entries = new AddressSet();
	funcRows.stream()
			.filter(x -> x.getCurrentInterpretation().equals(Interpretation.BLOCK_START))
			.filter(x -> x.getNumConditionalFlowRefs() == 0)
			.forEach(x -> entries.add(x.getAddress()));

	printf("Found %d addresses to create functions\n", entries.getNumAddresses());

	CreateFunctionCmd createCmd = new CreateFunctionCmd(entries);
	createCmd.applyTo(currentProgram);
}

}

                          Apache License
                       Version 2.0, January 2004
                    http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
  To apply the Apache License to your work, attach the following
  boilerplate notice, with the fields enclosed by brackets "[]"
  replaced with your own identifying information. (Don't include
  the brackets!)  The text should be enclosed in the appropriate
  comment syntax for the file format. We also recommend that a
  file or class name and description of purpose be included on the
  same "printed page" as the copyright notice for easier
  identification within third-party archives.

Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


Update UI

The UI is trivial and there are a lot of chances of improving.

the color palette has changed to match that of twitter (white and blue)
the support for dark theme is discontinued
the background colors for posts and notifications are changed
ensure that the content is centered while viewing the website on a small screen (mobile)
change the background color for the messages sent
fix the styles for composer and mini composer
refactor - break secrets.css into smaller files
update preferences page UI
navbar color changes - color is navyblue for the tab which is linked to our current page
the font is now helvetica
changing the button input style
changing background color and adding box shadow for settings

https://github.com/CSE-210-Team-6/shuttlecraft/pull/53

All UI Changes have been merged


[d3d9] Lower framerate compared to wined3d on Konosuba megaman clone.

Lower framerate in a (comparatively) simple game compared to wine3d3.
I used mangohud to log the framerate and here are the logs of a section of the tutorial level:

konosuba_DXVK_2020-08-14_23-07-53.log
konosuba_WINED3D_2020-08-14_23-10-06.log

As you can see when using DXVK the framerate jumps in between 60-37fps, but when using wined3d it's around 62-57fps.
Software information
Name: Kono Subarashii Sekai ni Syukufuku wo! Fukkatsu no Beldia
1280x720p fullscreen (virtual desktop)
Vsync on
Here's my lutris config file, the only change was setting dxvk to true/false between runs:
konosuba-1525576677.txt
System information

GPU: GeForce GTX 1050 Ti
Driver: 430.64.0
Wine version: 5.6-5 (lutris)
DXVK version: 1.7L-9f6f6a7 (lutris)

Apitrace file(s)

https://mega.nz/file/14hHUZCR#4d36-SRsHFEKn8B7TFnzZqO92dl4gcuFy-SLNZJRxtQ
(framerate was really low, not sure if this is the expected behavior when using apitrace)

Log files
konosuba_d3d9.log

You are using over a year old driver and an out of date version of DXVK.

Updated to nvidia 440.100 (latest available in my distro) and dxvk to 1.7.1, here are the new framerare logs:

KONOSUBA_DXVK_2020-08-15_12-12-11.log
KONOSUBA_WINED3D_2020-08-15_12-15-35.log

Lowest with DXVK was 46fps while lowest with wined3d was 58fps.
New apitrace:
https://mega.nz/file/YgYgVKIT#VSc3swrrQpowRKhMpPK1fANmDkie7iwyf6BdQ0D0r9M
New log:
konosuba_d3d9.log

I can't reproduce the low performance here, I get a constant 60fps.

@Hairo Friendly ping. Can you retest with latest dxvk? :slightly_smiling_face:

It runs fine now, but i no longer have the computer it was tested on in the first post so it might be because better hardware.

That's fine. As long as there isn't a major bad difference between dxvk and wined3d. Alot has improved since 1.7 🙂
Thanks for checking 👍

If you notice that something still seems off performance wise then just comment here again 🙂


[10.x] Introduce of method in array

Why
When handling API responses in PHP, dealing with arrays and managing nested keys can be a complex task. Consider a scenario where a payment gateway response is received. Here's an example array:
$tilledResponse = [
    "ach_debit" => [
        "last2" => "23",
        "account_type" => "savings",
        "routing_number" => "021000021",
    ],
    "billing_details" => [
        "name" => "Stripe Merchant",
        "address" => [
            "zip" => "2842",
            "city" => "Middletown",
            "state" => "RI",
            "street" => "A Admiralty Dr W, Apt 1",
            "country" => "US",
        ]
    ],
    "card" => null,
    "card_present" => null,
    // ... other keys
];

While navigating through this array, developers often use the dot syntax. However, in Laravel, there's a convenient method called data_get that supports regex for fetching values. Inspired by Taylor Otwell, there's a desire to enhance this experience by allowing users to interact with the data as if it were an object. This means users can access elements using the -> syntax, making the code more intuitive and expressive.
One approach to achieve this is by converting the array into an instance of stdClass or casting it into an object. The goal is to create a more seamless and object-oriented experience for developers.
How to used
To implement this enhancement, a proposed method is provided:
Arr::of($tilledResponse)->ach_debit->last2;
This syntax enables developers to access array elements using the -> syntax, mimicking the interaction with an object. The goal is to make the code cleaner, more intuitive, and expressive.
Please share your thoughts and feedback on this approach. Thank you!

Same issue is here!!

Please merge 10.x into your branch.

https://github.com/laravel/framework/pull/49542#issuecomment-1873404730

May be this is not fixed in 10.x

This could be better implemented as RecursiveFluent IMO.


Add @fejta and @spxtr to blunderbuss config for test/

Largely test/ PRs have mostly involve triaging to proper owners, but I'd like not to have to do that all myself.
cc @fejta @spxtr and also @kubernetes/sig-testing in case anyone else feels they should be on this

https://github.com/kubernetes/kubernetes/pull/22393
And here I was hoping to kill this file in the next couple days. I'll merge here and rebase that PR, but then hopefully I can stop merging these things here.


Linux and Mac support for Coda

Currently Coda is only built for Windows platform.
The code is mostly cross-platform but it needs to be tested and built for the Linux and Mac systems.

@SujalChoudhari  I can help to test in linux. Can you tell me the modules/packages project depend on?

@SusheelThapa,
Appreciated your interest in this project.
I actually want to add the Linux and Mac support, there is no support right now.
I was planning to add it, but due to lack of time and knowledge about these platforms I removed some parts. i.e. v1.0.1
You can view version 1 where there were traces of Linux support.
You can bring those changes back and fix some of the issues.