The "to be completed products" are… completed

What

[ ] The "to be completed products" are… completed

Screenshot

Strange. What if you refresh the list?

Assuming that the problem is that someone else just fixed them, perhaps the solution would be - for those "very dynamic" products likely to disappear (e.g. "to-be-completed" products) - never to use the database first but always check the server.

I believed we had nocache=1 on the previous query as well

(and this issues happens even after refresh)

@teolemon Actually none of the products you mentioned are perfect:

https://fr.openfoodfacts.org/produit/7613035530799/nesquik-moins-de-sucres-poudre-cacaotee-boite-350g-nestle
https://fr.openfoodfacts.org/produit/3182180002115/grilletine-ble-complet-x18-pasquier
https://fr.openfoodfacts.org/produit/5449000054227/coca-cola
https://fr.openfoodfacts.org/produit/3366321052416/st-hubert-bio-omega-3-230-g-doux-sans-hdp
https://fr.openfoodfacts.org/produit/5010477356239/muesli-bio-chocolat-noir-jordans
https://fr.openfoodfacts.org/produit/17192008/omega-3-sel-de-mer-becel

That said, perhaps you cannot see their incompleteness in Smoothie. But on the website you can.

What query are we currently doing ? In V1 we did:
    /**
     * This method gives a list of incomplete products
     */
    @GET("state/to-be-completed/{page}.json?nocache=1")
    suspend fun getIncompleteProducts(
        @Path("page") page: Int,
        @Query("fields") fields: String
    ): Search

https://github.com/openfoodfacts/openfoodfacts-androidapp/blob/a51c675ee127db12178b4014bc8dd763371f6e88/app/src/main/java/openfoodfacts/github/scrachx/openfood/network/services/ProductsAPI.kt#L319

