importFromJson on android fails to build SQL Statement with ' in values.

Describe the bug
Values may contain ' that are not escaped. This leads to syntax error, or sql injection breach.
To Reproduce
Using importFromJson, use a value with a '. That breaks the syntax.
Expected behavior
Escape ' chars in values to safely built the whole SQL statement.
https://github.com/capacitor-community/sqlite/blob/89ffbee450eea5152a30863c4dc8f3158446fab2/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/ImportExportJson/ImportFromJson.java#L444
Smartphone

Device: Samsung Galaxy J5
OS: android 9

@mmouterde you must use double quote '' to escape ' chars ie 'O''Connors'

@mmouterde I come back on this after futher tests on other platforms value like "O'Connor" works for web, iOS and Electron  so it will be fixed for Android in next release.

Issue fixed in 5.5.0 but there is a regression for value containing " chars

@mmouterde as i already you have to give me a repro of your app wirh database scheme and the kind of datathat you are using so i can figure-toi right answer to your ovrall whiches. You cannot have both ' and " in the data or i must see how to do this and rewrite the code. Prior to do this, i want to see your app. You are the only one asking for this. This plugin is used by others for more thzn 4 years and nobody ask for this..

Unfortunately my app is not open-source, I can't share directly my repo
Let me know how to provide a PR with failing unit test
However, you don't need a specific piece of code, even not a specific data... just having ' or " in any TEXT column value make the ImportFromJSON failed.

I'm also wondering if this plugin is made for my use case :  With this community, this long life, I can understand why this kind of bugs is not detected of even tested. Here is some potential specificity that could differ from most project (?!) :

I build an offline first app, that need to sync data with a server
this app is collaborative and data could be changed by several users (server is the truth), I handle conflict on my side with business rules.
I'm using an API that return plain JSON to be provided to importFromJSON

My understanding seems to not fit with the user prerequisites.
In my understanding, capacitor sqlite plugin provides two layers of service : SQLite wrapper (that allow to send directly SQL to the DB) and a Data Layer (that provides import/Export JSON, sync Table... that generate SQL code).
As data layer user, I would expect that any SQL considerations is handled by the layer : whatever my data contains the data ends in the database. That implies : escaping reserved column name or reserved chars.
It's a pity, SQLite clients provide tools that avoid escaping characters and even wrap text as string, an not wrap integet. It's using preparedStatement (with questionmarks) and getting a values array. In the same way you did in Jeep-SQLite https://github.com/jepiqueau/jeep-sqlite/blob/17ccc58de5c2520b30fcc0816c6b56e8a1c39b08/src/utils/utils-importJson.ts#L438
I tried a PR to suggest code rewritings to benefit of this included feature but it require too many changes and I'm not confident with side effects.
From now, I could change my mind and consider to prepare my JSON values to be directly concatenated in a SQLStatement (no questionMark used).

@mmouterde i do not have a problem to rewrite the code if i understand your needs which is not the case right now.
I understand now that the  following

The table field name if it use a SQLite keyword should be enclosed by double-quotes character ie for index the must be "index".
What is not clear is
when you use preparedStatement with ? meanong that you have to provide an array of values , the value if it is a string must be enclosed with single-quote or double-quotes. So if you do it with single-quote you may have double-quotes characters inside the value and if you do it with double-quotes you can have single-quote characters inside the value. So i do not know how to do if you want both.
So can you clarify

@mmouterde can you create a fake table schema and a fake set of data in a fake Json Object having all your needs and share it to me so i can test it

@mmouterde the only way to have both single-quote and double-quotes is

"O'Connor has ""nearly"" something"
'O''Connor has "nearly" something'
Both syntax are working
Is it what you want ?
I

Escape reserved key words in query as identifier
According to SQLite documentation, a word in double-quote is always considered as an identifier (even if match with a reserved word). So, as a lib,  to safely handle column names, table names, we always have to wrap such identifier in double quote.
Each time we introspect schema to get column names, we have to make sure to wrap this identifier in double quote to be safe.
Escape single quote in data
Literal value in SQL should be wrapped in single quote. In case the literal value itself includes a single quote, we have to pay attention when we build the statement manually (concatenating strings) to avoid value interference on the request. SQL injection and security issues use this breach. The literal value should be wrapped in single quote AND all single quote in the value should be escaped too. Escaping single quote in value could be made by replacing the single quote by two single quotes (not double quote).
According to https://www.sqlite.org/lang_expr.html:
A string constant is formed by enclosing the string in single quotes ('). A single quote within the string can be encoded by putting two single quotes in a row - as in Pascal. C-style escapes using the backslash character are not supported because they are not standard SQL.

Insert literal
When we build statement manually, we have to know the type of each literal. Integer could be concanenated directly while String should be wrapped in single quote and single quote in the string escaped.
Relative to the issue #495, DELETE table WHERE ID IN (1,2,3) works ids are integer so "IN ("+id1+","+id2+","id3+")" works. But in my case, id are UUID as TEXT column. so id has to be wrapped as string literals.

From these theorical points, I would say (opinion) that building dynamic SQL statement using StringBuilder is a wrong pattern.
I suggest to use the QueryBuilder provided by Android SQLite API, provide a SQL Statement built with question marks as first argument, and value array as second argument.
This way all stuff about escaping indentifiers or single quote seen my last comment would be handled automatically.

@mmouterde can you answer to what i ask

Sure !

I think the only point I do not replied is the fake example right ?

Here is a all-tricks-in-one JSON.
I have not tried schema update from JSON yet, I usedy Database Incremental Upgrade where my index column is wrapped in double quote by myself as I write plain SQL on my own.
{
  "database": "db-from-json",
  "version": 1,
  "encrypted": false,
  "mode": "partial",
  "tables": [
    {
      "name": "users",
      "schema": [
        { "column": "id", "value": "INTEGER PRIMARY KEY NOT NULL" },
        { "column": "index", "value": "INTEGER" }, /* index is a reserved word. should be escaped by double quote in SQL statement*/
        { "column": "email", "value": "TEXT UNIQUE NOT NULL" },
        { "column": "name", "value": "TEXT" },
        { "column": "age", "value": "INTEGER" },
        { "column":"sql_deleted", "value": "BOOLEAN DEFAULT 0 CHECK (sql_deleted IN (0, 1))"},
        { "column":"last_modified", "value": "INTEGER DEFAULT (strftime('%s', 'now'))"}
      ],
      "values": [
        [
          "066c8b42-fa09-45db-8b18-5624323342cc", /* uuid as string, means not usual integer auto inscrement, causes #495 */
          0,
          "Devil User with \"trick\" in data", /* double quote in string, make 5.5.0 fix failed*/
          "O'Connor", /* single quote in string, make concatenated sql statement fail, causes #492 */
          22,
          0,
<PHONE_NUMBER>
        ]
      ]
    }
  ]
}

@mmouterde thaks it is all what i need from the begining. Next time please give a fake example asap when describing an issue it will avoid me to waste my time. It is not as easy as typescript or a Json object needs to have the \ symbol before the single-quote and double-quotes where SQL statement needs to double the single-quote or double-quote. For index even if you create it with "index" when you create the table when you want to get the column names it is retrieve as index and not "index" which is making the prepareSQL to failed meaning that we have to check in the array of column name if the name is a reserved keyword. This will slow down the importFromJson process  a lot so i still think that is better to avoid to use réservez keywords in table identifier name.this could be done by having an entry parameter set to false by default and if set to true by the user the check is done. Quite a work

Ok, sorry for the wasted time.
Note that when a maintainer formalize automated tests (at least one) reporters could know how to give you a test case (with data) that fit their use cases or their needs. As you can see with my reported issue on jeet-sqlite, I usually start by formalizing a PR that illustrates my use case.

About the performance point, as native Java client should already handle escaping ' " and reserved word, we would rather let him work, that means no extra cost and a better robustness.
I agree, it's an impacting rework

@mmouterde  As already said  the @capacitor-community/sqlite will not support the reserved words in the table's field name.
In 5.5.1-1, the following will work:
{
  database : "db-from-json492",
  version : 1,
  encrypted : false,
  mode : "full",
  tables :[
      {
          name: "company",
          schema: [
              {column:'id', value: 'CHARACTER(36) PRIMARY NOT NULL'},
              {column:'email', value:'TEXT UNIQUE NOT NULL'},
              {column:'name', value:'VARCHAR(25) NOT NULL'},
              {column:'age', value:'INT NOT NULL'},
              {column:'sql_deleted', value:'BOOLEAN DEFAULT 0 CHECK (sql_deleted IN (0, 1))'},
              {column:'last_modified', value:'INTEGER DEFAULT (strftime(\'%s\', \'now\'))'},
          ],
          values: [
              ["fe3c700c-9b21-11ee-b9d1-0242ac120002","c.oconnors@example.com","O'Connors",55,0,1608216034],
              ["fe3c72d2-9b21-11ee-b9d1-0242ac120002","j.lawson@example.com",`L'awson has "nearly" something`,32,0,1608216034],
              ["fe3c7408-9b21-11ee-b9d1-0242ac120002",'d.bush@example.com','Bush',44,0,1608216034],
        ]
      },
    ]
}

as you will notice

to store UUID in a field the field type is CHAR(36) or TEXT (this was already working in previous releases)
In a Json Object if you have a ' char  you can define the value like this "O'Connor"
In a Json Object if you have multiple ' char and multiple " char the value must be defined as L'awson has "nearly" something

in an execute command:
const row: Array<Array<any>> = [[`W''hi"teley`,'Whiteley.com',30.2],[`J''o"ne"s`,"Jones.com",44]];
const twoUsers: string = `
INSERT INTO users (name,email,age) VALUES ('${row[0][0]}','${row[0][1]}',${row[0][2]});
INSERT INTO users (name,email,age) VALUES ('${row[1][0]}','${row[1][1]}',${row[1][2]});
`;
 const ret = await db.execute(twoUsers, true, true);

in a run command:
      const sql = `INSERT INTO users (name,email,age) VALUES (?,?,?);`;
      const val = [`J'ee"pq`,'jeepq@example.com',45];
      const ret = await db.run(sql, val, false, 'no', true);

Voilà

thanks for your reactivity !
Ok for excluding reserved word. your choice.
I confirm that single quote issue is closed


Firmware Update Timeout (30seconds) too low for some deices on a busy network

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?
Attempting to do a firmware update on an Inovelli LZW60
What do you observe?
It starts sending packets (initiated from zwavejs2mqtt) runs for a bit fine, and then the firmware update hits, cleans up and a few seconds later gets a firmware request but zwave-js doesn't think that there's an ongoing firmware update and force aborts it.
What did you expect to happen?
Ideally it not time out
Steps to reproduce the behavior:

Initiate update from zwavejs2mqtt
Wait
Firmware update times out

log entries:
2022-03-28T04:01:34.309Z CNTRLR   [Node 188] Firmware update timed out
2022-03-28T04:01:40.367Z CNTRLR « [Node 188] Received Firmware Update Get, but no firmware update is in progress
. Forcing the node to abort...
I'd propose changing the timeout (30000ms or 30seconds) to at least 1minute, but more likely 5minutes, as 30 seconds seems to be just tight enough that the update can't complete, and I'm sure the LZW60 isn't the only device that may run into this.  In my own testing changing it to 20minutes (yes I recognize that's a smidge ridiculous) seems to resolve the issue
Device information
Manufacturer: Inovelli
Model name: LZW60
Node ID in your network: 188
How are you using node-zwave-js?

[ ] zwavejs2mqtt Docker image (latest)
[ ] zwavejs2mqtt Docker image (dev)
[ ] zwavejs2mqtt Docker manually built (please specify branches)
[ ] ioBroker.zwave2 adapter (please specify version)
[ ] 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)
[X] Other (please describe)

Which branches or versions?
version:
node-zwave-js branch: whatever zwavejs2mqtt pulls in, the timeout is identical in master when I looked
zwavejs2mqtt branch: master
Did you change anything?
yes (please describe)
If yes, what did you change?
I made a change to node_modules/zwave-js/build/lib/node/Node.js to change the timeout to timeoutFirmwareUpdate from 30000 to  1.2e6 ms to test this, otherwise this is basically unchanged
Did this work before?
Don't know, this is a new device
If yes, where did it work?
No response
Attach Driver Logfile
log_output.txt

I'll note the log file is just the relevant portion of the firmware update for node 188, the rest of the traffic is somewhat irrelevant to this discussion

We can definitely investigate increasing the timeout to help with this.
This does sound a bit like intermittent connectivity issues of the switch though. The log doesn't contain any relevant details, since it's not on loglevel debug, but the delay between fragments 2 and 3 is already cutting it very close:
2022-03-28T03:56:25.875Z CNTRLR » [Node 188] Sending firmware fragment 2 / 4981
2022-03-28T03:56:49.945Z CNTRLR » [Node 188] Sending firmware fragment 3 / 4981

It could also be that the controller is waiting for something else here, not sure.
Do note that a firmware update is mostly controlled by the device that gets updated, which individually requests each firmware fragment. Z-Wave JS just considers the process to be stuck or aborted when it doesn't hear from the device for a while. The fact that it (probably) sometimes takes >20s to send a message to the controller is a bit bothersome IMO.
Have you used the mesh health check tools in zwavejs2mqtt yet? They can be found on the network map.acting up.

Quick check of the nodes (now that they are re-flashed and back in the network) looks like they are healthy and fine. (6,7,8,8,7 scores) so I don't think it was specifically an issue with the general health of the network (minor update)

Scores of 6 or 7 might already cut it a bit close - low latency but possibly not a strong link.
What are the min. powerlevel and SNR margins?

I literally quoted a part of the log where it took 20 seconds to reach the device 🤷🏻♂

Sorry, as I'm re-reading what I wrote I might not express this clearly: I don't think it ever takes 20 seconds to send every fragment, not a few odd ones (and the rest takes hundreds of milliseconds). The rest of my response doesn't deny that sometimes it takes 30+, but rather tries to explain why it happens.

The change was finally pushed to zwave-js-ui - it works! Thank you very much, I was finally able to update my entire network without much fuss.


Add specialized traversals for IO and ST

The Traversable instance for Array is unavoidably wasteful for basically the same reason that GHC can never apply list fusion to the result of traverse @[]. I think it would be nice to offer specializations of the HashMap traverse to IO and ST (strict ST, at least). The ST traversal for Array looks like this:
traverseST :: (a -> ST s b) -> Array a -> ST s (Array b)
traverseST f = \ xs ->
  let
    lxs = length xs

    go mary i
      | i == lxs = unsafeFreeze mary
      | otherwise = do
          x <- indexM xs i
          x' <- f x
          write mary i x'
          go mary (i + 1)
  in do
       mary <- new_ lxs
       go mary 0
{-# INLINE traverseST #-}

The HashMap version would be the same as traverse but would use A.traverseST or A.traverseIO.
It would probably also make sense to add rewrite rules to use these functions where applicable.

Another option might be to use a PrimBase constraint.

If a SPECIALIZE implementation makes things faster I'm happy to take a pull request!

SPECIALIZE  won't help any. RULES should do the trick. But I think it would
be nice to also export a function users can use directly.
On Jun 9, 2017 6:41 PM, "Johan Tibell"<EMAIL_ADDRESS>wrote:

If a SPECIALIZE implementation makes things faster I'm happy to take a
pull request!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tibbe/unordered-containers/issues/151#issuecomment-307516171,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABzi_eqSK6ofjOdmJdx5PDLTWYtsaAkwks5sCcn9gaJpZM4N13F0
.

I think it should be possible to add the rewrite rule for Data.HashMap.Array.traverse and then add the SPECIALIZE pragma for traverseWithKey so that the logic in that function there doesn't end up duplicated. You might have to fiddle with the phase that traverse would inline in to make this work.

traverseST and traverseIO exist now (but are untested: https://github.com/haskell-unordered-containers/unordered-containers/issues/272)
https://github.com/haskell-unordered-containers/unordered-containers/blob/964edca40d415c7f0b70c99fda2a4d9dc0949b9f/Data/HashMap/Array.hs#L575-L619
Please reopen if there's more to do here.


"More info..." link points to Codeplex site

When I click on the "More info..." link in the ReSharper extensions window, a new browser window opens and shows the old Codeplex site. The link should now point to the GitHub site, because the Codeplex site seems to be inactive.

Thanks, will be fixed in the next release...


ENH: option to serve random dataset when set-super not specified

Ideally a configurable option.

This idea never really got any traction. Closing.


Swith the attribute name from 'url' to 'event_url'.

Another instance of reserved words in Craft :/
Thanks!

Ha!

Fixed by https://github.com/downtowngr/mantle/commit/580658bddbf0c5b72b79a459430c94dd3e6aab82


Add STAC Backend ?

Questions:

should we assume a STAC API + Query as input?

with STACBackend("https://jeffstacapi.hero", query=query, minzoom=4, maxzoom=12, quadkey=4) as mosaic:

On init the backend will POST to the api and construct the mosaic from the response
Note:

This backend will be Read-Only (no write method)
The POST request will be cached
The List of asset will be composed of Item URLs

cc @geospatial-jeff

should we assume a STAC API + Query as input?

I think this is probably the best way of doing it.  For larger requests, the backend would have to provide some way of dealing with pagination.  Maybe by paginating through the API until a certain number of items are read (max_items=500) or until the extent of the MosaicJSON is completely covered by at least one item.
It would be nice to support any STAC endpoint which returns a valid ItemCollection (both /search and /collections/{collectionId}/items).  The latter is less important but would let someone make a mosaicJSON for an entire collection which I can see use cases for.

The List of asset will be composed of Item URLs

My concern here is differentiating this from a MosaicJSON which references images directly.
Maybe a mimetype key can be added to the MosaicJSON spec indicating the file type of the referenced files?   In the case of STAC, the mimetype would be set to application/geo+json to indicate that referenced files are an index.

thanks @geospatial-jeff
Here is a first sketch I did friday.
"""cogeo-mosaic HTTP backend."""

import functools
import json
from typing import Any, Callable, Dict, List, Optional, Union

import mercantile
import requests

from cogeo_mosaic.backends.base import BaseBackend
from cogeo_mosaic.backends.utils import get_assets_from_json
from cogeo_mosaic.mosaic import MosaicJSON

def default_stac_accessor(feature: Dict):
    """Return specific feature identifier."""
    link = list(filter(lambda link: link["ref"] == "self", feature["links"]))[0]
    return link["href"]

class STACBackend(BaseBackend):
    """STAC Backend Adapter"""

    def __init__(
        self,
        url: str,
        minzoom: int,
        maxzoom: int,
        query: Dict = {},
        **kwargs: Any
    ):
        """Initialize HttpBackend."""
        self.path = url

        self.mosaic_def = self._read(json.dumps(query), minzoom, maxzoom, **kwargs)

    def tile(self, x: int, y: int, z: int) -> List[str]:
        """Retrieve assets for tile."""
        return get_assets_from_json(self.mosaic_def.tiles, self.quadkey_zoom, x, y, z)

    def point(self, lng: float, lat: float) -> List[str]:
        """Retrieve assets for point."""
        tile = mercantile.tile(lng, lat, self.quadkey_zoom)
        return get_assets_from_json(
            self.mosaic_def.tiles, self.quadkey_zoom, tile.x, tile.y, tile.z
        )

    def write(self):
        """Write mosaicjson document."""
        raise NotImplementedError

    def update(self, *args, **kwargs: Any):
        """Update the mosaicjson document."""
        raise NotImplementedError

    @functools.lru_cache(maxsize=512)
    def _read(  # type: ignore
        self,
        query: str,
        minzoom: int,
        maxzoom: int,
        accessor: Callable = default_stac_accessor,
        **kwargs: Any
    ) -> MosaicJSON:
        """Fetch STAC API and construct the mosaicjson."""
        headers = {
            "Content-Type": "application/json",
            "Accept-Encoding": "gzip",
            "Accept": "application/geo+json",
        }
        # TODO handle pagination
        data = requests.post(self.path, headers=headers, data=query).json()

        return MosaicJSON.from_features(
            data["features"],
            minzoom,
            maxzoom,
            accessor=accessor,
            **kwargs
        )

It would be nice to support any STAC endpoint which returns a valid ItemCollection (both /search and /collections/{collectionId}/items).

I'm not sure to know what is a valid itemCollection

Maybe by paginating through the API until a certain number of items are read (max_items=500) or until the extent of the MosaicJSON is completely covered by at least one item.

👌 max_items.

until the extent of the MosaicJSON is completely covered by at least one item.

It might be a bit complex to handle but why not.

My concern here is differentiating this from a MosaicJSON which references images directly.
Maybe a mimetype key can be added to the MosaicJSON spec indicating the file type of the referenced files? In the case of STAC, the mimetype would be set to application/geo+json to indicate that referenced files are an index and requires additional logic to parse out the filename from the STAC item.

I like the idea, it would make also sense for mosaic based user input like landsat scene id.


Severity: Error Description: Motion Module failure

librealsense
2.54.2 RELEASE

OS
Linux

Name
Intel RealSense D435I

Serial Number
243322070802

Firmware Version
<IP_ADDRESS>

Advanced Mode
YES

Camera Locked
YES

Usb Type Descriptor
3.2

Product Line
D400

Asic Serial Number
322743060569

Firmware Update Id
322743060569

Please provide a description of the problem

09/10 14:21:48,342 ERROR [545578274560] (synthetic-stream.cpp:51) Exception was thrown during callback: Out of frame resources!
09/10 14:21:48,353 INFO [547978225792] (uvc-streamer.cpp:28) endpoint 130 read buffer size: 815104
09/10 14:21:48,357 WARNING [546584907520] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
09/10 14:21:48,368 WARNING [546584907520] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
09/10 14:21:48,376 ERROR [545578274560] (synthetic-stream.cpp:51) Exception was thrown during callback: Out of frame resources!
09/10 14:21:48,677 WARNING [546584907520] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
09/10 14:21:50,059 INFO [547978225792] (frame-archive.h:193) The user was holding on to 7 frames after stream 0x0x55a5172ac0 stopped
09/10 14:21:50,059 INFO [547978225792] (frame-archive.h:193) The user was holding on to 7 frames after stream 0x0x55a5172ac0 stopped
09/10 14:21:50,059 INFO [547978225792] (frame-archive.h:193) The user was holding on to 7 frames after stream 0x0x55a5172ac0 stopped
09/10 14:21:50,059 INFO [547978225792] (frame-archive.h:193) The user was holding on to 7 frames after stream 0x0x55a5172ac0 stopped
09/10 14:21:55,861 INFO [547978225792] (ds-calib-parsers.cpp:236) Depth Module V2 IMU Accelno valid intrinsic available, use default values.
09/10 14:21:55,861 INFO [547978225792] (ds-calib-parsers.cpp:248) Depth Module V2 IMU Gyrointrinsic not valid, use default values.
09/10 14:21:55,862 INFO [547978225792] (sensor.cpp:1594) Request: MOTION_XYZ32F Accel,
Resolved to: MOTION_XYZ32F Accel,
09/10 14:21:55,863 INFO [547978225792] (ds-calib-parsers.cpp:236) Depth Module V2 IMU Accelno valid intrinsic available, use default values.
09/10 14:21:55,863 INFO [547978225792] (ds-calib-parsers.cpp:248) Depth Module V2 IMU Gyrointrinsic not valid, use default values.
09/10 14:21:55,864 INFO [547978225792] (sensor.cpp:1594) Request: MOTION_XYZ32F Gyro,
Resolved to: MOTION_XYZ32F Gyro,

09/10 14:21:48,342 ERROR [545578274560] (synthetic-stream.cpp:51) Exception was thrown during callback: Out of frame resources!
09/10 14:21:48,353 INFO [547978225792] (uvc-streamer.cpp:28) endpoint 130 read buffer size: 815104
09/10 14:21:48,357 WARNING [546584907520] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
09/10 14:21:48,368 WARNING [546584907520] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
09/10 14:21:48,376 ERROR [545578274560] (synthetic-stream.cpp:51) Exception was thrown during callback: Out of frame resources!
09/10 14:21:48,677 WARNING [546584907520] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Resource temporarily unavailable, number: 11
09/10 14:21:50,059 INFO [547978225792] (frame-archive.h:193) The user was holding on to 7 frames after stream 0x0x55a5172ac0 stopped
09/10 14:21:50,059 INFO [547978225792] (frame-archive.h:193) The user was holding on to 7 frames after stream 0x0x55a5172ac0 stopped
09/10 14:21:50,059 INFO [547978225792] (frame-archive.h:193) The user was holding on to 7 frames after stream 0x0x55a5172ac0 stopped
09/10 14:21:50,059 INFO [547978225792] (frame-archive.h:193) The user was holding on to 7 frames after stream 0x0x55a5172ac0 stopped
09/10 14:21:55,861 INFO [547978225792] (ds-calib-parsers.cpp:236) Depth Module V2 IMU Accelno valid intrinsic available, use default values.
09/10 14:21:55,861 INFO [547978225792] (ds-calib-parsers.cpp:248) Depth Module V2 IMU Gyrointrinsic not valid, use default values.
09/10 14:21:55,862 INFO [547978225792] (sensor.cpp:1594) Request: MOTION_XYZ32F Accel,
Resolved to: MOTION_XYZ32F Accel,
09/10 14:21:55,863 INFO [547978225792] (ds-calib-parsers.cpp:236) Depth Module V2 IMU Accelno valid intrinsic available, use default values.
09/10 14:21:55,863 INFO [547978225792] (ds-calib-parsers.cpp:248) Depth Module V2 IMU Gyrointrinsic not valid, use default values.
09/10 14:21:55,864 INFO [547978225792] (sensor.cpp:1594) Request: MOTION_XYZ32F Gyro,
Resolved to: MOTION_XYZ32F Gyro,

Hi @Rocky-YU  Does the motion module failure still occur if you add a camera reset instruction to your script, please?  C++ and Python code for doing so can be found at https://github.com/IntelRealSense/librealsense/issues/3329#issuecomment-475293475


Simple search backend in sqlite

Hi,
I did a simple implementation of a search feature using sqlite.
It's quite straightforward, the sqlite database is created on the the fly and the indexing process (which start with the server) will add new log entries every 10s (to prevent to much stress).
So yes, it's linked to log feature.
There is also a handy command line interface to search.
It seems working properly but did not had the opportunity to test it expect for my personal use case.
Happy to have any feedbacks.

Hi, @florentsolt,
Thanks for this. We'll take a look at it soon. I have just had a quick look over the code, and it looks like you are calling the logs themselves to get the data to store into your database. Would it be better to have an event that the server sends out when it receives a message, and the database can store that without having to read the log files. (also in the future we could also expand that out to having the file logger using the same events).
Just a thought. Might be more performant.

I agree with @YaManicKill, this code can be simplified quite a bit by removing the "indexing" part, and only implementing sqlite storage going forward.
We can have a one-time conversion that would convert logs into sqlite, but this does not need to happen every server start.

Thanks all for your feedbacks.
for @xPaw:

I'll improve the observer code
I'll use the msg template
Fix the typo (remove that btw, it was an idea I had before, useless now) and add some comments
Any idea how I can avoid declaring a second div#chat to inherit css rules?
About privacy, yes the user asking for search results is locked when querying the database (see server.js socket.on("search-query"))

for @YaManicKill & @xPaw about indexing:

Yes it seems a better idea, so I'll do a one-time indexing process (based on logs) and index new messages on the fly.

I'll come back soon and update that PR.

@florentsolt Version of sqlite you are using does not work on node 4/5, and as we still support these version it has to be changed. That's why CI builds are failing too.

@xPaw this is annoying 👎 I'll have to use sqlite3 directly and forget this package 😢

@florentsolt You should be able to use sqlite/legacy from the same package.

@xPaw Yep I've see that, I'll git it a try. Thanks

@xPaw & @YaManicKill I think I've managed all your feedbacks. I didn't yet squashed my commits for you to see them all (tell me if you prefer all squashed). In the end I prefer to go for sqlite3 alone, I prefer reduce the number of modules.
Anything more ?

I didn't yet squashed my commits for you to see them all (tell me if you prefer all squashed). I

We will want them squashed, but yeah, no need to do it until we are ready to merge.
I think there's a few things that I'll point out but it's mainly just code style stuff really. Pulling out the sql commands into constants would be good. But generally it looks pretty good, thanks for this. I'll hopefully have some time to do a more in-depth review of this later tonight, or this weekend sometime.
Just to give you a heads up, we don't plan to get this merged for 2.5.0, just because that is nearly finished and this is quite a big PR so late in the 2.5.0 cycle, so we'll probably have to wait until 2.5.0 is finished before we merge.

I like this quite a bit, we will also eventually be able to also reload logs from sqlite when restarting the server.

@florentsolt These index functions are only needed for backwards compatibility, right? If so, I would prefer to keep the main search/database code free from that.

For @xPaw:

index() function will be used every time a new msg is issued.
indexAll() (which call indexFile()) is used to import all past log files. IMHO it's quite nice to be able to import past conversations. Also, if anything happen to the sqlite database, it's possible to regenerate it.

But now I get your point. I read too fast one of your past comment. You plan to move from flat files to sqlite. Wow! :) In that case, I will for ex. do a cll "import" and move all the code in here.
Are we in sync?

You plan to move from flat files to sqlite. Wow! :) In that case, I will for ex. do a cll "import" and move all the code in here.

We don't plan it, but my idea is that having sqlite support means messages are automatically logged into it, and the only time we would need to read text logs would to import old logs into the database. Which is why I think the import related code would be in command file.

I'd rather logs be binaries or text files.
There is going to be a huge performance hit when the program is making all these insert statements.

@jakehm The insert is not that much worse comparing to just writing a text file.

Plus log maintenance will be harder.  Some of us have this running on rpi.

@jakehm What are you arguing for? Text logs are not going anywhere, not in this PR anyway.

OK so several inserts a second into a sqlite db is not going to blow up my raspberry pi?

@jakehm The point is that sqlite will never be required to run lounge. It's an option that you can enable.

@florentsolt Are you able to bring this up to date? Do keep in mind that we've removed event-stream dependency.

No I don't mind, we just a need another efficient way to read all the log files, but I'm sure there is other ways.

Salut @florentsolt!
Sorry we fell behind on your PR... Do you think you could rebase on master and fix conflicts? 🙏

@astorije sorry I'm lacking of free time these days. I've waited for quite a while, and now I'm super busy. Plus, the UI has changed a lot recently, it's quite difficult to know where to merge my changes.

@florentsolt I started rewriting sqlite logging here: https://github.com/thelounge/lounge/compare/sqlite
I want to just get the message logging and reloading part right. As you might see I generate random uuid per user network to avoid collisions and easier querying over all (doesn't matter if hostname changes, or there are multiple networks connecting to same hostname).

@xPaw it looks quite nice!

@florentsolt Would you have time to rebase this on top of @xPaw's PR? It'll hopefully be merged in soon and then we can get this one in. If you won't have time to do that, feel free to close this PR and we'll stop bugging you about it.

Hi, @McInkay no sorry, I'm really to far behind and have no free time. I saw you are going forward with a sqlite backend, I'm glad I did inspire this move. Looking forward to the next release :)

Well thanks for the contribution anyway, sorry we couldn't get your code in. If you ever feel like you want to contribute again you are welcome to come back. No hard feelings, we all run out of free time sometimes.


Add fixer for MultilineArrayCommaSniff

Add a comma after the last non-comment and non-whitespace token in an array.

Forgot I did this before in #20. It was never merged because it didn't work. This implementation was tested to fix a array's of variable content and format.

Not sure why the build failed. Is the CI build working right now?

@Craige could you rebase?

Thanks @Craige!


Swizzling theme-classic broken on latest release

🐛 Bug Report
Unable to swizzle theme-classic components on v2.0.0-alpha.53
Have you read the Contributing Guidelines on issues?
Yes.
To Reproduce

Start fresh and install v2.0.0-alpha.53
(npx @docusaurus/init@next init my-website classic)
Run example swizzle command
(yarn run swizzle @docusaurus/theme-classic Footer)

Expected behavior
After running, swizzled component would appear in project folder.
Actual Behavior
Command errors out.

Your Environment

Docusaurus version used: v2.0.0-alpha53
Environment name and version: yarn v1.22.4, Node.js v13.10.0
Operating system and version (desktop or mobile): macOS 10.15.1 (19B88)

Reproducible Demo

@davekover this issue should be fixed in v2.0.0-alpha.54. Please use that version (or install new fresh website). Sorry for that!

Thanks for the quick fix!


Textual inversion token

Thank you for your code. How can I visualize prompt with textual inversion tokens?

@Junoh-Kang
Sorry for the late reply. I looked into the examples/textual_inversion in Diffusers and understood that a placeholder token like  is used in the prompt, e.g., prompt = "A  backpack". The tokenizer likely splits  into <, cat, -, toy, and >, with an attention map stored for each part. If you want an attention map for the entire  token, you can simply modify the resize_and_save function in utils.py to sum the attention maps for <, cat, -, toy, and > before normalizing them, and save this as the attention map for . I think this should solve the issue.


Failure cause management support in sjb

I am wondering if we can store our failure causes inside config in this repo as opposed to having them buried inside Jenkins
@stevekuznetsov

The plugin page says we can serialize the knowledge base as XML. Unclear if hot-reload of that is supported.


All logs of commands(packerina) needs to be pointed to error stream

Description:
$subject
Steps to reproduce:
Affected Versions:
1.0.0, 1.0.1

This should be brought up in the dev group. There seems to be mixed opinions on this since adding these to the std err gives a different experience to the users when they are using it through the terminals in their IDEs.

This is done in Swan Lake.


Distance, time_diff, speed functionality already provided by UvA-BiTS DB

The UvA-BiTS DB has a function:
select * from gps.get_uvagps_track_speed(5326, '2016-06-01 18:00', '2016-06-01 19:00')

Which returns:

device_info_serial
date_time
latitude
longitude
distance
interval
speed
direction

5326
2016-06-01 18:07:36
51.348188800000003
3.1729379999999998
\N
\N
\N
\N

5326
2016-06-01 18:29:10
51.348087999999997
3.1728736999999998
12.06531058575392
00:21:34
0.0093240421837356424
201.72344513617824

5326
2016-06-01 18:51:06
51.348262400000003
3.1731264000000001
26.154833184897118
00:21:56
0.019874493301593556
42.14516668347823

With:

Distances and heading are calculated with spherical correction with the Haversine formula.

We have:

device_info_serial
date_time
latitude
longitude
calc_distance_diff
calc_time_diff
calc_speed_2d
direction

5326
2016-06-01T18:07:36Z
51.3481888
3.172938
NA
NA
NA
-124.679717701416

5326
2016-06-01T18:29:10Z
51.348088
3.1728737
12.078892306822
1294
0.00933453810419008
-133.425670193646

5326
2016-06-01T18:51:06Z
51.3482624
3.1731264
26.1841032677065
1316
0.019896735005856
-54.5015299912165

Difference (indicated in bold) are small, so we can replace:

calc_distance_diff → distance
calc_time_diff → interval (expressed as hh:mm:ss)
calc_speed_2d → speed
direction → seems to be a different kind of direction

@Wouter-Vansteelant are you familiar with difference in direction returned by gps.get_uvagps_track_speed<PHONE_NUMBER>3617824) vs what is available in ee_tracking_speed_limited (-133.425670193646)

