Ignore markers that are out of bounds for the current map

I have a map configured to render my nether roof, and I realized that the markers below the min-y configured height are also being imported to that map.

Hard to see in the picture but all four markers in the bottom are below the configured min-y of 126
Not really sure if this is an issue with your extension or with bluemap itself, let me know if I'm wrong and I'll open an issue upstream.

If you manually configure a marker in Bluemap's settings below the min-y value, does Bluemap.show it?
This plugin only tells Bluemap about new markers and then delegates the rendering back to Bluemap.
I'd have to check if Bluemap even makes that setting available in the API.

If you manually configure a marker in Bluemap's settings below the min-y value, does Bluemap.show it?
This plugin only tells Bluemap about new markers and then delegates the rendering back to Bluemap.

I guess so, but the markers are configured in a per map basis, so if I had to configure them I simply won't for that one.

I'd have to check if Bluemap even makes that setting available in the API.

That would make sense, and if it's not exposed, it maybe should be since, as said, markers are added per map.
If you can check the configuration of the map, simply avoid to add markers that are outside of the defined bounds, from the config file:
#min-x: -4000
#max-x: 4000
#min-z: -4000
#max-z: 4000
min-y: 126
#max-y: 90
(copy-pasted from my actual nether roof map definition)

I do now realize that, from the two nether renders I have, I only have markers on the roof one, but not on the other.
Here are the config files for each nether map:

grandline_the_nether.conf
##                          ##
##         BlueMap          ##
##        Map-Config        ##
##                          ##

# The path to the save-folder of the world to render.
#  (If this is not defined (commented out or removed), the map will be only registered to the web-server and the web-app
#   but not rendered or loaded by BlueMap. This can be used to display a map that has been rendered somewhere else.)
world: "grandline"

# The dimension of the world. Can be "minecraft:overworld", "minecraft:the_nether", "minecraft:the_end"
# or any dimension-key introduced by a mod or datapack.
dimension: "minecraft:the_nether"

# The display-name of this map -> how this map will be named on the webapp.
# You can change this at any time.
# Default is the id of this map
name: "Grand Line (the nether)"

# A lower value makes the map sorted first (in lists and menus), a higher value makes it sorted later.
# The value needs to be an integer but it can be negative.
# You can change this at any time.
# Default is 0
sorting: 150

# The position on the world where the map will be centered if you open it.
# You can change this at any time.
# This defaults to the world-spawn if you don't set it.
#start-pos: {x:500, z:-820}

# The color of the sky as a hex-color
# You can change this at any time.
# Default is "#7dabff"
sky-color: "#290000"

# The color of the void as a hex-color
# You can change this at any time.
# Default is "#000000"
void-color: "#150000"

# Defines the ambient light-strength that every block is receiving, regardless of the sunlight/blocklight.
# 0 is no ambient light, 1 is fully lighted.
# You can change this at any time.
# Default is 0
ambient-light: 0.6

# BlueMap tries to omit all blocks that are below this Y-level and are not visible from above-ground.
# More specific: Block-Faces that have a sunlight/skylight value of 0 are removed.
# This improves the performance of the map on slower devices by a lot, but might cause some blocks to disappear that should normally be visible.
# Changing this value requires a re-render of the map.
# Set to a very high value to remove caves everywhere (e.g. 10000)
# Set to a very low value to remove nothing and render all caves (e.g. -10000)
# Default is 55 (slightly below water-level)
remove-caves-below-y: -10000

# This is the amount of blocks relative to the "ocean-floor" heightmap that the cave-detection will start at.
# Everything above that (heightmap-relative) y-level will not be removed.
# Comment or set to a very high value to disable using the ocean-floor heightmap for cave-detection.
# Changing this value requires a re-render of the map.
# Defaults to 10000 (disabled)
cave-detection-ocean-floor: -5

# With this value set to true, BlueMap also uses the block-light value (additionally to the sky-light) to "detect caves".
# (See: remove-caves-below-y)
# Changing this value requires a re-render of the map.
# Default is false
cave-detection-uses-block-light: false

# With the below values you can limit the map-render.
# This can be used to ignore the nethers ceiling or render only a certain part of a world.
# If you change these values, bluemap automatically tries to update the map,
# including deleting map-tiles which are outside the new limits.
# Default is no min or max value (= infinite bounds)
#min-x: -4000
#max-x: 4000
#min-z: -4000
#max-z: 4000
#min-y: 50
max-y: 90

# The minimum "inhabitedTime" value that a chunk must have to be rendered.
# If you set this to a value greater than 0, bluemap will only render chunks that players have visited already.
# Default is 0
min-inhabited-time: 0

# Using this, BlueMap pretends that every Block out of the defined render-bounds is AIR,
# this means you can see the blocks where the world is cut (instead of having a see-through/xray view).
# This has only an effect if you set some render-bounds above.
# Changing this value requires a re-render of the map.
# Default is true
render-edges: true

# Whether the hires-layer will be saved to the storage.
# Disabling this will speed up rendering and reduce the size of the map-files a lot.
# But you will not be able to see the full 3d-models if you zoom in on the map.
# Changing this to false will not remove any existing tiles, existing tiles just won't get updated anymore.
# Changing this to true will require a re-render of the map.
# Default is true
save-hires-layer: true

# This defines the storage-config that will be used to save this map.
# You can find your storage configs next to this config file in the 'storages'-folder.
# Changing this value requires a re-render of the map. The map in the old storage will not be deleted.
# Default is "file"
storage: "file"

# Normally BlueMap detects if a chunk has not yet generated it's light-data and omits rendering those chunks.
# If this is set to true BlueMap will render Chunks even if there is no light-data!
# This can be useful for example if some mod prevents light-data from being saved correctly.
# However, this also has a few drawbacks:
# - For those chunks, every block will always be fully lit
# - Night-mode might not work correctly
# - Caves will always be rendered (ignoring the 'renderCaves' setting)
# Default is false
ignore-missing-light-data: false

# Here you can define any static marker-sets with markers that should be displayed on the map.
# You can change this at any time.
# If you need dynamic markers, you can use any plugin that integrates with BlueMap's API.
# Here is a list: https://bluemap.bluecolored.de/community/3rdPartySupport.html
marker-sets: {

  # Please check out the wiki for information on how to configure this:
  # https://bluemap.bluecolored.de/wiki/customization/Markers.html

}

grandline_the_nether_roof.conf
##                          ##
##         BlueMap          ##
##        Map-Config        ##
##                          ##

# The path to the save-folder of the world to render.
#  (If this is not defined (commented out or removed), the map will be only registered to the web-server and the web-app
#   but not rendered or loaded by BlueMap. This can be used to display a map that has been rendered somewhere else.)
world: "grandline"

# The dimension of the world. Can be "minecraft:overworld", "minecraft:the_nether", "minecraft:the_end"
# or any dimension-key introduced by a mod or datapack.
dimension: "minecraft:the_nether"

# The display-name of this map -> how this map will be named on the webapp.
# You can change this at any time.
# Default is the id of this map
name: "Grand Line (the nether roof)"

# A lower value makes the map sorted first (in lists and menus), a higher value makes it sorted later.
# The value needs to be an integer but it can be negative.
# You can change this at any time.
# Default is 0
sorting: 100

# The position on the world where the map will be centered if you open it.
# You can change this at any time.
# This defaults to the world-spawn if you don't set it.
#start-pos: {x:500, z:-820}

# The color of the sky as a hex-color
# You can change this at any time.
# Default is "#7dabff"
sky-color: "#290000"

# The color of the void as a hex-color
# You can change this at any time.
# Default is "#000000"
void-color: "#150000"

# Defines the ambient light-strength that every block is receiving, regardless of the sunlight/blocklight.
# 0 is no ambient light, 1 is fully lighted.
# You can change this at any time.
# Default is 0
ambient-light: 0.6

# BlueMap tries to omit all blocks that are below this Y-level and are not visible from above-ground.
# More specific: Block-Faces that have a sunlight/skylight value of 0 are removed.
# This improves the performance of the map on slower devices by a lot, but might cause some blocks to disappear that should normally be visible.
# Changing this value requires a re-render of the map.
# Set to a very high value to remove caves everywhere (e.g. 10000)
# Set to a very low value to remove nothing and render all caves (e.g. -10000)
# Default is 55 (slightly below water-level)
remove-caves-below-y: -10000

# This is the amount of blocks relative to the "ocean-floor" heightmap that the cave-detection will start at.
# Everything above that (heightmap-relative) y-level will not be removed.
# Comment or set to a very high value to disable using the ocean-floor heightmap for cave-detection.
# Changing this value requires a re-render of the map.
# Defaults to 10000 (disabled)
cave-detection-ocean-floor: -5

# With this value set to true, BlueMap also uses the block-light value (additionally to the sky-light) to "detect caves".
# (See: remove-caves-below-y)
# Changing this value requires a re-render of the map.
# Default is false
cave-detection-uses-block-light: false

# With the below values you can limit the map-render.
# This can be used to ignore the nethers ceiling or render only a certain part of a world.
# If you change these values, bluemap automatically tries to update the map,
# including deleting map-tiles which are outside the new limits.
# Default is no min or max value (= infinite bounds)
#min-x: -4000
#max-x: 4000
#min-z: -4000
#max-z: 4000
min-y: 126
#max-y: 90

# The minimum "inhabitedTime" value that a chunk must have to be rendered.
# If you set this to a value greater than 0, bluemap will only render chunks that players have visited already.
# Default is 0
min-inhabited-time: 60

# Using this, BlueMap pretends that every Block out of the defined render-bounds is AIR,
# this means you can see the blocks where the world is cut (instead of having a see-through/xray view).
# This has only an effect if you set some render-bounds above.
# Changing this value requires a re-render of the map.
# Default is true
render-edges: true

# Whether the hires-layer will be saved to the storage.
# Disabling this will speed up rendering and reduce the size of the map-files a lot.
# But you will not be able to see the full 3d-models if you zoom in on the map.
# Changing this to false will not remove any existing tiles, existing tiles just won't get updated anymore.
# Changing this to true will require a re-render of the map.
# Default is true
save-hires-layer: true

# This defines the storage-config that will be used to save this map.
# You can find your storage configs next to this config file in the 'storages'-folder.
# Changing this value requires a re-render of the map. The map in the old storage will not be deleted.
# Default is "file"
storage: "file"

# Normally BlueMap detects if a chunk has not yet generated it's light-data and omits rendering those chunks.
# If this is set to true BlueMap will render Chunks even if there is no light-data!
# This can be useful for example if some mod prevents light-data from being saved correctly.
# However, this also has a few drawbacks:
# - For those chunks, every block will always be fully lit
# - Night-mode might not work correctly
# - Caves will always be rendered (ignoring the 'renderCaves' setting)
# Default is false
ignore-missing-light-data: false

# Here you can define any static marker-sets with markers that should be displayed on the map.
# You can change this at any time.
# If you need dynamic markers, you can use any plugin that integrates with BlueMap's API.
# Here is a list: https://bluemap.bluecolored.de/community/3rdPartySupport.html
marker-sets: {

  # Please check out the wiki for information on how to configure this:
  # https://bluemap.bluecolored.de/wiki/customization/Markers.html

}

And the signs file, hoping something can be seen there:

signs.json
{"version":"V3","data":"[{\"key\":{\"x\":17,\"y\":73,\"z\":110,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Smiley Factory\",\"detail\":\"Smiley Factory\\nRecolection\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":43,\"y\":130,\"z\":-76,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Loguetown\",\"detail\":\"Loguetown\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-304,\"y\":131,\"z\":-89,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Porkchop\",\"detail\":\"Porkchop\\nStop\\n(Hoglins)\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":79,\"y\":129,\"z\":60,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"GOLD D.\",\"detail\":\"GOLD D.\\nRoger\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-926,\"y\":30,\"z\":-1656,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Rain Dinners\",\"detail\":\"Rain Dinners\\nSand Dupper\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":182,\"y\":-57,\"z\":111,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Smiley\",\"detail\":\"Smiley\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":428,\"y\":129,\"z\":-302,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Castillo Blinho\",\"detail\":\"Castillo Blinho\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":321,\"y\":60,\"z\":-649,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"mine\",\"label\":\"Loguetown\",\"detail\":\"Loguetown\\nMine\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":901,\"y\":65,\"z\":-1392,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Azaleas\",\"detail\":\"Azaleas\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-5808,\"y\":163,\"z\":-2450,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Granotes\",\"detail\":\"Granotes\\nMarrons\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-1241,\"y\":24,\"z\":-898,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"location\",\"label\":\"GIO DA\",\"detail\":\"GIO DA\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-222,\"y\":64,\"z\":-806,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"location\",\"label\":\"Ohara\",\"detail\":\"Ohara\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":99,\"y\":70,\"z\":-286,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"PORTAL\",\"label\":\"BOSQUE VERDE\",\"detail\":\"BOSQUE VERDE\\n\\u0026 ROJO\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-100,\"y\":130,\"z\":145,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Shulker\",\"detail\":\"Shulker\\nFarm\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":327,\"y\":63,\"z\":-657,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"location\",\"label\":\"Loguetown\",\"detail\":\"Loguetown\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-185,\"y\":128,\"z\":-165,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"No me GEODAs\",\"detail\":\"No me GEODAs\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-5,\"y\":134,\"z\":-34,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"location\",\"label\":\"Pawn Shop\",\"detail\":\"Pawn Shop\\nBartering Office\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-448,\"y\":40,\"z\":-1486,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Esqueletos de\",\"detail\":\"Esqueletos de\\nla ETA\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-386,\"y\":128,\"z\":-319,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"TRES DENTS\",\"detail\":\"TRES DENTS\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-108,\"y\":130,\"z\":-713,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Concrete maker\",\"detail\":\"Concrete maker\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-130,\"y\":128,\"z\":-121,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Old Lighthouse/\",\"detail\":\"Old Lighthouse/\\nEl viejo faro\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-725,\"y\":128,\"z\":-307,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"MANGLAR\",\"detail\":\"MANGLAR\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-117,\"y\":129,\"z\":-208,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Falling Block\",\"detail\":\"Falling Block\\nDuper\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":840,\"y\":60,\"z\":-951,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Blazing Hell\",\"detail\":\"Blazing Hell\\nFurnaces\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":2249,\"y\":128,\"z\":-257,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"BLACK SKELETON\",\"detail\":\"BLACK SKELETON\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":18398,\"y\":66,\"z\":-1747,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Wither Skeleton\",\"detail\":\"Wither Skeleton\\n(requires AFK in\\nnether roof)\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":240,\"y\":129,\"z\":-919,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"D10S\",\"detail\":\"D10S\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-1499,\"y\":25,\"z\":-1323,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"mine\",\"label\":\"No me GEODAs\",\"detail\":\"No me GEODAs\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-1325,\"y\":79,\"z\":-254,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"FLOREH, FLOREH\",\"detail\":\"FLOREH, FLOREH\\nQUEREMOH\\nFLOREH, FLOREH\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":16,\"y\":129,\"z\":-242,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"PORTAL\",\"label\":\"Cal Mame\",\"detail\":\"Cal Mame\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-1264,\"y\":61,\"z\":-495,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Oveja arco iris\",\"detail\":\"Oveja arco iris\\netérea de la\\nmuerte mortal\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-150,\"y\":63,\"z\":-840,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"location\",\"label\":\"Zenchi\",\"detail\":\"Zenchi\\nno Ki\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-1544,\"y\":135,\"z\":-5,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"El Castillo\",\"detail\":\"El Castillo\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":3316,\"y\":105,\"z\":-2349,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"location\",\"label\":\"Castillo Blinho\",\"detail\":\"Castillo Blinho\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-1148,\"y\":61,\"z\":-1413,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"PICKLE JOE\",\"detail\":\"PICKLE JOE\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-48,\"y\":129,\"z\":-191,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Esqueletos\",\"detail\":\"Esqueletos\\nde la ETA\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":72,\"y\":127,\"z\":-1969,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"poi\",\"label\":\"Cal Mame\",\"detail\":\"Cal Mame\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-9,\"y\":129,\"z\":12,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"To Slime\",\"detail\":\"To Slime\\nFactory Hole\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":174,\"y\":62,\"z\":-116,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"EverBlazing\",\"detail\":\"EverBlazing\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":20,\"y\":128,\"z\":13,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Smiley\",\"detail\":\"Smiley\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":22,\"y\":68,\"z\":-210,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"PORTAL\",\"label\":\"BOSQUE\",\"detail\":\"BOSQUE\\nVERDE\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-3092,\"y\":214,\"z\":-2548,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Tresdents\",\"detail\":\"Tresdents\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":304,\"y\":64,\"z\":-613,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Roof Hub\",\"detail\":\"Roof Hub\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-226,\"y\":130,\"z\":-80,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"SHALA\",\"detail\":\"SHALA\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":137,\"y\":129,\"z\":-87,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"PORTAL\",\"label\":\"PLAZA DEL AGUA\",\"detail\":\"PLAZA DEL AGUA\\nCON VISTAS AL\\nTENNIS\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-598,\"y\":3,\"z\":633,\"parentMap\":\"minecraft:the_end\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Ender pearls\",\"detail\":\"Ender pearls\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":848,\"y\":129,\"z\":-350,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Magma\",\"detail\":\"Magma\\nCream \\u0026 Block\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":104,\"y\":16,\"z\":-179,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"Location\",\"label\":\"COMPRO ORO\",\"detail\":\"COMPRO ORO\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":1501,\"y\":198,\"z\":30,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"MOB grinder\",\"detail\":\"MOB grinder\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":900,\"y\":66,\"z\":-1407,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Azalea\",\"detail\":\"Azalea\\n(and sticks,\\nmoss carpet, etc)\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-222,\"y\":64,\"z\":-731,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"location\",\"label\":\"Librarian\",\"detail\":\"Librarian\\nRefugee\\nCamp\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":18016,\"y\":90,\"z\":-2077,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"BLACK SKELETON\",\"detail\":\"BLACK SKELETON\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":158,\"y\":131,\"z\":-87,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Monkey D.\",\"detail\":\"Monkey D.\\nGarpdians\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":110,\"y\":129,\"z\":-174,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Azaleas Farm\",\"detail\":\"Azaleas Farm\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":1411,\"y\":58,\"z\":-688,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"location\",\"label\":\"HAPPY\",\"detail\":\"HAPPY\\nTREE\\nFRIENDS\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-6990,\"y\":98,\"z\":-1570,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"mine\",\"label\":\"Terracota\",\"detail\":\"Terracota\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":695,\"y\":65,\"z\":-902,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Iron-Iron\",\"detail\":\"Iron-Iron\\nno Mi\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-876,\"y\":128,\"z\":-196,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Terracota\",\"detail\":\"Terracota\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-3094,\"y\":191,\"z\":-2559,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"TRES DENTS\",\"detail\":\"TRES DENTS\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-76,\"y\":130,\"z\":149,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"SHULKER FARM\",\"detail\":\"SHULKER FARM\\n¡PUAGH!\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":153,\"y\":131,\"z\":296,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Magma Cube\",\"detail\":\"Magma Cube\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":256,\"y\":129,\"z\":-537,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Raid Farm\",\"detail\":\"Raid Farm\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":264,\"y\":129,\"z\":12,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Stronghold\",\"detail\":\"Stronghold\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":91,\"y\":130,\"z\":-118,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Iron and\",\"detail\":\"Iron and\\nfurnaces\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-207,\"y\":64,\"z\":-777,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Breeder\",\"detail\":\"Breeder\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":482,\"y\":130,\"z\":-116,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"CAL NIETO\",\"detail\":\"CAL NIETO\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-1723,\"y\":128,\"z\":-156,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"e6e37230-4ff0-45ff-9d42-afc1bda0e409\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"La garra\",\"detail\":\"La garra\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-8,\"y\":29,\"z\":-114,\"parentMap\":\"minecraft:the_end\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"factory\",\"label\":\"Beehave\",\"detail\":\"Beehave\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":-1335,\"y\":63,\"z\":-1224,\"parentMap\":\"minecraft:overworld\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"mine\",\"label\":\"DI\",\"detail\":\"DI\\nOLD\\nMINE\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}},{\"key\":{\"x\":147,\"y\":129,\"z\":294,\"parentMap\":\"minecraft:the_nether\"},\"playerId\":\"unknown\",\"frontText\":{\"prefix\":\"portal\",\"label\":\"Greenotes\",\"detail\":\"Greenotes\"},\"backText\":{\"label\":\"\",\"detail\":\"\"}}]"}

