Pour Event always for tap4 even when using other flow meter

Hello,
I have kept (and reverted to default configuration) to 4 taps. Each pour is detected to be coming from tap 4. I know that I used the right GPIO (as now that I reverted to default configuration and files the 5 taps is not triggering the counter anymore). So there seems to be something in the flow_meter.py.
Anyone can help me?
Thanks!
Fred
2020-04-13 13:22:23,885 flowmeter    INFO     --- REGISTERING-FULL-POUR   0.848888888889 vs 0.075
2020-04-13 13:22:23,888 flowmeter    INFO     POUR this pour was 0.0 pints (thisPour=0.0 vs totalPour=0.848888888889
Record: Tap 4 Volume 9.144 Percentage: 77.14
2020-04-13 13:22:23,926 flowmeter    INFO     Database updated: 4 1.794.
2020-04-13 13:22:23,937 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap4/value | value: 77.14
2020-04-13 13:22:23,945 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap4/beverage | value: NEIPA
2020-04-13 13:22:23,948 flowmeter    INFO     Pour processing complete. Reseting pour of tap 4 amount to 0.0
2020-04-13 13:23:13,071 influxdb_client INFO     Influx update pushed. temperature = 73.7366
2020-04-13 13:24:14,910 influxdb_client INFO     Influx update pushed. temperature = 73.625
2020-04-13 13:25:16,750 influxdb_client INFO     Influx update pushed. temperature = 73.625

In fact what I can see is that it is always the last initialized keg that is counting.
Example if I keep 4 kegs defined all inputs will count for keg 4. If I leave 3 kegs (commenting keg 5 in the config file), then it's always keg 3 that is counted. Even the flow sensor for keg 4 does not trigger counting anymore.

Hello,
Is there anyone who can help me
with this? It’s the only missing part to be able to get it work for me. I am not sure if I did anything wrong but really no matter which pin is used it seems to refer to the same object. I changed the callback function to a dummy one and I can get the right pin number. But I am really not good in Python to understand the problem.
Cheers,
Fred

Hey Fred. I’ll try to test this tomorrow and let you know what I think.
On Sat, Apr 18, 2020 at 9:34 AM farcouet<EMAIL_ADDRESS>wrote:

Hello,
Is there anyone who can help me
with this? It’s the only missing part to be able to get it work for me. I
am not sure if I did anything wrong but really no matter which pin is used
it seems to refer to the same object. I changed the callback function to a
dummy one and I can get the right pin number. But I am really not good in
Python to understand the problem.
Cheers,
Fred
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/bgulla/boozer/issues/23#issuecomment-615872839, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAUSQM2TOMNFAWDS7IMHKXTRNGT7VANCNFSM4MG6RJIA
.

--
Brandon

Hello Brandon,
Ok thanks let me know if you want me to send some logs.
Cheers,
Fred

Could you guys upload some logs? And perhaps a picture of your wiring setup?
On Tue, Apr 28, 2020 at 2:01 AM drzuki<EMAIL_ADDRESS>wrote:

i may be having the same problem except i only get from tap 2. I think it
could be a problem with my wiring as no matter what GPIO pin i connect to,
it pulls pulls from tap 2. I'm very much new to the wiring aspect of this.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/bgulla/boozer/issues/23#issuecomment-620398471, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAUSQM6AQ2N4WWZ663JC6VTROZWKJANCNFSM4MG6RJIA
.

--
Brandon

Hello,
Ok I am going to upload logs soon with added logging. Here’s a picture of the wiring. All black from flow going to gnd, all red to +5v and all yellow going to it’s gpio with a 10k pull-up resistor to 3.3v. So they are independent. If I enable 1 tap the it’s ok. If I enable 2 taps then it pours from tap 2. If going to 3 then it’s tap 3... So it’s always the last one to be initialized that is used.
Cheers,
Fred

sorry closed by mistake

Here is the log with 4 taps enabled. The pouring is done from two different taps (just triggering with blowing in the flow meter to avoid large logs).
2020-04-28 07:23:41,357 root         INFO     config: MQTT enabled
2020-04-28 07:23:41,358 root         INFO     config: INFLUXDB enabled
2020-04-28 07:23:41,359 root         INFO     about to configure influx
2020-04-28 07:23:41,391 root         INFO     influxdb component initialized
2020-04-28 07:23:41,392 root         INFO     TEMPERATURE_ENABLED = True
2020-04-28 07:23:41,393 root         INFO     setting up ds18b20 sensor
2020-04-28 07:23:41,393 beer_temps   INFO     beertemps initializing
2020-04-28 07:23:41,420 beer_temps   INFO     discovered sensor id 28-80000026c5e7
2020-04-28 07:23:41,421 root         INFO     TEMPERATURE_ENABLED = True
2020-04-28 07:23:41,422 root         INFO     Tap : 1 Setting capacity to :5 gpio_pin : tap1_gpio_pin
2020-04-28 07:23:41,423 root         INFO     Tap 1: Setting capacity to 5
2020-04-28 07:23:41,423 flowmeter    INFO     Flowmeter tap_id: 1 pin number: 13
2020-04-28 07:23:41,424 root         INFO     Test
2020-04-28 07:23:41,424 root         INFO     Try Tap : 1 pin: 13 config: <ConfigParser.ConfigParser instance at 0x756e7b98>
2020-04-28 07:23:41,508 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap1/value | value: 100.0
2020-04-28 07:23:41,521 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap1/beverage | value: Cidre
2020-04-28 07:23:41,523 root         INFO     Tap : 2 Setting capacity to :5 gpio_pin : tap2_gpio_pin
2020-04-28 07:23:41,524 root         INFO     Tap 2: Setting capacity to 5
2020-04-28 07:23:41,524 flowmeter    INFO     Flowmeter tap_id: 2 pin number: 14
2020-04-28 07:23:41,525 root         INFO     Test
2020-04-28 07:23:41,525 root         INFO     Try Tap : 2 pin: 14 config: <ConfigParser.ConfigParser instance at 0x756e7b98>
2020-04-28 07:23:41,538 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap2/value | value: 100.0
2020-04-28 07:23:41,578 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap2/beverage | value: Blanche
2020-04-28 07:23:41,580 root         INFO     Tap : 3 Setting capacity to :5 gpio_pin : tap3_gpio_pin
2020-04-28 07:23:41,581 root         INFO     Tap 3: Setting capacity to 5
2020-04-28 07:23:41,581 flowmeter    INFO     Flowmeter tap_id: 3 pin number: 15
2020-04-28 07:23:41,582 root         INFO     Test
2020-04-28 07:23:41,582 root         INFO     Try Tap : 3 pin: 15 config: <ConfigParser.ConfigParser instance at 0x756e7b98>
2020-04-28 07:23:41,614 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap3/value | value: 100.0
2020-04-28 07:23:41,646 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap3/beverage | value: Erable
2020-04-28 07:23:41,647 root         INFO     Tap : 4 Setting capacity to :5 gpio_pin : tap4_gpio_pin
2020-04-28 07:23:41,648 root         INFO     Tap 4: Setting capacity to 5
2020-04-28 07:23:41,648 flowmeter    INFO     Flowmeter tap_id: 4 pin number: 16
2020-04-28 07:23:41,649 root         INFO     Test
2020-04-28 07:23:41,649 root         INFO     Try Tap : 4 pin: 16 config: <ConfigParser.ConfigParser instance at 0x756e7b98>
2020-04-28 07:23:41,731 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap4/value | value: 59.5175
2020-04-28 07:23:41,754 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap4/beverage | value: NEIPA
2020-04-28 07:23:41,756 root         INFO     Tap : 5 Setting capacity to :5 gpio_pin : tap5_gpio_pin
2020-04-28 07:23:41,757 root         INFO     Tap 5: Setting capacity to 5
2020-04-28 07:23:41,757 flowmeter    INFO     def get_pin : 13
2020-04-28 07:23:41,760 flowmeter    INFO     def get_pin : 13
2020-04-28 07:23:41,761 flowmeter    INFO     event-bus: registered tap 1 successfully self.pin 13...
2020-04-28 07:23:41,762 flowmeter    INFO     Tap[1] Pour Event: 0.002 pints.
2020-04-28 07:23:41,762 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8> tap_obj: <flowmeter.FlowMeter instance at 0x756f2fd0>
2020-04-28 07:23:41,763 flowmeter    INFO     event-bus: registered tap 1successfully
2020-04-28 07:23:41,764 root         INFO     GPIO.add_event: 13 tap: <flowmeter.FlowMeter instance at 0x756f2fd0> self.register_tap: None
2020-04-28 07:23:41,765 flowmeter    INFO     def get_pin : 14
2020-04-28 07:23:41,766 flowmeter    INFO     def get_pin : 14
2020-04-28 07:23:41,767 flowmeter    INFO     event-bus: registered tap 2 successfully self.pin 14...
2020-04-28 07:23:41,768 flowmeter    INFO     Tap[2] Pour Event: 0.002 pints.
2020-04-28 07:23:41,770 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8> tap_obj: <flowmeter.FlowMeter instance at 0x756f2f80>
2020-04-28 07:23:41,771 flowmeter    INFO     event-bus: registered tap 2successfully
2020-04-28 07:23:41,771 root         INFO     GPIO.add_event: 14 tap: <flowmeter.FlowMeter instance at 0x756f2f80> self.register_tap: None
2020-04-28 07:23:41,771 flowmeter    INFO     def get_pin : 15
2020-04-28 07:23:41,772 flowmeter    INFO     def get_pin : 15
2020-04-28 07:23:41,773 flowmeter    INFO     event-bus: registered tap 3 successfully self.pin 15...
2020-04-28 07:23:41,773 flowmeter    INFO     Tap[3] Pour Event: 0.002 pints.
2020-04-28 07:23:41,776 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8> tap_obj: <flowmeter.FlowMeter instance at 0x756f2f58>
2020-04-28 07:23:41,777 flowmeter    INFO     event-bus: registered tap 3successfully
2020-04-28 07:23:41,778 root         INFO     GPIO.add_event: 15 tap: <flowmeter.FlowMeter instance at 0x756f2f58> self.register_tap: None
2020-04-28 07:23:41,780 flowmeter    INFO     def get_pin : 16
2020-04-28 07:23:41,781 flowmeter    INFO     def get_pin : 16
2020-04-28 07:23:41,782 flowmeter    INFO     event-bus: registered tap 4 successfully self.pin 16...
2020-04-28 07:23:41,783 flowmeter    INFO     Tap[4] Pour Event: 0.002 pints.
2020-04-28 07:23:41,783 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8> tap_obj: <flowmeter.FlowMeter instance at 0x756f2440>
2020-04-28 07:23:41,784 flowmeter    INFO     event-bus: registered tap 4successfully
2020-04-28 07:23:41,784 root         INFO     GPIO.add_event: 16 tap: <flowmeter.FlowMeter instance at 0x756f2440> self.register_tap: None

| __ ) / _ \ / _ __  / |  _ \
|  _ | | | | | | |/ /|  | | |) |
| |) | || | || / /| ||  _ <
|/ _/ _/__|_____|| _\
+---------------+--------------+--------+
|      File     |   Filepath   | Exists |
+---------------+--------------+--------+
|    Database   | ./db.sqlite  |  True  |
| Configuration | ./config.ini |  True  |
+---------------+--------------+--------+
+-------------+----------+
|   Feature   |  Status  |
+-------------+----------+
|   Twitter   | disabled |
|     Mqtt    | enabled  |
| Temperature | enabled  |
|    Slack    | disabled |
|  Scrollphat | disabled |
+-------------+----------+
2020-04-28 07:23:41,836 flowmeter    INFO     def get_pin : 13
2020-04-28 07:23:41,838 flowmeter    INFO     def get_pin : 14
2020-04-28 07:23:41,840 flowmeter    INFO     def get_pin : 15
2020-04-28 07:23:41,841 flowmeter    INFO     def get_pin : 16
+-----+------+--------------------+----------+------------------+
| Tap | Beer | Capacity (Gallons) | GPIO Pin | Volume Remaining |
+-----+------+--------------------+----------+------------------+
|  1  |  C   |         5          |    13    |      100.0       |
|  2  |  B   |         5          |    14    |      100.0       |
|  3  |  E   |         5          |    15    |      100.0       |
|  4  |  N   |         5          |    16    |     59.5175      |
+-----+------+--------------------+----------+------------------+
+----------+----------------+
|   Key    |     Value      |
+----------+----------------+
| influxdb |    enabled     |
| database |     boozer     |
|   host   | <IP_ADDRESS> |
|   port   |      8086      |
| username |      None      |
| password |      None      |
+----------+----------------+
+------------+----------------+
|  MQTT-Key  |   MQTT-Value   |
+------------+----------------+
|   broker   | <IP_ADDRESS> |
|    port    |      1883      |
| Connected? |   Connected    |
+------------+----------------+
+-------------+-------------+
|    Sensor   | Temperature |
+-------------+-------------+
| temperature |   67.325°   |
+-------------+-------------+
2020-04-28 07:23:43,728 flowmeter    INFO     Boozer Intialized! Waiting for pours. Drink up, be merry!
2020-04-28 07:23:48,567 flowmeter    INFO     event-bus: registered tap 4 successfully self.pin 16...
2020-04-28 07:23:48,569 flowmeter    INFO     Tap[4] Pour Event: 0.002 pints.
2020-04-28 07:23:48,570 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8> tap_obj: <flowmeter.FlowMeter instance at 0x756f2440>
2020-04-28 07:23:48,571 flowmeter    INFO     event-bus: registered tap 4successfully
2020-04-28 07:23:48,650 flowmeter    INFO     event-bus: registered tap 4 successfully self.pin 16...
2020-04-28 07:23:48,651 flowmeter    INFO     Tap[4] Pour Event: 0.004 pints.
2020-04-28 07:23:48,652 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8> tap_obj: <flowmeter.FlowMeter instance at 0x756f2440>
2020-04-28 07:23:48,653 flowmeter    INFO     event-bus: registered tap 4successfully
2020-04-28 07:23:48,698 flowmeter    INFO     event-bus: registered tap 4 successfully self.pin 16...
2020-04-28 07:23:48,699 flowmeter    INFO     Tap[4] Pour Event: 0.007 pints.
2020-04-28 07:23:48,700 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8> tap_obj: <flowmeter.FlowMeter instance at 0x756f2440>
2020-04-28 07:23:48,701 flowmeter    INFO     event-bus: registered tap 4successfully
2020-04-28 07:23:48,737 flowmeter    INFO     event-bus: registered tap 4 successfully self.pin 16...
2020-04-28 07:23:48,738 flowmeter    INFO     Tap[4] Pour Event: 0.009 pints.
2020-04-28 07:23:48,739 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8> tap_obj: <flowmeter.FlowMeter instance at 0x756f2440>
2020-04-28 07:23:48,740 flowmeter    INFO     event-bus: registered tap 4successfully
2020-04-28 07:23:48,776 flowmeter    INFO     event-bus: registered tap 4 successfully self.pin 16...
2020-04-28 07:23:48,777 flowmeter    INFO     Tap[4] Pour Event: 0.011 pints.
2020-04-28 07:23:48,778 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8> tap_obj: <flowmeter.FlowMeter instance at 0x756f2440>
2020-04-28 07:23:48,779 flowmeter    INFO     event-bus: registered tap 4successfully
2020-04-28 07:23:48,822 flowmeter    INFO     event-bus: registered tap 4 successfully self.pin 16...
2020-04-28 07:23:48,824 flowmeter    INFO     Tap[4] Pour Event: 0.013 pints.
2020-04-28 07:23:48,825 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8> tap_obj: <flowmeter.FlowMeter instance at 0x756f2440>
2020-04-28 07:23:48,826 flowmeter    INFO     event-bus: registered tap 4successfully
2020-04-28 07:23:48,899 flowmeter    INFO     event-bus: registered tap 4 successfully self.pin 16...
2020-04-28 07:23:48,901 flowmeter    INFO     Tap[4] Pour Event: 0.016 pints.
2020-04-28 07:23:48,902 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8> tap_obj: <flowmeter.FlowMeter instance at 0x756f2440>
2020-04-28 07:23:48,902 flowmeter    INFO     event-bus: registered tap 4successfully
2020-04-28 07:24:28,586 flowmeter    INFO     event-bus: registered tap 4 successfully self.pin 16...
2020-04-28 07:24:28,587 flowmeter    INFO     Tap[4] Pour Event: 0.016 pints.
2020-04-28 07:24:28,588 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8> tap_obj: <flowmeter.FlowMeter instance at 0x756f2440>
2020-04-28 07:24:28,589 flowmeter    INFO     event-bus: registered tap 4successfully
2020-04-28 07:24:28,673 flowmeter    INFO     event-bus: registered tap 4 successfully self.pin 16...
2020-04-28 07:24:28,674 flowmeter    INFO     Tap[4] Pour Event: 0.018 pints.
2020-04-28 07:24:28,675 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75904eb8>