@peterdesmet the former is a trajectory speed and direction, which seems to be calculated from the previous to the current point, given that the first value in the example above is NA. I usually do those calculations in R with homemade formulas. The direction and speed values in the  table tracking_speed_limited are instantaneous measurements by GPS.
I have not used instantaneous speed very much but both values are useful, sometimes in combination. For example, when a soaring bird is climbing in a thermal, the trajectory speed will be low because there is little horizontal displacement, but instantaneous speed will be fairly high, as the bird is flying at a fairly typical air speed. The ratio of the two speed measurements can then help to distinguish circle soaring from straight gliding/flapping flight.

Aha, so:

get_uvagps_track_speed.speed = speed based on time/distance with previous fix
tracking_speed_limited.speed_2d = instantaneous speed measured by GPS
get_uvagps_track_speed.direction = degrees from north if we draw a line between previous fix and current one??
tracking_speed_limited.direction = instantaneous heading measured by GPS

In that case, I would say for data publication:

Only useful to drop points above 120km/h
Useful, but call it air_speed
Not very useful: don't include
Useful: is the heading of the bird as it was flying

What do you think?

Hey Peter,
response hieronder in rood
Aha, so:

get_uvagps_track_speed.speed = speed based on time/distance with
previous fix
Yes
tracking_speed_limited.speed_2d = instantaneous speed measured by GPS
Yes
get_uvagps_track_speed.direction = degrees from north if we draw a
line between previous fix and current one??
Yes
tracking_speed_limited.direction = instantaneous heading measured by
GPS
*Almost. Its the instantaneous direction. To calculate heading, meaning:
the direction the bird is facing towards, you still need to correct for
wind influences. *

In that case, I would say for data publication:

Only useful to drop points above 120km/h
I use trajectory speeds all the time. Applicability very much depends
on resolution of data and question at hand. Potenially very useful. I tend
to calculate speeds from point i to i+1 instead of from i-1 to i or the
average of the two, but all three can be valid approaches
Useful, but call it air_speed
No. I know I used this word in my last email but is misleading to use
this. Calculating airspeed requires information on wind speed and
direction. Instantaneous measurements are also prone to high errors, I
think depending on the nr of satellites used and time interval between
observations. In most of my research so far instantaneous speed has been
less useful to me than trajectory speed. But that I would keep both in
dataset as they are both potentially useful.
Not very useful: don't include
*For similar reasons as mentioned above for speed, trajectory statistics
are very useful too. *
Useful: is the heading of the bird as it was flying
See above. This is not entirely true. Beyond the complication of
accounting for atmospheric flow, the extent to which flow influences the
birds movement relative to the geographical grid depends on the birds
orientation strategy relative to flow. For that reason the calculation of
heading is giving a lot of researchers a headache ;)

On 2 February 2018 at 20:30, Peter Desmet<EMAIL_ADDRESS>wrote:

Aha, so:

get_uvagps_track_speed.speed = speed based on time/distance with
previous fix
tracking_speed_limited.speed_2d = instantaneous speed measured by
GPS
get_uvagps_track_speed.direction = degrees from north if we draw a
line between previous fix and current one??
tracking_speed_limited.direction = instantaneous heading measured
by GPS

