subspan modulo spuriously fills across missing cells adjacent to "ghost cell"

Reported by andrew wittenberg on 10 Feb 2016 22:31 UTC
For subspan modulo axes, note how @fln spuriously fills across the NetCDF-specified missing values, but not across the Ferret-inserted "ghost cell".  Ferret needs some logic for what to do when a run of one or more missing cells are adjacent to the "ghost cell."
 	NOAA/PMEL TMAP
 	FERRET v6.97 (PyFerret 1.3)
 	Linux 2.6.32-573.1.1.el6.x86_64 - 01/21/16
 	10-Feb-16 17:14

yes? def ax/x=0:180:10/unit=degree_e xax
yes? let a = x[save/clob/file=a.nc a
 LISTing to file a.nc
yes? let b = IF a GE 50 THEN a
yes? save/clob/file=b.nc b
 LISTing to file b.nc
yes? can var/all; can ax xax
yes? use b
yes? sho dat
     currently SET data sets:
    1> ./b.nc  (default)
 name     title                             I         J         K         L         M         N
 B        IF A GE 50 THEN A                1:19      ...       ...       ...       ...       ...

yes? list/x=-180:720 b
             VARIABLE : IF A GE 50 THEN A
             FILENAME : b.nc
             SUBSET   : 43 points (LONGITUDE)
 180E    / -1:  180.0
 90W     /  0:   ....
 0E      /  1:   ....
 10E     /  2:   ....
 20E     /  3:   ....
 30E     /  4:   ....
 40E     /  5:   ....
 50E     /  6:   50.0
 60E     /  7:   60.0
 70E     /  8:   70.0
 80E     /  9:   80.0
 90E     / 10:   90.0
 100E    / 11:  100.0
 110E    / 12:  110.0
 120E    / 13:  120.0
 130E    / 14:  130.0
 140E    / 15:  140.0
 150E    / 16:  150.0
 160E    / 17:  160.0
 170E    / 18:  170.0
 180E    / 19:  180.0
 90W     / 20:   ....
 0E(360) / 21:   ....
 10E     / 22:   ....
 20E     / 23:   ....
 30E     / 24:   ....
 40E     / 25:   ....
 50E     / 26:   50.0
 60E     / 27:   60.0
 70E     / 28:   70.0
 80E     / 29:   80.0
 90E     / 30:   90.0
 100E    / 31:  100.0
 110E    / 32:  110.0
 120E    / 33:  120.0
 130E    / 34:  130.0
 140E    / 35:  140.0
 150E    / 36:  150.0
 160E    / 37:  160.0
 170E    / 38:  170.0
 180E    / 39:  180.0
 90W     / 40:   ....
 0E(720) / 41:   ....
yes? list/x=-180:720 b[x=@fln](gx=xax]
yes?)
             VARIABLE : IF A GE 50 THEN A
                        linear-filled by 1 pts on X
             FILENAME : b.nc
             SUBSET   : 43 points (LONGITUDE)
 180E    / -1:  180.0
 90W     /  0:   ....
 0E      /  1:   78.3
 10E     /  2:   72.6
 20E     /  3:   67.0
 30E     /  4:   61.3
 40E     /  5:   55.7
 50E     /  6:   50.0
 60E     /  7:   60.0
 70E     /  8:   70.0
 80E     /  9:   80.0
 90E     / 10:   90.0
 100E    / 11:  100.0
 110E    / 12:  110.0
 120E    / 13:  120.0
 130E    / 14:  130.0
 140E    / 15:  140.0
 150E    / 16:  150.0
 160E    / 17:  160.0
 170E    / 18:  170.0
 180E    / 19:  180.0
 90W     / 20:   ....
 0E(360) / 21:   ....
 10E     / 22:   ....
 20E     / 23:   ....
 30E     / 24:   ....
 40E     / 25:   ....
 50E     / 26:   50.0
 60E     / 27:   60.0
 70E     / 28:   70.0
 80E     / 29:   80.0
 90E     / 30:   90.0
 100E    / 31:  100.0
 110E    / 32:  110.0
 120E    / 33:  120.0
 130E    / 34:  130.0
 140E    / 35:  140.0
 150E    / 36:  150.0
 160E    / 37:  160.0
 170E    / 38:  170.0
 180E    / 39:  180.0
 90W     / 40:   ....
 0E(720) / 41:   ....

Interestingly, this only happens for the first modulo branch, not the second.  But @fnr does it for both branches:
yes? list/x=-180:720 b[x=@fnr]
             VARIABLE : IF A GE 50 THEN A
                        nearest-filled by 1 pts on X
             FILENAME : b.nc
             SUBSET   : 43 points (LONGITUDE)
 180E    / -1:  180.0
 90W     /  0:   ....
 0E      /  1:  180.0
 10E     /  2:  180.0
 20E     /  3:   50.0
 30E     /  4:   50.0
 40E     /  5:   50.0
 50E     /  6:   50.0
 60E     /  7:   60.0
 70E     /  8:   70.0
 80E     /  9:   80.0
 90E     / 10:   90.0
 100E    / 11:  100.0
 110E    / 12:  110.0
 120E    / 13:  120.0
 130E    / 14:  130.0
 140E    / 15:  140.0
 150E    / 16:  150.0
 160E    / 17:  160.0
 170E    / 18:  170.0
 180E    / 19:  180.0
 90W     / 20:   ....
 0E(360) / 21:   50.0
 10E     / 22:   50.0
 20E     / 23:   50.0
 30E     / 24:   50.0
 40E     / 25:   50.0
 50E     / 26:   50.0
 60E     / 27:   60.0
 70E     / 28:   70.0
 80E     / 29:   80.0
 90E     / 30:   90.0
 100E    / 31:  100.0
 110E    / 32:  110.0
 120E    / 33:  120.0
 130E    / 34:  130.0
 140E    / 35:  140.0
 150E    / 36:  150.0
 160E    / 37:  160.0
 170E    / 38:  170.0
 180E    / 39:  180.0
 90W     / 40:   ....
 0E(720) / 41:   ....

Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/2366

Comment by steven.c.hankin on 11 Feb 2016 18:13 UTC
Just jotting down a 'hunch' here, as I am busy on other tasks:
The "void' cell that the subspan modulo inserts is just a grid point filled with a missing value flag -- nothing more.  Our goal is to get all possible transformations -- fillers, smoothers, derivatives, etc. -- to recognize this void as special -- NO NOT CROSS THIS LINE.  But there may be, nothing special in what these transformations see in the data, as the modulo-ing of the data may have occurred many layers down in a pyramid of definitions.  Furthermore, we need to consider user-written external functions.  We cannot ask those functions to be on the lookout for phantom void points.
The right solution to this problem, I suspect, is in INTERP_STACK.  We need Ferret's evaluation stack to be made aware that it has been asked to act upon an X (or T) axis span that contains a void, and to split that operation into two separate and disjoint invocations, and then rejoin them when received back -- much like IS_GATHER does for splitting up overly large calculations

Comment by ansley.b.manke on 11 Feb 2016 18:33 UTC
Exactly.  The transformations do not know that they are dealing with a special case.
One thing to check first, is the locations of the grid cell boundaries for the ghost cell. Are they defined so the cells at the edges of the actual data are of the same size as the rest of the data, or are the boundaries halfway between the ghost cell point and the last coordinate point of the data. If the void point is causing the edge of the data to be seen as in a huge cell, this might account for a lot of the bad behavior.

Comment by ansley.b.manke on 11 Feb 2016 19:58 UTC
''
One thing to check first, is the locations of the grid cell boundaries for the ghost cell. Are they defined so the cells at the edges of the actual data are of the same size as the rest of the data, or are the boundaries halfway between the ghost cell point and the last coordinate point of the data. If the void point is causing the edge of the data to be seen as in a huge cell, this might account for a lot of the bad behavior.
''
This is fine (of course).

Comment by steven.c.hankin on 11 Feb 2016 23:24 UTC
Quick look in the code of INTERP_STACK makes this look like a simple fix.

The third of these -- "creation of virtual "void" point on subspan modulo axes" -- divides the full region into two separate requests, and then re-assembles the results on the target axis with the void point filled in between the two pieces.
Since the order of execution is the reverse of the order in which operations are stripped off, this code builds the subspan modulo representation of the data and then performs transformations (e.g. smoothers) upon it.  This allows the undesirable behavior of the smoother smearing the data across the void.
To fix the problem I believe we need only ensure that we strip off the subspan modulo operation before any other operations are stripped off.  That way each side of the void is computed with complete independence.  There is no possibility of information bleeding across the void.

Comment by ansley.b.manke on 5 May 2016 17:47 UTC
This is fixed, along with #2364.


make: TockLibrary: Build in full paths

This changes TockLibrary to not use a flat file structure when compiling libraries, but to use the directory hierarchy when generating the build rules. This way if a library has multiple files with the same name, or multiple libraries have files with the same filename, if the file in the second library changes, the library gets rebuilt.
I tested this on the libtock rewrite branch, and if I change something in libtock-sync with this change and rebuild an app the sync library rebuilds.
The important step here is that $($(LIBNAME)_SRCS) must be set by the library to the longest shared prefix of all the source files. This is important for decoupling the source files from the folder which represents the library. It also allows multiple libraries (with perhaps different flags) to be compiled from the same source tree.
One rough edge is creating the build directory before the compiler runs. I stuck mkdir in the .o rule. I have no idea how to set it up so that make creates the paths with their own rules.

This is great, and less painful than I thought it'd be when I first hacked all this library stuff together.
Just the one little simplification I think you can safely make (but should probably test in your setup in case you have something that wasn't working that my one-off clean/build didn't catch locally)

I just learned that openthread has two files named heap.cpp, so this is a little more urgent.

Arg this only works for libraries where the source code is in the library folder (ie libtock).

I have a fix in progress.

Ok this version is much more promising, and works for libtock and openthread.


desktop-installer does not work with zfs root filesystem

Hiya,
When trying to use desktop-install on a newly installed FreeBSD 12.2, I get an error if /usr/ports are added during install and I chose to use the 2021Q1 ports. The script tries to mv /usr/ports /usr/ports.0 bu fails and exits with the messages: Operation not supported.
This is because /usr/ports is a separate ZFS filesystem, so: 'zfs destroy zroot/usr/ports' removes the /usr/ports directory and running desktop-installer again the just downloads the release of /usr/ports that it wants.
Maybe there should be some kind of automagic resolution to this or at least an information about what to do.

Thanks for the bug report!
This is actually not a desktop-installer bug.  The problem is in sysutils/auto-admin, script auto-check-ports-branch.  An update will be committed to -latest shortly.
You can test the fix immediately regardless of whether you use quarterly or latest by installing from my work-in-progress collection:
auto-freebsd-wip-checkout git
wip-reinstall-port auto-admin
wip-reinstall-port desktop-installer


added windows 11

after reading this article, i confirmed windows 11 is supported

Learn Build status updates of commit 869148b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

windows/security/threat-protection/security-policy-settings/domain-member-digitally-encrypt-or-sign-secure-channel-data-always.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Implement Analog data parsing in Python SDK

This was brought up in issue: OpenBCI/OpenBCI_WIFI#86
When switching to analog mode, no data is streaming from the Cyton. Example code:
from openbci import wifi as bci
shield = bci.OpenBCIWiFi(ip_address = '<IP_ADDRESS>', log=True, high_speed=True)
shield.wifi_write('/2')

def printData(sample):
    print(sample.sample_number)
    print(sample.channel_data)

shield.start_streaming(printData)
shield.loop()

This will print a whole bunch of zeroes.
This is because there is no analog data parsing in the Python SDK. See the empty function here: https://github.com/OpenBCI/OpenBCI_Python/blob/069bbcb9167261d687ec37206d1d2f59ace137d8/openbci/utils/parse.py#L140-L141
The implementation should be similar to the one in the NodeJS code. See here, and here

The API for this should look something like
from openbci import wifi as bci
shield = bci.OpenBCIWiFi(ip_address = '<IP_ADDRESS>', log=True, high_speed=True)
shield.analog_mode_on()

