LighterWriter - write/save predictions

A callback for writing predictions.
I looked into Lightning's BasePredictionWriter. it's a very basic and not really useful Callback, so instead of inheriting from it, I thought that it's cleaner to start from a clean Callback.
Right now, it's only possible to write the predictions according to their dataloader/batch index. Will look into having an optional get_names() method in aDatasets, which, if present, would replace the indices as names.

Right now, write_as allows you to specify only one type - but what if pred is a list or dict of different types? For example, a model that outputs a segmentation mask and a description of the segmented object.
Maybe extend write_as so that it can be:

a single type - pred's values, no matter if only one or multiple, will be saved as that type.
list of types - positionally correspond to each element of a pred list.
dict of types -  correspond to a pred dict per key.

I'd like it to be a writer base class and multiple sub-classes, such as SegmentationWriter, ClassificationWriter, etc. Cramming all into one class, will be to much. Should a model have multiple outputs, we can chain multiple writers.

I very much agree with @kbressem on this.
I don't know if we want to think about every possible use case independently. I think that's why lightning also provided a base prediction writer.
We can ship our default writer which works for common use cases, as you have implemented. For more specific use cases like you mentioned, I say let the users handle these, there can be way too much variability. For instance, I save my predictions in a csv format, and I would use my custom writer over the lighter writer. I'm sure there would be more such scenarios from users.

Even if we do per-task writers, we still have a problem of mapping them to each output in multi-value preds. pl.Trainer(callbacks=...) accepts a single Callback or a list of Callbacks. If it's a list you can't just map them to a pred of type list, as there may be other callbacks there, like pl.callbacks.ModelCheckpoint. Since it doesn't accept a dict, you also can't match it to a pred of type dict. And trying to fix that would be extremely hacky.
Moreover, I don't think we should split LighterWriter per task (SegmentationWriter, ClassificationWriter, ...). Reasons:

This diverges from LighterSystem's unified behavior. There are no LighterClassificationSystem or similar. Everything is based on what kind of data is being passed through the model and criterion. Obviously, there are some assumptions, but they're pretty straightforward, and only for some wild-usecase you *may* need to pay closer attention.
Similarly, LighterLogger unifies multiple loggers and you and select them by just setting the flag for each on or off. I don't think it would've make much sense there to have our own WandbLogger, TensorboardLogger, when really the only difference between then is log call (tensorboard.add_scalar(), wandb.log()`,...)
LighterWriter itself is pretty simple, separating it out feels unnecessary and a lot of behavior will be shared without adding to much on top of it. E.g., both in SegmentationWriter and ClassificationWriter, you'd like to also have an option to save the tensor as-is to .pt file perhaps. The main thing that would be separated out into different classes would be the _write() method, and I think it's just too simple and unnecessary to separate. Obviously, it'll be slightly more complex if it supports mapping different write_as types to different outputs in pred, but that's about it.

Regarding the CSV format, that will be supported here too, and that's going to be very simple too (similar to LighterLogger). The idea of the LighterWriter is to cover as much as possible in the simplest way, so that the user does not have to write their own Writer Callback. They will still be able to do so if they wish, obviously, as they can with the logger and the system, overriding the existing or writing from scratch.

Maybe I was a bit muddy in my response and misread what @kbressem mentioned. What I meant to say was we don't need to think of handling every possible case in the LighterWriter. Of course, that would be the default writer and handle a bunch of use cases. lighter won't have any other Writer than the default one, but users can define their own subclasses using the LighterWriter to support any specific use cases they might have, and we should try to support that in the cleanest way possible.
To address your previous comment,
I think having write_as mimic the format of output predictions should work very well, i.e, if output is a dict, then write_as is also a dict with types. Of course, with some simplifications such as broadcasting types.

But that is the essence of lighter; we try to provide as much as possible out-of-the-box and, hopefully, in a simple way. Lightning gives you the building blocks, so you have to code it up. We want to eliminate the coding part as much as possible and let it all/most be config-defined.

100% agree, but this also leads us to some complications
I'm still of the opinion that we shouldn't try to handle all use cases in LighterWriter because this easily leads to a very large and bloated config with too many flags.

If I have multi-output predictions, what if I want to write them in a specific folder per item? which is probably more sensible than having a flat output structure. This will need another flag unless we assume that multi-output will also be folder structured.
For medical imaging use cases, we want images saved as NRRD/NIFTI. This means more functionality is added to the LighterWriter and gets into more specific behavior, which deviates from the more general approach of lighter.
Users may want arbitrary types in the write_as. For example, some may want to save predicted output in a json format which is common for a lot of CV tasks such as detection.

We can ofcourse try to support as many use cases as we think of, but we also need to consider being easily extendable.

Made some aesthetic comments for now. I will test the PR with some code tomorrow. Overall looks pretty good, seems like you thought of everything that's possible (including 24 FPS video 😉) !
We should add some test cases for such multi-use case features.

It will help the person submitting the PR to test for a range of conditions
Reviewers can easily understand all the functionality offered, and so can the users when needed.

Maybe we make that a requirement from now on? It doesn't have to be something very crafty since people would already have test cases while implementing functionality, it should be easy to have it added to the PR. It will automatically increase coverage as well.
@ibro45 @kbressem Wdy think?

@ibro45 Are we ready to merge this?

Writing tests

Alright if you agree let's merge it, so that we can merge other PRs, and I'll make another one for tests


[Optimize] Provide default value for options

Codecov Report
Attention: Patch coverage is 0% with 16 lines in your changes are missing coverage. Please review.

Project coverage is 19.20%. Comparing base (2435a0a) to head (171847d).

Files
Patch %
Lines

...rces/OpenGraph/Attribute/Attribute/Attribute.swift
0.00%
6 Missing :warning:

...es/OpenGraph/Attribute/Attribute/OGAttribute.swift
0.00%
3 Missing :warning:

...rces/OpenGraph/Attribute/Rule/AnyRuleContext.swift
0.00%
2 Missing :warning:

Sources/OpenGraph/Attribute/Rule/RuleContext.swift
0.00%
2 Missing :warning:

...enGraph/Attribute/Indirect/IndirectAttribute.swift
0.00%
1 Missing :warning:

...enGraph/Attribute/Optional/OptionalAttribute.swift
0.00%
1 Missing :warning:

...urces/OpenGraph/Attribute/Weak/WeakAttribute.swift
0.00%
1 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #53   +/-   ##
=======================================
  Coverage   19.20%   19.20%
=======================================
  Files          49       49
  Lines        1161     1161
=======================================
  Hits          223      223
  Misses        938      938

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Static inbound IP as IPv6

Is it possible to have IPv6 Static Inbound IP with IP-based SSL binding?
https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-ip-addresses-overview-arm
Public IPv6 addresses can only be assigned to Internet-facing load balancers.

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

ID: 4c32dd6f-050f-e3f7-569f-42b5efdf3918
Version Independent ID: 1b3c9880-c5fc-53b2-c8d5-04c5ed4c21b4
Content: Inbound/Outbound IP addresses - Azure App Service
Content Source: articles/app-service/overview-inbound-outbound-ips.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

@KeiroKamioka0000 Thanks for the question! We are investigating and will update you shortly.

@KeiroKamioka0000 For IPv6 IP version, the assignment method is dynamic only.
While public IPv4 addresses can be assigned to several Azure resources, an IPv6 public IP address can only be assigned to an Internet-facing load balancer. The load balancer can load balance IPv6 traffic to the Azure virtual machines.
You may also refer this link https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-public-ip-address#create-a-public-ip-address

@KeiroKamioka0000 Since we have not heard back from you we will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly reopen the issue and continue the discussion.

App services should both support Multipath TCP and IPv6


public extension Decodable

Hello.
Thank you for Sourcery.
In this pull request I made Decodable.init(jsonDictionary:) public and changed the first argument's type from [String:Any] to [AnyHashable:Any] to make it more flexible.

Hi @RomanPodymov
I see the change is in the dependency of the Sourcery, not in it's code actually. Any reason why this change is needed?

Hi @RomanPodymov
I see the change is in the dependency of the Sourcery, not in it's code actually. Any reason why this change is needed?

Hello @ilyapuchka
I thought this extension can be useful for other dependencies as well.

Then this extension should be part of Sourcery source code, not its pods as it will be lost as soo  as pod is updated. Or this change should be contributed to the xcproj dependency itself.
Ilya Puchka

On 4 Jul 2020, at 17:59, Roman Podymov<EMAIL_ADDRESS>wrote:

Hi @RomanPodymov
I see the change is in the dependency of the Sourcery, not in it's code actually. Any reason why this change is needed?
Hello @ilyapuchka
I thought this extension can be useful for other dependencies as well.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


[BUG]Errors occuring while following contributing steps

Describe the bug
While i following contributing steps at docs, i stuck at build step because of errors below:
refine>npm run build -- --scope @refinedev/antd --scope base-antd --includeDependencies

><EMAIL_ADDRESS>build ~\refine\packages\devtools-server
> npm run build:client && tsup --format esm,cjs,iife --minify --legacy-output

><EMAIL_ADDRESS>build:client
> NODE_ENV=production tsc && vite build --config src/client/vite.config.ts

'NODE_ENV' is not recognized as an internal or external command,
operable program or batch file.
 ELIFECYCLE  Command failed with exit code 1.

I completed previous steps successfully
Steps To Reproduce

Go to docs/contributing
Follow steps as described
Run build command after bootstrapping packages and see error

Expected behavior
Build should finish without errors
Screenshot

Desktop
OS: Windows, Refine version: latest
Mobile

Not related

Additional Context
I think its related wih node:env but dont know why its causing that error

Hello @devhik0, couldn't reproduce the issue locally. Could you run npm run coffee and let me know if that fixes the issue?

No, i ran that command but it stuck at same step with same errors, i think its related with OS compatibility as I get from my research.

It seems this issue isn't related to Refine, but with Windows.
There is an accepted answer here: https://stackoverflow.com/questions/11928013/node-env-is-not-recognized-as-an-internal-or-external-command-operable-comman


Please confirm these before moving forward

[X] I have searched for my issue and not found a work-in-progress/duplicate/resolved issue.
[X] I have not been informed if the issue is resolved in a preview version of the winget client.

Category of the issue
Installation issue.
Brief description of your issue
cannot upgrade neovim
Steps to reproduce
winget upgrade --all
Actual behavior

Expected behavior
success
Environment
PS C:\Terminal> winget --info
Windows Package Manager v1.8.1911
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.22621.3880
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.23.1911.0

Winget Directories
-----------------------------------------------------------------------------------------------------------------------
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\Diag…
User Settings                      %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\sett…
Portable Links Directory (User)    %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User)       %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root              C:\Program Files\WinGet\Packages
Portable Package Root (x86)        C:\Program Files (x86)\WinGet\Packages
Installer Downloads                %USERPROFILE%\Downloads

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Admin Setting                             State
--------------------------------------------------
LocalManifestFiles                        Disabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride                     Disabled
LocalArchiveMalwareScanOverride           Disabled
ProxyCommandLineOptions                   Disabled
DefaultProxy                              Disabled

Screenshots and Logs

Can you share the output and log file from winget upgrade Neovim.Neovim --verbose

Can you share the output and log file from winget upgrade Neovim.Neovim --verbose

https://github.com/russellbanks/Komac/issues/709#issuecomment-2254422052

winget update verbose logs contain the following line:
2024-07-28 08:03:17.018 [CLI ] Installer [X64,wix,User,en-US] not applicable: Installer scope does not match currently installed scope: User != Machine


[ELE-69] [ELE-14] Apache Spark Integration

Is your feature request related to a problem? Please describe.
Currently, Databricks is the only Spark supported adapter
Describe the solution you'd like
Add support for the Apache Spark adapter
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
This would enable spark projects that are not using Databricks (e.g., EMR on EC2/EKS, etc.)
Would you be willing to contribute this feature?
Probably not
ELE-14
ELE-69

Hi @izzye84 ! Thanks a lot for opening this issue.
As Databricks itself also uses Spark under-the-hood,
we have a good reason to believe that the Spark adapter is already supported,
it's just that we never tested it because we don't have any other setup such as EMR.
What do you think about trying to use Elementary on your environment?
The Elementary Tutorial is a good place to start.
I can aid in the process as needed either here or on our support channel.

Thanks for the follow-up @elongl!  I will give the tutorial a try with my EMR environment now that I know the functionality might already work—I will let you know how it goes!

Hi @izzye84!
Did you get a chance to look at it?
Would love to help.

Hey @elongl,
I am running into some errors when I run dbt run --select elementary—not all of the tables/views are building successfully (although most are).  I am open to your help if you have availability.

Hi @izzye84 ,
Of course, I would love to help.
Would you perhaps be able to share the errors?
We can also talk this over at our community Slack so that it'll be more interactive if you prefer.

Hey @elongl,
I am running into some errors when I run dbt run --select elementary—not all of the tables/views are building successfully (although most are). I am open to your help if you have availability.

Thats because on Spark the macro for current timestamp is not working correctly on the dbt_utils, you need to install spark_utils, dbt_utils=0.8.6, and change the cross_db_utils like this
{% macro current_timestamp() -%}
--    {% set macro = dbt.current_timestamp_backcompat or dbt_utils.current_timestamp %}
    {% set macro =  dbt_utils.current_timestamp %}
    {% if not macro %}
        {{ exceptions.raise_compiler_error("Did not find a `current_timestamp` macro.") }}
    {% endif %}
    {{ return(macro()) }}
{%- endmacro %}

{% macro current_timestamp_in_utc() -%}
--    {% set macro = dbt.current_timestamp_in_utc_backcompat or dbt_utils.current_timestamp_in_utc %}
{% set macro = dbt_utils.current_timestamp_in_utc %}
    {% if not macro %}
        {{ exceptions.raise_compiler_error("Did not find a `current_timestamp_in_utc` macro.") }}
    {% endif %}
    {{ return(macro()) }}
{%- endmacro %}

I've the following issue after executing a test:
[0m14:47:49.760573 [debug] [MainThread]: Spark adapter: Poll response: TGetOperationStatusResp(status=TStatus(statusCode=0, infoMessages=None, sqlState=None, errorCode=None, errorMessage=None), operationState=5, sqlState=None, errorCode=0, errorMessage="org.apache.hive.service.cli.HiveSQLException: Error running query: org.apache.spark.sql.AnalysisException: Cannot write incompatible data to table 'schema_mjs_elementary.elementary_test_results':\n- Cannot safely cast 'detected_at': string to timestamp\n\tat org.apache.spark.sql.hive.thriftserver.HiveThriftServerErrors$.runningQueryError(HiveThriftServerErrors.scala:43)\n\tat org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation.org$apache$spark$sql$hive$thriftserver$SparkExecuteStatementOperation$$execute(SparkExecuteStatementOperation.scala:325)\n\tat org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation$$anon$2$$anon$3.$anonfun$run$2
and this is the data:
insert into schema_mjs_elementary.elementary_test_results
(id,data_issue_id,test_execution_id,test_unique_id,model_unique_id,invocation_id,detected_at,database_name,schema_name,table_name,column_name,test_type,test_sub_type,test_results_description,owners,tags,test_results_query,other,test_name,test_params,severity,status,failures,test_short_name,test_alias,result_rows) values
('5f33389e-616e-4f7d-9ff3-b75ee92a47b9.test.bi_dbt_spark_prj.not_null_bi_common_cities_city_id_pk.ab383051c3',NULL,'5f33389e-616e-4f7d-9ff3-b75ee92a47b9.test.bi_dbt_spark_prj.not_null_bi_common_cities_city_id_pk.ab383051c3','test.bidbt_spark_prj.not_null_bi_common_cities_city_id_pk.ab383051c3','model.bidbt_spark_prj.bi_common_cities','5f33389e-616e-4f7d-9ff3-b75ee92a47b9','2023-02-01 15:17:49' (

Hi @MatatatDespe, Would you maybe be willing to contribute the fix that worked for you? So future Spark users can enjoy it as well, and you could maintain it when upgrading versions.

Actually I've just put the answer in a comment above, is it clear enough?

Actually no, as I see the code there is the code we already have.. Right?

Actually i've commented this line
--    {% set macro = dbt.current_timestamp_backcompat or dbt_utils.current_timestamp %}
and only left this one
{% set macro =  dbt_utils.current_timestamp %}

Thanks @MatatatDespe,
I opened this PR to add spaek supported timestamps:
https://github.com/elementary-data/dbt-data-reliability/pull/253

Here is an issue I am currently facing with the Spark adapter:
When I try to run dbt run --select elementary, All of the models except job_run_results and metrics_anomaly_score succeed. The error that I see seems to be related to the SQL syntax.
For example, in job_run_results model:
Caused by: org.apache.spark.sql.AnalysisException: cannot resolve 'second' given input columns
The error comes from the below executed SQL code snippet.
datediff(
     second, min(cast(run_started_at as timestamp)), max(cast(run_completed_at as timestamp))
) as job_run_execution_time

This implementation of datediff is different from Spark's native datediff function, which is why the query could be failing.

Have you installed on your project the spark_utils?

Have you installed on your project the spark_utils?

Yes, I have. Here are my package dependencies:
packages:
  - package: dbt-labs/codegen
    version: 0.9.0
  - package: dbt-labs/dbt_utils
    version: 1.0.0
  - package: calogica/dbt_expectations
    version: [">=0.8.0", "<0.9.0"]
  - package: dbt-labs/spark_utils
    version: 0.3.0
  - package: elementary-data/elementary
    version: 0.6.12

Hi @rmahidhara-tmus, thanks for reporting!
I found the problem thanks to the details you shared and added a fix to the PR that is already open here:
https://github.com/elementary-data/dbt-data-reliability/pull/253
You can try working with the branch / wait for the release.
Just to clarify - this is not official Spark support, so I'm not sure that there won't be additional problems.


Add support for parsing placeholders

Maybe I missed something, but I think placeholders are not yet supported and cannot be parsed. I would like to ask if this could be added.
Ideally, with few extensions than a regular parser:

In regular SQL queries, only SELECT, INSERT, UPDATE queries can have placeholders. But for my use case it would be great if also other statements can have them, like CREATE VIEW which takes a query, and that one could have placeholders, because CREATE VIEW is specially processed in my case. (See https://github.com/mit-pdos/noria/issues/142 for more information.)
Common SQL databases support position-based placeholders, I would love it some way of having keyword-based ones could be added. This then maps very well to how one can provide values with a dict structure instead of position.

In the meantime you can apply this patch:
https://github.com/MaterializeInc/sqlparser/pull/17/files
I’ll look into getting it merged here. It works as you suggest with regards
to CREATE VIEW et al supporting expressions with placeholders. It does not
presently accept named placeholders, however.
On Thu, Nov 21, 2019 at 7:03 PM Mitar<EMAIL_ADDRESS>wrote:

Maybe I missed something, but I think placeholders are not yet supported
and cannot be parsed. I would like to ask if this could be added.
Ideally, with few extensions than a regular parser:

In regular SQL queries, only SELECT, INSERT, UPDATE queries can have
placeholders. But for my use case it would be great if also other
statements can have them, like CREATE VIEW which takes a query, and
that one could have placeholders, because CREATE VIEW is specially
processed in my case. (See mit-pdos/noria#142
https://github.com/mit-pdos/noria/issues/142 for more information.)
Common SQL databases support position-based placeholders, I would
love it some way of having keyword-based ones could be added. This then
maps very well to how one can provide values with a dict structure instead
of position.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/andygrove/sqlparser-rs/issues/145?email_source=notifications&email_token=AAGXSIFPWCFMLJMHF3IFLG3QU4OW5A5CNFSM4JQJZSCKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4H3IAILQ,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAGXSIHW7UB7XYU2FS3OAY3QU4OW5ANCNFSM4JQJZSCA
.

Yes, something like $foobar would be awesome to have for placeholders. (Then mapping to/from GraphQL can be made much smoother.)

I'm also missing parameter placeholder support.
We considered using sqlparser as the parser for a (for now) "demo" Rust-based frontend to our Rust-based data store backend. Ideally, it should become the default frontend. However, to support prepared statements, placeholder support is needed. In our SQL dialect, those are specified with a question mark, as used in most "large" RDBMSs, like MS SQL, Oracle SQL, SAP HANA DB SQL, etc.
Would it be possible to add support for this as well? It should be fairly trivial extension to the patch above (though, it didn't land in the source code yet, so not sure whether it can be even applied).
Thanks.

@gamife has contributed an implementation here: https://github.com/sqlparser-rs/sqlparser-rs/pull/420
I'll try and cut a new release in the next week or two


Create Q&A or something related web page for "ELI5" (explain like I'm 5) topics

Is your proposal related to a problem?
I personally find it hard to comprehend certain moving parts in Thanos. I.e blocks, compacting, chunks. Horizontal vs vertical. I'm aware of pages like https://thanos.io/tip/components/compact.md/#vertical-compactions - They are quite rich in information. However you do need knowledge of multiple other parts to understand it.
I noticed the same from other users. For example, we recently had a question: how should I calculate the chunk-pool-size? Honestly, I also don't know.
So, I want to ask for some ELI5 (explain like I'm 5) parts. It doesn't have to be in proposals, but perhaps proposals can have links to such explanation in the docs/website.
Benefits are that devs can tag along faster, users gain more knowledge and perhaps proposals gain more input.
Describe the solution you'd like
Q&A page
I made a PR as example here: https://github.com/thanos-io/thanos/pull/4090
Describe alternatives you've considered
I thought about it, but personally I couldn't think about any. Open for it though!
Additional context

We talked about this for a long time, I even had some FAQ started at some point. The main issue is that most of FAQ questions should be addressed by docs. Yet I think practice shows that we should have some duplication of docs and links to even better experience. Thanks for starting this! (:

If you're 5 years old, you shoudn't be running production distributed metrics systems.


Shadow Fiend Rework [1 skill + 5 talents + text refactor]

Requiem of Souls:

Soul Frenzy base duration from 1 to 2 seconds.
Soul Frenzy extra duration from 0.2 to 0.3 seconds.

TALENTS:
Remove:
+2 Presence armor reduction
-20 Shadowraze mana cost
-3 Shadowraze CD
+10 Necro souls limit
+2 damage from each Necrosoul
Apply:

Shadow Razes apply a pool of souls at raze points for 2 seconds, damaging enemies in their AoE for 50 damage per second.
Necromastery can be activated to instantly devour souls and heal 80 health per soul. Devours souls until depleted or until Shadow Fiend has full health. Has 12 seconds cooldown.
Killing an enemy hero permanenetly increases Necroamastery's soul limit by 1.
Enemies affected by Requiem that are hit by Shadowrazes have their debuff fully refreshed.
While in Soul Frenzy, Shadowrazes cast points are halved.

TEXT REFACTORING
Shadowraze
Shadow Fiend razes the area in front of him, dealing damage to enemy units in an area.
Mastery of the Darkness: Shadow Fiend masters the shadows at high levels, and can manipulate them to his will.
(close) : Shadowraze gets closer and larger at higher levels
(medium) : Shadowraze forms a semi-circle pattern at higher levels
(far) : Shadowraze forms a line, getting farther every level
Shadow Combo : If all three razes hit within 2.5 seconds, the cooldowns are reset. Can only trigger every 30 seconds.
Soul Raze : Damage increases with each soul that Shadow Fiend possess.
Necromastery
Engorge: Can gain more souls over the limit that lasts 30 seconds each, giving the same benefits as permanent souls. Can only store a percentage of the max souls.
Soul Harvester : Grants 1 soul when attacking or razing an enemy hero.
Presence of the Dark Lord
Shadow Fiend's presence reduces the armor and vision range of nearby enemies.
Creeping Presence : Enemy heroes hit by razes under this aura will have their armor reduced for 7 seconds, which refreshes when another raze hits, up to 3 times.
Requiem of Souls
Shadow Fiend gathers THE MOST TEXT IN ANY VANILLA DOTA 2 ABILITY DESCRIPTION.
Soul Frenzy : After the Requiem ends, Shadow Fiend enters a state of Soul Frenzy, where razes have no cooldown. Lasts for 2 seconds, and is increased by 0.2 seconds for every line that hits an enemy hero. If he misses a raze, Soul Frenzy ends.

Necromastery can be activated to instantly devour souls and heal 80 health per soul. Devours souls until depleted or until Shadow Fiend has full health. Has 12 seconds cooldown. (i have a little problem with that, sounds terrible if used on panic, but i guess we'll see.)


Support shouldRepaint method

In my game, sometimes there is no pixel change at all, it's kind of waste to repaint if I know Skia should not.

I am not sure about this, in a Game it is very unusual not needing to re draw something, that is why game usually uses active rendering instead os passive rendering, like normal/simpler applications do.
Also, I think this would change basically nothing on perfomance, since Flutter always strives for, and achieves 60fps on apps, we would only add unnecessary complexity with this method.
That said, are you having any perfomance issues @truongsinh ?
And @luanpotter what are your thoughts on this?

Just to clarify, the performance is great for my game (just a simple clone of Flappy Bird), even on a crappy Samsung A3 2014.
That being said, when I turn on performance overlay, I see it's always repainting (as you describee as active rendering). I wonder whether having shouldRepaint could even further improve performance for some complicated games with hundreds of sprites (both rendering and battery consumption)

@truongsinh I am still not sure about this, nevertheless, I created a branch named should-repaint which adds a method shouldRepaint on the Game class, that you can override and controls its, its default implementation always returns true.
Would you mind making a test and see how this improves the perfomance, battery consumption? To make sure that this is worth the small added complexity?

Hi, I just tried the shouldRepaint method, but the performance overlay is still running (the expectation is that the green indicator not moving anymore when shouldRepaint is false).

hm, weird, I have added another commit to the branch. if there any other repaints now, it should be because of stuff of flutter, Flame should not paint anything when the method returns false now. Can't you give your test another try?

I also do not need to repaint every frame. There are many small games that don't need it. Such as: Sudoku, simple games for kids, educational tests, puzzles/jigsaw (this should be repainted only when we dragging some piece and the rest of the time player just thinks what to do next) and other educational stuff. We don't need aggressive repainting. It would be cool to stop it from repainting when we don't need it.

Hey @truongsinh have you had any chance to test this?

Hi sorry for the late reply, it's still the same, you can check it out at https://github.com/truongsinh/fluttery_dash/tree/should-repaint

Has it already fixed?

So, I did some progress on this, but this is more complicated than I expected.

@erickzanardo it will be the great feature I'm pretty sure! :)

So what about this issue? Is this fixed?

@ProgrammingLife performance when there are no changes in the screen is the same as when there are changes, which is already very good.
It could possibly be improved even more for that case, but it's an edge case for a game to have no change/animation/motion whatsoever. If @erickzanardo is busy and you'd like to take a look at it, I'd be glad to review and then merge your PR :)
You could create a bool method or getter for a Game to override inform the engine that it doesn't need to run render/update. However your game would need to have a way to set that back outside of the update loop so that your game can eventually run it again. I think the solution is to not schedule the for the next tick whatsoever, but when the method is called again, start scheduling again. That will not trigger the render nor the update, and so fps will surely be on the 60 cap. But again, good documentation is key to let the Game override know that it needs to have a way to set his flag back so that the game eventually runs again. Or it would be stuck there forever.

@luanpotter
Well, it has a sense. Is Flame possible to update only the whole screen doesn't matter even when just one little object has changed or it can update just one little piece of the screen where the changes happened? As I believe should Skia do :)

@ProgrammingLife we always update the whole thing. If an object moves, you'd need to repaint where it was with calculating what should be behind it (maybe a complex mix of other objects) plus update where it is now with itself. If you have things like transparency, it gets even trickier. I think doing these kinds of computations is way more expensive than just repainting the whole thing and leaving to the GPU to optimize how to actually change the pixels in the hardware.

@luanpotter but what if we have just a little changing piece of the screen such as a small particles effect area at the right bottom of the screen where we don't need to update the whole screen. Might be it would be better to set engine to special mode where it finds and updates only the changing areas?

@ProgrammingLife I don't think updating only a part of the screen would be better, specially on the example you used, a particle system, even on a small area, makes changes a lot, both on pixel positions, colors, opacity and etc. The algorithm to detect the area that changed, and what changed, would not be very easy to implement, would be error prone and I have serious doubts if that would bring perfomance improvements.
Also, I can't think of a way to detect changes between the frames without a cache frame having been fully draw, and if the frame was already draw, it is just simpler to just drop the last frame entirely and render the new one.
Games are not like other apps, which has small changes according to user input, and on those apps, partial update makes a lot of sense there, on a Game, I don't think it would be effective.
But about the original purpose, I do think we could still make it, "pausing" the engine can be a very good way to pause the game and save battery life, I could see it been used, for example on a game where the inventory menu is made all with Flutter widgets, and it covers the game widget, on that case, the engine could be paused and be resumed after the player exists the menu.

What about shouldRepaint for now? Is this supported well to stop from repainting screen when it's not needed?

That would be useful to use some components from Flame in Flutter such as NineTile png for creating beautiful modal windows, dialogs. Then we don't need repaint it every frame.

@ProgrammingLife we haven't worked on this yet, we have been focusing on other features at the moment.

@erickzanardo is that feature on your plans? Is it too hard to implement?

Fixed on #272 and released on Flame 0.19.1


Display more verbose object store error message

resolves #273
is displaying the whole message too verbose or using the .description() output of object_store::Error is enough? ( ie Object store error: Error :: InvalidPath )

Thanks! At this point I think the whole message is most valuable. I'd rather err on the side of too verbose.

Mind adding the same change for the other from error messages (e.g. flat buffer one, figment, and so on..)

Mind adding the same change for the other from error messages (e.g. flat buffer one, figment, and so on..)

done


[vtk] Use PROJ CMake config

Fixes #32077.

[x] Changes comply with the maintainer guide
[x] SHA512s are updated for each updated download
[x] The "supports" clause reflects platforms that may be fixed by this new version
[x] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[X] Only one version is added to each modified port's versions file.

VTK properly exports the package lookup to share/vtk/VTK-vtk-module-find-packages.cmake:
  find_package(PROJ

    CONFIG
    ${_vtk_module_find_package_quiet}
    ${_vtk_module_find_package_required}
    COMPONENTS
    OPTIONAL_COMPONENTS )


chore: reduce imports in 3 files under Data

Removes unnecessary imports.

These all look like transitive imports - but I don't see harm in removing those. Thanks for your contribution!
maintainer merge

Thanks!
bors merge

bors merge

Come on bors!
bors merge


Add order affirmation and some documentation on order return codes

For some order types, Schwab wants to make extra sure that you meant to do what you're asking them to do. Examples include "marketable" limit orders (buy limit above ask, sell limit below bid) and buying some commodity ETFs (though I'm not seeing the need to do that for the ones I tried today, so maybe they relaxed things a bit).
To get these orders to execute, we have to provide an additional "OrderAffrmIn" entry in the execution request, and we also have to include additional valid_return_codes, so I added some documentation on ones I've seen.

Strongly appreciate your investigation here!


Checkbox selection with shift appears to have some defects

I'm submitting a ...  (check one with "x")
[x] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, post on Stackoverflow or Gitter

Current behavior

Go to http://swimlane.github.io/ngx-datatable/#chkbox-selection
Check the first row (Ethel)
Shift-click on the last row (Georgina)
Note that all rows are selected and also listed in the selections list in the upper right
Again, Shift-click on the last row (Georgina)
No rows are selected
Defect manifested here --> Georgina is still in the selections list in the upper right.

This is easily reproducible with multiple variations on the shift-click selection/deselection of the check boxes.
Expected behavior
Georgina should not be in the selection list OR Georgina's checkbox should be checked.
Reproduction of the problem
This is easily reproducible with multiple variations on the shift-click selection/deselection of the check boxes.
This was discovered because I am writing unit tests for selection (PR coming as soon as I am done with the tests) this code is currently completely untested. I would like to understand the observed behavior when combining shiftKey with checkbox selection so I can write logical unit tests for the behavior (I'm ignoring the implementation details as much as possible - single select is done and have not yet started on the other selection types)
What is the motivation / use case for changing the behavior?
I just want the behavior to be logically consistent, whatever it is. At this point, I cannot tease out an explanation or set of unit tests for the currently observed behavior.
Please tell us about your environment:
MacOS Seirra
Node 7.10.0

Table version: 0.8.x
9.1  - I think.Grabbed the latest from master last week. Not exactly working on a fork or the current repo so at the moment I'm not 100% sure of the changes we have from your repo

Angular version: 2.0.x
Angular 4.1

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

My god! Is anyone still using bower?
Chrome 57.0.2987.133 (64-bit)

Language: [all | TypeScript X.X | ES6/7 | ES5]
TS 2.2.1 compiled to es2015

Closing given PR merged


refactor(plot): move Bokeh.get_range() to record package

Description
This PR moves Bokeh.get_range() function to the records package.
Related links

Notes for reviewers
I have confirmed that there are no regressions using CARET_report.

Pre-review checklist for the PR author

[x] I've confirmed the contribution guidelines.
[x] The PR is ready for review.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR has been properly tested.
[ ] The PR has been reviewed.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] (Optional) The PR has been properly tested with CARET_report verification.
[ ] There are no open discussions or they are tracked via tickets.
[ ] The PR is ready for merge.

After all checkboxes are checked, anyone who has write access can merge the PR.

get_range() appears to be getter. How about using @Property?

After discussion, it is decided that get_range() should not be @property because of the extensibility of the function, including the addition of arguments.

@takeshi-iwanari
A review of this within EmbIV has been completed.
Could you please review it?

@takeshi-iwanari
I have corrected the points raised.
Could you review it again?


internal Clock

Clock is used for unit testing and should not be part of the public API

I'm not sure I agree on this one. We use Clock internally to set times, and let you override them. By making it internal we rely on our own tests using InternalsVislbleTo which is a smell. If we are able to use it in testing, it ought to be pe part of our API. I'm less worried about name clashes with other projects, that is what using statements are for. I'm not inclined to take this one at the moment.
Feel free to argue your case more and we can reopen, especially if I am a 'lone voice' on this


Support setting callback_url on a per-request basis.

Currently, the callback_url can only be set at the account or app level. This does not allow for dynamic callbacks in which the callback_url is decided at runtime.
For my specific use case, we would like to set the callback url to different URLs based on whether we're in a local, review, staging, or production environment.
This is currently not possible, AFAIK.

Support #: 386396

Closing the loop here - this was submitted as a feature request with our product team in May of 2019 and is currently on our our long term roadmap.

Any word on if this is yet possible?

Hi @notadamking Thank you so much for reaching back out. I will be more than happy to assist you with this. At the moment, this is still on our long-term product road map. If you have any questions in regards to this in the future, please reach out to<EMAIL_ADDRESS>so that we can properly track, manage, and maintain your request via our support queue. Thanks!


Add pprof endpoints

I asked in drone-dev if @bradrydzewski would be interested in adding pprof endpoints to drone and he seemed open to it.  He did call out to adding a flag for enabling it.
This PR adds the endpoints but no flag yet.  I added them following an example @ https://github.com/DeanThompson/ginpprof
I don't mind trying to figure out adding a flag for this.  But I did add MustAdmin() ... so I was hoping that was maybe good enough?  If not let me know and I'll followup with a commit to add a flag as well as originally asked. 😉
Also, let me know if you prefer the endpoints to be in different paths!

I don't mind trying to figure out adding a flag for this. But I did add MustAdmin()

This seems like a good option. Will we be able to provide the go tool with the token so that it can authenticate when trying to access pprof endpoints? something like this:
go tool pprof http://localhost:8080/debug/pprof/heap?access_token=....

also gin has a middleware for this now :)
https://github.com/gin-contrib/pprof

Did you want me to implement using the middleware?  One issue I ran into is it seems to depend on gopkg.in/gin-gonic/gin.v1 while you are currently pulling in gin with github.com/gin-gonic/gin.
Otherwise, I can spend time time investigating the token comment you made using the implementation I started so far.

id you want me to implement using the middleware? One issue I ran into is it seems to depend on gopkg.in/gin-gonic/gin.v1 while you are currently pulling in gin with github.com/gin-gonic/gin.

good catch. In this case we probably don't wan to use this package. Let's stick with your implementation.

Otherwise, I can spend time time investigating the token comment you made using the implementation I started so far.

sounds good!

Also, seems the token piece "just works"
root@drone-dev-server:~# go tool pprof http://localhost:8000/api/debug/pprof/heap
Fetching profile from http://localhost:8000/api/debug/pprof/heap
server response: 401 Unauthorized

root@drone-dev-server:~# go tool pprof http://localhost:8000/api/debug/pprof/heap?access_token=mytokenhere
Fetching profile from http://localhost:8000/api/debug/pprof/heap?access_token= mytokenhere
Saved profile in /root/pprof/pprof.localhost:8000.inuse_objects.inuse_space.001.pb.gz
Entering interactive mode (type "help" for commands)
(pprof)

gopkg.in/gin-gonic/gin.v1 is the same version with master branch of github.com/gin-gonic/gin。So it is fine to use https://github.com/gin-contrib/pprof

@bradrydzewski you should change to the gopkg.in path to avoid breaking everything on vendor updates


[ignore] Arun/imodel02 pr val again; sigh again

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.5 out of 6 committers have signed the CLA.:white_check_mark: saskliutas:white_check_mark: DanRod1999:white_check_mark: aruniverse:white_check_mark: khanaffan:white_check_mark: pmconne:x: danrodYou have signed the CLA already but the status is still pending? Let us recheck it.


Moving data in chunks always stuck at 99%

It's amazing tool for developers to achive data anonymization. Thanks for making it available to public.
I recently tried the tool locally. I notice fogger:run  runs 0% to 99% real fast then it keep stuck at 99% for days.
I am new to this tool and could anyone suggest anything to fix it ?

Hard to tell, everything depends on the data. Also, Fogger is not being actively maintained for few years now. I’m afraid you are on your own.

On Feb 17, 2024, at 15:33, Sann Min Win @.***> wrote:
It's amazing tool for developer to achive data anonymization. Thanks for making it available to public.
I recently tried the tool locally. I notice fogger:run runs 0% to 99% real fast then it keep stuck at 99% for days.
I am new to this tool and could anyone suggest anything to fix it ?
—
Reply to this email directly, view it on GitHub https://github.com/TheSoftwareHouse/fogger/issues/37, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABCCPXDYYBPBAK7HLWGJE3TYUC5SDAVCNFSM6AAAAABDNLOWCGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE2DAMJUGM2TMOI.
You are receiving this because you are subscribed to this thread.


babel/jsx/react woes

I don't have lessc or babel installed.  So rather than installing them locally, I put them in the build container and adapted display/local.mk to use that container (https://github.com/squaremo/ambergreen/commit/600f9fb69df692ef16a80ad1040167fcf6c2ef41).  Which all seems to work fine, but:
docker run --rm  -v $PWD:/build -v $PWD/docker/build-wrapper.sh:/build-wrapper.sh --workdir=/build ambergreen/build sh /build-wrapper.sh "babel display/gen/logo.babel -o display/gen/logo.js"
SyntaxError: display/gen/logo.babel: Unexpected token (4:6)
  2 |   render: function() {
  3 |     return (
> 4 |       <div className="logo">
    |       ^
  5 |         <svg width="100%" height="100%" viewBox="0 0 1089 217">
  6 |           <path fill="#32324B" d="M114.937,118.165l75.419-67.366c-5.989-4.707-12.71-8.52-19.981-11.211l-55.438,49.52V118.165z"/>
  7 |           <path fill="#32324B" d="M93.265,108.465l-20.431,18.25c1.86,7.57,4.88,14.683,8.87,21.135l11.561-10.326V108.465z"/>
display/local.mk:11: recipe for target 'display/gen/logo.js' failed
make: *** [display/gen/logo.js] Error 1

So after I bit of digging, I've established that the wodge of inline xml is a react thing.  Babel, at least in version 6, needs a plugin to support that (http://babeljs.io/docs/plugins/transform-react-jsx/).  So I tried to add that plugin: https://github.com/squaremo/ambergreen/commit/88c4f638b2187e30d4d2f78a7fc0a135fb8108a0 . And now:
docker run --rm  -v $PWD:/build -v $PWD/docker/build-wrapper.sh:/build-wrapper.sh --workdir=/build ambergreen/build sh /build-wrapper.sh "babel display/gen/logo.babel --plugins transform-react-jsx -o display/gen/logo.js"
ReferenceError: Unknown plugin "transform-react-jsx" specified in "base" at 0
    at /usr/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:180:17
    at Array.map (native)
    at Function.normalisePlugins (/usr/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:161:20)
    at OptionManager.mergeOptions (/usr/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:254:36)
    at OptionManager.init (/usr/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:396:10)
    at File.initOptions (/usr/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/index.js:191:75)
    at new File (/usr/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/index.js:122:22)
    at Pipeline.transform (/usr/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/pipeline.js:42:16)
    at transform (/usr/lib/node_modules/babel-cli/lib/babel/util.js:53:22)
    at Object.compile (/usr/lib/node_modules/babel-cli/lib/babel/util.js:62:12)
display/local.mk:11: recipe for target 'display/gen/logo.js' failed
make: *** [display/gen/logo.js] Error 1

Halp!
What do you have working locally @squaremo?  Is it an old version of babel that has the jsx stuff built in?  Or you do have the plugin installed, and listed in your .babelrc maybe?

It's an old version of babel -- a whole week old. Babel 6 is no longer just a transpiler, it's a transpiler platform transpiler .. platform .. is that right? Transpiler.
I've pinned it to Babel v5, the one known to work without extra faff.

Actually I think I'll make a webbuild image, so changing this stuff won't force all the other things to rebuild.


The Go to declaration function is not work in version 1.15

VSCode Version: Code 1.15.0 (8b95971d8cccd3afd86b35d4a0e098c189294ff2, 2017-08-09T20:16:06.988Z)
OS Version: Windows_NT ia32 10.0.15063
Extensions:
The Go to declaration and Peek declaration functions is not work in version 1.15, It is still working in the last version . Please help me solve this.

Extension
Author (truncated)
Version

code-gnu-global
aus
0.2.2

git-easy
bib
1.9.1

githistory
don
0.2.3

vscode-clang
mit
0.2.2

cpptools
ms-
0.12.2

vscode-icons
rob
7.12.0

blockalign
San
0.6.0

Steps to Reproduce:

Reproduces without extensions: Yes/No

It works on some of my projects.  I may finded the reason : My route of my project contains a Chinese .


Error building kernel

I have tried to build for rock64 and it stopped with an error. Following the instructions at https://github.com/ayufan-rock64/linux-build/blob/master/recipes/compilation.md I just ran make and got this:
scripts/Makefile.modpost:114: recipe for target 'net/netfilter/ipset/ip_set_list_set.mod.o' failed
make[4]: *** [net/netfilter/ipset/ip_set_list_set.mod.o] Error 1
make[4]: *** Waiting for unfinished jobs....
Makefile:1168: recipe for target 'modules' failed
make[3]: *** [modules] Error 2
scripts/package/Makefile:96: recipe for target 'bindeb-pkg' failed
make[2]: *** [bindeb-pkg] Error 2
Makefile:1299: recipe for target 'bindeb-pkg' failed
make[1]: *** [bindeb-pkg] Error 2
make[1]: Leaving directory '/home/ed/rock64-linux/linux-build/kernel'
Makefile.kernel.mk:19: recipe for target 'linux-image-4.4.114-rockchip-ayufan-1_0.1~dev_arm64.deb' failed
make: *** [linux-image-4.4.114-rockchip-ayufan-1_0.1~dev_arm64.deb] Error 2

However, make kernel-build completed successfully.

This is not enough information.

Sorry... When I run make now this is the entire output:
ed@rock64-build-env:~/rock64-linux/linux-build$ make
sudo bash rootfs/build-system-image.sh \
	"$(readlink -f bionic-minimal-rock64-0.1~dev-1-armhf-system.img)" \
	"$(readlink -f bionic-minimal-rock64-0.1~dev-1-armhf-boot.img)" \
	"bionic" \
	"minimal" \
	"armhf" \
	"rock64" \
	linux-rock64-package-0.1~dev_all.deb linux-image-4.4.114-rockchip-ayufan-1_0.1~dev_arm64.deb linux-headers-4.4.114-rockchip-ayufan-1_0.1~dev_arm64.deb linux-rock64-0.1~dev_arm64.deb
> Building in /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6 ...
+ mkdir -p /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/rootfs
+ dd if=/dev/zero of=/home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/bionic-minimal-rock64-0.1~dev-1-armhf-system.img bs=1M seek=2048 count=0
0+0 records in
0+0 records out
0 bytes copied, 9.2491e-05 s, 0.0 kB/s
+ dd if=/dev/zero of=/home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/bionic-minimal-rock64-0.1~dev-1-armhf-boot.img bs=1M seek=100 count=0
0+0 records in
0+0 records out
0 bytes copied, 8.8109e-05 s, 0.0 kB/s
+ mkfs.ext4 -L linux-root /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/bionic-minimal-rock64-0.1~dev-1-armhf-system.img
mke2fs 1.43.8 (1-Jan-2018)
Discarding device blocks: done
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: aa53af19-9acb-46e7-b9c8-b10b995b1983
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

+ tune2fs -o journal_data_writeback /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/bionic-minimal-rock64-0.1~dev-1-armhf-system.img
tune2fs 1.43.8 (1-Jan-2018)
+ mkfs.vfat -n boot -S 512 /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/bionic-minimal-rock64-0.1~dev-1-armhf-boot.img
mkfs.fat 4.1 (2017-01-24)
mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows
+ mount /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/bionic-minimal-rock64-0.1~dev-1-armhf-system.img /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/rootfs
+ mkdir -p /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/rootfs/boot/efi
+ mount /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/bionic-minimal-rock64-0.1~dev-1-armhf-boot.img /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/rootfs/boot/efi
mount: /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/rootfs/boot/efi: failed to setup loop device for /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/bionic-minimal-rock64-0.1~dev-1-armhf-boot.img.
+ cleanup
+ local arg=32
+ echo '> Cleaning up ...'
> Cleaning up ...
+ umount /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/rootfs/boot/efi
umount: /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/rootfs/boot/efi: not mounted.
+ true
+ umount /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/rootfs/boot /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/rootfs/lost+found
umount: /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/rootfs/boot: not mounted.
umount: /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/rootfs/lost+found: not mounted.
+ true
+ umount /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6/rootfs
+ rm -r /home/ed/rock64-linux/linux-build/rock64-build-1QDXfqtGQ6
+ exit 32
Makefile.system.mk:12: recipe for target 'bionic-minimal-rock64-0.1~dev-1-armhf-system.img' failed
make: *** [bionic-minimal-rock64-0.1~dev-1-armhf-system.img] Error 32

I don't know why the error shown above looks different. Earlier I tried make xenial-minimal-rock64 with similar result.
Thank you

Thanks, got that running again. Snaps installed at several different versions on my host os had used many loop devices.


Remove WFP or assume same value than WFG

From James:

SLPF is the soil fertility factor, and WFPt is the water factor of photosynthesis. This refers to equation 4-13. As mentioned earlier in the chapter, the water potential of cassava leaves is not reduced by soil water deficit. Hence, it is unlikely that soil water deficit is directly affecting photosynthesis. We have also noted that the soil water deficit (of the upper soil layers) sends root signals to leaves causing stomatal closure, and it is through this mechanism that soil water deficit reduces photosynthesis. Hence, the model should use the WFS mentioned above to modify stomatal conductance in conjunction with the VPD effect and this should be used to modify photosynthesis, not WFPt. The advantage of this is that this will also feed directly into the estimation of transpiration that is currently done by changing something in the Priestley Taylor algorithm.

I will keep the variable WFP but it will have the same threshold values as WFG.

Solved in e2b581cc2d8a3a2b4ecd49b76a86c48c4316b661


[DO NOT MERGE] PP-4234 A Platform admin enters

Introduces the concept of a 'platform admin' into self-service, which have their own permissions and ability to view information across the platform as a whole.
Whether or not a user is determined to be a platform admin from the perspective of self-service, is derived from the user object sent back via Adminusers when making an initial login request. A platform admin will have extra information sent back to self-service, outlining their permissions as a platform admin, and the services they are able to access.
Navigation and pages that are for use only by a platform admin are treated by a separate permissions flow, so this doesn't confuse the regular permissions system. As such a non platform-admin will not be able to access any platform admin specific pages, and to avoid the use of dozens/hundreds/thousands of 'if else' statements, reside on their own controllers and templates (for now) to keep things simple.

Old concept, no longer relevant


refactor(system/mrm_comfortable_stop_operator): rework parameters

Description
Implement the ROS Node configuration layout described in https://github.com/orgs/autowarefoundation/discussions/3371 for the mrm_comfortable_stop_operator

Remove the default value from the source code in order to ensure all parameter values are passed from the parameter files.
create schema

Tests performed

Not applicable.
Effects on system behavior

Not applicable.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[ ] I've confirmed the contribution guidelines.
[ ] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@mkuri @TomohitoAndo please urgently review this PR.

@mkuri could you confirm if it is okay to remove the default parameters from the cpp file? We have decided this in the AWF to avoid using hard coded parameters in order to force everyone to set parameters from parameter files.

Any updates about this PR @mitsudome-r @mkuri ?


Whitespaces & build failure

I have spaces in my username, so those lines:
config_options_string += " --with-zlib-include=" + include_path
config_options_string += " --with-zlib-lib=" + lib_path

Are building incorrect arguments, since paths are unquoted (maybe they should be quoted by default?)

Thanks, I have quoted those values. Try it now and tell me if it works! :+1:
Remember to replace the conanfile.py of the package, you can:
Option 1: Clone this repository and execute "conan export lasote/stable" to override the old conanfile.py in your registry
Option 2: Delete all OpenSSL package in your computer and start again with conan install: "conan remove Openssl*" "conan install "

OK, I've tried and it seems to be working now, I've successfully compiled OpenSSL (at least I think so, I haven't linked resulting binary yet). But it looks that still are some small issues with unquoted paths, I've got few warnings during compilation:
cl : Command line warning D9024 : unrecognized source file type '[surname]\.conan\data\zlib\1.2.8\lasote\stable\package\78f4112796f7cf1aa09e62d47afde489b889213c\include', object file assumed
cl : Command line warning D9027 : source file '[surname]\.conan\data\zlib\1.2.8\lasote\stable\package\78f4112796f7cf1aa09e62d47afde489b889213c\include' ignored

From the looks of it, Include directory passed to cl is cut in half.

OK. I will take another look. Could you post your default settings? Paste here the .conan/settings.yml from your user home directory.
Thanks!

Sorry, I mean default settings in conan.conf

Here you go
conan.txt
I've been building openSSL with build_type=Debug, if that's any difference.
But it looks for me like it's OpenSSL perl's fault. OK, now i know what is wrong...

Apparently calling any perl script with --option="aaa bbb" doesn't work as indented, and arguments in @ARGV look like [ '--option=aaa bbb' ]. It's recognized as one argument, but quotation marks are stripped. It seems that calling it like this `--option=""aaa bbb"" may do the trick.

Hi @Kaosumaru Sorry for the delay but I have a lot of work with conan and I need a little help with this.
I understand what you told me about perl, Could you try it and send me a PR?

Clone this repository:

Modify the conanfile.py and export it to your user/channel:
$ conan export kaosumaruael/testing

Change the requirement in your project to your own channel:
[requires]
OpenSSL/1.0.2d@kaosumaruael/testing

Try to build it with your modifications, remember to export the conanfile after build.

If you solve the bug you can send me a Pull Request and/or upload the conanfile.py and the generated packages to your own user account if you want! I do not pretend to be the owner of any conan package, would be great in the future if the community do it.
Thank you very much and sorry for not having too much time.

No problem. I've tried that, compilation worked fine, until one file exploded. Apparently, OpenSSL doesn't supports quotation marks in compiler options - one autogenerated macro will blow up. So this is pretty pointless approach. I'll think I try to file bug request to openSSL, maybe I can provide them a patch that will be accepted and not cause Heartbleed 2.0. But with such small issue, I will be probably ignored ;)
So, maybe a feature request for custom path to conan (if this isn't already possible) would be a good idea? (either way, not setting account name with space in it would be a good idea for me, it seems...)

Yes! you can change the storage path in ~/.conan/conan.conf
[storage]
# This is the default path, but you can write your own
path: ~/.conan/data

Just change ~/.conan/data to maybe c:\conan_data. You can move the data directory contents for keep data.
Thanks @Kaosumaru


Problem submit

Problems are now inCRUDible! The api and web interface now support creating, updating, deleting, and viewing (in HTML) problems. It should be noted that deleting problems has no web interface, and can only be achieved through the api.
The database was refactored to use integer pid's, converting the old pid's to "shortname". Creating, viewing, and updating problems now have their own pages and Angular controllers.

Slightly more major problem: Bootstrap and Socket.io are not included in the bower install file, so it's partially broken.

Looks like sample test cases are dropped when editing a problem. No matter what I do, they seem to disappear.

Looks like competitions are actually broken as well. I'm getting some sort of foreign key problem.

On Bootstrap/Socket.io: I switched to local copies and forgot to tie up the loose ends. I'll add Bootstrap to the init file. However, the (older) version of socket.io we're using I couldn't get from bower. I had to curl it manually. If you know how to do it, I can add it to the init file, otherwise I'll uncomment the CDN request in index.html.
On sample cases dropping: Are you supplying sample cases when you edit a problem? Are they just not showing up at all when the edit page loads (they should pre-populate)? If any sample cases are supplied, the old ones are ditched for the new ones; it's all or nothing. It may be mistaking an empty set as a case. I'll look into it.
On competitions being broken: How so? I had to add a foreign key field so SQLAlchemy could connect the tables to get the shortnames. I may have forgotten to do another db dump afterword. I'll look into it.

For Bootstrap/Socket.io: Yeah, if you could add the dependency to the init file, that'd be awesome so we don't have to do that manually. As for socket.io, I say we just leave the CDN in; for offline local development, you can use the curl way.
For sample cases dropping: It looks to me like they're just dropping no matter what I do. They're pre-populating just fine, but they're just going away after I save no matter what I do. I'll look more into it to see if it's possible to change/add them at all.
For competitions: I'm getting the following error:
InvalidRequestError: Could not find a FROM clause to join from.  Tried joining to <class 'app.modules.problem_manager.models.Problem'>, but got: Can't find any foreign key relationships between 'comp_problems' and 'problems'.

which traces back to the .join(Problem) call on line 51 of views.py in scoreboard_manager. It's probably just the dump or something.

All corrections should be made now:

Typo in docstring

API routes are now more RESTful: editing uses PUT, deletion uses DELETE, and problems are always identified by the route now

Bootstrap and Socket.io have been added to bower.json

Database dump (acm.sql) now has the foreign key in comp_problems table so compeition scoreboards will render correctly

'success': True instances have been removed

That should be everything. Web app changes were also made to reflect the api changes, but its (very) possible I missed something.

The new changes are great! It's almost ready to merge, but in trying it out, I found a couple bugs and a couple things that I think should be done a little differently.
Bugs

In both the Edit Problem flow and the Create Problem flow, you can't upload a Java or Python solution. You forgot a comma; no big deal.

In the competitions, the problem titles don't line up with the correct submissions*

General complaints

Edit problems seems essentially to be a clone of create problems, but with different fields. I think we should just merge these two; just figure out what you're doing based off the route or something and load a problem/make a fake one or something.

After editing/creating a problem, the user should have some sort of confirmation that the problem was successfully created. I'd just do this by changing them to the newly created problem's problem page to show them what they just created.

I can add empty sample input/output fields just by repeatedly clicking the button.

Right now there's no form validation, but I actually don't think that needs to be addressed in this pull request.

*on a similar note to form validation, I'll handle the scoreboard stuff since it's kind of a mess, I just wanted to note that it's a bug.

I concur on merging problem create/edit, however I have two reservations. Combining the front end parts (Angular and HTML) is fairly straightforward; I actually thought about it at the time but I wasn't sure how to go about it, but now I can see how it would work. However, the back end isn't so elegant. I can do it, but it'll basically be putting two method bodies under one signature, not particularly helpful. I'll think on it some more. My other concern is trying to do that in this PR. I'm happy to if its worthwhile, otherwise it'll go to the top of my list (alongside validation).
Just for the record: Concerning the scoreboard display bug, I appreciate you taking care of that. I understand PR's shouldn't introduce bugs, but the case could be made that it was already a bug that just wasn't noticeable. At any rate, thanks for noting it.
Final note: Slap on my wrist for no form validation, I just wanted to get this out of the door. There's also some holes in the API, particularly if a problem is queried that doesn't exist (almost no checks for that). Titles get truncated if they're too long, but that's about it. Whoever takes on validation will need to work on the back end as well.

I should have specified. I don't care about the backend as much as the duplicate code on the frontend. I think the backend code actually should be unique (updating vs creating a new thing is inherently different). I'm actually leaning towards merging it and just adding that as an issue that you can work on (since it works, that's just style). It's up to you.
No problem on the scoreboard; I know that should be cleaner.
Understandable; as this is mostly going to be admin-only anyway, I think it's alright for now.

Fixed

Sample cases can't be added unless the last sample case isn't empty (note that this is just a client-side check)

Edit/Create now accept Python and Java uploads

Edit/Create redirect to the problem page upon success

Still Broken

Scoreboard names don't line up with their respective submissions

Duplicate code in problem Edit/Create

The bane of my existence Form validation

I move that we merge now and deal with the leftovers in the (very) near future. It doesn't give me warm fuzzies, but except for the scoreboard it's functional. In the future, PR's probably shouldn't be this big.

I know you're busy @WilliamHester so I'm just gonna merge this in the next couple of days unless you have an issue with it. It's only like 10-15 lines different than the last time you reviewed it.

It looks good! Great work. Yeah, in the future, pull requests will be smaller, but sometimes this stuff just happens.


fix(dsp): In HFClientVLLM get the model from the kwargs attached by the parent class

The grandparent class of HFClientVLLM attaches the model string to self.kwargs not on self.model
Fixes an error in https://github.com/stanfordnlp/dspy/pull/719
Closes #764

LGTM and seems like it has been tested in the comment refrenced, I think it should be merged as hotfix, @arnavsinghvi11 can you please prioritize this one?

@arnavsinghvi11 topping up on the request from @ammirsm , please merge this on priority.

hi @arnavsinghvi11 I still get the below error, can you please test this before commiting the code?
File /local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.10/site-packages/dsp/modules/hf_client.py:138, in HFClientVLLM._generate(self, prompt, **kwargs)
    133 def _generate(self, prompt, **kwargs):
    134     kwargs = {**self.kwargs, **kwargs}
    136     payload = {
    137         # "model": self.model,
--> 138         "model": kwargs["model"],
    139         "prompt": prompt,
    140         **kwargs,
    141     }
    144     # Round robin the urls.
    145     url = self.urls.pop(0)

KeyError: 'model'

@manjubsavanth can you test if it works for you?

One question remains:
the LM class sets some default arguments:
https://github.com/stanfordnlp/dspy/blob/fd63306642553ecb7d0916ea4156a374ae53c255/dsp/modules/lm.py#L4-L16
before #719 , only most of those were discarded

What do we want to do?
Right now (in this PR) we are using all the default kwargs values from the LM base class,
was there a reason for discarding most of the kwargs?

@manjubsavanth can you tell if you notice a different behavior than before?

Hi @remiconnesson this works only with max_tokens and temperature, everything else does not work, for example in my case I need the top result like top_p=1 or n=1. which still does not seem to work.

Can you show me how you are setting those params?

Here is the minimal code.
import dspy
lm = dspy.HFClientVLLM(model="mistralai/Mistral-7B-Instruct-v0.2", port=8000, url="http://<IP_ADDRESS>")
dspy.settings.configure(lm=lm)

class FeedbackType(dspy.Signature):
    """Classify the given user feedback into Positive or Negative Sentiments"""
    text = dspy.InputField(desc= "Data to be classified")
    label = dspy.OutputField(desc="Falls in to one of the categories")

from dspy import (
    Signature,
    settings,
    context
)

text = "Software integration is seamless, making the workflow smooth"

pred_class = dspy.Predict(FeedbackType,temperature=0.00001,n=1,top_p=1,max_tokens=10)

with context(lm=lm):
    resp = pred_class(text=text)
    print("Mistral Response: ", resp.label)

@manjubsavanth
This fix is respecting n=1 what do you mean?

I think vllm has early stopping
But more importantly is dspy adding the[INST][/INST] Token on its own?  Maybe it's why it's struggling with following instructions

@remiconnesson Thanks a lot for the response. Given DSPy generates it's own prompts, is there a way to pass [INST][/INST] Token programmatically?

@remiconnesson Thanks a lot for the response. Given DSPy generates it's own prompts, is there a way to pass [INST][/INST] Token programmatically?

I don't know I've never used dspy yet as it was not firing my need with vllm

@arnavsinghvi11 8s this something that you are aware of?

@manjubsavanth including [INST] and other such chat templating is in the works with the backend refactor. #420 discusses some of this but at the moment, the chat templates are not integrated with DSPy yet. However, you can specify system prompts as needed.

@remiconnesson @ammirsm @manjubsavanth seems like the bug is fixed. Is the PR ready to merge?

@arnavsinghvi11 yes I think so

Thanks everyone for the contributions and testing!


doc

Optimizing the following two pages:
https://casdoor.org/docs/permission/overview
https://casdoor.org/docs/permission/permission-configuration
added  some pictures and GIFs.

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

收到，会尽快给你回复。

收到，会尽快给你回复。


Loader widget

Implementation of an additional widget that allows to arrange a mosaic from all the layers present in the viewer.
For now, all layers are treated as independent tiles, therefore if a multichannel image is loaded as several layers (following the aicsimageio behavior for instance), the channels corresponding to the same tile won't be recognized as such.

Thanks @amichaut!
I'm adding some TODOs from our offline discussions to track:

[ ] add support for multiple channels
[ ] add tests

Welcome to Codecov :tada:
Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.
Thanks for integrating Codecov - We've got you covered :open_umbrella:

The widget works!
Merging now in order to clean up a bit as this PR contains some unspecific changes.


fix bug forget to remove Stopwatch when remove repository

fix bug forget to remove Stopwatch when remove repository
Please check the following:

Make sure you are targeting the master branch, pull requests on release branches are only allowed for bug fixes.
Read contributing guidelines: https://github.com/go-gitea/gitea/blob/master/CONTRIBUTING.md
Describe what your pull request does and which issue you're targeting (if any)

You MUST delete the content above including this line before posting, otherwise your pull request will be invalid.

it had merged to master， but not yet merge to release/v1.5


Change default alignment for combos spanning three keys

Currently, the alignment for all combos seems to be middle, but for combos that span three keys horizontally or vertically, this ends up covering other keys.
A top or left/right default alignment for those combos would be better.
Here is an image as an example:

This has been something on my mind but I hadn't committed to handling these. Of course it's hard to get it perfect but we can add some heuristics to improve the default parse output. I can think of some rules like:

Equal horizontal coordinates for keys, more than one key gap: align: left or align: right depending on whether combo position is left or right of midpoint of layout
Equal vertical coordinates for keys, more than one key gap: align: top or align: bottom depending on whether combo position is higher or lower than midpoint of layout

Then there is also the issue of combo boxes overlapping with other elements like the hold specs that sartak brought up here: https://github.com/caksoylar/keymap-drawer/issues/3#issuecomment-1425057620 Unfortunately that is much harder to fix since it requires rethinking the drawing code so that keys/combos are not all independently drawn.


Date picker with accessibility labels jumps to bottom (Mobile)

hello everyone,
well im using the date picker with the accessibility labels (years and months) after selecting a year or month the page in the background jumps down to the bottom, so after selecting something i have to scroll all the way back up. this happens with the default theme, and im using a iphone 6 with iOS 10.
any idea?
thanks :-)

Did you ever resolve this? I've run in to it today and can't figure out a fix yet.

Same problem here - looking at the issues I see there was similar on Firefox some time back (#609) - related?


Change command for the rake task with arguments to a style that can also be used in zsh

If you try to add a new cop and use the wrong command in the rake task, you will get the following warning.
❯ bundle exec rake new_cop
usage: bundle exec rake new_cop[Department/Name]

If you try to execute it as is, you will face the following error.
❯ bundle exec rake new_cop[Department/Name]
zsh: no matches found: new_cop[Department/Name]

It appears that I need to escape the [ and ] to run the rake task with arguments in zsh.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[-] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[-] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[-] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Hm, I wonder whether this makes sense because it depends on the user's shell and its settings. The effects other than zsh are unknown, and it is an unnecessary escape if zsh also uses noglob.

It certainly depends on the user's shell and its settings, but there are cases where it doesn't work, so it seems like there should be a good expression that works reasonably well in any environment. (would a better expression than this escape look good?)

I'm not sure what happens to the developers of bash, fish, and others.

Certainly, I should have checked if it works in other shells. Sorry.
I have performed the following checks and at least the 'new_cop[Foo/Bar]' format appears to work.
> fish -v
fish, version 3.4.1
> bundle exec rake 'new_cop[Department/Name]'
[create] lib/rubocop/cop/department/name.rb
[create] spec/rubocop/cop/department/name_spec.rb
[modify] lib/rubocop.rb - `require_relative 'rubocop/cop/department/name'` was injected.
[modify] A configuration for the cop is added into config/default.yml.
Do 4 steps:
  1. Modify the description of Department/Name in config/default.yml
  2. Implement your new cop in the generated file!
  3. Commit your new cop with a message such as
     e.g. "Add new `Department/Name` cop"
  4. Run `bundle exec rake changelog:new` to generate a changelog entry
     for your new cop.
> git add -N .
> git diff --name-only
config/default.yml
lib/rubocop.rb
lib/rubocop/cop/department/name.rb
spec/rubocop/cop/department/name_spec.rb

$ bash --version
bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin21)
Copyright (C) 2007 Free Software Foundation, Inc.
$ bundle exec rake 'new_cop[Department/Name]'
bundle exec rake 'new_cop[Department/Name]'
rake new_cop: lib/rubocop/cop/department/name.rb already exists!
bash-3.2$ bundle exec rake 'new_cop[Department/Name]'
bundle exec rake 'new_cop[Department/Name]'
[create] lib/rubocop/cop/department/name.rb
[create] spec/rubocop/cop/department/name_spec.rb
[modify] lib/rubocop.rb - `require_relative 'rubocop/cop/department/name'` was injected.
[modify] A configuration for the cop is added into config/default.yml.
Do 4 steps:
  1. Modify the description of Department/Name in config/default.yml
  2. Implement your new cop in the generated file!
  3. Commit your new cop with a message such as
     e.g. "Add new `Department/Name` cop"
  4. Run `bundle exec rake changelog:new` to generate a changelog entry
     for your new cop.
$ git add -N .
$ git diff --name-only
config/default.yml
lib/rubocop.rb
lib/rubocop/cop/department/name.rb
spec/rubocop/cop/department/name_spec.rb

I've just found the documentation. Let's use it in single quotes.
https://docs.rubocop.org/rubocop/1.30/development.html#create-a-new-cop

Thanks!

@koic Thank you for your review and checked the documents!


./run manage migrate: database "hello" does not exist

Followed README's instructions and when it was time to run migrations, I got
django.db.utils.OperationalError: connection failed:
connection to server at "<IP_ADDRESS>", port 5432 failed:
FATAL:  database "hello" does not exist

Managed to fix it by using Docker Exec in postgres container and then manually did these steps:
psql -U postgres
CREATE DATABASE hello;

Not sure if the creation of the database should be automated or not but if not, maybe instructions regarding this could be updated in README?

The database should get created by default when you first up the project. The postgres image handles that for you. Did you change any of the .env values before hand?
You can run docker compose down -v and then docker compose up to completely reset your DB. You'll see when you first up the project that the postgres service will spend quite a few seconds initializing a new DB and user.
You can see that in the CI output too:
postgres-1  | The files belonging to this database system will be owned by user "postgres".
postgres-1  | This user must also own the server process.
postgres-1  |
postgres-1  | The database cluster will be initialized with locale "en_US.utf8".
postgres-1  | The default database encoding has accordingly been set to "UTF8".
postgres-1  | The default text search configuration will be set to "english".
postgres-1  |
postgres-1  | Data page checksums are disabled.
postgres-1  |
postgres-1  | fixing permissions on existing directory /var/lib/postgresql/data ... ok
postgres-1  | creating subdirectories ... ok
postgres-1  | selecting dynamic shared memory implementation ... posix
postgres-1  | selecting default max_connections ... 100
postgres-1  | selecting default shared_buffers ... 128MB
postgres-1  | selecting default time zone ... Etc/UTC
postgres-1  | creating configuration files ... ok
postgres-1  | running bootstrap script ... ok
postgres-1  | performing post-bootstrap initialization ... ok
postgres-1  | syncing data to disk ... ok
postgres-1  |
postgres-1  | initdb: warning: enabling "trust" authentication for local connections
postgres-1  | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
postgres-1  |
postgres-1  | Success. You can now start the database server using:
postgres-1  |
postgres-1  |     pg_ctl -D /var/lib/postgresql/data -l logfile start
postgres-1  |
postgres-1  | waiting for server to start....2024-09-08 20:56:00.570 UTC [52] LOG:  starting PostgreSQL 16.4 (Debian 16.4-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
postgres-1  | 2024-09-08 20:56:00.571 UTC [52] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres-1  | 2024-09-08 20:56:00.576 UTC [55] LOG:  database system was shut down at 2024-09-08 20:56:00 UTC
postgres-1  | 2024-09-08 20:56:00.581 UTC [52] LOG:  database system is ready to accept connections
postgres-1  |  done
postgres-1  | server started
postgres-1  | CREATE DATABASE
postgres-1  |
postgres-1  |
postgres-1  | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
postgres-1  |
postgres-1  | 2024-09-08 20:56:00.830 UTC [52] LOG:  received fast shutdown request
postgres-1  | waiting for server to shut down....2024-09-08 20:56:00.832 UTC [52] LOG:  aborting any active transactions
postgres-1  | 2024-09-08 20:56:00.834 UTC [52] LOG:  background worker "logical replication launcher" (PID 58) exited with exit code 1
postgres-1  | 2024-09-08 20:56:00.836 UTC [53] LOG:  shutting down
postgres-1  | 2024-09-08 20:56:00.836 UTC [53] LOG:  checkpoint starting: shutdown immediate
postgres-1  | 2024-09-08 20:56:00.880 UTC [53] LOG:  checkpoint complete: wrote 922 buffers (5.6%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.033 s, sync=0.008 s, total=0.045 s; sync files=301, longest=0.004 s, average=0.001 s; distance=4255 kB, estimate=4255 kB; lsn=0/19120F8, redo lsn=0/19120F8
postgres-1  | 2024-09-08 20:56:00.890 UTC [52] LOG:  database system is shut down
postgres-1  |  done
postgres-1  | server stopped
postgres-1  |
postgres-1  | PostgreSQL init process complete; ready for start up.
postgres-1  |
postgres-1  | 2024-09-08 20:56:00.952 UTC [1] LOG:  starting PostgreSQL 16.4 (Debian 16.4-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
postgres-1  | 2024-09-08 20:56:00.952 UTC [1] LOG:  listening on IPv4 address "<IP_ADDRESS>", port 5432
postgres-1  | 2024-09-08 20:56:00.952 UTC [1] LOG:  listening on IPv6 address "::", port 5432
postgres-1  | 2024-09-08 20:56:00.955 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres-1  | 2024-09-08 20:56:00.958 UTC [68] LOG:  database system was shut down at 2024-09-08 20:56:00 UTC
postgres-1  | 2024-09-08 20:56:00.964 UTC [1] LOG:  database system is ready to accept connections

My bad, just read the docs of the Docker image and this is what it says about env variables:

POSTGRES_DB
This optional environment variable can be used to define a different name for the default database that is created when the image is first started. If it is not specified, then the value of POSTGRES_USER will be used."

And I guess I messed around with those env values before/after setup, don't remember anymore. Anyways, I started over and tried the setup again with example env values, now it worked. Maybe that note could be added as a comment above POSTGRES_USER / POSTGRES_DB in the example env file?

Whoops, and if when reading README even further, there's your script for renaming everything 😅 So I was just being too hasty.

The .env.example does have this comment:
# You'll always want to set POSTGRES_USER and POSTGRES_PASSWORD since the
# postgres Docker image uses them for its default database user and password.

Yeah, I think this issue can be closed. Only thing I would add to that comment is "...since the postgres Docker image uses POSTGRES_USER for its default database name and user and POSTGRES_PASSWORD for the password. If POSTGRES_DB is set, then the image uses that for default database name" or something along those lines. Or then README could say in the first-time setup early on that you should not worry about touching the default values yet as they can be later changed with bin/rename-project 😄 Just a suggestion.
Anyways, this project seems great, tried cookiecutter first but it felt way too complex and overkill so thanks for this 👏

Thanks.
The rename script does perform a docker compose down -v which would reset your database so after you rename the project, the postgres image will make a new one with the new name:
https://github.com/nickjj/docker-django-example/blob/ea3ce5c451df49eff67ad3603a4315e1e785cb8e/bin/rename-project#L32


Facing when trying to import SparkAI from pyspark

facing TypeError: dataclass_transform() got an unexpected keyword argument 'field_specifiers'
code used :
from pyspark_ai import SparkAI
spark_ai=SparkAI(verbose=True)
spark_ai.activate()
Also, Please clarify whether it is pyspark-ai or pyspark_ai to be imported. (need changes to the github readme).

@shanmugavel04

facing TypeError: dataclass_transform() got an unexpected keyword argument 'field_specifiers'

Could you provide the stack trace for this one?

Also, Please clarify whether it is pyspark-ai or pyspark_ai to be imported

The import name should be pyspark_ai and I think the README is correct.

is it
`%sh pip install pyspark-ai
%python
from pyspark_ai import SparkAI
attached the stack trace.
english_sdk_dataclass_transform.txt

Hi @shanmugavel04 ,
could you try
%pip install pyspark-ai

for the installation?
!pip install libraries only in driver node while %pip install it in driver and works via nfs. It's almost always recommended to use %pip on databricks

!pip install libraries only in driver node while %pip install it in driver and works via nfs. It's almost always recommended to use %pip on databricks

It works for me!. Thank you


Is any possibilities to marked and get actions from filepath in omz stdout?

On Mac zsh I can click on the file path in the terminal (when i retrieved some prints in stdout ) and file will be opened on the linked application.For example clicking on the web-link (ctrl+mouse left button) is working fine. How can I get the same behavior with file path on Linux? Maybe some plugins I should to use?
Linux Mint 18.1
zsh --version: zsh 5.1.1 (x86_64-ubuntu-linux-gnu)

This is a feature of your terminal emulator. I'm not aware of any that does this (links are highlighted in most programs though).


rp-adapter: probable timeout while handling the wallet's response in a cluster

The RP Adapter implementation is currently relying on in-memory callbacks to gather issuer responses. This will likely fail in a cluster setup since an issuer's response will likely land on a different instance. This will result in a timeout error and the end user's wallet will not be authenticated.
The easiest fix for this is to refactor it such that all the data is gathered and stored and the UI polls an endpoint that validates that everything is there and valid.
This will solve a second bug: PR #252 is relying on there always being remote credentials because it's always listening for in-memory callbacks from issuers.

Note: update docs on new endpoint

Probably need to update endpoint paths to something more sensible


WIP initial implementation of spectrum to xyz conversion

WIP for issue #64
I tried to make the conversion generic over Float, but I couldn't make it work (new to rust...)
Let me know what you think about this.

For the generic part you can use num::cast to convert from/to numeric types.

If you moved the table from a const to a generic function you could wrap all the numbers into num::casts, the compiler should be able to optimize it away to a constant, and you could avoid converting the table each time.

Thanks for the tips!
 Do you mean a function like get_map<T: Float>() -> [T; N_SAMPLES]?
Also after checking a second time, it seems that all the data in the table is only f32. I'm not sure if using f64 would provide any advantage?

Yes, that would be it.
The advantage is you avoid iterating over the table and converting it each time, so it's a performance and genericity win.
All the data might be f32, but the operations should be on the given type to avoid precision loss.

Humm I don't understand how the function is supposed to work.
If I do the following, I get expected type parameter, found floating-point variable:
fn get_map<T: Float>() -> [[T; 3]; SPECTRUM_SAMPLES] {
    [
    [0.000129900000,0.000003917000,0.000606100000],
    ...

On the other hand, if I convert each value in the get function, I'm loosing all the point, isn't it?

you wrap each one of them in a num::cast(n).unwrap().

Great! I have just skimmed through it, as I'm on my way to work, but it looks like a nice and simple solution. I'll take a closer look when I get home, and comment some more, but I can say that it's ok to let the table values have a specific type, and then convert them to the generic type as mentioned above. There is a function in the crate root, called flt, that makes it a bit shorter.

I finally managed to add generic type for the spectrum. I had to add a bound to T: AddAssign, because otherwise, I couldn't use +=. Isn't the Float type supposed to provided that, since it already provide Add?
The gradient is also a good idea. I think we will have to provide a function outside of Spectrum with a signature like fn to_xyz(data: BtreeMap<lambda: float,  intensity: float>) -> Xyz
I will also add some doc + examples

num::Float only provides Add, that's why it would fail, but it's a really bad idea to add the AddAssign bound, just avoid using +=, sadly writing numerically generic code is awful in Rust.

I've finally managed to add generic type for the spectrum.

Nice! It looks good, but the convention is to import things, instead of prefixing with ::.

I had to add a bound to T: AddAssign, because otherwise, I couldn't use +=. Isn't the Float type supposed to provided that, since it already provide Add?

No, it's not provided, as @meh mentioned. It's thereby an unnecessary limitation to use it if we can do the same thing with x = x + ..., since it requires T to implement it. It's also not consistent with how other parts of the library looks.

The gradient is also a good idea. I think we will have to provide a function outside of Spectrum with a signature like fn to_xyz(data: HashMap<lambda: float, intensity: float>) -> Xyz. What do you think?

Well, all of this could be compacted into a function like that :smile:, since that's all it does, which is fine. I don't know what else it needs. There could, for example, be a trait that specifies a Spectrum API, which maps wavelength to intensity. Then anything from slices to Gradient, to hashmaps could implement it and be used in the same spectrum_to_xyz (or whatever) function.

Hi @tatref, it looks like I may have failed to notify you properly (I messed up and wrote the wrong usename in my first response to #70). I hope you don't mind that someone picked this up in a separate PR, and I'm sorry for letting this one stagnate. I'm still grateful for your help! Thank you!
I'll close this PR, since they are duplicates and the other one is based on your changes, but feel free to team up in #70 if you have any input or ideas.


haltSPP_ScreenNormalized check not working correctly

It appears that in the comparison in the first halt case (line 1356), the variables for samples completed (spp_ScreenNormalized) and the user setting (haltSPP_ScreenNormalized ) have been swapped, resulting in the render terminating as soon as the eye samples have completed (assuming the eye samples complete before the light samples do).
https://github.com/LuxCoreRender/LuxCore/blob/b8822419ca5ef2c676a57a1bf9d20908d1697273/src/slg/film/film.cpp#L1356
I think it should appear like the check in the third case (line 1366):
https://github.com/LuxCoreRender/LuxCore/blob/b8822419ca5ef2c676a57a1bf9d20908d1697273/src/slg/film/film.cpp#L1366
Potential bug: should the user's CPU be much faster than their GPU, spp_ScreenNormalized exceeds the user setting before spp_PixelNormalized does, then the render might never complete.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Thanks, I should have fixed the problem.

Thanks, I should have fixed the problem.

Thank-you, Dade!

Thank-you, Dade!


Fix weird headings in home page code examples

I don't really know why the English version has that max-width either. I might raise an issue there 🤷♀
Before:

After:

that mixed content error is appearing and failing in all PRs because of an mp3 file

That's it, this has happened in like four language repos right now, I'm fixing it in the english version.