Don't date-filter image collection bands that are not time indexed

subbasin_stats is working fine for me using the example "image" Dataset ("JRC/GSW1_3/GlobalSurfaceWater",                 "occurrence")
However, "image_collection" entries like Dataset("JRC/GSW1_3/MonthlyRecurrence", "monthly_recurrence") give me either an empty file on my GDrive or an error:

TypeError: cannot unpack non-iterable NoneType object

depending on if test is True.

This one's all @tzussman .

I'll take a look at all of these sometime over the next two weeks

{
        "id": "JRC/GSW1_3/MonthlyRecurrence",
        "name": "JRC Monthly Water Recurrence, v1.3",
        "start_date": "1984-03-16",
        "end_date": "2021-01-01",
        "type": "image_collection",
        "bands": {
            "monthly_recurrence": {
                "units": null,
                "resolution": 30.000000000000004
            },
            "has_observations": {
                "units": null,
                "resolution": 30.000000000000004
            }
        }
    },

I thought the purpose of L122 was to filter the date range. I don't know that we'd want to turn it off in general, would we?

Right now it's taking the minimum date and maximum date from the metadata (not user input) so it's not really filtering.

Oh, that seems strange. There could be a reason it exists, although I can't guess what that would be...

Yeah, that sounds correct.

Seems like a solution is to somehow turn off the default filtering but allow user filtering.

I thought that's what we had, but you found a case where the default
filtering fails on this imageCollection. So probably just check keywords
for user-requested date filtering and call filterDate if they're provided,
otherwise don't?
On Tue, Sep 28, 2021 at 10:10 AM Jem Stachelek @.***>
wrote:

Seems like a solution is to somehow turn off the default filtering but
allow user filtering.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/jonschwenk/rabpro/issues/66#issuecomment-929372877,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADRPO5OL5TDXHRVXIVIILX3UEHSH5ANCNFSM5E3C4FJQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

We had:

If no user specified date filter, then "filter" (but not really filter) by the por.

I propose:

If no user specified filter, then no filter (return entire por).

PR incoming

The issue with checking keywords is that they don't seem to be consistent. We'd need a keyword dictionary.


Extendable collectors

My core issue is that I want to hook into the agent to track jobs. My preferred solution is #18, but I'm also ok with #11.
But if not that, then there are a couple things I think should be done to allow better extensibility:

Split up HttpCollector so the framework stuff is done in its own collector. See the above PRs for a sample FrameworkCollector implementation. This is needed so that when I add my own collector for jobs, it doesn't have a "Route matching" span that never ends. I supposed you could just go with the isHttpRequest to not start the route_matching but I do think it's a bit awkward to have the boot stuff in http--may be just me
Since the Agent is a singleton, I can pick that up anywhere, but since $collectors isn't public, I can't just add my own. Either a getCollectors method or a public property would be fine.

Even if one of my job PRs is merged, step 2 may still be useful.

Both of them are great ideas.

Will split the responsibilities collector and avoid the issues that you mentioned with jobs. We should do it regardless of the PRs you opened.
What about adding an addCollector() method instead? It would be a nicer API for the user. Something like:

$agent->addCollector(MyCollector::class);

If I'm reading into the situation right, it seems you're leaning toward #18 so this will get taken care of there.
I like that! PR incoming, but I'm thinking it should wait for jobs and get cleaned up before then.


Release Google.Cloud.Firestore.Admin.V1 version 3.2.0

Changes in this release:
New features

Add ApiScope and COLLECTION_RECURSIVE query_scope for Firestore index (commit 4c82bff)

Created release for Google.Cloud.Firestore.Admin.V1-3.2.0


Bug: (rule 'swift_proto_library') doesn't contain declared provider 'CcInfo'

Description
Project gen fails for us with the following trace:
swift_proto_library rule //librariesA:libraryB:
Traceback (most recent call last):
	File "/private/var/tmp/_bazel_ios/rules_xcodeproj.noindex/build_output_base/external/rules_xcodeproj/xcodeproj/internal/xcodeproj_aspect.bzl", line 62, column 36, in _xcodeproj_aspect_impl
		info = create_xcodeprojinfo(
	File "/private/var/tmp/_bazel_ios/rules_xcodeproj.noindex/build_output_base/external/rules_xcodeproj/xcodeproj/internal/xcodeprojinfo.bzl", line 652, column 44, in create_xcodeprojinfo
		info_fields = _create_xcodeprojinfo(
	File "/private/var/tmp/_bazel_ios/rules_xcodeproj.noindex/build_output_base/external/rules_xcodeproj/xcodeproj/internal/xcodeprojinfo.bzl", line 514, column 50, in _create_xcodeprojinfo
		processed_target = process_library_target(
	File "/private/var/tmp/_bazel_ios/rules_xcodeproj.noindex/build_output_base/external/rules_xcodeproj/xcodeproj/internal/library_targets.bzl", line 86, column 25, in process_library_target
		cc_info = target[CcInfo],
Error: <target //librariesA:libraryB> (rule 'swift_proto_library') doesn't contain declared provider 'CcInfo'

Reproduction steps
I currently am working on a repro and will share one soon.
Expected behavior
Project gen should be successful.
rules_xcodeproj version
1.10.1
Xcode version
Xcode.<IP_ADDRESS>A240d
Bazel version
6.3.2
rules_apple version
2.3
rules_swift version
1.12.0
Additional information
No response

@thii would be great to get your input on this issue, thanks!

A repro would be great. I have yet to figure out why a CcInfo is not there. There should always be one IIUC.
https://github.com/bazelbuild/rules_swift/blob/2713face93b3ed4703d0e2c763bb6fc10336782a/swift/internal/swift_proto_library.bzl#L54-L57

Upon further examination, I discovered that the issues were not related to rules_xcodeproj or swift_proto_library. Instead, there was some weird logic on our end that needed adjustment. After addressing that, everything functions as expected. My apologies for raising this issue prematurely.


Added new course on ML

This pull request fixes this Issue
-Added a new course on Machine Learning provided by Sentex.

I'm sorry, I had not checked properly. They do not provide a certificate.


I am unable to build the project as I am facing issue with docker-maven-plugin

I am trying to build the project but I am facing issue regarding the com.spotify : docker-maven-plugin.
Or is this  issue with my settings.xml for maven?

Most likely your proxy. Try outside of proxy without any settings.xml in .m2 folder.


Please add OpenGL graphics module

Acknowledgement of preliminary instructions

[x] I have read and acknowledged the preliminary instructions.

What idea do you have?
Please add OpenGL graphics module

Why though?

No


Standardize on "migrate" terminology for performing upgrades

In the context of performing chain upgrades (https://github.com/penumbra-zone/penumbra/issues/1804), we use the word "upgrade" a lot, so much that it's become overloaded and therefore ambiguous. To reduce confusion, let's use "upgrade" to refer to:

the set of operations required to move a node from one version of the chain to another, e.g. penumbra-testnet-rhea to penumbra-testnet-titan chain id;
the act of updating a specific software component from one version to another, e.g. pd from 0.63.3 to 0.64.0.

However, we currently also use the term "upgrade" in the subcommand pd upgrade, which migrates local pd state to a format compatible with the future chain. Instead, let's call that action pd migrate and update documentation accordingly. Doing so will allow us to differentiate in documentation between the act of "upgrading pd" and "migrating state", both of which are necessary subtasks to be performed by operators within the greater whole of "performing a chain upgrade".

SGTM, if we do this we should do it ahead of the 66 upgrade.


feat(ui/backend/openapi/docs) : Add support for Business Attributes

This PR is the implementation for the following RFC
https://github.com/datahub-project/rfcs/pull/6
Screenshots:

Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.

Please update this branch, looking to get the tests passing for merging. LMK if you need some help!

Hi @david-leifker, branch has been updated and conflicts has been resolved. Still 3 tests are failing and we are not sure about the reason as they are not seems to be related with our functionality. Please suggest


Common service connection issue forinvoke pipeline task

In the pipeline azure-pipelines/templates/utils/invoke-aml-pipeline.template.yml
        - task: ms-air-aiagility.vss-services-azureml.azureml-restApi-task.MLPublishedPipelineRestAPITask@0
Reading online, and from my own experiences, the task will not run unless given a specific machine learning workspace service principal connection in DevOps. A typical service principal connection will not suffice.
No error message is available, hence this issue needs to be documented

That's correct. When invoking an AML pipeline, the variable SERVICECONNECTION_WS is used instead of SERVICECONNECTION_RG (both are defined in the infra configuration file). For example in the modeling pipeline: https://github.com/microsoft/dstoolkit-mlops-base/blob/322f45171b91646eae8b4d276c371d3685d7c54f/azure-pipelines/PIPELINE-1-modeling.yml#L97
If the wrong service connection is used, the task will fail with no explanation. That issue is documented in the FAQ here.
I'll close the issue now, thanks for creating it so people will find the solution in the future.


MacOS Build

In order to successfully build piper on MacOS devices (Intel or Apple Silicon), the follwing pull requests have to be merged:

espeak-ng/espeak-ng#1811
rhasspy/piper-phonemize#11

When trying to run the freshly built executable on a Mac, please keep in mind that the executable will not find the phontab file since it is not located where expected. In order to test the successful compilation, run the following command after downloading the required models:
echo 'Welcome to the Machine!' | build/piper -m en_US-lessac-medium.onnx -f welcome.wav  --espeak_data
 ./install/espeak-ng-data

Merged! A test build for macOS is available here: https://github.com/rhasspy/piper/releases/tag/2023.9.27-1


PUPIL-310 extract components from PostPortableText

Description
Music year: 1954

extract components from PostPortableText
move Accordion back out of ArchivedComponents (as it is used by one of the CurriculumComponents
fix storybook for SearchDropdown

Issue(s)
Fixes #PUPIL-310

:tada: This PR is included in version 1.327.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


State in documentation Pode.Web doesn't work in Azure Functions or AWS Lambdas

I get this question often with Pode.Web, and it makes sense since Pode itself does work in Functions/Lambdas. Sadly Pode.Web doesn't, so having this in the documentation (and readme) would be worth while.

Does #552 fix this issue?


fix clicking usernames in chat

Broke here: https://github.com/keybase/client/commit/9526309a42b55d6d0a4a77851c4a034a4eb37839#diff-f4dcb39c5323883d9679c2c047e7d331L203
r? @keybase/react-hackers

oh, also fixes the "edit profile" todo not doing anything 🎉


⚠ ClamAV has degraded performance

In a5296a4, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 83 ms

Resolved: ClamAV performance has improved in 3d61e30 after 12 minutes.


Checkboxes on UI at "/ipam/vrfs/X" Not Linked to Any Action

Fixes:
Fixes #1603: Checkboxes on UI at "/ipam/vrfs/X" Not Linked to Any Action

This does not address this issue. A toggle is needed to control the display of checkboxes within a table rather than just inferring from the user's permissions.


⚠ Bofrost.be has degraded performance

In 6189e4d, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 926 ms

Resolved: Bofrost.be performance has improved in 0b01f63.


DEC-1177 Add media type to index and reindex of item

We needed to have an item reindexed when a thumbnail was added so that it would appear in the item API output, and the media type is now output in search results. Some of the index classes were touched, and the item reindex call was added to the media thumbnail class.

Coverage increased (+0.004%) to 95.712% when pulling 5d19f00696e7280004b696a8b52ed874f94e949f on DEC-1177-media-index-api into 31e4aaed440f537556508203fa459cf3d71392a8 on master.

:+1:

Coverage increased (+0.003%) to 95.711% when pulling c1f0048e4a093af90f0799a3f485e8c9d79499ad on DEC-1177-media-index-api into 31e4aaed440f537556508203fa459cf3d71392a8 on master.

👍  Once the metadata only type is addressed.

Coverage increased (+0.003%) to 95.711% when pulling 21e2c954282b2c210d3fe2573159ce6fccf20bab on DEC-1177-media-index-api into 31e4aaed440f537556508203fa459cf3d71392a8 on master.


Updates to Radio Button Group spacing of header and list items.

Increased the bottom margin from the RadioButton Group Header to match figma specs
Increased spacing between list items to match figma specs

Description
Increased RadioButtonsRowSpacing from 3 to 8
Increased RadioButtonsTopHeaderMargin from 4 to 8
Motivation and Context
Matches implememtation to design specs from figma for bug 31437506
How Has This Been Tested?
MUXcontrolsTestapp
Screenshots (if appropriate):

/azp run


Write unit tests to validate readers

One test could be some simple data, and test that after using the reader and then the writer, diffing the original and output files reveals no difference.

I just emailed Andre something similar:
I've done some work on an implementation of the spec, but it occurs to me that there are not any complete example files.  This makes it a bit difficult to test whether my implementation is working.
I think we should have three (four):

minimal.wcon
A file that has data that has the absolute minimum number of elements needed to be valid--that is, a minimal writing program must be able to at least write this.

minimax.wcon
A file that uses every single basic feature--that is, a minimal reading program must correctly get the data from this.

maximal_1.wcon, maximal_2.wcon
File(s) that use every extended feature of the specification, so that everything we talk about in the specification has at least one example.  (Since we specify how to deal with multiple files, I guess there must be two of these.)

@MichaelCurrie - Do you want to try your hand at writing the files based on Andre's specification?  I can then check whether my Scala reader reads/writes them without (substantive) changes.
You do want a JSON-aware diff, as whitespace changes ought not be considered significant, nor (probably) the order in which key-value pairs are presented.

In addition to the pull request mentioned above, I also added Travis CI for "continuous integration" testing of all pull requests and pushes affecting the Python code.
It may also be possible to extend this to allow for testing of the code written in other languages, but I haven't looked into this.
I think once the pull request is merged we can close this issue for now.

Travis CI is a great addition.  I'll hook in the other languages' tests when I have time (assuming I can figure out how with all of them; I know Scala will work, but I've never looked into it for Julia).

Handled by 2b35d01e7f0ea46b8e311d7218bfab38670900eb


Uncaught Exception: Attempting to call a function in a renderer window that has been closed or released. Function provid

An uncaught exception was reported.
Info:
OS: win32
Arch: ia32
GPMDP Version: 3.0.1
Time: Mon Mar 21 2016 15:54:30 GMT-0400 (Eastern Daylight Time)
Error:
Attempting to call a function in a renderer window that has been closed or released. Function provid
Error: Attempting to call a function in a renderer window that has been closed or released. Function provided here: Object.<anonymous> (C:\Users\jimmy.multani\AppData\Local\GPMDP_3\app-3.0.1\resources\app\build\inject\GPMInject\interface\mouseButtonNavigation.js:8:8.
    at BrowserWindow.callIntoRenderer (C:\Users\jimmy.multani\AppData\Local\GPMDP_3\app-3.0.1\resources\atom.asar\browser\lib\rpc-server.js:201:19)
    at emitTwo (events.js:92:20)
    at BrowserWindow.emit (events.js:172:7)

This issue was created automatically inside the uncaughtException handler

Closing this automatically reported issue as a duplicate of #470


[Feature] completely separate stages

Prerequisites

[x] I am running the latest version. (up upgrade)
[x] I searched to see if the issue already exists.
[x] I inspected the verbose debug output with the -v, --verbose flag.
[x] Are you an Up Pro subscriber?

Description
Essentially we need this
{
  "stages": {
    "staging": {
      "lambda": {
        "runtime": "nodejs10.x"
      }
    },
    "production": {
      "lambda": {
        "runtime": "nodejs8.10"
      }
    }
  }
}

Due to EOL of node 8 I upgraded several up deployments. nodejs10.x is the first runtime that runs on Amazon Linux 2.

This broke a deployment, because we had binaries that were compiled for Amazon Linux 1.
Now here's the feature request: Currently it's not possible to test a different runtime on staging while keeping production running as-is. It seems "lambda.runtime" is ignored inside the stages, at least the Version on the Lambda Dashboard doesn't change. This kind of makes sense because as far as I understand there's a Go proxy doing the "/production/" and "/staging/" routing inside the same runtime.
Assuming other runtimes (Python, Ruby, Java, Go, .NET) will eventually have versions running Amazon Linux 2 it would be really nice to be able to test in staging before changing production.
Edit: for anyone interested, this is related https://github.com/alixaxel/chrome-aws-lambda/issues/37

Agreed! I'll get that in the next release

Nice, thanks!

@tj did this make it into 1.5.0-pro? The commit is tagged v1.5.0 but the History.md doesn't mention it. I just added
"stages": {
  "staging": {
    "lambda": {
      "runtime": "nodejs10.x"
    }
  }
}

To an existing project. After running up I still see "Runtime: nodejs8.10" on the web dashboard for the latest version aliased "staging".

Hmm should be in there I think, I'll double check

Found it, I was saving a reference to the runtime before applying overrides. I'll start releasing 1.5.1

It's working now, thanks!

Awesome, sorry about that!


Error when starting hosting

When trying to start the server, a similar error pops up in the console: log-20241116.txt
Since my knowledge of programming is not very great, I have no idea what exactly needs to be done to get rid of it.

I think there was a problem while reading the map file. Can you provide me with information on which version you used and which map you used other than the basic map?

I used version 1.1.9 of the program, also checked for 1.1.8. The game client itself is modified via r2modman, but the game map is basic, unchanged.

I used version 1.1.9 of the program, also checked for 1.1.8.
The game client itself is modified via r2modman, but the game map is basic, unchanged.

We have released version 1.1.10 now. Can you check this version?

Everything is working properly. Thank you so much for responding to my request and correcting the error!

re-released version 1.1.11 due to map loading issues when connecting to the server. please update!


[urgent] swim log model

Model M6 RMSE is wrong in R.
The issue is the log correction.
It wants to use the system-generated residual whereas that's impossible for the holdout set.
Instead, thus, it uses the training set residuals.
Yet it's easy to obtain the holdout set "residuals", they are (y-yhat).
The corrected RMSE is very different.
This is what we have in R
#had to cheat and use train error on full train set because could not obtain CV fold train errors
corrb <- mean((reg6$finalModel$residuals)^2)
rmse_CV["reg6"] <- reg6$pred %>%
mutate(pred = exp(pred  + corrb/2)) %>%
group_by(Resample) %>%
summarise(rmse = RMSE(pred, exp(obs))) %>%
as.data.frame() %>%
summarise(mean(rmse)) %>%
as.numeric()
rmse_CV["reg6"]
below is new stata code that does it
*** 5 MODELS WITH QUANTITY AS TARGET VARIABLE (M1-M5)
local M1 t i.month
local M2 t i.month i.dayofweek
local M3 t i.month i.dayofweek i.natholiday
local M4 t i.month i.school_off##i.dayofweek
local M5 t i.month i.school_off##i.dayofweek i.month##i.dayofweek
forvalue i=1/5 {
forvalue y=2010/2015 {
qui use "$data_out/swim-daily-workfile.dta", replace
dis ""
dis "*********************************************"
dis "Model Mi'" 		dis "test year: y'"
dis "training years:"
tab year if year!=y' 		reg quantity Mi'' if year!=y'
qui predict yhat
qui gen sq_error = (quantity - yhat)^2
qui sum sq_error if year==y' 		local mse_y' = r(mean)
}
gen  cv_mse_Mi' = (mse_2010'+mse_2011'+mse_2012'+mse_2013'+mse_2014'+mse_2015')/6 	gen cv_rmse_Mi' = sqrt(cv_mse_M`i')
keep if t==1 / one-obervation file with the forecast statistics /
keep t cv
cap merge 1:1 t using "$data_out/swim-daily-forecasts.dta", nogen
save "$data_out/swim-daily-forecasts.dta", replace
}
*** +1 MODEL (M6) WITH LN(QUANTITY) AS TARGET VARIABLE
local M6 t i.month i.school_off##i.dayofweek
forvalue y=2010/2015 {
use "$data_out/swim-daily-workfile.dta", replace
cap gen lnq = ln(quantity)
keep if year>=2010 & year<=2015
qui reg lnq M6' if year!=y'
qui predict yhat
local sig = e(rmse)
replace yhat = exp(yhat) * exp(sig'^2/2) 	qui gen sq_error = (quantity - yhat)^2  	qui sum sq_error if year==y'
local mse_y' = r(mean) } gen cv_mse_M6 = (mse_2010'+mse_2011'+mse_2012'+mse_2013'+mse_2014'+`mse_2015')/6
gen cv_rmse_M6 = sqrt(cv_mse_M6)
cap merge 1:1 t using "$data_out/swim-daily-forecasts.dta", nogen
aorder
order t
save "$data_out/swim-daily-forecasts.dta", replace
tabstat cv_rmse_M*, col(s) format(%4.2f)

This is stull there as problem...

@regulyagoston could you pls check R / refactor if needed
@adamvig96 could u pls check if python OK

@gbekes  Python is already doing this, I created the code based on Stata.
# M6 log model
y, X = dmatrices("q_ln ~ 1 + trend + month + dow +school_off*dow", data_train2)

rmse_folds = []
for train_index, test_index in logo.split(X, y, groups):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

    lin_reg.fit(X_train, y_train)

    y_hat = lin_reg.predict(X)

    corrb = mean_squared_error(y, y_hat)

    y_hat = np.exp((lin_reg.predict(X_test) + corrb / 2))

    rmse_folds.append(mean_squared_error(np.exp(y_test), y_hat, squared=False))

Book/Stata rmse: 30.99
Python rmse: 30.05
I think the difference can be accounted for the CV randomisation. hm?


doc.Find(selector-string) returns empty

Hello, I want to get the score of name on evaludated on a website, https://www.xingming.com/dafen/.
The score value element's selector is 'body > div.main.clear > div > div > p:nth-child(11) > b > font'.
The selector is copied from Chrome, and I tested it the selector is right.
My go code is like:
doc, err := goquery.NewDocumentFromReader(rsp.Body)
if err != nil {
      panic(err)
}

sel, err := doc.Find("body > div.main.clear > div > div > p:nth-child(11) > b > font")
if err != nil {
     panic(err)
}
log.Println(sel.Text())

I hope the code will output the score of name, but it returns empty. It looks like the selector failed.

I test the nth-child(N) selector. I see goquery may use different index base number.
I changed from nth-child(11) to nth-child(10) and it works.
Hope goquery can make a little improvement so we can copy the selector auto-generated from browser and use it.


Make image_file column optional

Fixes #111
If the image_file column is unspecified, no Image is added to the subject. The shape_file column is still required.

To be clear, the image_file column is still required, but it can now be left blank if there is no image.


Core.EventReceivers Not Authorized 401 - On Premise

I have been struggling with this now for a while, and at some point it worked, but now it is broken again.
As per the title I am trying to get this working On Premise just using your code in Visual Studio 2013. I have replaced all the references to the 15 version of the DLL; set the properties of the Core.EventReceivers.Web with:
Anonymous Authentication: Disabled,
Windows Authentication: Enabled
SSL Enabled: True
This results in the AppEventReceiver.svc as being un-reachable as the SVC page displays "The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'NTLM,Negotiate'. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized"
If I then make the following properties:
Anonymous Authentication: Enabled,
Windows Authentication: Enabled
SSL Enabled: True
The call to the AppEventReceiver.svc is executed but the clientContext.ExecuteQuery() is unauthorized 401 Access Denied
I have even added and removed "AllowAppOnlyPolicy" in the AppManifest
As I say I got this working (somehow) but am unable to get it working again and we are hoping to use Remote Event Receivers this is critical.
Is this still the correct PnP to use for RER and if so what is the correct combination of settings.

@JulesAnime Sorry for the vary delayed response to this. But you do need to enable anonymous and have an SSL endpoint. Are still having issues?

closing for now but will reopen if needed.


removed the Python module

Description of the Change
It seems no longer needed as the irohapy trget is removed.
Benefits
A piece of code that is unneeded and won't compile anyway is removed.
Possible Drawbacks
Maybe I missed something and it is required somewhere.

We should somehow remove the existing library from pypi when trunk will be merged

summon @Stayer

summon @bakhtin

You cannot remove a package from PyPi once it was uploaded there. It can only be replaced with a newer version.

I guess it might be either renamed, or have a comment about its obsolescence


FpsDisplay component enforces / requires TextMesh component, although its optional

Overview
The FPSDisplay component requires a TextMesh component on the same game object using
[RequireComponent(typeof(TextMesh))]
when actually it is not mandatory. The FPSDisplay component is written in a way, that it can work either with a TextMesh or a UGUI Text component. It will just write the FPS into either, depending on whether it's set or not
if (textMesh != null)             {                 textMesh.text = displayString;             }
             if (uGUIText != null)             {                 uGUIText.text = displayString;             }
Expected Behavior
Writing the FPS into a TextMesh component is optional.
Actual Behavior
If there is no TextMesh, one will be enforced and FPS will write into it.
Proposed Solution
Remove [RequireComponent] Attribute in FPSDisplay component.

Sorry I just realized this is already fixed in the Dev_Working_Branch.

uGUI has some performance overhead anyway

Yeah. I just stumbled upon this when creating a "debug console" with UGUI for my project and wanted to use FPSDisplay in it.

@FejZa,
This is fixed in the may18_dev branch and will be released as part of 2<IP_ADDRESS> in mid-May.
Thanks!

Please see #2006


OpenWrt (and other minimal embedded environment) support

We package Domoticz for the OpenWrt distribution, and have historically used OpenZWave with it. Domoticz is now switching to ZWave-JS-UI so it would be great to package ZWave-JS-UI to work out of the box on OpenWrt too: https://github.com/nxhack/openwrt-node-packages/pull/1826
An always-on embedded router/AP is a perfect place to run home automation, but the environment can be a little constrained in CPU, memory and "disk" storage.  For the last few years mine has been running on a MIPS24k with 128MiB of RAM.
We have a proof of concept basically working (not on that box, but on a quad Arm7 with 256MiB of RAM). I'd appreciate some help cleaning it up though, please. There are a few things to look at. Please let me know if I should file separate issues for each.
1. The package is huge — about 100MiB.
Are we doing it wrong? Are there any parts which can be left out? Here are some of the largest files....
644<EMAIL_ADDRESS>644	./node_modules/vue/packages/compiler-sfc/dist/compiler-sfc.js
676	./node_modules/vis-network/standalone/esm/vis-network.min.js
676	./node_modules/vis-network/standalone/umd/vis-network.min.js
704	./node_modules/vis-network/esnext/esm/vis-network.js
740	./node_modules/mqtt/dist/mqtt.js
748	./node_modules/vis-network/esnext/umd/vis-network.js
1136	./dist/assets/index-822e6be1.js
1192	./node_modules/vis-network/peer/esm/vis-network.js
1224	./node_modules/vis-network/peer/umd/vis-network.js
1364	./node_modules/vis-network/dist/vis-network.esm.js
1368	./node_modules/vuetify/dist/json/web-types.json
1400	./node_modules/vis-network/dist/vis-network.js
1552	./node_modules/vis-network/standalone/esm/vis-network.js
1592	./node_modules/vis-network/standalone/umd/vis-network.js
1628	./node_modules/vuetify/dist/vuetify.js
2748<EMAIL_ADDRESS>2928<EMAIL_ADDRESS>
Some of those seem like amalgamated or preprocessed versions of the original sources; in some cases we end up with what looks like three copies of the same code. Do we need to ship them all? In the case of MQTT there's a separate package for that anyway, which has the same three files that the zwave-js-ui package is shipping too.
root@OpenWrt:/usr/lib/node/mqtt/dist# ls -l
-rw-r--r--    1 root     root        319479 Nov 27 07:02 mqtt.esm.js
-rw-r--r--    1 root     root        741706 Nov 27 07:02 mqtt.js
-rw-r--r--    1 root     root        319504 Nov 27 07:02 mqtt.min.js

Some help understanding how this stuff works would be much appreciated.
Also, is it possible to compile down to bytecode or even native code, and ship only that to the target system? That might help with...
2. Memory usage
Its virtual memory size is 180MiB. Is there anything which can be done to reduce that? Is the full UI loaded into the interpreter even when only the ZWave←→MQTT bridge is active?  Is it possible to run a version with the UI completely removed? It would actually be OK even if the user has to stop the zwave-js-ui process, and restart it with UI enabled.
Of course it would be nice to have a separate minimal server, and run the UI on demand (and as much as possible on the browser side), but that's probably a lot more work. Anything we can do to reduce memory usage in a relatively non-intrusive fashion would be useful though.
3. File system usage in /etc/zwave-js-ui.
In OpenWrt we typically use a writable overlay flash file system on top of a read-only root, and have the following categories of storage:
• The initial root filesystem (including the 100MiB package, as discussed above).
• Files written to flash in the overlay, which are preserved across upgrade.
• Files written to flash in the overlay, which are lost across upgrade.
• Files in RAM, lost on every reboot.
We try to reduce the amount written to the flash file system — both in terms of size, and frequency of writes. We also try to minimize the amount that's preserved across system upgrade, as it's packaged into a smallish tarball which is then extracted into the new system after upgrade. Looking through the contents of /etc/zwave-js-ui, here's my idea of what might go where; please let me know if it's sane...

settings.json, users.json, nodes.json, scenes.json: Preserved over sysupgrade.

logs/: In RAM. Or perhaps even sent only to syslog and not to files at all.

backups/: Flash file system, not preserved.

config-db/: Our packaging seems to point $ZWAVEJS_EXTERNAL_CONFIG to this, but I think that's wrong because it makes another copy of everything that's already shipped in the package? We should leave this to be used "sparingly, when custom files are absolutely necessary" as the documentation says. And then it should be in the flash file system and preserved over system upgrades.

*.lock: In RAM

xxxxxxxx.json, xxxxxxxx.metadata.json, xxxxxxxx.values.json: Flash file system, perhaps not preserved? They can all be recreated, I believe?

config/, sessions/, snippets/: Not sure, these are empty for me.

Hi David. Thanks for your issue, I will try to answer to all your questions.

Are we doing it wrong? Are there any parts which can be left out? Here are some of the largest files....

Everything inside node_modules folder is needed. Apart from that I use this command after building ui and server to cleanup useless files:
find . -mindepth 1 -maxdepth 1 \
    ! -name "node_modules" \
    ! -name "snippets" \
    ! -name ".git" \
    ! -name "package.json" \
    ! -name "server" \
    ! -name "dist" \

It essentially keeps only the folders/files that are listed and remove the rest. In-fact if you check what's inside docker you will see:
➜  ~ docker run --rm -it zwavejs/zwave-js-ui:latest /bin/sh
/usr/src/app # ls
dist          node_modules  package.json  server        snippets

In case of mqttjs (I'm also the maintainer of that library) I can easily use esbuild in order to create a bundle with all the files needed, that's not really easy to do with zwave-js-ui as it also have a webserver and many other things that makes that hard to bundle everything in a single file, paths to things will just be wrong everywhere or less predictable.
About compiling it to bytecode, I already do that with pkg, you see the available builds in releases: https://github.com/zwave-js/zwave-js-ui/releases/tag/v9.5.1

Its virtual memory size is 180MiB. Is there anything which can be done to reduce that? Is the full UI loaded into the interpreter even when only the ZWave←→MQTT bridge is active? Is it possible to run a version with the UI completely removed? It would actually be OK even if the user has to stop the zwave-js-ui process, and restart it with UI enabled.

Everything is loaded by default, UI, webserver etc... What could help here could be to use env vars to disable the webserver, dunno how much memory that could save BTW...

backups/: Flash file system, not preserved.

Not ideal but I let you decide

config-db/: Our packaging seems to point $ZWAVEJS_EXTERNAL_CONFIG to this, but I think that's wrong because it makes another copy of everything that's already shipped in the package? We should leave this to be used "sparingly, when custom files are absolutely necessary" as the documentation says. And then it should be in the flash file system and preserved over system upgrades.

The $ZWAVEJS_EXTERNAL_CONFIG env var is used because by default when doing a configuration db update that would use the location of the actual db in node_modules and that would be overriden by an update, also in docker-env that folder is not preserverd in volumes so we set it by default on a folder in store that is hidden to the user in store.

xxxxxxxx.json, xxxxxxxx.metadata.json, xxxxxxxx.values.json: Flash file system, perhaps not preserved? They can all be recreated, I believe?

I think yes? @AlCalzone can tell you that

config/, sessions/, snippets/: Not sure, these are empty for me.

Config is used to load users custom configuration files, dunno if you need that
Sessions contains the users sessions, them could be stored on ram
Snippets: users custom snippets to use with driver function, dunno if you need that

If I click on the controller in the node map, there's an orange button for 'Open' above the Background RSSI chart. If I click it, I get an empty browser window pointing at localhost:8091/controller-chart/#no-topbar and a backtrace from the zwave-js-ui process:
Error: Not Found
    at /usr/lib/node/zwave-js-ui/server/app.js:1167:17
    at Layer.handle [as handle_request] (/usr/lib/node/zwave-js-ui/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/usr/lib/node/zwave-js-ui/node_modules/express/lib/router/index.js:328:13)
    at /usr/lib/node/zwave-js-ui/node_modules/express/lib/router/index.js:286:9
    at Function.process_params (/usr/lib/node/zwave-js-ui/node_modules/express/lib/router/index.js:346:12)
    at next (/usr/lib/node/zwave-js-ui/node_modules/express/lib/router/index.js:280:10)
    at session (/usr/lib/node/zwave-js-ui/node_modules/express-session/index.js:479:7)
    at Layer.handle [as handle_request] (/usr/lib/node/zwave-js-ui/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/usr/lib/node/zwave-js-ui/node_modules/express/lib/router/index.js:328:13)
    at /usr/lib/node/zwave-js-ui/node_modules/express/lib/router/index.js:286:

Is that because of our packaging?

Oh that could be an issue, I changed the routing to hash based some months ago and I may have missed to fix the path for that specific window

Fixed on linked commit above

Hi David. Thanks for your issue, I will try to answer to all your questions.

Thanks for the prompt response!

Are we doing it wrong? Are there any parts which can be left out? Here are some of the largest files....

Everything inside node_modules folder is needed. Apart from that I use this command after building ui and server to cleanup useless files:

On top of what @nxhack already does in the package build, that basically just removing the LICENSE, README.md and public/ directory I think. There's still a lot of duplication under node_modules.

In case of mqttjs (I'm also the maintainer of that library) I can easily use esbuild in order to create a bundle with all the files needed, that's not really easy to do with zwave-js-ui as it also have a webserver and many other things that makes that hard to bundle everything in a single file, paths to things will just be wrong everywhere or less predictable.

Is there something we should be doing to ensure that npm doesn't install a duplicate copy of mqttjs, and uses the one that's already supposed to be there?
(Apologies, some of these are basic questions about node packaging).

About compiling it to bytecode, I already do that with pkg, you see the available builds in releases: https://github.com/zwave-js/zwave-js-ui/releases/tag/v9.5.1

That's 230MiB which is more than twice the size of existing package. Is that expected, or is that a bad comparison? I guess this x86_64 executable includes the node runtime itself, and that's probably quite large? Is it possible to package just the bytecode and not a separate copy of the runtime?

Its virtual memory size is 180MiB. Is there anything which can be done to reduce that? Is the full UI loaded into the interpreter even when only the ZWave←→MQTT bridge is active? Is it possible to run a version with the UI completely removed? It would actually be OK even if the user has to stop the zwave-js-ui process, and restart it with UI enabled.

Everything is loaded by default, UI, webserver etc... What could help here could be to use env vars to disable the webserver, dunno how much memory that could save BTW...

Probably depends on whether setting the environment variable causes the whole thing to drop out of visibility and not get loaded by the runtime at all?
In an ideal world, we'd be able to make use of the existing webserver that's running on the system. That's not just about runtime footprint, but also about making the pages available from the same public-facing port as the existing user connection to the system. But that's probably a topic for another day.

The $ZWAVEJS_EXTERNAL_CONFIG env var is used because by default when doing a configuration db update that would use the location of the actual db in node_modules and that would be overriden by an update, also in docker-env that folder is not preserverd in volumes so we set it by default on a folder in store that is hidden to the user in store.

Hm, so ZWave-JS-UI will download a new copy of the configuration db? And by default that would try to overwrite the original one in the pre-packaged node_modules, which is perhaps read-only or at least changes will be lost when running in docker?
I wonder if we could package the config-db separately in that case, and not ship a copy in the actual zwave-js-ui code package at all? Or even not ship it at all, and download only the information we need on demand?
I think for now it's enough just to stop setting $ZWAVEJS_EXTERNAL_CONFIG. Can we disable the update of the configuration db completely?

xxxxxxxx.json, xxxxxxxx.metadata.json, xxxxxxxx.values.json: Flash file system, perhaps not preserved? They can all be recreated, I believe?

I think yes? @AlCalzone can tell you that

I threw away everything except {nodes,settings,users}.json and restarted, and that seemed to work OK. It did go and re-interview every node, but I think that's OK on a system upgrade.  I might just preserve them until/unless someone objects.

config/, sessions/, snippets/: Not sure, these are empty for me.

* Config is used to load users custom configuration files, dunno if you need that

* Sessions contains the users sessions, them could be stored on ram

* Snippets: users custom snippets to use with driver function, dunno if you need that

Thanks.

Is there something we should be doing to ensure that npm doesn't install a duplicate copy of mqttjs, and uses the one that's already supposed to be there?

The only way I think is to try using tools like esbuild or else but as said that's not an easy route.

That's 230MiB which is more than twice the size of existing package. Is that expected, or is that a bad comparison?

That could be improved a bit by enabling executable zip, anyway that means that on runtime it will unzip his bytecode content somewhere in the device to run it (and the size will be the same). The reason it is so heavy is that it also ships nodejs within it, so no need to install nodejs runtime on the device in that case. I use this tool to package the application and convert the files to bytecode: https://github.com/yao-pkg/pkg (I'm actually a maintainer of that too and there is no available valid alternative to it right now, the future of it will be nodejs SEA but it's definetly far from being usable in a complex application).
Anyway pkg application are known to have a little more RAM impact as they store a reference on memory of each file packaged inside it (it creates a virtual filesystem to serve the files)

Yeah, it ends up being a trade-off of "disk" (really flash) storage vs. RAM usage and in that case on this class of device it's often better to use more flash so that you use less RAM. If we can mmap files from the filesystem then the system can drop pages when they're not being accessed, and bring them back again on demand. But if they were decompressed into anonymous pages, there's nothing the system can do (we typically don't even have swap).
We typically use a compressed file system too, which means that compressing the file internally doesn't even give much of a win; an uncompressed file doesn't actually take that much more space on the real flash anyway. Compression just makes demand-paging hard for little benefit.

It wouldn't be on a ZUI restart, not even a router reboot. Only on a full system upgrade to a new version of the OS (including packages such as ZUI). But yeah, let's start by preserving them even then.

I suspect the ideal option for a constrained environment would be to ship the code which runs locally as bytecode, but still use the system's node runtime. And for any "files" accessed by it (including those served by the web server) to be just present on the file system (as they are at the moment).
Compiling to bytecode would presumably mean that we don't get to "share" certain libraries like mqttjs with other projects that also use them. But that sharing clearly isn't working right now anyway, and using bytecode will probably reduce the memory footprint and possible also the disk footprint too?
Is that feasible?

I think that you may be able to enable those sharing of modules using pnpm in place of npm? Not 100% sure but may be worth a try

I think that you may be able to enable those sharing of modules using pnpm in place of npm? Not 100% sure but may be worth a try

@nxhack I think that suggestion might be applicable to the whole of https://github.com/nxhack/openwrt-node-packages ?

Some thoughts on the above:
You should make sure to preserve the aforementioned .jsonl files. While they can be recreated, interviewing devices can fail due to temporary communication issues, and if battery-powered devices are involved, they won't be ready to use until they wake up and are fully interviewed.
root@OpenWrt:/usr/lib/node/mqtt/dist# ls -l
-rw-r--r--    1 root     root        319479 Nov 27 07:02 mqtt.esm.js
-rw-r--r--    1 root     root        741706 Nov 27 07:02 mqtt.js
-rw-r--r--    1 root     root        319504 Nov 27 07:02 mqtt.min.js

@robertsLando this looks to me like pkg doesn't do any tree shaking whatsoever and just includes everything in node_modules. Most likely only one of those is actually used at runtime. Pre-bundling and tree-shaking with esbuild before pkg should help, but I think you had issues with that?
IMO if disk space is a constraint, getting tree-shaking to work reliably should be a top priority. (Also can't hurt to keep our official images and binaries small).

Hm, so ZWave-JS-UI will download a new copy of the configuration db?

This is used for updating the configuration DB on an existing system without updating the entire stack. Usually this is only possible if you're using an up to date version and there have been only config .json file changes recently. Which might happen in the next few months, but not very often when I'm actively working on the driver side.

@robertsLando this looks to me like pkg doesn't do any tree shaking whatsoever and just includes everything in node_modules.

Nope it doesn't it would be too complicated as there could be dinamically loaded files/libraries that would fail to load...
Also I'm not sure using esbuild will make the application reliable but I can try...

I have drafted a PR

Thanks. I ran 'npm run bundle' on my x86 host and it seems to run OK for the build directory. So I rsynced it to the router, where it looks like this:
root@OpenWrt:/usr/lib/node/zwave-bundle# du -s */*
4804	dist/static
1860	node_modules/@serialport
11352	node_modules/@zwave-js
4	snippets/access-store-dir.js
4	snippets/clone-config.js
4	snippets/pingNodes.js
4	snippets/reinterview-nodes.js
10244	src/bin

But here it doesn't find the @zwave-js/config which is present in that node_modules directory:
root@OpenWrt:~# HOME=/root NODE_PATH=/usr/lib/node/zwave-bundle/node_modules STORE_DIR=/etc/zwave-js-ui /usr/bin/node --optimize_for_size --max_old_space_size=128 --gc_interval
=100 /usr/lib/node/zwave-bundle/src/bin/index.js
Error: Cannot find module '@zwave-js/config'
Require stack:
- /usr/lib/node/zwave-bundle/src/bin/index.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1144:15)
    at Function.Module._load (node:internal/modules/cjs/loader:985:27)
    at Module.require (node:internal/modules/cjs/loader:1235:19)
    at require (node:internal/modules/helpers:176:18)
    at<EMAIL_ADDRESS>(/usr/lib/node/zwave-bundle/src/bin/index.js:51541:20)
    at __require (/usr/lib/node/zwave-bundle/src/bin/index.js:12:50)
    at<EMAIL_ADDRESS>(/usr/lib/node/zwave-bundle/src/bin/index.js:52565:28)
    at __require (/usr/lib/node/zwave-bundle/src/bin/index.js:12:50)
    at<EMAIL_ADDRESS>(/usr/lib/node/zwave-bundle/src/bin/index.js:84296:23)
    at __require (/usr/lib/node/zwave-bundle/src/bin/index.js:12:50)

Should there have been a package.json somewhere in /usr/lib/node/zwave-bundle/node_modules/@zwave-js/config/ ?
Or am I Doing It Wrong?

That's strange, doing the exact same on my end doesn't throw :(
➜  zwave-js-ui git:(esbuild) npm run bundle

><EMAIL_ADDRESS>bundle
> node esbuild.js

Build took 593ms
Bundle size: 10.49MB

Copying "dist" to "build" folder
Copying "snippets" to "build" folder
Copying "node_modules/@serialport/bindings-cpp" to "build" folder
Asset "node_modules/@zwave-js/serial/node_modules/@serialport/bindings-cpp" does not exist. Skipping...
Asset "node_modules/zwave-js/node_modules/@serialport/bindings-cpp" does not exist. Skipping...
Copying "node_modules/@zwave-js/config/config/devices" to "build" folder
➜  zwave-js-ui git:(esbuild) PORT=8092 node build/src/bin/index.js
2023-12-11 17:20:00.833 INFO APP: Version: 9.5.1.b88bacb
2023-12-11 17:20:00.835 INFO APP: Application path:/home/daniel/GitProjects/zwave-js-ui/build
  ______  __          __                      _  _____     _    _ _____
 |___  /  \ \        / /                     | |/ ____|   | |  | |_   _|
    / /____\ \  /\  / /_ ___   _____         | | (___     | |  | | | |
   / /______\ \/  \/ / _' \ \ / / _ \    _   | |\___ \    | |  | | | |
  / /__      \  /\  / (_| |\ V /  __/   | |__| |____) |   | |__| |_| |_
 /_____|      \/  \/ \__,_| \_/ \___|    \____/|_____/     \____/|_____|

2023-12-11 17:20:00.841 WARN STORE: settings.json not found
2023-12-11 17:20:00.842 WARN STORE: scenes.json not found
2023-12-11 17:20:00.842 WARN STORE: nodes.json not found
2023-12-11 17:20:00.843 WARN STORE: users.json not found
2023-12-11 17:20:00.847 INFO APP: Listening on port 8092 protocol HTTP
2023-12-11 17:20:00.935 WARN BACKUP: Store backup is disabled
2023-12-11 17:20:00.937 WARN BACKUP: Nvm backup is disabled
2023-12-11 17:20:00.938 WARN Z-WAVE: Z-Wave driver not inited, no port configured
^C2023-12-11 17:20:02.109 WARN APP: Shutdown detected: closing clients...
2023-12-11 17:20:02.110 INFO GATEWAY: Closing Gateway...
2023-12-11 17:20:02.111 INFO GATEWAY: Driver is CLOSED
2023-12-11 17:20:02.112 INFO Z-WAVE: Client closed
➜  zwave-js-ui git:(esbuild)

Oh wait I got it, let me try to fix

Ok it has been more painful then expected but it's working now. Try it now @dwmw2

root@OpenWrt:/usr/lib/node/zwave-js-ui# HOME=/root NODE_PATH=/usr/lib/node/zwave-js-ui/node_modules STORE_DIR=/etc/zwave-js-ui node index.js
2023-12-12 08:48:40.234 INFO APP: Version: 9.5.1
2023-12-12 08:48:40.278 INFO APP: Application path:/usr/lib/node/zwave-js-ui
  ______  __          __                      _  _____     _    _ _____
 |___  /  \ \        / /                     | |/ ____|   | |  | |_   _|
    / /____\ \  /\  / /_ ___   _____         | | (___     | |  | | | |
   / /______\ \/  \/ / _' \ \ / / _ \    _   | |\___ \    | |  | | | |
  / /__      \  /\  / (_| |\ V /  __/   | |__| |____) |   | |__| |_| |_
 /_____|      \/  \/ \__,_| \_/ \___|    \____/|_____/     \____/|_____|

2023-12-12 08:48:40.475 WARN STORE: scenes.json not found
Segmentation fault

Will debug further... first suspicion is the serial port bindings, but it doesn't open the serial port until later, does it? Don't have gdb on this board (yet) but strace suggests it's doing MQTT things.
writev(22, [{iov_base="\202", iov_len=1}, {iov_base="\31", iov_len=1}, {iov_base="\6|", iov_len=2}, {iov_base="\0\24", iov_len=2}, {iov_base="homeassistant/status", iov_len=20}, {iov_base="\1", iov_len=1}, {iov_base="\202", iov_len=1}, {iov_base="9", iov_len=1}, {iov_base="\6}", iov_len=2}, {iov_base="\0004", iov_len=2}, {iov_base="zwave/_CLIENTS/ZWAVE_GATEWAY-zwa"..., iov_len=52}, {iov_base="\1", iov_len=1}, {iov_base="\202", iov_len=1}, {iov_base="3", iov_len=1}, {iov_base="\6~", iov_len=2}, {iov_base="\0.", iov_len=2}, {iov_base="zwave/_CLIENTS/ZWAVE_GATEWAY-zwa"..., iov_len=46}, {iov_base="\1", iov_len=1}, {iov_base="\202", iov_len=1}, {iov_base="9", iov_len=1}, {iov_base="\6\177", iov_len=2}, {iov_base="\0004", iov_len=2}, {iov_base="zwave/_CLIENTS/ZWAVE_GATEWAY-zwa"..., iov_len=52}, {iov_base="\1", iov_len=1}], 24) = 198
futex(0xb3affc80, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x22d4eac, FUTEX_WAKE_PRIVATE, 1) = 1
+++ killed by SIGSEGV +++
Segmentation fault

(What I've done here is just run 'npm run bundle' on the x86 host and then rsync the build/ directory to /usr/lib/node/zwave-js-ui/ on the target).
If I give it a different (and empty) STORE_DIR, it does start up OK. However, the HTTP service can't find its files. Even on th x86 host:
[dwoodhou@i7 build]$ node index.js
2023-12-12 08:56:34.497 INFO APP: Version: 9.5.1
2023-12-12 08:56:34.500 INFO APP: Application path:/home/dwmw2/git/zwave-js-ui/build
  ______  __          __                      _  _____     _    _ _____
 |___  /  \ \        / /                     | |/ ____|   | |  | |_   _|
    / /____\ \  /\  / /_ ___   _____         | | (___     | |  | | | |
   / /______\ \/  \/ / _' \ \ / / _ \    _   | |\___ \    | |  | | | |
  / /__      \  /\  / (_| |\ V /  __/   | |__| |____) |   | |__| |_| |_
 /_____|      \/  \/ \__,_| \_/ \___|    \____/|_____/     \____/|_____|

2023-12-12 08:56:34.512 WARN STORE: settings.json not found
2023-12-12 08:56:34.517 WARN STORE: scenes.json not found
2023-12-12 08:56:34.531 INFO APP: Listening on port 8091 protocol HTTP
2023-12-12 08:56:34.540 WARN BACKUP: Store backup is disabled
2023-12-12 08:56:34.541 WARN BACKUP: Nvm backup is disabled
2023-12-12 08:56:34.542 WARN Z-WAVE: Z-Wave driver not inited, no port configured
2023-12-12 08:56:47.383 INFO APP: GET / 404 110.817 ms - 1013
Error: Not Found
    at /home/dwmw2/git/zwave-js-ui/build/index.js:280905:15
    at Layer.handle [as handle_request] (/home/dwmw2/git/zwave-js-ui/build/index.js:188344:9)
    at trim_prefix (/home/dwmw2/git/zwave-js-ui/build/index.js:188745:17)
    at /home/dwmw2/git/zwave-js-ui/build/index.js:188718:13
    at Function.process_params (/home/dwmw2/git/zwave-js-ui/build/index.js:188753:16)
    at next (/home/dwmw2/git/zwave-js-ui/build/index.js:188712:15)
    at session3 (/home/dwmw2/git/zwave-js-ui/build/index.js:242222:11)
    at Layer.handle [as handle_request] (/home/dwmw2/git/zwave-js-ui/build/index.js:188344:9)
    at trim_prefix (/home/dwmw2/git/zwave-js-ui/build/index.js:188745:17)
    at /home/dwmw2/git/zwave-js-ui/build/index.js:188718:13

Is it looking for its HTTP files within that massive index.js? If I strace on the x86 host, I see it doing this when it gets the request, before reporting the error:
access("/home/dwmw2/git/zwave-js-ui/build/index.js", F_OK) = 0
openat(AT_FDCWD, "/home/dwmw2/git/zwave-js-ui/build/index.js", O_RDONLY|O_CLOEXEC) = 29
statx(29, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0775, stx_size=10845320, ...}) = 0
brk(0x5555cc33d000)                     = 0x5555cc33d000
read(29, "#!/usr/bin/env node\nvar __create"..., 10845320) = 10845320
close(29)                               = 0

That's loading 10MiB of data into memory just to look for a snippet of HTML inside it? :)

Sorry, forgot to include frontend, was focusing on backend 😆

@dwmw2 Now frontend is loading too. I still can't load configs files right now...

Try to rebuild now, I'm not getting that error, are you opening http://localhost:8081 ?

Is it looking for its HTTP files within that massive index.js? If I strace on the x86 host, I see it doing this when it gets the request, before reporting the error:

No no that was just wrong, now it will load index.html from dist folder

The UI is loading now, thanks! I see this on the target host which I don't think I've seen before:
2023-12-12 09:40:52.633 ERROR APP: spawn udevadm ENOENT
Error: spawn udevadm ENOENT
    at Process.ChildProcess._handle.onexit (node:internal/child_process:286:19)
    at onErrorNT (node:internal/child_process:484:16)
    at processTicksAndRejections (node:internal/process/task_queues:82:21)

Still crashes with the 'real' config file.
Separately, I tried adding 'minify: true' to esbuild options. Doesn't work but looks like it would be nice to have!

On the x86 host with the same config file it just sits there and does nothing after printing the 'scenes.json not found' line.

@dwmw2 If you google that error you will see some solutions, that's not something related to the bundle

Ah, the logs are disabled in the config file, so this isn't a good comparison...

It's working fine; just hadn't said anything about listening on port 8091. And couldn't open the serial port since the dongle isn't on the x86 host. Trying again with debug enabled on the target:
root@OpenWrt:/usr/lib/node/zwave-js-ui# HOME=/root NODE_PATH=/usr/lib/node/zwave-js-ui/node_modules STORE_DIR=/etc/zwave-js-ui node index.js
2023-12-12 09:51:53.165 INFO APP: Version: 9.5.1
2023-12-12 09:51:53.210 INFO APP: Application path:/usr/lib/node/zwave-js-ui
  ______  __          __                      _  _____     _    _ _____
 |___  /  \ \        / /                     | |/ ____|   | |  | |_   _|
    / /____\ \  /\  / /_ ___   _____         | | (___     | |  | | | |
   / /______\ \/  \/ / _' \ \ / / _ \    _   | |\___ \    | |  | | | |
  / /__      \  /\  / (_| |\ V /  __/   | |__| |____) |   | |__| |_| |_
 /_____|      \/  \/ \__,_| \_/ \___|    \____/|_____/     \____/|_____|

2023-12-12 09:51:53.410 WARN STORE: scenes.json not found
2023-12-12 09:51:53.574 INFO APP: Listening on port 8091 protocol HTTP
2023-12-12 09:51:53.919 INFO MQTT: Connecting to mqtt://<IP_ADDRESS>:1884
2023-12-12 09:51:54.595 WARN BACKUP: Store backup is disabled
2023-12-12 09:51:54.602 WARN BACKUP: Nvm backup is disabled
2023-12-12 09:51:54.714 INFO Z-WAVE: Connecting to /dev/ttyACM0
2023-12-12 09:51:54.833 INFO MQTT: MQTT client connected
2023-12-12 09:51:54.874 DEBUG MQTT: Subscribing to homeassistant/status with options { qos: 1 }
2023-12-12 09:51:54.904 DEBUG MQTT: Subscribing to zwave/_CLIENTS/ZWAVE_GATEWAY-zwave-js-ui/broadcast/# with options { qos: 1 }
2023-12-12 09:51:54.913 DEBUG MQTT: Subscribing to zwave/_CLIENTS/ZWAVE_GATEWAY-zwave-js-ui/api/# with options { qos: 1 }
2023-12-12 09:51:54.922 DEBUG MQTT: Subscribing to zwave/_CLIENTS/ZWAVE_GATEWAY-zwave-js-ui/multicast/# with options { qos: 1 }
Segmentation fault

LOL segmentation fault 😕 It's hard to debug that...

Happens with MQTT disabled too. Still inclined to blame the prebuilt serial port bindings. I have a native copy of those built for this system.

For sure that's from serialport as the segmentation fault only happens on native code. Did you tried to do a build from source for that?

Trying marking the serial port stuff as external so that it uses the native build.

root@OpenWrt:/usr/lib/node/zwave-js-ui/node_modules# rm -rf @serialport/
root@OpenWrt:/usr/lib/node/zwave-js-ui/node_modules# ln -sf ../../@serialport/bindings

That works (/cc @nxhack). Next up...
2023-12-12 10:13:22.611 INFO Z-WAVE: Controller status: Driver: Failed to initialize the driver: ZWaveError: The driver is not ready or has been destroyed (ZW0103)
    at Driver3.ensureReady (/usr/lib/node/zwave-js-ui/index.js:161650:17)
    at Driver3.sendMessage (/usr/lib/node/zwave-js-ui/index.js:162987:14)
    at ZWaveController.identify (/usr/lib/node/zwave-js-ui/index.js:129507:43)
    at Driver3.initializeControllerAndNodes (/usr/lib/node/zwave-js-ui/index.js:160855:33)
    at Immediate.<anonymous> (/usr/lib/node/zwave-js-ui/index.js:160742:24) (ZW0100)
2023-12-12 10:13:22.879 DEBUG Z-WAVE: Client listening on '/dev/ttyACM0' is destroyed, closing

Hm, that one went away when I enabled logging (for which I had to reinstate the config override directory, which I'd set to "" to make it start up on the x86). I think it's working.
Thanks so much for your help!

The minified build fails here with:
... typeof __webpack_require__=="function"?"webpack=true":""].filter(Boolean).join(" ");throw new Error("No native build was found for "+o+`
^
Error: No native build was found for platform=linux arch=arm runtime=node abi=115 uv=1 armv=7 libc=glibc node=20.10.0
    loaded from: /usr/lib/node

    at Function.eb.resolve.eb.path (/usr/lib/node/zwave-js-ui/index.js:77:12632)
    at eb (/usr/lib/node/zwave-js-ui/index.js:77:11939)
    at /usr/lib/node/zwave-js-ui/index.js:79:2490
    at /usr/lib/node/zwave-js-ui/index.js:2:250
    at /usr/lib/node/zwave-js-ui/index.js:79:8451
    at /usr/lib/node/zwave-js-ui/index.js:2:250
    at /usr/lib/node/zwave-js-ui/index.js:80:8772
    at /usr/lib/node/zwave-js-ui/index.js:2:250
    at /usr/lib/node/zwave-js-ui/index.js:80:9282
    at /usr/lib/node/zwave-js-ui/index.js:2:250

I get it on x86 too:
Error: No native build was found for platform=linux arch=x64 runtime=node abi=108 uv=1 libc=glibc node=18.18.2
    loaded from: /home/dwmw2/git/zwave-js-ui

With sourcemap:
/home/dwmw2/git/zwave-js-ui/node_modules/node-gyp-build/node-gyp-build.js:60
  throw new Error('No native build was found for ' + target + '\n    loaded from: ' + dir + '\n')
        ^
Error: No native build was found for platform=linux arch=x64 runtime=node abi=108 uv=1 libc=glibc node=18.18.2
    loaded from: /home/dwmw2/git/zwave-js-ui

    at Function.eb.resolve.eb.path (/home/dwmw2/git/zwave-js-ui/node_modules/node-gyp-build/node-gyp-build.js:60:9)
    at eb (/home/dwmw2/git/zwave-js-ui/node_modules/node-gyp-build/node-gyp-build.js:22:30)
    at /home/dwmw2/git/zwave-js-ui/node_modules/@serialport/bindings-cpp/dist/load-bindings.js:11:38
    at /home/dwmw2/git/zwave-js-ui/build/index.js:2:250
    at /home/dwmw2/git/zwave-js-ui/node_modules/@serialport/bindings-cpp/dist/darwin.js:8:25
    at /home/dwmw2/git/zwave-js-ui/build/index.js:2:250
    at /home/dwmw2/git/zwave-js-ui/node_modules/@serialport/bindings-cpp/dist/index.js:23:18
    at /home/dwmw2/git/zwave-js-ui/build/index.js:2:250
    at /home/dwmw2/git/zwave-js-ui/node_modules/serialport/dist/serialport.js:5:24
    at /home/dwmw2/git/zwave-js-ui/build/index.js:2:250

@dwmw2 Oh I know why... The solution is to don't do the minification from esbuild but do it after the npm run bundle. This is because I actually have to patch the output file here:
https://github.com/zwave-js/zwave-js-ui/blob/330d085805f5914c8873a78c3df854b1081da423/esbuild.js#L85-L97
And that find/replace is broken when I do minification. I suggest you to use terser or an online tool for now to minify it

@robertsLando This is a problem, since some parts of Z-Wave JS match on the constructor names:

Driver3.ensureReady

You'll have to enable the keepNames option: https://esbuild.github.io/api/#keep-names

I have just pushed a change to the PR to also support minification in npm run bundle command. Try it and let me know @dwmw2

That works as of commit 72bdc6246, thanks. The minified version is "only" 180MiB instead of 200MiB too, which I think is fairly repeatable. It's still a lot for something that used to be virtually nothing, but it's working.
  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND
29067 28701 root     S     181m  75%   0% /usr/bin/node --optimize_for_size --max_old_space_size=64 --gc_interval=100 index.js

I can use it from Domoticz over MQTT and latency is minimal.

The minified version is "only" 180MiB instead of 200MiB too, which I think is fairly repeatable. It's still a lot for something that used to be virtually nothing, but it's working.

If you are referencing to virtual memory I cannot do so much about that, I think that comes from all the things we keep in memory expecially zwave-js in its jsonl db that loads everything on RAM

I think this can be closed? @dwmw2

Yes, I think we can close it; thanks. If we want to revisit ways of reducing memory usage in future that can be done separately. I'll work with @nxhack on OpenWrt packaging.

Not sure if this is expected, but on a completely fresh setup if I just run 'npm run bundle' it says
Asset "./dist" does not exist. Skipping...

I ran npm run build and now I have a dist/ directory.

Not sure if this is expected, but on a completely fresh setup if I just run 'npm run bundle' it says

Yeah that's expected, you must compile frontend before running npm run bundle command.


Morphing should change the object

Is your feature request related to a problem? Please explain.
Currently it's a bit hard to morph an object and then change the color of the morphed object afterwards. This is due to the fact that morphing doesn't really change the object.
Describe the solution you'd like
I think we should consider actually changing the object function by the morph_to function. The problem here is that it would make it impossible to work with liveview. Therefore, we might want to have it inside the ObjectSetting instead such that we could overwrite the function without loosing the user defined function.
Describe alternatives you've considered
Another possibility would be that we can somehow return an object from act! but that feels weird as well.

https://azarzadavila-manim.readthedocs.io/en/latest/animation.html#transform

So the way this currently works is, by replacing the object's function.
So something like:
# inside the morph_to function
if frame == last(get_frames(action))
        object.func = to_func
    else
        # the morphing computation
        newpath()
        ....
        return morph_between(video, action, frame, from_polys, to_polys; do_action = do_action)
    end


The word "London" is not searchable

When I search the word "london", it says "No results found for london"
I expect some results because I know people post about London on here, I've seen posts mentioning London.
Search in general is not broken, it just doesn't work for "London" for some reason.
I am using the browser website.

Yep https://github.com/bluesky-social/social-app/issues/1727

Yeah going to close as a duplicate. The most likely cause of this is due to spam results which get improperly filtered by the search service and break the results. I am very hopeful this gets resolved soon.


Update service-fabric-concepts-partitioning.md

The code on this page has not been updated when the code in the linked repository got updated. The code on the page is out of date.

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

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

TTYL, AZPRBOT;

@bmscholl - Please review this public repo pull request

@noopman, thanks so much for taking the time to review and update. We had to update the article anyways as we needed to reflect the latest changes in the Visual Studio Screenshots, so we have updated all in one batch.
@tysonn: You can close the PR as the changes have already been applied by the PR we submitted couple days ago.

My pleasure - no problem - good luck!


Accessibility settings

On Samsung galaxy fold 4 even after enabling all settings permissions, you still can't progress past the accessibility service intro setring.

Thanks for the feedback, I'll try to take a look at it

Did you installed it using the apk ? If that's the case could you try with the play store version and let me know if it works that way

Hi,
I tried both ways.

From: Jules P @.>
Sent: Wednesday, July 10, 2024 6:33:00 AM
To: Angel-Studio/SoundTap @.>
Cc: thewizz69 @.>; Author @.>
Subject: Re: [Angel-Studio/SoundTap] Accessibility settings (Issue #15)
Did you installed it using the apk ? If that's the case could you try with the play store version and let me know if it works that way
—
Reply to this email directly, view it on GitHubhttps://github.com/Angel-Studio/SoundTap/issues/15#issuecomment-2218678836, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A7XRAP5BTEI5IGIEJLKBRRDZLRCHZAVCNFSM6AAAAABKMWK75CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJYGY3TQOBTGY.
You are receiving this because you authored the thread.Message ID: @.***>

Well, I'll check that then x) don't know what is causing it at all

Yeah I've got the same issue with the accessibility issue sadly I've tried a few things but nothing worked

Samsung too ?

Samsung too ?

Na I'm on a pixel 6 pro I don't know if it's a different app causing issues but I've never had this in any other app.

Okay thanks, I'll add a button to continue without the need to enable it then.

I have the same problem on my samsung phone. (I tried with play store and release apk)
Galaxy A20e (SM-A202F/DS)
OneUI 3.1, Android 11


More efficient retrieval of active jobs

This patch improves the service registries mechanism to get active jobs
by not building a static list of active job states and then always
converting that to an array every time the method is called.
Your pull request should…

[x] have a concise title
[x] close an accompanying issue if one exists
[x] be against the correct branch (features can only go into develop)
[x] include migration scripts and documentation, if appropriate
[x] pass automated tests
[x] have a clean commit history
[x] have proper commit messages (title and body) for all commits

@rute-santos @karendolan I know you've poked at the SR with respect to job loads.  Does this patch affect the job load data on your clusters, or induce processing overhead?  I'm looking at that jobCache variable, and I remember adding it to speed up performance, but I'm not 100% sure it's needed.  This patch is certainly cleaner...

@rute-santos @karendolan I know you've poked at the SR with respect to job loads.  Does this patch affect the job load data on your clusters, or induce processing overhead?  I'm looking at that jobCache variable, and I remember adding it to speed up performance, but I'm not 100% sure it's needed.  This patch is certainly cleaner...

@gregorydlogan jobCache just moved a few lines down. It's still there. There shouldn't be any reason for this to slow down anything. It's just initializing something once instead of doing it over and over again with the same data

@gregorydlogan jobCache just moved a few lines down. It's still there. There shouldn't be any reason for this to slow down anything. It's just initializing something once instead of doing it over and over again with the same data

Derp, odd that GHs formatter marked it up like that. This looks good to me, I'll merge it soon.

Derp, odd that GHs formatter marked it up like that. This looks good to me, I'll merge it soon.


Use Cache-Control: immutable for files in /_next/static

Next.js's built in server adds a Cache-Control: immutable HTTP header to certain files within /_next/static. It would be cool if this plugin could do that as well. It would also be nice to have a config option that would apply Cache-Control: immutable to other files/directories within /_next/static.
Relevant code:

Cache-Control header
Which files get the header

@aheimlich This makes perfect sense! I would happily accept a PR for the first part (the next cached paths).
As for the config option I'd prefer to leave that out for now and keep the plugin options to a minimum, and get the default behaviour first closer to next's built in server.

Closed by https://github.com/danielcondemarin/serverless-next.js/pull/144 🚀


[MANOPD-81954] Data encryption

Description

By default, Kubernetes secrets are encoded with base64, which is not secure. To avoid potential revealing of sensitive data, the backend ETCD must be encrypted.

Solution

Doc update

Checklist

[ ] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[ ] Integration CI passed
[ ] Unit tests. If Yes list of new/changed tests with brief description
[ ] There is no merge conflicts

@shmo1218  pls update

Hi, @koryaga,
The doc changes are reviewed.
Thanks!


Upgrade dependencies for pkg/_popularity.

I've merged this because it shouldn't affect the current latency issue.


Ignore errors of rados lspools.

This patch intent to list pools with non-privilege user.

 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.

Codecov Report

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

@@            Coverage Diff             @@
##           master     #597      +/-   ##
==========================================
- Coverage   33.17%   33.14%   -0.04%
==========================================
  Files          37       37
  Lines        2933     2933
==========================================
- Hits          973      972       -1
- Misses       1859     1860       +1
  Partials      101      101

Impacted Files
Coverage Δ

api/types/types_localdevices.go
79.41% <0%> (-1.48%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c113db2...a247900. Read the comment docs.


客户端无法加载服务器端配置

服务器端已有配置文件，但客户端在多人游戏中无法加载配置文件中的内容，使用“/oor”命令无效。单人游戏正常。

I cannot reproduce the problem with Cauldron/forge 1921 server and client.
Could you provide the version and mod list of your server/client?

I'm using cauldron-1.7.10-1.1343.01.0 and client with Forge <IP_ADDRESS>7.
Mod List :
CodeChickenCore-1.7.10-<IP_ADDRESS>-universal
CodeChickenLib-1.7.10-<IP_ADDRESS>-universal
EnderIO-1.7.10-<IP_ADDRESS>9
InputFix-1.7.10-v5
InventoryTweaks-1.59-dev-152
neiaddons-mc1710-<IP_ADDRESS>
NotEnoughItems-1.7.10-<IP_ADDRESS>-universal
Railcraft_1.7.10-<IP_ADDRESS>
twilightforest-1.7.10-2.3.4
Waila-1.5.10_1.7.10
bspkrsCore-universal-6.16
Treecapitator-universal-2.0.4
AdvancedSolarPanel-1.7.10-3.5.1
buildcraft-6.4.3
ComputerCraft1.73
forestry_1.7.10-<IP_ADDRESS>
industrialcraft-2-2.2.694-experimental
OmniOcular_build28
NBTEdit_1.7.10
------------------ Original ------------------
From: "Epix<EMAIL_ADDRESS>Date: Wed, Apr 22, 2015 05:29 PM
To<EMAIL_ADDRESS>Cc<EMAIL_ADDRESS>Subject: Re: [OmniOcular] 客户端无法加载服务器端配置 (#4)
I cannot reproduce the problem with Cauldron/forge 1921 server and client.
Could you provide the version and mod list of your server/client?
—
Reply to this email directly or view it on GitHub.

In multiplayer mode, sometimes it can correctly display information on the Waila HUD but the information disappears in less than a second.

I have the same problem with aq741.

Fixed in build58


SCL isn't a bitflag... we can't use the code we're using to mask Sentinel-2

We need to change to using something like this to mask Sentinel-2. Our current method is wrong.
NODATA = 0
CLOUD_SHADOW = 3
CLOUD_MEDIUM_PROBABILITY = 8
CLOUD_HIGH_PROBABILITY = 9

mask = data.scl.isin([NODATA, CLOUD_SHADOW, CLOUD_MEDIUM_PROBABILITY, CLOUD_HIGH_PROBABILITY])

masked = data.where(~mask, other=np.nan)

What I originally wrote worked I think
https://github.com/digitalearthpacific/dep-tools/blob/6483ae8d41ddbbf43cff9e99dea3f213a9ca3019/dep_tools/s2_utils.py#L36-L60
https://github.com/digitalearthpacific/dep-tools/blob/6483ae8d41ddbbf43cff9e99dea3f213a9ca3019/dep_tools/s2_utils.py

What I originally wrote worked I think

Yeah, it would have. Whoops.
Even simpler is scl.isin([...]). I'll fix it up when I go to run the GeoMAD again.

Fixed in #63


Schedule circuit with parameters into schedule with parameters

What is the expected enhancement?
from qiskit import circuit, QuantumCircuit, pulse, schedule as build_schedule
from qiskit.test.mock import FakeAlmaden

amp = circuit.Parameter('amp')

# regular circuit with custom gate
circ = QuantumCircuit(2)
circ.append(circuit.Gate('pulse_gate', 1, [amp]), (0,))

# build calibration for custom gate
with pulse.build() as gate_cal:
    pulse.play(pulse.Gaussian(duration=160, amp=amp, sigma=40), pulse.DriveChannel(0))

# register calibration
circ.add_calibration(gate='pulse_gate', qubits=(0,), schedule=gate_cal, params=[amp])
# schedule
sched = build_schedule(circ, FakeAlmaden())

Here, the output should be the same as gate_cal.
The changes should be made in qiskit/scheduler/lowering.py. The above currently fails on schedule = gate_cals[(tuple(inst_qubits), tuple(float(p) for p in inst.params))] because float(p) doesn't work if the parameter hasn't been bound. It may be as simple as only calling float(p) when p.parameters is empty (aka, all values have been bound to a numeric value).

can I try this one?

@lcapelluto : I'd like to take a stab at this, if that's okay?

@lcapelluto Seems that by only calling float when p.parameters is empty leaves us with an empty tuple in the example above. I get this error "Operation 'pulse_gate' on qubit(s) [0] not supported by the backend command definition. Did you remember to transpile your input circuit for the same backend?".

Fixed here


Lodash to default dependencies

It seems like we need lodash even for version without redux
https://github.com/shakacode/react_on_rails/blob/master/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx#L2
Relate to #162

@robwise How's this look to you?

@justin808 If we want to do the bindAll thing in the constructor, then yes this looks good to me. We can completely avoid this dependency and completely eliminate the entire constructor, however, simply by using an alternate method of binding, such as :: or making _handleChange a class property holding a  fat arrow function.


Using Upstash as remote Redis service

Hey, I see Langchain uses Redis for caching, would it be possible to pass redis credentials in the config? That would be a step to add persistent caching, even in the serverless environment. For example, we could use upstash.com for it.
Let me know if that's a good idea, I could work on a PR for this.

Hi, This should already be possible, you pass your own redis client instance to the cache object, see js.langchain.com/docs/modules/models/llms/additional_functionality#caching-with-redis
Let me know if that works for you

I'm getting incorrect type definition

langchain probably expects either ioredis or redis, not our rest based @upstash/redis
you can find code snippet for creating them in our console, when you open your database page

langchain probably expects either ioredis or redis, not our rest based @upstash/redis
you can find code snippet for creating them in our console, when you open your database page

Thanks! It works now though it took a long time for esm.sh to cache it.


H100 initialization attempt returns error

Just saw that H100 just got supported - exciting! But when I played with it (in python), I got the following
AttributeError: 'builtins.ApiClient' object has no attribute 'h100'. Did you mean: 'p100'?`
I'm not a developer so I'm not sure how to fix the issue.

Which version are you using?
The H100 support has been added only to the main branch. It hasn't been released as a published version just yet.

Ah that's probably why, I've been using pip. I'll pull down from source directly shortly and let you know if I still have the issue.
p.s. just in case I have trouble, when would you expect the next version to be published?

There are a few other changes I want to add before releasing.
It shouldn't be longer than a week or two.

Managed to get it working from source - thanks!


Why do my objects only contain ID strings after transmitting via gon?

I'm having a strange problem: previously, the gon gem was working for me to pass an array of objects to the browser. Here's the assignment:
gon.frames = @job.sequence.frames.sort_by(&:n)
Previously, this assignment resulted in the gon.frames variable containing a list of Javascript dictionaries/objects:
{id: 11, user_id: 12, sequence_id: 13, sequence_list_id: 3, complete: false, …}
Now, it contains only an ActiveRecord ID or something like that:
"#<Frame:0x00007f25035e47d0>"
I've made some changes in my code, mainly running bundle update and things like that, but nothing that would intentionally change how this work. However, there was a wide enough set of changes from updating the gems that it's hard to isolate the source of this change.
Is gon responsible for deciding how to convert something into Javascript? What would cause gon to convert into the format that only includes an identifier, rather than the dictionary of values?

Am I understanding the CI test results correctly? It looks like this gem isn't passing for any rubies beyond 2.4.10

Am I understanding the CI test results correctly? It looks like this gem isn't passing for any rubies beyond 2.4.10

Not sure what was happening here, but I rolled back to ruby 2.6.1 and it seemed to fix my problems.

Not sure what was happening here, but I rolled back to ruby 2.6.1 and it seemed to fix my problems.


[Feature Req] Add container with go installed

Hi,
It might be niche, but since I suppose there are quite a few users using Hugo modules, it might make sense to add an alpine container with go preinstalled. I don't really understand the project's structure, otherwise I'd do a PR myself.
Thanks :)

Hi @shruuub,
The ext images has already the go included into images! Please make a try and let me know if it’s working or not!

Hi @shruuub, The ext images has already the go included into images! Please make a try and let me know if it’s working or not!

Nice! I did forget to test those. Will do so later.

Closing this issue since the go executable is present into ext images

Right, wanted to comment and close, my bad, sorry.


Using NFS as Users HOME.

seems like xrdp can't support users that their HOME is an NFS mount-point.
i wanted to support redirected drives and i've encounter issues with setting it up.
what I've ending up doing is setting FuseMountName as below
FuseMountName=.redirected_drives
using 0.9.6 version - this parameter can't contain path or any variables,
as far as i can see it's only looking for  in the user HOME.
so what i did is to make FuseMountName link to /tmp/ like this:
in startwm.sh:
#link redirected drives
mkdir /tmp/.xrdp/${USER}_redirected_drives
ln -nfs /tmp/.xrdp/${USER}_redirected_drives $HOME/.redirected_drives
find $HOME/Desktop/ -type l -name "[A-Z]:" -exec rm -f {} ;
ls $HOME/.redirected_drives | while read d
do
ln -nfs $HOME/.redirected_drives/$d $HOME/Desktop/$d
done
< gnome executable >
#logout
/bin/fusermount -u /tmp/.xrdp/${USER}_redirected_drives
rmdir /tmp/.xrdp/${USER}_redirected_drives

this is working very well for me, except that
making the /tmp/.xrdp/${USER}_redirected_drives is created after sesman open the drive redirection channel so the directory is not exist at that time, so it can't be fused-mount at first startwm.sh startup,
users will need to logout and re-login and it's working (obviously now the directory there) .
but this scenario also prevent me from deleting this directory when user logout;
rmdir /tmp/.xrdp/${USER}_redirected_drives
as it will never work on login\logout so i can't clean the environment.
is there any way i can instruct xrdp to load script before creating Xorg session
and opening the channels?
Thanks,

anyone?
some idea?

Okay,
I've managed to create some workaround,
posting it here if anyone want to implement it on a seemlier scenario.
first i changed the xrdp-chansrv to xrdp-chansrv.orig within the sbin directory:
mv ./xrdp-chansrv ./xrdp-chansrv.orig
created xrdp-chansrv bash script on the directory which execute:
xrdp-chansrv
#!/bin/bash
mkdir /tmp/.xrdp/${USER}_redirected_drives
test -L $HOME/.redirected_drives || ln -nfs /tmp/.xrdp/${USER}_redirected_drives $HOME/.redirected_drives
<PATH_TO_YOUR_XRDP>/sbin/xrdp-chansrv.orig
startwm.sh:
mkdir $HOME/Desktop/redirected_drives
ls $HOME/.redirected_drives | while read d
do
ln -nfs $HOME/.redirected_drives/$d $HOME/Desktop/redirected_drives/$d
done
< gnome executable >
/bin/fusermount -u /tmp/.xrdp/${USER}_redirected_drives
rmdir /tmp/.xrdp/${USER}_redirected_drives
rm -rf $HOME/Desktop/redirected_drives

Done :)
now i can create and clean the environment much better.
did all my checks, implementing it for 200~ users on 12 servers.

@Zohman - I know this is an old issue, but I thought you might like to know we're merging #1703 for the next xrdp release.
I believe this will also fix your issue as described above, so I'm closing this one now. Feel free to re-open it if I've misunderstood.


added missing properties to PaginatedDataTable; headerBackgroundColor, footerBackgroundColor, and footerStyle

added missing widget level properties to PaginatedDataTable; headerBackgroundColor, footerBackgroundColor, and footerStyle
The PaginatedDataTable does not have widget level properties to style the headerBackground, footerBackground, and footerTextStyle, added them to create a more straight forward method to style those components, as opposed to using Theme
Issue #152810

It looks like some tests are also failing, can you take a look?

It looks like some tests are also failing, can you take a look?

Okay, I can fix the formatting.
Also I have been trying a bunch of testWidget approaches that are similar to the existing tests, however having trouble getting them to pass all test suites, at the moment I have only added tests for the footerTextStyle property, and I still need to add test for headerBackgroundColor and footerBackgroundColor.

@ElvisOkereke I am going to mark this as a draft while you are working on it, can you mark it as 'ready for review' when it is? Thanks!

@ElvisOkereke I am going to mark this as a draft while you are working on it, can you mark it as 'ready for review' when it is? Thanks!

Hi Kate, I was able to get a 73/73 test passing, and fixed the formatting. The PR is ready and I marked it as so.
What is the process from here; merge or rebase?

Hey @ElvisOkereke thanks for the updates. Can you take a look at the failing checks? Thanks!

Yea, I will convert to draft in the meantime

(triage) Hi @ElvisOkereke Do you still plan to coming back to this pr?

(triage) Hi @ElvisOkereke Do you still plan to coming back to this pr?

Going to close this and make a new fork


Request Authorization Grant and Access Token

Create a handler that redirect user to gitlab login.

From there obtain authorization code to e.g. localhost/redirect
Request an access token with the authorization code

Handled by /redirect(reserved name), created new js which will fetch both


Travis support

There is a .travis.yaml support already there, but it needs to be enabled.

@lpabon Yep, CI is very userful for basic verification.


Feature/118 pandas localtime

This is a solution to issue #118. It adds a tz parameter, which can be the strings "utc" (default), "local" (user's local time), "device" (TZ based on recorder's UTC offset), or a standard type of time zone info object.
One significant change is that the index for all "datetime" indices, the type was explicitly changed to a pandas.DatetimeIndex in order to add the timezone information (numpy.datetime64 does not support timezones). We will have to be on the lookout for any issues this might introduce (small discrepancies due to rounding errors or whatnot).
Needs tests for the new functionality. Draft until then.

Only comment is that colab's local time seems to be UTC?

I expected something like that. The Python interpreter isn't running locally (it's on a server that could be anywhere in the world) and it doesn't know the local system time. I guess it could have used geolocation to guess, but that seems overly complicated (and not totally reliable). Use in enDAQ Cloud will probably demonstrate the same. I made a note of this in the docstring.

Codecov Report

Merging #184 (23ecb52) into development (52778a2) will increase coverage by 0.20%.
The diff coverage is 80.00%.

@@               Coverage Diff               @@
##           development     #184      +/-   ##
===============================================
+ Coverage        61.72%   61.93%   +0.20%
===============================================
  Files               34       34
  Lines             2613     2643      +30
===============================================
+ Hits              1613     1637      +24
- Misses            1000     1006       +6

Impacted Files
Coverage Δ

endaq/ide/info.py
86.18% <80.00%> (-1.82%)
:arrow_down:

endaq/calc/utils.py
86.04% <0.00%> (+1.04%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 52778a2...23ecb52. Read the comment docs.

@CrepeGoat You've used np.datetime64 in various things; do you foresee any issues with using the Pandas date times? I'm pretty sure using np.datetime64 as a dataframe index implicitly creates a pandas.DatetimeIndex, anyway.

@CrepeGoat You've used np.datetime64 in various things; do you foresee any issues with using the Pandas date times? I'm pretty sure using np.datetime64 as a dataframe index implicitly creates a pandas.DatetimeIndex, anyway.

Yeah that's my understanding as well. So it might change behavior outside of setting DataFrame indices, but any behavioral difference besides like, isinstance checks I'm not especially familiar with either. That's generally why I opted for np.dateime64. But as long as tests are passing it should be good?
...¯_(ツ)_/¯. hope that helps.


Fix issues with deb_index and Nvidia's apt repository

I opened https://github.com/GoogleContainerTools/rules_distroless/issues/66 detailing some of the problems we have run into when trying to use deb_index to install Nvidia's CUDA packages from their apt repository.
These fixes are my first pass at resolving issues that were present with the apt package implementation here in rules_distroless.
I did some research to try and find specification as to how Packages works with apt and apt-cache and whether there's a specific location that Packages should live, but I couldn't find anything detailing a correct implementation for a remote apt package repository. Based on this, it seems to me that Nvidia's package repository is formatted in a valid way and rules_distroless should ideally support it.
I'm fully expecting to need a code revision here, just wanted to share my first iteration to get feedback and see what maintainers want changed.

I'm fully expecting to need a code revision here, just wanted to share my first iteration to get feedback and see what maintainers want changed.

@alexeagle @thesayyn Just tagging y'all as you look like recently active maintainers.

@alexeagle @thesayyn bump. Any thoughts on what I'm trying to accomplish here? Nvidia's cuda packages (and corresponding apt repository) seem like common packages folks might need to be able to pull.

This is same as https://github.com/GoogleContainerTools/rules_distroless/pull/64

OK, so I finally did try to write a PR that adds support for multi-arch and single-arch flat repos and addresses the issue with the NVIDIA CUDA flat repos. Hopefully that PR superseeds the others and can be merged and 1 + 3 PRs closed 😄
@benmccown please have a look and let me know what you think and if #86 works for you. Happy to address any issues or concerns if there's something that breaks in your use-case!


merge package from arlac77/npm-package-template

package.json

chore(package<EMAIL_ADDRESS>chore(scripts): cover@#overwrite c8 --temp-directory build/coverage ava && c8 report -r lcov --temp-directory build/coverage
chore(engines<EMAIL_ADDRESS>chore(package): add nyc from template
chore(package): set $.ava.require='esm' as in template
chore(package): set $.ava.files='tests/-test.js,tests/-test.mjs' as in template
chore(package): set $.ava.extensions='js,mjs' as in template

.travis.yml

chore(travis): remove node versions 10.15.2
chore(travis): add node versions -10,10.15.3

Coverage remained the same at 83.951% when pulling fef6674563d77379ef2a4a55c10da299101fff39 on template-sync-1 into c9716dcc4123d5d6fc1353340c2e623be7a6281c on master.


Teleport Jewelry and Inventory tagging

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always
frustrated when [...] When using Inventory Tags to set up equipment, every piece of Teleport Jewelry needs to be added individually, so say if I have two slots for teleport jewelry in one of my tags, 1 for a fully charged Amulet of Glory (6) and one for an amulet of Glory that is currently being used (charges 5-1) If I take out my Amulet of Glory (5) and use a charge, it becomes an Amulet of Glory (4) and needs to be added to the inventory tags again. This is pretty frustrating and requires constantly sorting your inventory tags and moving the pieces of jewelry back into the tag.
Describe the solution you'd like
A clear and concise description of what you want to happen.
It would be nice if the teleport jewelry kept its tag, so that a glory that has 5 charges that then goes down to 4 charges, should be stored in the same bank tag as the 5 charge jewelry. This would prevent you having to have every single charged glory state (1-6) tagged so that it doesn't leave the tag tab.
This would also be useful for stuff like birdhouse runs, so I can simply have 2 Digsite Pendants tagged, 1 fully charged digsite pendant, and another slot for any pendants charged 4-1.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've
considered.
Maybe make it so just any jewelry that has less than max charges is stored in the same inventory tag, so you would only ever need 2 slots for your jewelry in a tag tab, the fully charged jewelry and a currently in use piece of jewelry.
Additional context
Add any other context or screenshots about the feature request here.

Inventory Tagging and Bank Tag Tabs are two entirely different things. If you could clarify which you are talking about, that would be great.
If it's Inventory Tagging not affecting the same jewellery with different charges, this is a duplicate of #8204.
If it's Bank Tag Tabs losing the placeholder when you remove some charged jewellery from it, this is already implemented in the form of Variation Tags. Simply drag the item to the tag tab while holding shift.
If it's something entirely different, do let us know.

Inventory Tagging and Bank Tag Tabs are two entirely different things. If you could clarify which you are talking about, that would be great.
If it's Inventory Tagging not affecting the same jewellery with different charges, this is a duplicate of #8204.
If it's Bank Tag Tabs losing the placeholder when you remove some charged jewellery from it, this is already implemented in the form of Variation Tags. Simply drag the item to the tag tab while holding shift.
If it's something entirely different, do let us know.

Hi, I changed the instances of me using "Inventory Tags" to "Bank Tags", sorry I must of gotten them mixed up.
Using the Shift Click and Drop onto the Bank Tabs seems to be exactly what I was talking about, and keeps the teleport jewelry in the tab even if I didn't set up individual placeholders for them. Thank you!


Basic road editor

Hello Zverik,
Do you have any plans for adding some functionality of road editing? I mean, speed limits, unidentified police surveillance, lanes, parking lanes. Maybe, turn restrictions, but it is realized through relations, and it's out of simple mapping app responsibility.

Hi ec, I'm sorry but I don't. ED is focused solely on points and polygon attributes. See design principles in the repo's readme. But #197 in the future can help with mapping linear features too.


Spacing in tooltips is affected / smashed / altered

Hey - I'm trying to create a custom date module that can output $(cal -3) as a tooltip. I have a bash script that returns json and is picked up by my waybar, but the spacing is affected (see screenshot and code below). How can I make the spacing match the terminal spacing?
#!/bin/sh

waybar_tooltip()
{
    echo "$1" | tr '\n' '\r'
}

text="  $(date +'%e %b %Y')"
tooltip_msg="$(cal -3)"

printf "{ \"text\": \"%s\", \"tooltip\": \"%s\" }\n" \
"$text" "$(waybar_tooltip "$tooltip_msg")"

Just used underscores to space it out - still not sure what the issue was though


Why does the alignment-handbook account for user & system Inputs in loss calculation

I noticed that the alignment-handbook doesn't ignore the loss calculated from both the user and system inputs Based on my knowledge, many SFT choose to ignore these. I'm curious about the reasoning behind this difference.

I'm curious on the official response here.
My guess would be:

Currently packing does not work with completion-only training in TRL's implementation, which makes training much slower for training on massive datasets
In my experience, completion-only training yielded worse performance on finetuning for new tasks, when evaluated on the new tasks specifically

FYI If you want to fork, you can use completion-only training with minimal changes.

I'm curious on the official response here.
My guess would be:

Currently packing does not work with completion-only training in TRL's implementation, which makes training much slower for training on massive datasets
In my experience, completion-only training yielded worse performance on finetuning for new tasks, when evaluated on the new tasks specifically

FYI If you want to fork, you can use completion-only training with minimal changes.

Do u have any reference or evidence for worse performance on completion-only tuning for new tasks? I want to learn more!

Do u have any reference or evidence for worse performance on completion-only tuning for new tasks? I want to learn more!

Nope, no references other than trying it on an internal use case and seeing much worse eval results. I didn't look much further into it and just went back to packing without completion-only.
I still linked the docs because I'd encourage interested parties to try it out :)


not apparent that pick account would open metamask

https://github.com/rchain-community/rv2020/issues/60#issuecomment-692204132

I made some progress in ace85b7 deployed at https://rv2020-beta.netlify.app/
I expect to add a tour that should finish addressing this; see also #63


Add Jenkins scripts for beta

Backport #705 to beta.  It drops the vagrant_vmware format and any torcx stuff.

Close enough.