Now replacing the function called by the interrupts and blowing in the flow meter in the same order.
#GPIO.add_event_detect(tap.get_pin(), GPIO.RISING, callback=lambda *a: self.register_tap(tap), bouncetime=20)
GPIO.add_event_detect(tap.get_pin(), GPIO.RISING, callback=my_callback , bouncetime=20)
root@raspberrypi:/boozer# ./boozer.py
2020-04-28 07:26:43,057 root         INFO     config: MQTT enabled
2020-04-28 07:26:43,058 root         INFO     config: INFLUXDB enabled
2020-04-28 07:26:43,058 root         INFO     about to configure influx
2020-04-28 07:26:43,083 root         INFO     influxdb component initialized
2020-04-28 07:26:43,084 root         INFO     TEMPERATURE_ENABLED = True
2020-04-28 07:26:43,084 root         INFO     setting up ds18b20 sensor
2020-04-28 07:26:43,085 beer_temps   INFO     beertemps initializing
2020-04-28 07:26:43,112 beer_temps   INFO     discovered sensor id 28-80000026c5e7
2020-04-28 07:26:43,113 root         INFO     TEMPERATURE_ENABLED = True
2020-04-28 07:26:43,113 root         INFO     Tap : 1 Setting capacity to :5 gpio_pin : tap1_gpio_pin
2020-04-28 07:26:43,114 root         INFO     Tap 1: Setting capacity to 5
2020-04-28 07:26:43,114 flowmeter    INFO     Flowmeter tap_id: 1 pin number: 13
2020-04-28 07:26:43,114 root         INFO     Test
2020-04-28 07:26:43,115 root         INFO     Try Tap : 1 pin: 13 config: <ConfigParser.ConfigParser instance at 0x75734b20>
2020-04-28 07:26:43,128 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap1/value | value: 100.0
2020-04-28 07:26:43,143 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap1/beverage | value: Cidre
2020-04-28 07:26:43,145 root         INFO     Tap : 2 Setting capacity to :5 gpio_pin : tap2_gpio_pin
2020-04-28 07:26:43,145 root         INFO     Tap 2: Setting capacity to 5
2020-04-28 07:26:43,146 flowmeter    INFO     Flowmeter tap_id: 2 pin number: 14
2020-04-28 07:26:43,146 root         INFO     Test
2020-04-28 07:26:43,146 root         INFO     Try Tap : 2 pin: 14 config: <ConfigParser.ConfigParser instance at 0x75734b20>
2020-04-28 07:26:43,170 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap2/value | value: 100.0
2020-04-28 07:26:43,181 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap2/beverage | value: Blanche
2020-04-28 07:26:43,182 root         INFO     Tap : 3 Setting capacity to :5 gpio_pin : tap3_gpio_pin
2020-04-28 07:26:43,183 root         INFO     Tap 3: Setting capacity to 5
2020-04-28 07:26:43,183 flowmeter    INFO     Flowmeter tap_id: 3 pin number: 15
2020-04-28 07:26:43,183 root         INFO     Test
2020-04-28 07:26:43,184 root         INFO     Try Tap : 3 pin: 15 config: <ConfigParser.ConfigParser instance at 0x75734b20>
2020-04-28 07:26:43,223 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap3/value | value: 100.0
2020-04-28 07:26:43,243 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap3/beverage | value: Erable
2020-04-28 07:26:43,245 root         INFO     Tap : 4 Setting capacity to :5 gpio_pin : tap4_gpio_pin
2020-04-28 07:26:43,245 root         INFO     Tap 4: Setting capacity to 5
2020-04-28 07:26:43,245 flowmeter    INFO     Flowmeter tap_id: 4 pin number: 16
2020-04-28 07:26:43,246 root         INFO     Test
2020-04-28 07:26:43,246 root         INFO     Try Tap : 4 pin: 16 config: <ConfigParser.ConfigParser instance at 0x75734b20>
2020-04-28 07:26:43,264 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap4/value | value: 59.5175
2020-04-28 07:26:43,281 bar_mqtt     INFO     mqtt topic updated: topic: bar/tap4/beverage | value: NEIPA
2020-04-28 07:26:43,282 root         INFO     Tap : 5 Setting capacity to :5 gpio_pin : tap5_gpio_pin
2020-04-28 07:26:43,283 root         INFO     Tap 5: Setting capacity to 5
2020-04-28 07:26:43,283 flowmeter    INFO     def get_pin : 13
2020-04-28 07:26:43,284 flowmeter    INFO     def get_pin : 13
2020-04-28 07:26:43,285 flowmeter    INFO     event-bus: registered tap 1 successfully self.pin 13...
2020-04-28 07:26:43,286 flowmeter    INFO     Tap[1] Pour Event: 0.002 pints.
2020-04-28 07:26:43,286 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75951e40> tap_obj: <flowmeter.FlowMeter instance at 0x7573ff58>
2020-04-28 07:26:43,287 flowmeter    INFO     event-bus: registered tap 1successfully
2020-04-28 07:26:43,287 root         INFO     GPIO.add_event: 13 tap: <flowmeter.FlowMeter instance at 0x7573ff58> self.register_tap: None
2020-04-28 07:26:43,287 flowmeter    INFO     def get_pin : 14
2020-04-28 07:26:43,288 flowmeter    INFO     def get_pin : 14
2020-04-28 07:26:43,289 flowmeter    INFO     event-bus: registered tap 2 successfully self.pin 14...
2020-04-28 07:26:43,289 flowmeter    INFO     Tap[2] Pour Event: 0.002 pints.
2020-04-28 07:26:43,290 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75951e40> tap_obj: <flowmeter.FlowMeter instance at 0x7573fee0>
2020-04-28 07:26:43,290 flowmeter    INFO     event-bus: registered tap 2successfully
2020-04-28 07:26:43,291 root         INFO     GPIO.add_event: 14 tap: <flowmeter.FlowMeter instance at 0x7573fee0> self.register_tap: None
2020-04-28 07:26:43,291 flowmeter    INFO     def get_pin : 15
2020-04-28 07:26:43,292 flowmeter    INFO     def get_pin : 15
2020-04-28 07:26:43,293 flowmeter    INFO     event-bus: registered tap 3 successfully self.pin 15...
2020-04-28 07:26:43,294 flowmeter    INFO     Tap[3] Pour Event: 0.002 pints.
2020-04-28 07:26:43,294 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75951e40> tap_obj: <flowmeter.FlowMeter instance at 0x7573f3c8>
2020-04-28 07:26:43,295 flowmeter    INFO     event-bus: registered tap 3successfully
2020-04-28 07:26:43,296 root         INFO     GPIO.add_event: 15 tap: <flowmeter.FlowMeter instance at 0x7573f3c8> self.register_tap: None
2020-04-28 07:26:43,296 flowmeter    INFO     def get_pin : 16
2020-04-28 07:26:43,297 flowmeter    INFO     def get_pin : 16
2020-04-28 07:26:43,298 flowmeter    INFO     event-bus: registered tap 4 successfully self.pin 16...
2020-04-28 07:26:43,302 flowmeter    INFO     Tap[4] Pour Event: 0.002 pints.
2020-04-28 07:26:43,302 flowmeter    INFO     register_tap: <main.Boozer instance at 0x75951e40> tap_obj: <flowmeter.FlowMeter instance at 0x7573f6e8>
2020-04-28 07:26:43,303 flowmeter    INFO     event-bus: registered tap 4successfully
2020-04-28 07:26:43,304 root         INFO     GPIO.add_event: 16 tap: <flowmeter.FlowMeter instance at 0x7573f6e8> self.register_tap: None

