Remote poweron (KEY_POWER) suddenly broken

Since one of the latest commits, the KEY_POWER has stopped working. In the earlier versions, KEY_POWER worked for turning on my Q7. Now it fails with:
Max retries exceeded with url: /rcr/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x73c9d430>: Failed to establish a new connection: [Errno 113] No route to host',))
Using wake_on_lan.py with the ip works fine, and it worked fine on earlier commits.

No rush man! But yeah, that sounds logical to me (so much so that I thought that was the way it works right now...)

I know that is what people thought. that is the way it should work...
the library has been updated.

Samsung TV's do not have the ability to be powered on from a key code..  I know I know do not ask me why there is a KEY_POWERON. but samsung goes have that keycode... the keycodes are not just for their TV's it is for all of their devices..
on some TV's the KEY_POWEROFF will turn the TV off. while on others the KEY_POWER will turn it off. the KEY_POWERON did nothing.
so now the behavior is as such..
KEY_POWER = toggle
KEY_POWERON = power on
KEY_POWEROFF - power off.
the library will handle what needs to be done. so the user will not have to worry about it.

Just updated. Same result:
requests.exceptions.ConnectionError: HTTPConnectionPool(host='<IP_ADDRESS>', port=7676): Max retries exceeded with url: /rcr/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x73d43490>: Failed to establish a new connection: [Errno 113] No route to host',))
for KEY_POWERON and KEY_POWER
While the TV is on, the KEY_POWER and KEY_POWEROFF commands now causes the TV to cycle between power on and power off, until I send a break to the script.
The happy news is that whatever is causing the TV to powercycle from an on state IS able to turn ON the TV ;)

While the TV is on, the KEY_POWER and KEY_POWEROFF commands now causes the TV to cycle between power on and power off, until I send a break to the script.

explain this better..
is it looping between power on and off over and over again??

i fixed this issue.
requests.exceptions.ConnectionError: HTTPConnectionPool(host='<IP_ADDRESS>', port=7676): Max retries exceeded with url: /rcr/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x73d43490>: Failed to establish a new connection: [Errno 113] No route to host',))
the library has been updated.

Same behaviour for POWER/POWEROFF (the cycle):
pi@raspberrypi:~/samsungctl $ samsungctl KEY_POWEROFF --config-file /home/pi/woonkamer.conf
^CTraceback (most recent call last):
File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.8.0b0', 'console_scripts', 'samsungctl')()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/main.py", line 353, in main
key(remote)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/key_mappings.py", line 12, in call
remote.control(self.key)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/utils.py", line 24, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote_websocket.py", line 306, in control
self.power = False
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/utils.py", line 24, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote_websocket.py", line 281, in power
event.wait(2.0)
File "/usr/lib/python2.7/threading.py", line 614, in wait
self.__cond.wait(timeout)
File "/usr/lib/python2.7/threading.py", line 359, in wait
_sleep(delay)
KeyboardInterrupt

Also same behavior for POWER_ON / POWER from an OFF state:
pi@raspberrypi:~/samsungctl $ samsungctl KEY_POWEROFF --config-file /home/pi/woonkamer.conf
^CTraceback (most recent call last):
File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.8.0b0', 'console_scripts', 'samsungctl')()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/main.py", line 353, in main
key(remote)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/key_mappings.py", line 12, in call
remote.control(self.key)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/utils.py", line 24, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote_websocket.py", line 306, in control
self.power = False
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/utils.py", line 24, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote_websocket.py", line 281, in power
event.wait(2.0)
File "/usr/lib/python2.7/threading.py", line 614, in wait
self.__cond.wait(timeout)
File "/usr/lib/python2.7/threading.py", line 359, in wait
_sleep(delay)
KeyboardInterrupt

OK here is what I am going to do. right now I have the library set up so it keeps on retrying to send the commands..

Samsung actually does have the KEY_POWER set up as a toggle. this is the hoot.. because I am doing a loop and retrying to the keys. it is happening to fast. and the KEY_POWER is toggling the TV off. and then before the websocket gets a chance to close the KEY_POWER gets sent again.. and the TV turns back on.. LOL
So.. I am going to fire the KEY_POWER first.. then the KEY_POWEROFF and each one will get fired only a single time. no looping..
I am going to  have to keep the loop with the WOL packets. this is because a WOL packet is a broadcast an the TV may not get the packet.. broadcasting can have that issue. and it should be expected that a packet may not get where it is supposed to go. and the programming code should account for this.
as far as that last error.... I never thought about the UPNP and the TV being off. LOL.. i will have to fix that as well.
the old version of samsungctl will simply error out if the TV is off. I have expanded it's functionality to handle the TV being off so I need to make the library fully capable of dealing with the TV when it is off. and this is did not do with the upnp side of things...
it is going to take me a whiile to hammer that out, so give me a half a day or so.

Again, no rush! Just very happy that you are doing this, so I'm the last one that'll make demands on your time.
And while you are in there (and I haven't checked myself) : Does the --start-app check power state?

every command does. if the TV power is on but the websocket connection is not made. it will make it. of the power is off. it will print a log statement saying the TV is off and continue along it's merry way.

if you want to test out the new power handling.. clone the develop branch.

Cloned the develop branch with:
git clone  https://github.com/kdschlosser/samsungctl.git develop
cd develop/
sudo python setup.py install
Verified /usr/local/bin/samsungctl is the current date/time
KEY_POWER and KEY_POWEROFF still cycle from on to off to on etc
pi@raspberrypi:/usr/local/bin $ samsungctl KEY_POWEROFF --config-file /home/pi/woonkamer.conf
^CTraceback (most recent call last):
File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.8.0b0', 'console_scripts', 'samsungctl')()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/main.py", line 353, in main
key(remote)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/key_mappings.py", line 12, in call
remote.control(self.key)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/utils.py", line 24, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote_websocket.py", line 306, in control
self.power = False
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/utils.py", line 24, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote_websocket.py", line 279, in power
self.send("ms.remote.control", **power)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/utils.py", line 24, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote_websocket.py", line 233, in send
self.send_event.wait(0.3)
File "/usr/lib/python2.7/threading.py", line 614, in wait
self.__cond.wait(timeout)
File "/usr/lib/python2.7/threading.py", line 359, in wait
_sleep(delay)
KeyboardInterrupt

New behaviour for KEY_POWERON:
pi@raspberrypi:/usr/local/bin $ samsungctl KEY_POWERON --config-file /home/pi/woonkamer.conf
Traceback (most recent call last):
File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.8.0b0', 'console_scripts', 'samsungctl')()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/main.py", line 338, in main
with Remote(config) as remote:
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote.py", line 82, in call
return RemoteWrapper(conf)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote.py", line 69, in init
self
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/init.py", line 20, in init
UPNPObject.init(self, ip, locations)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/UPNP_Device/upnp_class.py", line 35, in init
response = requests.get(location)
File "/usr/local/lib/python2.7/dist-packages/requests-2.21.0-py2.7.egg/requests/api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests-2.21.0-py2.7.egg/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests-2.21.0-py2.7.egg/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests-2.21.0-py2.7.egg/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests-2.21.0-py2.7.egg/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='<IP_ADDRESS>', port=9119): Max retries exceeded with url: /screen_sharing (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x73cab450>: Failed to establish a new connection: [Errno 111] Connection refused',))

Behaviour for KEY_POWER (also from off state) seems unchanged to the main branch.

also your first error is because of you interrupting the script. it is going to take a bit for the TV to power down. so the script waits until it is off before it will exit. it will look like it is doing nothing for up to 10 seconds.

also your first error is because of you interrupting the script. it is going to take a bit for the TV to power down. so the script waits until it is off before it will exit. it will look like it is doing nothing for up to 10 seconds.

The interrupt is because at that point the TV went off, then on again. As the plan was 'turn off', I've taken 'turning on again' as 'not working' ;-)

pi@raspberrypi:~/develop/develop $ samsungctl KEY_POWERON --config-file /home/pi/woonkamer.conf
Traceback (most recent call last):
File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.8.0b0', 'console_scripts', 'samsungctl')()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/main.py", line 338, in main
with Remote(config) as remote:
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote.py", line 81, in call
return RemoteWrapper(conf)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote.py", line 68, in init
config.upnp_locations
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/init.py", line 19, in init
self.name = self.name
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/UPNP_Device/upnp_class.py", line 130, in getattr
if item in self._devices:
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/UPNP_Device/upnp_class.py", line 130, in getattr
Last 3 lines repeated a couple of hunderd times
RuntimeError: maximum recursion depth exceeded while calling a Python object
TV was off, command was KEY_POWERON. KEY_POWER behaves the same.

ahh ok.. yes that would be not working. But the traceback does not help because of the interruption
I just updated the develop branch again.

Same result for KEY_POWEROFF from an ON state.

Pulling the new one now :)

pull this one..
i just fixed that last traceback.

Same response as above. But now the script hangs up at the end. Can't be interrupted even...
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/UPNP_Device/upnp_class.py", line 130, in getattr
if item in self._devices:
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/UPNP_Device/upnp_class.py", line 130, in getattr
if item in self._devices:
RuntimeError: maximum recursion depth exceeded while calling a Python object
^C
KEY_POWEROFF in this case, from an ON state.

try it now.

