256 track all blank changes

Add the track_blank_changes option to track changes previously not tracked because both the original and modified values respond with true to blank?
Changes include adding the option, using the option when looping over changes, tests to test the above, documenting the option in README.md, and including the change in CHANGELOG.md.

Something seems to have gone awry when updating CHANGELOG.md the second time, the changes to README.md appear in that commit. All the changes are there, just not as organized as I had it for some reason.

CI needs fixing, not sure what's up, been a while.

It looks like it's broken with the original code too. The version of coveralls it grabs uses Hash#slice, which was introduced in ruby 2.5. If I monkey patch that, then it complains about Fixnum#clamp, which was introduced in ruby 2.4 or 2.7 (both did something with clamp, I didn't read far enough to know which did what). If I monkey patch both:
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 935728f..c3d1094 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,3 +1,19 @@
+# rubocop:disable all
+class Hash
+  def slice(*keys)
+    keys.each_with_object({}) { |k, hash| hash[k] = self[k] if key?(k) }
+  end
+end
+
+class Fixnum
+  def clamp(p1, p2)
+    return p1 if self.<=> p1 < 0
+    return p2 if self.<=> p2 > 0
+    self
+  end
+end
+# rubocop:enable all
+
 require 'coveralls'
 Coveralls.wear!

then bundle exec rake runs fine:
$ bundle exec rake
[...]
456 examples, 0 failures, 2 pending

So it looks like the gem itself works fine back to at least ruby 2.3.7 (the version I just tried it with), but the specs need 2.5. My preference would be to keep the gem running on older versions and fix the specs.

My preference would be to keep the gem running on older versions and fix the specs.

Whatever gets us to green fastest!

Is the coveralls gem only used for the CI stuff? I uninstalled it, commented out the two lines that reference it in spec/spec_helper.rb, and bundle exec rake runs just fine and produces the same results. So if coveralls isn’t needed that would be the easiest fix. Otherwise the monkey patches in spec/spec_helper.rb (maybe with a version check around them) would be next easiest.
Also, i realized I didn’t bump the version in lib/mongoid/history/version.rb. Do you want me to do that or do you do that when you release?

Coveralls is used to report test coverage in CI. It used to work, so something has broken since and needs to be fixed.
Yes, please increment the version in this PR since this is a new feature. We do the increment after the release so that we don't confuse code that has shipped vs. not.

Ok, bumped the internal version number, then made a change to Gemfile that I think, maybe, fingers crossed, will fix the CI problem. If not I did it in its own commit so it can easily be reverted.

Its cool! Please go ahead and merge. Thanks!

I'm merging this, thank you!
We have some jruby and 2.7 test failures that look unrelated, @BrianLMatthews maybe you could take a look and add Ruby 3.1/2/3?

Thanks for merging this! We're working on upgrading our app to Ruby 3.something, when that's done I may be able to take a look. Don't let that stop someone else from looking at it though, don't know when that will be.
Thanks again!


Fix "frecency" typo in README

Hehe, this actually isn't a typo. But it sure looks like one if you haven't seen the term before; in the above commit I've added a link to a definition.

Hehe, this actually isn't a typo. But it sure looks like one if you haven't seen the term before; in the above commit I've added a link to a definition.

Oh, TIL. Thanks. :)


The unknown issue about the predicted mask while using PatchCore

Dear contributors,
Hello! First of all, thanks for developing and maintaining such an awesome anomaly detection library.
Problem Description
I am training PatchCore and Padim on my dataset, which is similar to MVTec AD. However, I found that the Padim works well while PatchCore shows an unreasonable segmentation performance. (I will continue checking with my customized data loading function. So far, it works well on Padim.) Besides the unreasonably low segmentation performance, I found that the predicted mask is always totally white for both the training and testing set while no error was reported. I really appreciate if there is any suggestion for this issue or the related functions.
Thanks for the help!
Screenshots
Padim

PatchCore

Hello I also encountered same issues. How did you solve this? I am completely opposite to your situation. All my results are returned True and mask everything in test dataset.


Investigate the use of Red Panda as a Kakfa replacement

çà a l'air d'avoir la patate Redpanda !
if you want we can try to include it, as it's Kafka compatible, an helm chart is provided, and it seems well documented !

if you want we can try to include it, as it's Kafka compatible, an helm chart is provided, and it seems well documented !

It would be very nice :)
I've just played with it locally and it worked out of the box with Stellio (but I've not done extensive testing). It also has advantage to distribute ARM64 compatible Docker images, which is nice for people developing on a M1 MacBook...

Basic configuration that is working with Stellio in docker-compose configuration:
  redpanda:
    image: vectorized/redpanda:v22.1.4
    container_name: stellio-redpanda
    command:
      - redpanda
      - start
      - --smp
      - '1'
      - --reserve-memory
      - 0M
      - --overprovisioned
      - --node-id
      - '0'
      - --kafka-addr
      - PLAINTEXT://<IP_ADDRESS>:9092,OUTSIDE://<IP_ADDRESS>:29092
      - --advertise-kafka-addr
      - PLAINTEXT://redpanda:9092,OUTSIDE://localhost:29092
    ports:
      - "9092:9092"
      - "29092:29092"

However, I encountered this issue: https://github.com/redpanda-data/redpanda/issues/5183
As a temporary workaround, I set manually the correct configuration in the container:
docker exec -it stellio-redpanda bash
redpanda@94b720440b68:/$ rpk cluster config set auto_create_topics_enabled true

Tried adding the property (https://docs.redpanda.com/docs/reference/cluster-properties/#topics-and-partitions) in docker-compose config but that did not work (RedPanda refused to start because it did not recognize the property name).

Less a priority with the recent upgrade to Kafka 3.2 and CP Kafka 7.2.0 with Kraft mode (and so without Zookeeper and works nicely on ARM64).

No longer a topic in a foreseeable future.


Headers and Footers appearing in text

I am using the web API to run science parse on a PDF which has headers and footers. The text in the headers and footers is just appearing in between the text itself, making it impossible to remove them using any pattern.
Below is a example of it.

3.2. The GUI main window:The flowchart in the main GUI of LS-OPT (LS-OPT Version 5.2 20CHAPTER 3: Graphical User InterfaceThe control bar menus are described in Table 3-1.CHAPTER 3: Graphical User InterfaceSummary Report Open the lsopt_report fileWarnings Open the WARNING_MESSAGE fileErrors Open the EXIT_STATUS fileOpens up the working directoryOther fileâ€¦ Option to open any other text fileAdd Sampling Add additional Sampling. The name of the sampling will be used as the name of a subdirectory used for sampling related databases such as Experiments_n.csv

The text in Bold actually belongs in the header. Its just the heading of the chapter. Also page numbers from footers is also making its way into the text. Could somebody solve this problem, so that data from headers and footers is not given in the output.

I am afraid that's not a level of fix I can just do quickly. Body text extraction is admittedly not very good. We use it mainly to create a search index, which does not care about a few extra tokens. I'm happy to review any pull request you (or anyone) might have to get cleaner output!
Sorry about that!


Moving trace to log output before throwing on error

This is a minor fix to ensure that trace logs will still have output entries in the event that there are errors during the script execution and we throw.

Looks good 👍

Merged


Update draw.io library

Add logos to library

Challenge Registry logo
ELK
Angular

Add individual logo svg file
Standardize the size (width and height) of the svg logos

Among draw.io default libraries:

AWS logos are 78x78 pt
GCP logos are 42 pt


⚠ Bofrost.at has degraded performance

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

HTTP code: 200
Response time: 1162 ms

Resolved: Bofrost.at performance has improved in f901c0a after 7 minutes.


Cann't delete characters after enter "Win" key.

OS: Windows 10.
Flutter Version: latest stable .
Language: CN
A test app with only have a TextField widget.
In TextField, Input something with default en language. it's OK.
Then use Win+Space  switch IME to MS pinyin .
The entered characters cannot be deleted with "Backspace" key.
my temporary solution:
edit the sdk: raw_keyboard.dart .  _handleKeyEvent function.
block the event dispatch if it's LogicalKeyboardKey.metaLeft or metaRight.

Hi @Chuanbin-Wang
This is probably fixed by https://github.com/flutter/flutter/issues/73377
I can still reproduce on stable, however, it doesn't reproduce on the beta channel
Can you please upgrade to the latest  beta and try again
Execute the following commands to upgrade
flutter channel beta
flutter upgrade --force
flutter doctor -v
Closing as duplicate of  https://github.com/flutter/flutter/issues/73377


Will Mesos plugin support slaves connected through SSH, not JNLP?

In some reason I'm more comfortable connecting my Jenkins slaves through SSH, then I can do more customization like adding environment variables inside the docker images. By far I know this plugin can only use JNLP connection, so is there a plan to add SSH?

No plans yet for SSH. Do you know what it takes to get that support included (key distribution, shared password etc)? If it's fairly straightforward we would be happy to add the support.

Yes I am pretty expert at that -- JNLP is really bad for scaling. If we have 100 nodes we get 100 processes running it will never scale as mesos scales.

Key distribution should not be much of a hassle as the public keys can be baked inside the docker images used for slaves. The exhaustive set of expectations from the slaves would be as follows:

sshd is running on a fixed port so that jenkins knows which port to ssh into
There is a preconfigured user with the appropriate public keys on the slave (docker images)

@digitalrinaldo, do you have some numbers comparing JNLP vs SSH?


Mac version being damaged and unable to open

When trying to download the mac version of Benjine it says its damaged and can not be open.

Looking into it, will need to find a Mac tester

If you need someone to test if the mac version works then I could do it

if you can't find someone to test it then I could do it.

Turns out this is a known issue for Godot. Mac versions now include instructions on how to run the game. If I ever get a hold of a Mac computer to properly export the game, it will be truly fixed.


Is there a way to prevent the Google image scraper from scrolling down and loading tons of images?

It takes a long time and I only want to load the first ten or so images in any case.
Thank you.

Hi @ghubcompressedtime,
It is possible, I would however change the code by removing the Nightmare headless browser and switch to a simple Request call that fetches the first page of Google images. That is beyond this project but I can try to come up with an early opt-out option that stops scrolling as soon as it hits x results.

So, you did it?

I have finally fixed this.


Error occured at: goaccess.c - main - Nothing valid to process.

Hello!
I'm using goaccess to track evemilano's log but I have some problem :(
Any idea how to solve this?
GoAccess - version 0.8.3 - Oct 24 2014 17:27:50
Fatal error has occurred
Error occured at: goaccess.c - main - 832
Nothing valid to process.

LOG example:
<IP_ADDRESS> - - [03/Feb/2016:11:02:50 -0500]  "GET /servizi-web-marketing/ HTTP/1.1" 500 278 "https://www.evemilano.com/servizi-seo/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36" 0.128 0.128 . BYPASS
<IP_ADDRESS> - - [03/Feb/2016:11:02:57 -0500]  "POST /wp-cron.php?doing_wp_cron=1454515377.2718749046325683593750 HTTP/1.1" 200 31 "-" "WordPress/4.4.2; https://www.evemilano.com" 0.156 0.156 . -
<IP_ADDRESS> - - [03/Feb/2016:11:02:58 -0500]  "GET / HTTP/1.1" 200 15326 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36" 1.437 1.437 . BYPASS

Could you please post the values of your log-format, date-format and time-format from the config file?
Also, you may want to update to the latest version, v0.8.3 is a bit old :)

Log Format - [c] to add/edit format
%h %^[%d:%^] "%r" %s %b
Date Format - [d] to add/edit format
%d/%b/%Y
But I tried all the availables possibilities.
I got goaccess from apt-get install command. How can I get the newest version?

Please try the following (assuming the first value after the agent is request_time):
log-format %h %^[%d:%t %^]  "%r" %s %b "%R" "%u" %T %^
date-format %d/%b/%Y
time-format %H:%M:%S

Note: You have an extra space between the time ] and the request ". Also, time-format works only on newer versions.
To get the latest version, uninstall the current (apt-get remove --purge goaccess) and then use this repo.

Upgraded to the last version
GoAccess - version 0.9.7 - Dec 20 2015 17:55:39
still can't open a default Nginx log :(

If I run the following command against the three lines you posted above, works fine:
goaccess -f log --log-format='%h %^[%d:%t %^]  "%r" %s %b "%R" "%u" %T %^' --date-format='%d/%b/%Y' --time-format='%H:%M:%S'

Can you please try that against those lines?

it seems a problem related the the log file-name.
I can open the access.log but not name_access.log

Make sure permissions are right on the log file.

ok thanks.
Is there a way to track only specific user-agent? Googlebot only for example?

You will need to do some pre-processing, e.g.,
grep -i 'Googlebot' /var/log/apache2/access.log | goaccess -a

Thank you Gerardo for the reply, this could be really useful!
BTW if I type your string (with log location adjusted) I get the help information printed on screen:
GoAccess - 0.9.7
Usage: goaccess [ options ... ] -f log_file [-c][-M][-H][-q][-d][...]
The following options can also be supplied to the command:
Log & Date Format Options
....
It seems the string format is not correct. Any advices? Thanks again :D

Can you please post the output of goaccess --dcf?
You could then use that config file and specify the formats. For instance,
# goaccess --dcf`
> /etc/goaccess.conf

$ vim /etc/goaccess.conf
> uncomment log-format, date-format and time-format (make sure to use the right formats)

$ grep -i 'Googlebot' /var/log/nginx/access.log | goaccess -a -p /etc/goaccess.conf

my goaccess.conf

######################################
Time Format Options (required)
######################################

The hour (24-hour clock) [00,23]; leading zeros are permitted but not required.
The minute [00,59]; leading zeros are permitted but not required.
The seconds [00,60]; leading zeros are permitted but not required.
See man strftime for more details

The following time format works with any of the
Apache/NGINX's log formats below.

#time-format %H:%M:%S

Google Cloud Storage or
The time in microseconds since the Unix epoch.

#time-format %f
Squid native log format

#time-format %s
######################################
Date Format Options (required)
######################################

The date-format variable followed by a space, specifies
the log format date containing any combination of regular
characters and special format specifiers. They all begin with a
percentage (%) sign. See man strftime

The following date format works with any of the
Apache/NGINX's log formats below.

#date-format %d/%b/%Y

AWS | Amazon CloudFront (Download Distribution)
AWS | Elastic Load Balancing
W3C (IIS)

#date-format %Y-%m-%d

Google Cloud Storage or
The time in microseconds since the Unix epoch.

#date-format %f
Squid native log format

#date-format %s
######################################
Log Format Options (required)
######################################

The log-format variable followed by a space or \t for
tab-delimited, specifies the log format string.

NOTE: If the time/date is a timestamp in seconds or microseconds
%x must be used instead of %d & %t to represent the date & time.
NCSA Combined Log Format

#log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
NCSA Combined Log Format with Virtual Host

#log-format %v:%^ %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
Common Log Format (CLF)

#log-format %h %^[%d:%t %^] "%r" %s %b
Common Log Format (CLF) with Virtual Host

#log-format %v:%^ %h %^[%d:%t %^] "%r" %s %b
W3C

#log-format %d %t %h %^ %^ %^ %^ %r %^ %s %b %^ %^ %u %R
AWS | Amazon CloudFront (Download Distribution)

#log-format %d\t%t\t%^\t%b\t%h\t%m\t%^\t%r\t%s\t%R\t%u\t%^
AWS | Elastic Load Balancing

#log-format %dT%t.%^ %^ %h:%^ %^ %T %^ %^ %^ %s %^ %b "%r" "%u"
Google Cloud Storage

#log-format "%x","%h",%^,%^,"%m","%U","%s",%^,"%b","%D",%^,"%R","%u"
Squid native log format

#log-format %^ %^ %^ %v %^: %x.%^ %~%L %h %^/%s %b %m %U
Virtualmin Log Format with Virtual Host

#log-format %h %^ %v %^[%d:%t %^] "%r" %s %b "%R" "%u"
######################################
UI Options
######################################
Prompt log/date configuration window on program start.

config-dialog false
Choose among color schemes
1 : Default grey scheme
2 : Green scheme

color-scheme 1
Color highlight active panel.

hl-header true
Set HTML report page title and header.

#html-report-title My Awesome Web Stats
Turn off colored output. This is the  default output on
terminals that do not support colors.
true  : for no color output
false : use color-scheme

no-color false
Don't write column names in the terminal output. By default, it displays
column names for each available metric in every panel.

no-column-names false
Disable progress metrics.

no-progress false
Enable mouse support on main dashboard.

with-mouse false
Disable summary metrics on the CSV output..

no-csv-summary false
Custom colors for the terminal output
Tailor GoAccess to suit your own tastes.

Color Syntax:
DEFINITION space/tab colorFG#:colorBG# [[attributes,] PANEL]

FG# = foreground color number [-1...255] (-1 = default terminal color)
BG# = background color number [-1...255] (-1 = default terminal color)

Optionally:

It is possible to apply color attributes, such as:
bold,underline,normal,reverse,blink.
Multiple attributes are comma separated

If desired, it is possible to apply custom colors per panel, that is, a
metric in the REQUESTS panel can be of color A, while the same metric in the
BROWSERS panel can be of color B.

The following is a 256 color scheme (Monokai palette)

#color COLOR_MTRC_HITS     color197:color-1
#color COLOR_MTRC_VISITORS color148:color-1
#color COLOR_MTRC_DATA     color7:color-1
#color COLOR_MTRC_BW       color81:color-1
#color COLOR_MTRC_AVGTS    color247:color-1
#color COLOR_MTRC_CUMTS    color95:color-1
#color COLOR_MTRC_MAXTS    color186:color-1
#color COLOR_MTRC_PROT     color141:color-1
#color COLOR_MTRC_MTHD     color81:color-1
#color COLOR_MTRC_PERC     color186:color-1
#color COLOR_MTRC_PERC     color186:color-1 VISITORS
#color COLOR_MTRC_PERC     color186:color-1 OS
#color COLOR_MTRC_PERC     color186:color-1 BROWSERS
#color COLOR_MTRC_PERC     color186:color-1 VISIT_TIMES
#color COLOR_MTRC_PERC_MAX color208:color-1
#color COLOR_MTRC_PERC_MAX color208:color-1 VISITORS
#color COLOR_MTRC_PERC_MAX color208:color-1 OS
#color COLOR_MTRC_PERC_MAX color208:color-1 BROWSERS
#color COLOR_MTRC_PERC_MAX color208:color-1 VISIT_TIMES
#color COLOR_PANEL_COLS    color242:color-1
#color COLOR_BARS          color186:color-1
#color COLOR_ERROR         color231:color197
#color COLOR_SELECTED      color0:color215
#color COLOR_PANEL_ACTIVE  color7:color240
#color COLOR_PANEL_HEADER  color7:color237
#color COLOR_PANEL_DESC    color242:color-1
#color COLOR_OVERALL_LBLS  color251:color-1
#color COLOR_OVERALL_VALS  color148:color-1
#color COLOR_OVERALL_PATH  color186:color-1
#color COLOR_ACTIVE_LABEL  color7:color237
#color COLOR_BG            color7:color-1
#color COLOR_DEFAULT       color7:color-1
#color COLOR_PROGRESS      color7:color141
######################################
File Options
######################################
Specify the path to the input log file. If set, it will take
priority over -f from the command line.

log-file /var/log/nginx/access.log
Send all debug messages to the specified file.

#debug-file debug.log
Specify a custom configuration file to use. If set, it will take
priority over the global configuration file (if any).

#config-file
Log invalid requests to the specified file.

#invalid-requests
Do not load the global configuration file.

#no-global-config false
######################################
Parse Options
######################################
Include static files that contain a query string in the static files
panel.
e.g., /fonts/fontawesome-webfont.woff?v=4.0.3

all-static-files false
Consider the following extensions as static files
The actual '.' is required and extensions are case sensitive

static-file .css
static-file .CSS
static-file .dae
static-file .DAE
static-file .eot
static-file .EOT
static-file .gif
static-file .GIF
static-file .ico
static-file .ICO
static-file .jpeg
static-file .JPEG
static-file .jpg
static-file .JPG
static-file .js
static-file .JS
static-file .map
static-file .MAP
static-file .mp3
static-file .MP3
static-file .pdf
static-file .PDF
static-file .png
static-file .PNG
static-file .svg
static-file .SVG
static-file .swf
static-file .SWF
static-file .ttf
static-file .TTF
static-file .txt
static-file .TXT
static-file .woff
static-file .WOFF
Exclude an IPv4 or IPv6 from being counted.
Ranges can be included as well using a dash in between
the IPs (start-end).

#exclude-ip <IP_ADDRESS>
#exclude-ip <IP_ADDRESS>-<IP_ADDRESS>
#exclude-ip ::1
#exclude-ip 0:0:0:0:0:ffff:808:804-0:0:0:0:0:ffff:808:808
Enable a list of user-agents by host. For faster parsing, do not
enable this flag.

#agent-list false
#agent-list true
Include HTTP request method if found. This will create a
request key containing the request method + the actual request.

http-method true
Include HTTP request protocol if found. This will create a
request key containing the request protocol + the actual request.

http-protocol true
Ignore request's query string.
i.e.,  www.google.com/page.htm?query => www.google.com/page.htm

Note: Removing the query string can greatly decrease memory
consumption, especially on timestamped requests.

no-query-string false
Disable IP resolver on terminal output.

no-term-resolver false
Write output to stdout given one of the following formats:
csv  : A comma-separated values (CSV)
json : JSON (JavaScript Object Notation)
html : HTML report

#output-format json
Display real OS names. e.g, Windows XP, Snow Leopard.

real-os true
Enable IP resolver on HTML|JSON output.

with-output-resolver false
Treat non-standard status code 444 as 404.

444-as-404 false
Add 4xx client errors to the unique visitors count.

4xx-to-unique-count false
Decode double-encoded values.

double-decode false
Ignore parsing and displaying one or multiple status code(s)

#ignore-status 400
#ignore-status 502
Ignore crawlers from being counted.
This will ignore robots listed under browsers.c
Note that it will count them towards the total
number of requests, but excluded from any of the panels.

ignore-crawlers false
Ignore parsing and displaying the given panel.

#ignore-panel VISITORS
#ignore-panel REQUESTS
#ignore-panel REQUESTS_STATIC
#ignore-panel NOT_FOUND
#ignore-panel HOSTS
#ignore-panel OS
#ignore-panel BROWSERS
#ignore-panel VISIT_TIMES
#ignore-panel VIRTUAL_HOSTS
ignore-panel REFERRERS
#ignore-panel REFERRING_SITES
ignore-panel KEYPHRASES
#ignore-panel GEO_LOCATION
#ignore-panel STATUS_CODES
Ignore referers from being counted.
This supports wild cards. For instance,
'*' matches 0 or more characters (including spaces)
'?' matches exactly one character

#ignore-referer .domain.com
#ignore-referer ww?.domain.
Sort panel on initial load.
Sort options are separated by comma.
Options are in the form: PANEL,METRIC,ORDER

Available metrics:
BY_HITS     - Sort by hits
BY_VISITORS - Sort by unique visitors
BY_DATA     - Sort by data
BY_BW       - Sort by bandwidth
BY_AVGTS    - Sort by average time served
BY_CUMTS    - Sort by cumulative time served
BY_MAXTS    - Sort by maximum time served
BY_PROT     - Sort by http protocol
BY_MTHD     - Sort by http method
Available orders:
ASC
DESC

#sort-panel VISITORS,BY_DATA,ASC
#sort-panel REQUESTS,BY_HITS,ASC
#sort-panel REQUESTS_STATIC,BY_HITS,ASC
#sort-panel NOT_FOUND,BY_HITS,ASC
#sort-panel HOSTS,BY_HITS,ASC
#sort-panel OS,BY_HITS,ASC
#sort-panel BROWSERS,BY_HITS,ASC
#sort-panel VISIT_TIMES,BY_DATA,DESC
#sort-panel VIRTUAL_HOSTS,BY_HITS,ASC
#sort-panel REFERRERS,BY_HITS,ASC
#sort-panel REFERRING_SITES,BY_HITS,ASC
#sort-panel KEYPHRASES,BY_HITS,ASC
#sort-panel GEO_LOCATION,BY_HITS,ASC
#sort-panel STATUS_CODES,BY_HITS,ASC
######################################
GeoIP Options
Only if configured with --enable-geoip
######################################
Standard GeoIP database for less memory usage.

#std-geoip false
#std-geoip true
Specify path to GeoIP database file. i.e., GeoLiteCity.dat
.dat file needs to be downloaded from maxmind.com.

For IPv4 City database:
wget -N http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz

For IPv6 City database:
wget -N http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz
gunzip GeoLiteCityv6.dat.gz

For IPv6 Country database:
wget -N http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz
gunzip GeoIPv6.dat.gz

Note: geoip-city-data is an alias of geoip-database

geoip-database /usr/local/share/GeoIP/GeoLiteCity.dat
######################################
Tokyo Cabinet Options
Only if configured with --enable-tcb=btree
######################################
GoAccess has the ability to process logs incrementally through the on-disk
B+Tree database.

It works in the following way:
- A data set must be persisted first with --keep-db-files, then the same data
set can be loaded with --load-from-disk.
- If new data is passed (piped or through a log file), it will append it to
the original data set.
- To preserve the data at all times, --keep-db-files must be used.
- If --load-from-disk is used without --keep-db-files, database files will be
deleted upon closing the program.
On-disk B+ Tree
Persist parsed data into disk. This should be set to
the first dataset prior to use load-from-disk.
Setting it to false will delete all database files
when exiting the program.
#keep-db-files true
On-disk B+ Tree
Load previously stored data from disk.
Database files need to exist. See keep-db-files.
#load-from-disk false
On-disk B+ Tree
Path where the on-disk database files are stored.
The default value is the /tmp directory.

#db-path /tmp
On-disk B+ Tree
Set the size in bytes of the extra mapped memory.
The default value is 0.

#xmmap 0
On-disk B+ Tree
Max number of leaf nodes to be cached.
Specifies the maximum number of leaf nodes to be cached.
If it is not more than 0, the default value is specified.
The default value is 1024.

#cache-lcnum 1024
On-disk B+ Tree
Specifies the maximum number of non-leaf nodes to be cached.
If it is not more than 0, the default value is specified.
The default value is 512.

#cache-ncnum 512
On-disk B+ Tree
Specifies the number of members in each leaf page.
If it is not more than 0, the default value is specified.
The default value is 128.

#tune-lmemb 128
On-disk B+ Tree
Specifies the number of members in each non-leaf page.
If it is not more than 0, the default value is specified.
The default value is 256.

#tune-nmemb 256
On-disk B+ Tree
Specifies the number of elements of the bucket array.
If it is not more than 0, the default value is specified.
The default value is 32749.
Suggested size of the bucket array is about from 1 to 4
times of the number of all pages to be stored.

#tune-bnum 32749
On-disk B+ Tree
Specifies that each page is compressed with ZLIB|BZ2 encoding.
Disabled by default.

#compression zlib

As I mentioned in my previous post, please make sure to uncomment or add the following formats to the relevant config file:
log-format %h %^[%d:%t %^]  "%r" %s %b "%R" "%u" %T %^
date-format %d/%b/%Y
time-format %H:%M:%S

Closing this. Feel free to reopen if needed.

Hi, I'm back :) I have a problem with real time reporting. If I launch goaccess to report in ssh it runs quite well, but if I launch the real time html report, the parsing of the log freezes and it keeps the socked busy, so I can re-launch it.
The HTML report has just the main info (log size & so) but all the others fields are empty. Do you know how to solve it? Thanks.

Once goaccess has finished parsing the log, the command line output will remain as you mentioned above. However, the Websocket server should continue running in the background. Please check your browser development tools console for any possible errors being reported. Also please take a look at the https://goaccess.io/faq for more details on how to generate the real time report.

the console says: WebSocket connection to 'ws://www.mysiye.com:7890/' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT

the console says:
WebSocket connection to 'ws://www.mysite.com:7890/' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT
I continue here the discussion :)

Have you tried removing www from the address? --ws-host should point to the server address where goaccess is running parsing logs.

I tried with host "evemilano.com" and also with the IP of the webserver running goaccess.

please try using telnet to see if you are able to connect to the server.
telnet evemilano.com 7890

Also make sure port 7890 is opened.

telnet: Unable to connect to remote host: Connection refused

looks like either the port 7890 is closed or filtered by your firewall or goaccess server is not running (which doesn't seem to be the case from your netstat output above).

There is no firewall. Goaccess should work as a service?
I don't understand if the problem is the closed door or if goaccess stop listening :(

At the moment it doesn't automatically runs as a service. if it's showing up in netstat then it is running and listening for new connections. if it does, then you should be able to telnet for testing. Pressing ctrl+c will terminate goaccess.
Thanks for the posting :)

now netstat doesn't show that port anymore, that's why I asked if I need to run it as service

Nope, you need to run goaccess again.

with goaccess ssh dashboard running, still no 7890 port listening

You need to run it as you did above
goaccess -f /var/log/nginx/mylog_access.log.1 -o /home/giovanni/www/www.mysite.com/report.html --real-time-html --ws-url=host

It won't work if you output to a terminal.

I did it, but the parsing stops at 99%. After launching the realtime report the port 7890 is running locally, but still can't connect with telnet. Chrome consolle still says
WebSocket connection to 'ws://evemilano.com:7890/' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT
I think I will give up :(

Just wanted to ask if you were able to set the real time feature? Also, I was looking at your netstat output, and it appears you have the following:
tcp 0 0 <IP_ADDRESS>:7890 <IP_ADDRESS>:* LISTEN 2631/nc

are you running netcat on 7890 and thus unable to bind goaccess to that port?

this might works

date-format %d/%b/%Y
log-format %h - %^ [%d:%t %^]  "%r" %s %b "%R" "%u" %T "%^"

in my case, the config file is "space sensitive", that is , if in the log file there are 2 space keys between "%r" and "%s", you have to add these 2 space keys in the config file.


Add notebook example for using Dask EntitySets

Adds a new notebook that demonstrates how to compute a feature matrix using Dask EntitySets.
Fixes #16

@rwedge I have removed the original notebook and replaced it with a Dask-only version. Let me know what you think of this setup when you have a chance to review.

@rwedge I have removed the original notebook and replaced it with a Dask-only version. Let me know what you think of this setup when you have a chance to review.

Some sections of the readme that dealt with there being two approaches should be updated

@rwedge I have removed the original notebook and replaced it with a Dask-only version. Let me know what you think of this setup when you have a chance to review.

Some sections of the readme that dealt with there being two approaches should be updated

Updated to remove reference to multiple notebooks.

@rwedge I want to take another look at this before we merge it in. In particular, there is this code block at the start of the machine learning step:
X = fm_encoded.merge(label_times)
X.drop(["user_id", "time"], axis=1, inplace=True)
X = X.fillna(0)
y = X.pop("bought_product").astype('bool')

I'm not sure now why I was merging in the label times df, as the labels are already present in the feature matrix, and then we just drop the user_id and time columns anyway, so that merge isn't doing anything for us.

@rwedge I want to take another look at this before we merge it in. In particular, there is this code block at the start of the machine learning step:
X = fm_encoded.merge(label_times)
X.drop(["user_id", "time"], axis=1, inplace=True)
X = X.fillna(0)
y = X.pop("bought_product").astype('bool')

I'm not sure now why I was merging in the label times df, as the labels are already present in the feature matrix, and then we just drop the user_id and time columns anyway, so that merge isn't doing anything for us.

@rwedge While I was looking into this merge statement, I found another issue that I'm working on resolving.
First, the merge was not necessary, so that is being removed. The second issue was that when writing the initial feature matrix to disk and then reading it back it, some of the column datatypes were being changed which impacted the encoding and machine learning process. I am updating to skip this intermediate step of writing to disk.
I've made these changes and am now rerunning the notebook to confirm everything works as expected. I hope to have and updated version up for review sometime today.


docs(70): SQL spec for 1.0

I'm waiting to merge this until, at the very least, the spec as been fully implemented, since merging to master automatically deploys doc changes.

NOTE: There are some sql tickets scheduled for 1.0, so I'm moving this to 1.0. It can be merged to master anytime after 0.12 is released. It won't be deployed until it's incorporated into the release branch.


What about versions.yaml?

There is a versions.yaml file in my config folder, but it still lists grav version 1.6.29 (1.6.31 installed). What is this used for? I can imagine that this becomes handy when dealing with dependencies, however it seems to be broken for me.

It's not supposed to update, it just is a way for us to know what the version was when the file was created.  It's used to track versions for things like plugin installations.
For example:
core:
  grav:
    version: 1.7.0-rc.19
    schema: 1.7.0_2020-11-20_1
plugins:
  client_plugin:
    version: 3.0.0
    history:
      - { version: 3.0.0, date: '2020-12-23 20:45:09' }
    schema: 3.0.0_2020-12-18_1

I'm on 17 rc 20, but this core created this file at rc.19.  It's very much an internal thing we can use to handle one time jobs (migrations), and other things related to versions.


ci: Build action has been consistently failing macos-arm64-build

The Build action has been consistently failing for the last month: https://github.com/runfinch/finch-core/actions/workflows/release.yaml
The log lines in step Make and release deps before timeout have been:
if [ "Darwin" != "Linux" -a ! -e "/opt/homebrew/bin/nerdctl" ]; then ln -sf nerdctl.lima "/opt/homebrew/bin/nerdctl"; fi
if [ "Darwin" != "Linux" -a ! -e "/opt/homebrew/bin/apptainer" ]; then ln -sf apptainer.lima "/opt/homebrew/bin/apptainer"; fi
sudo may prompt for password to run FileMonitor
Error: The operation was canceled. # <-- timeout, cancelled workflow

This message is coming from https://github.com/runfinch/finch-core/blob/08a4ca2a9285f1dd2fac3bd4701087b1b2fdec87/bin/lima-and-qemu.pl#L46
Still looking to verify but the smoking gun is that the script is hanging on a prompt for password.
e: On my machine macOS Ventura 13.4 M1 chip:
./bin/lima-and-qemu.pl
ls: /opt/homebrew/bin/limactl: No such file or directory
Missing argument in sprintf at ./bin/lima-and-qemu.pl line 213.
sudo may prompt for password to run FileMonitor
Password:

GitHub runners use passwordless sudo. However runners provisioned via finch infra don't allow passwordless sudo.

@vsiravar thanks, moving this over to https://github.com/runfinch/infrastructure/issues/367 for tracking since this appears to be an issue w/ the ASG/instances


[New API] : Expense Tracker API

Brief Description 🤓
This will be used to manage user expenses: checking their expense, updating and deleting. Options to manipulate the expense structure like: monthly expense or expense on various categories.
How will you develop it?🤩
NodeJS and ExpressJS. POSTMAN to handle requests.
Deployment
None
Select the open source program you are contributing to
Other
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINES of this project.

Greetings @abckhush🎀 ! , We are excited to have you dive into another issue with us!🚀
Your involvement in our project has been invaluable, and we're confident that your skills and insights will help us conquer this challenge😇.  Use command /gssoc24 to self assign the issue.  This issue represents an exciting opportunity for us to improve and enhance our project, and we are thrilled to have you on board.
We request you to follow CONTRIBUTING GUIDELINES.
Looking for your PR soon!
In case of any issues, you can contact us on Discord.❣

/gssoc24

Hey @abckhush ! I wanted to inform you that we have closed issue.Thank you for your understanding, and we look forward to your continued engagement with our repository🤗.
In case of any issues, you can contact us on Discord.
Thank you! ❣
Happy Coding! ✨
Will See you soon❣


Add HumanEval

Hi, I added the widely-used HumanEval benchmark. This partially resolves #1157.
The implementation relies on pass@k from the HF evaluate module, so it requires the environment variable HF_ALLOW_CODE_EVAL=1. To implement this, I also made two minimal changes to lm-eval:

HumanEval needs to concatenate the prompt and completion to build the full output code. I added a custom filter to utilize custom Python functions.
To estimate pass@k, multiple model-generated strings should be passed to the metric function. I fixed type casting of gold in ConfigurableTask.process_results.

Here are some evaluations I ran for a sanity check. Due to limited resources, I used greedy generation(humaneval_greedy). The versions used were torch==2.3.1 and transformers==4.41.2.

Models
reference (see below)
lm-eval (bsz=1)
lm-eval (bsz=32)

Meta-Llama-3-8B
0.3780
0.3780
0.3720

gemma-7b
0.3232
0.3232
0.3110

Qwen2-7B
0.4756
0.4756
0.5061

Mistral-7B-v0.3
0.2744
0.0122
0.0122

I found that greedy generation scores can vary with batch sizes, so I reported results for bsz=1 and bsz=32.
I also found that the poor performance of Mistral is due to its tokenizer. It changes the number of spaces when splitting continuation tokens from context tokens. For example:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.3")
text = "\n    def foo(x):"
num_context_tokens = len(tokenizer.encode("\n", add_special_tokens=False))
print(text[1:])
# '    def foo(x):'
print(tokenizer.decode(tokenizer.encode(text, add_special_tokens=False)[num_context_tokens:]))
# '   def foo(x):'

However, I didn't attempt to fix it in this PR because it seems to change here, which may have a broader impact. Refer to the reference evaluation below for possible fixes.

Reference evaluation details
Based on official repo (https://github.com/openai/human-eval), I ran simple model generation through following script.
import os
import argparse
from transformers import AutoModelForCausalLM, AutoTokenizer
from human_eval.data import write_jsonl, read_problems

STOP_STRINGS = [
    "\nclass",
    "\ndef",
    "\n#",
    "\nif",
    "\nprint",
]

def generate_one_completion(prompt, model, tokenizer):
    """Generate one completion for a given prompt."""
    inputs = tokenizer(prompt, return_tensors="pt")
    input_ids = inputs["input_ids"].cuda()
    # Generate completion
    output = model.generate(
        input_ids=input_ids,
        tokenizer=tokenizer,
        do_sample=False,
        stop_strings=STOP_STRINGS,
        max_new_tokens=1024,
    )
    completion = tokenizer.decode(output[0], skip_special_tokens=True)
    completion = completion[len(prompt):]
    for stop_string in STOP_STRINGS:
        completion = completion.split(stop_string)[0]
    return completion

def main(args):
    model = AutoModelForCausalLM.from_pretrained(args.model, torch_dtype="auto").cuda()
    tokenizer = AutoTokenizer.from_pretrained(args.model)

    problems = read_problems()

    num_samples_per_task = 1
    samples = [
        dict(
            task_id=task_id,
            completion=generate_one_completion(
                problems[task_id]["prompt"],
                model,
                tokenizer,
            ),
        )
        for task_id in problems
        for _ in range(num_samples_per_task)
    ]

    model_name = os.path.basename(args.model)
    write_jsonl(f"{model_name}.jsonl", samples)

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--model", type=str, required=True)
    args = parser.parse_args()

    main(args)

Then, I evaluated it as follows:
evaluate_functional_correctness $MODEL_NAME.jsonl

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

Thanks for adding this (super helpful)! I'm currently running humaneval using your PR.
Any ideas why greedy scores change when using different batch sizes? Seems odd to me, and I'm wondering if it indicates a bug.

It seems to be a more general and known issue (see https://github.com/huggingface/transformers/issues/26869 or https://github.com/huggingface/transformers/issues/25420#issuecomment-1775317535), but I'm not certain.

What is the status of this PR? Is there a reason why it hasn't landed?

I just pulled this PR and rebased it against the current main (26f607f5432e1d09c55b25488c43523e7ecde657), I run into no issue.
I tested this with humaneval_greedy on the model meta-llama/Llama-3.1-8B-Instruct, the results are:
|     Tasks      |Version|Filter|n-shot| Metric  |   |Value |   |Stderr|
|----------------|------:|------|-----:|---------|---|-----:|---|-----:|
|humaneval_greedy|      1|n=1   |     0|pass_at_1|↑  |0.6341|±  |0.0377|

I think the code is correct, I will run this on many other models if you want more testing.

Hi @RawthiL,
I am currently testing HumanEval using GPT-4o-mini as a proof of concept. However, I encountered an issue where the following command results in a 0 value for the pass_at_1 metric. Could you kindly guide me on why this might be happening? I would greatly appreciate your insights. Thanks.
lm_eval \     --model openai-chat-completions \     --model_args model=gpt-4o-mini,num_concurrent=5 \     --tasks humaneval_greedy  \     --apply_chat_template
Output:

Tasks
Version
Filter
n-shot
Metric

Value

Stderr

humaneval_greedy
1
n=1
0
pass_at_1
↑
0
±
0


chat gpt query without custom API key

Is it possible to make chatgpt query works without my API key. I would like to pay for plugin like 1-2$ per month and use chatgpt query without my API key because I don't have it. You can do some monthly quotas to restrict usage. And you can make plugin as freemium to leave all features free except chat gpt query.

Hi @joshua-oliver, Thanks your feedback, I am also thinking about how to help user easily use ChatGPT Query Run, this feature can hugely improve quering Elasticsearch, since we don't need memorize the complex query dsl again.
but ChatGPT API key is exactly a blocker for user, Thanks your suggestion 👍👍👍, I will try it in next major version


Update core from Colorbleed repo

This is a lengthy PR, but contains some good stuff.
Changes:

Fixes: https://github.com/getavalon/core/issues/313
Adds switch to the api. (originally introduced here: https://github.com/getavalon/core/pull/312)
Adds switch support to the the scene inventory (manager)
Adds InventoryAction (to allow building custom actions for the Scene Inventory for a specific host), see: https://github.com/Colorbleed/core/pull/19
Allow default family filter state to be set in the studio config, see: https://github.com/Colorbleed/core/pull/21/files
Improve filtering for scene inventory, see: https://github.com/Colorbleed/core/pull/18
Also supports custom container metadata in the studio config, see: https://github.com/Colorbleed/core/pull/20 and https://github.com/getavalon/core/pull/321/files#diff-a8cb4fc609f49449f7c3a96ded875830R79 - with this you could for example give custom colors to entries in the Scene Inventory.

There's too much to review; I say let's merge this as-is, and work out issues that arise from the other end.

If someone could have a look at the conflicts, I think we should merge this and tackle any issues we find afterwards.

I may have messed up on the commits but I tried to merge the conflicts here.

This should cover it! :)

Fixed - not sure why the quotations mattered, but now it passes! :)


George redirecting

Export now works differently.

@devoncarew

lgtm w/ the manual verification. I really like that the front-end server is simpler with this change.

lgtm!

Merging
#541


Bulk actions firing twice

Package
filament/tables
Package Version
v2.10.11
Laravel Version
v9.1.0
Livewire Version
v2.10.4
PHP Version
PHP 8.1.2
Bug description
Bulk actions seem to fire twice.
Adding ->requiresConfirmation() fixes it and just executes the action once.
Steps to reproduce

Create a bulk action on a table.
Fire the bulk action.
See the action being fired twice.
Add ->requiresConfirmation() to the action.
Fire the bulk action again.
See the action being fired just once.

Relevant log output
No response

Could you provide an example of the HTML code for that being generated?   I'm wondering if the button type is wrong - you have to set it to type of button otherwise it will act as a submit button  . . . which has caused issues like this on my code elsewhere.

Ah good one @HeartlandTechie.
I've also had issues caused by a wrong button type before.
However, in this case it's type="button", so shouldn't be the cause.

This appears to be a weird bug with our Alpine code - the click handler for the bulk action buttons is being triggered twice.

Fixed by #1764.


How to build pyllamacpp without AVX2 or FMA. Works only with n_threads=1, n_threads=2 creates gibberish.

How to build pyllamacpp without AVX2 or FMA.
1) Check what features your CPU supports
I have an old Mac but these commands likely also work on any linux machine.
The default pyllamacpp and llama.cpp require AVX2 support. But there is a way to build both even if have an old CPU with AVX1 support. First, check what technologies your CPU supports. On a Mac you can do it with:
sysctl -a

I these options which means it supports AVX1 but not AVX2 or FMA.
hw.optional.avx1_0: 1
hw.optional.avx2_0: 0
hw.optional.fma: 0
2) Clone the repository and edit the CMakelists
So, clone the repository.
git clone --recursive https://github.com/nomic-ai/pyllamacpp && cd pyllamacpp

Edit the CMakeLists.txt and change:
option(LLAMA_AVX2  "llama: enable AVX2" OFF)
option(LLAMA_FMA   "llama: enable FMA"  OFF)

Run the install:
pip install -e .

It should install the custom pyllamacpp to your python packages.
3) Use the built pyllamacpp in code.
Now you can just use
import pyllamacpp
from pyllamacpp.model import Model

Now, for some reason this version only works with a single thread. So if you write
generated_text = model.generate("Once upon a time, ", n_predict=55, n_threads=1)

Everything is fine, but
generated_text = model.generate("Once upon a time, ", n_predict=55, n_threads=2)

Seems to generate gibberish.
4) Compare with llama.cpp
For testing purposes I also built the regular llama.cpp.
Here, like they say in their github issues, you have to use regular make instead of cmake to make it work without AVX2. But after building the cpp version, it does work with multiple threads. So just run make like this and you should get the main file:
make

Now, with regular llama.cpp you can write:
./main --threads 4  [+rest of the options]

and that will work.

Update: fixed the gibberish issue by downloading the newest llama.cpp submodule and replacing the old @ 3525899 checkpoint folder with the newest. Changed also the CMakeLists.txt inside llama.cpp folder to disable AVX2, FMA but that might not be necessary. All good now.

Thanks so much @kuvaus for the guide.


Default form does not add bootstrap class to label when showing selectbox

This is a (multiple allowed):

[x] bug

[ ] enhancement

[ ] feature-discussion (RFC)

BootstrapUI Version: v0.5.1

Bootstrap Framework Version: v3.3.7

jQuery: v2.1.1

Platform and Target: Ubuntu 16.04, nginx 1.10.0, CakePHP 3.3.10

What you did
I've added a default form no extra params and added a selectbox using input() method.
echo $this->Form->input('contact_id', ['label' => __('Contact'), 'options' => $contacts]);

Expected Behavior

    Contact
    <select name="contact_id" id="contact-id" class="form-control">
        <option value="1" selected="selected">Contact 1</option>
        <option value="2">Contact 2</option>
    </select>

I expect the label to have the class control-label.
Actual Behavior

    Contact
    <select name="contact_id" id="contact-id" class="form-control">
        <option value="1" selected="selected">Contact 1</option>
        <option value="2">Contact 2</option>
    </select>

The label is missing the class control-label

If desired, I can make a pull request if someone can point me in the right direction as to where I can change this template

The basic form example on http://getbootstrap.com/css/ does not show any class control-label or otherwise for label tags.

Agreed, but in order to highlight the label when the form-group has an error it is required.
see: http://getbootstrap.com/css/#forms-control-validation

I see. It seems control-label in already added in case of horizontal form, so you can make a pull request by just moving that label template to $_templates itself and updating test cases to reflect the change.

@steffex Are you able to make a PR here?

@dereuromark i'm having some trouble making it work in a way that it doesn't break other elements (including the tests)


Yes-No question always required

The Yes-No question is always required causing issues.

how can i generate this issue on myside so that i can get detail about it


Proposal: Sending User Specific Events as Session in a Channel

Hi,
I am unsure, please correct me, if I am wrong. But after research to sending user id specific events with your lib I found nothing. However I like your approach and want kindly ask if this would make sense for you?
Goal
Subscribe and send User Specific Events as Session in a Channel
Problem
Events seem to be broadcasted to all registered users in a channel. No way to send an event to a specific user.
Approach
const express = require('express');
const { Sse } = require('better-sse');

const app = express();
const PORT = 3000;

app.use(express.json());

// Store sessions for registered users
const sessions = new Map();

// Endpoint for user registration
app.post('/register', (req, res) => {
    const { userId, channel, eventId } = req.body;

    if (!userId || !channel || !eventId) {
        return res.status(400).send('userId, channel, and eventId are required.');
    }

    // Create a new SSE session
    const session = Sse.create(req, res);

    // Store session in the map
    if (!sessions.has(channel)) {
        sessions.set(channel, new Map());
    }
    const channelMap = sessions.get(channel);

    if (!channelMap.has(eventId)) {
        channelMap.set(eventId, new Map());
    }
    const eventMap = channelMap.get(eventId);

    eventMap.set(userId, session);

    console.log(`User ${userId} registered to channel: ${channel}, event: ${eventId}`);
});

// API to send an event to specific users in a channel and event ID
app.post('/send-event', async (req, res) => {
    const { channel, eventId, data, userIds } = req.body;

    if (!channel || !eventId || !data) {
        return res.status(400).send('channel, eventId, and data are required.');
    }

    const channelMap = sessions.get(channel);
    if (!channelMap || !channelMap.has(eventId)) {
        return res.status(404).send('No sessions for the specified channel and eventId.');
    }

    const eventMap = channelMap.get(eventId);
    const recipients = userIds ? userIds : Array.from(eventMap.keys());

    let delivered = 0;

    for (const userId of recipients) {
        const session = eventMap.get(userId);
        if (session) {
            await session.send(data);
            delivered++;
        }
    }

    res.status(200).send(`Event delivered to ${delivered} user(s).`);
});

// Endpoint to clean up sessions when users disconnect
app.delete('/unregister', (req, res) => {
    const { userId, channel, eventId } = req.body;

    if (!userId || !channel || !eventId) {
        return res.status(400).send('userId, channel, and eventId are required.');
    }

    const channelMap = sessions.get(channel);
    if (channelMap && channelMap.has(eventId)) {
        const eventMap = channelMap.get(eventId);
        eventMap.delete(userId);

        if (eventMap.size === 0) {
            channelMap.delete(eventId);
        }
        if (channelMap.size === 0) {
            sessions.delete(channel);
        }

        console.log(`User ${userId} unregistered from channel: ${channel}, event: ${eventId}`);
    }

    res.status(200).send(`User ${userId} unregistered.`);
});

app.listen(PORT, () => {
    console.log(`Server running on http://localhost:${PORT}`);
});

Hi there. To send events to specific users on a channel you can use the filter option given to the Channel#broadcast method, inside of which you can use the Session#state property to differentiate sessions from one-another.
First store the user ID in the session state:

import { createSession, createChannel } from "better-sse";

const channel = createChannel();

app.post("/register", async (req, res) => {
  const { userId } = req.body;

  const session = await createSession(req, res, {
    state: {
      userId
    }
  });

  channel.register(session);
});

Then broadcast with a filter based on the user ID:
app.post("/send-event", (req, res) => {
  const { data, eventId, userIds } = req.body;

  channel.broadcast(data, "event-name", {
    eventId,
    filter: (session) => userIds.includes(session.state.userId)
  });
});

As for sending "specific events" there is no idiomatic way to do this with the library. You would have to make some mechanism to store and retrieve events you want to send to your clients later on. You could cache them in an event buffer though this only allows you store a series of events and send them all at once to a client, not retrieve them later on.
If you're instead looking for a more pub/sub-like pattern then take a look at #66.
Let me know if I've misunderstood your issue.

thx


Need help pulling 10 years of income statements, balance sheets, and cash flow statements

I am writing a script to pull 10 years of income statements, balance sheets, and cash flow statements based on a ticker parameter and encountered a few issues.

I noticed that the dataframe created from financials.get_income_statement() has 4 empty rows on top. These are 'Income Statement [Abstract]', 'Statement [Table]', 'Product and Service', and 'Statement [Line Items]'. Below is my code.

company = Company('aapl')
ten_k = company.get_filings(form="10-K").latest(1).obj()
financials = ten_k.financials
income_statement_df = financials.get_income_statement().get_dataframe()
print(income_statement_df)

Should these empty rows be removed from the returned object?

When I tried to pull 10 years of income statement of MSFT,  I encountered an error that says 'ValueError: Length mismatch: Expected axis has 21 elements, new values have 22 elements'. Below is my code.

def get_financial_statements(ticker):
    year = 10
    set_identiy("blah blah<EMAIL_ADDRESS>    company = Company('MSFT')

    def get_income_statements():
        ten_ks = company.get_filings(form="10-K").latest(year)
        income_statement_df = pd.DataFrame()

        income_statement_df = income_statement_df.iloc[:, :-2]

        i = 0
        for ten_k in ten_ks:
            financials = ten_k.obj().financials
            income _statement_df = financials.get_income_statement().get_dataframe()
            if (i == 0):
                income_statement_df = pd.concat([income_statement_df, income_statement_df[income_statement_df.columns]], axis=1)
        i = i + 1
        print(income_statement_df)

    get_income_statements()

def main():
    get_financial_statements('aapl')

if __name__ = '__main__':
    main()

The full error message is pasted below.

Traceback (most recent call last):
  File "/Users/liangchen/Github/coding/stocks/get_fs_SEC.py", line 147, in <module>
    main()
  File "/Users/liangchen/Github/coding/stocks/get_fs_SEC.py", line 143, in main
    get_financial_statements(args.ticker, statement)
  File "/Users/liangchen/Github/coding/stocks/get_fs_SEC.py", line 54, in get_financial_statements
    get_income_statements()
  File "/Users/liangchen/Github/coding/stocks/get_fs_SEC.py", line 45, in get_income_statements
    income_statements_df.index=income_statement_df.index
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pandas/core/generic.py", line 6313, in __setattr__
    return object.__setattr__(self, name, value)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "properties.pyx", line 69, in pandas._libs.properties.AxisProperty.__set__
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pandas/core/generic.py", line 814, in _set_axis
    self._mgr.set_axis(axis, labels)
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pandas/core/internals/managers.py", line 238, in set_axis
    self._validate_set_axis(axis, new_labels)
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pandas/core/internals/base.py", line 98, in _validate_set_axis
    raise ValueError(
ValueError: Length mismatch: Expected axis has 21 elements, new values have 22 elements

Thank you for your help in advance!

So I actually implemented this last week but have been slow rolling it out.
from edgar import *

company = Company("MSFT")
filings = company.get_filings(form="10-K").latest(9)

financials = MultiFinancials(filings)
financials.get_balance_sheet()
financials.get_cash_flow_statement()
financials.get_income_statement()

Thank you for your prompt reply, dgunning! I tried it and it works. Thank you!
But I noticed that values are incorrect. For example, when pulling the 10 years income statements for MSFT, the revenue row shows <N/A> for 2015 and 2014.

Also, I noticed that many details such as R&D expense, SG&A expense are missing from the dataframe. Is this by design?

I think it has to do with the contactenation of the rows/dataframe. This might be due to lines having slightly different text from one year to another.  There might be a way to do this by removing the index for each year and creating  a new one. The rows order is kind of important in this process so I wonder what would be the best way to do it.
When I do Excel models, I actually add some rows as the accounts are used and kind of always kept them even if they were removed in later years.  There might be some work around  by doing some kind of sumif or using some specific mapping to map out the account and refer to the mapping. But it might be hard with all the different ways financials are presented.


release/2.3.1

Bugfix release:

Fixes regression: filter: false in a column setting did not work anymore

@dj-fiorex @hexdecimal16 can you please have a look?
Maybe I can get permission to release such minor fixes by myself. npm user would be uap-universe with email<EMAIL_ADDRESS>

Invite sent!


[FormRecognizer] CopyModelToWithTags failing in nightly runs

FormRecognizer nightly test runs are failing with:

Error message
Azure.RequestFailedException : Invalid request.
Status: 400 (Bad Request)
ErrorCode: InvalidRequest
Content:
{
"error": {
"code": "InvalidRequest",
"message": "Invalid request.",
"innererror": {
"code": "ContentSourceNotAccessible",
"message": "Content is not accessible: Could not retrieve build data within 60 seconds."
}
}
}
Headers:
Transfer-Encoding: chunked
x-envoy-upstream-service-time: 60171
apim-request-id: 5a6d45c0-264c-4175-8c0a-cfd395da0be4
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
x-ms-region: REDACTED
Content-Type: application/json
Date: Fri, 18 Nov 2022 05:08:54 GMT
Stack trace
at Azure.AI.FormRecognizer.DocumentAnalysis.DocumentAnalysisRestClient.d__16.MoveNext() in D:\a_work\1\s\sdk\formrecognizer\Azure.AI.FormRecognizer\src\Generated\DocumentAnalysisRestClient.cs:line 347
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable1.ConfiguredTaskAwaiter.GetResult()    at Azure.AI.FormRecognizer.DocumentAnalysis.DocumentModelAdministrationClient.<BuildDocumentModelAsync>d__8.MoveNext() in D:\a\_work\1\s\sdk\formrecognizer\Azure.AI.FormRecognizer\src\DocumentModelAdministrationClient.cs:line 287 --- End of stack trace from previous location where exception was thrown ---    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)    at System.Runtime.CompilerServices.TaskAwaiter1.GetResult()
at Azure.Core.TestFramework.DiagnosticScopeValidatingInterceptor.<>c__DisplayClass4_01.<<WrapAsyncResultCore>g__Await|0>d.MoveNext() in D:\a\_work\1\s\sdk\core\Azure.Core.TestFramework\src\Instrumentation\DiagnosticScopeValidatingInterceptor.cs:line 120 --- End of stack trace from previous location where exception was thrown ---    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)    at System.Threading.Tasks.ValueTask1.get_Result()
at Azure.Core.TestFramework.InstrumentResultInterceptor.d__51.MoveNext() in D:\a\_work\1\s\sdk\core\Azure.Core.TestFramework\src\Instrumentation\InstrumentResultInterceptor.cs:line 105 --- End of stack trace from previous location where exception was thrown ---    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)    at System.Runtime.CompilerServices.TaskAwaiter1.GetResult()
at Azure.Core.TestFramework.DiagnosticScopeValidatingInterceptor.<>c__DisplayClass4_01.<<WrapAsyncResultCore>g__Await|0>d.MoveNext() in D:\a\_work\1\s\sdk\core\Azure.Core.TestFramework\src\Instrumentation\DiagnosticScopeValidatingInterceptor.cs:line 120 --- End of stack trace from previous location where exception was thrown ---    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)    at System.Threading.Tasks.ValueTask1.get_Result()
at Azure.Core.TestFramework.DiagnosticScopeValidatingInterceptor.<>c__DisplayClass5_01.<<ValidateDiagnosticScopeInterceptor>b__0>d.MoveNext() in D:\a\_work\1\s\sdk\core\Azure.Core.TestFramework\src\Instrumentation\DiagnosticScopeValidatingInterceptor.cs:line 171 --- End of stack trace from previous location where exception was thrown ---    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)    at System.Threading.Tasks.ValueTask1.get_Result()
at Azure.Core.TestFramework.DiagnosticScopeValidatingInterceptor.d__61.MoveNext() in D:\a\_work\1\s\sdk\core\Azure.Core.TestFramework\src\Instrumentation\DiagnosticScopeValidatingInterceptor.cs:line 213 --- End of stack trace from previous location where exception was thrown ---    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)    at System.Runtime.CompilerServices.TaskAwaiter1.GetResult()
at Azure.AI.FormRecognizer.DocumentAnalysis.Tests.DisposableBuildModel.<BuildModel

For more details check here:

https://dev.azure.com/azure-sdk/internal/_build/results?buildId=1998536&view=results

@jsquire for notification.

Already tracked by https://github.com/Azure/azure-sdk-for-net/issues/31914. Closing this.


CI build failing on brew test-bot --only-formulae

I'm seeing an error I cannot understand when running brew test-bot --only-formulae for my taps repository.
This is the error message:
==> brew linkage --test miguelaferreira/tools/devex-cli
==> FAILED
Unwanted system libraries:
  /lib/x86_64-linux-gnu/libz.so.1

Here's the workflow full log.
I could use any help figuring out what this error means and how can I fix it.

Your build has dependence on zlib, which isn't portable. Add uses_from_macos "zlib" to your formula's dependencies.

Hi @carlocab thanks for your help.
I've added uses_from_macos "zlib" to the formulas (see https://github.com/miguelaferreira/homebrew-tools/pull/5/files#diff-a4e8c4ef2098009481eef7964aac8e2f0d52537a718f9649deef67409f3f28adR10), but the build still breaks with the same error.
It's the ubuntu build that still fails with this error.
==> FAILED
Unwanted system libraries:
  /lib/x86_64-linux-gnu/libz.so.1

Full log.

Ah, your formula installs pre-built binaries, which is why adding the zlib dependency doesn't help. You have a few alternatives:

Ignore the error and drop the uses_from_macos "zlib" line. Your formula won't work on systems that don't provide zlib.
Build your binaries from source in the formula.
Keep the uses_from_macos "zlib" and modify the RPATHs in your binaries to be able to find Homebrew zlib. You can use patchelf for this.

Not 100% certain 3 works, but I don't see why it shouldn't.

Thanks again @carlocab, I think I'm only going to ignore the error and remove that step from my CI workflow.
These binaries are java applications created with graalvm native image, so building them from source on install is just too heavy. I can't make them casks either because that's macOS specific, so a formula is the way I think is best to offer them. Maybe a bottle would be the best way? Unfortunately I don't find enough documentation to teach me how to make those.
In addition my formula doesn't really depend on "zlib", the only reason I see for this implicit dependency to be created is the fact that the package being downloaded is a tar.gz archive, and both OSs I'm targeting include tar with gzip support.
Saying my formula has a dependency on "zlib" sounds to me like saying my formula has a dependency on lib-curl because an archive needs to be downloaded, or a dependency on ls because files need to be listed at some point.
I can imagine there's a good explanation for this dependency, but I don't find enough documentation to learn these things either.

Saying my formula has a dependency on "zlib" sounds to me like saying my formula has a dependency on lib-curl because an archive needs to be downloaded, or a dependency on ls because files need to be listed at some point.

I'm afraid you're mistaken.
When I say that your formula has dependence on zlib, I mean that your binary will not work on systems that do not have zlib installed at /lib/x86_64-linux-gnu even if it is successfully downloaded, unzipped, and installed.
You can see this using objdump or ldd:
❯ objdump -p devex-Linux-v1.0.0

devex-Linux-v1.0.0:     file format elf64-x86-64
[snip]
Dynamic Section:
  NEEDED       libz.so.1
  NEEDED       libpthread.so.0
  NEEDED       libdl.so.2
  NEEDED       libc.so.6

root@95d0d9214baa:/tmp# ldd devex-Linux-v1.0.0
        linux-vdso.so.1 =>  (0x00007ffe1edf1000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fef84ed7000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fef84cba000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fef84ab6000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fef846ec000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fef89bf6000)

Here's what happens when I try to run your binary on a system that does not have /lib/x86_64-linux-gnu/libz.so.1
root@95d0d9214baa:/tmp# ./devex-Linux-v1.0.0 -h
./devex-Linux-v1.0.0: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory


Pull request 500 error

Gitea version: 1.9.4
Git version: 2.22.0
Operating system: ubuntu 18.04
Database :

[ ] PostgreSQL
[x] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x] No
[ ] Not relevant

Log gist:

Description
I get 500 error on creating new pull request.
Pre-push file does not exist on gitea server.
Logs:
2019/10/23 14:27:44 routers/repo/pull.go:751:CompareAndPullRequestPost() [E] PushToBaseRepo: Push: exit status 1 - \nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/pre-push.\n
	error: failed to push some refs to '/data/git/repositories/company/product.git'

Presumably "company/product.git" is a forked repo -  I would take a look at the original base repos git.

Nope this repo is not a fork. I get this error when i try to create pull request to merge changes from feauture branch to master branch on original repo in gitea.

So it's a very odd error message I think there must be something in your git config somewhere that is adding git hooks to temporary repositories.

Config file in this repo contains:
[core]
repositoryformatversion = 0
filemode = false
bare = true
symlinks = false
ignorecase = false

It's won't be that repo that has the weird config. It's the newly created temporary repo that you don't see. We almost always create a temporary repo with shared object data to prevent the temp repo from destroying the real repo.
Something is telling git to create repositories with git-lfs hooks when git-lfs is not installed.

Since you enabled LFS, gitea will check if your have installed git lfs when start. But why it reported error when running.

Are there some other config files that can affect this repo?

So global git config could do this?

Do we need to have git lfs client instaled on server?

You shouldn't need git-lfs but if you have previously installed and removed git-lfs you need to ensure that it's been removed completely.
I would just try creating a git repo on the server and see if that gets lfs hooks added - if it does you haven't removed git-lfs completely

No i did't have git lfs client installed.

I created new repo and two hooks are created pre-receive and post-receive
pre-receive:
#!/usr/bin/env bash
data=$(cat)
exitcodes=""
hookname=$(basename $0)
GIT_DIR=${GIT_DIR:-$(dirname $0)}

for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
test -x "${hook}" || continue
echo "${data}" | "${hook}"
exitcodes="${exitcodes} $?"
done

for i in ${exitcodes}; do
[ ${i} -eq 0 ] || exit ${i}
done

post-receive:
 #!/usr/bin/env bash
 data=$(cat)
 exitcodes=""
 hookname=$(basename $0)
 GIT_DIR=${GIT_DIR:-$(dirname $0)}

 for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
 test -x "${hook}" || continue
 echo "${data}" | "${hook}"
 exitcodes="${exitcodes} $?"
 done

 for i in ${exitcodes}; do
 [ ${i} -eq 0 ] || exit ${i}
 done

@bkodre Those are the "parent" hooks. They execute their "child" hooks in a directory which is named after the hook with .d at the end. In my test repo:
$ pwd
/home/giteatest/gitea-repositories/test-user/test-repo.git/hooks

$ find
.
./applypatch-msg.sample
./commit-msg.sample
./post-update.sample
./pre-applypatch.sample
./pre-commit.sample
./pre-push.sample
./pre-receive.sample
./update.sample
./fsmonitor-watchman.sample
./pre-rebase.sample
./prepare-commit-msg.sample
./pre-receive.d
./pre-receive.d/gitea          <-- a child hook
./pre-receive                  <-- the parent hook
./update.d
./update.d/gitea
./update
./post-receive.d
./post-receive.d/gitea         <-- a child hook
./post-receive                 <-- the parent hook

I would double check your Gitea repositories don't have the LFS hooks given this finding

I checked all hooks (also child hooks) and i found lfs hook in one of the. Removal of this lfs hook solved pull request error.


feat(ng-zorro-antd):ng-zorro-antd UI

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
feature: add ng-zorro-antd ui;
What is the current behavior? (You can also link to an open issue here)
none
What is the new behavior (if this is a feature change)?
Add ng-zorro-antd UI ,implements input, input-number, checkbox, radio,select and textarea, supports all of the features of theses controls.
Please check if the PR fulfills these requirements

[x] The commit messages follow our guidelines: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format
[ ] A unit test has been written for this change.
[x] Running npm run build produced a successful build. (Unit testing can be done by running npm test;)
[x] My code has been linted. (npm run lint to do this. npm run build will fail if there are files not linted.)

Please provide a screenshot of this feature before and after your code changes, if applicable.

Other information:
Keep all params as the same as ng-zorro-antd used. Use it in 'templateOptions' .
    ...
    key: 'Input',
    type: 'input',
    tempalteOptions: {
         label: 'Input',
         nzSize: 'large'  // Because of nz-input directive defined a input property named nzSize
    }
   ...

Exception:  nzSpan  nzLabelSpan is used to set the nzSpan attribute to the nz-form-label，as the same, nzControlSpan is for nz-form-control.

merged in #1951, thank you @sxlwar!

Note: published an early version 0.0.1 for @ngx-formly/ng-zorro-antd which you can use with v5, a stable version is expected in formly@v6.
Happy coding!


Update layer-7-routing.md

Remove 'Check your deployment' sections

Deploy preview for docsdocker ready!
Built with commit d2b5d6cdbb20412de95fa5410c366d690dede1ae
https://deploy-preview-8350--docsdocker.netlify.com


Play button not working

The play button isn't working on CropGridViewer with you pass showGrid = null to preview video.I have to tap on video screen to play video but video doesn't play when i press play button

showGrid is a boolean argument, then it's not recommend pass null. If don't want to showGrid you do show the grid: false.
Also, the play button is outside the CropGrodViewer and I think didn't add play and pause because I forgot it. You can add the play and pause functionality with the icon. Like this
GestureDetector(
   onTap: () async {
       final video = controller.videoController;
       if (video.isPlaying) await video.pause();
       else await video.play();
   },
   child: Icon(...),
)

showGrid is a boolean argument, then it's not recommend pass null. If don't want to showGrid you do show the grid: false.
Also, the play button is outside the CropGrodViewer and I think didn't add play and pause because I forgot it. You can add the play and pause functionality with the icon. Like this
GestureDetector(
   onTap: () async {
       final video = controller.videoController;
       if (video.isPlaying) await video.pause();
       else await video.play();
   },
   child: Icon(...),
)


JS: Make moduleImport() work for named imports

Fixes https://jira.semmle.com/browse/ODASA-6953, so QL like this
DataFlow::moduleImport("foo").getAPropertyRead("bar")

now matches code like this
import { bar } from "foo";

We're low on workers so I will start a full evaluation after reviews.

That looks refreshingly simple! It's unfortunate we still treat named imports and default imports differently (and the test failure looks like it might be related to that), but it's certainly a big step in the right direction. Modulo evaluation and remaining test failures, this lvgtm!

Right, I had forgotten about the ambiguous interpretation of default imports. Generalized it to default imports and checked that the results are indeed to be expected and reasonable.

Evaluation is uneventful.


optimize: add copyright notice

[ ] I have registered the PR changes.

Ⅰ. Describe what this PR did
add apache notice
Ⅱ. Does this pull request fix one issue?

fixes #4799

Pls add change log in:
https://github.com/seata/seata/blob/develop/changes/en-us/develop.md
https://github.com/seata/seata/blob/develop/changes/zh-cn/develop.md

Pls add change log in: https://github.com/seata/seata/blob/develop/changes/en-us/develop.md https://github.com/seata/seata/blob/develop/changes/zh-cn/develop.md

done

Codecov Report

Merging #4800 (64fd67d) into develop (a4b266c) will increase coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop    #4800   +/-   ##
==========================================
  Coverage      48.64%   48.64%
  Complexity      4075     4075
==========================================
  Files            736      736
  Lines          25720    25720
  Branches        3177     3177
==========================================
+ Hits           12511    12512    +1
  Misses         11865    11865
+ Partials        1344     1343    -1

Impacted Files
Coverage Δ

...very/registry/zk/ZookeeperRegisterServiceImpl.java
61.02% <0.00%> (-0.74%)
:arrow_down:

...torage/file/store/FileTransactionStoreManager.java
56.91% <0.00%> (+0.64%)
:arrow_up:

Pls add change log in: https://github.com/seata/seata/blob/develop/changes/en-us/develop.md https://github.com/seata/seata/blob/develop/changes/zh-cn/develop.md

done

The change log should be moved to the optimize module in develop.md . bugfix represents a fix to transaction service.


Skills: Selection & auto-fill/suggest appropriate field values from manifest

When calling a SkillDialog, we should allow a user to select from a list of Skills currently available in the bot.
When the user has provided a Skill to call, pre-fill any deterministic fields available from the skill's manifest in the SkillDialog properties. In cases where these fields are deterministic (ex. activity we should suggest a list of elements to fill in these fields for the user.
Example: https://ericv3skillspizzabot.azurewebsites.net/wwwroot/pizza-bot-manifest.json
For the activity field in the SkillDialog given this manifest we should suggest OrderPizza, and when selected, fill-in the activity field for the user.
Note: auto-completion should probably come off of the LG LSP, like memory state is indexed into auto-suggestion.

Here is the spec for the Skills node.
There is a new dark blue added to the Theme... that should be perfect for this. I want them to look a little different with the icon in white on the right... also a blank version if that presents a scale problem - but I think it should be easy to pic an icon for each one...
Here is the link to the Figma:
https://www.figma.com/file/Ux0vucOvaLL2xH22WpFgV65X/MarcB_Composer-UI?node-id=3276%3A95

okay - well with a no-go on the custom icons... In honor of the excitement we all have to get a box from UPS or Fedex right now - that can contain any thing we can imagine. #skillbox
Same colors as above.
https://www.figma.com/file/Ux0vucOvaLL2xH22WpFgV65X/MarcB_Composer-UI?node-id=5564%3A0

@tdurnford @cwhitten

You want the Icon in the body of the node opposed to the header? currently icons in the nodes are in the header (next to Bot Skill)

Oh my bad - I just looked a few that had the icon down there. Yes would rather have it up top...
and Marieke said that the PVA Team is using this icon in a "similar fashion" soooo lets do this.


Add GROMACS and LAMMPS

The last release of LAMMPS includes a test that lacks a decorator to gracefully skip when it's not installed. Might as well just add it to these tests, though.

@ntBre does this mean anything to you? https://github.com/openforcefield/status/actions/runs/10011341975/job/27817227290#step:11:2300
These failures are

only on M1 runners
not obviously related to this changeset, but passing upstream: https://github.com/openforcefield/status/actions/runs/10051121052/job/27780177248#step:10:574

Hmm, yes, that's coming from my tests for the new caching behavior. I added a context manager to temporarily disable the PortalClient's requests.Session field to ensure that the cached data was loaded from the local cache instead of being re-fetched. I see that the root cause is likely a sqlite3.OperationalError: attempt to write a readonly database, which leads me to the qcportal version since 0.55 replaced sqlite3 with apsw. We've been testing against 0.56  in the qcsubmit tests, and only on macos-12. The macos-12 images here are also pulling in 0.56, so I'm guessing something about the M1/0.54 combination is causing problems?

I have two ideas here

Just downpin to some version(s) of things that work (0.54 across the board for QCArchive things, and some comptaible QCSubmit?). This pushes the problem down the road, which might be a value add if there is a genuine issue here
Add a lower constraint to keep tests running along. (Probably something like %s/~=0.50/~=0.56/ here). I prefer this if it works, but don't know that it will

Okay, so qcportal >=0.55 doesn't work on M1 at all, but I'd like to avoid downpins. For now I think we should skip QCSubmit on M1 (only). This allows us to keep most M1 tests online without dropping QCSubmit on Intel hardware

(to shortcut my search when I come back here in the future) Matt's opened an issue about the lack of availability of ARM builds for QCFractal here


Acoustic Customisation Through the API

I am a bit confused on the model kind to be chosen, when it comes to acoustic customisation through the API.
In the Custom Speech Portal, I am picking a base language model such as in East US2, where I have picked the model 20190523 (v4.14b Unified) with id: 6f035940-42e4-4b60-8afd-e5c086621c5f. This allows both acoustic and language customisation.
I am easily able to add about 7-8 zip files (i.e. audio + human recorded transcripts with each maximum packet size of 2GB ) on top of one another and train my model and deploy it.
However, when I use the API and choose modelkind to be 'acoustic', it is only allowing one acoustic dataset to be added inside the dataset array. Is this a known issue, that people can add more acoustic datasets.
or am I missing something totally here?

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

ID: 4de08d1f-8114-7bef-7ef4-022f79c69742
Version Independent ID: 4c0ceab9-24ed-de01-db30-31acf1de0f48
Content: Language support - Speech service - Azure Cognitive Services
Content Source: articles/cognitive-services/Speech-Service/language-support.md
Service: cognitive-services
Sub-service: speech-service
GitHub Login: @IEvangelist
Microsoft Alias: dapine

Moving it to another more relevant forum.

Thanks for sharing the update.


Issue building from shortcut keys

Godot version
4.0beta10
System information
OSX 13.1
Issue description
It seems that you cannot build the game from the normal command+b shortcut if your most recent focus was the text editor.
If you however first click into the node inceptor pane then run the same shortcut command it seems to work. Not a show stopper or anything, but it adds up throughout a work day and becomes extremely annoying haha. I don't remember this happening in 3.5, but I could be wrong.
Steps to reproduce

Open any 4.0 project
Write something in the text editor but keep your focus inside the text editor when finished
Try to build the game with the keyboard shortcut (command+b)

Minimal reproduction project
This isn't needed.

Duplicate of #56961


Added test cases for svlen

This PR aims to solve issue #92

Though unrelated, but you could also change the line https://github.com/EBIvariation/vcf-validator/blob/develop/src/vcf/validate_optional_policy.cpp#L178 by removing the trailing extra space in the error message "INFO SVLEN should have same number of values as ALT ".
Make it "INFO SVLEN should have same number of values as ALT".


⚠ Bofrost.lu has degraded performance

In c9786ef, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2131 ms

Resolved: Bofrost.lu performance has improved in 5a20dd4 after 6 minutes.


perf: improve polymorphism code generation speed

Summary by CodeRabbit

New Features

Introduced enhancements in schema processing, including new types and functions for transformation.
Added support for named constraints in schemas for various database providers.

Refactor

Improved the initialization process of schema generation tools for better efficiency and clarity.

Tests

Added regression tests for specific issues to ensure robustness.
Introduced a new test for TypeScript compilation with PrismaClient operations.

Fixes #1064


Can't open "Report Issue" [nginx 414 error]

[x] I am on the latest Hyper.app version
[x] I have searched the issues of this repo and believe that this is not a duplicate

OS: Windows 10 Home
Hyper.app version 3.0.2 stable
The issue is reproducible in vanilla Hyper.app:

Issue
When using the "Hamburger > Help > Report Issue", the github page can't be loaded, it gives an "414 Request-URI Too Large" error. The webpage that should be opened is here .  It's the normal issue site.

