The .import folder should be renamed

Godot version: 3.0.x and master, any recent version
Issue description: Currently, it can be confusing that there is both a .import folder in the project root, and .import files located next to the actual source files in the project. When people refer to "the import files" it's not immediately obvious what they're talking about. It seems that even the Godot devs got them mixed up in the official demo projects repo and gitignore'd important files.
These files are quite different and the names should be different to reflect this. In my opinion, the .import folder should be renamed to .cache because it contains cache-like imported files. The files in this folder can be safely deleted and regenerated, and they persist after an editor restart (so they're not "temp" files). This is the behavior that most people would expect a "cache" to have.
Actually, it would be much better to have a .godot folder and put all ignorable stuff inside that, so .import would be renamed to .godot/import or .godot/cache or similar. EDIT: See #38607

Some discussion ongoing in the PR, but there was a recent comment on another issue that showcases possible confusion stemming from similar names: https://github.com/godotengine/godot/issues/24177#issuecomment-445420397

I said in the PR but to add it here too: I find .cache a bad name because it doesn't convey what the folder is for. "Cache" means storing a result for faster access later and the process can be redone if the cache is not there. While the .import folder can be recreated by the editor, it's needed to run the game, and you can't generate that folder in-game.

:thinking: Hmm, needed to run the game? Perhaps something like .runtime would be suitable then.

Why not .resourceinfo?

Well, it's not really information, it's for generated files after Godot has imported them.
.imported would be another name that is different, but still similar to .import.

It contains information on how to handle resources. I know why that would be technically incorrect, but it's much clearer, at least to me.

If anything I would expect the .import files next to assets to be .importinfo since it literally stores user editable resource import information. So no, .importinfo is not suitable.

I would rename the files to .import_info and the folder to .imported_assets so it's clearer what they do, even if the name is a bit long.

What about .necessities since they necessary to run the game?
And/Or rename the files to .import_link.

Well we could name it .important with the same success :smiley:.
The problem with .necessities/ is that it would confuse people into including it in VCS, which is precisely what they should not do. (Assuming that it is about the folder; if it is about the files, "necessities" is too close a word to "dependencies", so it wouldn't work there either.)

I still think that the best candidates so far are .cache or .generated. While it's not technically cache, .cache still conveys to the user what they need to know, which is that it should be gitignored. I really doubt that somebody will try to delete a folder called .cache before running the game. .generated is more accurate and still reflects that it should be gitignored and not deleted.

If length isn't an issue, how about .engine_generated_cache

Another possible solution is to make "import" (or similar) a subfolder of a more generic .godot folder, as @vnen suggested in this comment: https://github.com/godotengine/godot/issues/20994#issuecomment-413091756

.godot/imported_cache?

Just to add: There is nice correlation  between the .import folder and the Import tab.

Going with .godot is the best option IMO. It's pretty common convention, e.g.: .vscode, .idea, .vs, .github, etc. Although it may not be obvious whether all the contents should be ignored, as in some of those examples there are files that you may not want to ignore.
Having a single folder simplifies ignoring files and it also opens for the possibility of storing some editor related information inside the project. See cases like godotengine/godot-proposals#555 (right now Rider has to find the editor settings location on all systems).
It also means a single root directory for a .gdignore file. Adding .gdignore file to .mono (there's already .import/.gdignore) is a pending task, and it wouldn't be needed if it were located in .godot.

I was mistaken. It's not res://.import that has a .gdignore file. It's res://android/build.

Why not just .runtime or .runtime_resources? At the end of the day that's what the .import folder contains and those are the resources used at runtime. The .mono folder can go into that too I guess.
I'd also add a .project folder that would contain all the project metadata needed.
The only problem with .godot is that people will think it contains specific editor configuration for that project not what it really contains (resources used at runtime)

Closing in favor of https://github.com/godotengine/godot-proposals/issues/1521, as feature proposals are now tracked in the Godot proposals repository.


SyntaxError: Unexpected token 'with'

Hello
After I updated the liara/cli, I got this error from Liara commands, and it worked fine before the update to the last version:
liara deploy --debug
SyntaxError: Unexpected token 'with'

And this is my liara.yaml workflow for ci/cd with GitHub actions :
`name: CD-Liara
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
  - uses: actions/checkout@v3
  - uses: actions/setup-node@v3
    with:
      node-version: "18"
  - name: update-liara
    env:
      LIARA_TOKEN: ${{ secrets.LIARA_API_TOKEN }}
    run: |
      npm i -g @liara/cli@6
      liara deploy --app="projectmanagment" --port=3000 --api-token="$LIARA_TOKEN" --no-app-logs`

Hello After I updated the liara/cli, I got this error from Liara commands, and it worked fine before the update to the last version: liara deploy --debug SyntaxError: Unexpected token 'with'

Hello dear Ali Dolatabadi,
Thank you for bringing this issue to our attention.
The root cause of the problem was a version incompatibility introduced in the latest update of a third-party package. As a result, our users needed to update their Node.js versions to maintain compatibility with our service. Fortunately, we have addressed this issue.
Please update your Liara CLI to the latest version using the following command:
npm i -g @liara/cli
Best regards.

This issue was resolved.


[SPARK-38947][PYTHON] Supports groupby positional indexing

What changes were proposed in this pull request?
Add groupby positional indexing support for Pandas on Spark.
Why are the changes needed?
Pandas supports Groupby positional indexing since v1.4.0
https://pandas.pydata.org/docs/whatsnew/v1.4.0.html#groupby-positional-indexing
Before 1.4.0, pdf.groupby("a").head(-2) == pdf.groupby("a").head(0) return empty dataframe, after 1.4.0, it allows to specify positional ranges relative to the ends of each group.
df = pd.DataFrame([["g", "g0"], ["g", "g1"], ["g", "g2"], ["g", "g3"], ["h", "h0"], ["h", "h1"]], columns=["A", "B"])
df.groupby("A").head(-1)

   A   B
0  g  g0
1  g  g1
2  g  g2
4  h  h0

Does this PR introduce any user-facing change?
Yes, follow pandas 1.4+ behaviors, still keep the behavor when using pandas < 1.4
How was this patch tested?

Added some more postional indexing test (-1, -100000).
test_tail and test_head pass with pandas 1.3.x and 1.4.x

cc @xinrong-databricks @itholic @HyukjinKwon @zhengruifeng

Shall we add an example in docstring with negative positional indexing?

Shall we add an example in docstring with negative positional indexing?

Also added

LGTM!

Didn't take a close look but should be good to go from a cursory look.

@HyukjinKwon Thanks! Pls let me know if you have other concern.

Merged to master.


nginx.conf should not enable listening on IPV6

In the nginx.conf, the server listens on both IPv4 and IPv6.
Leaving the IPv6 directive makes the container crash with:
2020-11-15T20:22:56.3972509Z stdout F 10-listen-on-ipv6-by-default.sh: error: ipv6 not available
2020-11-15T20:22:56.3992278Z stdout F /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
2020-11-15T20:22:56.4132442Z stdout F /docker-entrypoint.sh: Configuration complete; ready for start up
2020-11-15T20:22:56.5422514Z stderr F 2020/11/15 20:22:55 [emerg] 59#59: socket() [::]:443 failed (97: Address family not supported by protocol)
2020-11-15T20:22:56.5462397Z stderr F nginx: [emerg] socket() [::]:443 failed (97: Address family not supported by protocol)
can be found when creating the container instance then right away executing the command
az container attach --resource-group <resource_group>--subscription <subscription_id> --name <container_instance_name>

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

ID: 9ed58f2c-446c-b500-122f-407628a8eb17
Version Independent ID: bce3f5a3-45d8-6b93-522e-a9af298068f5
Content: Enable TLS with sidecar container - Azure Container Instances
Content Source: articles/container-instances/container-instances-container-group-ssl.md
Service: container-instances
GitHub Login: @macolso
Microsoft Alias: macolso

@DOMZE Thank you for sharing your query! We are currently investigating and will get back to you shortly on this.

@DOMZE I have created internal bug item on the issue and will keep you posted once I have an update.
Thanks

@DOMZE I got below information from our backend team:
This is a known issue, we have a rollout going out with a fix but in the meantime as a mitigation you can modify all listen directives in your nginx config to: listen <IP_ADDRESS>:port.That will force it to only listen on ipv4 addresses.
Hope the provided information is helpful.
We will now close this issue. If there are further questions regarding this, please tag me in a comment. I will reopen it and we will continue the discussion.
Thanks

@psmanhas Thank you. When is the fix coming out? If it's not within the next few days, preferably update the doc with the correct information and re-update it once the fix is done.
Otherwise right now, the information is incorrect and people do not see this issue in the documentation

@DOMZE Apologies but currently I dont have any ETA for fix.
I will provide your feedback to our internal team to reflect same in document accordingly.
Thanks


Highlight syntax in hover docs

Check for existing issues

[X] Completed

Is your feature request related to a problem?
When working with an Elixir project, I can hover over functions, modules, etc and see some documentation. This often includes example code, however all the text in the hover window is rendered with the same type.
Describe the solution you'd like
Ideally any example code would be syntax highlighted.
If applicable, add mockups / screenshots to help present your vision of the feature
how it looks in Zed:

how it looks in Hexdocs:

This should be fixed in v0.91.0.


event cannot be called, getting "TypeError: Cannot read property 'event' of undefined"

getting the following error:
TypeError: Cannot read property 'event' of undefined
using this simple SC:
`contract a {
event b(uint c);

function d(){

    b(10);
}

}`
tried the same code on old version of online compiler, and SC worked just fine.

This code is not producing the above issue, but other cases, such as #115 and #180 are. Those are being fixed.


Updating task ownership

Here's the PR that Shubham got in https://github.com/microsoft/azure-pipelines-tasks/pull/12189


Wart remover

@markus1189 the Any and Nothing warnings seem like false positives, right? (have not looked at the wart remover outputs for the tests, so please ignore at you discretion)

I'll have a look tomorrow 😉
On Tue, Mar 23, 2021, 15:19 Frederick Roth @.***> wrote:

@markus1189 https://github.com/markus1189 the Any and Nothing warnings
seem like false positives, right? (have not looked at the wart remover
outputs for the tests, so please ignore at you discretion)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/medeia/medeia/pull/163#issuecomment-804941164, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEQNT3BJCHP4FYC74GRKCTTFCPPVANCNFSM4ZVIYAPA
.

Yeah well...
It's not a false positive, the inferred type does sometimes contain Any and Nothing, e.g.:
PartialFunction.empty // has type: PartifalFunction[Any, Nothing]

unless you explicitly give the type params to empty.  It works out in the end due to co/contra-variance though.
Is it a severe problem? No.  Could it in some special cases lead to weird errors? Yes, for example if the typeclass is not co/contra-variant, it will fail to find the instance without helping the compiler by giving types.
I think at the end it's a bit of a matter of strictness, whether one wants to enforce this everywhere or not.  It's a tradeoff between having to state types in more places vs. protection from weird inference issues. :shrug:

Hmmm, yeah the PartialFunction think would be an easy enough fix but the
implicit def vectorDecoder[A: BsonDecoder]: BsonDecoder[Vector[A]] = iterableDecoder lines are a little more involved I fear.

The vectorDecoder is actually an issue with our iterableDecoder...  I fixed some more issues in: 3ea2a6342b00b24015b531171664511c67a8613e

Ah, nice. I always had "really understanding that thing" on my todo list :)

I am not sure of whether I like the trade of, but I will put in the effort to make wartremover happy and then see how I like the result.

@markus1189 In opted for not wanting the Any and Nothing Warts... Wanna have another look?


"Visibility for constructor is ignored" yet removing the visibility causes compiler error

constructor() public {}
Visibility for constructor is ignored. If you want the contract to be non-deployable, making it "abstract" is sufficient.
Yes, if the constructor is changed to: constructor() {}, the warning goes away, but the compiler gives:
CompileError: ... SyntaxError: No visibility specified. Did you intend to add "public"?
  constructor() {}
  ^--------------^

Compilation failed. See above.

You need to add a visibility, this is an error of the compiler.


[STL-24] Fix Golang SDK "index out of bound" panic

Fixes https://jira.hyperledger.org/browse/STL-24
Signed-off-by: Jonathan Levi (HACERA<EMAIL_ADDRESS>

It would be preferable to remove the [STL-24] from the first line of the commit message.


Fix night mode coloring for duplicate sheets on event

@mrueschman, this styling is intentional, the tables have alternating row colors, and the "highlight" color in the dark mode is the yellow you are seeing there (with the darker version being the alternating row effect). What about it did you want changed?

Changing this issue to address the idea that some events can have duplicate sheets and it's not an "issue", i.e. the sheets shouldn't be marked as duplicate. ("Allow Duplicates").

Here's a sample of the changes made. In this case, the Screening even has the "PSG Report" set as "Ignore Duplicates" while the CIW is still set as "Highlight Duplicates" (default).

I also improved the readability of the highlighted rows text in night mode, and added the sheet creation date for duplicate sheets to be able to tell them apart slightly better.


pre-create hook on Windows always return file not exists

I'm trying file hooks on Windows 10 and I always get an error while the pre-create hook is executing
To Reproduce
Steps to reproduce the behavior:

Download version 0.11 for Windows
Start tusd with a hook folder tusd.exe --hooks-dir .\hooks\win\
Try to upload a file
See the error report on tusd stdout

[tusd] event="RequestIncoming" method="POST" path=""
[tusd] event="HookInvocationStart" type="pre-create" id=""
[tusd] event="HookInvocationError" type="pre-create" id="" error="exec: "C:\\...\\hooks\\win\\pre-create": file does not exist"
[tusd] event="ResponseOutgoing" status="500" method="POST" path="" error="pre-create hook failed: exec: "C:\\...\\hooks\\win\\pre-create": file does not exist

Expected behavior
Hook is executed
Setup details
Please provide following details, if applicable to your situation:

Operating System: Windows 10
Used tusd version: Version: 0.11.0, Commit: 27c9c4aab534a9802a6334e99c4119f876ace8ff Date: Mon Nov 19 16:47:02 UTC 2018
Used tusd data storage: disk store
Used tusd configuration: --hooks-dir .\hooks\win\
Used tus client library: tus-js-client

I tried to pull the code and verify what was happening. Seems that exec.Command in the hooks.go file tries to execute what is passed as a binary on the PATH, but cannot consider the hookPath as a valid binary name. If I change the exec.Command to
cmd := exec.Command("powershell", hookPath)

the script pointed by hookPath I don't get the error.
Since I'm new to Go, I don't know how to solve this situation, or how to go further

Thanks for reporting this and sorry for the delayed response, I didn't have the time yet to debug this issue on my Windows machine. In the meantime I would have a few questions about your setup:

How are your file hooks called? Is it just pre-create without a file extension (tusd expects the hook files to have no extension)?
Are your hook files scripts (e.g. Powershell) or directly binary files?
Would you be able to share a simple version of your hook files with us, so we try them out?

The hook system was mostly designed with a Linux setup in mind and not enough effort was spent on testing it on Windows sadly (as we all are no Windows developers in our daily life).

How are your file hooks called? Is it just pre-create without a file extension (tusd expects the hook files to have no extension)?

I called them just pre-create, post-create,... without extension

Are your hook files scripts (e.g. Powershell) or directly binary files?

powershell scripts, because I need to execute some commands (in particular call a php script)

Would you be able to share a simple version of your hook files with us, so we try them out?

the hook file contains just an "echo" to see if was working
echo ">>>>>>>>>>>>>>>>>>>>>>>>> hello"

I had time to experiment a bit more, and I found that:

if I name the file without an extension and run it on the powershell directly, or as argument of the powershell executable I get a dialog that ask me to select which application to use to open the file

PS > .\.hooks\pre-create
PS > powershell.exe .\.hooks\pre-create

If I name the file with the ps1 extension that pertain to powershell scripts it outputs the string in the echo command (no need to specify the file extension)

PS > .\.hooks\pre-create
>>>>>>>>>>>>>>>>>>>>>>>>> hello
PS > .\.hooks\pre-create.sh
>>>>>>>>>>>>>>>>>>>>>>>>> hello

Oh, that's interesting.

If I name the file with the ps1 extension that pertain to powershell scripts it outputs the string in the echo command (no need to specify the file extension)

Do the hooks work in this situation (when you name the file pre-create.ps1)?

I'm doing some tests on that side

The testing scenario was tusd version 0.11 executed as follows
 .\tusd-win.exe --hooks-dir .\.hooks\

For the post-* hooks I was using the files without extension, while I was going to change the pre-create hook file. In this way I could see immediately an upload failure from the client side.
I started from

Do the hooks work in this situation (when you name the file pre-create.ps1)?

I tried with

single file named pre-create.ps1
two files, one named pre-create.ps1 and the other pre-create to see if the file existence check was somehow involved

the result was
pre-create hook failed: exec: "...\\github.com\\tus\\tusd\\.hooks\\pre-create": file does not exist

the second test
I decided to edit a bit the source code of tusd to impose the .ps1 file extension. I was still getting an error, but totally different
fork/exec .\tus\tusd\.hooks\pre-create.ps1: %1 not a valid Win32 application"

the third test
The second test error made me think, and I gave a try with a batch file instead of a powershell script.
I named the file pre-create.bat. I reverted the changes made to the source code for the previous step and added log.Printf("hookPath: %s", hookPath) before the exec.Command() call.
With my surprise it was working, here is the log trace
[tusd] Using '.\tus\tusd\.hooks' for hooks
[tusd] Using './data' as directory storage.
[tusd] Using 0.00MB as maximum size.
[tusd] Using <IP_ADDRESS>:1080 as address to listen.
[tusd] Using /files/ as the base path.
[tusd] Using /metrics as the metrics path.
[tusd] Core: ✓ Terminater: ✓ Finisher: ✗ Locker: ✓ GetReader: ✓ Concater: ✓ LengthDeferrer: ✓
[tusd] event="RequestIncoming" method="POST" path=""
[tusd] event="HookInvocationStart" type="pre-create" id=""

2019/04/24 09:34:10 hookPath: .\tus\tusd\.hooks\pre-create

[tusd] event="HookInvocationFinish" type="pre-create" id=""
[tusd] event="UploadCreated" id="bd9d80091cba050c396e85e5455f4d8f" size="371852" url="http://localhost:1080/files/bd9d80091cba050c396e85e5455f4d8f"
[tusd] event="ResponseOutgoing" status="201" method="POST" path=""

I believe that exec.Command() uses the command prompt behind the scenes and not a Powershell.

I named the file pre-create.bat. I reverted the changes made to the source code for the previous step and added log.Printf("hookPath: %s", hookPath) before the exec.Command() call.
With my surprise it was working, here is the log trace

Great, that's a nice find! So the hooks are working for you now if you are using Batch files?

I believe that exec.Command() uses the command prompt behind the scenes and not a Powershell.

Yes, Go's exec package does - on purpose - not use any system shell: https://golang.org/pkg/os/exec/#pkg-overview. You might be able to call Powershell scripts if you add .PS1 to the PATHEXT environment variable but that's just a guess.

So the hooks are working for you now if you are using Batch files?

I will test deeply in a real application, but adding the .bat extension seems to solve the problem

Perfect! It would be nice if you could report back your results, so we can update the documentation accordingly.

Sorry for the delay.
I did a full test and I confirm that all hooks are executed if the file has a .bat extension. I believe this will work also if the hook files are executables with .exe extension.

No worries, thank you very much for help! I updated the docs here: https://github.com/tus/tusd/commit/12f102abf6cbd174b4dc9323672f59c6357b561c
Are you issues now resolved and can we close this issue?

Are you issues now resolved and can we close this issue?

yes


Add package lint tests

Depends on https://github.com/Microsoft/vscode-azuretools/pull/277

Should I wait for this to merge to before I put the changelog for 0.5.0?

Should I wait for this PR for the 0.5.0 release?

No need to wait.  I'll get to this again when I can.

Closing due to lack of activity


Overlapping polylines and multipolylines increase in opacity at Intersection - Why?

Hi,
We're struggling with an odd issue when using multilines. Very simply if you have two or more lines that overlap each with less than 1 opacity, the intersection of the lines has a 'stronger' opacity. A picture is worth a thousand words so here it is :)

The 'strong' red horizontal line in the middle actually has the sam opacity as all the branches but it looks as if the opacity is now 1.0 when its not.
We've been playing about with polylines and multipolylines, various configuration items such as color, weight, opacity, fillopacity, smooth factors, in fact anything we can find to see if we can have an even opacity across all the multiple lines.
The documentation does seem to give any hint about this and none of the forums seem to have anything about this which is odd as we think its a problem.
We're generating all the points as either a single multiPolyline or as multiple polylines. We tried both approaches to see if they made a difference. They don't :)
Any hints or pointers to docs that can help is much appreciated. We don't want to generate a complex polygon and fill it when a simple stroke will work (or should work)
The only link we could find was this
http://www.widecodes.com/0ymVgWkejj/leaflet-overlapping-shapes-opacity.html
which assumes we can't do it but doesn't say it definitively.
Thanks for reading
Rob

This is just the way SVG works, and Leaflet has nothing to do with it. If you want the color to be even across overlapping lines, you have to use opacity: 1.

Ok, thanks for the quick reply.
We need a transparent or semi opaque area, so we'll have to calculate a rather complex polygon to draw.
Rats, thats a couple of days work.
thanks anyway.


Hide more of Reference by default

Based on feedback that folks mostly don't read the text and a desire to get more entries on screen at once on typical devices with low vertical resolution.

Variable names is broken. I intended for it to display everything. It's currently the worst of all worlds.

Hiding the first line of pixels is amusing. We can't lead with an image.


Batch insert of Android version 5.0 failing

In sqlite I am batch inserting my rows but it is failing and throwing error.
The error I am getting is :
SQLitePlugin.executeSqlBatch: failed
android.database.sqlite.SQLiteException: too many terms in compound SELECT (code 1): , while compiling: insert into questions (Qtype,Qname,Raw_json) values (further content) of insert. ...

Please provide a full sample project where error can be replicated.

Same issue here when tried to import json data to local database received from server. It works fine if the no. of records is just few..
Code Snippet...
.......
const uri = api_url;
fetch(uri)
.then(async re => re.json())
.then(async re => {
const { res: res1, err: err1 } = this._insertItems('', re)
// DO SOMETHING
console.log('DONE');
})
.catch((error) => {  this.errorCB('Could not import clubs data');   });
async _insertItems(tableName, items) {
if (!this.db) {
await this.open();
}
const sqlStrArr = items.map((item) => {
const columns = Object.keys(item);
let sqlStr = columns.reduce((sqlSegment, columnName, index, arr) => (
${sqlSegment} ${columnName} ${index + 1 === arr.length ? ')' : ','}
), INSERT INTO ${tableName} ();
sqlStr += columns.reduce((sqlSegment, columnName, index, arr) => (
${sqlSegment} '${item[columnName]}' ${index + 1 === arr.length ? ');' : ','}
), ' VALUES (');
return sqlStr;
});
return await this.db.sqlBatch(sqlStrArr)
.then(() => {
this.successInfo('insert Items Batch');
return { res: ['databases execute sqlBatch success'] };
})
.catch((err) => {
this.errorInfo('insertItemsBatch', err);
return { err };
});
}

@varunprashar5 please provide code sample how you load the data.

Also note that Android 5 is ancient...so support will be limited...

Hi @andpor
I am using react-native-sqlite-storage version 3.3.8
Code Snippet...
This is what i tried to insert data,
const test = [[" INSERT INTO USRH(id, firstName, lastName) values",[9002,"MESSENGER","TEST1"]],[" INSERT INTO USRH(id, firstName, lastName) values",[9003,"DRIVER","TEST1"]]]

Now calling, db.sqlBatch()
    openDatabase.transaction((db) => {
        console.log(db)
        db.sqlBatch(test, function () {
            console.log('Populated database OK');
        }, function (error) {
            console.log('SQL batch ERROR: ' + error.message);
        })
    })

Not returning any response in success and in error.
Also check the console log, it was not showing any method sqlBatch.

I can't see types for sqlBatch => https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-native-sqlite-storage/index.d.ts


Dashboards for Forest website

Issue summary
A little bit of background - we plan to ship a Forest website later this year (see Forest Roadmap 2023). There, we plan to embed some dashboards that will show the status of our long-running nodes.
The dashboards on the website should be in the form of a summary for slightly-but-not-overly-technical people. That is to say; they should expect a small level of technical competence (e.g., understanding the difference between CPU and memory usage) and Filecoin arcana knowledge (epochs, peers), but not details (like the number of ChainExchange p2p messages).
At the moment, we have some basic New Relic dashboards migrated from Grafana. They are a good start, but we need more structure.
Beforehand, we must consider whether we can easily embed the dashboards in New Relic or Grafana on the website. If NR is not possible (to my understanding, it should be fine - given a web application, we could use NR API to request a PDF of the dashboard and embed it in the website), we can consider opening a Grafana endpoint (which would require additional work). Alternatively, the web application could manually generate the dashboards using raw NR API data, which would put more effort on the team responsible for the website.
Tasks

[x] Investigate if and how NR offers to make dashboards public. Summarize the findings in this thread.
[x] If the NR investigation proves that it's not feasible to do with NR, consider local Grafana (or Grafana Cloud?),
[ ] Discuss with the team on the best approach,
[x] #236

Head epoch,
Tipsets validated per minute (this should be always ~2),
Number of connected peers,
Process uptime (single number)
CPU usage,
Memory usage (Process Resident Memory and NOT virtual memory),
Disk usage
All metrics should be absolute, i.e., disk usage should not show 50% because it means nothing without knowledge of the disk size.

[ ] Additional pages with more detailed metrics. This is not directly related to the website functionality, so we can do it later. For now, we can just put the current metrics there.
[ ] Ensure that the results on every chart make sense, both in shape and value,
[ ] Present the dashboard to the team; @lerajk acceptance is required. Implement requested changes.
[x] #238
[ ] Prepare a short guide for the website team on integrating the dashboard into the website.

Acceptance criteria

[ ] Forest and Lotus dashboards are publicly available,
[x] #239
[ ] Dashboards are structured, with the first page/tab offering an executive summary of the node.
[ ] A guide for the website team is ready.

Other information and links

Feel free to split this issue into subtasks. Some can be worked on in parallel.

Stale, at the moment won't do.


Voyager google analytics not working anymore

Laravel version
8.75.*
PHP version
7.4.21
Voyager version
1.6.1
Database
MySQL 8.0
Description
I am trying to display google analytics in my voyager dashboard, but i have an error in my console : "You have created a new client application that uses libraries for user authentication or authorization that are deprecated. New clients must use the new libraries instead."
I have als
Steps to reproduce
I am trying to display google analytics in my voyager dashboard, but i have an error in my console : "You have created a new client application that uses libraries for user authentication or authorization that are deprecated. New clients must use the new libraries instead."
I have also a blank panel instead of getting the Google analytics button.
Expected behavior
It suppose to display the google analaytics data enbedded in my voyager dashboard.
Screenshots
No response
Additional context
No response

It seems that Voyager has no future
I published https://github.com/thedevdojo/voyager/pull/5686 a long time ago, but no one needs it
It's a shame, really.


css: Hide copy-paste button for codeblocks in formatting help overlay.

Fixes the issue raised by @akshatdalton regarding the buggy copy-paste icon for codeblocks in the Message Formatting Help section (https://chat.zulip.org/#narrow/stream/6-frontend/topic/buggy.20copy.20button/near/1142479)

@sumanthvrao I think you should also post a Before and After change.

It would have been better with that, but it's super quick to test and we have the before screenshot on the chat.zulip.org thread.  Thanks for reporting and fixing, folks!


Failed to check latest ledgersql: Scan error on column index 0: converting driver.Value type  ("") to a int32

Hello, I am trying to build stellar(core/horizon/wallet) in my server in all-in-one fashion using lxc containers for evaluation. during that, I found an issue in horizon describing in the following:
issue) Horizon keeps error messages once it's started as ``WARN0031 Failed to check latest ledgersql: Scan error on column index 0: converting driver.Value type  ("") to a int32: invalid syntax pid=30542"
cause) in horizon/src/github.com/stellar/horizon/db/streaming.go, there is a line
MaxHistoryLedger = "SELECT MAX(sequence) FROM history_ledgers"
I don't know about where I can get the correct SQL source for horizon but I used one which I got from https://raw.githubusercontent.com/stellar/horizon/master/src/github.com/stellar/horizon/db/schema/latest.sql
Please correct me if I'm wrong. Though, using the above SQL, at the very first stage, the table history_ledgers does not contain any records using the above SQL.
And when I see the program to find out the cause, I found the following piece of code:
var latestLedger int32
row := db.QueryRow(MaxHistoryLedger)
err := row.Scan(&latestLedger)

As you know, err := row.Scan(&latestLedger) can cause such an error if there are no records in the corresponding table due to a failure in implicit casting of NULL to int32.
That's why the error occurs.
resolution)
I modified it just as follows:
MaxHistoryLedger = "SELECT MAX(sequence) FROM history_ledgers"
to
MaxHistoryLedger = "SELECT coalesce(MAX(sequence),0) FROM history_ledgers"

Please give me an advice in this approach if there is a more efficient way to handle this kind of error.
Thanks

@masahide7 Have you setup the horizon-importer project?  At present horizon depends upon it being up, running and accessible.  This specific error occurs when the you are running horizon against an empty database.
This specific error will go away when we've fully removed the need for horizon-importer, which I am currently working.
Thanks for the report!

This is fixed on master.


Update Lda.php

There's an error on line 243. Which is resolved with try catch.

Hi,
Thanks for the pull request! Could you perhaps provide a test that fails without the change? If you don't feel like providing one I will look into it more when I have next week.
Thanks again, it may take some time but I will probably merge it.
Angelos

Simple example to generate error:
use NlpTools\FeatureFactories\DataAsFeatures;
use NlpTools\Tokenizers\WhitespaceTokenizer;
use NlpTools\Documents\TokensDocument;
use NlpTools\Documents\TrainingSet;
use NlpTools\Models\Lda;
// supposedly the list of documents is in a file that is passed
// as first parameter
if (file_exists($argv[1])
    $docs = file($argv[1]);
else
    die(1);

$tok = new WhitespaceTokenizer();
$tset = new TrainingSet();
foreach ($docs as $f) {
    $tset->addDocument(
        '', // the class is not used by the lda model
        new TokensDocument(
            $tok->tokenize(
                file_get_contents($f)
            )
        )
    );
}

$lda = new Lda(
    new DataAsFeatures(), // a feature factory to transform the document data
    5, // the number of topics we want
    1, // the dirichlet prior assumed for the per document topic distribution
    1  // the dirichlet prior assumed for the per word topic distribution
);

// run the sampler 50 times
$lda->train($tset,50);

// synonymous to calling getPhi() as per Griffiths and Steyvers
// it returns a mapping of words to probabilities for each topic
// ex.:
// Array(
//   [0] => Array(
//      [word1] => 0.0013...
//      ....................
//      [wordn] => 0.0001...
//     ),
//   [1] => Array(
//      ....
//     )
// )
print_r(
    // $lda->getPhi(10)
    // just the 10 largest probabilities
    $lda->getDocumentsPerTopicsProbabilities(10)
);

It will generate error. Because at line 243 in Lda.php it is written.
$count_topics_docs = array();
         foreach ($this->count_docs_topics as $doc=>$topics) {
             foreach ($topics as $t=>$c)
                $count_topics_docs[$doc][$t]++;
         }

$count_topics_docs[$doc][$t] has not been assigned any value at this point so we just cannot add ++ to it.
I solved this problem by using try catch
$count_topics_docs = array();
         foreach ($this->count_docs_topics as $doc=>$topics) {
             foreach ($topics as $t=>$c){
                 try {
                     $count_topics_docs[$doc][$t]++;
                 } catch (\Exception $ex){
                     $count_topics_docs[$doc][$t] = 1;
                 }
             }

There's another issue as well. On line 250 & 252 it is using variable named $limit_words. Which is not defined. It should have been $limit_docs (as this variable is being passed into parameter).
if ($limit_words>0) {
 arsort($p);
 $p = array_slice($p,0,$limit_words,true); // true to preserve the keys
}

to
if ($limit_docs > 0) {
 arsort($p);
 $p = array_slice($p,0,$limit_docs,true); // true to preserve the keys
}

So, do you care about getting the merge or should I just go ahead and fix it?
I am thinking the following if you care to do it yourself for some reason

if (!isset(...)) {} would be more PHP-like
Let's fix the $limit_docs as well
Your example should be made into a test case

Tell me if you want to do this and thanks again for the issue and pull request!!!


Add a proper software license file

I suggest you add a standard open source software license to this codebase in a LICENSE  file, like MIT, BSD, Apache 2.0, etc.

Thanks for the suggestion.
We will update out license agreement shortly.


Bug

Game name: (please, specify the game name)
Engine version: (specify engine version, if known)
Platform: (specify platform, if known)
Error message: Some data left
Stack trace:    at uTinyRipper.Lz4.Lz4DecodeStream.ReadBuffer(Stream stream, Int64 count)
at uTinyRipper.BundleFileScheme.ReadFileStreamMetadata(Stream stream, Int64 basePosition)
at uTinyRipper.BundleFileScheme.ReadScheme(Stream stream)
at uTinyRipper.GameCollection.ReadScheme(SmartStream stream, String filePath, String fileName)
at uTinyRipper.GameCollection.LoadScheme(String filePath, String fileName)
at uTinyRipper.GameStructure.ProcessPlatformStructure(GameStructureProcessor processor, PlatformGameStructure structure)
at uTinyRipper.GameStructure.Load(List1 pathes, LayoutInfo layinfo)    at uTinyRipper.GameStructure.Load(IEnumerable1 pathes, LayoutInfo layinfo)
at uTinyRipperGUI.MainWindow.LoadFiles(Object data)

Hi

Your game uses the Addressable system which is not supported by uTinyRipper.

Support for Unity versions up to 2020.2.0 has been recently added to my AssetRipper fork.


Convert to Typescript

I love typescript, is there a way I can help with this?

Would love help with this. I'm pretty much a noob when it comes to Typescript. Hoping to get an initial PR out tomorrow to get it started. Will ping you on it for review, then we can divvy up the conversion for the rest of it (or you can just see the prs I make and correct me when I do something that's not a best practice :)

I'd like to actively help, that way I get up to speed on the project and I can more easily help with developing stuff after the conversion :)

Got the initial bit out in a PR: https://github.com/crookedneighbor/shambleshark/pull/41
If you have time to look over it, it'd be greatly appreciated!

I'll take a look! I'd put myself at "intermediate" level, worked for a year in a team on an Angular 5 project. No work experience with JavaScript though, more of a beginner on that.

Added a CONTRIBUTING doc https://github.com/crookedneighbor/shambleshark/blob/master/CONTRIBUTING.md
Feel free to make PRs to that as well as you stumble through the project.

I'm going to start converting the tests over to typescript first, because I think that'll make the transition for the actual source code so much easier.

Good idea! I think test driven development is a good approach for this


🐛 BUG - Lots of errors in the console

Cc: @JackDevAU @BrookJeynes @bradystroud @william-liebenberg @danielmackay

Hi Team,
Describe the Bug

There is currently a lot of errors being logged to the console.
To Reproduce
Steps to reproduce the behavior:

Go to ssw.com.au/rules
Open console
See errors

Expected Behavior

No errors in the console
Tasks

[ ] Investigate
[ ] Fix

Screenshots

Figure: Errors in the console
Thanks!

Update - The errors we've been able to remove so far are:

Updated StaticQuery to useStaticQuery -> removes Gatsby deprecation warning.
Fixed value passed into fontawesome icon. Was a number, required a string -> removes invalid type error.
Changed absolute link from Link to a. Link only allows relative links -> removes incorrect use or  warning.
Updated Tooltip to take in className property. Removed nested button warning.
https://github.com/SSWConsulting/SSW.Rules/pull/1243 - Uncaught DOMException: Failed to construct 'PresentationRequest': The document is sandboxed and lacks the 'allow-presentation' flag.


Newly added objects show port as connected when it is not

This usually happens to me with a new graph and i add a Box object

newly added (sub-)graphs do this. internally that slot is connected, only it's connected to something else..

but the 3D output slot is not connected, right ? It has something in the nested patch proxied to the output, but that output is not connected (hence box is not visible). To me, this seems to be clearly a bug. If not, it should be, as it doesnt make sense.

This seems to work correctly nowadays.


waitpid() returns EINVAL on macos for WaitPidFlag::WSTOPPED

First of all, thanks for this crate! It's very pleasant to use.
I'm trying to port my code from linux to macos. I use fork-exec-waitpid to spawn and monitor processes. Noticed that passing WaitPidFlag::WSTOPPEDis needed on linux to achieve what I want, but it produce error on macos. (The error is Sys(EINVAL))
I'm not so familiar with macos, but read through the manual page of waitpid it does not mention WSTOPPED, so the invalid argument error looks acceptable. My question would be, can you make it not available this enum value for macos? I would prefer to have this as a compile-error, rather than a debug process. :smile:

It seems that OSX does use WSTOPPED, but only for waitid instead of waitpid?
https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/wait.h

I was not dig deep enough. :smile: Thanks to clarify it for me!


Change branding to "SUSE Stratos Console"

Codecov Report

Merging #238 into master will decrease coverage by 9.2%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #238      +/-   ##
==========================================
- Coverage   62.86%   53.65%   -9.21%
==========================================
  Files         986      910      -76
  Lines       32096    25043    -7053
  Branches     4505     4316     -189
==========================================
- Hits        20176    13436    -6740
+ Misses      11920    11607     -313


Backfill national with metadata

In trying to ingest into our data lake we want to set up a pipeline to pull historical forecasts for backfilling in cases the pipeline has failed and for training purposes. Should it be possible to run something like this?
params = {'include_metadata': True
'historic': True,
'start_datetime_utc': "2024-07-01 00:00:00",
'end_datetime_utc': "2024-07-02 00:00:00"}
url = https://api.quartz.solar/v0/solar/GB/national/forecast
r = requests.get(
url=url,
headers={"Authorization": "Bearer " + access_token}, params=params
)
Running this I get a 500 status (internal server error).
The endpoint works if I set include_metadata to False and specify a forecast_horizon_minutes so I have previously just iterated through forecast_horizons to backfill data for my personal consumption. However this doesn’t work with include_metadata = True (which we would like to keep)

Would it also be able to address this for GSP forecasts? E.g.
params = {'include_metadata': True,
           'start_datetime_utc': "2024-07-01 00:00:00",
          'end_datetime_utc': "2024-07-02 00:00:00"}
url = "https://api.quartz.solar/v0/solar/GB/gsp/forecast/all/"
r = requests.get(
    url=url,
    headers={"Authorization": "Bearer " + access_token},
    params=params
)

This gives 200 status code but empty data

National: You could try something like https://api.quartz.solar/v0/solar/GB/national/forecast?include_metadata=true&start_datetime_utc=2024-07-01&end_datetime_utc=2024-07-02&creation_limit_utc=2024-07-01, so including a creation_limit_utc, but the does take quite long unfortunately. We have optimized our database to make the recent data very fast to access

For GSP: Similar as above `creation_limit_utc. This however might take a long time.

I run things in swagger https://api.quartz.solar/swagger, and sometimes it takes longer there than it does in cmd line, or python

I think in general if you are trying to backfill with forecasts then you should use creation_limit_utc otherwise you will just get the latest forecast, which will be more accurate than real time forecasts


Form validation library validate by callback rules behavior

Hello. I'm updating project from codeigniter v2 to v3.
And found interesting behavior how form validation library works with callback rules in v3.
Problem:
If field is not required it will be anyway validate by callback even field is empty or not isset in POST.
But in the same time if field has numeric rule and field value is empty or not isset in POST - validation skips.
It's different behavior in same mechanism for built-in rules and my own.
In codeigniter 2 if field was not required and had empty POST data - all validate is skipped:
// Is the field required?  If not, if the field is blank  we'll move on to the next test
if ( ! in_array('required', $ex, TRUE))
{
	if ( ! isset($_POST[$field]) OR $_POST[$field] == '')
	{
		continue;
	}
}

What is the reason of new behavior? It's make a hard to understand how app will work.

A lot of things have changed, but this is not one. CI2 also did execute callbacks for rules that are not required.
The earliest CI version tracked here is 2.0.3 and it doesn't contain the code snipped you've posted; a google search suggests that it is from a late 1.x release.
Also, for support-like request like this one, please post on our forums instead.

The main issue's goal not about codeigniter 2 or 3. Codeigniter 2 behavior was for example.
I wrote about codeigniter2 because old behavior of validation library was more obvious.
I  don't understand why rule: 'greater_than[5]' for 'test_field' return TRUE if 'test_field' is not isset in POST.
It means that 'greater_than' not executed if field is not set in POST but in same time any my own callback will execute anyway even if field is not isset in post. It's so curiously.
I expect that if i field must be filled up i will use REQUIRED.


Fix value for DataType.Source.SHIFTING_REAR_GEAR

Fixed value for data type source SHIFTING_REAR_GEAR.

Closing this PR as this issue will be fixed by #16.


Update security-center-install-endpoint-protection.md

Added details to specify the specific products that this recommendation is looking for (Microsoft Antimalware & TrendMicro).

Hi @jboeshart, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@jboeshart : Thanks for your contribution to the Azure documentation! The author, @TerryLanfear, has been notified to review your proposed change.

@jboeshart - Thank you for your contribution! I'm reviewing with dev team to see if anything new will be added in the next few days.  If yes, we'll incorporate that too.  I'll get back to you soon with the results.  Thanks, Terry

@jboeshart - Thank you, again, for your contribution. I am signing off on this change.  Your PR will be merged soon.
#sign-off

#sign-off

Sounds good, thanks @TerryLanfear!

@jboeshart - Thanks for your contribution to the Azure docs. On November 16th, we announced the availability of our Azure technical documentation in a new location on docs.microsoft.com. You can read about it on our team blog. This change means the article source lives in a new GitHub repository. Because there are some changes in the source markdown as a result of the move, we can’t pull your contribution over to the new repo without creating a ton of merge conflicts. We invite you to resubmit the change (if you are willing) to the new version of the article at https://docs.microsoft.com/en-us/azure/security-center/security-center-install-endpoint-protection. Thanks for your understanding.

@jboeshart - Hi, I can make the change for you so you don't have to resubmit again.  I'll follow-up when the change is published.  Thanks!

Hi @jboeshart, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (jaboes). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

@TerryLanfear I had some other doc updates that I needed to resubmit so I went ahead and submitted this one as well.
https://github.com/Microsoft/azure-docs/pull/71


Improve the text at the top of the home page

Received the latest home page text from the product team.

etyr


SALTs should not be allowed to be empty when starting SATOSA

SATOSA supports SALTing in various places, which is good. However if SALTs end up empty (neither being set via proxy config or env variable) this does not yield a WARN (or maybe even a full stop).
Not SALTing is probably not a good idea from a security point of view

I can't reproduce this on master with either STATE_ENCRYPTION_KEY or USER_ID_HASH_SALT. Is any other config param affected?


GH-398 added support for container customization

PLease see https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit/issues/139 for more details
Resolves #398

Looks good. Merged upstream.


Resize GUI windows to fit on half screen

The water calibration dialog window is too wide to fit in the monitors on 446. It either needs to be resized, or configured to allow scrolling when its smaller (I dont know how @hanhou did this)
this is a list of all the window uis.

[x] Water calibration (@alexpiet done)
[x] Metadata (@alexpiet done)
[ ] Laser calibration (@XX-Yin )
[ ] Optogenetics (@XX-Yin )
[x] Licks distribution
[x] AutoTrain
[x] Camera
[x] TimeDistribution

I was using the Scroll Area of Qt.
I also used the Layout to make the GUI resizable.

@XX-Yin

If you plan on doing optogenetics in 446, please resize the laser calibration and optogenetics panels to fit on a half screen.
I think its a good idea even if you aren't going to do optogenetics in 447.

@XX-Yin

If you plan on doing optogenetics in 446, please resize the laser calibration and optogenetics panels to fit on a half screen.
I think its a good idea even if you aren't going to do optogenetics in 447.

@alexpiet
This seems to be a low priority. I can make changes when we need to monitor two windows. 1) Optogenetics is not monitored all the time, it is usually only open when the GUI starts, and we do not need to monitor two windows at the same time. 2) There is only one opto setup each computer.

Soon the 447 computers will be half screen sized, and the opto dialog and laser calibration dialog will be unusable in 447. @XX-Yin you should take care of this soon

@XX-Yin is this something that you can implement? Or do you never expect RAs to perform opto experiments in the behavior rooms?

@ellahiltonvano I don't expect the RAs to run opto experiments at this stage.

@alexpiet given this info does it make sense to close this issue or should we keep it open?

Its fine with me to close it. Lets just be aware that it will be very difficult to do either laser calibration or optogenetics in 446 or 447

Closing since Xinxin will not have RAs perform opto at this point. If he would like opto in the future, windows need to be resized first.


”Balș”, ”Boureni”, ”Coasta Măgurii” are listed in the drop-down menu

Description:
When user writes ”Balș”, ”Boureni”, ”Coasta Măgurii” the locations appear in the drop-down menu next to the comune and the county which is a part according to the law.
Precondition:
The website is up an running.

Step 1
Write in the search bar "Balș"

Expected results
The location appears in the drop-down menu as "Sat Balș, IAȘI (Balș)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Boureni"

Expected results
The location appears in the drop-down menu as "Sat Boureni, IAȘI (Balș)".

Step 4
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 5
Write in the search bar "Coasta Măgurii"

Expected results
The location appears in the drop-down menu as "Sat Coasta Măgurii, IAȘI (Balș)".


Update en.xml

Minor corrections for the best understanding in English.

@Jhovany200 I hope you can read that
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism-image-management-command-line-options-s14#export-image

Specifies the type of compression used for the initial capture operation. The /Compress argument does not apply when you export an image to an existing .wim file, you can only use this argument when you export an image to a new .wim file. The maximum option provides the best compression, but takes more time to capture the image. The fast option provides faster image compression, but the resulting files are larger than those compressed by using the maximum option. This is also the default compression type that is used if you do not specify the argument. Use the recovery option to export push-button reset images. The resulting files are much smaller in size, which in turn, greatly reduce the amount of disk space needed for saving the push-button reset image on a recovery drive. The destination file must be specified with an .esd extension. The none option does not compress the captured image at all.

I already read it, but it is translated from Chinese into Spanish and English and both say it is "Compress" and then "Max", "Fast", etc.

ok


Meeting 03.08

We met to start implementing communication using ROS2 and pyserial.
We successfuly connected Arduino and set up threader serial reader.
We plan to set up working data parsing and sending on the next meeting.

@niemiaszek @miki87278 Thank you for the meeting. Here is a quick poc of a serial communication with a arduino.
import rclpy
import serial
from serial.threaded import Protocol, ReaderThread
from std_msgs.msg import String

rclpy.init()
node = rclpy.create_node("tcm_bridge")
pub = node.create_publisher(String, "dummy_topic_pub", 10)

class SerialProtocol(Protocol):
    def __init__(self):
        super().__init__()
        self.transport = None

    def connection_made(self, transport):
        self.transport = transport
        print("Serial connection established.")

    def data_received(self, data):
        self.handle_line(data)

    def connection_lost(self, exc):
        self.transport = None
        if isinstance(exc, Exception):
            raise exc

    def handle_line(self, line):
        pub.publish(String(data=str(line)))

def main():
    connection = serial.Serial()
    connection.port = "/dev/ttyACM0"
    connection.baudrate = 115200
    connection.parity = serial.PARITY_NONE
    connection.stopbits = serial.STOPBITS_ONE
    connection.bytesize = serial.EIGHTBITS
    connection.open()
    reader = ReaderThread(connection, SerialProtocol)

    reader.run()

    try:
        while True:
            pass
    except KeyboardInterrupt:
        pass

    reader.stop()

if __name__ == "__main__":
    main()


Results of User Tests 2023-06

Following HIA-insights-2023.pptx

[ ] 1. Language selector to be designed and implemented according to the feedback. → rodekruis/helpful-information#638
[ ] 2. Check the quality of the translation
[ ] #764
[ ] 4. Navigation/directions – solution to be investigated further (maybe categorize per region)

[ ] #777

[ ] 5. Accessibility:

[ ] #765
[ ] #766

[ ] 6. Further research to be done by the design team related to improving the affordance of the buttons & solution to be defined and implemented

Anca and Elwin working together
Anca and Jonath working together
Anca and Elwin working together
Elwin and Jonath working together, then involving Anca
Anca and Elwin working together
Anca in the lead

Decision: working in sprint cycles of 2 weeks

Input Carry/Tracey:
Additional UT insights:

More visible that HIA is from the Red Cross.

From previous UT insights:

What can the Red Cross do for me?
Journey for someone who is new in/arrives for the first time in Amsterdam

Possibility to highlight two buttons:

What can the Red Cross do for me?
What to do/where to go first? (linked to primary target group)


feat(next): Optimize the space information display

close #656

[x] Display the number of strategy and network
[x] If threshold amount is a large number, use abbreviations
[x] Display a maximum of one entry in strategy, replace the excess entries with an ellipsis
[x] Display a maximum of three icons in network, replace the excess icons with an ellipsis
[x] When hover over the title(threshold, strategy, network), add underline. (remove tooltip effect)
[x] Click the title to display the details popup


Optimize transforms.image.resize

I optimized transforms.image.resize function.
With Pillow backend, we do not have to transpose the image.
I moved transpose into _resize (cv2).
With this optimization, Pillow backend become about x1.5 faster.
This PR is based on #73. After it is merged, I will rebase this PR.

With this optimization, Pillow backend become about x1.5 faster.

Great job!

Thank you for merging #73. I rebased this PR on master.

LGTM!


fixes resizing when two jQuery are installed with native JS

works also in IE

Coverage increased (+0.002%) to 88.067% when pulling 1e7f1c89b8b696ca9cf7c55b35f5160a58bf368f on genti94:fixes-resize-when-two-jquery-are-installed into e904463cff8b78df8dc5b7fa9671aef49ba03d4d on divio:develop.

can you please adapt unit tests?

Coverage increased (+0.002%) to 88.067% when pulling 1e7f1c89b8b696ca9cf7c55b35f5160a58bf368f on genti94:fixes-resize-when-two-jquery-are-installed into e904463cff8b78df8dc5b7fa9671aef49ba03d4d on divio:develop.

Coverage increased (+0.002%) to 88.067% when pulling e44a55fb697e41e9ec38a6bcb8aa04b4f38e969c on genti94:fixes-resize-when-two-jquery-are-installed into e904463cff8b78df8dc5b7fa9671aef49ba03d4d on divio:develop.


⚠ Bofrost.lu has degraded performance

In 4b7c459, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1455 ms

Resolved: Bofrost.lu performance has improved in 68145e1.


Surface TODOs separately from other warnings

From @Andersmholmgren on November 7, 2015 23:43
Currently (in Intellij at least) the TODOs are marked as warnings indistinct from other warnings. It would be nice to see
3 TODOs
4 typos
1 warning

I am assuming that the analyzer is not surfacing this information. If it is then I will refile in the dart plugin for intellij
Copied from original issue: dart-lang/analyzer_cli#77

From @bwilkerson on November 8, 2015 4:22
The analysis server sends back a different error kind for TODO's, so IntelliJ should be able to display them differently.

TODOs highlighted as warnings in IntelliJ IDEA is a bug at IDE side that is already fixed.


Performance issue when using json mode

Hello,
We are currently integrating the splunk library logging.
During some performance tests we noticed that a lot of exceptions were thrown when trying to send message with default json mode.
The message payload of the events we are sending is just text (no JSON)
Here's a flamegraph putting this fact in evidence

My interrogation comes from the code that creates the JSON event: there's a systematic call to GSON library parser even if it's possible to pass a non JSON structure.
https://github.com/splunk/splunk-library-javalogging/blob/main/src/main/java/com/splunk/logging/serialization/EventInfoTypeAdapter.java#L31-L36
Is there any obvious reasons for this behaviour ?
Performance wise, each time, there's a cost to start the parsing and then creating the exception (which is costly in Java) because we don't send JSON at all.
Is it possible to improve the situation ?
It's not a problem for me to do a Pull Request, if you tell me what to do to.
Regards

Hello @bparmar-splunk, thanks a lot for your answer.
I am sorry but I don't really get why I should switch to RAW mode, the event JSON structure is really a good match for Java log events.
In addition to that I want to benefit from the extraction of metadata of the log event (thread name, severity, logger...) provided by the library.
Moreover the source type being json,  facilitates the indexing/extracting on these fields in Splunk UI side.
Finally the this source type avoid, in case of exception, to consume CPU on Splunk indexer side to find the boundaries of the logEvents by using regular expression, the stacktrace being hold in json structure.
For sure,  I could use the RAW type, but then I'll have to carbon copy what's done in HECEventSerializer + EventInfoTypeAdater and specify the sourcetype as json, and I would need to create an specific appender for my logging library to avoid repeating that in my code.
Lastly, the fact that this library provides a whole set of handlers/appenders for a lot of logging libraries makes me thing that the way to consume it is with plain text message rather than JSON, as what is demonstrated here
To avoid non backward compatible change, would you consider adding a flag to avoid parsing the message as JSON structure and consider it as a plain string in the EventInfoTypeAdater ?
If you agree we could provide a PR to bring this change in
Thanks!

Hi @vietk,
Thank you for your inputs.
As I mentioned earlier, EventInfoTypeAdapter class is created for serialising data to JSON, and it is only used for Gson instance initialisation.
Its main purpose is to convert data to JSON. If I modify the behaviour of that class by one flag then the purpose of that adapter will get violated.
In terms of Single Responsibility principle, ideally that class should not be manipulated with a flag.
There should always be an alternative to get the work done. But modifying its actual behaviour would make that generic.
Please share your thoughts on this.

Hi @bparmar-splunk,
Possibly there's a confusion between the log message string (containing JSON or not) and the HEC format type (JSON or Raw) ?

log.info("my message") with type JSON will send over the wire { "event": { "message": "my message" } } <- That looks like the default config/usage of the lib, so should be optimized.
log.info("{ \"myevent\": \"mymessage\" }") with type JSON will send over the wire { "event": { "message": { "myevent": "mymessage"} } }
log.info("my message") with type Raw will send over the wire my message

I've written a similar benchmark of com.splunk.logging.HttpEventCollectorLoggingHandler that shows the same contention in case 1., due to synchronized send method + cost of JsonSyntaxException stacktraces: https://github.com/rquinio1A/quarkus-logging-splunk/blob/feature/jmh-benchmark/integration-test2/src/test/java/io/quarkiverse/logging/splunk/HttpEventCollectorLoggingHandlerBenchmark.java

Hi @rquinio1A,
Thank you for clarification.
@vietk,
We are open for the PR to support your use case. Please let us know in case of any further queries.


pythonPackages.uamqp: fix build on Darwin

Description of changes
This PR fixes the following build error on Darwin:
-- Check for working CXX compiler: /nix/store/6kbh4b2pyq8d20cs8avq40fc7m68jw33-clang-wrapper-11.1.0/bin/clang++
-- Check for working CXX compiler: /nix/store/6kbh4b2pyq8d20cs8avq40fc7m68jw33-clang-wrapper-11.1.0/bin/clang++ - broken
CMake Error at /nix/store/2vapcv5rjzf41nkfylg1inlpkhi738r7-cmake-3.24.0/share/cmake-3.24/Modules/CMakeTestCXXCompiler.cmake:62 (message):
  The C++ compiler

    "/nix/store/6kbh4b2pyq8d20cs8avq40fc7m68jw33-clang-wrapper-11.1.0/bin/clang++"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /tmp/nix-build-python3.10-uamqp-1.5.3.drv-0/uamqp-1.5.3/build/temp.macosx-10.12-x86_64-cpython-310/cmake/CMakeFiles/CMakeTmp

    Run Build Command(s):/nix/store/blfda540ckpisxpzvkdh5aaiddyr80ap-gnumake-4.3/bin/make -f Makefile cmTC_4313f/fast && /nix/store/blfda540ckpisxpzvkdh5aaiddyr80ap-gnumake
-4.3/bin/make  -f CMakeFiles/cmTC_4313f.dir/build.make CMakeFiles/cmTC_4313f.dir/build
    make[1]: Entering directory '/private/tmp/nix-build-python3.10-uamqp-1.5.3.drv-0/uamqp-1.5.3/build/temp.macosx-10.12-x86_64-cpython-310/cmake/CMakeFiles/CMakeTmp'
    Building CXX object CMakeFiles/cmTC_4313f.dir/testCXXCompiler.cxx.o
    /nix/store/6kbh4b2pyq8d20cs8avq40fc7m68jw33-clang-wrapper-11.1.0/bin/clang++   -fPIE -MD -MT CMakeFiles/cmTC_4313f.dir/testCXXCompiler.cxx.o -MF CMakeFiles/cmTC_4313f.d
ir/testCXXCompiler.cxx.o.d -o CMakeFiles/cmTC_4313f.dir/testCXXCompiler.cxx.o -c /tmp/nix-build-python3.10-uamqp-1.5.3.drv-0/uamqp-1.5.3/build/temp.macosx-10.12-x86_64-cpyt
hon-310/cmake/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
    Linking CXX executable cmTC_4313f
    /nix/store/2vapcv5rjzf41nkfylg1inlpkhi738r7-cmake-3.24.0/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4313f.dir/link.txt --verbose=1
    /nix/store/6kbh4b2pyq8d20cs8avq40fc7m68jw33-clang-wrapper-11.1.0/bin/clang++ -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_4313f.dir/testCXXC
ompiler.cxx.o -o cmTC_4313f
    ld: library not found for -lc++abi
    clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
    make[1]: *** [CMakeFiles/cmTC_4313f.dir/build.make:100: cmTC_4313f] Error 1
    make[1]: Leaving directory '/private/tmp/nix-build-python3.10-uamqp-1.5.3.drv-0/uamqp-1.5.3/build/temp.macosx-10.12-x86_64-cpython-310/cmake/CMakeFiles/CMakeTmp'
    make: *** [Makefile:127: cmTC_4313f/fast] Error 2

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin
[ ] aarch64-darwin

[x] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@ofborg build python310Packages.uamqp


docs: add quickstart example of API

we should add a samples/quickstart.js demonstrating how to use the API.

Looks like the samples/ folder contains files that are empty? Very misguiding...
https://github.com/googleapis/nodejs-datalabeling/blob/master/samples/quickstart.js
Bug bashing:
b/134740085

fixed by https://github.com/googleapis/nodejs-datalabeling/pull/88


Incongruent Response Curves and Contribution Calculations in terms of ROI

Discussed in https://github.com/google/lightweight_mmm/discussions/49

Originally posted by xijianlim August  1, 2022
Hi all, this is something I've been noticing the provided code base using the adstock-hill . The response curves (in terms of ROI) do not match the contribution/cost ratios in the contribution dataframe outputs. This is one example:

As you can see, the ROI via the function plot.create_media_baseline_contribution_df will provide a ROI 11.9 (Contribution from the training set is 2820, impressions is 9468 and an average price of 0.025 would mean $236 for cost, yielding $11.9).
However, the Response curves clearly show a ROI well below 1 and hitting its diminishing profile.
To help emphasize this discrepancy, ive amended the code to return a dataframe from "plot.plot_response_curves"

This example was found using the util functions to generate the data.

Hello @xijianlim ! Thanks for reporting this one!
There are a few small nuances that could lead to some difference in response curves vs contribution calculation. Although the difference that you report here seem bigger than I would expect.
I see that you are currently running a geo model. Could you confirm if you see this same issue on a national model? Just so I can rule some things out.
Thanks

Hello again @pabloduque0 . Yes the same thing happens at the national model, and yes there were extra features in the model

If I may offer an idea for the Response Curves: instead of using the media ranges and constructing them using the mmm.predict function, would it be better if you feed them through the adstock-hillfunction equation but using the coefficients from the model?

I can confirm that constructing the response curves using the trace parameters (beta_media, lag_weight, half_max_effective_concentration and slop) as per above has resolved the issue. I've modified this in my version of the code base. I thought I'd share this with you as this has closer alignment with the media contributions.

Hello @xijianlim !
Thanks for your response.
There are a couple reasons why those two are designed differently. Mainly the response curves are a forward looking and the other approach is strictly backward looking. However for that we need to make a couple assumptions about lagging and extra features that might not be what users want in some scenarios. I agree that we should offer the flexibility to not take into account those assumptions, or make them optional or similar.
Let me looks into it a little bit and get back on this one.

@xijianlim How did you go about plotting the response curves on the spend vs. KPI axis? I can't seem to make the dimensions or values work for my use case using your function above.

@xijianlim How did you get media_mix_model.trace['beta_media'].mean(axis=0)? It says 'beta_media' is not defined

were be able to plot it?

Hi, sorry for the delay in replying.  Unfortunately I can't share the exact code because it is now my company's PI but i'll demonstrate how you can plot this.

Hi, thank you very much
On Wed, Jun 14, 2023 at 12:06 xijianlim @.***> wrote:

Hi, sorry for the delay in replying. Unfortunately I can't share the exact
code because it is now my company's PI but i'll demonstrate how you can
plot this.
—
Reply to this email directly, view it on GitHub
https://github.com/google/lightweight_mmm/issues/51#issuecomment-1590601232,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOSU3722LT3LAFPZLLI4HQLXLFPJFANCNFSM55JCH5DQ
.
You are receiving this because you commented.Message ID:
@.***>

@pabloduque0 @steven-struglia @MuhammedTech  and @hawkinsp I've created a collab book showing examples of how you can build functions to export these curves as well as channel tuning
https://colab.research.google.com/drive/1zKHmT_CR6AmVbH-4PdsmUJdumMadcmrO#scrollTo=WcYeesq4w3jT

Hi everyone,
I am following up on @xijianlim 's discussion about saturation curves. I was able to build the curves using the model's estimated parameters from scratch. However, I'd like to understand the details behind how LightweightMMM generates these curves. Could someone provide some additional information?
In a related thread, @pabloduque mentioned that "mainly the response curves are forward looking and the other approach is strictly backward looking." I'd appreciate it if someone could clarify the meaning of that.
Thanks!

Even though modifying the response curves function to calculate the response from the fitted parameters from the model, I'm still struggling to understand how to interpret this curve because even taking into account the “lag weight” there's no time dimension in this graph, so would it make sense for me to analyze the ROI of each point and consider the inflection point as the maximum ROI?  Since part of the effect of my spending would return in the coming periods?

Even though modifying the response curves function to calculate the response from the fitted parameters from the model, I'm still struggling to understand how to interpret this curve because even taking into account the “lag weight” there's no time dimension in this graph, so would it make sense for me to analyze the ROI of each point and consider the inflection point as the maximum ROI? Since part of the effect of my spending would return in the coming periods?

Response curve are basically industry terms to describe the diminishing effect of revenue being attributed from money being spent on a particular marketing channel. For example. lets just say $50 on Youtube yields $300 return in revenue from your past activity. That is a point on your curve (x-axis being spent and y-axis being revenue). Now on your same curve you can see that if you were to spend $100, the projected revenue is $400. We can say that youtube's effect on spend is diminishing. In all cases in the industry, your clients only care about the bottom line and coming to your model to determine where to optimise spend knowing that everything has a diminishing effect. And in every case, the industry standard is to recommend adjusting only a 10%-20% threshold for every channel.  The "Lag weight" and other effects that affect the curvature of the response curves can be see here https://rhydhamgupta.medium.com/transformations-in-mmm-modelling-7fad3e4f8fe5


Why no get_mut?

Is there a reason why this crate does not implement a fn get_mut(&self) -> Option<&mut T> method?
Given that the container is thread-safe I would guess that this would be safe to do and useful (I have a use case for this, which currently forces me to use a Threadsafe<RefCell<T>>: adding a runtime check where none should be needed).

An unsafe method returning a raw pointer would be useful.

You would be able to call it twice on the same thread, leading to an aliasing mutable reference.
let a = tls.get_mut().unwrap();
let b = tls.get_mut().unwrap();
// UB!

@Kestrer I might be thinking naively here so apologies in advance, I also haven't actually looked properly at the code base.
If the only reason get_mut doesn't exist is because you could call it twice in the way you've described, could you not just specify &mut self on the get_mut method and not use it? This way the compiler would simply forbid improper use.

@AshleySchaeffer I believe that would be sound. Most of the time you’d want iter_mut, and having unique access to a ThreadLocal is reasonably rare anyways, but you could open a separate issue for it.


API improvements for tsserver/services

Hi. I am working on integration with tsserver (in fact we are using 'tsserverlibrary.js') in IDEA / WebStorm.
It would be great add some new functionality to the service. It will allow us significantly improve the integration.

We need a service method which will return all detailed completion items. Similar to "#getCompletionsAtPosition" but with detailed information. Right now I have to use 'pure' information or call slow  "#getCompletionEntryDetails" for all items.

(Optionally) We need an option to get navigation information for a whole file. I am not sure that it's the best solution but a similar integration works fine for Dart language. We have a lot of built-in typescript inspections and all the inspections use the navigation information.

"#getCompletionsAtPosition" but with detailed information. Right now I have to use 'pure' information or call slow "#getCompletionEntryDetails" for all items.

the issue is not that getCompletionEntryDetails is slow, the issue is that generating all that information is slow. so if getCompletionsAtPosition returned all information for all entries, it is going to be unusable. think for instance for a global completion,. in a typical project, this would be thousands of symbols. doing a full resolve on these can take in the order of 800-1000 ms.
the idea here is that user usually wants information about a few items in a completion list. so instead of spending all the time to generate them then not using them, we would generate them on demand with a call to getCompletionEntryDetails.

(Optionally) We need an option to get navigation information for a whole file. I am not sure that it's the best solution but a similar integration works fine for Dart language. We have a lot of built-in typescript inspections and all the inspections use the navigation information.

can you elaborate on what you mean by "navigation" information.

@mhegazy

the idea here is that user usually wants information about a few items in a completion list. so instead of spending all the time to generate them then not using them, we would generate them on demand with a call to getCompletionEntryDetails.

Yes, it is a good point. In fact I want detailed information for (example) 10 first items. May be we can pass several strings to #getCompletionEntryDetails?

can you elaborate on what you mean by "navigation" information.

Hi. I am working on integration with tsserver (in fact we are using 'tsserverlibrary.js') in IDEA / WebStorm.

@anstarovoyt  I know it's out of the scope of this issue, but perhaps you could be interested with https://github.com/angelozerr/typescript.java which provides https://github.com/angelozerr/typescript.java/tree/master/core to communicate with tsserver with Java client. It should be fantastic if we could have a "commons" tsserver Java client for any Java IDE (WebStorm, Eclipse, Netbeans, etc)

Yes, it is a good point. In fact I want detailed information for (example) 10 first items. May be we can pass several strings to #getCompletionEntryDetails?

sure. this sounds reasonable, though I would say the perf for a small number of entries would be marginally better than what you would get with multiple requests.

is this still needed?


Setting advanced values in configuration file

I would like to set values in the redis.config under "Advanced" such as hash-max-ziplist-entries.
Is there a preferred method for doing that?
Would a new role variable for a redis.config file to override the default tempting solution be an option?
Thanks,
Ben

Would a new role variable for a redis.config file to override the default tempting solution be an option?

Absolutely. I can add some of those more advanced values in, or you can submit a PR if you'd like.
I've considered adding a free-form value which allows the user to specify extra parameters which aren't yet templated, this sounds like a good reason to do that as well.

Thanks. I will try and submit a PR soon!
In the meantime if anyone is interested, my quick and dirty workaround involving ansible:
  tasks:
    - copy: src=./redis.conf dest=/etc/redis/6379.conf
    - service: name=redis_6379 state=restarted


Fixed the issue which response error code and body were never submitted to response filters.

Running response filters on 'nil' response was problematic and not very helpful. I.e. if response filter function uses channel, etc. Therefore, it limits the possibility of response filter doing things based on status code 500 or body which contains the error.

Any thoughts? Or should I close the pull request? Thanks.

Hi,
I apologize for not responding. I appreciate every pull request and yours somehow slipped between the chairs.
My problem with your commit, is, it prevents the user from sending a custom error message if the request was unsuccessful.
For example, if someone wants to first try and fetch content from the web, and if that not available, use his own internal cache, this would be impossible with your commit.
Moreover, one can implement your commit by a simple response filter.
So I'm not sure if users would benefit from this change.
What do you think?

Ah, that makes sense and thanks for the tips. I'm going to close this one then!


Fix bad compressed texture size validation errors

This is for gitlab issue #168.
The image<->buffer copy validation was checking against texel block sizes, but needed the block size in bytes. Added a new helper function to access these values and corrected the bad validation errors and renamed existing util function to match the spec.

Fix pushed to Master, cherry-picked into GL 1.0 branch for gitlab issue #168.


Implement L2 Costs page

Resolves L2B-4619, L2B-4615, L2B-4709, L2B-4620, L2B-4458

why do we have rhino.fi lol wtf

LGTM, please address above comments


Way to selectively turn off adding to history?

Is there a way you would recommend for selectively toggling on and off saving changes to the history stack?
In particular, I want certain actions on fabric canvas to be ignored when undoing / redoing.
I thought I would be able to use canvas.offHistory() and canvas.onHistory() to disable saving state when adding selected objects, e.g.
    canvas.offHistory();
    canvas.add(obj);

    canvas.renderAll();
    canvas.onHistory();

but this still fires history:append

Hello, could you test without call the canvas.onHistory() ? Because the onHistory may fire history:append.
Thanks,

Thanks for your response!
Yes - using canvas.onHistory() fires history:append - I'm trying to turn history back on for all other objects, though.
In other words - every time a user places an object on the canvas, I'm actually placing two objects – one that's visible to the user, and one that's only used for exporting from the canvas (in my case, for printing).  I always want the visible object to be added the history, but the hidden object shouldn't be so that the user doesn't have to hit the undo / redo button twice.
function addToCanvas(){
     // save the visible obj1 to history
     canvas.add(obj1)

     // ignore the hidden object obj2 from history
     canvas.offHistory();
     canvas.add(obj2);
     canvas.onHistory();
}

This is a very nice user case. I think we should consider disable history as object specific. What I mean, if we add such a flag
obj2.disableHistory = true like. Then plugin should consider this object must removed from the history stack at all.
I think we need to develop such kind of a feature.

Hello,
i have the same kind of issue when calling setActiveObject method, i don't want another undo object beeing pushed into the stack, my solution is for now :
this.canvas.historyProcessing = true;
this.canvas.setActiveObject(textbox);
this.$nextTick(() => {
    this.canvas.historyProcessing = false;
})

i'm using the nextTick method from vuejs, but a setTimeout will work the same way i think.


HTML

HTML
User Story
As a bootcamp student
I want the prework notes to be structured on a webpage
so that I can easily find and read information
Acceptance Criteria
GIVEN a Prework Study Guide website
WHEN I visit the website in my browser
Then I see four boxes titled HTML, CSS Git, and JavaScript with associated notes listed

Issue Closed


add metrics-for-spark-clusters.md

This change adds the spec for metrics in spark clusters.

looks good, couple of nits and a question, need to re-read :)

thanks Trevor, addressed your nits and changed the IP address in the metrics.properties

lgtm, thanks elmiko


Remove unused library in docstring

This PR fixes f_202 and removes unused libraries in the docstring

Thanks @vumichien! To make the formats a bit more consistent. Could you please structure the requirements part of docstrings as follows?
Requirements:
- lib_1
- lib_2

Cheers

@terryyz I have reformated the requirements


OpenSSL 3.0.x deprecations

Good day.
You're most likely aware, but there are some deprecations warnings if langrange is compiled with openssl 3.0.x.
Dunno when they're going to remove the deprecated stuff, so it may work the forseeable time.
The warnings:
/tmp/makepkg/lagrange/src/lagrange-1.13.8/lib/the_Foundation/src/tlsrequest.c: In function 'init_Context':
/tmp/makepkg/lagrange/src/lagrange-1.13.8/lib/the_Foundation/src/tlsrequest.c:243:5: warning: 'ERR_load_BIO_strings' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  243 |     ERR_load_BIO_strings();
      |     ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/openssl/cryptoerr.h:17,
                 from /usr/include/openssl/crypto.h:38,
                 from /usr/include/openssl/bn.h:26,
                 from /tmp/makepkg/lagrange/src/lagrange-1.13.8/lib/the_Foundation/src/tlsrequest.c:35:
/usr/include/openssl/cryptoerr_legacy.h:31:27: note: declared here
   31 | OSSL_DEPRECATEDIN_3_0 int ERR_load_BIO_strings(void);
      |                           ^~~~~~~~~~~~~~~~~~~~
/tmp/makepkg/lagrange/src/lagrange-1.13.8/lib/the_Foundation/src/tlsrequest.c: In function 'newSelfSignedRSA_TlsCertificate':
/tmp/makepkg/lagrange/src/lagrange-1.13.8/lib/the_Foundation/src/tlsrequest.c:432:5: warning: 'RSA_new' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  432 |     RSA *rsa = RSA_new();
      |     ^~~
In file included from /usr/include/openssl/x509.h:36,
                 from /usr/include/openssl/pem.h:23,
                 from /tmp/makepkg/lagrange/src/lagrange-1.13.8/lib/the_Foundation/src/tlsrequest.c:38:
/usr/include/openssl/rsa.h:201:28: note: declared here
  201 | OSSL_DEPRECATEDIN_3_0 RSA *RSA_new(void);
      |                            ^~~~~~~
/tmp/makepkg/lagrange/src/lagrange-1.13.8/lib/the_Foundation/src/tlsrequest.c:435:5: warning: 'RSA_generate_key_ex' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  435 |     RSA_generate_key_ex(rsa, rsaBits, exponent, NULL);
      |     ^~~~~~~~~~~~~~~~~~~
/usr/include/openssl/rsa.h:260:27: note: declared here
  260 | OSSL_DEPRECATEDIN_3_0 int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e,
      |                           ^~~~~~~~~~~~~~~~~~~
/tmp/makepkg/lagrange/src/lagrange-1.13.8/lib/the_Foundation/src/tlsrequest.c:440:5: warning: 'EVP_PKEY_assign' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  440 |     EVP_PKEY_assign_RSA(d->pkey, rsa);
      |     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/openssl/pem.h:22:
/usr/include/openssl/evp.h:1328:5: note: declared here
 1328 | int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key);
      |     ^~~~~~~~~~~~~~~

Thanks for reporting! This issue is being tracked here: https://codeberg.org/skyjake/the_Foundation/issues/9

I see. Missed that this is an external dep.
I assume I can close this issue then? :)

Yes, we can close this one.


Random error when accessing the temporary file "The process cannot access the file"

Describe the bug
We are getting the error. The process cannot access the file '/tmp/unleash.toggles-default-instancetag-v2.2.0.json' because it is being used by another process.
Sometimes we are getting the error mentioned above in production.
This is part of the StackTrace
 at Microsoft.Win32.SafeHandles.SafeFileHandle.Init(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)    at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)    at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)    at System.IO.Strategies.FileStreamHelpers.ChooseStrategy(FileStream fileStream, String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize)    at System.IO.File.Open(String path, FileMode mode)    at Unleash.Internal.FileSystem.FileOpenCreate(String path)    at Unleash.Scheduling.FetchFeatureTogglesTask.ExecuteAsync(CancellationToken cancellationToken)    at Unleash.ClientFactory.UnleashClientFactory.CreateClientAsync(UnleashSettings settings, Boolean synchronousInitialization, IStrategy[] strategies)
To Reproduce
Steps to reproduce the behavior:
We cannot reproduce the issue exactly, the way that we reproduce a similar issue was:
1 - Create a new console project in visual studio for .Net Core 6
2- Add reference to
Unleash.Client     Version="2.2.0" and
Newtonsoft.Json Version="13.0.1"
3- In the program.cs replace the content by the following block
using SampleFlagsAppRunnerUnleash;
int maxIterations = 2;
var tasks = new List<Task>();

for (int i = 0; i < maxIterations; i++)
{
	tasks.Add(UnleashFactory.CreateAsync());
}

await Task.WhenAll(tasks);

Console.WriteLine("completed...");
Console.ReadLine();

4- Create a new file and name it UnleashFactory.cs and replace the content for the following block
using Unleash;
using Unleash.ClientFactory;
using Unleash.Strategies;

namespace SampleFlagsAppRunnerUnleash;

public class UnleashFactory
{
	public static async Task<IUnleash> CreateAsync(params IStrategy[] strategies)
	{
		string unleashApiAddress = <PLACE_API_ADDRESS_CLIENT>;
		string unleashAppName = "default";
		string unleashEnvironment = "development";
		string unleashInstanceTag = "unleashtag";
		string apiClientValue = <PLACE_API_CLIENT>;
		int expiration = 5;

		IUnleash? result = null;

		try
		{
			var factory = new UnleashClientFactory();

			var settings = new UnleashSettings
			{
				AppName = unleashAppName,
				Environment = unleashEnvironment,
				UnleashApi = new Uri(unleashApiAddress),
				InstanceTag = unleashInstanceTag,
				FetchTogglesInterval = TimeSpan.FromMinutes(expiration),
				CustomHttpHeaders = new Dictionary<string, string> { { "Authorization", apiClientValue } }
			};

			if (strategies.Length != 0)
			{
				result =  await factory.CreateClientAsync(settings, synchronousInitialization: true, strategies);
			}

			result = await factory.CreateClientAsync(settings, true);
		}
		catch (Exception ex)
		{
			var info = new
			{
				AppName = unleashAppName,
				Environment = unleashEnvironment,
				UnleashApi = new Uri(unleashApiAddress),
				InstanceTag = unleashInstanceTag,
				FetchTogglesInterval = TimeSpan.FromMinutes(expiration)
			};

			Console.WriteLine($"An error ocurrs creating the unleash client '{info}', {ex.Message}");
		}

		return result;
	}
}

5- Run the application
6- The error must be seeing.
Note, the temporary file does not have to exists. once you get the error. It is not showed again.
In that case you need to change the value of unleashInstanceTag in the class UnleashFactory  for unleash generate a new temporary file.
Expected behavior
The temporary file is created and able to be accessed by another process. Without throwing an exception.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Microsoft Windows 10 Pro
Visual Studio 2022 Professional 17.3.2

Hi Iltony, based off the error output that you've given, I'm not so sure this is a bug. It sounds like you've got multiple Unleash instances running on the same machine in different processes with the same instance tag and they're trying to read/write to the same file. Ideally the instance tag should be unique per running process, which should make this issue go away

Hi, possibly this was the root cause, I have set all the dependencies as singleton. Closing the issue, thanks for answering


Turbulence closure kernel refactor

This PR refactors the kernels for turbulence closures to pave the way for new closures that require knowledge of buoyancy and buoyancy gradients.
It also performs some minor cleanup in closure_operators.jl and moves the turbulence closure implementations into a separate folder so that it is clear from the source structure which turbulence closures are implemented.

@ali-ramadhan, gitlab run needs to be restarted. Not sure why the mesoscale-closures shows up; we only need mesoscale-closures-kernel-refactor.

Not sure if I would have created a new turbulence_closure_imeplementations sub-directory but more organization can't hurt.

What would you have done? Can you be more specific?
The purpose of creating the subdirectory is so that one is able to clearly see the source files that correspond to each closure implementation: $ ls turbulence_closure_implementations is more useful now.
But I'm happy to change things, or raise an issue to plan some changes that do something better, if that is what you are suggesting.

What would you have done? Can you be more specific?
The purpose of creating the subdirectory is so that one is able to clearly see the source files that correspond to each closure implementation: $ ls turbulence_closure_implementations is more useful now.

Sorry, yeah my "code review" wasn't very useful.
I guess it wasn't clear to me that it provided additional code organization but perhaps you had some ideas for the future where a turbulence_closures_imeplementations subdirectory is helpful.
I feel that users will learn about the turbulence closures from the documentation, but perhaps the subdirectory is nice if you want to look at the implementations.
I'm okay with either approach.


Document MinGW usage

Cross compiling is a very nice feature, the project is reported working with MinGW but there is no detailed documentation about it.

Specify what's the host and what's the target operating system.
installation of prerequisites (boost, openssl)
cmake command line (and toolchain definition)

https://github.com/open-license-manager/open-license-manager/wiki/Build-the-library#ubuntu-cross-compile-for-windows


Full Archive Search - handles Next token - larger than 500 results.

Hi,
Thanks for this wonderful package. I'm using the enterprise full archive search feature for our company and was wondering how I grab tweets that are more than 500 tweets. With requests of more than 500 tweets, there is a next token provided that will have the next 500 tweets right?
So how do I get the results of the full archive search, not just the first 500 tweets. Does this gen_rule_payload() and collect_results() functions give back all of the tweets from the full archive search, not just the first 500?
Thanks for the help!
Below is the full archive example script provided in the docs:
rule = gen_rule_payload("from:jack",
    from_date="2017-09-01", #UTC 2017-09-01 00:0
    to_date="2017-10-30",#UTC 2017-10-30 00:00
    results_per_call=500)

print(rule)

{"query":"from:jack","maxResults":500,"toDate":"201710300000","fromDate":"201709010000"}

tweets = collect_results(rule, max_results=500, result_stream_args=enterprise_search_args)

@BoPengGit Yes, pagination via the next token is handled automatically. Hopefully you observed that and are on your way!


add prop to trigger  hiding of  modal

Description
Given a button in the modal list header which navigates to a another screen (using React Navigation) when pressed ,  the  dropdown modal's visibility keeps persisted when the new screen is mounted.
Hence, this fix adds a new prop hideModal which is false by default. the modal get hidden when this value is changed to true.
Basically, the hideModal prop is set to true before calling the navigate method from react-navigation. This way, the modal get hidden and the new screen is mounted
Type of change

[ ] New feature (non-breaking change which adds functionality)

@kofiarkoh We would also need to update the README with the new prop.

@kofiarkoh We would also need to update the README with the new prop.

yes you are right.!


Thing's to add/fix.

Not much currently.

I still wanna come back to the project and add git for installing games and managing updates for them! But i know that will take alot of work. And i may have to drop electron if it's too much- Plus i would have to just hope that i can password protect builds, Or versions of software