change 'extra_attributes' type to tuple

Hi!
After update to home assistant core 2024.1 luxtronik integration does not start properly:
Setup failed for custom integration 'luxtronik2': Unable to import component: Exception importing custom_components.luxtronik2
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/loader.py", line 822, in get_component
    ComponentProtocol, importlib.import_module(self.pkg_path)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/config/custom_components/luxtronik2/__init__.py", line 28, in <module>
    from .coordinator import LuxtronikCoordinator
  File "/config/custom_components/luxtronik2/coordinator.py", line 21, in <module>
    from .common import correct_key_value
  File "/config/custom_components/luxtronik2/common.py", line 25, in <module>
    from .model import LuxtronikCoordinatorData
  File "/config/custom_components/luxtronik2/model.py", line 89, in <module>
    @dataclass
     ^^^^^^^^^
  File "/usr/local/lib/python3.11/dataclasses.py", line 1230, in dataclass
    return wrap(cls)
           ^^^^^^^^^
  File "/usr/local/lib/python3.11/dataclasses.py", line 1220, in wrap
    return _process_class(cls, init, repr, eq, order, unsafe_hash,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dataclasses.py", line 1027, in _process_class
    _init_fn(all_init_fields,
  File "/usr/local/lib/python3.11/dataclasses.py", line 545, in _init_fn
    raise TypeError(f'non-default argument {f.name!r} '
TypeError: non-default argument 'extra_attributes' follows default argument

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 251, in _async_setup_component
    component = integration.get_component()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/loader.py", line 830, in get_component
    raise ImportError(f"Exception importing {self.pkg_path}") from err
ImportError: Exception importing custom_components.luxtronik2

I've tracked it down to the extra_attributes being set by the default_factory, which is not a value.
This PR changes type of extra_attributes to tuple to give it proper value in dataclass. With that change integration starts at my installation successfully.
All the best!

This PR changes type of extra_attributes to tuple to give it proper value in dataclass. With that change integration starts at my installation successfully.

Hi, thank you for your quick fix.
I can confirm it works like a charm.

I have the same problem and downgraded to HA 2023-12.
Do we get a new beta version? I have installed 2023-11-30 beta.

Oh please approve this PR. My statistics and control are not working for days. Hopefully we get a new version within the next days from @BenPru 🤗

just change the 3 files in the folder for the meantime :P

Hey, I just edited the 3 files, restarted HA, I get the an unknown error when trying to add the integration. I fill in the correct IP address and port...
Any idea?
thanks in advance

Hey, I just edited the 3 files, restarted HA, I get the an unknown error when trying to add the integration. I fill in the correct IP address and port...
Any idea? thanks in advance

Same here. Integration does not start

Had the same problem, restarting Home Assistant helped me.

Had the same problem, restarting Home Assistant helped me.

Not here.

@ggajoch works fine, thanks for this quick fix

fix of 3 files worked for me... (https://github.com/BenPru/luxtronik/pull/227/commits/da92c67de66d84ab9291899c4fcbb51ef5fc9683)
when integration fails please double check if you replace [ with an ( and not () (which I oversaw the first time , auto complete of VS code)
Thanks @ggajoch

I have changed all 3 files, even copied them 1:1, but I get the following error in the logs:
> Dieser Fehler wurde von einer benutzerdefinierten Integration verursacht
>
> Logger: custom_components.luxtronik2
> Source: custom_components/luxtronik2/config_flow.py:223
> Integration: Luxtronik
> First occurred: 14:36:50 (6 occurrences)
> Last logged: 15:09:31
>
> Could not handle config_flow.async_step_options {'host': '<IP_ADDRESS>', 'port': 8889, 'timeout': 60, 'max_data_length': 10000}
> Could not handle config_flow.async_step_options {'host': '<IP_ADDRESS>', 'port': 8888, 'timeout': 60, 'max_data_length': 10000}
> Could not handle config_flow.async_step_options {'host': '<IP_ADDRESS>', 'port': 8889, 'timeout': 120, 'max_data_length': 10000}
> Traceback (most recent call last):
>   File "/config/custom_components/luxtronik2/config_flow.py", line 223, in async_step_options
>     await self.async_set_unique_id(coordinator.unique_id)
>   File "/usr/src/homeassistant/homeassistant/config_entries.py", line 1624, in async_set_unique_id
>     raise data_entry_flow.AbortFlow("already_in_progress")
> homeassistant.data_entry_flow.AbortFlow: Flow aborted: already_in_progress

fix of 3 files worked for me... (da92c67)
when integration fails please double check if you replace [ with an ( and not () (which I oversaw the first time , auto complete of VS code)
Thanks @ggajoch

Cannot even find the 3 files or the Files Look different. Is luxtronik2 Integration not similiar?

fix of 3 files worked for me... (da92c67)
when integration fails please double check if you replace [ with an ( and not () (which I oversaw the first time , auto complete of VS code)
Thanks @ggajoch

Cannot even find the 3 files or the Files Look different. Is luxtronik2 Integration not similiar?

I'm using version 2023.11.30-Beta. if you click on the link you can see in the header the file names:
custom_components/luxtronik/model.py
custom_components/luxtronik/number_entities_predefined.py
custom_components/luxtronik/sensor_entities_predefined.py
which you can find here:

I have changed all 3 files, even copied them 1:1, but I get the following error in the logs:
> Dieser Fehler wurde von einer benutzerdefinierten Integration verursacht
>
> Logger: custom_components.luxtronik2
> Source: custom_components/luxtronik2/config_flow.py:223
> Integration: Luxtronik
> First occurred: 14:36:50 (6 occurrences)
> Last logged: 15:09:31
>
> Could not handle config_flow.async_step_options {'host': '<IP_ADDRESS>', 'port': 8889, 'timeout': 60, 'max_data_length': 10000}
> Could not handle config_flow.async_step_options {'host': '<IP_ADDRESS>', 'port': 8888, 'timeout': 60, 'max_data_length': 10000}
> Could not handle config_flow.async_step_options {'host': '<IP_ADDRESS>', 'port': 8889, 'timeout': 120, 'max_data_length': 10000}
> Traceback (most recent call last):
>   File "/config/custom_components/luxtronik2/config_flow.py", line 223, in async_step_options
>     await self.async_set_unique_id(coordinator.unique_id)
>   File "/usr/src/homeassistant/homeassistant/config_entries.py", line 1624, in async_set_unique_id
>     raise data_entry_flow.AbortFlow("already_in_progress")
> homeassistant.data_entry_flow.AbortFlow: Flow aborted: already_in_progress

seems like that you added more then one Heat pump ?
share all the same IP and different ports / timeouts? => just guessing by the logfile

ok, my error quoted earlier has reloved: the integration was already configured but ignored thus the error message.
So it's running for me now! a big thank you @ggajoch

Thanks for the PR. LGTM

fix of 3 files worked for me... (da92c67)
when integration fails please double check if you replace [ with an ( and not () (which I oversaw the first time , auto complete of VS code)
Thanks @ggajoch

Cannot even find the 3 files or the Files Look different. Is luxtronik2 Integration not similiar?

I'm using version 2023.11.30-Beta. if you click on the link you can see in the header the file names: custom_components/luxtronik/model.py custom_components/luxtronik/number_entities_predefined.py custom_components/luxtronik/sensor_entities_predefined.py
which you can find here:

I guess i use the one from bouni? Might be a difference . Where can I see which one I have?
Sorry for bothering again...

fix of 3 files worked for me... (da92c67)
when integration fails please double check if you replace [ with an ( and not () (which I oversaw the first time , auto complete of VS code)
Thanks @ggajoch

Cannot even find the 3 files or the Files Look different. Is luxtronik2 Integration not similiar?

I'm using version 2023.11.30-Beta. if you click on the link you can see in the header the file names: custom_components/luxtronik/model.py custom_components/luxtronik/number_entities_predefined.py custom_components/luxtronik/sensor_entities_predefined.py
which you can find here:

Model.py seems really short in my HA (V2024.1.2) Do not have the other two files.
I guess i use the one from bouni? Might be a difference . Where can I see which one I have?
Sorry for bothering again...

go to HACS
click the integration
in the top you see the creator:

fix of 3 files worked for me... (da92c67)
when integration fails please double check if you replace [ with an ( and not () (which I oversaw the first time , auto complete of VS code)
Thanks @ggajoch

Cannot even find the 3 files or the Files Look different. Is luxtronik2 Integration not similiar?

I'm using version 2023.11.30-Beta. if you click on the link you can see in the header the file names: custom_components/luxtronik/model.py custom_components/luxtronik/number_entities_predefined.py custom_components/luxtronik/sensor_entities_predefined.py
which you can find here:

Model.py seems really short in my HA (V2024.1.2) Do not have the other two files.
I guess i use the one from bouni? Might be a difference . Where can I see which one I have?
Sorry for bothering again...

go to HACS click the integration
in the top you see the creator:

Its getting worse

Please use a forum or issue, no PR.


Getting error Select Interpreter when opening a Multi-root workspace

Open a multi-root workspace folder with one workspace folder
You'll get an error Select Python Interpreter in statusbar (simulate this somehow, ensure PYTHON is not in path, or update pythonPath in settings.json to point to an invalid python interpreter)
Select a python interpreter
You'll still get the error

@xcdr I don't quite understand the problem you are describing. please could you give some instructions to replicate this issue.

@xcdr I don't quite understand the problem you are describing. please could you give some instructions to replicate this issue.

Hi, I created repo for example: https://github.com/xcdr/vscode-bug-3419
You can clone this repo and open project via projects.code-workspace, in this case You should see underlined mypackage in main.py, but all work's fine when You open project-a or project-b directly because properly works PYTHONPATH via .env file.
PS D:\Projects\vscode-bug-3419> pip list
Package          Version
---------------- ----------
certifi          2018.10.15
pip              18.1
pipenv           2018.11.26
setuptools       39.0.1
virtualenv       16.1.0
virtualenv-clone 0.4.0

I use vscode on Windows 10 1809  with pwsh 6.1. as shell:
PS D:\Projects\vscode-bug-3419> code -v
1.30.1
dea8705087adb1b5e5ae1d9123278e178656186a
x64
PS D:\Projects\vscode-bug-3419> code --list-extensions --show-versions
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>


Style issue in dark/light mode select box options

https://prnt.sc/jmxUgFiSCRer

#12  I fixed that issue in this PR.


Runtime error when using DDP

Hii, I just wanted to highlight that when using the 'ddp' with the following command:
python scripts/train_bert_binary_augmented_kilt.py     --gpus 1     --accelerator ddp     --num_workers 32     --batch_size 256     --max_steps 50000     --divergences kl
There is an error:
RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. This error indicates that your module has parameters that were not used in producing loss. You can enable unused parameter detection by (1) passing the keyword argument find_unused_parameters=True to torch.nn.parallel.DistributedDataParallel; (2) making sure all forward function outputs participate in calculating loss. If you already have done the above two steps, then the distributed data parallel module wasn't able to locate the output tensors in the return value of your module's forward function. Please include the loss function and the structure of the return value of forward of your module when reporting this issue (e.g. list, dict, iterable).
But after removing the --accelerator ddp, it is running fine. Is there any workaround to use it with DDP? I have tried setting find_unused_parameters=True to torch.nn.parallel.DistributedDataParallel;. But somehow this is also not working.

I didn't train on multiple GPUs, mainly because I do not know how to sync the hyper-network across processes.


Lots and lots of duplication

Standup query:
query = {
    "message": {
        "query_graph": {
            "nodes": {
                "n0": {
                    "ids": [
                        "NCBIGene:6656"
                    ],
                    "categories": [
                        "biolink:Gene"
                    ]
                },
                "n1": {
		             "categories":[

                         "biolink:BiologicalProcessOrActivity"
                        ]
                },
                "n2": {
                    "ids":["NCBIGene:6657"],
                    "categories":[
                        "biolink:Gene"
                       ]
               }

            },
            "edges": {
                "e0": {
                    "subject": "n0",
                    "object": "n1",
                    "predicates":["biolink:related_to"]

                },
                "e1": {
                    "subject": "n2",
                    "object": "n1",
                    "predicates":["biolink:related_to"]

                }
            }
        }
    }
}

2 genes, what processes do they have in common.  We return 1174 results, but only 62 are unique.
Oddly, each result happens either 1, 5, 10, 25, 50, 75, 100, or 150 times.
The most common result (150 copies) is this:
{
 "edge_bindings": {
  "e0": [
   {
    "id": "NCBIGene:6656-biolink:participates_in-GO:0006355"
   }
  ],
  "e1": [
   {
    "id": "NCBIGene:6657-biolink:participates_in-GO:0006355"
   }
  ]
 },
 "node_bindings": {
  "n0": [
   {
    "id": "NCBIGene:6656"
   }
  ],
  "n1": [
   {
    "id": "GO:0006355"
   }
  ],
  "n2": [
   {
    "id": "NCBIGene:6657"
   }
  ]
 },
 "score": null
}

I suspect KP funkiness but even so, I think we should unique these.  It's possible that there is uniquifiying that could occur in the process, allowing some speedup as well.

The other thing is that this causes trouble for AC, which is trying to count things....

There are also repeated values in D.1.

This may be fixed via the smarter message merging Alon has been working on implementing. Once that's in, I'll check back to see whether or not that addresses the problem.

Can be closed when #276 is closed.


Release of MPPNet checkpoint

Hi,
Thanks for the amazing work and open-source the MPPNet!
In the readme file of MPPNet, there is a section of evaluating the pretrained model. However, I have checked several places but haven't found the download link for this pretrained model. I am not sure if I miss something, but is there any chance that you could provide a pretrained model for quick evaluation?
Best regards,
Kaicheng

If you are asking for the waymo pretrained models, we cannot release them publicly according to Waymo license. You can directly email to xuesong @Cedarch for the pretrained model for academic purpose.

Hi kcyu2014, sorry for late reply. The eamil is correct and I will reorganize the ckpt to you as soon as possible (the released code is reorganized and my original ckpt can not be directly loaded).

Thanks for the update! Sure I can wait until it's ready.
Cedarch @.***> 于2022年12月6日周二 11:29写道：

Hi kcyu2014, sorry for late reply. The eamil is correct and I will
reorganize the ckpt to you as soon as possible (the released code is
reorganized and my original ckpt can not be directly loaded).
—
Reply to this email directly, view it on GitHub
https://github.com/open-mmlab/OpenPCDet/issues/1205#issuecomment-1338691535,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEAEHNDSNKUH3HLIDKT2HOTWL2XKXANCNFSM6AAAAAASPKAAS4
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hi kcyu2014,  if you don't receive the model of MPPNet, you can email to me (chenxuesong@link.cuhk.edu.hk). I am not sure whether I have sent the link to  you  :).


Create afk

;     /$$$$$$              /$$     /$$          /$$$$$$  /$$$$$$$$ /$$   /$$
;    /$$__  $$            | $$    |/         /$$  $$| $$/| $$  /$$/
;   | $$  \ $$ /$$$$$$$  /$$$$$$   /$$        | $$  \ $$| $$      | $$ /$$/
;   | $$$$$$$$| $$  $$|_  $$_/  | $$ /$$$$$$| $$$$$$$$| $$$$$   | $$$$$/
;   | $$  $$| $$  \ $$  | $$    | $$|/| $$  $$| $$/   | $$  $$
;   | $$  | $$| $$  | $$  | $$ /$$| $$        | $$  | $$| $$      | $$\  $$
;   | $$  | $$| $$  | $$  |  $$$$/| $$        | $$  | $$| $$      | $$ \  $$
;   |/  |/|/  |/   _/  |/        |/  |/|/      |_/  __/
;
; ------------------------------------------------------------------------------
;                               Configuration
; ------------------------------------------------------------------------------
; POLL_INTERVAL (Seconds):
;   This is the interval which Anti-AFK checks for new windows and calculates
;   how much time is left before exisiting windows become inactve.
POLL_INTERVAL := 5
; WINDOW_TIMEOUT (Minutes):
;   This is the amount of time before a window is considered inactive. After
;   a window has timed out, Anti-AFK will start resetting any AFK timers.
WINDOW_TIMEOUT := 10
; TASK (Function):
;   This is a function that will be ran by the script in order to reset any
;   AFK timers. The target window will have focus while it is being executed.
;   You can customise this function freely - just make sure it resets the timer.
TASK := () => (
Send("{Space Down}")
Sleep(50)
Send("{Space Up}")
)
; TASK_INTERVAL (Minutes):
;   This is the amount of time the script will wait after calling the TASK function
;   before calling it again.
TASK_INTERVAL := 15
; BLOCK_INPUT (Boolean):
;   This tells the script whether you want to block input whilst it shuffles
;   windows and sends input. This requires administrator permissions and is
;   therefore disabled by default. If input is not blocked, keystrokes from the
;   user may 'leak' into the window while Anti-AFK moves it into focus.
BLOCK_INPUT := False
; PROCESS_LIST (Array):
;   This is a list of processes that Anti-AFK will montior. Any windows that do
;   not belong to any of these processes will be ignored.
PROCESS_LIST := ["notepad.exe", "wordpad.exe"]
; PROCESS_OVERRIDES (Associative Array):
;   This allows you to specify specific values of WINDOW_TIMEOUT, TASK_INTERVAL,
;   TASK and BLOCK_INPUT for specific processes. This is helpful if different
;   games consider you AFK at wildly different times, or if the function to
;   reset the AFK timer does not work as well across different applications.
PROCESS_OVERRIDES := Map(
"wordpad.exe", Map(
"WINDOW_TIMEOUT", 5,
"TASK_INTERVAL", 5,
"BLOCK_INPUT", False,
"TASK", () => (
Send("w")
)
)
)
; ------------------------------------------------------------------------------
;                                    Script
; ------------------------------------------------------------------------------
#SingleInstance
InstallKeybdHook()
InstallMouseHook()
windowList := Map()
for _, program in PROCESS_LIST
windowList[program] := Map()
; Check if the script is running as admin and if keystrokes need to be blocked. If it does not have admin
; privileges the user is prompted to elevate it's permissions. Should they deny, the ability to block input
; is disabled and the script continues as normal.
if (!A_IsAdmin)
{
requireAdmin := BLOCK_INPUT
for program, override in PROCESS_OVERRIDES
if (override.Has("BLOCK_INPUT") && override["BLOCK_INPUT"])
requireAdmin := True
if (requireAdmin)
{
    try
    {
        if A_IsCompiled
            RunWait('*RunAs "' A_ScriptFullPath '" /restart')
        else
            RunWait('*RunAs "' A_AhkPath '" /restart "' A_ScriptFullPath '"')
    }

    MsgBox(
        "This requires Anti-AFK to be run as Admin`nIt has been temporarily disabled",
        "Cannot Block Keystrokes", "OK Icon!"
    )
}

}
; Reset the AFK timer for a particular window, blocking input if required.
; Input is sent directly to the target window if it's active; If there is no active window the target
; window is made active.
; If another window is active, its handle is stored while the target is made transparent and activated.
; Any AFK timers are reset and the target is sent to the back before being made opaque again. Focus is then
; restored to the original window.
resetTimer(targetWindow, resetAction, DenyInput)
{
; Activates the target window if there is no active window or the Desktop is focused.
; Bringing the Desktop window to the front can cause some scaling issues, so we ignore it.
; The Desktop's window has a class of "WorkerW" or "Progman".
if (!WinExist("A") || (WinGetClass("A") = "WorkerW" || WinGetClass("A") = "Progman"))
{
WinActivate("ahk_id " targetWindow)
WinWaitActive("ahk_id " targetWindow)
}
; Send input directly if the target window is already active.
if (WinActive("ahk_id " targetWindow))
{
    resetAction()
    return
}

if (DenyInput && A_IsAdmin)
    BlockInput("On")

oldWindow := WinGetID("A")

WinSetTransparent(0, "ahk_id " targetWindow)

WinActivate("ahk_id " targetWindow)
WinWaitActive("ahk_id " targetWindow)

resetAction()

WinMoveBottom("ahk_id " targetWindow)
WinSetTransparent("OFF", "ahk_id " targetWindow)

WinActivate("ahk_id " oldWindow)
WinWaitActive("ahk_id " oldWindow)

if (DenyInput && A_IsAdmin)
    BlockInput("Off")

}
; Calculate the number of polls it will take for the time (in seconds) to pass.
getLoops(value)
{
return Max(1, Round(value*60 / POLL_INTERVAL))
}
; Find and return a specific attribute for a program, prioritising values in PROCESS_OVERRIDES.
; If an override has not been setup for that process, the default value for all programs will be used instead.
getValue(value, program)
{
if (PROCESS_OVERRIDES.Has(program) && PROCESS_OVERRIDES[program].Has(value))
return PROCESS_OVERRIDES[program][value]
return %value%

}
; Create and return an updated copy of the old window list. A new list is made from scratch and
; populated with the current windows. Timings for these windows are then copied from the old list
; if they are present, otherwise the default timeout is assigned.
updateWindowList(oldWindowList, processList)
{
newWindowList := Map()
for _, program in processList
{
newList := Map()
for _, handle in WinGetList("ahk_exe" program)
{
if (oldWindowList[program].Has(handle))
newList[handle] := oldWindowList[program][handle]
else
newList[handle] := Map(
"value", getLoops(getValue("WINDOW_TIMEOUT", program)),
"type", "Timeout"
)
}
    newWindowList[program] := newList
}

return newWindowList

}
; Dynamically update the System Tray icon and tooltip text, taking into consideration the number
; of windows that the script has found and the number of windows it is managing.
updateSysTray(windowList)
{
; Count how many windows are actively managed and how many
; are being monitored so we can guage the script's activity.
managed := Map()
monitor := Map()
for program, windows in windowList
{
managed[program] := 0
monitor[program] := 0
    for _, waitInfo in windows
    {
        if (waitInfo["type"] = "Timeout")
            monitor[program] += 1
        else if (waitInfo["type"] = "Interval")
            managed[program] += 1
    }

    if (managed[program] = 0)
        managed.Delete(program)

    if (monitor[program] = 0)
        monitor.Delete(program)
}

; If windows are being managed that means the script is periodically
; sending input. We update the SysTray to with the number of windows
; that are being managed.
if (managed.Count > 0)
{
    TraySetIcon(A_AhkPath, 2)

    if (monitor.Count > 0)
    {
        newTip := "Managing:`n"
        for program, windows in managed
            newTip := newTip program " - " windows "`n"

        newTip := newTip "`nMonitoring:`n"
        for program, windows in monitor
            newTip := newTip program " - " windows "`n"

        newTip := RTrim(newTip, "`n")
        A_IconTip := newTip
    }
    else
    {
        newTip := "Managing:`n"
        for program, windows in managed
            newTip := newTip program " - " windows "`n"

        newTip := RTrim(newTip, "`n")
        A_IconTip := newTip
    }

    return
}

; If we are not managing any windows but the script is still monitoring
; them in case they go inactive, the SysTray is updated with the number
; of windows that we are watching.
if (monitor.Count > 0)
{
    TraySetIcon(A_AhkPath, 3)

    newTip := "Monitoring:`n"
    for program, windows in monitor
        newTip := newTip program " - " windows "`n"

    newTip := RTrim(newTip, "`n")
    A_IconTip := newTip

    return
}

; If we get to this point the script is not managing or watching any windows.
; Essensially the script isn't doing anything and we make sure the icon conveys
; this if it hasn't already.
TraySetIcon(A_AhkPath, 5)
A_IconTip := "No windows found"

}
; Go through each window in the list and decrement it's timer.
; If the timer reaches zero the TASK function is ran and the timer is set back to it's starting value.
tickWindowList(windowList)
{
for program, windows in windowList
{
for handle, timeLeft in windows
{
if (WinActive("ahk_id" handle))
{
; If the program is active and has not timed out, we set it's timeout back to
; the limit. The user will need to interact with it to send it to the back and
; we use A_TimeIdlePhysical rather then our own timeout if it's in the foreground.
if (A_TimeIdlePhysical < getValue("WINDOW_TIMEOUT", program) * 60000)
{
timeLeft := Map(
"type", "Timeout",
"value", getLoops(getValue("WINDOW_TIMEOUT", program))
)
                windowList[program][handle] := timeLeft
                continue
            }

            ; If the program has timed out we need to update the WindowList to reflect that.
            ; We can achieve this by setting the time left to one. It will be decremented immediately
            ; afterwards and the script will activate as it sees the time left has reached zero.
            if (timeLeft["type"] = "Timeout")
                timeLeft["value"] = 1
        }

        ; Decrement the time left, if it reaches zero reset the AFK timer. Then reset the time
        ; left and repeat.
        timeLeft["value"] -= 1

        if (timeLeft["value"] = 0)
        {
            timeLeft := Map(
                "type", "Interval",
                "value", getLoops(getValue("TASK_INTERVAL", program))
            )

            resetTimer(
                handle,
                getValue("TASK", program),
                getValue("BLOCK_INPUT", program)
            )
        }

        windowList[program][handle] := timeLeft
    }
}

return windowList

}
updateScript()
{
global windowList
global BLOCK_INPUT
global PROCESS_LIST
global PROCESS_OVERRIDES
windowList := updateWindowList(windowList, PROCESS_LIST)
windowList := tickWindowList(windowList)

updateSysTray(windowList)

}
; Start Anti-AFK
updateScript()
SetTimer(updateScript, POLL_INTERVAL*1000)

May I ask what the aim of this pull request is?

I had no idea what I was doing. My apologies
Sent from my iPhone!
Travis Gardner
On Jan 19, 2024, at 08:06, Space @.***> wrote:

May I ask what the aim of this pull request is?
—
Reply to this email directly, view it on GitHubhttps://github.com/SpaceGT/Anti-AFK/pull/17#issuecomment-1900689396, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BFOVRT5R6S3VDG37T3YXDS3YPKKXDAVCNFSM6AAAAABCBXC4TKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBQGY4DSMZZGY.
You are receiving this because you authored the thread.Message ID: @.***>

In that case I'll close it for you


error: value is already defined on enum

When an enum is declared and then used in more than one table, prisma seems to redeclare it's values multiple times.
In my project there are several tables using the same enum:
CREATE TYPE user_role AS enum(
  'manager',
  'editor',
  'reader'
);

CREATE TABLE project_users(
  project_user_id uuid PRIMARY KEY DEFAULT NULL, -- public.uuid_generate_v7(),
  account_id uuid DEFAULT NULL REFERENCES accounts(account_id) ON DELETE CASCADE ON UPDATE CASCADE,
  project_id uuid DEFAULT NULL REFERENCES projects(project_id) ON DELETE CASCADE ON UPDATE CASCADE,
  user_id uuid DEFAULT NULL REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
  role user_role DEFAULT NULL,
  label text DEFAULT NULL,
  deleted boolean DEFAULT NULL -- FALSE
);

CREATE TABLE subproject_users(
  subproject_user_id uuid PRIMARY KEY DEFAULT NULL, -- public.uuid_generate_v7(),
  account_id uuid DEFAULT NULL REFERENCES accounts(account_id) ON DELETE CASCADE ON UPDATE CASCADE,
  subproject_id uuid DEFAULT NULL REFERENCES subprojects(subproject_id) ON DELETE CASCADE ON UPDATE CASCADE,
  user_id uuid DEFAULT NULL REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
  role user_role DEFAULT NULL,
  label text DEFAULT NULL,
  deleted boolean DEFAULT NULL -- FALSE
);

CREATE TABLE place_users(
  place_user_id uuid PRIMARY KEY DEFAULT NULL, -- public.uuid_generate_v7(),
  account_id uuid DEFAULT NULL REFERENCES accounts(account_id) ON DELETE CASCADE ON UPDATE CASCADE,
  place_id uuid DEFAULT NULL REFERENCES places(place_id) ON DELETE CASCADE ON UPDATE CASCADE,
  user_id uuid DEFAULT NULL REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
  role user_role DEFAULT NULL,
  label text DEFAULT NULL,
  deleted boolean DEFAULT NULL -- FALSE
);

When generating the client, this error occurs:
PS C:\Users\alexa\ps> npm run client:generate

><EMAIL_ADDRESS>client:generate
> npx electric-sql generate && node renameLables.js

Generating Electric client...
Service URL: http://localhost:5133
Proxy URL: postgresql://prisma:********@localhost:65432/ps
Error: Command failed: node C:\Users\alexa\ps\node_modules\prisma\build\index.js generate --schema=".electric_migrations_tmp_O9QE4F\prisma\schema.prisma"
Error: Prisma schema validation - (get-dmmf wasm)
Error code: P1012
error: Value "manager" is already defined on enum "user_role".
  -->  schema.prisma:995
   |
994 |   reader
995 |   manager
996 |   editor
   |
error: Value "editor" is already defined on enum "user_role".
  -->  schema.prisma:996
   |
995 |   manager
996 |   editor
997 |   reader
   |
error: Value "reader" is already defined on enum "user_role".
  -->  schema.prisma:997
   |
996 |   editor
997 |   reader
998 |   manager
   |
error: Value "manager" is already defined on enum "user_role".
  -->  schema.prisma:998
   |
997 |   reader
998 |   manager
999 |   editor
   |
error: Value "editor" is already defined on enum "user_role".
  -->  schema.prisma:999
   |
998 |   manager
999 |   editor
1000 |   reader
   |
error: Value "reader" is already defined on enum "user_role".
  -->  schema.prisma:1000
   |
999 |   editor
1000 |   reader
1001 | }
   |

Validation Error Count: 6
[Context: getDmmf]

Prisma CLI Version : 5.2.0

    at ChildProcess.exithandler (node:child_process:422:12)
    at ChildProcess.emit (node:events:527:35)
    at maybeClose (node:internal/child_process:1105:16)
    at ChildProcess._handle.onexit (node:internal/child_process:305:5) {
  code: 1,
  killed: false,
  signal: null,
  cmd: 'node C:\\Users\\alexa\\ps\\node_modules\\prisma\\build\\index.js generate --schema=".electric_migrations_tmp_O9QE4F\\prisma\\schema.prisma"'
}
generate command failed: Generator script exited with error code: 1

Is this error in electric-sql or prisma?

@barbalex Thanks for the report! This is definitely a bug in Electric. Will look into it.

I tested this with v0.10.1 and it works, thanks a lot guys!


Allow outlet to precede inlet with the same name

We often want to place outlets on the left. While it's usually possible to just use an XO in a pipeline, sometimes the inlet is used as a command argument and therefore must be somewhere to the right. It is currently a syntax error to do this. Solve by parsing lines in two stages (first look for inlets, then handle everything else on the line).

Fixed in commit 03c705a02bff71831d338f8e5c5908dbd5e17257


Swift Package Manger results in broken library

Because Swift Package Manager does not handle resources correctly yet, it omits them from the target.  This causes the code to crash due to force unwraps on images that failed to load.
You should probably remove Package.swift until they add support for resources.

At the moment, Instructions is not really supposed to be included via SPM. Package.swift is only present because CocoaPods enjoys seeing it there.
Last time I took a look at SPM, they explicitly stated that it did not support UIKit. Has this changed?

Closing due to inactivity.


CDN routing

With the landing page only moved to Franklin Edge we need a custom routing for https://lifesciences.danaher.com/ to edge while the rest of the URLs go to AEM CS.

[ ] todo define the URLs routed to Franklin Edge (landing page, header/footer fragments, block JS & CSS etc.)
[ ] discuss setup option with AEM CS core team

Paths we currently know to be routed to Franklin:

/ (homepage)
/scripts/*
/styles/*
/blocks/*
/fonts/*
/icons/*
/media_*
/fragments/*

Adobe internal ticket https://jira.corp.adobe.com/browse/SKYOPS-63949

Adobe internal ticket for prod https://jira.corp.adobe.com/browse/SKYOPS-65071

This is already implemented. More URLs can be added to the routing as we go.


Doc bug

A small doc bug: At the following page (in the first code example) "&-a-m-p-;" is used instead &. I've inserted the - sign to show the string (because this post is in HTML)
https://docs.microsoft.com/en-us/office/vba/api/word.characters

@PeterVanLoosbroek Thanks for catching this. I updated the code sample to use "&" only; changes will be live later today.


Refactoring rules and mail formatting

I've added more commits but I think https://github.com/sgmap/betaGouvBot/pull/80/commits/0cea82d27cf532ef0652815c3071644e63e2e1aa and https://github.com/sgmap/betaGouvBot/pull/80/commits/e654a5abf93db6b45b16697556c808cd76d16e78 don't necessarily belong in this PR. Possibly we should merge this as it is now, and push further refactoring to a new PR. WDYT?

We're green, and we have some time until the next date when we're sending notifications (june 15th). Let's merge and forge on with refactoring.
I would also like to improve our confidence that refactorings do not cause regressions when talking with external APIs such as SendGrid, OVH or Github, perhaps by providing endpoints for manual testing specifically that for instance will send out a test email or manipulate a mailing list set aside for testing purposes, etc. WDYT?

Hmm, this was not actually mergeable - Mailer is still expecting the old-style rules, but as mailer_spec.rb feeds it just that, we're still green even though (I strongly suspect) production is broken. #83 fixes this but it worries me that we can get in that situation.

@Morendil Yep, that's why I added a comment "this should fail, but it doesn't".

Haha, missed it - or rather I saw it but underestimated its significance.

Yeah, it is more common in a dynamic language than in a compiled one. That's when code review's importance comes in 😄 .


Fix configuration test for centos/rhel

When verifying if a package is installed or not, the command
'yum --assumeno install package_name' returns 1 insetad of 0 if there is an
update to the package available, even if the package is installed, causing the
test to fail.
This patch replaces this commad by 'yum list installed package_name'.

/ok-to-test


TypeError: server.getConnections is not a function

Hi all,
Thanks for this nice npm package.
I want to access the number of concurrent connections on the server.
So, I used server.connections.
It works but returns the message :
(node:21622) DeprecationWarning: Server.connections property is deprecated. Use Server.getConnections method instead.

So I tried to use server.getConnections() but :
Unhandled Rejection : TypeError TypeError: server.getConnections is not a function

I don't know how to fix this, I looked up the code and getConneections is supposed to work !
Is it a bug ?

I'm seeing this as well.

@jsumners Let me see if I can tackle this.
As far as I can tell, Server.getConnections(cb) requires a callback so it cannot replace Server.connections directly since it is async. The options I can think of are:

Mirror the Node API by removing Server.connection and adding Server.getConnections(cb) in the ldapjs API (simple, but a breaking change)
Do some internal bookkeeping in ldapjs to keep track of the current connection count  (probably doable but it could get out of sync with the actual connection count if some corner case is not handled correctly)

Which option would be better? Are there any other alternatives?

@jonekdahl option 1 sounds the best. I'd rather not try to keep track of things core is already tracking. Let them do the hard work.
Thank you for taking it on.

@jsumners Given the fix in #598, I guess this issue can be closed?

@jonekdahl yep. Thanks.


Organize ProblemStatement and Problem Category views

In PR: https://github.com/isohack/hackathon-webapp/pull/50
I think there should be separate class API views for statement and category and can be fixed in future

on it,

@borsezf2 Just to help
Have a look at: https://github.com/isohack/hackathon-webapp/blob/master/account/api/views.py#L13
You need:

Serializers
Permission classes, it can be empty for now or you can pass on any permission class

More: To filter based on id you can do something like this
https://www.django-rest-framework.org/api-guide/filtering/#filtering-against-the-current-user
Here user id can be problem category id and purchase model can be problem statement model which is filtered by id


Vi Ads?

I'm trying to setup the ads and anytime I put the code in anywhere, it stops my Plyr from appearing at all.
<script>const player = new Plyr('#player', { controls:["play-large","play","progress","current-time","mute","volume","captions","settings","fullscreen","pip","airplay"],tooltips:{controls:!0},quailty:{ default: 'default', options: ['hd2160', 'hd1440', 'hd1080', 'hd720', 'large', 'medium', 'small', 'tiny', 'default'] } });</script>
Here is when we try to add the ads and everything goes blank...
<script>const player = new Plyr('#player', { controls:["play-large","play","progress","current-time","mute","volume","captions","settings","fullscreen","pip","airplay"],ads { enabled: true, publisherId: '' },tooltips:{controls:!0},quailty:{ default: 'default', options: ['hd2160', 'hd1440', 'hd1080', 'hd720', 'large', 'medium', 'small', 'tiny', 'default'] } });</script>
Can someone tell me how I'm suppose to use the code or if the code is correct at all or how it should be?I know I'm putting my publisher ID between the ''

I need to ask but in the code that isn't working I noticed the missing colon after the ads property.

You need to sign up as a publisher with vi.ai and enter your ID but if you don't have that set it won't break anything. I think you have issues elsewhere based on your other issue.


Better error handling (was: validate all filenames)

While investigating a potential issue with monitors on Linux, I noticed that passing mult=(File=invalid_filename.csv) on a loadshape does not raise or log any errors. We need to:

[x] investigate whether this happens only on Linux or if it's ignored everywhere
[x] provide a fix -- abort the current DSS script, raise an error

The error can then be treated as usual like in DSS Python and DSS MATLAB, raising appropriate exceptions.

There are also potential silent errors with the 'export' command, as seem in https://github.com/NREL/OpenDSSDirect.py/issues/45#issuecomment-447506240

an upper case the event log is not exported and no error shows up either.

The error actually is raised with mult=(File=non_existent.csv), but gets discarded later. Running a single command via DSS Python raises the exception:
Traceback (most recent call last)
<ipython-input-10-109bb5836ad3> in <module>()
----> 1 DSS.Text.Command = 'redirect test_shape.dss'

/opt/python/lib/python3.6/site-packages/dss/dss_capi_gr/IText.py in Command(self, Value)
     21
     22         self._lib.Text_Set_Command(Value)
---> 23         self.CheckForError()
     24
     25     @property

/opt/python/lib/python3.6/site-packages/dss/_cffi_api_util.py in CheckForError(self)
     71         error_num = self._lib.Error_Get_Number()
     72         if error_num:
---> 73             raise DssException(error_num, self._get_string(self._lib.Error_Get_Description()))
     74
     75     def _getattr(self, key):

DssException: (70401, 'CSV file "non_existent.csv" does not exist')

For Export Eventlog invalid/path/eventlog.csv, the script is aborted as earlier:
Traceback (most recent call last)
<ipython-input-11-ac3057c80f3a> in <module>()
----> 1 DSS.Text.Command = 'Export Eventlog invalid/path/eventlog.csv'

/opt/python/lib/python3.6/site-packages/dss/dss_capi_gr/IText.py in Command(self, Value)
     21
     22         self._lib.Text_Set_Command(Value)
---> 23         self.CheckForError()
     24
     25     @property

/opt/python/lib/python3.6/site-packages/dss/_cffi_api_util.py in CheckForError(self)
     71         error_num = self._lib.Error_Get_Number()
     72         if error_num:
---> 73             raise DssException(error_num, self._get_string(self._lib.Error_Get_Description()))
     74
     75     def _getattr(self, key):

DssException: (303, 'Error 303 Reported From OpenDSS Intrinsic Function: \r\nProcessCommand\r\nException Raised While Processing DSS Command:\r\nExport Eventlog invalid/path/eventlog.csv \r\n\r\nError Description: \r\nUnable to create file "invalid/path/eventlog.csv"\r\n\r\nProbable Cause: \r\nError in command string or circuit data.')

DSS Python 0.10+ added a lot of error checking so for the export command it should be a simple fix for OpenDSSDirect.py. To make the check lighter, a pointer to the error number variable can be exposed, i.e., instead of just Error_Get_Number, we can have a Error_Get_NumberPtr and it should be a bit faster (testing pending).
I think the useful thing here is actually to abort the script earlier for any error. If there's already an option somewhere, I'm going to toggle its default value. If it doesn't exist yet, I believe there aren't objections to adding one.

Error_Get_NumberPtr has been implemented in c9de7dcd1e6341751fbdafaacc3fd4b5776eb038. As expected, it saves some time in Python (62%). It shouldn't affect all languages, but will also be useful in MATLAB.
Before:
%timeit CheckForError()
312 ns ± 54.4 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

With the new implementation using Error_Get_NumberPtr:
%timeit CheckForError()
121 ns ± 7.56 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

A new property EarlyAbort was added in 29b78fcb119900d743bc8e317f3070793ac821e7, functions Error_Get_EarlyAbort and Error_Set_EarlyAbort:

Gets/sets the DSS script error-handling behavior. If a warning or error occurs and early abortion is enabled (default), the processing of the script is always halted. Otherwise, the processing of the script continues until a major error occurs or it finishes.

Reopening: one of the test files had incorrect casing and no error was raised. File: electricdss-tst/Version7/Distrib/Examples/UPFC_Test/UPFC_test_3.dss,
New Loadshape.Load1   npts=37438 minterval=1 pmult=[file=load1kW.csv]  qmult=[file=load1kvar.csv] Action=Normalize


Difficultly connecting a remote

Hello, I suppose this issue I'm creating is more of a request for some documentation. I'm trying to connect my remote to my NodeMCU (ESP32) and I am doing something wrong. I read up on the ESPHome docs here: https://esphome.io/components/ble_client.html but still I seem to be doing something wrong.

I have recently changed from Arduino framework to esp-idf framework. Since then the BLE address is hardcoded:
https://github.com/fsievers22/esphome-ble-remote/blob/b5b24c4b710c0b8d50d94a81163c1a7cc0ae52d1/ble_hid_client.cpp#L21
That is not an optimal solution and I will change that, but i have not much time at the moment.
So if you want to use this component you have to change that line in ble_hid_client.cpp.
The BLE-Client component of esphome has nothing to do with this component and you don't need it in your .yaml file to use this custom component.
I hope i could help you.

That helps a lot, thank you, but I have my ble address in another format similar to 00:11:22:33:FF:EE. Is there some way I should convert that?

No you can just put it in like so:static esp_bd_addr_t ble_remote_address = {0x00,0x11,0x22,0x33,0xFF,0xEE};

Thank you so much I got it working. May I ask if you have some form of long press detection setup in your HA configs?


Application GUI

GUI should be built using the NetBeans Platform framework. The main screen should be split into 3 parts: project structure tree, editing space and live preview. The most often used options should be surfaced somewhere on the main screen. The GUI should be simple and intuitive, so even less experienced users can use the editor without bigger problems.

Simple GUI for the application is ready. For specific GUI issues, new cards will be created to track them.


Robber discard menu should tell the user how many resources to discard

In the menu it should tell the number of resources the player needs to discard

Finished, Robber discard menu now displays how many cards must be discarded right away

Pushed changes; should be good to go


RNPM found a wrong project

Hi, guys
For some reasons, we have other projects in RN_REPO/ios/dependencies. Since findProject.js easily pick the first one of all found projects, it actually link changes to a wrong project.
I'm thinking can we at least add an argument to allow user to specify project file such as
rnpm install SOMETHING --proj MY_PROJECT_NAME

or, can we say the deeper the .xcodeproj file placed the fewer chances it will be the right one?

Hey,
You can add:
"rnpm": {
   "ios": {
      "project": "ios/path/to/My.xcodeproj"
   }
}

to your package.json to bypass the xcodeproj glob.
PS. It works for both dependencies and projects as well.

Great, didn't notice. Thanks! @grabbou
Closing this :D


Add example about atomic_op

Codecov Report

Merging #63 (d783844) into main (7a838a5) will increase coverage by 0.08%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main      #63      +/-   ##
==========================================
+ Coverage   83.52%   83.60%   +0.08%
==========================================
  Files          24       24
  Lines        4806     4820      +14
==========================================
+ Hits         4014     4030      +16
+ Misses        792      790       -2

Impacted Files
Coverage Δ

foundationdb-bindingtester/src/main.rs
89.43% <0.00%> (-0.26%)
:arrow_down:

foundationdb/src/tuple/subspace.rs
99.03% <0.00%> (+0.14%)
:arrow_up:

foundationdb/src/directory/directory_layer.rs
93.30% <0.00%> (+1.21%)
:arrow_up:

Continue to review full report at Codecov.

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

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
7 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.09%) to 75.324%

Files with Coverage Reduction
New Missed Lines
%

foundationdb/src/directory/directory_layer.rs
3
93.31%

foundationdb-bindingtester/src/main.rs
4
89.43%

Totals

Change from base Build<PHONE_NUMBER>:
0.09%

Covered Lines:
4185

Relevant Lines:
5556

💛  - Coveralls


Support for module federation

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Summary 💡
I would like to expose pages as a micro frontend modules. I am using OriginJS vite-plugin-federation as following:
import federation from '@originjs/vite-plugin-federation';
...
    plugins: [
      federation({
        name: 'playerList',
        filename: 'remoteEntry.js',
        exposes: {
          // './page1': './.generated/components/?????',
          // './page2': './.generated/pages/??????',
        },
        shared: ['react', 'react-dom'],
        shareScope: 'default',
      }),
    ],

I need some help to understand how the page is rendered in the iframe. If I can find how the iframes content are rendered, I may be able to expose pages similarly.
Examples 🌈
    plugins: [
      federation({
        name: 'playerList',
        filename: 'remoteEntry.js',
        exposes: {
          // './page1': './generated/components/?????',
          // './page2': './generated/pages/??????',
        },
        shared: ['react', 'react-dom'],
        shareScope: 'default',
      }),
    ],

Motivation 🔦
To use Toolpad to achieve micro frontend architecture without having to use iframes.

@alphashr Toolpad has a server component which needs to run as well. Currently we are working on support for running Toolpad as a express server middleware. At the moment it's undocumented as it's not 100% usable yet, but there is an example. (the feature will be documented once this work is pushed passed the finish line). Would this setup work for you?

Thanks @Janpot for your reply. Yes this setup and the example that you shared is very helpful.

Thanks @Janpot for your reply. Yes this setup and the example that you shared is very helpful.

@alphashr did you solve this problem ?


Fix REDIR_URL for deadbeef

The original link wasn't finding anything for me. This uses the travis CI RSS feed, which contains the links.

This issue was also reported in #495, and a solution that fixes the original link instead of changing it to something else is proposed at #498.

Thanks @natanjunges. I retract this in favour of #498.


Make benchmarks compatible for both IPEX usage and upstream PyTorch usage

Closes #2201
This is the way forward until a decision is made to finally move away from the old benchmarking method.
Benchmarking methods will be controlled using environment variable USE_IPEX.
CI status: https://github.com/intel/intel-xpu-backend-for-triton/actions/runs/10811376986/job/29990645336

Blocked on https://github.com/intel/intel-xpu-backend-for-triton/pull/2203. Need to be tested in CI.

 Ready for review.

I assume IPEX mode shows the same performance as before.

Please confirm it is the case before merging.

I assume IPEX mode shows the same performance as before.

Please confirm it is the case before merging.

The performance is the same for IPEX case


'near()' not working

Expected behavior
SQL =>
@where_to_buys = WhereToBuy.near('CA', 100).order("distance").limit(30)
Generates this SQL and log file =>
Completed 200 OK in 84ms (Views: 16.1ms | ActiveRecord: 0.3ms)
Started GET "/?utf8=%E2%9C%93&wtbnear=91000&country=United+States&storetype=All&productline=Any&button=" for 2001:ee0:4b78:2e40:9db0:b70:1c01:c95d at 2020-06-15 05:23:22 -0400
Processing by WhereToBuysController#index as HTML
Parameters: {"utf8"=>"✓", "wtbnear"=>"91000", "country"=>"United States", "storetype"=>"All", "productline"=>"Any", "button"=>""}
Rendering where_to_buys/index.html.erb within layouts/application
Rendered where_to_buys/_form.html.erb (0.6ms)
WhereToBuy Load (0.3ms)  SELECT  where_to_buys.*, NULL AS distance, NULL AS bearing FROM where_to_buys WHERE (false) ORDER BY distance LIMIT 30
Rendered where_to_buys/_results.html.erb (1.0ms)
Rendered where_to_buys/_online.html.erb (0.2ms)
Rendered where_to_buys/_legend.html.erb (0.2ms)
Rendered where_to_buys/_ad1.html.erb (0.2ms)
Rendered where_to_buys/_map.html.erb (0.6ms)
Rendered where_to_buys/index.html.erb within layouts/application (5.3ms)
Completed 200 OK in 100ms (Views: 15.2ms | ActiveRecord: 0.3ms)

Geocoder.configure(
Geocoding options
timeout: 15,                 # geocoding service timeout (secs)
lookup: :google,         # name of geocoding service (symbol)
ip_lookup: :freegeoip,      # name of IP address geocoding service (symbol)
language: :en,              # ISO-639 language code
use_https: false,           # use HTTPS for lookup requests? (if supported)
http_proxy: nil,            # HTTP proxy server (user:pass@host:port)
https_proxy: nil,           # HTTPS proxy server (user:pass@host:port)
api_key: 'AIzaSyAQSksi6UdnSSR2U5-wpaiDNurKIYTRXSg'
API key for geocoding service
cache: Redis.new,                 # cache object (must respond to #[], #[]=, and #del)
cache_prefix: 'geocoder:',  # prefix (string) to use for all cache keys
Exceptions that should not be rescued by default
(if you want to implement custom error handling);
supports SocketError and Timeout::Error
always_raise: [],
Calculation options
units: :mi,                 # :km for kilometers or :mi for miles
distances: :linear          # :spherical or :linear
)
Environment info

Geocoder version:  1.6.3
Rails version: <IP_ADDRESS>
Ruby 2.3.3
Database (if applicable): mysqld  Ver 10.1.45-MariaDB for Linux on x86_64 (MariaDB Server)
Lookup (if applicable): google

What does Geocoder.search('CA') return?

Google API error: request denied (API keys with referer restrictions cannot be used with this API.).  => []

But when I use the sql query, it returns the correct map

WhereToBuy.where(id:1)

Google has a lot of similar APIs with similar-sounding names. It's confusing. Make sure you're using this one: https://developers.google.com/maps/documentation/geocoding/usage-and-billing
Also, I'm not sure that map is correct: isn't it showing Pennsylvania ("PA"), not California ("CA")?
(Closing, because I don't think this is an issue with the gem.)


Fix handling of iterable fields

Fixes #196.
Fixes #203.

BTW it would be great not to combine two issues in one PR, it makes both review and history cleaner. Thanks again 👍


Spyder does not work with a pip installation of CNTK

Introduction
When I executed the command "spyder" to launch Spyder from the anaconda command prompt I got an ImportError related to anaconda not being able to find a DLL. When I ran pip uninstall cntk Spyder started launching as expected. Is this because of some dependency incompatibility?
I believe somebody else has had the same issue: https://github.com/Microsoft/CNTK/issues/2490.
What steps will reproduce the problem?
In the Anaconda3 prompt:

Install CNTK: pip install https://cntk.ai/PythonWheel/GPU/cntk-2.2-cp27-cp27m-win_amd64.whl
Try to launch Spyder: spyder

What is the expected output? What do you see instead?
The expected output is spyder launching as usual, but what actually happens is an ImportError. The last two lines of the traceback are:
from PyQt5.QtWidgets import *
ImportError: DLL load failed: The specified procedure could not be found.

Please provide any additional information below
I had verified that python3.dll and python36.dll are installed in the Anaconda3 working directory, and I also tried to reset spyder settings to no avail.
Another (possibly) important strange thing I noticed was that when I ran "spyder.exe" from the Anaconda3\Scripts directory, Spyder launched without any error.
Versions and main components

Spyder Version: 3.2.4
Python Version: 3.6.3
PyQt Version: 5.6.0
Operating system: Windows 10 64x

You're installing a wheel for Python 2 in Python 3, so I'd say that's the problem. I know that because of the info part of the wheel name:
cntk-2.2-cp27-cp27m-win_amd64.whl

cp27 means that this is for Python 2.7.
So please install a CNTK issue for Python 3.6 (if available) and let us know if that fixes the problem for you.

@ccordoba12 sorry, I'd actually given the wrong whl link in the post. I've updated accordingly.

And the problem persists?

Yes the problem persists, I have se same problem and I installed the right version.
https://github.com/Microsoft/CNTK/issues/2490
https://github.com/Microsoft/CNTK/issues/2654

Thanks for the references @edmondja! Now it's clear that this is not a Spyder problem. However, I'll leave this one open so that it's easier to find for other people.


harbor use oss storage has a error when gc

harbor:v1.3.0
registry:vmware/registry:2.6.2-photon
docker : Docker version 1.12.6, build 78d1802
docker-compose: docker-compose version 1.14.0-rc2, build 24dae73
/etc/registry/config.yml
storage:
    cache:
        layerinfo: inmemory
#    filesystem:
#        rootdirectory: /storage
    oss:
        accesskeyid: ********
        accesskeysecret: ********
        region: oss-cn-hangzhou
#        endpoint: oss-cn-hangzhou-internal.aliyuncs.com
        internal: true
        bucket: ********
        encrypt: false
        secure: true
        chunksize: 5242880
        rootdirectory: ********
    maintenance:
        uploadpurging:
            enabled: true
            age: 168h
            interval: 24h
            dryrun: false
    delete:
        enabled: true

run command :
docker exec -it registry /bin/registry garbage-collect /etc/registry/config.yml

error log :
failed to garbage collect: failed to mark: oss: invalid path: /docker/registry/v2/repositories/

what can I do ?

I find the problem, rootdirectory isn't startwith /


Implement IP blacklisting for the API

Certain parties seem to be abusing the API. A blacklist of IPs should be checked on requests, returning an HTTP 403 if a match is found.

Done using nginx.


Yarn Workspace not working

Describe the bug
When I run ladle serve on an app inside a yarn workspace it fails to start.
Reproduction
yarn ui
yarn run v1.22.18
$ yarn ladle serve
$ /Users/joshmedeski/repos/nutiliti/node_modules/.bin/ladle serve
Error: EISDIR: illegal operation on a directory, read
    at Object.readSync (node:fs:742:3)
    at tryReadSync (node:fs:442:20)
    at Object.readFileSync (node:fs:488:19)
    at hasWorkspacePackageJSON (file:///Users/joshmedeski/repos/nutiliti/node_modules/vite/dist/node/chunks/dep-0ebb5606.js:62054:37)
    at searchForWorkspaceRoot (file:///Users/joshmedeski/repos/nutiliti/node_modules/vite/dist/node/chunks/dep-0ebb5606.js:62082:9)
    at searchForWorkspaceRoot (file:///Users/joshmedeski/repos/nutiliti/node_modules/vite/dist/node/chunks/dep-0ebb5606.js:62088:12)
    at searchForWorkspaceRoot (file:///Users/joshmedeski/repos/nutiliti/node_modules/vite/dist/node/chunks/dep-0ebb5606.js:62088:12)
    at searchForWorkspaceRoot (file:///Users/joshmedeski/repos/nutiliti/node_modules/vite/dist/node/chunks/dep-0ebb5606.js:62088:12)
    at searchForWorkspaceRoot (file:///Users/joshmedeski/repos/nutiliti/node_modules/vite/dist/node/chunks/dep-0ebb5606.js:62088:12)
    at resolveServerOptions (file:///Users/joshmedeski/repos/nutiliti/node_modules/vite/dist/node/chunks/dep-0ebb5606.js:62428:22) {
  errno: -21,
  syscall: 'read',
  code: 'EISDIR'
}
✨  Done in 0.48s.

The dependencies are installed int he root node_module directory of the yarn workspace.
Environment

OS: macOS Monterey
Browser: not applicable
Version ^0.10.2

Can you create a repro with https://ladle.dev/new?

Here's my attempt, but I don't see the same issue https://stackblitz.com/edit/ladle-xrzumb

Yea, that works for me. You can try create a repo? Can't really look into this without a reproduction.


look refinement plus extra features

so, I wanted to use this for the search field but now I noticed the default ToolbarAndroid can do that too. just fyi


Cache host plan

Fix https://github.com/opencollective/opencollective/issues/3169

Nice! Invalidation looks good, well done!


rename + some patches

It's a bit confusing with 'producer' and 'producers' and supervisor names.
Renamed:
brod_producer -> brod_partition_producer
brod_producers -> brod_producer
Also fixed few issues.

i'm resolving the conflicts.


Added ADOPTERS.md

Added the ADOPTERS.md file so that we can collect and list organizations that are using or have used the portal, or used
it as a reference for their own portal.
Once the list is more complete, this file can be made more prominent in the README.md file.

@misappi , @Michadelic , if you merge, please squash and remove the comment related to package-lock.json from the commit message.

I think you already mentioned this adopters pattern elsewhere.
On the InnerSource Commons Slack: https://innersourcecommons.slack.com/archives/C04PXKRN4/p1653415487297279


feat: added github actions, rbac conf model

This PR is just to add github actions to the repository so as we can have a check on further PRs. It doesnt implement any logic
It was decided to have separate repository for actix-postgresql-simple so as it would be easier to maintain it in future
Signed-off-by: SiddheshKanawade<EMAIL_ADDRESS>

@hsluoyz @hackerchai please review


Added meta tag to index page

Fixes #31

Cool!

Can't able to merge this branch, have you updated your repo from upstream?

I have merged now. Try one more time @logeshpaul

Yeah done! Thanks :)


Lazy initialization for JavaScript functions

Currently, most JavaScript functions are compiled in constructors, which means they are compiled whenever they are deserialized from JSON. This can be critical if JS functions prevails especially in metricsSpec because they are stored in Metadata of each segment and deserialized whenever a segment is loaded.
This patch postpones the compilation of JS functions until they are really used.

This change is

If the javascript in such cases is programmatically generated, would it make more sense to intern/cache the compiled form or similar?
Moving the failure feedback for malformed javascript so late in the code path seems risky.

If the javascript in such cases is programmatically generated, would it make more sense to intern/cache the compiled form or similar?

@drcrallen good point. I think that is the best solution, but it will require a bunch of work. Maybe we can file an issue as a future solution.

Moving the failure feedback for malformed javascript so late in the code path seems risky.

Would you elaborate more on the risks? I think malformed JavaScripts will emit errors eventually in the middle of processing. Generally it's good to return an error as soon as possible, but, in this case, avoiding OOM will be better.

@drcrallen In general I think the benefit from delaying compilation exceeds the risk (especially since the user will see the error soon after query submission, when the historicals fail to compile the script and all bomb out).
Agree with both you and @jihoonson that a compile cache is probably the better overall approach, but I'm not convinced it's necessary to take the time to implement it over this simpler solution. Especially since JS is not meant to be super optimized for production, and with this patch, we're just trying to make it slightly more robust for a specific case we ran into.

👍

👍


Uploading Screenshots not working as expected

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
Uploading Screenshots doesn't work as expected:

Process stops at  Waiting for all the screenshots to finish being processed...
Ordering of the Screens is random (naming is not the problem)
Used to work fine. Apple changed stuff recently afaik. Maybe there's a problem?
Tried to run with  --capture_output, but always got the error message invalid option: --capture_output

Command executed
fastlane deliver --skip-metadata
Complete output when running fastlane, including the stack trace and command used
[17:55:05]: HTML file confirmed...
[17:55:41]: Will begin uploading snapshots for '1.0.4' on App Store Connect
[17:55:41]: Starting with the upload of screenshots...
[17:55:46]: Uploaded './fastlane/screenshots/en-US/iPhone_6.5_Screen4.png'... (3.886785 secs)
[17:55:46]: Uploaded './fastlane/screenshots/en-US/iPhone_6.5_Screen5.png'... (4.01794 secs)
[17:55:46]: Uploaded './fastlane/screenshots/en-US/iPhone_6.5_Screen2.png'... (4.19881 secs)
[17:55:46]: Uploaded './fastlane/screenshots/en-US/iPhone_6.5_Screen3.png'... (4.218603 secs)
[17:55:46]: Uploaded './fastlane/screenshots/en-US/iPhone_6.5_Screen1.png'... (4.341952 secs)
[⠏] Waiting for all the screenshots to finish being processed...

Environment

🚫 fastlane environment 🚫
Stack

Key
Value

OS
12.2.1

Ruby
3.1.0

Bundler?
false

Git
git version 2.30.1 (Apple Git-130)

Installation Source
/usr/local/Cellar/fastlane/2.204.3/libexec/bin/fastlane

Host
macOS 12.2.1 (21D62)

Ruby Lib Dir
/usr/local/Cellar/ruby/3.1.0/lib

OpenSSL Version
OpenSSL 1.1.1m  14 Dec 2021

Is contained
false

Is homebrew
true

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
13.0

Swift Version
5.5

System Locale

Error

No Locale with UTF8 found 🚫

fastlane files:
`./fastlane/Fastfile`
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:ios)

platform :ios do
  desc "Description of what the lane does"
  lane :custom_lane do
    # add actions here: https://docs.fastlane.tools/actions
  end
end

`./fastlane/Appfile`

# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile

fastlane gems

Gem
Version
Update-Status

fastlane
2.204.3
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

error_highlight
0.3.0

did_you_mean
1.6.1

atomos
0.1.3

rexml
3.2.5

CFPropertyList
3.0.5

claide
1.1.0

colored2
3.1.2

nanaimo
0.3.0

xcodeproj
1.21.0

rouge
2.0.7

xcpretty
0.3.0

terminal-notifier
2.0.0

unicode-display_width
1.8.0

terminal-table
1.8.0

plist
3.6.0

public_suffix
4.0.6

addressable
2.8.0

multipart-post
2.0.0

word_wrap
1.0.0

optparse
0.1.1

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

artifactory
3.0.15

babosa
1.0.4

colored
1.2

highline
2.0.3

commander
4.6.0

excon
0.91.0

unf_ext
0.0.8

unf
0.1.4

domain_name
0.5.20190701

http-cookie
1.0.4

faraday-cookie_jar
0.0.7

faraday_middleware
1.2.0

fastimage
2.2.6

gh_inspector
1.1.3

json
2.6.1

mini_magick
4.11.0

naturally
2.2.1

rubyzip
2.3.2

security
0.1.3

xcpretty-travis-formatter
1.0.1

dotenv
2.7.6

bundler
2.3.3

simctl
1.6.8

jwt
2.3.0

uber
0.1.0

declarative
0.0.20

trailblazer-option
0.1.2

representable
3.1.1

retriable
3.1.2

mini_mime
1.1.2

httpclient
2.8.3

webrick
1.7.0

google-apis-core
0.4.2

google-apis-playcustomapp_v1
0.7.0

google-apis-androidpublisher_v3
0.16.0

google-cloud-env
1.5.0

google-cloud-errors
1.2.0

google-cloud-core
1.6.0

google-apis-iamcredentials_v1
0.10.0

google-apis-storage_v1
0.11.0

rake
13.0.6

digest-crc
0.6.4

google-cloud-storage
1.36.1

emoji_regex
3.2.3

set
1.0.2

ruby2_keywords
0.0.5

faraday-retry
1.0.3

faraday-rack
1.0.0

faraday-patron
1.0.0

faraday-net_http_persistent
1.2.0

faraday-net_http
1.0.1

faraday-multipart
1.0.3

faraday-httpclient
1.0.1

faraday-excon
1.1.0

faraday-em_synchrony
1.0.0

faraday-em_http
1.0.0

faraday
1.10.0

multi_json
1.15.0

signet
0.16.1

os
1.1.4

memoist
0.16.2

googleauth
1.1.2

aws-eventstream
1.2.0

aws-sigv4
1.4.0

aws-partitions
1.561.0

jmespath
1.6.0

aws-sdk-core
3.127.0

aws-sdk-kms
1.55.0

aws-sdk-s3
1.113.0

forwardable
1.3.2

logger
1.5.0

pathname
0.2.0

shellwords
0.1.0

cgi
0.3.1

date
3.2.2

timeout
0.2.0

stringio
3.0.1

securerandom
0.1.1

uri
0.11.0

openssl
3.0.0

digest
3.1.0

io-nonblock
0.1.0

ipaddr
1.2.3

io-wait
0.2.1

zlib
2.1.1

resolv
0.2.1

time
0.2.0

open-uri
0.2.0

mutex_m
0.1.1

net-protocol
0.1.2

net-http
0.2.0

ostruct
0.5.2

english
0.7.1

erb
2.2.3

strscan
3.0.1

abbrev
0.1.0

io-console
0.5.10

tempfile
0.1.2

delegate
0.2.0

fileutils
1.6.0

tmpdir
0.1.2

base64
0.1.1

singleton
0.1.1

open3
0.1.1

nkf
0.1.1

prettyprint
0.1.1

pp
0.3.0

find
0.1.1

yaml
0.2.0

psych
4.0.3

generated on: 2022-03-02

Ok. It seems that App Store Connect had some issues. I removed all languages and re-uploaded everything. Now it worked.


Create an iml-config cli tool

Create an iml-config cli tool that will be used to perform config
related tasks. In this patch, a drop-in will be added to nginx that will
load all iml environment variables. These environment variables will
then be used to generate the nginx config file from the chroma template
any time nginx is restarted. This will allow the template variables to
change in the nginx config based on environment variable overloading.
Signed-off-by: johnsonw<EMAIL_ADDRESS>

This change is

Yes, if we add a new variable and forget to update the test, the test will fail, but the production code will be perfectly valid. So there is little value in the test. Now that you made a generic template engine (which look ups in the environment any variable encountered in the template), worrying about specific vars is not justified, IMHO

@ip1981 I do understand you point, but I think I have a bit of a different perspective. There are two things I'm thinking of in particular:

There is a possibility that we may add a variable that does not match and thus doesn't get replaced. In this case you wouldn't know that it is broken until it's been deployed and the nginx service refuses to start. For example, if someone went into the template and added variable {{FOO-BAR}} it would not be replaced, but the developer adding this variable won't know this until after they deploy. Additionally, they will look and see that what they added to the template also matches what they put in their local_settings.py, which could make it even more confusing as to why it wasn't replaced. After investigating a bit they would then realize that they mistakingly used a - instead of a _. This test would catch this immediately with the following:

│     location ~ ^.*/(favicon.*|android-chrome.*|apple-touch-icon\.png|mstile-150x150\.png|safari-pinned-tab\.svg) {
│-        alias /some/path/my_path/$1;
│+        alias /some/path/{{FOO-BAR}}/$1;
│     }

The snapshot provides a fully generated nginx config file. Since it enforces the variables to stay up to date, it will guarantee a config file for any given branch that you are using.


Simplify Release Workflow

Pull Request Test Coverage Report for Build 29543c6a53d2556347ce0346aa13450014a4390e-PR-101

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 16e5e7d4c05c8294994c9e280cae5c06fc0ea7b3:
0.0%

Covered Lines:
329

Relevant Lines:
329

💛  - Coveralls

Ah, nice!

Ah, nice!


Refactor containers

 Issue by evansiroky
Monday Sep 17, 2018 at 19:57 GMT
Originally opened as https://github.com/catalogueglobal/datatools-ui/issues/246

Refactor the containers to have less verbosity.  This will mainly be accomplished by converting the mapDispatchToProps into an object with a list of all actions that can be used.  Also, a lot of mounting logic can also be moved into the constructor on the connected component which will also help in the process of updating to React 16.4+.  Flow typing will also be added as part of the refactor.
Refs #181

Already completed.


require('lspconfig').bashls.setup {} runs commands in PATH on autocomplete

Probably out of scope
Sorry I did not fully investigate yet who's responsibility it is to fix this bug. There are so many projects working together to cause this bug. It seems like it is not kickstart feel free to close the issue if it is out of scope.
It is also not the default kickstart config but it is a +1 line change.
Maybe this should be a bug report in https://github.com/bash-lsp/bash-language-server instead. Or in https://github.com/neovim/nvim-lspconfig
Whats the issue
Adding require('lspconfig').bashls.setup {} to init.lua runs programs on auto complete.
Here is an example of me typing teew in a shell file. And it runs teeworlds which is in my PATH. So it auto executes the SDL game teeworlds which is quite distracting because it is a GUI app. I assume it also run the tee command at some point but it did not give visual feedback. That seems highly dangerous in general. And in case of GUI apps its mostly annoying. It runs the suggested completion as a command without even the user accepting the completion. I did not test but I assume typing rebo and it automatically running reboot could be quite annoying (EDIT: I tested it. Seems like reboot is not being triggered).
https://github.com/nvim-lua/kickstart.nvim/assets/20344300/03333a4b-e18f-4659-b1e1-7010f24366be
Maybe someone (bash-language-server ??) runs completion from PATH plus --help for the documentation note?

wow this looks dangerous indeed, I would suggest opening an issue with bash-language-server, I think they would be more likely able to help than here.

wow this looks dangerous indeed, I would suggest opening an issue with bash-language-server, I think they would be more likely able to help than here.

Thanks for pointing me to the right place.
I just collected more evidence for my --help theory. Typing wireshark launches nothing. But also wireshark --help launches nothing. So I created a file in /usr/local/bin with the name yireshark and the content is just wireshark so thats basically a shell script that launches wireshark and ignores the --help flag. Then typing yire in neovim launches wireshark indeed.

If my theory is correct every tool that ignores --help is just launching on key press.

That's crazy :D

I would expect the help should come from the man page not running the command with --help


PnP Toolbar filter does not work inside of a panel

Category
[ ] Enhancement
[X?] Bug
[X] Question
Version
Please specify what version of the library you are using:
node: 'v18.20.4', npm: '10.8.1'
"@pnp/spfx-controls-react": "^3.19.0",
Code
  <Panel
    isOpen={this.state.showPanelSinglePermission}
    type={PanelType.extraLarge}
    onDismiss={this._hidePanelSinglePermission}
  >
    <div>

          <Toolbar
            style={{marginTop: -20}}
            actionGroups={{
            'share': {
              'reload': {
                title: ls[browserlanguage].toolbars.reload,
                iconName: 'UpdateRestore',
                onClick: () => this.componentReload(this.state.filtervalue)
              }
            }
            }}

            filters={[
              {
                className: styles.combobox,
                id: "f3",
                title: ls[browserlanguage].toolbars.filter.Sharing,
                items: [
                  { id: "f3f1", title: ls[browserlanguage].toolbars.filter.Guest },
                  { id: "f3f2", title: ls[browserlanguage].toolbars.filter.Everyone },
                  { id: "f3f3", title: ls[browserlanguage].toolbars.filter.Member },
                  { id: "f3f4", title: ls[browserlanguage].toolbars.filter.Link }
                ]
              },
              {
                id: "f2",
                title: ls[browserlanguage].toolbars.filter.Library,
                items: this.state.sitelists
              }
            ]}

            onSelectedFiltersChange={this._onSelectedFiltersChange.bind(this)}
            find={true}
            onFindQueryChange={this._findItem}
          />
    </div>
  </Panel>

Expected / Desired Behavior / Question
When I use this code directly (without an panel) it works corrently.

If I embed the toolbar inside of an panel, the filter does not work and sometimes I got the following error message in my browser:
Blocked aria-hidden on a  element because the element that just received focus must not be hidden from assistive technology users. Avoid using aria-hidden on a focused element or its ancestor. Consider using the inert attribute instead, which will also prevent focus. For more details, see the aria-hidden section of the WAI-ARIA specification at https://w3c.github.io/aria/#aria-hidden.
How can I fix that?
Observed Behavior
Filter opened and chooseable
Steps to Reproduce

Add an toolbar inside of an fluent ui panel

I have reproduced your scenario. It turns out that filter popup does in fact open and render properly, but it is placed below the panel due to lower z-index value (popup control has z-index: 1000, whereas panel has z-index: 1000000).

You would see the popup if you had changed z-index to a value higher than panel has:

As a quick fix, I would recommend changing your code and switching Panel from fluentui to Dialog from fluentui/react-northstar. Dialog component has z-index: 1000 and works well with nested popups. https://fluentsite.z22.web.core.windows.net/0.66.2/prototype-nested-popups-and-dialogs

Unfortunately, it's not that easy to implement. Is there another way to fix the problem? Or is there a time frame when it could be fixed?


Define Deliverables

The deliverable would be a tool that:
Accepts datasets as input
identify semantic elements that could potenitally be originating from vocabularies
related to
observable properties
units
platforms
sensors / instruments
organisations
disciplines
tbc
list them per category
as a second step match them to a list of predefined vocabularies

see Lucid chart last sheet
https://lucid.app/lucidchart/dc1cdd35-51ab-4a9d-9384-37bbc6ae2978/edit?invitationId=inv_548fb4c1-7ed1-455c-93e9-5ff619126292&page=0_0#


Constructor overriding should be smarter

Opened here as:
I extended a class and IntelliJ suggested me I should override a constructor:

But the automatic override using Alt+Enter  generates a constructor with an error:

I don't know how difficult is, but it would be better if this tool didn't generate something with an error.

Thanks for the report; can you provide some more details about the FirebaseAuth class - I assume that it doesn't have a public generative constructor - just a public factory constructor?

Yes, it can be found at the Flutter Fire Repo, since I am on my phone I will just paste it here:
https://github.com/FirebaseExtended/flutterfire/blob/master/packages/firebase_auth/firebase_auth/lib/src/firebase_auth.dart
class FirebaseAuth {
  FirebaseAuth._(this.app);

  /// Provides an instance of this class corresponding to `app`.
  factory FirebaseAuth.fromApp(FirebaseApp app) {
    assert(app != null);
    return FirebaseAuth._(app);
  }

  /// Provides an instance of this class corresponding to the default app.
  static final FirebaseAuth instance = FirebaseAuth._(FirebaseApp.instance);

  final FirebaseApp app;

...

To clarify, with this definition you can't write a class which extends FirebaseAuth. It would definitely be nice if the analyzer made this more clear.


Fix hostUseSSL in IoT tests template

When .runsetting parameter "useSsl" was renamed to "hostUseSSL", Biz tests template was updated to reflect that, but IoT wasn't. This commit fixes that.

Couldn't rebase and push to remote, so cherry-picked it into https://github.com/criticalmanufacturing/cli/commit/f7057d4613aba1fd469b9361ff79a06e6a1d138d. Thanks for the PR!


error MSB4086: A numeric comparison was attempted on "$(MSBuildVersion)" that evaluates to "" instead of a number

For deployment issues, please provide us with the following information:

Repro steps.

your project built successfully on your dev machine but failed on Azure? Yes
please write down your build tools and their versions (ie Msbuild <IP_ADDRESS>)

Visual Studio 2019
The log/error given by the failure.

Normally this include a stack trace, error code and some more information.

Command: "D:\home\site\deployments\tools\deploy.cmd"
Handling .NET Web Application deployment.
MSBuild auto-detection: using msbuild version '14.0.23107.0 built by: D14REL' from 'D:\Program Files (x86)\MSBuild\14.0\Bin'.
Restoring NuGet package Microsoft.Net.Compilers.3.1.1.
  GET https://api.nuget.org/v3-flatcontainer/microsoft.net.compilers/3.1.1/microsoft.net.compilers.3.1.1.nupkg
  OK https://api.nuget.org/v3-flatcontainer/microsoft.net.compilers/3.1.1/microsoft.net.compilers.3.1.1.nupkg 937ms
Installing Microsoft.Net.Compilers 3.1.1.
Adding package 'Microsoft.Net.Compilers.3.1.1' to folder 'D:\home\site\repository\packages'
Added package 'Microsoft.Net.Compilers.3.1.1' to folder 'D:\home\site\repository\packages'

NuGet Config files used:
    D:\local\UserProfile\AppData\Roaming\NuGet\NuGet.Config

Feeds used:
    D:\home\.nuget\
    https://api.nuget.org/v3/index.json

Installed:
    1 package(s) to packages.config projects
D:\home\site\repository\packages\Microsoft.Net.Compilers.3.1.1\tools\Microsoft.Managed.Core.targets(63,60): error MSB4086: A numeric comparison was attempted on "$(MSBuildVersion)" that evaluates to "" instead of a number, in condition "$(MSBuildVersion) >= 16.1.0". [D:\home\site\repository\MyCompany\MyCompany.csproj]
Failed exitCode=1, command="D:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" "D:\home\site\repository\MyCompany\MyCompany.csproj" /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="D:\local\Temp\8d727f56aa60788";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release;UseSharedCompilation=false /p:SolutionDir="D:\home\site\repository\.\\"
An error has occurred during web site deployment.
\r\nD:\Program Files (x86)\SiteExtensions\Kudu\84.10807.4030\bin\Scripts\starter.cmd "D:\home\site\deployments\tools\deploy.cmd"

Thanks! We'll be in touch soon.

More details here: https://stackoverflow.com/q/57631309/114029

Looks like you're running into the following condition in Roslyn
https://github.com/dotnet/roslyn/blob/master/src/Compilers/Core/MSBuildTask/Microsoft.Managed.Core.targets#L63
The reason this condition exists is that our editor config support required new primitives to be added to MSBuild in 16.1. These primitives are not supported on previous versions of MSBuild and, as a transition mechanism, we isolated the use of the primitives to a separate target file. The condition though is using $(MSBuildVersion) which isn't supported in MSBuild until 15.6 hence we end up comparing an empty string to a number which is an error.
This all means though when you attempt to load the latest package on 14.0 it will error out on the condition instead of silently ignoring the <Import> entirely.
It's simple enough to fix that on our side to make the condition safe in the face of missing $(MSBuildVersion). At the same time though this is a scenario that we don't support. The Microsoft.Net.Compilers package, and the other variants, are all tied to a specific version of MSBuild. Loading the package into a different version will result in an error here:
https://github.com/dotnet/roslyn/blob/master/src/NuGet/Microsoft.Net.Compilers/build/Microsoft.Net.Compilers.props#L18
Often times you'll find that the package functions in an older version of MSBuild but it's still officially unsupported. The compiler team instead supports loading the package in the version of MSBuild that it is targeted for. For the 3.X compilers that is the 16.0+ versions of MSBuild.
It does look like our check in the NuPkg props file is out of date (needs to be updated to list 15.0 as unsupported as well). But 14.0 is definitely unsupported for the 3.X versions of the NuPkg.

Dude I'm using visual studio code, What do I need to do specifically?!

Hi
If the problem persists and is related to running it on Azure App Service, please open a support incident in Azure:
https://learn.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request
This way we can better track and assist you on this case
Thanks,
Joaquin Vano
Azure App Service


Config file

Move config stuff out of main code (so I can run direct from repo)

Fixed with recent commits.


Add banner for the leadership summit

We need to add a banner for the Leadership Summit on the homepage that way as we start doing a large push on social media, anyone that comes to the website will be able to find the page quickly and easily.
This would be a banner at the top using the

 tags at the front.
We can use some text like

Join us in Durham, and Online this weekend for the Leadership Summit. Learn More!

I'll take this one.


How to use ES6 Classes with Skate.js?

I am trying to stick to ES6 Classes throughout my app. Currently, this is what I do with vanilla (v0) Custom Elements:
class MyElement extends HTMLElement {
    createdCallback() {...}
    attachedCallback() {...}
    detachedCallback() {...}
    ...
}

// assignment is required as registerElement returns a new constructor
MyElement = document.registerElement('my-element', MyElement)

export default MyElement

This works because the registerElement options argument can accept a prototype property, and it may be considered coincidence that the constructor function of a class also has a prototype property, so I'm simply passing in the constructor for the options to registerElement.
About the prototype property to skate() options, the comments on skate.js.org say:

It's notable that the element's prototype is not modified. These are added after the element is instantiated.

So, I was thinking maybe I could apply a similar pattern as I've done above, but with skate.js, f.e.:
class MyElement extends HTMLElement {
    created() {...}
    attached() {...}
    detached() {...}
    ...
}

// assignment is required (v0 hack).
MyElement = skate('my-element', MyElement)

Would this work (note, I haven't tried Skate.js yet, but am evaluating what's out there in order to decide if I should continue with my own WebComponent class or if I should adopt Skate.js, the latter is tempting, especially since I've been a skateboarder for 16 years).
If that does work, the first obvious downside is that then I will not be able to pass other options like events, attributes, etc, unless I place them onto the class constuctor function, which is a little ugly, but I could live with that.
I guess this brings up a question: have you considered an ES6 class approach? It could possibly look something like this:
class MyElement extends HTMLElement {
    created() {...}
    attached() {...}
    detached() {...}

    events = {
        ...
    }
    attributes = {
        ...
    }
}

MyElement = skate('my-element', MyElement)

(The MyElement =  assignment is only because v0 Custom Elements API returns a new constructor function and using the original constructor doesn't work.)
In my WebComponent class, I came up with an interesting idea (but I'm not sure if it's a good idea yet): the makeWebComponentBaseClass function creates a different WebComponent base class to extend from depending on which type of HTMLElement one wants to extend from. The usage looks like this:
https://github.com/infamous/infamous/blob/e052ed047d75f40c9ce797c386748b160df9cce1/src/motor-html/node.js#L7-L9
WebComponent contains base functionality for all components, but currently that functionality isn't as involved as Skate.js, WebComponent is only managing stylesheets with JSS so far.

Skate will automatically extend HTMLElement by default if you don't do so, so you could just do the following instead:
skate('my-element', {
  created () {},
  attached () {},
  detached () {}
});

That said, you can extend like so:
const MyElement = skate('my-element', class extends HTMLElement {
  static created () {},
  static attached () {},
  static detached () {}
});

We've got some tests set up for using ES2015 classes. If you can't do what you want to do, then that's a bug.
That said, even with Skate, you have to use the return value from skate() just like you do in v0 because Skate abstracts v0 and v1 (not full v1 support yet).

The static usage there is a little awkward. Those functions are taken and assigned onto instances?

No, the element is passed as the first and only argument. There's some reasoning behind this:

They're lifecycle callbacks, not really part of the public API which is what the prototype is intended for.
We experimented with using symbols for the names, but it's really, really awkward when not using ES2015 and still kinda awkward even when you can.
Static avoids prototype conflicts.
Rewriting the context of functions (in this case making this be the element in statics) can be unexpected.

We decided that not colliding and backward compatibility were more important to us than eliminating the static keyword when using classes.
That said, I personally dislike ES2015 classes and find other things awkward like:
skate('my-element', class {
  static get props () {
    return {};
  }
});

Where you could simply just go:
skate('my-element', {
  props: {}
});

With classes, you still have to merge things like props:
import ParentComponent from './parent-component';

skate('child-component', class extends ParentComponent {
  static get props () {
    return Object.assign({}, ParentComponent.props, {
      childProp: {}
    });
  }
});

For instances where you're forced to use something other than HTMLElement as a base, then classes are more convenient than the Object.assign() route, but only ever so slightly. Since Skate automating the extending of HTMLElement should cover most use cases and enables a much more concise syntax.
If you have a proposal, I'd be happy to discuss it, though.

They're lifecycle callbacks, not really part of the public API which is what the prototype is intended for.

For sure, I see what you mean. That said, the actual Custom Element API has these callbacks on the prototypes, which I'm fine with, so the statics form in Skate.js seems deviated from the spec in that sense. In React we use prototype methodsfor life cycle callbacks, and people that use React simply know better than to use those method names for other purposes.

Static avoids prototype conflicts.

The premise in React and vanilla Custom Elements is "make a class with method names X, Y, Z, and we'll automatically call those methods for you in situations X, Y, and Z", which I think is just fine. Passing element as an argument into the static methods is practically the same as placing the methods on the prototype and using this instead of element.

Rewriting the context of functions (in this case making this be the element in statics) can be unexpected.

Well, that's why I'd go with prototype methods instead of statics.

We decided that not colliding and backward compatibility were more important to us than eliminating the static keyword when using classes.

But it's your design and how you like it 😊 ! It's not a big deal if I have to use element instead of this along with the extra static symbol. About backwards compatibility, are you talking about how the v1 spec unnecessarily modified the callback names. They could've just ket them the same, therefore keeping backwards compatibility. I think connectedCallback/disconnectedCallback is further away from appendChild and removeChild than attachedCallback/detachedCallback. I don't see what benefit we get from renaming the methods in v1, and I see we only get the opposite of a benefit due to introduced possibility for name collision.

That said, I personally dislike ES2015 classes and find other things awkward like:
skate('my-element', class {
  static get props () {
    return {};
  }
});

I would write that as
class MyElement {
  static get props () {
    return {};
  }
}

skate('my-element', MyElement);

which is closer to Custom Elements v1:
class MyElement extends HTMLElement {
    ...
}

customElements.define('my-element', MyElement);

If you have a proposal, I'd be happy to discuss it, though.

I'm not sure I have a proposal, but my class-based approach solves that problem by generating the base class dynamically based on the element we want to extend. I could make the first argument to my makeWebComponentBaseClass function default to HTMLElement, but haven't done that yet.
I agree with you that with the current Skate API, passing an ES2015 class is awkward and not as nice as using the API the way it was designed by passing an Object literal. Maybe there's some way to make ES2015 classes be nice to use, a way that would be better than in both of our cases. I think I should get up and running with v1 first before I can make any proposal.
Is there an existing Custom Elements v1 polyfill, so I can experiment and perhaps make a proposal?

A downside of copying stuff from the prototype option passed to skate() "during element instantiation" is that may perform less compared to just using a class prototype. This could make a difference if skate is being used to instantiate elements in a real-time game.

A downside of copying stuff from the prototype option passed to skate() "during element instantiation" is that it may perform less compared to just using a class prototype.

That only happens in the polyfill. There's no other way to do this, AFAIK.

That said, the actual Custom Element API has these callbacks on the prototypes, which I'm fine with, so the statics form in Skate.js seems deviated from the spec in that sense.

Well, Skate adds features around these callbacks for things like properties and event binding. That being the case, the function names must be different regardless of if they're on the prototype or on the constructor.

In React we use prototype methods for life cycle callbacks, and people that use React simply know better than to use those method names for other purposes.

Stylistic choice, really. React doesn't have problems with DOM prototype collision, though, so it's easier to swallow there.

The premise in React and vanilla Custom Elements is "make a class with method names X, Y, Z, and we'll automatically call those methods for you in situations X, Y, and Z", which I think is just fine. Passing element as an argument into the static methods is practically the same as placing the methods on the prototype and using this instead of element.

Indeed.

Well, that's why I'd go with prototype methods instead of statics.

Personally, I'd prefer prototyped lifecycle callbacks. It's why we messed with using symbols to avoid collisions, which was an ergonomic nightmare. That said, using statics don't have any functional downsides. Maybe it's worth finding better names to put on the prototype? The problem there is ergonomic names have a higher chance of colliding. I'm open to finding a solution before 1.0, but that's very soon. Is it really that bad to use statics?

About backwards compatibility, are you talking about how the v1 spec unnecessarily modified the callback names.

Not really, but that's only one of bikesheds and churn that has been present in the spec in the past few months. I was actually referring to the latest versions of Skate all use statics and staying backward compatible seemingly outweighs having to type static and use the argument. Still, I prefer prototype and am happy to discuss this for 1.0 if we can come to a quick consensus.

I would write that as ... which is closer to Custom Elements v1.

Unfortunately, the reality is that right now we can't very easily do that. As you said yourself, you have to get the return value from registerElement (or do window.customElements.get('my-element'). V1 will allow that, but we aren't there yet. Skate still allows you to use classes, it just requires that you use the returned constructor instead so writing something like skate('my-element', {}) is more ergonomic for that use case, but also allows you to use classes if you want.
Skate also uses the value of the extends option to generate a base class for you so you don't have to do stuff like:
skate('custom-p', class extends HTMLParagraphElement {
  static get extends () {
    return 'p';
  }
})

You'd just do:
skate('custom-p', {
  extends: 'p'
});

Skate takes care of the base class, v0 passing extends as a "static" property and v1 where extends is passed as a third argument to customElements.define().
It's worth noting that the spec is somewhat inconsistent with it's lifecycle. For the callbacks, they use prototype. But for observedAttributes, they use statics. Illustrating this:
class MyParagraph extends HTMLParagraphElement {
  static get observedAttributes () {
    return ['some-attribute'];
  }

  attributeChangedCallback (name, oldValue, newValue) {
    // do something when "some-attribute" changes
  }
}

window.customElements.define('my-p', MyParagraph, { extends: 'p' });

Whereas in Skate you could just write:
const MyParagraph = skate('my-p', {
  extends: 'p',
  observedAttributes: ['some-attribute'],
  attributeChanged (elem, data) {}
});

I wouldn't call this "divergent" from the spec. Divergent would be providing behaviour that you can't use the web component primitives to provide, such as binding behaviour to attributes and classes (which we removed).

I'm not sure I have a proposal, but my class-based approach solves that problem by generating the base class dynamically based on the element we want to extend.

I'm not exactly sure what that means, but if it means what I think it does, isn't that very similar to what Skate does for you?

Is there an existing Custom Elements v1 polyfill, so I can experiment and perhaps make a proposal?

I think Justin replied to you already. Be aware that we're still working on supporting v1 but feel free to raise issues.
Thanks again for all your questions and input.

You also seem concerned that we don't do native prototype extension. Indeed we do, we just do it the ES5 way as you can see here: https://github.com/skatejs/skatejs/blob/a05edcc557fba8c30c9248face89ea534900c050/src/api/skate.js#L117.
Where we polyfill that is here: https://github.com/skatejs/skatejs/blob/a05edcc557fba8c30c9248face89ea534900c050/src/lifecycle/created.js#L86

Feel free to reopen if this requires further discussion. Closing for now.

For sure, I guess I just like ES6 class semantics, and want to write JS code that is as vanilla JS as possible in terms of defining classes, but ultimately the end result is what matter, and the result SkateJS achieves is ultimately the same thing (a way of specifying DOM classes, just not with ES syntax directly).

FYI you can now:
skate('my-element', class extends HTMLElement {});

Skate uses both the v0 and v1 polyfills and actually now recommends using classes if possible.