text:
Add font_size parameter for Tex and Text mobjects.

Changelog / Overview

Motivation

It can feel rather unintuitive to scale text using .scale() immediately after creation. A more traditional way of editing the size of text is to specify a font size that is higher than the actual size of the mobject. It also allows for easier fine_tuning of mobject size : font_size= 25 as opposed to working with decimals with .scale()
Explanation for Changes

default of font_size = 48.
NOTE:
Tex/Text mobjects all have the same default size:
class mark(Scene):
    def construct(self):
        a = Tex("what").center()
        b = Text(f"{a.get_top() - a.get_bottom()}").scale(0.4).center().shift(UP * 2)
        c = Text(f"{a.get_right() - a.get_left()}").scale(0.4).center().shift(UP)
        self.add(a, b, c)

New:

Old:

(they're the same thing)
numbers.py
numbers.py refactored to be split into functions.

set_value simplified and more efficient (?)
removed unneeded code that existed for webgl compatibility

coordinate_systems.py

All uses of number_scale_value removed and replaced with font_size
PolarPlane adjusted to accept font_size not scale values

numberline.py

Now takes font_size instead of number_scale_value
font_size parameter added

text_mobject.py / tex_mobject.py

the scale factors were adjusted to be 1/960 ( the value they needed to be for the default value to be a 48 and still match the old look exactly)

Code, Paragraph, Text, Tex, MathTex and DecimalNumber support font_size now.
Documentation Reference

Testing Status

Had to update the NumberPlane test because it was getting errors on only three of the numbers for some reason.
All other tests pass.
Further Comments

I updated some of the docs so that there would at least be some representation of font_size, but I wasn't sure if I should continue updating all places in the docs/code where scale is used on text with font_size instead.
There were still some leftover classes that used scale values, namely Brace.
Also, I noticed that Text is ~1.5x larger than its Tex counterparts at least on my machine. Should this be adjusted so that they're both equal?
Checklist

[x] I have read the Contributing Guidelines
[x] I have written a descriptive PR title (see top of PR template for examples)
[x] I have written a changelog entry for the PR or deem it unnecessary
[x] My new functions/classes either have a docstring or are private
[x] My new functions/classes have tests added and (optional) examples in the docs
[x] My new documentation builds, looks correctly formatted, and adds no additional build warnings

Reviewer Checklist

[ ] The PR title is descriptive enough
[ ] The PR is labeled correctly
[ ] The changelog entry is completed if necessary
[ ] Newly added functions/classes either have a docstring or are private
[ ] Newly added functions/classes have tests added and (optional) examples in the docs
[ ] Newly added documentation builds, looks correctly formatted, and adds no additional build warnings

text_mobject.py now uses pango's font_size scaling.
I've also added a DEFAULT_FONT_SIZE parameter, updated to using  super() in some places, added font_size scaling for Brace and Title. Also, I've adjusted the parameters in text2svg  so that and the size of the mobject remains the same as before.

It would be good if Text and Tex were similarly large if the same font size parameter is passed to them.

I second this. Also that in general LaTeX or Pango should handle something called font_size internally rather than a manim scale. But this might be over the scope of this PR.

I've resolved the conflicts and also deprecated number_scale_value and updated some examples. For some reason adding if TYPE_CHECKING raised some errors, so I've just dropped that for now.

It would be good if Text and Tex were similarly large if the same font size parameter is passed to them.

I agree, it's a little odd that they vary. We might have some problems with that since the size of Text varies per OS.

Rewrote some tests: (unnoticeable visual differences)
Added a font_size property so that size can be adjusted afterwards.
Values passed to add_labels now must have a font_size attribute since it's used to set the size of the label.

Notes:

the font_size property for text_mobject.py uses scaling to scale. Eventually we can try to make it use natural font size scaling.
sometimes strings are generated with self.height equal 0, hence the check for height in svg_tex_mobject.py: example to see this effect with a debugger. SingleStringMathTex("}") with 0 height.

Side notes:

text_mobject.py has a lot of needless code duplication, and is hard to understand to understand since it's scarcely documented 🙁,

I was doing some quick testing, and noticed that adding the font_size property for text_mobject.py messed with the line spacing, I'll investigate this issue 🤔

I have upgrade to version 0.10.0, and i have checked it using pip list.
When I run any example of MathTex or Tex using font-size I get the error:
init() got an unexpected keyword argument 'font_size'
What's going on?

I have upgrade to version 0.10.0, and i have checked it using pip list.
When I run any example of MathTex or Tex using font-size I get the error:
init() got an unexpected keyword argument 'font_size'
What's going on?

Please open a new issue or discussion and post the full traceback.

authors: MiltonCobo PhotonSpheres behackl hydrobeam

repo: ManimCommunity/manim


text:
Increased minimal required version of svgelements

Currently we require the svgelements version to be at least 1.7.2, however the Use tags which appear in a lot of rendered Text / Tex are only introduced and properly processed from a later version.
This PR increases the minimum required version to 1.8.0 (and thus fixes some installation / usage issues).

Merging if pipeline passes.

source: gharchive/pull-request

license: MIT

license_type: permissive

license_source: github-api


text:
Mixin Default Value Behavior

Hey, Manuel! Is the following behavior expected with using mixins? I was hoping to be able to override mixins if I need to by re-defining them in the viewmodel like how it is below.
parent.html
<template name="parentTemplate">
	{{> vmTester id='vmTesterID_in' typeOfTester='testerType_in' }}
	{{> vmTester }}

	{{> vmTester2 }}
</template>

vmTester.html
<template name="vmTester">
	{{> UI.contentBlock }}

		Type: {{ typeOfTester }}

</template>

<template name="vmTester2">
	{{#vmTester id=id typeOfTester=typeOfTester }}

Header before Tester

	{{/vmTester}}
</template>

vmTester.js
ViewModel.mixin({
	vmMixin: {
		id: 'vmMixinID',
		typeOfTester: 'mixin'
	}
});

Template.vmTester.viewmodel({
	mixin: 'vmMixin',
	id: 'vmTesterID',
	typeOfTester: 'vmTester'
});

Template.vmTester2.viewmodel({
	mixin: 'vmMixin',
	id: 'vmTesterID_2',
	typeOfTester: 'vmTester w/ header'
});

output:

	Type: testerType_in

	Type: mixin

Header before Tester

	Type: mixin

expected output:

	Type: testerType_in

	Type: vmTester

Header before Tester

	Type: vmTester w/ header

Ok, found the solution. *facepalm...after all it is in the docs. Using the .load function.
First: define viewmodel
Second: shares, mixins get included
Third: load data
Edited vmTester.js:
ViewModel.mixin({
	vmMixin: {
		id: 'vmMixinID',
		typeOfTester: 'mixin'
	}
});

var vmTester = {
	id: 'vmTesterID',
	typeOfTester: 'vmTester'
}

Template.vmTester.viewmodel({
	mixin: 'vmMixin',
	onCreated: function () {
		this.load(vmTester);
	}
});

var vmTester2 = {
	id: 'vmTesterID_2',
	typeOfTester: 'vmTester w/ header'
}

Template.vmTester2.viewmodel({
	mixin: 'vmMixin',
	onCreated: function () {
		this.load(vmTester2);
	}
});

source: gharchive/issue

repo: ManuelDeLeon/viewmodel

license: mit

license_source: bigquery


text:
eagleye autoware

Hi again!
Can I run eagleye with autoware, simulation running in awsim?
awsim does not provide NavSatFix msg on gnss, it only provides pose without orientation.
Thank you.

Unfortunately, Eagleye cannot be used in AWSIM.

Got it, Thank you.

repo: MapIV/eagleye


text:
url-generation - gestion des balises de mise en forme

Suite à #9, la mise en italique n'est pas gérée.
Concerne donc les urls des sections et les urls des QA.
Par exemple en markdown on peut avoir :
## Les dépôts distants (*remotes*)

Qui va donner en xml

<title>Les dépôts distants (remotes)</title>

Et donc aboutir à des noms de fichiers dégueux les-depots-distants-moins-que-i-superieure-a-remotes-moins-que-i-superieure-a.html et bien sûr une url dégueux :
Comment lister les dépôts distants d’un dépôt ?

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

repo: MarcLoupias/dvlp-faq-xml

license: ISC


text:
Rethink merging arrays

Reasoning
Perhaps array items should be merged because if you have
{ objs: [ { v: 1, other: 9 } ] }

and
{ objs: [ { v: 2 } ] }

the output should surely be
{ objs: [ {v: 2, other: 9 } ] }

not
{ objs: [ { v: 2 } ] }

Implementation detail
Current value is array:

If previous values was object, override it fully
If previous value was array merge with it (use largest length)
If previous value was array:
If current value is object, override it fully

Closed by #79


text:
Update position of FAB and set limit of bounce effect of FAB for iOS

Widget is now platform aware, positioning FAB in right location for iOS and disable bounce on expanded height of SliverFab.

Hey man! Thanks for PR!

authors: MarcinusX allandaleho


text:
Ignore multiple lines

It would be useful to have, in addition to # no-cython-lint to ignore a single line, to have something like
# cython-lint off
pass
# cython-lint on

to ignore multiple lines of code.

Hi @RMeli - what's the use-case for this?

gonna say no for now, not really keen on adding complexity, but thanks anyway for your request

Hi @MarcoGorelli, the use case I had in mind is to turn off linting for multiple lines of code, where specific formatting is required/preferred (long mathematical expressions, arrays, ...). Some tools allow this (especially formatting tools, such as black), but I totally understand keeping the complexity low.

authors: MarcoGorelli RMeli

repo: MarcoGorelli/cython-lint


text:
Allow updating custom version fields

Motivations
Before cargo add, it was common to have a manifest snippet with a version in it.  There are still other cases of versions and other relevant information appearing in repos, like citation files.

Would you like to implement this feature? maybe

Solution
cargo-release has a "pre-release replacements" set of regexes (example)
Alternatives
Hooks for running external programs.  This exists in cargo-release but I never use it because its hard to do these cross-platform
Additional context

This sounds good to me.
We can call this field replacements in the config file and we can apply these replacements in the release-plz update command (and also release-pr). No need to support the command line argument.
These options look good, except from the prerelease one which doesn't apply for release-plz.

I'm also looking for this feature, also for the CITATION.cff but also possibly other files.
Next to that I'm also interested in the hooks, e.g. for bumping documentation.
Big thumbs up from me! :+1:

Another way to implement replacements would be via the json output.
Example: https://release-plz.ieni.dev/docs/usage/release-pr#json-output
We could add to the release-pr and update commands the new versions of each package.
Then people could run the replacements by theirselves by running sed for example.
Note that I'm still keen to add the functionality proposed in this issue because it plays well with the release-plz set-version command I would like to add (covered in another issue)

authors: MarcoIeni epage ruben-arts

repo: MarcoIeni/release-plz


text:
release PR content / title configurability

Suggestion

It would be very handy if the release PR would contain
the excerpt of the corresponding change log directly in the PR Description.
It would also be very handy to see the version number directly in the commit and hence in the PR Headline

Dependabot has a similar behavior, only there the so-called "Release Notes" are a collapsable area.
This screenshot should illustrate it:

So we see the PR Title is chore: release 0.1.0-alpha.10 that contains the version number
The Body contains additionally

## Changelog

### [0.1.0-alpha.10](https://github.com/curlz-rs/curlz/compare/v0.1.0-alpha.9...v0.1.0-alpha.10) - 2023-03-08

### Added
- *(cli)* implement `-u | --user` request cli argument (#7) (#46)
- *(template)* implement the basic auth template function (#7) (#33)
- *(template)* support environment variables from process / shell (#30) (#31)

### Other
- migrate to clap v4 (#54)
- *(deps)* bump pest from 2.5.5 to 2.5.6 (#51)
- release 0.1.0-alpha.9 (#45)
- release (#43)
- release (#39)
- release 0.1.0-alpha.6 (#34)
- release `0.1.0-alpha.5` (#29)

You find the screenshot related example here

It would be very handy if the release PR would contain
the excerpt of the corresponding change log directly in the PR Description.

I didn't implement this because I find it noisy. The changelog is already in the "Files" tab of the PR.
However, release-please shows the changelog in the PR body as well. So if you find it useful, let's do it :)

Dependabot has a similar behavior, only there the so-called "Release Notes" are a collapsable area.

Judging on your example pr you don't want the changelog to be collapsable, right?

You might me right it will become noisy pretty quickly.
I would not mind having it also behind a collapsible area.
What might be also an option is to have a feature toggle on the GitHub action that one can use to opt into the changelog excerpt on the release PR or not.
I would suspect that content on the PR is very likely matter of taste and hence flexibility is long term inevitable. But me personally I'm very much fine with either ways. And i fear as you that it will become noisy too.

let's start by having the changelog behind a collapsible area.
If you or another user realize they would prefer not having the collapsible area (i.e. they prefer seeing the changelog in the pr body), we can add a configuration option to change this behavior :)

the pr title change is already deployed in the latest release.
I implemented the changelog report in https://github.com/MarcoIeni/release-plz/pull/598 and it will be available in the next release :)

Thank you so much!

authors: MarcoIeni sassman


text:
setup US BOEM regions for oil & gas, offshore wind

Issues

[x] MarineSensitivities/workflows#1
[x] MarineSensitivities/msens#1
[ ] MarineSensitivities/workflows#14

Pull from:

Renewable Energy - GIS Data | BOEM
Renewable Energy Leases and Planning Areas
Boundaries of renewable energy lease areas, wind planning areas, and marine hydrokinetic planning areas.

Oil & Gas Energy - Maps and GIS Data | BOEM
GIS Data/Shapefiles
Download GIS data files for BOEM Offshore block grids, boundaries, active leases, wells, pipelines, and more.

Questions

Are the above sites contain the authoritative sources or should we pull from elsewhere?

Other tools such as OceanReports and the Environmental Studies Program Information System - ESPIS can also be found from the MarineCadastre.gov site.

Also include OPD, SOBD, CBD, & Lease Map Diagrams?

Official Protraction Diagrams (OPDs) and Lease Maps show the OCS block grids and other boundaries for a  given area. Supplemental Official Block Diagrams (SOBDs) are created for individual blocks which are intersected by offshore boundaries. The zip files may contain both current and historic SOBDs. The older SOBDs are provided for historical reference, but all future activities will be based on the most current SOBDs. Composite Block Diagrams (CBDs) show NAD 27 lease information portrayed on the NAD 83 cadastre, or show other boundaries that have changed over time. Not all OPDs have SOBDs or CBDs associated with them.

Inserted and documented using script data-raw/ply_shlfs_rgns.R
marinesensitivities.org/msens/reference/#data:
Data
Lookups for easy reference

ply_rgns
Polygons of Regions
ply_rgns_s05
Polygons of Regions, simplified to 5%
ply_shlfs
Polygons of Shelf Regions
ply_shlfs_s05
Polygons of Shelf Regions, simplified to 5%

repo: MarineSensitivities/objectives


text:
Automated fake marks to be generated.

Fixed styling issues with previous pull req. Made a new pull req due to rebase issues and conflicts.

Thanks, @PatGuan. Unfortunately, it looks like there is an error: after regenerating the data, the submissions do not appear to be collected, leading to the submissions browse table rows to be uncoloured (instead of green).

Thanks, @PatGuan!

authors: PatGuan david-yz-liu

repo: MarkUsProject/Markus


text:
[BUG] ImportError: cannot import name 'HTMLBox' from 'bokeh.models.layouts'`

Describe the bug
While running the following command locally,
!autorag dashboard --trial_dir /content/project_dir/0
in AutoRAG evaluator - Tutorial - Step 1 (deploy).ipynb,
I'm getting
ImportError: cannot import name 'HTMLBox' from 'bokeh.models.layouts'
To Reproduce
Steps to reproduce the behavior:

Run the specified step in colab notebook in a local envrionment with following dependencies

pip3 install blinker==1.8.2
pip3 install ipykernel==5.5.6 ipywidgets-bokeh==1.0.2
pip3 install AutoRAG==0.3.7
pip3 install datasets
pip3 install python-dotenv
pip3 install jupyter
Full Error log
[11/10/24 19:38:31] ERROR    [__init__.py:60] >> Unexpected exception                                                                                __init__.py:60
                             ╭──────────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────────╮
                             │ /home/autorag/autorag-env/bin/autorag:5 in <module>                                                                             │
                             │                                                                                │
                             │   2 # -*- coding: utf-8 -*-                                                                                │
                             │   3 import re                                                                                │
                             │   4 import sys                                                                                │
                             │ ❱ 5 from autorag.cli import cli                                                                                │
                             │   6 if __name__ == '__main__':                                                                                │
                             │   7 │   sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])                                                                                │
                             │   8 │   sys.exit(cli())                                                                                │
                             │                                                                                │
                             │ /home/autorag/autorag-env/lib/python3.11/site-packages/autorag/cli.py:12 in <module>                                            │
                             │                                                                                │
                             │     9 import click                                                                                │
                             │    10 import nest_asyncio                                                                                │
                             │    11                                                                                │
                             │ ❱  12 from autorag import dashboard                                                                                │
                             │    13 from autorag.deploy import extract_best_config as original_extract_best_config                                                                               │
                             │    14 from autorag.deploy.api import ApiRunner                                                                                │
                             │    15 from autorag.evaluator import Evaluator                                                                                │
                             │                                                                                │
                             │ /home/autorag/autorag-env/lib/python3.11/site-packages/autorag/dashboard.py:15 in <module>                                      │
                             │                                                                                │
                             │    12                                                                                │
                             │    13 from autorag.utils.util import dict_to_markdown, dict_to_markdown_table                                                                                │
                             │    14                                                                                │
                             │ ❱  15 pn.extension(                                                                                │
                             │    16 │   "terminal",                                                                                │
                             │    17 │   "tabulator",                                                                                │
                             │    18 │   "mathjax",                                                                                │
                             │                                                                                │
                             │ /home/autorag/autorag-env/lib/python3.11/site-packages/pyviz_comms/__init__.py:64 in __new__                                    │
                             │                                                                                │
                             │    61 │   │   │   extension._last_execution_count = exec_count                                                                                │
                             │    62 │   │   except Exception:                                                                                │
                             │    63 │   │   │   pass                                                                                │
                             │ ❱  64 │   │   return param.ParameterizedFunction.__new__(cls, *args, **kwargs)                                                                                │
                             │    65 │                                                                                │
                             │    66 │   @classmethod                                                                                │
                             │    67 │   def add_delete_action(cls, action):                                                                                │
                             │                                                                                │
                             │ /home/autorag/autorag-env/lib/python3.11/site-packages/param/parameterized.py:4468 in __new__                                   │
                             │                                                                                │
                             │   4465 │   │   # Create and __call__() an instance of this class.                                                                                │
                             │   4466 │   │   inst = class_.instance()                                                                                │
                             │   4467 │   │   inst.param._set_name(class_.__name__)                                                                                │
                             │ ❱ 4468 │   │   return inst.__call__(*args,**params)                                                                                │
                             │   4469 │                                                                                │
                             │   4470 │   def __call__(self,*args,**kw):                                                                                │
                             │   4471 │   │   raise NotImplementedError("Subclasses must implement __call__.")                                                                                │
                             │                                                                                │
                             │ /home/autorag/autorag-env/lib/python3.11/site-packages/panel/config.py:742 in __call__                                          │
                             │                                                                                │
                             │   739 │   │   │   │   │   │   │   if qual and qual not in _default_resolver.known_models:                                                                          │
                             │   740 │   │   │   │   │   │   │   │   _default_resolver.add(model)                                                                                │
                             │   741 │   │   │   │   else:                                                                                │
                             │ ❱ 742 │   │   │   │   │   __import__(module)                                                                                │
                             │   743 │   │   │   │   self._loaded_extensions.append(arg)                                                                                │
                             │   744 │   │   │   │                                                                                │
                             │   745 │   │   │   │   if state.curdoc:                                                                                │
                             │                                                                                │
                             │ /home/autorag/autorag-env/lib/python3.11/site-packages/panel/io/ipywidget.py:22 in <module>                                     │
                             │                                                                                │
                             │    19 # Stop ipywidgets_bokeh from patching the kernel                                                                                │
                             │    20 ipykernel.kernelbase.Kernel._instance = ''                                                                                │
                             │    21                                                                                │
                             │ ❱  22 from ipywidgets_bokeh.kernel import (                                                                                │
                             │    23 │   BokehKernel, SessionWebsocket, WebsocketStream,                                                                                │
                             │    24 )                                                                                │
                             │    25 from ipywidgets_bokeh.widget import IPyWidget                                                                                │
                             │                                                                                │
                             │ /home/autorag/autorag-env/lib/python3.11/site-packages/ipywidgets_bokeh/__init__.py:1 in <module>                               │
                             │                                                                                │
                             │ ❱ 1 from .widget import IPyWidget                                                                                │
                             │   2                                                                                │
                             │   3 __version__ = "1.0.2"                                                                                │
                             │   4                                                                                │
                             │                                                                                │
                             │ /home/autorag/autorag-env/lib/python3.11/site-packages/ipywidgets_bokeh/widget.py:9 in <module>                                 │
                             │                                                                                │
                             │    6 #-----------------------------------------------------------------------------                                                                                │
                             │    7                                                                                │
                             │    8 from bokeh.core.properties import Any                                                                                │
                             │ ❱  9 from bokeh.models.layouts import HTMLBox                                                                                │
                             │   10                                                                                │
                             │   11 from ipywidgets import embed, Widget                                                                                │
                             │   12                                                                                │
                             ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
                             ImportError: cannot import name 'HTMLBox' from 'bokeh.models.layouts'

Desktop (please complete the following information):

Windows with WSL 2

Thank you @vkehfdl1, this is happening in my local environment as well.

Hi @mattquestions
Can you try to update the bokeh and panel version?
And can you tell me the version of bokeh and panel library?

repo: Marker-Inc-Korea/AutoRAG


text:
Mention Wait For Navigation kw in baseURL argument.

Fixes #3636

@allcontributors please add @rasjani for documentation

authors: aaltat rasjani

repo: MarketSquare/robotframework-browser


text:
Allow to disable and enable file starting from the first line

Implements one of the points from the #479

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.04 :tada:

Comparison is base (47c97e1) 97.10% compared to head (b0c9b2b) 97.14%.

:exclamation: Current head b0c9b2b differs from pull request most recent head ba5d676. Consider uploading reports for the commit ba5d676 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #499      +/-   ##
==========================================
+ Coverage   97.10%   97.14%   +0.04%
==========================================
  Files          47       47
  Lines        4311     4308       -3
==========================================
- Hits         4186     4185       -1
+ Misses        125      123       -2

Impacted Files
Coverage Δ

robotidy/disablers.py
99.29% <100.00%> (+1.37%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

authors: bhirsz codecov-commenter

repo: MarketSquare/robotframework-tidy


text:
支持 gpt-3.5-turbo-instruct 模型代码补全

例行检查

[ ] 我已确认目前没有类似 issue
[x] 我已确认我已升级到最新版本
[ ] 我已完整查看过项目 README，已确定现有版本无法满足需求
[ ] 我理解并愿意跟进此 issue，协助测试和提供反馈
[ ] 我理解并认可上述内容，并理解项目维护者精力有限，不遵循规则的 issue 可能会被无视或直接关闭

功能描述
在使用gpt-3.5-turbo-instruct 模型代码补全时如果经过当前OneAPI中转则一直报错
2024/05/19 03:18:29 request completions failed: {"error":{"code":"invalid_text_request","message":"Provider API error: field messages is required (request id: 20240519031828853895489acWdbFAG) (request id: 20240519111828709925269UxrcZ0Y1)","type":"one_api_error"}}
[GIN] 2024/05/19 - 03:18:29 | 400 |  444.616953ms |   192.168.31.16 | POST     "/v1/engines/copilot-codex/completions"

如果使用渠道直连则没有这个问题，比如我用的是这个渠道 https://burn.hair
应用场景
vscode代码补全，参考 override

已修复 等待GitHub action编译完成后拉取dev镜像使用
docker pull ghcr.io/martialbe/one-api:dev

authors: MartialBE coulsontl

repo: MartialBE/one-api


text:
Permission issues

Running following configuration in my compose file:
 postgres-backup:
    image: martlark/pg_dump:16.1
    restart: always
    depends_on:
      postgres:
        condition: service_healthy
    env_file:
     - ./.env.docker
    environment:
      - CRON_SCHEDULE=0 * * * * # Every hour
      - RETAIN_COUNT=24 # Full day
     volumes:
      - ${HOME}/backups:/dump

This is the output I get:
Starting pg_dump
tee: /dump/dump-log: Permission denied
WARN: No password file found!
It is suggested that a docker secrets file is used for security concerns.
/entrypoint.sh: line 75: /dump/dump-log: Permission denied
tail: cannot open '/dump/dump-log' for reading: No such file or directory

Any idea on how I can fix this? Read all the documentation I could find but did find nothing about permissions

That is a solution.  I should make a note about permissions.

authors: Martlark Tanguille


text:
Adding modules

I want to add Gorilla/Mux which is HTTP router, Ebiten, which is a game engine to make 2D games. Can I?

Sure!

For Ebiten. you are welcome to create a new tag: GAME_ENGINE Tag = "Game Engine"

repo: MarvinJWendt/goget


text:
add Style

add Style to all website:

one style for every component
use one color set
should be responsive. Bootstrap may be used

done


text:
insert tool-tips in the UI

Tooltips should improve the usability and provide a meaning to the UI filelds

added in 8515c76556f9d91167a89db3857a380365aeb4f3 in devel branch

repo: Marzona/rig-remote


text:
[feature] configuration reference

Here is the Kong configuration reference. I tried to be as inspired as possible for the intro text but well, it wasn't that efficient...
Also I am not sure about the side menu in docs.html.
@Nijikokun Please review, rephrase, reword :)
@thefosk I still don't know what nginx_plus_status really does. Could you please update the PR or explain here.
Depends on Mashape/kong#162 being merged.

Can we fix #48 in this PR?

Alright, on reviewing it, and yes @montanaflynn this will fix #48
For the time being @thibaultCha nginx_plus_status does this if you were wondering: http://getkong.org/plugins/nginx-plus-monitoring/

Yeah I know it's for the plugin, but I don't get why it's needed exactly.

No this is correct. Kong.yml is not

My apologies, I was going by kong.yml since there was no example

authors: Nijikokun montanaflynn thibaultCha


text:
Suggested hardening

Previous experience suggests that testing will fail when it comes to do the multicast service-discover thing, but we need to have something to point at when we raise that as an issue

Raised as harden-runner#228

Redundant after #712

repo: Mastercard/flow


text:
Add Mysql 8 SRID support

I was using the package and really have problem with SRID specially for gps coordinates, So I have been added

Support for SRID with Geometry types

$coordinates = Place::create([
    'name' => 'London Eye',
    'coordinates' => new Point(12.455363273620605, 41.90746728266806, 4326)
]);

Set SRID value from global default value or from the object

  'connections' => [
        'mysql' => [
            'driver' => 'mysql',
            'default_srid' => env('DEFAULT_SRID',0),
        ],
    ]

Add Ability for working with SRID 4326 (WGS84), The problem with this SRID is how it saving the points x,y in database
default for Mysql is lng,lat but only for 4326 It save with lat,lng
So I added axis parameter

return DB::raw("ST_GeomFromText('{$wkt}', {$geometry->getSrid()}, 'axis-order=long-lat')");

now every time database with working (lng,lat) logic with considerate for SRID 4326 (WGS84)

add whereSrid method that help to filter

Place::create(['coordinates' => new Point(12.455363273620605, 41.90746728266806, 4326)]);

Place::query()
    ->whereSrid('coordinates', '=', 4326)
    ->exists(); // true

Write tests for SRID

#27

Hi @Gemui, I'm very happy to have this PR, thanks for your work.
I'll review it tomorrow.
Meanwhile, could you please fix the CI results? Run composer run phpinsights fix composer run php-cs-fixer composer run phpstan

Hi @MatanYadaev
I fixed the CI results then #43 made a conflict with this PR.
I fixed the conflict also, but I think phpinsights need to update indentation config because it change the code style to 4 spaces not 2 .
I hope you reviewed the code to start merging before another conflict .

@Gemui Sorry, it will take me a few more days until I'll merge this feature. I'm planning on writing more tests (and refactor current tests), and I'm not sure about the default SRID config.

@Gemui Please don't waste time fixing the conflicts. There are going to be more of them in the next few days.

@Gemui Please don't waste time fixing the conflicts. There are going to be more of them in the next few days.

No problem I leave it now, but if you have a pattern or something need to implemented with it I can help you to fast the process

@Gemui Thanks for the help, I took your code and implemented it here: https://github.com/MatanYadaev/laravel-eloquent-spatial/pull/47

authors: Gemui MatanYadaev

repo: MatanYadaev/laravel-eloquent-spatial


text:
Function hash doesn't capture default arguments

If a function is captured by a recipe, e.g.
def func(count: int = 10):
    ...

@alk.recipe
def my_recipe():
    return func()

And the default value for count is changed to something else, e.g. 12, my_recipe isn't marked dirty.

Fixed in https://github.com/MathiasStokholm/alkymi/pull/18 (version 0.0.6)

repo: MathiasStokholm/alkymi


text:
🛑 Inventario App is down

In 3ba992c, Inventario App (https://inventario.voluntariosgreenpeace.cl/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Inventario App is back up in 6f68813 after 11 hours, 2 minutes.


text:
🛑 Inventario App is down

In 11d941f, Inventario App (https://inventario.voluntariosgreenpeace.cl/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Inventario App is back up in 535cce0 after 10 hours, 59 minutes.


text:
🛑 Greenpeace App is down

In 79dee06, Greenpeace App (https://app.greenpeace.org.ar/coupon/regular/forms/registration) was down:

HTTP code: 502
Response time: 185 ms

Resolved: Greenpeace App is back up in 0d98782 after 5 minutes.


text:
🛑 Connect 4 Showdown is down

In e8e0c90, Connect 4 Showdown (https://connect-4-showdown.onrender.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Connect 4 Showdown is back up in dfe55ba after 13 minutes.

repo: MatisPrograms/is-it-up


text:
fix: modify "AudioContext" to "window.AudioContext" for Safari

The page shows error in safari when the page is ready. Modifying "AudioContext" to "window.AudioContext" can avoid it.

Should change it in https://github.com/MatrixFrog/react-audio-recorder/blob/master/src/AudioContext.ts as well.

authors: MatrixFrog chenghaopeng

repo: MatrixFrog/react-audio-recorder


text:
Change font

The font is very pretty for the most part, but the number one is far too similar to a capital i.

Thankyou for pointing that out. Started looking into alternative fonts.

I'd could be interested in helping on the type & design front. I was already thinking of making styling changes for personal use. Here's a rough work-in-progress I threw together.
@nshntarora is this something you would like help with? I'm not a programmer, but design and front-end styles are my specialty, so this is the best way I could contribute.
WIP Example:

@calebsylvest Love it. Let's get it implemented! You've got mail :mailbox_with_mail:

The body font is now changed from Vollkorn to Merriweather :+1:

authors: calebsylvest myklam nshntarora

repo: Matterwiki/Matterwiki


text:
Add utility method to allow assigning alternate target to a new session.

Relates to #11.

Perfect! Thank you so much :+1:

authors: MattesGroeger mikeantonelli

repo: MattesGroeger/MGBenchmark


text:
Update profiles to support changes to validation, finalisation and read-only fields

mdm-core now has changes to the profiles endpoints to support the following:

Validation now returns a 422 if errors are found, with a map of error messages and field names. This has changed from original, which returned the full profile again with error messages embedded inside the fields.
Profiles can now have derived and read-only fields
Profiles can now support being edited after a model is finalised

Make sure the UI can now support these features.

[x] Display read-only fields if the profile includes them
[x] Update validation to use updated response
[x] Fields which include allowedValues should be presented as a drop-down
[x] Required fields should use the minMultipicity field
[x] Test that post-finalise editing is supported

It doesnt look like allowed values works properly, its only rendering 1 drop down list.
{"sections":[{"name":"Predefined/Supplied Fields","description":"Fixed fields which cannot be changed.","fields":[{"fieldName":"Identifier","metadataPropertyName":"identifier","description":"A persistent identifier that identifies a resource. This will be filled in by the API upon submission","maxMultiplicity":1,"minMultiplicity":1,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":true,"currentValue":"---"},{"fieldName":"Prefix","metadataPropertyName":"prefix","description":"DOI prefix. The first part of the identifier","maxMultiplicity":1,"minMultiplicity":1,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":true,"currentValue":"10.80079"},{"fieldName":"Suffix","metadataPropertyName":"suffix","description":"DOI suffix. The last part of the identifier","maxMultiplicity":1,"minMultiplicity":1,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":true,"currentValue":"---"},{"fieldName":"Status","metadataPropertyName":"status","description":"Status of DOI: draft, findable, retired.","maxMultiplicity":1,"minMultiplicity":1,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":true,"currentValue":"---"},{"fieldName":"Main Title","metadataPropertyName":"titles/mainTitle","description":"The main title by which the resource is known, derived from the label field of the resource.","maxMultiplicity":1,"minMultiplicity":1,"allowedValues":null,"regularExpression":null,"dataType":"text","derived":true,"derivedFrom":"label","uneditable":true,"currentValue":"Simple Test DataModel"},{"fieldName":"Main Description","metadataPropertyName":"descriptions/mainDescription","description":"The main description for the resource, derived from the description field of the resource.","maxMultiplicity":-1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"text","derived":true,"derivedFrom":"description","uneditable":true,"currentValue":"---"}]},{"name":"Primary Creator","description":"Resource Creator. This section will be capable of accepting multiples in the future, however at the moment it only handles a single entry.","fields":[{"fieldName":"Creator Name","metadataPropertyName":"creators/creator/creatorName","description":"The main researchers involved working on the data, or the authors of the publication in priority order. May be a corporate/institutional or personal name.","maxMultiplicity":1,"minMultiplicity":1,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Creator Name Type","metadataPropertyName":"creators/creator/creatorNameType","description":null,"maxMultiplicity":1,"minMultiplicity":0,"allowedValues":["Organizational","Personal"],"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Creator Name Given Name","metadataPropertyName":"creators/creator/givenName","description":null,"maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Creator Name Family Name","metadataPropertyName":"creators/creator/familyName","description":null,"maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Creator Name Identifier","metadataPropertyName":"creators/creator/nameIdentifier","description":null,"maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Creator Affiliation","metadataPropertyName":"creators/creator/affiliation","description":"Affiliation of creator, company or institution they represent","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""}]},{"name":"Additional Mandatory Fields","description":null,"fields":[{"fieldName":"Publisher","metadataPropertyName":"publisher","description":"The name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource. This property will be used to formulate the citation, so consider the prominence of the role. For software, use Publisher for the code repository. If there is an entity other than a code repository, that 'holds, archives, publishes, prints, distributes, releases, issues, or produces' the code, use the property Contributor/contributorType/hostingInstitution for the code repository.","maxMultiplicity":1,"minMultiplicity":1,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Publication Year","metadataPropertyName":"publicationYear","description":"The year when the data was or will be made publicly available. If an embargo period has been in effect, use the date when the embargo period ends.","maxMultiplicity":1,"minMultiplicity":1,"allowedValues":null,"regularExpression":"\\d{4}","dataType":"int","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Resource Type","metadataPropertyName":"resourceType","description":"Year when the data is made publicly available. If an embargo period has been in effect, use the date when the embargo period ends.","maxMultiplicity":1,"minMultiplicity":1,"allowedValues":["Audiovisual","Collection","DataPaper","Dataset","Event","Image","InteractiveResource","Model","PhysicalObject","Service","Software","Sound","Text","Workflow","Other"],"regularExpression":null,"dataType":"enumeration","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""}]},{"name":"Additional Title Section","description":"This section will be capable of accepting multiples in the future, however at the moment it only handles a single entry.","fields":[{"fieldName":"Additional Title","metadataPropertyName":"titles/title","description":"A name or title by which a resource is known.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"text","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Additional Title Type","metadataPropertyName":"titles/titleType","description":null,"maxMultiplicity":1,"minMultiplicity":0,"allowedValues":["AlternativeTitle","Subtitle","TranslatedTitle","Other"],"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""}]},{"name":"Additional Description Section","description":"This section will be capable of accepting multiples in the future, however at the moment it only handles a single entry.","fields":[{"fieldName":"Addtional Description","metadataPropertyName":"descriptions/description","description":"All additional information that does not fit in any of the other categories. May be used for technical information.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"text","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Additional Description Type","metadataPropertyName":"descriptions/descriptionType","description":null,"maxMultiplicity":1,"minMultiplicity":0,"allowedValues":["Abstract","Methods","SeriesInformation","TableOfContents","TechnicalInfo","Other"],"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""}]},{"name":"Contributor Section","description":"Resource Contributor. This section will be capable of accepting multiples in the future, however at the moment it only handles a single entry.","fields":[{"fieldName":"Contributor Name","metadataPropertyName":"contributors/contributor/contributorName","description":"The institution or person responsible for collecting, creating, or otherwise contributing to the development of the dataset.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Contributor Name Type","metadataPropertyName":"contributors/contributor/contributorNameType","description":null,"maxMultiplicity":1,"minMultiplicity":0,"allowedValues":["Organizational","Personal"],"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Contributor Type","metadataPropertyName":"contributors/contributor/contributorType","description":"Mandatory if the contributor name is provided.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":["ContactPerson","DataCollector","DataCurator","DataManager","Distributor","Editor","HostingInstitution","Other","Producer","ProjectLeader","ProjectManager","ProjectMember","RegistrationAgency","RegistrationAuthority","RelatedPerson","ResearchGroup","RightsHolder","Researcher","Sponsor","Supervisor","WorkPackageLeader"],"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Contributor Name Given Name","metadataPropertyName":"contributors/contributor/givenName","description":null,"maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Contributor Name Family Name","metadataPropertyName":"contributors/contributor/familyName","description":null,"maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Contributor Name Identifier","metadataPropertyName":"contributors/contributor/nameIdentifier","description":null,"maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Contributor Affiliation","metadataPropertyName":"contributors/contributor/affiliation","description":null,"maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""}]},{"name":"Related Identifier Section","description":"This section will be capable of accepting multiples in the future, however at the moment it only handles a single entry.","fields":[{"fieldName":"Related Identifier","metadataPropertyName":"relatedIdentifiers/relatedIdentifier","description":"Identifiers of related resources. Use this property to indicate subsets of properties, as appropriate.","maxMultiplicity":-1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Related Identifier Type","metadataPropertyName":"relatedIdentifiers/relatedIdentifier/type","description":"Mandatory if the related identifier is provided.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":["ARK","arXiv","bibcode","DOI","EAN13","EISSN","Handle","IGSN","ISBN","ISSN","ISTC","LISSN","LSID","PMID","PURL","UPC","URL","URN","w3id"],"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Related Identifier Type","metadataPropertyName":"relatedIdentifiers/relatedIdentifier/relationType","description":"Mandatory if the related identifier is provided.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":["IsCitedBy","Cites","IsSupplementTo","IsSupplementedBy","IsContinuedBy","Continues","IsNewVersionOf","IsPreviousVersionOf","IsPartOf","HasPart","IsPublishedIn","IsReferencedBy","References","IsDocumentedBy","Documents","IsCompiledBy","Compiles","IsVariantFormOf","IsOriginalFormOf","IsIdenticalTo","HasMetadata","IsMetadataFor","Reviews","IsReviewedBy","IsDerivedFrom","IsSourceOf","Describes","IsDescribedBy","HasVersion","IsVersionOf","Requires","IsRequiredBy","Obsoletes","IsObsoletedBy"],"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""}]},{"name":"Additional Optional Fields","description":"Optional metadata fields for DOI profiles.","fields":[{"fieldName":"Subject","metadataPropertyName":"subjects/subject","description":"Subject, keywords, classification codes, or key phrases describing the resource.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Date","metadataPropertyName":"dates/date","description":"Different dates relevant to the work.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"date","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Language","metadataPropertyName":"language","description":"Primary language of the resource. Allowed values are taken from  IETF BCP 47, ISO 639-1 language codes. For English, use 'en'.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Alternate Identifier","metadataPropertyName":"alternateIdentifiers/alternateIdentifier","description":"An identifier or identifiers other than the primary Identifier applied to the resource being registered. This may be any alphanumeric string which is unique within its domain of issue. May be used for local identifiers. AlternateIdentifier should be used for another identifier of the same instance (same location, same file).","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Size","metadataPropertyName":"sizes/size","description":"Unstructured size information about the resource.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Format","metadataPropertyName":"formats/format","description":"Technical format of the resource. Use file extension or MIME type where possible.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Version","metadataPropertyName":"version","description":"Version number of the resource. If the primary resource has changed the version number increases. Register a new identifier for a major version change. Individual stewards need to determine which are major vs. minor versions. May be used in conjunction with properties 11 and 12 (AlternateIdentifier and RelatedIdentifier) to indicate various information updates. May be used in conjunction with property 17 (Description) to indicate the nature and file/record range of version.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""},{"fieldName":"Rights","metadataPropertyName":"rightsList/rights","description":"Any rights information for this resource. Provide a rights management statement for the resource or reference a service providing such information. Include embargo information if applicable.\nUse the complete title of a license and include version information if applicable.","maxMultiplicity":1,"minMultiplicity":0,"allowedValues":null,"regularExpression":null,"dataType":"string","derived":false,"derivedFrom":null,"uneditable":false,"currentValue":""}]}],"id":"42085237-6ac6-4e9b-b384-859ce51a94db","label":"Simple Test DataModel","domainType":"DataModel"}

also would it be possible to have uneditable fields look "open" like the derived fields

Actually ignore the issue with the allowedValues ..i just noticed theres a different datatype for that ... enumeration.

Uneditable fields will now look like this, removing the "disabled input" look to them.

authors: olliefreeman pjmonks

repo: MauroDataMapper/mdm-ui


text:
Bring in Idle Service

We currently depend on the User Idle service here: https://github.com/rednez/angular-user-idle
This doesn't yet run on Angular 14, and will cause us dependency conflicts when we try to upgrade our dependencies.  Since the package only provides one service, and is MIT licensed, let's bring the files into our codebase for now, and reconsider in the future.

The UserIdleService was already integrated into the mdm-explorer repo, if you look here you can get the code needed to work: https://github.com/MauroDataMapper/mdm-explorer/blob/develop/src/app/external/user-idle.service.ts

authors: jamesrwelch pjmonks


text:
calculate MCA cos2 and result comparability with MCA library

I meet some difficulties to compare MCA results between Prince and MCA library, especially to calculate cos2. There is a ratio difference on each component : is there any reason ?
(am I wrong to use the ratio of factor square on squared row norms (cos2(r,c) = F(r,c)**2/||r||**2 for r the row and c the component - in my case I have cos2>1, so kind of wrong).

Our implementation is probably wrong! I say "probably" because it's not something I've tested very thoroughly. I would love to see a pull request with a correction.

I compared with R package (FactoMineR), the implementation of ACM is great, no difference
I am looking on how to calculate cos2 for an MCA (seems different to PCA). If you have any docs on it, I would try to implement it.

Actually it's difficult to find a reliable reference... I had bookmarked this but it seems to have expired. Maybe a way to proceed is to look into the FactoMineR source code, but it's difficult to read.

I contacted one of the developper (François Husson), I am expecting his answer.

He told me that its the same as PCA, factor squared on norm squared of the row. But when I tried, I needed to use the row norm in the projected space (a complete decomposition) to get the same result as R. Make sens for you ? I will dig a little more before suggesting something

I think I see what you mean. I remember that many things weren't very clear when I first implemented Prince. It's always nice to have some fresh (and motivated!) eyes to take a look at the details. After my PhD, which should be over by this summer, I'm planning to take a few days to sort some things out in Prince. I suppose we can assume that FactoMineR can be used as a groun truth and we should aim to reproduce their outputs.
Thanks for digging into this! It will benefit many people to have a clear implementation of details such as this.

Hi. Yes I would be glad to join you to expand you library. I am finishing a
introduction book for social scientists in French, and I introduce your
library I found the most convenient to use for MCA and CA. For the moment,
I just present how to calculate cos2 directly with the result of prince,
because I am not enough confident with the efficiency of my code to pull
request it. I do the complete decomposition of the matrix in the factor
space, and then I calculate the distance square of the vector. I don't know
how to calculate it before the MCA, because it seems to change... Good luck
for writing your PhD. When will you finish ?
Emilien
Le sam. 9 mai 2020 à 14:05, Max Halford notifications@github.com a écrit :

I think I see what you mean. I remember that many things weren't very
clear when I first implemented Prince. It's always nice to have some fresh
(and motivated!) eyes to take a look at the details. After my PhD, which
should be over by this summer, I'm planning to take a few days to sort some
things out in Prince. I suppose we can assume that FactoMineR can be used
as a groun truth and we should aim to reproduce their outputs.
Thanks for digging into this! It will benefit many people to have a clear
implementation of details such as this.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MaxHalford/prince/issues/89#issuecomment-626165827,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACABSTEBM3T7BA7CV6HZVLLRQVBHVANCNFSM4M3ETH5A
.

No worries! I'll try to iron out some details during the upcoming summer. I should be done with the PhD by the end of September.

authors: MaxHalford emilienschultz

repo: MaxHalford/prince


text:
BayesianTargetEncoder can not be pickled

I tried pickle.dump the BayesianTargetEncoder after fit(), but get this error
AttributeError: Can't pickle local object 'BayesianTargetEncoder.fit..'
It is for sure a problem in deployment, if you can not store away a pre-trained encoder. Is this a known issue? Can we get a fix for it? Thanks

I just checked; it's because it's using a lambda function to store the posteriors. I'll get this fixed as soon as possible. Thanks for opening an issue!

@bhomass I just pushed a fix. It should be good :). Feel free to reopen this issue if the problem persists.

Hi, I really appreciate you solved the pickle problem. But there is a bug of some kind. When you dump and load the encoder, the recovered encoder produces different results on the same input data. Please investigate. I need to put this into production real soon. Thank you.

Hello. First of all, I'm not able to reproduce the bug, so I'm going to need you to share a reproducible example. Secondly, this library is just here "for fun", and is much too brittle to be used in production.

Hey, my bad. nothing wrong with pickle.
I know its like a toy in some ways, but is the best out there, and good enough to use if taking care. thanks for the contribution.

authors: MaxHalford bhomass

repo: MaxHalford/xam


text:
Color Sheet disableSwitchColorView icon remains

Describe the bug
On the color sheet, disableSwitchColorView() disables the ability to switch to the custom color view. However, the icon still remains - it just doesn't do anything.
Library Version:
1.1.0
To Reproduce
Steps to reproduce the behavior:

Add disableSwitchColorView() to the code
The icon to switch the color view remains

Expected behavior
The icon should go away if disableSwitchColorView() is enabled.
Screenshots
I've attached a video showing this bug in the sample app
Sample app

Thank you a lot. I'm sorry for the 2 issues you have reported - I've rushed a bit with the release.

Thank you a lot. I'm sorry for the 2 issues you have reported - I've rushed a bit with the release.

authors: Fennec-exe MaxKeppeler

repo: MaxKeppeler/bottom-sheets


text:
A Draft for the Spaces Page

The ./blogpost4.html file contains the Spaces Page designed to direct the customer towards their needs and the online budget calculator indexLayout.html . It has not been linked from the homepage in the Navbar/Header component, but that can be easily done.
Link to a view of the page
https://youtu.be/Z4YMwhhB-y0

Good Work @Nkca122 Buddy.
please link the page with home redirect from navbar.


text:
Styling navbar and links.

I would like to style the navbar and the navbar links for each page. Please assign it to me under hacktoberfest .

Yeah sure I will assign you this issue under hacktoberfest 2023.
But before that setup the project as mentioned in the Readme file.
And follow these additional steps:
https://github.com/Mayuresh-22/Minglr-Social-Network-Site/issues/3#issuecomment-1742102134
If you face any sort of issue feel free to connect with me here and I'll try to solve the issue.

Any updates?

Hey, I performed the steps as you mentioned, and I have reached here.

What next, I need to do to finally able to make the changes into the code.

Okay @yashi-15, now place this repository folder that you have cloned on your local machine into your C drive >xampp > htdocs (In short you'll get the htdocs folder in the xampp folder) and start the xampp server (Apache & MySQL)) and you are set to make the changes to the project.

I am not able to run the project as local host, getting this error:

Can you assign this task to me? I'll do it and you can also add hacktoberfest tag

Can you assign this task to me? I'll do it and you can also add hacktoberfest tag

Yeah sure I will assign this issue to you @AbdullahTheDev under the hacktoberfest 2023

Can you assign this to me too? @Mayuresh-22

can you assign it to me this projects?

You all can start working on this issue and make a pull request I will merge them under Hacktoberfest 2023 (If there are no merge conflicts and PR really solves the issue)

Closing this Issue


text:
Update gitian-osx.yml

Correct filename from bitcoin to Maza

Looks ok - not sure about the NSIS icon - looks cut off here on github's view - we can merge now, change before a final release.
utACK

authors: guruvan owlhooter

repo: MazaCoin/mazacoin-new


text:
improvement proposal

By using xhr requests instead of canvas rendering you could have a major performance improvement.
I do not have time for a proper pull request, but here is my take on pouchdb caching
import L from 'leaflet'
import PouchDB from '/imports/ui/components/pouchdb'
import qwest from 'qwest'
import logger from '../../logger'
L.TileLayer.addInitHook(function () {
if (this.options.cache) {
this.pouch = new PouchDB(tiles-${this.options.cacheName}, {
size: 1000,
auto_compaction: true,
revs_limit: 1
})
logger.info(pouchdb: ${this.pouch.name}, adapter: ${this.pouch.adapter})
}
})
// Whether to use a PouchDB cache on this tile layer, or not
L.TileLayer.prototype.options.cache = false;
// Maximum age of the cache, in milliseconds
L.TileLayer.prototype.options.cacheMaxAge = 24 * 3600 * 1000;
L.TileLayer.include({
// Overwrites L.TileLayer.prototype.createTile
createTile(coords, done) {
const url = this.getTileUrl(coords);
const tile = document.createElement('img');
if (this.options.crossOrigin) {
tile.crossOrigin = '';
}
tile.onerror = () => {
logger.error(bom.leaf load failed: ${tile.src})
}
if (this.options.cache) {
this.pouch.get(url, {attachments: true, binary: true, revs_info: true}, this.onCacheLookup(tile, url, done));
} else {
// Fall back to standard behaviour
tile.onload = L.bind(this._tileOnLoad, this, done, tile);
tile.src = url;
}
return tile;
},
// Returns a callback (closure over tile/key/originalSrc) to be run when the DB backend is finished with a fetch operation.
onCacheLookup(tile, tileUrl, done) {
return function(err, data) {
if (data) {
this.fire('tilecachehit', {tile, url: tileUrl});
if ((Date.now() > (data.timestamp + this.options.cacheMaxAge))) {
// old tile, refresh it
tile.qwest = null
this.readAndSaveTile(tile, tileUrl, data._revs_info[0].rev, done)
} else {
// tile from cache
tile.onload = L.bind(this._tileOnLoad, this, done, tile);
tile.src = URL.createObjectURL(data._attachments.img.data);
}
} else {
this.fire('tilecachemiss', {tile, url: tileUrl});
this.readAndSaveTile(tile, tileUrl, null, done)
}
}.bind(this);
},
readAndSaveTile(tile, tileUrl, existingRevision, done) {
if (tile.qwest) {
return
}
let headers = {}
if (tileUrl.indexOf('cors-anywhere') >= 0) {
headers = {
'X-Requested-With': 'XMLHttpRequest'
}
}
tile.qwest = qwest.get(tileUrl, null, {headers, cache: true, responseType: 'blob'}).then(res => {
this.saveTile(res.response, tileUrl, existingRevision, done)
tile.src = URL.createObjectURL(res.response);
}).catch(error => {
logger.error('qwest error', error.message);
})
},
// Overwrite L.TileLayer.prototype._abortLoading
_abortLoading() {
let i
let tile
for (i in this._tiles) {
if (this._tiles[i].coords.z !== this._tileZoom) {
tile = this._tiles[i].el;
tile.onload = L.Util.falseFn;
tile.onerror = L.Util.falseFn;
if (!tile.complete) {
tile.src = L.Util.emptyImageUrl;
L.DomUtil.remove(tile);
}
if (tile.qwest) {
tile.qwest.abort()
}
}
}
},
// Returns an event handler (closure over DB key), which runs when the tile (which is an ) is ready.
// The handler will delete the document from pouchDB if an existing revision is passed.
// This will keep just the latest valid copy of the image in the cache.
saveTile(tileBlob, tileUrl, existingRevision, done) {
const doc = {
_id: tileUrl,
_attachments: {
img: {
content_type: 'image/jpeg',
data: tileBlob
}
},
timestamp: Date.now()
}
if (existingRevision) {
this.pouch.remove(tileUrl, existingRevision, () => {
this.pouchPut(doc)
})
} else {
this.pouchPut(doc)
}
if (done) {
done()
}
},
pouchPut(doc) {
this.pouch.put(doc).then(res => {
logger.debug('tile cached', res)
}).catch(err => {
if (err.status === 409) {
// document update conflicts may be caused by XHR flooding,
// but we can safely ignore them since we keep only one version anyway and we need no db sync
logger.debug(err)
} else {
logger.error(err)
}
this.fire('tilecacheerror', {tile: doc._id, error: err})
})
}
});

Turning this into a diff to see the difference: I don't see the problem to create a PR
diff --git 1/L.TileLayer.PouchDBCached.js 2/new
index c0d7d5c..25a96d5 100644
--- 1/L.TileLayer.PouchDBCached.js
+++ 2/titi
@@ -1,280 +1,140 @@
-
-
 L.TileLayer.addInitHook(function () {
-
-	if (!this.options.useCache) {
-		this._db     = null;
-		this._canvas = null;
-		return;
+if (this.options.cache) {
+this.pouch = new PouchDB(tiles-${this.options.cacheName}, {
+size: 1000,
+auto_compaction: true,
+revs_limit: 1
+})
+logger.info(pouchdb: ${this.pouch.name}, adapter: ${this.pouch.adapter})
 }
+})

-	var dbName = this.options.dbName || 'offline-tiles';
-	if (this.options.dbOptions) {
-		this._db = new PouchDB(dbName, this.options.dbOptions);
-	} else {
-		this._db = new PouchDB(dbName);
-	}
-	this._canvas = document.createElement('canvas');
-
-	if (!(this._canvas.getContext && this._canvas.getContext('2d'))) {
-		// HTML5 canvas is needed to pack the tiles as base64 data. If
-		//   the browser doesn't support canvas, the code will forcefully
-		//   skip caching the tiles.
-		this._canvas = null;
-	}
-});
-
-// 🍂namespace TileLayer
-// 🍂section PouchDB tile caching options
-// 🍂option useCache: Boolean = false
 // Whether to use a PouchDB cache on this tile layer, or not
-L.TileLayer.prototype.options.useCache     = false;
+L.TileLayer.prototype.options.cache = false;

-// 🍂option saveToCache: Boolean = true
-// When caching is enabled, whether to save new tiles to the cache or not
-L.TileLayer.prototype.options.saveToCache  = true;
-
-// 🍂option useOnlyCache: Boolean = false
-// When caching is enabled, whether to request new tiles from the network or not
-L.TileLayer.prototype.options.useOnlyCache = false;
-
-// 🍂option useCache: String = 'image/png'
-// The image format to be used when saving the tile images in the cache
-L.TileLayer.prototype.options.cacheFormat = 'image/png';
-
-// 🍂option cacheMaxAge: Number = 24*3600*1000
 // Maximum age of the cache, in milliseconds
 L.TileLayer.prototype.options.cacheMaxAge = 24 * 3600 * 1000;

-
 L.TileLayer.include({

 // Overwrites L.TileLayer.prototype.createTile
-	createTile: function(coords, done) {
-		var tile = document.createElement('img');
-
-		tile.onerror = L.bind(this._tileOnError, this, done, tile);
-
+createTile(coords, done) {
+const url = this.getTileUrl(coords);
+const tile = document.createElement('img');
 if (this.options.crossOrigin) {
 tile.crossOrigin = '';
 }
-
-		/*
-		 Alt tag is *set to empty string to keep screen readers from reading URL and for compliance reasons
-		 http://www.w3.org/TR/WCAG20-TECHS/H67
-		 */
-		tile.alt = '';
-
-		var tileUrl = this.getTileUrl(coords);
-
-		if (this.options.useCache && this._canvas) {
-			this._db.get(tileUrl, {revs_info: true}, this._onCacheLookup(tile, tileUrl, done));
+tile.onerror = () => {
+logger.error(bom.leaf load failed: ${tile.src})
+}
+if (this.options.cache) {
+this.pouch.get(url, {attachments: true, binary: true, revs_info: true}, this.onCacheLookup(tile, url, done));
 } else {
 // Fall back to standard behaviour
 tile.onload = L.bind(this._tileOnLoad, this, done, tile);
+tile.src = url;
 }
-
-		tile.src = tileUrl;
 return tile;
 },

-	// Returns a callback (closure over tile/key/originalSrc) to be run when the DB
-	//   backend is finished with a fetch operation.
-	_onCacheLookup: function(tile, tileUrl, done) {
+// Returns a callback (closure over tile/key/originalSrc) to be run when the DB backend is finished with a fetch operation.
+onCacheLookup(tile, tileUrl, done) {
 return function(err, data) {
 if (data) {
-				this.fire('tilecachehit', {
-					tile: tile,
-					url: tileUrl
-				});
-				if (Date.now() > data.timestamp + this.options.cacheMaxAge && !this.options.useOnlyCache) {
-					// Tile is too old, try to refresh it
-					//console.log('Tile is too old: ', tileUrl);
-
-					if (this.options.saveToCache) {
-						tile.onload = L.bind(this._saveTile, this, tile, tileUrl, data._revs_info[0].rev, done);
-					}
-					tile.crossOrigin = 'Anonymous';
-					tile.src = tileUrl;
-					tile.onerror = function(ev) {
-						// If the tile is too old but couldn't be fetched from the network,
-						//   serve the one still in cache.
-						this.src = data.dataUrl;
-					}
+this.fire('tilecachehit', {tile, url: tileUrl});
+if ((Date.now() > (data.timestamp + this.options.cacheMaxAge))) {
+// old tile, refresh it
+tile.qwest = null
+this.readAndSaveTile(tile, tileUrl, data._revs_info[0].rev, done)
 } else {
-					// Serve tile from cached data
-					//console.log('Tile is cached: ', tileUrl);
+// tile from cache
 tile.onload = L.bind(this._tileOnLoad, this, done, tile);
-					tile.src = data.dataUrl;    // data.dataUrl is already a base64-encoded PNG image.
+tile.src = URL.createObjectURL(data._attachments.img.data);
 }
 } else {
-				this.fire('tilecachemiss', {
-					tile: tile,
-					url: tileUrl
-				});
-				if (this.options.useOnlyCache) {
-					// Offline, not cached
-// 					console.log('Tile not in cache', tileUrl);
-					tile.onload = L.Util.falseFn;
-					tile.src = L.Util.emptyImageUrl;
-				} else {
-					//Online, not cached, request the tile normally
-// 					console.log('Requesting tile normally', tileUrl);
-					if (this.options.saveToCache) {
-						tile.onload = L.bind(this._saveTile, this, tile, tileUrl, null, done);
-					} else {
-						tile.onload = L.bind(this._tileOnLoad, this, done, tile);
-					}
-					tile.crossOrigin = 'Anonymous';
-					tile.src = tileUrl;
-				}
+this.fire('tilecachemiss', {tile, url: tileUrl});
+this.readAndSaveTile(tile, tileUrl, null, done)
 }
 }.bind(this);
 },

-	// Returns an event handler (closure over DB key), which runs
-	//   when the tile (which is an <img>) is ready.
-	// The handler will delete the document from pouchDB if an existing revision is passed.
-	//   This will keep just the latest valid copy of the image in the cache.
-	_saveTile: function(tile, tileUrl, existingRevision, done) {
-		if (this._canvas === null) return;
-		this._canvas.width  = tile.naturalWidth  || tile.width;
-		this._canvas.height = tile.naturalHeight || tile.height;
-
-		var context = this._canvas.getContext('2d');
-		context.drawImage(tile, 0, 0);
-
-		var dataUrl;
-		try {
-			dataUrl = this._canvas.toDataURL(this.options.cacheFormat);
-		} catch(err) {
-			this.fire('tilecacheerror', { tile: tile, error: err });
-			return done();
+readAndSaveTile(tile, tileUrl, existingRevision, done) {
+if (tile.qwest) {
+return
 }
-
-		var doc = {_id: tileUrl, dataUrl: dataUrl, timestamp: Date.now()};
-	    if (existingRevision) {
-	      this._db.get(tileUrl).then(function(doc) {
-	          return this._db.put({
-	              _id: doc._id,
-	              _rev: doc._rev,
-	              dataUrl: dataUrl,
-	              timestamp: Date.now()
-	          });
-	      }.bind(this)).then(function(response) {
-	        //console.log('_saveTile update: ', response);
-	      });
-	    } else {
-	      this._db.put(doc).then( function(doc) {
-	        //console.log('_saveTile insert: ', doc);
-	      });
+let headers = {}
+if (tileUrl.indexOf('cors-anywhere') >= 0) {
+headers = {
+'X-Requested-With': 'XMLHttpRequest'
 }
-
-	    if (done) {
-	      done();
 }
+tile.qwest = qwest.get(tileUrl, null, {headers, cache: true, responseType: 'blob'}).then(res => {
+this.saveTile(res.response, tileUrl, existingRevision, done)
+tile.src = URL.createObjectURL(res.response);
+}).catch(error => {
+logger.error('qwest error', error.message);
+})
 },

-	// 🍂section PouchDB tile caching options
-	// 🍂method seed(bbox: LatLngBounds, minZoom: Number, maxZoom: Number): this
-	// Starts seeding the cache given a bounding box and the minimum/maximum zoom levels
-	// Use with care! This can spawn thousands of requests and flood tileservers!
-	seed: function(bbox, minZoom, maxZoom) {
-		if (!this.options.useCache) return;
-		if (minZoom > maxZoom) return;
-		if (!this._map) return;
-
-		var queue = [];
-
-		for (var z = minZoom; z<=maxZoom; z++) {
-
-			var northEastPoint = this._map.project(bbox.getNorthEast(),z);
-			var southWestPoint = this._map.project(bbox.getSouthWest(),z);
-
-			// Calculate tile indexes as per L.TileLayer._update and
-			//   L.TileLayer._addTilesFromCenterOut
-			var tileSize = this.getTileSize();
-			var tileBounds = L.bounds(
-				L.point(Math.floor(northEastPoint.x / tileSize.x), Math.floor(northEastPoint.y / tileSize.y)),
-				L.point(Math.floor(southWestPoint.x / tileSize.x), Math.floor(southWestPoint.y / tileSize.y)));
-
-			for (var j = tileBounds.min.y; j <= tileBounds.max.y; j++) {
-				for (var i = tileBounds.min.x; i <= tileBounds.max.x; i++) {
-					point = new L.Point(i, j);
-					point.z = z;
-					queue.push(this._getTileUrl(point));
+// Overwrite L.TileLayer.prototype._abortLoading
+_abortLoading() {
+let i
+let tile
+for (i in this._tiles) {
+if (this._tiles[i].coords.z !== this._tileZoom) {
+tile = this._tiles[i].el;
+tile.onload = L.Util.falseFn;
+tile.onerror = L.Util.falseFn;
+if (!tile.complete) {
+tile.src = L.Util.emptyImageUrl;
+L.DomUtil.remove(tile);
 }
+if (tile.qwest) {
+tile.qwest.abort()
 }
 }
-
-		var seedData = {
-			bbox: bbox,
-			minZoom: minZoom,
-			maxZoom: maxZoom,
-			queueLength: queue.length
 }
-		this.fire('seedstart', seedData);
-		var tile = this._createTile();
-		tile._layer = this;
-		this._seedOneTile(tile, queue, seedData);
-		return this;
 },

-	_createTile: function () {
-		return new Image();
-	},
-
-	// Modified L.TileLayer.getTileUrl, this will use the zoom given by the parameter coords
-	//  instead of the maps current zoomlevel.
-	_getTileUrl: function (coords) {
-		var zoom = coords.z;
-		if (this.options.zoomReverse) {
-			zoom = this.options.maxZoom - zoom;
+// Returns an event handler (closure over DB key), which runs when the tile (which is an ) is ready.
+// The handler will delete the document from pouchDB if an existing revision is passed.
+// This will keep just the latest valid copy of the image in the cache.
+saveTile(tileBlob, tileUrl, existingRevision, done) {
+const doc = {
+_id: tileUrl,
+_attachments: {
+img: {
+content_type: 'image/jpeg',
+data: tileBlob
 }
-		zoom += this.options.zoomOffset;
-		return L.Util.template(this._url, L.extend({
-			r: this.options.detectRetina && L.Browser.retina && this.options.maxZoom > 0 ? '@2x' : '',
-			s: this._getSubdomain(coords),
-			x: coords.x,
-			y: this.options.tms ? this._globalTileRange.max.y - coords.y : coords.y,
-			z: this.options.maxNativeZoom ? Math.min(zoom, this.options.maxNativeZoom) : zoom
-		}, this.options));
 },
-
-	// Uses a defined tile to eat through one item in the queue and
-	//   asynchronously recursively call itself when the tile has
-	//   finished loading.
-	_seedOneTile: function(tile, remaining, seedData) {
-		if (!remaining.length) {
-			this.fire('seedend', seedData);
-			return;
+timestamp: Date.now()
 }
-		this.fire('seedprogress', {
-			bbox:    seedData.bbox,
-			minZoom: seedData.minZoom,
-			maxZoom: seedData.maxZoom,
-			queueLength: seedData.queueLength,
-			remainingLength: remaining.length
-		});
-
-		var url = remaining.pop();
+if (existingRevision) {
+this.pouch.remove(tileUrl, existingRevision, () => {
+this.pouchPut(doc)
+})
+} else {
+this.pouchPut(doc)
+}
+if (done) {
+done()
+}
+},

-		this._db.get(url, function(err, data) {
-			if (!data) {
-				tile.onload = function(e) {
-					this._saveTile(tile, url, null);
-					this._seedOneTile(tile, remaining, seedData);
-				}.bind(this);
-				tile.onerror = function(e) {
-					// Could not load tile, let's continue anyways.
-					this._seedOneTile(tile, remaining, seedData);
-				}.bind(this);
-				tile.crossOrigin = 'Anonymous';
-				tile.src = url;
+pouchPut(doc) {
+this.pouch.put(doc).then(res => {
+logger.debug('tile cached', res)
+}).catch(err => {
+if (err.status === 409) {
+// document update conflicts may be caused by XHR flooding,
+// but we can safely ignore them since we keep only one version anyway and we need no db sync
+logger.debug(err)
 } else {
-				this._seedOneTile(tile, remaining, seedData);
+logger.error(err)
 }
-		}.bind(this));
+this.fire('tilecacheerror', {tile: doc._id, error: err})
+})
 }

 });

authors: albfan gugurete


text:
Concurrent Queue trydequeue sometimes getting duplicated items

This script utilizes consumer/producer model. When started scanning, many threads will keep writing the results to the concurrent queue. At the same time, there is a dispatch timer controlled ScriptBlock which calls TryDequeue method periodically and write the data to the RichTextBox. When there is more data going through the queue, sometimes there will be duplicated items showing in the GUI. Microsoft claimed the concurrent queue is thread safe but it seems like some of the Dequeue operation didn't successfully remove the item from the queue, causing the next Dequeue operation get the same item.
This might be the bug in TryDequeue method, or it is normal when there are too many threads trying to push data to the queue at the same time.

The scriptblock stored in the synchronized hash table is not thread safe. Moved the content of the script block into the thread solves the problem

repo: MeCRO-DEV/PSScanner


text:
feature: Highlight  text background when double = on each side

Is your feature request related to a problem? Please describe.
In some markdown apps, like obsidian, if you do a double = between a text it would highlight the text, with yellow background (and also turn black the letter color)  and would hide the double = on each side
like ==some text here==
would become :
like some text here (with yellow background and dark letter color)
Describe the solution you'd like
hide the double = on each side and paint the background color with yellow (could be a custom color) and paint the letter with black color
Describe alternatives you've considered
none
Additional information
thanks in advance, it is a amazing plugin so far

Hi, I assume you're talking about this feature of Obsidian: https://help.obsidian.md/Editing+and+formatting/Basic+formatting+syntax#Bold, italics, highlights.
I rely on tree-sitter to do the entirety of the document parsing and am not open to doing line by line string parsing to implement features, for my own sanity.
Since the == syntax is not recognized as any kind of node by the markdown parser I'm not going to add this.
Appreciate the idea, is sometimes hard to explain why some seemingly easy tasks are hard and vice versa. The other features in that Obsidian document are handled by the markdown parser.

thanks for your response, didnt know this was not standard, do you know if somehow i can do that in my side like a code snippet ?
Im still not neovim tech savy, hence the question.
obsidian.nvim implement this highlight feature in their ui plugin, but i keep disable because it mess with your plugin, and your ui is better

Sure, you can use the extension point of this plugin called custom_handlers. I wrote a version of it that'll probably handle most cases. If you come across problems you can use some classic print debugging to figure out what's going on. Your config for this plugin will look like so:
require('render-markdown').setup({
  custom_handlers = {
    markdown = {
      extends = true,
      parse = function(root, buf)
        local marks = {}

        ---@param row integer
        ---@param start_col integer
        ---@param end_col integer
        ---@param conceal? string
        ---@param hl_group? string
        local function append(row, start_col, end_col, conceal, hl_group)
          table.insert(marks, {
            conceal = true,
            start_row = row,
            start_col = start_col,
            opts = { end_row = row, end_col = end_col, conceal = conceal, hl_group = hl_group },
          })
        end

        local start_row = root:range()
        local text = vim.treesitter.get_node_text(root, buf)
        for i, line in ipairs(vim.split(text, '\n', { plain = true })) do
          local row = start_row + i - 1
          ---@type integer|nil
          local position = 1
          while position ~= nil do
            local start_col, end_col = line:find('(=)=[^=]+=(=)', position)
            if start_col ~= nil and end_col ~= nil then
              -- Translate 1 based index to 0 based index, update position
              start_col, position = start_col - 1, end_col + 1
              -- Hide first 2 equal signs
              append(row, start_col, start_col + 2, '', nil)
              -- Highlight contents
              append(row, start_col, end_col, nil, 'DiffDelete')
              -- Hide last 2 equal signs
              append(row, end_col - 2, end_col, '', nil)
            else
              position = nil
            end
          end
        end
        return marks
      end,
    },
  },
})

This is now handled natively by the plugin after: https://github.com/MeanderingProgrammer/render-markdown.nvim/commit/d6a82d70765aa238b7ea48d257a1d57a92501423


text:
Text View font size (Linux)

Font size on text view mode is too small on Linux. Can you increase it a bit?

Yes, its too small!
Control the font size, would be great.

authors: ghost mmBesar

repo: MediaArea/MediaInfo


text:
Matroska color range showing incorrect values

Hi,
It seems that if a value < 2 is present in the Range element in a Matroska file the range is reported as Full.
I only just noticed this when making screenshots for my NTTW presentation..
Full range file -color_primaries jpeg
$ mediainfo --Details=1 jpeg.mkv |grep Range -A 4
01D5      Range - 2 (0x2) (4 bytes)
01D5       Header (3 bytes)
01D5        Name:                            5561 (0x15B9)
01D7        Size:                            1 (0x01)
01D8       Data:                             2 (0x02)

Broadcast range file -color_primaries mpeg
$ mediainfo --Details=1 mpeg.mkv |grep Range -A 4
01D5      Range - 1 (0x1) - Full (4 bytes)
01D5       Header (3 bytes)
01D5        Name:                            5561 (0x15B9)
01D7        Size:                            1 (0x01)
01D8       Data:                             1 (0x01)

Here's what the spec says:
Clipping of the color ranges. (0: Unspecified, 1: Broadcast Range, 2: Full range (no clipping), 3: Defined by MatrixCoefficients/TransferCharacteristics)

Argh, I stupidly mapped the Matroska value to the AVC/HEVC one (boolean 0 = Limited, 1 = Full).
Thanks for the bug discovery, need to fix that.

Cool, I was going to try to fix it myself but it's well beyond my abilities.

Not so difficult, check https://github.com/MediaArea/MediaInfoLib/pull/670.
Note: I currently don't do any difference between 0 and 3, as I don't understand yet how MatrixCoefficients/TransferCharacteristics has an impact on range.

authors: JeromeMartinez kieranjol

repo: MediaArea/MediaInfoLib


text:
Missing projects

Add content for the following projects:

FGDM4GS
Osires

Assignees: @maxcollombin

BiodivAR:

régler le problème affichage lien PNR 77 et alignement
ajout publications 6 à 9

Geocity:

modifier 1ère page avec contenu Olivier
En savoir plus: intégrer screenshots Olivier et adresse geocity.ch en lien et place texte

SymCore:

ajouter lien public SWG
adapter la taille de police des liens pour éviter les retours à la ligne

Osires

ajouter description
ajouter En savoir plus avec lien vers talk EGU
illustrations: logo outils versionning et/ou éléments contenu présentation Maxi

FGDM4GS

ajouter description
ajouter illustrations (thèse Baertschi ou matériel Gnaegi ou alors nouveau ou moutons XML JSON)

aucun lien public n'existe pour le OGC Styles & Symbology SWG


text:
🛑 MediaNext is down

In a2bca8b, MediaNext (https://the-bot.thein321.repl.co) was down:

HTTP code: 502
Response time: 197 ms

Resolved: MediaNext is back up in 529fca1.

repo: MediaPlay-Discord/status


text:
🛑 MediaNext is down

In c80773c, MediaNext (https://the-bot.thein321.repl.co) was down:

HTTP code: 0
Response time: 0 ms

Resolved: MediaNext is back up in a75b17d.


text:
fix(ng-select): dom-independent multi-select dropdown styles

Description

Make dropdown styling for multi-select work as intended independently of its position in the dom

Change

[x] Bug fix (non-breaking change, fixes an issue)
[ ] New feature (non-breaking change, adds functionality)
[ ] Breaking change (causing existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist

[x] I have self-reviewed my code
[ ] I have added comments to my code for hard-to-understand areas
[x] I have added tests that confirm my code works as intended

Ignore UI Review check - I need to setup CI

repo: MedicalDirector/hxui-angular


text:
help!  run the model on my own dataset, visdom show nothing. and  have this erro: WARNING:root:Setting up a new session... [W socket.cpp:697] [c10d] The client socket has failed to connect to [DESKTOP-BP72V]:55472 (system error: 10049 - �����������У�������ĵ�ַ��Ч��).

WARNING:root:Setting up a new session...
[W socket.cpp:697] [c10d] The client socket has failed to connect to [DESKTOP-BP72V]:55472 (system error: 10049 - �����������У�������ĵ�ַ��Ч��).
when i run the model on my own dataset, the erro happened ,and i cant see anything in visdom window about the training accurancy and loss.  is there any researchers had met this problem? how to solve this ，thanks!

You can delete the code about visdom.
# from visdom import Visdom
# viz = `Visdom(port=8850)

authors: fayeGou uxhao-o

repo: MedicineToken/MedSegDiff


text:
Details of enhacing the single point feature with region features?

Hi, pretty nice work!
I have some questions on the combination of single point features with region features in Table 1.  of the paper.
For example, a B x C x H x W tensor produces another B x C x H x W x (7 * 7) with standard RoIAlign.
A direct concatenate produces a B x (C x (7*7+1)) x H x W tensor, is it right?
And different feature extraction methods like region, border, middle leads to different numbers of points.
Can you provide more details about this part?

Yes,

Region Point: B x (C x (7*7+1)) x H x W with standard RoIAlign
Border Point: B x (C x (4*7+1)) x H x W with standard RoIAlign
Middle Border Point: B x (C x (4 + 1)) x H x W with standard RoIAlign

Yes,

Region Point: B x (C x (7*7+1)) x H x W with standard RoIAlign
Border Point: B x (C x (4*7+1)) x H x W with standard RoIAlign
Middle Border Point: B x (C x (4 + 1)) x H x W with standard RoIAlign

Thank you for your attention！

Region Point: B x (C x (7*7+1)) x H x W with standard RoIAlign
Border Point: B x (C x (4*7+1)) x H x W with standard RoIAlign
Middle Border Point: B x (C x (4 + 1)) x H x W with standard RoIAlign

Thanks a lot for replying!

Thank you for your attention！

Region Point: B x (C x (7*7+1)) x H x W with standard RoIAlign
Border Point: B x (C x (4*7+1)) x H x W with standard RoIAlign
Middle Border Point: B x (C x (4 + 1)) x H x W with standard RoIAlign

Thanks a lot for replying!

authors: Maycbj billqxg

repo: Megvii-BaseDetection/BorderDet


text:
Change the rarity of some super rare pokemon

Can you add a feature that can config what ball should be use for some special super rare like crystal onix ,this pokemon is so much high and i dont want to miss it .

Done!

Done!

wow , that so fast , ty

Done!

Some pokemon have " - " between like crystal-onix ,what shoul i place in config ? Crystal-onix or crystal onix ?

Done!

Some pokemon have " - " between like crystal-onix ,what shoul i place in config ? Crystal-onix or crystal onix ?

The config should have the name that appears in the pokemon spawn message

authors: MehulKhanna crazystle

repo: MehulKhanna/PokeGrinder


text:
请教调用ALTGVT问题

您好，请教一下  调用分类任务中的ALTGVT时，提示 类GroupBlock重载父类TimmBlock时多写了一个参数，报错如下：
super(GroupBlock, self).init(dim, num_heads, mlp_ratio, qkv_bias, qk_scale, drop, attn_drop,
TypeError: init() takes from 3 to 10 positional arguments but 11 were given
查询TimmBlock后发现 其并没有qk_scale这个参数，请问这个bug如何解决呢

我猜是由于你安装的timm不是0.3.2

我猜是由于你安装的timm不是0.3.2

原来timm库不向下兼容，感谢美团大佬指导

我猜是由于你安装的timm不是0.3.2

原来timm库不向下兼容，感谢美团大佬指导

我猜是由于你安装的timm不是0.3.2

原来timm库不向下兼容，感谢美团大佬指导

问题解决后，可以close这个issue

repo: Meituan-AutoML/Twins


text:
重复进入page时，page里component的mounted事件没有触发

[问题简单描述]
页面里面的Component的mounted事件只在这个页面第一次展示的时候调用
如果重复进入同一个页面的话，Vue Instance被复用所以没有created事件，Page的mounted事件被调用了，但是Page里面的Component的mounted事件没有被调用
问题复现步骤:
新建两个页面A和B
A里面一个按钮调用wx.navigateTo(B)
B里面放一个compoment C
A作为起始页
打开A，点击按钮去B，后退到A，再点击去B
期望的表现/观察到的表现
[page-A] beforeCreate()
[page-A] created()
[page-B] beforeCreate()
[page-B] created()
[page-A] onLoad()
[page-A] onShow()
[page-A] onReady()
[page-A] beforeMount()
[page-A] mounted()
-------------NAVIGATION TO B-------------
[page-A] onHide()
[page-B] onLoad()
[page-B] onShow()
[page-B] onReady()
[page-B] beforeMount()
[Comp-C] beforeCreate()
[Comp-C] created()
[Comp-C] beforeMount()
[Comp-C] mounted()
[page-B] mounted()
-------------GO BACK-------------
[page-B] onUnload()
[page-A] onShow()
-------------NAVIGATION TO B-------------
[page-A] onHide()
[page-B] onLoad()
[page-B] onShow()
[page-B] onReady()
[page-B] beforeMount()
[page-B] beforeUpdate()
[page-B] mounted()
>>> [Comp-C] beforeMount() <<< 这两个事件没有触发
>>> [Comp-C] mounted() <<< 这两个事件没有触发
[Comp-C] beforeUpdate()
[Comp-C] updated()

再怎么说，父节点（PAGE-B）被mount了之后，子节点（Comp-C）的mount也得被调用吧？

组件里尽量不要用生命周期吧

@F-loat 着我是同意的，可是如果要处理一些比较复杂的有状态的空间（比如坑爹的），没有生命周期做一些初始化/清理工作根本不行……
目前我想到的workaround是组件mount好了emit一个事件给上层，在参数里面给两个callback，然后上面的page接住了之后吧自己的生命周期事件forward给这个回掉……

@F-loat 有没有什么hack的方法能够在component里面找到page的vue instance然后偷偷注册一下生命周期回掉？其实真正要用的地方也不多，hack一下是可以的……

你是要做什么啊，组件内的 data 尽量还是设计成状态无关的比较好，有关状态的数据通过 props 传递，或者说目前为了规避这个问题需要这样设计

父组件的东西子组件都可以调用的，但是这样太强耦合了吧

可以在父组件调用子组件的方法这样？

父组件调用子组件方法的推荐做法是什么呢？目前我们的方法是子组件emit一个事件，把自己的控制interface扔出去让父组件接住，然后就可以调用了。这就是我说的第一个方法。
但是这样的问题是每次setup这个组件步骤很多，还涉及到事件顺序的问题，从Page级别开始所有的父组件需要理解里面有一个特殊的组件
所以后来我想有没有让子组建更“自制”的方法，用某个方法直接找到自己属于哪个Page，然后把自己的callback注册到Page的生命周期里面。这样虽然dirty一些，但是封装的更好，污染区域小，用起来更像一个”纯数据“的组件。

可以通过 ref 获取到组件实例的，然后直接调用相应的方法就可以

刨了下源代码，我现在倾向于这样处理，在Component里面的create或者mount里面加这么一句：
this.$parent.$options.onShow.push(() => {
  console.log('Parent page show()')
})

还需要做一些特殊处理，比如组件第一次create的时候应该是在Page.onShow()之后的了，得补一个event，还有要处理多层parent的情况，可以用$parent.$mp.mpType === ‘page’找到根上的page
@F-loat 这样处理您觉得怎么样呢?

不太懂，在父组件里调用子组件的方法不是更合理一点，会有什么问题吗

嗯上面两件事儿说的有点儿乱，有两个问题

Parent要调用子组件的方法，使用ref比较方便，我上面说的那种emit事件确实不如用ref直接调

子组件需要根据Page的生命周期做一些initialization和cleanup。这个我觉得用后面我说的子组件注入Page的handler列表的方法更合理一些，这样子组件的用户不需要知道子组件需要特殊处理这件事儿，只要当作一个正常的data-driven的组件用就可以了

嗯，第二个也可以吧，但是感觉出问题的话会不便于调试，一般还是提供方法给用户调用

这是一个bug，我建议reopen。父类mounted之后子组件肯定是要触发的。

这是因为组件没有的被销毁，一直存在。

虽然利用组件mounted钩子不一定合理，但mounted钩子还是应该触发。
应该跟页面组件保持一致，从运行机制来理解也更合理。

页面引用组件时加 v-if 进行销毁设置

authors: F-loat hughfenghen limichange linfan68 mapleSong

repo: Meituan-Dianping/mpvue