Ran into this today, but got an error 500 attempting to access the following (very long) URL, same Hyper version but on macOS Mojave 10.14.6:
https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fzeit%2Fhyper%2Fissues%2Fnew%3Fbody%3D%250A%253C%21--%250A%2520%2520Hi%2520there%21%2520Thank%2520you%2520for%2520discovering%2520and%2520submitting%2520an%2520issue.%250A%2520%2520Before%2520you%2520submit%2520this%253B%2520let%2527s%2520make%2520sure%2520of%2520a%2520few%2520things.%250A%2520%2520Please%2520make%2520sure%2520the%2520following%2520boxes%2520are%2520%25E2%259C%2585%2520if%2520they%2520are%2520correct.%250A%2520%2520If%2520not%252C%2520please%2520try%2520and%2520fulfil%2520these%2520first.%250A--%253E%250A%253C%21--%2520%25F0%259F%2591%2589%2520Checked%2520checkbox%2520should%2520look%2520like%2520this%253A%2520%255Bx%255D%2520--%253E%250A%2520%2520-%2520%255B%2520%255D%2520Your%2520Hyper.app%2520version%2520is%2520%2A%2A3.0.2%2A%2A.%2520Please%2520verify%2520your%2520using%2520the%2520%255Blatest%255D%28https%253A%252F%252Fgithub.com%252Fzeit%252Fhyper%252Freleases%252Flatest%29%2520Hyper.app%2520version%250A%2520%2520-%2520%255B%2520%255D%2520I%2520have%2520searched%2520the%2520%255Bissues%255D%28https%253A%252F%252Fgithub.com%252Fzeit%252Fhyper%252Fissues%29%2520of%2520this%2520repo%2520and%2520believe%2520that%2520this%2520is%2520not%2520a%2520duplicate%250A%250A%2520%2520---%250A%2520%2520-%2520%2A%2AAny%2520relevant%2520information%2520from%2520devtools%253F%2A%2A%2520_%28CMD%252BALT%252BI%2520on%2520macOS%252C%2520CTRL%252BSHIFT%252BI%2520elsewhere%29_%253A%250A%253C%21--%2520%25F0%259F%2591%2589%2520Replace%2520with%2520info%2520if%2520applicable%252C%2520or%2520N%252FA%2520--%253E%250A%250A%2520%2520-%2520%2A%2AIs%2520the%2520issue%2520reproducible%2520in%2520vanilla%2520Hyper.app%253F%2A%2A%250A%253C%21--%2520%25F0%259F%2591%2589%2520Replace%2520with%2520info%2520if%2520applicable%252C%2520or%2520Is%2520Vanilla.%2520%28Vanilla%2520means%2520Hyper.app%2520without%2520any%2520add-ons%2520or%2520extras.%2520Straight%2520out%2520of%2520the%2520box.%29%2520--%253E%250A%250A%2523%2523%2520Issue%250A%253C%21--%2520%25F0%259F%2591%2589%2520Now%2520feel%2520free%2520to%2520write%2520your%2520issue%252C%2520but%2520please%2520be%2520descriptive%21%2520Thanks%2520again%2520%25F0%259F%2599%258C%2520%25E2%259D%25A4%25EF%25B8%258F%2520--%253E%250A%250A%250A%250A%250A%250A%250A%253C%21--%2520~%252F.hyper.js%2520config%2520--%253E%250A%2520-%2520%2A%2AHyper%2520version%2A%2A%253A%2520undefined%2520%25223.0.2%2522%250A%250A%2520-%2520%2A%2AOS%2520ARCH%2520VERSION%253A%2A%2A%2520darwin%2520x64%252018.7.0%250A%2520-%2520%2A%2AElectron%253A%2A%2A%25203.1.3%2520%2520%2A%2ALANG%253A%2A%2A%2520undefined%250A%2520-%2520%2A%2ASHELL%253A%2A%2A%2520%252Fbin%252Fbash%2520%2520%2520%2A%2ATERM%253A%2A%2A%2520undefined%250A%250A%2520%2520%253Cdetails%253E%250A%2520%2520%2520%2520%253Csummary%253E%253Cstrong%253E%2520~%252F.hyper.js%2520contents%253C%252Fstrong%253E%253C%252Fsummary%253E%250A%2520%2520%2520%2520%2520%2520%253Cpre%253E%250A%2520%2520%2520%2520%2520%2520%2520%2520%253Ccode%253E%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257B%250A%2520%2520%2522updateChannel%2522%253A%2520%2522stable%2522%252C%250A%2520%2520%2522fontSize%2522%253A%252012%252C%250A%2520%2520%2522fontFamily%2522%253A%2520%2522Menlo%252C%2520%255C%2522DejaVu%2520Sans%2520Mono%255C%2522%252C%2520Consolas%252C%2520%255C%2522Lucida%2520Console%255C%2522%252C%2520monospace%2522%252C%250A%2520%2520%2522fontWeight%2522%253A%2520%2522normal%2522%252C%250A%2520%2520%2522fontWeightBold%2522%253A%2520%2522bold%2522%252C%250A%2520%2520%2522lineHeight%2522%253A%25201%252C%250A%2520%2520%2522letterSpacing%2522%253A%25200%252C%250A%2520%2520%2522cursorColor%2522%253A%2520%2522rgba%28248%252C28%252C229%252C0.8%29%2522%252C%250A%2520%2520%2522cursorAccentColor%2522%253A%2520%2522%2523000%2522%252C%250A%2520%2520%2522cursorShape%2522%253A%2520%2522BLOCK%2522%252C%250A%2520%2520%2522cursorBlink%2522%253A%2520false%252C%250A%2520%2520%2522foregroundColor%2522%253A%2520%2522%2523fff%2522%252C%250A%2520%2520%2522backgroundColor%2522%253A%2520%2522%2523000%2522%252C%250A%2520%2520%2522selectionColor%2522%253A%2520%2522rgba%28248%252C28%252C229%252C0.3%29%2522%252C%250A%2520%2520%2522borderColor%2522%253A%2520%2522%2523333%2522%252C%250A%2520%2520%2522css%2522%253A%2520%2522%2522%252C%250A%2520%2520%2522termCSS%2522%253A%2520%2522%2522%252C%250A%2520%2520%2522showHamburgerMenu%2522%253A%2520%2522%2522%252C%250A%2520%2520%2522showWindowControls%2522%253A%2520%2522%2522%252C%250A%2520%2520%2522padding%2522%253A%2520%252212px%252014px%2522%252C%250A%2520%2520%2522colors%2522%253A%2520%257B%250A%2520%2520%2520%2520%2522black%2522%253A%2520%2522%2523000000%2522%252C%250A%2520%2520%2520%2520%2522red%2522%253A%2520%2522%2523C51E14%2522%252C%250A%2520%2520%2520%2520%2522green%2522%253A%2520%2522%25231DC121%2522%252C%250A%2520%2520%2520%2520%2522yellow%2522%253A%2520%2522%2523C7C329%2522%252C%250A%2520%2520%2520%2520%2522blue%2522%253A%2520%2522%25230A2FC4%2522%252C%250A%2520%2520%2520%2520%2522magenta%2522%253A%2520%2522%2523C839C5%2522%252C%250A%2520%2520%2520%2520%2522cyan%2522%253A%2520%2522%252320C5C6%2522%252C%250A%2520%2520%2520%2520%2522white%2522%253A%2520%2522%2523C7C7C7%2522%252C%250A%2520%2520%2520%2520%2522lightBlack%2522%253A%2520%2522%2523686868%2522%252C%250A%2520%2520%2520%2520%2522lightRed%2522%253A%2520%2522%2523FD6F6B%2522%252C%250A%2520%2520%2520%2520%2522lightGreen%2522%253A%2520%2522%252367F86F%2522%252C%250A%2520%2520%2520%2520%2522lightYellow%2522%253A%2520%2522%2523FFFA72%2522%252C%250A%2520%2520%2520%2520%2522lightBlue%2522%253A%2520%2522%25236A76FB%2522%252C%250A%2520%2520%2520%2520%2522lightMagenta%2522%253A%2520%2522%2523FD7CFC%2522%252C%250A%2520%2520%2520%2520%2522lightCyan%2522%253A%2520%2522%252368FDFE%2522%252C%250A%2520%2520%2520%2520%2522lightWhite%2522%253A%2520%2522%2523FFFFFF%2522%250A%2520%2520%257D%252C%250A%2520%2520%2522shell%2522%253A%2520%2522%2522%252C%250A%2520%2520%2522shellArgs%2522%253A%2520%255B%250A%2520%2520%2520%2520%2522--login%2522%250A%2520%2520%255D%252C%250A%2520%2520%2522env%2522%253A%2520%257B%257D%252C%250A%2520%2520%2522bell%2522%253A%2520%2522SOUND%2522%252C%250A%2520%2520%2522copyOnSelect%2522%253A%2520false%252C%250A%2520%2520%2522defaultSSHApp%2522%253A%2520true%252C%250A%2520%2520%2522quickEdit%2522%253A%2520false%252C%250A%2520%2520%2522macOptionSelectionMode%2522%253A%2520%2522vertical%2522%252C%250A%2520%2520%2522webGLRenderer%2522%253A%2520true%250A%257D%250A%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%257B%250A%2520%2520%2522plugins%2522%253A%2520%255B%255D%252C%250A%2520%2520%2522localPlugins%2522%253A%2520%255B%255D%250A%257D%250A%2520%2520%2520%2520%2520%2520%2520%2520%253C%252Fcode%253E%250A%2520%2520%2520%2520%2520%2520%253C%252Fpre%253E%250A%2520%2520%253C%252Fdetails%253E


strange navbar element ordering

On theme version 0.6.0 here are screenshots of our top navbar at 3 different window widths:

The first/widest one is more or less expected behavior, except that in conf.py I had to specify 'navbar_end': ['navbar-icon-links.html', 'version-switcher.html'] (i.e., the opposite order of elements from what I expected for a left-to-right locale).
The second one is not expected at all; I expected that once the hamburger menu appears, everything will be in a column at the left edge.
The third one is almost OK; the weird left-margin on the version switcher is probably the fault of our own CSS, but now (1) the relative ordering of version-switcher and icon-links is reversed from screenshot 1 (though consistent with conf.py), and (2) the bottom edge of the nav background has no padding.
I haven't dug into the code to find the causes/solutions yet, but I suspect that #355 played some role. 🧐

There are indeed some bugs to iron out in the new modular navbar! Thanks for looking into it


Can I limit the maximum hard disk usage during operation?

I understand that the upgrade requires deleting the folder. Is it possible to limit the maximum hard disk usage during the operation? Or, when the program is running, deleting a part of the localstore files will affect the new receipts obtained?

Hi. It is not possible to limit disk drive usage right now. We are taking active steps to try and improve our storage architecture so that bee is more efficient on disk usage. About the second question, I did not quite understand the question. Please use the Discussions feature of the bee repo to ask general question, so that others can also learn from the questions asked


id column handling (avoid removal)

Good idea ! I tested this pull request, and it's OK !
Maybe a tag of this commit would be nice ?

Thanks, merged this issue. Going to tag it as v1.0.4