| __ ) / _ \ / _ __  / |  _ \
|  _ | | | | | | |/ /|  | | |) |
| |) | || | || / /| ||  _ <
|/ _/ _/__|_____|| _\
+---------------+--------------+--------+
|      File     |   Filepath   | Exists |
+---------------+--------------+--------+
|    Database   | ./db.sqlite  |  True  |
| Configuration | ./config.ini |  True  |
+---------------+--------------+--------+
+-------------+----------+
|   Feature   |  Status  |
+-------------+----------+
|   Twitter   | disabled |
|     Mqtt    | enabled  |
| Temperature | enabled  |
|    Slack    | disabled |
|  Scrollphat | disabled |
+-------------+----------+
2020-04-28 07:26:43,358 flowmeter    INFO     def get_pin : 13
2020-04-28 07:26:43,359 flowmeter    INFO     def get_pin : 14
2020-04-28 07:26:43,361 flowmeter    INFO     def get_pin : 15
2020-04-28 07:26:43,363 flowmeter    INFO     def get_pin : 16
+-----+------+--------------------+----------+------------------+
| Tap | Beer | Capacity (Gallons) | GPIO Pin | Volume Remaining |
+-----+------+--------------------+----------+------------------+
|  1  |  C   |         5          |    13    |      100.0       |
|  2  |  B   |         5          |    14    |      100.0       |
|  3  |  E   |         5          |    15    |      100.0       |
|  4  |  N   |         5          |    16    |     59.5175      |
+-----+------+--------------------+----------+------------------+
+----------+----------------+
|   Key    |     Value      |
+----------+----------------+
| influxdb |    enabled     |
| database |     boozer     |
|   host   | <IP_ADDRESS> |
|   port   |      8086      |
| username |      None      |
| password |      None      |
+----------+----------------+
+------------+----------------+
|  MQTT-Key  |   MQTT-Value   |
+------------+----------------+
|   broker   | <IP_ADDRESS> |
|    port    |      1883      |
| Connected? |   Connected    |
+------------+----------------+
+-------------+-------------+
|    Sensor   | Temperature |
+-------------+-------------+
| temperature |   67.6616°  |
+-------------+-------------+
2020-04-28 07:26:45,168 flowmeter    INFO     Boozer Intialized! Waiting for pours. Drink up, be merry!
This is a edge event callback function!
Edge detected on channel 15
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 15
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14
This is run in a different thread to your main program
This is a edge event callback function!
Edge detected on channel 14

So wiring seems to be ok. However when this function is called GPIO.add_event_detect(tap.get_pin(), GPIO.RISING, callback=lambda *a: self.register_tap(tap), bouncetime=20) it seems that it's always calling the last initialized.
But I am really not good with this way of doing the callback and it's above my knowledge :-(
I did capture those outside of the docker image but was getting the exact same behavior in the docker image and this is why I decided to run it directly to see if I could get anything different.

I'm pretty confident I'm messed up somewhere. Also, only have 1 tap at the moment, wanted to make sure I could make it work before buying a second sensor.

| __ ) / _ \ / _ __  / |  _ \
|  _ | | | | | | |/ /|  | | |) |
| |) | || | || / /| ||  _ <
|/ _/ _/__|_____|| _\
+---------------+--------------+--------+
|      File     |   Filepath   | Exists |
+---------------+--------------+--------+
|    Database   | ./db.sqlite  |  True  |
| Configuration | ./config.ini |  True  |
+---------------+--------------+--------+
+-------------+----------+
|   Feature   |  Status  |
+-------------+----------+
|   Twitter   | disabled |
|     Mqtt    | enabled  |
| Temperature | disabled |
|    Slack    | disabled |
|  Scrollphat | disabled |
+-------------+----------+
+-----+------+--------------------+----------+------------------+
| Tap | Beer | Capacity (Gallons) | GPIO Pin | Volume Remaining |
+-----+------+--------------------+----------+------------------+
|  1  |  W   |         5          |    23    |      100.0       |
|  2  |  M   |         5          |    15    |     88.4575      |
+-----+------+--------------------+----------+------------------+
here's some log info
2020-04-28 21:21:09,119 flowmeter    INFO     Tap[2] Pour Event: 0.067 pints.
2020-04-28 21:21:09,197 flowmeter    INFO     Tap[2] Pour Event: 0.069 pints.
2020-04-28 21:21:09,266 flowmeter    INFO     Tap[2] Pour Event: 0.071 pints.
2020-04-28 21:21:09,331 flowmeter    INFO     Tap[2] Pour Event: 0.073 pints.
2020-04-28 21:21:09,392 flowmeter    INFO     Tap[2] Pour Event: 0.076 pints.
2020-04-28 21:21:09,459 flowmeter    INFO     Tap[2] Pour Event: 0.078 pints.
2020-04-28 21:21:09,525 flowmeter    INFO     Tap[2] Pour Event: 0.08 pints.
2020-04-28 21:21:09,585 flowmeter    INFO     Tap[2] Pour Event: 0.082 pints.
2020-04-28 21:21:09,649 flowmeter    INFO     Tap[2] Pour Event: 0.084 pints.
2020-04-28 21:21:09,712 flowmeter    INFO     Tap[2] Pour Event: 0.087 pints.
2020-04-28 21:21:09,773 flowmeter    INFO     Tap[2] Pour Event: 0.089 pints.
2020-04-28 21:21:09,837 flowmeter    INFO     Tap[2] Pour Event: 0.091 pints.
2020-04-28 21:21:09,903 flowmeter    INFO     Tap[2] Pour Event: 0.093 pints.
2020-04-28 21:21:09,965 flowmeter    INFO     Tap[2] Pour Event: 0.096 pints.
2020-04-28 21:21:10,029 flowmeter    INFO     Tap[2] Pour Event: 0.098 pints.
2020-04-28 21:21:10,094 flowmeter    INFO     Tap[2] Pour Event: 0.1 pints.
2020-04-28 21:21:10,154 flowmeter    INFO     Tap[2] Pour Event: 0.102 pints.
2020-04-28 21:21:10,219 flowmeter    INFO     Tap[2] Pour Event: 0.104 pints.
2020-04-28 21:21:10,288 flowmeter    INFO     Tap[2] Pour Event: 0.107 pints.
2020-04-28 21:21:10,351 flowmeter    INFO     Tap[2] Pour Event: 0.109 pints.
2020-04-28 21:21:10,417 flowmeter    INFO     Tap[2] Pour Event: 0.111 pints.
2020-04-28 21:21:10,482 flowmeter    INFO     Tap[2] Pour Event: 0.113 pints.
2020-04-28 21:21:10,543 flowmeter    INFO     Tap[2] Pour Event: 0.116 pints.
2020-04-28 21:21:10,608 flowmeter    INFO     Tap[2] Pour Event: 0.118 pints.
2020-04-28 21:21:10,674 flowmeter    INFO     Tap[2] Pour Event: 0.12 pints.
2020-04-28 21:21:10,734 flowmeter    INFO     Tap[2] Pour Event: 0.122 pints.
2020-04-28 21:21:10,802 flowmeter    INFO     Tap[2] Pour Event: 0.124 pints.
2020-04-28 21:21:10,868 flowmeter    INFO     Tap[2] Pour Event: 0.127 pints.
2020-04-28 21:21:10,928 flowmeter    INFO     Tap[2] Pour Event: 0.129 pints.
2020-04-28 21:21:11,013 flowmeter    INFO     Tap[2] Pour Event: 0.131 pints.
2020-04-28 21:21:11,138 flowmeter    INFO     Tap[2] Pour Event: 0.133 pints.
2020-04-28 21:21:11,309 flowmeter    INFO     Tap[2] Pour Event: 0.136 pints.
2020-04-28 21:21:11,579 flowmeter    INFO     Tap[2] Pour Event: 0.138 pints.

you can try to enable a third tap. don't change any physical connection if you have the same issue then the pouring will be seen as coming from third tap. Then enable a forth one and it will come from the forth one.

Yeah, i did what you asked. I added tap3 to gpio 14 then got the reading as coming from tap 3. Added tap4 to gpio 17 and now it says it's coming out of tap 4. what's the fix for this? Thank you for the help

