text:
Add set home command to set your own location

The idea here is that I can say set home NYC or set home yesterday NYC and then a special activity is added that signifies I have set/changed my home location.
Then, commands like list activities --in NYC will automatically include activities after that point that do not have a location specified. This is useful for when you're in a location for a longer period of time (e.g. a 1-year sabbatical) and you don't want to have to add the location name to every single activity.

Hi @JacobEvelyn! I'm a new-ish coder (I've been devloper for a year and a bit now), and I've always wanted to contribute to open source. I searched on Github, found this project and have completely fallen in love with it - such a cool idea!
I want to work on this issue as my first ever open source contribution, but before I do, I noticed a problem with the running the tests on my machine. I've fixed it, but in order to show you the fix, would I open a pull request?

Hi @shen-sat! So sorry for the delay!
First of all, welcome to coding and open source! 👋
Thanks so much for finding and fixing a bug! A pull request would be great (and if you have any questions or problems with that let me know and I'm happy to help). I'm also assigning this ticket to you so you can officially work on it once you've fixed the issue with tests. How does that sound?

Hi @JacobEvelyn! So sorry for the late reply, I almost missed this message - I didn't get a notification in my emails for some reason...I'll check my settings 👍
I'm so happy to be assigned my first issue woop! 🙌 I will be taking this project to a local Ruby meetup next week, so I can get someone more senior to pair with me on it. I'll therefore start work on this next week 👨💻
PS please ignore my tweet to you today, I sent it thinking you might not have seen my Github message 😅

Sounds great, @shen-sat! Good luck at the meetup, and feel free to reach out if you have any questions!

Hey @JacobEvelyn, I've started looking at this issue. I managed to pair with someone to understand the general app structure, but I'm going to attempt writing tests and building the set home functionality on my own (until I get stuck, haha).
As I understand it, there are two requirements:

User can set a home location
User can list activities by home location

I want to tackle the first requirement first. For this, I'm thinking of creating a new header in the friends.md file (### Home) to store the home location.
Then there are two user journeys I can think of:

User sets home for the first time (the app will add a location under ### Home)
User sets a new home when one already exists (the app will overwrite the existing location under ### Home with the new location)

Does that sound ok? I'll be using your existing tests to TDD this functionality 💪 🙂

Hey @shen-sat! Thanks so much for picking this up, and great questions.
I've actually been thinking about this a little bit differently. Consider this activity history (in chronological order, which is the opposite of the ordering in friends.md):
# (Living in London at start.)
- 2019-01-01: Hung out with **Banksy** at home.
- 2019-02-01: Moved to _Atlanta_.
- 2019-03-01: Went back to _London_ to visit **Banksy**.
- 2019-04-01: **Banksy** came to visit me!

Because you can move home locations, what I really would like is for the list activities --in flag to understand the "home" concept, like:
$ friends list activities --in London
2019-03-01: Went back to London to visit Banksy.
2019-01-01: Hung out with Banksy at home.

$ friends list activities --in Atlanta
2019-03-01: Banksy came to visit me!
2019-02-01: Moved to Atlanta.

So I think storing in ### Activities (or ### Notes??) might make more sense, because then we naturally have a timeline that we can use.
Open questions I have:

Should it actually be a set home command, or just a special activity name?
Should this command create the location if it doesn't already exist? (I think probably yes.)
Where's the best place to store this? (I'm leaning ### Activities over ### Notes or ### Home, but am open to arguments!)
Should the home location impact results of friends list notes --in <location>? What are some use cases for filtering notes by location?

I hope that all makes sense! Would love to hear your thoughts. ❤

Hey @JacobEvelyn, thanks for the detailed user examples, they help me understand the requirements a lot. I like the idea of using the existing user feed to add extra functionality, rather than adding an extra ### Home section
My thoughts on your questions:

Should it actually be a set home command, or just a special activity name? I think so - as a user, I'd like to use a small set of commands to do lots of different things. There is already a set command for setting other things, so friends set home <location> would make intuitive sense. Plus my memory is bad, so fewer commands = 👍🏾 in any app, haha
Should this command create the location if it doesn't already exist? (I think probably yes.) Agree!
Where's the best place to store this? (I'm leaning ### Activities over ### Notes or ### Home, but am open to arguments!) It will be easier to store a location under ### Home. But using the existing feed to store home location intrigues me :) (I'll expand on this below)
Should the home location impact results of friends list notes --in ? What are some use cases for filtering notes by location? I think so: I go to a place in NYC with a friend, I record the name of a shop I went to in my notes. Later I can't recall the name of the shop but remember it is in NYC so I filter notes by NYC and then I see the name of the shop in one of the entries. And if my home is in Paris, it will be useful for a friends list notes --in NYC to automatically filter out all the entries that are either explicity tagged with Paris or have no location (because the app will assume entries with no location are from Paris)

Re: point 3 - with the example you gave:
# (Living in London at start.)
- 2019-01-01: Hung out with **Banksy** at home.
- 2019-02-01: Moved to _Atlanta_.
- 2019-03-01: Went back to _London_ to visit **Banksy**.
- 2019-04-01: **Banksy** came to visit me!

can we assume that:

on the 2019-02-01, the user entered friend set home Atlanta
when the user enters friends list activities --in Atlanta, the app does the following things:
finds Moved to _Atlanta_ line in the ### Activities section
collects the lines in the rest of the section until it either finds another Moved to line or reaches end of the section
then filters out lines that are tagged with another location
displays the lines that are left

As always, happy to discuss :)

Thanks for all the discussion, @shen-sat, and sorry for the slow response. I think we're in agreement that:

friends set home Atlanta is the right command to use for this.
That command should create the location if it doesn't already exist.
We should include this when filtering notes by location, as well as activities (your example with the shop name is compelling to me).
The code will simply find a special line, rather than read data from a new ### Home section.

After thinking about it a bit more, I'm wondering:

Is Moved to _Atlanta_ under ### Activities trying to be a bit too clever? Would it make more sense to just have it under ### Notes instead as Set home to _Atlanta_.? Thoughts?
Is it useful to leverage the existing date-parsing code we have that lets us do things like friends add note 3 days ago or friends add activity 2019-01-01, so we can set the move date with set home to an arbitrary date in the past? (This is the one thing that's making me second-guess the new command instead of just having it be a special note you add with friends add note.)

Lastly, from an implementation perspective, the code reads the entire file before displaying anything to the screen for any command, so I think the easiest approach might be to have a new instance variable, @home_locations, that stores something like a hash of date range to location name:
{
  (#<Date: 2019-01-01>..#<Date: 2019-01-31>) => "London",
  (#<Date: 2019-02-01>..#<Date: 2019-10-01>) => "Atlanta"
}

And then when filtering we can iterate through each until we find a range that matches. It's not the most efficient approach, especially with lots of home locations (which I assume most users won't have), and I'm totally open to alternate/more performant ideas. Thoughts?

Hey @JacobEvelyn,
Completely agree with leveraging the date parsing, that will make it easier to create the @home)locations variable you mentioned and populate it with a hash of locations and move dates.
I also agree with maybe not listing Moved to _Atlanta_ under ### Activities. However, I also don’t want to move it under ## Notes either, and I’m leaning back towards creating a separate section for logging the user’s home location. Sorry for the flip-flopping on this! I’m wondering quite a lot about separation of concerns/responsibilities. Let me expand:
Looking through the code, what I love about your app atm is how neatly components have one responsibility. ### Activities section lists activities with your friends. ### Notes lists notes to do with your friends. I kind of don’t want to pollute these lists with events that are personal to the user and have functionality outside of logging the user’s friendships. Setting a user’s home is a way of filtering activities and notes in the future by location, rather than something that explicitly logs something to do with a user’s friends.
From a user perspective, when I list activities or notes, do I want to see a Moved home _Atlanta_? Maybe, but this would detract from what I see as Friends’ unique core functionality - to track and display your relationship with your friends, (and not to track and display personal events).
I’m therefore back in favour of having a separate section to log a user’s move to a new home 😄 🏠 . We could even call the section ### Personal to make it open to logging other features you may want to add in the future that are to do with the user and not with their friendships.
What do you think?

Thanks for all the thoughts! I'm not sure I have strong preferences either way, though I don't really know what other things would be in ### Personal so my vote would be to just use ### Homes for now, like:
### Activities
- 2019-01-01: Blah blah

### Notes
- 2019-02-01: Blah blah

### Homes
- 2019-03-01: Atlanta
- 2019-01-01: London

### Friends
- Banksy

### Locations
- Atlanta
- London

How does that sound?

Hmm actually now I'm having second thoughts. One thing I've noticed is that even when I'm not moving permanently, if I'm traveling it gets really annoying to add the location to every activity I do on my travels, like:
### Activities
- 2019-01-03: One final lunch with **Banksy** in _London_ before leaving. What a great trip!
- 2019-01-03: **Banksy** and I visited the Royal Botanic Gardens, Kew (_London_) and had a great conversation.
- 2019-01-02: Had a lovely dinner in _London_ with **Banksy** and **Queen Elizabeth II**.
- 2019-01-02: After the museum, **Queen Elizabeth II** took me out to tea (_London_).
- 2019-01-02: Went to the Tate Modern (_London_) with **Queen Elizabeth II** in the morning.
- 2019-01-01: Arrived in _London_ and went straight to Trafalgar Square with **Banksy** to check that off the travel list!

I'm constantly forgetting to add them, or putting them in parentheticals which feels awkward.
However, friends's philosophy of intelligence often leads to behaviors that are difficult to describe or understand but "just work" most of the time and feel like magic when they do (like how it almost always "just knows" which friend you mean when you have multiple friends with the same name). I'd rather have a more complicated implementation for simpler usage that serves the most common cases well.
From that perspective, I actually want to propose a different solution to both the "home location" and the "travel" problem: any activity that includes the phrase from _<location>_ to _<location>_ will automatically be treated as changing the "home" location until the next time that phrase appears in a different activity. With this solution, all I'd need to start my trip would be something like friends add activity Flew from Atlanta to London for my big trip! and then something similar at the end (which I find I tend to use anyway), and then the rest would just work.
I know this is a totally different direction but for me as a user this would be significantly nicer. Obviously the downside is we'd need to document it and make it clear what's happening. Would love to hear your thoughts!

I love the fact we are going deep on this issue - I’m a dev, but I’ve been fascinated by product, and this feels like a juicy product challenge :)
I agree that user shouldn’t unneccesarily have to add their location all the time. So the concept of a default location that can change whether the user is at home or on holiday makes a lot of sense. I'd like to set this as the core objective for this issue.
I think we have two different views on how to implement this. I’ll lay out my thinking here, but I’m very happy to implement your solution - after all, whilst I love to give my opinion, I am ultimately here to code :)
Friends is an app to track relationships with friends. The examples used in the readme for the ### Activities and ### Notes sections are all to do with this vision. I really like this core objective - to me, it's simplicity/pureness is a strength of this application.
Once there is a feature to start logging events like moving home, or going on holiday, I feel like this would detract from the core objective. For me, activities/notes like this aren’t nesserily to do with relationships with friends anymore, it’s more to do with personal journaling.
However, I completely understand why we would want to track these events somehow - as I said at the top (and as you mentioned with the concept of intelligence), user’s shouldn’t have to repeatedly type in the same location every time while at home/on holiday. The Friends app should pick this up naturally and handle it as necessary.
To solve this, I think a config command like friends set home [location] feels intuitive. There are already commands for setting friends and locations, which are in and of themselves not notes or activities. They are to me, config commands. And once the config for home location is in place, the user can type in lines like Banksy came to visit me! and Friends acts intelligently - it picks up the home location automatically and acts as appropriate.
I see the home command following the same process as the other 'config' commands: first the user does a little config work. But then the Friends app pays the user back by handling input to do with home location intelligently.
The end result is what was already present: Activity logs only have friends activity. Same with notes. But now the user has to do less work re: writing locations for every note/activity.
Let me know what you think @JacobEvelyn - and I’ll start work based on your decision 👍🏾

Sorry for the delay, @shen-sat. I've been thinking about this a lot and keep going back and forth. (Definitely overthinking it! 😬)
I think one of the things tripping me up is the word "home." A command like friends set home feels like something to only use when you permanently move, not something for a one-week vacation. Perhaps I'd feel more open to that approach with a different name?
You're right that there is already a friends set command, but there's only one and it doesn't do a whole lot. Honestly I've never loved that command name... would something like this make sense instead:
friends move LOCATION # Moves your location, a.k.a. the feature added by this issue.
friends move LOCATION DATE # Moves your location for a given date, also added by this issue.
friends move FRIEND LOCATION # The new version of the old "set" command.

I'm hesitant to store the location history in yet another place in the file, but one alternative would be to store them in your ### Locations: list, like:
### Locations:
- Atlanta [2019-01-01 to 2019-01-04, 2019-01-06 to present]
- London [2019-01-04 to 2019-01-06]

it might be a bit trickier to implement (and I guess rows—especially for your home location—could get really long), but I like that it matches the pattern for how we store friends with details, and still keeps the option of location nicknames (something I've been wanting to add) with the same syntax as friend nicknames on the table.
On the other hand, this is making me realize that a big missing feature in all of these approaches is your home location. I live in Atlanta and don't tag most activities I do there with _Atlanta_, but if I move away it would be nice to be able to have them all under that location—even though while living in Atlanta I traveled to other places on vacation. This feature is making me once again think that maybe the from _A_ to _B_ (or something similar) in ### Activities: is the way to go.
Lastly, I hear your point about the core functionality being around tracking friends, and agree with the sentiment around staying close to that functionality. But there's no reason an activity needs to have a friend in it from a technical perspective, and it seems like it might make things generally easier to go that route (for one thing, the date parsing is free!). So I think I'm leaning towards that approach.
Sorry for the long, drawn-out discussion. If you want me to stop bikeshedding and just pick something I'm happy to. But I'm also happy to keep discussing with you, and would love to hear your thoughts!

Hey @JacobEvelyn, I think we are in agreement! 🙌🏾
Completely agree with the friends move LOCATION command you've suggested. And I also agree with how you want to store it.
I also agree that it'd be nice to have Friends 'know' that your location has changed when you are travelling (with a command like from _A_ to _B_). I'm not 100% sure on the way to implement this, but it would be a very cool feature.
Can I suggest something? As this is my first (proper) OS contribution, would it be possible to split this issue into two issues? The first would be to tackle the friends move LOCATION commands you listed above (which I feel confident about implemeneting), and the second would be how to implement the from _A_ to _B_ command (which may/may not require more discussion)?
I'm off on holiday now and won't be back for 2 weeks - I'm switching my phone and laptop off for a digital detox (I've always wanted to do one :) ). I'd hate to lose my chance to contribute though, so would it be possible to keep this issue for me until I'm back?

Hope your digital detox is going well, @shen-sat! I've been giving this a bunch more thought and I've come to a decision—I'd like to proceed with the following:

When an activity includes the pattern to _LOCATION_, future activities count as being "in" that location until the next to _LOCATION_ pattern.

Rationale:

This ticket originally derived from a common pain point I experience as a regular user of friends for almost five years now. I've found that I naturally tend to include those "travel activities" anyway, so from a UX perspective this would require essentially no behavior change for these added benefits.
By using activities for this rather than a separate date record elsewhere in friends.md, we naturally gain sub-day granularity (if someone travels three times in a day, activities between those movements can still be correctly categorized by location). This attribute would not be present in other solutions.
By using activities for this we can take advantage of existing date-parsing behavior here.
I've seen how adding this "magic extraction" from activities in #190 dramatically improved friends's usability, and I think we can replicate some of that magic here.

Implementation details:

There is no default location for activities until the first time this to _LOCATION_ pattern is seen.
Since we read the file line-by-line and thus in reverse-chronological order, one way to implement this would be to add an @implicit_location instance variable to Activity, and store activities in an array as we parse them until we encounter a to _LOCATION_ line, at which point we set the @implicit_location for each of those activities, clear the array, and repeat.

In the future we can always optimize this by (for example) only performing it when the friends command actually needs this data, e.g. friends list activities --in LOCATION. For now though I think it's fine to just always do it.

When a new activity matching the to _LOCATION_ pattern is added, a message like Default location set from START_DATE to FUTURE_DATE/present: _LOCATION_ is printed to STDOUT. This will improve the discoverability of this feature.

Notes will also use these locations in filtering, just not with sub-day granularity.

**NOTE: While I think this is nice behavior, I'm willing to follow a "wait and see if it's really useful" strategy and hold off on implementing it, because I personally don't use many notes (and when I do they're rarely tied to the location I'm in) and I'm not sure how big of a need this is among users.
Rationale: See item 4 in https://github.com/JacobEvelyn/friends/issues/152#issuecomment-536203483.
Implementation details:

There is no default location for notes until the first time this to _LOCATION_ pattern is seen.
Because notes are stored separately from activities, we have no way of achieving sub-day granularity here. Notes may therefore have multiple implicit locations if the user has multiple "move" activities on the same day.
Since we read the file line-by-line and thus in reverse-chronological order, one way to implement this would be when we encounter a to _LOCATION_ pattern in an activity we add to a global data structure tracking these locations.

In the future we can always optimize this by (for example) only constructing this data structure when the friends command actually needs this data, e.g. friends list activities --in LOCATION. For now though I think it's fine to just always do it.

Default locations will not be explicitly stored elsewhere in the friends.md file.

Rationale: Any solution that does this runs some or all of the following risks (depending on implementation):

Duplicating data already elsewhere in the file (for instance, dates in ### Activities: or locations in ### Locations:).
Being unable to provide sub-day granularity.
Reducing the readability of the file with extremely wide lines containing all date ranges for a location.

A new command (friends move) is added which also writes to the ### Activities: section. See https://github.com/JacobEvelyn/friends/issues/152#issuecomment-539735035.
friends set is changed to friends move as described in https://github.com/JacobEvelyn/friends/issues/152#issuecomment-539735035.

Sounds good to me! I'll have a closer look at your implementation suggestion and let you know if I have any questions 👍🏾

Hey @JacobEvelyn sorry for the late response! I'm blaming jet lag 😪
I agree with the outline of your implementation - the idea to create an instance variable @implicit_location in Activity and set it across multiple Activity objects as the friends.md file is parsed makes sense.
I'm getting a bit stuck on exactly where the setting of @implicit_location should take place though, and I'd like to go through my thinking if that's ok?
If I'm correct, the current parsing of lines happens as follows:

Introvert object is created
friends.md is read
When a line in a section (for example, ###Activities) is read:
a. Validation is done via regex
b. If validation is ok, new Activity object is created
c. This new Activity object is then saved within @activities instance variable in Introvert object

The key line where stage 3 happens is (Introvert.rb, line:712):
instance_variable_get("@#{stage.id}") << stage.klass.deserialize(line)
In the new implementation, what should happen at this line?
At the moment we add Activity objects one-by-one to @activities, but I assume that in the new implementation these would be added to a temporary array until a to _LOCATION_ line is parsed (at which point we'd do a 'set and flush': we'd set the @implicit_location on all the Activity objects in the temp array and then save them one by one to @activities and then clear the temp array).
Whose responsibility should it be to detect a when a to _LOCATION_ line is being parsed? My first thought was this detection should somehow sit within the Activity class. But if an Activity object detects that a to _LOCATION_ line is being parsed, how could it set the @implicit_location on all previous Activity objects within the temporary array? This feels like something the Introvert class can do, but then the Introvert class would be responsible for detecting a to _LOCATION_ line, which doesn't make sense in terms of responsibility 🥴
I hope that makes sense! In essence my confusion comes around responsibility. If you're up for a video call I'd be super up for chatting to you and maybe explaining the above in real-time - I appreciate I might not have laid out my thinking very clearly! Otherwise I'm happy to reach out to someone at work to pair with them on this - either way is good for me :)

Hey @JacobEvelyn, I managed to pair with someone at work today and we managed to clear my above confusion - please ignore my questions above! I'll get on with the implementation and let you know how I get on 👍🏾

Okay! Glad to hear it, and let me know if there's anything else I can help with.

Thanks so much, @shen-sat ! This change has been released in v0.47 (run friends update to get it). Thanks for contributing!
EDIT: Whoops, I just realized that the change looks for Moved to _location_ but I think we'd actually wanted it to just be to _location_ (to allow things like "Flew to Hawaii for vacation" to work). I'm happy to make that change quickly unless you want to!

No worries!

EDIT: Whoops, I just realized that the change looks for Moved to location but I think we'd actually wanted it to just be to location (to allow things like "Flew to Hawaii for vacation" to work). I'm happy to make that change quickly unless you want to!

Ah this is something I thought about - I used the more specific line 'moved to location' so that we wouldn't set implcit location for lines like "I went to Marie's Diner". What do you reckon?

Hmm, that's an interesting thought. I've personally been using locations more for geographic areas/cities/etc. than specific buildings. I assume that's how most users are using them as well but I can't say for certain. Do you have locations like _Marie's Diner_?

Marie's Diner is used in a lot of tests - when I saw it, I thought locations in the context of the app could be geographic areas or specific spots like restaurants, museums, etc. But if not, then I'm happy to change moved to _location_ to to _location_. But I think we should also lose Marie's Diner form the codebase as it can cause confusion over the definition of a location. What do you reckon @JacobEvelyn?

I think that makes sense to me. Do you want to work on that, or should I?
Two other follow-on things that I forgot to mention on the last PR:

When an activity that sets a new implicit location is added, I think we should print a message. Something like Default location set to: "#{location}"
We should add a description of this feature to the README.

Makes sense and I'm happy to make the changes 👍 What's the best practice here - should I re-open the pull request, or make a new one?

A new PR would be great! Thanks so much! Also, I can't figure out why you're not showing up on the Contributors page. Any ideas? Perhaps something in your privacy settings?

authors: JacobEvelyn shen-sat

repo: JacobEvelyn/friends


text:
Add support for Event

This PR fixes the following limitation:
const event = new Event<any>();
event.emit("value"); // ts: Expected 0 arguments, but got 1.

Because of the way emit is typed, Event<any> will be interpreted as Event<undefined> and the resulting type signature will be emit() => boolean instead of emit(data: any) => boolean. So when you need to pass any value as payload, you're allowed none.
The need for an Event<any> arises when you want to emit an error event inside a try/catch clause for example, as the error is always of the any type.

That's a good catch.
Technically this change would be a breaking change going forward, as it changes the default signature for untyped (Signal) events. I'd suspect the majority of code using this module would be fine, but I don't want to abuse semver.
I'll pull in this change and do some testing in my repos that use this module. If the change looks good, I'll plan to work on a new major release some time this week that will include:

This PR
A fix to #12
The removal of concat as in #8

That's a good catch.
Technically this change would be a breaking change going forward, as it changes the default signature for untyped (Signal) events. I'd suspect the majority of code using this module would be fine, but I don't want to abuse semver.
I'll pull in this change and do some testing in my repos that use this module. If the change looks good, I'll plan to work on a new major release some time this week that will include:

This PR
A fix to #12
The removal of concat as in #8

That's great to hear, this package is a wonderful building block for any kind of application and I love to see it mature.
In regards to the breaking change argument I'd like to point out that the signal new Event() defaults to new Event<undefined>() whose signature hasn't changed.
However, in order to be completely backwards compatible with new Event<any>().emit() I have now pushed a new commit that allows for omitting the payload just like before, as undefined is a valid value for any. My PR now behaves as follows:
new Event().emit();
new Event().emit(1234); // Fails as expected
new Event<number>().emit(); // Fails as expected
new Event<number>().emit(1234);
new Event<any>().emit(); // Allowed as before
new Event<any>().emit(1234); // Allowed as of now

That's great to hear, this package is a wonderful building block for any kind of application and I love to see it mature.
In regards to the breaking change argument I'd like to point out that the signal new Event() defaults to new Event<undefined>() whose signature hasn't changed.
However, in order to be completely backwards compatible with new Event<any>().emit() I have now pushed a new commit that allows for omitting the payload just like before, as undefined is a valid value for any. My PR now behaves as follows:
new Event().emit();
new Event().emit(1234); // Fails as expected
new Event<number>().emit(); // Fails as expected
new Event<number>().emit(1234);
new Event<any>().emit(); // Allowed as before
new Event<any>().emit(1234); // Allowed as of now

I am also working on a new feature proposal that exposes emit to the instantiator only to ensure API integrity.

I am also working on a new feature proposal that exposes emit to the instantiator only to ensure API integrity.

This branch is now obselete as #14 includes a better solution and tests. It can easily be partially merged if you don't like the SealedEvent functionality it also includes.

This branch is now obselete as #14 includes a better solution and tests. It can easily be partially merged if you don't like the SealedEvent functionality it also includes.

source: gharchive/pull-request

authors: JacobFischer soimon

repo: JacobFischer/ts-typed-events

license: mit

license_type: permissive

license_source: bigquery


text:
BibTeX citations

The citation numbers [#] are currently hard-coded into the Drasil DSL.  Ideally the citations will be auto-generated.  For LaTeX this would mean using the cite command together with BibTeX.  There are other priorities at the moment, but this would be a nice detail to get working.

This should fix #239

I've done some work on this. What is left to do is,

Add other types of sources (articles, websites, database etc.)
Add more fields (ISBN, www link etc.)
Add alternate renderings (APA, MLA etc.)
Integrate with the current rendering of Drasil

But the general framework is done now.

The main problem with TeX is that the title "References" shows up twice. The functions in TeX/Print.hs also need some cleaning up.

Note: look into https://github.com/backtracking/bibtex2html or
nxg.me.uk/dist/bibhtml/ or www.spinellis.gr/sw/textproc/bib2xhtml/

The main implementation of citations is done. #48 covers the in-text citation portion of this issue.

source: gharchive/issue

authors: njericha smiths


text:
Correções e exclusão da tabela e objeto usuario

Correções e exclusão da tabela e objeto usuario

Adicionando o link do vídeo: https://youtu.be/MicNhRRvxTA

repo: JairJr/TechChallenge

license: MIT

license_source: github-api


text:
Optional list field with nested model fails to validate

import polars as pl
from patito import Model

class TestStructModel(Model):
    nested_struct_field: int

class TestModel(Model):
    list_field: list[TestStructModel] | None

df = pl.DataFrame({"list_field": [[{"nested_struct_field": 1}, {"nested_struct_field": 2}]]})
TestModel.validate(df)

fails with:
    143 column_subset = columns or dataframe.columns
    144 if not allow_missing_columns:
    145     # Check if any columns are missing

AttributeError: type object 'list' has no attribute 'columns'

If I change the signature to list_field: list[TestStructModel] by removing the optionality, there is no failure.

This was fixed by #100. I'm hoping we can get a release soon so users don't need to pip install from the master branch. Any news on when the next release will be @thomasaarholt @JakobGM?

Ah okay, so this appears to be a duplicate of https://github.com/JakobGM/patito/issues/85.
+1 to frequent releases while the core functionality is still being ironed out. Thanks for a cool project and this plugging this missing functionality in polars.

Just released now. Apologies for the slow response time while I'm on parental leave! Hard to fine the time 😓

No worries @thomasaarholt, hope you're all doing well.

Much appreciated @thomasaarholt. BTW I'm not seeing a release on PyPI yet: https://pypi.org/project/patito/0.8.0/

There! Took me a lot of tries and I still don't understand why it didn't work before my latest iteration of release.yml, but there is now a new release on pypi!

Thanks @thomasaarholt - much appreciated 🙏

authors: dhimmel dsgibbons thomasaarholt

repo: JakobGM/patito


text:
How to bust the Babel cache?

Thanks for this great plugin.
I'm getting a problem where it doesn't seem to pick up changes to the file being inlined. I have to edit the parent JS file to cachebust it. I think this is because the parent file is stuck in Babel's cache with the inlined string, and Babel doesn't know that the underlying file has changed.
Is there any solution to this? Currently I am having to make an arbitrary whitespace change in the parent file whenever I want to edit the child file. (Excuse terminology.)

I am seeing this too with create-react-app development environment. Also if I'm reverting to an old version, it seems to cache based on the content of the file, it's not as simple as just recompiling. e.g. add a space, compile, it gets new content - remove that space, compile, it actually reverts to the original cache value. So it seems to be caching against some type of checksum or similar which makes it even harder on the workflow....

The workaround I'm using now consists in removing all the files on the node_modules/.cache/babel-loader folder. For OS X users it may be needed to use Cmd + Shift + . to show hidden folders (.cache).
It looks like it also happens to other similar plugins, such as kentcdodds/babel-plugin-preval#19, evenchange4/graphql.macro#6 and even babel/babel-loader#453.

authors: callumlocke jesobreira rgilling


text:
Node v10 Build Failing

According to fivdi/epoll#27 this is because epoll need to be upgraded
pi@raspberrypi:~/server $ npm install

> epoll@0.1.22 install /home/pi/server/node_modules/epoll
> node-gyp rebuild

gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
make: Entering directory '/home/pi/server/node_modules/epoll/build'
  CXX(target) Release/obj.target/epoll/src/epoll.o
In file included from ../../nan/nan.h:192:0,
                 from ../src/epoll.cc:15:
../../nan/nan_maybe_43_inl.h: In function ‘Nan::Maybe<bool> Nan::ForceSet(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::PropertyAttribute)’:
../../nan/nan_maybe_43_inl.h:112:15: error: ‘class v8::Object’ has no member named ‘ForceSet’
   return obj->ForceSet(isolate->GetCurrentContext(), key, value, attribs);
               ^
In file included from ../src/epoll.cc:15:0:
../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’:
../../nan/nan.h:835:60: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated (declared at /home/pi/.node-gyp/10.4.1/include/node/node.h:171): Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
         v8::Isolate::GetCurrent(), target, func, argc, argv);
                                                            ^
../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’:
../../nan/nan.h:850:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated (declared at /home/pi/.node-gyp/10.4.1/include/node/node.h:164): Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
         v8::Isolate::GetCurrent(), target, symbol, argc, argv);
                                                              ^
../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’:
../../nan/nan.h:865:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’ is deprecated (declared at /home/pi/.node-gyp/10.4.1/include/node/node.h:157): Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
         v8::Isolate::GetCurrent(), target, method, argc, argv);
                                                              ^
../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::Callback::Call_(v8::Isolate*, v8::Local<v8::Object>, int, v8::Local<v8::Value>*) const’:
../../nan/nan.h:1479:5: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated (declared at /home/pi/.node-gyp/10.4.1/include/node/node.h:171): Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
     ));
     ^
epoll.target.mk:95: recipe for target 'Release/obj.target/epoll/src/epoll.o' failed
make: *** [Release/obj.target/epoll/src/epoll.o] Error 1
make: Leaving directory '/home/pi/server/node_modules/epoll/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/pi/.nvm/versions/node/v10.4.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:237:12)
gyp ERR! System Linux 4.4.13-v7+
gyp ERR! command "/home/pi/.nvm/versions/node/v10.4.1/bin/node" "/home/pi/.nvm/versions/node/v10.4.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/pi/server/node_modules/epoll
gyp ERR! node -v v10.4.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN server@1.0.0 No description
npm WARN server@1.0.0 No repository field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! epoll@0.1.22 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the epoll@0.1.22 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/pi/.npm/_logs/2018-06-13T01_53_41_156Z-debug.log
pi@raspberrypi:~/server $

This is already being worked on here: https://github.com/JamesBarwell/rpi-gpio.js/tree/v2
I'll leave this open until the branch gets merged.

Awesome thanks James

Its still broken on 10.8.0. Not sure what to do..

I've pushed another patch to the v2 branch to bump epoll again. I've installed dependencies then run the tests in a Docker container running node 10.8.0 and that all passes for me. Please could you try pulling that down and rebuilding? Let us know if it works, or if not please post the output.

But how should we install tree/v2 for node v10.8.0?
npm i rip-gpio points to main branch, isn't it?

Yes, it still points to the main v1 branch.
Try this:
npm install git://github.com/JamesBarwell/rpi-gpio.js.git#v2 --save

Seems to be working

Version 2 has been merged to master and is published as the proper npm package now. Cheers.

authors: Erozionn JamesBarwell jguillod williamluke4


text:
Use Nerdbank.GitVersioning

This makes every commit produce a unique package version, while preserving control of all 3 integers of the version.
Before this change, the source code built to a package version that was 10.0.1, even though 10.0.3 is already released.

This isn't counting version height properly. I'll look into it.

It appears to be due to your appveyor build script not maintaining consistent casing. In git, your folder is Src but if your build script uses src anywhere, the git version height won't be calculated correctly.

Versions are updated by runbuild.cmd. I don't really want to introduce a second method.

I will take a look at that script. Suppose we remove the original method you use, so that the method you use matches what many other projects use rather than a custom built solution?

...and it means the version is correct even when built from VS or with a standard msbuild.exe invocation.

It seems there are no plans to merge this one (with good reasons)? Then I would recommend to close this PR.

Thanks for this but I'm happy with the current versioning scheme.

Good choice IMO.

authors: 304NotModified AArnott JamesNK


text:
Overflow fixes #282

Fixed overflow issue on manageable groups page. This PR closes #282

It's a nice touch to paginate the groups, and we can keep it, but it doesn't address the issue. In fact, even with the current changes, just viewing it on my laptop gives me a screen small enough that overflow still occurs. The fix is more likely to be either css or chakra related, to prevent overflow from ever occurring. The other pages don't seem to have this issue, so you can check what was done there.

It's a nice touch to paginate the groups, and we can keep it, but it doesn't address the issue. In fact, even with the current changes, just viewing it on my laptop gives me a screen small enough that overflow still occurs. The fix is more likely to be either css or chakra related, to prevent overflow from ever occurring. The other pages don't seem to have this issue, so you can check what was done there.

I forgot to check when zooming in. I'll check the other pages and fix it.

authors: JamesPartsafas eyadsw


text:
Upgrade SAML support to use OpenSaml v3.1.1

This pull does the following:

Allows CAS to use OpenSaml v3.1.1 directly from Shibboleth's Maven repo. The upgrade also fixes an issue with the incompatible bouncycastle dependency that is pulled into the webapp when one adds the SAML module.
Added configuration required to initialize the OpenSaml API automatically
Fixes all unit tests that are affected by the upgrade
Fixes a bug with Saml service validation
Adds the necessary SAML configuration to the webapp, commented out.

+1

@serac you may also want to review this one.

+1 with minor comments.

Thanks for the comments. I believe I have addressed them all. Will proceed to merge.

authors: leleuj mmoayyed serac

repo: Jasig/cas


text:
chore(deps): update dependency org.springframework:spring-aop to v5

This PR contains the following updates:

Package
Update
Change
References

org.springframework:spring-aop
major
4.3.22.RELEASE -> 5.1.5.RELEASE
homepage, source

Release Notes

spring-projects/spring-framework
v5.1.5.RELEASE
Compare Source
:star: New Features

Fix for ScriptUtils failure when '--' occurs inside a multi-line comment on the same line as '*/' #22392
InjectionPoint autowiring throws exception for @Resource beans autowired by name #22359
PathMatchingResourcePatternResolver may double-wrap jar: URLs #22346
mariadb-java-client 2.4.0 productName changed: breaks Spring Batch #22344
SpringEL should not throw IllegalAccessError for invalid assignment #22336
Avoid duplicate call to findAnnotations in DefaultListableBeanFactory.findAnnotationOnBean #22318
Load-time weaving support for WildFly 13+ #22297
org.springframework.web.client.HttpMessageConverterExtractor#extractData fails to detect empty body when content-length header is missing #22265
Deprecate JibxMarshaller #22249
DefaultExceptionHandler logs warning cannot be disabled [SPR-17628]#22159
Support for null literal in Jackson2JsonDecoder [SPR-17510]#22042

:beetle: Bug Fixes

IllegalArgumentException when overriding empty 'excludeFilters' array on @ComponentScan #22405
@Transactional beans not getting proxied when being initialized during failed circular reference attempt #22370
CompositeLog does not log exceptions at ERROR level #22364
ApplicationContext.refresh() causes stale listeners to be added to ApplicationEventMulticaster  #22325
ApplicationListenerMethodAdapter does not find @Ordered annotation for dynamic proxies #22307
NPE in AbstractHandlerMethodMapping when trace logging is enabled and a handler's class loader does not provide package information #22306
Incomplete fix for MethodParameter.isOptional() ArrayIndexOutOfBoundsException #22303
Wrap DecodingException thrown by WebFlux functional endpoints #22290
Fix truncation of response body in AbstractMessageConverterMethodProcessor #22287
DataBuffer.write(CharSequence charSequence, Charset charset) fails on empty string with java.lang.IllegalStateException: Current state = RESET, new state = FLUSHED #22262
Add tests for SpringBeanContainer (Hibernate ORM integration) and fix the behavior when requesting named beans #22260
ServerSentEventHttpMessageReader leaves a leading space on field decoding [SPR-17511]#22043

:notebook_with_decorative_cover: Documentation

Enhance documentation for @PostConstruct/PreDestroy and @Required #22348
Improve spring-context-indexer documentation #22339
Testing chapter of reference manual refers to old version of PetClinic #22288
Correct issues in Spring MVC section #22282
Clarify documentation about Spring MVC views rendered with Jackson versus @JsonView #22280
Spring MVC documentation has incorrect WebFlux reference #22270
Use try-with-resources in Spring 5 documentations #22269
Document effect of @DirtiesContext when used with constructor injection [SPR-17654]#22183
Add note to Scope documentation on SimpleTransactionScope [SPR-17651]#22180
Document effect of preemptive timeouts on transactional tests [SPR-17647]#22176
Document synchronous use of WebClient [SPR-17644]#22173
Error in CORS WebFilter documentation of web-reactive #19841
Improve Kotlin documentation #22400

:heart: Contributors
We'd like to thank all the contributors who worked on this release!

@benelog
@mmustaquim
@mhewedy
@artembilan
@lifenjoy51
@yrodiere
@vpavic
@kudrevatykh

v5.1.4.RELEASE
Compare Source
v5.1.3.RELEASE
Compare Source
v5.1.2.RELEASE
Compare Source
v5.1.1.RELEASE
Compare Source
v5.1.0.RELEASE
Compare Source
v5.0.12.RELEASE
Compare Source
v5.0.11.RELEASE
Compare Source
v5.0.10.RELEASE
Compare Source
v5.0.9.RELEASE
Compare Source
v5.0.8.RELEASE
Compare Source
v5.0.7.RELEASE
Compare Source
v5.0.6.RELEASE
Compare Source
v5.0.5.RELEASE
Compare Source
v5.0.4.RELEASE
Compare Source
v5.0.3.RELEASE
Compare Source
v5.0.2.RELEASE
Compare Source
v5.0.1.RELEASE
Compare Source
v5.0.0.RELEASE
Compare Source

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR is stale, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Duplicate of #139

Renovate Ignore Notification
As this PR has been closed unmerged, Renovate will ignore this upgrade and you will not receive PRs for any future 5.x releases. However, if you upgrade to 5.x manually then Renovate will then reenable updates for minor and patch updates automatically.
If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.

repo: Jasig/email-preview


text:
UP-2823 - added helpful text on registration page for both the drop d…

…own boxes.

Checklist

[x ] commit message follows commit guidelines
[X ] message properties have been updated with new phrases
[ ] view conforms with WCAG 2.0 AA

Description of change

added helpful text on registration page for both the drop down boxes

Coverage remained the same at 23.187% when pulling bd5ab1477aaa3b369b78deaa0e809b6d412b0623 on stalele:UP-2823_add-helpful-text-registration-page into a516f66bf19add527163b546cc3ced9e2f842d36 on Jasig:master.

@ChristianMurphy and @cousquer -- Is there anything we should be adding to this change to meet our accessibility goals?  Perhaps a <label> tag?

Added changes as suggested in PR

Coverage increased (+0.002%) to 23.189% when pulling 8e08b9d7eb63b3399cb216ecfff1fbc71753b1ad on stalele:UP-2823_add-helpful-text-registration-page into a516f66bf19add527163b546cc3ced9e2f842d36 on Jasig:master.

authors: coveralls drewwills stalele

repo: Jasig/uPortal


text:
Admin template footer bug

Hello,
I noticed some bugs with the admin template:

The footer always produces a vertical scrollbar, even if the content of the page is less than the height of the screen. (eg. the admin dashboard)
There are approximately 10 white pixels below the footer's banner.

Regarding issue #29, if I'm not using a vhost, the footer is set at the height of the screen (not below content of the page)
If the page content is greater than the height of the screen, the footer is displayed over the content. For example, in the "Settings" page, the footer is fixed at the "Welcome Message" heading, even if I scroll down, the footer remains fixed. (on my fullhd screen)

Also, if I'm not using a vhost, the language button does not work and returns a system dialog box that displays message "404 not found".
However, changing the language in the user profile work smoothly.
Tested with latest Chrome and Firefox.

Fixed in release 3.3.2 on 12/14/2016.

authors: JasonBaier Snipees


text:
Feature/examples

Done:

Automated examples page processor
stackblitz based demos

Not done:

Proper RandomForest titanic demo

Improved https://stackblitz.com/edit/kalimdor-random-forest-titanic-dataset?file=index.ts for RandomForestClassifier demo

repo: JasonShin/kalimdorjs


text:
Failed toe find the column from the table schema of ""user""

I am getting the following error:
Failed toe find the column from the table schema of "\"user\""

With the following query:
    const getUserQuery = await this.client.query({
      text: sql`SELECT * FROM "user" WHERE id = $1`,
      values: [id],
    });

Full stack trace:
[INFO] Scanning "./src" for SQLs with extension Ts
thread 'main' panicked at src/ts_generator/sql_parser/expressions/translate_expr.rs:133:36:
Failed toe find the column from the table schema of "\"user\""
stack backtrace:
   0:        0x104a75b64 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h1f3776e0b5c7517d
   1:        0x104a94ef0 - core::fmt::write::heedef092c8c0962e
   2:        0x104a72850 - std::io::Write::write_fmt::h7178e8e2ea928914
   3:        0x104a759bc - std::sys_common::backtrace::print::h417292deb95532ed
   4:        0x104a76b18 - std::panicking::default_hook::{{closure}}::h0cb68f1228c4613a
   5:        0x104a7680c - std::panicking::default_hook::h24535936bc1f51de
   6:        0x104a773d0 - std::panicking::rust_panic_with_hook::h5db4d2345b297bed
   7:        0x104a76e00 - std::panicking::begin_panic_handler::{{closure}}::h3fd558f09a0d5492
   8:        0x104a75fec - std::sys_common::backtrace::__rust_end_short_backtrace::hfc76eebe1ce501b2
   9:        0x104a76b70 - _rust_begin_unwind
  10:        0x104ab81d0 - core::panicking::panic_fmt::hc2b459a5bd3dce66
  11:        0x1045c87d8 - sqlx_ts::ts_generator::sql_parser::expressions::translate_expr::get_sql_query_param::{{closure}}::h1896019f709491df
  12:        0x1045cc70c - sqlx_ts::ts_generator::sql_parser::expressions::translate_expr::translate_expr::{{closure}}::h8167647399229f64
  13:        0x1046b9f24 - sqlx_ts::ts_generator::sql_parser::translate_query::translate_query::{{closure}}::hbb13567b6f258221
  14:        0x1046bb2bc - sqlx_ts::ts_generator::sql_parser::translate_stmt::translate_stmt::{{closure}}::hb018146488cc502c
  15:        0x1046b5e3c - sqlx_ts::ts_generator::generator::generate_ts_interface::{{closure}}::h0437b2601b8838b8
  16:        0x1046c0554 - sqlx_ts::main::{{closure}}::hdfdc8c390af37a65
  17:        0x1046ad694 - tokio::runtime::park::CachedParkThread::block_on::hfff00a85b0473a50
  18:        0x104688028 - tokio::runtime::context::runtime::enter_runtime::h7ca324ddb8c44e99
  19:        0x104619b0c - tokio::runtime::runtime::Runtime::block_on::h04bf0b47b449c7d4
  20:        0x10464f9ec - sqlx_ts::main::he63bae760152502e
  21:        0x1046996c4 - std::sys_common::backtrace::__rust_begin_short_backtrace::heca7c122cd8ebc36
  22:        0x1046034ac - std::rt::lang_start::{{closure}}::h889d2a596bb18acf
  23:        0x104a6d484 - std::rt::lang_start_internal::hecc68fef83c8f44d
  24:        0x10464faf4 - _main

Casting to uuid  fixes the issue:
+SELECT * FROM "user" WHERE id::uuid = $1
-SELECT * FROM "user" WHERE id = $1

hello, thanks for this.
I am seeing the problem when the table name is provided with ". This is a valid syntax in SQL, but when the parser retrieves the table name, it is using a key \"user\", but it should be user.
Could you try removing the double quotes " for the time being?
I will work out on a fix soon

This is resolved now and will be released (will post the release version

Happy to see a fix already, and sorry for my late reply.
I think it's good this was fixed, as I'm not sure I can remove the double quotes from user table anyway, as it'll produce an error in postgres. I believe the keyword "user" is reserved

Apologies, I was busy due to work & personal matters

authors: JasonShin simplenotezy

repo: JasonShin/sqlx-ts


text:
Unable using docker-compose to running demo.

Try to follow README.md to trying demo, But got 3 issue:

docker-compose healthcheck need CMD-SHELL flag PR
alpine:3.15 no longer support rocksdb-dev PR
crator actix-service need musl link PR
librusty_v8_release_x86_64-unknown-linux not support musl(TODO)

all prs have been merged, thank you for your contribution!

authors: JasonThon Max-Cheng

repo: JasonThon/lightflus


text:
执行写入操作的时候 发生 exception occur while writing: Gatt Exception Occurred!

执行写入操作的时候 发生 exception occur while writing: Gatt Exception Occurred! 这个问题该怎么解决？连接成功也打开订阅了

你解决了没?再怎么处理啊

写入的时候，最好放在线程里面，每次写入一包数据，之后延迟几十到几百毫秒，这样子，就不会出现exception occur while writing: Gatt Exception Occurred了。我是这么解决的，没有再出现异常了。

两次写入之间的间隔是150ms，虽然这种case少了，但是发现还有有个别的存在。

authors: ArrayTeng kanglanlan runfengai

repo: Jasonchenlijian/FastBle


text:
Add new ISessionFactory service

Like our existing ISessionFactory, but allow for variance on things like an ASP.Net Core HttpContext or Jasper's IExecutionContext

This will likely happen in Wolverine if anything

repo: JasperFx/marten


text:
Missing LinkedIn user agent

Hi,
as I am aware LinkedIn's bot uses LinkedInBot/1.0 as its user agent, but It seems to be missing in Crawlers.php
I could make a PR.
Thank you,
Viktor

It is already detected as a bot because it has the string bot in the user agent.
https://crawlerdetect.io/?q=LinkedInBot/1.0

Ok, sorry to bother.

no worries 👍

authors: JayBizzle viktorivanov

repo: JayBizzle/Crawler-Detect


text:
Authorization feature

Hi Jay,
When I saw your project I just saw some random quotes. I really believe if we can add an authorization feature then it will give a more personalized feel as they can have their own personal fav. quotes.   That would make the software even better. For new comers we can have a guest session login with limited features.
If you are fine with issue please do assign me this issue with the apt. tags.
Regards
Payal Lenka

Hii, Thanks for taking out the time.
Yes, I think your idea sounds good. But i see this website as a culmination of contributors fav quotes. So it's just like some kind of art on display you see? But if you can add some feature that allows the admin to edit all the quotes and add/remove them after successful authorization, then that might come in handy.
I hope I am not confusing you. Hit me up if there are any questions.

yeah, I can built that with admin portal authorization system that will all the CRUD operation rights. If that sounds good do let me know!

Hii, that functionality might come in handy. But I might take some time to merge the pr (maybe after oct). So take your time and no need to hurry. If you want to contribute in hacktoberfest, you can add a quote that i can merge immediately. (I hope the hacktoberfest guys won't mind this type of contribution.)

As discussed I have started working on the authentication system and have current made a PR to merge a new quote as decided.
Kindly merge the PR as I work on the further process.

Since you won't be able to work on this issue, I'll close this issue. I too have been busy and I understand. Thanks again.


text:
PowerShell 5.1 installation requires -AllowClobber flag

Example:
PS C:\Users\cknox> install-module bettercredentials -Scope CurrentUser
PackageManagement\Install-Package : A command with name 'Get-Credential' is already available on this system. This
module 'BetterCredentials' may override the existing commands. If you still want to install this module
'BetterCredentials', use -AllowClobber parameter.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1661 char:21
+ ...          $null = PackageManagement\Install-Package @PSBoundParameters
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package],
   Exception
    + FullyQualifiedErrorId : CommandAlreadyAvailable,Validate-ModuleCommandAlreadyAvailable,Microsoft.PowerShell.Pack
   ageManagement.Cmdlets.InstallPackage

As a suggestion, to get around this all that needs happen is to rename the cmdlet to something like Get-BetterCredential.

authors: kenmacneal knoxyca

repo: Jaykul/BetterCredentials


text:
Front-end validation

Selectance need to provide a simple and fast way to make front-end control on the selections like the maximum or minimum number or item user can select.

Other control features are also needed like

The ability to disable the selector
The ability to disable an option
The ability to require the selection of an option

repo: JeanKouss/selectance


text:
Reconnect not being propagated

It appears re-connects aren't showing up.   Further investigation needed.
For example alarm IPM1S01 Status (EPICS PV: IPM1S01AH) appears stuck in ChannelError state Disconnected on the admin GUI, yet I can query the PV with caget.

Possibly related: https://github.com/JeffersonLab/jaws/issues/30


text:
Demucs model - Error writing to file | Pytorch & RTX GPU

I tried following your install instructions, everything went fine, except none of the demucs model work. I receive an error saying "Error writing to file".

Which Docker command did you run? Do you see any errors in the logs (spleeter-web-celery-slow-1)?

I didn't use any commands to trigger this error, I did it by trying to create a mix using any of the demucs models.
Here is the log from demucs v3 for spleeter-web-celery-slow-1:
2022-05-04 22:01:52,108 [nnabla][INFO]: Initializing CPU extension...
2022-05-04 22:01:53.481741: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcudart.so.11.0
/usr/local/lib/python3.7/dist-packages/celery/platforms.py:835

Please specify a different user using the --uid option.

User information: uid=0 euid=0 gid=0 egid=0

  uid=uid, euid=euid, gid=gid, egid=egid,

 -------------- celery@9c9a8c0bd261 v5.1.2 (sun-harmonics)
--- ***** -----
-- ******* ---- Linux-5.13.0-40-generic-x86_64-with-Ubuntu-18.04-bionic 2022-05-04 22:01:55
- *** --- * ---
- ** ---------- [config]
- ** ---------- .> app:         api:0x7f9d950ff9d0
- ** ---------- .> transport:   redis://redis:6379/0
- ** ---------- .> results:     redis://redis:6379/0
- *** --- * --- .> concurrency: 1 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
 -------------- [queues]
                .> slow_queue       exchange=slow_queue(direct) key=slow_queue

[tasks]
  . api.celery.debug_task
  . api.tasks.create_dynamic_mix
  . api.tasks.create_static_mix
  . api.tasks.fetch_youtube_audio

[2022-05-04 22:01:55,942: INFO/MainProcess] Connected to redis://redis:6379/0
[2022-05-04 22:01:55,944: INFO/MainProcess] mingle: searching for neighbors
[2022-05-04 22:01:56,948: INFO/MainProcess] mingle: all alone
[2022-05-04 22:01:56,954: INFO/MainProcess] celery@9c9a8c0bd261 ready.
[2022-05-05 02:02:05,628: INFO/MainProcess] missed heartbeat from celery@b0dabb15945c
[2022-05-05 02:21:23,870: INFO/MainProcess] Task api.tasks.create_dynamic_mix[e2327d36-95ca-459b-96be-a6ace746b797] received
[2022-05-05 02:21:26,339: WARNING/Process-1:1] Selected model is a bag of 4 models. You will see that many progress bars per track.
[2022-05-05 02:21:26,339: WARNING/Process-1:1]

[2022-05-05 02:21:26,353: WARNING/Process-1:1] Separating track /webapp/media/uploads/00db305e-87d5-4539-b32c-819e9a3d34de/mixture.wav
[2022-05-05 02:21:26,353: WARNING/Process-1:1]

[2022-05-05 02:21:26,775: WARNING/Process-1:1] /usr/local/lib/python3.7/dist-packages/torch/cuda/__init__.py:104: UserWarning:
NVIDIA GeForce RTX 3070 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.
If you want to use the NVIDIA GeForce RTX 3070 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/

  warnings.warn(incompatible_device_warn.format(device_name, capability, " ".join(arch_list), device_name))

[2022-05-05 02:21:27,489: ERROR/Process-1:1] Process Process-1:1
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/billiard/process.py", line 327, in _bootstrap
    self.run()
  File "/usr/local/lib/python3.7/dist-packages/billiard/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/webapp/api/separators/demucs_separator.py", line 116, in separate_into_parts
    raw_sources = self.apply_model(model, input_path)
  File "/webapp/api/separators/demucs_separator.py", line 68, in apply_model
    num_workers=self.workers)[0]
  File "/usr/local/lib/python3.7/dist-packages/demucs/apply.py", line 165, in apply_model
    sub_model.to(device)
  File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 673, in to
    return self._apply(convert)
  File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 387, in _apply
    module._apply(fn)
  File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 387, in _apply
    module._apply(fn)
  File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 387, in _apply
    module._apply(fn)
  [Previous line repeated 4 more times]
  File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/rnn.py", line 186, in _apply
    self.flatten_parameters()
  File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/rnn.py", line 176, in flatten_parameters
    self.batch_first, bool(self.bidirectional))  # type: ignore
RuntimeError: CUDA error: no kernel image is available for execution on the device
[2022-05-05 02:21:27,490: WARNING/Process-1:1] Process Process-1:1:

[2022-05-05 02:21:27,490: WARNING/Process-1:1] Traceback (most recent call last):

[2022-05-05 02:21:27,490: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/billiard/process.py", line 327, in _bootstrap
    self.run()

[2022-05-05 02:21:27,490: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/billiard/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)

[2022-05-05 02:21:27,490: WARNING/Process-1:1]   File "/webapp/api/separators/demucs_separator.py", line 116, in separate_into_parts
    raw_sources = self.apply_model(model, input_path)

[2022-05-05 02:21:27,490: WARNING/Process-1:1]   File "/webapp/api/separators/demucs_separator.py", line 68, in apply_model
    num_workers=self.workers)[0]

[2022-05-05 02:21:27,490: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/demucs/apply.py", line 165, in apply_model
    sub_model.to(device)

[2022-05-05 02:21:27,490: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 673, in to
    return self._apply(convert)

[2022-05-05 02:21:27,490: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 387, in _apply
    module._apply(fn)

[2022-05-05 02:21:27,490: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 387, in _apply
    module._apply(fn)

[2022-05-05 02:21:27,490: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 387, in _apply
    module._apply(fn)

[2022-05-05 02:21:27,490: WARNING/Process-1:1]   [Previous line repeated 4 more times]

[2022-05-05 02:21:27,490: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/rnn.py", line 186, in _apply
    self.flatten_parameters()

[2022-05-05 02:21:27,490: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/rnn.py", line 176, in flatten_parameters
    self.batch_first, bool(self.bidirectional))  # type: ignore

[2022-05-05 02:21:27,490: WARNING/Process-1:1] RuntimeError: CUDA error: no kernel image is available for execution on the device

[2022-05-05 02:21:27,578: WARNING/ForkPoolWorker-1] media/separate/2ab370b2-ead0-4c37-b445-373be63ce69a/vocals.mp3 does not exist
[2022-05-05 02:21:27,578: WARNING/ForkPoolWorker-1]

[2022-05-05 02:21:27,578: WARNING/ForkPoolWorker-1] Error writing to file
[2022-05-05 02:21:27,578: WARNING/ForkPoolWorker-1]

[2022-05-05 02:21:27,587: INFO/ForkPoolWorker-1] Task api.tasks.create_dynamic_mix[e2327d36-95ca-459b-96be-a6ace746b797] succeeded in 3.7155893330000254s: None

None of the other models had this issue.
Some of the logs that stood out to me the most were:
[2022-05-05 02:21:26,775: WARNING/Process-1:1] /usr/local/lib/python3.7/dist-packages/torch/cuda/__init__.py:104: UserWarning:
NVIDIA GeForce RTX 3070 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.
If you want to use the NVIDIA GeForce RTX 3070 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/

[2022-05-05 02:21:27,490: WARNING/Process-1:1] RuntimeError: CUDA error: no kernel image is available for execution on the device

[2022-05-05 02:21:27,578: WARNING/ForkPoolWorker-1] media/separate/2ab370b2-ead0-4c37-b445-373be63ce69a/vocals.mp3 does not exist
[2022-05-05 02:21:27,578: WARNING/ForkPoolWorker-1]

[2022-05-05 02:21:27,578: WARNING/ForkPoolWorker-1] Error writing to file

Can you try adding this line in gpu.Dockerfile:
RUN pip3 install torch torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
on the line after COPY requirements.txt /webapp/ and before RUN pip3 install --upgrade pip -r requirements.txt
and rebuild the Docker images?
Looks like pytorch isn't compatible with your GPU.

I added that line & it executed, however I still get the same error:
docker-compose -f docker-compose.gpu.yml -f docker-compose.build.gpu.yml -f docker-compose.prod.yml -f docker-compose.prod.selfhost.yml up --build
Creating network "spleeter-web_default" with the default driver
Building celery-slow
Sending build context to Docker daemon  35.55MB
Step 1/13 : FROM nvidia/cuda:11.2.0-cudnn8-devel-ubuntu18.04
 ---> 9d2be7c32e35
Step 2/13 : ENV PYTHONDONTWRITEBYTECODE 1
 ---> Using cache
 ---> d4b5a4246700
Step 3/13 : ENV PYTHONUNBUFFERED 1
 ---> Using cache
 ---> 624ec5e568fe
Step 4/13 : RUN apt-get update     && apt-get install -y --no-install-recommends     software-properties-common     curl     ffmpeg     git     libasound2-dev     libmagic-dev     libopenmpi-dev     libsndfile-dev     openmpi-bin     rsync     ssh     wget     && add-apt-repository universe     && apt-get update     && apt-get -y install python3.7 python3.7-gdbm python3-distutils     && curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py     && python3.7 get-pip.py     && ln -s /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudart.so.11.0 /usr/lib/x86_64-linux-gnu/libcudart.so.11.0
 ---> Using cache
 ---> 9dce45dea56c
Step 5/13 : RUN mkdir -p /webapp/media /webapp/staticfiles
 ---> Using cache
 ---> cff8e1d2d819
Step 6/13 : WORKDIR /webapp
 ---> Using cache
 ---> 096c970e41fa
Step 7/13 : COPY requirements.txt /webapp/
 ---> Using cache
 ---> 2aee364b0cd7
Step 8/13 : RUN pip3 install torch torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
 ---> Using cache
 ---> 19478ff7319e
Step 9/13 : RUN pip3 install --upgrade pip -r requirements.txt
 ---> Using cache
 ---> 8cd1aa15c10d
Step 10/13 : COPY . .
 ---> 6336a278e21e
Step 11/13 : COPY api-entrypoint.sh /usr/local/bin/
 ---> 791fa33a7e06
Step 12/13 : RUN chmod +x /usr/local/bin/api-entrypoint.sh && ln -s /usr/local/bin/api-entrypoint.sh /
 ---> Running in 0a352fabb59d
Removing intermediate container 0a352fabb59d
 ---> 392c7ee9da52
Step 13/13 : ENTRYPOINT ["api-entrypoint.sh"]
 ---> Running in 70a7678b049e
Removing intermediate container 70a7678b049e
 ---> 361a0a4919aa
Successfully built 361a0a4919aa
Successfully tagged jeffreyca/spleeter-web-backend:latest-gpu
Building celery-fast
Sending build context to Docker daemon  35.55MB
Step 1/13 : FROM nvidia/cuda:11.2.0-cudnn8-devel-ubuntu18.04
 ---> 9d2be7c32e35
Step 2/13 : ENV PYTHONDONTWRITEBYTECODE 1
 ---> Using cache
 ---> d4b5a4246700
Step 3/13 : ENV PYTHONUNBUFFERED 1
 ---> Using cache
 ---> 624ec5e568fe
Step 4/13 : RUN apt-get update     && apt-get install -y --no-install-recommends     software-properties-common     curl     ffmpeg     git     libasound2-dev     libmagic-dev     libopenmpi-dev     libsndfile-dev     openmpi-bin     rsync     ssh     wget     && add-apt-repository universe     && apt-get update     && apt-get -y install python3.7 python3.7-gdbm python3-distutils     && curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py     && python3.7 get-pip.py     && ln -s /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudart.so.11.0 /usr/lib/x86_64-linux-gnu/libcudart.so.11.0
 ---> Using cache
 ---> 9dce45dea56c
Step 5/13 : RUN mkdir -p /webapp/media /webapp/staticfiles
 ---> Using cache
 ---> cff8e1d2d819
Step 6/13 : WORKDIR /webapp
 ---> Using cache
 ---> 096c970e41fa
Step 7/13 : COPY requirements.txt /webapp/
 ---> Using cache
 ---> 2aee364b0cd7
Step 8/13 : RUN pip3 install torch torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
 ---> Using cache
 ---> 19478ff7319e
Step 9/13 : RUN pip3 install --upgrade pip -r requirements.txt
 ---> Using cache
 ---> 8cd1aa15c10d
Step 10/13 : COPY . .
 ---> Using cache
 ---> 6336a278e21e
Step 11/13 : COPY api-entrypoint.sh /usr/local/bin/
 ---> Using cache
 ---> 791fa33a7e06
Step 12/13 : RUN chmod +x /usr/local/bin/api-entrypoint.sh && ln -s /usr/local/bin/api-entrypoint.sh /
 ---> Using cache
 ---> 392c7ee9da52
Step 13/13 : ENTRYPOINT ["api-entrypoint.sh"]
 ---> Using cache
 ---> 361a0a4919aa
Successfully built 361a0a4919aa
Successfully tagged jeffreyca/spleeter-web-backend:latest-gpu
Building frontend
Sending build context to Docker daemon  1.348MB
Step 1/11 : FROM node:14-buster
 ---> 579449502e7e
Step 2/11 : RUN mkdir -p /webapp/frontend/assets
 ---> Using cache
 ---> 3a943e8232bd
Step 3/11 : WORKDIR /webapp/frontend
 ---> Using cache
 ---> f3dc0277f0ee
Step 4/11 : COPY package.json /webapp/frontend/
 ---> Using cache
 ---> aa74a3b50dae
Step 5/11 : COPY package-lock.json /webapp/frontend/
 ---> Using cache
 ---> 7221ae01cd4a
Step 6/11 : RUN npm install
 ---> Using cache
 ---> bed368f7a634
Step 7/11 : COPY . .
 ---> Using cache
 ---> c08c845b9438
Step 8/11 : COPY frontend-entrypoint.sh /usr/local/bin/
 ---> Using cache
 ---> 1c0f0169c375
Step 9/11 : RUN chmod +x /usr/local/bin/frontend-entrypoint.sh
 ---> Using cache
 ---> e4c7378fa04b
Step 10/11 : RUN ln -s /usr/local/bin/frontend-entrypoint.sh /
 ---> Using cache
 ---> 322b11caf55d
Step 11/11 : ENTRYPOINT ["frontend-entrypoint.sh"]
 ---> Using cache
 ---> b4e984d6f70f
Successfully built b4e984d6f70f
Successfully tagged jeffreyca/spleeter-web-frontend:latest
Building api
Sending build context to Docker daemon  35.55MB
Step 1/13 : FROM nvidia/cuda:11.2.0-cudnn8-devel-ubuntu18.04
 ---> 9d2be7c32e35
Step 2/13 : ENV PYTHONDONTWRITEBYTECODE 1
 ---> Using cache
 ---> d4b5a4246700
Step 3/13 : ENV PYTHONUNBUFFERED 1
 ---> Using cache
 ---> 624ec5e568fe
Step 4/13 : RUN apt-get update     && apt-get install -y --no-install-recommends     software-properties-common     curl     ffmpeg     git     libasound2-dev     libmagic-dev     libopenmpi-dev     libsndfile-dev     openmpi-bin     rsync     ssh     wget     && add-apt-repository universe     && apt-get update     && apt-get -y install python3.7 python3.7-gdbm python3-distutils     && curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py     && python3.7 get-pip.py     && ln -s /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudart.so.11.0 /usr/lib/x86_64-linux-gnu/libcudart.so.11.0
 ---> Using cache
 ---> 9dce45dea56c
Step 5/13 : RUN mkdir -p /webapp/media /webapp/staticfiles
 ---> Using cache
 ---> cff8e1d2d819
Step 6/13 : WORKDIR /webapp
 ---> Using cache
 ---> 096c970e41fa
Step 7/13 : COPY requirements.txt /webapp/
 ---> Using cache
 ---> 2aee364b0cd7
Step 8/13 : RUN pip3 install torch torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
 ---> Using cache
 ---> 19478ff7319e
Step 9/13 : RUN pip3 install --upgrade pip -r requirements.txt
 ---> Using cache
 ---> 8cd1aa15c10d
Step 10/13 : COPY . .
 ---> Using cache
 ---> 6336a278e21e
Step 11/13 : COPY api-entrypoint.sh /usr/local/bin/
 ---> Using cache
 ---> 791fa33a7e06
Step 12/13 : RUN chmod +x /usr/local/bin/api-entrypoint.sh && ln -s /usr/local/bin/api-entrypoint.sh /
 ---> Using cache
 ---> 392c7ee9da52
Step 13/13 : ENTRYPOINT ["api-entrypoint.sh"]
 ---> Using cache
 ---> 361a0a4919aa
Successfully built 361a0a4919aa
Successfully tagged jeffreyca/spleeter-web-backend:latest-gpu
Building nginx
Sending build context to Docker daemon  3.072kB
Step 1/3 : FROM nginx:stable-alpine
 ---> 5c05ca045835
Step 2/3 : COPY default.conf.template /etc/nginx/templates/
 ---> Using cache
 ---> 897820690aea
Step 3/3 : ENV API_HOST=api
 ---> Using cache
 ---> 4edbbafcccc6
Successfully built 4edbbafcccc6
Successfully tagged jeffreyca/spleeter-web-nginx:latest
Creating spleeter-web_frontend_1 ... done
Creating spleeter-web_redis_1    ... done
Creating spleeter-web_api_1         ... done
Creating spleeter-web_celery-fast_1 ... done
Creating spleeter-web_celery-slow_1 ... done
Creating spleeter-web_nginx_1       ... done

celery-slow_1  | [2022-05-05 21:21:05,486: INFO/MainProcess] Task api.tasks.create_dynamic_mix[8f7ac8df-fa4e-4646-a56e-564474215bac] received
nginx_1        | 172.20.0.1 - - [05/May/2022:21:21:05 +0000] "POST /api/mix/dynamic/ HTTP/1.1" 201 422 "http://127.0.0.1:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36" "-"
nginx_1        | 172.20.0.1 - - [05/May/2022:21:21:05 +0000] "GET /api/source-track/ HTTP/1.1" 200 1579 "http://127.0.0.1:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36" "-"
nginx_1        | 172.20.0.1 - - [05/May/2022:21:21:05 +0000] "GET /mixer/29228252-6ab5-4b51-b487-4d498a60dacf HTTP/1.1" 301 0 "http://127.0.0.1:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36" "-"
nginx_1        | 172.20.0.1 - - [05/May/2022:21:21:05 +0000] "GET /mixer/29228252-6ab5-4b51-b487-4d498a60dacf/ HTTP/1.1" 200 584 "http://127.0.0.1:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36" "-"
nginx_1        | 172.20.0.1 - - [05/May/2022:21:21:05 +0000] "GET /api/mix/dynamic/29228252-6ab5-4b51-b487-4d498a60dacf/ HTTP/1.1" 200 362 "http://127.0.0.1:8080/mixer/29228252-6ab5-4b51-b487-4d498a60dacf/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36" "-"
celery-slow_1  | [2022-05-05 21:21:07,599: WARNING/Process-1:1] Selected model is a bag of 4 models. You will see that many progress bars per track.
celery-slow_1  | [2022-05-05 21:21:07,600: WARNING/Process-1:1]
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:07,610: WARNING/Process-1:1] Separating track /webapp/media/uploads/3e79d0e6-f3bb-4301-8c48-5601b69950fb/Matroda - On My Mind.mp3
celery-slow_1  | [2022-05-05 21:21:07,610: WARNING/Process-1:1]
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,232: WARNING/Process-1:1] /usr/local/lib/python3.7/dist-packages/torch/cuda/__init__.py:104: UserWarning:
celery-slow_1  | NVIDIA GeForce RTX 3070 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
celery-slow_1  | The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.
celery-slow_1  | If you want to use the NVIDIA GeForce RTX 3070 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/
celery-slow_1  |
celery-slow_1  |   warnings.warn(incompatible_device_warn.format(device_name, capability, " ".join(arch_list), device_name))
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,313: ERROR/Process-1:1] Process Process-1:1
celery-slow_1  | Traceback (most recent call last):
celery-slow_1  |   File "/usr/local/lib/python3.7/dist-packages/billiard/process.py", line 327, in _bootstrap
celery-slow_1  |     self.run()
celery-slow_1  |   File "/usr/local/lib/python3.7/dist-packages/billiard/process.py", line 114, in run
celery-slow_1  |     self._target(*self._args, **self._kwargs)
celery-slow_1  |   File "/webapp/api/separators/demucs_separator.py", line 116, in separate_into_parts
celery-slow_1  |     raw_sources = self.apply_model(model, input_path)
celery-slow_1  |   File "/webapp/api/separators/demucs_separator.py", line 68, in apply_model
celery-slow_1  |     num_workers=self.workers)[0]
celery-slow_1  |   File "/usr/local/lib/python3.7/dist-packages/demucs/apply.py", line 165, in apply_model
celery-slow_1  |     sub_model.to(device)
celery-slow_1  |   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 673, in to
celery-slow_1  |     return self._apply(convert)
celery-slow_1  |   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 387, in _apply
celery-slow_1  |     module._apply(fn)
celery-slow_1  |   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 387, in _apply
celery-slow_1  |     module._apply(fn)
celery-slow_1  |   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 387, in _apply
celery-slow_1  |     module._apply(fn)
celery-slow_1  |   [Previous line repeated 4 more times]
celery-slow_1  |   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/rnn.py", line 186, in _apply
celery-slow_1  |     self.flatten_parameters()
celery-slow_1  |   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/rnn.py", line 176, in flatten_parameters
celery-slow_1  |     self.batch_first, bool(self.bidirectional))  # type: ignore
celery-slow_1  | RuntimeError: CUDA error: no kernel image is available for execution on the device
celery-slow_1  | [2022-05-05 21:21:08,313: WARNING/Process-1:1] Process Process-1:1:
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,313: WARNING/Process-1:1] Traceback (most recent call last):
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,313: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/billiard/process.py", line 327, in _bootstrap
celery-slow_1  |     self.run()
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,313: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/billiard/process.py", line 114, in run
celery-slow_1  |     self._target(*self._args, **self._kwargs)
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,314: WARNING/Process-1:1]   File "/webapp/api/separators/demucs_separator.py", line 116, in separate_into_parts
celery-slow_1  |     raw_sources = self.apply_model(model, input_path)
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,314: WARNING/Process-1:1]   File "/webapp/api/separators/demucs_separator.py", line 68, in apply_model
celery-slow_1  |     num_workers=self.workers)[0]
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,314: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/demucs/apply.py", line 165, in apply_model
celery-slow_1  |     sub_model.to(device)
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,314: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 673, in to
celery-slow_1  |     return self._apply(convert)
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,314: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 387, in _apply
celery-slow_1  |     module._apply(fn)
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,314: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 387, in _apply
celery-slow_1  |     module._apply(fn)
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,314: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 387, in _apply
celery-slow_1  |     module._apply(fn)
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,314: WARNING/Process-1:1]   [Previous line repeated 4 more times]
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,314: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/rnn.py", line 186, in _apply
celery-slow_1  |     self.flatten_parameters()
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,314: WARNING/Process-1:1]   File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/rnn.py", line 176, in flatten_parameters
celery-slow_1  |     self.batch_first, bool(self.bidirectional))  # type: ignore
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,314: WARNING/Process-1:1] RuntimeError: CUDA error: no kernel image is available for execution on the device
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,400: WARNING/ForkPoolWorker-1] media/separate/29228252-6ab5-4b51-b487-4d498a60dacf/vocals.mp3 does not exist
celery-slow_1  | [2022-05-05 21:21:08,400: WARNING/ForkPoolWorker-1]
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,401: WARNING/ForkPoolWorker-1] Error writing to file
celery-slow_1  | [2022-05-05 21:21:08,401: WARNING/ForkPoolWorker-1]
celery-slow_1  |
celery-slow_1  | [2022-05-05 21:21:08,409: INFO/ForkPoolWorker-1] Task api.tasks.create_dynamic_mix[8f7ac8df-fa4e-4646-a56e-564474215bac] succeeded in 2.922642868999901s: None
nginx_1        | 172.20.0.1 - - [05/May/2022:21:21:10 +0000] "GET /api/mix/dynamic/29228252-6ab5-4b51-b487-4d498a60dacf/ HTTP/1.1" 200 402 "http://127.0.0.1:8080/mixer/29228252-6ab5-4b51-b487-4d498a60dacf/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36" "-"

Instead of this:
RUN pip3 install torch torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

can you try this:
RUN pip3 install torch==1.8.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html

It works for me!
nginx_1        | 172.20.0.1 - - [09/May/2022:20:17:42 +0000] "GET /api/source-track/ HTTP/1.1" 200 1579 "http://127.0.0.1:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" "-"
celery-slow_1  | [2022-05-09 20:17:44,777: WARNING/Process-1:1] Selected model is a bag of 4 models. You will see that many progress bars per track.
celery-slow_1  | [2022-05-09 20:17:44,777: WARNING/Process-1:1]
celery-slow_1  |
celery-slow_1  | [2022-05-09 20:17:44,787: WARNING/Process-1:1] Separating track /webapp/media/uploads/3e79d0e6-f3bb-4301-8c48-5601b69950fb/Matroda - On My Mind.mp3
celery-slow_1  | [2022-05-09 20:17:44,787: WARNING/Process-1:1]
celery-slow_1  |
nginx_1        | 172.20.0.1 - - [09/May/2022:20:17:47 +0000] "GET /api/mix/dynamic/678b3008-501d-4928-8712-f969ed2970e4/ HTTP/1.1" 200 362 "http://127.0.0.1:8080/mixer/678b3008-501d-4928-8712-f969ed2970e4/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" "-"
  0%|                                                                                | 0.0/231.0 [00:00<?, ?seconds/s]
 14%|##########4                                                              | 33.0/231.0 [00:00<00:03, 52.71seconds/s]
 29%|####################8                                                    | 66.0/231.0 [00:01<00:03, 52.98seconds/s]
 43%|###############################2                                         | 99.0/231.0 [00:01<00:02, 53.16seconds/s]
 57%|#########################################1                              | 132.0/231.0 [00:02<00:01, 53.23seconds/s]
 71%|###################################################4                    | 165.0/231.0 [00:03<00:01, 53.25seconds/s]
 86%|#############################################################7          | 198.0/231.0 [00:03<00:00, 55.49seconds/s]
100%|########################################################################| 231.0/231.0 [00:03<00:00, 62.05seconds/s]
celery-slow_1  | [2022-05-09 20:17:51,239: WARNING/Process-1:1]
celery-slow_1  |
  0%|                                                                                | 0.0/231.0 [00:00<?, ?seconds/s]
 14%|##########4                                                              | 33.0/231.0 [00:00<00:03, 53.26seconds/s]
nginx_1        | 172.20.0.1 - - [09/May/2022:20:17:52 +0000] "GET /api/mix/dynamic/678b3008-501d-4928-8712-f969ed2970e4/ HTTP/1.1" 200 362 "http://127.0.0.1:8080/mixer/678b3008-501d-4928-8712-f969ed2970e4/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" "-"
 29%|####################8                                                    | 66.0/231.0 [00:01<00:03, 53.28seconds/s]
 43%|###############################2                                         | 99.0/231.0 [00:01<00:02, 53.32seconds/s]
 57%|#########################################1                              | 132.0/231.0 [00:02<00:01, 53.35seconds/s]
nginx_1        | 172.20.0.1 - - [09/May/2022:20:17:53 +0000] "GET /api/source-track/ HTTP/1.1" 200 1579 "http://127.0.0.1:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" "-"
 71%|###################################################4                    | 165.0/231.0 [00:03<00:01, 53.34seconds/s]
 86%|#############################################################7          | 198.0/231.0 [00:03<00:00, 55.60seconds/s]
100%|########################################################################| 231.0/231.0 [00:03<00:00, 62.10seconds/s]
celery-slow_1  | [2022-05-09 20:17:55,205: WARNING/Process-1:1]
celery-slow_1  |
  0%|                                                                                | 0.0/231.0 [00:00<?, ?seconds/s]
 14%|##########4                                                              | 33.0/231.0 [00:00<00:03, 64.78seconds/s]
 29%|####################8                                                    | 66.0/231.0 [00:01<00:02, 64.80seconds/s]
 43%|###############################2                                         | 99.0/231.0 [00:01<00:02, 64.76seconds/s]
 57%|#########################################1                              | 132.0/231.0 [00:02<00:01, 64.72seconds/s]
nginx_1        | 172.20.0.1 - - [09/May/2022:20:17:57 +0000] "GET /api/mix/dynamic/678b3008-501d-4928-8712-f969ed2970e4/ HTTP/1.1" 200 362 "http://127.0.0.1:8080/mixer/678b3008-501d-4928-8712-f969ed2970e4/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" "-"
 71%|###################################################4                    | 165.0/231.0 [00:02<00:01, 64.71seconds/s]
 86%|#############################################################7          | 198.0/231.0 [00:02<00:00, 67.55seconds/s]
100%|########################################################################| 231.0/231.0 [00:03<00:00, 75.30seconds/s]
celery-slow_1  | [2022-05-09 20:17:58,512: WARNING/Process-1:1]
celery-slow_1  |
  0%|                                                                                | 0.0/231.0 [00:00<?, ?seconds/s]
 14%|##########4                                                              | 33.0/231.0 [00:00<00:03, 58.37seconds/s]
 29%|####################8                                                    | 66.0/231.0 [00:01<00:02, 58.42seconds/s]
 43%|###############################2                                         | 99.0/231.0 [00:01<00:02, 58.39seconds/s]
 57%|#########################################1                              | 132.0/231.0 [00:02<00:01, 58.42seconds/s]
 71%|###################################################4                    | 165.0/231.0 [00:02<00:01, 58.37seconds/s]
 86%|#############################################################7          | 198.0/231.0 [00:03<00:00, 62.54seconds/s]
100%|########################################################################| 231.0/231.0 [00:03<00:00, 69.04seconds/s]
celery-slow_1  | [2022-05-09 20:18:02,097: WARNING/Process-1:1]
celery-slow_1  |
nginx_1        | 172.20.0.1 - - [09/May/2022:20:18:02 +0000] "GET /api/mix/dynamic/678b3008-501d-4928-8712-f969ed2970e4/ HTTP/1.1" 200 362 "http://127.0.0.1:8080/mixer/678b3008-501d-4928-8712-f969ed2970e4/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" "-"
celery-slow_1  | [2022-05-09 20:18:03,365: WARNING/Process-1:1] Exporting drums MP3...
celery-slow_1  | [2022-05-09 20:18:03,365: WARNING/Process-1:1]
celery-slow_1  |
celery-slow_1  | [2022-05-09 20:18:03,409: WARNING/Process-1:1] Exporting bass MP3...
celery-slow_1  | [2022-05-09 20:18:03,409: WARNING/Process-1:1]
celery-slow_1  |
celery-slow_1  | [2022-05-09 20:18:03,410: WARNING/Process-1:1] Exporting other MP3...
celery-slow_1  | [2022-05-09 20:18:03,410: WARNING/Process-1:1]
celery-slow_1  |
celery-slow_1  | [2022-05-09 20:18:03,410: WARNING/Process-1:1] Exporting vocals MP3...
celery-slow_1  | [2022-05-09 20:18:03,410: WARNING/Process-1:1]
celery-slow_1  |
nginx_1        | 172.20.0.1 - - [09/May/2022:20:18:05 +0000] "GET /api/source-track/ HTTP/1.1" 200 1579 "http://127.0.0.1:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" "-"
celery-slow_1  | [2022-05-09 20:18:06,027: WARNING/ForkPoolWorker-1:1:2] INFO:spleeter:File media/separate/678b3008-501d-4928-8712-f969ed2970e4/bass.mp3 written succesfully
celery-slow_1  |
celery-slow_1  | [2022-05-09 20:18:06,027: INFO/ForkPoolWorker-1:1:2] File media/separate/678b3008-501d-4928-8712-f969ed2970e4/bass.mp3 written succesfully
celery-slow_1  | [2022-05-09 20:18:06,035: WARNING/ForkPoolWorker-1:1:1] INFO:spleeter:File media/separate/678b3008-501d-4928-8712-f969ed2970e4/drums.mp3 written succesfully
celery-slow_1  |
celery-slow_1  | [2022-05-09 20:18:06,035: INFO/ForkPoolWorker-1:1:1] File media/separate/678b3008-501d-4928-8712-f969ed2970e4/drums.mp3 written succesfully
celery-slow_1  | [2022-05-09 20:18:06,218: WARNING/ForkPoolWorker-1:1:3] INFO:spleeter:File media/separate/678b3008-501d-4928-8712-f969ed2970e4/other.mp3 written succesfully
celery-slow_1  |
celery-slow_1  | [2022-05-09 20:18:06,218: INFO/ForkPoolWorker-1:1:3] File media/separate/678b3008-501d-4928-8712-f969ed2970e4/other.mp3 written succesfully
celery-slow_1  | [2022-05-09 20:18:06,379: WARNING/ForkPoolWorker-1:1:4] INFO:spleeter:File media/separate/678b3008-501d-4928-8712-f969ed2970e4/vocals.mp3 written succesfully
celery-slow_1  |
celery-slow_1  | [2022-05-09 20:18:06,379: INFO/ForkPoolWorker-1:1:4] File media/separate/678b3008-501d-4928-8712-f969ed2970e4/vocals.mp3 written succesfully
nginx_1        | 172.20.0.1 - - [09/May/2022:20:18:07 +0000] "GET /api/mix/dynamic/678b3008-501d-4928-8712-f969ed2970e4/ HTTP/1.1" 200 362 "http://127.0.0.1:8080/mixer/678b3008-501d-4928-8712-f969ed2970e4/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" "-"
celery-slow_1  | [2022-05-09 20:18:07,743: WARNING/ForkPoolWorker-1] Renaming media/separate/678b3008-501d-4928-8712-f969ed2970e4/vocals.mp3 to media/separate/678b3008-501d-4928-8712-f969ed2970e4/Matroda - On My Mind (vocals) [256 kbps,mdx,0 shifts].mp3
celery-slow_1  | [2022-05-09 20:18:07,744: WARNING/ForkPoolWorker-1]
celery-slow_1  |
celery-slow_1  | [2022-05-09 20:18:07,744: WARNING/ForkPoolWorker-1] Renaming media/separate/678b3008-501d-4928-8712-f969ed2970e4/other.mp3 to media/separate/678b3008-501d-4928-8712-f969ed2970e4/Matroda - On My Mind (other) [256 kbps,mdx,0 shifts].mp3
celery-slow_1  | [2022-05-09 20:18:07,744: WARNING/ForkPoolWorker-1]
celery-slow_1  |
celery-slow_1  | [2022-05-09 20:18:07,744: WARNING/ForkPoolWorker-1] Renaming media/separate/678b3008-501d-4928-8712-f969ed2970e4/bass.mp3 to media/separate/678b3008-501d-4928-8712-f969ed2970e4/Matroda - On My Mind (bass) [256 kbps,mdx,0 shifts].mp3
celery-slow_1  | [2022-05-09 20:18:07,744: WARNING/ForkPoolWorker-1]
celery-slow_1  |
celery-slow_1  | [2022-05-09 20:18:07,744: WARNING/ForkPoolWorker-1] Renaming media/separate/678b3008-501d-4928-8712-f969ed2970e4/drums.mp3 to media/separate/678b3008-501d-4928-8712-f969ed2970e4/Matroda - On My Mind (drums) [256 kbps,mdx,0 shifts].mp3
celery-slow_1  | [2022-05-09 20:18:07,744: WARNING/ForkPoolWorker-1]
celery-slow_1  |
celery-slow_1  | [2022-05-09 20:18:07,760: INFO/ForkPoolWorker-1] Task api.tasks.create_dynamic_mix[4d1c7770-4a94-4db9-9d06-82252401cf8f] succeeded in 25.39601252400007s: None

I'm leaving this open in case you want to confirm that this works for you as well before closing this issue.

Thanks

repo: JeffreyCA/spleeter-web


text:
Link to laravel-mix.com in GitHub repository page

Laravel Mix Version: #.#.# (npm list --depth=0)
Node Version (node -v):
NPM Version (npm -v):
OS:

Description:
No link in about section now:

Would be nice if there is a link:

Steps To Reproduce:

Buy a computer.
Install an OS.
Install Firefox.
Open Firefox.
Click on address bar.
Type in https://github.com/JeffreyWay/laravel-mix.
Hit Enter key on your keyboard.

I don't maintain laravel-mix.com and can't vouch for it.

authors: JeffreyWay binotaliu

repo: JeffreyWay/laravel-mix


text:
png images are being previewd as if they were jpg

Hi.
Before all, thanks for your awesome work.
I don't know if it something wrong in my implementation but the png files do not actas transparent (I experimented changing the preview background.
Is there any turnaround?

Hi, thanks for the issue, I'll work on it soon. 🤘

Hey ! Some news about this issue ?

authors: JeremyFagis jbarralon labregowski

repo: JeremyFagis/dropify


text:
How can I save quantizationed model?Please help me.

If inscribe.

This probels already solved.Thanks.

repo: Jermmy/pytorch-quantization-demo


text:
share counter doesn't go up

look at this:
https://chiliz.000webhostapp.com/
and the code it uses:
https://vk.com/js/api/share.js?90
it makes a separate request to make this counter go up
need to make the same request

It's 53 and doesn't go up (or does it? not completely sure)

fixed in #32

repo: JerryGreen/chiliz


text:
请问如何监听get请求的进度？

比如使用okhttp请求一个网页，如：https://github.com/JessYanCoding 如何实现获取请求这个网页的进度？
我看了下demo好像只有文件下载和上传以及glide的进度监听啊
说实话，你这个项目帮了我大忙，节省了我这个菜鸟大量的工作时间，感谢作者

加载一个网页的进度是浏览器的需求,这个框架和你怎么请求无关,只要你用 Okhttp 或者 Retrofit 进行请求,并且服务器返回了 body 就可以读取进度

@JessYanCoding 不是浏览器需求，我是通过okhttp请求网页，获取html代码

和 Demo 的用法一样

好的，谢谢!

authors: JessYanCoding jayleco

repo: JessYanCoding/ProgressManager


text:
enabling capture point for scala futures for expression.

Hi,
I am not able to get capture points to work for scala for expression. Here is a sample code
Steps to reproduce

Import scala.xml into intellij async stacktrace and enable them
Debug the code and set the breakpoint mentioned

`  import scala.concurrent.Future
import scala.util.{Failure, Success}
import scala.concurrent.ExecutionContext.Implicits.global
object App30 extends App {  // .  --> point-4

  def getMilk(): String = {           //  --> point-2
    val ans = "5 gallons of milk"
    ans
  }
  def getFlour(): String =
  {
    val ans= "2 oz of flour"
    ans
  }

  val milkFuture = Future { getMilk() }
  val flourFuture = Future { getFlour() }

  val resultFut = {    // --> point-3
    for {
      milk <- milkFuture  // breakpoint here    -->   point-1
      flour <- flourFuture
      result = milk + flour
    } yield result
  }

  resultFut.onComplete{

   case Success(answer) => println("The result of getting ingridents is " + answer)
   case Failure(exception) =>  println("could not access future value")
  }
}
`

Expected behavior
Debug flow point-1 followed by point-2
Actual
Debug flow point 1 to 3 to 4
Did I miss anything out there?
Thanks

You should see something like

The stack gets captured when when Future.apply is called to define val milkFuture.  If you change milkFuture to a def, then you'll see your for comprehension on the stack too:

@dsashikanth Also, please try new version of capture points for scala Futures:
https://github.com/JetBrains/capture-points/blob/master/scala.xml

authors: dsashikanth niktrop pnf

repo: JetBrains/capture-points