I'm back to my main dev computer after being on vacation and have been looking through the BlueMap API classes. Nothing obvious appears with respect to the min/max coordinates.
I've asked about this on the BlueMap discord server, however, to check my assumptions.
I'd like to understand your configuration a bit better in the meantime.
Do you have 2 separate nether map configurations? One for just the roof and one for the under roof?

Do you have 2 separate nether map configurations? One for just the roof and one for the under roof?

Yeah I do have two nether map configurations, was the only way I could think to have a proper render of the nether roof, while not occluding the "normal nether" render. You can access them here, in case it's useful:
https://minecraft.elboletaire.com/#grandline_the_nether_roof:32:0:-1:656:0:0:0:0:perspective
https://minecraft.elboletaire.com/#grandline_the_nether:-48:0:-224:1500:0:0:0:0:perspective

Thanks! That is helpful,
It seems like the primary problem is that you want some markers to be visible on some maps, but not on others. Is that a valid summary?
If that is the case, I'll think about some other ways of making that available through the configuration.

It seems like the primary problem is that you want some markers to be visible on some maps, but not on others. Is that a valid summary?

Yes, I'd like to have only the markers of the visible bounds in my renders but, as I said yesterday, one of the renders is not loading any markers at all (the "normal nether" one).

If that is the case, I'll think about some other ways of making that available through the configuration.

If there's no other way, that may work. Maybe doing as bluemap, and having a config file for each map too? It could be quite redundant, but at the same time gives a lot of different configuration opportunities. You could be using multiverse and have totally different ways of adding markers to your maps.

@elboletaire, I asked in the BlueMap discord about whether the API offers the min/max settings and it doesn't. The author has tentative plans for updating the min/max config in the future to allow more flexibility and may include a method like isInsideRenderBounds(Vec3) in the API. But this is not guaranteed.
I'm not keen on adding the functionality to read the BlueMap config, since that would inevitably break when the BlueMap config is changed.
I would prefer to leave the min/max calculation up to BlueMap.
Instead of focusing on the min/max configuration, what do you think of a separate feature request where the config will only put certain marker types on certain maps (e.g. [portal] only shows on nether_roof)?

Sounds like an alternative, considering the API does not support it.
BTW I can naswer rn but I won't be able for the next month (I'm about to take a plane. Just so you know in case you tag me again ;)


Adding the toggle action

Is your feature request related to a problem? Please describe.
The action for a tile card can be "toggle", but the option is missing for a custom button.
Describe the solution you'd like
Adding the "toggle" option to custom buttons would be practical.
Additional context
For example, I would like to make a button to toggle my Pi-Hole. I cannot do it using this add-on, because the "toggle" option is not available. However, all of the other options are present.
Tile card tap action:

Using this add-on:

I have managed to achieve what I wanted using the "Call Service" action with the "switch: Toggle" service. I guess this is the intended way to do it?

The toggle action is a shortcut for calling various toggle services. I never got around to implementing it but I should.

I spent a decent amount of time tracking down the frontend implementation of the toggle action, but it should be fine to just call the service homeassistant.toggle. @MathisP75 can you spot check the 4.0.5 beta to make sure it works fine for you?

The generic toggle doesn't work for some domains like locks, so I do have to implemented the rest of the logic 🙃.

Alright, beta 2 uses similar logic as the HA frontend to to check entity states and call the appropriate service using that.

Thank you, it works!

Great! I'm gonna work on a few more minor improvements then release it.

Released 4.0.5.


Fix (or rework) Calendar related styles

With migration to ControlThemes there is a couple of problems with Calendar related styles.
Need to inspect CalendarDayButton.axaml, CalendarButton.axaml and Calendar.axaml.

Partially fixed now


Implemented support to store user preference for selected product store (#2f2h8hu)

Related Issues

Closes #
Short Description and Why It's Useful

Added user preference for selected product store
Screenshots of Visual Changes before/after (If There Are Any)

IMPORTANT NOTICE - Remember to update CHANGELOG.md with description of your change
Contribution and Currently Important Rules Acceptance

[x] I read and followed contribution rules
[ ] I have changed the target to hacktoberfest branch

not using product store in inventory count app. closing PR


Feature request: display interactive figures given by Plots.jl with PlotlyJS backend just like fdplotly

When PlotlyJS.jl is used, a beautiful interactive plot can be display with the helper function fdplotly.
But I couldn't find a build-in method to show interactive Plots.jl figures with plotlyjs() backend just like when PlotlyJS.jl is used directly. (Don't know whether that is the case.)
So I have implemented a helper function myself. It works but I think it is not so good that several problem has to be solved.
function fdplotsplotlyjs(p; id="fdp"*Random.randstring('a':'z', 3),
  style="width:600px;height:350px")::Nothing
  print("""
    ~~~

    ~~~
    """) # a ";" is used to end var fig = ...;
end

It can be used like this in Franklin.jl
 ```julia:ex
using Plots
plotlyjs()
fdplotsplotlyjs(plot([1, 2])
```
\textoutput{ex}

Several Problem should be solved:

I think there should be a better way to transfer the plot to a JSON format but don't know how. The function json in Plots.jl directly save it to a file which I think is unnecessary.
I think it should be better to give a type declaration on p. It should be something like p::Plots.Plot{Plots.PlotlyJSBackend}. But when this function is placed in src/manager/extra.jl, it can't find Plots.
Give the function a better name.

I come up another implementation idea that maybe a \fig{} can be used to plot the plotlyjs json file that is saved by json in Plots.jl. So we can use something like:

```julia:pyplot1
using Plots
plotlyjs()

 p= plot(sinc)
savefig(joinpath(@OUTPUT, "sinc.json")) # hide
```
\fig{sinc}

Not test yet. Just an idea.

I'm glad you're experimenting with this and what you're doing sounds pretty useful! as you noticed though typing shouldn't be in the package because I don't want Plots to become a dependency (it can be a dependency in the tests of course but not of the main package)

saving the json to file (e.g. to _assets/xxx) is probably not such a bad idea; you could have the function check whether that json is available and if so not do anything
see comment above
hahaha yes :-) maybe you could just call it interactive_plot and wrap over fdplotly with a keyword selecting the appropriate path

I don't have much time right now to check this in more details but will do so next week, just sharing some early notes that you might find useful

as you noticed though typing shouldn't be in the package because I don't want Plots to become a dependency

Maybe, this could be solved via Requires.jl or a FranklinPlottingInterface.jl (with Requires.jl and some Makie/Plots etc logic). I agree that the former is not ideal. Especially because it is difficult to add compat entries for packages added via Requires.jl.

After doing some experiment, I found several things.
Let me first post the the solution now:
I choose to first save the Plots file in json file and then plot it with a helper function written in Javascript.
In _layout/head.html add a JS helper function
  {{if hasplotly}}

    {{end}}

Another Julia helper function interactive_plot_json which will insert the previous JS function in proper place in the html
import Random
"""
Display a Plots plot `p` created  by the PlotlyJS backend
"" is the default size of Plots

import  Plots
plotlyjs(); # use PlotlyJS as the backend of Plots
p = Plots.plot(sinc)
Plots.savefig(p, joinpath(@OUTPUT, "sinc.json"))
# json_path = ...
interactive_plot_json(json_path)
"""
function interactive_plot_json(src ; id="fdp"*Random.randstring('a':'z', 3),
	 			  style="")::Nothing
    io = IOBuffer()
    println(io, """~~~""")

    print(io, """

		""")
    println(io, """~~~""")
    println(String(take!(io)))
    return nothing
end

```julia:intplot
using Plots
plotlyjs(); # use PlotlyJS as the backend of Plots

# need a way to find where the picture is
interactive_plot_json("/assets/blog/2021/09/07_PlotlyJS/code/output/pp.json";style="")
```
\textoutput{intplot}

Note: this implementation is definitely not the best way. I think a better way is to integrate it  in to \fig{ } command.
I also find that fdplotly may have some performance problems
Since fdplotly write the json string directly into the html file, the html file may become very large. It may grow from 20kb or so to 9MB which may seriously effect the loading time of the webpage, especially when many complicated plot were inserted.
I recommend that we should change the implementation of fdplotly and let all plots be loaded asynchronously.
I use fetch in my implementation to make loading the plot asynchronous. (I am just starting with Javascript, please tell me whether I am doing it right or not.)

Hi... I have a question, I tried this and when I was running it locally the interactive plot is showing but once I deploy it to gitpages, the interactive plot is not showing. Can someone help?


[Bug]-[100]:No. of pages change when i reach the last page of a table

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When a table with -

server side pagination turned on
total record count is set

If the last page of the table doesn't have the same number of records as previous page then the pages are recalculated and this leads to confusion
Steps To Reproduce

Add a table with server side pagination configured
Configure the total record count
Make sure the last page has lesser records than previous page
Observe the calculation re-occurs when the user reaches the last page