I really don’t know how to fix this :-( We need some help from Brandon. I am not good enough with Python to find why it’s not working. I went as far as I could.

Hey guys, apologies, real life gets in the way. FWIW, the pullup resister is not needed (or at least I dont run one) for the flow sensor. I have it in use because I string multiple 1-wire temperature sensors and that requires PULLUP on the data line.
I am going to further look at the code tomorrow, but I am not getting the same problem as you and you both seem to have a resister in line. I know I have seen some people claim you need it, but I don't recall going that route. Please try without the resister in line and report back.
Found something similar.
https://community.brewpi.com/uploads/default/original/2X/1/16501940dcaa88cc4f0eab87ab2f76cfbdd4e924.png

No apologies required. Thanks for the help. Pulled out the resistor and I'm still getting the same result, wrong tap. Thanks again

Hey guys, apologies, real life gets in the way. FWIW, the pullup resister is not needed (or at least I dont run one) for the flow sensor. I have it in use because I string multiple 1-wire temperature sensors and that requires PULLUP on the data line.
I am going to further look at the code tomorrow, but I am not getting the same problem as you and you both seem to have a resister in line. I know I have seen some people claim you need it, but I don't recall going that route. Please try without the resister in line and report back.
Found something similar.
https://community.brewpi.com/uploads/default/original/2X/1/16501940dcaa88cc4f0eab87ab2f76cfbdd4e924.png

Hello!
Thanks for your help! I think that the 10k are not doing any harm as the GPIO needs to be pulled high (I think you set it as pull up in the code but initially I did not see it so I added the 10k to pull it high to 3.3V). As it's pretty high (10k) I did not think it would change the status. So I have hooked it to the Scope and Logic Analyzer to confirm. So I am attaching the logic trace and the scope trace and it seems to be working correctly having the high level at 3.3V and the pulses pulling to line to 0V.

Also when replacing this line in the boozer.py I can see the correct pin being triggered. So at least the detection can work. But I do not understand how the clone of the function works and how to ensure the right one is being called or modifying the proper instance (not sure of the terminology).
#GPIO.add_event_detect(tap.get_pin(), GPIO.RISING, callback=lambda *a: self.register_tap(tap), bouncetime=20)
GPIO.add_event_detect(tap.get_pin(), GPIO.RISING, callback=my_callback , bouncetime=20)
So when "my_callback" is called then it only prints the triggered pin to confirm that it can detect the correct pin.
def my_callback(channel):
print('This is a edge event callback function!')
print('Edge detected on channel %s'%channel)
print('This is run in a different thread to your main program')

@farcouet breaking out the scope!
Can you both try:

Make a copy of your database and config files. In each config, only list one tap and GPIO (make sure they differ in the two files)

Run 2 different dockers with the appropriate files docker run -v ${PWD}/db2.sqlite .... You can either use a terminal multiplexer like tmux or put them in daemon mode. do not change the wiring in any way, we want to make sure that the two+ sensors are able to operate as expected, independently.

attempt to make a 'pour' on both of your taps.

Make sure that they both registered and triggered the events as expected.

Stop both dockers.

if they both behaved as expected, it's definitely a bug.

In the picture 1st trace is from the Logic part so detecting if it's a high or a low. The second trace is from the analog capture (scope) at the same time were we can see the voltage clearly.

@farcouet breaking out the scope!
Can you both try:
1. Make a copy of your database and config files. In each config, only list one tap and GPIO (make sure they differ in the two files)

2. Run 2 different dockers with the appropriate files `docker run -v ${PWD}/db2.sqlite ...`. You can either use a terminal multiplexer like tmux or put them in daemon mode. do not change the wiring in any way, we want to make sure that the two+ sensors are able to operate as expected, independently.

3. attempt to make a 'pour' on both of your taps.

4. Make sure that they both registered and triggered the events as expected.

5. Stop both dockers.

if they both behaved as expected, it's definitely a bug.

Hello Brandon,
I have tried to run two docker (each pointing to a different folder). I have kept one tap on each and on boozer1 I used gpio 13 and on boozer2 gpio 14 (for sure both on tap1 as I enabled one tap each). I can confirm that they both register the pouring for the proper tap.
docker run --rm -d --name="boozer1" --privileged  -v /boozer1/config.ini:/boozer/config.ini -v /boozer1/db.sqlite:/boozer/db.sqlite -t boozerbar/boozer
docker run --rm -d --name="boozer2" --privileged  -v /boozer2/config.ini:/boozer/config.ini -v /boozer2/db.sqlite:/boozer/db.sqlite -t boozerbar/boozer
root@raspberrypi:~# docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
53443d037343        boozerbar/boozer    "/usr/bin/entry.sh p…"   42 seconds ago      Up 39 seconds                           boozer2
b8815e39fe65        boozerbar/boozer    "/usr/bin/entry.sh p…"   59 seconds ago      Up 56 seconds                           boozer1
root@raspberrypi:~#
/boozer1/config.ini:tap1_gpio_pin: 13
/boozer1/config.ini:tap1_beer_name: Cidre
/boozer1/config.ini:tap1_gallon_capacity: 5
/boozer2/config.ini:tap1_gpio_pin: 14
/boozer2/config.ini:tap1_beer_name: Blanche
/boozer2/config.ini:tap1_gallon_capacity: 5
So I have done a poor 1st on tap 1. I confirmed that only boozer1 changed. So boozer2 tap1 did not changed.
root@raspberrypi:~# docker exec -it boozer1 python /boozer/toolkit.py --printval
Loaded config...
Database file:	/boozer/db.sqlite
Tap 1 | 98.6375 remaining   <----------------- This value changed which is ok

root@raspberrypi:~# docker exec -it boozer2 python /boozer/toolkit.py --printval
Loaded config...
Database file:	/boozer/db.sqlite
Tap 1 | 100.0 remaining  <----------------- This value remains unchanged which is ok

Then I did a pouring from tap on gpio pin 14 and I confirmed that nothing changed on boozer1 and that the change was recorded on boozer2.
root@raspberrypi:~# docker exec -it boozer1 python /boozer/toolkit.py --printval
Loaded config...
Database file:	/boozer/db.sqlite
Tap 1 | 98.6375 remaining    <----------------- This value did not changed from previous test.

root@raspberrypi:~# docker exec -it boozer2 python /boozer/toolkit.py --printval
Loaded config...
Database file:	/boozer/db.sqlite
Tap 1 | 98.78 remaining   <----------------- This value did changed from previous test.

Cheers,
Fred

Wow not sure why it looks ugly like this sorry about it....

Hello!
Have you had a chance to look at it? Do you get the same problem?
thanks!
Fred

Sorry all, I have been so swamped. hoping to get to it this weekend. Thanks!
On Tue, May 5, 2020 at 9:02 AM farcouet<EMAIL_ADDRESS>wrote:

Hello!
Have you had a chance to look at it? Do you get the same problem?
thanks!
Fred
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/bgulla/boozer/issues/23#issuecomment-624144281, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AMKT737O7WGZQ4MW7PXMJPLRQA2CTANCNFSM4MG6RJIA
.

coming back with another apology, this one's a little over my head, i'm not quite sure how to actually to test this. My knowledge of how to do all of this is super limited. Sorry

Hello,
Does anyone has an idea on how to fix this?
Thanks,
Fred

Hello,
Is there anyone who can help? I initially bought parts for one tap to test and then bought the rest which is useless now.
Thanks!
Fred

I'll reconnect my setup this week and see if I am seeing the same issue. If
I do, I can fix the code.
On Sat, Aug 8, 2020 at 12:34 AM farcouet<EMAIL_ADDRESS>wrote:

Hello,
Is there anyone who can help? I initially bought parts for one tap to test
and then bought the rest which is useless now.
Thanks!
Fred
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/bgulla/boozer/issues/23#issuecomment-670822641, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAUSQM26KGU4LWSXDBVXA5DR7TIVXANCNFSM4MG6RJIA
.

--
Brandon

Hello Brandon,
Great that will be really appreciated! I am not that good with Python :-(
Thanks!
Fred
Sent from my iPhone

On Aug 9, 2020, at 4:14 PM, Brandon<EMAIL_ADDRESS>wrote:

I'll reconnect my setup this week and see if I am seeing the same issue. If
I do, I can fix the code.
On Sat, Aug 8, 2020 at 12:34 AM farcouet<EMAIL_ADDRESS>wrote:

Hello,
Is there anyone who can help? I initially bought parts for one tap to test
and then bought the rest which is useless now.
Thanks!
Fred
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/bgulla/boozer/issues/23#issuecomment-670822641, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAUSQM26KGU4LWSXDBVXA5DR7TIVXANCNFSM4MG6RJIA
.

--
Brandon
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

I was not able to replicate your issue. Best of Luck.

Hello,
Any hints ? What version of OS are you using? I will install exact same version and retry. Can you do a tar of your files so I can try the exact same files?
thanks,
Fred
Sent from my iPhone

On Aug 10, 2020, at 7:02 AM, Brandon<EMAIL_ADDRESS>wrote:

I was not able to replicate your issue. Best of Luck.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hello,
Any way you can do a tar of you actual directory and send it? Can you also tell me what OS are you using I will re-install.
Thanks,
Fred
From: Brandon<EMAIL_ADDRESS>Sent: Monday, August 10, 2020 7:02 AM
To: bgulla/boozer<EMAIL_ADDRESS>Cc: farcouet<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [bgulla/boozer] Pour Event always for tap4 even when using other flow meter (#23)
I was not able to replicate your issue. Best of Luck.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/bgulla/boozer/issues/23#issuecomment-671290609 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AGPVJFTVRDP2VQBM5SISFA3R77HTPANCNFSM4MG6RJIA .  https://github.com/notifications/beacon/AGPVJFS3K66YYC2QAV34L3TR77HTPA5CNFSM4MG6RJIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFABRJ4I.gif

Hello,
Is there anyone who can help me on that issue? I just did a fresh install of lastest Raspian image and re-deployed fresh docker. I still have only the latest tap initialized that counts.
So if I pour from tap 1 it counts in tap 4.
If I pour from tap 2 it counts in thap 4.
If I change the number of tap to 3 then if I pour from tap 1,2 or 3 it will count as from tap 3. So there is something that is not working but I am not good with Python to understand how to properly call the function with the proper pointer. It's like if for all interrupts assigned when function is called it thinks it's coming from the latest initialized.
So anyone could help? It will be really appreciated.
Thanks,
Fred


Number of nodes after conv layer seems wrong.

In Lab 2 part 1, the formula for calculating the number of nodes in a feature map after a convolution or a pooling operation is given as n = (((d - i + 2p) / s) + 1)^2). Shouldn't it be without the square operation?

The notation was referring to a each dimension individually (so not squaring the two terms). Instead we were writing the dimension of the output feature map as (height_dimension) x (width_dimension) where both height and width can be written as functions of the form:
((d - i + 2p) / s) + 1)

Aah ok! Sorry for the confusion.


Filename error in readme?

In readme:
https://github.com/php-stubs/wp-cli-stubs/blob/f27ff9e8e29d7962cb070e58de70dfaf63183007/README.md?plain=1#L29-L35
wp-cli-tools.php does not exists, but wp-cli-tools-stubs.php does. After fixing this everything works, so final config is:

parameters:
bootstrapFiles:
  - vendor/php-stubs/woocommerce-stubs/woocommerce-stubs.php
scanFiles:
  - vendor/php-stubs/wp-cli-stubs/wp-cli-stubs.php
  - vendor/php-stubs/wp-cli-stubs/wp-cli-commands-stubs.php
  - vendor/php-stubs/wp-cli-stubs/wp-cli-i18n-stubs.php
  - vendor/php-stubs/wp-cli-stubs/wp-cli-tools-stubs.php

Thank you Artem!
You only need wp-cli-stubs.php.


Fix for tiny toolbox bug

Hi again!
I noticed that sometimes when tried to click on the Heading element it would select lists instead. It was really annoying. Then I realized since I have a translated version and my tooltips are a bit longer and breaking into two lines, it sometimes covers the other buttons before they are visible.
Here are some screenshots:
Without fix, hitting the tooltip selects the toolstips element:

After fix, selecting through the tooltip.

A small fix for this is to add pointer-events: none; to the tooltips:after element :) Hope this can be in the next patch as well for others who might not have figured out why. I also added some styling to stop the wordbreak.
.ct-tool:after {
     pointer-events: none;

     width: initial;
     max-width: 150px;
     white-space: nowrap;
}

@Candielope thank you for the report and taking the time to offer a solution :+1:


⚠ Secret Website 3 has degraded performance

In cc3fd26, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 2795 ms

Resolved: Secret Website 3 performance has improved in 1760c93.


Bug: Login Field CSS Broken

The login buttens are misaligned suddenly. It used to be in one line. Please fix this issue.

Thanks for the report Josephyoon, this has already been fixed in master as we've completely redone the login interface


Improved Project Structure, Refactored file's , Deleted Unused Files, Replaced png's with vector assets xml's

Please make sure these boxes are checked before submitting your pull request - thanks!

[x] Apply the AndroidStyle.xml style template to your code in Android Studio.

[x] Run the checks with ./gradlew check to make sure you didn't break anything

[x] If you have multiple commits please combine them into one commit by squashing them.

