RediSearch v2: Added YCSB redisearch binding

Description
This PR enables to run YCSB on Redis with RediSearch[https://github.com/RediSearch/RediSearch] module enabled.
Quickstart ( build and run )
Assuming you have RediSearch running and accessible on localhost:6379
Note: check documentation below to understand the order of workloads, what they simulate,etc...
# build
git clone http://github.com/RediSearch/YCSB.git --branch redisearch2.support
cd YCSB
mvn -pl site.ycsb:redisearch-binding -am clean package

# run
# load, run A, B, C, F, D, (flushdb), load, E
./bin/ycsb load redisearch -s -P workloads/workloada -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputLoad.txt

./bin/ycsb run redisearch -s -P workloads/workloada -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputRunA.txt
./bin/ycsb run redisearch -s -P workloads/workloadb -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputRunB.txt
./bin/ycsb run redisearch -s -P workloads/workloadc -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputRunC.txt
./bin/ycsb run redisearch -s -P workloads/workloadf -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputRunF.txt
./bin/ycsb run redisearch -s -P workloads/workloadd -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputRunD.txt

redis-cli flushall

./bin/ycsb load redisearch -s -P workloads/workloade -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputLoad.txt
./bin/ycsb run redisearch -s -P workloads/workloade -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputRunE.txt

Detailed section
1. Start Redis with RediSearch
(...)

2. Install Java and Maven
3. Set Up YCSB
Git clone YCSB and compile:
git clone http://github.com/RediSearch/YCSB.git --branch redisearch2.support
cd YCSB
mvn -pl site.ycsb:redisearch-binding -am clean package

4. Provide Redis Connection Parameters
Set host, port, password, and cluster mode in the workload you plan to run.

redisearch.host
redisearch.port
redisearch.password

Don't set the password if redis auth is disabled.

redisearch.cluster

Set the cluster parameter to true if redis cluster mode is enabled.
Default is false.

Or, you can set configs with the shell command, EG:
./bin/ycsb load redisearch -s -P workloads/workloada -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputLoad.txt

5. Load data and run the tests
All six workloads have a data set that is similar. Workloads D and E insert records during the test run. Thus, to keep the database size consistent, we recommend the following sequence:
Load the database, using workload A’s parameter file (workloads/workloada) and the “-load” switch to the client.

Run workload A (using workloads/workloada and “-t”) for a variety of throughputs.

Run workload B (using workloads/workloadb and “-t”) for a variety of throughputs.

Run workload C (using workloads/workloadc and “-t”) for a variety of throughputs.

Run workload F (using workloads/workloadf and “-t”) for a variety of throughputs.

Run workload D (using workloads/workloadd and “-t”) for a variety of throughputs. This workload inserts records, increasing the size of the database.

Delete the data in the database.

Reload the database, using workload E’s parameter file (workloads/workloade) and the "-load switch to the client.

Run workload E (using workloads/workloade and “-t”) for a variety of throughputs. This workload inserts records, increasing the size of the database.

# load, run A, B, C, F, D, (flushdb), load, E
./bin/ycsb load redisearch -s -P workloads/workloada -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputLoad.txt

./bin/ycsb run redisearch -s -P workloads/workloada -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputRunA.txt
./bin/ycsb run redisearch -s -P workloads/workloadb -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputRunB.txt
./bin/ycsb run redisearch -s -P workloads/workloadc -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputRunC.txt
./bin/ycsb run redisearch -s -P workloads/workloadf -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputRunF.txt
./bin/ycsb run redisearch -s -P workloads/workloadd -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputRunD.txt

redis-cli flushall

./bin/ycsb load redisearch -s -P workloads/workloade -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputLoad.txt
./bin/ycsb run redisearch -s -P workloads/workloade -p "redisearch.host=<IP_ADDRESS>" -p "redisearch.port=6379" -p "threadcount=8" > outputRunE.txt

An overall picture, and the RediSearch use-case
Default workloads
By default, there are 6 default independent workloads, in the core package. Prior to describing the workloads, we will describe the dataset that is similar across all six.
RediSearch default workloads dataset representation
All six workloads have a data set that is similar, composed for N distinct records.
Each record is identified by a primary key, which is a string like “user234123”.
Within each record, by default, we have 10 fields, named field0, field1 and so on. The values of each field are a random string of ASCII characters of length L.
By default, we construct 1,000-byte records by using F = 10 fields, each of L = 100 bytes.
Specifically, within Redis, we model each record as a HASH, as showcased below.
Apart from the default fields, within each document we add a numeric __score__ field, used within the scan() workloads for sorting.
The value of the __score__ field is given by computing a hash of the key name.
<IP_ADDRESS>:6379> hgetall user6873002678636213555
 1) "field6"
 2) "1;x.H{=8`73<+H71+t6W=99\"8(f>Tm*;<4K16?r#?:'<d.!<7\"6!I#'_=(M3!-(-6n>Q99:>8)< P+ 1x2\\%/M\x7f'W%%Sy\"^u%?n+"
 3) "field1"
 4) ")C3,U!6@-(G!:V5<<d9)j#\\+9&:5S#\":d;&v?>h;<&3)|&\".2< <O{%(:<R90\">4[s-Y'84 '!61%.=(.9R{9Aw*Cc-H=$H'*!,,"
 5) "field7"
 6) ".(v#Uq'2>=@5%E),*`9]',V->1.9'*&@s6L7:>>,Js:V)17:$Y58^-(Qk?Aq6 r\"Zm Ee&Ag%S=)I%6),)Jy ),=9r5O+%Ug)=x+"
 7) "field9"
 8) " &f2R).A;43f>Vq;3,<W/9$d#G=,\"4*H%)-(>30 7&4 p;)(=/<<Ny(6~670,(*4N''Ze&&2:P5$Vm728<Ks0 4!C?3;:48>'R}*"
 9) "field4"
10) "4)t&S+08$) f<EMAIL_ADDRESS>.:![\x7f,..8C;\"Ns:Vy<8t6B1<Uq\"E)\" 0$"
11) "field8"
12) "8H+ 9d\"^/%968!|;2|+Q-=;f9?`&T%%Sc;>06Bk*]%=U',)8&W5-D+)-*=B)9&p2T}-^'5Kq%(8-K5634 *$)E=1.`+]{?Vi##l+"
13) "field5"
14) "\"Sa/W\x7f5&j6C1:5j:R-$8: =(5)&94b(,r6L')+h+G=!8b7T95#>$=:=%t;U?;]+-%(+Yu7P'7#:9<>=Zi?Ok&%<()p&.&-M5<Ow>"
15) "field3"
16) "+H9-8t>5|;]}22|&>x$T38,4#\"f3#00\\30R71.*!8n,_i'>:,-f\"Sk:Q9% $?Fa:Q%:E',S;0.h3[);J-$G\x7f-8x\"]'?V!$50>,f6"
17) "field0"
18) "23,!Za?Uq?T5-9<=<. B)!2$?$4</h=?$$2`:$x7T%'':<L%+, -]e3^m?\"`16.!I{1.j6R}\"/:<\"4;Dm\"/$>.`6Vs;W7(>l/7z#"
19) "field2"
20) "5Dk'Qw==04$*9,b;B+!])$7h44(-8~?H'1!t>D9%?$>5x3Z/%Ek6Kg<H+()6,\".8\"~7W!(F=&7 (Vc4]q#Im7?\"50 ,Qk6Zs4#n:"
21) "__score__"
22) "1.770379916E9"

Scanning based on RediSearch secondary index…
As you will see below, there is the need to model a scan operation within different records, in which we scan records in order, starting at a randomly chosen record key.
The number of records to scan is randomly chosen.
To model the scan operation within RedisSearch, we use FT.SEARCH and use computed hash score from the key name as the lower limit
for the search query, and set +inf as the upper limit of the search result.
The provided record count is passed via the LIMIT 0  FT.SEARCH argument.
Together, the above FT.SEARCH command arguments fully comply with a sorted, randomly chosen starting key, with
variadic record count replies.
Example FT.SEARCH command that a scan operation would generate.
<IP_ADDRESS>:6379> "FT.SEARCH" "index" "@__score__:[7.39074446E8 inf]" "LIMIT" "0" "13" "RETURN" "10" "field0" "field1" "field2" "field3" "field4" "field5" "field6" "field7" "field8" "field9"
 1) (integer) 350
 2) "user3232700585171816769"
 3)  1) "field0"
     2) "6;l+P=;R'8F/:Vi77:,S+-5j&8|?,,,0(%,x9_#%?z5+l/4*?1 -'&)@!$8n=^w+Js*)t;S/,<(4J#4=:=8x$[w;X) J#4 r9T90"
     3) "field1"
     4) "<4.5]u'Gm/!\"3Bs#%d!U%(Z)1Z-, h3?r'/6 581%x3A55Qs*B34%~ ) )^w-O=0Ok=D=1?4?%v+5(9]+(T=!-b\" x#@o\">6\"$p7"
     (...)
     (...)
    19) "field9"
    20) "8\"d2Dw7Z)8L?(D75820V?4;h*-*8,4:V+8!8:+>9,(05r3F!=(r2I#)D+)Xm5!*-Xa:O7-987Ti?Ce(8(=]' Mm+Y)*S%5K#7(00"
 4) "user1000385178204227360"
 5)  1) "field0"
     2) "'1r;A+(Sc#&:4-x:7|6D-(Z}2<0%66>$ 85v(/84Wo3'\"=3.!0p*+2%#,<-f9+|?7p#Y{/60*5|\"R1/Qk\">z##68F/-*<)*`+Xe*"
     (...)
     (...)
(...)
(...)

Workload operation details
Workload A: Update heavy workload

read/scan/update/insert ratio: 50/0/50/0
Default data size: 1 KB records (10 fields, 100 bytes each, plus key)
Request distribution: Zipfian (some items are more popular than others, according to a Zipfian distribution)
Workload: Core ( site.ycsb.workloads.CoreWorkload )
Application example: Session store recording recent actions

Workload B: Read mostly workload

read/scan/update/insert ratio: 95/0/5/0

Default data size: 1 KB records (10 fields, 100 bytes each, plus key)

Request distribution: Zipfian (some items are more popular than others, according to a Zipfian distribution)

Workload: Core ( site.ycsb.workloads.CoreWorkload )

Application example: photo tagging; add a tag is an update, but most operations are to read tags

Workload C: Read only

read/scan/update/insert ratio: 100/0/0/0

Default data size: 1 KB records (10 fields, 100 bytes each, plus key)

Request distribution: Zipfian (some items are more popular than others, according to a Zipfian distribution)

Workload: Core ( site.ycsb.workloads.CoreWorkload )

Application example: user profile cache, where profiles are constructed elsewhere (e.g., Hadoop)

Workload D: Read latest workload

read/scan/update/insert ratio: 95/0/0/5

Default data size: 1 KB records (10 fields, 100 bytes each, plus key)

Request distribution: latest -- new records are inserted, and the most recently inserted records are the most popular.

Workload: Core ( site.ycsb.workloads.CoreWorkload )

Application example: user profile cache, where profiles are constructed elsewhere (e.g., Hadoop)

Workload E: Short ranges

read/scan/update/insert ratio: 0/95/0/5

maxscanlength=100

scanlengthdistribution=uniform

This is a 95% read workload, in which short ranges of records are queried, instead of individual records.

Default data size: 1 KB records (10 fields, 100 bytes each, plus key)

Request distribution: Zipfian (some items are more popular than others, according to a Zipfian distribution)

Workload: Core ( site.ycsb.workloads.CoreWorkload )

Application example: threaded conversations, where each scan is for the posts in a given thread (assumed to be clustered by thread id)

Workload F: Read-modify-write workload

read/scan/update/insert/readmodifywrite ratio: 50/0/0/0/50

Default data size: 1 KB records (10 fields, 100 bytes each, plus key)

Request distribution: Zipfian (some items are more popular than others, according to a Zipfian distribution)

Workload: Core ( site.ycsb.workloads.CoreWorkload )

Application example: user database, where user records are read and modified by the user or to record user activity.

@filipecosta90 https://github.com/RediSearch/YCSB/pull/4


Paginate \ count result

Hi,
Is there a way to get count of the relevant results with respect to the query and \ or to paginate the results. E.g. read the first 500, then 500-1000, etc.?

Hi,
The library does apply batching to the requests (250 articles at a time). Therefore there is not batching / pagination method.
If you really need it you can do something like this:
from pymed import PubMed
pubmed = PubMed()

# Use the low level API to retrieve the article IDs that are related to the query
article_ids = pubmed._getArticleIds(query=query, max_results=9999999)

# This is an opportunity to show the number of results
print("The total number of results matching the query is", len(article_ids)

# Use the low level API to retieve the articles
# NOTE: pubmed._getArticles() already expects a list of article IDs (which will be processed in a single
# call to PubMed). In this sample I'm providing here I'll insert the article IDs one by one but please
# don't do this in your own code!
articles = [list(pubmed._getArticles(article_ids=[article_id]))[0] for article_id in article_ids]

# The preferred way it to make batches and give those batches to pubmed._getArticles() (which is
# what the library does...) like this:
from pymed.helpers import batches
batched_articles = [pubmed._getArticles(article_ids=batch) for batch in batches(article_ids, 250)]
for batch in batched_articles:
    for article in batch:
        # Do something here
        print(article.title)

The articles variable in the last example is a generator, so the next request is not made until you're done with this one.
I'll try to add some easier helper methods in the next release.
I hope that helps?

Thanks, I think it is a fair enough solution for now but would like to have advanced option such as count without retrieving all the ids, queries based on specific field, etc.

I'll take care of the count method ;)
As for the querying... It's possible to enter any PubMed query (also for specific fields). Try for example something like:
((tomron[Author]) AND ("2018/01/01"[Date - Create] : "3000"[Date - Create])) AND PubMed[Title]
(which will get you all articles published after the first of January 2018 (until now), by you with "PubMed" in the title)
Tip: Use the "advanced" query builder on the PubMed website and copy the query to your code for deeper analysis of the articles.

Super, thanks


Return WMS layer names in the order defined in the WMS

I'm currently working on a project where the order of WMS layers is important (as it is used for display order on a map).
The current wms.contents implementation uses an unordered dictionary. An OrderedDict should allow order to be retained and not require any other code changes.
It does however require Python 2.7

Just seen OrderedDict is used elsewhere.
Import should be from owslib.util import OrderedDict

@geographika thanks for this.  Can we fix the associated test failures?

@tomkralidis I think several of the test failures are due to other issues.
For example the csw_conterra test has HTTP errors as it tries to access https://gateway.ceh.ac.uk/soapServices/CSWStartup which no longer exists (the URL redirects).
I have fixed 3 tests where the wms.contents checks for type dict rather than <class 'collections.OrderedDict'>

Thanks @geographika.  I can't seem to be able to merge.  Any chance you can rebase this against master or issue a fresh pull request?

@tomkralidis I think the relevant tests had been fixed since my pull request. Other failing tests are due to old URLs.

@geographika I still had issues merging this.  I cleaned up your changes and merged in #259.  Let me know if something if off.  Closing.

@tomkralidis - all looks good thanks! I had a merry dance of rebasing, merging, and playing with tox on Windows and ended up in a complete mess.


Move MergeInteractions point optimizer out of cirq.google

This is blocked until #824 is fixed.

Unblocked now.


How to revoke token after logout ?

Hi there,
How to revoke token after logout ?
I saw this module but it is available for express-jwt module:
https://github.com/layerhq/express-jwt-blacklist

👋  Take a look to:
https://github.com/auth0/node-jsonwebtoken/issues/103
https://github.com/auth0/node-jsonwebtoken/issues/99


Discarding Work Version in PURL Reserved state causes Error

When a work version is in purl_reserved state and the Discard draft button is click, re-routing to the dashboard causes the following HoneyBadger error: https://app.honeybadger.io/projects/77112/faults/76781151.

I'm not sure one should be able to discard a registered purl, because we have no way of de-registering a PURL.   I'd like @amyehodge and @andrewjbtw  to weigh in on how we ought to resolve this.

@jcoyne @jermnelson @andrewjbtw We have always allowed users to discard registered items in Hydrus. This seems equivalent to me. Users then no longer see these items in the application. However, I'm not clear on what happens to them on the back end, since they already have a druid assigned. Andrew would need to speak to that.
But, in short, yes, people will change their minds about needing these sometimes, and we want them to be able to clear them out of H2, whatever that means on the back end.

we want them to be able to clear them out of H2

Why do people want to clear them out? Won't they just use what they've already registered next time they need a druid?

A reserved Purl isn't a purl yet, it's just a registered druid. On the SDR/Fedora side, discarding it is the equivalent to purge. I think in Hydrus, discarding also must have had the extra steps of clearing the Hydrus index and the data folder on the hydrus filesystem if any files had been uploaded before the discard.

Apologies, I've been  using the wrong terminology.  We have no way to unregister a druid.  Do we want to create a bunch of druids that are never used yet we still have to keep track of?

Why do people want to clear them out? Won't they just use what they've already registered next time they need a druid?

I actually laughed out loud at this. This has not been our experience.


GitlabCI: Danger fail when running on a PR

Report
What did you do?
We have Danger set up to run with GitlabCI every time on a pull request.
What did you expect to happen?
Danger should works without runtime error.
What happened instead?
bundler: failed to load command: danger (/Users/builder/.rbenv/versions/2.5.0/bin/danger)
Gitlab::Error::Parsing: The response is not a valid JSON
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gitlab-4.4.0/lib/gitlab/request.rb:37:in `rescue in decode'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gitlab-4.4.0/lib/gitlab/request.rb:34:in `decode'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gitlab-4.4.0/lib/gitlab/request.rb:16:in `parse'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gitlab-4.4.0/lib/gitlab/request.rb:10:in `block in <class:Request>'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/httparty-0.16.2/lib/httparty/request.rb:391:in `parse_response'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/httparty-0.16.2/lib/httparty/request.rb:359:in `block in handle_response'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/httparty-0.16.2/lib/httparty/response.rb:25:in `parsed_response'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gitlab-4.4.0/lib/gitlab/error.rb:39:in `build_error_message'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gitlab-4.4.0/lib/gitlab/error.rb:16:in `initialize'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gitlab-4.4.0/lib/gitlab/request.rb:64:in `exception'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gitlab-4.4.0/lib/gitlab/request.rb:64:in `raise'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gitlab-4.4.0/lib/gitlab/request.rb:64:in `validate'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gitlab-4.4.0/lib/gitlab/request.rb:44:in `block (2 levels) in <class:Request>'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gitlab-4.4.0/lib/gitlab/client/merge_requests.rb:29:in `merge_requests'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/danger-5.6.2/lib/danger/ci_source/gitlab_ci.rb:42:in `determine_merge_request_id'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/danger-5.6.2/lib/danger/ci_source/gitlab_ci.rb:31:in `validates_as_pr?'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/danger-5.6.2/lib/danger/danger_core/environment_manager.rb:15:in `pr?'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/danger-5.6.2/lib/danger/danger_core/executor.rb:62:in `validate_pr!'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/danger-5.6.2/lib/danger/danger_core/executor.rb:46:in `validate!'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/danger-5.6.2/lib/danger/danger_core/executor.rb:21:in `run'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/danger-5.6.2/lib/danger/commands/runner.rb:68:in `run'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
  /Users/builder/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/danger-5.6.2/bin/danger:5:in `<top (required)>'
  /Users/builder/.rbenv/versions/2.5.0/bin/danger:23:in `load'
  /Users/builder/.rbenv/versions/2.5.0/bin/danger:23:in `<top (required)>'

Your Environment

Which CI are you running on?
GitlabCI

Are you running the latest version of Danger?
Yes, 5.6.2

What is your Dangerfile?
# Warn when there is a big PR
warn("Big PR") if git.lines_of_code > 500

swiftlint.lint_files

@oderkach have you set-up DANGER_GITLAB_API_TOKEN variable in the CI Variables configuration?

@brodock Yes. By the way it works correctly with version 5.5.13.

this seems to live entirely in the gitlab gem, maybe it needs an update, or that the version of the API you have deployed is giving unexpected results

I think the bug is located in gitlab_ci.rb line 42:
merge_requests = client.merge_requests(project_path, state: :opened)
According to Gitlab API documentation - List project merge requests the parameter must be the project id and not the project path.
Seems that the bug was introduced by commit e78cb621d8855cc43342a77e8fc62a8098a10637

Hi, I have been experiencing same problem using Bitrise on my company's Hosted Gitlab and after a lot of research, I've noticed that when running locally with Bitrise CLI it works!
Finally I think I have found the root of the problem and is this: https://gitlab.com/gitlab-org/gitlab-ce/issues/35079
Hope can help someone else.


Create popup window

Hi,
In this pull request, create the pop-ups by following the instructions below:

You need to use a JavaScript array to store all of the information for all projects.
For each project you need to store the following pieces of data in a JavaScript object, at a minimum: name, description, featured image, technologies, link to live version, and link to the source.
You need to update the main page so that the projects section is created dynamically using the information stored in that JavaScript object. Remember, all of the HTML in that section is created when the page loads.
After that, you could implement the popup window.
When the user clicks (or taps) the button to check project details, the popup with details about the project appears.
When the user clicks (or taps) the close (X) button, the popup disappears.

Thanks @zainsadaqat


ENH: tune suggested naming for the surface to folloe BEP011

As it is currently in the text, it follows no convention and introduces problematic
_double_suffix.  There is also a "Talairach" subject, which suggests that may be it
was desired to have the same subject in the Talairach space? (so _space-Talairach)?
attn @sappelhoff

Hey @yarikoptic I am not an expert on this, but @dorahermes and @choldgraf wrote the example text (I think). Perhaps you can tag some other "space" experts?
Only comment I have: It may not be the best idea to include formatting from BEPs. In your proposed changes you refer to BEP011 --> given that a BEP is WIP work this seems a bit volatile.

Without reference to BEP it just includes an example which follows no convention (although it is in derivatives/ so could be argued that it is ok as is, but into better to follow some convention than none)

For iEEG data the electrode positions needed to be in the raw data, since these are essential for the data to be useful/interpretabl, in iEEG acquiring electrode positions is like image reconstruction for MRI. Electrode locations are most commonly obtained by integrating data from a CT, MRI, X-ray, or operative photo. Dependent on the method people use to obtain the positions, they roll out of the analysis packages in millimeter units in native space relative to a particular MRI or CT scan, in Talairach space, in pixels relative to an operative photo or in MNIxxx space. The _coordinatesystem.json clarifies this space and the intendedFor field specifies the image. At the time the iEEG spec was merged, it was decided that this image had to exist, but could live in the derivatives if it was not yet part of the main spec (e.g. Talairach/MNI). That is why the examples have the Talairach surface in the derivatives: it has to exist, but if it is not part of the main spec.
For the derivatives, we followed the suggested naming at the time. This naming scheme with Talairach has been implemented in some examples and is suggested here. We should change the suggestions when the BEP011 gets to a stable state and is close to being merged (otherwise we keep changing this example and the spec along with BEP011). I am ok with changing the suggestions if you think this part of BEP011 is stable.
Including @robertoostenveld because we had several conversations about this topic.
Can you clarify the issue with the double suffix?

Re double suffix: eg it is in sub-01_T1w_pial.R.surf.gii it is _T1w and then second _pial. Afaik nowhere in bids and unlikely in any derivative we have two suffixes.

I see, again, I think it is good to update the suggestion when the BEP011 is stable. Currently BEP011 states the following template:
<pipeline_name>/
sub-<participant_label>/
func|anat|dwi/
<source_file>_hemi-{L|R}[space-][surftype].surf.gii
what should <source_file> be
(a) sub-<>_ses-<>
(b) sub-<>_ses-<>_T1w
BEP011 currently enters (a), but this is actually not the full <source_file> and not completely unambiguous.

The use of a double suffix as in sub-01_T1w_pial.R.surf.gii in incorrect and should be fixed IMHO regardless of BEP011. It is not that BEP011 is going to introduce double suffixes.
Since the double suffix is only used in an example, I propose to update that example to something which is currently BIDS compliant, or to remove that example all-together.
Had BEP011 been merged in the spec, then we could have used an example that uses it. But right now we cannot. A dataset that claims compliance with BIDS v1.3 (current, or 1.2 that introduced iEEG AFAIK) cannot use BEP011 terminology. The spec must be internally consistent.

I created a pull request on the bids-examples that used the double suffix in the _coordsystem.json files:
see #183 corrections to remove double suffix in _coordsystem.jon

...
BEP011 currently enters (a), but this is actually not the full <source_file> and not completely unambiguous.

IMHO it should follow BEP003 in this and use <source_keywords> and then place old suffix into _desc- field:

Details from BEP003 (#265)
-   Each Derivatives filename MUST be of the form:
    `<source_keywords>[_keyword-<value>]_<suffix>.<ext>`
    (where `<value>` could either be an `<index>` or a `<label>` depending on
    the keyword)

-   When the derivatives chain involves outputs derived from a single raw input,
    `source_keywords` MUST be the entire source filename, with the omission of
    the source suffix and extension. One exception to this rule is filename
    keywords that are no longer relevant. Depending on the nature of the
    derivative file, the suffix can either be the same as the source file if
    that suffix is still appropriate, or a new appropriate value selected from
    the controlled list.

-   There is no prohibition against identical filenames in different derived
    datasets, although users should be aware of the potential ambiguity this can
    create and use the sidecar JSON files to detail the specifics of individual
    files.

-   When necessary to distinguish two files, the `_desc-<label>` keyword-value
    should be used. This includes the cases of needing to distinguish both
    differing inputs and differing outputs (e.g., `_desc-T1w` and `_desc-T2w` to
    distinguish brain mask files derived from T1w and T2w images; or `_desc-sm4`
    and `_desc-sm8` to distinguish between outputs generated with two different
    levels of smoothing).


Unification of Flow Types not typing correctly

Hello, I created a function called match that takes in an array of tuples that, when identified, will execute the matching function. For example:
type Fn1<A, B> = (a: A, ...rest: empty[]) => B;
declare export function match<A>(
  xs: Array<[Class<A>, (x: A) => mixed]>,
  ...rest: empty[]
): Fn1<A, mixed>;

describe('match', () => {
    class FileExists {}
    class FileDoesNotExist {}
    let matcher: (x: FileExists | FileDoesNotExist) => mixed;

    beforeEach(() => {
      const whenFileExists = [FileExists, (x: FileExists) => x];
      const whenFileDoesNotExist = [FileDoesNotExist, (x: FileDoesNotExist) => x];
      matcher = match([whenFileExists, whenFileDoesNotExist]);
    });

    it('should return an instance of whenFileDoesNotExist', () => {
      // Should invoke the function in the tuple containing the FileDoesNotExist class
      expect(matcher(new FileDoesNotExist()) instanceof FileDoesNotExist).toBe(true);
    });
});

The problem seems to be that the types are being unified. I'm getting the following error:
1406: let matcher: (x: FileExists | FileDoesNotExist) => mixed; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileDoesNotExist. This type is incompatible with the expected param type of 1409: const whenFileExists = [FileExists, (x: FileExists) => x]; ^^^^^^^^^^ FileExists

test/fp.test.js:1406 1406: let matcher: (x: FileExists | FileDoesNotExist) => mixed; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileExists. This type is incompatible with the expected param type of 1412: (x: FileDoesNotExist) => x ^^^^^^^^^^^^^^^^ FileDoesNotExist

test/fp.test.js:1409 1409: const whenFileExists = [FileExists, (x: FileExists) => x]; ^^^^^^^^^^ FileExists. This type is incompatible with the expected param type of 1412: (x: FileDoesNotExist) => x ^^^^^^^^^^^^^^^^ FileDoesNotExist

test/fp.test.js:1409 1409: const whenFileExists = [FileExists, (x: FileExists) => x]; ^ FileExists. This type is incompatible with the expected param type of 1412: (x: FileDoesNotExist) => x ^^^^^^^^^^^^^^^^ FileDoesNotExist

test/fp.test.js:1411 1411: FileDoesNotExist, ^^^^^^^^^^^^^^^^ FileDoesNotExist. This type is incompatible with the expected param type of 1409: const whenFileExists = [FileExists, (x: FileExists) => x]; ^^^^^^^^^^ FileExists

test/fp.test.js:1412 1412: (x: FileDoesNotExist) => x ^ FileDoesNotExist. This type is incompatible with the expected param type of 1409: const whenFileExists = [FileExists, (x: FileExists) => x]; ^^^^^^^^^^ FileExists

It was suggested that I use an existential type so that flow can infer the type. Something like this:
declare export function match<A>(
  xs: Array<[Class<*>, (x: A) => mixed]>,
  ...rest: empty[]
): Fn1<*, mixed>;

This does indeed get rid of the error. The problem is that it does not detect an error when it should. For example:
const whenFileExists = [FileExists, (x: FileExists) => x];
const whenFileDoesNotExist = [FileDoesNotExist, (x: string) => x]; // expect error here
matcher = match([whenFileExists, whenFileDoesNotExist]);
(matcher(new FileDoesNotExist()): mixed);

In the snippet above, I would expect flow to error on  [FileDoesNotExist, (x: string) => x] because the declaration specifies that the parameter x should be of type A, which is an instance of FileDoesNotExist, not a string. Is there anything I'm leaving out here?

We've found a way to make this work but it is not the most ideal. Please see this stack overflow post: http://stackoverflow.com/questions/42254782/how-to-prevent-flowtype-from-unifying-types/42276695#42276695

If you don't like the type inferred, you can provide explicit type arguments.


Git Repository could accept a path attribute

Environment

Python version: 3.6.2
Nautobot version: 1.2.1

Proposed Functionality
Git repository extension support a path attribute so the integration can integrate with other directories than the root one (that could be kept as default option for backwards compatibility)
Use Case
To give user more freedom to organize their Git repositories, instead of using the root folder of the repository by default, we could offer the option to provide a relative path in the repository to use as the reference for the integration.
Database Changes
New attribute in the model
External Dependencies
No expected

This sounds like it would create a lot of orchestration overhead the potential for conflicting versions based on multiple features accessing the same repo at the same time. I think we are unlikely to do anything with this now.


'only supports NHWC tensor format' in Conv3D on M1 Mac

Click to expand!
Issue Type
Support
Source
source
Tensorflow Version
2.8
Custom Code
No
OS Platform and Distribution
MacOS Monterey
Mobile device
No response
Python version
3.9
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
I am trying to run tensorflow on M1 Mac(installed via miniforge) and while fitting the model I am getting error for Invalid argument.
Can some one please help with that is wrong?
Below is the code which I am trying to run:

Code: To fit data using below.

model_1.fit(train_generator, steps_per_epoch=steps_per_epoch, epochs=20, verbose=1, callbacks=callbacks_list, validation_data=val_generator, validation_steps=validation_steps, class_weight=None, workers=1, initial_epoch=0)

The input format I am using is as below:

model_1 = Sequential() model_1.add(Conv3D(8,kernel_size=(3,3,3),padding='same',input_shape=(30, 120, 120, 3))) model_1.add(BatchNormalization()) model_1.add(Activation('relu'))

Standalone code to reproduce the issue
The error is as below:

`File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/keras/engine/training_generator_v1.py:202, in model_iteration(model, data, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch, mode, batch_size, steps_name, **kwargs)
199 break
201 # Setup work for each epoch.
--> 202 model.reset_metrics()
203 epoch_logs = {}
204 if mode == ModeKeys.TRAIN:

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/keras/engine/training_v1.py:1003, in Model.reset_metrics(self)
1001 metrics = self._get_training_eval_metrics()
1002 for m in metrics:
-> 1003 m.reset_state()
1005 # Reset metrics on all the distributed (cloned) models.
1006 if self._distribution_strategy:

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/keras/metrics.py:260, in Metric.reset_state(self)
258 return self.reset_states()
259 else:
--> 260 backend.batch_set_value([(v, 0) for v in self.variables])

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/util/dispatch.py:206, in add_dispatch_support..wrapper(*args, **kwargs)
204 """Call target, and fall back on dispatchers if there is a TypeError."""
205 try:
--> 206 return target(*args, **kwargs)
207 except (TypeError, ValueError):
208 # Note: convert_to_eager_tensor currently raises a ValueError, not a
209 # TypeError, when given unexpected types. So we need to catch both.
210 result = dispatch(wrapper, args, kwargs)

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/keras/backend.py:3829, in batch_set_value(tuples)
3827 assign_ops.append(assign_op)
3828 feed_dict[assign_placeholder] = value
-> 3829 get_session().run(assign_ops, feed_dict=feed_dict)

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/keras/backend.py:745, in get_session(op_input_list)
743 if not _MANUAL_VAR_INIT:
744 with session.graph.as_default():
--> 745 _initialize_variables(session)
746 return session

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/keras/backend.py:1193, in _initialize_variables(session)
1189 candidate_vars.append(v)
1190 if candidate_vars:
1191 # This step is expensive, so we only run it on variables not already
1192 # marked as initialized.
-> 1193 is_initialized = session.run(
1194 [variables_module.is_variable_initialized(v) for v in candidate_vars])
1195 # TODO(kathywu): Some metric variables loaded from SavedModel are never
1196 # actually used, and do not have an initializer.
1197 should_be_initialized = [
1198 (not is_initialized[n]) and v.initializer is not None
1199 for n, v in enumerate(candidate_vars)]

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/client/session.py:967, in BaseSession.run(self, fetches, feed_dict, options, run_metadata)
964 run_metadata_ptr = tf_session.TF_NewBuffer() if run_metadata else None
966 try:
--> 967 result = self._run(None, fetches, feed_dict, options_ptr,
968 run_metadata_ptr)
969 if run_metadata:
970 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/client/session.py:1190, in BaseSession._run(self, handle, fetches, feed_dict, options, run_metadata)
1187 # We only want to really perform the run if fetches or targets are provided,
1188 # or if the call is a partial run that specifies feeds.
1189 if final_fetches or final_targets or (handle and feed_dict_tensor):
-> 1190 results = self._do_run(handle, final_targets, final_fetches,
1191 feed_dict_tensor, options, run_metadata)
1192 else:
1193 results = []

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/client/session.py:1368, in BaseSession._do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)
1365 return self._call_tf_sessionprun(handle, feed_dict, fetch_list)
1367 if handle is None:
-> 1368 return self._do_call(_run_fn, feeds, fetches, targets, options,
1369 run_metadata)
1370 else:
1371 return self._do_call(_prun_fn, handle, feeds, fetches)

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/client/session.py:1394, in BaseSession._do_call(self, fn, *args)
1389 if 'only supports NHWC tensor format' in message:
1390 message += ('\nA possible workaround: Try disabling Grappler optimizer'
1391 '\nby modifying the config for creating the session eg.'
1392 '\nsession_config.graph_options.rewrite_options.'
1393 'disable_meta_optimizer = True')
-> 1394 raise type(e)(node_def, op, message)

InvalidArgumentError: Node 'training/Adam/gradients/gradients/dropout_1/cond_grad/StatelessIf': Connecting to invalid output 1 of source node dropout_1/cond which has 1 outputs. Try using tf.compat.v1.experimental.output_all_intermediates(True).`

Relevant log output
No response

Hi @mj-mayank,
In order to expedite the trouble-shooting process, could you provide the complete code to reproduce the issue reported here.Thank you!

Hi @mj-mayank,
In order to expedite the trouble-shooting process, could you provide the complete code to reproduce the issue reported here.Thank you!

This is the complete code. Could you please elaborate on what is needed for complete code?

@mj-mayank,
I was facing a different issue while trying to execute the given code. Kindly find the gist of it here and provide the complete code to reproduce the issue. Thank you!

@tilakrayal below is the full code:
`#input_shape = (30, 100, 100, 3)
#write your model here
model_1 = Sequential()
model_1.add(Conv3D(8,kernel_size=(3,3,3),padding='same',input_shape=(30, 120, 120, 3)))
model_1.add(BatchNormalization())
model_1.add(Activation('relu'))
model_1.add(Conv3D(16, (3, 3, 3), padding='same'))
model_1.add(Activation('relu'))
model_1.add(BatchNormalization())
model_1.add(MaxPooling3D(pool_size=(2, 2, 2)))
model_1.add(Conv3D(32, (2, 2, 2), padding='same'))
model_1.add(Activation('relu'))
model_1.add(BatchNormalization())
model_1.add(MaxPooling3D(pool_size=(2, 2, 2)))
model_1.add(Conv3D(64, (2, 2, 2), padding='same'))
model_1.add(Activation('relu'))
model_1.add(BatchNormalization())
model_1.add(MaxPooling3D(pool_size=(2, 2, 2)))
model_1.add(Conv3D(128, (2, 2, 2), padding='same'))
model_1.add(Activation('relu'))
model_1.add(BatchNormalization())
model_1.add(MaxPooling3D(pool_size=(2, 2, 2)))
Flatten layer
model_1.add(Flatten())
model_1.add(Dense(1000, activation='relu'))
model_1.add(Dropout(0.5))
model_1.add(Dense(500, activation='relu'))
model_1.add(Dropout(0.5))
#Softmax layer
model_1.add(Dense(5, activation='softmax'))
optimiser = tf.keras.optimizers.SGD(lr=0.001, decay=1e-6, momentum=0.7, nesterov=True) #write your optimizer
#optimiser = tf.keras.optimizers.Adam(lr=0.001)#write your optimizer
model_1.compile(optimizer=optimiser, loss='categorical_crossentropy', metrics=['categorical_accuracy'])
print (model_1.summary())
train_generator = generator(train_path, train_doc, batch_size)
val_generator = generator(val_path, val_doc, batch_size)
model_name = 'model_init' + '' + str(curr_dt_time).replace(' ','').replace(':','') + '/'
if not os.path.exists(model_name):
os.mkdir(model_name)
filepath = model_name + 'model-{epoch:05d}-{loss:.5f}-{categorical_accuracy:.5f}-{val_loss:.5f}-{val_categorical_accuracy:.5f}.h5'
checkpoint = ModelCheckpoint(filepath, monitor='val_loss', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=1)
LR = ReduceLROnPlateau(monitor='val_accuracy',
patience=5,
verbose=1,
factor=0.5,
min_lr=0.00001)# write the REducelronplateau code here
callbacks_list = [checkpoint, LR]
if (num_train_sequences%batch_size) == 0:
steps_per_epoch = int(num_train_sequences/batch_size)
else:
steps_per_epoch = (num_train_sequences//batch_size) + 1
if (num_val_sequences%batch_size) == 0:
validation_steps = int(num_val_sequences/batch_size)
else:
validation_steps = (num_val_sequences//batch_size) + 1
model_1.fit(train_generator, steps_per_epoch=steps_per_epoch, epochs=20, verbose=1, callbacks=callbacks_list, validation_data=val_generator, validation_steps=validation_steps, class_weight=None, workers=1, initial_epoch=0)
`

@mj-mayank,
Thanks for opening this issue. Development of keras moved to another repository.
Could you please post this issue on keras-team/keras repo.
To know more please refer:
https://discuss.tensorflow.org/t/keras-project-moved-to-new-repository-in-https-github-com-keras-team-keras/1999
Thank you!

@tilakrayal opened issue at new reposatory:
https://github.com/keras-team/keras/issues/16694

@mj-mayank,
Could you feel free to move this issue to closed status, so that we can track the issue there. Thank you!


Add windows package targets

This will build an MSI installer for windows

Thank you for the pull request.
I didn't originally thinking of Windows OS due to many available email client can do the same job.
But very happy to see some Windows user interested in this project :)


Minecraft 1.20.2 support would be appreciated

fixed with: https://github.com/AnOpenSauceDev/FastRandom/commit/6688e13713ef3f53186a37ad908946b8d19fd407

released on modrinth now

Works on 1.20.2


[SourceKit][Refactor] Inject indentation when extracting methods

The method extraction refactoring is not taking the original range's indentation in consideration when generating the new strings. This has no effect on Xcode, but unformatted environments like SourceKit-LSP are affected:

These changes injects spaces to achieve the following result:

Note that this does not take tabs in consideration - I was unsure if that would be a problem or not given that this is supposed to assist environments that can't format input, but If that's important and there's no way to generate the "true" indentation string from SourceKit, then it's probably better to leave this unchanged.

@swift-ci please smoke test

Lost the failure info
@swift-ci please smoke test

Sorry for the delay, I've missed it too.
I've rebased the branch.

Can one of the admins verify this patch?

@swift-ci please smoke test

Please update the base branch to main by Oct 5th otherwise the pull request will be closed automatically.

How to change the base branch: (Link)
More detail about the branch update: (Link)


Restrict the syntax of relative paths.

Paths contained in a packet metadata need to be relative and as cross-platform as possible. In particular, we've settled on using forward slashes everywhere, even for packets produced on Windows.
While implementations should generally catch such invalid paths earlier on, having the restriction at the schema level will help catch anything that slipped through.
The regex used is roughly based on the Windows documentation. It isn't intended as a fully comprehensive list, eg. it does not reject the filenames NUL or COM1, nor does it forbid paths that contain . or ... POSIX allows anything except NULL bytes.
I also noticed the CI script was't effective: it was catching all exceptions, printing them and returning successfully always. I've fixed it by exiting with code 1 if any exception is raised, and also added a bit of validations to the schemas themselves.

This is a follow up from https://github.com/mrc-ide/outpack-py/pull/46#discussion_r1587564967

Ok clearly the regex isn't good yet, since the outpack CI freaks out


Update python sdk doc

/kind feature
Describe the solution you'd like

deprecate v1alpha2 python sdk docs
update SDK docs and examples with kserve api group
https://github.com/kubeflow/kfserving/tree/master/docs/samples/client

Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]

merged in #18


[WebToolsE2E][Aspire] Some contents in aspire dashboard are not localized in non-ENU OS.

REGRESSION

Not a regression in aspire 8.1.0 because this are new changes in aspire 8.2.0

INSTALL STEPS

Clean machine: Win11 x64 22h2 CHS
Install VS 17.12 Preview 3
Install Aspire 9.0 Preview 4

REPRO STEPS

Create Aspire Starter App
Build solution and F5

ACTUAL
In Resources module these are the contents that are not localized

The "Sort" & "Resize" option in [Type, Name, State, Start time]

The "Column width (in pixels) in [Source, Endpoints, Logs, Details]

EXPECTED
The new changes for the contents of aspire dashboard should be localized.

FYI - new comment added requesting this issue be closed.
https://github.com/dotnet/aspire/issues/5382#issuecomment-2371502601


Bug Announce by on topics.php

Describe the bug
Announce by on topics.php don't display the good information
Screenshots

I am checking this part.

not a bug display the last edit users not the author


Deleting a setter can disassociate another setter

Create setter spec.containers.imagePullPolicy:
$ kpt cfg list-setters .
    NAME        VALUE     SET BY   DESCRIPTION   COUNT   REQUIRED
  replicas    4                                  1       No
$ kpt cfg create-setter . spec.containers.imagePullPolicy Always
$ kpt cfg list-setters .
               NAME                   VALUE     SET BY   DESCRIPTION   COUNT   REQUIRED
  replicas                          4                                  1       No
  spec.containers.imagePullPolicy   Always                             1       No

Oops should have been spec.template.spec.containers.imagePullPolicy:
$ kpt cfg create-setter . spec.template.spec.containers.imagePullPolicy Always
$ kpt cfg list-setters .
                      NAME                          VALUE     SET BY   DESCRIPTION   COUNT   REQUIRED
  replicas                                        4                                  1       No
  spec.containers.imagePullPolicy                 Always                             0       No
  spec.template.spec.containers.imagePullPolicy   Always                             1       No

Let's delete spec.containers.imagePullPolicy:
$ kpt cfg delete-setter . spec.containers.imagePullPolicy

Oh no, it disassociated spec.template.spec.containers.imagePullPolicy (count is now 0):
$ kpt cfg list-setters .
                      NAME                          VALUE     SET BY   DESCRIPTION   COUNT   REQUIRED
  replicas                                        4                                  1       No
  spec.template.spec.containers.imagePullPolicy   Always                             0       No

@wpwoodjr This issue has been fixed. You can expect the fix in the next kpt release.
kubernetes-sigs/kustomize#2855


gowalker.org ssl certificate expired

Hi,
It appears gowalker.org certificate has expired
echo "quit" | openssl s_client -servername gowalker.org -connect gowalker.org:443 2>&1 | openssl x509 -text | egrep 'Not (After|Before)'
Not Before: Apr 15 16:02:54 2015 GMT
Not After : Apr 15 11:55:49 2016 GMT
At the time of writing the date is: Tue Apr 19 00:33:41 UTC 2016

It's been resolved.
echo "quit" | openssl s_client -servername gowalker.org -connect gowalker.org:443 2>&1 | openssl x509 -text | egrep 'Not (After|Before)'
Not Before: Apr 20 17:15:00 2016 GMT
Not After : Jul 19 17:15:00 2016 GMT


[WIP][AIRFLOW-2625] [AIRFLOW-2616] Implements an API to fetch all DAGs

This PR is WIP.
Opened this PR for community approval to use MethodView instead of developing APIs using functional views. It would help in organizing the APIs using modular approach, else our endpoints.py file will eventually grow bigger, and hard to maintain.
Make sure you have checked all steps below.
JIRA

[ ] My PR addresses the following Airflow JIRA issues and references them in the PR title.

Description

[ ] Here are some details about my PR, including screenshots of any UI changes:
It adds a basic functionality of an API to get all DAGs and the count using the MethodView. I still need to add the searching/filtering and ordering features for this endpoint.

Tests

[ ] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[ ] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[ ] In case of new functionality, my PR adds documentation that describes how to use it.

When adding new operators/hooks/sensors, the autoclass documentation generation needs to be added.

Code Quality

[ ] Passes git diff upstream/master -u -- "*.py" | flake8 --diff

@Fokko @kaxil can you please take a look?

Codecov Report

Merging #3520 into master will decrease coverage by 0.03%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master    #3520      +/-   ##
==========================================
- Coverage   77.43%   77.39%   -0.04%
==========================================
  Files         204      207       +3
  Lines       15198    15238      +40
==========================================
+ Hits        11768    11793      +25
- Misses       3430     3445      +15

Impacted Files
Coverage Δ

airflow/api/common/experimental/get_dag_runs.py
100% <100%> (ø)
:arrow_up:

airflow/www_rbac/api/experimental/endpoints.py
92.04% <100%> (+0.09%)
:arrow_up:

airflow/models.py
88.08% <50%> (-0.08%)
:arrow_down:

airflow/www_rbac/api/experimental/views/dags.py
58.33% <58.33%> (ø)

airflow/www_rbac/api/experimental/base.py
63.15% <63.15%> (ø)

airflow/api/common/experimental/dags.py
80% <80%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ecf68c7...0760bce. Read the comment docs.

@verdan can you please test this om your own github repo? Apache Infra asked us to use less of  travis time. Thanks

@feng-tao I believe the API of FAB is still in beta and subject to change in future. Also, most of the DAG's functionality in Airflow is custom written and not actually using the ModelView. That means, you'd need to overwrite most of the base functions of ModelView along with the filters and widgets.

hey @verdan , I am not aware of BETA for FAB API. But it works pretty well for me. And given airflow api is also experimental, I think they are considered equally readiness.
I am wondering how you use the airflow api stuffs(or how does your deployment looks like)? Are you going to deploy two webservers, one serves UI and another serves api? Consolidate the api into modelView(once FAB becomes default UI) will be better imo. In that case UI, cli, api request could all serve by FAB model CRUD instead of two different places.

@feng-tao totally agreed that there should be only one source of truth for all UI, CLI and API. I'll explore the FAB CRUD more, and see if we can convert all of our views to ModelView.
To answer your question about the usage of airflow apis, I am trying to write REST APIs for all features of Airflow, in an effort to port the frontend (Web UI) in ReactJS (or any other framework, that's still an ongoing discussion), so that our javascript code is more manageable and testable.
ref: https://issues.apache.org/jira/browse/AIRFLOW-2598
In that setup, I see no use of FAB UI and FAB's CRUD, but just to keep the backward compatibility. thoughts?

hey @verdan , you mean setup discussed in https://issues.apache.org/jira/browse/AIRFLOW-2598?

@feng-tao, yes. I mean that if I use ReactJS with RestAPIs, what’d be the need of FAB’s CRUD in that case


Jira Export step is generating messages "Rendered field customfield_11111 contains unparsable type Null, using text"

I'm trying to migrate Custom Jira fields to Custom ADO fields using the Community tool. Having switched Debug on, I've noticed that the Jira export step produces the message "Mapped value 'Jira-field-content' to field 'ADO-field-name' " when everything's OK.
However, for most (all?) of the Custom Jira fields I'm trying to migrate to ADO, I'm seeing the message "Rendered field customfield_11111 contains unparsable type Null, using text". When that message is generated

the positive 'Mapped value...' message doesn't appear, and
those fields aren't migrated to ADO

Can anyone provide some guidance on anything we need to do in Jira, to address whatever problem is generating the messages "Rendered field .... contains unparsable type Null, using text" ?
Tool version

Jira Exporter v3.0.356

Attachments
jira-export-log-240220-111416.txt
wi-import-log-240220-113011.txt
config-scrum(COPY).json
Please attach the following files:

config.json
jira-export-log.txt
wi-import-log.txt

I see in your config that you have mapped a lot of custom data by name, without specifying "source-type": "name" in the field map. Could that be the issue maybe?
See https://github.com/solidify/jira-azuredevops-migrator/blob/master/docs/faq.md#3-how-to-map-custom-field

Hi Alexander. I'd like to express my sincere thanks for responding so quickly - and identifying the actual problem!


Could you release the dataset that you have selected in the paper?

I would like to reproduce the results in the paper. However, the dataset in the paper is selected from the public dataset by you. It's hard for me to reproduce the results in the paper without the dataset that you have selected.
Thanks a lot.

Hi, do you know how to evaluate if this method works after generating the adversarial masks to the image?
Thanks!


Not Working with new spotify update

i opned my laptop in the morning clicked spotify and it updated itself...after that the visualizer is not working anymore

Whenever you are using spicetify-cli and there is a spotify update, you must go apply the backup in your console. Open whichever console cmd/power shell you used to setup the spicetify-cli program and type
spicetify backup apply
then everything should work again

i havent ever done this prior to today but after multiple tries and reinstallations im not getting spotify connection

You didn´t tell us what´s the reported issue ... Perhaps, this recent patch could be of help. More info. about here. Hope this helps!


Gradient 0 with jax.scipy.ndimage.map_coordinates

I am trying to do a simple rigid registration using jax. My code for doing this is -
def rigid_imx_loss( tx):
    w, h = p1.shape
    origin = (w//2, h//2)
    x0 = jnp.arange(0, w, 1)
    x1 = jnp.arange(0, h, 1)
    X0, X1 = jnp.meshgrid(x0, x1)
    pts = jnp.asarray([X1.ravel(), X0.ravel()]).T
    translate = jnp.asarray([0, tx])
    pts_tx = pts + translate.T
    out = map_coordinates(p1, pts_tx.T, order = 1).reshape(w, h)
    return jnp.mean((out-p2)**2)

Getting the grad by doing
tx_grad = grad(rigid_imx_loss)(tx) always returns 0
When I plot the two images the translation part of the code seems to be working. i.e. the image does appear shifted compared to the original image. However my gradient wrt to tx is always 0. I tested it over a range of tx values and while the loss seems to be different the gradient remains 0 regardless.

Not related to the gradient problem, but fyi: Optimizing the shift wrt. the L2 norm is biased towards half-pixel shifts (source, not mine ^^), because the interpolation reduces noise. I think you see this in you cost function plateauing at half-pixel shifts.

Thanks for the report! Could you kindly share the source code for a complete example that I could run to reproduce the issue?

Hey im sorry i think i fixed the issue the images i was passing into the grad function were uint32 type when i change the type to float32 it seems to work i.e. I don't get zero-gradients. Feel free to close if this solution seems correct.

Well, linear interpolation on integer valued arrays should still produce continuous valued outputs, so probably there should be non-zero gradients with respect to the coordinares. An example would still be helpful!

`
import jax
import jax.numpy as jnp
from jax import grad
import numpy as np
from jax.scipy.ndimage import map_coordinates
p1 = np.random.randint(low = 0, high = 255, size =(256, 256))
p2 = np.random.randint(low = 0, high = 255, size =(256, 256))
def rigid_imx_loss( tx):
w, h = p1.shape
origin = (w//2, h//2)
x0 = jnp.arange(0, w, 1)
x1 = jnp.arange(0, h, 1)
X0, X1 = jnp.meshgrid(x0, x1)
pts = jnp.asarray([X1.ravel(), X0.ravel()]).T
translate = jnp.asarray([0, tx])
pts_tx = pts + translate.T
out = map_coordinates(p1, pts_tx.T, order = 1).reshape(w, h)
return jnp.mean((out-p2)**2)
tx = 10.
grad(rigid_imx_loss)(tx)
p1 = p1.astype("float32")
p2 = p2.astype("float32")
grad(rigid_imx_loss)(tx)0
`
This reproduces the error

Well, linear interpolation on integer valued arrays should still produce continuous valued outputs, so probably there should be non-zero gradients with respect to the coordinares. An example would still be helpful!

jax.scipy.ndimage.map_coordinates outputs integer values for integer inputs which explains the zero gradient. Unfortunately there doesn't seem to be a way to omit the rounding to integers.


Private Fields: Avoid strict prefix match

Testing https://github.com/microsoft/vscode/issues/89387.
class Square {
    #sideLength: number;

    method1() {
        side<CARET>
    }
}

When invoking completions at  I'd expect to get  #sideLength as the first match, but it's not listed at all.

Fixed by 58fe34bb77aae5b596559d6dfe3cb81772e1dfca
Note that all of the following  should not insert this.#xyz
class A {
  #xyz = 1;

  foo() {
    xy|
    #xy|
    this.xy|
    this.#xy|
  }
}


Range slider - minimum value not working if set to different value but 0

I'm trying to specify a range 18-60.

(void) configureAgeSlider
{
age_slider.minimumValue = 18;
age_slider.maximumValue = 60;
age_slider.lowerValue = 18;
age_slider.upperValue = 60;
age_slider.minimumRange = 10;
}

Things didn't went the way it supposed to.
At first this happened. The view width I placed on xib is the ideal with I want the slider to have but after running the slider exceeded the the view.

I tried decreasing the width and so it fit. As you can notice instead of 18 as the minimum value it is stuck to 1 and I can't even drag it.

The maximum value is fine and thus can be dragged up to the minimum value I set which is 18.

)
Can someone fix it or does this library only really works for 0 -100 range

Oh dang!  Thought I was going crazy.  Agreed, this should be in README.  Awesome slider, though!

@teffi If you want to use it in auto layout please set "setTranslatesAutoresizingMaskIntoConstraints:" Yes  for your label. It will fix that flicker issue.


Video-based tracker performance bottleneck

Multiple profilers have identified this line as being a "hot line" and a major performance impact in the plugin:
https://github.com/OSVR/OSVR-Core/blob/master/plugins/videobasedtracker/HDKLedIdentifier.cpp#L125
Barring finding the rotation-invariant pattern match function I thought I knew of from undergrad, we should at least modify it so that rotate call isn't there - it's taking at least 6-10% of the server's total cpu usage.

Okay, I think I know how to make it faster.  Should be able to make a long string that has almost two copies of the data and then use the standard substring call to see if we find it internally; someone will have optimized the heck out of that call, presumably.

Oh, right, of course - thanks for thinking of the thing I couldn't think of...

Fixed in a pull request along with developer info.


[FLINK-4714] [runtime] [streaming] Set task state to RUNNING after state has been restored

The changes in this PR are

add open() method in AbstractInvokable to let the invokable can be initialized during DEPLOYING state in Task. The default behavior is do nothing.
separate invokable.invoke() into invokable.open() and invokable.invoke() in Task, and transit task state from DEPLOYING to RUNNING between them.
TaskCanceler should be used to cancel the invokable in DEPLOYING state because invokable might be called in that state now.
update StreamTask and StreamTaskTestHarness to solve this issue in FLINK-4714

The PR does not contain any tests which are important for these changes. I'll review your code once you've added tests.

OK, I will add some tests to verify the correctness of these changes. Thank you.

I would suggest to do the change differently. Right now, all the task logic is pretty complex as it is, and this makes it even more complex.
My suggestion would be to

Change the AbstractInvokable to not have a zero-argument constructor, but only one which takes an Environment
Change the creation of the invokables to call that constructor, update all the tests
Change the StreamTask to do its initialization of everything in the constructor. That way, we also avoid all the NullPointerException

That way, transitioning to RUNNING just before calling invoke() will fix the issue.
If you want to follow up on this, I would suggest to make individual pull requests for (1,2) and (3)

Hi @StephanEwen
This suggestion seems to use constructor to set Environment instead of using setEnvironment(env) method and may not need it any more.
Use the constructor to initialize other setting after Environment has been set up if those are needed to be set up before invoke(). For example: StreamTask.
If I misunderstand anything, please correct me. Thank you.

Yes, the setEnvironment() method will not be needed any more.

Hi @StephanEwen
I think this approach is cleaner than I do.
However, what I am concerned is that setEnvironment() method can be inherited by AbstractInvokable's subclass but constructor can't. It means all subclasses need to implement this constructor and that is not enforced to do so.
Although we can update all subclasses with an one-argument constructor which takes env only, I think it is not safer than setting env by calling a final method.
What do you think? If there is any mistake in my words, please tell me as well. Thank you.

Yes, we should update all subclasses with the one-argument constructor. If the AbstractInvokable does not have a zero-argument constructor any more, all subclasses will be forced to call the one-argument constructor.

Hi, @StephanEwen
I mean although all subclasses will be forced to call the one-argument constructor, it doesn't force all subclasses need to have the one-argument constructor. It seems not intuition to add an one-argument constructor if there is another requirement for a new subclass.
However, tests might help us find out this mistake. Maybe it is not a problem.
One more question, StreamTask needs setInitialState() to initialize itself as well. Will that be okey to make the subclass of both AbstractInvokable and StatefulTask to have two-arguments constructor and remove setInitialState() method?
If it works fine for you and @tillrohrmann, I have no more question.
Please help me create a JIRA task for (1, 2). I will pend this PR until I have finished that task and redo it as (3). Thank you.

@tony810430 That's a good idea, let's have a two argument constructor with Environment and TaskStateHandles .
The AbstractInvokable and its subclasses are a very low level internal API. It is okay if we make this a "contract" that they need this constructor - runtime will fail the task otherwise.
In fact, there are only two main implementations of the AbstractInvokable: ``StreamTaskandBatchTask`, with some subclasses. That is okay to manage.
The benefit of having eager initialization of fields and state is much higher than the burden to add the constructor.

+1 for the described changes :-)

Thank all of you for your help.
I will block this PR for now, and refresh it once I have finished refactoring AbstractInvokable and StatefulTask.

@tony810430 I think we can drop the interface StatefulTask and just assume every task is stateful. The BatchTask can throw an error, if it gets a non-null value for the state in the constructor.

@StephanEwen
How about using AbstractInvokable.class.isAssignableFrom() and StatefulTask.class.isAssignableFrom() to check the loaded class?
Then, we can check if the TaskStateHandles is null out of constructor and call different constructor for two type of class.

@StephanEwen
BTW, I have opened a JIRA task for refactoring AbstractInvokable and StatefulTask. How about discussing this topic in FLINK-5982?

I'm closing this as "Abandoned", since there is no more activity and the code base has moved on quite a bit. Please re-open this if you feel otherwise and work should continue.


error compiling on OSX with Opencv 4.2.0

Describe the bug
error compiling on OSX with Opencv 4.2.0
To Reproduce
cd bgslibrary/build
cmake ..
make

Expected behavior
[  1%] Building CXX object CMakeFiles/bgslibrary_core.dir/src/algorithms/LBP_MRF/MEImage.cpp.o
In file included from /home/opencv/4.2.0_1/include/opencv4/opencv2/opencv.hpp:74,
                 from /home/bgslibrary/src/algorithms/LBP_MRF/MEImage.cpp:1:
/home/bgslibrary/src/algorithms/LBP_MRF/MEImage.cpp: In member function 'void bgslibrary::algorithms::lbp_mrf::MEImage::GradientVisualize(int, int)':
/home/bgslibrary/src/algorithms/LBP_MRF/MEImage.cpp:1287:64: error: could not convert 'cv::Scalar_<double>((double)255, (double)255, (double)255, (double)0)' from 'cv::Scalar' {aka 'cv::Scalar_<double>'} to 'CvScalar'
 1287 |             cvLine(ME_CAST_TO_IPLIMAGE(cvImg), Point1, Point2, CV_RGB(255, 255, 255), 1, 8);
      |                                                                ^~~~~~
      |                                                                |
      |                                                                cv::Scalar {aka cv::Scalar_<double>}
make[2]: *** [CMakeFiles/bgslibrary_core.dir/src/algorithms/LBP_MRF/MEImage.cpp.o] Error 1
make[1]: *** [CMakeFiles/bgslibrary_core.dir/all] Error 2
make: *** [all] Error 2

System information
macOS Catalina 10.15.3
Opencv 4.2.0
gcc 9.2 or clang 11(Both were tested)
Additional context
Add any other context about the problem here.

Hi @phenix-chen , thanks for opening this issue, I confirm the bug.
I am working on it.

Hi @phenix-chen I did a fix for this issue as you can see here https://github.com/andrewssobral/bgslibrary/pull/176
Please, let me know if it's working well for you.

Hi @phenix-chen I did a fix for this issue as you can see here #176
Please, let me know if it's working well for you.

I've compiled successfully now. Thanks.

Thank you @phenix-chen !

I have the same problem on Ubuntu now with the Opencv 4.4.0 when i run
pip install pybgs
System information
Ubuntu 18.04
Opencv 4.4.0
gcc 8.4.0

I have the same problem on Ubuntu now with the Opencv 4.4.0 when i run
pip install pybgs
System information
Ubuntu 18.04
Opencv 4.4.0
gcc 8.4.0

Hi, I am facing the same issue on Ubuntu 20.04 with OpenCV 4.2.0 when running
pip install pybgs

gcc version 9.3.0


GSD Request

--- GSD JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from v4.15 to before v4.19.223",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=b2cfd8ab4add53c2070367bfee2f5b738f51698d",
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=925229d552724e1bba1abf01d3a0b1318539b012"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "b2cfd8ab4add53c2070367bfee2f5b738f51698d",
      "note": "introduced"
    },
    {
      "type": "commit",
      "value": "925229d552724e1bba1abf01d3a0b1318539b012",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "ipmi: Fix UAF when uninstall ipmi_si and ipmi_msghandler module\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v4.19.223 by commit 925229d552724e1bba1abf01d3a0b1318539b012, it was introduced in version v4.15 by commit b2cfd8ab4add53c2070367bfee2f5b738f51698d. For more details please see the references link."
}
--- GSD JSON ---

This issue has been assigned GSD-2021-1002785


endpoint: move TestReadEpsFromDirNames to pkg/endpoint

The test was previously in `daemon`, and necessitated leaking a lot of
Endpoint-related state. Instead, refactor the test into the Endpoint package.
Do not regenerate the endpoints needed for testing; instead, write their
headerfiles using `writeHeaderfile`, since that is the operation which
is needed to be performed in order to perform the test to read the serialized
Endpoints from their corresponding headerfiles.
Signed-off by: Ian Vernon<EMAIL_ADDRESS>

This change is

test-me-please

test-me-please

Coverage decreased (-0.02%) to 44.115% when pulling b6d0081c75c9ff988467b55060224d5fcaf3e4f2 on pr/ianvernon/move-TestReadEPsFromDirNames-to-endpoint-pkg into 663041ef10b587e5ced69ca762da523e432de06b on master.

test-me-please

test-me-please


Require no AgentServiceConfigs to delete MCH

Issue: https://github.com/stolostron/backlog/issues/20380
Signed-off-by: Jakob Gray<EMAIL_ADDRESS>

/lgtm


CLI Flag "--user-data-dir" Has No Effect

Issue Type: Bug
Using the command line flag user-data-dir with many different configurations has no effect on the instance of VsCode.
I attempted to use empty directories as the user-data directory, copying the data directory from the installation directory and using custom directories with only some of the relevant files, such as settings.json and keybindings.json.
With the data directory copied from the vscode installation, I've attempted to use the data/user-data directory, the root data directory, as well as data/user-data/User directory, thinking that perhaps I misunderstood the meaning of "user-data-dir". For each of these I also attempted using absolute and relative paths, but to no avail.
@izznogooood mentions in #41429 that he had success using --user-data-dir=/some/directory, however this also had effect.
When the vscode instance is created, any modifications to user-data, such as to settings.json, or keybindings.json are reflected within the installation directory. In all of the mentioned attempts there were never any modifications to the directory specified, nor were the files from that directory ever used.
I've found that the --extensions-dir command line option works perfectly fine. The extensions are taken from and installed into the specified directory.
Thank you in advance for the help, it is much appreciated!
VS Code version: Code 1.33.0 (0dd516dd412d42323fc3464531b1c715d51c4c1a, 2019-04-04T15:08:57.775Z)
OS version: Linux x64 4.15.0-30-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz (4 x 1622)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwaresurface_synchronization: enabled_onvideo_decode: unavailable_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 0, 1

Memory (System)
7.67GB (0.32GB free)

Process Argv

Screen Reader
no

VM
0%

As a follow up, I've installed the vscode insiders edition in which the --user-data-dir option functions without any issue.

One other difference between the two installations is that the stable installation is using portable mode.

Is portable mode intended to prevent the modification of the user data directory?

Yes it is! --user-data-dir is not compatible with Portable mode, since it defeats the whole purpose of Portable.


Add segment merge-rollup task executor

add segment merge-rollup task executor
add the unit test for task executor

is this ready for review?

@snleee how can user configure this task? will it be part of tableconfig

@snleee @Jackie-Jiang can we merge this?

#2715


Death to "universities" [DUMPSTERveristies].  Death to them all.

This post is in response to the false & disrespectful claims made by some silly GitHub devs, who claimed to be "engineers" or be related to "engineering".
None of you GitHub devs are engineers, and will never even be close. There is no such thing as "software" "engineering".
 Stop being disrespectful to Engineering.
You know nothing about what Engineering entails. Engineering means designing, building and producing real mechanical systems, like turbojets and vehicular engines. It has nothing to do with sitting behind a keyboard and writing code. And it has absolutely NOTHING related with making or maintaining a website/platform. Software dev is easy and for kids. And it has absolutely nothing to do with a serious and real subject like Engineering (Mechanical Engineering is the ONLY Engineering). Ya'll are just trying to be wannabes and steal the name of engineering and attach falsely claim to be related to it (but you'll never come close to engineering). So quit making false claims against engineering.
Death to "universities" [DUMPSTERveristies].  Death to them all.
Mechanical Engineering is the ONLY Engineering. It has always been like that, and will remain like that forever, period.

This post is in response to the de faull & disrespectful claims made by some silly GitHub devs, who claimed to be "engineers" or be related to "engineering".
None of you GitHub devs are engineers, and will never even be close. There is no such thing as "software" "engineering".  Stop being disrespectful to Engineering.
You know no

Actually, maybe Electrical Engineering.

Don't send me for this, I don't Interested for your email and I'm not
engineering development, Lol
On Thu, 13 Jul 2023, 12:23 cindyg627, @.***> wrote:

Actually, maybe Electrical Engineering.
—
Reply to this email directly, view it on GitHub
https://github.com/github/training-kit/issues/968#issuecomment-1633565847,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQW3EH2QPQQWUESONQNP2PLXP6A5RANCNFSM6AAAAAAUTCNWJU
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Generators seem to not be working

This is in Chrome 45 which fully supports generators. This jsbin seems to not work.
A while(true) seems to break even though it has a yield in it

Tried with //noprotect?
On Tue, 8 Sep 2015 04:52 George Mauer<EMAIL_ADDRESS>wrote:

This is in Chrome 45 which fully supports generators. This jsbin seems to
not work http://jsbin.com/decovo/6/edit?js,console,output.
A while(true) seems to break even though it has a yield in it
—
Reply to this email directly or view it on GitHub
https://github.com/jsbin/jsbin/issues/2541.

That does work by the way. Might be a good idea to have that be a checkbox under options or mention it somewhere on the front page (in errors?)

Also when using ES6/Babel you need to add the poly fill to the HTML:
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.25/browser-polyfill.min.js"></script>

And to stop the linting errors add this to the JavaScript:
/*jshint esnext: true */

Code goes here

//noprotect


Built-in step types (Operators)

Operator (or step types)
Operators are predefined, composable step logic modules that can be used as building blocks for the pipeline.

Operator
Description
WhenReady
WhenStarting
Started(Working) When
Completes When
Notes

Sequence
Completes a series of steps in sequence
Marks first child ready
Starts the first child step
When first child is started
After the last step is completed

ParallelAnd
Run steps parallelly
Marks all children ready
Starts all children steps
Any of the children started
After all children are completed
supports dynamically adding/removing children tasks

ParellelReplica
Similar to Parallel, but all children tasks are the same configuration

Xor
Exclusive Or (Multiform)
Moves all children to Ready state
N/A
Any one child starts
After any child step completes
When one of the children is Working, request other children to pause; unpause if no one completes; Does not start proactively, requires children to be proactive

Interactive
Human input
Publishes to queue
N/A (cannot force start)
When assignment is accepted
When assignment submission is accepted

If
Performs a step only if a certain criterion is met
Checks the condition; if met, completes itself, otherwise make child Ready
N/A
Child is started
Condition is met or child completes

While

DoWhile

Step states

Uninitialized: Initial state
Initialized: Initialized. But is not yet allowed to start (e.g. previous step have not complete).
Ready:  Allowed to start working. Inputs are ready. Steps that require human input (Interactive) may move to Working state proactively; passive steps will wait for parent step to trigger.
Working: Actively doing work
Pausing: Has been requested to pause, but not paused yet.
Paused: Work is paused. For Interactive steps, assignments are aborted.
Stopped: Step has stopped (either completed or failed). An ExecutionResult should be available.

Implementation:

[X] Parallel
[X] Sequence
[ ] If
[ ] DoWhile
[ ] Xor


Move all main implementation into app package for all binaries

Because in Go you cannot import the main package, it makes it difficult in integration tests to build from source the dapr binaries from the previous version. With this change, in v1.14 we can import the app package and build the binaries from source for v1.13.
PR updates binaries to have a minimal main package that calls into the app package. PR has no functional changes.

LGTM - there are no changes in the code that was moved, right?

Correct, just the package import path.

@JoshVanL please fix the conflicts.

Good idea

/ok-to-test


Update update-dependencies.yml

Merge / deployment checklist

[x] Confirm this change is backwards compatible with existing workflows.
[x] Confirm the readme has been updated if necessary.
[x] Confirm the changelog has been updated if necessary.

#1545

#1079 Uploading IMG_0290.MOV…

Locking this PR since @mervyd is commenting spam. If you are looking to contribute something real, please open a new PR.


Pull releaseCertificateHandler out of Mesh Catalog into a separate package

Our MeshCatalog component is responsible for running mc.releaseCertificateHandler().
This GitHub issue is to carve out releaseCertificateHandler() into a new module and out of Mesh Catalog.
I propose we create a new package (not at all sure what we should call this) and move this function there.
I propose we change the function signature

from func (mc *MeshCatalog) releaseCertificateHandler() chan struct{} {
to func ReleaseCertificateHandler(proxyRegistry registry.ProxyRegistrar, certManager certificate.Manager) chan struct{} {

In essence - we remove this out of MeshCatalog and pass meshCatalog to it (which would become proxyRegistry after #3105)
I also propose we pass the certManager into this function so we don't need to use mc.certmanager

Because of the proposed changes in #3105 - I suspect that
if podIface, ok := mc.podUIDToCN.Load(podUID); ok {
may have to become
if podIface, ok := proxyRegistry.GetPodFromUID(podUID); ok {
at some point after #3105 is ready.
This is assuming that GetPodFromUID is as simple as
func (proxyRegistry *ProxyRegistry) GetPodFromUID(podUID types.UID) (interface{}, bool) {
	return proxyRegistry.podUIDToCN.Load(podUID)
}

but I am not sure that this is best - we can sophisticate this more if we need to.

Finally
If we are successful in converting mc.releaseCertificateHandler into ReleaseCertificateHandler() (ie standalone) - we will need to launch it somewhere in osm-controller.go's 'main()
I suspect that this section: https://github.com/openservicemesh/osm/blob/release-v0.8/cmd/osm-controller/osm-controller.go#L197-L205
Could become something like:
	meshCatalog := catalog.NewMeshCatalog(.......)  // <<<<<<<<< EXISTING LINE

	proxyRegistry := registry.NewProxyRegistry()   // <<<<<<<<<< NEW with #3105

	/// ---------------
	/// Start various things
	// Start the release certificate handler, which listens to podDelete events
	new_package.ReleaseCertificateHandler(proxyRegistry, certManager)      // <<<<<<< NEW
	/// ---------------

Another small cleanup of the MeshCataloger interface:

Removing ListSMIPolicies() and ListMonitoredNamespaces() from MeshCataloger interface #3109


Remove IE8–10 related Sass and CSS build tasks

A big one, probably easier to go through it one commit at a time.
Because trimming out Internet Explorer 8–10 support (especially IE8) is such a big chunk of work, I've chosen to only focus on the Sass/CSS elements here. Any JavaScript-related pieces haven't been touched, nor have any aspects related to compatibility mode.
Resolves https://github.com/alphagov/govuk-frontend/issues/3461 and resolves https://github.com/alphagov/govuk-frontend/issues/2622 — except for documentation changes.
Changes

Removes instances of the govuk-if-ie8 mixin and any code within them.
Removes instances of the govuk-not-ie8 mixin, maintaining any code within them.
Removes all Sass settings and mixins relating to IE8.
Removes all IE8 related Sass/CSS entry files.
Removes tests relating to IE8 CSS generation.
Removes references to IE8-specific stylesheets from the review app.
Removes IE8-specific build steps from PostCSS configuration.
Removes PostCSS dependencies that were only needed for IE8.
Removes IE8–10 from Browserslist configuration.
Removes IE8 related sections from Sassdoc generation.
Removes the block on Autoprefixer updates being made by Dependabot, as IE8 is no longer a blocker to updating.
Updates single colon pseudo-element selectors (:before) to the standards compliant double colon (::before). Single colons were only needed for IE8 support.
Adds a temporary override to the Stylelint configuration to not raise failures for using double colons. This can be removed when the upstream Stylelint configuration is updated: https://github.com/alphagov/stylelint-config-gds/pull/36

Notes
This PR doesn't:

change anything in Nunjucks/HTML or JavaScript files.
touch any CSS relating to compatibility mode, even though the legacy frontend toolkits also ship IE8-compatible code.
update any documentation relating to IE8–10.
remove any CSS hacks needed for IE11, even if they also apply to older IE versions.

This is brilliant work @querkmachine
I've found a few more bits to remove that fall between the gaps of not-strictly-CSS:

Commit https://github.com/alphagov/govuk-frontend/commit/33382c79e227dae08f9ed084591b5e61295f0add delicately removes app-legacy-ie8.min.css but ?legacy=true mode still loads:
https://github.com/alphagov/govuk-frontend/blob/8ccbb6089bdfc957966274dfa4e2d2cadf73b2f2/app/src/views/layouts/_generic.njk#L10

There's also the SVG fallback govuk-logotype-crown.png image to delete:
https://github.com/alphagov/govuk-frontend/blob/8ccbb6089bdfc957966274dfa4e2d2cadf73b2f2/src/govuk/components/header/template.njk#L38
https://github.com/alphagov/govuk-frontend/blob/8ccbb6089bdfc957966274dfa4e2d2cadf73b2f2/src/govuk/components/header/_index.scss#L308

Documentation to test in Internet Explorer 8, 9 and 10
https://github.com/alphagov/govuk-frontend/blob/8ccbb6089bdfc957966274dfa4e2d2cadf73b2f2/docs/contributing/testing.md#L61
https://github.com/alphagov/govuk-frontend/blob/8ccbb6089bdfc957966274dfa4e2d2cadf73b2f2/CONTRIBUTING.md#L66
https://github.com/alphagov/govuk-frontend/blob/8ccbb6089bdfc957966274dfa4e2d2cadf73b2f2/README.md#L42
https://github.com/alphagov/govuk-frontend/blob/8ccbb6089bdfc957966274dfa4e2d2cadf73b2f2/README.md#L54
https://github.com/alphagov/govuk-frontend/blob/8ccbb6089bdfc957966274dfa4e2d2cadf73b2f2/docs/contributing/coding-standards/css.md#L200
https://github.com/alphagov/govuk-frontend/blob/8ccbb6089bdfc957966274dfa4e2d2cadf73b2f2/docs/contributing/resize-text-in-browsers.md#L46

Suppose there's always the bits we did wrong (ish) on purpose like :before vs ::before

https://github.com/alphagov/stylelint-config-gds/pull/1

@colinrotherham Thanks for looking!
For most of them, as you mention, I purposefully left them alone for not being strictly CSS related. The govuk_template reference I imagine being removed when we strip out compatibility mode code.
Good catch on pseudo-elements though, I would include updating those as part of this work!

Suppose there's always the bits we did incorrectly (ish) on purpose like :before vs ::before

Require single colons for pseudo-element rules stylelint-config-gds#1

Tagging @kevindew as he's been looking at Stylelint v15 breaking changes recently

Yup, the argument for keeping the single colon was to not actively break compatibility with old IE by using a syntax they don't understand. There was, of course, always going to be a point that other stuff broken in those browers or usage sufficiently insignificant that we could drop it. Maybe we've hit that point? I imagine it's within the scope of your team to decide that.
To make the switch, what I'd suggest doing is opening a draft PR to propose changing the rule in stylelint-config-gds and then changing the rule in this repo's stylelint.config.js with a link to the PR - to basically state, temporary override while we wait for the upstream rules to reflect it.

Ah you've accidentally merged into the other PR @querkmachine
Did you want to revert until we're ready for main?
I don't mind, but it might mean this PR needs opening again

@colinrotherham Ah crap, sorry, the hold on merging totally slipped my mind.


Confusing instructions about updating the Gradle plugin

https://github.com/flutter/flutter/wiki/Updating-Flutter-projects-to-Gradle-4.1-and-Android-Studio-Gradle-plugin-3.0.1#upgrading-a-flutter-app-project

In android/gradle/wrapper/gradle-wrapper.properties, replace 3.3 with 4.1 in the last line.

The file is gitignored. Should just deleting the file also work?
I changed the file and missed that it is not checked in and my coworker got a weird error message about google() not being recognized.
What is the correct way to handle this?

The /gradle was removed from gitignore when they switched to use gradle wrapper instead of gradle bundled by android studio.
/gradle
/gradlew
/gradlew.bat

Commit:
https://github.com/flutter/flutter/commit/c5999c74c06cf33d69c55cf23e0c952144632178#diff-ef7959f4a917f696ebe78db8663454e7
Latest create template /android folder gitignore:
https://github.com/flutter/flutter/blob/master/packages/flutter_tools/templates/create/android.tmpl/.gitignore

Thanks.
Isn't this worth being mentioned in the Gradle plugin update instructions?

Propably should note that it only affects older projects that didn't have gradle wrapper.

I assume this is no longer relevant


vscode suddenly  automatically generates dist dir and copies the file into dist dir

VSCode Version:
Version: 1.48.2
Commit: a0479759d6e9ea56afa657e454193f72aef85bd0
Date: 2020-08-25T10:09:08.021Z
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Darwin x64 19.6.0

OS Version:
MacBook Pro (16-inch, 2019)

Steps to Reproduce:
Note: it was fine before, it just happened a couple days ago. I suspected some new updates caused it. I am trying to find a way to disable it. But I could out.

modify a java script in the folder and save it
dist dir will appear at the same folder and the saved java script file will be copied to the dist folder
the duplicate files will cause problem for running angular...I have to manually delete the dist folder and restart angular.

Does this issue occur when all extensions are disabled?: Yes/No
I am not using command line. I don't know how to disable extension.

This can only happy if you have a compile task/script running or if an extension is doing this. Have you started a compile script?

@mjbvz  I am running grunt serve which runs angularjs code.  The problem is it was ok a couple days ago...it suddenly happens out of no where.

@mjbvz  if I manually change the code outside vscode, there is no issue. I didn't update or install anything lately unless vscode updates automatically.

VS Code's built-in JS/TS support does not compile TypeScript code so this must be caused by angular serve script or some other script you are running.
Try figuring out exactly which script is causing this and either disabling or re-configuring it

I had this compile hero vscode plugin that was causing the issue for me.


Remove a paragraph referencing a non-existent guide

The paragraph will make sense once #92 is done.

Thank you!


Update lib/history.js to ES2015

All tests pass and the file runs in Node without babel. The linter passes for this file, aside from rules would have me change existing variable names (no-underscore-dangle, no-shadow). Let me know if I should take care of those errors as well, I didn't want to jump the gun.

@milesj Good to know, will do. Updated 👍

@milesj Good catch, updated

+167 −167. Nice!


ZSTD : Unknown Frame Descriptor error

I have very strange issue which I am facing. Following are its detail
My data is compressed using ZSTD compression and these compressed bytes are sent over to kafka over the network.
When I read these bytes and try to decompress it gives me an error : com.github.luben.zstd.ZstdException: Unknown frame descriptor
To narrow down the issue,I de-compressed the data on the same source machine where compression is happening, I don't see any error. However the same data when I try to de-compress on a different machine it gives me error.
Interestingly I don't get this error for all of my data. It happens for some of the data.
Here the source machine on which the compression happens is different than the consumer machine on which  decompression is happening.
A pattern observed is :
For all the data where I get this error, when I try to get decompressedSize like this - Zstd.decompressedSize(compressedData), it always gives me -2. However for the data where decompression is successful , I get correct length of the orginial data.
Can anyone please help asap on this?

@luben  : Can you please help

Is there some data lost/truncated when sending it through Kafka to another machine?

@luben  : Nope. I confirmed that by checking the base64 string on both source and consumer.

Hmm, that strange. What happens when you decode the base64 and pass it to the zstd CLI, e.g.
$ cat BASE64.txt | base64 -d | zstd -d -

Also, what is the version of Kafka you are using? I think there were some recent changes around how it works with zstd compression. May be there is a bug in the new code.

@luben
I don't think we have problem with Kafka. This is the flow
Producer(Compression happens) > Websocket server > Kafka > Consumer(Decompression)
In order to narrow down the issue I did de-compression on Websocket server as well and it gives me error, while the same data was able to decompress on producer.

Hmm, that strange. What happens when you decode the base64 and pass it to the zstd CLI, e.g.
$ cat BASE64.txt | base64 -d | zstd -d -

@luben : This give me error : zstd: /stdin: unexpected end of file  in CLI.
Can you please tell me the correct command

Command I tried : cat test.txt | base64 -d | zstd -d | cat

yes, so why the data is corrupted?
BTW, I didn't need the final cat, may be some small difference:
$ cat test.zst.base64| base64 -d - | zstd -d -
1234

I am not sure why, looks some corruption on transit

Here is the thing, after compression I do encryption and print a base 64 string of the encrypted array.
The same base64 string I am able to match it my consumer.
In my consumer before I do decompression, I do decryption. There are no errors in decryption.
If the error was getting corrupted while transporting, decryption won't be successful and the base64 string won't be matching.
I am now suspecting it something related to GLIBC libarary on the machine it is getting compressed because on the same machine I am able to decrypt and decompress.

can you check the the base64 of the payload before encryption by the sender and after decryption by the receiver?


fix unpicklable attributes

A previous series of PRs was made to improve pickling in the library

https://github.com/run-llama/llama_index/pull/8838
https://github.com/run-llama/llama_index/pull/8889
https://github.com/run-llama/llama_index/pull/8986
https://github.com/run-llama/llama_index/pull/9588

However, the current iteration ALWAYS removes all private attributes, assuming that we have info info to run init when reloading the module. This isn't always true, and when things fallback to normal setstate, we get some hard to debug issues for users.
This PR attempts to only remove things that need to be removed. Again, we rely on calling init when reloading the module, but the fallback to setstate will be much safer now.
Fixes https://github.com/run-llama/llama_index/issues/14837
Fixes https://github.com/run-llama/llama_index/issues/14757
(And fixes any other similar issues, couldn't find them all)

Yea I'm not sure what the ideal UX is here 🤔 But that makes sense. For now, I think this will be ok.


Add 4 fields, make 1 field optional

Adding missing fields and making one field optional, that where found on API responses while working on new functionality.

BTW please let me know if you prefer the PRs without version update.
I just copied what I saw you do in the previous one, but maybe you prefer to do that part your self.

Yeah, in the future please without a version change!
But I'll merge this one regardless.
For future PRs you can just add your change to the changelog under a "Unreleased" version.

Understood. I like that.


[AppConfig] Renames + Added missing fields

Description

Added SnapshotFields enum to support fields selection for snapshot.

Changed listConfigurationSettingsForSnapshot method's fields parameter type to List.

Renamed ConfigurationSettingSnapshot to ConfigurationSettingsSnapshot.

Renamed ConfigurationSettingSnapshot's property name, size to sizeInBytes.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-data-appconfiguration


Added MQTT retain boolean to message callback function

I need to have the MQTT retain flag from the control header exposed in the callback function.   I have modified my local version to do this & it only required 4 lines in PubSubClient to be changed.  I've tested it & it works fine.
Is this change of interest to anyone else?  If so, I can make post the code changes here so that the library can be updated.   Is this something that could/should be added to the core library?
I am not quite sure how to change the callback function calling parameters (uses a 4th new parameter) so that it is backwards compatible (with calls using just the 3 original parameters).  I personally don't need the backward compatibility - although I realise the core code base would do.  I am confident it can be done - just a bit beyond my C++ skills at the moment.
Comments?  Suggestions?

Hello. Anyway you can do the pull request and if somebody will need this - he will use it

@SGF-Lon Would you mind sharing your solution?


Add a status message to the GitLab comments

When we don't have permission to create status, we put a comment instead:

The table in the comment does not contain a message/description of the status.

exactly, I was really confused what that table actually meant :D
it would be great to guide the contributor what they actually should do


[Bug] AutoEnsembleEstimator() cannot be instatiated if tf< 2.x

Intent:
I am following the code sample given by @cweill  and given in the docs v0.8.0 to instatiate an AutoEnsembleEstimator() with the simplest use case of one candidate.
Error:
 The given object is not an Optimizer instance. Given: <tensorflow.python.keras.optimizer_v2.rmsprop.RMSprop object at 0x7fd6f61ca160>
Minimal reproducible example HERE
Call context:
candmax_iteration_steps = TRAIN_STEPS // ADANET_ITERATIONS

# Learn to ensemble linear and DNN models.
adaestimator = adanet.AutoEnsembleEstimator(
    head=head,
    candidate_pool=lambda config: {
        "linearest":
            tf.estimator.LinearEstimator(
                head=head,
                feature_columns=feature_columns,
                optimizer = lambda: tf.compat.v2.optimizers.RMSprop(),
                config=make_config("ada_linearest"))},max_iteration_steps=candmax_iteration_steps)

Details:
The same error occurs when

no optimizer argument is given (AutoEnsembleEstimator() defaults to FtrlOptimizer  by inheritance)
any other optimizer is given using any other convention

... tf.compat.v1.keras.optimizers....
... tf.compat.v2.keras.optimizers...

The error, possibly, lies within .../tensorflow_estimator/python/estimator/head/base_head.py.
The check for compatibility appears broken. Not sure if this is still an issue within AdaNet. lambda trick

@le-dawg We just released adanet v0.9.0 which drops TF 1.* support. Could you please try upgrading adanet to the latest version?