Public Sample App
No response
Issue video log
https://www.loom.com/share/3eb6488b3e7944f2a475e667dcfcbfa7
Version
Cloud
 Front conversations

Problem deep-dive

This happens on for devs who have set server side pagination to true and total record count is set
Only when the user reaches the last page where the number of records are less than the expected number per page.

Stats

Stat
Values

Reach
320

Effort (months)
0.5

Stats

Stat
Values

Reach
25

Effort (months)
0.5

Why are people changing the page size?

Devs want to show more data per page and then paginate. Lesser context switching for users.
Users sometimes want the control on page number from the table which allows them to quickly change pageSize and run the query.

People are looking for a flexible way of controlling the page-size. Our solution hinges on if we want to allow for more flexibility and if so, how to guide devs towards implementing it correctly.
Solution exploration

Within the table add a new records per page property, which is the only way to control the records per page.

This is different from pageSize. The pageSize property is only for understanding how many records can fit without a scrollbar.
This property controls the no. of records shown per page. If the dev wants people to change it we can allow that to happen.
This can be a new binding property with {{Table1.recordsPerPage}} which can be fed to queries now instead of {{table1.pageSize}}

Allow users to update the {{table1.pageSize}} property. Create a new internal property {{table1.pageRecordsFit}} which inherently points to the current value of {{table1.pageSize}}

This doesn't cause any change in pageSize and we calculate all our values from it.
This property can be updated by devs and we use it to calculate number of pages
We can add a new design which allows users to change the pageSize.

We try to understand if the user is in the last page and we disable the next button

We can cache the number of pages until we reach the last page. Since today there is no way to directly go to last page. When we reach the last page we automatically stop the calculation. If the page
We can check if the number of records is less than the pageSize and disable the next button and hide the detail on page number and simply say last page or something.

Stats

Stat
Values

Reach
320

Effort (months)
0.5

Looking forward for this fix. Thanks!


Allowed using a custom queue in memory backend.

I wanted to use a different queue class with the memory backend as python's built in is a bit slow. This allowed me to easily switch to boost_queue.Queue in my code.

Thanks,
no worries for tests failing, it's an issue related to pymongo version.


use mongodb connect instead of authenticate due to 3.6 restrictions

@cvallance Please merge this, thanks.

I think there is a problem on how username and password are transmitted. In particular, if special URI characters like ':' or '@' are used in the username or password. Please see my PR for an approach with URI encoded username and password.

Is this PR still relevant now there's the #105 ?


Whitelist for Non-English Characters

Environment

Tesseract Version: tesseract v5.0.0-alpha.20200328
Platform: Windows, 64-bit

Current Behavior:

While using chi_tra to work on this image, the result was "載", which was great.
However, after specifying the whielist using following commands:
config='--oem 0 --psm 6 -c tessedit_char_whitelist=\u8f09' , (\u8509 is the unicode for "載")or
config='--oem 0 --psm 6 -c tessedit_char_whitelist=載'
the results turned out to be null.
It seems that whitelist could only accept English characters or digits(whitelist does work for numbers, I have tested that).
How come?
p.s. I tried this because I wanted Tesseract to detect only the words on whitelist.
Expected Behavior:
Seems chi_tra could detect "載" accurately without the whitelist, it should also work if
whitelist="載" is given.
Suggested Fix:
The variable tessedit_char_whitelist should accept non-English characters.

Actually i have tried with russian characters and it worked pretty well. So, i am assuming that the problem is specific to some subset of the UTF-8

我也一样遇到这个问题  请问解决了吗

我也一样遇到这个问题  请问解决了吗

把系统语言设置成utf8貌似是成功的。

tessedit_char_whitelist=\u8f09
AFAIK. this usage is not supported.
Did you tried:
tessedit_char_whitelist=\載
?

Anyway, the aliowlist / denylist feature is known to not work well with the LSTM engine.


Run as a Databricks job

Any ideas or support to run my code (that uses Spark Connect) as a Databricks job?

Hi Micheal - yes I got a .NET app running as a Databricks job here:
https://the.agilesql.club/2024/01/using-spark-connect-from-.net-to-run-spark-jobs-on-databricks/


Add fuzz tests to CI

Codecov Report

Merging #196 (9c98581) into main (54b27fc) will increase coverage by 0.05%.
The diff coverage is 100.00%.

:exclamation: Current head 9c98581 differs from pull request most recent head 631796c. Consider uploading reports for the commit 631796c to get more accurate results

@@            Coverage Diff             @@
##             main     #196      +/-   ##
==========================================
+ Coverage   94.25%   94.30%   +0.05%
==========================================
  Files          65       65
  Lines        4579     4586       +7
==========================================
+ Hits         4316     4325       +9
+ Misses        202      201       -1
+ Partials       61       60       -1

Impacted Files
Coverage Δ

internal/parser/parser.go
92.71% <100.00%> (+1.26%)
:arrow_up:

Continue to review full report at Codecov.

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


manifest: Update hal_nordic with nrfx_grtc fix

This update fixes the nrfx_grtc_syscounter_cc_int_enable() function. Removed clearing and enabling event for the corresponding CC channel inside.

@anangl please take a look

No longer needed after #76330 has been merged.


Ensure EnsureError returns error

Consider adding some tests for this (possibly in a separate PR)

✅ No public API change.


[FEATURE REQ] ADLS: Missing API - PagedFlux onErrorMap function to return a PagedFlux

Is your feature request related to a problem? Please describe.
Related to https://github.com/Azure/azure-sdk-for-java/issues/5825, there is no way to use the onErrorMap function to go from a PagedFlux to a PagedFlux.
PagedFlux extends Flux so the onErrorMap operation returns a Flux.
Describe the solution you'd like
To make the namespace for a user consistent, we need to be able to return a DataLakeStorageException.
Storage needs a way to map BlobStorageException errors to DataLakeStorageException errors for ADLS and this is easily achieved by the Reactor .onErrorMap function.
Additional context
A code sample of the desired functionality is here
            return blobServiceAsyncClient.listBlobContainers(Transforms.toListBlobContainersOptions(options))
                .onErrorMap(ex -> DataLakeImplUtils.transformBlobStorageException(ex))
                .mapPage(Transforms::toFileSystemItem);

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[X] Description Added
[X] Expected solution specified

Adding @anuchandy given his current work may resolve this issue.

PR that add support for generic decoration of PagedFlux (treat errorMap as one of the decoration): https://github.com/Azure/azure-sdk-for-java/pull/6465

the implementation based on the above PR looks like:
PagedFlux<FileSystemItem> pagedFlux = blobServiceAsyncClient
                .listBlobContainers(Transforms.toListBlobContainersOptions(options))
                .mapPage(Transforms::toFileSystemItem);

return new PagedFlux<>(() ->
            (Function<String, Flux<PagedResponse< FileSystemItem>>>) ct ->
               pagedFlux
                 .byPage()
                 .onErrorMap(ex -> DataLakeImplUtils.transformBlobStorageException(ex)));

@anuchandy Any update on the status of the PR?


RG-405M GammaOS 1.5.1 USB-C Headphones not working

RG-405M GammaOS 1.5.1 USB-C Headphones not working
I saw a post saying that the USB-C headphones work on stock OS, so is this specifically an issue with GammaOS?

RG405M has its own 3.5mm headphone jack


Pick coke can variants.

I saw in your eval scripts for pick coke can: declare -a coke_can_options_arr=("lr_switch=True" "upright=True" "laid_vertically=True").
In Table IV in your paper, there's Horizontal Laying, Vertical Laying, Standing three variants. Does lr_switch=True correspond to the Horizontal Laying variant? If so, does that mean you didn't evaluate the default setting where "lr_switch=False, upright=False, laid_vertically=False"?

"lr_switch" is coke can oriented by 180 degrees to match real eval's "horizontally laying" setting.
If you set "lr_switch=False, upright=False, laid_vertically=False" args to False, then the coke can will be oriented randomly. There is no "default setting". The purpose of our experiments is to draw correlation with real-world evaluations under a similar setup, and 3 default orientations (horizontal / vertical laying, standing) with a "grid sweep" over coke can positions already covers many variations.

Thanks for the clarification!

Hello @xuanlinli17, I wonder is it possible to change the position of the Coke can in the simulator?

For xy positions, yes (see example scripts)


feat: update github actions

golangci/golangci-lint-action v4 -> v6
goreleaser/goreleaser-action v4 -> v5
peaceiris/actions-gh-pages v3 -> v4

Periodically, we need to update the versions of the github actions used to solve possible problems.


Populate read only Zone text field when there is only 1 zone in region

Fixed code path that deals with showing zone name as readonly text field when user has only 1 zone in their region, text field was not getting populated and was marked as required field which was causing Add button to remain disabled. Adjusted/fixed failing spec test.
https://bugzilla.redhat.com/show_bug.cgi?id=1361045
https://bugzilla.redhat.com/show_bug.cgi?id=1361308
@dclarizio please review/test. To be able to recreate you should only have 1 zone in your region. This issue was introduced in https://github.com/ManageIQ/manageiq/pull/9992
before:

after:

Darga backport details:
commit 24c96ad86e8744eee19dad0c895b42c12dd9df4d
Author: Dan Clarizio<EMAIL_ADDRESS>Date:   Thu Jul 28 13:51:06 2016 -0700

    Merge pull request #10130 from h-kataria/add_ansible_provider_fix

    Populate read only Zone text field when there is only 1 zone in region
    (cherry picked from commit 5c49eec893af53dee6e698f347d6e51975b7d115)


Add type hints

Probably the most complex typing PR I've done, so definitely would appreciate a thorough look from someone else @___@  I had to learn a few things for this one, so hopefully I implemented it all correctly!