In that case, I would say for data publication:

Only useful to drop points above 120km/h
Useful, but call it air_speed
Not very useful: don't include
Useful: is the heading of the bird as it was flying

What do you think?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/inbo/bird-tracking-etl/issues/15#issuecomment-362682894,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ad0-QVP9yD0kzCicKkaYJ-hhr7OhN_Zpks5tQ2JCgaJpZM4R3TON
.

Ok thanks, than I just need to know how to call these 4 fields. :-)

suggestion:
forward trajectory speed (from i to i +1): spd.tf
backward trajectory speed (from i to i-1): spd.tb
mean trajectory speed (average of above).  spd.tm
instantaneous speed: spd.i
analagous for direction (dir)
On 2 February 2018 at 20:50, Peter Desmet<EMAIL_ADDRESS>wrote:

Ok thanks, than I just need to know how to call these 4 fields. :-)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/inbo/bird-tracking-etl/issues/15#issuecomment-362688408,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ad0-QSAdKG6ayrp-rQUoApAqCWzc7qm3ks5tQ2cLgaJpZM4R3TON
.

Hi @Wouter-Vansteelant , just had a workshop on standardizing tracking data to Darwin Core (the standard used for biodiversity data and the one we use), which means I can pick up the publication of the WMH data again.
The properties discussed above won't be included as fields in a GPS fix record (the fields you can use are defined by Darwin Core), but we can link any measurement to the GPS fix in a separate table:
gps_fix_1: lat, long, date_time, ...
gps_fix_2: lat, long, date_time, ...