@teolemon I'm using what's on off-dart in ToBeCompletedConfiguration:
https://world.openfoodfacts.org/api/v2/search?states_tags=en:to-be-completed&cc=fr&lc=fr
({"count":920322,"page":1,"page_count":24,"page_size":24,"products":[{...
And that's tested in off-dart: all results have a 'en:to-be-completed' status:
https://github.com/openfoodfacts/openfoodfacts-dart/blob/master/test/api_getToBeCompletedProducts_test.dart#L45
expect(product.statesTags!, contains('en:to-be-completed'));

What's changing the experience is probably the ranking that's not explicit (search will not rank by default by date unlike facets), and potentially caching ( hides the last hour's additions)

@teolemon So what we need in Smoothie is a "sort by last modified" and a systematic refresh (no db cache)?

the refresh is probably about the server, but you have a point locally as well, probably

Part of the solution depend on https://github.com/openfoodfacts/openfoodfacts-dart/pull/532

@teolemon For the record, from off-dart 1.24.0 we have more flexibility, and we can apply a sort option. I tried with last_modified_t and got the same results.
That said, the "completed" state is quite demanding. Take a look at this guy (https://fr.openfoodfacts.org/produit/3350033656604/chair-de-tomates-au-basilic-monoprix-bio):

en:to-be-completed // not completed
en:nutrition-facts-completed
en:ingredients-completed
en:expiration-date-to-be-completed // not completed
en:packaging-code-completed
en:characteristics-completed
en:origins-completed
en:categories-completed
en:brands-completed
en:packaging-completed
en:quantity-completed
en:product-name-completed
en:photos-to-be-validated // not completed
en:packaging-photo-to-be-selected // not completed
en:nutrition-photo-selected
en:ingredients-photo-selected
en:front-photo-selected
en:photos-uploaded

14 states are completed and only 3 (+1) are not. It's definitely not the kind of products that would be grateful if completed.
On the other hand, you mentioned that ingredients, categories and nutrition facts were important: perhaps we should rather focus rather on those not completed fields. And now we can do that, like that:
      ProductSearchQueryConfiguration(
        language: language,
        country: country,
        fields: ProductQuery.fields,
        parametersList: <Parameter>[
          StatesTagsParameter(
            map: <State, bool>{
              State.CATEGORIES_COMPLETED: false,
            },
          ),
          PageSize(size: pageSize),
          PageNumber(page: pageNumber),
          const SortBy(option: SortOption.EDIT),
        ],
      );

What we really want possibly is "https://world.openfoodfacts.org/?sort_by=created_t", with products that don't have any score, which are the ones you can most help with.

https://world.openfoodfacts.org/state/en:categories-to-be-completed?sort_by=last_modified_t

Ok, so:

we replace our search about "to be completed" into "categories to be completed"
we do that only for the all-to-be-completed search (not for the user-impacted-to-be-completed search)


Twitch API calls throw Webexeptions

Hey,
I just continued work on my Twitch Bot and tried to implement the UpdateGame and UpdateStatus function but I just get Webexeptions and yes im sure I am using a token with the correct scopes. (And its working fine for some reason with your example app..)
Any idea what this could be?

Nevermind I am dump.. found my own fail just now..


Add Dockerfile v Buildpacks blog

Two requests for changes:

In the sentence: You need a specialized tool—a “platform,” in CNB-speak—that knows how to access the builder and orchestrate the creation of your application image.

Please make the word platform a link to https://buildpacks.io/docs/concepts/components/platform

Please exchange the position of the back ticks and the period in the three locations it shows up as .to. so that the period is outside of the formatting box created by the back ticks.

Otherwise, looks great! Thanks so much!


segfault when yielding NRT allocated array from nopython mode generator

With numba-0.19.1-np19py27_148 on OSX, this script produces a segfault:
import numpy as np
import numba

@numba.jit(nopython=True)
def random_directions(n):
    for i in range(n):
        cos_theta = np.random.uniform(-1, 1)
        sin_theta = np.sqrt(1 - cos_theta**2)
        phi = np.random.uniform(0, 2 * np.pi)
        vec = np.empty(3)
        vec[0] = sin_theta * np.cos(phi)
        vec[1] = sin_theta * np.sin(phi)
        vec[2] = cos_theta
        yield vec

print(list(random_directions(5)))

Minimal case:
@numba.jit(nopython=True)
def random_directions(n):
    for i in range(n):
        vec = np.empty(3)
        yield vec   # <--- error occurred just before yielding

Traced down to https://github.com/numba/numba/blob/d3040076c5cc8065c89e4c7e9f5eb5bf58cb4d41/numba/pythonapi.py#L1242
Seems to relate to the env_body.


journal: fix race between flushing and disabling

Exclusive writes need to flush the journal and then disable it to ensure they write directly to the servers. But between the flush and the disable, other operations (like block archives or deletes) can sneak in, causing the disable to fail.
To fix this, we need to somehow guarantee that they will flush all their current data before they are shutdown.  But since those are two separate calls, another write could sneak in between the flush and the shutdown, causing an error.  We can't prevent this with more locking in tlfJournal, because there might already be a reference to the tlfJournal floating around (e.g., in JournalServer), and if we blindly shut down, the code holding that reference will hit an error instead of being passed through to the real servers while the journal is disabled.
Instead, use a WaitGroup to implement a sort of reference counting, so we can prevent disabling the tlfJournal until all the references are dropped.  We can then add a way to disable+flush the journal atomically, and use that for exclusive writes.
Issue: KBFS-1520

Ugh, didn't get these test failures locally.  Will look tonight, but still worth reviewing if you get to it first.

All right, test failures are finally cleared up.  Ready for full review.

@akalin-keybase: Ready for another look!

CI flake is unrelated, opened KBFS-1533 for it.

Addressed your review.  Let me know when you've finished your morning look, thanks!


NIFI-10051: Clear Controller Services' state in a background thread i…

…nstead of the web thread.

Summary
NIFI-00000
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[ ] Apache NiFi Jira issue created

Pull Request Tracking

[ ] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
[ ] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000

Pull Request Formatting

[ ] Pull Request based on current revision of the main branch
[ ] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[ ] Build completed using mvn clean install -P contrib-check

[ ] JDK 8
[ ] JDK 11
[ ] JDK 17

Licensing

[ ] New dependencies are compatible with the Apache License 2.0 according to the License Policy
[ ] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

[ ] Documentation formatting appears as expected in rendered files

+1 LGTM, thanks for the improvement! Merging to main


Internal Server Error (502) after I've updated to 1.4.3 (NGINX+uWSGI)

Hello Antoine,
After I have updated from 1.4.2 to 1.4.3 and have deployed a fresh install, I get this error messages from uWSGI log when I try to access the web interface:
*** Starting uWSGI 2.0.12 (64bit) on [Thu Feb  4 18:27:01 2016] ***
compiled with version: 4.9.3 on 04 February 2016 18:25:29
os: Linux-4.3.5-hardened-****** #1 SMP Thu Jan 21 19:19:08 JST 2016
nodename: ******
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 3
current working directory: /
writing pidfile to /var/run/uwsgi_mdb/mdb.pid
detected binary path: /usr/bin/uwsgi
chdir() to /srv/test/mdb
your processes number limit is 8003
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
*** Cache "mdb" initialized: 64MB (key: 2136 bytes, keys: 2136000 bytes, data: 65536000 bytes, bitmap: 0 bytes) preallocated ***
uwsgi socket 0 bound to UNIX address /run/uwsgi_mdb/mdb.sock fd 4
Python version: 2.7.11 (default, Feb  3 2016, 19:05:41)  [GCC 4.9.3]
Set PythonHome to /srv/test/venv
Python main interpreter initialized at 0x7f608701e480
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 291040 bytes (284 KB) for 3 cores
*** Operational MODE: preforking ***
WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x7f608701e480 pid: 28794
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 28794)
spawned uWSGI worker 1 (pid: 28803, cores: 1)
spawned uWSGI worker 2 (pid: 28804, cores: 1)
cache sweeper thread enabled
Traceback (most recent call last):
  File "/srv/test/venv/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 170, in __call__
    self.load_middleware()
  File "/srv/test/venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 52, in load_middleware
    mw_instance = mw_class()
  File "/srv/test/venv/lib/python2.7/site-packages/django/middleware/locale.py", line 24, in __init__
    for url_pattern in get_resolver(None).url_patterns:
  File "/srv/test/venv/lib/python2.7/site-packages/django/core/urlresolvers.py", line 401, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/srv/test/venv/lib/python2.7/site-packages/django/core/urlresolvers.py", line 395, in urlconf_module
    self._urlconf_module = import_module(self.urlconf_name)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "./mdb/urls.py", line 5, in <module>
    url(r'', include('modoboa.urls')),
  File "/srv/test/venv/lib/python2.7/site-packages/django/conf/urls/__init__.py", line 33, in include
    urlconf_module = import_module(urlconf_module)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/urls.py", line 31, in <module>
    parameters.apply_to_django_settings()
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 370, in apply_to_django_settings
    for form in get_admin_forms():
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 337, in get_admin_forms
    "form": formdef["form"](*args, **kwargs)}
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/core/app_settings.py", line 261, in __init__
    super(GeneralParametersForm, self).__init__(*args, **kwargs)
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 62, in __init__
    self._load_initial_values()
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 96, in _load_initial_values
    if not db_utils.db_table_exists("lib_parameter"):
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/lib/db_utils.py", line 24, in db_table_exists
    raise Exception("unable to determine if the table '%s' exists" % table)
Exception: unable to determine if the table 'lib_parameter' exists

/etc/uwsgi.d/mdb.ini:
[uwsgi]
pidfile = /run/uwsgi_%n/%n.pid
daemonize = true
daemonize = /srv/test/%n.log
socket = /run/uwsgi_%n/%n.sock
enable-threads = true
no-default-app = true
master = true

workers = 10
cheaper = 2
cheaper-step = 1

uid = modobooa
gid = nginx
plugins = python27
virtualenv = /srv/test/venv
chdir = /srv/test/%n
module = %n.wsgi:application
vacuum = true

cache2 = name=mdb,items=1000

pip list:
dj-database-url (0.4.0)
Django (1.8.9)
django-passwords (0.3.4)
django-reversion (1.9.3)
django-subcommand2 (0.1.1)
django-versionfield2 (0.4.0)
django-xforwardedfor-middleware (1.0)
djangorestframework (3.3.1)
factory-boy (2.6.0)
fake-factory (0.5.3)
LEPL (5.1.3)
modoboa (1.4.3)
MySQL-python (1.2.5)
passlib (1.6.5)
pip (8.0.2)
progressbar (2.3)
pycrypto (2.6.1)
requests (2.9.1)
rfc6266 (0.0.4)
setuptools (19.6.2)
six (1.10.0)
wheel (0.26.0)

For now I'm stuck with the version 1.4.2.

Have you changed something to database credentials ?

No, nothing. If I start from scratch (delete venv, deployed instance, etc.), and install modoboa 1.4.2, using same database credentials, everything work fine.

Hi, I think this issue is the same than #835. Could you check please ?

I applied the commit, but I still got 502 error. Though, the uwsgi log is reporting a different error now:
Traceback (most recent call last):
  File "/srv/test/venv/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 170, in __call__
    self.load_middleware()
  File "/srv/test/venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 52, in load_middleware
    mw_instance = mw_class()
  File "/srv/test/venv/lib/python2.7/site-packages/django/middleware/locale.py", line 24, in __init__
    for url_pattern in get_resolver(None).url_patterns:
  File "/srv/test/venv/lib/python2.7/site-packages/django/core/urlresolvers.py", line 401, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/srv/test/venv/lib/python2.7/site-packages/django/core/urlresolvers.py", line 395, in urlconf_module
    self._urlconf_module = import_module(self.urlconf_name)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "./mdb/urls.py", line 5, in <module>
    url(r'', include('modoboa.urls')),
  File "/srv/test/venv/lib/python2.7/site-packages/django/conf/urls/__init__.py", line 33, in include
    urlconf_module = import_module(urlconf_module)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/urls.py", line 31, in <module>
    parameters.apply_to_django_settings()
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 370, in apply_to_django_settings
    for form in get_admin_forms():
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 337, in get_admin_forms
    "form": formdef["form"](*args, **kwargs)}
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/core/app_settings.py", line 261, in __init__
    super(GeneralParametersForm, self).__init__(*args, **kwargs)
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 62, in __init__
    self._load_initial_values()
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 96, in _load_initial_values
    if not db_utils.db_table_exists("lib_parameter"):
  File "/srv/test/venv/lib/python2.7/site-packages/modoboa/lib/db_utils.py", line 12, in db_table_exists
    return table in connection.introspection.table_names()
  File "/srv/test/venv/lib/python2.7/site-packages/django/db/backends/base/introspection.py", line 57, in table_names
    return get_names(cursor)
  File "/srv/test/venv/lib/python2.7/site-packages/django/db/backends/base/introspection.py", line 53, in get_names
    return sorted(ti.name for ti in self.get_table_list(cursor)
  File "/srv/test/venv/lib/python2.7/site-packages/django/db/backends/mysql/introspection.py", line 48, in get_table_list
    cursor.execute("SHOW FULL TABLES")
  File "/srv/test/venv/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/srv/test/venv/lib/python2.7/site-packages/django/db/utils.py", line 98, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/srv/test/venv/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
    return self.cursor.execute(sql)
  File "/srv/test/venv/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 124, in execute
    return self.cursor.execute(query, args)
  File "/srv/test/venv/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/srv/test/venv/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
django.db.utils.OperationalError: (2006, 'MySQL server has gone away')

Have you tried to restart MySQL ?

Yes. I did a little research on what "MySQL server has gone away" mean. But still not working. As I said above, the version 1.4.2 is running fine in the same server, database, configurations, etc.

I don't understand. I've just deployed a fresh modoboa instance (using the installer) with MySQL and I don't encounter your issue.
Is there anything special with your architecture ? (chroot, etc.)

@tonioo No, nothing special. I'll investigate further.
Thank you for your time and sorry for the trouble.
Peace.


wave_send_repeat() does double the delay time of pulses

Hello,
i'm recording a bunch of pulses and re-playing them quite similar to the example http://abyz.me.uk/rpi/pigpio/python.html#wave_add_generic
my application records the remote control's signal for a power switch (or any other 433 MHZ OOK device) .. and replays the recorded signal later, e.g. to allow sort of home automization.
see https://github.com/hayguen/rc433_rpi
and https://github.com/hayguen/rc433_rpi/blob/master/tx_csv.py
using python3 and wave_send_repeat() failed to control the power switch at first attempt.
i thought, that the timing is not accurate enough,
that i've written https://github.com/hayguen/rc433_rpi/blob/master/tx_csv_pigpio.c
this worked - even using busy loops.
now, having recorded the transmitted signal of tx_csv.py with an RTLSDR, i realized that all pulse delays were doubled on air!
thus, halving all delay values (see ~line 50 in tx_csv.py) does work and switch the power.
i've tested with Raspberry Pi 3B+ and the latest Raspbian (2020-02-14) with the pigpio package containing version 71 and latest github master with version v74.
later (next days), i could test with a Raspberry Pi 1 and a 4B.
i tried to have a look into the sources .. but i could not understand. i'm missing an explanation how gpioWaveTxSend() works with DMA stuff. Especially how is DMA utilized to produce the delays?
however, if / when there's a bugfix, how can i determine in python if i should halve the delays - or not?
kind regards,
hayati

Could you please prepare a short Python script which demonstrates this problem?
E.g. a script which is meant to generate pulses of 100 µs but actually results in pulses of 200 µs.

try following script .. and connect RXPIN with TXPIN:
#!/usr/bin/env python3

import sys
import time
import pigpio
import numpy as np

# connect these two pins for testing
TXPIN = 17
RXPIN = 27
# transmit / expect pin/level change every DELAYUS us
DELAYUS = 200
SLEEP_SECS = 0.2   # wait/sleep while transmitting

bufused = 0
bufmax = 64   # rec max 32 pin changes
bufLevel = np.zeros( bufmax, dtype = np.dtype('uint8') )
bufTime  = np.zeros( bufmax, dtype = np.dtype('uint32') )

def cbf(gpio, level, tick):
	global bufused, bufmax, bufTime, bufLevel
	# just save incoming data, to be as fast as possible
	if RXPIN == gpio and bufused < bufmax:
		bufTime[bufused] = tick
		bufLevel[bufused] = level
		bufused = bufused + 1

p = pigpio.pi()
print("pigpio version: ", p.get_pigpio_version())

p.set_mode(TXPIN, pigpio.OUTPUT)
p.write(TXPIN, 0)
p.set_mode(RXPIN, pigpio.INPUT)
p.set_pull_up_down(RXPIN, pigpio.PUD_DOWN)
cb = p.callback(RXPIN, pigpio.EITHER_EDGE, cbf)

pulseTrain=[]
pinMask = 1 << TXPIN
for k in range(10):
  pulseTrain.append(pigpio.pulse(pinMask, 0, DELAYUS))
  pulseTrain.append(pigpio.pulse(0, pinMask, DELAYUS))

p.wave_clear() # clear any existing waveforms
p.wave_add_generic(pulseTrain)
pT = p.wave_create()
# => same result for wave_send_repeat() or wave_send_once()
print("transmitting ..")
p.wave_send_repeat(pT)
#p.wave_send_once(pT)
time.sleep(0.2)
p.wave_tx_stop() # stop waveform
print(".. stopped")

p.wave_clear()
time.sleep(SLEEP_SECS)
p.write(TXPIN, 0)

for k in range(1, bufused):
  deltaT = 0
  if k > 0:
    deltaT = pigpio.tickDiff(bufTime[k-1], bufTime[k])
  newLevel = bufLevel[k]
  print("{}: measured delta {} us, level {} => delay factor {}".format(k, deltaT, newLevel, deltaT / DELAYUS))

i get following output with 400 us between each pin change,
where it should be DELAYUS = 200 us:
pi@raspberrypi:~/rc433_rpi $ ./testDelay.py
pigpio version:  74
transmitting ..
.. stopped
1: measured delta 400 us, level 0 => delay factor 2.0
2: measured delta 400 us, level 1 => delay factor 2.0
3: measured delta 400 us, level 0 => delay factor 2.0
4: measured delta 400 us, level 1 => delay factor 2.0
5: measured delta 400 us, level 0 => delay factor 2.0
6: measured delta 400 us, level 1 => delay factor 2.0
7: measured delta 400 us, level 0 => delay factor 2.0
8: measured delta 400 us, level 1 => delay factor 2.0
9: measured delta 400 us, level 0 => delay factor 2.0
10: measured delta 400 us, level 1 => delay factor 2.0
11: measured delta 400 us, level 0 => delay factor 2.0

by the way: the receive timings are really accurate, i had not expected.

above (doubled delay) result was on Raspberry Pi 3B+ with latest Raspbian.
for completeness, here it's pinout chip infos:
Revision           : a020d3
SoC                : BCM2837
RAM                : 1024Mb
Storage            : MicroSD
USB ports          : 4 (excluding power)
Ethernet ports     : 1
Wi-fi              : True
Bluetooth          : True
Camera ports (CSI) : 1
Display ports (DSI): 1

same SD-card on Raspberry Pi 1B (of a friend) produced quite similar results, doubling the delay:
only the measured delay jittered up to 5 us - think, that is quite ok.
here the chip info of pinout:
Revision           : 000f
SoC                : BCM2835
RAM                : 512Mb
Storage            : SD
USB ports          : 2 (excluding power)
Ethernet ports     : 1
Wi-fi              : False
Bluetooth          : False
Camera ports (CSI) : 1
Display ports (DSI): 1

Interestingly on a Raspberry Pi 4B with following pinout infos:
Revision           : b03111
SoC                : BCM2711
RAM                : 2048Mb
Storage            : MicroSD
USB ports          : 4 (excluding power)
Ethernet ports     : 1
Wi-fi              : True
Bluetooth          : True
Camera ports (CSI) : 1
Display ports (DSI): 1

there is NO error:
pigpio version:  74
transmitting ..
.. stopped
1: measured delta 200 us, level 0 => delay factor 1.0
2: measured delta 200 us, level 1 => delay factor 1.0
3: measured delta 200 us, level 0 => delay factor 1.0
4: measured delta 200 us, level 1 => delay factor 1.0
5: measured delta 200 us, level 0 => delay factor 1.0
6: measured delta 200 us, level 1 => delay factor 1.0
7: measured delta 200 us, level 0 => delay factor 1.0
8: measured delta 200 us, level 1 => delay factor 1.0
9: measured delta 200 us, level 0 => delay factor 1.0
10: measured delta 200 us, level 1 => delay factor 1.0
11: measured delta 200 us, level 0 => delay factor 1.0

Unfortunately it works as expected on my Pi3B+.
./issue.py
pigpio version:  74
transmitting ..
.. stopped
1: measured delta 200 us, level 0 => delay factor 1.0
2: measured delta 200 us, level 1 => delay factor 1.0
3: measured delta 200 us, level 0 => delay factor 1.0
4: measured delta 200 us, level 1 => delay factor 1.0
5: measured delta 200 us, level 0 => delay factor 1.0
6: measured delta 200 us, level 1 => delay factor 1.0
7: measured delta 200 us, level 0 => delay factor 1.0
8: measured delta 200 us, level 1 => delay factor 1.0
9: measured delta 200 us, level 0 => delay factor 1.0
10: measured delta 200 us, level 1 => delay factor 1.0
11: measured delta 200 us, level 0 => delay factor 1.0
12: measured delta 200 us, level 1 => delay factor 1.0
13: measured delta 200 us, level 0 => delay factor 1.0
14: measured delta 200 us, level 1 => delay factor 1.0
...

Hardware	: BCM2835
Revision	: a020d3
Serial		:<PHONE_NUMBER>a17c79
Model		: Raspberry Pi 3 Model B Plus Rev 1.3

Interesting.  Have you looked at the signal with oscilloscope and is it clean?  I'm curious as to why you set the pulldown.

There is a timing problem on some Pis which has never been tracked down.  This may be another example of the same problem.

@joan2937 , is the timing issue you're referring to the one associated with have a monitor/display attached?  I seem to recall something of that nature.

from cat /proc/cpuinfo i get exactly same as you:
Hardware        : BCM2835
Revision        : a020d3
Serial          : 00000000ee3a9c68
Model           : Raspberry Pi 3 Model B Plus Rev 1.3

changing to PUD_OFF gives same doubled delay on my Pi 3B+.
i don't have an oscilloscope here at home :-(
i could try on one more Pi 3B+ ..
but i would like to remind, that i have the doubled delay also on a Pi 1.
any idea, how we could track this down? how can i assist?

@joan2937 , is the timing issue you're referring to the one associated with have a monitor/display attached? I seem to recall something of that nature.

i have doubled delay on Pi 3B+ with display connected (working with screen/keyboard)
but also when working headless over ssh: same double delay.

@guymcswain That sounds right.  It was never resolved.  Nobody ever discovered a pattern as to which Pis were affected or why.

tested on the another Pi 3B+: timing looks GOOD, delay factor is 1.
it's exactly same model (pinout command is in package python3-gpiozero !?!):
Revision           : a020d3
SoC                : BCM2837
RAM                : 1024Mb

cat /proc/cpuinfo delivers:
Hardware        : BCM2835
Revision        : a020d3
Serial          : 000000001fd6c90c
Model           : Raspberry Pi 3 Model B Plus Rev 1.3

@hayguen Were you using the same SD card and PSU on the working and non-working Pi3B+ ?

2nd Pi 3B+:
it was/still is different SD-card. PSU was just same model .. and now is exactly same PSU device.
WiFi is configured on this SD card.
always getting good results with this one.
now changed the SD-card for 2nd Pi 3B+ .. and have to connect Ethernet:
whoooo. now i get the doubled delay!!!
removed Ethernet, configured WiFi on 2nd Pi 3B+:
again: doubled delay.

@hayguen , prior to your initial testing, did you run the pigpio's test suite - x_pigpio.c et al?  If not, can you run them and report the results.

Okay.  I have downloaded and burnt the image.
My initial tests seem to be seeing the same as you, i.e. the waveforms are twice as long as expected.
For my test I did the following after logging in to the image.
sudo pigpiod
pigs m 4 w
pigs wvag 16 0 100 0 16 100
pigs wvcre
pigs wvtxr 0

That should have resulted in a continuous square wave of 100µs on and 100µs off.
Instead I see a square wave of 200µs on and 200µs off (using piscope).
It's good that we can replicate the problem.
That said I am busy at the moment and need to prioritise tasks needed for @guymcswain so can't be sure when I will be able to investigate.

@hayguen , prior to your initial testing, did you run the pigpio's test suite - x_pigpio.c et al? If not, can you run them and report the results.

i had not executed the test suite before - even wasn't aware of it.
here results of x_pigpio:
TEST  5.4  FAILED got 25 (callback: 50)
TEST  5.11 FAILED got 10 (wave tx busy, serial read: 0)

this happended 3 times on gpio25.
then, i changed the pin to gpio8 and gpio7: same results

@hayguen Could you start the pigpio daemon with the -t0 option and see if that works okay.
sudo pigpiod -t0

some more tests / insight:
setting hdmi_safe=1 in /boot/config.txt

connecting a display (before powering the Pi),
the error is gone: my test program and also the x_pigpio tests 5.4 and 5.11 no longer fail.

having the display disconnected (headless), the error is still there; tests 5.4 and 5.11 fail

activating the comment in /boot/config.txt, thus removing hdmi_safe

with display connected, there is no error with my test program and also no error with x_pigpio

having the display disconnected (headless), the error is still there

before having played with hdmi_safe
by default hdmi_safe was commented in /boot/config.txt
and the error occured independent of display connected - or not

@hayguen Could you start the pigpio daemon with the -t0 option and see if that works okay.
sudo pigpiod -t0

that is quite quite interesting!

the display is currently disconnected - thus, i get the delay error
killing the running daemon - and restarting the daemon (NOT the Pi) with option -t0: there is NO delay error :-)

-t value,   clock peripheral, 0=PWM 1=PCM,     default PCM
hmmm, now i remember, that i also played with the audio setting with sudo raspi-config
usually, i set 'force 3.5mm jack' .. what might have provoked the error

let me ask, what are the implications for using PWM or PCM clock?
on what criterions, to make a choice as end user or even programmer, regarding pigpio as a black box?

http://abyz.me.uk/rpi/pigpio/faq.html#Sound_isnt_working

@hayguen , pigpio has a wide user base and has been in existence for several years so changing default config is out of the question.  But I could see value in coming up with a test that could determine if the alternate clock peripheral should be used.  Since you have invested some time on this issue would you be interested in supporting the development of such a test?

Yes, I'd like to help.

http://abyz.me.uk/rpi/pigpio/faq.html#Sound_isnt_working

let me notice, that i had no speakers connected at any time

Off the top of my head, using the C library one could generate pulses for timing measurement and switch between the two clock sources.  If you want to help I'll accept a PR.  Maybe it could be a part of x_pigpio.c

x_pigpio requires that pin GPIO25 is unconnected or open. Suppose, this is why the tests are not automatically executed with every build / make.
the (python) test program (from above) requires having connected 2 pins.
however, both test programs have the problem, that they are executed only once in lifetime and usually not again. thus, end users would not realize the problem :-(
in addition, we know, that the problem depends on sound output configuration and/or connection of display, what might change over time - possibly even at runtime!?
i would prefer something, to run at every start of pigpiod - without any requirements.
can we check the audio output configuration somehow?
can we check the clock settings somehow? what piece of OS kernel / sound driver does reconfigure the PCM clock?
however, can someone point me to some reference documentation? give me a starting point?

Just looking for something simple that users can run when the question comes up.  I don't want to support anything complex nor try to protect against anything a user might do to his system.

Perhaps something like the following.  It should print 1.00 for no problem
#!/usr/bin/env python

import time
import pigpio

GPIO=4
MICROS=1000

pi = pigpio.pi()
if not pi.connected:
   exit()

pi.set_mode(GPIO, pigpio.OUTPUT)

pi.wave_add_generic(
   [pigpio.pulse(1<<GPIO,       0, MICROS),
    pigpio.pulse(      0, 1<<GPIO, MICROS)])
wid = pi.wave_create()
if wid >= 0:
   start = time.time()
   pi.wave_chain([255, 0, wid, 255, 1, 200, 0]) # send wave 200 times
   while pi.wave_tx_busy():
      time.sleep(0.001)
   duration = time.time() - start
   pi.wave_delete(wid)
pi.stop()

EXPECTED_SECS = 400.0 * MICROS / 1000000.0

ratio = duration / EXPECTED_SECS

print("{:.2f}".format(ratio))

@joan2937 , yes this is along the line I'm thinking about.  However, if the result is negative, can the test verify success when the alternate clock is selected.  I don't think that can be done via pigpiod client

i had a similar idea, but did go one step further:
it looks, there is no need to write to any pin, making it possible to test the clock even inside pigpiod.
following script works fine, to detect the erroneous timing - or not,
tested on Pi3B+ with different sound settings and different display connections:
#!/usr/bin/env python3
import time
import pigpio

DELAYUS = 500

p = pigpio.pi()
print("pigpio version: ", p.get_pigpio_version())

pulseTrain=[ pigpio.pulse(0, 0, DELAYUS), pulseTrain.append(pigpio.pulse(0, 0, DELAYUS) ]

p.wave_clear()
p.wave_add_generic(pulseTrain)
pT = p.wave_create()

p.wave_send_once(pT)
t1 = p.get_current_tick()
while p.wave_tx_busy():
  pass
t2 = p.get_current_tick()

p.wave_clear()
deltaT = pigpio.tickDiff(t1, t2)
ratio = deltaT / (2*DELAYUS)
print("passed time: {} us, expected {} us => ratio {}".format(deltaT, 2*DELAYUS, ratio))

increasing the test duration (above, only 1 ms), the determined ratio gets more accurate.
i'm just unsure for the busy loop and what the multitasking OS will do ..
with a higher test duration and accepting some inaccuracy, we could use normal sleeps, similar to Joan's variant.
it also looks, that timing does only change on (re)boot - and happily not at runtime.
having 'auto' setting for sound, booting with display has good timing, which stays good when removing the display. but no idea, what sound output did meanwhile .. however.
i'm working on a C version testing both clocks .. and want to test on Pi 1.
you can await test results and C version this evening or tomorrow.

here's the standalone test program:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <pigpio.h>

#define DELAY_US 25000

int main(int argc, char *argv[])
{
  gpioPulse_t pulse[2];
  uint32_t t0, t1, diffTick, expectedDelta;
  int k, ret, wave_id, testClock;
  float ratio;
  unsigned cfgMicros, cfgPeripheral;

  testClock = -1;  /* -1: test both configurations; 0: test PWM; 1: test PCM */

  if ( 1 < argc ) {
    if (!strcmp(argv[1], "pcm"))
      testClock = 1;
    else if (!strcmp(argv[1], "pwm"))
      testClock = 0;
    else
      testClock = atoi(argv[1]);
    if (testClock)
      testClock = 1;
  }

  for ( cfgPeripheral = 0; cfgPeripheral < 2; ++cfgPeripheral ) {
    if ( !( testClock == -1 || testClock == cfgPeripheral ) )
      continue;

    cfgMicros = 5;
    fprintf(stdout, "testing %s clock\n", (cfgPeripheral ? "PCM" : "PWM") );

    gpioCfgClock(cfgMicros, cfgPeripheral, 0);
    if (gpioInitialise() < 0)
    {
      fprintf(stderr, "pigpio initialisation failed.\n");
      return (cfgPeripheral+1)*10;
    }

    for ( k = 0; k < 2; ++k ) {
      pulse[k].gpioOn = 0;
      pulse[k].gpioOff = 0;
      pulse[k].usDelay = DELAY_US;
    }

    ret = gpioWaveAddNew();
    if (ret) {
      fprintf(stderr, "error at gpioWaveAddNew()\n");
      return 1;
    }
    ret = gpioWaveAddGeneric(2, pulse);
    if (ret != 2) {
      fprintf(stderr, "error at gpioWaveAddGeneric()\n");
      return 2;
    }
    wave_id = gpioWaveCreate();
    if (wave_id < 0) {
      fprintf(stderr, "error at gpioWaveCreate()\n");
      return 3;
    }

    ret = gpioWaveTxSend(wave_id, PI_WAVE_MODE_ONE_SHOT );
    t0 = gpioTick();
    if (ret <= 0) {
      fprintf(stderr, "error at gpioWaveTxSend()\n");
      return 4;
    }

    while ( gpioWaveTxBusy() ) {
      gpioDelay(500);
    }
    t1 = gpioTick();

    /*gpioWaveTxStop();*/
    gpioWaveClear();
    gpioTerminate();

    diffTick = t1 - t0;
    expectedDelta = DELAY_US + DELAY_US;
    ratio = (float)(diffTick) / (float)(expectedDelta);

    fprintf(stdout, "  delta = %u, expected = %u, ratio = %f\n", diffTick, expectedDelta, ratio);
    if ( 0.8F <= ratio && ratio <= 1.5F )
      fprintf(stdout, "  clock is OK\n");
    else if ( 1.8F <= ratio && ratio <= 2.2F )
      fprintf(stdout, "  clock is at half speed. all delays are doubled!\n");
    else
      fprintf(stdout, "  clock is corrupt!\n");
  }

  return 0;
}

i've extended the test duration to 50 ms per clock.
time reports ~ 550 ms on Raspi 1, with the PCM clock doubling the duration.
here the full output:
# time build/test_delay
testing PWM clock
  delta = 50281, expected = 50000, ratio = 1.005620
  clock is OK
testing PCM clock
  delta = 100270, expected = 50000, ratio = 2.005400
  clock is at half speed. all delays are doubled!

real    0m0,551s
user    0m0,075s
sys     0m0,302s

one more info:

the doubled delay does occur after first activation of sound output,
which is automatically initalized with the sound daemon (think pulseaudio),
when booting into GUI (systemctl set-default graphical.target)
having switched off boot to GUI (systemctl set-default multi-user.target),
because that takes lots of time on Raspi 1, i wondered why the error doesn't occur.
after playing some silence to the 3.5mm audio output (advanced options of raspi-config)
with dd if=/dev/zero bs=4 count=24000 of=- |aplay -f dat,
the error returned

i'll prepare a pull request ..

see pull request https://github.com/joan2937/pigpio/pull/332


Shader preprocessor #if and #else highlighted with wrong color

Godot version
4.0.3
System information
Win7
Issue description
#if and #else highlighted with the color same as if and else shader statement:

Steps to reproduce

Create shader
Add #if and #else

Minimal reproduction project
N/A

Syntax highlighting keywords in CodeEdit can't contain symbols like #, so this is a limitation we can't fix.

We could probably change the preprocessor keywords to use control flow keyword colors, that way they would be at least consistent. Currently they mix control flow and normal shader keyword colors because they conflict with normal shader keywords, which can look a bit weird. I'll probably make a PR at some point, this has been bugging me a bit, too. It's a simple change, looks like this:

Long term solution would be to create an improved syntax highlighter as Calinou said, but there tends to more important tasks at hand currently.


US524005: Add unit tests to the JAX-RS implementation module

https://internal.almoctane.com/ui/entity-navigation?p=131002/6001&entityType=work_item&id=524005

A developer build has not yet been created for this branch. Click here to go ahead and create the build...

CI Build Link:
http://sou-jenkins2.swinfra.net:8080/job/FileAnalysisSuite/job/FileAnalysisSuite~adaptersdk-impl-jaxrs~US524005~CI

@frankmccarry ready for review again

@dermot-hardy could you approve this, I can't merge because I requested a review from you, thanks


Updated language resource 'zh_CN' to the latest version

update zh_CN localization, and it works well now for GP 4.3.x

Changing all the pronouns to the honorific
Correcting a large number of grammatical errors, so it's more easy to understand now.
Translating a few of new sentences.

It was passed the test now, you could merge this PR any time ;)

Thanks!


configuration to suppressing logging env-vars and input to tasks

Some things are too sensitive to speak of, so let's not!
I would like to suppress the logging of environment variables.
-- TASK ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   task:       "scheduler-tdivsoqo"
   cluster:    "docker"
   image:      "dockerhub/data-collector-scheduler"
   env:        { GITHUB_TOKEN: "STEAL_THIS_PLZ", BANK_PASSWORD: "a1b2" }
   volumes:    { /var/task: { bind: { src: "xxxr/data_collector", mode: "rw" } } }
-- TASK OUTPUT ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

It would be nice to be able to mask environment variables and other inputs to tasks.

Agreed. We can probably just remove the environment output for now.
It would be nice to have different log levels at some point, this could be reintroduced as debug output later.

I think passing secrets in task inputs and return values should be avoided. Its nice to be able to log them, and we want to be able show them in the dashboard 😄
Perhaps we should consider adding a way to use Kubernetes secrets for anything sensitive.

Yes, that should probably be avoided. But it would be great if the env-vars weren't logged :D

Yeah, I will simply remove it for now


Simplify fes date filter

Fix #12

The travis failure seems to be related to https://github.com/ioos/secoora/issues/230.


A connector registered at bootstrap cannot be de/registered with the UI

Start a fresh connector that registers its resources during bootstrap.
After starting the connector go to the Broker view in the UI (it will be empty)
In the Broker view add the Broker where the resources have been registered already.
Click the register button
This will fail since the broker has registered itself during bootstrap. The register button will never become available.

I think there are also other scenarios where a connector is registered but the button has the wrong state.

Is there an error message in the DSC log?
Does it work with DSC Swagger?

Hi @BastianWel ,
the thing is that in step 4 the button is in the wrong state.
Expected behavior: The button text is "unregister" if the connector is already registered.

The status of the button is determined by the "status" attribute of the broker object in the API call "GET /api/brokers".
Could you check if the DSC is returning the correct registration status?

Will be fixed in Dataspace Connector.

Fixed on Dataspace Connector main.


Allow run test-multikueue-e2e for mac os

What type of PR is this?
/kind bug
What this PR does / why we need it:
To allow run test-multikueue-e2e on mac os.
Which issue(s) this PR fixes:
Related to #1924
Special notes for your reviewer:
The docker on mac os working another way than on linux. So we can't bind port to <IP_ADDRESS>. That's why we need to use internal kind cluster connection to control plane on  MultiKueue secrets.
Does this PR introduce a user-facing change?
No

/assign

/test pull-kueue-test-multikueue-e2e-main-1-29

/test pull-kueue-test-multikueue-e2e-main-1-29

/test pull-kueue-test-multikueue-e2e-main-1-29

/test pull-kueue-test-multikueue-e2e-main-1-29

/test pull-kueue-test-multikueue-e2e-main-1-29

/test pull-kueue-test-multikueue-e2e-main-1-29

@trasc wdyt of the overall approach?

/approve
Leaving LGTM to @trasc

/lgtm

/release-note-none

/remove-kind bug
/kind cleanup


set --node-ip depending on external CCM availaibilty in dualstack

What this PR does / why we need it:
--node-ip and --cloud-provider kubelet flags conflict in the dualstack setup.
In general, it is not expected to need to use --node-ip with external CCMs, as the the cloud provider is expected to know the correct IPs to return.
This PR
|--------------+------------------------------+----------------------------|
|              | KKP support for external CCM | --node-ip set in dualstack |
|--------------+------------------------------+----------------------------|
| DigitalOcean | No                           | Yes                        |
| OpenStack    | Yes                          | No                         |
|--------------+------------------------------+----------------------------|

Which issue(s) this PR fixes (optional, in fixes #<issue number> format, will close the issue(s) when PR gets merged):
Fixes
https://github.com/kubermatic/kubermatic/issues/10152
https://github.com/kubermatic/kubermatic/issues/9959
Optional Release Note:

NONE

/retest

/test pull-machine-controller-e2e-vmware-cloud-director

/retest

/test pull-machine-controller-e2e-vsphere

/retest

/retest

/retest

/retest

/retest

/retest

/hold

/retest

/test pull-machine-controller-e2e-vmware-cloud-director

/lgtm

/test pull-machine-controller-e2e-vmware-cloud-director

/test pull-machine-controller-e2e-vmware-cloud-director

/retest

/test pull-machine-controller-e2e-vmware-cloud-director

/retest

/retest

/test pull-machine-controller-e2e-vmware-cloud-director

/retest

@PratikDeoghare It doesn't seem like these retries would work. You can get this overriden.
W0713 15:41:49.240722   22185 verify.go:157] Creation of "ubuntu-1-22-7-vcd-1547242389494566912" failed, retrying: admission webhook "machinedeployments.machine-controller.kubermatic.io" denied the request: validation failed: failed to get organization 'ORG0087': [ENF] entity not found

P.s. It's always better to look at logs for the reason of failures instead of just /retry :P

/override pull-machine-controller-e2e-vmware-cloud-director

/unhold


Crash in VBox.average() when contents set is empty

If the value of the contents set is empty, then calculating the average() swatch fails because you get a division by 0 error.

Lol yea I should’ve checked for that. This was dumb. Thanks. Will fix.

Should be fixed by 1.4.1.
Also added a test to prevent mistake. Thanks please verify when you get a chance.

For some reason this still crashes for me, even though I've pulled in 1.4.1 with carthage. It doesn't crash when I just pull in the source code and use that, though.
Even though I don't get the complete stack trace when I've pulled it in as a framework I can see the crash is happening in VBox.average() - could it be that when you package it up it strips away that code?

Yes that actually is possible it’s also possible Carthage used some build symbols to build the zip which it shouldn’t do but possibly it’s misconfigured. Let me try reposting that. I can update the release so won’t need to mint a new one.
Sent with GitHawk

Cool, let me know when its done and I can retry

@pducks32 any update on this?

Please verify with
Pailead.framework.zip

@pducks32 @ValCanBuild bug does not occur when I use that build.  :)


fixed bug with expand buffer

That does look like a bug, not assigning to csvr.p.. All that line aggregation code is bad though. There are better ways to scan lines with "bufio".
This package is really not good in general. In regards to the other change in this patch, using strings.Split(), I think that is still bugged due to the possibility of quoted cells, which I don't think are handled at all.
I've flip-flopped on the matter a couple times. But I'm pretty sure now, that this package shouldn't be used. I'm sure it has more bugs and I don't think it's worth maintaining. If something more than the standard library is desired it should probably be implemented from scratch using the standard library as a reference (which didn't exist when I wrote csvutil).
I think I am going to put up some warnings saying that I'm not going to maintain this package.
I appreciate the effort you put in. But, I'm sorry that I cannot accept it.


IN doesn't accept []StringExpression...

Hi there!
Awesome job, I really like the lib for far :)
So I have this particular query:
err := SELECT(Type.Name.AS("parentType"), Field.AllColumns).
		FROM(Field).
		FROM(Field.INNER_JOIN(Type, Type.ID.EQ(Field.ParentTypeID))).
		WHERE(Field.ParentTypeID.IN(types...)).
		Query(s.db, &existingFields)

Where types is []StringExpression.
I would have expected it to be accepted but it gives me an error:
Cannot use 't' (type []StringExpression) as type []Expression

No sure what is wrong. I am using Postgres.

For now I casted the elements of the array to Expression, but it would be nice if it worked. I looks like a bug in the variadic not understanding that a StringExpression is an Expression.

Hi Sytten.
Unfortunately in Go it is not possible to assign array of one types into another, even if the type is extension of the other.
In this case []StringExpression is not assignable to []Expression, but StringExpression is assignable to Expression.
Using types from your example, this will not work:
types := []StringExpression{String("type1"), String("type2")},
but this will:
types := []Expression{String("type1"), String("type2")},


Fix DataFrame::with_column to handle creating column names with a period

Which issue does this PR close?

fixes https://github.com/apache/arrow-datafusion/issues/3682
Rationale for this change

What changes are included in this PR?

Changes: do not use col(), which tries to parse strings as identifiers (e.g. splits on .)

Are there any user-facing changes?
One fewer bug

@alamb i tested with #3733 , it looks with_column still can't work.
i tested use config:
Cargo.toml
datafusion = { git = "https://github.com/apache/arrow-datafusion" }

with the example code:
use std::sync::Arc;

use datafusion::arrow::array::Int32Array;
use datafusion::arrow::datatypes::{DataType, Field, Schema};
use datafusion::arrow::record_batch::RecordBatch;
use datafusion::datasource::MemTable;
use datafusion::error::Result;
use datafusion::from_slice::FromSlice;
use datafusion::prelude::{col, lit, SessionContext};

/// This example demonstrates how to use the DataFrame API against in-memory data.
#[tokio::main]
async fn main() -> Result<()> {
    // define a schema.
    let schema = Arc::new(Schema::new(vec![Field::new("f.c", DataType::Int32, false)]));

    // define data.
    let batch = RecordBatch::try_new(
        schema.clone(),
        vec![Arc::new(Int32Array::from_slice([1, 10, 10, 100]))],
    )?;

    // declare a new context. In spark API, this corresponds to a new spark SQLsession
    let ctx = SessionContext::new();

    // declare a table in memory. In spark API, this corresponds to createDataFrame(...).
    let provider = MemTable::try_new(schema.clone(), vec![vec![batch]])?;
    ctx.register_table("t", Arc::new(provider))?;
    let df = ctx.table("t")?;

    // construct an expression corresponding to "SELECT * FROM t WHERE f.c = 10" in SQL
    let filter = col("f.c").eq(lit(10));

    let df = df.filter(filter)?;

    // print the results
    df.show().await?;

    Ok(())
}

Result:
Error: SchemaError(FieldNotFound { qualifier: Some("f"), name: "c", valid_fields: Some(["t.f.c"]) })

col("f.c").eq(lit(10));

You can't use col with a qualified name (with a '.')
Does it work if you use
 Expr::Column(Column {
                        relation: None,
                        name: "f.c".into(),
                    })

instead of col("f.c:)
?
If so we should probably offer an alternate to col that doesn't try and parse the relation that is not as wordy 🤔

Sorry for that, i updated my test code above, I use with_column, this case still can't work.

Sorry for that, i updated my test code above, I use with_column, this case still can't work.
I will merge this PR and then try your example

@hengfeiyang I have merged this PR and now when I run your example from https://github.com/apache/arrow-datafusion/pull/3700#issuecomment-1271752120 it produces this output:
+-----+-----------+
| f.c | new_field |
+-----+-----------+
| 1   | hi        |
| 10  | hi        |
| 10  | hi        |
| 100 | hi        |
+-----+-----------+

Thanks


Exporting Objects from a nav2018 CU6 W1 container fail

Exporting objects from the container fail.
New-NavContainer -accept_eula
-containerName "NAV2018W1CU6T" -auth Windows
-updateHosts -imageName "microsoft/dynamics-nav:2018-cu6-w1"
-Credential $credential -restart always
-licenseFile "C:\Users\michel\Foodware\Licenses\5164953 NAV2018.flf" -memoryLimit "3G"
-shortcuts "Desktop" `
-includeCSide
followed by this error:
WARNING: UnhandledErrorMessage
!
At C:\Program Files\WindowsPowerShell\Modules\navcontainerhelper\<IP_ADDRESS>\ObjectHandling\Export-NavContainerObjects.ps1:44 char:5

Invoke-Command -Session $session -ScriptBlock { Param($filter, $o ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Export-NAVApplicationObject

When including -doNotExportObjectsToText, the container is created and is accessible.
When opening the DeveloperClient with NAV2018W1CU6T, I can export the objects manually, without any error.
I'm also creating similar 2017 containers with the same parameters, but a different license. Exporting those objects, run correct.

I did try doNotExportObjectsToText and use Export-NavContainerObjects afterwards. But not from inside the container. First thing tomorrow is ask for a new license file and try again. Although as you might have read, I can access the Container, and export objects from the Developer Environment. License looked fine sofar.

My spelling mistake - inside the container it is export-navapplicationobject.
Also, what version of the navcontainerhelper do you have?
On march 20th a bug was fixed, which caused the underlying export-navapplicationobject to be called without -ExportTxtSkipUnlicensed.

I'm using navcontainerhelper\<IP_ADDRESS>.
I'm trying to use export-navapplicationobject from inside the container, but the command isn't recognised, nor is load-module. I'm opening powershell by: "docker exec -it  powershell"

use the shortcut on the desktop.
It runs a script called c:\run\prompt.ps1 (or run this in your docker exec).
Then you have all modules loaded.

Inside the container I have the same error.
PS C:> Export-NAVApplicationObject
cmdlet Export-NAVApplicationObject at command pipeline position 1
Supply values for the following parameters:
DatabaseName: CRONUS
Path: c:\temp
Confirm
c:\temp already exists. If you continue, c:\temp will be overwritten.
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y
Export-NAVApplicationObject : !
At line:1 char:1

Export-NAVApplicationObject

  + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
  + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Export-NAVApplicationObject

Could you try to set the logpath and get the log and see if we can see anything from that?

Sorry for this, but it's not working for me. there's no log.
PS C:> Export-NAVApplicationObject -LogPath c:\log -DatabaseName CRONUS -Path c:\temp
Confirm
c:\temp already exists. If you continue, c:\temp will be overwritten.
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):
Export-NAVApplicationObject : !
At line:1 char:1

Export-NAVApplicationObject -LogPath c:\log -DatabaseName CRONUS -Pat ...

  + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
  + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Export-NAVApplicationObject

Can you shoot an email to freddyk at microsoft dot com, then we can continue offline.
Thanks

We found that the cause of this was, that the host wasn't updated with the latest windows updates.
Due to this, the containers were using a newer version of windows server than the host and when running process isolation this caused the problem.
Updating the host fixed the problem.
I think the problem would also disappear when running hyperv isolation.

I believe that this issue can be solved by using set-executionpolicy unrestricted through NAV develompent shell first.


Add encoding option or get encoding by contents

https://github.com/bootjp/crawler/blob/master/Checker.php#L161

utf8 other than the site does not support


Can't use custom model

I want to use a custom model via Ollama, to which I gave the name copilot. I did ollama create copilot -f copilot and running ollama run copilot works in the terminal, and other extensions also work well with it. However, when I start Llama Coder and set the custom model to 'copilot,' the extension tells me that copilot wasn't downloaded and asks if I want to download it.  Looking at the logs, I see "Ingoring since the user asked to ignore download.".
How does llama-coder check if a model exists with ollama?
How can I use this model, as I already manually created it using the gguf file and ollama create?
Thanks in advance!

Sorry, I found the error. Had to specify copilot:latest as the custom models name.

close it


Specifying a tag name for Link

I'd assume this would be basic functionality, but I can't seem to find a solution. Is there a way to specify the tag used for Link? Something like <Link tagName="li" to="..." />? I don't always want to use an "a" tag for the generated links. I understand there are workarounds, but I don't want to go to the trouble of creating my own mixin, messing with state, etc. just to get this basic functionality.

<Link> is a router-aware <a> tag. It's accessible, responds to things like ctrl+click, etc. It is the element for navigating around the web. If we allowed you to put whatever tag you want in there, it would no longer be accessible, and we're not interested in helping you create sites that are not accessible. :)

Yeah, you're right... I guess I've never bothered to nest <a> tags inside other tags when it was just for internal navigation (such as tabs). But I really should use <a> tags for what they're meant to be used for. Thanks for the quick response!


更正run_dpo.py文件路径

PR types
Bug fixes |
PR changes
Docs
Description
修改readme

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


Fixes #13313: Update all rudder dependencies

https://www.rudder-project.org/redmine/issues/13313

OK, merging this PR


Zig example didn't work

zig is my favorite langage but that was a bit ugly haha
plus warn("{}\n", var); doesn't work, it needs a tuple: warn("{}\n", .{var});


Can‘t build microprofile with mingw64

My mingw64 is download from WinLibs
when I build this project with
cmake .. -G "Ninja"
ninja

the error is
[1/2] Building CXX object CMakeFiles/microprofile.dir/microprofile.cpp.obj
FAILED: CMakeFiles/microprofile.dir/microprofile.cpp.obj
D:\mingw64\bin\c++.exe -DMICROPROFILE_EXPORT -ID:/C++_proj/microprofile -ID:/C++_proj/microprofile/build  -MD -MT CMakeFiles/microprofile.dir/microprofile.cpp.obj -MF CMakeFiles\microprofile.dir\microprofile.cpp.obj.d -o CMakeFiles/microprofile.dir/microprofile.cpp.obj -c D:/C++_proj/microprofile/microprofile.cpp
D:/C++_proj/microprofile/microprofile.cpp: In function 'void MicroProfileThreadStart(void**, MicroProfileThreadFunc)':
D:/C++_proj/microprofile/microprofile.cpp:1206:53: error: invalid conversion from 'MicroProfileThreadFunc' {aka 'void* (*)(void*)'} to 'LPVOID' {aka 'void*'} [-fpermissive]
 1206 |     *pThread = CreateThread(0, 0, ThreadTrampoline, Func, 0, 0);
      |                                                     ^~~~
      |                                                     |
      |                                                     MicroProfileThreadFunc {aka void* (*)(void*)}
In file included from d:\mingw64\x86_64-w64-mingw32\include\winbase.h:29,
                 from d:\mingw64\x86_64-w64-mingw32\include\windows.h:70,
                 from d:\mingw64\x86_64-w64-mingw32\include\winsock2.h:23,
                 from D:/C++_proj/microprofile/microprofile.cpp:227:
d:\mingw64\x86_64-w64-mingw32\include\processthreadsapi.h:279:150: note:   initializing argument 4 of 'void* CreateThread(LPSECURITY_ATTRIBUTES, SIZE_T, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD)'
  279 |   WINBASEAPI HANDLE WINAPI CreateThread (LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId);
      |                                                                                ~~~~~~~^~~~~~~~~~~
D:/C++_proj/microprofile/microprofile.cpp: At global scope:
D:/C++_proj/microprofile/microprofile.cpp:1296:40: warning: 'thread' attribute directive ignored [-Wattributes]
 1296 | MP_THREAD_LOCAL MicroProfileThreadLog* g_MicroProfileThreadLogThreadLocal = 0;
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_proj/microprofile/microprofile.cpp: In function 'bool MicroProfileStartWin32Trace(EventCallback, BufferCallback)':
D:/C++_proj/microprofile/microprofile.cpp:7350:19: warning: passing NULL to non-pointer argument 1 of 'ULONG StopTraceA(TRACEHANDLE, LPCSTR, PEVENT_TRACE_PROPERTIES)' [-Wconversion-null]
 7350 |         StopTrace(NULL, KERNEL_LOGGER_NAME, &sessionProperties);
      |                   ^~~~
In file included from D:/C++_proj/microprofile/microprofile.cpp:7241:
d:\mingw64\x86_64-w64-mingw32\include\evntrace.h:858:49: note:   declared here
  858 |   EXTERN_C ULONG WMIAPI StopTraceA (TRACEHANDLE TraceHandle, LPCSTR InstanceName, PEVENT_TRACE_PROPERTIES Properties);
      |                                     ~~~~~~~~~~~~^~~~~~~~~~~
ninja: build stopped: subcommand failed.

I'm not sure what you are compiling with:
can you try putting in a cast to LPVOID
IE replace
*pThread = CreateThread(0, 0, ThreadTrampoline, Func, 0, 0);
with
*pThread = CreateThread(0, 0, ThreadTrampoline, (LPVOID)Func, 0, 0);
It also looks like its ignoring the thread attribute, which will probably also be a problem.


App login not successful

Followed read me, provided inputs for settings and with login passed required credentials but navigating to the provided redirect URL in settings and on same page clicking back(Which is the only cta) brings to Log In screen with a toast saying login failed, See attached.
Uploading Docusing_sample_app_android.mp4…

Hi
Can you make sure you provided the right settings in the Settings screen which includes 'Integratorkey', 'Client secret', 'RedirectUrl'. Make sure you configure these values first in the Docusign web portal. You should see a 'SAVE' button in the Settings screen of sample App.
For latest SDK sample App updates, please refer to https://github.com/docusign/mobile-android-sdk/tree/master/docusign-sdk-sample-kotlin.
Thanks.

Hi @naveentds thanks for quick reply, Docusing official portal I created one sample app under "Apps and Keys", Integration key and Redirection URL(https://www.example.com/callback which is dummy) using from same app, and for Client Secrete using User Id under My account information.
Hope these are the required and right creds, if not pls suggest me to find the same.
Additionally, on debugging app, seeing Bad request 400 response, it means something is wrong with request. Please extend you support to get it running.

Hi naveen, issue got resolved, was putting client secrete different not from integration app, will be good if that is specified in read me, what to pick from where, since we have multiple ids and keys within account and app.
Thanks.


Update and rename fifthpost.md to moreflowers.md

👷 Deploy Preview for startling-cocada-e45985 processing.

Name
Link

🔨 Latest commit
870e53107fafe304d771304e516cf7199c5dec3d

🔍 Latest deploy log
https://app.netlify.com/sites/startling-cocada-e45985/deploys/6434443cf3117f00085b9d92


Move dependency declarations into dedicated BOM (Bill of materials) artifact

This PR moves all full dependency declarations into a dedicated BOM (Bill of materials) artifact which simplifies creating Dropwizard modules and applications without dependency conflicts (usually checked by the Maven Enforcer plugin).
Users can simply import the Dropwizard BOM into their projects and don't have to take care of providing a matching version of the dependencies (but are still able to explicitly override those if required):
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-bom</artifactId>
        <version>${dropwizard.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

This follows the best practice of several other widely used Java libraries and frameworks like JBoss and Spring.

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
http://www.infoq.com/news/2014/07/springio-platform
http://howtodoinjava.com/2014/02/18/maven-bom-bill-of-materials-dependency/

This looks great. Definetely should help for users who use many Dropwizard modules.

I noticed that there is a jersey-bom in maven central?  Would it make any sense to use that in this bom file?

@jplock Yes, indeed. I think this makes sense and I've replaced most of the explicit Jersey dependencies in Dropwizard's BOM simply with jersey-bom. For some dependencies it's not possible due to dependency exclusions.


How can I assess my own .wav file using trained model

Hi, I follow your steps and get result, best model.
Also I try to follow steps_of_inference.md to assess my own .wav file, and I get tensors [u1, u2, u3, u4, u5, p, w1, w2, w3] as result. But these tensors seem to be random or negative. How can I transfer these tensors to exact result I want? Such as accuracy, total scores.
I have read issue 6 for reference, but still do not work for me.
Thanks for your help!

Hi there,
I am not the author of the tutorial, nor had I carefully checked that. Issue 6 is a fatal bug and needs to be fixed, there might be some other problems in the totorial.

How can I transfer these tensors to exact result I want? Such as accuracy, total scores.

Tensor [u1, u2, u3, u4, u5, p, w1, w2, w3] should be the scores, in the paper, we said "we  re-scale utterance and word-level scores to 0-2, making them on the same scale as the phoneme scores", so the scale of these scores should be between 0-2.  Could you paste your score here?
-Yuan

Thanks for your reply, and I'm just searching method for using model to assess my voice.
And Hi @LyWangPX , do you know how to transfer these tensors I get in step20 to result like utt accuracy or total scores?
I'm quite new to this, thanks for your answer!

They should be scores, as Yuan mentioned. I have never met a problem that has negative values.

Make sure the order matches your data by checking gopt/data/raw_kaldi_gop/<your dataset>/tr_keys_phn.csv
issue #15

Unfortunately, I have not yet 100% reproduced, even after solving the above 2 problems.
You might also check out the data of speechocean762. The quality or the skewness may not be satisfying enough for a real-world problem. Anyway, I could not get what I wanted with gopt and am currently trying other DL-based models and methods (get rid of the Kaldi). If you find out the solution, please share it with us as well.

Sorry for the late reply, I have tried twice for this code.
And for the first time, [u1, u2, u3, u4, u5, p, w1, w2, w3] = [0.0649, -0.4337, -0.8136, 1.2708, 1.0841, -0.7047, -0.1328, -1.0472, -0.1040].
For the second time [u1, u2, u3, u4, u5, p, w1, w2, w3] = [0.4930, 0.1416, -0.7719, 0.0565, -0.3468, -0.4411, 0.5533, 0.7044, -0.1373].
And follow the steps_of_inference.md, I use one same train and test set, simply use "WE CALL IT BEAR" in speechocean762, and rename it as test.wav.
As you mentioned, I check gopt/data/raw_kaldi_gop/<your dataset>/tr_keys_phn.csv, strangely I get test.0 to test.9 on the first 10 lines, and 45785 lines on other data.
I will keep trying to figure out what's wrong with my code. Thanks for your patience.

Hi there,
I am not the author of the tutorial, nor had I carefully checked that. Issue 6 is a fatal bug and needs to be fixed, there might be some other problems in the totorial.

How can I transfer these tensors to exact result I want? Such as accuracy, total scores.

Tensor [u1, u2, u3, u4, u5, p, w1, w2, w3] should be the scores, in the paper, we said "we re-scale utterance and word-level scores to 0-2, making them on the same scale as the phoneme scores", so the scale of these scores should be between 0-2. Could you paste your score here?
-Yuan

Hi, sorry to bother you again, as you mentioned, Tensor [u1, u2, u3, u4, u5, p, w1, w2, w3] should be the scores, if I get ten phone for one sentence, what does p means here? Total phone scores or first ten scores in p which align to the phone-level?

https://github.com/YuanGongND/gopt/blob/bed909daf8eca035095871e51642525acc5b9b55/src/models/gopt.py#L308
P should be a vector of the (number of phones) elements, each corresponds to a phone.
Same for w scores, but they will be averaged over each word afterwards.
If you can run the Google colab script, you can easily print out the sizes of them.

https://github.com/YuanGongND/gopt/blob/bed909daf8eca035095871e51642525acc5b9b55/src/models/gopt.py#L308
P should be a vector of the (number of phones) elements, each corresponds to a phone.
Same for w scores, but they will be averaged over each word afterwards.
If you can run the Google colab script, you can easily print out the sizes of them.

Thanks a lot!

Btw, this is how we measure word score accuracy:
https://github.com/YuanGongND/gopt/blob/bed909daf8eca035095871e51642525acc5b9b55/src/traintest.py#L280-L299
It is bit non-trivial, you need to keep record which phone corresponding to which word in data preprocessing.

https://github.com/YuanGongND/gopt/blob/bed909daf8eca035095871e51642525acc5b9b55/src/models/gopt.py#L308
P should be a vector of the (number of phones) elements, each corresponds to a phone.
Same for w scores, but they will be averaged over each word afterwards.
If you can run the Google colab script, you can easily print out the sizes of them.

Thanks a lot!

How did you infer your own wav file? I followed the inference instruction, but the result I got is [u1, u2, u3, u4, u5, p, w1, w2, w3]  of the speechocean762 dataset (i realized cause its tensor shape of u1 is (2500,1) while I only have 1 wav file), but not my wav file :((((

HI, @MengXu0826 @LyWangPX I just followed the inference tutorial, I wonder if it is necessary to add the train folder there, since it's for inference, trainset should be trivial? I cannot run the process successfully on my own data, so had this little confusion.

@dyustc  I think no need


Setting Babel configuration

We have a few options for setting Babel configuration. Currently SystemJS 2.0 itself is configurationless so it would be good to set a good precedent here.
Previously we had System.babelOptions and System.config({ babelOptions: ... }).
Perhaps we should stick with System.babelOptions as an object?
Feedback welcome.

With focus on "... the principle of a focused hackable core with a minimal footprint.", is SystemJS 2.0 configurationless by the design? Sorry for having a similar question as the one I had at disqus but just trying to understand the goals and current roadmap.
If that's so maybe having a separate explicit sink for handling plugin configurations can help the core module stay clean and minimal like so:
System.plugins({
  'babel-transform': {
    ...
  }

  // or

  'babelOptions': {
    ...
  }

})

System.babelOptions looks somewhat undesirable as it feels like exposing an internal implementation to API consumers so personally I prefer System.config({ babelOptions: ... }) if the one above doesn't work. Having everything under .config can be confusing, though, as it's not clear whether the configuration is for the core module or for the plugins.

So that's why I was tending towards a System.babelOptions = ... sort of thing that can just be copied by other extensions as a pattern.
Alternatively perhaps System.configureBabel(babelConfig) as the pattern or some functional pattern like that?

Speaking from experience - this looks like a bad idea similar to how Require did it back in the days.
Write randomly (?) named subobjects to the global object and introduce an configuration hell where nobody knows where to look at finally anymore (oh how lovely to debug).
How would you get an idea which plugins are successfully loaded at runtime?
Say you have 20 Plugins (sounds like a mess, yes just giving an extreme example) - they're randomly split across the System object.
I'd enforce that Plugins have to register themself with a unique ID, which then uses aboves System.plugin scope to provide their configuration via their registered ID. You could theoretically also use that to write information back to the configuration object (e.g. loaded = true)
That way you can modularize even the core configuration via Plugins and keep a separation of concerns in a structured order.

@thiscantbeserious

Speaking about Plugins - I'll likely have to write a plugin-text

Excuse me, can you share an example with SystemJS >2.0 and plugin-text for html-template?


User can perform action on 'Sell Online' toggle button in settings despite disabled section appearance.

Expected behavior
When a section is visually disabled, all associated elements within it should also be disabled and unresponsive to user interaction.
Steps to reproduce the issue
Open the App and login with valid credentials.
Go to settings page.
If sell inventory online section is appearing disabled then in that case try to toggle the sell online button.
Observe the issue.
Environment details
App version : MAIN-F2FA0F7
App testing environment : DEV
Additional information
https://jam.dev/c/bb69afe1-fcba-4cfb-bcfe-772261a41b76

Issue verified and working fine in release v2.1.0.
https://jam.dev/c/7d26e3da-7e43-4832-8b20-a9edcd7e8603


RST-2566 welsh copy changes

Welsh copy changes

This is not approved. Please refer to my comment on the jira ticket.


Running on windows machine giving error

As per readme file. I ran the command but it is giving below error
"requests.exceptions.ConnectTimeout: HTTPConnectionPool(host='<IP_ADDRESS>', port=11434): Max retries exceeded with url: /api/generate/ (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001D9C5576530>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=None)'))"

Replace Ollama host as per your system, probably <IP_ADDRESS> in config file: https://github.com/katanaml/llm-ollama-llamaindex-invoice-cpu/blob/main/config.yml
this is sample app, main repo is here: https://github.com/katanaml/sparrow


Make benchmark proofs parse on Haskell backend dry run

Fixes runtimeverification/firefly#510
This PR does several things to make begin working on the haskell backend proofs for benchmarks easier:

Removes all #bufSeg, #bufElm, select, selectRange, store, storeRange abstractions.

Removes lots of uneeded lemmas.
Consolidates the various lemma files into verification.k.
Removes several lemmas/abstractions from ERC20 proofs too.

This makes it so that we can call ./kevm prove --backend haskell tests/specs/benchmarks/*-spec.k VERIFICATION --dry-run on each of the benchmark proofs (and enables it on CI), so that we know that not only (i) the proofs pass on the Java backend, but also (ii) the proofs are parsable on the Haskell backend build of the semantics.

Also please split this into 2 PRs. One for common lemmas and one for benchmarks. In case we want to review changes to lemmas in future, I want to see them in a separate commit.

@denis-bogdanas I've removed all the changes to the global lemmas file and the ERC20 proofs, I'll get those in a separate PR.


Remove no toplevel codecademy cheatsheets

need higher level link

No high level for each CodeCademy cheatsheet we have listed. Are structured in chapters and with a pdf each one. Entrypoint is always first chapter.
Better remove all of them in our listings?
Originally posted by @davorpa and @eshellman in https://github.com/EbookFoundation/free-programming-books/pull/5696#discussion_r726499681

i am interested to work , but please explain in details , what exactly i have to do ?
@davorpa


/tf frame_id is inversed.

"parent_frame_id_" and "parent_frame_id_" is inversed in "/tf" topic.
"imu_link" is looks like parent of "base_link" as defautl

Thanks, @raucha


[RESTEASY-1410]

Moved TJWS classes from resteasy-jaxrs to tjws, moved test classes from resteasy-jaxrs to resteasy-jaxrs-testsuite, and made tjws dependent on resteasy-jaxrs instead of the other way around.

I've merged your commits. Thanks.


Support automatic scheduled running in Actions of github

This is an example project: https://github.com/zhqu1148980644/BILIBILI-HELPER

Interesting, I'll definitely look into this.

Interesting, I'll definitely look into this.


Specify location of extension storage in setting file

With more and more extensions and its additional tools downloaded, the capacity of default location is becoming limited. I know the prompt can be used to solve this, but set up in the setting file is better(For OS independent side and Users' side). What do you think?
And much more of work in OS-independent can be done. It is just one of my ideas. Keep it opening if needed, thanks!

/duplicate


Move openscapes to basehub

Description
Summary: The openscapes hub is a daskhub but it seems the openscapes people just need a basehub + dask. The deployer test is failing because the openscapes image does not have dask installed.
Details live here: https://github.com/2i2c-org/pilot-hubs/pull/691#issuecomment-923496624
Value / benefit
We should be providing what is actually needed by the community and it seems they are not using dask gateway, not even dask at all.
Implementation details
No response
Tasks to complete

Update openscapes image with dask (because they asked for that even when they did not use it)
Migrate openscapes hub from a daskhub into a basehub.

Updates
No response

I looked through our correspondence with them and confirm that they said that they do want Dask, but that they don't need Dask Gateway 👍
So I think this is a good idea, we don't want to unnecessarily add complexity.


Add num feature to use num create instead of rug

This add an feature called num that allow (in a non invasive away) the use the num crate in place of rug (a future PR will be sent to scryer-prolog).
It uses https://github.com/malbarbo/num-rug-adapter crate, that implements parts of rug interface using the num crate. There are two reasons this is interesting. The first one is because of cross compilation. The rug crate does not support cross compilation, the num crate does. So compiling for Android or WebAssembly targets are easy using num crate. The second one is the license. rug, GMP,  MPFR and MPC are LGPL, which make its more difficult to distribute static linked binaries (see https://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynamic).

@mthom I've added a travis file so it would be great if you could enable running it on travis.

@mthom Can you make a new release so we can use it in https://github.com/mthom/scryer-prolog/pull/226?


include threshold in gestures

I have been using some of your code to create my own videoplayer but with exoplayer and noticed some minor bugs that could help improve the gestures for seeking and volume, due to the THRESHOLD value of the onTouch when the seeking finally kicks in there is a jump between the starting and the currently seeked value due to the threshold not being taken in count in the deltaX value in your onTouch I would propose you do this
long totalTimeDuration = exoPlayer.getDuration(); float adjustedDelta = 0; if (deltaX>0){ adjustedDelta = deltaX-THRESHOLD; } else {  adjustedDelta = deltaX+THRESHOLD; } mSeekTimePosition = (int) (mDownPosition + adjustedDelta * totalTimeDuration / screenWidth);
to get an adjusted value of the deltaX so the user doesnt encounter a jump.

You have got a point there, you are right, Could you please push a pull request it will be great, If I do that I will do it from start and test a lot, waste of time.


Message received twice when rocket chat server restarts

When you restart/update your rocketchat server while hubot is running, messages will be received twice.
If you restart it again, they will be received 3 times and so on...
This makes it lag really bad and to fix it you have to restart hubot each time you restart rocketchat.
It would be nice if this could be fixed so you don't have to do that every time

@lucasvanhalst if you're running 0.37.0 of Rocket.Chat or higher... could you give the newest version of the adapter a try and see if this still happens to you?

@geekgonecrazy Something must've gone wrong with building the latest version https://hub.docker.com/r/rocketchat/hubot-rocketchat/builds/
but I will give 1.0.2 a shot

Can confirm this is still occurring with version 1.0.2
hubot         | [Wed Aug 24 2016 17:06:46 GMT+0000 (UTC)] INFO Preparing Meteor Subscriptions..
hubot         | [Wed Aug 24 2016 17:06:46 GMT+0000 (UTC)] INFO Subscribing to Room: __my_messages__
hubot         | [Wed Aug 24 2016 17:06:46 GMT+0000 (UTC)] INFO Successfully subscribed to messages
hubot         | [Wed Aug 24 2016 17:06:46 GMT+0000 (UTC)] INFO Setting up reactive message list...
hubot         | [Wed Aug 24 2016 17:07:01 GMT+0000 (UTC)] INFO Message received with ID id
hubot         | [Wed Aug 24 2016 17:07:01 GMT+0000 (UTC)] INFO Message receive callback id er4ALpnJLD2NrEHht ts Wed Aug 24 2016 17:07:01 GMT+0000 (UTC)
hubot         | [Wed Aug 24 2016 17:07:01 GMT+0000 (UTC)] INFO [Incoming] Lvh: bot ping
hubot         | [Wed Aug 24 2016 17:07:01 GMT+0000 (UTC)] INFO Message sent to hubot brain.
hubot         | [Wed Aug 24 2016 17:07:01 GMT+0000 (UTC)] INFO Message received with ID id
hubot         | [Wed Aug 24 2016 17:07:01 GMT+0000 (UTC)] INFO Message receive callback id er4ALpnJLD2NrEHht ts Wed Aug 24 2016 17:07:01 GMT+0000 (UTC)
hubot         | [Wed Aug 24 2016 17:07:01 GMT+0000 (UTC)] INFO [Incoming] Lvh: bot ping
hubot         | [Wed Aug 24 2016 17:07:01 GMT+0000 (UTC)] INFO Sending Message To Room: GENERAL
hubot         | [Wed Aug 24 2016 17:07:01 GMT+0000 (UTC)] INFO Message received with ID id
hubot         | [Wed Aug 24 2016 17:07:01 GMT+0000 (UTC)] INFO Message received with ID id

It does not send the message twice (if it is a command that triggers something), but it is received twice.

Thanks for pointing out that v1.0.3 was missing.  I've pushed and corrected that.
I need to figure how to replicate this so we can determine what's going on.

@geekgonecrazy
hmm this got worse, now I had my bot receiving every message 9 times, but I didn't restart either rocketchat or the bot in about a week, so it must be something else.

This is still happening. I've noticed you don't even have to restart the server for it to receive messages multiple times, at this moment my bot was receiving every message 3 times after being up for  about 4 days.

@lucasvanhalst I have a bot instance that has been running for several months, even with upgrades and haven't ran into this.  Can you give me a bit more info on your full setup so we can try and narrow down a way to reproduce this?

I can give you part of my docker-compose file:
hubot:
  image: rocketchat/hubot-rocketchat:latest
  container_name: hubot
  environment:
    - ROCKETCHAT_URL=https://example.com
    - ROCKETCHAT_ROOM= GENERAL
    - ROCKETCHAT_USER=bot
    - ROCKETCHAT_PASSWORD=********
    - LISTEN_ON_ALL_PUBLIC=true
    - RESPOND_TO_DM=true
    - BOT_NAME=bot
    - RESPOND_TO_EDITED=true
    - MONGODB_URL=mongodb://mongo/hubot-brain
    - EXTERNAL_SCRIPTS=hubot-mongodb-brain,hubot-help,hubot-seen,hubot-diagnostics,hubot-strawpoll,hubot-youtube,hubot-tell,hubot-bro,hubot-reaction,hubot-loudbot,hubot-shipit,hubot-react-fork,hubot-fliptable,hubot-cleverbot,hubot-response,hubot-praise,hubot-thank-you,hubot-insulter,hubot-isup,hubot-geo,hubot-reminders,hubot-insanedomains,hubot-currency,hubot-image-linker
  links:
    - mongo:mongo
  ports:
    - 3001:8080
  volumes:
    - ./data/responses:/home/hubot/responses

Perhaps it has something to do with RESPOND_TO_EDITED now that I think of it.

ah yes!  That probably plays into.  Can you try without it and see if that resolves?

I'll give it a shot

@geekgonecrazy That did not fix the issue. I only send this message once:
[Tue Dec 06 2016 19:43:18 GMT+0000 (UTC)] INFO Message received with ID id
[Tue Dec 06 2016 19:43:18 GMT+0000 (UTC)] INFO Message receive callback id XCnRZtSbPjTa9Tf8F ts Tue Dec 06 2016 19:43:18 GMT+0000 (UTC)
[Tue Dec 06 2016 19:43:18 GMT+0000 (UTC)] INFO [Incoming] Lvh: test
[Tue Dec 06 2016 19:43:18 GMT+0000 (UTC)] INFO Message sent to hubot brain.
[Tue Dec 06 2016 19:43:19 GMT+0000 (UTC)] INFO Message received with ID id
[Tue Dec 06 2016 19:43:19 GMT+0000 (UTC)] INFO Message receive callback id XCnRZtSbPjTa9Tf8F ts Tue Dec 06 2016 19:43:18 GMT+0000 (UTC)
[Tue Dec 06 2016 19:43:19 GMT+0000 (UTC)] INFO [Incoming] Lvh: test
[Tue Dec 06 2016 19:43:19 GMT+0000 (UTC)] INFO Sending Message To Room: GENERAL
[Tue Dec 06 2016 19:43:19 GMT+0000 (UTC)] INFO Message received with ID id
[Tue Dec 06 2016 19:43:19 GMT+0000 (UTC)] INFO Message received with ID id

same here, sometimes the numbers of duplicated messages received just get insane (below pictures), and I can see the log show multiple connected, and sometimes, the messages just stoped to be received (I can confirm the overall network is good, maybe just some jitter or something else)
In the code asteroid reconnected and then go through the event binding again(setupReactiveMessageList), maybe actually attached multiple handler on the reactiveQuery ?
(just guess, have not tested yet)

@pandada8 interesting observation.  This could make sense.  Possibly there are multiple subscriptions to the same channel.  That would explain things.

any plan in fixing this ?
I thought there should be some kind of rewrite the structure/flow of setting up handlers

when subscriptions get more and more, I can see sometimes the bot cannot receive any new message. and in the log, I can only find bot connected again and again.

So uh, any plan on fixing this? It's still happening, just rebooted my hubot instance after it received every message 10 times after being up for only a day

@lucasvanhalst i'm still unable to replicate this.  If we can replicate it, we can most likely fix it pretty quickly

Maybe it has to do with the server not having much resources. It only has 1GB of ram and one CPU, while running rocket.chat, mongodb, hubot and another webserver. I'm gonna give it a shot on another, more powerful server and see how it goes.

+1

I'm experiencing a similar issue, but I don't think it's related to rocketchat restart.
Eg:

DEBUG Logs:
[Sat Apr 14 2018 22:58:27 GMT+0000 (UTC)] DEBUG Message '@punga_bot seen arleka' matched regex //./i/; listener.options = { id: null }
[Sat Apr 14 2018 22:58:27 GMT+0000 (UTC)] DEBUG Executing listener callback for Message '@punga_bot seen arleka'
[Sat Apr 14 2018 22:58:27 GMT+0000 (UTC)] DEBUG Message '@punga_bot seen arleka' matched regex //./i/; listener.options = { id: null }
[Sat Apr 14 2018 22:58:27 GMT+0000 (UTC)] DEBUG Executing listener callback for Message '@punga_bot seen arleka'
[Sat Apr 14 2018 22:58:27 GMT+0000 (UTC)] DEBUG Preparing message from string
[Sat Apr 14 2018 22:58:27 GMT+0000 (UTC)] INFO Message received with ID id
[Sat Apr 14 2018 22:58:27 GMT+0000 (UTC)] INFO Message received with ID id

@leonardorocc0 - which server version are you running. This could be a resource issue, that part I don't really understand, but I know there's been recent updates to core resolving issues with mongo performance - it also helps if you're using a MONGO_OPLOG_URL. Try that and please respond either way. This ticket is almost 2 years old and I'd like to close it if it's not the same issue.

rocketchat: 0.63.3
I don't think this is a resource issue, as it's running on a i5 8gb and % io/memory/cpu resources are fine!
@timkinnane let me show you an screenshot.

[Mon May 21 2018 04:35:08 GMT+0000 (UTC)] INFO [Incoming] arleka: punga_bot devops me
[Mon May 21 2018 04:35:08 GMT+0000 (UTC)] INFO Message received with ID id
[Mon May 21 2018 04:35:08 GMT+0000 (UTC)] INFO Message receive callback id BLvXyLNpPQRvt2qis ts Mon May 21 2018 04:35:08 GMT+0000 (UTC)
[Mon May 21 2018 04:35:08 GMT+0000 (UTC)] INFO [Incoming] arleka: punga_bot devops me
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] INFO Message received with ID id
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] INFO Message receive callback id BLvXyLNpPQRvt2qis ts Mon May 21 2018 04:35:08 GMT+0000 (UTC)
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] INFO [Incoming] arleka: punga_bot devops me
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] INFO Looking up Room Name for: 6AwGM8cpmeJg2DoA7
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] INFO setting roomName: bots
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] INFO Message sent to hubot brain.
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] DEBUG Message 'punga_bot devops me' matched regex //.//; listener.options = { id: null }
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] DEBUG Executing listener callback for Message 'punga_bot devops me'
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] DEBUG seen.add arleka on bots
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] DEBUG Message 'punga_bot devops me' matched regex //^\s[@]?punga_bot[:,]?\s*(?:devops me)/i/; listener.options = { id: null }
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] DEBUG Executing listener callback for Message 'punga_bot devops me'
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] DEBUG Message 'punga_bot devops me' matched regex //./i/; listener.options = { id: null }
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] DEBUG Executing listener callback for Message 'punga_bot devops me'
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] DEBUG Message 'punga_bot devops me' matched regex //./i/; listener.options = { id: null }
[Mon May 21 2018 04:35:09 GMT+0000 (UTC)] DEBUG Executing listener callback for Message 'punga_bot devops me'

@leonardorocc0 have you enabled Mongo OPlog?
https://rocket.chat/docs/installation/manual-installation/multiple-instances-to-improve-performance/#check-your-database

Closing this issue because it's become a stale catch-all for different concerns. Please seek general support on the #bots channel or start a new issue.


No files shown in macOS 10.12.6.

After updating to macOS 10.12.6, I no longer get any files listed in the file browser.
Sublime Text version is 3.0, build 3143.
Trying any command results in FileBrowser: "dired_index" is empty, that shouldn’t happen ever, there is some bug.
In the console, I get:
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 812, in run_
    return self.run(edit, **args)
  File "dired in /Users/steve/Library/Application Support/Sublime Text 3/Installed Packages/FileBrowser.sublime-package", line 187, in run
  File "common in /Users/steve/Library/Application Support/Sublime Text 3/Installed Packages/FileBrowser.sublime-package", line 170, in emit_event
AttributeError: 'module' object has no attribute 'notify'

Did you install via Package Control?
Please, try to remove FileBrowser, exit Sublime Text, install via PC, and restart ST again.
notify is a part of package_events module, but your error message suggests that the module was imported—so it is really kinda mess, I don’t know.

Perfect, it works again. Thanks!


Project Documentation

We start to have several markdown files:

https://github.com/moovel/lab-opendatacam/blob/v2/doc/CONFIG.md
https://github.com/moovel/lab-opendatacam/blob/v2/doc/CREATE_DOCKER_IMAGE.md
https://github.com/moovel/lab-opendatacam/blob/v2/doc/FLASH_JETSON.md
https://github.com/moovel/lab-opendatacam/blob/v2/doc/RUN_WITHOUT_DOCKER.md
TODO one on architecture

Should we use the Wiki tab of github ? In my experience it is nice to have the contextual menu
Another way to go would be to generate a website from markdown file like with  something like read the doc : https://docs.readthedocs.io/en/stable/intro/getting-started-with-sphinx.html  ... But not sure we want this.
Let's see as we add more stuff to the README is some change is needed

Hi @tdurand, True! Either way is fine. I personally would favor simply to have a TOC in the README listing the topics and linking to the other files. That way everything incl. the tocs is nicely contained in our repo. The wiki tab feels at least for the slightly disconnected.

Yes, for now will just work on content, and when we have all the content let's see what makes sense.

[ ] Work on a CODEOFCONDUCT.md section

[ ] Work on a CODEOFCONDUCT.md section
[ ] Add a LICENCE , ping @b-g

[ ] Work on a CODEOFCONDUCT.md section
[ ] Add a LICENCE.md
[ ] Work on a simple technical architecture diagram

cc @b-g , first shot at a general technical architecture schema.. Feel free to edit here: https://docs.google.com/drawings/d/1ew5ux-wcMdxqHVwois21zYpXn63UNfM0r48wZcCl84o/edit?usp=sharing

Also assigned you for Ethics + Licence + Proof read (see first post of this thread)

See this other tool to generate a website from technical doc: https://www.docsy.dev/  (by Google) , with https://docs.readthedocs.io/en/stable/intro/getting-started-with-sphinx.html these would be too ways to improve our technical doc experience as we grow them in the future. (for example many place in the doc I would like to repeat something or do a condition to make it more digest, but with raw markdown I can't)

I personally thing the user device tobe just be a remote control, access and storage point, sort of conveys the true potential for this application.
https://purepng.com/photo/25166/clipart-dedicated-server


chore: actions refine with go version upgrade to 1.17

Codecov Report

Merging #112 (a789a84) into main (7c32251) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #112   +/-   ##
=======================================
  Coverage   78.65%   78.65%
=======================================
  Files          14       14
  Lines        1879     1879
=======================================
  Hits         1478     1478
  Misses        401      401

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


mintime / maxtime only working correctly for first 24000 ticks

AbyssalCraft-1.11.2-1.9.4-pre-2.jar
compatlayer-1.11.2-0.2.8.jar
incontrol-3.5.5.jar
mcjtylib-1.1x-2.3.11.jar
Here a potentialspawn:
{
"dimension": 0,
"mindifficulty": 1.0,
"maxlight": 4,
"mintime": 18000,
"seesky": true,
"maxcount": "30,abyssalcraft:shadowcreature",
"mobs": [
{
"mob": "abyssalcraft:shadowcreature",
"weight": 5,
"groupcountmin": 1,
"groupcountmax": 2
}
]
}
for the spawn.json:
{
"mob": ["abyssalcraft:shadowcreature"],
"dimension": 0,
"result": "allow"
},
{
"result": "deny"
}
Here is the problem:
For me it seems that there is a %24000 missing somewhere.
An example
/time set 15000      --> mobs should not spawn and they do not   -> fine
/time add 24000     --> mobs should not spawn and they do -> broken
now we add a maxtime to the potentialspawn	"maxtime": 18000, and remove the mintime
/time set 15000      --> mobs should spawn and they do -> fine
/time add 24000     --> mobs should spawn and they do not -> broken

Seems to be a bug in the time add command itself as that worldTime value is not allowed to go beyond 24000.

ok, I started testing with:
"mintime": 16500,
"maxtime": 19500,
and did /time set 17000          the mobs did spawn
now I simply will let the game run by itself, results in ~20min

ok, after waiting 24000 ticks I can confirm that it still does not work^^

That seems that MC is not following its own guidelines then. I can work around it in InControl

That would be wunderful.
Ok, lets go on in this issue thread:
mobs don't seem to spawn with maxlight: 3 and seesky: true
without seesky they only spawn under trees.
Is the minimal block light 4 in the night? I was hoping that the hardcore darkness mod does set the block light to a real 0.

You should be able to see the actual light level with F3

BL is 0 and skylight 15.
Tested with:
{
"dimension": 0,
"mindifficulty": 1.3,
"maxlight": 2,
"seesky": true,
"angry":true,
"maxcount": "30,minecraft:skeleton_horse",
"mobs": [
{
"mob": "minecraft:skeleton_horse",
"weight": 5,
"groupcountmin": 1,
"groupcountmax": 1
}
]
}
and
{
"mob": ["minecraft:skeleton_horse"],
"dimension": 0,
"result": "allow"
},
{
"result": "deny"
}
with maxlight 4   --> spawns         with maxlight 2 ---> not a single spawn

Hmm can you look at the ground and take a screenshot then? Also use one of the light overlay mods which show the number (like 'F4' for LightLevelOverlay)

Weird. No explanation for that.

Just you know. I removed Hardcore Darkness to see if its a mod interaction problem. But it doesnt seem to be one. Block light stays at 0.

I don't see how it maxlight 2 vs 4 can make a difference is the light is 0. That doesn't make sense

Its also interesting that blocklight stays at 0 when its noon^^

With maxlight 1 and without seesky they spawn, but only under trees or structures. Seems there is some kind of hardcoded night sky light or something.

I know its been like a year, but this is still happening for me too. mintime and maxtime only apply to first 24000 ticks

I will fix this

Fixed in latest version


Update PID & requirements for FBMD2

Update and clearly define project requirements for FBMD2.

Done. This will need a further revision following user feedback/results of fact finding on how users use the current site.