Proposal: Containers should not be considered started until the TCP ports they expose are open

Consider the following situation: you are booting up a database container and then a web container which links to the database container. The database container may take a little time to start up, but you don't want to start the web container until the database has started.
A similar situation is where you are starting up a web server and want to wait until it has started before adding it to the load balancer.
Current solutions typically involve an entrypoint script that waits for the port to be open (see https://github.com/orchardup/fig/issues/374 or aanand/docker-wait, or even just a fixed /bin/sleep command.
I propose that a container should not be considered started or be able to be linked to until the exposed TCP ports are ready to accept connections. The docker run -d or docker start commands should also not return until they are ready. This will allow you to safely do things like:
$ docker run -d --name db postgres
$ docker run -d -l db:db mywebapp

I am not fully familiar with the internals of container state, so I'm not sure how this should be implemented. I expect it'll be something like a Ready attribute on a container's state, perhaps with a modification to the /container/(id)/wait endpoint that will wait for a container to be ready.
Backwards compatibility
Existing containers may not open exposed ports. Perhaps there could be a timeout, or it could be an opt-in feature in a next version, switching to default behaviour in a version after that.
Future
This could be expanded into some kind of health check system. E.g. don't consider a container started and ready to be linked to until it is responding to HTTP requests with code 200.

+1 on this.  This would be extremely helpful functionality.

+1

:+1:

:+1:

1, i also need this feature.

+1

:+1:

+1

:+1:

What does it mean for "TCP port" to be "open"? do you also need healthcheck to return TRUE? What if it is not HTTP based protocol?
All in all,  IMHO: implement this in docker is in the wrong layer of abstraction 。 What you actually need is a service manager.

Agree with @thefallentree , if you need such behaviour, it should be either implemented in the application itself or via some scripts which are invoked via CMD and hang in some kind of waiting loop till the according health check of connection is true.

A TCP port being open means it responds to TCP packets, generally to test
this you would send a packet with the SYN flag back but that's not the only
way.  It has nothing to do with HTTP.
On Mon, May 11, 2015 at 6:07 AM, Artem Sidorenko<EMAIL_ADDRESS>wrote:

Agree with @thefallentree https://github.com/thefallentree , if you
need such behaviour, it should be either implemented in the application
itself or via some scripts which are invoked via CMD and hang in some kind
of waiting loop till the according health check of connection is true.
—
Reply to this email directly or view it on GitHub
https://github.com/docker/docker/issues/7445#issuecomment-100869735.

--
Sincerely,
Colton Leekley-Winslow
651-242-9559
<EMAIL_ADDRESS>

But what about UDP? What about applications, which open the socket very fast, but start to provide a service a bit later? (I'm pretty sure somebody will have such case)
What we talk here about is more or less a functionality of an orchestrator which manages software deployments:

start SW deployment
wait till SW is deployed and services are started
continue with next steps (e.g. next SW deployment on the next instance)

We have a bit another picture with docker&microservices: you instantiate containers from image(s) and have some kind of initialization phase (which takes a while, otherwise we wouldn't have this discussion). But you don't have this classical SW deployment here, as its usually part of building the images. So this issue is about to have similar behaviour within docker, it might be a feature for fig/compose (docker/compose#374), which implements the abstraction layer around hypervisor. but IMHO not for hypervisor itself.
I deal with this problem like this (simple TCP check):
Dockerfile:
...
ENV START_CMD="some daemon"
ENV MYSQL_HOST="mysql"
ENV MYSQL_PORT="3306"
...
CMD /etc/docker/start
...

/etc/docker/start:
#!/bin/sh
# Wait for database to get available

MYSQL_LOOPS="10"

#wait for mysql
i=0
while ! nc $MYSQL_HOST $MYSQL_PORT >/dev/null 2>&1 < /dev/null; do
  i=`expr $i + 1`
  if [ $i -ge $MYSQL_LOOPS ]; then
    echo "$(date) - ${MYSQL_HOST}:${MYSQL_PORT} still not reachable, giving up"
    exit 1
  fi
  echo "$(date) - waiting for ${MYSQL_HOST}:${MYSQL_PORT}..."
  sleep 1
done

#continue with further steps

#start the daemon
exec $START_CMD

For the records, I have been using something similar to what @artem-sidorenko does, but more in the context of bringing up a cluster of containers e.g. before continuing the orchestration, make sure that service X on container Y is healthy.

No idea if this can be done, but I think it would be nice getting an event through the GET /events endpoint when a TCP port is being bound to, with the need to opt-in for each port when a container is created.

Having compose allow you to define conditions that must be met before that
service is considered started would be cool.  It does sounds like docker
itself may be the wrong place for this, should we create an issue in
compose?
On Wed, May 13, 2015 at 7:09 AM, Günter Zöchbauer<EMAIL_ADDRESS>wrote:

No idea if this can be done, but I think it would be nice getting an event
through the GET /events endpoint when a TCP port is being bound to, with
the need to opt-in for each port when a container is created.
—
Reply to this email directly or view it on GitHub
https://github.com/docker/docker/issues/7445#issuecomment-101642931.

--
Sincerely,
Colton Leekley-Winslow
651-242-9559
<EMAIL_ADDRESS>

Review with @crosbymichael @LK4D4 @duglin @diogomonica @calavera @cpuguy83 @vishh @ewindisch
It feels like this functionality should not be Docker's responsibility: there will never be enough use cases to support (TCP, UDP, why not HTTP?) and it would bring more technical complexity, when really it should be the caller's responsibility to make sure the container is "ready" as opposed to "started". This would rather be orchestration tools' responsibility.
Health checks are a great use case, but again, there seems to be consensus on the fact that they are the orchestration tools' responsibility. Ping @mavenugo what do you think?
Also there was an argument in favor, stating that docker users and docker image authors are separate people, and although one could expect from image authors to better handle failure to establish a handshake, one cannot expect that from docker users that simply want to run existing applications that aren't as failsafe. The counterargument is that there is no way to make failsafe, an application that is not. If a container is considered "started" when its tcp endpoint is listening, just so that all another application has to do is docker wait on a container, then if for some reason the container is not even able to create the tcp socket, the application that's docker waiting will fail anyway. So if you need network guarantees, it makes sense to decouple that from Docker and have that in a separate tool.
@aanand @bfirsh @vieux @aluzzardi @mavenugo what do you guys think? Could compose or swarm provide health checks and some guarantees?
I'm closing this, but feel free to continue the discussion. We will reconsider if needed.

@tiborvass While the discussion veered, I think the original proposal was primarily for the use case of the builtin linking functionality. The protocol is therefore not arbitrary -- TCP status is what determines if a link will succeed.

@tiborvass I think it would enormously beneficial for the container to have a standardised way of determining its health, even if its an orchestration system which actually runs the check. This would allow monitoring systems, etc, to determine whether the container was healthy, without having to know what was inside the container.
Perhaps this could be more generic than the proposal suggested here:
FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD python app.py
EXPOSE 80
HEALTHCHECK nc -z localhost 80

I'll open a new issue about this.

@bfirsh I think that having a container determine it's own health status, and having a standard way to report it out might make sense.
In particular, if the only thing that dockerd does is periodically run HEALTHCHECK and expose the result in the container INFO API call, that might work.
We should absolutely make it clear that the responsibility of doing actions based on the output of that check is of an external application, not docker.

Great suggestion

@artem-sidorenko I am trying to do something similar but I have 3 separate services that each have a linked postgres db container...
should I do something like this?
contentservicedb:
  image: postgres:latest
  command: ./postgres.sh <------------- run health checks here? or in contentservice?
contentservice:
  extends:
    file: build/service-content/compose.yml
    service: web
  ports:
    - "8080"
  links:
    - contentservicedb

postgres.sh
#!/bin/sh
i=0
while ! nc "postgres" "5432" >/dev/null 2>&1 < /dev/null; do
  i=`expr $i + 1`
  if [ $i -ge 50 ]; then
    echo "$(date) - postgres:5432 still not reachable, giving up"
    exit 1
  fi
  echo "$(date) - waiting for postgres:5432..."
  sleep 1
done
echo "postgres connection established"

@erichonkanen you should run the checks in contentservice, as contentservice should wait for DB to be ready. Besides that you should have a command to start the service itself after DB is ready

@artem-sidorenko when you say I should have a command that starts the service after DB is ready, do you mean just exit the loop and let compose spin it up? (thats all ive done so far w/docker-compose), or are you referring to any app-level stuff I need to run e.g. "python manage.my runserver" (this is indeed what runs inside my contentservice bootstrap.sh

@erichonkanen I mean something what gets called after db is ready, something like
#!/bin/sh
i=0
while ! nc "postgres" "5432" >/dev/null 2>&1 < /dev/null; do
  i=`expr $i + 1`
  if [ $i -ge 50 ]; then
    echo "$(date) - postgres:5432 still not reachable, giving up"
    exit 1
  fi
  echo "$(date) - waiting for postgres:5432..."
  sleep 1
done
echo "postgres connection established"
python manage.my runserver # <-- START APPLICATION

@artem-sidorenko ok great thanks a bunch!

in case anyone else arrives here looking to find a way to ensure postgres connection is open before proceeding with a webapp.. here is what I landed on and works nicely. (Add postgresql-client to the webapp Dockerfile)
#!/bin/sh
su -c "
    while ! psql --host=webappservicedb --username=postgres > /dev/null 2>&1; do
        echo 'Waiting for webappservicedb connection with postgres...'
        sleep 1;
    done;
    echo 'Connected to postgres...';"
su -c "python manage.py migrate"
su -c "python manage.py runserver <IP_ADDRESS>:8080"

@tiborvass I think the Engine should provide a high level way of doing health checks.
This should include something like, how to check (tcp connect, http, custom command), how many retries and delay between retries.
I don't think Swarm should be doing that - every machine should be checking its own containers and Swarm could actually leverage such checks.

decking has an option ready for doing this.

+1

:+1: for HEALTHCHECK instruction.

I don't feel this should be part of Docker itself especially as ports may or not be open depending on whatever conditions. This should be part of whatever is handling the startup of containers if they are meant to be run as a web service (e.g. Kubernetes).

@aluzzardi  Having the runtime health check the things its running sounds like a recipe for disaster if you really think about it ;)
It would be like giving a kid a credit card and letting them reconcile the bill, ya mom, i didn't spend all the money.
Having a runtime do healthchecks creates a SPOF.  Healthchecking should be a 'third party' app making sure the runtime is held accountable for what it is supposed to run.

+1

:+1:  Sort of defeats purpose of orchestration, if containers are started before containers it depends on are ready.


ARROW-14514: [R] UBSAN error on round kernel

Add base class OptionsWrapper to primary template of RoundOptionsWrapper.

Final update: Made a trivial change for better readability of primary templates in specializations.

Ok, I've got a CI that bumps into this. I'm still waiting for it to finish a (failing) build over at #11577, but I also created a combo of this branch + that branch and triggered a crossbow build at https://github.com/apache/arrow/pull/11578. If that passes (and #11577 fails) this is good to go

Thanks for working out the CI stuff! I tried to get a dynmically-linked ASan working but no dice there.

🎉 the sanitizer passed: https://github.com/apache/arrow/pull/11578#issuecomment-955112753

Thanks Jon!
The AppVeyor failure is unrelated, merging this now.


Milestone: Blog app: add devise

Hi Code Reviewer 👋
🟢 In this milestone:

[ ] Project requirements

[ ] Remove current_user method in ApplicationController, devise will provide us with one.
[ ] Install and setup devise.
[ ] Can register a new user.
[ ] User logs in with a combination of email and password.
[ ] Hashed password should be stored in the database.
[ ] Ask for confirmation of email.
[ ] Can reset password.
[ ] Modify the views in devise for registration and login to match the wireframes from the Sneak Peek and your styling.

@rloterh Thank you for approving and providing valuable feedback which I have implemented now 👍


Refactor create account drawer to toast and simplify tests

The create account flow is causing problems with our integration tests. There is already a design issue to review this drawer and design it as a toast. The UX is odd atm. So, to get past failing integration tests, I am going to change it to a toast matching the ones we use in the wallet now. It will make it easier to swap out for a new design when it is ready. Also, we have several tests for creating/switching accounts which are redundant so I'm going to consolidate into only what is needed.
Related design issue:
https://github.com/hirosystems/stacks-wallet-web/issues/2321
These failing tests are blocking my open PR to upgrade Connect pkgs and they seem to be failing on dev too:
https://github.com/hirosystems/stacks-wallet-web/pull/2363

Tested the issue on Pink Panther.Test Passed


[bug] Exit command does not save input to cache

Versions
onfire-cli: v1.2.2
firebase-tools:  v12.6.1
node: v20.5.1
Bug description

onfire exit command does not save inputs to cache
Steps to reproduce the behavior

Run onfire
Typeemulators:start --project demo-project-2
Hit 'Enter' to run the command
Exit the emulator
Type exit
Hit 'Enter' to exit
Run onfire
Command emulators:start --project demo-project-2 is not saved

Expected behavior

For the command emulators:start --project demo-project-2 to be saved
Additional context

Also fixed in #39


Clean up SocketAsyncEventArgs.

@davidsh, @stephentoub PTAL

LGTM

LGTM

A few coding style nitpicks.
LGTM


Bad lift  to a surface of the Delaunay triangulation of its domain of definition

Meanwhile I solved this issue

What ended up being the problem @empet? If there's anything that was maybe unclear in the documentation for example that could be good for me to fix up.

The docs are very good, but in an attempt to reproduce a surface triangulation I worked on a few years ago, with Delaunay.jl I made the following mistake:
The surface (x,y) ->f(x,y) was defined on the planar disk, D(0,2). Hence I started with:
r = collect(0.0:0.1:2)
θ = collect(0:π/30:2π)
x = vec(r * cos.(θ)')
y = vec(r * sin.(θ)')
z = f.(x, y)
pts=[[xe, ye] for (xe, ye) in zip(x,y)]
tri=triangulate(pts)

but got:
AssertionError: Duplicate points are not allowed.

Delaunay.jl as well as scipy.spatial.Delaunay, work very well with non-unique points.
I replaced pts by unique(pts) and  continued to transcribe the triangulation code  for  the former package, in terms of DelaunayTraingulation. But I  plotted the triangulated surface  using  tri.triangles, and the points onto the surface corresponding to initial, non-unique pts,  and obviuosly I got an ugly, non-smooth surface. When I clicked to send the formulated  issue, I realized what was wrong.
So I started with r=collect(0.05:0.1, 2), that led to unique pts and the triangulated surface was perfect.  :)
Final conclusion: DelaunayTrisngulation.jl is great!

I see - yes duplicate points can be a bit of a hassle to handle, so I don't try and resolve it internally as is done in scipy.spatial.Delaunay (and hence Delaunay.jl). unique! might've saved you some trouble here too since it would just update pts inplace.
I had initially implemented it so that if duplicated points were detected, triangulate was re-called with skip_points set to be the points that were detected as duplicates, but I ended up deciding to leave it to the user to resolve these degeneracies rather than handling it within the package. Proceeding with them in the algorithm is also not good since it can cause some infinite loops.
Thanks for letting me know about the solution! Appreciate the feedback too :).


raft: fix panic on MsgApp after log truncation

This PR fixes a panic and adds a regression test for the following scenario:

The flow of MsgApp from the leader to a follower is throttled (i.e. Inflights is full).
The leader doesn't fetch entries from storage and only periodically sends MsgApps with empty Entries.

The leader resets Progress.Next = Progress.Match+1, and is about to retry sending entries from this point.
In raft.maybeSendAppend it calls raftLog.term and gets 0 for the missing entry (instead of some indication/error that the log was truncated at this index). It also skips fetching entries (as in step 2), and goes ahead sending an empty MsgApp (with LogTerm = 0 and a fresh Commit index).
When the follower gets this MsgApp, in raftLog.maybeAppend it a) wrongly passes the matchTerm check because the 0 index matches the 0 corresponding to a missing entry in the local log, b) tries to bump the Commit index and panics because this index is beyond its local log's lastIndex().

This bug was introduced in 42419da5. Specifically, the steps (2) and (6) previously used to unconditionally fetch raftLog.entries(), which would return ErrCompacted in the above scenario, and prevent sending the problematic MsgApp. The commit above introduced a condition under which the ErrCompacted would be unnoticed.
This PR makes maybeSendAppend more aware of this compaction scenario, and prevents sending the problematic MsgApp.

@nvanbenschoten @tbg PTAL

@ahrtr PTAL

Github isn't liking my approval. It may be because I'm not a maintainer.


Sequential output

It would be helpful to have an example of a network configuration where a label is predicted for each element in the sequence. This is a common scenario in NLP (e.g. named entity recognition).

Agreed, an example would be nice - setting the seq_output=True argument to any of the recurrent layers should work but only test this for language modeling with softmax output.
Do you have a suggestion for a good sequence prediction dataset for NER or POS or something else that the example can be trained with?

Actually, language modeling would be one good example, as training data is practically unlimited.
For NER, the most commonly used English is the CoNLL 2003 data (http://www.cnts.ua.ac.be/conll2003/ner/). The annotations are publicly available; the corresponding text is available free of charge from NIST.
For Spanish and Dutch, there are publicly available NER data from CoNLL 2002: http://www.cnts.ua.ac.be/conll2002/ner/

setting the seq_output argument to any of the recurrent layers to true should work but I've only tested this for language modeling with softmax output.

I've tried to make this work using seq_output=True but I must be missing something:
tokenizer = Tokenizer(min_df=1, character=True)
data = tokenizer.fit_transform(["Lorem ipsum."])
X = [ data[0][:-1] ]
Y = [ data[0][1:]  ]
layers = [ OneHot(n_features=tokenizer.n_features),
           SimpleRecurrent(seq_output=True),
           Dense(size=tokenizer.n_features, activation='softmax')
          ]
model = RNN(layers=layers, cost='BinaryCrossEntropy')
model.fit(X, Y)

I get a dimension mismatch when compiling this ValueError: Input dimension mis-match. (input[0].shape[2] = 11, input[4].shape[2] = 14)
I've been reading the code in models.py and layers.py and can't quite see what going wrong here.

It looks like they have the sequence labelling there as an option with seq_output=True. Can someone provide a working examples using some dummy data or provided data as to how to make that work?

Update on this, clean output sequence support starts to get into a rabbit hole of re-factoring and/or interface ugliness that's still being figured out. Alpha support is working on the sequence_output branch but isn't clean yet.
Still chewing on this one to figure out the best way forward without compromising ease of use or overly complicating codebase.

Thanks! I like the idea of having separate classes, e.g. LangugeModel. Keeping all these independent optional argument like seq_output=True, y_pad=True, cost='seq_cce' and Y=T.imatrix() coordinated is going be a headache.

Hi there,
I'm building a RNN to assign a label for each element in the sequence (according to this blog post!) for activity recognition based on location.

Assume the shape of each input location is 4x1, and the sequence of length n has a shape of 10xn.
The shape of each output activity is 3x1, and each location has one output activity.
How would I setup the layers in the RNN? Is my input the Embedding layer and the output the Dense layer?
Thanks!


Exception with prayer times [Bug]

======== Exception caught by widgets library =======================================================
The following FormatException was thrown building HomeContentPrayerTimeItem(dirty):
ishaAngle's value isn't define
Describe the bug
when choosing "umm alqura uni, mekka" as a calculation method with "hanafi" as a madhab and "based on angle" as a high latitude rule the plugin returns an exception, this isn't supposed to happen.
To Reproduce
Steps to reproduce the behavior:

Try to read prayer times after setting calculation parameters as shown above.

Expected behavior
The plugin must not return this exception
Screenshots

Environment(please complete the following information):

Dart Language Version: 2.18.5
Flutter Version: 3.3.9
Adhan-Dart Version: 2.0.0-nullsafety.2

@iamriajul @KarimMohamed20 ?

Works fine for me when selecting Mecca with prayer time calculation Umm al-Qura. You may not be initializing everything in the correct sequence

@JMApps the problem is not with selecting "umm alqura uni, mekka"alone try to select it with other parameters I specified above, please

@saifkandil Works fine for me and doesn't throw any exception, Hanafi method for asr prayer is selected in the screenshot and Umm al-Qura for prayer times. But I didn't understand "based on angle".

@JMApps Sorry I didn't clarify it at first it's twilight angle for high latitude rule (I used it as Based on angle so that user can understand if correctly)
/// Rules for dealing with Fajr and Isha at places with high latitudes
enum HighLatitudeRule {
  /// Fajr will never be earlier than the middle of the night, and Isha will never be later than
  /// the middle of the night.
  middle_of_the_night,

  /// Fajr will never be earlier than the beginning of the last seventh of the night, and Isha will
  /// never be later than the end of hte first seventh of the night.
  seventh_of_the_night,

  /// Similar to [HighLatitudeRule.seventh_of_the_night], but instead of 1/7th, the faction
  /// of the night used is fajrAngle / 60 and ishaAngle/60.
  twilight_angle
}

In short, steps to reproduce is: set your High latitude rule -> twilight_angle
Calculation method -> Umm Al-qura University, Makkah
Madhab -> Hanafi

did you managed to reproduce it? @JMApps

Yes brother, I apologize for the late response. I reproduced it, you need to initialize: twilight_angle at the very end:
_prayerTimes = PrayerTimes.today(
_coordinates,
_prayerParams,
utcOffset: AppStyles.calculationUtcOffset[timeOffsetIndex],
);
_sunnahTimes = SunnahTimes(_prayerTimes);
_qibla = Qibla(_coordinates);
_prayerParams.highLatitudeRule = HighLatitudeRule.twilight_angle;


Add to the README that IPv6 isn't supported

I got netflow-collector up and running in my OPNSense + victoriametrics setup nicely, but noticed that a bunch of expected traffic flows were missing. It looks like this is because my ISP fully supports IPv6, and many services (such as Google, Cloudflare, etc) also do.
As I'm new to netflow, I then discovered that you need version 9 support for IPv6 flows: https://docs.opnsense.org/manual/netflow.html
Since this isn't obvious to a new reader, it would be nice if the readme said something like "Netflow V5 (IPv4 only)".

Hi @deviantintegral, thank you for an idea.
PRs are always welcome.
I personally deem this redundant, since "V5 only" is already mentioned in about section on right pane (Simple Netflow V5 exporter for prometheus) and also in How it works section (it uses V5 version for simplicity).


Added support for converting ImageBuf to OpenCV IplImage

Hey,
This PR is to add support for converting from ImageBuf to IplImage. I noticed there was the code to go one way, but not the other. If there's any bad code smell, let me know. I'm primarily a Python programmer, so there's a few things that I'm use to being able to do in Python that I can't seem to do in C++. It could be a limitation of the programmer (most likely), or the language.
If this successfully goes through, then I'll work on implementing OpenCV's Mat next.
I have tested this on a simple image that I grabbed from the net, so it works, but may break under more testing. I want to clean up the code more before I try throwing more image types at this.
One thing that isn't supported right now is the Half type because I'm not sure how is the best way to handle that. Suggestions welcome!

I think the openexr cmake stuff should be separated into a separate PR, if possible, and for that matter I think there are bugs in it.
The OpenCV part looks good, thanks for that.
How should we proceed? Do you want me to try cleaning it all up myself and merging? Or did you want to do the separation, fixing, etc., on your end?

I'll break this into two PRs, and submit the changes tonight. Thanks for the review!

Also... when you break it into 2 PRs... would you mind rebasing them on top of the current master, to clean up the history so that each one looks like a single linear commit rather than a tangle of merges?
If not, I can do that by hand when I merge it, it's no big deal. But if it's already a single commit right on top of the current master in the PR, I can integrate it with a single button and that reduces friction on my end.

Works for me. I was planning on rebasing as the last step after I get the lgtm.

Alright, quick heads up that I've split the PRs into two, fixed the cmake, and will tidy up the PRs tonight, or tomorrow.

Alright, PR cleaned up. I've added in half support, since that's supported on the OIIO side. I convert it to float, since OpenCV doesn't support half.
One thing I noticed when testing is that I get segfaults on bit depths higher than 8 int. As far as I understand from gdb, it isn't on my end, but I couldn't tell you for sure where it is.

A whole bunch of comments, sorry. I think I starting figuring that anybody doing interoperability between ImageBuf and OpenCV is probably concerned with performance, so making this conversion have as few unnecessary data copies as possible is going to be important.

Also, Scott, it would be great to get a CLA from you. I won't hold up these PRs for it, but when you get a chance, it would be good for all concerned to have in place as you contribute more code.

Thanks for the review!
I'll take a look at the fixes tonight (if I have any free time after work), and update the PR. Also, what's the process for getting the CLA to you?

CLA -- you can find it in the doc directory. Print, sign, scan/photo, email back to me privately. There is a CLA for personal use, and another "corporate" one that you should have your employers sign if your contributions are part of your job, or if there is any chance that they might think that they own the results of your coding even in off-hours (which is quite common, if you don't have a separate agreement with them stating that things you work on with your own time are yours alone).

There was nothing "wrong" with your code per se... but I think we'll be happy that we made this code as efficient as possible from the start.

@scott-wilson , did you ever push an update for this with the fixes?

Sorry, not yet. Had a lot of overtime at work, and now getting ready to
move. I can probably look into this again around mid October.
On Tue, Aug 30, 2016, 2:33 PM Larry Gritz<EMAIL_ADDRESS>wrote:

@scott-wilson https://github.com/scott-wilson , did you ever push an
update for this with the fixes?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/OpenImageIO/oiio/pull/1461#issuecomment-243532314,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACpYOOH38aygXBp0XaiZOcFhI--r7bn8ks5qlHSugaJpZM4JaPF9
.

No prob, take your time, I just wanted to make sure I wasn't accidentally dropping it on the floor.

Alright, back in the development seat (yay!)
I tried the following chunk of code:
if (spec.format.basetype == TypeDesc::UINT8 && tmp->storage() == ImageBuf::IMAGECACHE) {
    // Type is right and the IB is not backed by an ImageCache, so
    // directly read from the local data of the IB.
    cvSetData(dst, tmp->localpixels(), dst->widthStep);
    std::vector<unsigned char> data;
} else {
    // Either we are backed by an ImageCache, or we somehow still need a data
    // format conversion, so make a local copy with get_pixels.
    std::vector<unsigned char> data;
    data.resize (spec.width * spec.height * spec.depth * channels);
    tmp->get_pixels (ROI::All(), TypeDesc::INT8, &data[0]);
    cvSetData(dst, &data[0], dst->widthStep);
}

And I get the following compile error:
/home/scott/Repositories/oiio/src/libOpenImageIO/imagebufalgo_opencv.cpp: In function ‘IplImage* OpenImageIO::v1_7::ImageBufAlgo::to_IplImage(const OpenImageIO::v1_7::ImageBuf&)’:
/home/scott/Repositories/oiio/src/libOpenImageIO/imagebufalgo_opencv.cpp:185:49: error: invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive]
                 cvSetData(dst, tmp->localpixels(), dst->widthStep);
                                                 ^
In file included from /home/scott/Repositories/oiio/src/libOpenImageIO/imagebufalgo_opencv.cpp:37:0:
/usr/include/opencv2/core/core_c.h:403:14: error:   initializing argument 2 of ‘void cvSetData(CvArr*, void*, int)’ [-fpermissive]
 CVAPI(void)  cvSetData( CvArr* arr, void* data, int step );
              ^
make[2]: *** [src/libOpenImageIO/CMakeFiles/OpenImageIO.dir/imagebufalgo_opencv.cpp.o] Error 1
make[1]: *** [src/libOpenImageIO/CMakeFiles/OpenImageIO.dir/all] Error 2
make: *** [all] Error 2

I looked at the imagebuf.h/cpp files and it looks like it should support casting to a void or const void. I'm probably missing something, but I'm currently stuck at this point.

if (spec.format.basetype == TypeDesc::UINT8 && tmp->storage() == ImageBuf::IMAGECACHE) {
   // Type is right and the IB is not backed by an ImageCache, so

You sure you don't maybe have that backwards? The comment says "not backed by ImageCache", but the test is saying "if it is backed by an ImageCache".
How is tmp declared?
 You could just try a cast:
cvSetData(dst, (void *)tmp->localpixels(), dst->widthStep);

So, running into a strange issue with the output image. I have a feeling it may be due to a padding issue, or something along those lines. This appears in my earlier draft of the code, so I think it is skewing my results a little bit.
Code
IplImage *
ImageBufAlgo::to_IplImage (const ImageBuf &src)
{
#ifdef USE_OPENCV
    const ImageSpec &spec = src.spec();
    const ImageBuf *tmp = &src;
    ImageBuf localcopy;
    int channels = std::min(spec.nchannels, 4);

    // If the image has 4+ channels, then reduce to 4 channels, and use BGRA
    // order (OpenCV ordering).
    if (channels >=3) {
        // OpenCV images support up to 4 channels (BGRA)
        int channelorder[channels];

        // Set the channel order
        for (int i = 0; i < channels; ++i) {
            channelorder[i] = i;
        }

        channelorder[0] = 2;  // B
        channelorder[1] = 1;  // G
        channelorder[2] = 0;  // R

        if (!ImageBufAlgo::channels(localcopy, src, channels, &channelorder[0])) {
            DASSERT (0 && "Could not swap channels.");
            return NULL;
        }
        tmp = &localcopy;
    }

    // Create an IplImage to write to.
    CvSize size = cvSize(spec.width, spec.height);
    IplImage *dst;

    // Get the pixel data from the ImageBuf and send it to the IplImage.
    switch (spec.format.basetype) {
        case TypeDesc::UINT8: {
            dst = cvCreateImageHeader(size, IPL_DEPTH_8U, channels);

            if (!dst) {
                DASSERT (0 && "Could not create dst IplImage.");
                return NULL;
            }

            if (tmp->storage() != ImageBuf::IMAGECACHE) {
                // Type is right and the IB is not backed by an ImageCache, so
                // directly read from the local data of the IB.
                cvSetData(dst, (void *)tmp->localpixels(), dst->widthStep);
            } else {
                // Either we are backed by an ImageCache, or we somehow still
                // need a data format conversion, so make a local copy with
                // get_pixels.
                std::vector<unsigned char> data;
                data.resize (spec.width * spec.height * spec.depth * channels);
                tmp->get_pixels (ROI::All(), TypeDesc::INT8, &data[0]);
                cvSetData(dst, &data[0], dst->widthStep);
            }

            break;
        default:
            DASSERT (0 && "unknown TypeDesc");
            return NULL;
    }

    return dst;
#else
    return NULL;
#endif
}

Test code
#include <ostream>

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core_c.h>
#include <opencv2/highgui/highgui_c.h>
#include <OpenImageIO/imagebuf.h>
#include <OpenImageIO/imagebufalgo.h>

namespace oiio = OpenImageIO;

int main(int argc, char const *argv[]) {
  oiio::ImageBuf src("/home/scott/Projects/oiio-test/images/input.jpg");
  IplImage *dst = oiio::ImageBufAlgo::to_IplImage(src);
  cvSaveImage("/home/scott/Projects/oiio-test/images/output.jpg", dst);

  return 0;
}

Input images

Output images

My current theories

There's a difference in how the data is laid out. As far as I understand, OpenCV expects that a 3 channel image is laid out BGRBGRBGR... Is OpenImageIO doing any sort of padding?
I am passing the wrong step into the cvSetData (step calculation: row * type size * channels). I tried manually setting some values but I either get worse results, or OpenCV raises an exception and segfaults.

Is there something else that I could be doing wrong?

Thanks @cdstouter. That does the trick. The only things that I see that needs some figuring out are:

[ ] Support to convert from half (probably just convert to float).
[ ] Load the pixels in the function, rather than rely on them being loaded before hand.
[ ] I'm getting a slight colour difference between the input and output. I need to see what could be causing this.

One thing I noticed while doing this was that OpenCV doesn't seem to have any way we can store metadata in the IplImage. So, there's an ICCProfile tag in my input png with the colour curve, but that doesn't get transferred over to the IplImage, causing the difference in colour. I don't know how big of a problem this will be.

Hey @lgritz, not sure if you don't have any free time for review right now, or this fell to the side, but wanted to let you know that the code is ready for a round of review when you are able.

Sorry, I hadn't realized this got resolved.
In general, it LGTM and I would be ready to merge it, but when I try it on my end, I get a link error because cvCvtColor is not found. Maybe that's an OpenCV 2.x thing but I have 3.x installed? I think it needs to be updated to something that would work in opencv2 and 3, or appropriate #if's to switch based on versions.
Also, I'm no OpenCV expert, but is it also the case that we should be switching from IplImage to cv::Mat?

I think you want cv::cvtColor instead of cvCvtColor.

Alright, I'll install 3 and see if I can get the same problem you are. Also, I was planning on adding support for converting to IplImage (since we have converting from right now), then move onto converting to/from cv::Mat.

You don't need to install 3.  If you check on your end (with 2) that cv::cvtColor works, and I'll check on my end (opencv3), if it works both places, let's declare victory and merge!
And it's fine to do the cv::Mat in a second PR. Let's try to quickly get in what  you already have done.

Wait, it's worse than that. We
#include <opencv2/...>

It seems that we're really only set up for OpenCV2 in the first place.
Why does it work on my end at all?

I think I have a fix, hang on.

OK, forget all of that. The source should be fine. On my end, the problem seems to be the libs.
Would you be so kind as to try this patch on top of yours, and see if it works ok on your system?
--- a/src/cmake/modules/FindOpenCV.cmake
+++ b/src/cmake/modules/FindOpenCV.cmake
@@ -51,7 +51,7 @@ set (libdirs "${PROJECT_SOURCE_DIR}/lib"
              )

-set (opencv_components opencv_highgui opencv_core)
+set (opencv_components opencv_highgui opencv_imgproc opencv_core)
 if (NOT ${OpenCV_VERSION} VERSION_LESS 3.0.0)
     set (opencv_components opencv_videoio ${opencv_components})
 endif ()

OK, I have a full fix, verified by removing opencv3 and installing opencv2 on my end. Tonight I will merge your patch, and then my link fix right on top of it.

Merged into master.

Also backported to RB-1.7


fix deprecated warnings

this likely applies to the rest of imports

Hi @williamFalcon,
Thanks for contributing :)
A question - I'm not sure I understand the fix - I've tested the current code and your PR under conda 3.7, and I seem to get the DeprecatinoWarning when using the PR, but not when using the current code.
This seems to sit with the fact that in the current code, we first try from collections.abc import Iterable, which is the correct import for any version >2.7, and only use the deprecated form (from collections import Iterable) when that fails.
Can you please  explain which Python version / setup resulted in the deprecation warning using the current code?

Stale, closing.


Structuring Routes

Creating Separate Routes.js files for user , stack and posts
Type of issue:

[ ] Bug / Error
[x] Idea / Feature
[x] Improvement detail

Routes.js files should be break into separate routes files for post , stack, and user.

@psnmissaka should i work on this?

Possible Fix #115

@nihalmpatel  you should either open an issue before working on it or should ask before working on an issue because i am also working on this thing.

#127


Building similar model for Hindi(India) language.

I am trying to build similar model for Hindi(Devnagri). The pipeline in Deepmoji from building vocab to tokenizing, will it be the same or can we go for use of pre-trained word embeddings as provided by Fasttext and elmo to be used here. I am just curious as why building our own vocab appealed as a better way to target the problem than using word embeddings.
I had this notion that once we have converted the words to their respective numeric representation, the model will work accordingly. But your team has specifically gone for buildling dataset specific words, then tokenizing them and finally training. What does the model do when an Out-of-vocabulary(OOV) word comes in a test case?
Sorry for so many doubts. I am just beginning to understand emotion analysis.
Thanks!!

Closed as similar to #58. OOV tokens are encoded as a specific “unknown” token.


OTG on Windows 10/11 (libusb error: Operation not supported or unimplemented on this platform)

[X] I have read the FAQ.
[X] I have searched in existing issues.

Environment

OS: Windows 10 Pro & Windows 11 Pro
scrcpy version:

scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
Dependencies (compiled / linked):
    - SDL: 2.0.22 / 2.0.22
    - libavcodec: 59.18.100 / 59.18.100
    - libavformat: 59.16.100 / 59.16.100
    - libavutil: 57.17.100 / 57.17.100
    - libusb: - / 1.0.26

installation method: choco install scrcpy
device model: Samsung Galaxy Tab S7+ (SM-T970)
Android version: 13
More details:
- USB cable from PC to Tablet
- problem recreated with two systems (Win10 vs Win11) and two tablets (both same model/release) with and without adb installed

Describe the bug
While screen remoting works great (impressively clean implementation!), I am unable to get --otg mode to work. It appears like an incompatibility or limitation in Windows? There are a number of issues that smell similar but have cryptic titles and slightly different output, so I've made this as a new issue.
My aim is to get a clear answer as to whether otg support for windows is confirmed a no-go or not.
PS ~> scrcpy --otg
scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
INFO: Killing adb daemon (if any)...
INFO: USB device: 0D6F385C3731 (046d:c08b) Logitech G502 HERO SE
WARN: On this platform, libusb does not have hotplug capability; device disconnection will not be detected properly
ERROR: REGISTER_HID: libusb error: Entity not found
WARN: Register HID keyboard failed

PS (admin) ~>  scrcpy --otg -M
scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
INFO: Killing adb daemon (if any)...
INFO: USB device: 0D6F385C3731 (046d:c08b) Logitech G502 HERO SE
WARN: On this platform, libusb does not have hotplug capability; device disconnection will not be detected properly
ERROR: REGISTER_HID: libusb error: Entity not found
WARN: Register HID mouse failed

PS (admin) ~>  scrcpy --otg -Vdebug
scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
INFO: Killing adb daemon (if any)...
DEBUG: Open USB device 04e8:6860: libusb error: Operation not supported or unimplemented on this platform
DEBUG: USB device found:
DEBUG:     -->       0D6F385C3731 (046d:c08b)  Logitech G502 HERO SE
INFO: USB device: 0D6F385C3731 (046d:c08b) Logitech G502 HERO SE
WARN: On this platform, libusb does not have hotplug capability; device disconnection will not be detected properly
ERROR: REGISTER_HID: libusb error: Entity not found
WARN: Register HID keyboard failed

PS (admin) ~>  scrcpy --otg -s 0D6F385C3731 -Vdebug
scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
INFO: Killing adb daemon (if any)...
DEBUG: Open USB device 04e8:6860: libusb error: Operation not supported or unimplemented on this platform
DEBUG: USB device found:
DEBUG:     -->       0D6F385C3731 (046d:c08b)  Logitech G502 HERO SE
INFO: USB device: 0D6F385C3731 (046d:c08b) Logitech G502 HERO SE
WARN: On this platform, libusb does not have hotplug capability; device disconnection will not be detected properly
ERROR: REGISTER_HID: libusb error: Entity not found
WARN: Register HID keyboard failed

It seems it does not detect your device over USB (but it happens to detect a mouse, so of course it does not work).
Try without USB debugging enabled (#3050), or try on Linux.

Let's begin with USB debugging off, default mode:
PS ~ > scrcpy -Vdebug
scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
* daemon not running; starting now at tcp:5037
* daemon started successfully
ERROR: Could not find any ADB device
ERROR: Server connection failed

Well that's no good. Let's enable USB debugging.
PS ~ > scrcpy -Vdebug
scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
DEBUG: ADB device found:
DEBUG:     -->   (usb)           R52RA02S2VT            device  SM_T970
DEBUG: Device serial: R52RA02S2VT
DEBUG: Using server (portable): C:\ProgramData\chocolatey\lib\scrcpy\tools\scrcpy-server
C:\ProgramData\chocolatey\lib\scrcpy\tools\scrcpy-server: 1 file pushed, 0 skipped. 29.7 MB/s (41159 bytes in 0.001s)
[server] INFO: Device: samsung SM-T970 (Android 13)
[server] DEBUG: Using encoder: 'OMX.qcom.video.encoder.avc'
DEBUG: Server connected
DEBUG: Starting controller thread
DEBUG: Starting receiver thread
INFO: Renderer: direct3d
DEBUG: Trilinear filtering disabled (not an OpenGL renderer)
DEBUG: Using icon (portable): C:\ProgramData\chocolatey\lib\scrcpy\tools\icon.png
INFO: Initial texture: 2800x1752
DEBUG: Starting demuxer thread
DEBUG: User requested to quit
DEBUG: quit...
DEBUG: End of frames
DEBUG: Receiver stopped
[server] DEBUG: Controller stopped
WARN: Killing the server...
DEBUG: Server disconnected
DEBUG: Server terminated

Cool. But not the problem.
Let's try again, to remember where we began:
PS ~ > scrcpy --otg -Vdebug
scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
INFO: Killing adb daemon (if any)...
DEBUG: Open USB device 04e8:6860: libusb error: Operation not supported or unimplemented on this platform
DEBUG: USB device found:
DEBUG:     -->       0D6F385C3731 (046d:c08b)  Logitech G502 HERO SE
INFO: USB device: 0D6F385C3731 (046d:c08b) Logitech G502 HERO SE
WARN: On this platform, libusb does not have hotplug capability; device disconnection will not be detected properly
ERROR: REGISTER_HID: libusb error: Entity not found
WARN: Register HID keyboard failed

Right.
disables USB debugging again
PS ~ > scrcpy --otg -Vdebug
scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
INFO: Killing adb daemon (if any)...
DEBUG: Open USB device 04e8:6860: libusb error: Operation not supported or unimplemented on this platform
DEBUG: USB device found:
DEBUG:     -->       0D6F385C3731 (046d:c08b)  Logitech G502 HERO SE
INFO: USB device: 0D6F385C3731 (046d:c08b) Logitech G502 HERO SE
WARN: On this platform, libusb does not have hotplug capability; device disconnection will not be detected properly
ERROR: REGISTER_HID: libusb error: Entity not found
WARN: Register HID keyboard failed

The exact same behavior? So the problem is still with scrcpy.
What benefit would trying on linux offer?

I just tried this on my Windows 11 and Galaxy S22 Ultra. It didn't worked at first, but reading the other issues I saw users complaining about different ADB/Device drivers for their device.
With the official Samsung Android USB drivers installed it didn't work. I uninstall this package from Control panel, then I uninstalled the drivers from Windows Device Manager.
After uninstalling all drivers, it works:

Windows 11 + S22 Ultra Android 13 + without official Samsung Android drivers - it works excellent.
With the official Samsung drivers I get the following error:

@geekaz01d I recommend you to try different ADB drivers for your device and see if it works.
Offtopic: @rom1v I appreciate all your work, excellent application and blog posts about this app development. I learned a lot from you! Congrats!

Ok, I've played a little bit more with the drivers, and at least for me, with the Google USB Driver everything works (ADB, scrcpy, scrcpy --otg), but you need to do some extra steps to install them.

Uninstall all Android USB drivers from Windows Control panel.
Open Device Manager and uninstall all drivers for your Android device
Download and unzip the Google USB Driver ZIP file from here: https://developer.android.com/studio/run/win-usb
Open Device manager -> Right click your device -> Update driver -> Browse for drivers on your computer -> Browse the unzipped folder -> Let me pick from a list of available drivers -> Show all devices -> Have disk -> Browse for android_winusb.inf from unzipped folder -> Choose Android ADB Interface

https://user-images.githubusercontent.com/3103859/210287349-fd0e3cbc-5506-4d75-a4a9-f6baada2ceeb.mp4

Try without USB debugging enabled (#3050), or try on Linux.

I installed Ubuntu 22.04 on my laptop and tested scrcpy...
ubuntu_laptop:~$ scrcpy --otg
scrcpy 1.21 <https://github.com/Genymobile/scrcpy>
scrcpy: unrecognized option '--otg'

ubuntu_laptop:~$ scrcpy --version
scrcpy 1.21 <https://github.com/Genymobile/scrcpy>
scrcpy 1.21

dependencies:
 - SDL 2.0.16
 - libavcodec 58.134.100
 - libavformat 58.76.100
 - libavutil 56.70.100
 - libavdevice 58.13.100
ubuntu_laptop:~$ scrcpy --Vdebug
scrcpy 1.21 <https://github.com/Genymobile/scrcpy>
scrcpy: unrecognized option '--Vdebug'

ubuntu_laptop:~$ scrcpy -Vdebug
scrcpy 1.21 <https://github.com/Genymobile/scrcpy>
DEBUG: Device serial: R52RA02S2VT
DEBUG: Using server: /usr/share/scrcpy/scrcpy-server
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 1.6 MB/s (39473 bytes in 0.023s)
DEBUG: Screensaver enabled
[server] INFO: Device: samsung SM-T970 (Android 13)
DEBUG: Server connected
DEBUG: Starting controller thread
DEBUG: Starting receiver thread
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 22.0.5
INFO: Trilinear filtering enabled
DEBUG: Using icon: /usr/share/icons/hicolor/256x256/apps/scrcpy.png
INFO: Initial texture: 2800x1752
DEBUG: Starting stream thread
[server] DEBUG: Using encoder: 'OMX.qcom.video.encoder.avc'
DEBUG: User requested to quit
DEBUG: quit...
WARN: Killing the server...
DEBUG: Server disconnected
DEBUG: Server terminated
DEBUG: End of frames
DEBUG: Receiver stopped

Thank you for the details :+1:

I installed Ubuntu 22.04 on my laptop and tested scrcpy...

The packaged scrcpy version (1.21) is too old. Uninstall the package and install the latest version manually: https://github.com/Genymobile/scrcpy/blob/master/BUILD.md#simple

Ok, I've played a little bit more with the drivers, and at least for me, with the Google USB Driver everything works (ADB, scrcpy, scrcpy --otg), but you need to do some extra steps to install them.

This is definitely the key to the issue. USB Debugging has to be on, because it is using the adb device to connect. Once I found that device and forced it to use the downloaded google version, I was able to get it to work. A window pops up with an android icon and I have mouse control of the tablet.
So the challenge for scrcpy on windows is to either implement the driver or test around the more commonly installed one. This is a fairly heavy handed workaround.
Great work!

USB Debugging has to be on, because it is using the adb device to connect.

(not in OTG mode)

I just added a FAQ entry: https://github.com/Genymobile/scrcpy/blob/master/FAQ.md#hidotg-issues-on-windows

Hey guys,
i'm using a workbased laptop (HP EliteBook Win10) and a workbased tablet (Panasonic FZ-A3) and i would love to use the keyboard / mouse HID configuration, since i can't root my tablet or make USB Debugging work.
Here's what i get:

What do i choose in the tablet for the USB: File Transfer / PTP / Nothing ? Thanks.

If scrcpy can't be made to work with those samsung drivers, it would be nice if it could detect them to identify the issue.
Thanks

Okay, I am having the same issue as the original poster, but downloading the Google Driver did nothing. I just want to get a HID mouse to work.
I am currently using scrcpy v2.1.1, I am on Windows 10 and I am connecting to a Samsung 23

Could you please retry with scrcpy v2.4? Refs https://github.com/Genymobile/scrcpy/pull/4713#issuecomment-1974296780

It detected your logitech gaming mouse as USB device.
Pass the serial of your Xiaomi phone:
scrcpy --otg -s 371b85e0

It'd be nice if it could detect these HID type of devices and ignore them, or have a config file where it could be manually listed to eliminate requiring a special command line each time.
That said, I do use a batch file for this to automate connecting my device via IP debugging.  I kind of wish it'd be incorporated.  I might just create something for this myself one day... 🙂

It'd be nice if it could detect these HID type of devices and ignore them

Yes, it should only list adb devices. It's not that straightforward to detect unambiguously IIRC). PR welcome.
There is an environment variable ANDROID_SERIAL which can replace the -s. Unfortunately, it's not used for OTG mode (PR welcome too :wink:).

I followed all the steps above for a Google Pixel 6a and it didn't work. I installed the Google Driver as shown above. I also tried this on Ubuntu and while it ran, I just got a blank black box. Here's the Windows output:

I also tried this on Ubuntu and while it ran, I just got a blank black box
What do you mean "a blank black box"?

hello friends I downloaded and ran the scrcpy software in Windows 7, but the program gives an error. (I have also turned on debugging on the mobile phone).

@Abdollah0011 #4391

Hello, I want to have the image of the phone screen and control the phone with the otg function with the mouse and keyboard, is this possible?

https://github.com/Genymobile/scrcpy/blob/master/doc/otg.md#control-only

I'm confused by the OTG mode.
The description says using this mode doesn't require adb(USB debugging) enabled. However, while adb disabled, only unrelated USB devices are detected by scrcpy.
I have to enable adb to get my phone show up on list.
After enabled adb it work as expected, but it's against the purpose of this mode. Also, the app I'd control won't work while adb enabled.
My phone is Oneplus aceV3. I've toggled the OTG support, and m&k direct connecting to phone can work.

using this mode doesn't require adb(USB debugging) enabled

Except on Windows. I guess it's possible to patch the driver using Zidig but I haven't tried.


DT-944: Fix chairperson edit DAC feature

Addresses
https://broadworkbench.atlassian.net/browse/DT-944
Summary
This PR makes a number of changes in function and style. The functional changes are intentional. As a business rule, we allow for Chairs to make changes to their own DACs in terms of both membership and other related details. There are also a number of minor style fixes.
Requires corresponding Consent PR: https://github.com/DataBiosphere/consent/pull/2419
Testing Notes

Update the env in your local config.json to be prod so that you're seeing what we would see in production.
Ensure you're testing with a user that does not have Admin permissions. Admins can edit anything so you wouldn't see the current bug in that case.
There are actually two versions of this page, one in prod, one in non-prod. To see the same page in non-prod, change your env config to dev or staging.

Prod: New screen

Prod: Old screen

Non-prod: New screen

Non-prod: Old screen

Have you read Terra's Contributing Guide lately? If not, do that first.

Label PR with a Jira ticket number and include a link to the ticket
Label PR with a security risk modifier [no, low, medium, high]
PR describes scope of changes
Get a minimum of one thumbs worth of review, preferably two if enough team members are available
Get PO sign-off for all non-trivial UI or workflow changes
Verify all tests go green
Test this change deployed correctly and works on dev environment after deployment

I created https://broadworkbench.atlassian.net/browse/DT-959 to address the lack of unit tests so we can get this bug fix into the next release.


trainning error

Why am I training 100 rounds and my accuracy is still around 0.4

I have the same iusse


Use @adobe/jwt-auth 0.3.0 or greater

Description
I recently released @adobe/jwt-auth 0.3.0 which expires the temporary JWT it creates after 5 minutes. This is a security improvement I hope everyone move to.
Related Issue
https://github.com/adobe/jwt-auth/issues/23
Motivation and Context
The JWT token was valid for 24 hours but since we create the bearer token shortly after creating the JWT and the JWT is never re-used it should expire quickly.
How Has This Been Tested?
Generated an auth token, grabbed the JWT and tried to use it after 5 minutes elapsed time. It was rejected.
Screenshots (if appropriate):
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Thanks @macdonst!

@Aaronius np, I did a scan of what repos were using the package so I could let folks know about the change. You may want to setup https://greenkeeper.io/ on the repo which will automatically scan for new versions of dependencies and send you PR's when things change. It's installed for all of the adobe org projects.


Workers should be able to use the Problems API

Workers should be able to use the Problems API.
This means that we should provide the same dependency injection features as a fully-fledged daemon.

Duplicate of #26954


[SUPPORT] Hudi Spark WEB UI [SQL / DataFrame]  Details for Query, It does not display detailed indicator information

Describe the problem you faced
if I insert the hive table , spark web ui can display indicator information.

but if I insert hudi table , The DAG diagram is not expanded  and  it does not display detailed indicator information

To Reproduce
Expected behavior
Environment Description

Hudi version :

master

Spark version :
3.3.1

Hive version :

3.1.3

Hadoop version :
3.2.1

Storage (HDFS/S3/GCS..) :
HDFS

Running on Docker? (yes/no) :
No

Additional context
I change InsertIntoHoodieTableCommand super  class to  extends DataWritingCommand.

The DAG diagram is expanded. However, the other operator indicators are still not shown.

My question is that I can make the InsertIntoHoodieTableCommand node have metrics and just initialize the Metric. but why are other Nodes, such as Exchange not showing the metrics that they already have. if I can figure this out, I can mention a PR to add a feature.
Stacktrace
Add the stacktrace of the error.

cc @boneanxs for digging into the details who is an experienced Spark engineer.

@boneanxs  PTAL, thanks.

Hey @chestnutqiang, thanks for raising this. This is a pain issue in Spark-HUDI side to show metrics, the reason is mainly caused by we need to convert logicalPlan -> SparkPlan -> DataSet in org.apache.spark.sql.hudi.command.InsertIntoHoodieTableCommand#run, and we directly use Dataset.ofRows to do so:
    val (success, _, _, _, _, _) = HoodieSparkSqlWriter.write(sparkSession.sqlContext, mode, config, Dataset.ofRows(sparkSession, alignedQuery))

Dataset.ofRows will create a new QueryExecution, whereas metrics cannot be shared with InsertIntoHoodieTableCommand.
I think changing InsertIntoHoodieTableCommand extends to DataWritingCommand is necessary where spark can directly convert it's child to SparkPlan, but we still need to change SparkPlan -> DataSet whereas HoodieSparkSqlWriter.write can directly use it.
I think this is possible, you can give a shot!

@boneanxs   Thank you very much for your answer.
SparkPlan -> DataSet   What do I need to do?

@chestnutqiang @boneanxs I have also been confused lately about how Spark obtains metrics such as inputBytes, inputRecords, and outputRecords when executing Hudi's insert command. Because we have a cloud computing platform that integrates Spark and Hudi, if we cannot obtain these metrics, we cannot achieve billing functionality. If there is any progress on the issue discussed, could you share it here? Thank you very much.

but we still need to change SparkPlan -> DataSet

@boneanxs Hi, great man, How to understand this step【 we still need to change SparkPlan -> DataSet】. Can you give some suggestions and tips. Thanks!

I have also been confused lately about how Spark obtains metrics such as inputBytes, inputRecords, and outputRecords when executing Hudi's insert command

Hey @watermelon12138 The insert command must provide metrics itself(I mean all output metrics, like numFiles, numBytes, etc), you can check InsertIntoHadoopFsRelationCommand inside spark for an example. Spark will handle metrics of the subquery. In HUDI side, we just need to ensure subquery use the same queryExecution.

we still need to change SparkPlan -> DataSet

I'm not yet to fully investigate this, Just at first glance and thinking we can call SparkPlan.execute to get RDD[InternalRow], and then use SparkRowSerDe to convert it to DataSet[Row], not sure this is the best way and whether there's any performance loss.

@boneanxs Thank you for sharing these. It has helped me a lot.


README Update: Missing Support Information for Ubuntu 22.04

Description of the Bug:
The current README file under the "OS Support" section lists the following supported operating systems:
RHEL 7 on x86_64, PPC64, and PPC64LE
RHEL 8 on x86_64 and PPC64LE
UBUNTU 20 on x86_64 and PPC64LE
SLES 15 on x86_64 and PPC64LE
However, it does not mention Ubuntu 22.04 on x86_64 and PPC64LE architectures. As of IBM Storage Scale version 5.2.1, Ubuntu 22.04 is fully supported on these architectures when using the Ansible-based installer. Clients expect this support to be reflected in the README for this project.
Steps to Reproduce:
Open the project's README file.
Navigate to the "OS Support" section.
Observe the absence of Ubuntu 22.04 as a supported platform.
Expected Behavior: The README should explicitly mention that Ubuntu 22.04 on x86_64 and PPC64LE is supported
Environment:
IBM Storage Scale 5.2.1
Ubuntu 22.04 on x86_64 and PPC64LE

/assign


img_transform,numpy_params missing

while running extract_img_features_attention.py it assumes that
"  dict numpy_params (containing W_img and b_img taken from the img_transform
step in a well-performing non-attention model) is placed in coco/data/img_features_attention/transform_params." how to do this?

@fregu856 @nive2  Trying to run the code extract_img_features_attention.py.
Please advice how to get “dict numpy_params”.Which well performing non-attention model should I use.Thanks.

Unfortunately, I don't have access to this file anymore. I apologize for this, ans for my terribly late response.
//
Fredrik


[Logic]: crazy tracy bracelet-less requires ocarina

Just ran into an ER seed wanting me to teleport into that spot with just mambo.

Oops, sorry! Not sure how I overlooked that.


Fix #92 Crash on iOS 5.1.1

'kSecAttrSynchronizable' is not defined on iOS5, 6.
see 'SecItem.h'

extern CFTypeRef kSecAttrSynchronizable
__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);

Coverage increased (+0.15%) to 70.59% when pulling 78bfd364a9567c8e31d9a48330c8fb20e7b692e8 on bradex:issues/92 into 75187b5097d078889ef5de2e8151b4ea9ff865e6 on kishikawakatsumi:master.

Thanks a lot. I did not notice it , my bad. :pray:

Released 2.0.5 https://raw.githubusercontent.com/CocoaPods/Specs/e8bb802bc601238738685a81e19f844b22987fb7/Specs/UICKeyChainStore/2.0.5/UICKeyChainStore.podspec.json


Catch-all patterns

#[flux::sig(fn(i32[@n]) -> bool[0 < n])]
fn is_positive(x: i32) -> bool {
    match x {
        ..=0 => false,
        1.. => true,
    }
}

Flux is able to verify the function is_positive matches its signature. But if I replace the 1.. in the second match arm with _ then is says the postcondition might not hold. It seems like Flux isn't able to deduce what reaching the second match arm means about x.
I should note that I came up with the above example while trying to isolate the error I got with the following code. My apologies if I've conflated two different issues.
#[flux::refined_by(l: int)]
#[flux::invariant(l >= 0)]
pub enum List {
    #[flux::variant(List[0])]
    Nil,
    #[flux::variant((i32, Box<List[@n]>) -> List[n+1])]
    Cons(i32, Box<List>),
}

impl List {
    #[flux::sig(fn(&List[@l]) -> usize[l])]
    fn len_const_memory(&self) -> usize {
        let mut result = 0;
        let mut this: &Self = self;
        while let Self::Cons(_, tail) = this {
            result += 1;
            this = tail;
        }
        result // error: postcondition might not hold
    }
}

hi @phtown -- thanks for pointing this out!
I think the two issues are (probably) unrelated, but both are interesting.
The first one, we'll have to look into how exactly the code is represented in the MIR (I wasn't familiar with that particular syntax myself, and compiler-explorer doesn't like it either, so will have to take a look on my computer when i get a chance).
The second one is also interesting, it should work except that the while loop has a non-trivial invariant -- when you spell it out as an explicit tail recursive function, it works fine, e.g. see this
http://goto.ucsd.edu:8091/index.html#?demo=permalink%2F1669853420_344.rs
impl List {
   #[flux::sig(fn(&List[@l]) -> usize[l])]
   fn len_const_memory(x:&List) -> usize {
      Self::len_const(x, 0)
   }

  #[flux::sig(fn(&List[@l], result:usize) -> usize[l + result])]
  fn len_const(&self, result:usize) -> usize {
     match self {
        List::Nil => result,
        List::Cons(_,tail) => List::len_const(tail, result + 1),
     }
  }
}

So again, will have to see why exactly its failing.
Thanks for posting this!

You don't need the extra type annotation the tail call gives you. This works:
impl List{
    #[flux::sig(fn(&List[@l]) -> usize[l])]
    fn len(&self) -> usize {
        let mut result = 0;
        let mut this = self;
        loop {
            match this {
                Self::Cons(_, tail) => {
                    result += 1;
                    this = tail;
                }
                Self::Nil => {
                    this.assert_len(0);
                    break;
                }
            }
        }
        result
    }
}

It just doesn't work if you replace the Self::Nil pattern with _. That's why I thought the two cases might be related.

I've been bitten by this a couple of times. For example, this function https://github.com/liquid-rust/flux/blob/8ed6a8353eed05680089bacb80e4520f5412ac4d/flux-tests/tests/pos/enums/pred00.rs#L23 could be much shorter with a catchall pattern.
The relevant code is here https://github.com/liquid-rust/flux/blob/8ed6a8353eed05680089bacb80e4520f5412ac4d/flux-typeck/src/checker.rs#L554
When checking a match we don't collect any control flow information for the otherwise case because in general there isn't something you can readily assume. It shouldn't be too hard to track additional flow information there to support simple cases like two variant enums or more generally a pattern match that is only missing one variant. In theory we should also be able to support more complicated examples like into_nnf where the catchall pattern somehow "collapses" the information required to check all branches, but that would require more thought (should we generate a kvar there?)
The example in the OP is a different issue because range pattern desugars to branching on booleans which are treated differently https://github.com/liquid-rust/flux/blob/8ed6a8353eed05680089bacb80e4520f5412ac4d/flux-typeck/src/checker.rs#L514
When branching on booleans we do assume the negation in the otherwise case, so the problem is different. The example roughly desugars to something like
#[flux::sig(fn(i32[@n]) -> bool[0 < n])]
fn is_positive(x: i32) -> bool {
    if i32::MIN <= 1 {
        if x <= 0 {
            false
        } else {
            true
        }
    } else {
        true
    }
}

So the problem here is that Flux is unaware of the fact that i32::MIN <= 1 is always true.

I implemented the easy case where the catchall pattern can only refer to a single variant here https://github.com/liquid-rust/flux/pull/236. That is enough to accept the non-recursive implementation of len. For the more general case, I think we should be able to generate a fresh kvar $k and return Guard::Pred($k), plus constraints checking that $k holds under the assumption for each of the remaining variants. To do that we need to expose the logic to generate the assumption for a variant as implemented here https://github.com/liquid-rust/flux/blob/main/flux-typeck/src/type_env/paths_tree.rs#L769
Looking at that code there're some open questions about how to implement downcast for enums with abstract refinements which I'd like to resolve before going forward.
Also, I'm curious as to why LH doesn't implement something similar for wildcard patterns.

@nilehmann -- LH does implement something like this for wildcard patterns or DEFAULT as they are called in GHC core, but there the situation is a bit simpler thanks to the GHC core IR. Specifically, when you have something like
case x of
   P1 ... -> e1
   Pk ... -> ek
   DEFAULT -> e

LH simply "rewrites" the above to
case x of
   P1 ... -> e1
   Pk ... -> ek
   Q1 ... -> e
   Qm ... -> e

for each data constructor (of the type of x outside of P1...Pk) and after that the constraint generation etc is unchanged. Of course this is a lot easier in the GHC core representation BUT note that it causes a "blowup" -- because
you are duplicating code. In general, if you have n levels of pattern matching and you duplicate k times at each level
that gives you an exponential $k^n$ blowup in the core size -- which is why we have a flag to disable it after some depth.
I like your `$k$ suggestion but notice that it is also implicitly going to suffer the same blow up (if you have such deep nesting, which of course, may be much rarer in idiomatic Rust.)
However, what I'm wondering is if INSTEAD you can simply make a "disjunction" in the assumptions added to the environment?
So suppose you have
match x {
  ...
   _ => e
}

The idea is that suppose you can figure out what the possible SET of downcasts are (I imagine your PR already does this), suppose they are d1, d2, d3.
So now, instead of

"pretend-downcast" as d1 and check against $k$
"pretend-downcast" as d2 and check against $k$
"pretend-downcast" as d3 and check against $k$

Can we

"pretend-downcast" as d1-OR-d2-OR-d3 and synth on e ?

The trick will be to somehow rig the d1 OR d2 OR d3 by

Adding the relevant distinct fresh names for each case and
Adding the disjunction of the constraints (and invariants) to the refinement-environment?

(Anyways, as you can see this gets hairy so we just stuck with the "clone the e for each case and proceed" in LH)...

Thanks Hannah! Yes let’s keep open then I somehow thought Nicos fix handled
those cases.
On Thu, Dec 15, 2022 at 11:01 AM Hannah Town @.***>
wrote:

Reopened #234
https://urldefense.com/v3/__https://github.com/liquid-rust/flux/issues/234__;!!Mih3wA!BvO87crZrBIgroczmUTKFiot80tDzlRHrJqS8V5ZlcCNaMmstu8pkc7030T2QmxV1HQgZ3QtQi0rET_trRdNByWA$
.
—
Reply to this email directly, view it on GitHub
https://urldefense.com/v3/__https://github.com/liquid-rust/flux/issues/234*event-8050266312__;Iw!!Mih3wA!BvO87crZrBIgroczmUTKFiot80tDzlRHrJqS8V5ZlcCNaMmstu8pkc7030T2QmxV1HQgZ3QtQi0rET_trckh2Raf$,
or unsubscribe
https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AAMS4ODCTY6JYMOGDV4LRADWNNTJJANCNFSM6AAAAAASQBL66E__;!!Mih3wA!BvO87crZrBIgroczmUTKFiot80tDzlRHrJqS8V5ZlcCNaMmstu8pkc7030T2QmxV1HQgZ3QtQi0rET_trc1KBcMU$
.
You are receiving this because you commented.Message ID:
@.***>


Error: app-scripts serve unexpectedly failed

Cross-posting an issue I put on app-scripts yesterday in case you guys are a different team.
ionic-app-scripts issue #975
Problem arose on both existing and new projects. I'm using nvm-for-windows, in case that has any effect.  package,json, tsconfig.json and ionic info are at the crosspost.  Ionic serve would bring up the homepage of the app, then crash, with this error:
[DEBUG] !!! ERROR ENCOUNTERED !!!
Error: app-scripts serve unexpectedly failed.
[DEBUG] Error: app-scripts serve unexpectedly failed.
at Object. (C:\Users\Aaron\IonicDevelop\ActionSearch\node_modules@ionic\cli-plugin-ionic-angular\dist\serve.js:50:19)
at Generator.next ()
at fulfilled (C:\Users\Aaron\IonicDevelop\ActionSearch\node_modules@ionic\cli-plugin-ionic-angular\dist\serve.js:4:58)
Thanks very much.

I had the same issue, please i need a solution.

ionic info

global packages:
@ionic/cli-utils : 1.0.0
Cordova CLI      : 7.0.0
Ionic CLI        : 3.0.0

local packages:
@ionic/app-scripts              : 1.3.7
@ionic/cli-plugin-cordova       : 1.0.0
@ionic/cli-plugin-ionic-angular : 1.0.0
Ionic Framework                 : ionic-angular 3.2.0

System:
Node       : v7.10.0
OS         : Windows 10
Xcode      : not installed
ios-deploy : not installed
ios-sim    : not installed

Error: app-scripts serve unexpectedly failed.
[DEBUG] !!! ERROR ENCOUNTERED !!!
Error: app-scripts serve unexpectedly failed.
[DEBUG] Error: app-scripts serve unexpectedly failed.
at Object. (C:\Users\tnovau\client\node_modules@ionic\cli-plugin-ionic-angular\dist\serve.js:50:19)
at Generator.next ()
at fulfilled (C:\Users\tnovau\client\node_modules@ionic\cli-plugin-ionic-angular\dist\serve.js:4:58)

@Aaron-Sterling @tnovau Does this happen with app-scripts 1.3.6?

1.3.7 is the version i have.

Can you try with 1.3.6?
npm install --save-dev<EMAIL_ADDRESS>

I run npm instal --save-dev @ionic/app-scripts@1.3.6,and then when i run ionic serve, I get this message after [15:29:50]  dev server running: http://localhost:8100/:
[DEBUG] !!! ERROR ENCOUNTERED !!!
Error: app-scripts serve unexpectedly failed.
[DEBUG] Error: app-scripts serve unexpectedly failed.
at Object. (C:\Users\tnovau\Documents\proyectos\ionic3project\ADX\client\node_modules@ionic\cli-plugin-ionic-angular\dist\serve.js:50:19)
at Generator.next ()
at fulfilled (C:\Users\tnovau\Documents\proyectos\ionic3project\ADX\client\node_modules@ionic\cli-plugin-ionic-angular\dist\serve.js:4:58)

@dwieeb I created a new project (blank) and started adding libraries until I encountered the error.  I hit the error at the same point with both 1.3.6 and 1.3.7.  Libraries in order of addition were:
npm install @angular/animations
npm install @ngrx/core @ngrx/store --save
ionic cordova plugin add cordova-plugin-inappbrowser@latest
npm install --save @ionic-native/in-app-browser
ionic cordova plugin add call-number
npm install --save @ionic-native/call-number
npm install angularfire2 firebase --save
npm install immutable --save
After installing immutable, I got the error.  Up until that point, I had run ionic serve after every install, and it was fine, in both 1.3.6 and 1.3.7.

I made the same action than @Aaron-Sterling and on my side i had an error after this installation of angular/animation

I had this issue when i executed command: ionic cordova run android --livereload -c -s. If you are doing the same, just try to run ionic cordova run platform.
I hope this will solve your issue,

I also have this issue, but I found an error at very early:
[10:15:28]  preprocess started ... MEM: 292.3MB
[ DEBUG! ]  error loading core compiler: /home/hsxfjames/文档/repo/ionic/ionicTest/node_modules/ionic-angular/compiler,
            Error: Cannot find module '/home/hsxfjames/文档/repo/ionic/ionicTest/node_modules/ionic-angular/compiler'
            MEM: 292.3MB
[ DEBUG! ]  skipping core component bundling  MEM: 292.3MB

And I reinstall the ionic-angular module, checked again that there is no any file or folder named compiler.

I had the same error message

Error: app-scripts serve unexpectedly failed.

when i executed ionic serve
so i try to run npm install -g ionic cordova, and the problem is solved,

@Aaron-Sterling @tnovau @JulioCesarCeron I still haven't been able to reproduce this, but I am launching the next version of the CLI with the debugging information you can see in the commit above ^
Hopefully this will shed some light on this issue.

I have no longer this error in sudo:

sudo ionic serve

Here is a way to reproduce the bug:
https://github.com/realfreebird/reproduce-ionic-cli-bug-2247
steps to reproduce:

add to package.json

"config": {
    "ionic_copy": "./config/copy.config.js"
  },

copy<EMAIL_ADDRESS>to .\config\
edit .\config\copy.config.js, add the following lines

module.exports = {
...
reproduce_ionic_cli_bug_2247: {
    src: ['{{ROOT}}/node_modules/non_exiting_file.txt'],
    dest: '{{BUILD}}'
  }
...
}

@realfreebird Thanks for being a champ and making that repo 👍 Unfortunately I'm still unable to reproduce. Are you on Windows as well? Does an error occur if you try npm run ionic:serve in that repo?

@dwieeb I get this error with ionic serve.
npm run ionic:serve works fine.
Here is my configuration:

ionic info

global packages:
    @ionic/cli-utils : 1.0.0
    Cordova CLI      : 7.0.1
    Ionic CLI        : 3.0.0

local packages:
    @ionic/app-scripts              : 1.3.7
    @ionic/cli-plugin-cordova       : 1.0.0
    @ionic/cli-plugin-ionic-angular : 1.0.0
    Ionic Framework                 : ionic-angular 3.2.1

System:
    Node       : v6.10.1
    OS         : Windows 7
    Xcode      : not installed
    ios-deploy : not installed
    ios-sim    : not installed

@realfreebird Okay. Would you mind trying this with the alpha CLI? npm i -g ionic@canary

Worked around this problem by adding an empty file to src/service-worker.js.
it seems that (the below code is started from line 53 of @ionic\app-scripts\dist\serve.js) in the function serve is not return the object config when a non fatal error occurs, such as not find a file in the watch list.
`
.then(function () {
    bonjour_1.createBonjourService(config);

    onReady(config, context);          // <---- Note1 : Returning the config object

    return config;

}, function (err) {

    throw err;

})

    .catch(function (err) {

    if (err && err.isFatal) {

        throw err;

    }

    else {

        onReady(config, context);

       // Note 2 <---- Not returning the config as in note 1

    }
});

`
I hacked the server.js to write to the console (sorry still learning the in and outs of this platform, possible a better way to do this.)
`
P:\nau21\ws1\git\fp-app>ionic serve
Starting app-scripts server: --port 8100 --livereload-port 35729 --address <IP_ADDRESS> - Ctrl+C to cancel
[19:26:30]  watch started ...
.....
[19:26:48]  lint finished in 605 ms
errError: A watch configured to watch the following paths failed to start. It likely that a file referenced does not exist: P:\nau21\ws1\git\fp-app\src\assets**, P:\nau21\ws1\git\fp-app\src\index.ht
ml, P:\nau21\ws1\git\fp-app\src\manifest.json, P:\nau21\ws1\git\fp-app\src\service-worker.js, P:\nau21\ws1\git\fp-app\node_modules\ionicons\dist\fonts**, P:\nau21\ws1\git\fp-app\node_modules\ionic-angular\fonts***, P:\nau21\ws1\git\fp-app\node_modules\ionic-angular\polyfills\polyfills.js,P:\nau21\ws1\git\fp-app\node_modules\sw-toolbox\sw-toolbox.js
[19:26:51]  dev server running: http://localhost:8100/
`
For my ionic info
global packages:
@ionic/cli-utils : 1.0.0
Cordova CLI      : 7.0.1
Ionic CLI        : 3.0.0

local packages:
@ionic/app-scripts              : 1.3.7
@ionic/cli-plugin-cordova       : 1.0.0
@ionic/cli-plugin-ionic-angular : 1.0.0
Ionic Framework                 : ionic-angular 3.2.0

System:
Node       : v6.10.0
OS         : Windows 10
Xcode      : not installed
ios-deploy : not installed
ios-sim    : not installed

Hope this helps.

@paulonbastos I think I see the error in the app-scripts code. We'll see if it's still an error when the next version of app-scripts is released. Thanks for diving deep, very helpful.

Possible solution: npm install --save sw-toolbox
The plugin<EMAIL_ADDRESS>requires @ionic/app-scripts
Console-Message: npm WARN<EMAIL_ADDRESS>requires a peer of sw-toolbox@* but none was i
nstalled.
I've got the same problem for "ionic serve" - after installing the missing package it works as excepted.

@thornch sw-toolbox didn't solve to me.
@dwieeb neither did ionic@canary.
npm run ionic:serve runs ok.
ionic info:
global packages:

    @ionic/cli-utils : 1.4.0
    Ionic CLI        : 3.4.0

local packages:

    @ionic/app-scripts              : 1.0.0
    @ionic/cli-plugin-ionic-angular : 1.3.1
    Ionic Framework                 : ionic-angular 2.0.0

System:

    Node       : v6.11.0
    OS         : Windows 10
    Xcode      : not installed
    ios-deploy : not installed
    ios-sim    : not installed
    npm        : 3.10.10

Tried npm update and didn't solve as well.
After seeing some UNMET PEER DEPENDENCY<EMAIL_ADDRESS>invalid 'cause of sw-toolbox, tried installing<EMAIL_ADDRESS>and running ionic serve later worked.
--> npm i<EMAIL_ADDRESS>--save-dev solves. <--


update submodule for iiif print image processing fix

ref:

https://github.com/scientist-softserv/iiif_print/pull/374

Issue:

https://github.com/scientist-softserv/adventist_knapsack/issues/856

Request for changes in iiif print: https://github.com/scientist-softserv/adventist_knapsack/issues/867


Made the "Realm" value in "Proxy-Authenticate" header configurable

This looks good. This may break existing implementations that use ProxyAuthenticator, unfortunately. But without Java 8's default methods for interfaces, I'm afraid there's no other option.

No veto. I agree, implementing the method if needed shouldn't be a problem.

Ah shoot, merge conflict for some reason. @MediumOne - would you mind resolving the conflict and updating the branch? We'll merge it in right away so it's included in the imminent release.

Pinging @MediumOne again -- could you resolve merge conflicts? I think this is the last thing we need to get in before the beta2 release.

@jekh - Sorry for the delay in response. I have resolved the merge conflicts now.
Also, I pushed another commit to resolve #250. It is a simple log level change from info to debug. I think it is an important change to consider for beta2 as we were logging the Proxy-Auth header which contains the base64 encoded username and password.
I would have created another PR for this, but the line changes were right after the line changes in this PR. I wanted to avoid another merge conflict.

Thanks! Looks good to me.


Are wayland compositors interchangeable?

I wanted to implement a window switcher with wofi/rofi, etc... and found this script for swaywm:
https://github.com/argosatcore/Deb_Dots/blob/main/.local/bin/window_selector.sh
For Hyprland, I'd need to adapt the whole script, thereforeI was curious, whethere wayland compositors are supposed to be interchangeable as per the specs, so that I could just swap out swaymsg -t get_tree to hyprctl -j clients, instead of rewriting the whole script.

no.

No, but there is https://github.com/hyprwm/Hyprland/discussions/830#discussioncomment-3868467


test issue 6

Hi, I have some suggestions to help solving this issue!
Here is a list of similar issues:

1. [test issue 6](https://github.com/fjsj/python-social-auth/issues/65)

2. [test issue 5](https://github.com/fjsj/python-social-auth/issues/64)

3. [test new issue 456](https://github.com/fjsj/python-social-auth/issues/54)

4. [test new issue](https://github.com/fjsj/python-social-auth/issues/46)

5. [test new issue](https://github.com/fjsj/python-social-auth/issues/40)

Hope this is useful!
Cheers,
Cinnabot.


feat: Implemented filtering for read/unread notifications

Checklist

[x] the individual contributor license agreement is signed
[x] commit message follows commit guidelines
[x] documentation is changed or added

Description of change

From https://github.com/Jasig/NotificationPortlet/pull/119#issuecomment-428258993, this is a more desirable approach to do filtering of read notifications
Edits and/or suggestions are welcome

LGTM now :+1:


[vcpkg baseline][liblsl] passing remove from fail

https://dev.azure.com/vcpkg/public/_build/results?buildId=92425&view=results

Duplicate of https://github.com/microsoft/vcpkg/pull/32913


Package Manager Allow Targets to Depend on Products in the Same Package

This is a WIP proposal based off the discussion in this forum thread. @tammofreese created an initial implementation a year ago which is a great way to test out the proposed changes (although it may differ from the proposal slightly, and requires updating to Swift 5.9).
Forum thread: https://forums.swift.org/t/pitch-swiftpm-allow-targets-to-depend-on-products-in-the-same-package/57717/32
WIP implementation: https://github.com/tammofreese/swift-package-manager/tree/use_internal_product_as_target_dependency_experiment

Thanks for the feedback! I agree 👍 I've moved the detail after the code block now


allow unquoting into weird locations

Currently we don't allow unquoting into:

Character literals
String literals
String interpolations
Xml literals
Backquoted identifiers
Single-line comments
Multiline comments

We should consider allowing that. See #46 and #148 for related issues.

Actually I'm fine with closing this as wontfix. This functionality doesn't seem to be in demand, and the error messages now clearly explain what's going on.


⚠ Bofrost.be has degraded performance

In ba52717, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2423 ms

Resolved: Bofrost.be performance has improved in ebd48a1 after 1 hour, 40 minutes.


Unbound doesn't resolve static ip mappings

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[X] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[X] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
There are static ip mappings configured for DHCP, but they do not resolve via unbound even with the appropriate settings turned on.
To Reproduce
Steps to reproduce the behavior:

Add a static IP mapping
Set the domain in the System:General Setup
Set "Register DHCP Leases" and "Register DHCP Static Mappings" in Unbound
Domain does not resolve

Expected behavior
Domain should resolve
Describe alternatives you considered
I have tried:
root@opnsense:~ # cat /var/unbound/dhcpleases.conf
local-data-ptr: "<IP_ADDRESS> XXX"
local-data: "XXX IN A <IP_ADDRESS>"
local-data-ptr: "<IP_ADDRESS> ZZZ"
local-data: "ZZZ IN A <IP_ADDRESS>"
// all dynamic leases showing, but NO static at all.

Screenshots
Relevant log files
Additional context
I do believe this is new with the 23.7 branch.
Environment
Software version used and hardware type if relevant, e.g.:
OPNsense 23.7.2-amd64
FreeBSD 13.2-RELEASE-p2
OpenSSL 1.1.1v 1 Aug 2023
Intel(R) Celeron(R) J4125 CPU @ 2.00GHz (4 cores, 4 threads)

checking wrong file?
https://github.com/opnsense/core/blob/f782be9cbf39ea99c9770458a78f2ece2d5031d7/src/etc/inc/plugins.inc.d/unbound.inc#L546-L567

True, the other file (host_entries.conf) contains the entries.
I will monitor this further, currently it does resolve after various restarts.

It seems to be fixed with restarts.


git merge with two ancestors

VSCode Version: 1.47.0
OS Version: Darwin x64 19.5.0

Steps to Reproduce:
Sometime when I merge a branch, it happends.

Does this issue occur when all extensions are disabled?: Yes

sorry, I don't describe clearly.
Does this kind of situation can show like only one ancestor with a compare button.


added xml loader

Pull request with an XML Loader for BABYLON GUI.

All good! merging :) Now please update GUI doc ;)
Congrats btw!!! it is an excellent new feature

All good! merging :) Now please update GUI doc ;)
Congrats btw!!! it is an excellent new feature

Thank you very much. Super happy to be able to give back to the community.


fix AUS ACT (deaths) and consolidate key lookup

Trying out some patterns for how best to lookup. Wondering if there can be a shared lookup across scrapers (like if the word deaths is included, then its very probable to be the deaths item).
AUS ACT has a death now, so they've added 'lives lost'.

This looks fine to me, the shared code is fine too. Is this ready to go in?

Yes please :)


Snotify toast suddenly disappear when bootstrap modal is popped

I am facing weird problem with snotify:
Angular 5.x
Snotify 4.3.0
Bootstrap 3.7
it works perfect but behave strange when bootstrap modal is open; I have recorded the screen which may help to fix this issue:

1+

I am facing weird problem with snotify:
Angular 5.x
Snotify 4.3.0
Bootstrap 3.7
it works perfect but behave strange when bootstrap modal is open; I have recorded the screen which may help to fix this issue:

Hi @mumairofficial ,
I am facing the same issue.
Did you get any fix for this?
Thank You.

@deepika231-max
Yes I was able to fix it.
There was css class (common between dialog and snotify notification) which was mutated with dialog opening.
So renaming those classes helped me to address this issue!

@deepika231-max
Yes I was able to fix it.
There was css class (common between dialog and snotify notification) which was mutated with dialog opening.
So renaming those classes helped me to address this issue!

what was the class?

.snotifyToast {
webkit-animation-fill-mode: both !important;
animation-fill-mode: both !important;
}
this will solve


Platform updates - RSS feed

Docs Build status updates of commit a519c86:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/feed.atom
:white_check_mark:Succeeded
View

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


precision loss when GMP is not installed?

Installations without GMP fall back to using PHP's native base_convert function which isn't designed to handle very large inputs like SHA3-512. The resulting ID values have an odd-looking pattern to them (note the amount of 0's, 4's and 8's for example):
bg48okgw0wwooo0g0488s4so
egcs480os8gkk84sgkgcgks8
fc00w044cckow4ock4s0w0sw
iw8ogk8woowk0cw8c8kgoscw
k40040s4kcsgsk0wg8scks8o
pwgo80o4c4kogk4gcs8oko8k
r8000cc8ggcsw0s8s44s440w
uc8gk8gog04wc044k4ck4s8c
zokgk80ww4o0sksws8s44osc
zwowwk4sc40c00ws44ww0gso
The issue is even noticeable in the example IDs shown in the readme 😄
When GMP is installed this issue goes away, but it should probably be made much clearer that GMP is needed for this library to work correctly.
Alternatively the dependency on GMP could be replaced with the library phlib/base_convert which seems to get the job done.

Thanks for the quick response! By the way, I ran into this mainly because Laravel Sail doesn't include GMP by default. Would you ever consider the idea of using phlib/base_convert (or some other userland implementation) as a fallback? I'm guessing the main reason not to would be the giant performance hit, but for dev environments it might be an acceptable tradeoff. Up to you really.

Hi @ben-mckenzie
For libraries such as this, I prefer they have no external dependencies (if it can be helped). With that said I also do not like to impose a requirement on a non-default PHP extension either which is why GMP was originally optional but obviously it is unavoidable given the bug, hence the new release making it required.
I did look at phplib/base_convert but unfortunately, it's licensed under GPL (of which I am not a fan). If I find a viable alternative that is either MIT or Apache-2 licensed, I will make the GMP extension requirement optional again.


Create a class for preparing strings for ctx. send

The goal:

make the bot's commands more subtle

take out the logic for processing strings from bot commands

Also create a function there to handle *args in bot commands (for playlist ex.)

Also number list items (ex, for the queue command)


ORC-1767: [C++] Improve writing performance of encoded string column and support EncodedStringVectorBatch for StringColumnWriter

What changes were proposed in this pull request?

ORC-1767: [C++] Improve writing performance of encoded string column and support EncodedStringVectorBatch for StringColumnWriter
Chery pick commit in apache/orc main branch: https://github.com/apache/orc/commit/97a37972eba0bfecf3cd31f6de23216159814129
Why are the changes needed?

How was this patch tested?

@alexey-milovidov can you help review it ? Thanks!

i don't think cherry-picking is the right approach. we're better to maintain main branch in the state when it contains some prefix of upstream commits with our own patches on top.
in other words let's update the main to the current upstream HEAD

I tried, but there are so many conflicts after rebase ClickHouse main branch on apache main branch. I'm curious how it is done before? If we want to sync from upstream, which is preferred, git merge or git rebase ? I tried both ways but they all doesn't work. Hope for you suggestions, thanks!

i made an attempt here: https://github.com/ClickHouse/ClickHouse/pull/69473

@nickitat  Thanks, but I'm afraid your example doesn't really solve the problems I met. It need huge works if you want to sync ClickHouse/orc with upstream apache/orc.

@nickitat Thanks, but I'm afraid your example doesn't really solve the problems I met. It need to solve so many conflicts if you want to sync ClickHouse/orc with upstream apache/orc.

contrib reset to a new commit that is upstream/main plus one our commit (two other no longer needed). CH builds with it successfully. we only need to fix tests. so what are those so many conflicts you're talking about?

It will cause a lot of conflicts. Fixing them is nearly impossible.
git checkout ClickHouse/main
git rebase apache/main

Cherry pick is a good idea if there are not too many commits of our own. BTW, which commits that are not contributed to upstream need to be cherry picked ?

@nickitat Thanks, but I'm afraid your example doesn't really solve the problems I met. It need to solve so many conflicts if you want to sync ClickHouse/orc with upstream apache/orc.

contrib reset to a new commit that is upstream/main plus one our commit (two other no longer needed). CH builds with it successfully. we only need to fix tests. so what are those so many conflicts you're talking about?

It will cause a lot of conflicts. Fixing them is nearly impossible.
git checkout ClickHouse/main
git rebase apache/main

Cherry pick is a good idea if there are not too many commits of our own. BTW, which commits that are not contributed to upstream need to be cherry picked ?

what i'm saying is that i did this exercise yesterday. the only conflicting files were c++/src/Options.hh, c++/src/sargs/ExpressionTree.cc, c++/src/sargs/PredicateLeaf.cc afair.
you may see here that from our own commits only one (yours) was preserved after rebase. the other two contained upstreamed fixes.

so i don't think we have any problems with the conflicts. only with tests

@nickitat will you merge https://github.com/ClickHouse/orc/pull/17 ?  If the answer if yes, I'll close current PR. All I need is the  newest commits from upstream.

@nickitat will you merge #17 ? If the answer if yes, I'll close current PR. All I need is the newest commits from upstream.

yes, i just need to find some time to figure out test failures.

duplicated with https://github.com/ClickHouse/orc/pull/17


[Task]: Add modal containing event phases and timeline

Task description
When a user hovers over the label of a proposal, they will trigger a modal with the different phases of the events and their respective starting dates.
Requirements

[ ] Add UI component for modal
[ ] Add on hover display logic to proposal label component

Creation checklist

[X] I have assigned this task to the correct people
[X] I have added the most appropriate labels
[X] I have linked the correct milestone and/or project

Already done


dubbo-monitor-simple2.0没有监控到服务

zookeeper用的是远程服务器，地址已经在配置文件配置过，执行的start.sh脚本，不知道为何显示的注册地址是localhost/<IP_ADDRESS>:2181，且检测不到远程注册的服务。

解决了吗？我这边也遇到同样的问题

一样，我这边测试也是监控不到，服务可以注册进去调用，但监控中心没有显示
[zk: localhost:2181(CONNECTED) 0] ls /
[dubbo, codingsky, zookeeper]
[zk: localhost:2181(CONNECTED) 1] ls /dubbo
[com.alibaba.dubbo.monitor.MonitorService, com.codingsky.service.TestService]
[zk: localhost:2181(CONNECTED) 2] ls /dubbo/com.codingsky.service.TestService
[consumers, configurators, routers, providers]

Sorry, because this issue was raised very early, we have closed it temporarily. You can verify whether this problem still exists in the latest code of the develop branch. If this problem still exists, please reopen it at any time.


Fix: Github Actions CICD Pipeline

Welcome to Codecov :tada:
Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.
Thanks for integrating Codecov - We've got you covered :open_umbrella: