Pasting content from word document weirdly escapes HTML comment

When converting html documents by reading HTML from the clipboard, the conversion seems to escape an embedded HTML content oddly rather than removing it.
You wined up with something like this
<!\-\- /\* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 ...

Hi @jtsylve,
HTML comments should be removed when converting, which suggests that the HTML might be formatted incorrectly. Do you have an example of the HTML you are pasting in?
Thanks.

Sure, it comes from a pasted Word document content, so it's a ton of generated stuff, but this seems to be the offending content
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:3 0 0 0 1 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-536859905 -1073697537 9 0 511 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Calibri",sans-serif;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-family:"Calibri",sans-serif;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
-->
</style>

It seems to be because the comments are wrapped in style tages.  This shows the same behavior.
<style><!-- this is a comment --></style>

Hmm. According to https://developer.mozilla.org/en-US/docs/Web/HTML/Element/style, the permitted content of a style element is:

Text content matching the type attribute, that is text/css.

So I suppose using the HTML comment syntax inside a style element is technically invalid. To fix this you may want to remove style elements:
var turndownService = new TurndownService().remove('style')

Alternatively you may want to write a rule which strips out the comments, or replaces them with the CSS comment syntax (see the readme for guidance on this).

Just if somebody stumbles across this. The same (html comments inside style tag) happens when parsing emails send from Outlook.


detect/lua/v1: add tests for detect-lua

Includes test for LuaMatchTest01
Link to redmine ticket: https://redmine.openinfosecfoundation.org/issues/4911

Is this still live ?

Is this still live ?

yes please

Followed By: #1086


error including <boost/json/value.hpp> by itself

A file with just the one include:
#include <boost/json/value.hpp>

fails to compile. This is in the header-only configuration.

Seems fixed


False positives that report Drupal CVEs

dropwizard-views-freemarker-1.2.2.jar
False positive on library dropwizard-views-freemarker-1.2.2.jar - reported as cpe:/a:views_project:views:1.2.2
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-views-freemarker</artifactId>
    <version>1.2.2</version>
</dependency>

dropwizard-views-1.2.2.jar
False positive on library dropwizard-views-1.2.2.jar - reported as cpe:/a:views_project:views:1.2.2
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-views</artifactId>
    <version>1.2.2</version>
</dependency>

javax.ws.rs-api-2.0.jar
False positive on library javax.ws.rs-api-2.0.jar - reported as cpe:/a:restful_project:restful:2.0 and cpe:/a:restful_web_services_project:restful_web_services:7.x-2.0::~drupal
<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.0</version>
</dependency>

Just for information: the CVE related is CVE-2015-4345

I am seeing the same for javax.ws.rs-api-2.1.jar as well. Reported as
javax.ws.rs-api-2.1.jar (javax.ws.rs:javax.ws.rs-api:2.1,
cpe:/a:restful_project:restful:2.1,
cpe:/a:restful_web_services_project:restful_web_services:7.x-2.1::~~~drupal~~) : CVE-2015-4345

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.1</version>
</dependency>

Hi @jeremylong , I can confirm the above for:

javax.ws.rs-api-2.1
dropwizard-views-1.3.0-rc7.jar

Thanks - I'll try and make .a pass through all of the FP reports soon.


Giving error Call to a member function modelKeys() on a non-object

Hey guys,
I m using jenssegers/Laravel-MongoDB.
I had two Model class eg: Category, Offering
class Category extends \Moloquent{
protected $collection = "categories";
public function offerings(){
return $this->belongsToMany('Offering', null, 'categories', 'offerings');
}
}
class Offering extends \Moloquent{
protected $collection = "offerings";
public function categories(){
return $this->belongsToMany('Category', null, 'categories', 'offerings');
}
}
Controller : CategoriesController
class CategoriesController extends \BaseController {
//save offerings for category
public function store(){
$category = Category::find(1);
$category->offerings()->sync(array(1,2,3));
$category->save();
$category = Category::find(2);
$category->offerings()->sync(array(1,2,3));
$category->save();
}
}
showing error
Call to a member function modelKeys() on a non-object
// First we need to attach any of the associated models that are not currently
// in this joining table. We'll spin through the given IDs, checking to see
// if they exist in the array of current ones, and if not we will insert.
$current = $this->parent->{$this->otherKey} ?: array();
// See issue #256.
if ($current instanceof Collection) $current = $ids->modelKeys();
$records = $this->formatSyncList($ids);
Wht should i do

I have encountered the same problem. I solved the problem if I change the following code:
BelongsToMany.php Line 115
if ($current instanceof Collection) $current = $ids->modelKeys();

to
if ($current instanceof Collection) $current = $current->modelKeys();

I'm wondering is it a typo? Because it should convert $cuurent to array instead of $ids, which has already converted to array in:
BelongsToMany.php Line 107
if ($ids instanceof Collection) $ids = $ids->modelKeys();

Is it a bug ? I wonder why is it still not fixed :)

I still experience this.
I tried pass an array of document id and Eloquent collection but neither is works. I tried apply a changes in @louisyau comment above and it's works.


Task Scheduling for aarch64

We implement some archtecture specific bits needed for task scheduling on ARM. Namely we implement support for: thread-local storage (TLS), thread initialization, context switching, and scheduling ticks driven by the core-local physical timer.
Summary

add in processor enumeration (core local)
save pointer to kernel TLS to TPDIR_EL1
add dummy topology generation for a single core
initialize the thread's entry point and stack
create new TimeSpan API in Twizzler ABI
set the arch CNTP timer to drive scheduling ticks
context switch (save regs/stack ptr)
manage interrupt state mask state

If the above questions can be addressed as "yes, not this PR" then LGTM


[Subtask] Consider upgrading Hadoop client to version 3

I'd like to work on this issue, may I? @jerryshao

Hi, @YxAc, if you want to work on an issue, there is no need to ask. Just add a note saying you are working on it.

For this task, do we prefer to directly upgrade to hadoop-v3 or maintain both v3 and v2 branches? what do you think? @jerryshao @justinmclean

According to my investigation, Hadoop 3 client is compatible with Hadoop 2 server, so it is ok to upgrade to hadoop 3 directly, no need to maintain two branches. What I'm concerned is that for integration test, we put all the catalogs in one classpath, this will introduce dependency issues when we introduce Hadoop 3.

According to my investigation, Hadoop 3 client is compatible with Hadoop 2 server, so it is ok to upgrade to hadoop 3 directly, no need to maintain two branches. What I'm concerned is that for integration test, we put all the catalogs in one classpath, this will introduce dependency issues when we introduce Hadoop 3.

Can I modify the dependency of integration test first, then update integration test service of CI, and finally modify the other parts? @jerryshao
We hope use Hadoop 3 when Gravitino landing the production, what do you think? @zhoukangcn

@YxAc there's not so much work in upgrading Hadoop version to 3 itself. What I'm really concerned is the classpath issue in integration test.
The integration test depends on multiple catalogs directly, this will simply grab in all the dependencies, I'm worried that some catalogs like Hive and Hadoop may have dependency conflicts. So I would suggest investigating the integration test's dependency issue and minimizing the dependencies as possible as we can. After that, we can easily upgrade to Hadoop 3.

@YxAc there's not so much work in upgrading Hadoop version to 3 itself. What I'm really concerned is the classpath issue in integration test.
The integration test depends on multiple catalogs directly, this will simply grab in all the dependencies, I'm worried that some catalogs like Hive and Hadoop may have dependency conflicts. So I would suggest investigating the integration test's dependency issue and minimizing the dependencies as possible as we can. After that, we can easily upgrade to Hadoop 3.

got, i'll try my best.


Query with order by acos(sin(v1)) panic (SQLancer)

Describe the bug
Reproducer in datafusion-cli:
DataFusion CLI v40.0.0
> create table t1(v1 int);

0 row(s) fetched.
Elapsed 0.073 seconds.

> SELECT * FROM t1 ORDER BY ACOS(SIN(v1));
thread 'main' panicked at /Users/yongting/Desktop/code/my_datafusion/arrow-datafusion/datafusion/common/src/scalar/mod.rs:1089:9:
assertion failed: datatype.is_primitive()
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

To Reproduce
No response
Expected behavior
No response
Additional context
Found by SQLancer https://github.com/apache/datafusion/issues/11030

All below queries will panic similarly
SELECT * FROM t1 ORDER BY ACOS(SIN(v1));
SELECT * FROM t1 ORDER BY ACOSH(SIN(v1));
SELECT * FROM t1 ORDER BY ASIN(SIN(v1));
SELECT * FROM t1 ORDER BY ATANH(SIN(v1));

take


Fix link in readme

Coverage remained the same at 84.164% when pulling 95faaa570f847c39bfa9597f0e94c75b6c2e7419 on fvgs:fix-readme into b267569b13b4d7623223ef4f04becab6cc184fed on slackhq:master.

Coverage remained the same at 84.164% when pulling 95faaa570f847c39bfa9597f0e94c75b6c2e7419 on fvgs:fix-readme into b267569b13b4d7623223ef4f04becab6cc184fed on slackhq:master.


Gitignore is very slow

The gitignore modifier causes a >100x slowdown in the case I am testing:
$ time fselect path from . where name = 'AP_HAL*'
./libraries/AP_HAL_Linux
./libraries/AP_HAL_SITL
./libraries/AP_HAL_ChibiOS
./libraries/AP_HAL
./libraries/AP_HAL_Empty
./libraries/AP_HAL_Linux/AP_HAL_Linux.h
./libraries/AP_HAL_SITL/AP_HAL_SITL_Private.h
./libraries/AP_HAL_SITL/AP_HAL_SITL.h
./libraries/AP_HAL_SITL/AP_HAL_SITL_Namespace.h
./libraries/AP_HAL_ChibiOS/AP_HAL_ChibiOS_Private.h
./libraries/AP_HAL_ChibiOS/AP_HAL_ChibiOS_Namespace.h
./libraries/AP_HAL_ChibiOS/AP_HAL_ChibiOS.h
./libraries/AP_HAL/AP_HAL_Main.h
./libraries/AP_HAL/AP_HAL_Boards.h
./libraries/AP_HAL/AP_HAL.h
./libraries/AP_HAL/AP_HAL_Namespace.h
./libraries/AP_HAL/AP_HAL_Macros.h
./libraries/AP_HAL_Empty/AP_HAL_Empty.h
./libraries/AP_HAL_Empty/AP_HAL_Empty_Private.h
./libraries/AP_HAL_Empty/AP_HAL_Empty_Namespace.h
./build/sitl/libraries/AP_HAL_SITL
./build/sitl/libraries/AP_HAL
./build/sitl/libraries/AP_HAL_Empty
./build/CubeBlack/libraries/AP_HAL_ChibiOS
./build/CubeBlack/libraries/AP_HAL
./build/CubeBlack/libraries/AP_HAL_Empty
./build/CubeOrange/libraries/AP_HAL_ChibiOS
./build/CubeOrange/libraries/AP_HAL
./build/CubeOrange/libraries/AP_HAL_Empty
./build/PH4-mini/libraries/AP_HAL_ChibiOS
./build/PH4-mini/libraries/AP_HAL
./build/PH4-mini/libraries/AP_HAL_Empty

real	0m0.087s
user	0m0.032s
sys	0m0.055s

$ time fselect path from . gitignore where name = 'AP_HAL*'
./libraries/AP_HAL_Linux
./libraries/AP_HAL_SITL
./libraries/AP_HAL_ChibiOS
./libraries/AP_HAL
./libraries/AP_HAL_Empty
./libraries/AP_HAL_Linux/AP_HAL_Linux.h
./libraries/AP_HAL_SITL/AP_HAL_SITL_Private.h
./libraries/AP_HAL_SITL/AP_HAL_SITL.h
./libraries/AP_HAL_SITL/AP_HAL_SITL_Namespace.h
./libraries/AP_HAL_ChibiOS/AP_HAL_ChibiOS_Private.h
./libraries/AP_HAL_ChibiOS/AP_HAL_ChibiOS_Namespace.h
./libraries/AP_HAL_ChibiOS/AP_HAL_ChibiOS.h
./libraries/AP_HAL/AP_HAL_Main.h
./libraries/AP_HAL/AP_HAL_Boards.h
./libraries/AP_HAL/AP_HAL.h
./libraries/AP_HAL/AP_HAL_Namespace.h
./libraries/AP_HAL/AP_HAL_Macros.h
./libraries/AP_HAL_Empty/AP_HAL_Empty.h
./libraries/AP_HAL_Empty/AP_HAL_Empty_Private.h
./libraries/AP_HAL_Empty/AP_HAL_Empty_Namespace.h

real	0m11.308s
user	0m11.175s
sys	0m0.132s

For comparison, fd 'AP_HAL*', which is doing the same as the gitignore version, matches the faster time.
You might want to consider using the ignore crate, used by the likes of fd and rg to do this super fast.

Thanks for reporting this issue!
Indeed, .gitignore support was really slow and half-baked. Starting with 0.8.8 fselect uses git2 crate with libgit2 bindings for this feature. While it might actually be slower than ignore, libgit2 got practically complete re-implementation of checking files against project's .gitignore as well as user-wide and system-wide settings.


Could not install package ('.NETPortable,Version=v4.5,Profile=Profile78')

I've just tried installing that package but it fails with the following error:
Could not install package 'SocketIoClientDotNet 0.9.12'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile78', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
Am I missing something?

SocketIoClientDotNet does not work with ''.NETPortable,Version=v4.5,Profile=Profile78'.
There is a dependecy on WebSocket4Net which does not work with ''.NETPortable,Version=v4.5,Profile=Profile78'.


disable PNG output option

For this feature request:
https://github.com/gavro/gulp-iconify/issues/new

@gavro need any help getting this merged?


CMake: add_subdirectory given source "googletest" which is not an existing   directory

https://github.com/dronecan/libcanard/blob/5efa0a4ea20542f330d93a3197cc8d34c29ea2c1/CMakeLists.txt#L38
In the CMakeLists, it's not building because googletest directory doesn't exist.
Host OS: Ubuntu 22.04
CMake version: 3.22.1
Steps to reproduce:

Clone
cd libcanard
cmake -S . -B build

I'd recommend using something along the lines of these:
https://cmake.org/cmake/help/latest/module/FindGTest.html
https://cmake.org/cmake/help/latest/module/GoogleTest.html
We are having to make workaround for this here:
https://github.com/ArduPilot/ardupilot/pull/23574
Based on the design goals of the library, it says it's supposed to be portable. Considering many developers develop on Ubuntu 22.04, and cmake is the most common build system, it seems like this should be enforced to work in CI rather than making calls directly to g++ IMHO.

fixed by #31


ci(e2e): improve e2e workflow

Motivation
The goal is to avoid the creation of an e2e docker image on every pull request. Instead, we can re-use artifacts between the workflows.
The next steps are:

Enable e2e tests on all PRs that contain changed frontend files.
Enable e2e tests for all PRs with rebuild of the artifact if backend files were changed.

Hey @bitdivine @AntonioVentilii-DFINITY . I’ve been looking today into how to share cached docker images between jobs, but it seems that it’s not possible (source: docker docs). So instead, I tried a different approach: sharing artifacts. In this PR, you can see my idea. We would have a separate workflow (e2e-tests-build-docker-image.yml) responsible for building e2e docker images and exposing them as an artifact. As the first step, this workflow is triggered only on workflow_dispatch, but later it can/will be extended to being launched on pull_request when backend files are changed. The updated e2e_tests.yml workflow is therefore now only responsible for downloading the artifact and running e2e tests against it. WDYT?


Add krmarko's file

As a reminder, you have: created a branch, created a file and made a commit, and opened a pull request


IsActive (Window) binding issue

Please can you give a solution to solve all these bindings issues there...one per tree node diplayed.
Not sure to understand why it is related to a window and why in my context it does not work, but can I get rid of it?
Thx
System.Windows.Data Warning: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Window', AncestorLevel='1''. BindingExpression:Path=IsActive; DataItem=null; target element is 'MultiSelectTreeViewItem' (Name=''); target property is 'NoTarget' (type 'Object')
System.Windows.Data Warning: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Window', AncestorLevel='1''. BindingExpression:Path=IsActive; DataItem=null; target element is 'MultiSelectTreeViewItem' (Name=''); target property is 'NoTarget' (type 'Object')
System.Windows.Data Warning: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Window', AncestorLevel='1''. BindingExpression:Path=IsActive; DataItem=null; target element is 'MultiSelectTreeViewItem' (Name=''); target property is 'NoTarget' (type 'Object')
System.Windows.Data Warning: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Window', AncestorLevel='1''. BindingExpression:Path=IsActive; DataItem=null; target element is 'MultiSelectTreeViewItem' (Name=''); target property is 'NoTarget' (type 'Object')
.....

thousand of lines like that sometimes and tree rendering very slow at the end

Your problem seems to be that the root element of your visual tree is not inheriting from System.Windows.Window.
The four default templates contain a behavior which dims the selection brushes if the window which contains the control is inactive. In your case, the binding fails to obtain the window instance.

@xyrus02 Isn't a focused control in an inactive window still "focused"? This is an issue with a lot of UI controls that just don't regard the top-level window state like good old Win32 controls did.

Yes indeed, you are right. In the visual tree, it is still marked as focused. I still would rather rely on that than on a property of a window because in theory, you can't always be sure that the top level element is a window (what about a page?)
Nonetheless, there shouldn't be a binding exception spamming OPs trace.


test: adjust DebugInfo tests for new LLVM update

The filename on Windows now uses \\ rather than \\5C for the path
separator.  Adjust the tests accordingly.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

CC: @gottesmm

Test Run: https://dev.azure.com/compnerd/swift-build/_build/results?buildId=24210&view=results

DebugInfo tests look good with this, merging.


MatAutocompleteList: Clear icon works even if component is disabled

A disabled AutocompleteList allows to change the selection by clicking the clear icon.
To Reproduce
Use https://blazorfiddle.com/s/e521h1o4 to reproduce it:

Choose a value from the list.
Set to disabled by clicking the button.
Try removing the entry by blick the trailing X icon of the AutocompleteList  component.

A disabled component should now allow it to have it's content to be changed. That is why we disable them.
PS: thanks for all your contributions. Keep up the great work!

As a workaround one can use
<MatAutocompleteList ... Disabled=@DisableThis ShowClearButton=@(!DisableThis) />

@code {
  bool DisableThis = true;
}

But, of course, it would be great to get it all out-of-the-box, don't you think?


First-run fails with missing symbol

Installed as noted in README.md; running ./examples/hello-gtk.js results in
node: symbol lookup error: /home/rsi-bryan/Personal/node-gtk/build/Release/node-gtk.node: undefined symbol: g_irepository_get_default

I have a fresh new Ubuntu installed on a VM just to try that README instructions and it works without problems.
Please confirm the following points:

it's Ubuntu 15.10 (latest apt-get update and apt-get dist-upgrade)
everything described in the README is performed
node is the version 5 and with latest npm too

Thanks

please git pull --rebase and then npm install again, it should have been fixed.

Assumed fixed by now.


Raspbian SerialPort NPM Install Error

SerialPort Version: n/a
NodeJS Version: v4.5.0
npm Version: 2.15.9
Operating System and Hardware: Raspbian -- Raspberry Pi3
Are you using Electron/Atom/NwJS?: n/a
(Run node -v && npm -v && python --version to get version numbers)
Summary of Problem
Unable to install the serialport module using npm.
Expected Behavior
To install the serialport module as a local dependency for a node application using johnny-five
Actual Behavior
ac@berry1:~/j5 $ sudo npm install serialport --save
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN package.json<EMAIL_ADDRESS>No README data

<EMAIL_ADDRESS>install /home/ac/j5/node_modules/serialport
node-pre-gyp install --fallback-to-build

node-pre-gyp ERR! Tried to download: https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/4.0.1/serialport-v4.0.1-node-v46-linux-arm.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for<EMAIL_ADDRESS>and<EMAIL_ADDRESS>(node-v46 ABI) (falling back to source compile with node-gyp)
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/4.5.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/home/ac/j5/node_modules/serialport/.node-gyp"
make: Entering directory '/home/ac/j5/node_modules/serialport/build'
make: *** No rule to make target '../.node-gyp/4.5.0/include/node/common.gypi', needed by 'Makefile'.  Stop.
make: Leaving directory '/home/ac/j5/node_modules/serialport/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 4.4.11-v7+
gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/home/ac/j5/node_modules/serialport/build/Release/serialport.node" "--module_name=serialport" "--module_path=/home/ac/j5/node_modules/serialport/build/Release"
gyp ERR! cwd /home/ac/j5/node_modules/serialport
gyp ERR! node -v v4.5.0
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/nodejs /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/home
/ac/j5/node_modules/serialport/build/Release/serialport.node --module_name=serialport --module_path=/home/ac/j5/node_modules/serialport/build/Release' (1)
node-pre-gyp ERR! stack     at ChildProcess. (/home/ac/j5/node_modules/serialport/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at emitTwo (events.js:87:13)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:829:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
node-pre-gyp ERR! System Linux 4.4.11-v7+
node-pre-gyp ERR! command "/usr/bin/nodejs" "/home/ac/j5/node_modules/serialport/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /home/ac/j5/node_modules/serialport
node-pre-gyp ERR! node -v v4.5.0
node-pre-gyp ERR! node-pre-gyp -v v0.6.29
node-pre-gyp ERR! not ok
Failed to execute '/usr/bin/nodejs /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/home/ac/j5/node_modules/serialport/
build/Release/serialport.node --module_name=serialport --module_path=/home/ac/j5/node_modules/serialport/build/Release' (1)
npm ERR! Linux 4.4.11-v7+
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "serialport" "--save"
npm ERR! node v4.5.0
npm ERR! npm  v2.15.9
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node-pre-gyp install --fallback-to-build
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! This is most likely a problem with the serialport package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-pre-gyp install --fallback-to-build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs serialport
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR!     npm owner ls serialport
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/ac/j5/npm-debug.log
ac@berry1:~/j5 $
Steps and Code to Reproduce the Issue
ac@berry1:~/j5 $ sudo npm install serialport --save

I have the same issue.

Hey, have you come across any documentation to help troubleshoot this?

@alex-ac2 which version of Raspbian are you using? Also, can you list the output of gcc -v for us?

The command being used to install serialport here is sudo npm install serialport (note the sudo.) Understanding the implications of sudo here requires fairly deep knowledge of some aspects of how Linux works. For more information see here. Alternatively, install serialport with npm install serialport instead.

I've run into this issue as well. I'm able to get around it by just side loading the plugin. Assuming you've got an existing project, clone the serialport plugin somewhere else on your computer. Run sudo npm link in that plugin folder, then change to your project location and link it with sudo npm link serialport. I've also had to run sudo node-gyp configure build in the serialport location to get rid of some more errors in my project.

still doesn't work with 4.0.3, npm install serialport -d shows that it tries to download https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/4.0.3/serialport-v4.0.3-node-v46-linux-arm.tar.gz which doesnt exists.....
Do you think forking and fixing the installer may work ?


Feature: AssertionConsumerServiceIndex in Request

SAML spec line 2136
https://www.oasis-open.org/committees/download.php/35711/sstc-saml-core-errata-2.0-wd-06-diff.pdf

AssertionConsumerServiceURL [Optional]
This attribute is mutually exclusive with the AssertionConsumerServiceIndex attribute and is typically accompanied by the ProtocolBinding attribute.
AttributeConsumingServiceIndex [Optional]

@pitbulk should we use precedence here to enforce mutual exclusivity?


[vm/ffi] Expose struct field offsets

dart:ffi internally calculates the fields offsets of structs in order to enable loading/storing from/to those fields.
However, sometimes one would like to pass a pointer to a field inside a struct to C. For that use case we should expose the internal offsets.
One way we could do this, for example for https://github.com/dart-lang/sdk/blob/4150349c7c2d30af5c9f92a9bc164b50a7b2ed27/tests/ffi_2/very_large_struct.dart#L8-L51 would be
class VeryLargeStruct extends Struct {
  @Int8()
  int a;
  external static int get offsetOfA; // Will be filled in by the compiler.

  // ...
}

Or alternatively we could provide inner pointers:
class VeryLargeStruct extends Struct {
  @Int8()
  int a;
  external static Pointer<Int8> get pointerToA; // Will be filled in by the compiler.

  // ...
}

(Though, I like exposing offset better. That is a better indication you're doing your own pointer arithmetic.)
Edit: we can't expose Pointers because the struct might be backed by TypedData. But we could generate extension methods for the struct pointers in package:ffigen: https://github.com/dart-lang/ffigen/issues/246.
cc @timsneath

This would be very nice to have, but I'd imagine we could only expose field offsets because of TypedData-backed structs?
Also, to reduce the need for having to use the name of the field in the offset name, maybe this should use an annotation?
class MyStruct extends Struct {
  @Int32()
  external int foo;
  @Int64()
  external int bar;

  @OffsetOf(#foo)
  external const int offsetOfFoo;
  @OffsetOf(#bar)
  external const int offsetOfBar;
}

If we use the offsetOf prefix, it would be less typing, but it could conflict with with an existing field name.
@ds84182 I presume you meant making the external consts static? Because these offsets do not belong to a specific offset. Also, they cant be const because the actual offset depends on the architecture we're running on (imagine having an intptr_t field before another field). So the compiler generates a branch pick one of the possible offsets at runtime.
@lrhn any API suggestions besides the one by @ds84182 and me?

Looking further at the suggestion of generated static ints, this suffers from the requirement that every potential needed offset needs to be identified and chosen. In the real-world scenario that I have in mind for this (wrapping Win32 structs), it's the caller who will likely decide that they need a pointer to the location, so unless I include an offset for every struct field, I can't guarantee a complete offering.
The example I used in a private mail was this:
class PAINTSTRUCT extends Struct {
  @IntPtr()
  external int hdc;

  @Int32()
  external int fErase;

  external RECT rcPaint;

  @Int32()
  external int fRestore;

  @Int32()
  external int fIncUpdate;

  @Array(32)
  external Array<Uint8> rgbReserved;
}

I need a pointer to the memory location of rcPaint to pass to the FillRect() API, which takes a Pointer<RECT>. With this scenario, the caller could theoretically add an extension to find the offset:
extension PSOffset on PAINTSTRUCT {
  @OffsetOf(#rcPaint)
  external static int rcPaintOffset;
}

and then add
  final ps = calloc<PAINTSTRUCT>();
  final hdc = BeginPaint(hwnd, ps);
  final psRect = Pointer<RECT>.fromAddress(ps.address + ps.ref.rcPaintOffset);
  ...

but that seems rather unwieldy. Hopefully there's a better way?

The caller could theoretically add an extension to find the offset, but that seems rather unwieldy. Hopefully there's a better way?

Agreed.
As a general approach, we would like to add the low level building blocks to dart:ffi and have the higher level things built on top by for example package:ffigen. In that case you'd have to generate these in your win32 generator rather than have the user write them. (Side note: We should consider checking if it would be possible to have the win32 header parser as a frontend for package:ffigen, so that all features added to package:ffigen can benefit package:win32s generated API as well. But I image package:win32's generator is quite involved by now already.)
@timsneath Inner pointers seem to only be useful when nested structs are involved, correct? So for adding something to package:ffigen and the win32 generator we could probably generate the extension methods for the nested structs but not for all primitive type fields.

Coming back to this, how about (similar to sizeOf, alignOf):
inline class FieldOffset<T extends Struct> {
  final int offset;
  const FieldOffset(this.offset);
}

external FieldOffset<T> offsetOf<T extends Struct>(Symbol field);

extension<T extends Struct> StructPointer on Pointer<T> {
  external Pointer<F> offsetTo<F extends NativeType>(FieldOffset<T> offset);

  external Pointer<F> addressOf<F extends NativeType>(Symbol symbol);
}

final psRect = ps.offsetTo<RECT>(offsetOf(#rcPaint));
// OR
final psRect = ps.addressOf<RECT>(#rcPaint);

We already have sizeOf<T extends NativeType>(), and it would make sense to add alignmentOf<T>() https://github.com/dart-lang/sdk/issues/39964. I'm thinking the most natural fit would be to have int offsetIn<S extends Struct>(Symbol field).
Both offsetIn and alignmentOf will have the same restrictions as sizeOf, the (type) arguments all need to be compile-time constants.
I'm not sure about the inline classes yet, we do not have an inline class wrapper for Pointer.address to reason about addresses either. So adding an inline class now would make our pointer arithmetic half with and half without inline classes. And I presume making the current pointer arithmetic inline classes would be a big change. Thanks for the suggestion! I've filed https://github.com/dart-lang/sdk/issues/52320 to discuss this.

extension<T extends Struct> StructPointer on Pointer<T> {
  external Pointer<F> addressOf<F extends NativeType>(Symbol symbol);
}

Are you proposing this to be in the SDK? It would have the same requirements: statically known arguments. We might also want to add type checking of F against symbols type.
However, maybe it would be better to just add offsetIn and let package:ffigen generate this instead. In FFIgen we could generate:
class Foo {
  @Int8()
  int a;

  @Int8()
  int b;
}

extension FooPointer on Pointer<Foo> {
 Pointer<Int8> a => Pointer.fromAddress(address + offsetIn<Foo>(#a));
 Pointer<Int8> b => Pointer.fromAddress(address + offsetIn<Foo>(#b));
}

dart:ffi would supply the offsetIn building block, FFIgen generates the nice API.

Is there a timeframe when this feature could be implemented? Looks like it's currently impossible to call a native method if it expects a pointer to a struct member as a parameter. Is there any way to calculate the offset "manually" and create a pointer from it?


HIVE-23966: Minor query-based compaction always results in delta dirs with minWriteId=1

See HIVE-23966 for details.
Does this PR introduce any user-facing change?
Minor compaction results will have different file names.
How was this patch tested?
Unit tests

Closed and reopened to rerun tests

Closed and reopened so tests would run; they should pass now that HIVE-23763 is in


bug fix: updated the version of tiny-skia

When updated the version of tiny-skia package to the current master
(0.4.2) the problem is fixed. It was in having multiple tiny-skia
packages. (0.4.2)  as a dependency and (0.3.0) from the Cargo.toml.
[Ticket: #6]

Thank you for the update!
For some reason, resvg is being pulled with version 0.13.1 in fresh installs, even though it is pinned to 0.13.0. I'll update that one too and will upload the Cargo.lock since it makes sense in a binary crate like dalted.

I think that the update of resvg is intentional by cargo. It should be a non-breaking change by the semantic versioning, so it updated automatically. I looked it up right now, so you can check, whether I understand the  SemVer  rust resolver.

After further reading: If there is a reason to pin the patch version (the third number), should do this:
resvg = "=0.13.0"

notice the "=...". There should not be a reason to do that though.

After further reading: If there is a reason to pin the patch version (the third number), should do this:
resvg = "=0.13.0"

notice the "=...". There should not be a reason to do that though.

@kunzaatko Oh, my fault, then. I thought I was pinning them just by writing the full version, I didn't know that rust resolves deps with semantic versioning (which is fantastic, actually). Thanks for the pointers!


Not able to run go program in windows 10

What version of Go are you using (go version)?

$ go version
go version go1.14.5 windows/amd64

Does this issue reproduce with the latest release?
No
What operating system and processor architecture are you using (go env)?
Windows 10 Enterprise edition , Processor-->intel core i5 7300U CPU
go env Output
$ go env
C:\Users\x6rmahad>go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\x6rmahad\AppData\Local\go-build
set GOENV=C:\Users\x6rmahad\AppData\Roaming\go\env
set GOEXE=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GONOPROXY=
set GONOSUMDB=
set GOOS=linux
set GOPATH=C:\Users\x6rmahad\Project
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-fPIC -m64 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\x6rmahad\AppData\Local\Temp\go-build110527706=/tmp/go-build -gno-record-gcc-switches

What did you do?
run the command
$ go run main.go

What did you expect to see?
output of the application
What did you see instead?
exec: "C:\Users\x6rmahad\AppData\Local\Temp\go-build670588414\b001\exe\main": file does not exist

Thank you for raising this issue. This issue commonly arises on windows platforms. https://golang.org/doc/faq#virus

In environment variables GOOS is linux  Changed to windows issue resolved.

Ahh, of course. My mistake, I should have spotted that the executable did not end in .exe

If someone like me stumbles across this issue. This is what you need to set:

@masbaehr It's better to use go env to check and manage golang environment variables. And for a fresh install, GOARCH/GOOS should have been set correctly and you don't need to change them in OS environment variables.


Unresponsive network on 700 series stick (fw 7.17.1)

Is your problem within Home Assistant (Core or Z-Wave JS Integration)?
NO, my problem is NOT within Home Assistant or the ZWave JS integration
Is your problem within ZWaveJS2MQTT?
NO, my problem is NOT within ZWaveJS2MQTT
Checklist

[X] I have checked the troubleshooting section and my problem is not described there.

[X] I have read the changelog and my problem was not mentioned there.

Describe the bug
What causes the bug?
Unknown
What do you observe?
The network becomes unresponsive until zwavejs is restarted.
What did you expect to happen?
Network to remain functional.
Steps to reproduce the behavior:

Go to '...'
Click on '...'
Scroll down to '...'
See error

Device information
Manufacturer:
Model name:
Node ID in your network:
How are you using node-zwave-js?

[X] zwavejs2mqtt Docker image (latest)
[ ] zwavejs2mqtt Docker image (dev)
[ ] zwavejs2mqtt Docker manually built (please specify branches)
[ ] ioBroker.zwave2 adapter (please specify version)
[X] HomeAssistant zwave_js integration  (please specify version)
[ ] pkg
[ ] node-red-contrib-zwave-js (please specify version, double click node to find out)
[ ] Manually built from GitHub (please specify branch)
[ ] Other (please describe)

Which branches or versions?
version: zwavejs2mqtt - 6.5.2 / zwavejs 8.11.6
node-zwave-js branch: latest
zwavejs2mqtt branch: latest
Did you change anything?
yes (please describe)
If yes, what did you change?
Moved to an Aeotec 700 series stick.
Note: I'm aware the 700 series sticks have issues currently, I moved over intentionally to try it out after the latest firmware (7.17.1) as the issues were supposed to be largely resolved, however it appears there may still be some problems.
Did this work before?
Yes (please describe)
If yes, where did it work?
On the Aeotec 500 series stick.
Attach Driver Logfile
zwavejs_current.log
The unresponsive network begins around 13:11:41.

What's indicative of the issue from my end is Node 008 and Node 014 seem to be repeating the same messages over and over starting at 13:11:41 until I restarted zwavejs about an hour later. Just looking at the zwavejs log, from 00:00 to 13:11 there was ~5400 lines of log. From 13:11 to the service restart at 14:14 there was nearly 210,000 lines of log created. I'd think this was a node issue but the fact that it stops after restarting zwavejs and not touching the nodes makes me think something else is going on.
I'm not able to reliably trigger this behavior, but every time it has happened has been during the same automation which does send a couple of commands rapid fire. Node 13 is a door sensor and Node 14 is a RGB LED controller. I have it set that when Node 13 reports the door open, it immediately sends a command to turn on Node 14. When the door is closed, there is a 5s delay then it will turn off Node 14 so long as the door isn't opened again prior to that. This has also occurred on Node 10/11, which have the same arrangement and automation (10 is door sensor, 11 is RGB LED controller).
When this happened previously I tried to send commands via the zwavejs2mqtt webui and it also was not being processed, though I really should have tried this again so it was captured in the log here. If there are no further insights about the Node 8/14 being stuck broadcasting messages this issue pretty regularly repeats every day or two, I will attempt more controls outside of Home Assistant.

What's indicative of the issue from my end is Node 008 and Node 014 seem to be repeating the same messages over and over starting at 13:11:41 until I restarted zwavejs about an hour later.

Those are not the same messages though. Note how the session ID for the SupervisionReport changes.
Just looking at node 14, each time, something sets the targetValue for node 14 to 99:
2022-02-21T13:11:38.174Z DRIVER » [Node 014] [REQ] [SendDataBridge]
                                  │ source node id:   1
                                  │ transmit options: 0x25
                                  │ route:            0, 0, 0, 0
                                  │ callback id:      209
                                  └─[Security2CCMessageEncapsulation]
                                    │ sequence number: 149
                                    └─[MultiChannelCCCommandEncapsulation]
                                      │ source:      0
                                      │ destination: 1
                                      └─[SupervisionCCGet]
                                        │ session id:      47
                                        │ request updates: true
                                        └─[MultilevelSwitchCCSet]
                                            target value: 99
                                            duration:     default

The node confirms execution:
2022-02-21T13:11:38.251Z DRIVER « [Node 014] [REQ] [BridgeApplicationCommand]
                                  │ RSSI: -89 dBm
                                  └─[Security2CCMessageEncapsulation]
                                    │ sequence number: 25
                                    └─[MultiChannelCCCommandEncapsulation]
                                      │ source:      1
                                      │ destination: 0
                                      └─[SupervisionCCReport]
                                          session id:          47
                                          more updates follow: true
                                          status:              Working
                                          duration:            1s

One second later it reports that it is done:
2022-02-21T13:11:39.267Z DRIVER « [Node 014] [REQ] [BridgeApplicationCommand]
                                  │ RSSI: -90 dBm
                                  └─[Security2CCMessageEncapsulation]
                                    │ sequence number: 26
                                    └─[MultiChannelCCCommandEncapsulation]
                                      │ source:      1
                                      │ destination: 0
                                      └─[SupervisionCCReport]
                                          session id:          47
                                          more updates follow: false
                                          status:              Success
                                          duration:            0s

Then (I'm not sure why, this shouldn't happen), the driver verifies the change:
2022-02-21T13:11:39.303Z DRIVER » [Node 014] [REQ] [SendDataBridge]
                                  │ source node id:   1
                                  │ transmit options: 0x25
                                  │ route:            0, 0, 0, 0
                                  │ callback id:      210
                                  └─[Security2CCMessageEncapsulation]
                                    │ sequence number: 150
                                    └─[MultiChannelCCCommandEncapsulation]
                                      │ source:      0
                                      │ destination: 1
                                      └─[MultilevelSwitchCCGet]
...
2022-02-21T13:11:39.455Z DRIVER « [Node 014] [REQ] [BridgeApplicationCommand]
                                  │ RSSI: -90 dBm
                                  └─[Security2CCMessageEncapsulation]
                                    │ sequence number: 27
                                    └─[MultiChannelCCCommandEncapsulation]
                                      │ source:      1
                                      │ destination: 0
                                      └─[MultilevelSwitchCCReport]
                                          current value: 99
                                          target value:  99
                                          duration:      0s

And 2s later, something sets the target value to 99 again:
2022-02-21T13:11:41.243Z DRIVER » [Node 014] [REQ] [SendDataBridge]
                                  │ source node id:   1
                                  │ transmit options: 0x25
                                  │ route:            0, 0, 0, 0
                                  │ callback id:      212
                                  └─[Security2CCMessageEncapsulation]
                                    │ sequence number: 151
                                    └─[MultiChannelCCCommandEncapsulation]
                                      │ source:      0
                                      │ destination: 1
                                      └─[SupervisionCCGet]
                                        │ session id:      48
                                        │ request updates: true
                                        └─[MultilevelSwitchCCSet]
                                            target value: 99
                                            duration:     default

... you know how it goes.
The same happens to node 8 but with slightly different messages:
2022-02-21T13:11:41.155Z DRIVER » [Node 008] [REQ] [SendDataBridge]
                                  │ source node id:   1
                                  │ transmit options: 0x25
                                  │ route:            0, 0, 0, 0
                                  │ callback id:      211
                                  └─[BinarySwitchCCSet]
                                      target value: false
2022-02-21T13:11:42.715Z DRIVER » [Node 008] [REQ] [SendDataBridge]
                                  │ source node id:   1
                                  │ transmit options: 0x25
                                  │ route:            0, 0, 0, 0
                                  │ callback id:      213
                                  └─[BinarySwitchCCGet]
2022-02-21T13:11:42.764Z DRIVER « [Node 008] [REQ] [BridgeApplicationCommand]
                                  │ RSSI: -75 dBm
                                  └─[BinarySwitchCCReport]
                                      current value: false
...
2022-02-21T13:11:43.000Z DRIVER » [Node 008] [REQ] [SendDataBridge]
                                  │ source node id:   1
                                  │ transmit options: 0x25
                                  │ route:            0, 0, 0, 0
                                  │ callback id:      214
                                  └─[BinarySwitchCCSet]
                                      target value: false
...

I'd say this is an automation that went rogue or something.

Thanks for the analysis! I didn't realize it was sending those state changes to the devices, not just receiving reports. I was thinking to myself why is this thing telling me it's set the value to 99 over and over.
I suppose restarting the zwavejs container is enough to break the connection to HA and interrupt whatever crazy thing is going on there that is sending this command repeatedly, which led me to the wrong conclusion that zwavejs was the culprit.
 Thanks again for the help checking into this!

The arrows are telling you the direction of the command:
Outgoing: DRIVER » [Node 008]
Incoming: DRIVER « [Node 008]

LOL that's brilliant...seems so obvious now. Thanks for the tip!
General note, appreciate you taking the time to explain the analysis rather than just throwing out solutions/diagnoses. Helps me learn the logs and troubleshooting process so I can do it myself next time.


fix: parse json response with jq

The RPC response might be:
{
    "result": "xxx"
}

{
    "result": "xxx",
    "id": 1234
}

{
    "result": {
        // xxx
    }
}
...

The parse result didn't work sometimes, in this PR I fix this with jq tool.

nice! thanks :)


feat: strongly type extended drivers

Currently, a driver can define its own method signatures but they will be lost thanks to DriverFactory returning a Driver rather than the original type.
This means things like the netlify driver never actually exposed their extended types (e.g. special options in getKeys).
import driver from "./netlify-blobs";

const instance = driver();

// BEFORE

instance.getKeys;
//`        ^? getKeys(base?: string, opts: GetKeysOptions)

// AFTER

instance.getKeys;
//         ^? getKeys(base?: string, tops?: GetKeysOptions & Omit<ListOptions, "prefix" | "paginate">)

With these changes, a driver can implement Driver but add its own types on top which are then exposed.

I think we should do this for the repo in its current state
But given what you said in #555 , it made me wonder about what the right interface is
I wonder if in v2, we should actually have a fixed interface (like before this change). And an option which contains driver specific options, instead of merging the two
getItem("key", {
  driverOptions: {
    somethingDriverSpecific: true
  }
})

Appreciate your work on this PR ❤
defineDriver<T>(): Driver is intentional at least for built-in drivers so we only assume the "common" interface only also explicit generic <T> keeps types being isolated.
In v2, it shall be a global namespace interface with explicit keys for each driver (which is, unfortunately, a breaking change for v1 as we used top-level mixed keys)
{
  ttl: 1200, // Generic
  http: { headers: { } } // driver specific
}

The netlify driver specifies it's own types which currently have no use, since we only expose a Driver
Was that intentional too? That's mostly why I did this change

Indeed, they are only usable internally now for those drivers.
Also consider, that passing driver-driver options to each transaction is something more of an escape hatch / advanced purpose. The key point of using unstorage abstraction is that an operation works regardless of the underlying driver.

I see, it was just there to help with the internal types
And yes, I would much rather it return a Driver so there is one interface regardless of driver
Then if we must, have an option in there that is passed through to the underlying driver. Instead of changing the method signature


Package SilverBullet as a native mobile (and desktop) application

I know this is on the radar, so let's make it official! I'm not sure if any physical groundwork has been laid, though I believe @zefhemel made a reference to React Native in one of the videos. Also, in terms of supported platforms, is it better to track this effort as a single issue, or should we create separate issues for Android and iOS?

Thanks for raising this. This is another good topic to discuss strategy on. Here are my current thoughts, I’m open to your perspectives of course.
First, building a mobile app (any mobile) app is effort. It takes effort that would be taken from other efforts (opportunity cost). This is important, because for me at least this is a side hobby project and I have limited time, likely this will be the case for others as well.
That said, what’s the ideal case in my mind? The perfect solution would be 100% native apps for each mobile system, specifically one for iOS and one for Android. Everything would be implemented custom, still hosting plug code in a JavaScript sandbox so that those all work. The mobile app would have offline sync capability, somehow pulling your entire space into the app, sync it with some central place when online and somehow also allowing real-time collaboration.
There’s a few aspects of this ideal scenario that are challenging:

Two native apps for two operating systems to maintain (iOS and Android)
Practical question: I think technically Apple doesn’t allow serious extension of native apps via Javascript, although we may slide under the radar, it’s risky
We need to build a sync engine to sync files between your mobile device and some centralized location
And the big one: the code editor we use on the web (CodeMirror) is a HUGE, likely multi-year project to replicate in native code (let alone doing this twice). We could get away with something much simpler, but the experience for sure would be worse.

So this doesn’t seem very realistic.
One step down would be addressing item 4: the code editor, by making that part of the UI (which is almost all of it, to be honest) just be CodeMirror in a web view. This will work (it does right now when you open SB in a mobile web browser), but it defeats a little bit the value of being a “truly” native app when 90% of the UI is now a web view. There are a few glitches on iOS I’ve noticed, and they’d be hard to address properly. Problems 1-3 still hold.
Next step “down” would be to use React Native, this largely solves item 1: maintaining two separate native apps. This still leaves item 2-3.
The question at this stage is: do we really benefit from anything react native offers, or could we use something like Ionic framework? Either way, this still leaves 2-3.
What we could do to solve the sync engine issue is simply have the mobile app talk directly to a Silver Bullet backend (like the browser frontend does right now). This would work great, but would break if you don’t have access to the Internet. So the question is: how key is being offline capable?
If being offline capable is the “killer feature” of a mobile app there’s still two routes:

Go with something like RN, Ionic and build a simple sync engine
Stick with the current PWA route and build a sync engine that syncs with e.g. IndexedDB. This is something I prototyped at some point but didn’t pursue because of opportunity cost (adds complexity and I had plenty of other things to focus on)

So this is where I stand for now:
For now, Silver Bullet works on mobile. I use it every day. I have a SB VM running in my local network, I connect to it remotely via Tailscale and as long as I have working Internet (90% of the time) the experience is pretty good. All functionality works.
We can build simple “native” wrappers around this experience, to have a proper App store presence: we can build an Electron app for desktop and an Ionic (or similar) wrapper for iOS and Android. This wouldn’t give functionality benefits, just some convenience over the current PWA model.
If offline capability turns out to be important for people, I’d aim to build a sync engine at the “web” level: that is, allow syncing of a space locally to the client (browser) via IndexedDB. This would benefit both desktop and mobile at the same time.
Thoughts?

While I understand the appeal of a 100% native implementation, I believe this case to be an exception, since the editing experience should be as identical as possible across platforms, and the most practical way of ensuring that is to use CodeMirror everywhere. For many users, SB's state-of-the-art editing experience will be its most important feature, so it should be presented consistently.
I'm intrigued by the idea of a sync engine that syncs with IndexedDB. A solid implementation of this, combined with a willingness to use CodeMirror on all platforms, could reduce the need for native mobile apps, at least with respect to offline use and syncing. But PWAs have other limitations that will annoy us eventually, so I think the approach will have to be native apps (using a web view -- not "100% native"), storing documents in the normal manner on the device's file system.
With respect to Apple - we should get clarification on the restrictions, but to my knowledge Obsidian's Javascript-based plug-in ecosystem is thriving on that platform. Still, we need absolute certainty on this.
On the sync engine - I think this is a case where Obsidian's approach is excellent, so we may be wise to draw inspiration from their model. Users should be able to set up their own sync process through cloud storage providers, or host their own sync server (as you suggest), facilitating e2ee syncing across devices. And perhaps an official hosted offering could be made available to users that don't want to host their own sync server, as a revenue stream for this project (similar to Obsidian's "Sync" service).
With regard to the framework, others might need to chime in. My personal, biased preference would be Electron on Linux and MAUI on everything else (Android/iOS/Windows/Mac). But that would mainly serve to minimize my own learning curve, I'm not sure what's most appropriate for the project.
With regard to being "offline capable" -- I can confidently say yes, this is huge. Not just a killer feature, it's mandatory. So in my opinion, route no. 1 seems to be our path.

Okay, I think I can help here. Addressing a couple of points from above.
Framework
We use Capacitor / Electron for our apps in the agency. I've never had a customer where that would've been an issue.  From biased experience, many users prefer having the same look as opposed to the respective "native" look and feel of the respective operating system. Bundling with capacitor is quite easy, we have set up hundreds of apps this way over the past years.
Apple
Can confirm definitely, we have several apps currently in the app store with Apple that use basically only a wrapped PWA. They do have in debth usability tests which will need to be passed, but that's manageable.
Deployment
There is no inherent issue here, but it takes time to get all the store account information and marketing material together. Also, there will be yearly cost for the accounts.
Sync Engine & Offline
I disagree with @pm64 on Obsidian's approach. I think it's good for power users who can establish their own sync but that will always prevent the regular day-to-day user from actually really using it in my experience with our team of 15.
Offline is not a problem as stated in your comments. We could even just let the whole application work as it does on desktop, spawning a local webserver that serves from file system (cloud sync tbd). Meteor is built this way as well, which we used to use until a couple of years ago. From my perspective, the question should be, do we want the mobile app to be a "client" or a fully functional SB instance with its own permanent persistence. IndexDB is not a good idea to permanently store important data in the mobile app ecosystems since it's treated as cache data afaik, so that would be the client approach which relies on an external sync service. If the project goes down that route, a built-in sync service is essential iyam.

Sorry, I'm on the run, no time to review in depth atm. Again, I think it's essential to decide first on whether the mobile app should be another client to an external server or a fully fledged SB instance on which I don't have an opinion on yet.

From a choice of technology perspective a few preferences: overall I think to believe "boring is good." That's why I picked TypeScript (has been around for some time), React (although technically now Preact), and initially node.js and npm (although recently to the only a few-years old Deno, because the node.js setup just became too much of a mess). For this reason I'd also prefer proven solutions for a desktop and mobile app.
For desktop this would logically mean Electron. My only concern with this is that we'd likely be distributing and running 2 full JS runtimes with this desktop app. As @yorrd suggested, I'd indeed imagine at least an initial implementation (also to keep things simple) would simply be the server running locally (so we need to ship Deno) and Electron being an extremely light browser view (so are shipping a full Chrome instance) on top. This will consume a fair amount of resources. Computers are big and fast these days, but... it's a bit wasteful. Something like Tauri which utilizes the OS's native browser renderer would be a bit lighter weight, but is also much more experimental.
For the mobile side, I have not kept up what's happening on the "web app wrapper" side, but I've seen the Ionic name around for quite a few years, and I think Capacitor comes from that world, right? I'd also lean to a light weight mobile wrapper to start. In general any amount of client specific (be it PWA, desktop, mobile) code I'd like to keep to a minimum to keep the code base small and testing surface as small as possible.
Indeed the question is, especially for the mobile client: would this just be a client or a full blown environment (also providing the backend). I think here we can be pragmatic and start with purely a client and then work on integrating a backend as well. Here we will likely have to build something custom, since I don't see Deno running in a mobile app anytime soon. However, building something custom may be feasible. I see Capacity has plugins for e.g. native file system access. Some things will simply not work on mobile, like running of shell commands (which plugs can do right now).
The sync topic is another big one. I'm following the Obsidian community from a distance, and I see people complaining about using their devices native sync capability. This may be possible to overcome to build a simple sync engine of our own, or allow to use the native iCloud drive stuff. Again, I have a sync engine parked somewhere and can it bring. Sync is a whole can of worms, but perhaps somebody is interested building or integrating a very solid system :)

A few points:

I don't see tremendous benefit in starting with client-only, then working toward a "backend", since paths to functional backends are fairly short.
The beauty of Obsidian's approach is the simplicity. Each platform is treated the same, with files stored on the device's file system. This gets you two important things for free:

Offline support
Decoupling of the storage and sync concerns

@yorrd, can you be more specific about which part of the above will "always prevent the regular day-to-day user from actually really using it"? Maybe you were referring to something else?
@yorrd, the concern about Apple isn't related to PWAs. It has to do with their "no app store within an app store" policy with respect to SB's plugs ecosystem. This will require an analysis of Apple's policy, hearsay isn't good enough.
"Boring is good" +1

One initial observation is that the "Web" side of SB is doing virtually all of the heavy lifting, and the "server" side is easily ported. So it's totally feasible to actually build some prototypes to evaluate. (I nearly have a working MAUI implementation, just need to resolve some apparent service worker limitations in WebView2.)
Given this, one approach would be to identify our requirements and priorities, pump out some prototypes, then measure how well each framework stacks up.
If you were to ask me about requirements/priorities, I'd say the following areas would provide the most value for the most users:

True native experience (outside of the Web view)
Performance
Offline operation
Accessibility
Access to device hardware, push notifications, etc.

Some quick points on sync:

@zefhemel yes, Obsidian users regularly identify issues with their own sync solutions (i.e., simply using their own cloud storage provider). I believe the current state of affairs is that there are providers that work flawlessly on specific platforms (for example, iCloud on iOS), but no single provider that works flawlessly across all platforms. But I see this as a momentary annoyance related to current cloud storage products and features, not an inherent flaw or weakness in Obsidian's approach, and it will go away over time. Still, Obsidian provides its official Sync service for users that want flawless operation across platforms, which we should do as well. The difference is that our users will have the option to self-host that service.
If we go with locally-stored, synchronized copies of spaces on each device, there's just one additional piece we'll need: a selective sync feature, for users with massive spaces and limited storage on one or more devices. I've seen several implementations of this feature in different domains, and believe this is an opportunity to make one that's actually good :)

And some miscellaneous notes:

With regard to Deno on mobile: this is obviously a no-go on iOS, but I did notice that at some point, a Deno package was added to the Termux ecosystem (Termux is an open-source Android terminal and package manager). However, when I try installing that package today, I get a "package not found" error. I asked the Deno community about this and was met with blank stares :) Regardless, I think we agree this isn't a viable path.
About shell commands: maybe not in iOS, but plugs can do this all day in Android :) But yes, eventually it will probably be necessary for some plugs to do platform-specific things, so we need the plugs to carry some kind of metadata indicating platform and/or device support.

@pm64
As on why I don't believe Obsidian's sync is viable for a regular user: I believe having to set up your own sync is a major blocker to adoption. This is not based on hard fact numbers but from my 2 year experience in the Obsidian ecosystem I have followed many threads where people have just left the conversation or directly stated that this made them switch. Therefore I believe the issue to be a big pain point for users that are not familiar with setting up file system sync solutions themselves. This being said, I understand what you mean by it being an technically elegant solution.
I agree mostly with your priorization, but I'd put offline operation higher up the list. Not being able to edit notes on the subway is a big factor for me personally. Just my subjective opinion though.

As on whether plugs are viable on the app store: I asked our legal to have a quick informal look (no guarantees) and they reported on which sections they deemed relevant, judging from the guidelines which they had already read through for an earlier customer project:
Listed under acceptable business models (https://developer.apple.com/app-store/review/guidelines/#other-business-model-issues)

(i) Displaying your own apps for purchase or promotion within your app, provided the app is not merely a catalog of your apps.

Listed under unacceptable:

(i) Creating an interface for displaying third-party apps, extensions, or plug-ins similar to the App Store or as a general-interest collection.

... therefore not banning behavior such as Obsidian plugins or SB plugs, as far as I can tell without wanting to give legal advice here.

@zefhemel
based on our discussion so far and as you have stated above, I believe a client-version would be easiest to implement first, treating local file storage as cache only. This introduces the question of diffing different versions which have been edited offline.
I have started implementing an Obsidian sync plugin a while back based on y.js (and therefore the CRDT paradigm) and have started thinking about implementing sync using CRDT only, while simultaneously opening the door to shared editing. Haven't got a finished prototype yet though. Do you both think that's a possible way forward? Many in the industry seem to be going down the CRDT route for offline first applications.

Want to keep the momentum going here, even though we're all probably getting pulled in different directions for the holidays.
@yorrd, thanks for your research. It sounds like the reason plugin ecosystems like Obsidian's and SB's are in compliance is that the available extensions are not "similar to the App Store" and do not represent a "general-interest collection". This makes sense.
With respect to the architecture.. as I noted in an update to my comment last week, when I opened this issue I didn't yet have a full appreciation of how intertwined PlugOS and the "server" piece are. When I reached the server code in my last review, I naively expected to find some basic file system I/O and SQLite calls. Of course, it was anything but that. But I can see why this approach was necessary.
Assuming the mobile and desktop versions of SB will use the same strategy for storage and sync, in one sense this is good news, because it means framework or "wrapper" for the mobile app is necessarily limited to those that are Javascript-based, which should accelerate our path to an actual plan.
One last note for now. Obsidian has a major flaw: the startup time is unacceptably long, particularly on mobile. Based on the conversations I've seen around this, it seems this can't be fixed. In fact, at least one 3rd-party product has been released that is marketed, at least in part, as a solution to this: a browser extension that bypasses Obsidian to add content directly to the user's vault (see Fleeting Notes).
The part I'm not sure about is whether Obsidian painted itself into this corner by using Electron? This seems to be the perception among some users, but I'm not sure if it's true. If it is, we should learn from this and avoid Electron in favor of a more performant framework.

One last note for now. Obsidian has a major flaw: the startup time is unacceptably long, particularly on mobile. Based on the conversations I've seen around this, it seems this can't be fixed.

Yeah that's definitely a problem. I'm not sure about Electron being the source. I use Mailspring as my daily driver which is built on Electron. Startup times are good (<1s) with 10+ mail accounts and tens of thousands of locally stored mails incl attachments. My guess is that Obsidian is building an in memory cache on startup and isn't very efficient about doing so, just a guess though. It says "loading vault" or something along these lines, and when I start from CIFS / NFS, it's way slower, so I'm guessing it's limited by the file system.
Juding from the issue mentioned above, @zefhemel seems to be going after a sync solution between mobile and desktop. So maybe a good way forward would be to leverage that and do offline storage as a "hook" in the sync system? Just generally speaking here. If we do that, contents in the app will end up being ephemeral anyways, so we might as well put them in cache storage (indexDB/whatever). I like that thought because bundling for the stores is going to be a lot easier. In fact that's something I could just quickly build a bundle for an test it out.
@zefhemel just wondering, have you registered the store accounts for silver bullet? Are there name collisions you're aware of? Happy to assist and chip in on the cost to make this happen. A well synced mobile app will be a huge benefit to the ecosystem.

Right, so here's the state of my progress and thinking now.
Phase 1: Desktop
As you may have noticed, I merged a simple Electron based desktop app. It lives here: https://github.com/silverbulletmd/silverbullet/tree/main/desktop I also integrated it into the build pipeline, so that every time I tag it builds a new version with the latest SB version (and since auto updating is integrated, it will upgrade too — at least on Mac and Linux and I suppose it should on Windows once I properly sign it).
I went the road of least resistance, which means. The app bundles:

A copy of Deno
The silverbullet.js single JS bundle (the same that you get from https://get.silverbullet.md)
A very thin Electron wrapper that spawns Deno on a random port and opens a BrowserView pointing to it for each folder

In effect, this means you'll be running 3 copies of the v8 VM (one for Deno, one for Electron's NodeJS, and one for the Chrome BrowserView) which is a bit crazy. However, I did manage to implement this in 2 days. So there's that.
But there may be a way out of the 3 VM approach, which could emerge of part 2 of the plan which is...
Phase 2: Mobile
So here I'm working on a branch using https://capacitorjs.com. Which is the thin wrap-a-browser-view-in-a-mobile-app part of the Ionic framework. For visibility I've opened a PR: https://github.com/silverbulletmd/silverbullet/pull/281
Since I'll not be able to load Deno on mobile, I'll have to take a more integrated approach. My idea is to still build the whole mobile web app with ESBuild as right now, but replace the "HttpSpace" implementation (talking to a server) with one that is talking tot he local file system, and reimplementing all syscalls using CapacitorJS primives (there are APIs to get access to the FS and I found a SQLite library  as well). If I can get this to work, it may be possible to port this approach to the desktop app later too.
Once I get this to work (which may take some more time). We move on to...
Phase 3: Sync
Either leveraging something like iCloud, or building a simple sync engine: #261
Phase 4: Optimize
E.g. by applying the same approach to desktop as mobile, thereby eliminating the need for a Deno runtime on both.
At that stage the question is: will people want to use this purely as Desktop and Mobile apps. And if so... do we still need the "web app" version at all, and with that will we still need the Deno backend?
We'll see once we get there.

Addressing some things @yorrd mentioned: I have not registered any app names anywhere, but I don’t expect this to be a problem? I can always call it “Silver Bullet mobile” if somehow this is taken, not sure how globally unique these names need to be.
And regarding offline/online mode: yeah, my thinking is indeed: let’s go the sync route. Keep a copy locally on device (desktop and mobile) and sync it either through OS mechanisms (like iCloud, Dropbox) outside of SB’s control, or through a sync engine mentioned in #261 in which case you’d have to deploy some server.


Use PSGcompiler to create .exe of app

Goals
Create a .exe file to easily share program
Tasks

[x] download psgcompiler
[x] configure """
[x] test .exe

Tech

how to setup psgcompiler

Added .exe to "compiled-app" branch


Update for io.js support for node-sass

for io.js users node-sass is failing install with Error: Module did not self-register. It looks like node-sass this has been patched for the 2.0 release (https://github.com/sass/node-sass/pull/630).

Same error here.

#41

Has been published as 0.4.0.


Add yakui_wgpu::State::paint_with_encoder()

Add yakui_wgpu::State::paint_with_encoder() for encoding render commands to an existing &mut wgpu::CommandEncoder.
Add yakui to the render pass label

Thank you!


A potentially dangerous Request.Path value was detected

Hi I'm trying your reporter, it looks very very promising but I'm getting this error.
URLs and token are correctly configured. Any suggestion? Thank you!
azure: {"$id":"1","innerException":null,"message":"A potentially dangerous Request.Path value was detected from the client (:).","typeName":"System.Web.HttpException, System.Web","typeKey":"HttpException","errorCode":0,"eventId":0}
azure: Failed to create test run. Reporting is disabled.

Can you show you config, plz
ср, 5 лип. 2023, 19:07 користувач Oscaruzzo @.***> пише:

Hi I'm trying your reporter, it looks very very promising but I'm getting
this error.
URLs and token are correctly configured. Any suggestion? Thank you!
azure: {"$id":"1","innerException":null,"message":"A potentially dangerous
Request.Path value was detected from the client
(:).","typeName":"System.Web.HttpException,
System.Web","typeKey":"HttpException","errorCode":0,"eventId":0}
azure: Failed to create test run. Reporting is disabled.
—
Reply to this email directly, view it on GitHub
https://github.com/alexneo2003/playwright-azure-reporter/issues/37, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACZJ4LR4W2PW4UPAWCMRDTLXOWGKPANCNFSM6AAAAAAZ7FNX7Q
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

My bad, I had the complete project url in the projectName property instead of the . You can close the issue, sorry for the noise.


KNative returns unexpected EOF

/kind bug
What steps did you take and what happened:
[A clear and concise description of what the bug is.]
I deployed a 20B GPT-2 model via KServe. When I access it through istio-ingressgateway, knative queue-proxy returns 502 with unexpected EOF. This is the log of queue-proxy
{
     "severity": "ERROR",
     "timestamp": "2023-04-19T07:01:57.902205349Z",
     "logger": "queueproxy",
     "caller": "network/error_handler.go:33",
     "message": "error reverse proxying request; sockstat: sockets: used 83\nTCP: inuse 40 orphan 2 tw 17 alloc 513 mem 1663\nUDP: inuse 0 mem 3931\nUDPLITE: inuse 0\nRAW: inuse 0\nFRAG: inuse 0 memory 0\n",
     "commit": "6ec4509",
     "knative.dev/key": "default/triton-mms-1-predictor-default-00001",
     "knative.dev/pod": "triton-mms-1-predictor-default-00001-deployment-64b6b8d4445nmkc",
     "error": "unexpected EOF",
     "stacktrace": "knative.dev/pkg/network.ErrorHandler.func1\n\tknative.dev/pkg@v0.0.0-20220412134708-e325df66cb51/network/error_handler.go:33\nnet/http/httputil.(*ReverseProxy ).ServeHTTP\n\tnet/http/httputil/reverseproxy.go:300\nknative.dev/serving/pkg/queue.(*appRequestMetricsHandler).ServeHTTP\n\tknative.dev/serving/pkg/queue/request_metric.go :199\nknative.dev/serving/pkg/queue.ProxyHandler.func1\n\tknative.dev/serving/pkg/queue/handler.go:75\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server .go:2047\nknative.dev/serving/pkg/queue.ForwardedShimHandler.func1\n\tknative.dev/serving/pkg/queue/forwarded_shim.go:54\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http /server.go:2047\nknative.dev/serving/pkg/http/handler.(*timeoutHandler).ServeHTTP.func4\n\tknative.dev/serving/pkg/http/handler/timeout.go:117",
}

What did you expect to happen:
The queue-proxy can return normally
What's the InferenceService yaml:
[To help us debug please run kubectl get isvc $name -n $namespace -oyaml and paste the output]
apiVersion: "serving.kserve.io/v1beta1"
kind: "InferenceService"
metadata:
  name: "triton-mms-1"
  annotations:
    cluster-autoscaler.kubernetes.io/safe-to-evict: 'true'
spec:
  predictor:
    timeout: 1
    volumes:
    - name: dshm
      emptyDir:
        medium: Memory
        sizeLimit: "2048Mi"
    triton:
      ports:
        - containerPort: 8000
          name: h2c
          protocol: TCP
      storageUri: pvc://test-pvc/gpt/gpt-medium
      image: xxx/tritonserver:22.03-py3-ft  # Triton image compiled by myself
      imagePullPolicy: IfNotPresent
      command: ["sh", "-c", "tritonserver  --model-repository=/mnt/models --log-verbose=3 --log-info=1 --log-warning=1 --log-error=1"]
      # args:
      # - --allow-sagemaker=false
      env:
      - name: OMP_NUM_THREADS
        value: "1"
      volumeMounts:
      - mountPath: /dev/shm
        name: dshm
        readOnly: false
      resources:
        limits:
          nvidia.com/gpu: 4
          memory: "10Gi"
        requests:
          nvidia.com/gpu: 4
          memory: "10Gi"

Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
Environment:

Istio Version: v1.9
Knative Version: v1.4.0
KServe Version: 0.9.0-rc
Kubeflow version:
Cloud Environment:[k8s_istio/istio_dex/gcp_basic_auth/gcp_iap/aws/aws_cognito/ibm]
Minikube/Kind version:
Kubernetes version: (use kubectl version): 1.19.9
OS (e.g. from /etc/os-release):

@SeibertronSS Your request is timing out

@yuzisun How can I increase this time threshold

I have a same question,please help me


Kinetic Energy of a Simple Pendulum System

See https://github.com/open-resources/instructor_physics_bank/pull/353#issuecomment-890408558

I've added LO 8.2.5 - "Calculate the kinetic energy of a simple pendulum." which should be good for the question.

as well as LO <IP_ADDRESS> - " Calculate the gravitational potential energy of a simple pendulum."

Calculate the gravitational potential energy of a simple pendulum.

I'm not sure why this is not showing up in the .csv list but it's there in the yml file

Calculate the gravitational potential energy of a simple pendulum.

I'm not sure why this is not showing up in the .csv list but it's there in the yml file

hmmm I'll double check the syntax and indentation but besides that im not sure

ah there seems to be 2 potential energy subtopics. I will remove one of them, hopefully this doesn't mess up too many things. Should only effect the conservation of energy subtopic.

Thanks, I see it now!


Input form bug fixed

hi,
please add this code to _start function between var declaration and if (!that.enabled) return;
tagName = e.target.nodeName.toLowerCase(),
that.focusedInput && (that.focusedInput.blur(), that.focusedInput = !1);
if (tagName === "select" || tagName === "input" || tagName === "textarea")
{
"ontouchstart" in document.documentElement ?
e.target.dispatchEvent("touchstart") :
e.target.focus(),
e.focusedInput = e.target;
return;
}
it fixes "cant't write to the input form" bug
thanks,
Jan

Thanks @janantala I have the same issue and it's working now :D

cool fix! just what i was looking for!


Version 2.2.1

Landed in https://github.com/metarhia/common/commit/3d2bae94c2339f5d40fc6b7f235103c7d005b4d5


Update filecounter app for S6 data

Filecounter should accurately count Season6 progress including the rearranged data locations (level 2 and 3) and run initial counts for S6 (04/06 - 08/01) to use for progress tracking.

https://filecounter.workbench.terraref.org/showcsvbyseason/stereoTop


Add Animation Listener

I have seen that you have closed #16 .
But I think we should add an animation listener to that. In my case I'm showing ticker in red/green colour depending on whether the change is positive/negative. But after the animation I want to make it black again.
This may be the case with some of the people who wants to use TickerView.
Thank you for this awesome library. :)

Ah, very valid use-case, and it's something that we considered implementing within Robinhood app as well. Thank you for the input!

Thank you Jin Cao.


compdump compilation not working

Describe the bug

I've recently switched to znap (thanks, it's really nice!), and I am having a problem with compdump compilation. It looks like ..znap.compinit-hook is properly calling .znap.compile, but the file is being deleted instead due to the stack check: https://github.com/marlonrichert/zsh-snap/blob/main/functions/.znap.compile#L52-L57
At that point of execution funcstack appears to be (.znap.compile ..znap.compinit-hook), not anything with just znap.
Steps To Reproduce

Start a shell with a minimal .zshrc:
zstyle ':znap:*' repos-dir ~/.zsh
source ~/.zsh/znap/znap.zsh

Expected behavior

compdump.zwc exists ~soon after start up.
Observed behavior

russell@zip:~ ❯ ls -la .cache/zsh/
total 112
drwx------@ 4 russell  staff    128 Oct  6 14:31 .
drwx------  8 russell  staff    256 Oct  5 09:18 ..
-rw-r--r--@ 1 russell  staff   6148 Oct  5 10:47 .DS_Store
-rw-r--r--  1 russell  staff  48812 Oct  6 14:31 compdump
russell@zip:~ ❯

set -x output

...
+.znap.compile:24> f=/Users/russell/.cache/zsh/compdump
+.znap.compile:25> shift files
+.znap.compile:26> [[ -w /Users/russell/.cache/zsh ]]
+.znap.compile:32> [[ /Users/russell/.cache/zsh/compdump.zwc -ot /Users/russell/.cache/zsh/compdump ]]
+.znap.compile:39> [[ -r /Users/russell/.cache/zsh/compdump ]]
+.znap.compile:44> [[ -e /Users/russell/.cache/zsh/compdump.zwc ]]
+.znap.compile:45> func=''
+.znap.compile:46> [[ -n '' ]]
+.znap.compile:46> ((  fpath[(i)/Users/russell/.cache/zsh]  ))
+.znap.compile:47> opt=zM
+.znap.compile:52> [[ ..znap.compinit-hook == znap ]]
+.znap.compile:55> ret=1
+.znap.compile:56> zf_rm -f -- /Users/russell/.cache/zsh/compdump.zwc
+.znap.compile:60> [[ -f /Users/russell/.cache/zsh/compdump.zwc ]]
+.znap.compile:22> ((  0  ))
+.znap.compile:69> return ret

Environment:

OS: macOS (Sonoma, 14.0)
Terminal: wezterm
Zsh version: 5.9
Repo version: * main 7741929 Fix handling of git@*:*.git URLs

Additional context

It looks like the check for the stack was introduced in cbbb63 to quiet compilation output when not called from the CLI.


MAINT: fix small LSMR problem

Reference issue
Fixes #17012
What does this implement/fix?
Fills solution vector with zeros, instead of pointing it to the RHS

Has a defect label, can be cleanly cherry-picked to maintenance/1.9.x, so adding backport label. Just remove label if you disagree.


merge/move docs from code.kx.com to GitHub

To avoid conflicts the docs for this interface will be removed from code.kx.com. This ends the need to duplicate changes; the source repo is the ‘single source of truth’.
Changes here convert Markdown from Material for MkDocs theme to GFM.

@StephenTaylor-Kx recreated your PR as #14,
in order to pass Travis CI checks

@vgrechin-kx Tx. Let me know if you need anything from me. (I don’t have access to Jira.)

@StephenTaylor-Kx for now @nmcdonnell-kx is reviewing your change. I'm not sure if it all will stay here because it might be better to keep all KX documentation solid. Hence I'd consider creating a children repo under KxSystems in order to reuse this children repo as a submodule here in for KX docs as well.

code.kx.com/q/interfaces/ now links back to this repo.


[CP] 3.14: [Impeller] Apply color blends on the CPU; fix mask blurs and the Gaussian blur coverage hint.

Issue Link
https://github.com/flutter/flutter/issues/132936
Commit Hash
https://github.com/flutter/engine/commit/53595c937df156b932850807869f539c15042919
Target
beta
PR Link
https://github.com/flutter/engine/pull/45193
Changelog Description
Fixes issues in the generic mask blurring path as well as geometry coordinate mapping problems in the Gaussian blur.
Impacted Users
This issue affects Impeller users.
Impact Description
This fixes a variety of rendering problems with Impeller shadows which are exacerbated by the presence of dirty regions. When elements are moving over the top of a non-animated shadow, the shadow may sometimes render as faded or become invisible.
Workaround
There are no simple workaround for this issue.
Risk
medium
Test Coverage
yes
Validation Steps
To test, run the example Flutter app in https://github.com/flutter/flutter/issues/132936 and verify that the blur does not cut out while scrolling.
Alternatively, run the AiksTest.ClippedBlurFilterRendersCorrectly playground golden and verify that the blur does not dim out as it approaches the top edge of the screen.

@zanderso could you review this cherry-pick?

cp lgtm

Should we close this as complete, or are there more steps from here?

@bdero the release engineer will close this PR when it is released.


Address performance issues due to WARP device being loaded/unloaded many times

@DHowett-MSFT, this is the perf issue you were telling me about today.

This is unreproduceable since the merge of CGD2D into develop. We believe that creating one factory per render target in the CGGraphicBufferImage code, instead of one factory per application launch, was causing the device reference to be destroyed every time a renderer went out of scope.


Adapter configuration

We need to have a way to configure the underlying adapter. This is needed for

Setting connection url, user, password, host e.g
Timeout options
Pool options

WDYT @waterlink

Yeah of course! I expect this list to be waaay longer in the future :)
I would love to have similar configuration to the ruby's AR - through config/database.yml or something.
Though it would be nice to leave an option for 12factor. I.e.: there should be still a possibility to configure everything through environment variables, that are in certain format.
For example, given this config/database.yml file:
override_prefix: MYAPP

adapters:
  postgres:
    username: john
    password: welcome
    hostname: <IP_ADDRESS>
    port: 5432
    timeout: 5000     # ms
    pool: 10

You can for example override hostname with: export MYAPP_ADAPTERS_POSTGRES_HOSTNAME=db.production01.internal.myapp.com and so on.

Implementation for this should probably sit within active_record.cr codebase. And it should expose some simple integration API for querying, along the lines:
ActiveRecord::Config.adapters.postgres.encoding? || "utf8"

maybe config file name can be more specific: config/active_record.yml

Maybe it would be nice to junk in different environments:
override_prefix: MYAPP

environments:
  development:
    adapters:
      postgres:
        # ...

Or maybe just have different names for files, like Elixir does:

config/active_record.yml - default config
config/development/active_record.yml - development config
config/test/active_record.yml - test config
config/production/active_record.yml - production config

I prefer the AR style


Fix deprecation warnings

This PR fixes deprecation warnings emitted from hugo v0.124:
INFO  deprecated: .Site.IsMultiLingual was deprecated in Hugo v0.124.0 and will be removed in a future release. Use hugo.IsMultilingual instead.
INFO  deprecated: .Site.Author was deprecated in Hugo v0.124.0 and will be removed in a future release. Use taxonomies instead.

It also fixes several typos and brings hugo modules up to date.

Thank you @deining for the PR. I will test and approve soon.


test(sequence): fix test path subdirectories

test:memory changes to use ESM not required in this PR.

should this get removed for CJS too?


Update GitHub issue templates to use new labels.

Describe the problem/challenge you have
Current issue templates use old label schema.
Describe the solution you'd like
Update the issue templates to use the new label schema.
Anything else you would like to add?
We will keep old labels on existing issues but will only use the new schema for new issues. Old Issues will also have the new labels added. For example, issues previously labeled bug will now also be labeled kind/bug.

@McCodeman It seems that you have taken care of updating labels for existing issues. Do you want to close this?


Twitter card and Open Graph default image not working when not set

Describe the bug
Default logo should be used in the new twitter card and open graph implementation, if I understand correctly. But it does not work.
Result when no "cover or feature" was set:

Argh. Sorry. My fault. I thought I did set the logo because I can see it in the author card. But I didn't. My logo variable in config.toml is set to "false".
:)
No bug. Closing.


Add more fetch options to cross-fetch request

Hi team. I need to add additional option to fetch request. In my case, I want to be able to add prop credentrials: 'include'.
Feature Suggestion
May be we can add some additional parameters to fetch request
Possible Implementation
// plugins/scaffolder-backend-module-http-request/src/actions/run/helpers.ts
export interface HttpOptions {
  url: string;
  method: Methods;
  headers: Headers;
  credentials: 'include' | ... ;
  body?: Body;
}

// plugins/scaffolder-backend-module-http-request/src/actions/run/backstageRequest.ts
const httpOptions: HttpOptions = {
  method: input.method,
  url: queryParams !== '' ? `${url}?${queryParams}` : url,
  headers: input.headers ? (input.headers as Headers) : {},
  body: inputBody,
  credentials: input.credentials
};

Closing due to inactivity in #643


Adds support for manual key entry (of RFC 3548 base32 key strings)

Literally closes #7
Replaces the FAB with Clans/FloatingActionButton, providing a contextual menu to support adding a account by different means (either via QR or Private key) without sacrificing the sleek design.
It currently does some kind of form validation will adding a new account, by verifying wherever the user provided a private key or not, will validating the key itself isn't really possible.
Includes some basic code to select between TOTP/HOTP keys, its all commented until #10 gets implemented.

Hi @defkev!
Thanks for you pull request :).
I had something simular in mind for manually entering a screct . I will have a look at your commit next time when I touch the code!

Hello.
Any news from this feature ?


Support Writers occuring more than once

I knew using only their Twitter ID wouldn't work. ☹
Either add a surrogate key and update the database accordingly or make the uid and date a combination pk and update the code. IDK which will be easier yet, learning towards the former option though. Both of these violate 1NF. A proper solution (using a new table, creating an associative entity) was chosen instead
Prompt: @SalnPage is the prompter for January 2019 and July 2018, and also sometime in 2020. There's also someone else (forget who) returning in 2020.

Not quite there yet. Viewing a duplicated writer doesn't respect the month-year period chosen. Whoops.

Apparently it is possible for writers to appear more than once a year. The db updates in #42 and #43 can handle that, but now the routing and queries needs to support that too. Fun stuff here. ☹


Investigate operations required for migration of Vue 2.7 to Vue 3

Description
For the next step of the Vue migration to the latest version, it's required to list issues and potential solution for tackle them down.
Already identified requirements to be listed in a clear way:

Verify plugins to be removed, find replacements and size of code to be changed or require refactory
Syntax update (through script?)
<router-link> deprecation
Define requirements for a script to update the whole content based on the known breaking changes
Nuxt residual removal, based on comment https://github.com/rancher/dashboard/pull/7211#pullrequestreview-1330083383

Current crossed issues:

A lot of Vue config errors, some probably due mismatching Wepback versions as it seems not possible to just follow instructions

whitespaces https://github.com/vuejs/core/pull/1600#issuecomment-1030744888
watchOptions should be a non-empty string
options has an unknown property 'before'
devServer.public does not exists https://github.com/vuejs/vue-cli/issues/6841
vue DeprecationWarning: 'https' option is deprecated https://webpack.js.org/configuration/dev-server/#devserverhttp2
Cannot add property htmlWebpackPluginAlterChunks, object is not extensible Webpack 4/5 conflicts

Given the spikes in this issue, I would recommend to create a separated branch and point PRs to that one.


World Hopper: Default world keybind

Allow us to set a keybind to world hop to our default world so if we're using the default Ctrl+Shift+left/right a bunch we can just do something like Ctrl+Shift+Home and be sent to our default world if one is set.

Do other clients do this? If not we will not too.

Why exactly? This sounds like a rather useful feature that doesn't seem overpowered at all?

I agree with oplosthee, this is a harmless feature.

I don't see how this is any different from what we do with the world hopper already, and since its still limited to the world hopper it would be fine IMO.

@deathbeam Is that really a requirement for adding things to RuneLite? That seems pretty shortsighted and limiting.

For feature that is faking user input it should be.