Paper index page should allow filtering papers by year

Scenario
Given a paper published in 1950
And a paper published in 1968
When users visit the papers index page with url parameter year=1950
Then it should not show the paper published in 1968
Hints
Almost done with the exercise!
A long list of papers can be hard to search. Allow filtering the list of papers on the paper index page (by year) with an URL parameter, e.g. http://localhost:3000/papers?year=1970.
You can use scopes to implement this behavior in the Paper model and adapt the PapersController's index action to take params[:year] into account.
Consider the subheadings Passing in arguments and using conditionals of the Rails Guide.
Error

Expected not to find text "go to statement considered harmful" in "papers\ntitle venue year computing machinery and intelligence mind 49:<PHONE_NUMBER> show edit destroy go to statement considered harmful communications of the acm 1968 show edit destroy\nnew paper"

42 exercise tests have passed. There are 44 in total. You will solve multiple at once towards the end.

Sorry, it's not working for me yet:
Scenario
Given a paper published in 1950
And a paper published in 1968
When users visit the papers index page with url parameter year=1950
Then it should show the paper written in 1950
Error

Expected to find text "computing machinery and intelligence" in "papers\ntitle venue year\nnew paper"

If you have problems solving this task, please don't hesitate to contact the teaching team!


fix(dev): fix sourcemaps for v2_dev

Fixes #6392

TODO

[x] changeset
[x] Add fences (// REMIX HMR BEGIN, // REMIX HMR END) around the injected HMR code

Little worried about doing more work in babel. Mind doing some sort of quick perf verification, maybe against brochure?


Provider UI application url is not working

I am trying to do a multi-tenant sample proof of concept in SAP Cloud Platform(SCP) using this repository as a reference.
I have encountered a couple of problems and I am not sure what is the problem here.
After deploying the application in subaccount1(space: APS), I went ahead and subscribed the deployed application from subaccount2. I see that the deployed application URL is not working.
It says the subaccount does not map to a valid identity zone. Screenshot attached.

Also, If I access the subaccount2's URL, I get a login screen, but after login, I am getting the following error.:
Internal Server Error
in login/callback REST call
Here is mta.yaml
`ID: attempt3
_schema-version: '2.1'
version: 0.0.1
modules:

name: db3
type: hdb
path: db3
parameters:
memory: 256M
disk-quota: 256M
requires:

name: hdi_db3

name: invbackend
type: nodejs
path: invbackend
parameters:
disk-quota: 1024M
memory: 1024M
provides:

name: invbackend_api
properties:
url: '${default-url}'
requires:

name: hdi_db3
name: uaa_attempt3
properties:
SAP_JWT_TRUST_ACL:
clientid: ""
identityzone: ""

name: invui
type: html5
path: invui
parameters:
disk-quota: 256M
memory: 256M
build-parameters:
builder: grunt
requires:

name: uaa_attempt3
name: invbackend_api
group: destinations
properties:
name: invbackend_api
url: '~{url}'
forwardAuthToken: true
properties:
TENANT_HOST_PATTERN: "^(.*)-invui.cfapps.eu10.hana.ondemand.com"

resources:

name: hdi_db3
parameters:
config:
database_id: [id placeholder]
properties:
hdi-container-name: ${service-name}
type: com.sap.xs.hdi-container

name: uaa_attempt3
parameters:
path: ./xs-security.json
service-plan: application
service: xsuaa
shared: true
type: org.cloudfoundry.managed-service

Here is the config.json{
"appId": "attempt3!t9256",
"displayName": "Inventory Management HANA App",
"description": "An app to manage your inventory which uses HANA DB with Column Discrimination",
"category": "Provider XYZ",
"appUrls": {
"onSubscription": "https://-invbackend./callback/v1.0/tenants/{tenantId}"
}
}`
Here is the xs-security.json
{   "xsappname": "attempt3",   "tenant-mode": "shared",   "description": "Security profile of called application",   "scopes": [{ 		"name": "$XSAPPNAME.Callback", 		"description": "With this scope set, the callbacks for tenant onboarding, offboarding and getDependencies can be called.", 		"grant-as-authority-to-apps": [ 			"$XSAPPNAME(application,sap-provisioning,tenant-onboarding)" 		] 	}] }
Please note that if I make the tenant-mode as dedicated, I am able to log in through provider URL.
Let me know if anything else is required.
TIA

Hi @prathik457 ,
the first issue with the mapping of subdomain to the indentity zone can be solved by adding a new route. It has to fetch the tenant host pattern.
I'm getting the second issue as well and have not found a solution yet. In the logs I can read the following:
> :"GET request to /login/callback?code=deRG7VXpbO completed with status 500 - Could not authenticate with UAA: Could not obtain access token: request to UAA at https://"mysubdomain".authentication.eu10.hana.ondemand.com/oauth/token failed, error: unexpected response from UAA at https://"mysubdomain".authentication.eu10.hana.ondemand.com/oauth/token: status code: 401, response body: \"{\"error\":\"unauthorized\",\"error_description\":\"Bad credentials\"}\", "}
Do you have any updates for that?


cd - (switch directories) doesn't work as expected.

Steps to reproduce
cd c:\windows\system32\opensh
cd c:\windows\
cd - (First time it does right. It switches directory to c:\windows\system32\openssh)
cd - (From now on.. it's broken. It switches to c:\)

Expected behavior
Just like Unix, cd - should only switch between last 2 directories.
In this case, second command "cd -" should switch back to  c:\windows
Actual behavior
Second command "cd -" switch back to "c:".
Subsequent "cd -" commands gives error message.
Environment data

PS C:\> $psversiontable

Name                           Value
----                           -----
PSVersion                      6.2.3
PSEdition                      Core
GitCommitId                    6.2.3
OS                             Microsoft Windows 10.0.19013
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

PS C:\>

Windows

Unix

I could be misremembering, but I think the documented behaviour for cd - in PowerShell is to go back to the previous directory... and further usages will actually go back through the history even further. I think you need to do cd + to step forward through the location stack.
I think @rkeithhill was one of the folx that helped implement this feature, if I'm not totally out of it today; perhaps he can explain a little more clearly. 😊

Why do we want to deviate from the UNIX behavior?
It helps UNIX users to easily adapt to Powershell if we maintain consistency with UNIX.
We can always add new features but we shouldn't deviate implementation between Windows and UNIX.

I didn't implement this for PowerShell Core (but I did for the PSCX module).  But @vexx32 is correct that the PS impl of CD maintains a stack that you navigate backward and forward using - and +.

Ah, sorry, @rkeithhill. 😁
I couldn't recall who it was. Looks like it was https://github.com/PowerShell/PowerShell/pull/7206 by @bergmeister 🙂

Yes, I did the feature of cd - and cd + as there was nothing before.
The standard behaviour of bash is too simplistic as it was from the 80s when there was not much memory available and just works by storing the previous location in an environment variable.
When I proposed the first draft of the implementation, I actually implemented exactly this and the PS team did not like it and the community encouraged me to implement a history stack similar to how the fish shell does cd + and cd -, hence why the current implementation can go back up to 25 location (I had to negotiate hard on getting that number high). Although it was more work, I love being able to back and forth in history more than just once, especially when I switch between different git repos.
You can follow the history and PR discussion in the 2 PRs and related issue.
The best you could maybe do is to propose a setting but the PowerShell team generally does not like this idea very much due to the test coverage becoming complicated.
Otherwise this is by design 😎

As a UNIX user, I didn't like the implementation. I would like to be inline with UNIX implementation.
I am sure UNIX users (who are new to powershell) simply try "cd -" assuming it's supported and they don't know "cd +".. Even if you tell them, they don't like it.
I would suggest to change this implementation.. You can still achieve the same feature of maintaining the history by adding something like "cd -  (ex - cd - 2) which will look at the stack and goes back to the desired directory.

I've said it before, there is no such thing as an UNIX implementation. It is a shell implementation. Common Unix shells like fish have the exact same behaviour as PowerShell where cd - has a location history of the last 25 locations:
https://fishshell.com/docs/2.4/commands.html
Old shells like bash cannot improve their behaviour for legacy reasons. Therefore this is purely about educating users and the onus will always be on user's side to stay up to date, which is the nature of the IT industry (which is good as it as a way of moving forward)


issue arcgis 10.4.1

Hi
I am using arcgis 10.4.1 (version of esri software and version of the tool). Recently I am having the issue to build network. It is failing at the last moment (the tool is trying to add restricted turns, or errors...)
It seems to that arccatolog blocks access to temporary folder, and at the same time the tool is trying to access it. any idea?

just to let you know, that normally I have a custom tool which is calling my script, inside wchich I am importing StreetDtaProcessingTool and next executing.
And this is where it fails.
However, I just tested and if I execute my script directly using command line - it worked. No issue with blocking access to any folder.

I apologize that we never responded to this question.
This sounds like a file lock error of some sort.  Did you ever resolve the issue, or was your workaround of running the script from the command line adequate?
A new version of the Street Data Processing Tools in ArcGIS Pro is now available.  Because ArcMap is now in mature support as a product, please migrate your data processing workflows to ArcGIS Pro using the new tools if you haven't already, and let us know if you're still experiencing problems with automating your workflow.

It's been three months, and there has been no response on this issue, so I'm closing it.  If you're still having problems, feel free to re-open.


ARROW-8061: [C++][Dataset] Provide RowGroup fragments for ParquetFileFormat

Provides ParquetFileFragment, which may view a subset of row groups within a parquet file. The indices of viewed row groups are available through the row_groups() property which is exposed to python. Construction of subset-viewing ParquetFileFragments is not yet exposed to python.

I was just trying this out, and the row_groups property seems to work correctly for a dataset that I read with dataset(..).
But, to have this usable from Python, we still need a way to control this behaviour (as right now I cannot create a Fragment directly):

Do we want a discovery option indicating to use row groups instead of files as fragment granularity? Or should this be part of  instead of ParquetFileFormatReaderOptions instead of FileSystemFactoryOptions? (but the reader options are generally just for reading, not for discovery, so that might be a bit weird) Or do we need a ParquetFactoryOptions ... ?

Do we want to be able to construct a ParquetFileFragment in the python API? And then we can optionally provide a row_groups index/indices. But, to make this useful, we probably also need to be able to create a dataset from a fragment (or be able to scan a fragment from the python API)

@jorisvandenbossche my intention was that fragments would exclusively be discovered containing all row groups for a file. Fragments with a refined row group selection could then be created from these whole-file Fragments as desired:
def single_row_group_fragments(parquet_dataset, filter, columns):
    for fragment in parquet_dataset.get_fragments(filter=filter, columns=columns):
        for row_group in range(fragment.metadata.num_row_groups):
            yield parquet_dataset.format.make_fragment(fragment.path, row_groups=[row_group])

Fragments can be scanned in C++ so I can expose that to Python as well:
assert first_row_group_fragment.row_groups == {0}
first_row_group_fragment.scan(memory_pool)
# NB: filter, columns already specified in get_fragments. See ARROW-8065

One potential advantage of having this at the dataset level, is that dataset.get_fragments(filter=...) could yield only those fragments / row groups that respect the filter.
Now, an API where we can construct / scan fragments would certainly already be useful as well.

Another potential problem is that, assuming discovery happens only for full files, for an application like dask where the fragments are then re-created per row group, dask needs to know the number of row groups per file.
Leaving this logic to the user to create those fragments, means that they will need to open the metadata for each parquet file. Which might interfere with how we are going to handle things like _metadata (although it depends on how we solve that issue). Eg, it might mean that we should expose this metadata as well on the dataset level / have a mapping of this metadata to the fragments (if we want to avoid reading the metadata again).
(just thinking out loud)

I see. In that case, in C++ I'll add ParquetFileFormat::GetRowGroupFragments(dataset, max_row_groups_per_fragment, ...) and expose this in Python as a special case of FileSystemDataset.get_fragments():
for fragment in parquet_dataset.get_fragments(filter, columns,
                                              max_row_groups_per_fragment=1):
    yield from fragment.scan(memory_pool)

WRT using _metadata: that seems like a separate problem. Once we have agreed on a mechanism for sharing metadata between files we'll use that to reimplement ParquetFileFragment.metadata

We have the same problem with number of rows. We need to expose a lazy accessor or something like this. This is related to the _metadata file where we load this information once (and the partitions + statistics).
I'd say leave it out for now?

This example segfaults for me:
import pyarrow as pa
import pyarrow.parquet as pq

table = pa.table({'a': ['a', 'a', 'b', 'b'], 'b': [1, 2, 3, 4]})
pq.write_to_dataset(table, "test_parquet_dataset", partition_cols=["a"])

import pyarrow.dataset as ds
dataset = ds.dataset("test_parquet_dataset/", format="parquet", partitioning="hive")
fragments = list(dataset.get_fragments())
f = fragments[0]
parquet_format = f.format
parquet_format.make_fragment(f.path, f.filesystem, partition_expression=f.partition_expression)

Another question: shouldn't there be a schema involved in the creation of a Fragment?
How can it otherwise reflect a possibly unified schema of a dataset?

@jorisvandenbossche I've added an optional schema argument to make_fragment (the default is to inspect the fragment and infer a schema). I've also added a test similar to your segfaulting case which passes here

Thanks!
So now the snippet above doesn't segfault, but creating a fragment with a row group specified still does:
parquet_format.make_fragment(
    f.path, f.filesystem, partition_expression=f.partition_expression, row_groups={1})

I am trying this out with my dask POC, and running into the following issue: I would basically need a Fragment.to_table() method. There is a scan method, but with that I need to loop through the tasks / execute them / combine into a table in python, which gives unnecessary overhead (and re-acquiring the GIL constantly, which will make it inefficient for dask).
Or alternatively, if I could turn the single fragment into a dataset or scanner, can also use to the to_table method from there.
I am also still getting segfaults in some cases, see https://github.com/apache/arrow/pull/6670#issuecomment-604047278

@jorisvandenbossche I'll extract CScanner::ToTable() so that it can be used directly on a CFragment, then add a wrapping Fragment.to_table method

One thing I already encountered is that fragment.to_table() doesn't work for the fragments from get_row_group_fragments for partitioned datasets, because of some schema mismatch (with vs without partition key columns).


Linux build improvements

Currently the Linux build requires a folder hierarchy looking like:
/workspace
/workspace/lk
/workspace/wex
/workspace/ssc
/workspace/SAM
/workspace/googletest
The Linux build can be improved in the following ways:

Require the assignment the following as environment variables:
LKDIR - /path/to/lk
WEXDIR - /path/to/wex
SSCDIR - /path/to/ssc
SAMNTDIR - /path/to/SAM
GTEST - /path/to/googletest

Update the Linux Makefiles to use these environment variables rather than forcing a specific folder hierarchy.

One caveat is that this will break the existing Travis CI scripts and everyone's Linux build until they define their own environment variables

Will @dguittet 's CMake improvements take care of this issue?

Yes, the CMake improvements are the most robust way to deal with this for multi-platform support.

Looks like this got done without being closed: https://github.com/NREL/SAM/wiki/Linux-Build-Instructions


GraalVM binary

Are you interested in creating a GraalVM binary much like zprint has done, so you can use this lib from the command line?
I would be happy to do it myself if you're not interested in it. Not sure if I could use the name puget for that binary?
The use case for this would be to pipe any program that outputs EDN or Clojure code into that binary to get colorized output.
Also see https://github.com/borkdude/babashka/issues/620

I sort of did this already with edn-tool, though I haven't worked on that in a bit. I was planning to make it more of a jq equivalent, but abandoned that when I found out about jet. 😉


Step does not support multiple destinations

The step assume only one device is used while Xcode allow to use multiple destinations

You can add as many Xcode Test steps as you want to. Isn't that an option?

Yes but I believe it's faster using multiple destinations in a single step

Did you try that? You can copy paste the xcodebuild command from this step's log output, and use it in a Script step.
This step should be quite efficient, the overhead of adding a second one vs adding multiple device configs should be minimal (the right simulator have to be booted and the tests have to be performed, you can't avoid that with either solution, and that's what takes the most time).

I'm just curious if it would worth it at all - if you can run a couple of tests (multiple Xcode Test step vs Script step) and report the times that would help a lot!
P.S.: just don't do it this weekend, as the performance of the Mac OS stacks can be significantly worse than usual, due to the ongoing infra maintenance ( http://status.bitrise.io/incidents/4swscfprwz0j )

Yes that's what I'm actually doing using the script step :
#!/bin/bash
set -ev

xcodebuild \
  -workspace $BITRISE_WORKSPACE_PATH \
  -scheme $BITRISE_SCHEME \
  -sdk iphonesimulator \
  -destination 'platform=iOS Simulator,name=iPhone 4s,OS=9.3' \
  -destination 'platform=iOS Simulator,name=iPhone 6s,OS=9.3' \
  -destination 'platform=iOS Simulator,name=iPhone 6s Plus,OS=9.3' \
 test | xcpretty --no-color -r html --output "${BITRISE_DEPLOY_DIR}/Tests/test-results.html"

exit ${PIPESTATUS[0]}

I would have love to make a PR to add multidestinations but I'm not fluent in Go. For now this improvement is not critical for me as the script does the job.
Cheers

Thanks @dagio for the script, I know it can be done like this - the question is, is this really faster? Did you measure your script vs doing it with 3 Xcode Test steps?

I'll make a little benchmark between few options :

fastlane (scan)
xctool
xcodebuild w/ multi destinations
multi xcodebuild w/ single destination

Thanks! Please keep in mind that this weekend we perform infra maintenance, which might affect the results. Should be finished later today.

Anecdotally, our app's UI tests run in about 60 minutes in serial, and about 30 minutes in parallel.

@stevelandeyasana we're mainly concerned about:

although we did perform some tests with test-without-building and found quite a few reliability issues which did not happen with the standard "one test at a time" approach.

I'll close this ticket here as we moved to a centralized feature request platform since; feel free to create a feature request at: https://discuss.bitrise.io/c/feature-request
That should help with collecting details, discussion and tracking popularity/priority! ;)

Xcode 10 will support multiple simulators running at once, as auto-calculated by available memory etc. Early testing on one of our machines suggests that this will provide a significant performance improvement.

We'll definitely check & prepare for Xcode 10, but AFAIK it does not require you specifying multiple devices, it can just auto split test suits and run them in parallel using the same Simulator / iOS version. Correct me if I'm wrong @eggheadgames


Apply Game Difficulty on Selection

Currently, difficulty is loosely implemented in the sense the AI will scale somewhat differently based on difficulty settings and the main menu has 3 buttons to select easy/medium/hard, but they do not do anything. This will seek to fix that by applying the main menu difficulty selection to accordingly set the current save game to track the selected difficulty and each map will reference the save game to effectively set difficulty on each map.

[ ] #309
[ ] #310
[ ] #311

This story took approximately 3 hours to finish and was a fun challenge to work on different parts of the code.


How do you select multiple elements ?

One of the feature from this fork is :

multiple elements spotlight

But in the doc, there's no example, I tried using an array of selectors :
Domlight([document.querySelector('#my-element'), document.querySelector('#my-2-element')], options)
And I tried using  jQuery multiple selector, both without success.
How should we use multiple elements spotlight ? Could you add it to the doc

Multiple selectors are not supported.

Ok, thank you for your answer !


Simple Library Management

Title and Issue number
A simple library management project that is easy to use and helps learners understand the basic concept of JS. In this project, the user has a provision to add book details like book name, author name, and type through the web page. In addition to this, the user has a provision to search for the available books in the library by the book name or author name, or type. If book details are present in the LocalStorage, the search details are displayed on the web page. User has also a provision to delete a specific book or delete all books.

This PR closes the issue  #890

Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md

@prateekj7777 Kindly review my PR and merge under HacktoberFest label. Thank you.


typo: dislay -> display

@nschonni : Thanks for your contribution! The author, @mikejo5000, has been notified to review your proposed change.

#sign-off


Keyboard causes Scaffold body to resize

This patch adds an option to Scaffold to disable resizing the body to avoid the
window padding. This lets developers create layouts that are stable when the
keyboard overlays the app.
Fixes #3565

@Hixie

@HansMuller


Upload.py sometimes prints "Comment with: 0 attachments" for seemingly no reason

Very minor issue as it seems like it does upload the feedback properly despite the message.
This usually happens for at least one handin per assignment.
It does not happen to the same groups/people every time, so it is probably not kuids or special characters in names.
It also does not seem to be the contents of the feedback causing the issue, since it also happens with empty feedback.
When running the script several times, it is always the same people/groups with the message.

I am pretty sure (like 60+ %) that this happens when the submission has a submission comment with no attachments, i.e. that the student has written a comment on absalon.
When we upload feedback, we do it as a comment with an attachment. There is a sanity-check in upload.py to avoid uploading feedback multiple times. It looks for submission comments with attachments; If one exists, it would probably be our already uploaded feedback.
I agree that the message could be clearer or removed.

I can confirm that the one group that submitted a comment with their assignment was the group for which it gave the message. So you're probably right on that one.

After reviewing the responsible code in upload.py I realise that it's borked. And what is worse is that it seems that I'm the one who borked it.


RangeError: Invalid time value on version 4.8.0

when using the dependency i get the error mentioned in the tittle on render, I looked through another issues and in stackedOverflow and saw that it was a problem with the format in versions lower than 2.3, however I'm currently using version 4.8.0 and formats described in the documentation,
`**import React, { useState } from "react";
import DatePicker from "react-datepicker";
export type DateSelectorType = {
value?: Date, onChange: Function
}
const DateSelector = ({ value = new Date(), onChange }: DateSelectorType) => {
const [startDate, setStartDate] = useState(value);
const [selectedDate, setSelectedDate] = useState(new Date())
const changeDates = (date: Date) => {
setStartDate(date)
setSelectedDate(date)
onChange(date)
}
React.useEffect(() => {
setStartDate(value)
},[value])
return (

<DatePicker dateFormat={"dd-mm-yy"} selected={startDate} onChange={(date: Date) => changeDates(date)} />

);**
};
export default DateSelector`

error....fixed itself, i didn't even changed a thing

How did you resolved this issue?

Very annoying. Did anyone resolved this?

I'm also experiencing issues when providing custom date formats and using a customInput.

I was able to resolve this issue by parsing the date like in this comment but now any PM time I choose becomes an AM time.

Update: The above suggestion does not work in Firefox or Safari.

I am still having this issue even on a non-range date picker. To solve this,
onChange={value => {
          let dob = value ? moment(value) : null
          if (dob.isValid()) {
              setDate(dob.toDate())
          } else {
              const date = new Date();
              setDate(date)
          }
      }}

Same issue with Safari on iOS and MacOS


Detecting SpringBootServletInitializer takes around 3-5 minutes

I made a little spring boot application. When I want to start the application with the webapp-runner, the runner stops after the first few steps with "INFO: No global web.xml found ". After 3-5 minutes the runner detects the SpringBootServletInitializer and starts my app.
Am I doing something wrong or is it a bug?
Sep 28 04:11:09 spring-boot-test-app heroku/web.1:  Starting process with command `java -Xmx384m -Xss512k -XX:+UseCompressedOops -Dspring.profiles.active=prod -jar build/remoteSources/webapp-runner-<IP_ADDRESS>.jar --port 24166 build/libs/spring-boot-test-app-0.5.0.war`
Sep 28 04:11:12 spring-boot-test-app app/web.1:  Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
Sep 28 04:11:13 spring-boot-test-app app/web.1:  Adding Context  for build/libs/spring-boot-test-app-0.5.0.war
Sep 28 04:11:13 spring-boot-test-app app/web.1:  Sep 28, 2015 11:11:13 AM org.apache.coyote.AbstractProtocol init
Sep 28 04:11:13 spring-boot-test-app app/web.1:  INFO: Initializing ProtocolHandler ["http-nio-24166"]
Sep 28 04:11:13 spring-boot-test-app app/web.1:  Sep 28, 2015 11:11:13 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
Sep 28 04:11:13 spring-boot-test-app app/web.1:  INFO: Using a shared selector for servlet write/read
Sep 28 04:11:13 spring-boot-test-app app/web.1:  Sep 28, 2015 11:11:13 AM org.apache.catalina.core.StandardService startInternal
Sep 28 04:11:13 spring-boot-test-app app/web.1:  INFO: Starting service Tomcat
Sep 28 04:11:13 spring-boot-test-app app/web.1:  Sep 28, 2015 11:11:13 AM org.apache.catalina.core.StandardEngine startInternal
Sep 28 04:11:13 spring-boot-test-app app/web.1:  INFO: Starting Servlet Engine: Apache Tomcat/8.0.24
Sep 28 04:11:15 spring-boot-test-app app/web.1:  Sep 28, 2015 11:11:15 AM org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment
--> Sep 28 04:11:15 spring-boot-test-app app/web.1:  INFO: No global web.xml found
Sep 28 04:11:16 spring-boot-test-app heroku/web.1:  State changed from starting to up
--> Sep 28 04:15:43 spring-boot-test-app app/web.1:  Sep 28, 2015 11:15:43 AM org.apache.jasper.servlet.TldScanner scanJars
Sep 28 04:15:43 spring-boot-test-app app/web.1:  INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Sep 28 04:15:45 spring-boot-test-app app/web.1:  Sep 28, 2015 11:15:44 AM org.apache.catalina.core.ApplicationContext log
Sep 28 04:15:45 spring-boot-test-app app/web.1:  INFO: Spring WebApplicationInitializers detected on classpath: [org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration@578d7f3b, com.ametras.design.server.Application@1f04ff]
Sep 28 04:15:49 spring-boot-test-app app/web.1:    .   ____          _            __ _ _
Sep 28 04:15:49 spring-boot-test-app app/web.1:   /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
Sep 28 04:15:49 spring-boot-test-app app/web.1:  ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
Sep 28 04:15:49 spring-boot-test-app app/web.1:   \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
Sep 28 04:15:49 spring-boot-test-app app/web.1:    '  |____| .__|_| |_|_| |_\__, | / / / /
Sep 28 04:15:49 spring-boot-test-app app/web.1:   =========|_|==============|___/=/_/_/_/```

That message is expect. Is your app starting up ok?

Oh, I should mention, you can add --expand-war to speed up the startup.

App is starting just fine. expand-war made it much faster, thanks :+1:


chore: fix auto license update

Coverage remained the same at 100.0% when pulling 8a6b9900921541aee8f55a5969db275d97ca56c6 on fix-auto-license-update into daa684b4b0e64ebc0c9251439afc7a20510f85d2 on main.

:tada: This PR is included in version 1.4.6 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Nerd Font is not working.

Nerd Fonts are simply not working. I've tried all the solutions I can find on Google. Still not working.
Here's my terminal in VS Code.

Here's what the terminal actually looks like.

Here's my settings.json.

Is it possible that font wasn't installed for all users?
https://github.com/microsoft/vscode/issues/163059#issuecomment-1281133218
P.S. Screenshots to show problem are great but screenshots of config/code are bad, please post them as code block next time.

@IllusionMH Thanks! The problem is solved now.
And I'm new to the GitHub community so I didn't know how to post correctly. I will do it next time.


Fix opacity of Collada meshes

Fixes an issue introduced in #1294 (e906f82eb2ef04e63dea03f834ae722f144bc712):
Materials of Collada mesh models need to be cloned for each instance of a robot link.
Fixes #1385. @simonschmeisser, could you please verify?

@rhaschke good job, works as expected now. Thanks!


Add service template history view to the ISV view

for each template, a history table must be displayed.

[ ] Load history from the new service getSerivceTemplateHistoryById and build the table.
[ ] Data of column "template request" must have a link as value, when clicked, the data must be fetched using new service "getRequestedServiceTemplateByChangeId " and displayed in a modal similar to update or review service.
[ ] ServiceTemplateChangeStatusEnum should be show in different color tags -  mainly green for accepted ,red for rejected.

let me do it


[#135948443] Use upstream's image for CATS

What
The latest Cloud Foundry upgrade (cf-release v245 to v250) means the
smoke and acceptance tests require golang 1.7+. However, the upstream golang image did not support gzip 1.6, which is used in the new acceptance test code, so we have resorted to using a Dockerfile maintained by CloudFoundry.
How to review
You can run the usual local rake build:cf-acceptance-tests and rake spec:cf-acceptance-tests.

I have created a test branch on paas-cf called test-new-cats-image. It updates the image used for all types of test.
Deploy and check the tests pass.
Delete the branch when you are done.

Who
Anyone but me or @keymon

Out of curiosity, I have also bumped my alpine container. It was quite simple: https://github.com/alphagov/paas-docker-cloudfoundry-tools/tree/slim-acceptance-132820493
The size difference is 312MB vs 648, or reduction by 336MB/52%....

I keep my opinion that we should use the most similar image possible. This time use the very same Dockerfile from https://github.com/cloudfoundry/cats-concourse-task/blob/master/Dockerfile makes sense.
But @dcarley was keen on using alpine, so it would be other vote towards alpine.

I'm not that fussed about the download size because bandwidth is relatively cheap. I have a preference for reducing the number of dependencies bundled into the base image, because it's less things to maintain, but the tradeoff here is that we'd be deliberately going against the grain of what upstream are doing.

My main motivation in reducing size was in relieving load on concourse, where gardnen copies full image on every run and baggageclaim has to handle much larger images. And because of continuous smoke tests, this is our most used image...
Regarding the argument about compatibility/ease of support; as it turns out, alpine was quite simple to bump (not needing any gzip trickery). When using upstream image - why don't we use that image directly but need to copy (and thus maintain) dockerfile?

reducing size was in relieving load on concourse

I am not sure about this.
First lately we hadn't as many issues as before with concourse, second the issue was more about the number of containers being pulled in parallel rather than the size, and finally I think there are plenty of things we can/should do to reduce the load in concourse and will really make a difference.
For instance we can group image containers instead of having so many different specific containers (e.g. only one container with AWS cli, terraform, bosh, ruby, python, etc.), and create custom resources rather than doing multiple data transformation using tasks and scripts.

alpine was quite simple to bump (not needing any gzip trickery).

What about the other way round, when if we need an older version of a component?


Add allowPrivilegeEscalation default to PodSecurityPolicy

See https://github.com/istio/istio/issues/11571#issuecomment-469081061 for context.
k8s admission controller requires this.

@ostromart - I've been rooting around in the PSP admission plugin code to sort out how it works so I'm hoping my discussion below can give you a leg up on this work item. I'm struggling to get a PSP and a container securityContext config that works reliably. It's been a real pain in the neck!
First, I recommend getting familiar with the Kubernetes podsecuritypolicy provider code. From there, you can get the gist of how it works. For more details, grok the various support data structure objects (especially strategies and capabilities).
In the admission process, mutating admission plugins are run first and then the validating plugins. And the PSP mutating plugin runs before the webhook mutating plugin.
The PSP plugin goes through all the PSPs and mutates the pod based on the PSP definition (oddly, it doesn't discard the PSP because of disallowed RBAC access until after it does the mutating work). The first one that mutates successfully is picked; however, if it finds one that doesn't mutate at all, then that PSP is chosen. The pod is tagged with an annotation naming the chose. PSP name.
When the sidecar injection webhook plugin fires, it now adds a couple more containers that the PSP plugin didn't get a chance to mutate.
Then the validation phase occurs, so the PSP plugin fires. That's when things go wonky. In the mutating phase, the pod can be mutated, but in the validation phase, it can't. The plugin uses the same logic of applying the PSP to the pod, but this time, if a mutation occurs, the PSP is discarded. The first PSP that doesn't cause a mutation wins. Usually the last PSP in the list (alphabetically) is a restricted PSP that doesn't mutate but also doesn't satisfy the validation. (In my case, the restricted PSP doesn't have any allowedCapabilities, so it fails on trying to add NET_ADMIN.) The validation errors displayed are for that last PSP and not the one that was used in the mutating phase. The general idea is that the PSP in the mutating phase is going to be the one that also succeeds in the validation phase.
What this means is that if you mutate the pod after the PSP plugin, you better make absolutely certain that it matches exactly to the PSP in the validate phase. And it's impossible to get any logs of what mutation caused a PSP to be discarded in the validation phase. So it becomes a trial-and-error test loop until you finally hit on one that works.
For now, I've managed to get a PSP to work with allowedCapabilities: ["NET_ADMIN", "NET_RAW"]. But I can't add requiredDropCapabilities: ["ALL"] even though I've update the sidecar injection configmap with capabilities.drop: ["ALL"] for the init container. Note: NET_RAW was necessary for iptables to save the updates since I also included a drop ALL. BTW, using drop ALL is a strategy that increases the chance of a custom PSP being picked over a system-wide one since they're processed alphabetically.
From the linked issue, the definition for allowPrivilegeEscalation: false should be a non-issue. It's good to have since most PSPs will want to set defaultAllowPrivilegeEscalation: false and that will trigger a mutation if the container doesn't have it already defined.
Below is a copy of my desired PSP (I still want to get requiredDrop ALL to work) that you might find useful. You're welcome to use it for testing and include any variation of it for customer documentation - that's going to be necessary as more people adopt PSPs in their clusters.
This PSP works well with the manual injection, but currently fails with the auto-injection, probably for some mutation in the validation phase I can't figure out yet.
apiVersion: extensions/v1beta1
kind: PodSecurityPolicy
metadata:
  name: istio-poc.poc-services.pod-security
spec:
  privileged: false
  allowPrivilegeEscalation: false
  defaultAllowPrivilegeEscalation: false
  allowedCapabilities:
  - NET_ADMIN
  - NET_RAW
  defaultAddCapabilities: []
  requiredDropCapabilities:
  - ALL
  allowedUnsafeSysctls: []
  forbiddenSysctls: []
  allowedHostPaths: []
  hostIPC: false
  hostNetwork: false
  hostPID: false
  hostPorts: []
  fsGroup:
    rule: RunAsAny
  runAsUser:
    rule: MustRunAs
    ranges:
    - min: 0
      max: 0
    - min: 1337
      max: 1337
  seLinux:
    rule: RunAsAny
  supplementalGroups:
    rule: RunAsAny
  readOnlyRootFilesystem: false
  allowedFlexVolumes: []
  volumes:
  - configMap
  - emptyDir
  - projected
  - secret

Below is the fragment of the injected initContainer securityContext (I disabled requireDrop in the PSP so it will pass validation) so you can see the tweak I made to the sidecare injection configmap.
    securityContext:
      allowPrivilegeEscalation: false
      capabilities:
        add:
        - NET_ADMIN
        - NET_RAW
        drop:
        - ALL
      procMount: Default
      readOnlyRootFilesystem: false
      runAsUser: 0

I hope this information is helpful to you and also hope you can improve the PSP-securityContext config definitions for the init and proxy containers.

A follow-up. Although I set the initContainer.securityContext.capabilities.drop: ["ALL"], I failed to double-check the proxy container, which apparently did not have that setting. That caused it to mutate in the validation phase and fail. This is a case where the PSP  validation error message misled me to think the init container was wrong.
My recommendation is that the injector configmap define the bare minimum security it needs to run and then give guidance to the community on how to construct a PSP that will take this into account.

The starting point for any container should be capabilities.drop: ["ALL"] and then add only what is necessary, such as NET_BIND_SERVICE for any container that needs to bind to a port below 1024.
I found NET_ADMIN and NET_RAW are required for iptables when drop ALL is defined.
Neither container needs privilege escalation (normally).
The init container needs readOnlyRootFilesystem: false so it can save the iptables updates. The proxy container does not. This might be a sore point with some people who really want to lock down their file system.
Neither container needs any of the PSP host* settings enabled (yay!).
You'll see in my PSP that I specifically set two single-range entries for runAsUser with rule: MustRunAs. A bit ugly, but it describes exactly what's necessary for the init (root, UID: 0) and proxy (UID: 1337) containers. Any user will need to know these are required in any PSP they construct.
By setting rule: RunAsAny for fsGroup, supplementalGroups and seLinux, I avoided requiring them declared in my pod and/or container securityContext. This is often ok for most people. Securing the file system with these PSP settings will require a user to also update the sidecar injector configmap or it will fail PSP validation.

In my updated istio-sidecar-injector configmap, below are the updated securityContext fragments for the init and proxy sidecar containers that work with the PSP I provided earlier.
      initContainers:
      {{ "[[ if ne (annotation .ObjectMeta `sidecar.istio.io/interceptionMode` .ProxyConfig.InterceptionMode) \"NONE\" ]]" }}
{{- if not .Values.istio_cni.enabled }}
      - name: istio-init
...
        securityContext:
          capabilities:
            add:
            - NET_ADMIN
            - NET_RAW
            drop:
            - ALL
          {{- if .Values.global.proxy.privileged }}
          allowPrivilegeEscalation: true
          privileged: true
          {{- else }}
          allowPrivilegeEscalation: false
          {{- end }}
          readOnlyRootFilesystem: false
          runAsUser: 0
...

...
      containers:
      - name: istio-proxy
...
        securityContext:
          {{- if .Values.global.proxy.privileged }}
          allowPrivilegeEscalation: true
          privileged: true
          {{- else }}
          allowPrivilegeEscalation: false
          {{- end }}
          {{- if ne .Values.global.proxy.enableCoreDump true }}
          readOnlyRootFilesystem: true
          {{- end }}
          capabilities:
            drop:
            - ALL
          {{ "[[ if eq (annotation .ObjectMeta `sidecar.istio.io/interceptionMode` .ProxyConfig.InterceptionMode) \"TPROXY\" -]]" }}
            add:
            - NET_ADMIN
          runAsGroup: 1337
          {{ "[[ else -]]" }}
          {{ if and .Values.global.sds.enabled .Values.global.sds.useTrustworthyJwt }}
          runAsGroup: 1337
          {{- end }}
          runAsUser: 1337
          {{ "[[- end ]]" }}
...

Hope this helps...

An additional point on this one.  Things also go wrong if you specify any seccomp or apparmour annotations in your pod security policy.  Eg here is a restricted PSP that does work with the istio sidecar if you deploy it manually, but you cannot use this PSP in partnership with the sidecar injector:
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: restricted-psp
  annotations:
    seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default'
    apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default'
    seccomp.security.alpha.kubernetes.io/defaultProfileName:  'docker/default'
    apparmor.security.beta.kubernetes.io/defaultProfileName:  'runtime/default'
spec:
  privileged: false
  allowPrivilegeEscalation: false
  requiredDropCapabilities:
    - ALL
  volumes:
    - 'configMap'
    - 'emptyDir'
    - 'projected'
    - 'secret'
    - 'downwardAPI'
    - 'persistentVolumeClaim'
  hostNetwork: false
  hostIPC: false
  hostPID: false
  runAsUser:
    rule: 'MustRunAsNonRoot'
  seLinux:
    rule: 'RunAsAny'
  supplementalGroups:
    rule: 'MustRunAs'
    ranges:
      - min: 1
        max: 65535
  fsGroup:
    rule: 'MustRunAs'
    ranges:
      - min: 1
        max: 65535
  readOnlyRootFilesystem: true

The apparmour annotation is a particular issue, the PSP mutating plugin adds apparmour policy in the form of apparmor.security.beta.kubernetes.io/[container name]: runtime/default.  The istio injector runs following this and so you have one container with an apparmour policy and then the istio one without.  You can't manually add an apparmour annotation of apparmor.security.beta.kubernetes.io/istio-proxy: runtime/default to your deployment in advance as k8s validates that the istio-proxy container exists when the deployment is submitted and validation fails as the injector hasnt run yet.
I've successfully worked around all the other issues by customising the injector configmap in the helm chart to add in required configuration eg requiredDropCapabilities, privileged, allowPrivilegeEscalation, etc but I suspect solving for this apparmour point will to require larger changes to the injector.
For now to work around this we are manually templating the sidecar in advance so that we can have it functioning with a tight pod security policy which is not ideal.

@k-f - Oh man, that's a whole 'nother level of security pain. 😸
Thanks for confirming my approach. I too am tweaking the injector configmap so the pod succeeds during the validation phase.
It might be a bit of work, but I think the sidecar injector webhook can get the chosen PSP from the annotation. It can then perform it's own mutation on the injected containers. The logic "should" be "includable" in go so the webhook could call the exact same code to do the work.

/cc @yangminzhu

@ostromart @mattmi88 I am running into something similar. I followed the pointers given in this issue and the #11571 , however, it still doesn't work for me. Here're the sidecar-innjector configmap, the psp I am using.
# SecurityContext for the istio-init container
securityContext:
          runAsUser: 0
          #runAsNonRoot: false
          allowPrivilegeEscalation: false
          capabilities:
            add:
            - NET_ADMIN
        restartPolicy: Always

@ostromart @mattmi88 I am running into something similar. I followed the pointers given in this issue and the #11571 , however, it still doesn't work for me. Here're the sidecar-innjector configmap, the psp I am using.
# SecurityContext for the istio-init container
securityContext:
          runAsUser: 0
          #runAsNonRoot: false
          allowPrivilegeEscalation: false
          capabilities:
            add:
            - NET_ADMIN
        restartPolicy: Always

@ostromart @mattmi88 I am running into something similar. I followed the pointers given in this issue and the #11571 , however, it still doesn't work for me. Here're the sidecar-innjector configmap, the psp I am using.
# SecurityContext for the istio-init container from the injector configmap
securityContext:
          runAsUser: 0
          #runAsNonRoot: false
          allowPrivilegeEscalation: false
          capabilities:
            add:
            - NET_ADMIN
        restartPolicy: Always

# SecurityContext for the istio-proxy container from the injector configmap
securityContext:
          readOnlyRootFilesystem: true
          allowPrivilegeEscalation: false
          capabilities:
            add:
            - NET_ADMIN
          runAsGroup: 1337

@ostromart @mattmi88 I am running into something similar. I followed the pointers given in this issue and the #11571 , however, it still doesn't work for me. Here're the sidecar-innjector configmap, the psp I am using.
# SecurityContext for the istio-init container from the injector configmap
securityContext:
          runAsUser: 0
          #runAsNonRoot: false
          allowPrivilegeEscalation: false
          capabilities:
            add:
            - NET_ADMIN
        restartPolicy: Always

# SecurityContext for the istio-proxy container from the injector configmap
securityContext:
          readOnlyRootFilesystem: true
          allowPrivilegeEscalation: false
          capabilities:
            add:
            - NET_ADMIN
          runAsGroup: 1337

`psp for the service`

apiVersion: extensions/v1beta1
kind: PodSecurityPolicy
metadata:
  name: sidecar-injector-psp
spec:
  privileged: false
  allowPrivilegeEscalation: false
  allowedCapabilities:
  - NET_ADMIN
  fsGroup:
    rule: RunAsAny
  runAsUser:
    rule: RunAsAny
  seLinux:
    rule: RunAsAny
  supplementalGroups:
    rule: RunAsAny
  volumes:
  - configMap
  - downwardAPI
  - emptyDir
  - persistentVolumeClaim
  - projected
  - secret
  - flexVolume

My app is deployed in the namespace app-namespace. I am binding the service account of my app deployment to the psp given above as follows.
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: sidecar-injector-psp-role-binding
subjects:
- kind: Group
  apiGroup: rbac.authorization.k8s.io
  name: system:serviceaccounts:app-namespace
roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: ClusterRole
   name: sidecar-injector-psp-role

The error I see in the deployment yaml is shown below-
kubectl -n app-namespace get deploy sample-generic-app1 -o yaml

log-
- lastTransitionTime: 2019-06-02T19:54:08Z
    lastUpdateTime: 2019-06-02T19:54:08Z
    message: 'pods "sample-generic-app1-s9rsms"
      is forbidden: unable to validate against any pod security policy: [spec.volumes[7]:
      Invalid value: "flexVolume": flexVolume volumes are not allowed to be used capabilities.add:
      Invalid value: "NET_ADMIN": capability may not be added spec.initContainers[3].securityContext.allowPrivilegeEscalation:
      Invalid value: true: Allowing privilege escalation for containers is not allowed
      capabilities.add: Invalid value: "NET_ADMIN": capability may not be added capabilities.add:
      Invalid value: "NET_ADMIN": capability may not be added spec.initContainers[3].securityContext.allowPrivilegeEscalation:
      Invalid value: true: Allowing privilege escalation for containers is not allowed]'
    reason: FailedCreate
    status: "True"
    type: ReplicaFailure

I am clueless as to what might be wrong here. Would appreciate your help on this.

An update- changing allowPrivilegeEscalation from false to true in the psp for the app deployment makes it work-

Hey @neeleshkorade - Glad you figured it out (sorry for the delayed response). PSPs are maddening! Getting your PSP assigned usually requires a lot of trial-and-error. The error messages provided are usually from the wrong PSP that was assigned - and there's no way to determine which one was assigned when it fails; only when it succeeds do you get the annotation.
The only "trick" I've found is to make sure you explicitly set the add/drop capabilities in each container's securityContext so it matches the ones in the PSP (note: allowedCapabilities can be a superset of whatever's in your container's add set). I universally start with a drop: [ALL] and then add back in what I need to get the container to work right. With a drop: [ALL], you can almost guarantee your PSP will get picked since the usual global "unprivileged" PSP doesn't have it.
Another thing to look at is the difference in the container's securityContext in the Deployment object and the same entry in the Pod object. That will show you what the admission controller mutated when the pod was admitted. The goal is to eliminate any mutation between your Deployment definition and the resulting Pod definition. The admission controller performs the mutation phase first and if your PSP is the first one that doesn't mutate the pod, it wins; otherwise, the admission controller takes the first accessible PSP that mutates, which is often the global "unprivileged" PSP. Note that the Istio sidecar-auto-inject mutation webhook runs after the PSP mutation so the injected containers are considered and mutated by the PSP mutation. Later, when the PSP validation occurs, this is when things fail because the injected containers now fail validation.
Hope this helps your understanding and glad to hear you got it worked out.

@mattmi88 thanks much for another detailed comment. Your initial comment on this issue was helpful too to gain understanding of these intricacies of PSPs.
After my previous comment here, I got it working with allowPrivilegeEscalation set to false in my PSP. As you have explained very well, the trick was to explicitly set this under securityContext of individual containers in my deployment spec, including setting it in the istio-sidecar-injector ConfigMap for the istio containers that get injected through the webhook. This prevented any need for mutation during validation phase and my desired PSP matched.
Thanks again for all your help.


twitter video

i need same this script but for increase twitter video views...i need just open tweet page and click the play video and unmute sound..becuse i can`t find all elemint on twitter...thanx you doing great job

What's your discord?

i don`t have discord

Okay no problem.. you can find all element by switching to iframe..look for iframe then switch to iframe because videos are embedded..then look for play button

Excuse me for prolonging the topic ... Can you write a simplified code similar to the one you created for YouTube ... I just want him to visit the page directly and play the video with audio only

its hard for me to make time for all this as my semester is running..if you could support me I will try to make this script

how much support you need

Whatever you can afford, it's up to you. Just mail me at<EMAIL_ADDRESS>to talk further.


.Net: Feature feature flow planner

Motivation and Context

Description

Contribution Checklist

[ ] The code builds clean without any errors or warnings
[ ] The PR follows the SK Contribution Guidelines and the pre-submission formatting script raises no violations
[ ] All unit tests pass, and I have added new tests where possible
[ ] I didn't break anyone :smile:

/sk generate-pr-description prefix


Usecase for masthead image per post

Is there any use case of masthead image per post? If there is none probably having global (one per site) masthead is image enough as specified in settings.yml ?

cc @rdeago @daveaglick

I have per-post images on my blog. The best part is that they are completely optional: if you want just a site-wide masthead image, you configure just that and you're done. Then if / when you change your mind you can always add (or remove) per-post images later.

I know it is optional. However, just trying to get understanding on the use cases. For example, in my blog, I use one global mast head and I use photos inside posts.
Per post images on top of the post, under the post title makes sense IMO.
As per my view, I don't get the meaning of per post mast head image since mast head images are neither quite clearly presented nor complementing the content!

I suspect this is probably a non-issue because of the way metadata "falls through". As @rdeago pointed out, if you want a site-wide masthead you can define that in the global settings file and it'll trickle down to every page. If you want per-page mastheads, or just want to override the site-wide one for a page or two, you can do that too by defining directly in the page front-matter. The key here is flexibility. I took the position way back at the start of this project that it should present as many options to the user as possible and I shouldn't be making any assumptions about what they do or don't need or want.
I'll close this particular issue since it sounds like we've got it covered - but feel free to ping me to reopen it.


这是个依赖包,有没有demo运行起来看效果啊

这是个依赖包,有没有demo运行起来看效果啊

运行起来之后,怎么到处报错啊,怎么还有4000星啊

效果很棒，但是有很多bug!

Some bugs are due to the new version of support library of Google.
We'll try to fix them in the future.


supports configure workspace features with wildcard

Description
This PR adds support to configure workspace features with wildcard
Issues Resolved

Screenshot

Testing the changes

Check List

[ ] All tests pass

[ ] yarn test:jest
[ ] yarn test:jest_integration
[ ] yarn test:ftr

[ ] New functionality includes testing.
[ ] New functionality has been documented.
[ ] Update CHANGELOG.md
[ ] Commits are signed per the DCO using --signoff

Codecov Report

Merging #96 (1b52eb1) into workspace (64bcc8b) will decrease coverage by 11.08%.
Report is 1 commits behind head on workspace.
The diff coverage is n/a.

@@              Coverage Diff               @@
##           workspace      #96       +/-   ##
==============================================
- Coverage      65.81%   54.74%   -11.08%
==============================================
  Files           3334     1188     -2146
  Lines          64404    23825    -40579
  Branches       10248     3979     -6269
==============================================
- Hits           42385    13042    -29343
+ Misses         19451    10148     -9303
+ Partials        2568      635     -1933

Flag
Coverage Δ

Linux_1
?

Linux_3
?

Windows_1
?

Windows_2
54.74% <ø> (ø)

Windows_3
?

Windows_4
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Changed
Coverage Δ

...c/core/public/workspace/workspaces_service.mock.ts
100.00% <ø> (ø)

src/core/public/workspace/workspaces_service.ts
47.05% <ø> (ø)

src/core/server/index.ts
100.00% <ø> (ø)

... and 2503 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


pythonPackages.releases: init at 1.6.1

Motivation for this change
Another indirect dependency of azure-cli . Sorry for the PR spam, but until #60435 gets merged, I'm just adding leaf dependencies that aren't in nixpkgs yet.
This is sphinx extension for generating changelogs.
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[X] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

$ nix path-info -Sh ./result
/nix/store/lp5jrxlr7hbbq6inyl0sbqksr3ifpir6-python3.6-releases-1.6.1     165.4M
most of the size is sphinx ~165.2M

Pausing progress on this PR until I upstream some dependency fixes in targeted repos

A lot of the dependencies haven't been maintained in a while, and are hard to test...... I'm just going to close this. If azure-cli does need this, I'm just going to patch it out... all it helps with, is generating documentation which we don't care too much about.


Ignore casing when comparing address in OEV gateway

Here we should make sure to allow comparing EIP-55 address with lowercase one.

Here as well?
https://github.com/api3dao/airnode/blob/1c49d6fe602eb430093a73f8339ec0034afdbcae/packages/airnode-node/src/handlers/sign-oev-data.ts#L15
Though I'm actually having a hard time understanding how both addresses can be anything but Checksum addresses in the code you linked to:
https://github.com/api3dao/airnode/blob/1c49d6fe602eb430093a73f8339ec0034afdbcae/packages/airnode-node/src/workers/local-gateways/validation.ts#L277-L279
Here, airnodeAddress is the Checksum address since that is what ethers within getAirnodeWalletFromPrivateKey() returns. As for beacon.airnodeAddress, it seems this too has to be the Checksum address, since otherwise ethers verifyMessage would fail because the signature, generated with ethers signMessage (right?), returns the Checksum address.
https://github.com/api3dao/airnode/blob/1c49d6fe602eb430093a73f8339ec0034afdbcae/packages/airnode-node/src/workers/local-gateways/validation.ts#L177-L182

I actually wasn't sure just by looking at the code, so I assumed this is possible. If you've verified this is not an issue we can close this one.

I believe this works as expected.


IWF-124: Ignore empty output for collector

Description
Checklist

[ ] Code compiles correctly
[ ] Tests for the changes have been added
[ ] All tests passing
[x] This PR change is backwards-compatible
[ ] This PR CONTAINS a (planned) breaking change (it is not backwards compatible)

Related Issue
Closes #issue_number

lgtm, do we know we have existing test with output(we probably do) if no, can we change one of the test to return a non-nil output so that we can test the case?

basic_test.go:
	assertions.Equal(1, len(resp2.GetResults()))
conditional_close_test.go:
	assertions.Equal(1, len(resp2.GetResults()))
assertions.Equal(expectedOutput, resp2.GetResults()[0])
skip_start_test.go:
	assertions.Equal(1, len(resp2.GetResults()))


Error: The MAC address "..." seems to be in the wrong format.

Hi, I've been using your daemon successfully for years, thank you for that. A few days ago I bought new MiFlora sensors (same type). But now I'm getting validation errors with the new MAC addresses:
Xiaomi Mi Flora Plant Sensor MQTT Client/Daemon

[2024-02-21 19:53:17] Connecting to MQTT broker ...

Adding sensor to device list and testing connection ...
Name:          "ficus"
Device name:   "Flower care"
MAC address:   C4:7C:8D:6A:DC:34
Firmware:      3.3.5
[2024-02-21 19:53:21] Initial connection to Mi Flora sensor "ficus" (C4:7C:8D:6A:DC:34) successful

Adding sensor to device list and testing connection ...
Name:          "hangachter"
Device name:   "Flower care"
MAC address:   C4:7C:8D:6D:51:2C
[2024-02-21 19:53:23] Initial connection to Mi Flora sensor "hangachter" (C4:7C:8D:6D:51:2C) successful

Adding sensor to device list and testing connection ...
Internal name: "hangvoor"
MAC address:   C4:7C:8D:6D:3A:61
Firmware:      3.2.4
[2024-02-21 19:53:26] Initial connection to Mi Flora sensor "hangvoor" (C4:7C:8D:6D:3A:61) successful

Xiaomi Mi Flora Plant Sensor MQTT Client/Daemon
Source: https://github.com/ThomDietrich/miflora-mqtt-daemon

[2024-02-21 19:53:38] Connecting to MQTT broker ...

Adding sensor to device list and testing connection ...
Name:          "ficus"
Device name:   "Flower care"
MAC address:   C4:7C:8D:6A:DC:34
Firmware:      3.3.5
[2024-02-21 19:53:42] Initial connection to Mi Flora sensor "ficus" (C4:7C:8D:6A:DC:34) successful

Adding sensor to device list and testing connection ...
Name:          "hangachter"
Device name:   "Flower care"
Firmware:      3.2.4
[2024-02-21 19:53:44] Initial connection to Mi Flora sensor "hangachter" (C4:7C:8D:6D:51:2C) successful

Adding sensor to device list and testing connection ...
Name:          "hangvoor"
Device name:   "Flower care"
MAC address:   C4:7C:8D:6D:3A:61
Firmware:      3.2.4
[2024-02-21 19:53:46] Initial connection to Mi Flora sensor "hangvoor" (C4:7C:8D:6D:3A:61) successful

[2024-02-21 19:53:46] The MAC address "5C:85:7E:12:AB:60" seems to be in the wrong format. Please check your configuration

This seems to be related to this piece of code. But the RegExp does match the MAC addresses it trips over.
As you can see it connects properly to my old devices (starting with C4:...) but is tripping over any of the new devices. I've made sure the strings are correct and not hiding any copy/paste hidden special characters or something of the sorts.
I've tried this on several machines, they are all giving the same issues.

Hey!
This is odd indeed but when I run your log posting from above through he following it correctly accepts your "5C:..." mac address.
https://pythex.org/?regex=[0-9a-f]{2}%3A[0-9a-f]{2}%3A[0-9a-f]{2}%3A[0-9a-f]{2}%3A[0-9a-f]{2}%3A[0-9a-f]{2}&test_string=&ignorecase=1&multiline=0&dotall=0&verbose=0

I've made sure the strings are correct and not hiding any copy/paste hidden special characters or something of the sorts.

This would have been my guess... Very strange. Temporarily comment out this line and see what happens https://github.com/ThomDietrich/miflora-mqtt-daemon/blob/59cd5abc86c2d4d005a084ebba144ab4c0b73feb/miflora-mqtt-daemon.py#L182

Will try!


Update default params based on tuning search space

Checked all parameters with those taken into account in the selection of parameters during tuning (tuning/search_space.py).
For new continuous values took average values from those specified in the tuning search space selection.
For the rest I checked the documentation somewhere, somewhere I set them by analogy with similar classes.

Thanks for update, @PvtKaefsky!

In the file fedot_ind/core/models/recurrence/reccurence_extractor.py:

Line 8:1: F403 'from fedot_ind.core.metrics.metrics_implementation import ' used; unable to detect undefined names
Line 8:1: F401 'fedot_ind.core.metrics.metrics_implementation.' imported but unused
Line 48:61: E261 at least two spaces before inline comment

In the file fedot_ind/core/tuning/search_space.py:

Line 5:1: F401 'fedot_ind.core.repository.constanst_repository.DISTANCE_METRICS' imported but unused
Line 101:9: E123 closing bracket does not match indentation of opening bracket's line
Line 135:9: E123 closing bracket does not match indentation of opening bracket's line
Line 151:9: E123 closing bracket does not match indentation of opening bracket's line
Line 173:9: E123 closing bracket does not match indentation of opening bracket's line
Line 179:9: E123 closing bracket does not match indentation of opening bracket's line
Line 185:9: E123 closing bracket does not match indentation of opening bracket's line
Line 203:9: E123 closing bracket does not match indentation of opening bracket's line
Line 221:9: E123 closing bracket does not match indentation of opening bracket's line
Line 251:9: E123 closing bracket does not match indentation of opening bracket's line
Line 269:9: E123 closing bracket does not match indentation of opening bracket's line
Line 283:9: E123 closing bracket does not match indentation of opening bracket's line
Line 301:9: E123 closing bracket does not match indentation of opening bracket's line
Line 315:9: E123 closing bracket does not match indentation of opening bracket's line
Line 329:9: E123 closing bracket does not match indentation of opening bracket's line
Line 343:9: E123 closing bracket does not match indentation of opening bracket's line
Line 357:9: E123 closing bracket does not match indentation of opening bracket's line
Line 375:9: E123 closing bracket does not match indentation of opening bracket's line
Line 391:9: E123 closing bracket does not match indentation of opening bracket's line
Line 400:38: E203 whitespace before ','
Line 406:9: E123 closing bracket does not match indentation of opening bracket's line
Line 428:9: E123 closing bracket does not match indentation of opening bracket's line
Line 453:9: E123 closing bracket does not match indentation of opening bracket's line
Line 495:9: E123 closing bracket does not match indentation of opening bracket's line
Line 511:9: E123 closing bracket does not match indentation of opening bracket's line
Line 517:9: E123 closing bracket does not match indentation of opening bracket's line
Line 527:9: E123 closing bracket does not match indentation of opening bracket's line
Line 533:9: E123 closing bracket does not match indentation of opening bracket's line
Line 547:9: E123 closing bracket does not match indentation of opening bracket's line
Line 553:9: E123 closing bracket does not match indentation of opening bracket's line
Line 559:9: E123 closing bracket does not match indentation of opening bracket's line
Line 573:9: E123 closing bracket does not match indentation of opening bracket's line
Line 579:9: E123 closing bracket does not match indentation of opening bracket's line
Line 609:9: E123 closing bracket does not match indentation of opening bracket's line
Line 635:9: E123 closing bracket does not match indentation of opening bracket's line
Line 657:9: E123 closing bracket does not match indentation of opening bracket's line
Line 679:9: E123 closing bracket does not match indentation of opening bracket's line
Line 693:9: E123 closing bracket does not match indentation of opening bracket's line
Line 703:9: E123 closing bracket does not match indentation of opening bracket's line
Line 709:9: E123 closing bracket does not match indentation of opening bracket's line
Line 715:9: E123 closing bracket does not match indentation of opening bracket's line
Line 722:9: E123 closing bracket does not match indentation of opening bracket's line
Line 736:9: E123 closing bracket does not match indentation of opening bracket's line


Speaker and Emotional domain training

You've got 2 config files: speaker domain config for training on VCTK dataset, emotional domain config for training on ESD, yet training instructions mention ONLY speaker domain training.
Would you explain, please?

The speaker domain config is meant for VC training, nothing to do with vctk. And emotional config file if you want to retrain the emotion conversion network to get the emotion embeddings.

It's just that train/val list examples don´t contain any ESD dataset files

They do contain.pls check again.


The 'radius' function did not allow value 0 for 'blur' parameter

blur = blur || 15 assumed 15 if the configuration value for blur was 0, hence not allowing non-blurred circles.

Otherwise looks good! Please amend the commit after fixing and I'll merge.

Fixed it, can be merged now.

After fixing, please squash the commits into one.

rebase is your friend, no need to open a different PR

Failed to rebase; opened new PR, sorry.


ttwatch does not find new device

Hi i can not perform initial setup on tomtom touch
[vmindru@zetor ~]$ ttwatch --initial-setup
Unable to open watch
[vmindru@zetor ~]$ ttwatch --devices
[vmindru@zetor ~]$

[vmindru@zetor ~]$ lsusb | grep -i tom
Bus 003 Device 005: ID 1390:7480 TOMTOM B.V.
[vmindru@zetor ~]$

Mar 16 15:49:10 zetor kernel: usb 3-7: USB disconnect, device number 8
Mar 16 15:49:18 zetor kernel: usb 3-7: new full-speed USB device number 9 using xhci_hcd
Mar 16 15:49:18 zetor kernel: usb 3-7: New USB device found, idVendor=1390, idProduct=7480
Mar 16 15:49:18 zetor kernel: usb 3-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Mar 16 15:49:18 zetor kernel: usb 3-7: Product: TomTom Fitness Band
Mar 16 15:49:18 zetor kernel: usb 3-7: Manufacturer: TomTom
Mar 16 15:49:18 zetor kernel: usb 3-7: SerialNumber: JC2476H*****
Mar 16 15:49:18 zetor kernel: hid-generic 0003:1390:7480.0008: hiddev0,hidraw4: USB HID v1.01 Device [TomTom TomTom Fitness Band] on usb-0000:00:14.0-7/input0
Mar 16 15:49:18 zetor mtp-probe[4136]: checking bus 3, device 9: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-7"
Mar 16 15:49:18 zetor mtp-probe[4136]: bus: 3, device: 9 was not an MTP device

Does it work if you run sudo ttwatch --devices?

nope =( not a perms issue

I will try to install this now on my laptop. let's see how this goes.

same problem on Fedora 23

ok i got it partially working with
[vmindru@vmindru ttwatch]# git diff src/libttwatch.cpp
diff --git a/src/libttwatch.cpp b/src/libttwatch.cpp
index 985d2de..037914f 100644
--- a/src/libttwatch.cpp
+++ b/src/libttwatch.cpp
@@ -354,9 +354,9 @@ int ttwatch_open_device(libusb_device *device, const char *serial_or_name, TTWAT

     // ignore any non-TomTom devices
     // PID 0x7474 is Multisport and Multisport Cardio
-    if ((desc.idVendor  != TOMTOM_VENDOR_ID) ||
-        ((desc.idProduct != TOMTOM_MULTISPORT_PRODUCT_ID) &&
-         !IS_SPARK(desc.idProduct)))
+    if ((desc.idVendor  != TOMTOM_VENDOR_ID))
+//        ((desc.idProduct != TOMTOM_MULTISPORT_PRODUCT_ID) &&
+//         !IS_SPARK(desc.idProduct)))
     {
         *watch = 0;
         return TTWATCH_NotAWatch;
@@ -411,7 +411,7 @@ int ttwatch_open_device(libusb_device *device, const char *serial_or_name, TTWAT
     if (count > 0)
         ((char*)(*watch)->serial_number)[count] = 0;

-    RETURN_ERROR(ttwatch_send_startup_message_group(*watch));
+//    RETURN_ERROR(ttwatch_send_startup_message_group(*watch));

     // get the watch name
     if (ttwatch_get_watch_name(*watch, name, sizeof(name)) != TTWATCH_NoError)
[vmindru@vmindru ttwatch]#

Yes, that will make it partially work, but only because you're disabling all the error-checking to make sure it's a watch you're talking to.
What you have is a new watch that has a unsupported product ID, and seems to communicate differently.  I spotted this yesterday while going trough the code.  However missed the part to add it to the
IS_SPARK let me try that.

btw @ryanbinns  I think you are missing a parenthesis.

I don't think so. It compiled fine for me...

actually, you are right, I just patched "manually" and pasted something wrong. went just fine with git apply.  I feel we are one step closure :-D now the command just hangs for 20 seconds.
[root@vmindru ~]# time ttwatch --devices

real    0m20.029s
user    0m0.014s
sys     0m0.011s
[root@vmindru ~]# time ttwatch --devices

real    0m20.017s
user    0m0.003s
sys     0m0.008s
[root@vmindru ~]# time ttwatch -v
Unable to open watch

real    0m20.014s
user    0m0.003s
sys     0m0.006s
[root@vmindru ~]# time ttwatch -v
Unable to open watch

real    0m20.013s
user    0m0.003s
sys     0m0.006s
[root@vmindru ~]#

let me pull out an strace, maybe it will help.

here is the strace with hanging command after your patch suggestion http://pastebin.com/wP9yRhLC

I've never tried debugging using strace before, so I'm not sure how to interpret that. The delay generally only happens if the watch is busy. Can you verify that no other program is trying to use it? No other lingering copies of ttwatch in the background. I assume you're not trying to run the daemon at the moment.

@ryanbinns i don't seem to run the daemon at least i did not start it, let me try to make sure nothing else would be polling it.

Try running lsof | grep dev/bus/usb to see if there is a process that's holding the watch open. You could try reinserting it also.

Ok I have disabled again error-cheking and we are back where we where, I guess your assumption that the watch is using the Spark protocol is not true :( cause the ttwatch still can not talk to TomTom Touch :( .
[root@vmindru ttwatch]# ttwatch -v
PollingProduct ID:       0x00000000
BLE Version:      0
Firmware Version: 0.0.0
Unable to read watch name

btw at the runtime nothig else is opening the watch
[root@vmindru ttwatch]# lsof | grep dev/bus/usb
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
ttwatch   17038          root    9u      CHR            189,143       0t0  138292980 /dev/bus/usb/002/016
ttwatch   17038 17039    root    9u      CHR            189,143       0t0  138292980 /dev/bus/usb/002/016
[root@vmindru ttwatch]#
[root@vmindru 002]# lsusb | grep TOM
Bus 002 Device 016: ID 1390:7480 TOMTOM B.V.
[root@vmindru 002]#

Let me try to contact support and see if they are willing to share some info on the protocol this wristband is using.
VM

Your lsof output indicates there is a copy of ttwatch running that has a watch open. Or at least, it did a short time ago. Sometimes lsof takes a while to realise the device is closed. Does anything show up if you run ps -ef | grep ttwatch.
No, they won't help. I had to reverse engineer the watch myself to work out how to talk to it.

@ryanbinns  bastards :(

@ryanbinns  btw thanks a lot for trying to help here, if you want  we can switch to IM not to pollute this thread.  do you use IRC? if yes i am under nick:vmindru on freenode
[root@vmindru ~]# lsof | grep -i /dev/usb/
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
[root@vmindru ~]# ps ufax | grep ttwatch
root     27827  0.0  0.0 118488  2248 pts/8    S+   13:13   0:00                  \_ grep --color=auto ttwatch
[root@vmindru ~]#

No, I don't use any IM.
It seems like this watch uses a different protocol, so we may have to do a packet sniff while the Windows software is talking to the watch. Do you have a Windows PC you can use to do this? I used Wireshark/USBPcap to dump the raw packets and then went through them by hand with a hex editor to decipher what was going on. Hopefully the basic protocol will be similar, but there may be some low-level differences (the original vs Spark watches had a different packet size but the rest was the same, for example).

I will have to find a windows box :( and try to discover this part. I will let you know when/if I have any data.
Thank you for now!

Hello, did you guys managed to get the Tomtom Touch working with ttwatch eventually ?

Hello, I have a new watch (touch) and I have ttwatch working on my mac. I have the message "Unable to open watch" even with "sudo".
Do you have a solution to set up a new watch with ttwatch ?
Thank you,


Mutagen:  changes in container like Drupal config export can take up to 10 seconds to be discovered and sync to host

Is there an existing issue for this?

[X] I have searched the existing issues

Is your feature request related to a problem?
Summary
When i export drupal config with mutagen enabled it takes between 1 and 10 seconds for these changes to be reflected on the host. If I disable mutagen this delay goes away.
Long description
I have a very repetitive workflow when i'm site building in Drupal.

Do some site building in the admin UI.
ddev drush config:export -y
git status # Are the changes what i expect?
git add . && git commit

Without mutagen the above workflow is pretty routine. Once the config export is completed I can continue with a git status. However when i have mutagen enabled, it takes up to 10 seconds for git status to show the changes that I expect to see.
Context

ddev version v1.23.1
Apple M3, 24GB memory
Sonoma 14.4.1
Rancher Desktop

Steps to repeat

Have a drupal site, it doesn't really matter what site.
Make sure that git status is clean
Do something that changes the config files in the container like drush si minimal -y && drush cex -y.
Run git status a few times immediately afterwards, note the delay for git to see that there are changes.

Describe your solution
TBD
Describe alternatives
With rfay's help, here are two ways I've discovered how to solve
Workaround #1 - Run ddev mutagen sync immediately after doing a config export (this can be made into an alias command or a custom command, whatever suits you).
Workaround #2 - Change the polling interval of mutagen to something lower than 10 seconds
For further context on #2 see pollingInterval example. To try this, in .ddev/mutagen/mutagen.yaml (you neeed to remove the #ddev-generatedcomment if you want this to stick. note the ... indicates all the other stuff in the file that you shouldn't remove.
sync:
  defaults:
    ...
    watch:
      # Force Mutagen to poll every 1 second inside the container.
      pollingInterval: 1
     ...

Additional context
This was triaged in discord - ping @simesy if you want to discuss.

There were a number of things we learned while exploring this delay. The bottom line is that mutagen on Linux (which is what's inside the container) works on a polling basis, and only checks for fileystem changes every 10 seconds (by default).
This is explained in https://mutagen.io/documentation/synchronization/watching
On macOS, there is no delay because the operating system/filesystem provides more elegant techniques than polling. So changes on a macOS host system have no delay ending up inside the container.

ddev composer does its own mutagen sync after events happen, so ddev composer install, which would otherwise be susceptible to this, is not.
ddev drush cex as explained above, creates many files inside the container, and they will be caught on the next 10s interval. It's easy to work around this with ddev drush cex && ddev mutagen sync, forcing immediate sync.
ddev drush cex isn't a good candidate for a simple fix, although it could be replaced by another custom command. Since it's executed inside the container, it can't force a mutagen sync using ddev mutagen sync. However, a new custom command directive could be created which caused a mutagen sync after a command ran, and then the command-runner could handle that. This would be a nice outcome.
A nice way to see and understand mutagen syncing in both directions is ddev mutagen logs 2>&1 | grep Processing, which shows every file when it gets processed. If it returns immediately it may have to be run again.
Mutagen's actual important job is just to sync php files so that php-fpm doesn't have to wait to access them when it needs to. The time it spends syncing directories like a config export directory or node_modules directory is just wasted time anyway. Extending DDEV's mutagen setup to detect node_modules and automatically bind-mount those directories would be a great thing. I'm not sure how it could be done with Drupal's config-export unless we figured out how to parse PHP to figure out where the destination directory was. But it's certainly easy to take the config-sync directory and exclude it from mutagen syncing as described in https://ddev.readthedocs.io/en/stable/users/install/performance/#advanced-mutagen-configuration-options
When studying mutagen syncing or any other kind of mounting issues, it's nice to have two terminals open. One is ddev ssh into the container in the relevant directory, the other on the host. Just changing files or using the touch command in each place can show very quickly when syncing is happening and why.

I always thought this was because config:export deletes the entire exported directory contents and recreates them, even when only one config object changed. But I guess I was just hitting some random number between 1-10 seconds. I wonder what the CPU overhead is if this is dropped to the minimum of 1 second?
It would be neat if we could flag specific directories to use inotify watches for, but I don't think mutagen supports that.

config export directory or node_modules directory is just wasted time anyway

I'm not sure about this. I've worked on projects that have had several thousand files in the config export directory, and on projects where we're actively running nodejs apps. Mutagen makes a big difference. For example, wouldn't bind-mounting node_modules slow down storybook, playwright, and theme builds if they had to go through virtiofs? I know it's not as big a difference these days, but I think having different code syncing strategies within a project is likely to lead to confusion.

wouldn't bind-mounting node_modules slow down storybook, playwright, and theme builds if they had to go through virtiofs?

I guess you're right. There the nodejs usage is exactly like php-fpm usage, and with the same class of problem.

Nice detective work! I have noticed the delay with drush config:export but it never bothered me enough to dig down. Thanks for the workarounds.

I always thought this was because config:export deletes the entire exported directory contents and recreates them,

It's a lot of files but not that many, and so with mutagen turned on it always bugged me how slow it was. I generally had mutagen turned off for this reason.


Implement Add New functionality

Add new functionality should be implemented for Departments module first.
Then, this can be added for other modules as well.

Add new functionality added -> Departments section


Strange IE/Edge problem with keyboard input

Hi,
I'm having some very strange behaviour in IE/Edge when putting the editor inside a movable/resizable container (I'm using a javascript window manager of sorts).
The editor loads just fine and has the correct look, but when I focus it the keyboard input does not register properly -- all the keys are printed to my document body, not inside the editor.
If I right click (contextmenu) on the editor the problem goes away and I can type normally.
This is just a standard setup (from docs), the only difference is that I make use of focus/blur methods (whenever appropriate), ex:
        this.editor.getInputField().blur();

Works perfectly in Chrome and Firefox.
Does anyone have an idea as of what is going on or seen anything like this ?
Attaching a video so you get a better idea. https://www.youtube.com/watch?v=BBVzut3bO5A&feature=youtu.be

how about simulate an right click event? (a dirty fix but might work)

@Tedko I tried to emit a contextmenu event on the "input field", but that did not work :( I'm going to try hacking around some more

Looks like I'm affected by #2127 in this case

Is the body editable? If not, the only explanation for this that I can think of is a CSS problem causing the content of the editor to show up in the body. What does getValue() return after you type some stuff like this?

@marijnh
document.body.contentEditable returns inherit.
The text is inserted into the body element itself.

If not, the only explanation for this that I can think of is a CSS problem causing the content of the editor to show up in the body

It's definately not a positioning problem. The weird thing is that a right-click fixes the problem (but not when simulated).

Strange. But I'd say that this is a form of focus confusion that's an Edge bug, not something CodeMirror can help. (If you have evidence to the contrary, feel free to add further information.)

Leaving this here for others to see:
A very kind stranger contacted me with this exact same problem and it seems that the -webkit-user-select CSS property is the cause of this.


Modernization of Shape Op

Using shape inference, because it will be useful to ExpandOp.
There is also a refinement for ONNXOpBroadcastedShapeHelper::Compute which is currently only used when lowering from ONNX to Krnl, a phase during which there is no more question mark type for index expressions (they are only present in shape inference where we cannot gen code). By using ! isLiteral instead, we now get what was the true intent of the code.
In addition, there is a new parameter for this broadcast compute to accommodate what is needed for ExpandOp.

Keep in mind that this PR is build on top of the memset #884, so you see its changes here too. This will disappear once memset is merged in (which should be soon).

Jenkins Linux s390x Build #2076 [push] Modernization of Shape O... started at 09:44

Jenkins Linux amd64 Build #2078 [push] Modernization of Shape O... started at 08:44

Jenkins Linux ppc64le Build #1186 [push] Modernization of Shape O... started at 09:45

Jenkins Linux s390x Build #2076 [push] Modernization of Shape O... passed after 51 min

Jenkins Linux ppc64le Build #1186 [push] Modernization of Shape O... passed after 1 hr 4 min

Jenkins Linux amd64 Build #2078 [push] Modernization of Shape O... passed after 1 hr 27 min


IBM-Swift/Kitura#1069 replaced port 8090 by 8080

Codecov Report

Merging #69 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master     #69   +/-   ##
======================================
  Coverage    90.4%   90.4%
======================================
  Files           1       1
  Lines         198     198
======================================
  Hits          179     179
  Misses         19      19

Flag
Coverage Δ

#KituraSampleRouter
90.4% <ø> (ø)
:arrow_up:

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 2092c33...39c5613. Read the comment docs.


call driver inside function on_message_received

hi there
is possible to call driver inside function on_message_received ?
new_messages_observer.py

I just declare global driver than it works


WIP: Dockerfile

First task in #4. This currently builds, but doesn't run due to a missing auth file. Where do I get one of these? I don't understand the language int the README.

First task in #4. This currently builds, but doesn't run due to a missing auth file. Where do I get one of these? I don't understand the language int the README.

Add a folder named ".auth" (the folder needs the period in the name) and a json file name "me.json" inside of that folder. The json can be empty: {}. This should fix that issue.
The structure of that json is followed if you want to fill it out with test data for the time being.
[
{
"user_claims": [
{
"typ": "http://schemas.microsoft.com/identity/claims/objectidentifier",
"val": "123vhjvjh45"
},
{
"typ": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
"val"<EMAIL_ADDRESS>},
{
"typ": "name",
"val": "John Doe"
},
{
"typ": "preferred_username",
"val": "johndoe"
}
],
"id_token": "some_id_token_value"
}
]

@steinbro what do you want to do with this pr? We should probably get it up to date so it can be used for production. I'm happy to take it on if you don't have time.

I was assuming you were already using something of this sort for the current deployment, but if this is still useful then by all means update and merge it in. It's been long enough since I've touched it that you're probably better suited to pickit up than I.

Ok I think this might be ready for production. It seems to be working. I'll get it up on a temporary host name for testing.
@steinbro would you like to review before I merge?


Support UI "alerting a word in a message" feature

The current app highlights alerted messages/words. But a user cannot add/remove them. The web app has this feature

Working on the issue


graphql-auth examples - TypeError: definitions.trim is not a function

This PR presents a work around for: TypeError: definitions.trim is not a function.
Important: this solution only works with yarn - npm does not support the resolutions key
As a such, it is probably not appropriate to merge this PR, but this is a viable solution for yarn users.
The problem is triggered when graphql-sheild is enabled and<EMAIL_ADDRESS>is installed. See graphql-shield #198.
GraphQL Shield can be enabled  when package.json resolutions key specifies
"resolutions": {
  "graphql-middleware": "3.0.1"
}

If this resolution were merged into master, the READMEs would need to be modified to specify a dependency on yarn.

Let's wait a bit until the bug is fixed. In case it's not fixed within the next week, we can merge this.

@gihrig graphql-middleware has been updated with a fix. Can you upgrade to<EMAIL_ADDRESS>in your PR, please?

@timsuchanek 3.0.3 does not fix the issue.
@maticzav's fix was committed to branch perf. This is not included in 3.0.3

@gihrig @timsuchanek it’s the switch to jest branch

@maticzav Ok, so I cloned and built the jest branch (switch to jest is a commit message) and this has corrected the error. When a tagged build is available, I'll be happy to update my PR, but...
@timsuchanek When there is a fixed version of graphql-middleware, why not just update graphql-yoga?

@gihrig thank you for trying it out! Regarding graphql-yoga: it should auto update itself.

Is this PR still relevant then or can it be closed?

This PR can be closed. The problem/solution properly exists at graphql-middleware #198.


Optimize expression processing by removing Expression.Lambda() calls.

Currently we have a problem with lock contention caused by Expression.Lambda() calls. This MR changes API, to add ability to operate on Expression body and parameters separately for some utils to reduce number of calls to Expression.Lambda().
See: https://dev.miaplaza.com/miaplaza/website/-/issues/16248

@myk0la999 Can you adapt the example for CachedCompileLambda in the readme?
var isEvenDelegate = CachedExpressionCompiler.Instance.CachedCompileLambda(isEvenExpression);

Looks good to me now

Looks good to me (only two minor things left)


Where can I find acme.exe?

I'm looking for a simple way to create let's encrypt certificates on Windows. Where can I find acme.exe which is mentioned in the documentation?

You can find it on the releases tab, https://github.com/oocx/acme.net/releases

Will this work with Apache by the way?


Upgrade dependencies please

@jonataslaw
Please upgrade dependencies with the latest version of flutter
I am not able to use get_test with get with their latest version
example:
  get_test: ^3.13.3
  get: ^4.1.4

Getting error while pub get
Running "flutter pub get" in base_app...
Because get_test 3.13.3 depends on get ^3.13.0 and no versions of get_test match >3.13.3 <4.0.0, get_test ^3.13.3 requires get ^3.13.0.

So, because base_app depends on both get_test ^3.13.3 and get ^4.1.4, version solving failed.
pub get failed (1; So, because base_app depends on both get_test ^3.13.3 and get ^4.1.4, version solving failed.)
exit code 1

@jonataslaw there is a chance to update dependency to latest get_x package or there will be no support for tests?


Cannot make Shub Niggurath familiar

Describe the bug
I am on 1.19.2 server, its a private server so no heavy restrictions or anything like that, I just cannot get to actually making Shub Niggurath
To Reproduce
Steps to reproduce the behavior:

Do the normal chimera thing for goat familiar
Take goat to forest
Give it eye of ender and black dye
Once you give it flint, specifically flint it does not change the goats appearance and the whole thing fails, keeping the goat with half-transformed appearance.

Expected behavior
Goat becomes Shub Niggurath
Screenshots
n/a
System (please complete the following information):

Occultism Version: occultism-1.19.2-1.44.2
OS: Windows 10
Minecraft Version: 1.19
Modpack Link and Version, or list of mods: https://cdn.discordapp.com/attachments/1017273766943928370/1017273768592281650/Waifuwehr_Modpack.zip

Additional context
no additional context

This currently does not reproduce in a minimum setup: Occultism + optional and required dependencies.
It might be that another mod is intercepting the flint right-click on the goat by design or by accident.
What happens if you give it a flint first? Does the goat get horns?
If this reproduces for you in latest occultism in a clean setup please ping me or reopen this


returns null without any exception

trying to upload a photo but response returns null without any exception. couldn't figure out why.
 Future<String?> addPhotoToAws(File path) async {
    String bucketName = "*****";

    final response = await AwsS3.uploadFile(
      accessKey: "*****",
      secretKey: "******",
      file: path,
      bucket: bucketName,
      region: "eu-central-1",
    );

    return response;
  }

any idea?

@Serdnad i am getting 400 Bad request error when I debug the library. can you help?

did you find any solution for this? I'm having the same problem.

Same problem any solutions ?

Same problem any solutions ?

did you find any solution for this? I'm having the same problem.

unfortunately:( just decided to handle s3 logic in backend. this is how we solved the problem

@aligurelli try upgrade to the latest package version 1.5.0, I had a similar issue but it's resolved when I did upgrade the version to the latest

@aligurelli try upgrade to the latest package version 1.5.0, I had a similar issue but it's resolved when I did upgrade the version to the latest

thats a great news! but we already moved s3 handling to backend side. thank you for letting me now! if you are sure that problems has been fixed i can close the issue.

For me that was the fix, you can check it with your code if the problem is solved or not
and also verify the ACCESS KEY and the SECRET KEY used

I'm getting the same issue where I don't get any error message and it the string returned is null. So can anyone suggest any solution for that?

Because this is null
https://github.com/Serdnad/aws_s3_upload/blob/master/lib/aws_s3_upload.dart#L113

if (res.statusCode == 204) return '$endpoint/$uploadKey';

only 204 return result.

@Serdnad
are you still maintainance the project?

I'll occasionally review and merge PRs made against this repo, but most of work these days isn't around Dart/Flutter, so it's admittedly not a very high priority for me. @shinriyo
That said, I did notice you just opened a PR, I'll take a look. Thanks!

I am having same problem. @Serdnad @shinriyo
Getting 400 Bad request.

Still, is there any official fix, I'm having the same problem.

Apr 6, 2023

same issue happened with me did you get any solution?

Same issue


MBCord not showing in the Tray on ARCH with GNOME

when trying to run MBCord, no windows appear, and it will immediately exit with no visible errors
here is the log file
it gives the same result when using the appimage, AUR package, and building from source
[Thu Jan 12 2023 12:22:38 GMT-0500 (Eastern Standard Time)] info: DEBUG INFO:
Development Mode: false
Platform: linux (Version 6.1.4-arch1-1)
Architecture: x64
MBCord version: 3.0.6
Node version: 16.17.1
Electron version: 22.0.0
Chrome version: 108.0.5359

So does it work now?

it is but doesn't show up in the tray, unlike the mainline branch which did show up in the tray

No, the problem is i can't really help you with that. You need to ask @SoftwareRat for the fix.


updated text and dependencies

#9  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @leonchike and the rest of your teammates on  Graphite


When I press CTRL+S, all my folded code is automatically expanded, going crazy!

Please try with all extensions disabled.
If yo still see it, provide a sample code where this shows


[Event Request] Codeunit::"TransferOrder-Post Shipment" - Function CheckWarehouse - OnBeforeCheckWarehouse

We like to request the following Event:
Object: Codeunit::"TransferOrder-Post Shipment"
Function: CheckWarehouse
Publisher Event: OnBeforeCheckWarehouse
Reason: To implement custom business logic
Where is the event placed:
local procedure CheckWarehouse(TransLine: Record "Transfer Line")
var
WhseValidateSourceLine: Codeunit "Whse. Validate Source Line";
ShowError: Boolean;
IsHandled: Boolean;
begin
OnBeforeCheckWarehouse(TransLine, IsHandled);
if IsHandled then
exit;
GetLocation(TransLine."Transfer-from Code");
if Location."Require Pick" or Location."Require Shipment" then begin
if Location."Bin Mandatory" then
ShowError := true
Event Code:
[IntegrationEvent(false, false)]
local procedure OnBeforeCheckWarehouse(TransferLine: Record "Transfer Line"; var IsHandled: Boolean)
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.