Sorry :(
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/UPNP_Device/upnp_class.py", line 130, in getattr
if item in self._devices:
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/UPNP_Device/upnp_class.py", line 130, in getattr
if item in self._devices:
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/UPNP_Device/upnp_class.py", line 130, in getattr
if item in self._devices:
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/UPNP_Device/upnp_class.py", line 130, in getattr
if item in self._devices:
RuntimeError: maximum recursion depth exceeded while calling a Python object
^C
^C

i need to see the beginning of the error

My bad:
pi@raspberrypi:~/develop/develop $ samsungctl KEY_POWEROFF --config-file /home/pi/woonkamer.conf
Traceback (most recent call last):
File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.8.0b0', 'console_scripts', 'samsungctl')()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/main.py", line 338, in main
with Remote(config) as remote:
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote.py", line 83, in call
return RemoteWrapper(conf)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote.py", line 70, in init
config.upnp_locations
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/init.py", line 23, in init
self.connect_upnp()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/UPNP_Device/upnp_class.py", line 130, in getattr
if item in self._devices:
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/UPNP_Device/upnp_class.py", line 130, in getattr
if item in self._devices:

I updated it again.

pi@raspberrypi:~/develop/develop $ samsungctl KEY_POWEROFF --config-file /home/pi/woonkamer.conf
Traceback (most recent call last):
File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.8.0b0', 'console_scripts', 'samsungctl')()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/main.py", line 338, in main
with Remote(config) as remote:
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote.py", line 73, in call
return RemoteWrapper(conf)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote.py", line 60, in init
config.upnp_locations
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/init.py", line 29, in init
self.connect_upnp()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/upnp/UPNP_Device/upnp_class.py", line 134, in getattr
raise AttributeError(item)
AttributeError: connect_upnp
^C
Script hangs at this point, had to kill -9 it.

OK I think i have it solved this time.

In the sense that the TV actually turned off this time: YES!
However...
pi@raspberrypi:~/develop/develop $ samsungctl KEY_POWEROFF --config-file /home/pi/woonkamer.conf
Traceback (most recent call last):
File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.8.0b0', 'console_scripts', 'samsungctl')()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/main.py", line 408, in main
remote.source = args.source
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote.py", line 71, in exit
self.close()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/websocket_base.py", line 140, in close
raise NotImplementedError
NotImplementedError
(Script again hangs, ^C does nothing)

POWER_ON works too, other than hanging up the script (which may be at my end)

Gave it a couple minutes after hanging:
pi@raspberrypi:~/develop/develop $ samsungctl KEY_POWERON --config-file /home/pi/woonkamer.conf
^CTraceback (most recent call last):
File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.8.0b0', 'console_scripts', 'samsungctl')()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/main.py", line 408, in main
remote.source = args.source
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote.py", line 71, in exit
self.close()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/websocket_base.py", line 140, in close
raise NotImplementedError
NotImplementedError
The TV does turn on though!

close error should now be fixed.

ON does work (in that the TV turns on) but hangs:
pi@raspberrypi:~/develop/develop $ samsungctl KEY_POWERON --config-file /home/pi/woonkamer.conf
^CTraceback (most recent call last):
File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.8.0b0', 'console_scripts', 'samsungctl')()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/main.py", line 353, in main
key(remote)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/key_mappings.py", line 12, in call
remote.control(self.key)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/utils.py", line 24, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote_websocket.py", line 279, in control
self.power = True
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/utils.py", line 24, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote_websocket.py", line 225, in power
event.wait(2.0)
File "/usr/lib/python2.7/threading.py", line 614, in wait
self.__cond.wait(timeout)
File "/usr/lib/python2.7/threading.py", line 359, in wait
_sleep(delay)
KeyboardInterrupt

Hold, testing the new one.

try it again,

try it again.

also when the TV is on use your browser and go to this URL..
http://<IP_ADDRESS>:9119/screen_sharing
see if it is valid

From an OFF state: KEY_POWER works, TV turns on (and is quite fast)
From an ON state: KEY_POWER works , TV turns off (less fast, but acceptable)
From an OFF state: KEY_POWERON works, TV turns on (feels slower than KEY_POWER)
From an ON state: KEY_POWEROFF works, TV turns off (about the same as KEY_POWER)
All commands exit gracefully. So this feels fixed :)
http://<IP_ADDRESS>:9119/screen_sharing is a valid URL with the TV on. Times out while the TV is off.

try it now...
I am trying to shrink thee power on time.

KEY_POWER should operate at the same speed as KEY_POWERON and KEY_POWEROFF. it is running the same code as those keys do.

KEY_POWERON : about 17 seconds
KEY_POWEOFF : About 13 seconds, TV turns off in the first 5.
KEY_POWER with TV off : About 17 seconds, TV turns on after about 12 seconds.
KEY_POWER with TV on: About 12 seconds, TV turns off after 3 seconds. \
Times are total execution times, counted manually :)

KEY_POWER should operate at the same speed as KEY_POWERON and KEY_POWEROFF. it is running the same code as those keys do.

Right, I'll skip KEY_POWER in next tests :)

there are no next tests..
There is a difference between the TV screen coming on or turning off and the actual services that are available on the TV. the first thing the TV is going to do is power the screen or turn the screen off. the last thing it will do is start and stop any services.
so that is why you see a time difference between the TV being perceived as on or off and when thee program says it is on or off.
I have the loop that checks the power state set to wait 1 second between loops. so it is as fast as I am going to be able to make it..

if you are going to be online for a few minutes. I want to hammer together a new interactive mode.. it should only take me a few minutes to code up.

I'm here for the next 30 minutes or so, do your worst ;)

Very happy with the outcome so far, and kudo's to you sir!

OK all done...
use --interactive at the command line.. along with the --config-file..

Willdo. Give me a moment.

cool beans.. and I just finished in the nick of time.. 28 minutes to code it from scratch..

Some spare comments:

Still can't get over how fast KEY_POWER powers on the TV from interactive...
Entering 'key_mute' instead of 'KEY_MUTE' silently fails.
No command history, so arrow-up does nothing useful. Not terribly important though.
Rubbish input leads to an error:

Please enter command:argdfgs
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/interactive.py", line 97, in run
value = int(value)
ValueError: invalid literal for int() with base 10: 'rgdfgs'
The program does continue though.

it is supposed to continue.. the error is what it is supposed to do,
I will work on adding the up arrow and down arrows for scrolling through previous commands. as well as escape to clear an already entered command.
It's a good thing I have already messed around with cursor movements cross platform.. :smile:
I also removed the need to enter KEY_ in the command.

Noice! Let me know when you need more testing. Happy to help.

I  closing this everything should be working fine.

Yup, everything works, I'm a happy camper. Thanks! I'll stay on the develop branch for now.

ok cool.


How handle pixelRatio?

For reference: https://github.com/pmndrs/react-postprocessing/pull/29
We noticed that output is blurry even if the webglrenderer is on a higher pixelratio. And this was supposed to fix it:
-    useEffect(() => void composer.setSize(size.width, size.height), [composer, size])
+    useEffect(() => void composer.setSize(
+      size.width * window.devicePixelRatio,
+      size.height * window.devicePixelRatio
+    ), [composer, size, window.devicePixelRatio])

But it seems that it just scales the output.
We then tried: https://github.com/pmndrs/react-postprocessing/pull/30
+    const pixelRatio = gl.getPixelRatio()
-    useEffect(() => void composer.setSize(
-      size.width * window.devicePixelRatio,
-      size.height * window.devicePixelRatio
-    ), [composer, size, window.devicePixelRatio])
+    useEffect(() => {
+      composer.setSize(size.width * pixelRatio, size.height * pixelRatio)
+    }, [composer, size, pixelRatio])

Same issue it seems.
Is there a definitive way to adjust the ratio, and can it be altered once the effectcomposer has been created?

never mind, browsing pp source it seems straight forward
// Update the logical render size.
renderer.setSize(width, height, updateStyle);

// The drawing buffer size takes the device pixel ratio into account.
const drawingBufferSize = renderer.getDrawingBufferSize(new Vector2());

it sets the size, fetches drawing buffer size. it should be automatic ... and in case PR is changed, calling composer.setSize() should be enough to adapt.

Right, setting the ratio via renderer.setPixelRatio(ratio) is the recommended way to do this and calling composer.setSize() without arguments will update the buffer size.
My phone has a pixel ratio of 3.0 and renders the postprocessing demos correctly.

i am working on adaptive performance where standstill is highest, and when things move it can dial down some settings with a small lerp so it doesn't look as harsh. i was wondering why it never got to 60fps with effects, but now it's clear. calling setSize really did the trick! thanks! :-)


 I'll definitely have to check it out.

I've added a container item, @majijn. If you could test if it works, that'd be good. Otherwise... honestly it's not really what I expected to do, I don't know how the tank is set up to handle fluids.

cant put it in the furnace at all now! tried with lava, that certainly stops the tanks from being eaten.

That's strange because nothing I did should've changed that :S


When vite-node runs the script, the parameters should be passed transparently

Describe the bug
For example, the following is the behavior of node/tsx/ts-node/vite-node four clis running a script. I think the behavior of vite-node should be consistent with others
><EMAIL_ADDRESS>start /Users/rxliuli/code/web/demo/vite-node-execute-demo
> pnpm start-node && pnpm start-tsx && pnpm start-ts-node && pnpm start-vite-node

><EMAIL_ADDRESS>start-node /Users/rxliuli/code/web/demo/vite-node-execute-demo
> node hello.js -h

[
  '/usr/local/bin/node',
  '/Users/rxliuli/code/web/demo/vite-node-execute-demo/hello.js',
  '-h'
]

><EMAIL_ADDRESS>start-tsx /Users/rxliuli/code/web/demo/vite-node-execute-demo
> tsx hello.js -h

[
  '/usr/local/bin/node',
  '/Users/rxliuli/code/web/demo/vite-node-execute-demo/hello.js',
  '-h'
]

><EMAIL_ADDRESS>start-ts-node /Users/rxliuli/code/web/demo/vite-node-execute-demo
> ts-node hello.js -h