Change # 1 - Changed to Union[bytes, bytearray] and also added the missing type hint for buf
Change # 2 - Added
Change # 3 - Added
Change # 4 - Left as bytearray for now but I'll change it if I misunderstood and that parameter can be of type bytes


LUCENE-10010: configuration items of the alg file are adapted to the …

Fix alg suffix file, NewAnalyzerTask class(Same as LUCENE-10091) to be compatible with 9.0.

Hi @mikemccand, I fixed some obsolete config items and code in the master branch. 😊


When searching for messages the result cannot be opened

Use the search field to search for an an existing E-Mail (in my case an email)
Click on the mail
Mail will not open

Hi @oers
I can't reproduce it locally, following the same steps appears to work as expected.
Could you give a bit more info, e.g. how many messages MailHog was storing, which page you were on, are you running a single MailHog binary or separate Server/UI binaries, or anything else you can think of that may be relevant!

also happens for me.
OSX 10.11.4, mailhog installed through homebrew and managed through homebrew services, using chrome
From the main page, at http://localhost:8025/, type something in search, hit enter, results are shown.
On clicking, this appears in the js console
controllers.js:330 Object {}
controllers.js:440 Object {ID<EMAIL_ADDRESS>From: Object, To: Array[1], Content: Object, Created: "2016-04-28T12:09:52.470072631+02:00"…}

obviously ids and content change, but the same happens clicking on any message in the search results.

Version
v1.0.0
Steps to reproduce

search with keyword

click on the mail

Description
It should be a layout issue, as the mail view is always append at the bottom of the body.

This is still an issue as far as I can see. With a very brief glance at the markup, it looks like the ng-if="searching" condition needs to pay attention to the preview flag also

This is still an issue for us.
We are running MailHog v1.0.0 with mongodb as the storage backend. We have thousands of messages.
If I make a search, I might get back dozens or hundreds of messages. It doesn't seem to matter whether all the search results fit on one page or multiple pages.
I looked into the response from the API call to the search function. The Content body is empty. Here is a snippet from the Chrome console:
{total: 23, count: 23, start: 0,…}
count: 23
items: [{ID: "Uho3UoF7NkvxONk9koRJr_Q8thoReqfF6M8DC9IguIE=@mailhog.example",…},…]
0: {ID: "Uho3UoF7NkvxONk9koRJr_Q8thoReqfF6M8DC9IguIE=@mailhog.example",…}
Content: {,…}
Body: ""
Headers: {Content-Type: ["multipart/related; boundary="----=_Part_5844_484526894.1570801975779""],…}
MIME: null
Size: 7002
Created: "2019-10-11T09:52:55.786-04:00"
From: {Relays: [], Mailbox: "support", Domain: "doxpop.com", Params: ""}
ID<EMAIL_ADDRESS>MIME: null
Raw: {From<EMAIL_ADDRESS>To: ["amyb@doxpop.com"],…}
To: [{Relays: [], Mailbox: "amyb", Domain: "doxpop.com", Params: ""}]

We are having this issue in our mailhog instance. Whenever we search and try to open an email from the search result we can't see the body of the email.

Same here


Nuxt 2.0 upgrade / issues

Nuxt 2.0 has been released, I had some issues upgrading to this, when would Nuxt 2.0 be supported for this template?

Here is a working nuxt2 and vuetify  project.
https://github.com/p1pchenk0/nuxt-vuetify-ala-carte

The key change is
  build: {
    extractCSS: true,
    transpile: [/^vuetify/],
    babel: {
      plugins: [
        [
          "transform-imports",
          {
            vuetify: {
              transform: "vuetify/es5/components/${member}",
              preventFullImport: true
            }
          }
        ]
      ]
    },

Thanks for this! It's working now! Should probably consider adding this to the README.md?
/cc @husayt


Obsolete  GO:1904766  negative regulation of macroautophagy by TORC1 signaling

GO:1904766  negative regulation of macroautophagy by TORC1 signaling
has 3 EXP.
Is the plan to create terms like this?
TOTC1 signalling is involved in lots of processes, but elselwerhe we haven't combined the signalling pathway with what it regulates.
This would be unsustainable.
For example:
negative regulation of autophage
https://www.pombase.org/results/from/id/75c4642e-7380-4e45-8602-68d1fbc14ae6
both of these are TORC1signalling  (or it's regulation)
but we would also need
to add terms for  all of the other processes TORC1  signalling regulates

+
negative regulation of cell cycle switching, mitotic to meiotic cell cycle

| negative regulation of G2/M transition of mitotic cell cycle
| negative regulation of induction of conjugation with cellular fusion
| negative regulation of macroautophagy
| positive regulation of cell growth
| positive regulation of cytoplasmic translation
| positive regulation of G1/S transition of mitotic cell cycle
| positive regulation of nuclear-transcribed mRNA catabolic process, meiosis-specific transcripts

etc,
is it generally a plan to precompose signalling pathway terms with the processes they regulate?

Hi,
This is a Term Genie term (id starts with GO:19xxxx). We do not plan to precompose terms like this anymore, unless there is a very good reason for the exception.
This should be obsoleted.
Thanks, Pascale

Precomposed term; annotations (3EXP) should be replaced by a GO-CAM model.


With the Google Search tool, only the page snippets are sent to the LLM / GPT

What happened?
The Google Search tool sends only tiny fractions of the search result pages. This does not give the LLM much to work with.
Steps to Reproduce
Configure and add the Google Search plugin to either the Plugins or Assistants (my preference) modes.
Ask a question that will necessitate a web search. Open the result that is sent back to the LLM: This is the raw Google Search results JSON, which only includes page titles and snippets (a tiny extract of the page), but not the actual contents of the search result pages.
PR
I've modified the Google Search tool to extract page contents using Readability.js, and to return all of that to the LLM. See #2419
Code of Conduct

[X] I agree to follow this project's Code of Conduct

This is expected. I appreciate the effort in addressing this, I'm not sure I would expect the tool to scrape the search results.

Personally I've not been able to come up with another way of giving the LLM access to page contents.
Please let me know how you would like to proceed. :)

Personally I've not been able to come up with another way of giving the LLM access to page contents.
Of course we could give it a PageContentsFetch tool (which one should consider, very helpful when you want to ask it questions about a specific page), but this would come down to the same, just take a bit longer.
Please let me know how you would like to proceed. :)

scraping is fine just allow some way to configure proxies (including socks5) for however the scraping is done. Personally I wouldn’t want to host any LLM scraping without rotating proxies at work.

Do you want the scraping logic to support the rotation internally (i.e. get list of proxies from configuration, rotate / randomize over them), or are you OK with a proxy being configurable? (in which case users will have to make use of a proxy-proxy service that rotates the upstreams)
Note to self: Look into https://github.com/TooTallNate/proxy-agents/tree/main/packages/proxy-agent

No need, it just needs to handle simple proxy configuration, ideally both regular and SOCKS5 proxies. A lot of proxy services do the rotating for you and that might be beyond the scope of the project

I've added proxy-agent which honours the standard environment variables for using proxies, and then selects the right {http,https,socks}-proxy-agent.


Bug in v0.3.0

Bugs

[x] - Error with about window
[x] - Tips and Tricks window can't be moved and is always on the main display and not with main window
[x] - Search in snippets not working as expect. Not filtering by favourites, If nothing found doesn't show empty list

For favourites filter to work, users will need to toggle on and off fav for each snippet.

Closed with https://github.com/amommersteeg/lemonaid-stand/pull/29


Updated Dataview breaks most queries

This appears to be related to newer version of luxon that changes behavior as described here.  https://github.com/blacksmithgu/obsidian-dataview/issues/1769#issuecomment-1399647016

Oh interesting, I'll take a look tomorrow (hopefully).

I waiting for you to fix it. I also have the same issue

Ok so I've pushed an update which replaces all luxon usage with dv.luxon, tested with latest plugins/obsidian and seems to all work.
Many files created from templates (like Cycles and Actions) will still reference luxon directly and need to be updated. Steps to migrate existing files are:

Opening your vault in vscode (or any text editor with find+replace)
Find in your whole vault (cmd/ctrl+shift+f), enable regex in the find dialog (.*)
Filter down to only *.md files so as to not mess with any *.js files from plugins.
Find: , luxon,
Replace: , luxon:dv.luxon,
Find:  luxon,\n
Replace:  luxon:dv.luxon,\n
Find: \{luxon,
Replace:  {luxon:dv.luxon,
Find: luxon\}
Replace: luxon:dv.luxon}
Find: ([^.])luxon
Replace: $1dv.luxon

Find: ([^.])luxon
Replace: $1dv.luxon

I am  really appreciate it!


Video saving into Picture folder

Did you check the documentation and it did not help?

[X] I have read the README
[X] I have searched the existing documentation
[X] I have searched the existing answer
[X] I have read the contribution guide

When I am saving video with an album name (e.g. await Gal.putVideo(tmpVideoPath.path, album: 'Intro Maker');) the video saving into 'Picture/Intro Maker' directory.
My phone is a Galaxy s8, android v10 (Custom ROM).

We cannot respond until the DESCRIPTION item is filled

This behavior is currently as intended.