measurement linked to gps_fix_1: heading
measurement linked to gps_fix_1: speed
measurement linked to gps_fix_1: distance
measurement linked to gps_fix_2: heading
measurement linked to gps_fix_2: speed
measurement linked to gps_fix_2: distance

I would like to keep the number of measurements to a minimum set of useful ones, that cannot be derived from the gps_fix data or are hard to calculate. From the discussion above, I would say:

interval between i to i-1: fairly easy to calculate, but handy to have it ready include?
distance between i to i-1: not so straightforward to calculate, include
speed from i to i-1: can be calculated using 1 and 2, do not include
speed from i to i+1: can be calculated using 1 and 2, but hanging it to the next record
calculated heading (degrees from north): not so straightforward to calculate, include
instantaneous speed measured by device: cannot be derived, include
instantaneous direction measured by device: cannot be derived, include. Not sure how to call this.

What do you think?

This applies to the BirdTrackingEtl version of the package, which we no longer maintain. Closing with wontfix.


force prop breaks leave animation

I am using Transition to animate the height of accordion children to 'auto'.  I can have nested accordions so I need the force prop so that the parent accordion child will update when a nested accordion expands.  However, this seems to breaking when animated to the leave state.  I have replicated in a codesandbox here.

I’ll take a look

It looks like "force" is interacting in a weird way with transition, which internally uses keyframes until it ends up on the spring. I guess it wasn't built for this.
 A spring in your scenario has the upside of being smaller overhead and it won't re-mount contents which is faster. Springs also play nice with force: https://codesandbox.io/s/n54k8z9340

Hey, thanks for taking a look.  I'll try doing this with react-measure and Spring instead.

For anyone else who comes across this, I was able to find a nice solution using react-measure and Spring.  My Expandable component looks like this.  It handles nested Expandables nicely. Thanks @drcmda for the recommendation.
const Expandable = ({
  children,
  className,
  config,
  element,
  expanded,
  ...rest
}) => {
  const Component = element

  return (
    <Measure offset margin>
      {({ measureRef, contentRect: { offset, margin } }) => (
        <Spring
          native
          from={{ height: 0 }}
          to={{
            height: expanded ? offset.height + margin.bottom + margin.top : 0
          }}
          config={config}
        >
          {style => (
            <animated.div style={{ overflow: 'hidden', ...style }} {...rest}>
              <Component style={{ overflow: 'auto' }} ref={measureRef}>
                {children}
              </Component>
            </animated.div>
          )}
        </Spring>
      )}
    </Measure>
  )
}

Hey, thanks and i'm glad it worked out! I think i'll use this in the docs and maybe remove force. Is there a codesandbox i could inspect?

Hey, I saw this and then forgot.  Anyways, here is an updated codesandbox https://codesandbox.io/s/xlkk6rkx3z


Disable visibility on offscreen slides

[ ] Hide off viewport slides using visibility hidden so intersection observes can be used to lazy load assets

I don't think this is necessary, in tests with vue-visual as part of #10, I see lazyload being effective without this.  I think the overflow:hidden of the mask is sufficient to work with intersection observer.


Allow all of VGit functionality to be used outside of a git repository

As a user VGit should be usable when current working directory is not a git directory. Currently this feature exists on text editors like VScode which can be really helpful sometimes.

How does that work then, what kind of functionality you want to work?
AFAIK all features of vgit comes from git being available

@bew you can execute git commands from anywhere in the system by pointing it to the directory/subdirectory where a .git exists. In order to achieve this you need to use the -C flag followed by the directory. For example:
git -C path/to/your/repo ls-files

Goal is to make any buffer no matter where you open it from within the filesystem to work seamlessly as if you were in the .git directory.
Achieving this will be a bit tricky because of the tight coupling, but achievable none the less.


deterministic subdomains

one of the downsides of using a random number for the tile subdomain is that it means that more likely then not the tile will not be requested with the same url the next time around preventing it from taking advantage of the browser side cache.  One way to get around this would be to use the x/y/z of the coordinates to create the pseudo random number that way the tile at 8/56/102.png would always be on the same subdomain.

looking at the code this seems to already be the case in master, I may just need to upgrade my code

nm seems like it was deterministic the whole time, ignore me


Autofill cleanup tasks

What problem does the pull request solve?
Resolves some divergences from the design, namely:
On the answer type page:

makes the hint text for each input match the design
hides the name input behind the feature flag (this was wrongly made visible)
On the answer settings pages:
Adds a ‘Go to your questions’ link at the bottom of the page
On the name settings page:
Change title list to Mr, Mrs, Miss, Ms, Mx

Trello card: https://trello.com/c/nPbS36yK/483-autofill-cleanup-tasks
Checklist

[x] I've used the pull request template
[x] I've linked this PR to the relevant issue (if mission work)
[n/a] I've written unit tests for these changes (if code change)
[n/a] I've updated the documentation in (If any documentation requires updating)

[n/a] README.md
[n/a] Elsewhere (please link)

Just a suggestion about refactoring the answer type constant but otherwise looks good


Standardize Optional Type in docstrings

Currently a parameter or return type of some_type | None is described in the docstring as either some_type | None or Optional[some_type]. We should set our standard for this case and change all other cases to this new standard.
Additionally there are cases where the parameter allows a None type but the docstring type does not show this. We should add this information to all those cases.
Examples
Optional[type] in the Imputer
 def fit(self, table: Table, column_names: list[str] | None) -> Imputer:
        """
        [...]
        Parameters
        ----------
        [...]
        column_names : Optional[list[str]]
            The list of columns from the table used to fit the transformer. If `None`, all columns are used.
        [...]
        """

type | None in Table:
    def __init__(self, data: Mapping[str, Sequence[Any]] | None = None) -> None:
        """
        Create a table from a mapping of column names to their values.

        Parameters
        ----------
        data : Mapping[str, Sequence[Any]] | None
            The data. If None, an empty table is created.
        [...]
        """