[
  '/Users/rxliuli/code/web/demo/vite-node-execute-demo/node_modules/ts-node/dist/bin.js',
  '/Users/rxliuli/code/web/demo/vite-node-execute-demo/hello.js',
  '-h'
]

><EMAIL_ADDRESS>start-vite-node /Users/rxliuli/code/web/demo/vite-node-execute-demo
> vite-node hello.js -h

vite-node/0.32.0

Usage:
  $ vite-node [...files]

Commands:
  [...files]

For more info, run any command with the `--help` flag:
  $ vite-node --help

Options:
  -v, --version        Display version number
  -r, --root <path>    Use specified root directory
  -c, --config <path>  Use specified config file
  -m, --mode <mode>    Set env mode
  -w, --watch          Restart on file changes, similar to "nodemon"
  --script             Use vite-node as a script runner
  --options <options>  Use specified Vite server options
  -h, --help           Display this message

hello.js
console.log(process.argv)

Reproduction

git clone https://github.com/rxliuli/vite-node-execute-demo
cd vite-node-execute-demo
pnpm i
pnpm start

System Info
System:
    OS: macOS 13.3
    CPU: (12) arm64 Apple M2 Max
    Memory: 16.86 GB / 64.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.15.0 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 9.5.0 - /usr/local/bin/npm
    Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
  Browsers:
    Chrome: 114.0.5735.106
    Firefox: 114.0
    Safari: 16.4

Used Package Manager
pnpm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Please, open a new PR that specifies the changes in the README. "consistent with node" is not a change - please, reference all breaking changes that you introduced and how to migrate.


Add License Status badge

https://github.com/bromso/school-frontend/blob/master/README.md

https://github.com/bromso/school-frontend/blob/master/README.md


11-05-15

done:
1. change dist for spl candidates
2. parser for LAVT
3. mutate engine

doing:
1. stat for leaves cluster
2. merge LAVT to FTModel

todo:
1. track mutate tree-> avoid early stop
2. mutate from objectives

looking forward to simple baselines:

[ ] RX1: generate large N number of products (using your top down method, i think) then cull N using WHERE with east-west pruning
[ ] RX2: using GALE to find products
[ ] RX3,4,5: using DE, NSGA-III, MOEA/D to find products

[ ]  A tutorial on the performance assessment of stochastic mult-iobjective optimizers

http://www.tik.ee.ethz.ch/sop/pisa/publications/emo-tutorial-2up.pdf


Update develop-tables-cetas.md

Gen2 Storage Account, which is a Synapse prerequesite -> https://docs.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql?view=azure-sqldw-latest&tabs=dedicated
The doc should be pointing to .dfs. endpoint instead of blob. I was trying to demo with this example and it was failing. Please note this is also documented here: https://docs.microsoft.com/en-us/answers/questions/825946/external-table-location-path-is-not-valid-location.html

@LiliamLeme are you using dedicated sql pool or serverless sql pool? Link you shared has "dedicated" in it.

Is your comment still valid since you used docs from dedicated sql pool?
Filip
From: LiliamLeme @.>
Sent: Wednesday, July 6, 2022 1:32 PM
To: MicrosoftDocs/azure-docs @.>
Cc: Filip Popovic @.>; Assign @.>
Subject: Re: [MicrosoftDocs/azure-docs] Update develop-tables-cetas.md (PR #93378)
HI, I was using serveless sql pool.
From: filippopovic @.>
Sent: Wednesday, July 6, 2022 12:25 PM
To: MicrosoftDocs/azure-docs @.>
Cc: Liliam Leme @.>; Mention @.>
Subject: Re: [MicrosoftDocs/azure-docs] Update develop-tables-cetas.md (PR #93378)
@LiliamLemehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FLiliamLeme&data=05|01|lilem%40microsoft.com|eb943f90a0de441f3b3508da5f42317b|72f988bf86f141af91ab2d7cd011db47|1|0|637927035172133911|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=UXt0qHlRW%2B41wMz8gQ3OOivKdJ%2BtfLb%2BzO0QywxPaM4%3D&reserved=0 are you using dedicated sql pool or serverless sql pool? Link you shared has "dedicated" in it.

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fpull%2F93378%23issuecomment-1176105031&data=05|01|lilem%40microsoft.com|eb943f90a0de441f3b3508da5f42317b|72f988bf86f141af91ab2d7cd011db47|1|0|637927035172133911|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=6W8OnI5armlzUFQyyJZqBgwtuSsqlGH3Hg%2BdccOf8eY%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAO7WU5VARQI5VNA2IEGUNMLVSVUJRANCNFSM5W2HS4QQ&data=05|01|lilem%40microsoft.com|eb943f90a0de441f3b3508da5f42317b|72f988bf86f141af91ab2d7cd011db47|1|0|637927035172133911|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=iTxAAB10rTmdkKQYDjLdOi9m4vavkIs%2Bj4FlPZTHI50%3D&reserved=0.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fpull%2F93378%23issuecomment-1176110515&data=05|01|Filip.Popovic%40microsoft.com|7ce10e8986b24f66d34208da5f431d35|72f988bf86f141af91ab2d7cd011db47|1|0|637927039143194785|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=pHcwlKVr38ijnf5y3oeU9z0ne4NRw9r8vdY0BnawQyE%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAANAOVQGQS2CKT44GK5GK6TVSVVCJANCNFSM5W2HS4QQ&data=05|01|Filip.Popovic%40microsoft.com|7ce10e8986b24f66d34208da5f431d35|72f988bf86f141af91ab2d7cd011db47|1|0|637927039143204777|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=SAMOL7RT0dYuoBgqz%2BBh4mVSWMdOp7ZBV85TTumDrKs%3D&reserved=0.
You are receiving this because you were assigned.Message ID: @.***>

#please-close


Add support for ".txm" format

In dummy data generation, add support for XML-like ".txm" file format.
Also support filenames with additional compression extension: ".txm.gz".

Neat! Looks like you need a rebase and then should be good to go :)

Done, @yjernite, @lhoestq.

If you agree, we could merge this.

Hi ! yes sure :) can you just merge master into this branch before we merge ?

Done @lhoestq


Re-introduce FSM support.

Related ticket: https://github.com/dakusui/jcunit/issues/169

Closing this for now since the author currently feels it is really useful.


[list] Sort by date and weight

Is this a BUG REPORT or FEATURE REQUEST?:
feature
What happened:
List fragment pages can only be sorted by weight.
What you expected to happen:
Pages should be sorted by date and if there is weight, sort by weight.

Turns out we already do this. The problem is that it's a bit confusing.
index.md can be a fragment as well. So it's weight is used to sort the fragment. In the list fragment that same weight is used to sort the articles as well. Default sort  is Weight > Date > LinkTitle > FilePath. If someone needs to pin an specific article they can use a slightly less weight or create a separate content.md file.


Buy command will create the same item multiple times instead of stacking them.

Started work on it.


Folder structure: Controls > Design?

Issue type
enhancement
Which version of the app?
WinUI 3 Gallery
Description
The current structure is one where 📂 ControlPages > 📂 Accessibility and DesignGuidance; but the last two are not controls. Shouldn't they "live" on the same level?
Screenshots

Also note that in the UI: Design Guidance > Accessibility.


bug(python): v0.17.1 - Unable to create Bitmap index on Boolean datatype

LanceDB version
v0.17.1
What happened?
When upgrading to v0.17.1, I am getting a ValueError when attempting to create a Bitmap scalar index on a boolean datatype:
ValueError: Schema Error: A Bitmap index cannot be created on the field `has_vector` which has data type Boolean

If I am not mistaken, a Bitmap index should suit the Boolean datatype quite well as it will only require 2 bits per row to construct the index. I can't spot any specific change in LanceDB/PyLance for this validation error, is there some sort of optimization that has been added which makes this type of index redundant? Or a regression?
Are there known steps to reproduce?
Attempt to create any scalar index with type Bitmap, on Boolean datatype.

I also noticed the same error for another datatype:
ValueError: Schema Error: A Bitmap index cannot be created on the field `inner_id` which has data type Float64

This may be a schema issue on our side as this type should be an Int rather than a Float, but it was successful before 0.17.1 upgrade.


api: expose data argument on transfer_friendly

close https://app.clickup.com/t/861mv9848

coverage: 80.908%. remained the same when pulling 92f35f4a6d23f619229121b1caa976dfe0b02794 on expose-data-tfx-friendly into 3db99e94afb9c195081ac5011e5af056ed81657e on master.


Vcl.StyledTaskDialogFormUnit.pas - A/V checking

Line 334 should insert a check if FButtons[I] is assigned before accessing properties at the top of the loop.
Line 833 should also do the same check for assignment before accessing properties.

thanks

Fixed in 3.7.0 version.


Create disposition recommendations

We have to address various labels for 6Rs. One of them being upgrade (refactor).

There are multiple subtasks we are going through.

Non-technical entity standardization (Mihir completed it)
Technical and untechnical entity extraction from unstructured text (Mihir is working on it)
Stackoverflow data augmentation (Anup is working on it)


Changed binary format of ABCI messages since tendermint 0.16

Hi,
we are trying to upgrade jabci to 0.16 (https://github.com/jTendermint/jabci) and we are totally lost on the following behavior:
Up until tendermint 15, the initial message when tendermint connected to the ABCI APP was
0x01,0x13,0x22,0x11,0x0a,0x0f,0x30,0x2e,0x31,0x35,0x2e,0x30,0x2d,0x61,0x35,0x62,0x37,0x30,0x33,0x34,0x64,0x01,0x02,0x1a,0x00
Which translates to varint size 0x01 and therefor message size 0x13 which we could then parse to the appropriate protobuf type.
Now, the initial messages has a completely different prefix:
0x26,0x22,0x11,0x0a,0x0f,0x30,0x2e,0x31,0x36,0x2e,0x30,0x2d,0x63,0x38,0x61,0x32,0x62,0x64,0x66,0x37,0x04,0x1a,0x00
Interestingly enough, both messages look the same when counted from 3rd byte in the <= 0.15 version and counted from the 2nd byte in 0.16.
Which after another look show that this is not true but can be explained by changed protobuf definitions. So the culprit is the prefix.
TM16 vs TM15:
PREFIX 0x26  vs 0x01,0x13
Nothing in the changelog hints on what might be going on here but it looks as if the previous varint approach was dropped in tm 0.16.
We have no idea where this change is coming from and a quick "help" in riot pointed to go-wire, honestely, we have no idea on what libraries to what in the tendermint ecosystem when it comes to the socket protocol.
Can you elaborate on that?

Update: OK, figured that we can parse the first message RequestInfo when discarding the first byte and then reading the next 19 bytes (ommiting the zero-byte at the end).
So how should we know that 0x26 is the type byte for RequestInfo?

Update: this seems more an issue of changes in abci/types/messages.go how do they relate to go-wire?

Terribly sorry about this. It's actually an issue on the ABCI side. See my response here https://github.com/tendermint/abci/issues/205#issuecomment-369783104.
Readme, Changelog, and Specification are updated on abci master.
Sorry again!

Note that 0x26 is the signed varint encoding of 13, the length of your message.
See the updated section on length prefixing in the readme https://github.com/tendermint/abci#socket-tsp

Thanks for the clarification. Yeah, I've worked through the messages.go code and figured that I need to parse it as uint64 (gladly, JAVA's protobuf impl has a parseUint64 ;) ) and then shift it right by 1.
Keep rocking!


The link to the IBM QRadar DSM configuration docs is outdated (pointing to an unsupported version)

In the Partner tools with Azure Monitor integration section, the link to the IBM QRadar DSM configuration docs is outdated. It takes us to version 7.3.0 which is now unsupported.
I am not sure about which docs page should be used here, but maybe this one as a starting point:
https://www.ibm.com/docs/en/dsm?topic=options-configuring-microsoft-azure-event-hubs-communicate-qradar

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: f0269391-a3bb-5346-5597-4fb09cf0eb32
Version Independent ID: 3d039d2d-6592-4949-da05-fec57d0a5cf2
Content: Stream Azure monitoring data to event hub and external partners - Azure Monitor
Content Source: articles/azure-monitor/essentials/stream-monitoring-data-event-hubs.md
Service: azure-monitor
Sub-service: essentials
GitHub Login: @bwren
Microsoft Alias: bwren

@helderpinto Thanks for your feedback.
Assigning to content author @bwren for review.

Thanks for this. I'll get it updated.
#please-close


Add "timeout" feature

Been using this lib for a development server of a new project.  Excellent work, thank you for having something simple, straightforward and powerful.
I have a suggested feature I'd like to see.  Instead of reloading instantly on the first file change, setup a timeout that allows additional files to be affected before the reload.
This could be a simple "timeout" option added to the config, setting it to "100" would cause the server to wait 100 ms before sending a refresh after a file has changed.
This has come up as a problem quite a few times in my use case.  I've got webpack watching for changes on typescript files to compile to js, then node-sass listening for changes to the sass files and compiling to CSS.  Quite a few times I'll change CSS & TS files in the same save cycle, then when the server refreshes either the JS or CSS is a cycle behind (depending on which one compiled faster).

Hey there, @ClickSimply. I'm glad the project is achieving its goals :smile:
Thanks for the suggestion, it should be easy enough to get it done fast. It'll be released in 1.7.
As for the new option, what do you think of the name --reloadDelay and --rd?

--reloadDelay would be perfect!  Thank  you. :D

Closed by 9f67775

1.7.0 released. Please, give it a try :smile:

Hey dude, thanks for getting this update out so fast!   It's working great, much appreciated.

:+1:


Replace ClassManifest to ClassTag

ClassManifest has been deprecated as of 2.10 and replaced with ClassTag
because a warning message is displayed at compile time.

This would break binary compatibility so we need to bump a major version to accept this I think.
cc @sirthias @jrudolph

This is a duplication of my PR https://github.com/spray/spray-json/pull/216...

Same comment applies there though. I don't think we can just merge either of these.
Unless you see a way to do it?

Refs #215

Sorry to have issued duplicate PR.
The warning related to 'Unit' has already been solved with another PR, and exactly the same contents except that part. It does not matter which one you apply.

I figured that the binary compat argument doesn't hold because ClassManifest is just a type alias to ClassTag, everything should continue to work after this change (as now verified by travis as well). I added a slight cosmetic change but I think it's now ready to go.

Thanks, @magnolia-k and @zhaocon.


Create a Playwright Test that tests saving manual edits and viewing the changes inside the "View Files" menu

/bounty $10
CC @RohittCodes did some related work recently

/attempt #261


Add ensure-https workflow

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.2 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

This partially addresses #90249.
EnsureHttps.ps1 will:

Get a list of changed .yaml files in the manifests directory for a PR
For each changed file:

Check if it contains an http:// URL
If yes, for each http:// URL:

It will see if the https:// equivalent is valid
If yes, it will write out an error command

Check out an example of this workflow in my fork
I think this is a good starting point, that can be improved on with URL exclusions, and eventually be made a required workflow. To start with I'd like to run it as an optional workflow to get some feedback.
Microsoft Reviewers: Open in CodeFlow

/cc @JamieMagee

@denelon is it possible to get a review of this by someone with merge rights?

@JamieMagee I think we want to look at something other than a GitHub action to do this work. Let me see about getting one of the engineers to comment here and see what the best path forward looks like.

Thanks!
My intention with a GitHub Action was to prevent regressions by re-introducing an HTTP URL, and allow for incremental upgrades from HTTP to HTTPS as files were edited.

Yes, we've also been thinking about the other potential scenarios where we might need to make immediate changes on the back end of things, and ensuring consistency. We don't want to accidentally introduce something breaking that would be blocked, or cause other problems for authors submitting PRs. We've got work in progress to deal with consistent line endings for example.

[Policy] Blocking-Issue

In general, this is a good idea, as encrypting sites through HTTPS has many benefits. Insofar as process steps, this check could more easily be made upstream, in the manifest creation step. It could be easily integrated into YamlCreate, WinGetCreate, and Komac. And this would allow the manifest creator to decide if they want strict HTTPS checking, or want to leave HTTP links bare. (I'm not a fan of mandating HTTPS - I believe that every site should offer both if possible, and that users should be educated and free to choose.)
This implementation might be missed by many users, especially those who aren't used to checking into the PR after creating it. Also, users tend to want the validation process to output a binary yes/no answer, and this might be interpreted as a confusing "yes, but..." answer to this step.

@stephengillie I agree that adding this to the manifest creation tools would help 'shift-left' on where HTTPS is enforced. But adding this as a required workflow to PRs will prevent any new HTTP links being added, and will force PR authors to fix an HTTP URL if they otherwise edit a manifest.
I disagree that HTTPS should be optional if the server supports it. It would open up the possibility for manifest authors to perform downgrade attacks on users.
As for making it visible to PR authors, I can update the script with exit 1 if an HTTP link is found (with an HTTPS link available) which will prevent the PR from being merged.

/AzurePipelines run

I'm going to go ahead and close this PR.
We should be doing this check inside the current validation pipeline.
I put the following issue into the next release milestone:

https://github.com/microsoft/winget-pkgs/issues/90249

@denelon I'm not fussed how HTTPS is enforced, only that it is enforced. I would appreciate being kept in the loop on this. Feel free to reach out to me internally.


Bug: modcc silently ignores else clauses

Consider the pas.mod file with the following replacing the BREAKPOINT block:
BREAKPOINT {
    if (1 == 0) {
        dummy1()
    }
    else if (2 == 0) {
        dummy2()
    }
    else {
        dummy3()
    }
    i = g*(v - e)
}

PROCEDURE dummy1 { }
PROCEDURE dummy2 { }
PROCEDURE dummy3 { }

The corresponding generated (cpu) code in nrn_current() references dummy1, but not dummy2 or dummy3:
    void nrn_current() override {
        […]
        for(int i_=0; i_<n_; ++i_) {
            value_type v = vec_v[i_];
            value_type current_, i;
            if( 1== 0) {
                dummy1(i_);
            };
            i = g[i_]*(v-e[i_]);
            current_ = i;
            vec_i[i_] += current_;
        }
   }

Similarly for gpu target.

This looks like an easy fix. The printer visitor is just printing the "true branch", and the same method was cut and pasted into the cuda printer.  I will fix it now.


bower.json contains minified version

According to bower docs bower.json main section shouldn't contain minified version of js file.
Proposed fix: #1075

Merged. Thanks!


Support for translating into another language

Sorry for the delay, you changed too many lines. Idk even why you changed lines not related to your issues.
I need to test a bit and ill get back to you.

@gauthamzz, Actually there are these many changes because I think he used Prettier for formatting the code. So, that is changing the formatting of the code which Prettier is having in .prettierrc or any other rules file.

yes thats true, thats why i didnt merge till now. There are too many changes.

This PR wont be merged due to following reasons

Inactivity
Large unwanted changes in the files
When i tried the code, it broke my system and had to restart it.

I hope you understand, if you wish to make PR please only change your part. Many a commit for each change.


Every time fingerprint suite is used, even without any option, it makes the browser detectable.
To Reproduce
const { chromium: playwright } = require('playwright-extra')
const { newInjectedContext } = require('fingerprint-injector');

playwright.launch({ headless: false }).then(test)

async function test(browser) {
  const context = await newInjectedContext(browser, {}); // DETECTED
  // const context = await brower.newContext(); // UNDETECTED

  const page = await context.newPage();
  await page.goto('https://arh.antoinevastel.com/bots/areyouheadless');
  await page.screenshot({ path: 'detected.png', fullPage: true });
  await browser.close()
}

Expected behavior
Injecting the fingerprint-suite shouldn't make the browser be detected as headless.
System information:

OS: Arch Linux x86_64 - 6.3.2-arch1-1
Node.js version: v16.20.0

It seems like using the "chrome" browser ( browsers: ["chrome"] ) is the only one triggering the detection.
// headless mode
Device: desktop | Os: windows | Browser: chrome | Status: You are Chrome headless
Device: desktop | Os: windows | Browser: firefox | Status: You are not Chrome headless
Device: desktop | Os: windows | Browser: edge | Status: You are not Chrome headless

Device: desktop | Os: macos | Browser: chrome | Status: You are Chrome headless
Device: desktop | Os: macos | Browser: firefox | Status: You are not Chrome headless
Device: desktop | Os: macos | Browser: edge | Status: You are not Chrome headless
Device: desktop | Os: macos | Browser: safari | Status: You are not Chrome headless

Device: desktop | Os: linux | Browser: chrome | Status: You are Chrome headless
Device: desktop | Os: linux | Browser: firefox | Status: You are not Chrome headless
Device: desktop | Os: linux | Browser: edge | Status: You are not Chrome headless

Device: mobile | Os: android | Browser: chrome | Status: You are not Chrome headless
Device: mobile | Os: android | Browser: firefox | Status: You are not Chrome headless
Device: mobile | Os: android | Browser: edge | Status: You are not Chrome headless

Device: mobile | Os: ios | Browser: edge | Status: You are not Chrome headless
Device: mobile | Os: ios | Browser: safari | Status: You are not Chrome headless

// headfull mode
Device: desktop | Os: windows | Browser: chrome | Status: You are Chrome headless
Device: desktop | Os: windows | Browser: firefox | Status: You are not Chrome headless
Device: desktop | Os: windows | Browser: edge | Status: You are not Chrome headless

Device: desktop | Os: macos | Browser: chrome | Status: You are Chrome headless
Device: desktop | Os: macos | Browser: firefox | Status: You are not Chrome headless
Device: desktop | Os: macos | Browser: edge | Status: You are not Chrome headless
Device: desktop | Os: macos | Browser: safari | Status: You are not Chrome headless

Device: desktop | Os: linux | Browser: chrome | Status: You are Chrome headless
Device: desktop | Os: linux | Browser: firefox | Status: You are not Chrome headless
Device: desktop | Os: linux | Browser: edge | Status: You are not Chrome headless

Device: mobile | Os: android | Browser: chrome | Status: You are Chrome headless
Device: mobile | Os: android | Browser: firefox | Status: You are not Chrome headless
Device: mobile | Os: android | Browser: edge | Status: You are not Chrome headless

Device: mobile | Os: ios | Browser: edge | Status: You are not Chrome headless
Device: mobile | Os: ios | Browser: safari | Status: You are not Chrome headless

const { chromium } = require("playwright");
const { FingerprintInjector } = require("fingerprint-injector");
const { FingerprintGenerator } = require("fingerprint-generator");

async function runBrowser(device, os, browserType) {
	const browser = await chromium.launch({
		headless: false
	});

	// chrome, firefox, edge, safari

	const { fingerprint, headers } = await new FingerprintGenerator().getFingerprint({
        devices: [device],
        operatingSystems: [os],
        browsers: [browserType]
    });

    const context = await browser.newContext({
        userAgent: fingerprint.navigator.userAgent,
        colorScheme: 'dark',
        viewport: {
            width: fingerprint.screen.width,
            height: fingerprint.screen.height,
        },
        extraHTTPHeaders: {
            'accept-language': headers['accept-language'],
        },
    });

    await new FingerprintInjector().attachFingerprintToPlaywright(context, { fingerprint, headers });

    const page = await context.newPage();

    await page.goto("https://arh.antoinevastel.com/bots/areyouheadless", { waitUntil: "load"});

    const value = await page.evaluate(() => document.querySelector('#res p').textContent);

    console.log(`Device: ${device} | Os: ${os} | Browser: ${browserType} | Status: ${value}`);

    await browser.close();

}

@steinpigs thanks for this test!

any takers ?

Sorry for the delay, I actually started looking into this last week - but unfortunately didn't come to any conclusion. The 'Are you headless' website seems to utilize some kind of ML-like regression, where it collects the browser fingerprint and then sends it to the server, which decides whether the fingerprint is valid or not.
Since this is not an actual bot-protection service, the priority on this is a bit lower, but I'll definitely continue looking into this. Thanks for your patience! :)

No problem, I understand. Thank you for the update. However, I wanted to mention that the injected evasions in the fingerprint-injector compromise the anonymity of the fingerprint, rendering it unusable. This is an important factor to consider.

I'm not sure if this works here, but you should find a way to use 'new' in headless
playwright.launch({ headless: new }).then(test)

I'm not sure if this works here, but you should find a way to use 'new' in headless playwright.launch({ headless: new }).then(test)

Thanks for the inputs, but that's not the issue here.
Plus, the headless new option is only for puppeteer and not playwright : https://github.com/microsoft/playwright/blob/9bca9f1b4ff3478c20a526c8f8b41ab8ab9be6e6/packages/playwright-core/src/client/types.ts#L105

Debugged this, It is getting flagged due to webDriver property in the fingerprint being set to true.
The https://arh.antoinevastel.com/bots/areyouheadless plugin has a check
https://github.com/antoinevastel/fpscanner/blob/master/src/fpScanner.js#L119
@barjin

@abhisheksurve45 So why did not fingerprint-suite set webDirver to false?

fingerprint-injector/fingerprint-injector.js
await page.setExtraHTTPHeaders(this.onlyInjectableHeaders(headers, browserVersion));
without extraheader will pass the detection.

Can confirm @tenkuken patch works! I added accept-language to the requestHeaders array (which is an array of headers to be filtered out) and my tests with areyouheadless works both with headless: old and headless: new on puppeteer
https://github.com/apify/fingerprint-suite/blob/098d592aec3eb855a59b8ec06c123d690808e277/packages/fingerprint-injector/src/fingerprint-injector.ts#L36-L53

@barjin Are you planning a fix or customizable header settings that don't involve forking this?
The  page.on("request") approach is one way of editing the header as well. But I think in the options we should incorporate something like:
//conf:
ignoreHeaders: ['accept-language']

That way:
[...requestHeaders, ...ignoreHeaders].forEach((header) => {
         delete filteredHeaders[header];
     });

@barjin Isn't the guy from that page https://arh.antoinevastel.com/bots/areyouheadless working for Datadome a bot-detection company. Which would make this maybe a priority?

@barjin I think you have to be more specific here. I could indeed drop a PR for you but "would include hiding the headlessness without compromising the other parts of the injection" does not give much to work with. How would you define compromise?

💎 cloudgakkai is offering a $30 bounty for this issue
👉 Got a pull request resolving this? Claim the bounty by adding @algora-pbc /claim #178 in the PR body and joining algora.io

Hello everyone, I love this lib. Therefore, I'm supporting by giving bounties as CloudGakkai here.
The main goal is I want to make fingerprint-suite undetectable on puppeteer


Fix instructions for building Caddy from source

The latest release is tagged as v1.0.0-beta2 instead of 1.0.0-beta2 so the go get command in the instructions needs to be adjusted accordingly.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Introduce module imgaug.random

Codecov Report

Merging #375 into master will decrease coverage by 0.42%.
The diff coverage is 88.66%.

@@            Coverage Diff             @@
##           master     #375      +/-   ##
==========================================
- Coverage   95.53%   95.11%   -0.42%
==========================================
  Files          32       33       +1
  Lines       10509    10687     +178
==========================================
+ Hits        10039    10164     +125
- Misses        470      523      +53


Return to cart link is not working

Description
Now that the checkout and the cart are on the same domain, the return to cart link is no working anymore.

:tada: This issue has been resolved in version 4.0.7 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Update README.md

Fixed MainActivity.java to MainApplication.java

Thanks for the merge @DanielMSchmidt  - I also wanted to edit the part that said "Mostly automatic" when describing the react-native link. I think it is "Fully automatic". Because after I did that, there was nothing else to do. Initially I was confused and was thinking and looking for more to do. Am i correct?

You are, this was part of boilerplate code, thanks for extending it!
Noitidart<EMAIL_ADDRESS>schrieb am Mo., 5. Juni 2017, 00:00:

Thanks for the merge @DanielMSchmidt https://github.com/danielmschmidt

I also wanted to edit the part that said "Mostly automatic" when
describing the react-native link. I think it is "Fully automatic".
Because after I did that, there was nothing else to do. Initially I was
confused and was thinking and looking for more to do. Am i correct?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/react-native-sensors/react-native-sensors/pull/20#issuecomment-306070130,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABRm1pMlefQ6kOhJCfCFjRDPxMCkd5bJks5sAyj5gaJpZM4NvR_0
.

Thanks! I'll submit that edit now thanks for leaving it for me :)


Standby mode?

I´m using my Goodwe EM5048 with DIY battery.
I have an electricity tariff with cheap hours and expensive hours, in the VERY cheap ones I am interested in charging the battery and in the VERY expensive ones I am interested in discharging the battery. But there are some hours that are not cheap enough to upload and not expensive enough to download. I have tried setting ECO CHARGE/DISCHARGE to 0% but it charges/discharges uncontrollably. The closest thing to what I need is to put ecomode at 1% and it only draws 1A. but is there the possibility of a "standby mode" that the battery current stays at 0A?

AFAIK, the "backup mode" is exactly for that, it functions like big UPS then.
As long as there is grid power, the battery is just being charged or standby.
It discharges only when grid fails.

When I put backup mode download the battery towards the consumption of my house

Try to change the mode from PvMaster or SolarGo.
Maybe the problem from #164 is affecting you.


memdisk.py should not require write access

When building with a memdisk the memdisk.py installed file requires write access to work properly. The user of IncludeOS should not require write access to an installed file. This might also be a problem if there were multiple build jobs running at the same time sharing this resource.
A possible solution would be to copy this file to the build folder where it could have write permissions.

I'm not sure if this is what really happens so I'm trying another approach first. memdisk.py generates memdisk.asm which used to be generated to the install location (which is DEFINITELY not needed). Rectifying that now.


Update pydantic-core to 2.27.1

pydantic-core 2.27.1
Destination channel: {defaults}
Links

PKG-6222
Upstream repository
Relevant dependency PRs:

typing-extensions 4.12.2
pydantic-core 2.27.1
pydantic 2.10.3
menuinst 2.2.0 with py3.13 support for conda

Explanation of changes:

...

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_d0ew39w5lp/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:32: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_b2i2l6ozkh/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:32: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_03fvi7t28y/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:32: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found


Missing attributes in of the  element in

Description
The <link> tag in <noscript> lacks the attributes defined in head.link.push () in main.js file. It causes a problem with CORS on external files.
Steps to reproduce
Run npm run develop with this settings:
head.link.push({
    rel: 'stylesheet',
    href:
      'https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css',
    integrity: 'sha256-YLGeXaapI0/5IgZopewRJcFXomhRMlYYjugPLSyNjTY=',
    crossorigin: 'anonymous'
  });

Expected result
<noscript>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha256-YLGeXaapI0/5IgZopewRJcFXomhRMlYYjugPLSyNjTY=" crossorigin="anonymous">
</noscript>

Actual result
<noscript>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
</noscript>

Environment

Libs:
- gridsome version: 0.7.8
- @gridsome/cli version: 0.3.1

For Tooling issues:
- Node version: v10.16.0
- Platform: Windows

According to these docs we would need a new feature to support these properties (integrity, crossorigin) as they are not currently listed in "Available properties"


Fix to check gpfs type

Pull request checklist

No
Pull request type

Please check the type of change your PR introduces:

[ x] Bugfix
[ ] Feature Enhancement
[ ] Test Automation
[ ] Code Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Community Operator listing
[ ] Other (please describe):

What is the current behavior?

stat command was used to check gpfs type

What is the new behavior?

/proc/mount is used to check gpfs type

How risky is this change?

[ ] Small, isolated change
[ x] Medium, requires regression testing
[ ] Large, requires functional and regression testing

Closing as there is another PR https://github.com/IBM/ibm-spectrum-scale-csi/pull/994 raised for this.


Dashboard is blank when launched as standard cluster owner

What kind of request is this (question/bug/enhancement/feature request):
Bug
Steps to reproduce (least amount of steps as possible):

Create a standard user.
Assign the user as cluster owner of a cluster/
Login as standard user.
Go to cluster and launch 'Try Dashboard'.

Result:
Url is redirecting to 'dashboard/error'.
UI is blank

Other details that may be helpful:
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): master-2463-head- e651c7a81
Installation option (single install/HA): Single

Verified on Rancher server master-2523-head- 371ec13 , working fine now.
As a standard user is able to launch the Dashboard.
However rancher/dashboard#393 encountered which talks about page landing on /dashboard/fail-whale sometimes.


Update to the lazyledger packages instead of tendermint and the cosmos-sdk

Uses the replace directive to use the latest LazyLedger fork of the cosmos-sdk, along with manually replacing tendermint with lazyledger-core
Closes #4

Looks good to me! Wondering if we shouldn't merge in the CI changes first?

Looks good to me! Wondering if we shouldn't merge in the CI changes first?

Do you mind elaborating a bit, @tzdybal? I'm not quite sure what starport scaffolding #1 is. This branch has been tested to start a new chain, but it does not use starport for that.

Do you mind elaborating a bit, @tzdybal? I'm not quite sure what starport scaffolding #1 is. This branch has been tested to start a new chain, but it does not use starport for that.

I'm still trying to figure out the last make proto-lint failure, but then it should be g2g

I'm still trying to figure out the last make proto-lint failure, but then it should be g2g

Ok, now we're good to go. The only CI failure is because we don't have any tests.

Ok, now we're good to go. The only CI failure is because we don't have any tests.


Support array of directories

When I have the following output:
outputs:
  safar_output:
    outputSource: safar-analyze-book/safar_output_dir
    type: Directory[]

It does not copy the results to the output directory.
The following cannot even be executed:
outputs:
  safar_output:
    outputSource: safar-analyze-book/safar_output_dir
    type:
      type: array
      items: Directory

Fixed with 2739522 both cases are now supported.


Non-interactive query mode

This PR would close #242. Unit tests have not been covered yet. Thoughts on the implementation @pensivebrian?

Considering possible test cases for -Q:

Session closes for valid query
Session closes for invalid query
Valid query returns same output as execute_query output
Invalid query returns same output as execute_query output

Any others @pensivebrian?

Latest changes introduced a fix for a bug that caused crashes on exiting VIM mode and more tests. As a disclaimer—I've noticed that calling mssql-cli -Q "" with empty strings will launch the default interactive mode. We should have further discussions about expected functionality for empty quotes.

things like this don't make sense in non-interactive mode.

Refers to: mssqlcli/mssql_cli.py:184 in 3700608. [](commit_id = 370060894b4248e957d3045062a47c04d4a98eb4, deletion_comment = False)

Skip in non-interactive mode?

Refers to: mssqlcli/mssql_cli.py:188 in fba47c5. [](commit_id = fba47c52b361544dd32efed4edf292d40b405912, deletion_comment = False)

Skip in non-interactive mode?
Refers to: mssqlcli/mssql_cli.py:188 in fba47c5. [](commit_id = fba47c5, deletion_comment = False)

GitHub is having problems showing what line you're referring to—I went to the commit and line # but wasn't able to determine what you're talking about.

Some minor comments. The only product issue, it in the MssqlCli constructor, we shouldn't be spinning up the completion refreshers or anything that doesn't make sense in non-interactive mode.

Ok, will give this a shot.

@pensivebrian very curious about your thoughts with this commit, which will only set various properties in MssqlCli class if interactive mode is set. Tests have passed with these changes but I want to be sure that there aren't any unintended consequences.

Looks good. I’d still take the tool for a good test spin manually, querying and changing database to make sure it works.

My latest changes fix all known python 2 issues. So far all tests have passed, I've also successfully created builds remotely on Azure. I'm running one more just to be sure.


add markdown-it-blockdiag (like PlantUML)

I implemented live preview of blockdiag.
If you like this please merge.
Demo

refs

http://blockdiag.com/en/
https://www.npmjs.com/package/markdown-it-blockdiag

@kaishuu0123 Great! Thank you for your contribution.
I have one point to propose to change.
I think fence blocks with 3 back quotes shold be used only to show pre elements on GROWI.
So I would like you to consider replace marker from back quote to something else.
For instance, markdown-it-plantuml has openMarker/closeMarker options. But the implementation of it may be too complex a little bit.
It may be nice to use [markdown-it-fence].

@yuki-takei
markdown-it-blockdiag has been modified to use markdown-it-fence, and add marker option.
explicitly set the marker to ```.


u2fval.conf file missing from PIP install

No default u2fval.conf config file exists in a PIP install.
No default values exist for u2fval when installing form pip so the tables are not created. I am only running this to test the service and an in memory DB is perfectly acceptable  however I get the following then running u2fval client list
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: clients
which appears to be related to the lack of a config file. Also digging into the installed location of the package form pip I am not finding a conf folder or a u2fval.conf file

pip is only able to create the settings file if it has permissions to do so (which typically requires root). The default file is available in the conf/ directory of the source release .tar.gz (you can find one on the releases page of this repository), or alternatively you can just look here: https://github.com/Yubico/u2fval/blob/master/u2fval/default_settings.py

pip is being run as root, as this is being done inside a Dockerfile.
So are you saying I need the .tar.gz should not be using pip install u2fval?
From pip show u2fval I get the following
Name: u2fval
Version: 2.0.0
Summary: Standalone/WSGI U2F server implementing the U2FVAL protocol
Home-page: https://github.com/Yubico/u2fval
Author: Dain Nilsson
Author-email<EMAIL_ADDRESS>License: BSD 2 clause
Location: /usr/local/lib/python3.7/site-packages
Requires: python-u2flib-server, flask, flask-sqlalchemy
Required-by:
This is the contents of /usr/local/lib/python3.7/site-packages/u2fval

init.py
pycache
cli.py
core
core/init.py
core/pycache
default_settings.py
exc.py
jsobjects.py
model.py
transactiondb.py
view.py

There is no /conf folder or a .conf file anywhere.
To your point of looking at default_settings.py, is that actually the .conf file even though it has a .py exception? If the blank path valid for SQLALCHEMY_DATABASE_URI the default in memory SQL DB?

Or are you saying the pip does not setup the config file and that I need manually extract this file?
If so what I am to do with this file, I am not seeing any documentation about the file other than the default expected location of /etc/yubico/u2fval/u2fval.conf

Yes, the default_settings.py can simply be renamed and placed in the proper location (/etc/yubico/u2fval/u2fval.conf). The comments in that file should explain the various options.
You won't be able to use an in-memory database with the command line tool, as the database exists only for the duration of the process, so the call to u2fval db init will initialize an in-memory database, but that database will immediately be destroyed as the process ends, and your call to u2fval client list will use a new empty database each time.


Use existing GitHub account defined by GitHub android application

GH::watch should use existing GitHub account defined by GitHub android application if any exists. If more account exist we should provide dialog to select one of them.
But we have to check if token provided by this authenticator allows access to the notifications!

Won't fix as there are more android apps for github, no one is official, it may be tricky to integrate with all if they provide accounts in android


nixos: replace activationScripts 2/x

Description of changes
Replace some more relatively easy to replace activationScripts. This is the second PR of the series started here: https://github.com/NixOS/nixpkgs/pull/263203
It's part of the broader "Perlless Activation" endeavour: https://github.com/NixOS/nixpkgs/issues/267982
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@ofborg test yggdrasil nextcloud.basic26 wrappers borgbackup incron

I added shutdown.target dependencies to the sysinit services to be aligned with https://github.com/NixOS/nixpkgs/pull/271326 and converted the nextcloud service to tmpfiles.


OmniSharp server is not running

I see that issue already closed. Issue #17 but I'm still encountering this issue. I'm running osx 10.10.5 and vscode 0.10.9

I resolved this by uninstalling the Core CLR runtmes and then reinstalling without the global option It appears the Omnisharp plugin for VS Code doesn't recognize global installs.  The same was true for the Omnisharp Atom plugin. That's how I discovered the issue - because the Atom plugin specifically stated where it was looking for the runtime.
JP

Can you provide steps on how to do that?

dnvm uninstall 1.0.0-rc1-update1 -r coreclr -arch x64
dnvm uninstall 1.0.0-rc1-update1 -r mono
Then, reinstall them - without the -g option.

Unfortunately, that didn't work.

Hi, I'm sorry this issue got so stale. Now that DNX, DNVM and the like are long gone and .NET Core is here to stay, I'm going to go ahead and close this issue. Please let me know if this is still a problem for you.


Update tanka docs.

Fix/update the tanka docs.
Signed-off-by: Milan Plzik<EMAIL_ADDRESS>

PR updated to only show namespace updates via raw kubernetes objects until ksonnet lib has been introduced; PTAL.


Comment containing ' in argument list break syntax highlighting

void f(a,
       // This second argument isn't used.
       b) {
  print(a);
}

main() {
  f('hello', 'world');
}

Maybe the ' in the comment is seen as a string start?

Thanks for the report!
Going forward, we'll have a problem maintaining the syntax def file for Dart that GH uses.
As of recently, Sublime Text includes two types of syntax definition formats:

good old and busted tmLanguage
new shiny and flexible .sublime-syntax

My plan is to switch to .sublime-syntax and never look back, but that will make the tmLanguage used by GH to fall out of sync...
One idea would be to keep the tmLanguage very simple (now it tries to do fancy stuff with functions) and only ever update it for new keywords introduced into Dart.
This way, GH would still show useful highlighting for Dart code and the syntax def actually used by ST could evolve on its own.
The tmLanguage format is hard to maintain and not very flexible, so we should leave it behind.


It seems that wrappers are not supported?

Thanks for this promising library! I'm running into issues with wrappers.
Right now, I'm using ACME with two wrappers

wrappers.ObservationActionRewardWrapper
wrappers.SinglePrecisionWrapper

And they each led to an error like the following
  File "/home/wcarvalh/miniconda3/envs/omodel/lib/python3.9/site-packages/tensorflow_datasets/rlds/rlds_base.py", line 98, in build_info
    'steps': tfds.features.Dataset(step_info),
  File "/home/wcarvalh/miniconda3/envs/omodel/lib/python3.9/site-packages/tensorflow_datasets/core/features/sequence_feature.py", line 103, in __init__
    self._feature = features_dict.to_feature(feature)
  File "/home/wcarvalh/miniconda3/envs/omodel/lib/python3.9/site-packages/tensorflow_datasets/core/features/features_dict.py", line 320, in to_feature
    return FeaturesDict(value)
  File "/home/wcarvalh/miniconda3/envs/omodel/lib/python3.9/site-packages/tensorflow_datasets/core/features/features_dict.py", line 134, in __init__
    self._feature_dict = {k: to_feature(v) for k, v in feature_dict.items()}
  File "/home/wcarvalh/miniconda3/envs/omodel/lib/python3.9/site-packages/tensorflow_datasets/core/features/features_dict.py", line 134, in <dictcomp>
    self._feature_dict = {k: to_feature(v) for k, v in feature_dict.items()}
  File "/home/wcarvalh/miniconda3/envs/omodel/lib/python3.9/site-packages/tensorflow_datasets/core/features/features_dict.py", line 322, in to_feature
    raise ValueError('Feature not supported: {}'.format(value))
ValueError: Feature not supported: <bound method ObservationActionRewardWrapper.observation_spec of <acme.wrappers.observation_action_reward.ObservationActionRewardWrapper object at 0x7fafcfedf250>>
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program

Can I guess that I cannot use these wrappers and will need to load the appropriate transformations to the data when loading?
Here is a more full example of the code
  environment = make_custom_env()

  nepisodes = 100
  dataset_config = tfds.rlds.rlds_base.DatasetConfig(
      name=FLAGS.tasks_file,
      observation_info=environment.observation_spec(),
      action_info=environment.action_spec(),
      reward_info=environment.reward_spec(),
      discount_info=environment.discount_spec())

    with envlogger.EnvLogger(
      environment,
      backend = tfds_backend_writer.TFDSBackendWriter(  # <----- where error occurs
        data_directory='.',
        split_name='train,
        max_episodes_per_file=nepisodes,
        ds_config=dataset_config)) as environment:
        ....
      ```

Hi Wilka,
In general, in RLDS we usually recommend to store the raw information from the environment and, as you say, apply the transformation when reading.
If for wahtever reason that is not desirable (for example, the wrapper adds information that won't be available on retrieval), you probably need to convert the environment specs into something that the TFDS features would understand. For that, you might be able to use some of the utilities in the config_generator module, in particular this one.


ENH: Show all types of triggers in activity_view

Still working on this, but wanted to show the progress.
When viewing an activity only the laps triggered by an manual action (e.g. the lap button) are shown. I use the workout functionality of my watch to structure running workouts. E.g. 10 minutes running, 2 minutes rest. These sections are recorded as laps in the FIT file. Showing them in the activity_view makes it easier to compare these sections.
What where your reasons to only show manual triggered laps?

[ ] tests added / passed
[x] Ensure pre-commit formatting checks are passing
[x] changelog entry

Your use case sounds totally valid. I actually never made use of the automatic lap functionality. With the changes provided in this PR many of my activities will be displayed similar to this one:

(screenshot of `2020-08-20-09-34-33.fit` demo hiking activity)
Some sports on my device seem to automatically trigger a lap every 1000 meters, which makes it hard to find the manual laps in the plots. Because I never had a meaningful use case of the auto laps, I decided to stick with trigger="manual".
As a potential solution to this, extending the "Show Laps" button by using e.g. CheckboxButtonGroup with two buttons could be suitable. The first button could be "Manual Laps" and the second "Auto Laps" or similar.
As far as I remember all types of trigger are parsed anyway, so this approach would just require modifications in the plot_time_series.py file. What do you think?

Your use case sounds totally valid. I actually never made use of the automatic lap functionality. With the changes provided in this PR many of my activities will be displayed similar to this one:

(screenshot of 2020-08-20-09-34-33.fit demo hiking activity)
Some sports on my device seem to automatically trigger a lap every 1000 meters, which makes it hard to find the manual laps in the plots. Because I never had a meaningful use case of the auto laps, I decided to stick with trigger="manual".

This is indeed a bit messy, I tried to the lap markers an color based on the type of trigger. That helps making it easier to distinguish the markers (Colors are not final):

As a potential solution to this, extending the "Show Laps" button by using e.g. CheckboxButtonGroup with two buttons could be suitable. The first button could be "Manual Laps" and the second "Auto Laps" or similar.

I tried this, Extending the CheckBoxButtonGroup was easy, But I could not figure out how to hide some lines based on type:
in the _add_laps_to_plot function I changed the line = plot.line() to
line = plot.line([x_value, x_value], [y_values.min() - 1, y_values.max() + 1], tags=[lap.trigger], color=lap_colors[lap.trigger])

Now I should be able to use the JavaScript callback _add_button_to_toggle_laps to disable the lap markers based on the tag. But could not figure out what objects represent the plots.

Coloring the lap lines seems like a good idea. Especially since we could also color the markers on leaflet map in the same color, but lets focus on the button first.
Also, feel free to push your changes. It would be easier for me to follow your progress.
Let me try to explain the javascript snippet here:
for (line in laps) {                                    // purpose of this loop is just robustness
    laps[line].visible = false;                         // hide all plot lines
    if (typeof markerGroup != "undefined") {            // markerGroup holds all markers which are rendered on the leaflet map
        markerGroup.removeFrom(map);                    // remove all leaflet markers
        }
}
for (i in cb_obj.active) {                              // this loop iterates over the given + active buttons
    if (cb_obj.active[i] == 0) {                        // read 'if button 0 is active'
        for (line in laps) {                            // loop over all lap-lines
            laps[line].visible = true;                  // make lap line visible
            if (typeof markerGroup != "undefined") {    // read 'if markerGroup is defined'
                markerGroup.addTo(map);                 // add all leaflet markers to map
                }
        }
    }
}

Let's ignore the markerGroup thing for now - I could also take care of adding/removing the leaflet markers, when clicking the buttons. laps in this snippet corresponds to the variable lap_lines within _add_button_to_toggle_laps. We could for example turn lap_lines into a dict with the given values of trigger as keys by adjusting the _add_laps_to_plot function. Then the relevant parts of the second for loop could look something like:
for (i in cb_obj.active) {
    if (cb_obj.active[i] == 0) {            // if button 0 is active
        for (line in laps['manual']) {      // loop over all manual laps
            laps[line].visible = true;      // and make them visible
        }
    } else if (cb_obj.active[i] == 1) {     // if button 1 is active
        for (line in laps['auto']) {        // loop over all auto laps
            laps[line].visible = true;      // and make them visible
        }
    }
}

But that is just one way this could be implemented, I didn't test it and there are probably many more. Let me know if this doesn't make sense.

btw, what is the value stored in trigger of your "automatically triggered laps"? In my demo activity I found

manual
distance and
session_end
Let us exclude the session_end trigger, okay? I don't think there is value in displaying it.

In case you have another e.g. auto trigger, there would be three buttons, right?

fitparse recognizes multiple lap triggers
0: 'manual', // Lap button on device pushed
1: 'time', // Auto lap based on time, my use case
2: 'distance', // Auto lap based on distance, as in your example, can also be used in workouts
// below I am not sure when they are used, probably for [this](https://www.dcrainmaker.com/2011/08/look-at-garmin-auto-lap-by-position-for.html) feature
3: 'position_start',
4: 'position_lap',
5: 'position_waypoint',
6: 'position_marked',
7: 'session_end',
8: 'fitness_equipment', // When switching from equipment mid workout(?)

This list is not complete though, In the workoutizer I get an unknown lap on every activity, It mostly looks like an session_end lap, but has an unknown ID for fitparse.
fitparse also has an autolap_trigger Which I think is used when describing the activity in the FIT file. Which is a nice list of types of laps that can be triggered automatically
We could add multiple buttons for every lap type, but results in a bit messy interface, I think 2 buttons "Manual Laps" and "Auto Laps" are better. Where the "Auto Laps" buttons shows/hides the autolap_trigger as linked above

Agree, having two buttons should be sufficient. I think "Manual Lap" could simply contain the manual triggered ones and "Auto Lap" all the remaining ones. That way nobody should ever miss any lap.

Just committed an proof of concept version, lots of problems still:

[ ] end_session marker stil shown on page reload
[ ] all MarkerGroup are toggled when clicking buttons
[ ] Colorize MarkerGroup based on lap type
[ ] Activating the lap lines should be an function
[ ] Toggle all automatic laps, not only distance

Looking good 👍
Just a few things:

I realized that the lap data is read from db twice when the activity page is opened. First here and then again here. It should be viable to just read them once, namely in the activity_views.py file and then pass laps to the plot_time_series() function. This should bring some (little) performance improvements and we do not need to specify which triggers we want to exclude twice. Could you give this a try?
Would you be okay with hiding the auto laps as default? Because, as mentioned above, this currently looks a bit messy for some activities.
Maybe a more subtle color for the auto laps would be good?
With regards to the markerGroup: We would need to define two groups instead of the single markerGroup. Something like autoLapGroup and manualLapGroup on which we would call .addTo(map) and .removeFrom(map) when the corresponding button is enabled/disabled. I think it would be best if we would also have two different LapMarkers with the associated color, instead of the single one we currently have here.

Let me know if you need more help or want me to take care of the markerGroup thing. Btw, did you allow pushes to your branch in this PR?

Looking good
Just a few things:

I realized that the lap data is read from db twice when the activity page is opened. First here and then again here. It should be viable to just read them once, namely in the activity_views.py file and then pass laps to the plot_time_series() function. This should bring some (little) performance improvements and we do not need to specify which triggers we want to exclude twice. Could you give this a try?

Looks possible, bit maybe better in another bug/PR?

Would you be okay with hiding the auto laps as default? Because, as mentioned above, this currently looks a bit messy for some activities.

Currently all known laps are rendered in the bokeh plots by default, I will look into changing this.

Maybe a more subtle color for the auto laps would be good?
As I have no trust in UI design skills I was thinking about using the Bokeh palletes Maybe something like the set3 pallette?

With regards to the markerGroup: We would need to define two groups instead of the single markerGroup. Something like autoLapGroup and manualLapGroup on which we would call .addTo(map) and .removeFrom(map) when the corresponding button is enabled/disabled. I think it would be best if we would also have two different LapMarkers with the associated color, instead of the single one we currently have here.

Looks like a good approch, will check.

Let me know if you need more help or want me to take care of the markerGroup thing. Btw, did you allow pushes to your branch in this PR?
I dont know, where do I set this?

Great! Seems like this implements almost everything needed for showing the different triggers.
I like the idea of using the bokeh palettes for coloring. I think it could also be a good idea to use the colors from the same palette for coloring the lines in the bokeh plots. But this could of course be a different PR. If you want you could also do the coloring of the leaflet lap markers in another PR.

did you allow pushes to your branch in this PR?

I dont know, where do I set this?

I don't think we still need it, but leaving this here just for reference:
https://docs.github.com/en/github/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork#enabling-repository-maintainer-permissions-on-existing-pull-requests
In case this PR is "ready for review", just ensure to add a changelog entry. Covering this new functionality with tests would of course be awesome, but I assume this could be quite tricky.

I think all the needed functionality is implemented, there are some things I dont like:

The big dictionary defining all LapMarkers in activity_map.html, only the color is different, it should be possible to use less code for this.
In the same dictionary I would like to directly use the color pallete as in plot_time_series.py
Is there are nicer way then al those if lap.trigger  == manual statements?

@gotiniens Are you still planning to finish this up? If not I would take over.

@fgebhart Sorry for being quite for a while, live got busy. great that you where able to merge and finish :)


Get 'wheel torch'error when run 'pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html' command

As title said, when i run pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html  command, I get the following error:
ERROR: Wheel 'torch' located at /tmp/pip-unpack-n66hmakw/torch-1.10.1+cu111-cp38-cp38-linux_x86_64.whl is invalid.
I have tried pip cache purge and run the command again, but still get the same error. How can i fixed the problem ?

I did not have this problem according to the download method in config. You can refer to the pytorch official website (https://pytorch.org/get-started/previous-versions/).

I will close it for now. Feel free to re-open it for more questions!


Change wording in prompt for URL

PREVIEW generator: The generator prompts for a URL. The URL prompt comes before the selection of components. The prompt is:
"The URL where you will host this tab"
If I am not building a tab, this prompt is confusing.

Thanks @pschaeflein! Very good observation! Will look into it.


Many small optimizations to scalar Poseidon

Effect on scalar Poseidon runtimes on my Skylake:
 fast-8    1.40µs -> 1.08µs  (-23%)
naive-8    1.50µs -> 1.28µs  (-15%)
 fast-12   2.27µs -> 1.82µs  (-20%)
naive-12   2.76µs -> 2.57µs  (- 7%)

There are 7 changes:

When performing naive MDS multiplication, the accumulator always fits in 96-bits, so this PR changes the reduction from u128 to a reduction from u96.
When performing the inner product in mds_partial_layer_fast, do not reduce the elementwise products; instead, only reduce the sum.
When adding round constants, remove redundant canonicalization.
In mds_partial_layer_fast, delay using state[0] for as long as possible; this shortens the dependency chain.
Stop special-casing the last iteration of the loop in partial_rounds_fast. This PR appends a round constant of 0, which is equivalent and results in smaller code size.
Use multiply-accumulate wherever possible to lower the number of reductions.
Transpose FAST_PARTIAL_ROUND_INITIAL_MATRIX to ease interleaving of dependency chains.

Effect on scalar Poseidon runtimes on my Skylake:
 fast-8    1.40µs -> 1.08µs  (-23%)
naive-8    1.50µs -> 1.28µs  (-15%)
 fast-12   2.27µs -> 1.82µs  (-20%)
naive-12   2.76µs -> 2.57µs  (- 7%)

There are 7 changes:
1. When performing naive MDS multiplication, the accumulator always fits in 96-bits, so this PR changes the reduction from u128 to a reduction from u96.

2. When performing the inner product in `mds_partial_layer_fast`, do not reduce the elementwise products; instead, only reduce the sum.

3. When adding round constants, remove redundant canonicalization.

4. In `mds_partial_layer_fast`, delay using `state[0]` for as long as possible; this shortens the dependency chain.

5. Stop special-casing the last iteration of the loop in `partial_rounds_fast`. This PR appends a round constant of 0, which is equivalent and results in smaller code size.

6. Use `multiply-accumulate` wherever possible to lower the number of reductions.

7. Transpose `FAST_PARTIAL_ROUND_INITIAL_MATRIX` to ease interleaving of dependency chains.

@nbgl could you please explain how these ideas are found? Ay profiling ? manual analysis?


impl. Size()

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

39 of 43 (90.7%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.4%) to 94.823%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

table.go
28
32
87.5%

Totals

Change from base Build<PHONE_NUMBER>:
0.4%

Covered Lines:
1044

Relevant Lines:
1101

💛  - Coveralls


Can't copy sheet's chart when using sheet copy function

NPOI Version
<IP_ADDRESS> for  .net
File Type

XLSX

Upload the Excel File
[
test.zip
](url)
Reproduce Steps
Issue Description
Here are issues when copy the sheet which has charts.

Using IWorkbook.CloneSheet(sheet_index)

Open Workbook which has sheet , it has some charts.
Call IWorkbook.CloneSheet(sheet_index) function.
Save and close.
Open in excel, show message file is broken. excel try to fix it. after fix finish. Charts are missing in copied sheet.

-Using ISheet.CopyTo(wb,name,true,true)

Open Workbook which has sheet , it has some charts.
Call ISheet.CopyTo(wb,name,true,true) function.
Save and close.
Open in excel, it open normally, but copied sheet's charts are lost.

duplicate with #1300