What I will give in the description?
Now I have checked your code. In native you called same for both video and image
GalPlugin.java (line63)
switch (call.method) {             case "putVideo":             case "putImage": {                 new Thread(() -> {                     try {
And in the createContentValues method The condition Is (I think not right).
GalPlugin.java (line167)
private ContentValues createContentValues(boolean isImage, String name, String extension,
            String album) {
        ContentValues values = new ContentValues();
        String dirPath = isImage || album != null ? Environment.DIRECTORY_PICTURES
                : Environment.DIRECTORY_MOVIES;
 ......

What I will give in the description?
Simply fill in the items as per the template. You have erased it and it is no longer visible.

Now I have commented. Please check

When specifying a custom album, it is intended that it be created under Picture. I don't remember, but I think there was a reason it couldn't be created under Video🤔

After I removing the album != null from the createContentValues method my video has been saved into 'Movies/Intro Maker' directory. So I think it is possible
And it not good practice to use your code by changing in my side. Because there could be more conditions which I don't know.
So please handle it

One thing I just remembered. I believe that this will result in a behavior that is not as intended for many people.
For example, when you save a file with the folder name MyFolder, if you save it in Pictures for images and Movies for videos, two folders named MyFolder will be created.

Any update? Same issue with android 13, Samsung Galaxy A71. await Gal.putVideo(filePath, album: 'MyAlbum');.  MyAlbum saved in Pictures instead of Movies and the video does not show in the Gallery.

As you can see from the thread above, this behavior is intentional and will not be changed. And this issue will be closed soon as there has been no reply from the author.

Solved by:
I imported the library as a local into my project. And removed the '|| album != null' (from GalPlugin.java:172).

Yes. This change is not intentional for many people and should be made privately.

I don't understand why many people would want the video to be saved in the Pictures directory.

Read the thread to find out. Let's say you are developing a camera app and you want to have a directory for your app. If you create separate directories depending on whether it was a photo or a video that was taken, users will be confused.

Read the thread to find out. Let's say you are developing a camera app and you want to have a directory for your app. If you create separate directories depending on whether it was a photo or a video that was taken, users will be confused.

For those types of cases (e.g. camera app) there should be a boolean variable isSingleDir. If false, it should be a separate folder (as I'm thinking). If true, there could be two solutions:

The folder will be created into the Camera (DCIM) folder. All the videos & images will be saved (for the Camera app) here
The folder will be created into the storage root folder (not inside the Pictures folder) with the given name.

I cannot support that approach because it is not aesthetic.
And we need to know the use case in more detail: do you want to create your own album in the Movie folder? And your app only stores videos?

Yes. My app now creates only videos (an image feature could be added in the future). I need to save the video inside the user's video directory (Videos/Movies).

Thank you very much. I am looking for a clean approach on this issue, but currently no quality ideas exist that can be merged into the main branch.
My goal is to make this plugin simple and easy to use for many people, and most importantly, it needs to be supported in the long term. For this reason, I may be cautious about adding features. Thank you for your understanding.


⚠ RbxVeri has degraded performance

In ee56666, RbxVeri (https://verify.triza.dev) experienced degraded performance:

HTTP code: 200
Response time: 17921 ms

Resolved: RbxVeri performance has improved in 619343b.


pull request for e2e test at 12/13/2016 13:56:03

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Chunked encoding gets doubly chunked when using puma corrupting the content

I am running a Rails app in puma and using rack-streaming-proxy to proxy a MJPEG HTTP stream. The stream is a multipart message in chunked encoding. The proxy seems to break the stream by not proxying it as chunked encoding.  All the code is here:
https://github.com/pedrocr/camerasink
Testing with telnet the original stream returns:
HTTP/1.0 200 OK
Server: camerasave
Date: Fri, 18 Apr 2014 11:13:06 GMT
Transfer-Encoding: chunked
Content-Type: multipart/x-mixed-replace;boundary=SurelyJPEGDoesntIncludeThis

51
--SurelyJPEGDoesntIncludeThis
Content-Type: image/jpeg
Content-Length: 9437

(the image contents go here, the headers after "51" are repeated on every new image)

The same stream after being proxied with rack-streaming-proxy and puma returns:
HTTP/1.0 200 OK
server: camerasave
date: Fri, 18 Apr 2014 11:12:16 GMT
content-type: multipart/x-mixed-replace;boundary=SurelyJPEGDoesntIncludeThis
Cache-Control: no-cache
X-Request-Id: c68247f6-e4ef-4507-b34c-c37330062289
X-Runtime: 0.256272
Connection: close

--SurelyJPEGDoesntIncludeThis
Content-Type: image/jpeg
Content-Length: 9427

(the image contents go here and the headers get repeated as well)

The difference seems to be that the proxied request doesn't have chunked encoding. At least in firefox this breaks the MJPEG streaming.

I've managed to get a basic version working with rack_hijack and this works with puma. Unfortunately this will mean a separate implementation for servers that support rack hijacking and those that dont.
Additionally I've made it work by violating the encapsulation of the Net::HTTP class to grab the socket inside once the request is sent which is probably not ideal lol.

@evanphx Using middleware for chunking was a bad idea from the outset, it turns out. The problem being that it's consistently poorly defined for a server whether an app has performed chunking already. My recommendation is that you assume that if you are on http 1.1+ and have no content length and no connection:close, and no transfer-encoding:chunked, then you should be safe to apply chunked encoding. If any of these are otherwise, you may break user required semantics. If you see an explicit transfer-encoding:identity (which is deprecated since RFC7230) then you also probably shouldn't re-encode. Some protocols have unfortunate recommendations in this area (glaring at Server Sent Events in particular).

As far as this ticket goes, I think the core problem in rack-streaming-proxy is that this class https://github.com/zerowidth/rack-streaming-proxy/blob/master/lib/rack/streaming_proxy/response.rb should be declaring Transfer-Encoding:chunked, given that it's outputting chunked encoding. It is not doing so, and as such servers have no way to know of the encoding. Somewhere else, code is generating a non-canonical "transfer-encoding" header also, that may be missed in other tests. I strongly recommend canonicalizing to avoid such issues, but either way, whatever is missing that is buggy too.
https://github.com/zerowidth/rack-streaming-proxy/blob/master/lib/rack/streaming_proxy/proxy.rb#L87-L91 is wrong.
https://github.com/zerowidth/rack-streaming-proxy/blob/master/lib/rack/streaming_proxy/proxy.rb#L93-L96 is also wrong, iff it still chunks.
https://github.com/zerowidth/rack-streaming-proxy/blob/master/lib/rack/streaming_proxy/response.rb#L76 single line reads are insufficient to read all the headers. You need a parser here, although I'm not entirely sure what @piper is, given that this is a rack proxy, but gets suggests the wrong kind of read.

@piper is an interprocess communicator. The actual response handling code is here https://github.com/zerowidth/rack-streaming-proxy/blob/master/lib/rack/streaming_proxy/session.rb#L85 which just uses Net::HTTP

@raggi Ok, thanks for the clarification. Puma already disables it's own chunked encoding if any Transfer-Encoding header is present, since that's the only safe assumption.


Integrate to GlassFish

[ ] Integrate to Eclipse GlassFish
[ ] Pass all CTS/TCK tests

#11 must be finished before starting working on this task.

JAF is not integrated with GlassFish because it's part of Java SE 8.
When GlassFish supports SE 9 or later, it will need to integrate JAF.
The staged JAF release passes the JAF TCK.


Network policy latency test clients v.0.0.1

A golang client application that runs in pods inside a K8s cluster, and measures network policy enforcement latency for changes to pods and network policies.
Details are in the README.md file.
Main purpose: Test network policy performance and scalability by using it with ClusterLoader2 framework.
/kind feature

/assign @alan-kut

I refactored the code. Extracted all common code into separate package and split the modes into two applications pod-creation-reachability-latency and policy-creation-enforcement-latency.
@alan-kut Please take another look.

Hey @marseel, can you give LGTM for this one, so I can merge it?
@alan-kut reviewed it.

/lgtm


Next release before 23th January (Debian freeze)

Please prepare a new release (minimum two weeks) before the 23th January.
At this date Debian will do enter its freeze phase.
Give the distro maintainers some time to prepare your package.
Please let me know if you don't have direct contact to them to trigger a new package process. I can do the contact in that case.

Thanks for the reminder! I tend to make patch releases frequently enough, so this should not be problem. Probably some time around Christmas...
I don't have direct contact to package maintainers, only occassionally if there is a problem wth packacking a version.

Release done.

Great. Usually Debian automatically track new upstream released.
But to speed the process up I opened a wishlist-bug on Debian
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1028582


Early client impl and docs scaffolding

What was changed

Added client impl

Supporting new core approach

Added docs scaffolding

I have opened this early PR for review. I still have things of course to do such as:

Error structure
Better documentation
Tests

Note, this is not cleanly applying on top of what's in main, so I'll be opening a new PR from a different branch when we're ready for full review

Since there have been no comments here, I am going to close this and make a new branch properly rebased on main.


How to get text output from Language models

I'm struggling to get text output from BERT given a prompt. Looking through the code I've understood that the flow for inference should be something like this:
let bertPretrained = BERT.PreTrainedModel.bertBase(cased: false, multilingual: false)
let workspaceURL = URL(fileURLWithPath: "bert_models", isDirectory: true,
                       relativeTo: URL(fileURLWithPath: NSTemporaryDirectory(),
                                       isDirectory: true))
let bert = try BERT.PreTrainedModel.load(bertPretrained)(from: workspaceURL)

let input = "The quick brown fox " //feed this to the model and see what it thinks comes next

let batch = bert.preprocess(sequences: [input])

let rawOutput = bert(batch)

//TODO:
// de-embed rawOutput? or is it called de-coding?

//de tokenize - reverse whatever bert.tokerizer.tokenize does, I guess

Some help getting from rawOutput to a String would be much appreciated.
Thanks!

BERT is a general-purpose "language understanding" model. It doesn't have text output. The output of it is nothing but a logical representation of the input text in form of a vector of hidden_size. It's usually used for downstream NLP tasks by attaching extra layers on top of it. In our example here we attach a classifier to execute a classification task which classifies if the input sentence is grammarly legit or not.
Back to you problem, can I ask what NLP task are you running ? If it is the classification task as we do, the output from BERT is nothing but tensors and final output from the classifier is 0 or 1.
Since in the title you mentioned "get text output from Language models", I can speak of GPT2 for your information. This model does language generation and have text output. So inputting a sentence will output a most likely next sentence. See here.

Thanks for the explanation, I wasn't sure BERT and GPT-2 were usable in the same ways, and you confirmed that for me. I've used GPT-2 for generation and was hoping I could use Albert as a more lightweight way to do it, but it looks like the models are not totally analogous in their abilities. Thanks, I'll go back to GPT-2!


Finally time to actually add a thermal pressure profile class

There is no reason we couldn't have done this before - just a bandwidth thing.
Everything required to measure a pressure profile can already be measured, just needed to put it together - this is going to be extremely similar to the entropy profile class (simpler than the mass profile class because we don't need to care about gradients of the temperature and density profiles).
So will throw together a thermal pressure profile class.

That commit above was a typo, not a pressure model, a pressure profile class

Will also need to solve #1276 for this to be fully closed - and add a couple of pressure models to fit.

This might now be working?


@conda-forge-admin,please add bot automerge

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/r-sits-feedstock#7.


could not open resolv.conf?

Anybody knows why I get this error?
PS D:\Dev\WSL\LxRunOffline-v2.2.2> D:\Dev\WSL\LxRunOffline-v2.2.2\LxRunOffline.exe install -n Ubuntu1604 -f ..\ubuntu-16.04-server-cloudimg-amd64.tar.gz -d ../Distros/Ubuntu1604
[ERROR] Couldn't open the file or directory "D:\Dev\WSL\Distros\Ubuntu1604\rootfs\etc\resolv.conf".

It happens with both of these images:
https://cloud-images.ubuntu.com/releases/artful/release/ubuntu-17.10-server-cloudimg-amd64.tar.gz
https://cloud-images.ubuntu.com/releases/xenial/release/ubuntu-16.04-server-cloudimg-amd64.tar.gz
It works when using the tar files from https://lxrunoffline.apphb.com/download/{distro}/{version} as the Wiki suggested but I don't want to use them because those are Ubuntu core images which do not contain sudo (command not found) or updating the system did not work (apt-get).
Thanks

You used the wrong image files. These files don't directly contain root filesystem. You can download correct files using instructions in Wiki

You can use apt-get to install ubuntu-minimal ubuntu-standard ubuntu-server to create a Ubuntu Server installation from Ubuntu Core.


fix(libsinsp): modify switch case

What type of PR is this?
/kind bug
Any specific area of the project related to this PR?
/area libsinsp
Does this PR require a change in the driver versions?
I am not sure about this.
What this PR does / why we need it:
@dwindsor @incertum
Noticed this while working on another issue. Shouldn't this be using the PPM socket type like the rest of the socket types in this "if/else if" case statement. You can see we are using PPM_AF_INET6 & PPM_AF_INET, so why are we not using the PPM_AF_UNIX def?
Which issue(s) this PR fixes:
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ecbadeaux
Once this PR has been reviewed and has the lgtm label, please assign lucaguerra for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: ecbadeaux, incertum
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [incertum]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: 40fa9550762df80583b2d09124b58fa6c28d2aa1

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: ecbadeaux, FedeDP, incertum
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP,incertum]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/milestone 0.14.1
I think this is a small yet important fix for 0.14.1


Provide separate route tables for db/elasticache/redshift

Hi,
I've created separate route tables for the database, elasticache and redshift subnets.
Currently the db subnets automatically attach to the private subnet (which in turn is NAT'd out). This means the databases by default have a route to the internet.
This breaks the standard 3 tier dmz approach and I believe this shouldn't be the default. If users want to allow this, they can manually add in routes so their database subnets can be NAT'd out.
Let me know what you think and if you require any changes. Thanks for your hard work :smile:

+1

Thanks for the PR!
Yes, it makes sense to make it slightly differently from how it is implemented now.
Few comments:

Make configurable if a user wants to use private route tables (as before, by default) OR create individual tables. This will require 3 new boolean variables - create_database_route_table, create_redshift_route_table, create_elasticache_route_table - all set to false by default.
Update documentation describing your use-case and show piece of code (either in README or make a new example in examples).

Can be get it merged.

After long discussions and several PRs I believe this issue is now resolved and can be closed. See https://github.com/terraform-aws-modules/terraform-aws-vpc/pull/132#issuecomment-414071092 for details.


Move Wiki pages to Snabb Switch tree

[x] Documentation Guide (this still has a TODO, see comment below)
[x] Snabb NFV Wiki
[ ] Most pages in the Wiki are either obsolete or very outdated. Which ones should be kept and updated?
[ ] Review new documents

I reckon the Snabb NFV wiki pages should move into src/program/snabbnfv/doc/.

The Installation and Configuration with Neutron (previously "Software Installation") have intersecting content. We should either:

Merge them into one document
Split the scopes clearly (which?)

Actually Configuration with Neutron (previously "Software Installation") seems outdated. I will rm it.

@lukego Could you go through the Wikis and delete any pages that you can part with? Right now this PR imported:

Documentation Guide
(Getting Started Guide is already moved)
NFV Architecture
NFV Compute Node Requirements
NFV Installation
Neutron API Extensions

Or alternatively tell me what I missed. I can't find any more non-outdated or obsolete pages. One edge-case: "Snabb Lab" should probably just stay in the Wiki, right?

This is awesome!
I have attempted to update the Snabb Switch and Snabb NFV wikis to remove unneeded pages and leave some forwarding pointers to the repo. (Currently they point to the next branch but could be updated when this documentation lands on master.)
There is some general information embedded in the Scenario tests page that we need to migrate into its own file i.e. how to configure the Neutron driver and tell it about the network setup. The challenge here is that currently the Neutron driver supports a very specific kind of network that is quite unlike what most people have. In the future it needs to be extended very slightly to support traditional vlan and flat network models too. Then the user will not have to fuss about this extra configuration.
Do you think more action is needed right now for this PR?

Since you kept Device Driver Programming I reckon I should import that too? Regarding Writing an application configuration, should we really keep it around? Seems to duplicate info from the "Getting started guide".
Regarding "Scenario tests", I honestly don't understand much of its content.

Device Driver Programming should die, but upon reading it I realized that I would like to start writing small introductory texts like that in the future, as simple entry points into the code. I was distracted by nostalgia and did not press Delete :).
Scenario Tests... That is alive because currently it is the only place where I can point to the description of the config file format for our Neutron ML2 plugin. That information needs to exist in some good place. The rest can go... it was a draft write-up while we were preparing the end-to-end tests for our OpenStack setup (which should also be documented Somewhere Else).

Closing because this was merged into next.


simple playground share

not sure when I am going to shutdown, but I will leave this for few hours at least (running on RTX5000). maybe I will put things up in GKE later for tester purpose
NOTE: didn't do anything about maintaining the context yet
https://notebooksa.jarvislabs.ai/P1lDk5ziArYf6hVUkcne1vVlbwica44Ux7zNWyAeq-c69p-j0D1_ktPMmBKniGk8/

any tips to speed up the inference speed?

@deep-diver which model is this playground running? also what hardware?

it runs the model shared by @tloen on 7 core CPU / 32GB with a single RTX5000. I am hosting it in jarvislabs.ai


have_streaming_load -> has_streaming_load

Bring the attribute name in line with the readme, which uses the grammatically correct has_streaming_load.

The have_* style is from configure, and speaks from the library's point of view ("I have ...").


Wrong Github Link in package.json

There is a wrong repo link in this project's package.json: https://github.com/sinnerschrader/aem-react-js/blob/master/package.json#L24
Using it means being taken into a rather crappy adverspamming redirect cascade.

:+1:

👌


Installing additional packages on the dask workers

I'd like to install additional packages on the workers.
Typically, I'd use the following script to install packages on the dask workers:
from dask.distributed import Client
client = Client()
plugin = PipInstall(["xarray[io]", "dataretrieval", "earthaccess", "geopandas", "h5netcdf"], pip_options=["--upgrade"])
client.register_plugin(plugin)

However, when I use this code, the installed packages do not show up when I use client = dask_databricks.get_client(), and conversely, I can't install the packages using the client from dask_databricks.get_client().
Any advice would be appreciated.

My workaround for now is to install the required libraries with the init script, e.g.,
#!/bin/bash
#Install dependencies to see if they make it to Dask:
/databricks/python/bin/pip install --upgrade xarray[io] dataretrieval earthaccess geopandas h5netcdf
Install Dask + Dask Databricks
/databricks/python/bin/pip install --upgrade dask[complete] dask-databricks
Start Dask cluster components
dask databricks run

I can't install the packages using the client from dask_databricks.get_client()

I'm curious why this isn't working. Do you get an error? Or does the installation just not take effect?

Actually, it does work. I probably had tried a few things yesterday, and maybe when I initially tried the deprecated distributed.worker.register_plugin(), it caused issues.
Just to document the process for installing new packages, one can use the following:
import dask_databricks
client = dask_databricks.get_client()
print(client.dashboard_link)

from dask.distributed import PipInstall
plugin = PipInstall(["rioxarray"], pip_options=["--upgrade"])
client.register_plugin(plugin)

Subsequently, one may test the install with:
def testinstall():
    import rioxarray
    return rioxarray.__version__

client.submit(testinstall).result()

That's great, glad you got things working.


DAGs: Change SnapATAC to ArchR for the pipeline shorthand.

This is to make sure that we are using the latest pipeline description moving forward.

@mruffalo confirmed that new pipeline runs moving forward should use this name.


update intellisense docs to include intellij

intellij is very similar to vscode, just requires some settings digging:

tried submitting a PR but this repo is locked down 😢

or you guys can add it in yourselves 🤷
// add IntelliJ tab:
<Tabs items={['VSCode', 'Neovim', 'IntelliJ']}>

// add tab
  <Tab>
    If you are using **IntelliJ** and the [**Tailwind CSS Plugin**](https://plugins.jetbrains.com/plugin/15321-tailwind-css), go to **settings** -> **Languages & Frameworks** -> **Style Sheets** -> **Tailwind CSS** and add the following to the configuration.

    ```json copy
      "experimental": {
        "configFile": null,
        "classRegex": [
          ["tv\\((([^()]*|\\([^()]*\\))*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]"]
        ]
      }
    ```

  </Tab>

i don't do this enough 🤦  i didn't realize you can create a PR from a fork
https://github.com/nextui-org/tailwind-variants-docs/pull/27


Change .env variable names to match lnbits.py

The required values are expected in LNBITS_INVOICE_KEY & LNBITS_ADMIN_KEY according to https://github.com/lnbits/lnbits/blob/master/lnbits/wallets/lnbits.py

Codecov Report

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

@@            Coverage Diff             @@
##           master     #109      +/-   ##
==========================================
- Coverage   32.53%   32.04%   -0.49%
==========================================
  Files          27       27
  Lines        1494     1470      -24
==========================================
- Hits          486      471      -15
+ Misses       1008      999       -9

Impacted Files
Coverage Δ

lnbits/core/views/generic.py
29.11% <0.00%> (-5.01%)
:arrow_down:

lnbits/core/views/api.py
25.77% <0.00%> (-5.00%)
:arrow_down:

lnbits/commands.py
26.31% <0.00%> (-2.50%)
:arrow_down:

lnbits/app.py
28.57% <0.00%> (+3.25%)
:arrow_up:

Continue to review full report at Codecov.

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

Great!


Feature request: Support meltano init in non-empty directory

Follows from

https://github.com/meltano/meltano/pull/6814,

which was authored by @ReubenFrankel and which allows meltano init to target existing (empty) directories.
This new feature would also add support for non-empty directories.
Safety considerations:
If the operation would overwrite any critical project files such as meltano.yml, then the init operation should fail before beginning any file or directory write operations. (Aka, it should not fail mid-operation.)
Optionally, a --force option could be utilized to bypass checks and simply write all files and overwrite existing directory contents.
Handling .gitkeep files
When we check for meltano init safety, we probably want to ignore the presence of .gitkeep files and directories themselves. The argument goes that, while adding a new meltano project to an existing repo would not have those conflicts, the tutorial use cases will have those conflicts.
In order to streamline tutorial use cases, we would not want the user (or the tutorial maintainer) to have to first delete all the .gitkeep files before they are able to run or re-run meltano init.

When we check for meltano init safety, we probably want to ignore the presence of .gitkeep files and directories themselves. The argument goes that, while adding a new meltano project to an existing repo would not have those conflicts, the tutorial use cases will have those conflicts.
In order to streamline tutorial use cases, we would not want the user (or the tutorial maintainer) to have to first delete all the .gitkeep files before they are able to run or re-run meltano init.

the tutorial use cases will have those conflicts.

@aaronsteers If the <plugin type>/.gitkeep files are present, maybe tutorial repos could have a meltano.yml already present too, so I'm curious

Yes. I thought of this too. Currently, @sbalnojan's walkthrough tutorial does run meltano init, so I assume it is valuable to do so. Mainly, I think the goal is to give the user a 'feel' for the flow of how to start their project, while not starting them entirely from scratch.

what would meltano init accomplish in those cases?

It generates the boilerplate meltano.yml file.

do we want to fail the init operation if meltano.yml is present?

Good question. I think we could make a good case either way: either allow --force to override an existing meltano.yml or else make meltano.yml the one file that --force will not overwrite. (Instead, we'd ask you to delete it first if that's really what you want to do.)

Good question. I think we could make a good case either way: either allow --force to override an existing meltano.yml or else make meltano.yml the one file that --force will not overwrite. (Instead, we'd ask you to delete it first if that's really what you want to do.)

@aaronsteers that makes sense. Poetry does a similar thing
$ poetry init
A pyproject.toml file with a poetry section already exists.

Meltano would have a --force flag to override it in that case.


Add test to closing websocket 2 times

Add test to cover all branches in function to disconnection for ws.

I like PR to tests 😍


Performance Between Direct Socket and JedisCluster

Expected behavior
Performance is same between direct socket and jedisCluster
Actual behavior
Performance is not same between direct socket and jedisCluster
Steps to reproduce:

First I make a long socket connection to redis port,and send the same command 100000 times.Then i found just one or two responses are longer than 5 milliseconds.
command as follows:
String ctl="\r\n";
String command="*2"+ctl+"$3"+ctl+"GET"+ctl+"$19"+ctl+"6217002020056574552"+ctl;
OutputStream os=socket.getOutputStream();
InputStream is=socket.getInputStream();
byte[] buf=new byte[1024];
long start=System.currentTimeMillis();
long begin=System.currentTimeMillis();
for(int i=0;i<100000;i++){
os.write(command.getBytes());
os.flush();
start=System.currentTimeMillis();
int length=is.read(buf);
if(length!=-1){
long span=System.currentTimeMillis()-start;
if(span>5)
System.out.println("query long time:"+span);
}
}
total time:20884ms

Then I use the JedisCluster with one single thread and also send the same command 100000 times.But i found about 15 responses are longer than 5 milliseconds,even longer than 10 milliseconds.
String key="6217002020056574552";
long start=System.currentTimeMillis();
long begin=System.currentTimeMillis();
for(int i=0;i<100000;i++){
start=System.currentTimeMillis();
String value=JedisFactory.getCluster().get(key);
long span=System.currentTimeMillis()-start;
if(span>5){
System.out.println("query long time:"+span);
System.out.println("value:"+value);
}
         }

total time:31819ms

So i want to know follows:
i.If the Redis itself have fluctuation in query a key(such as avg maybe 0.2milliseconds but some may be       2 or 3 milliseconds)?
2.What may be the reason to cause the performance difference?

Thks!
Redis / Jedis Configuration
Jedis version:jedis-2.8.1
Redis version:redis3.2.1
Java version:1.7

@sheinbergon
Yes,you're right, JedisFactory  is my own class not the "redis.clients.jedis.JedisFactory".Code as follows:
public class JedisFactory {
private static JedisCluster cluster;
private static List hostList;
private static Set list=new HashSet();
public static void init(List addresslist){
if(JedisFactory.hostList==null){
JedisFactory.hostList=addresslist;
for(String host:hostList){
list.add(new HostAndPort(host.split(":")[0],Integer.valueOf(host.split(":")[1])));
}
JedisFactory.cluster=new JedisCluster(list);
}
}
public static JedisCluster getCluster() {
return cluster;
}
public static void close(){
try {
if(cluster!=null)
cluster.close();
JedisFactory.hostList=null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.I think the 'computational load' is very small, comparing to some abnormal response time.And i  add some logs in the class 'redis.clients.jedis.Connection':
public byte[] getBinaryBulkReply() {
flush();
long start=System.currentTimeMillis();
pipelinedCommands--;
byte[] returnByte=(byte[]) readProtocolWithCheckingBroken();
long span=System.currentTimeMillis()-start;
if(span>5)
System.out.println("________________jedis get time:"+span);
return returnByte;
// return (byte[]) readProtocolWithCheckingBroken();
}
Also can find about 15 responses are longer than 5 milliseconds,even longer than 10 milliseconds,in 100000 times 'get'.
So i guess if the Redis itself have fluctuation in just query a key(such as avg maybe 0.2milliseconds but some may be 5 or 6 milliseconds)?

You could also be encountering GC pauses -- among many other differences your hand-crafted version reuses the read buffers, while the Jedis version is allocating a new string for each read. In order for this to be helpful feedback to the Jedis project, I think you'd have to provide an example of unreasonable pauses within Jedis itself, or of unneeded GC churn.

@joffier I believe @avram input is crucial. You can always follow a guide like this https://plumbr.eu/blog/garbage-collection/understanding-garbage-collection-logs and see the GC details behavior.
Also , when benchmarking , be sure to prestart the JVM with large enough Eden + Heap and in any case,let the JVM "warm-up" ( conduct some "unmeasured" test iterations before commencing with the measured one )

I'll close this as it leads nowhere. @joffier if you make a more comprehensive and realistic test and still think that there's need for improvement in Jedis, please open a new issue.
@avram @sheinbergon thx a lot for your feedback.


[BUG]: TypeError: 'type' object is not subscriptable

playsound is relying on another python subprocess. Please use pip install pygobject if you want playsound to run more efficiently.
Traceback (most recent call last):
File "pilot/server/llmserver.py", line 21, in
from pilot.configs.config import Config
File "/root/autodl-tmp/DB-GPT/pilot/init.py", line 1, in
from pilot.source_embedding import SourceEmbedding, register
File "/root/autodl-tmp/DB-GPT/pilot/source_embedding/init.py", line 1, in
from pilot.source_embedding.source_embedding import SourceEmbedding, register
File "/root/autodl-tmp/DB-GPT/pilot/source_embedding/source_embedding.py", line 8, in
from pilot.vector_store.connector import VectorStoreConnector
File "/root/autodl-tmp/DB-GPT/pilot/vector_store/connector.py", line 1, in
from pilot.vector_store.chroma_store import ChromaStore
File "/root/autodl-tmp/DB-GPT/pilot/vector_store/chroma_store.py", line 5, in
from pilot.logs import logger
File "/root/autodl-tmp/DB-GPT/pilot/logs.py", line 13, in
from pilot.speech import say_text
File "/root/autodl-tmp/DB-GPT/pilot/speech/init.py", line 1, in
from pilot.speech.say import say_text
File "/root/autodl-tmp/DB-GPT/pilot/speech/say.py", line 34, in
def _get_voice_engine(config: Config) -> tuple[VoiceBase, VoiceBase]:
TypeError: 'type' object is not subscriptable

Has your issue been resolved? I recommend trying the latest version for potential improvements.
Installation
python >= 3.10
conda create -n dbgpt_env python=3.10
conda activate dbgpt_env

# it will take some minutes
pip install -e ".[default]"

Usage documentation

quickstart


update cmd command

The cmd command have a space between the ENVFILE and the value so the ENVFILE doesn't change.

Thank you!