Example of a method without this information in Table.py:
def slice_rows(
        self,
        start: int | None = None,
        end: int | None = None,
        step: int = 1,
    ) -> Table:
        """
        Slice a part of the table into a new table.

        This table is not modified.

        Parameters
        ----------
        start : int
            The first index of the range to be copied into a new table, None by default.
        end : int
            The last index of the range to be copied into a new table, None by default.
        [...]
        """

This might also be something to add to the guidelines.

:tada: This issue has been resolved in version 0.15.0 :tada:
The release is available on:

v0.15.0
GitHub release

Your semantic-release bot :package::rocket:


Hash sum mismatch when installing through the install script.

Hi,
I am trying to install docker on a new linux environment and it looks like there is a mismatch between what is expected from the script and what this mirror serves. At least, in my case, the output is:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Executing docker install script, commit: 6d9743e9656cc56f699a64800b098d5ea5a60020
+ sh -c apt-get update -qq >/dev/null
E: Failed to fetch https://mirror.hetzner.com/ubuntu/packages/dists/noble-updates/main/binary-arm64/Packages.xz  Hash Sum mismatch
   Hashes of expected file:
    - Filesize:95644 [weak]
    - SHA256:1223f34ed16f253f3aa31a5c049d0f74c9943dc67938d80d41c81c7510ec1ca9
    - SHA1:354b20ff591d122dc15a5b7570da1e4dc3362338 [weak]
    - MD5Sum:f867a00fb9b9b2c6659f331cd66febd2 [weak]
   Hashes of received file:
    - SHA256:3a7a279954cb87d9920af66c832e1656dcde4a416e0757d22334caed5c58a4c0
    - SHA1:de8741b3847e635ed33aa0aee9c0c667abe25d17 [weak]
    - MD5Sum:0b9288a0c634e6573178a8567f358e11 [weak]
    - Filesize:95644 [weak]
   Last modification reported: Sun, 02 Jun 2024 11:19:51 +0000
   Release file created at: Sun, 02 Jun 2024 13:17:23 +0000
E: Failed to fetch https://mirror.hetzner.com/ubuntu/packages/dists/noble-updates/universe/binary-arm64/Packages.xz
E: Some index files failed to download. They have been ignored, or old ones used instead.

Does anyone else have the same problem?

After reviewing the logs, I do see that the mirror is associated with the provider where I host my image running and I do believe that there might be some kind of relationship. I do have tried to install with my personal computer and it worked like a charme...therefore, I do believe that it's more an issue with my provider rather than a general issue.


New lint rule: Set selfClosing on HTMLElement and JSXElement with no children

Right now we have a selfClosing property on HTMLElement and JSXElement. When formatting any of those nodes we check if node.selfClosing === true && node.children.length === 0. So selfClosing is merely a hint.
We do this so that to retain the original closing status that the developer wrote. This way when you're writing code and you have format-on-save enabled, we don't mess with what you are probably going to eventually fill in later.
We can provide consistency, and avoid messing with the developer, by making it a lint rule with an autofix instead that is ran deliberately.
Heuristics:
(node.type === "JSXElement" || node.type === "HTMLElement") && !node.selfClosing && node.children.length === 0