@Hiteshgautam01 Please fix the conflict.

@sagar15795 I have resolved the conflicts. Now you can review.

Any progress on this?

@ianwdunlop I think we can close this also. because this PR contains the only reformated code which we can do later.


npm module

Hi, Mike.
I just released rollup-plugin-node-resolve@2 which introduces module field for es modules. I enabled it by default to simplify configuration a bit. It's already supported by webpack. Would be great if you will add it to your packages. And please don't remove jsnext:main until new major version to prevent deploys breaking.

Thanks for the heads up. Can you point me to a discussion regarding the
motivation for this change?
On Sun, Jul 31, 2016 at 8:54 AM Bogdan Chadkin<EMAIL_ADDRESS>wrote:

Hi, Mike.
I just released rollup-plugin-node-resolve@2
https://github.com/rollup/rollup-plugin-node-resolve/commit/3befb3ba9856a375881708258e39c7c7a7d63e86
which introduces module field for es modules. I enabled it by default to
simplify configuration a bit. It's already supported by webpack. Would be
great if you will add it to your packages. And please don't remove
jsnext:main until new major version to prevent deploys breaking.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/d3/d3/issues/2926, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAOEjfGo3EEGu5zI3JAWz22ipTDIaHnTks5qbMU_gaJpZM4JZD05
.

https://github.com/dherman/defense-of-dot-js/blob/master/proposal.md

Okay, I can do that.

Fixed in 4.2.1.

Thanks!


identityuser docker ioexception: idx20804: unable to retrieve document from: 'http://localhost:8080/.well-known/openid-configuration'.

Hi, I have this error when using docker and identityserver4 (asp.net core 2.1)
ioexception: idx20804: unable to retrieve document from: 'http://localhost:8080/.well-known/openid-configuration'.
But if I hit  http://localhost:8080/.well-known/openid-configuration   from the browser it works fine.

This seems to be a general question about IdentityServer - not a bug report or an issue.
Please use one of the our free or commercial support options
See here for more details.
Thanks!


Won't work in node v0.12

It throws following error whereas node v5.1 works fine.
/Users/xxx/.nvm/versions/node/v0.12.7/lib/node_modules/autochangelog/index.js:70
            const milestonesApi = `${api}/projects/${encodeURIComponent(projec
                                  ^
SyntaxError: Unexpected token ILLEGAL
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3

It seems that the template string is not supported for the node in this version, even with the harmony flag.
I'm sure that 4.0+ node contains the feature. But lower than that, what i can advise so far is installing 3.x version instead:
npm install -g<EMAIL_ADDRESS>


[GHSA-4446-656p-f54g] Deserialization of Untrusted Data in Bouncy castle

Updates

Affected products

Comments
Vulnerable component was not added to bcprov-jdk14 until version 1.58 and bcprov-jdk15on until version 1.57. This can be observed by searching for xmss in the following source archives:

https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk14/1.57/bcprov-jdk14-1.57-sources.jar
https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk14/1.58/bcprov-jdk14-1.58-sources.jar
https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.56/bcprov-jdk15on-1.56-sources.jar
https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.57/bcprov-jdk15on-1.57-sources.jar

Additionally, bcmail-jdk15 ends at version 1.46 and the affected versions actually live in bcmail-jdk15on.

👋 Hi @jkmartindale, I found this commit tagged with r1rv57 that introduces the XMSS files, consistent with your finding about bcprov-jdk15on. However, I ran into a snag when trying to confirm that org.bouncycastle:bcprov-jdk14 and org.bouncycastle:bcprov-jdk15on both contain files affected by CVE-2018-1000613. bcprov-jdk14-1.58-sources.jar didn't have the folder I was looking for.
Where did you find the xmss folder when you opened each .jar? I found a folder called xmss with file names that I recognized from the fix commits in org/boundycastle/pqc/crypto, but only in bcprov-jdk15on-1.57-sources.jar. This led me to wonder whether org.bouncycastle:bcprov-jdk14 is affected by the vulnerability. Were you able to find an xmss folder in bcprov-jdk14-1.58-sources.jar?

Sorry about that, big oversight on my part. When I was checking bcprov-jdk14 I only did a simple string search for "xmss" and checked for the existence of only one or two files in https://github.com/bcgit/bc-java/commit/4092ede58da51af9a21e4825fbad0d9a3ef5a223, which is part of the patch but also has unrelated refactoring that I mistakenly thought was relevant.
After reviewing both patch commits listed in the advisory I understand that the vuln root cause is in XMSSUtil, which isn't present in any version of bcprov-jdk14. So only bcprov-jdk15on is affected, and 1.57 does have a vulnerable XMSSUtil that deserializes without checks. I'd update the pull request but I think that doesn't work if I used the edit form to generate this.

You don't have to worry about changing the PR. The advisory will be changed to have only org.bouncycastle:bcprov-jdk15on as an affected product with >= 1.57, < 1.60 as the vulnerable version range. You'll still get credit for alerting us to the existence of a minimum vulnerable version. Thanks for answering the questions and helping me understand org.bouncycastle:bcprov-jdk15on and org.bouncycastle:bcprov-jdk14 better!


Implement a CHANGELOG.MD

Hi @johannesjo,
Thanks for all your hard work! It would be brilliant if you could provide a CHANGELOG so that it is easy for us to see when new features are added or bugs fixed.
It is currently really hard to know when/whether to update.
Many thanks,
James

Hello @JamesHenry,
thank you for message. I think a changelog is very good idea. However I'm not sure what would be the best (easiest) way to implement it. Do you have a suggestion how to implement one? I know there is https://github.com/btford/grunt-conventional-changelog but I don't want to rebase the whole repository.
In general you should be able to update without any problems. There was one big change in the implementation (implemented with v1.0.0), aftewards there were only bugfixes and smaller feature additions without changing the way how the existing ones are used.

Thanks for the feedback @johannesjo. I am afraid I do not have any recommendations myself, but I appreciate you taking the time to think about this.

After thinking about the issue, I decided to not implement a changelog for now, as it probably won't be much better than this:
https://github.com/johannesjo/ng-fab-form/commits/master
Releases are labeled as such and the commit names should give you a good indicator, if you need to worry about upgrading. So far after the 0.er versions only one change has been introduced.
It's a little bit messy, because I experimented with some autodeploying grunt task and I'm hesitant to rebase everything as this might mess things up for some people.
Thank you again for your feedback. If it so happens that the repo will be a little bit more popular, there are more people working on it or that there are some bigger changes to come, I definitely will reconsider your suggestion. For now I suppose that - apart from testing - there is only one additional feature planned: async validators. But this probably won't change anything about how to use current features.


Upgrade to hawkular-parent 30 and the newest Commons and Accounts

deps

@lucasponce 4981600 contains the versions most suitable for WF10 ATM.

Thx, this Wildfly10 is outdated with master and it has more conflicts, so I have a Wildfly10-II which will be the used for sync with master.
I have an upgrade to parent 10.
I'm going to review the PR and cherry-pick or simply apply missing changes there.

I'm going to review the PR and cherry-pick or simply apply missing changes there.

Perfect!

Applied on Wildfly10-II branch.


Happy 1 month anniversary h-encore

It's been over 1 month since h-encore descended from the heavens to grant us the miracle of Vita hacking. The best part is that so far (knock on wood), SONY has yet to release another firmware to break this. Considering that last time, they released 3.61 10 days after Henkaku came out, that's pretty good. Then again, that was 2016 where the Vita still had some life in it, now it's almost all but dead, even in Japan.

:)


Strategies for .requires_grad_(False) equivalent

Hi ! I'm currently implementing a Equinox version of Moshi's Mimi Audio codec. They use .requires_grad_(False) to avoid gradients for a certain jax.Array in a convolution in a certain module init:
conv = StreamingConv1d(
    in_channels,
    out_channels,
    kernel_size=2 * stride,
    stride=stride,
    causal=causal,
    groups=groups,
    bias=False,
    pad_mode="replicate",
)
if not learnt:
    where = lambda c: c.conv.conv.weight
    # TODO how to make this static ??
    self.conv = eqx.tree_at(where, conv, jnp.ones_like(conv.conv.conv.weight) / (2*stride))

My two ideas are: Either remember to take these out of the PyTree with partitioning when training, or somehow set these to static. I would love to have your quick opinion on what you believe would be best, and if there is another possibility I haven't taken into account ?
Have a wonderful day

Hi Tugdual,
you are probably looking for jax.lax.stop_gradient, which allows you to treat the array such wrapped as a constant. (During both training and inference.)
If you want to selectively freeze a model component, filtering with a custom filter_spec would be preferred. (More in this thread, if you are interested.)

Thanks for the feedback 👍


⚠ Bofrost.at has degraded performance

In 8247408, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2498 ms

Resolved: Bofrost.at performance has improved in 4366c00 after 308 days, 7 hours, 24 minutes.


Make first letter of error message lowercase

Capitalize first letter of Err message to keep consistancy
Signed-off-by: mqliang<EMAIL_ADDRESS>

They should be going the other way, to lowercase. https://github.com/golang/go/wiki/CodeReviewComments#error-strings

I agree with @phemmer. We want lowercase :smile_cat:

@phemmer @calavera Ok, I have reworked my PR and repushed, thanks.

Closing this.


Poll instead of pull

[status.
Manage scheduled data jobs
Submitting data to recurring data jobs
You can use integration REST endpoints to integrate with the client, submit documents (import), or poll available documents for download (export). These endpoints support OAuth.]

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

ID: 01b2cd6b-f885-7461-fbdf-cf81f9e50d86
Version Independent ID: 8df7a6ae-67db-5d29-fb6a-0820704ff3ef
Content: Recurring integrations - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/dev-itpro/data-entities/recurring-integrations.md
Service: dynamics-365-cross-app
Product: ****
Technology: ****
GitHub Login: @Sunil-Garg
Microsoft Alias: sunilg

@thedynamicsgirl, thanks for the feedback. I'll update this right away.


Performance of CompDrop for other convnets

Excellent work!
I was curious to know if you have experimented with CompDrop or CompDrop+EMA on backbones such as ResNets and if the performance is superior to UniMatch. For example, how would UniMatchv2 perform with ResNet50 backbone on the Pascal VOC 1/16 (92) split?

Hi, we did not conduct any experiments on the ResNet encoders, as one of our main motivations for this work is to switch from the outdated ResNet encoders to the most capable DINOv2 pre-trained encoders.

I think you did experiment on ResNet152 in table 9 right? Were there any other ConvNet based experiments?
And when you applied CompDrop to ResNet152, how does the dropout mask from binomial sampling work when the resolution of the features are different across the backbone layers?

Oh, thank you for your reminder. Yes, the ResNet-152 result in Table 9 is obtained by our UniMatch V2 framework. We use these comparisons to demonstrate the superiority of DINOv2 encoders.
When applying CompDrop to ResNet-152, the dropping practice is indeed similar to DINOv2. The only difference is that we independently sample the dropping mask for each level of intermediate features. Below we provide a piece of code for you:
dropout_masks = []
# the `features` is a list of intermediate features extracted from the encoder, it can be of different resolutions
for feature in features:
    # the `feature` is the batch-level concatenated feature of images s1 and s2, something like: feature = encoder(torch.cat((s1, s2)))
    bs, dim = feature.shape[:2]

    # `dropout_mask1` is to drop features of image s1, and `dropout_mask2` is for features of image s2
    dropout_mask1 = self.binomial.sample((bs // 2, dim)).cuda() * 2.0
    dropout_mask2 = 2.0 - dropout_mask1
    # `dropout_prob` is to ensure only 50% training samples are performed CompDrop
    dropout_prob = 0.5
    num_kept = int(bs // 2 * (1 - dropout_prob))
    kept_indexes = torch.randperm(bs // 2)[:num_kept]
    dropout_mask1[kept_indexes, :] = 1.0
    dropout_mask2[kept_indexes, :] = 1.0

    dropout_mask = torch.cat((dropout_mask1, dropout_mask2))

    dropout_masks.append(dropout_mask)

features = (feature * dropout_masks[i][:, :, None, None] for i, feature in enumerate(features))
# then, we send the masked (i.e, dropped) `features` to the subsequent decoder

Thanks for the details!
Perhaps I might do some experiments with convnets to see the performance difference between CompDrop and Feature Perturbation+Strong View Perturbations.


test

fastmvsnet.utils.checkpoint INFO: Loading checkpoint from /home/camellia/fastMVSNet-master/outputs/pretrained.pth
Traceback (most recent call last):
File "/home/camellia/fastMVSNet-master/fastmvsnet/test.py", line 141, in
main()
File "/home/camellia/fastMVSNet-master/fastmvsnet/test.py", line 137, in main
test(cfg, output_dir, isCPU=isCPU)
File "/home/camellia/fastMVSNet-master/fastmvsnet/test.py", line 98, in test
test_model(model,
File "/home/camellia/fastMVSNet-master/fastmvsnet/test.py", line 63, in test_model
for iteration, data_batch in enumerate(data_loader):
File "/home/camellia/anaconda3/envs/my/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 517, in next
data = self._next_data()
File "/home/camellia/anaconda3/envs/my/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 557, in _next_data
data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
File "/home/camellia/anaconda3/envs/my/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/camellia/anaconda3/envs/my/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/camellia/fastMVSNet-master/fastmvsnet/../fastmvsnet/dataset.py", line 271, in getitem
h_scale = float(self.height) / images[0].shape[0]
AttributeError: 'NoneType' object has no attribute 'shape'

Hi, please refer to #2


Update Gemfile

use byebug instead of debugger (openSUSE 13.2 support)

What's wrong with the :github syntax?
+1 for the byebug change, but I can't accept it yet since you bundled it together with the other change.

I thought this was deprecated put seams this information is wrong. I dropped the change.

:+1: as byebug is the debugger of your choice for ruby >= 2.1

+1


Cannot use 'in' operator to search for 'global' in null

After loading Atom, I hit cmd-ctrl-p and selected the project I want. But what appeared was a directory for a website that isn't in my list of projects. When I repeated the command and successfully launched the desired project, this error appeared:
Failed to load projects.cson
Cannot use 'in' operator to search for 'global' in null

Do you use, or have used a package like project-sidebar that opens a new project in the same window instead of opening a new window? That kind of packages can mess up your projects paths.
Getting the error about the projects.cson would mean that it's not formatted correctly. Download a coffeescript linter and you should be able to find the error easily.


Pass Tenderly headers correctly

⚠ Depends on #1240
Summary
This fixes the Tenderly requests to pass the body and headers correctly.
Changes

Fix addContract/deleteContract network request payloads

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 93.31%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
6385

Relevant Lines:
6604

💛  - Coveralls


I wonder that how query nodes is implemented in code?

Hi! I am interested in node generations of query node section in Grapher, but I can not find anything about it in code. Did it implemented in code?

Hi,
We found that the query nodes part is not performing well, so we dropped it from the code to make it concise and readable.

see #11


Players dropping items when over weight

people still drop weapons when recalling/unequipping items when backpack is full : example from player"i picked the body parts to get the dragon some food and dropped it when i recalled becuase of it"

Sent


Add guidance to class deprecation and removal process to internal documentation.

@sa-bpelakh This should be part of our public documentation, so that the public understands it. It is not strictly an internal matter.


Give more specific errors when rcedit cannot set an icon

In the Electron Packager and Electron Forge issue trackers, one of the common issues that pops up is people asking what's going on when the build process errors out with rcedit.exe failed with exit code 1. Fatal error: Unable to set icon. This pull request attempts to give more details as to why setting the icon failed.

@ckerr I don't think rcedit has access to that macro 🤔

I'd be happy to use a more idiomatic way to deal with errors, but my knowledge of the C++/Windows ecosystem is minimal, so assistance would be much appreciated.

Thanks @zcbenz. When can we expect a new release of rcedit and node-rcedit?

@malept Soon.


Cross-modal retrieval on COCO

Hi! Thank you for your work! I have a question regarding cross-modal retrieval on COCO, I am struggling to reproduce the results reported in the paper. Could you provide more details on your training protocol? Which coefficients are you using for VICReg/what kind of expander architecture/are you doing any further downstream training or do you directly use the encoder embeddings obtained via ssl?
Thank you!

Hi,
I am facing the same issue to reproduce the results of the paper. Did you find the right configuration?

I am facing the same issue, too!


Revert "OCPBUGS-38468: use default route mtu"

This reverts commit 6d13426260cd293baf6600307779b1dcb011178d.

Which issue(s) this PR addresses:

Closes #

/test ?

/retitle OCPBUGS-38468: Revert "use default route mtu"

/jira refresh

/lgtm


Fix custom namespace deploy errors in RBAC RoleBinding

Deploying v0.11.0 to custom namespace results in an error:
W0516 23:52:47.169746       1 reflector.go:539] k8s.io/client-go@v0.29.3/tools/cache/reflector.go:229:
failed to list *v1.Job: jobs.batch is forbidden: User "system:serviceaccount:my-namespace:my-deploy-name-v1-controller" cannot list resource "jobs" in API group "batch" in the namespace "my-namespace"

The RoleBinding in RBAC should be bound to a namespace.
To be honest I'm baffled at how is deploy was supposed to work for users with custom namespace, does everyone deploy to a default namespace or am I missing something? 🤔

Thanks for landing this 👍

Hey, thanks for spending the time investigating it and raising a PR! Makes it easy 😄


IPV6 only sites are not working

Tried using node-wpapi on a website which only supports ipv6 and it returns:
code: 'ETIMEDOUT',

For others with this problem: As a workarround I fixed it by adding cloudflare to my site so it supports ipv4.


NeoScan sometimes stop syncing

2019-11-06 21:15:32.706 [info]<EMAIL_ADDRESS>0 ratio_insert, 0 ratio_download
2019-11-06 21:15:37.708 [info]<EMAIL_ADDRESS>0.4 blocks/s, 0.4 transactions/s, 17152.0 download avg time, 21789.0 insert avg time
2019-11-06 21:15:37.708 [info]<EMAIL_ADDRESS>0 ratio_insert, 0 ratio_download
2019-11-06 22:22:18.597 [info]<EMAIL_ADDRESS>JOIN "room:home" to NeoscanWeb.RoomChannel
  Transport:  Phoenix.Transports.WebSocket (2.0.0)
  Serializer:  Phoenix.Transports.V2.WebSocketSerializer
  Parameters: %{}
2019-11-06 22:22:18.597 [info]<EMAIL_ADDRESS>Replied room:home :ok

2019-11-07 23:24:48.357 [info]<EMAIL_ADDRESS>0.2 blocks/s, 0.2 transactions/s, 2267.0 download avg time, 2889.0 insert avg time
2019-11-07 23:24:48.357 [info]<EMAIL_ADDRESS>0 ratio_insert, 0 ratio_download
2019-11-08 03:37:06.196 [info]<EMAIL_ADDRESS>tzdata release in place is from a file last modified Thu, 03 May 2018 23:55:14 GMT. Release file on server was last modified Wed, 11 Sep 2019 19:35:17 GMT.
2019-11-08 03:37:07.207 [error]<EMAIL_ADDRESS>GenServer :tzdata_release_updater terminating
** (FunctionClauseError) no function clause matching in Tzdata.Util.first_matching_weekday_in_month/4
    (tzdata) lib/tzdata/util.ex:73: Tzdata.Util.first_matching_weekday_in_month(1932, 4, 7, [])
    (tzdata) lib/tzdata/util.ex:329: Tzdata.Util.time_for_rule/2
    (tzdata) lib/tzdata/period_builder.ex:161: Tzdata.PeriodBuilder.calc_periods_for_year/9
    (tzdata) lib/tzdata/period_builder.ex:180: Tzdata.PeriodBuilder.calc_periods_for_year/9
    (tzdata) lib/tzdata/period_builder.ex:185: Tzdata.PeriodBuilder.calc_periods_for_year/9
    (tzdata) lib/tzdata/period_builder.ex:180: Tzdata.PeriodBuilder.calc_periods_for_year/9
    (tzdata) lib/tzdata/period_builder.ex:185: Tzdata.PeriodBuilder.calc_periods_for_year/9
    (tzdata) lib/tzdata/period_builder.ex:180: Tzdata.PeriodBuilder.calc_periods_for_year/9
Last message: :check_if_time_to_update
2019-11-08 04:04:18.631 [info]<EMAIL_ADDRESS>JOIN "room:home" to NeoscanWeb.RoomChannel
  Transport:  Phoenix.Transports.WebSocket (2.0.0)
  Serializer:  Phoenix.Transports.V2.WebSocketSerializer
  Parameters: %{}
2019-11-08 04:04:18.631 [info]<EMAIL_ADDRESS>Replied room:home :ok

Maybe it was because of its NEO_SEEDS
I was initializing like this on docker:
      NEO_SEEDS: "http://eco-neo-csharp-node1-running:30334;http://eco-neo-csharp-noderpc1-running:30333;http://eco-neo-csharp-noderpc1-running:30337"

And I saw like this on neo-local:
      NEO_SEEDS: >-
        http://eco-neo-csharp-node1-running:30334;http://eco-neo-csharp-noderpc1-running:30333;http://eco-neo-csharp-noderpc1-running:30337

Both ways should work, @adrienmo?
How can I check current peers of neo-scan?

I think this was the problem.
I just checked and saw that neoscan just connected to one of those NEO_SEEDS.

Fixed. It was my configuration problem.
I apologize for the inconvenience.


[spi_device] Add WREN/WRDI CSRs to CMD_INFO

As discussed in #11869 , WREN/ WRDI are better to be processed in HW.
This commit defines WREN/ WRDI opcode CSRs for the cmdparse module to
parse the command correctly.

CC @a-will and @alphan


⚠ Bofrost.at has degraded performance

In e691eb6, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 916 ms

Resolved: Bofrost.at performance has improved in 21ed839.


Navi highlighting is not working properly when the content of [id] pointed to is short

Demo form official docsify  doc https://docsify.js.org/#/more-pages?id=ignoring-subheaders

@ihipop Hi, I meet same problem and fixed it.
https://github.com/QingWei-Li/docsify/pull/242


fix: swap order of destroy and Driver_Failed error after restoring NVM

@zwave-js-bot pack this

Ok - On further review, it happened again :sweat_smile:
Testing this patch - The resolved promise was received and reacted to, before the error - but a 2nd attempt, the other way around.
I think this is a Race Condition. if an application is listening for a driver error (I.e to restart), it could do so before receiving the resolved promise.
I'm starting to think that applications (specifically those that utilise the server) may have to very very lightly throttle driver restarts, so it can continue any logic path that is the result of a pending promise being recieved.
Example:
Inside a server node app , bridging zwave-js-server to another language (that is monitoring the stderr of the node process) it could receive an error before zwave-js-server  has had an opportunity to respond with a successful promise
driver.on("error", (e) => {
    if (e instanceof ZWaveError && e.code === ZWaveErrorCodes.Driver_Failed) {
        process.stderr.write("2\n");
    }
});

I can try emitting the driver failed error in a setImmediate, maybe that will help.

Ok,
That makes sense, allowing the promise to reach the end of its context, before the error is produced.

@zwave-js-bot pack this


Dynamic resizing within column fails due to static height

see http://jsfiddle.net/ufxbQ/10/
in order to fix this I attempted a min-height solution. This works, except for the box-sizing elements which require .outerHeight() instead of .height(); This will be in no way compatible with IE6. IE7 I'm not completely sure how jquery handle's .css('box-sizing').
The updated fiddle to min-height: http://jsfiddle.net/7wdjA/
It would be nice if after the animation the columns auto equalize but the .resize() event is only available on 'window'.

Close this issue for now. Please reopen it if this issue occurs again.


Failure notifications

Add Slack failure notifications for both errors within the Snakemake pipeline and the GitHub Action workflows.
See commits for details.

I do think threading messages on slack is the way forward to avoid the numerous messages posted to the channel daily (assuming we want to keep using slack for this).

Yeah, I will probably save threading messages for another PR 😅
I'll merge this on Monday so I'm around if anything goes wrong


Error 3840 for Parse logout/login calls

I got Parse Server 2.2.22 running on AWS with Bitnami.
Every other Parse calls work perfect, but I'm getting this following error 3840 only when attempting to login a user with [PFUser logInWithUsernameInBackground].
error	NSError *	domain: @"NSCocoaErrorDomain" - code: 3840	0x000060800045bd20
@"NSDebugDescription" : @"JSON text did not start with array or object and option to allow fragments not set."

Monitoring the network, I'm getting these responses from my Parse server for the log in call:
URL:		http://myserver/parse/login
Response Code:	503 Service Unavailable

According to this issue on GitHub https://github.com/ParsePlatform/parse-server/issues/1855 it appears that this is related to the MongoDB version and it's a timeout issue, and they managed to fix it by editing this:
package.json
Edit dependency: "mongodb": "2.1.18"

But there is no "package.json" with this kind of config on Bitnami Parse Server, so I can't figure out what the similar fix would be for a Bitnami stack.
My MongoDB version is:
bitnami@ip-:/opt/bitnami/apps/parse/htdocs/logs$ mongod --version
db version v3.0.9
git version: 20d60d3491908f1ae252fe452300de3978a040c7

ATTEMPTED SOLUTION HAS FAILED:
I temporarily switched back to the original server "https://api.parse.com/1" and I was able to figure out what the error really was about:
@"code" : 137
@"error" : @"Only one session is allowed per user/installation pair"

So, it looks like a PFSession issue.
Therefore, I tried to logout the user with "PFUser logOutInBackgroundWithBlock", and clear the current session before I log them back in.
But while "https://api.parse.com/1" doesn't return any error during PFUser logout/login, my own server at "http://myserver/parse/login" with Parse Server 2.2.22 still returns this error invariably, for both "PFUser logOutInBackgroundWithBlock" and "PFUser logInWithUsernameInBackground":
error	NSError *	domain: @"NSCocoaErrorDomain" - code: 3840
@"NSDebugDescription" : @"JSON text did not start with array or object and option to allow fragments not set."

Environment Setup

Server

parse-server version 2.2.22
Operating System:     Linux on AWS
Hardware:             AWS
Localhost or remote server? AWS

Database

MongoDB version: 3.0.9
Storage engine:  AWS
Hardware:        AWS
Localhost or remote server? AWS

Not sure what's going on. Had anybody else encountered this error 3840 on your own Parse Server during login/logout?

can you run the server with VERBOSE=1?

Good call. If I start the server with "VERBOSE=1 node /opt/bitnami/apps/parse/htdocs/server.js" everything works very well, as expected. No more errors for "PFUser logOutInBackgroundWithBlock" and "PFUser logInWithUsernameInBackground".
But when I start the server with "sudo /opt/bitnami/ctlscript.sh restart parse" as usual (like I did for my previous notes above), the errors appear again for "PFUser logOutInBackgroundWithBlock" and "PFUser logInWithUsernameInBackground".
Since "server.js" is the very same for both ways of starting the server, I wonder if there is something else that "sudo /opt/bitnami/ctlscript.sh restart parse" does that drives the server to fail the login and logout calls. Any ideas?

Not really, you should probably look into the bitnami startup script and see what'/ going on there. As you mentioned everything is OK when running directly their server script, I'm closing that issue as it's on bitnami's side

Final solution for others who may run Parse Server on AWS with Bitnami. Apparently, it was a issue with permissions on the "logs" folder. Fixed it with this:
sudo chown daemon:daemon -R /opt/bitnami/apps/parse/htdocs/logs


Deformable DETR for Attention Visualization?

Thanks for your great work, I was wondering if it is possible to visualize deformable attention because it is not like DETR, so I was curious how to visualize heat maps of deformable attention

Can you please provide a link to the paper?

https://arxiv.org/abs/2010.04159    This is the thesis connection of deformable detr

@131413ljk hello,have find the way to visualize it?

@131413ljk hello,have you find the way to visualize it?


Swagger allOf inheritance generates required field as option

The swagger allOf inheritance generates required field as option, for example in the extended pet-store example.

Fixed in v.0.1.4


Remove dependency on Nocilla

Went with a small custom network stub to suit Siesta’s somewhat peculiar needs.
Removing Nocilla eliminates some kludgy race condition workarounds, and paves the way for full SwiftPM support.
Fixes #60.

It feels so good to merge this.


API that has custom schema, falls back to DefaultSchema if initialized via another Application or Service

Describe what is not working as expected.
I have a Service (has API + UI) that uses a custom EF Schema name. A strange issue happens when the service hasn't been initialized or accessed yet, because of a redeployment, IIS or AppPool reset .
If I call the Application first, which then invokes the service, for whatever reason, the service defaults to expecting a "dbo" schema. The "dbo" schema doesn't exist and I never created it. I have a custom schema for the service. So the service complains that it did not find the "dbo" schema and fails to return results, totally ignoring what I have specified as the schema name in code.
To fix this, I have make sure every time, that before the application calls the service, I first warm up the service, by hitting its UI or API endpoints first. When I do this, the service picks up my Custom Schema name and it works fine. So when my application calls this pre-initialized service, it is able to find the tables under my Custom Schema and returns results.
The only difference in these two cases is that, the service can work with the database only if it was invoked separately first, followed by subsequent application calls. However, if it was initialized as a result of a first call from application, it goes looking for "dbo" schema and complains when it doesnt find a table under "dbo" schema.
I tried setting  Database.SetInitializer<MyDbContext>(null); to disable automatic migrations but that didn't work.
The only place that I could find the string "dbo" getting mentioned is the ".resx" file of my first migration (I only have one right now). I assume it was auto-generated when I called "Add-Migration".
I haven't tried changing the ".resx" file DefaultSchema entry manually, as the migration is already applied, and it would be a dirty trick even if it worked.
Is there a way to control the schema name when calling "Add-Migration"?
If you are seeing an exception, include the full exceptions details (message and stack trace).
System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Invalid object name 'dbo.MyTable'.
Steps to reproduce
Further technical details
EF version: 6.2.0
Database Provider: (EntityFramework.SqlServer)
Operating system: (Windows 10)
IDE: (Visual Studio 2017 15.6)

EF Team Triage: This issue is lacking enough information for us to be able to effectively triage it. In particular, it is missing the following information requested in the new issue template. Can you please provide this information?

Steps to reproduce

Ideally include a complete code listing that we can run to reproduce the issue.
Alternatively, you can provide a project/solution that we can run.
BTW we're not just doing this to be mean :smile:... we get a lot traffic on this project and it takes time to attempt to reproduce an issue based on fragments of information. In addition, our attempt is often unsuccessful as the exact conditions required to hit the issue are often not explicitly included in the code provided. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we ask that folks give us a self-contained way to reproduce an issue.
For a guide on submitting good bug reports, read Painless Bug Tracking.
BTW this is a canned response and may have info or details that do not directly apply to this particular issue. While we'd like to spend the time to uniquely address every incoming issue, we get a lot traffic on the EF projects and that is not practical. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we use canned responses for common triage decisions.

EF Team Triage: Closing this issue as the requested additional details have not been provided and we have been unable to reproduce it.
BTW this is a canned response and may have info or details that do not directly apply to this particular issue. While we'd like to spend the time to uniquely address every incoming issue, we get a lot traffic on the EF projects and that is not practical. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we use canned responses for common triage decisions.


pass component id to on-load

Per
https://github.com/shama/on-load/issues/15
https://github.com/shama/on-load/commit/bf45f30e544cb8fff22a90fe533cc19aeb89e40d

v5.0.3 :tada:


feat/#3 added a realm to import folder and updated docker-compose.yml

closes #3
read readme for details

Hello @pleszr !
Well done,
docker-compose.yml -> straightforward and clean
volumes:
- ./import:/opt/keycloak/data/import
command: ["start-dev", "--import-realm"]
As I see it, we are attaching a volume to the container and importing the realms based on what we have in the import folder.


Add new feature allowing a user to hide the main window when closing it

Add new feature allowing a user to hide the main window when closing it
Description

Added a new setting in the GUI
Modification of the associated code in index.js,config.js,EditSettingsForm.js,EditSettingsScreen.js
Added basic translation

Motivation and Context

This feature fix https://github.com/getferdi/ferdi/issues/1087
Screenshots

Checklist:

[X] My pull request is properly named
[X] The changes respect the code style of the project ($ npm run lint)
[X] I tested/previewed my changes locally

@1mm0rt41PC Nice one, thank you!
@all-contributors please add 1mm0rt41PC for code


etcdctl/ctlv3: close bolt.DB in snapshot status

/cc @heyitsanthony

lgtm-- while you're at it can this change dbStatus to open the db with 0400, too? thanks!

@heyitsanthony Just fixed to 400 too. Thanks. Merging in greens.

lgtm


Refactor models: where to store name & uid?

currently we store the slack name and uid (user id) on the Account, but update it if you log in from a different slack instance, if you have the same email in both.
recommend: all slack info stored on Authentication, or on a SlackAccount model, not on the Account.

@gleenn agree?  disagree?  discuss later?


How to provide an implementation for an interface or at least mock it?

Hi,
for testing purpose, I used you guys' library to generate quick random bean. However, there is a problem with a class, which has an interface as an attribute. This interface doesn't do anything in the test and will not be needed. Is there any way to provide an implementation for this interface or at least mock this interface to avoid the exception:
Caused by: org.jeasy.random.ObjectCreationException: Unable to create a random instance of type interface com.example.ExampleInterface
thanks,

Hi,
try enabling classpath-scanning, see: https://github.com/j-easy/easy-random/wiki/Randomization-parameters#classpath-scanning

Problem solved with:
EasyRandomParameters parameters = new EasyRandomParameters()
            .randomize(InterfaceExample.class, InterfaceExampleImpl::new)


Bump some test timeouts.

On Darwin, we hit the 60-minute timeout if bootstrap takes more than
about 6 minutes, which it often does.
QEMU is hitting the 30-minute timeout on the "Run all tests" step.
Problem
Tests timing out.
Change overview
Increase timeouts.
Testing
Tests will hopefully not time out.

It seems the rename of Wifi to WiFi causes errors :( Will have to follow up on ToT

/rebase


Module not found: Error: Can’t resolve ‘react-dom/client’ in 'node_modules/evergreen-ui/esm/toaster/src’

Some internal users have reported a warning from the dynamic import of react-dom/client in the Toaster component that was added in #1494. It seems to still "work", but I'm not super familiar with esm - perhaps we should roll this change back and deal with the original ReactDOM.render warning.

Try "npm i react-dom/client -f"


Alignment of "Shop by Category" section is incorrect

Describe the bug
Current Behaviour

As you can see the alignment between the three sections is not appropriate.

Also the "Shop now" button is not correctly aligned, it should be centre aligned.
Expected behaviour
The spacing between all those three sections should be equal.
Screenshots
No response
Additional context
No response

Hi @Kanika637,
assign me, please

Hey @Kanika637 would like to contribute to it!

As per first come first serve @priyanshusingh305, Assigning you the issue!

@Devesh-coder, We have more issues, you can work on them!🚀

@Kanika637

are these alignments are good?
pr request #116


[Bug] Add MenuCRUD version bump to v5 upgrade docs?

Bug report
What I did
Upgrade to Backpack 5 and install the pro tools in our test environment
What I expected to happen
Achieve the upgrade
What happened
I get a dependency error:
Problem 1
- Conclusion: don't install backpack/crud 5.0.14
- Conclusion: don't install backpack/crud 5.0.13
- Conclusion: don't install backpack/crud 5.0.12
- Conclusion: don't install backpack/crud 5.0.11
- Conclusion: don't install backpack/crud 5.0.10
- Conclusion: don't install backpack/crud 5.0.9
- Conclusion: don't install backpack/crud 5.0.8
- Conclusion: don't install backpack/crud 5.0.7
- Conclusion: don't install backpack/crud 5.0.6
- Conclusion: don't install backpack/crud 5.0.5
- Conclusion: don't install backpack/crud 5.0.4
- Conclusion: don't install backpack/crud 5.0.3
- Conclusion: don't install backpack/crud 5.0.2
- Conclusion: don't install backpack/crud 5.0.1
- Conclusion: don't install backpack/crud 5.0.0
- backpack/menucrud 2.0.5 requires backpack/crud ^4.1.0|^4.0.0 -> satisfiable by backpack/crud[4.0.x-dev, 4.1.x-dev].
- backpack/menucrud 2.0.0 requires backpack/crud ^4.0.0 -> satisfiable by backpack/crud[4.0.x-dev, 4.1.x-dev].
- backpack/menucrud 2.0.1 requires backpack/crud ^4.0.0 -> satisfiable by backpack/crud[4.0.x-dev, 4.1.x-dev].
- backpack/menucrud 2.0.2 requires backpack/crud ^4.0.0 -> satisfiable by backpack/crud[4.0.x-dev, 4.1.x-dev].
- backpack/menucrud 2.0.4 requires backpack/crud ^4.1.0|^4.0.0 -> satisfiable by backpack/crud[4.0.x-dev, 4.1.x-dev].
- backpack/menucrud 2.0.5 requires backpack/crud ^4.1.0|^4.0.0 -> satisfiable by backpack/crud[4.0.x-dev, 4.1.x-dev].
- backpack/menucrud v2.0.3 requires backpack/crud ^4.0.0 -> satisfiable by backpack/crud[4.0.x-dev, 4.1.x-dev].
- Can only install one of: backpack/crud[v5.x-dev, 4.1.x-dev].
- Can only install one of: backpack/crud[v5.x-dev, 4.0.x-dev].
- Can only install one of: backpack/crud[v5.x-dev, 4.0.x-dev].
- Installation request for backpack/crud ^5.0.0 -> satisfiable by backpack/crud[5.0.0, 5.0.1, 5.0.10, 5.0.11, 5.0.12, 5.0.13, 5.0.14, 5.0.2, 5.0.3, 5.0.4, 5.0.5, 5.0.6, 5.0.7, 5.0.8, 5.0.9, v5.x-dev].
- Installation request for backpack/menucrud ^2.0 -> satisfiable by backpack/menucrud[2.0.0, 2.0.1, 2.0.2, 2.0.4, 2.0.5, v2.0.3].
What I've already tried to fix it
We upgraded to 4.1.69 backpack, but still have the same error
Is it a bug in the latest version of Backpack?
After I run composer update backpack/crud the bug... is it still there?
YES
Backpack, Laravel, PHP, DB version
Backpack: 4.1.69
php 7.4
When I run php artisan backpack:version the output is:
PHP VERSION:
PHP 7.4.3 (cli) (built: Nov 25 2021 23:16:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
LARAVEL VERSION:
v8.83.8@cf430301ad17656b3d918995bcdd0454c3c119b9
BACKPACK VERSION:
4.1.69@248e2e034cedcffe01732cdce01fb3d1ecad9ffa

Hey @miquelangeld ,
Can you please try bumping the "backpack/menucrud" version to  "^3.0.0" in your composer.json, then running composer update again? Does that fix it for you?
Cheers!

(we didn't mention that in the upgrade guide, but it looks to me like that's needed - so that might be our mistake)

Hey @miquelangeld and @tabacitu
I had answered this some days ago on gitter. I've reworded the text in https://github.com/Laravel-Backpack/docs/pull/339 to better reflect the backpack ecosystem (not all packages work without version bump).
I don't think there is much more we can do here, going to close this!
Thanks guys, cheers!

Hey @miquelangeld ,
Can you please try bumping the "backpack/menucrud" version to "^3.0.0" in your composer.json, then running composer update again? Does that fix it for you?
Cheers!

Hi @tabacitu I will try , thanks

Never mind, It was a composer version issue, using composer v2 worked like a charm. I just needed to bump backpack/menucrud and also backpack/langfilemanager


Inconsistent Update Behavior

Realistically 2 issues here.

1.) Greenkeeper is evaluating "grid-list": "2.0.0-alpha.4-3" > "grid-list": "2.0.0-alpha.6"
2.) And here is the really strange part, you would expect this behavior to be true for all of the material2 packages. For instance, @angular2-material/icon

Let me know if you need more information. Also thanks for saving myself and my team a ton of time on maintenance :)

Hey @d3viant0ne,
thanks for reporting this. The thing is that Greenkeeper is right about the evaluation of the versions. 2.0.0-alpha.4-3 is actually greater than 2.0.0-alpha.6 (see semver spec):
> semver.compare('2.0.0-alpha.4', '2.0.0-alpha.6')
-1
> semver.compare('2.0.0-alpha.4.3', '2.0.0-alpha.6')
-1
> semver.compare('2.0.0-alpha.4-3', '2.0.0-alpha.6')
1

The reason for this is that numeric identifiers always have a lower precedence than non-numeric ones. And while 6 is numeric 4-3 is not. For it to be in line with the spec it would need to be 4.3.
However as you noticed there was also something going wrong. This was because we didn't want to pin to prerelease versions. So we look for the first version that does not have a prerelase tag. In your cases there were none, so it ended up with a rather random prerelease version. In most cases this was -alpha.4, which is not greater than -alpha.6, so it didn't bump it, but in the one cast it found -alpha.4-3 which seemed greater so you received a PR.
So far for the explanation of what happened ☺ I will look into this, so that in the future this will pin to the latest prerelease version if the version specified is a prerelease as well.
However for you use case, Greenkeeper will still work unexpectedly.  Since if the next version is alpha.6-1, we will happily send you a PR this. After you'd merge it, you wouldn't get a alpha.7 update though, only one for alpha.7-1 -- Since we don't do downgrades.
I'd recommend that you switch to semver compatible prereleases by using alpha.6.1 in the future. Then you will get Greenkeeper updates as expected.


Save index in disk.

Currently , it keeps indexes in Memory, that cause out of memory , swapping even a regular sized project . if we could keep indexes in disk it will be a lot more reliable.
My proposal is :

json dump of indexes for each files
each index file contains {'filepath' : [{index Objects}]}
Look up related path from json indexes.

Thoughts?

Yeah, saving the index somewhere is definitely necessary, and using json dumps feels like the path of least resistance. Are you suggesting a separate json file for each file’s symbol index? Or just a single index file? Or some combination (like one index per top-level directory)? I’m not clear on the architecture. Also, is there a localstorage-like alternative to directly writing files provided by Atom that we could use?
I was thinking it would be nice to persist the indexes for each project beyond it being open in Atom, but that gets hard with the fact that files can easily change while not open in Atom, invalidating the index, which would then mean having to save and compare checksums for the files to invalidate cached indexes or similar. So if we aren’t going to try to persist those indexes, I suppose the simplest/fastest storage mechanism would be best.
Another thought: if there are separate files containing the json dump for each file, that will facilitate an asynchronous process for indexing a project’s symbols, which is great, but it will mean having to write to and read from a lot of files, even after the index has been built.

I never have experience of indexdb on atom , what do you think about it?

PouchDB is an embedded database engine inspired by CouchDB. In NW.js, it can be used as an abstraction over IndexedDB or WebSQL (via the Chromium implementations) or directly on LevelDB (via the node.js module)

We can use it , thats what i got from electron issue , which refrenced to nwjs use of IndexedDB , by zbenz

https://github.com/atom/electron/issues/897


#130341355 redesign authentication ui

What does this PR do?
This PR adds an authentication pop up to the landing page. The pop up gives the user the options of signing in or signing up with our custom authentication system or signing in with twitter, facebook or google.
Description of Task to be completed?
The task was to create two modal dialogs that would be displayed over the landing page if a user clicked the login/signup button on the landing page navbar. The entered details would be sent to the backend and a token retrieved.
How should this be manually tested?
Pull from this feature branch, start your local mongodb using the command sudo service mongod start, then start the app using the command nodemon server.js. Enter the address http:localhost:3000 into your browser address bar and press the enter key. When the page loads, click on the LOGIN/SIGNUP button on the nav bar and select any social login option. Alternatively, you can click on the signup link and create a cards for humanity account with which you can login.
Any background context you want to provide?
What are the relevant pivotal tracker stories?
#130341355 Re-Design UI for new user authentication screen
Screenshots (if appropriate)

Questions:

@bolorundurowb this PR has way to many commit in it, your commits are supposed to be atomic and in dedicated branches from which you then make pull requests. You should also use more descriptive commit messages, you duplicated corrected scss errors raised by HoundCI too many times

@andela-kakpobome I am sorry about the commit history, I didn't want to create a new branch.


Handle error gracefully when app url scheme is not found

Can we add an error handler to the AmazonAppUri processing? So that if someone does not have the app yet installed it is not crashing the authentication process? Then an hint can be displayed, that the app should be installed.
cc: @shahzaibj

@microsoft-github-policy-service agree

@denniskniep I'm not sure what a hint could be for installing the app. Is the app on PlayStore and/or is there a URL for downloading this app?

Then an hint can be displayed, that the app should be installed.
@shahzaibj  What I meant with that was:
Currently the authentication process crashes entirely, which means the actual website is not visible anymore to the user, therefore the authentication process can not render any guidance to the user to resolve that issue. A potential guidance from the authentication process could be a hint, that the user should install an app.

But that is nothing I see in that library here. It must be implemented by the individual authentication process.
However, to enable this, it would be good to catch that error.

@shahzaibj implemented your suggestions

Hi @shahzaibj,
can you propose someone who can be the second reviewer?

@rpdome any further feedback?  Can we merge this?

@rpdome  I kept up with recent changes in repo with rebase

@denniskniep how did you test this?
Can that be written as an automated test?

Hi,
I merged dev into that pr to resolve conflicts
@iamgusain  @shahzaibj  There are now two approvals, can we merge this?