or
from openbci import wifi as bci
shield = bci.OpenBCIWiFi(ip_address = '<IP_ADDRESS>', log=True, high_speed=True, analog_mode=True)

Sweet! Can't wait to try this later this weekend,
Thanks

hey @omarclaflin, it's not implemented yet, but it will be by next week. I'll keep you posted.

Not sure if anyone else has this issue with the new code but the sample.analog_data is empty:
Code example:
def printData(sample):
print(sample.sample_number)
print(sample.channel_data)
print(sample.analog_data)
print(sample.digital_data)
print(sample.aux_data)
shield = bci.OpenBCIWiFi(ip_address = '<IP_ADDRESS>', log=True, high_speed=True, aux_mode='analog')
shield.start_streaming(printData)
shield.loop()
I put in all the 'sample.xxxx's just to be comprehensive. I get:
159
[-0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446]
{}
{}
{'lower': bytearray(b'\x00\xa0\x00#\x00\x00'), 'upper': bytearray(b'\x00\xa1\x00#\x00\x00')}
161
[-0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.1690088935505025, -0.1711612994863152, -0.1714836786965941, -0.1739216952230567, -0.18750002235174446, -0.18750002235174446, -0.18750002235174446, -0.11265194268845828]
{}
{}
{'lower': bytearray(b'\x00\xa0\x00"\x00\x00'), 'upper': bytearray(b'\x00\xa0\x00#\x00\x00')}

hey @omarclaflin , thanks for testing it out. hang tight, the code is still a work in progress!


Some examples marked as AS5600 use the AS5600L

While testing the AS5600 example, I could not get this to work.
Checking the I2C/Wire data with my scope showed that the slave address used was 0x40 - this is due to as5600 object being created from the AS5600L class instead of the AS5600.
I noticed this is also done in the following examples:
AS5600_angular_speed, AS5600_demo_ESP32, AS5600_demo_RP2040, AS5600_demo_status, AS5600_demo_STM32, AS5600_I2C_frequency and AS5600_resetCumulativeCounter examples.

Well noticed,
The library implements the AS5600L as derived class too. During tests I used an L version at some moment and they were left in the code.. I could have duplicated every example but that would lead to double maintenance (and longer build Ci times).
Will not fix this as it is easy adapted by the user.

Agree with not fixing but it might be nice to add a note on the main readme page to attent users to the fact that some examples use the 5600L. I tend to think I am fairly smart but it still to me a few minutes to notice this ;-)

Added comments on top of almost all examples:
//  Examples may use AS5600 or AS5600L devices.
//  Check if your sensor matches the one used in the example.
//  Optionally adjust the code.

PR created
Build is running


Simplify GranitProtocolDecoder command result detection

I've used the same idea with tilde and assumed that tilde has only packets with points.
If there is no tilde it is command result.
And now there is no binary to string conversion.

One tiny comment. Otherwise looks good.

Checkstyle missed it, and me too.
Done.

Merged. Thanks again.


Build failure after upgrade to Gradle 3.5.0

Expected behaviour
Gradle sync completes
Actual behaviour
Gradle sync fails with Gradle plugin 3.5.0
FAILURE: Build completed with 2 failures.

1: Task failed with an exception.
-----------
* Where:
Build file '/Users/phil.bayfield/***/***/screenshot/build.gradle' line: 13

* What went wrong:
A problem occurred evaluating project ':screenshot'.
> Failed to apply plugin [id 'shot']
   > Extension not initialized yet, couldn't access compileSdkVersion.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
==============================================================================

2: Task failed with an exception.
-----------
* What went wrong:
A problem occurred configuring project ':screenshot'.
> compileSdkVersion is not specified.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
==============================================================================

* Get more help at https://help.gradle.org

CONFIGURE FAILED in 3s
Extension not initialized yet, couldn't access compileSdkVersion.

Line 13 is: apply plugin: 'shot'
Steps to reproduce
Upgraded Gradle plugin from 3.4.2 to 3.5.0
Version of the library
2.2.0 (tried 3.0.0 but had issue #62)

Thanks for reporting. I won't have time to review this until the middle of September. However, if you think you can find where the error is please let me know.

I had the same issue, I fixed it by moving my apply plugin line below the android block in build.gradle

Confirmed. The problem is solved putting the apply plugin below the android block that has the compileSdkVersion needed. It looks 3.5.0 needed this value before

Turns out that worked for me too. Didn't have time to check before so had just reverted the plugin upgrade but moving the apply plugin was all that was needed.

Thank you so much @Philio and @durbon. As you mentioned before moving the plugin after the android configuration blog is a valid workaround. Additionally, I've updated the code to support that gradle version. We'll release a new version with this fix as soon as the PR is approved. Shot 3.0.2 will contain the fix you need to be able to use the Android Gralde plugin 3.5.X and Shot 😃

Another error pops up after moving the apply plugin below the android block.
This error shows:
Could not find method android() for arguments [react_3mo7jrvccre361ao42njv43bl$_run_closure5@4ef5f6d2]
on project ':app' of type org.gradle.api.Project.


quantized_conv3d and quantized_pool3d features

Now I am trying to implement 3D CNN on FPGA.
Do you have plan to support quantized_conv3d and quantized_pool3d features these two months?
if yes, when will it be released?
Cheers~

Unlikely in the short/midterm.


test: crawling for misconduct data

Context

Essentially, we want to collect data on complaints, agency size, city size, and insurance coverage separated by year.

We got a request from an academic researcher looking to collect data from as many jurisdictions as possible. They are trying to connect the dots between misconduct, insurance, and the taxpayer burden.
Notes

we don't need to collect the data just yet; finding it is its own task.

most of these tools are informal/in development—feel free to ask questions or suggest better ways to do stuff.

Task

[ ] use our existing data source ID tools to find specific types of data.

the goal is to complete the set for as many municipalities as possible: complaints, number of officers, liability insurance info
ideas from the agency homepage searcher (automating google searches) could be adapted to be useful

so, I recommend:

using automated google searches to generate likely URLs, iterating through cities (maybe in descending order of population; larger cities usually have better data)
using the source tag collector to get more metadata
refine an existing model so it's good at identifying  these three types of records
??? lots of ways this could play out

More details from requestor
Complaints
The more information the better here, preferably from the year 2000 onwards. We are most interested in total citizen complaints, total sustained citizen complaints, total use of force complaints, and total sustained use of force complaints. It’s important to note that some departments group together citizen (external) and departmental (internal) complaints in their reports. We are interested in collecting as much data as we can upfront, so total complaints and total sustained complaints may also be helpful, especially when we can discern which are external and which are internal. Total settlement cost is also helpful information, but may be more difficult to find.
https://home.chicagopolice.org/statistics-data/data-dashboards/accountability-dashboard-2/
OR https://www.icpsr.umich.edu/web/NACJD/studies/38651 (LEMAS)
Size of Agency
Measured by total number of sworn officers.
https://www.icpsr.umich.edu/web/NACJD/studies/38651 (LEMAS)
Size of City (out of PDAP scope, easy to find elsewhere)
Measured by city population.
https://www.chicago.gov/city/en/about/facts.html
Insurance coverage
The source of this information will likely vary across agencies, but annual budget reports are a good place to start. Otherwise, searching liability coverage of xx city or liability insurance of xx city may lead you to some pdfs with municipal insurance information. Insurance coverages likely take one of three forms: self-insured, contributes to municipal risk pools, or externally insured (by some commercial provider). Some municipalities engage in some sort of hybrid model - this is fine as long as we make note of it. Because law enforcement agencies are govt funded, we are looking at the insurance information of the municipality to which they belong (e.g., insurance coverage of Chicago, not insurance coverage of Chicago PD).
Bottom of pg. 104: https://www.chicago.gov/content/dam/city/depts/fin/supp_info/CAFR/2022CAFR/ACFR_2022.pdf
OR https://ipi.cityofchicago.org/Reporting/?MQy3cM%2BPHK8prsUtdjFlFgdV2AS9%2FN8As3rOpBWJp13UkPLfM%2FQA7U6UOBzfblTmI53gvYfsAHJxMvjGtIO6Ad%2BL5u8IPskvUdFdtKN%2BUfH9x3D7fN5I6CqjMQcS5iosW%2BQyTD87qiEE7n17ZI%2FeuBmPl%2BFQrvvrHiUO6%2FWh2wg%3D (not sure if this is exactly what we need?)
More background
I’m also including links to 4 articles that will help orient you and your team to this topic. The “How Governments Pay” article by Schwartz is most relevant to a framework for data collection/analysis, and the others (especially Rappaport’s “Typology” and “How Private Insurers…”) are more conceptual in nature. We wouldn’t expect you to read them all in full, but skimming them will be super helpful in getting a feel for the role of liability insurance in police misconduct.
Rappaport, J. (2016). An Insurance-Based Typology of Police Misconduct. University of Chicago Public Law & Legal Theory Working Paper, 585).
Rappaport, J. (2017). How private insurers regulate public police. Harvard Law Review, 130(6).
Schwartz, J.C. (2016a). How Governments Pay: Lawsuits, Budgets, and Police Reform. UCLA Law Review, 1144(63), pp. 1144-1298.
Schwartz, J.C. (2016b). Who Can Police the Police? University of Chicago Legal Forum, 2016(11), pp. 437-444).

@josh-chamberlain What's the absolute latest they could need this information by? I'm happy to begin working on this, but if they need this by the end of next Tuesday or something that might be somewhat tight.
Additionally, I mentioned this elsewhere, but I was able to obtain census data reporting on the size of cities/counties/etc. So that could be implemented.
Setting up a labeling task for some of the urls might also be worthwhile, as even a few hundred of those could enable us to train an ML model.

@josh-chamberlain Additionally, would it be useful for some of us to obtain (perhaps privately) the contact information of these researchers so that we could correspond with them more directly and further refine our efforts with their input?

Not sure how many of these are already in PDAP's database but the following code can be used to find related datasets from OpenPoliceData's datasets:
import openpolicedata as opd

df = opd.datasets.query()  # Get all datasets
# Get all datasets for complaints and displinary actions
df = df[df['TableType'].str.contains("COMPLAINTS") | df['TableType'].str.contains("LAWSUIT") | df['TableType'].str.contains("DISCIPLINARY")]
# Get data for only unique agencies
df_unique = df.drop_duplicates(subset=['State', 'SourceName'])

print(df_unique[['SourceName','TableType']])

        SourceName                 TableType

119            Richmond                COMPLAINTS
154           San Diego                COMPLAINTS
201          Santa Rosa                COMPLAINTS
263     Washington D.C.                  LAWSUITS
289             Chicago   COMPLAINTS - BACKGROUND
315         Bloomington                COMPLAINTS
322        Indianapolis                COMPLAINTS
325          South Bend                COMPLAINTS
452         New Orleans                COMPLAINTS
479   Montgomery County                COMPLAINTS
499       Massachusetts      DISCIPLINARY RECORDS
533             Detroit                COMPLAINTS
536             Lansing                COMPLAINTS
541         Minneapolis                  LAWSUITS
638              Albany                COMPLAINTS
651       New York City  COMPLAINTS - ALLEGATIONS
705           Asheville                COMPLAINTS
754          Cincinnati                COMPLAINTS
779              Norman  COMPLAINTS - ALLEGATIONS
877        Philadelphia   COMPLAINTS - BACKGROUND
897         Chattanooga                COMPLAINTS
1032            Seattle                COMPLAINTS
1040             Tacoma                COMPLAINTS
1049          Milwaukee                COMPLAINTS

Thanks @sowdm ! We have grabbed those before, but I made an issue to remind us to update periodically. I'll share OPD with the requestor specifically.

I've included the below information previously in #53, and include it again here, with some modified commentary:
First step would be finding data detailing all the different police agencies and their population. I found a good start with the results of the 2018 Census of State and Local Law Enforcement Agencies (CSLLEA). I've also included the results of this census (for parsing in R) as a zip file:
ICPSR_38771-V1.zip
Additionally, here's the primary data, as an excel file:
2018 Police Agencies Census Data.xlsx
17721 rows, and there's quite a bit of detail in this: Not just the location of each agency, but also:

Their 2018 estimated budget
Their population
The number of full time and part-time officers
What type of agency they are (Sheriff's Department, tribal, college, etc.)
What functionalities they served (for example, warrants, whether they investigated homicide, arson, cybercrime, whether they were used for crowd control)
And more.

The full set of information can be described in the code book contained within the zip.

Right now here's the current plan:

Reconfigure the in-development Google Searcher to conduct searches for misconduct reports, using a query such as "{city} {state} police misconduct annual report"
Iterate through these in order of either total population of city, total number of officers, or both.
Upload the results for hugging face, where they can be inspected and/or processed.

We can also try different sorts of queries. A few possible things to search for include:

Citizen complaints reports
Citizen Police Review Board
Office of Municipal Investigations

@maxachis I'm on vacation and not looking in a detailed way, but this sounds good overall. My gut says to try "{city} {state} police misconduct records" or "...reports".


Add logging to ledger

Problem
We'd like some better logs for ledger transactions to support the alphanet.
Solution
Add logs.

@EduardoRFS makes a good point that we should avoid this kind of ad-hoc logging in favor of a more principled and complete way to extract information from the chain. We have this with #759


Question: How to disable correction when I typed the executable name incorrectly?

I want to disable this correction question when I typed the executable name incorrectly.

A.I. told me to add this to .zshrc, but this did not work.
setopt nocorrectall

Please add unsetopt correct to your .zshrc.

Thanks. That worked.


Issue no. 321- Update Emergency.jsx

Pull Request Template for GSoC 2024
Related Issue
Solved issue no.321
closes:
Description of Changes
Modified Emergency Page
Type of Pull Request

[X] New Feature

Screenshots / Demo (if applicable)

Checklist for Contributor

[X] I have reviewed my code before submission.
[X] I have read and followed the project's Contribution Guidelines.
[X] I have tested the code thoroughly.
[X] I have attached related issue numbers, screenshots, or videos (if applicable).
[X] I have added comments to my code where necessary for clarity.
[X] I have checked the existing code base and my changes do not introduce any breaking changes.
[X] My PR addresses only one issue; I have created separate PRs for other issues.
[X] I have ensured that the PR does not include unrelated files.
[X] I am mindful of the project's coding standards and best practices.

Additional Information
None
Contribution Guidelines Reminder
Thank you for contributing to our project! Please ensure you follow the guidelines below:
Contribution Levels

Task Categories:

Basic Tasks: Primarily focused on small changes like minor bug fixes, documentation improvements, and unit testing. Labeled as Easy.
Intermediate Tasks: Moderate-level tasks that involve enhancing existing features, code refactoring, or performance improvements. Labeled as Medium.
Advanced Tasks: Complex tasks like building new features, significant refactoring, or critical bug fixes. Labeled as Hard.

Acknowledging Effort:

Exceptional contributions will be recognized with a higher contribution level if substantial effort and innovation are demonstrated.

Review Process

PRs will be reviewed by the maintainers, and feedback will be provided. Contributors should address feedback promptly and resubmit the PR if necessary.

Contributors are encouraged to participate in the review process of other PRs for community growth.

We appreciate your time and effort in improving this project and look forward to your valuable contributions!

@pragyanbhatt1213 PLEASE REMOVE CONFLICTS RECENTLY MERGED A PR DUE TO WHICH CONFLICTS ARE THERE


drop loopback out-of-process

This one may be a good first issue: today when doing install --via-loopback, if we get killed by e.g. Ctrl-C (i.e. SIGINT) we will leak the loopback device allocation.
I've been thinking here what would be nice in general is to create a little "out of process drop" helper that could handle these external resources; it would:

mask most signals that would otherwise be fatal
own the resource and if the parent process died (via PR_SET_PDEATHSIG) we'd take care of dropping them

This type of flow would also be nice for temporary directories, which are also easy to leak in this way.

Hmm, we may also be able to stop forking /bin/losetup and instead use the ioctl APIs and only hold a file descriptor, but that's a bigger change.

Hi, I'm interested in tackling this. I'm not sure if my understanding is correct, but it seems like we need to:

Fork a child process
Mask signals in the child process
Have the child process create the loopback device and have the parent process wait until it is opened
Set up a signal handler to drop the loopback device if the parent process is killed.

Am I missing anything here?


Improve pause menu

Add return, exit, main menu buttons and improve the aesthetics.

See #25

Pause menu is good enough


Showing definition with changes on ContributePrompt

This is how the ContributePrompt would look:

Fixes #617

I've added logo and namespace has suggested

👍


Save backtrack paths forever

[ ] Add menu item to keep backtrack path forever
[ ] Show an icon to indicate it is saved
[ ] Add field to waypoint table to indicate waypoints in that path are saved
[ ] Merging into a saved path will cause the resulting path to be saved

Requires #871 to be completed


Upgrade kind and related libraries

This changes upgrade:

testify to v1.16.1
apimachinery to v0.20.2
kind to v0.11.1
kyaml to v0.10.21

And ekz_create_cluster.md update EKS-D to default at v1.20.4-eks-1-20-1.
Closes #84

LGTM
thank you @wingyplus !


Small language change

"Powered by" and "Credits" looks very bad with their first letter in lowercase.

WTF... @Spuds does that mean selenium is broken again?

Sure looks like that ... what a royal PITA !

What a f****ing pain...
What I don't understand is why it breaks even though nothing really changed: the versions are the same as last week. :-\

Its friggin infuriating to say the least.


When gc deploy is run an unhelpful error is raised.

When I run gc deploy from the CLI on my Macbook Terminal, the following error is raised:
Bundling functions... ⣾
{ file: undefined,
  start: undefined,
  length: undefined,
  messageText: 'Cannot find type definition file for \'fs-extra\'.',
  category: 1,
Bundling functions... !
 ▸    Cannot read property 'getLineAndCharacterOfPosition' of undefined

The problem is I have no clue what it is related to, any ideas?
P.S. I am not using fs-extra in any of my code, so I am not sure why it pops up with that message.

Does this happen with every service definition? If not, please share one for which this happens, preferably in a new GitHub repo.
What's the output of graphcool version?

Might be related to #889.

Hello, my current version is graphcool/0.7.0 (darwin-x64) node-v7.8.0. As for it occurring with every service definition, sorry for my lack of the new terminology, but what exactly do you mean?

The set of files that consists of graphcool.yml and all files it refers to is the service definition.

Ok, let me create another project and see if that does it too.

Ok, I have created another test project and it deployed perfectly fine. I then compared the syntax in all of the files and, to no avail, I see no noticeable differences. Also, when trying to export the problematic service as a zip, the zip is not openable.

Ok thanks! Definitely looks like a similar issue as #889.

I was looking at that and the issue did seem similar. Also, not sure if it is the same or not, but I tried adding the newest fs-extra to my package.json and then tried re-deploying and it still did not work.

@marktani I wanted to let you know I solved the issue. The problem was I had another package.json in a parent folder that contained fs-extra as well. Once I removed it from the parent folder the deploy worked fine.

Thanks @Phenominal !  I will enforce the fs-extra version in the package.json of the CLI so this can't happen anymore.

Thanks a lot for the digging @Phenominal 😄

This is fixed and published at<EMAIL_ADDRESS>


feat(authentication-service): added clientType column in auth client

make client secret non mandatory for public clients
MIGRATION CHANGE:
migration-20230323132703- added clientType column in auth client
GH-1356
Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes #1356
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Intermediate change (work in progress)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Checklist:

[x] Performed a self-review of my own code
[x] npm test passes on your machine
[ ] New tests added or existing tests modified to cover all changes
[ ] Code conforms with the style guide
[ ] API Documentation in code was updated
[ ] Any dependent changes have been merged and published in downstream modules

change the description as it is not a breaking change

Update the readme file with all the necessary changes the user has to do to incorporate the feature


Visualization spec review

Reenabled visualization_spec tests, as we discovered we didn't have proper tests for visualization deletion.
Fixed a bug with default privacy for visualizations: it should be the privacy of the table by default, and only use the default privacy as a fallback.

Please CR @juanignaciosl

Changed ensure_valid_privacy so it uses the visualization owner, thanks! Second look @juanignaciosl?


 It will let you slaughter themes but it wont save the ammount of slaughters when you log back in. This is indicated with a burn symbol next to the suggestions even if you flag, no or yes a theme.

This should now be fixed (you get an popup dialog informing you to re-log in).


[#105] tf_idf with word2vec

Integrated Word2Vec with TF-IDF

Getting money

tested with 2k precedents
Loading cached Pickle of words.
Loading word vector file... May take a few seconds
Loading complete
TF-IDF set to: False
Reading: 2000 files
Fetching from precedence
Data Extraction: 100.000000
Preprocessing complete
Word cache saved
Loading information from dictionary into format for clustering
Transforming informaiton into matrix
DBSCAN begin

Clustering time:
213.07607913017273
HDBSCAN begin
Standardizing matrix
Clustering

Clustering time:
609.2210216522217
K-MEANS begin

Clustering time:
58.98891234397888

Made final changes that were requested. Please have a look, I will merge it in about an hour.

looks good


Removing a layer at runtime - todo

Discussed in https://github.com/pelicanmapping/rocky/discussions/53

Originally posted by ComradeMashkov August 27, 2024
Hey there! Recently I tried to add layers during runtime and I did it successfully:
auto layer = rocky::MBTilesImageLayer::create();
layer->setURI("data\\world\\world_white.mbtiles");
app_.mapNode->map->layers().add(layer);

It works just fine but I was wondering: am I able to remove layers during runtime? I tried it too but it didn't work (mostly because of lack of experience from my side). I tried naive solution:
app_.mapNode->map->layers().remove(layer);

And nothing happens. I guess we should tell map node or application to redraw layers or to update LayerCollection somehow but I don't know how exactly... I would appreciate it so much if you give me a clear explanation about this moment :)

After removing a layer you should now be able to call
mapNode->terrainNode->reset();

And it will rebuild the terrain with the updated map.


Missing CVSSv4 support

https://www.first.org/cvss/v4.0/specification-document
CVSS:4\.[0-9]\/AV:[NALP]\/AC:[LH]\/AT:[NP]\/PR:[NLH]\/UI:NPA\/S:[XNP]\/AU:[XNY]\/R:[XAUI]\/V:[XDC]\/RE:[XLMH]\/U:[XCGAR]\/MAV:[XNALP]\/MAC:[XLH]\/MAT:[XNP]\/MPR:[XNLH]\/MUI:[XNPA]\/:MVC[XHLN]\/:MVI[XHLN]\/:MVA[XHLN]\/:MSC[XHLN]\/:MSI[XSHLN]\/:MSA[XSHLN]\/:CR[XHML]\/:IR[XHML]\/:AR[XHML]\/:E[XAPU]
I suggest we leave "Vulnerable System Impact Metrics" and "Subsequent System Impact Metrics" as optional for now, but linked, as we can't know those. It should be noted that ideally vendors with specific products should add this data. However as all the other fields have a "Not Defined" option I think we should make them mandatory (and people can simply put "Not Defined").
https://github.com/ossf/osv-schema/pull/166

This was added in https://github.com/ossf/osv-schema/commit/463720c3fff0692dde0a8f3d69eb8d282e09332b.


Stuck with an error

When I run this demo:
learning.stage_s1(episodes=5, timesteps=256, batch_size=64, gamma=0.999, lambda_=0.995, save_every='end', stage_name='stage',
seed=42, polyak=0.999, aug_intensity=0.0, repeat_action=1, load_full=False)
.run2(epochs=10)
I meet with this error:
NotImplementedError: Cannot convert a structure of tensors to a single tensor. Saw (<tf.Tensor 'distribution_lambda/distribution_lambda
_Beta/value/distribution_lambda_Beta/sample/Reshape:0' shape=(None, 2) dtype=float32>,...........
I can't work out this problem, could you please help me?

I know this kind of error is about Tensorflow,  and I use the exact version which requirements.txt specifies.

Try to install tensorflow 2.2.0 and tensorflow-probability 0.10.1
If it still complains, please provide the full error message.


Update to .NET 7

Codecov Report

Merging #2615 (24d1a20) into main (09e564f) will increase coverage by 2.67%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #2615      +/-   ##
==========================================
+ Coverage   29.88%   32.56%   +2.67%
==========================================
  Files         290      169     -121
  Lines       35846    23326   -12520
==========================================
- Hits        10714     7596    -3118
+ Misses      25132    15730    -9402

Impacted Files
Coverage Δ

...Service/ApiService/onefuzzlib/WebhookOperations.cs

...c/ApiService/ApiService/Functions/QueueWebhooks.cs

src/ApiService/ApiService/onefuzzlib/Network.cs

src/ApiService/ApiService/onefuzzlib/Defs.cs

src/ApiService/ApiService/onefuzzlib/AutoScale.cs

...rc/ApiService/ApiService/OneFuzzTypes/Responses.cs

...rvice/TestHooks/NotificationOperationsTestHooks.cs

src/ApiService/ApiService/OneFuzzTypes/Requests.cs

...ce/ApiService/onefuzzlib/NotificationOperations.cs

...rc/ApiService/ApiService/onefuzzlib/InstanceIds.cs

... and 111 more

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


Fix links in detox object docs

Noticed the links to the methods for detox object didn't work, so went ahead an fixed them up.
And apparently my editor cleaned up some whitespace 🤷♂

GIFs
Before

After

Thanks!


frontend development of ironside

https://www.figma.com/proto/4T9P5cUlMpWiw4XCqt6CVH/Optimus-CMS?page-id=0%3A1&node-id=605%3A271&viewport=1838%2C-867%2C0.12&scaling=contain&starting-point-node-id=297%3A124

Noted TL

Task completed.  @philip-ifeanyi

Would gladly help out with any other tasks if i can. @philip-ifeanyi

Thanks @Waga43

nice template

Thanks @Waga43

You are welcome guys. The pleasure is mine. Wish us all the best. Let's keep the spirit high.

Confirmed done


€ not write

I'm not able to use AltGr-E to write € from Window.

Yes, unfortunately :disappointed:
https://github.com/Genymobile/scrcpy/blob/master/FAQ.md#special-characters-do-not-work
#37.


EncodeToWebP too slow

public static unsafe byte[] EncodeToWebP(this Texture2D lTexture2D, float lQuality, out Error lError)
The execution of this function is too slow. A 720p picture takes about 1 second. There is no room for optimization.

I tested it on a mac m1 computer.


No plans for Arduino-like platforms

@mck1117 any plans for Arduino-like platforms?

this is copy-pasted from googletest, let's not edit it


Remaining unbound functions

[x] https://github.com/luvit/luv/pull/412 uv_stream_get_write_queue_size; see also the non-standard luv function tcp_write_queue_size, presumably bound before uv_stream_get_write_queue_size was added
[x] uv_loop_configure (#103, https://github.com/luvit/luv/pull/496)
[ ] uv_setup_args (#264); I don't think this is bindable, see https://github.com/libuv/libuv/issues/2845
[x] #413 uv_fs_lchown
[x] uv_replace_allocator (no binding possible from Lua)
[x] uv_default_loop (we don't expose loop to Lua)
[x] uv_loop_new (we don't expose loop to Lua)
[x] uv_loop_delete (we don't expose loop to Lua)
[x] uv_loop_size (we don't expose loop to Lua)
[x] uv_loop_fork (we don't expose loop to Lua)
[x] uv_loop_get_data (we don't expose loop to Lua)
[x] uv_loop_set_data (we don't expose loop to Lua)
[ ] uv_strerror (used internally but not bound externally)
[ ] uv_strerror_r
[ ] uv_err_name (used internally but not bound externally)
[ ] uv_err_name_r
[x] uv_handle_size (don't think there's a usecase for this from Lua)
[x] uv_handle_get_type (https://github.com/luvit/luv/pull/494)
[x] uv_handle_type_name (https://github.com/luvit/luv/pull/494)
[x] uv_handle_get_data (no real reason to bind this imo)
[x] uv_handle_get_loop (we don't expose loop to Lua)
[x] uv_handle_set_data (no real reason to bind this imo)
[x] uv_req_size (don't think there's a usecase for this from Lua)
[x] uv_req_get_data (no real reason to bind this imo)
[x] uv_req_set_data (no real reason to bind this imo)
[x] uv_req_get_type (https://github.com/luvit/luv/pull/494)
[x] uv_req_type_name (https://github.com/luvit/luv/pull/494)
[x] uv_udp_set_source_membership (https://github.com/luvit/luv/pull/491)
[x] uv_pipe_chmod (https://github.com/luvit/luv/pull/492)
[x] uv_process_get_pid (https://github.com/luvit/luv/pull/493)
[ ] uv_get_osfhandle
[ ] uv_open_osfhandle
[ ] uv_fs_get_type
[x] uv_fs_get_result (no real reason to bind this imo)
[x] uv_fs_get_ptr (no real reason to bind this imo)
[ ] uv_fs_get_path
[x] uv_fs_get_statbuf (no real reason to bind this imo)
[ ] uv_fs_get_system_error (Libuv >= 1.38.0, see https://github.com/luvit/luv/pull/509#issuecomment-686148354)
[ ] uv_ip4_addr (used internally but not bound externally)
[ ] uv_ip6_addr (used internally but not bound externally)
[ ] uv_ip4_name (used internally but not bound externally)
[ ] uv_ip6_name (used internally but not bound externally)
[ ] uv_ip_name
[ ] uv_inet_ntop (used internally but not bound externally)
[ ] uv_inet_pton
[ ] uv_dlopen
[ ] uv_dlclose
[ ] uv_dlsym
[ ] uv_dlerror

Threading/synchronization
Ignoring these for now; we aren't binding any of them currently AFAIK so it'd probably be opening a can of worms.

uv_mutex_init
uv_mutex_init_recursive
uv_mutex_destroy
uv_mutex_lock
uv_mutex_trylock
uv_mutex_unlock
uv_rwlock_init
uv_rwlock_destroy
uv_rwlock_rdlock
uv_rwlock_tryrdlock
uv_rwlock_rdunlock
uv_rwlock_wrlock
uv_rwlock_trywrlock
uv_rwlock_wrunlock
uv_sem_init
uv_sem_destroy
uv_sem_post
uv_sem_wait
uv_sem_trywait
uv_cond_init
uv_cond_destroy
uv_cond_signal
uv_cond_broadcast
uv_barrier_init
uv_barrier_destroy
uv_barrier_wait
uv_cond_wait
uv_cond_timedwait
uv_once
uv_key_create
uv_key_delete
uv_key_get
uv_key_set

We could probably deprecate tcp_write_queue_size and getpid if they have libuv versions.
lchown needs implementing.

What should be the process for deprecation?

I would just leave a comment in the code and document that it should not be used, or just not document it at all. We can't remove anything without a major version bump.

Added to the OP: an autogenerated a list of all functions defined in uv.h that match the pattern UV_EXTERN return_type uv_function_name() that have no occurrences in any of Luv's C files. It's bigger than I was expecting, and it's likely that we don't really want to bind them all. Many have to do with threading/synchronization.

Brave man

Are there any plans to exposing loop utilities to Lua? I'm in a situation where I need to use fork syscall but in order to do that I have to call uv_loop_fork, where I need a pointer to loop. I know this is a niche case but it might still be effective to support loop calls.


CIE: acr_values not properly formatted in federation authorization request

When performing an authorization request in a openid federation setting, the acr_values claims is current formatted as an array of strings - link to reference code https://github.com/scc-digitalhub/AAC/blob/3c8f2f414fb30c5fa5de82745a4805e385f64af7/src/main/java/it/smartcommunitylab/aac/openidfed/auth/OpenIdFedOAuth2AuthorizationRequestResolver.java#L269
According to OIDC Specs and CIE Specs it should be a "Space-separated string".

good catch. Given that it should be fixed by a recent commit and there is no test (yet), please check again on the current HEAD.


Security via OAuth

Hey together,
at first of all: Thank you so much for SwaggerWcf! It makes my work with wcf so much easier!
My Question/Issue:
Is it planned, to implement the oauth security definition of swagger 2.0? And if not: Can I help, to implement it? It's very important to me and I am able to help you out
Thank you so much!
René

Alright.. that was not much work to to. I solved issue #56 and implemented the security spec of swagger 2.0. @abelsilva: Take a look at my fork, please. It would be great, to see my code being merged into your swaggerwcf-repo
Best regards
René


Added one endtoend testcase that does the status check

This will create a grpc server which contains health check impl. Our testcase will use the generated binary and using actual process, it will execute it with addr pointing to grpc server and it will compare the output with expected status.
So far, I have added only one testcase, which checks the SERVING status.

After some thinking, I am thinking extracting the code into a shape that's nicely testable will most likely increase the source code 3-4 times excluding the test code.
So for now I'll close this to keep things simple and easily readable. Thanks for your contribution, however.


Provide fallback implementation of unittest.assertLogs for Python <3.4

Tests from #2407 are failing on Python <3.4 because unittest.assertLogs was only added in 3.4. This PR provides a fallback implementation, 'borrowed' from a (non-merged) Django pull request: https://github.com/django/django/pull/3467/commits/1b4f10963628bb68246c193f1124a1f7b6e4c696

Oops, sorry for not spotting this earlier. And thanks for pulling in an implementation -- I can see us using this in a few other places!


Caused by: java.lang.ClassNotFoundException: Didn't find class "com.scwang.smartrefresh.layout.SmartRefreshLayout" on path: DexPathList[[zip file

SmartRefreshLayout class is not found when i try to use the custom view in the xml layout. Most likely an android x issue.
 Caused by: java.lang.ClassNotFoundException: com.scwang.smartrefresh.layout.SmartRefreshLayout
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:454)
        at android.view.LayoutInflater.createView(LayoutInflater.java:815)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:659)

The sample app is not implemented the same way as the setup instructions. Would be very helpful to have the sample app support android x. Otherwise it will be further and further out of date. Thanks and the pull to refresh components are impressive, hope i can use one day :)

如果使用 AndroidX 先在 gradle.properties 中添加，两行都不能少
android.useAndroidX=true
android.enableJetifier=true


Merge

Coverage increased (+0.4%) to 81.533% when pulling b63fda77db208339db6d757466458de309dc50c6 on master into 3c81b68c5ef50aa9a473e08fc8f15923f2edaa73 on V0.5.

Coverage remained the same at 81.176% when pulling b63fda77db208339db6d757466458de309dc50c6 on master into 3c81b68c5ef50aa9a473e08fc8f15923f2edaa73 on V0.5.

Coverage remained the same at 81.176% when pulling b63fda77db208339db6d757466458de309dc50c6 on master into 3c81b68c5ef50aa9a473e08fc8f15923f2edaa73 on V0.5.


MGDOBR-1214: Operator: Split (API) versioned artifacts into sub-modules (#1308) - Update kustomization images

This Pull request aims to update the kustomization images for the PR MGDOBR-1214: Operator: Split (API) versioned artifacts into sub-modules (#1308)

/deploy dev


Add index.html to serve GitHub Pages

I would like to work on this. Could you please, assign this issue to me.

You are good to go.


fix(dlp): Removed skip function from create stored infotype test

Description

Removing the skipKOKORO function from the metadata_test.go

Note: Before submitting a pull request, please open an issue for discussion if you are not associated with Google.
Checklist

[X] I have followed Contributing Guidelines from CONTRIBUTING.MD
[X] Tests pass:   go test -v ./.. (see Testing)
[X] Code formatted:   gofmt (see Formatting)
[X] Vetting pass:   go vet (see Formatting)
[ ] These samples need a new API enabled in testing projects to pass (let us know which ones)
[ ] These samples need a new/updated env vars in testing projects set to pass (let us know which ones)
[ ] This sample adds a new sample directory, and I updated the CODEOWNERS file with the codeowners for this sample
[ ] This sample adds a new Product API, and I updated the Blunderbuss issue/PR auto-assigner with the codeowners for this sample
[X] Please merge this PR for me once it is approved

I'm going to close this PR since it's effectively empty. If necessary, we can try a new PR.


When loading the page, there is an anchor function in the menu, you must have it?

Which page this happened?

@diegoeis http://locaweb.github.io/locawebstyle/documentacao/componentes/estrutura-principal/


Support onClick animaton to center an item

Hello,
Can I achieve a feature which is available on most of a carousel components implementation?
Right now if I click on an item which isn't centred (on the left or on the right) nothing happens.
What I have now is set onClickListner for each item in onBindViewHolder method.
I'd like to animate clicked item to a centre position somehow.

Hello,
We implemented this feature in branch feature-center_item_by_click. We will add it to the next release after small refactoring.

Hi, @mklimek!
Please find new 1.1.6 version with this new feature.


[BUG] get_telemetry fails when reference lap has NaT in LapStartTime

Describe the issue:
Using fastf1 2.2.3 and python3.9
When I try to load the telemetry data for a lap where the LapStartTime is NaT the call fails.
The exact failure is in core.py in line 816 in the function calculate_driver_ahead when  slice_by_data is called on the session data.
There is valid session data and a reference lap but in some cases the data in the reference lap contians NaT.  When slice_by_data is called it assigns NaT to start_time (line 320). Further down the line when slice_by_time is returned it compares the SessionTime to start_time what will also produce an NaT and will lead to an empty Telemetry object. That will raise an error in calculate_differential_distance.
This issue is similar to https://github.com/theOehrly/Fast-F1/issues/146
Maybe instead of throwing an error it should just spit out a warning and skip this lap / slice or don't calculate the driver ahead in this case?
Or do I do something wrong?
Reproduce the code example:
import fastf1 as ff1
ff1.Cache.enable_cache('Analysis/cache')

event = ff1.get_session(2022, 'Australia', 'Q')
event.load()
for driver_lap in event.laps.pick_driver(16).iterlaps():
    driver_tel = driver_lap[1].get_telemetry()

Error message:
Traceback (most recent call last):
  File "/opt/homebrew/Caskroom/miniforge/base/envs/f1/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 3369, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-2-6c8e21935a8d>", line 1, in <cell line: 1>
    runfile('/Users/markstein/Library/Mobile Documents/com~apple~CloudDocs/projects/f1/trouble2.py', wdir='/Users/markstein/Library/Mobile Documents/com~apple~CloudDocs/projects/f1')
  File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/_pydev_bundle/pydev_umd.py", line 198, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "/Users/markstein/Library/Mobile Documents/com~apple~CloudDocs/projects/f1/trouble2.py", line 8, in <module>
    driver_tel = driver_lap[1].get_telemetry()
  File "/opt/homebrew/Caskroom/miniforge/base/envs/f1/lib/python3.9/site-packages/fastf1/core.py", line 2130, in get_telemetry
    drv_ahead = car_data.iloc[1:-1].add_driver_ahead() \
  File "/opt/homebrew/Caskroom/miniforge/base/envs/f1/lib/python3.9/site-packages/fastf1/core.py", line 718, in add_driver_ahead
    drv_ahead, dist = self.calculate_driver_ahead()
  File "/opt/homebrew/Caskroom/miniforge/base/envs/f1/lib/python3.9/site-packages/fastf1/core.py", line 818, in calculate_driver_ahead
    drv_tel = drv_tel.add_distance()
  File "/opt/homebrew/Caskroom/miniforge/base/envs/f1/lib/python3.9/site-packages/fastf1/core.py", line 651, in add_distance
    new_dist = pd.DataFrame({'Distance': self.integrate_distance()})
  File "/opt/homebrew/Caskroom/miniforge/base/envs/f1/lib/python3.9/site-packages/fastf1/core.py", line 750, in integrate_distance
    ds = self.calculate_differential_distance()
  File "/opt/homebrew/Caskroom/miniforge/base/envs/f1/lib/python3.9/site-packages/fastf1/core.py", line 732, in calculate_differential_distance
    raise ValueError("Telemetry does not contain required channels 'Time' and 'Speed'.")
ValueError: Telemetry does not contain required channels 'Time' and 'Speed'.

Yes, that is a bug. I guess skipping the problematic lap and showing a warning is the best we could do. Realistically, if this error comes up, the results might be completely wrong as there potentially is another car on track, but its position is unknown. Still, I this shouldn't just raise an error like this.
The whole .calculate_driver_ahead function is fairly problematic. I've wanted to improve it since quite some time, but I've always pushed it away because of more important things.

Maybe it would be easier to make “calculate_driver_ahead“ function separate. Then it won’t impact the functionality of other functions and can still be called independently if needed

Now fixed as a result of various improvements made to the api parser and to .calculate_driver_ahead.


[5.7] Add support for proper decimal casting if using php-decimal

Adds support for smarter decimal casting, if the extension is installed.
This shouldn't break anything or affect those who won't have the extension installed. The instanceof call doesn't attempt to autoload so there is zero-cost here. The alternative is for me to create a separate package with a trait that overrides asDecimal. I'm happy to do that but this seems way nicer.
See: http://php-decimal.io

So you want to introduce an instanceof  check for an extremely specific library in a trait that has no outside(third party) dependencies? Making the argument that this does not affect users who are not using this is not a good argument.
If you want to go down that road you can start checking for a dozen more libraries that people are perhaps using. I see this being useful for your specific case but not useful for Laravel as a framework.

If you want to go down that road you can start checking for a dozen more libraries that people are perhaps using

@stephan-v I completely agree, thanks for pointing that out.


Incremental scan follow-ups

Fixes: #765: This addresses all the follow-ups from #315

Would it be difficult to separate these changes into different pull requests? It would be easier to review that way, since many of the changes are independent.

Should be doable.

Closing this in favor of smaller patches


Modernize Python 2 code to get ready for Python 3

Pull Request Description
Some minimal, "safe" changes to make the code syntax compatible with both Python 2 and Python 3.

Run futurize --stage1 http://python-future.org/futurize_cheatsheet.html

Python 3 syntax compatibility does not mean that the port is complete.  More work may be required to complete the port to Python 3.
Acceptance Criteria
To be accepted into the Swift source compatibility test suite, a project must:

[X] be an Xcode or swift package manager project
[X] support building on either Linux or macOS
[X] target Linux, macOS, or iOS/tvOS/watchOS device
[X] be contained in a publicly accessible git repository
[X] maintain a project branch that builds against Swift 3.0 compatibility mode
or Swift 4.0 and passes any unit tests
[X] have maintainers who will commit to resolve issues in a timely manner
[X] be compatible with the latest GM/Beta versions of Xcode and swiftpm
[X] add value not already included in the suite
[X] be licensed with one of the following permissive licenses:

BSD
MIT
Apache License, version 2.0
Eclipse Public License
Mozilla Public License (MPL) 1.1
MPL 2.0
CDDL

[X] pass ./project_precommit_check script run

Ensure project meets all listed requirements before submitting a pull request.

@swift-ci please test

@swift-ci please test

Thanks for getting this started @cclauss! While modernizing Python 2 source to be Python 3 compatible is a good idea, it's unlikely that Swift nor the source compatibility suite will be pure Python 3 projects anytime soon. We primarily support Python 2.7.10 and up as that ships with macOS by default.

Thanks @Rostepher and @cclauss, going to go ahead and merge this.

Some day soon Apple will need to follow the Linux distros and ship Python 3 as the default.
Given https://pythonclock.org now is the time to start getting ready for that day.


Add issuer registrations

Now that we have our dev registry service deployed, we will need to approve issuer registrations. These list of registrations will be used by the orgbook-microservice to register issuers in orgbook.
@esune @amanji @bblazicevic @krobinsonca @Jsyro

I think the naming convention is ok - relating to issuers of VCs in Orgbook


HTTP proxy support?

This might affect many corporate users which do not have an open network, but must use a HTTP proxy to tunnel all traffic. Such a proxy can be used in two ways:

For regular HTTP (which does not apply here)
Tuneling arbitrary traffic with CONNECT which would work here.

We used to have a closed network, but now have both a ZScaler based transparent proxy as well as an expliclit HTTP proxy which can route arbitrary traffic.
This is a request to evaluate HTTP proxy support in gitup. It could be done in two ways:

Put it in gitup.conf
Support HTTPS_PROXY and NO_PROXY environment variables

I believe I've got basic unauthenticated proxy support added now (it works when I route it through a local apache server configured as a forward proxy).  How does it look?  I'll start working on support for authenticated connections this weekend.  Thanks!

Testing... will get back to you soon

The process crashes for me with a SIGSEGV. OpenSSL says goodbye.
tcpdump looks OK:
# tcpdump "tcp port 9400"
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bge0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:51:50.959539 IP deblndw011x.ad001.siemens.net.50041 > de2.coia.siemens.net.9400: Flags [S], seq 809768188, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS val<PHONE_NUMBER> ecr 0], length 0
16:51:50.968558 IP de2.coia.siemens.net.9400 > deblndw011x.ad001.siemens.net.50041: Flags [S.], seq<PHONE_NUMBER>, ack 809768189, win 65535, options [mss 1460,nop,wscale 5,sackOK,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
16:51:50.968572 IP deblndw011x.ad001.siemens.net.50041 > de2.coia.siemens.net.9400: Flags [.], ack 1, win 1027, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
16:51:51.171759 IP deblndw011x.ad001.siemens.net.50041 > de2.coia.siemens.net.9400: Flags [F.], seq 1, ack 1, win 1027, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
16:51:51.181995 IP de2.coia.siemens.net.9400 > deblndw011x.ad001.siemens.net.50041: Flags [.], ack 2, win 2081, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
16:51:51.182003 IP de2.coia.siemens.net.9400 > deblndw011x.ad001.siemens.net.50041: Flags [F.], seq 1, ack 2, win 2081, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
16:51:51.182011 IP deblndw011x.ad001.siemens.net.50041 > de2.coia.siemens.net.9400: Flags [.], ack 2, win 1026, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
^C
7 packets captured
380 packets received by filter
0 packets dropped by kernel

lldb says:
osipovmi@deblndw011x:~/var/Projekte/gitup (main *%=)
$ lldb --core gitup.core gitup
(lldb) target create "gitup" --core "gitup.core"
Core file '/net/home/osipovmi/var/Projekte/gitup/gitup.core' (x86_64) was loaded.
(lldb) bt all
* thread #1, name = 'gitup', stop reason = signal SIGSEGV
  * frame #0: 0x00000008005a5865 libcrypto.so.111`OPENSSL_cleanse at x86_64cpuid.S:231
    frame #1: 0x00000008004a31fb libcrypto.so.111`rand_drbg_cleanup_additional_data [inlined] rand_pool_reattach(pool=0x0000000800257980, buffer=<unavailable>) at rand_lib.c:571:5
    frame #2: 0x00000008004a31ec libcrypto.so.111`rand_drbg_cleanup_additional_data(pool=0x0000000800257980, out=<unavailable>) at rand_lib.c:301
    frame #3: 0x00000008004a49d6 libcrypto.so.111`RAND_DRBG_bytes(drbg=0x0000000800af7480, out="", outlen=0) at drbg_lib.c:686:9
    frame #4: 0x00000008002cfe88 libssl.so.111`SSL_CTX_new(meth=0x00000008002e2810) at ssl_lib.c:3063:13
    frame #5: 0x000000000020c915 gitup`process_command [inlined] ssl_connect(connection=0x00007fffffffa710) at gitup.c:757:20
    frame #6: 0x000000000020c7b9 gitup`process_command(connection=0x00007fffffffa710, command="GET https://git.freebsd.org:443/src.git/info/refs?service=git-upload-pack HTTP/1.1\r\nHost: git.freebsd.org:443\r\nUser-Agent: gitup/0.91\r\nGit-Protocol: version=2\r\n\r\n") at gitup.c:815
    frame #7: 0x0000000000208d87 gitup`main [inlined] get_commit_details(connection=0x00007fffffffa710) at gitup.c:1138:2
    frame #8: 0x0000000000208d33 gitup`main(argc=<unavailable>, argv=0x0000000800acf1c0) at gitup.c:2423
    frame #9: 0x0000000000205280 gitup`_start(ap=<unavailable>, cleanup=<unavailable>) at crt1.c:76:7

truss says:
socket(PF_INET,SOCK_STREAM,IPPROTO_TCP)      = 3 (0x3)
connect(3,{ AF_INET <IP_ADDRESS>:9400 },16)    = 0 (0x0)
mmap(0x0,131072,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>4 (0x800b2d000)
__sysctl("kern.ostype",2,0x800235c21,0x7fffffff7c30,0x0,0) = 0 (0x0)
__sysctl("kern.hostname",2,0x800235d21,0x7fffffff7c30,0x0,0) = 0 (0x0)
__sysctl("kern.osrelease",2,0x800235e21,0x7fffffff7c30,0x0,0) = 0 (0x0)
__sysctl("kern.version",2,0x800235f21,0x7fffffff7c30,0x0,0) = 0 (0x0)
__sysctl("hw.machine",2,0x800236021,0x7fffffff7c30,0x0,0) = 0 (0x0)
openat(AT_FDCWD,"/lib/libcrypto.so.111",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 4 (0x4)
fstat(4,{ mode=-r--r--r-- ,inode=197317,size=3062984,blksize=32768 }) = 0 (0x0)
close(4)                     = 0 (0x0)
fstatat(AT_FDCWD,"/usr/share/nls/C/libc.cat",0x7fffffff9110,0x0) ERR#2 'No such file or directory'
fstatat(AT_FDCWD,"/usr/share/nls/libc/C",0x7fffffff9110,0x0) ERR#2 'No such file or directory'
fstatat(AT_FDCWD,"/usr/local/share/nls/C/libc.cat",0x7fffffff9110,0x0) ERR#2 'No such file or directory'
fstatat(AT_FDCWD,"/usr/local/share/nls/libc/C",0x7fffffff9110,0x0) ERR#2 'No such file or directory'
mmap(0x0,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>6 (0x800b4d000)
mmap(0x0,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>8 (0x800b4f000)
mmap(0x0,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>0 (0x800b51000)
mmap(0x0,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>2 (0x800b53000)
mmap(0x0,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>4 (0x800b55000)
mmap(0x0,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>6 (0x800b57000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>6 (0x800ad0000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>8 (0x800b59000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>4 (0x800b5a000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>0 (0x800b5b000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>6 (0x800b5c000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>2 (0x800b5d000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>8 (0x800b5e000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>4 (0x800b5f000)
mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>0 (0x800b60000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>0 (0x800b65000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>6 (0x800b66000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>2 (0x800b67000)
issetugid()                  = 0 (0x0)
open("/etc/ssl/openssl.cnf",O_RDONLY,0666)   = 4 (0x4)
fstat(4,{ mode=-rw-r--r-- ,inode=197155,size=11136,blksize=32768 }) = 0 (0x0)
read(4,"# $FreeBSD: stable/12/crypto/ope"...,32768) = 11136 (0x2b80)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>8 (0x800b68000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>4 (0x800b69000)
read(4,0x800ae6e00,32768)            = 0 (0x0)
close(4)                     = 0 (0x0)
openat(AT_FDCWD,"/usr/lib/libssl.so.111",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 4 (0x4)
fstat(4,{ mode=-r--r--r-- ,inode=963344,size=609472,blksize=32768 }) = 0 (0x0)
close(4)                     = 0 (0x0)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>0 (0x800b6a000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>6 (0x800b6b000)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>2 (0x800b6c000)
mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>8 (0x800b6d000)
mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>6 (0x800b70000)
mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>4 (0x800b73000)
mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>2 (0x800b76000)
mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>0 (0x800b79000)
mmap(0x0,28672,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>8 (0x800b7c000)
getpid()                     = 64147 (0xfa93)
getrandom("\M^Y\^E\M-F}\M-s\^PJ\^R\^? \M^W"...,32,0) = 32 (0x20)
getpid()                     = 64147 (0xfa93)
getpid()                     = 64147 (0xfa93)
getpid()                     = 64147 (0xfa93)
getpid()                     = 64147 (0xfa93)
getpid()                     = 64147 (0xfa93)
getpid()                     = 64147 (0xfa93)
getpid()                     = 64147 (0xfa93)
getpid()                     = 64147 (0xfa93)
getpid()                     = 64147 (0xfa93)
SIGNAL 11 (SIGSEGV) code=SEGV_MAPERR trapno=12 addr=0x800b83000
process killed, signal = 11 (core dumped)

The code runs flawlessly w/o the proxy...I don't understand why this happens yet.

Although this should not crash, the implementation is logically wrong. If not using HTTP which aren't one must implement the CONNECT method to tunnel arbitrary traffic because the proxy does not know that the TLS traffic is HTTP (regardless of the port).

From OpenSSL:
$ openssl s_client -debug  de.coia.siemens.net:9400
CONNECTED(00000003)
write to 0x800bd1f00 [0x801258000] (323 bytes => 323 (0x143))
0000 - 16 03 01 01 3e 01 00 01-3a 03 03 62 06 d0 b4 65   ....>...:..b...e
0010 - d3 fd 4e 41 bc 39 17 63-97 25 49 80 63 f3 f3 62   ..NA.9.c.%I.c..b
0020 - 28 f4 7a 6b 8e 88 01 59-57 56 cb 20 ae 05 48 0d   (.zk...YWV. ..H.
0030 - 43 bd eb d0 f2 22 62 fc-96 d4 f1 3e 6b 1f 55 ee   C...."b....>k.U.
0040 - b4 e8 b2 72 3c 01 7e 49-02 bb b4 7a 00 3e 13 02   ...r<.~I...z.>..
0050 - 13 03 13 01 c0 2c c0 30-00 9f cc a9 cc a8 cc aa   .....,.0........
0060 - c0 2b c0 2f 00 9e c0 24-c0 28 00 6b c0 23 c0 27   .+./...$.(.k.#.'
0070 - 00 67 c0 0a c0 14 00 39-c0 09 c0 13 00 33 00 9d   .g.....9.....3..
0080 - 00 9c 00 3d 00 3c 00 35-00 2f 00 ff 01 00 00 b3   ...=.<.5./......
0090 - 00 00 00 18 00 16 00 00-13 64 65 2e 63 6f 69 61   .........de.coia
00a0 - 2e 73 69 65 6d 65 6e 73-2e 6e 65 74 00 0b 00 04   .siemens.net....
00b0 - 03 00 01 02 00 0a 00 0c-00 0a 00 1d 00 17 00 1e   ................
00c0 - 00 19 00 18 00 23 00 00-00 16 00 00 00 17 00 00   .....#..........
00d0 - 00 0d 00 30 00 2e 04 03-05 03 06 03 08 07 08 08   ...0............
00e0 - 08 09 08 0a 08 0b 08 04-08 05 08 06 04 01 05 01   ................
00f0 - 06 01 03 03 02 03 03 01-02 01 03 02 02 02 04 02   ................
0100 - 05 02 06 02 00 2b 00 0b-0a 03 04 03 03 03 02 03   .....+..........
0110 - 01 03 00 00 2d 00 02 01-01 00 33 00 26 00 24 00   ....-.....3.&.$.
0120 - 1d 00 20 42 1b c9 16 29-83 1b 17 92 77 2c c3 58   .. B...)....w,.X
0130 - 65 45 6c f0 73 3f 4a 86-1e e8 f3 a2 b7 0f 12 c4   eEl.s?J.........
0140 - 57 d6 69                                          W.i
read from 0x800bd1f00 [0x80124c743] (5 bytes => -1 (0xFFFFFFFFFFFFFFFF))
write:errno=54
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 323 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
read from 0x800bd1f00 [0x800b3a000] (8192 bytes => 0 (0x0))

Sorry for the delay (I missed the comments in the last commit).  Proxy connections are now being transmitted over HTTP and support for the HTTP_PROXY environment variable has been added.  How does it look?  Are you still getting SIGSEGVs?

Testing now....

No segmentation fault and the tunnel is established, but several issues are still very fishy here..I will go through:
$ truss -o out ./gitup -C gitup.conf stable -v2
# Configuration file: gitup.conf
# Host: git.freebsd.org
# Port: 443
# Proxy Host: de.coia.siemens.net
# Proxy Port: 9400
# Repository Path: https://git.freebsd.org:443/src.git
# Target Directory: /var/osipovmi/freebsd-src
CONNECT git.freebsd.org:443 HTTP/1.1
Host: git.freebsd.org:443

==> bytes sent: 67
==> bytes read: 65      bytes_expected: 0       total_bytes_read: 65
GET https://git.freebsd.org:443/src.git/info/refs?service=git-upload-pack HTTP/1                                                                 .1
Host: git.freebsd.org:443
User-Agent: gitup/0.91
Git-Protocol: version=2

Here is a misconception: Although you now have established a tunnel, you are still treating it as if your are accessing an HTTP sever, not HTTPS. The entire thing hangs.  Let's look at at the truss output:
socket(PF_INET,SOCK_STREAM,IPPROTO_TCP)      = 3 (0x3)
connect(3,{ AF_INET <IP_ADDRESS>:9400 },16)    = 0 (0x0)
setsockopt(3,SOL_SOCKET,SO_KEEPALIVE,0x7fffffff779c,4) = 0 (0x0)
setsockopt(3,SOL_SOCKET,SO_SNDBUF,0x7fffffff779c,4) = 0 (0x0)
setsockopt(3,SOL_SOCKET,SO_RCVBUF,0x7fffffff779c,4) = 0 (0x0)
setsockopt(3,SOL_SOCKET,SO_RCVTIMEO,0x7fffffff77a0,16) = 0 (0x0)
setsockopt(3,SOL_SOCKET,SO_SNDTIMEO,0x7fffffff77a0,16) = 0 (0x0)
write(3,"CONNECT git.freebsd.org:443 HTTP"...,67) = 67 (0x43)
write(2,"\r==> bytes sent: 67",19)       = 19 (0x13)
write(2,"\n",1)                  = 1 (0x1)
read(3,"HTTP/1.1 200 Connection Establis"...,4096) = 65 (0x41)
mmap(0x0,1052672,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =<PHONE_NUMBER>6 (0x801200000)
write(2,"\r==> bytes read: 65\tbytes_expe"...,58) = 58 (0x3a)
write(2,"\n",1)                  = 1 (0x1)
write(2,"GET https://git.freebsd.org:443/"...,164) = 164 (0xa4)
close(3)                     = 0 (0x0)

The proxy has truly established the connection, but verbose output does not print that. Not helpful for the user. After that you must now initiate the TLS session on that socket because the proxy will now act as a socket proxy simply forward TCP packets to the target on your behalf. The HTTP server at the other end expects a Client Hello instead of a GET.
See:
$ truss -o out openssl s_client -connect git.freebsd.org:443 -proxy de.coia.siemens.net:9400
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = git.freebsd.org
verify return:1
---
Certificate chain
 0 s:CN = git.freebsd.org
   i:C = US, O = Let's Encrypt, CN = R3
 1 s:C = US, O = Let's Encrypt, CN = R3
   i:O = Digital Signature Trust Co., CN = DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGJTCCBQ2gAwIBAgISA1l9rrZXZTwRYB5AuyOPqrKUMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMTAzMTMyMDE2MDhaFw0yMTA2MTEyMDE2MDhaMBoxGDAWBgNVBAMT
D2dpdC5mcmVlYnNkLm9yZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
ALvQdnD+ylYtU+i0OuB+2lBhYAR2oOfioWn5xXLlybYlZmC6FpkonBeiqzpJa7c8
Nb+WA3R8BuMfBb4ggeKiZctwjKj45ZpdVLJ2EMNQe63WNL9D1ubzRaTMcL6iVbTI
nsEXSkVutb6m7yePXgCkmG6O6KG2eYeStgTRN5KqpBF2CfE/X1iP/G0Cn+mbFiHC
2enetsyUluaPhaZjLnfvOND/nnfEao3ldKiO0/1PY/DzzSyLze7hB1d2TBTmEAsC
wiNPN6w+BjMiGgl1XUoubiJeFNHyoEJX0iHlpNcbK9OQQvWb/X+JB10lRAvdYhp3
MHH1PM8Gm9/NCoOu+qooVgwIGjO8bd5qPRYN32kAvaaXWRuOtO4HDqE8rPyn2rKA
qNdmLdO/rC9mB4xHcCmQL2/SEk08l1cTYaTvLUuOe2NcTbPnAAdTqsDpBy+edbEe
Ti90msj+RyH6pEyzI3PAYO8UOGK0XwEA/OYkMdz9NH1vVgmIrpDDDPc5/lK6z+Hg
ZwClesD0Hr6rHIqFWzCZML6UXOceTn0DuU6n4mNSoQGWNayzPlsiEQsVTr7FX246
FnHI5Ya31qfQn5YzpxOkGSDj0VEY2F5aOicxrKPZ8h/OSE671V1W8s4pebcvEay6
ET5L7e3fb01E4HaoQ34E5kf+XxEwA47Q7KXmlsQQjWDVAgMBAAGjggJLMIICRzAO
BgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwG
A1UdEwEB/wQCMAAwHQYDVR0OBBYEFFQQfp2s44PayawEFI7lZu3eRf2aMB8GA1Ud
IwQYMBaAFBQusxe3WFbLrlAJQOYfr52LFMLGMFUGCCsGAQUFBwEBBEkwRzAhBggr
BgEFBQcwAYYVaHR0cDovL3IzLm8ubGVuY3Iub3JnMCIGCCsGAQUFBzAChhZodHRw
Oi8vcjMuaS5sZW5jci5vcmcvMBoGA1UdEQQTMBGCD2dpdC5mcmVlYnNkLm9yZzBM
BgNVHSAERTBDMAgGBmeBDAECATA3BgsrBgEEAYLfEwEBATAoMCYGCCsGAQUFBwIB
FhpodHRwOi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCCAQUGCisGAQQB1nkCBAIEgfYE
gfMA8QB3AJQgvB6O1Y1siHMfgosiLA3R2k1ebE+UPWHbTi9YTaLCAAABeC1yTAYA
AAQDAEgwRgIhAINqupzNuQpa/D67mj6UY+idC9ibei08JfNnP/nD4eZBAiEAsvRT
CjHDtXOCzTgVMYFOKroImffqNcwsUi34EfJSWFAAdgB9PvL4j/+IVWgkwsDKnlKJ
eSvFDngJfy5ql2iZfiLw1wAAAXgtckxAAAAEAwBHMEUCIQDTuuOzDl4tFoFbdeE7
b3fIhfb5n3ZHoXPvGJ1s/P1tCgIgXMkCxuQqk1BkMcu13LPyLlmX5VSZO3K/DAsS
ZV6cvx4wDQYJKoZIhvcNAQELBQADggEBADAcR9zUhnlLMIQpESym7FclEuWmwPzL
D1wXaWaHGoMdbVx+0OEl41Di1IOBB2VUpSygZ+FtiPH4DFNQ6dYBAdCNAZqpl6+4
dJVmA/yimoxHfSDnTu9qlmxdYstpW91/G+zXYWl+faj8Kf6QZ7yq9hpbBLU412+7
pROLJ27dEEEdy5mGaVFlagPUiN8j1wzGW70fIEMKAl7BMom1MZfaKulR45jNYj9b
XZ4+O3TmBXd1UIAljPAZPelYflNJ/P3XHqsxYMze7EVG13Gk361DhnhwwD71DGD0
G4A3d4FPlpV26YA0TiklH9EShXcxduUBdBnNU0IOj70Twb+sa2j6EAs=
-----END CERTIFICATE-----
subject=CN = git.freebsd.org

issuer=C = US, O = Let's Encrypt, CN = R3

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 3707 bytes and written 456 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 4096 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 57B57A1B14EBC052DDE869B93A2EBBD9CD670161469C657C1E9F2BEAA5EF464C
    Session-ID-ctx:
    Master-Key: 570A7A256514164078B61A1AF013A056FE2BF3F8BF2F4F45CB445F4E30F12AC35BA432EAFC2E7B3AF86AF8FE52E0C328
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - d3 59 4d 40 a6 73 00 b0-7c ef 95 c1 49 fa 2d a0<EMAIL_ADDRESS>    0010 - 8a 75 ec a6 5c 5f 73 a4-30 e8 3c af 04 f2 83 8e   .u..\_s.0.<.....
    0020 - 6c 3b b6 f9 dd e5 bd ca-06 53 6c 22 e8 95 d3 9a   l;.......Sl"....
    0030 - 59 25 68 56 5c 8a 51 fc-b8 2d 0b 8b e4 f4 3e 25   Y%hV\.Q..-....>%
    0040 - c6 5c 3b 7c 8f 25 1a 9b-a5 b7 17 fd 02 84 cd 59   .\;|.%.........Y
    0050 - 90 c3 dd 76 5c 01 52 43-3e 10 47 54 e0 ff 65 38   ...v\.RC>.GT..e8
    0060 - 8c 11 73 9b 08 d7 84 6a-14 bc b3 fd 4f a0 c0 ff   ..s....j....O...
    0070 - 89 2d 95 34 38 9f 94 ce-78 20 f9 ec 86 58 06 68   .-.48...x ...X.h
    0080 - 9c 28 cb 34 18 b2 43 67-52 a9 5e e1 22 2c ea 93   .(.4..CgR.^.",..
    0090 - ac 65 c3 79 f7 92 e1 4d-62 d0 7e 10 43 5b c7 19   .e.y...Mb.~.C[..
    00a0 - af 00 89 77 33 1f 42 f1-2e c4 04 f5 73 17 94 62   ...w3.B.....s..b
    00b0 - 4c b1 a1 6b 5b b0 aa 91-46 70 e4 cd 67 ac 5b c1   L..k[...Fp..g.[.
    00c0 - 14 cb 01 01 c5 60 eb 49-cd 28 a6 8b 78 52 ac c5   .....`.I.(..xR..

    Start Time:<PHONE_NUMBER>
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: yes
---

out:
write(1,"CONNECTED(00000003)\n",20)      = 20 (0x14)
write(3,"CONNECT git.freebsd.org:443 HTTP/1.0\r\n\r\n",40) = 40 (0x28)
read(3,"HTTP/1.1 200 Connection Established\r\nProxy-Agent: Zscaler/6.0\r\n\r\n",4096) = 65 (0x41)
select(4,{ 3 },{ 3 },0x0,0x0)            = 1 (0x1)
getpid()                     = 50231 (0xc437)
getpid()                     = 50231 (0xc437)
getpid()                     = 50231 (0xc437)
getpid()                     = 50231 (0xc437)
getpid()                     = 50231 (0xc437)
getpid()                     = 50231 (0xc437)
write(3,"\^V\^C\^A\^A>\^A\0\^A:\^C\^Cz\M-p\^V\^N\M-g\aY\M-Dl\M-W\M-C\M^?\^F\M^^';\^O\M^A:\M^?\M^J\M-#\M-"`\M-S\\k\M-?\M-9\M^X\M^YP 1\0"...,323) = 323 (0x143)
read(3,"\^V\^C\^C\0E",5)             = 5 (0x5)
read(3,"\^B\0\0A\^C\^C\M-^\^O\M^E\M-C\M-z\M-)c\M-%\M-((\M^N\M-f\M^R)F~O-P\M-M\M-p%`]\M-z\M^S\a\M^I\M-F\M-fI'\0\M-@0\0\0\^Y\M^?\^A\0\^A\0"...,69) = 69 (0x45)
read(3,"\^V\^C\^C\n\M^_",5)          = 5 (0x5)
read(3,"\v\0\n\M^[\0\n\M^X\0\^F)0\M^B\^F%0\M^B\^E\r\240\^C\^B\^A\^B\^B\^R\^CY}\M-.\M-6We<\^Q`\^^@\M-;#\M^O\M-*\M-2\M^T0\r\^F\t*\M^FH\M^F"...,2719) = 2719 (0xa9f)

How is it working for you now?

Will test again today or tomorrow.

It crashes again with a SIGSEGV, we are back to the actual issue. The code still have some issues, I will go through.
get_commit_details:
|-- CONNECT => process_command()
|---- server_connect()
* You are already associating the socket FD with an OpenSSL connect before you have created the tunnel, this makes no sense. The proxy won't speak TLS of any sort with you
* breaking on command = "CONNECT " is wrong. The RFC clearly says:
The recipient proxy can establish a tunnel either by directly
connecting to the request-target or, if configured to use another
proxy, by forwarding the CONNECT request to the next inbound proxy.
Any 2xx (Successful) response indicates that the sender (and all
You must read the response, don't expect a body, inspect status code for 2xx and fail if not 2xx.
The course must be like this (if a proxy is used) in pseudo code:
connect(proxy_host:proxy_port)
send("CONNECT")
read_response()
if (status >=200 && status< 300)
  we have a tunnel
else
  fail and break
setup_openssl(): create context, set flags, associate socket FD
perform_commands()

You are setting up OpenSSL and associating way too early. This might be the reason for the crash.

I would recommend to decouple handling. This means that you should create a create_tunnel() function and the rest of the code shall operate on that new tunneled socket.

How does it look now?

I think it's not right to free like that within a loop; freeaddrinfo is supposed to do that itself. So perhaps you want to do it like this:
	temp = start;
	while (temp) {
		if (connection->socket_descriptor < 0) {
			if ((connection->socket_descriptor = socket(temp->ai_family, temp->ai_socktype, temp->ai_protocol)) < 0)
				err(EXIT_FAILURE, "connect_server: socket failure");

			if (connect(connection->socket_descriptor, temp->ai_addr, temp->ai_addrlen) < 0)
				err(EXIT_FAILURE, "connect_server: connect failure (%d)", errno);
		}
		temp = temp->ai_next;
	}
	freeaddrinfo(start);

Will test..

I think it's not right to free like that within a loop; freeaddrinfo is supposed to do that itself. So perhaps you want to do it like this:
	temp = start;
	while (temp) {
		if (connection->socket_descriptor < 0) {
			if ((connection->socket_descriptor = socket(temp->ai_family, temp->ai_socktype, temp->ai_protocol)) < 0)
				err(EXIT_FAILURE, "connect_server: socket failure");

			if (connect(connection->socket_descriptor, temp->ai_addr, temp->ai_addrlen) < 0)
				err(EXIT_FAILURE, "connect_server: connect failure (%d)", errno);
		}
		temp = temp->ai_next;
	}
	freeaddrinfo(start);

Fixed.  Thank you!

It does not work, OpenSSL exits with an error and truss clearly shows why, the code performs a connect to the proxy, the next call closes the socket FD, reopens and does the TLS setup.
The code does a double connect:
    if (connection.proxy_host) {
        connect_server(&connection);
        create_tunnel(&connection);
    }

connect_server() does not actually connect, it does a reconnect because it closes the socket and opens it again. Even worse, it does not properly terminate the TLS session if any. This might produce broken sockets on the other end.
create_tunnel() hands off to process_command() which will call connect_server() (reconnect) and call setup_ssl(). The CONNECT is just lost here.

I would really cleanly decouple the connect(), create_tunnel(), setup_ssl() and process_command(), no nesting because this makes it hard to trace.

The four functions have been decoupled (thank you!).  How does it look now?

This looks much much better now. It just works. It has easily cloned src through our proxy. I have identified some other issues, but not necessary related to this which I will report separately. Though, one thing:
https://github.com/johnmehr/gitup/blob/2547cfcaf9ddf20b4ebb9b6aac6b7b1c0fc7d56d/gitup.c#L985-L988
This is not neccessarily correct. There is no response body >= 200 && < 300, but with >= 300 there can be chunked response body to denote an error. I have a proxy which requests connections, luckily it uses Content-Length and not TE: chunked:
$ truss -o out ./gitup -C gitup.conf -v0 stable
# Configuration file: gitup.conf
gitup: process_command: read failure:
HTTP/1.1 403 Forbidden
Content-Type: text/html
Server: Zscaler/6.0
Cache-Control: no-cache
Content-length: 15219

<!--# Id: internetaccess.html<PHONE_NUMBER>-03-18 17:59:46Z szhang -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<meta name="description" content="Zscaler makes the internet safe for businesses by protecting their employees from malware, viruses, and other security threats.">
...

It make sense to process response line, decide and then move on?

How does it look now?

Looks good enough now for me. Closing this. Thank you!

Thank you for all of your help with this and your patience helping me understand.  It is very much appreciated!

Thank you for all of your help with this and your patience helping me understand. It is very much appreciated!

Very much welcome. Expect more to come!
I have now installed gitup on a few hosts and ist works just fine with the proxy support for the entire ports tree from main.


Need export PDF functionality

is there any example export pdf functionality with current styles

There's no example. You would have to look into defining a print CSS that fits your purposes.

@saikumar2742 have a look at this: https://medium.com/@shivekkhurana/how-to-create-pdfs-from-react-components-client-side-solution-7f506d9dfa6d


Descriptions

Have you thought at all about supporting rule descriptions for? I'm not sure how I'd implement them since I don't think I'd want to have to turn /layer/ into a dictionary with descriptions (string) and items (list). However, some way to support it might make things a little easier to work with in Karabiner's UI itself.

Yes, you're right, I've been thinking about adding some way to add descriptions to individual complex mods but I didn't think about adding them to layers. I'll think about it but if you come up with a sample syntax please share!

I'll keep thinking about it, it's a bit of a tough one.

What about
/LayerName | Optional description/

Just checking in, been working on some other things.
The first step was to address your last suggestion about allowing spaces in layer names. tldr, you can add spaces 33211d2
Next we'll add a regex for descriptions. I like your suggestion. Whatever syntax we go with, I'd like it to be somewhat similar to a syntax that adds descriptions to individual rules as well. I'll get around to it hopefully this week. I somewhat purposely didn't implement descriptions because I thought of just letting YAML comments be the stand-in for that, but you're right that it would be a good idea to have descriptions interact with the KE UI.
Also, just a quick thanks for your suggestions and requests, I didn't realize how much I was taking for granted and how much cleaner the config syntax could be (and still). Wish I'd had a collaborator from the start, or at least that I would have planned better.

With commit f16f5c5, I went with this syntax:
/mouse/           A layer for mouse events:
  ⌥ quote : var(mouse_layer, 0) + notify(idmouse)  # Turn off mouse layer
  m       : mouse(x, -2000)
  n       : mouse(y, 2000)

/symnum/+/nav/    Sym & Nav Multi-layer:
  m   : left
  n   : down

This just uses a regex to caputre everything up to the final forward slash / and the everything after (stripping excess space). The If the layer name is for a multi-condition layer, that will get parsed appropriately later. The only restriction for the description is that it can't contain a forward slash. This was done to resolve issues with descriptions for multi-conditional layers like the above.
With commit a741766, the parsing function will correctly interpret complex, multi-line YAML keys (using the ? indicator YAML syntax)
? /symnum/

  Numpad + Symbols Layer
:
  (x) j: "0"
  (x) k: ","

? /symnum/ +
  /nav/

  Sym & Nav Multi-layer
:
  m   : left
  n   : down
  e   : up
  i   : right

The parser will replace all the newline chars in the complex key with a space and parse it as if it were a single line, as above.
Your suggestion to use the pipe was much simpler, and I implemented it in this branch 071f038. I eventually realized there was no need to keep the delimiter within the surrounding forward slashes, and then that we could get rid of it altogether.
If you like having the visual for the delimiter, let me know and I can make it an option. Having it would also allow having forward slashes in the description.
Would you mind letting me know if you have a preference for description formatting? For example, if you'd prefer prefixing the layer name to the user defined description by default (with or without forward slashes), and, if no description is provided, what your preferred format might be? Currently it's /layer name/ layer. The relevant lines are
https://github.com/al-ce/karaml/blob/a7417661017f4a5a24e67d0d8a64ee7349131c70/karaml/karaml_config.py#L125-L131
https://github.com/al-ce/karaml/blob/a7417661017f4a5a24e67d0d8a64ee7349131c70/karaml/karaml_config.py#L281-L293

Hey, just wanted to say this looks great and I'll try to test out as soon as I figure out some other challenges with my config. Sorry for the slow replies, I've been in the process of moving and have had little free time the last couple of weeks.

@ChristinWhite No problem! I like this flow where we can take our time and think things through. I really really appreciate your input, I've learned a lot about how I could/should things through in future projects, and just personally I'm very happy with the new features that have come out of it. Hope moving goes well.

Also lmk if I can help with any config issues, I know my docs aren't the most concise


Zstd tuning

First, great work with the latest release. Using SEAL with the default zstd compression level dramatically increases performance; however I've noticed much higher levels of memory consumption during serialization.
I can choose the zlib override at runtime to avoid the memory issues, but of course the performance suffers.
Are there any plans for exposing zstd options at runtime?

That would certainly be possible. It's really easy now to add support for other compr_mode_types. For example, one could be zstd_mem_opt (memory optimized), and another could be zstd_perf_opt. Alternatively, maybe one particular setting is just much better (insignificant reduction in performance and significant improvement in memory cost) and we could only use that. I'm not familiar at all with tuning Zstandard, but if someone else is maybe they could recommend specific settings. In any case, I'll add this to the to-do list.

This is not actually about Zstandard; I looked into this more after another issue was reported. Turns out there was a bug in SEAL that caused a huge number of memory allocations of increasing size when using ZSTD compression.
We'll be releasing v3.6.1 shortly to fix this issue.

Yes, that is exactly the same issue. Thanks @kimlaine!

3.6.1 is now available. Please let us know if there are further issues.


java9-beta.rb uses wrong paths

When you install java9-beta, the package installer puts it in
/Library/Java/JavaVirtualMachines/jdk-9.jdk/
which does not match the path in the recipe
/Library/Java/JavaVirtualMachines/jdk#{version.minor}.jdk/
so any actions are operated on
/Library/Java/JavaVirtualMachines/jdk9.jdk/ (without the -)
Additionally, the recipe wants to symlink to
Contents/Home/jre/lib/server/libjvm.dylib
which is now located in
Contents/Home/lib/server/libjvm.dylib (without jre/)

https://github.com/caskroom/homebrew-versions/pull/3976


How did Visual Work link from Dana HMO get dropped?

https://lux-front-sbx.collections.yale.edu/view/object/1851ac0f-086b-424c-80a0-2d84a49f2138
very weird.
VI link returns a 404, but the YUAG rec exists in the data: https://media.art.yale.edu/content/lux/vis/54339.json
a different Dana VI exists:
https://lux-front-sbx.collections.yale.edu/view/visual/954c6a2d-71a3-4dd9-b9d9-77aaae04abd9
with no HMO.
there should be two HMOs. is this something weird in the YUAG data or did pipeline sever for some reason?
Bugherd: https://www.bugherd.com/projects/284041/tasks/2135

--> internal Yale issue


Move request responses to the top of the combined list

Similar to the new share invite responses, they should be at the top so they are visible more clearly

👍


Detected blocking call inside the event loop.

Hi,
I am now getting this error in the logs?
Detected blocking call inside the event loop. This is causing stability issues. Please report issue to the custom component author for samsungtv_tizen doing blocking calls at custom_components/samsungtv_tizen/websockets.py, line 115: time.sleep(self.key_press_delay)
Cheers
Jamie

Is the issue resolved?
I'm still getting the error after a redownload.

I have tried modifying the code but no luck. This problem seems making HA freeze sometimes. I have to disable this integration until it is fixed. Is this project still being maintained?

Having the same problem still. Results in HA restarting randomly

I'm having this issue with this as well. Freezes my Home Assistant install.
Samsung Tizen v 1.6.1
Home Assistant 2022.12.8 Supervisor 2023.01.1 Operating System 9.4 Frontend 20221213.1 - latest
Error in logs:
Detected blocking call to sleep inside the event loop. This is causing stability issues. Please report issue to the custom integration author for samsungtv_tizen doing blocking calls at custom_components/samsungtv_tizen/websockets.py, line 115: time.sleep(self.key_press_delay)

Also getting this issue:
Detected blocking call to sleep inside the event loop by custom integration 'samsungtv_tizen' at custom_components/samsungtv_tizen/websockets.py, line 115: time.sleep(self.key_press_delay), please report it to the author of the 'samsungtv_tizen' custom integration

Also getting this. Ends up causing HA to hang and requires restart


No response when Account number is wrong

Hi, and thank you for this api. it came in very handy but i have a issue when i input a wrong account number. there is no response. can this be resolved?
Thank you in advance

Hi kunle, it's still the same. i tried selecting a bank with a wrong account number but returned empty response

I will check for bugs and improve the code quality soon on my free time.

Hello, the issue has been resolved, regards

hello ola,
Wonderful job. it worked but one little issue that recently just popped up
was that i'm getting a "Not secured connection" which returns a CORS Error.
Could this be rectified. my application depends on your api for retrieving
account details. looking forward to your response
On Mon, 28 Mar 2022 at 19:40, Olakunlevpn @.***> wrote:

Closed #1
https://github.com/olakunlevpn/Nigeria-Bank-Account-Number-API/issues/1.
—
Reply to this email directly, view it on GitHub
https://github.com/olakunlevpn/Nigeria-Bank-Account-Number-API/issues/1#event-6320861079,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOJOFZSZZNRRHTBQ4F5XY23VCH4IBANCNFSM5K6VGJLQ
.
You are receiving this because you authored the thread.Message ID:
<olakunlevpn/Nigeria-Bank-Account-Number-API/issue/1/issue_event/6320861079
@github.com>

Hello,  I just test out the API and we dont get such error from out end, can you provide me with more details about this  ?

Yes

From: obinnanwamuo0 @.>
Sent: Tuesday, October 11, 2022 11:15:15 AM
To: olakunlevpn/Nigeria-Bank-Account-Number-API @.>
Cc: Olakunlevpn @.>; State change @.>
Subject: Re: [olakunlevpn/Nigeria-Bank-Account-Number-API] No response when Account number is wrong (Issue #1)
hello ola,
Wonderful job. it worked but one little issue that recently just popped up
was that i'm getting a "Not secured connection" which returns a CORS Error.
Could this be rectified. my application depends on your api for retrieving
account details. looking forward to your response
On Mon, 28 Mar 2022 at 19:40, Olakunlevpn @.***> wrote:

Closed #1
https://github.com/olakunlevpn/Nigeria-Bank-Account-Number-API/issues/1.
—
Reply to this email directly, view it on GitHub
https://github.com/olakunlevpn/Nigeria-Bank-Account-Number-API/issues/1#event-6320861079,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOJOFZSZZNRRHTBQ4F5XY23VCH4IBANCNFSM5K6VGJLQ
.
You are receiving this because you authored the thread.Message ID:
<olakunlevpn/Nigeria-Bank-Account-Number-API/issue/1/issue_event/6320861079
@github.com>

—
Reply to this email directly, view it on GitHubhttps://github.com/olakunlevpn/Nigeria-Bank-Account-Number-API/issues/1#issuecomment-1274282199, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AE6U3N7YSZQOM7IHTUOI3C3WCUOZHANCNFSM5K6VGJLQ.
You are receiving this because you modified the open/close state.Message ID: @.***>


Adapter lacks logging

Adapter doesn't log anything. Would it need to return the logs to the coordinator? Can we pass metadata to the adapter instead (and that would also facilitate the _metadata reserved parameter)?

Yeah we can make the adapter work in whatever way we want. Do you mean passing the logOptions object to the adapter? In the new dynamic configuration PR, it looks like:
{
  format: 'plain', // or 'json'
  meta: { coordinatorId: '1234', providerName: 'infura-mainnet', chainId: 1, chainType: 'evm' },
  additional: {} // optional object with extra key/value data
}

How would passing metadata to the adapter facilitate the metadata reserved parameter? Not sure I follow this

By metadata I meant things related to the request that are not API call parameters, like requestId. Nevermind though, it's a silly feature.
This feels like a duplicate of https://github.com/api3dao/airnode/issues/116 so I'm closing it.