And then just addFixableDiagnostic with {...node, selfClosing: true.

I'll grab this one.


Build failing on latest commit

I'm trying to build processhacker on my local end to contribute.
Steps to reproduce

fork https://github.com/processhacker/processhacker
clone it
run /build/build_arm64.bat or /build/build_release.bat

No file(s) have been modified.
Output
This is output for /build/build_arm64.bat
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.10.0
** Copyright (c) 2021 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_arm64'
Microsoft (R) Build Engine version 16.10.0+4242f381a for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

  Using triplet "ARM64-windows" from "C:\vcpkg\installed\ARM64-windows\"
  apiimport.c
  appresolver.c
  avltree.c
  basesup.c
  circbuf.c
  colorbox.c
  cpysave.c
  data.c
  dspick.c
  emenu.c
  error.c
  extlv.c
  fastlock.c
  filepool.c
  format.c
  global.c
  graph.c
  guisup.c
  handle.c
  hexedit.c
  hndlinfo.c
  http.c
  icotobmp.c
  filestream.c
  imgcoherency.c
  json.c
  kph.c
  kphdata.c
  lsasup.c
  mapexlf.c
  mapimg.c
  maplib.c
  md5.c
  native.c
  provider.c
  queuedlock.c
  ref.c
  secdata.c
  secedit.c
  settings.c
  sha.c
  theme.c
  util.c
  svcsup.c
  symprv.c
  sync.c
  treenew.c
  verify.c
C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: warning treated as error (compiling source file appresolver.c) [C:\Users\ow
ner\source\repos\processhacker\phlib\phlib.vcxproj]
C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains characters that can not be displayed in the current code page (932). Please save the file in Unicode format to prevent data loss (compiling source file appresolver.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]
C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: warning treated as error (compiling source file apiimport.c) [C:\Users\owne
r\source\repos\processhacker\phlib\phlib.vcxproj]
C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains characters that can not be displayed in the current code page (932). Please save the file in Unicode format to prevent data loss (compiling source file apiimport.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]
C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: warning treated as error (compiling source file colorbox.c) [C:\Users\owner
\source\repos\processhacker\phlib\phlib.vcxproj]
C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: warning treated as error (compiling source file avltree.c) [C:\Users\nick\
source\repos\processhacker\phlib\phlib.vcxproj]

... and many other (snip)

Tried /p:WarningLevel=0 but still fails.

and this is build output for build/build_release.bat
Windows: Windows NT 10.0.19042.0
WindowsSDK: 19041 (16.10.31205.252)
VisualStudio: VisualStudio/16.10.0+31321.278

Building... 3.0.8646.4119 (af17187) [master]

[00:00] Building ProcessHacker (x32)...
[ERROR] (1) C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file kph.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file kph.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file maplib.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file maplib.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file graph.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file graph.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file error.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file error.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file extlv.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file extlv.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file fastlock.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file filepool.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file imgcoherency.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file fastlock.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file filepool.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file imgcoherency.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file mapexlf.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file mapexlf.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file appresolver.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file http.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file appresolver.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file http.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file kphdata.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file kphdata.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file global.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file global.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file mapimg.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file mapimg.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file handle.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file handle.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file colorbox.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file colorbox.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file hexedit.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file filestream.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file hexedit.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file filestream.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file icotobmp.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file icotobmp.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file dspick.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file apiimport.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file dspick.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file apiimport.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file guisup.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file guisup.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file hndlinfo.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file hndlinfo.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file json.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file json.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file cpysave.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file cpysave.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file format.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file format.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file lsasup.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file lsasup.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file data.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file data.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file emenu.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file emenu.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file basesup.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file basesup.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file circbuf.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file circbuf.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file avltree.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file avltree.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\tools\thirdparty\mxml\mxml.h(1,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file json.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file provider.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file provider.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file symprv.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file symprv.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file md5.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file md5.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file queuedlock.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file queuedlock.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file secdata.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file secdata.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file sync.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file sync.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file settings.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file settings.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file native.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file native.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file svcsup.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file svcsup.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file secedit.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file secedit.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file workqueue.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file workqueue.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file theme.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file theme.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file sha.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file sha.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file ref.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file ref.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file treenew.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file treenew.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file verify.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file verify.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file wslsup.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file wslsup.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): error C2220: the following warning is treated as an error (compiling source file util.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]C:\Users\nick\source\repos\processhacker\phnt\include\ntd3dkmt.h(600,1): warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss (compiling source file util.c) [C:\Users\nick\source\repos\processhacker\phlib\phlib.vcxproj]

Is there anything I am doing wrong?
Thanks in advance.

ntd3dkmt.h(600,1): warning C4819: The file contains characters that can not be displayed in the current code page (932)

Looks like was a character in that file that cannot be converted to CP 932 but worked for everyone else 🤷♂


Review endpoint lists

Pull requests into this repository require the following checks to be completed by the submitter and reviewers.
Changes in this PR:
Added several new CHPL endpoint list queriers. Abeo Solutions currently seems like it is down or has been moved, Varian Medical Systems is still blocked by MITRE, and First Insight Corporation is getting TLS handshake error.
Submitter:

[x] Administrative tasks are complete.

This pull request describes why these changes were made.
The JIRA ticket links to this PR.
The JIRA ticket for this PR is: Lantern 542 JIRA Ticket

[x] Tests are complete.

Tests are included and test edge cases.
Tests have been run locally and pass.

[x] Code review has been performed.

Code diff has been done and checked to ensure only expected code is being committed.
A linter for the language has been run.

Primary Reviewer:

[ ] Code works.

Code has been run locally and the basic functionality affected by the PR has been checked.
Edge cases have been checked to ensure behavior is as expected.

[ ] Code review has been performed.

Code is maintainable, reusable, efficient, and correct.
Code accomplishes the tasks purpose.
Code follows style guidance appropriate for the language, including passing linter checks.
Code is well commented (which does not mean verbosely commented).

[ ] Tests are complete.

Tests are included and test edge cases.
Tests have been run locally and pass.

Merger:
Prior to merging, ensure that all checks have been completed. Delete the branch after the merge
is complete.

Line 16 in the query-endpoint-resources script needs to be cleaned up now that most of the endpoint lists referenced there are in CHPL.

I just ran make clean, then make update_source_data_prod, then make populatedb and got this error:
panic: runtime error: slice bounds out of range [-1:]

goroutine 1 [running]:
github.com/onc-healthit/lantern-back-end/endpointmanager/pkg/fhirendpointquerier.AddEndpointData(0x88e530, 0xc0000a2000, 0xc0000b40d0, 0xc00011bef0, 0x1, 0xc0000180a3)
	/go/src/app/pkg/fhirendpointquerier/populatefhirendpoints.go:37 +0x5e5
main.main()
	/go/src/app/cmd/endpointpopulator/main.go:88 +0xb31
exit status 2
make: *** [populatedb] Error 1

Have you seen this?


The Positioning Problem for Horizon Framework

I've been watching horizon and also played with it a bit.
It seems more like a co-framework to me than a standalone framework so far.
Is it how it's positioned? or It can be used independently of other Node.js frameworks.
If it can be used independently, why don't we have some framework-independent examples?

Horizon is indeed not a full standalone framework and is not intended to be (unlike Meteor for example). Instead Horizon concentrates on the functionality that you would typically implement in your backend, such as data storage, push updates, authentication, security and a few other components.
This is why http://horizon.io/ talks about a "JavaScript backend", not "framework". Is there a section on the website that you think we should clarify to make this more obvious?
We intentionally didn't reinvent the wheel by providing layout and rendering infrastructure with Horizon, but instead made it extremely easy to integrate with any existing framework of your choice.

You could but making this clear isn't enough.
A developer wanting to build something would be ideally looking for:

A web development framework which does the complete job: sails.js, meteor, rails etc.
Mobile Backend As A Service: Firebase, Strongloop Loopback, backendless etc.
Individual components for various use cases for a framework: push, auth, redis etc. Most frameworks have also their own versions of components for these!

Even if you make it clear, it'd be hard for a sizable audience to search and understand "Javascript Backend" or the meaning of it. One way to solve this discoverability issue is by creating various npm/other components the way the strongloop loopback does it. There may be better ideas though!

Thanks for sharing your thoughts.
Horizon quite closely fits the second category ("Mobile backend as a service"). The "as a service" part is optional with Horizon (well, right now it's not even available yet, but we're working on changing that. Look out for "Horizon Cloud"). It also is not limited to mobile apps, but neither are the other services you list as far as I can tell. I think once Horizon Cloud is available, Horizon will more obviously fit that niche.
We'll hopefully have a lot of additional documentation and examples soon that describe how you can use individual components of Horizon within an existing framework, which will hopefully help discoverability as well.
I wonder if splitting things up into individual NPM packages is an option or if there are technical challenges with that. (@deontologician @Tryneus)
@coffeemug might have some more thoughts on increasing the discoverability of Horizon.

@Rajan - This makes perfect sense. In essence it is a self hosted backend as a service which allows for integration and transition to a more robust API when you need to extend the functionality.
We don't need another framework, we need a simple way to get data from a DB into an Application that can step out of the way when a more robust server implementation is required.
As an aside, basing a design off of something like loopback is a tragically bad idea. This is intended to be simple with a graceful transition and not some bloated enterprise-tastic all-in-one solution.

Going to close since it's not a bug, but feel free to discuss here or on our discourse forum: discuss.horizon.io
As far as splitting things into npm packages, I think we should do that as the design process naturally spins off independent chunks. It's definitely the node/js way to break things out into smaller units (both for code size reasons and just culturally), so it makes sense to move things into independent packages over time. We just want to make sure the interfaces we're creating are good abstractions before committing to them by making them a public api.

A good example where the module -> public api discussion is going on is #428


wiki home page has no info

https://github.com/tesseract-ocr/tesseract/wiki
It is only showing the following
Home
artmortal93 edited this page 13 minutes ago · 94 revisions

please fix this...
Mean while can someone share info on how to install a particular tesseract version on ubuntu

See  https://github.com/tesseract-ocr/tesseract/wiki/Home/ff9f0ff02d7098c3b5e2e4e76244ef49a5ff4234
Page edited by @stweil 3 days ago

user JesiDream blocked and reported to github support for vandalizing wiki.
Wiki reverted to last correct version:

Thank you, @zdenop.


Add type hints for Response and Result.

Just added some type hints and a bit of documentation for Response and especially Result. If it is safe to assume that sendCypherQuery always returns Response, then I'd add a type hint for that too in the big method block in Client.
This makes the coding in a type-hinting IDE much more pleasurable:

Hi,
Thanks for your PR. Indeed send Cypher query will always return a response. This response contains a Result only if setAutoFormatResponse(true) is set on init.
Merging it.
Thanks again


Uncaught TypeError: $(...).calendar is not a function

I'm trying to use this calendar in a .jade file, but I can't manage to make anything appear on the screen, and I keep getting this error. I followed and double-checked all of the steps listed on the code page, but everything seems to be in order, and I can't seem to find any mistakes.
Does anybody know how to fix this?

hard to say without your code....
check for resources (and order) in your  tag.

jquery
underscore
calendar.js

how about document ready function?
$(function() {
....
});


Rename npm script 'start-dev' task to 'dev'. Fixes #104. r=jsantell

#104
r? @jsantell

Original intention was just dropping gulp, so these can be renamed to anything.

I'm just gonna land this, this is fine.


with(any(X.class)) no longer matches nulls

The following test fails with current master but passes with JMock 2.5.
@RunWith(JMock.class)
public class JMock27withNullsTest
{
    private Mockery context = new JUnit4Mockery();

    @Test
    public void whatAboutThemNulls()
    {
        final MyInterface my = context.mock(MyInterface.class);
        context.checking(new Expectations() {{
            oneOf(my).passString(with(any(String.class)));
        }});
        my.passString(null);
    }

    private static interface MyInterface
    {
        void passString(String someString);
    }
}

Closed in #25 and #28


Remove redundant vbx variable in FileDialog

Basically, at the end of FileDialog constructor, vbox and vbc are different member variables pointing to the same object. This commit replaces all vbc with vbox.

Thanks!


Switching between skins based on @media (prefers-color-scheme)

Is there a way to switch between the skins dynamically, based on @media (prefers-color-scheme) ?

Oops, I see https://github.com/jekyll/minima/pull/634 which aims at doing just this :+1: