Update maximum-file-path-limitation.md

Add the registry key LongPathsEnabled to the description

@andreas-eriksson : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Thanks for your contribution! I've merged your changes and they should be live soon.


Handle saves

We can take inspiration from renpy https://www.renpy.org/doc/html/_images/slot_save.jpg
and cyberpunk 2077 https://www.gry-online.pl/Galeria/html/pliki/551069390.jpg
Handle saves in JSON format
Save a screenshot and timestamp
The name of the file can be YYMMDDhhmmss.json
We can use the user:// folder to save the file in like user://saves/YYMMDDhhmmss.json
The func to save should be generic like save(data:JSON) or save(data:Dictionary), so users can save their own data

Nice idea @theludovyc , but you don't need to make file name format like YYMMDDhhmmss,
you can just use FileAccess.get_modified_time() for this.
Second it should be just .json as those are easy to hack, they should be .save and a Resource.
And they sould be saved using for example FileAccess.open_encrypted_with_pass()

@Jeremi360 Why do you want to handle it as a Resource instead of a Json format ?
Why do you want to encrypt the save file ? If the player want to corrupt it, that is his problem, do not you think ?

@theludovyc

Why do you want to handle it as a Resource instead of a Json format ?

Becouse Resouces can be write to binary format.

Why do you want to encrypt the save file ?
If the player want to corrupt it, that is his problem, do not you think ?

I didn't look at it that way, I just thogut that devs don't want player to corrupt save files.
But if you feel that this binary/encrypted way is not so obvious,
then we should give developers a choice for example a setting in ProjectSettings.

@Jeremi360

Becouse Resouces can be write to binary format.

So it is rely to the fact of file encryption.

I didn't look at it that way, I just thogut that devs don't want player to corrupt save files.

In my opinion, you want to encrypt the file when you make online multiplayer games or cash things (dlc, microtransactions, ...). For the other scenario, if the player modify is save file, it will broke his game and that is all.

okay if you say so after all RTG is more your project then mine.


Arvados git

Here it is, next step into the Arvados installation docs:
http://doc.arvados.org/install/install-arv-git-httpd.html
Ansible-galaxy cannot run inside the ansible roles, has to be performed manually beforehand (AFAIK), see README.
I observed that the nginx tasks should be abstracted away as a role as well. I'll have a look at it tomorrow. I'm pullrequesting so that @guillermo-carrasco can catch-up, right now there is an issue with directory permissions for gitolite:
TASK: [groover.gitolite | Initialize gitolite] ********************************
failed: [<IP_ADDRESS>] => {"failed": true, "rc": 258}
msg: cannot change to directory '/var/lib/arvados/git': path does not exist

FATAL: all hosts have already failed -- aborting

@brainstorm nginx/passenger is already abstracted as a role.
Ping here when this is ready to merge, thanks again :)

Tack @brainstorm !


Use tree-structured inodes instead of flat lists to represent tree nodes

This should improve the size of nodes on disk. This doesn't change the hash of tree nodes if the number of nodes is smaller than a user-defined limit.
Note however that the inodes tree are entirely read everytime a node is loaded. Lazy read of inodes can come later, if I/O is really an issue.

Closing for now, as it requires a generic solution requires a few more design iterations.


Grafana dashboard

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
I would like to get grafana dashboard represented on screenshot on this page https://www.openshift.com/blog/introducing-kube-burner-a-tool-to-burn-down-kubernetes-and-openshift?intcmp=701f2000000tjyaAAA
Describe alternatives you've considered
Additional context

Hey @Muscule, as you may know the grafana dashboards are bound to the metrics you grab from Prometheus. The example I presented in that blog entry was taken after running the the workload "cluster-density" which is available here https://github.com/rsevilla87/kube-burner-workloads/tree/master/cluster-density
This workload was executed using the metric profile at https://github.com/rsevilla87/kube-burner-workloads/blob/master/metric-profiles/metrics-aggregated.yaml and the collected metrics were represented in grafana using the dashboard kube-burner-aggregated-latest.json available here https://github.com/rsevilla87/kube-burner-workloads/tree/master/dashboards#available-dashboards
Hope that helps.

Hey @Muscule, as you may know the grafana dashboards are bound to the metrics you grab from Prometheus. The example I presented in that blog entry was taken after running the the workload "cluster-density" which is available here https://github.com/rsevilla87/kube-burner-workloads/tree/master/cluster-density
This workload was executed using the metric profile at https://github.com/rsevilla87/kube-burner-workloads/blob/master/metric-profiles/metrics-aggregated.yaml and the collected metrics were represented in grafana using the dashboard kube-burner-aggregated-latest.json available here https://github.com/rsevilla87/kube-burner-workloads/tree/master/dashboards#available-dashboards
Hope that helps.

Could you add it into documentation, please?

I think that https://github.com/rsevilla87/kube-burner-workloads should be united with this kube-burner for others not to ask these questions.

I think that https://github.com/rsevilla87/kube-burner-workloads should be united with this kube-burner for others not to ask these questions.

That's a good point, will do it ;)

It would be also nice if those examples would be a little more documented and maybe have a version for a more vanilla kubernetes as they are very openshift currently.
Thanks

FYI @johnqa @Muscule -> https://github.com/cloud-bulldozer/kube-burner/pull/94

I've added more examples, some of them for OpenShift and others for vanilla k8s (Not very complex though). I don't have much time lately to commit this kind of changes, so every help will be appreciated:


Fix most of the tests

@lorentey let me know when you're ready to merge

I think this is a nice checkpoint. I've resolved the conflicts, but I have not pushed my buggy UTF8View update yet.


Investigate Queue_ProcessesNotifications_AndRestarts failure on CI

With https://github.com/dotnet/razor/pull/8844 this test started failing. After investigating, it looks like there are some dependencies on thread locking in the test itself. The actual behavior being tested remains stable, just that there may be other changes happening causing work to be queued (and thus the assert to fail). I was unable to reproduce locally on two machines with 1000 runs each, and the risk of this is mitigated to the work queue restarting as expected.
This requires deeper investigation to see if we can make the test stable in both CI and locally.

Root caused and fixed in PR


How to add keyframe animations?

I'm trying to setup a simple animation with keyframes as explained on JSS but with no luck:
const MyComponentWithStyles = withStyles(() => ({
  "@keyframes fadeAnimation": {
    from: {opacity: 0},
    to: {opacity: 1},
  },
  container: {
    width: "100px",
    height: "100px",
    background: "red",
    animation: "1s fadeAnimation",
  }
}))(MyComponent)

After making some searches I found this FAQ question where it says to use a 'CSS alternative' for keyframe animations. I'm not sure what is intended by 'CSS alternative'. Conventional CSS styling?
Also, this pull request has a comment which says keyframe animations don't work. Not sure how relevant this comment is for my issue.

I ran across this issue just now. According to the JSS docs, one is supposed to put a $ in front of the animation name, which doesn't work. Simply omitting it, just as in your example above, works fine.

@bjrn It depends on the version of JSS you are using.

For posterity: using a keyframes inside a makeStyles was not working.
The generated animation name was something like makeStyles-keyframes-glowIcon-187 while the animation name placed on CSS rule was simply glowIcon (name used in the JS).
In my environment putting the $ cited by @bjrn fixed the issue:
animation: '$glowIcon 2000ms infinite',

For people having this issue:
https://cssinjs.org/jss-syntax/?v=v10.0.0-alpha.10#keyframes-animation

I found one more issues: makeStyles (used as react hook) +  function at the style rule level

I discovered that when I provide function at the style rule level using JSS $ref, animation generation crashes:

animation: ({ duration }) =>  `$glitch ${duration}s infinite`

Output:
.makeStyles-root-470::before {}

When I provide animation-name without ref char ($) I can see  that rules being generated to animation, but animation-name doesn't refer to @keyframe properly.

animation: ({ duration }) =>  `glitch ${duration}s infinite`

Output:
.makeStyles-root-477::before {
    animation: 1s ease 0s infinite normal none running glitch;
}

String instead of function works fine:

animation: `$glitch 5s infinite`,

Output:
.makeStyles-root-482:before {
    animation: makeStyles-keyframes-glitch-483 5s infinite;
}

Solution/workaround:

 animationDuration: ({ duration }) => `${duration}s`,
 animationIterationCount: 'infinite',
 animationName: `$glitch`,

"@material-ui/core": "^4.1.3",
"@material-ui/icons": "^4.4.1",
"@material-ui/styles": "^4.1.1",

What doesn't works for me in makeStyles():
sslider:  ({urls}) => ({
      background: `url(${urls[0]})`,
      backgroundRepeat: "no-repeat",
      animation: `$slidingBackgroundAnimation 10s`,
     ...
}),
"@keyframes slidingBackgroundAnimation": {
      from: {
        backgroundPositionX: "0px",
      },
      to: {
        backgroundPositionX: "-100px",
      },
},

Here the name of the animation keyframes is rendered badly. Like if the actual animation keyframe slidingBackgroundAnimation is rendered in  >


Rename duplicate names during ocw-import

Pre-Flight checklist

[ ] Testing

[ ] Code is tested
[ ] Changes have been manually tested

What are the relevant tickets?
Fixes #557
What's this PR do?
(Required)
How should this be manually tested?
(Required)

Codecov Report

Merging #603 (a37a71e) into master (d1dda69) will increase coverage by 3.83%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #603      +/-   ##
==========================================
+ Coverage   90.95%   94.79%   +3.83%
==========================================
  Files         175       82      -93
  Lines        6237     2306    -3931
  Branches      929      464     -465
==========================================
- Hits         5673     2186    -3487
+ Misses        495      118     -377
+ Partials       69        2      -67

Impacted Files
Coverage Δ

websites/admin.py

main/celery.py

videos/threeplay_api.py

repl.py

content_sync/__init__.py

gdrive_sync/factories.py

websites/config_schema/api.py

videos/__init__.py

conftest.py

videos/management/commands/youtube_tokens.py

... and 81 more

Continue to review full report at Codecov.

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


Update LICENSE

Coverage decreased (-1.006%) to 83.077% when pulling 7205b0cfb0cf30be1db0b735d339441c96ed8868 on PengXing-patch-1 into 845c26a7d30c61f4164995ea14bccc963b88039b on master.


Command failed line 326, and SSH Key

Hi all,
New user to bdutil, running on cygwin in win 7, followed instructions in readme, encountered this error:
Command failed: wait ${SUBPROC} on line 326.
Exit code of failed command: 1
Please reference this gist.
Any suggestions?
I am able to execute the socksproxy or ssh tunnel, but am unable to get them to work. Here is the terminal output while trying ssh.
Thanks!

Hi papagunit -
In the second gist, you were successfully logged in to the hadoop master node via SSH. The second gcloud config-ssh command failed as the default credential exposed to GCE VMs has limited access to APIs and resources.  You can expand the scopes that are exposed by adding entries to GCE_SERVICE_ACCOUNT_SCOPES in bdutil_env.sh (e.g., add compute-rw to give access to read/write GCE resources).
Once you've opened a socksproxy to the master, you should be able to initiate a browser session using the emitted command line to configure chrome or firefox and navigate to hadoop-m:8080 and log in to Ambari to see where it failed in its setup.

I've gotten error_message='Could not add SSH key to project metadata:' once in awhile, but have tended to ignore it as it doesn't happen every time. I just delete and deploy again.
However, when I tried your suggestion, it eventually worked! I just modified the env to GCE_SERVICE_ACCOUNT_SCOPES=('storage-full',compute-rw).
Thank you!


Timecode Transforms - offset, etc.

Thought I'd start another thread as the previous one I think is fairly complete now?
In using your API for a general timecode display in a timeline that is running I also need to supply an optional offset to the timecode. This could be another thing you might want to add in as it's pretty common to need to offer this.
I'm doing it like this right now:
    private var _timecodeOffset: Timecode?
    public var timecodeOffset: Timecode? {
        get {
            _timecodeOffset
        }
        set {
            _timecodeOffset = newValue
            offsetSeconds = newValue?.realTime.seconds ?? 0
        }
    }

    private var offsetSeconds: TimeInterval = 0

    public func timecodeFrom(seconds: TimeInterval) -> Timecode? {
        let value = TimeValue(seconds: seconds + offsetSeconds)
        return value.toTimecode(at: frameRate)
    }

Obviously these functions are being called A LOT, in my case at the screen refresh rate of a CVDisplayLink. That updates a playhead bar as in a DAW and updates time display. I'm looking to do the most minimal amount of calculations per second I can. Any thoughts about doing Timecode offsetting in this way? I'm not sure if worth supporting on your end or not, but it's a common thing at least.

Yes, the idea of an offset has come up before.
I think what you're doing is fine.
One reason I didn't implement it was that an offset timebase could be anything, depending on how the dev wants to deal with it. It could be seconds, it could be an actual timecode value offset, etc. Therefore deciding what value type the offset property should be stored wasn't immediately obvious. It depends on the time resolution desired.
I'm not sure if it would be much more performant, but you can use instance methods on a single recycled instance of Timecode. So you could store a Timecode instance at a certain frame rate in a variable, then just use .setTimecode(TimeValue(seconds: seconds + offsetSeconds)) on that instance. Then only create a new Timecode instance when you need to use a different frame rate.

Oh that sounds smart. I'll try that and report any difference. Thanks!

No difference in speed between the two methods measured with a simple test case:
    public func timecodeStringFrom(seconds: TimeInterval) -> String {
        let value = TimeValue(seconds: seconds + offsetSeconds)
        masterTimecode.setTimecode(from: value)
        return masterTimecode.stringValue
    }

// VS:

    public func timecodeStringFrom2(seconds: TimeInterval) -> String {
        let timecode = timecodeFrom2(seconds: seconds)
        return timecode?.stringValue ?? ""
    }

    public func timecodeFrom2(seconds: TimeInterval) -> Timecode? {
        let value = TimeValue(seconds: seconds + offsetSeconds)
        return value.toTimecode(at: frameRate)
    }

Good to know. These calculations are fairly lightweight, I would not be concerned about generating new instances of Timecode at a fairly high frequency, even on iOS devices. As a struct value-type there is not much overhead.

One reason I didn't implement it was that an offset timebase could be anything, depending on how the dev wants to deal with it. It could be seconds, it could be an actual timecode value offset, etc. Therefore deciding what value type the offset property should be stored wasn't immediately obvious. It depends on the time resolution desired. Ostensibly, the most finite resolution for an offset should be 1 subframe. With that in mind, it could be implemented as a TCC() offset.

I'm using your actual Timecode object for the offset so that when the frameRate changes, the seconds offset can be also recalculated based on the current frame rate. It seems like this could be done and kept up to date internally to the result Timecode if there was an offset object kept in a Timecode object.  This means that for me, I'm ultimately storing this offset in preferences as the stringValue version so that it can be reinterpreted. Not really making any statement here other than letting you know how it ended up working for me. I'm not sure if the stringValue is the most portable / reparseable format or not, but that works for this.

A basic performance measurement, on my system with a Release build, creating a Timecode instance from real time takes 0.24 microseconds on my system (averaged from repeating the code 100,000 times in a test harness). Which equates to 4,166,666 instances per second. The setTimecode method is only a hair faster, at 0.22 microseconds.

I'm using your actual Timecode object for the offset so that when the frameRate changes, the seconds offset can be also recalculated based on the current frame rate. It seems like this could be done and kept up to date internally to the result Timecode if there was an offset object kept in a Timecode object. This means that for me, I'm ultimately storing this offset in preferences as the stringValue version so that it can be reinterpreted. Not really making any statement here other than letting you know how it ended up working for me. I'm not sure if the stringValue is the most portable / reparseable format or not, but that works for this.

My initial idea was to use a Timecode instance for the offset property, but suggested using TCC() since it is more lightweight and if we are assuming the offset will always be at the same frame rate as its parent Timecode object, it can save a few CPU cycles internally. If it were stored as Timecode you could have an offset expressed in a different timecode but I can't imagine this would ever be useful.
struct Timecode {
    var offset: Timecode.Components? = nil
}

Being optional defaulting to nil can also save some CPU cycles internally when there is no offset value.
You could still employ using a Timecode object externally to derive the value, if it made sense.
var tc = "01:00:00:00".toTimecode(at: ._24)

tc?.offset = "00:00:01:00".toTimecode(at: ._24)?.components ?? TCC() // default to blank (all zeros)

But it would usually be easier just to assign the TCC directly.
var tc = "01:00:00:00".toTimecode(at: ._24)

tc?.offset = TCC(s: 1)

I would also add a defaulted offset argument to all the Timecode initializers so you could pass an offset value at time of creating the object.

This means that for me, I'm ultimately storing this offset in preferences as the stringValue version so that it can be reinterpreted. Not really making any statement here other than letting you know how it ended up working for me. I'm not sure if the stringValue is the most portable / reparseable format or not, but that works for this.

Storing as a stringValue is not a bad idea, as long as you store the frame rate associated with it of course.
As far as storage in a file, if you need to store Timecode then stringValue and frame rate (and optionally subframe divisor if you care about subframes) should be reliable.

One consideration is that the offset should allow for positive or negative offsets. Technically, timecode wraps around the clock (whether traditional 24-hour mode, or allowing for days). Not sure how that would best be described in an offset if TCC() is used as the value type.
Idea 1: tuple
struct Timecode {
    var offset: (offset: Timecode.Components, positive: Bool)? = nil
}

Idea 2: separate properties
struct Timecode {
    var offset: Timecode.Components? = nil
    var offsetPositive: Bool = true
}

Idea 3: enum cases
extension Timecode {
    enum OffsetValue {
        case positive(Timecode.Components)
        case negative(Timecode.Components)
    }
}

struct Timecode {
    var offset: OffsetValue? = nil
}

in terms of a stringValue i guess it could be shown as:
-01:00:00:00
should there just be an optional Bool sign in the Components for positive or negative that applies to the whole object?
it seems like it would be sort of confusing if each component could be positive or negative?

in terms of a stringValue i guess it could be shown as:
-01:00:00:00

I'd like to refrain from introducing more complexity in this way. A stringValue is just one representation of time/timecode duration for purposes of an offset. This would have to also translate to TCC, real time, samples, etc. which I think would be more confusing. So I'm leaning toward a boolean flag attached to the offset value, but not actually a part of the offset value itself.

should there just be an optional Bool sign in the Components for positive or negative that applies to the whole object?

Interesting idea but again this may introduce unneeded complexity or confusion, as TCC is used for many applications throughout TimecodeKit. You are able to represent negative values in TCC already, as described below:

it seems like it would be sort of confusing if each component could be positive or negative?

Not if it's representing values for the purposes of an operation, such as offset. Technically this is already possible with the library:
These produce the same outcome. Add -1 second, or subtract +1 second
"01:00:00:00"
    .toTimecode(at: ._24)?
    .adding(TCC(s: -1))?
    .stringValue // == "00:59:59:00"

"01:00:00:00"
    .toTimecode(at: ._24)?
    .subtracting(TCC(s: 1))?
    .stringValue // == "00:59:59:00"

On a practical note, I'm unsure how negative offset would be used in the way that I'm using it. For me, sometimes videos have an embedded timecode start, and that's used to make a relative timecode which basically just renames what zero means. Just wanted to clarify what I am using this offset for. Probably not new information in anyway, but here are a few examples:
In Logic it looks like:

And Pro Tools:

Premiere calls it Start Time:

Final Cut:

Yes, but there can be many other scenarios where the possibility of a negative offset for a timecode may be useful. I'm not talking about your use case. I just want to ascertain the best way to implement the offset in the event that there is a negative offset desired.

yes totally - just wanted to clarify what I'm using it for. thanks!

Here is another consideration:
If an offset is added, would it affect all representations emitted by the Timecode instance transparently? Or just some of them? And how would that be done intuitively and not confusing?
ie:
The Timecode instance would still be initialized or modified via .set... instance methods using the non-offset timecode values as usual, regardless of what value format is used (string, real time, samples, etc.).
But when an offset value exists, the return (get) value of all value types would be rendered offset?

stringValue
realTime
samples
.components
the Timecode instance properties (.days, .hours, .minutes, .seconds, .frames, .subframes)

When setting any of those properties, you would probably still set them with original timecode. It would be a bit strange if you had to set them with offset timecode values. So then you end up with non-symmetry between get and set on those values. Which I feel would just be confusing.
You would also not be able to poll the Timecode object for any of its original time values in case you needed to, unless you set .offset back to nil so that getting values would be reset back to original values.
Possible solution 1:
Implement as described above. When an offset is present, all initializers or setters would set original timecode values as usual, but all getters would produce offset values.
Possible solution 2:
All getter methods could become methods (instead of computed properties) add an argument so you have implicit control over whether the returned values are offset or not. This would require a bit of surgery on the existing API but wouldn't be too much trouble.
extension Timecode {
    func components(offset: Bool = true) -> Timecode.Components { ... }
    func stringValue(offset: Bool = true) -> String { ... }
    func realTime(offset: Bool = true) -> TimeValue { ... }
    func samplesValue(offset: Bool = true) -> Double { ... }
}

It may mean that the Timecode instance properties (.days, .hours, .minutes, .seconds, .frames, .subframes) remain as original values regardless of get or set.

(Also side note: I think realTime should be renamed to realTimeValue to be consistent.)

Perhaps it warrants a new object that encapsulates two Timecode structs? The main timecode, and an optional offset one.
I think the sets would interact only on the main timecode, but there could be new getters or properties that provide the offset result? I think you could argue pretty well that this is more of an application level request as for my application, I did it that way:
// a thin wrapper to store a frameRate for calculations
// and stores an offset to be applied to all incoming values
public class TransportTimecode {
    public static var defaultFrameRate: Timecode.FrameRate = ._25

    public private(set) var masterTimecode = Timecode(at: defaultFrameRate)

    public var frameRate: Timecode.FrameRate = TransportTimecode.defaultFrameRate {
        didSet {
            Log.debug("⏰ frameRate to", frameRate.stringValue)
            frameRateFloatValue = frameRate.floatValue

            masterTimecode = Timecode(at: frameRate)

            if let timecodeOffset = timecodeOffset {
                var newOffset = Timecode(at: frameRate)
                if newOffset.setTimecode(exactly: timecodeOffset.stringValue) {
                    self.timecodeOffset = newOffset
                }
            }
        }
    }

    // don't calculate this more than necessary
    public private(set) var frameRateFloatValue: Float = TransportTimecode.defaultFrameRate.floatValue

    private var _timecodeOffset: Timecode?
    public var timecodeOffset: Timecode? {
        get {
            _timecodeOffset
        }
        set {
            _timecodeOffset = newValue
            offsetSeconds = newValue?.realTime.seconds ?? 0

            Log.debug("⏰ timecodeOffset", _timecodeOffset, "in seconds:", offsetSeconds)
        }
    }

    private var offsetSeconds: TimeInterval = 0

    public func timecodeStringFrom(seconds: TimeInterval) -> String {
        let value = TimeValue(seconds: seconds + offsetSeconds)
        masterTimecode.setTimecode(from: value)
        return masterTimecode.stringValue
    }
}

but of course, the above is really just used to generate a running clock that might not start on 0. That is the only time I need to use this offset, in a timeline that has a virtual start time.
Underneath that the time is still in fractions of a second starting at 0.

Clever solution and something to chew on.
I'd be tempted to make it a struct still, channeling those progressive Swifty design patterns 😁 Trying to get away from concurrent mutability and being thread safe as much as possible.
It was worth woodshedding the details on an internal implementation of an offset in Timecode but atomically it may be best to keep Timecode as lightweight/performant as possible. Any ancillary functionality could be app-side extensions or encapsulations as you've presented here so the dev can elect to add abstraction only when needed.
Wouldn't be out of the question to have such an abstraction included in the library. Or a suite of "Transforms" that could be wrappers for Timecode, one of which could be a simple offset.

i like that! i also like keeping the timecode struct as simple as possible. no real need for a class like above, i think i thought it was going to be more complicated but it ended up working a bit easier than i expected.
my vote is for sure whatever runs the fastest. i'm having to blast these things to the screen so often that optimizing this is very preferable. I'm stoked to see what you decide to do, or if you don't decide to include it, then i think what i have there works ok for now.
It's way better than the way I was doing calculating this before, so very grateful for your nice framework to work with now.

Thanks! After so much confusing information and outright misinformation (usually just naïve) out on the web about fine details of various frame rates and how to perform calculations with them, I decided to combine everything and make a library that brought everything to one place and was easy to use.
I'll keep this thread open and might bounce some ideas around regarding ideas surrounding transform wrappers at some point.

Oh yeah for sure. I have been dealing with it as well the last few years, so like I started out by saying - this is a great project!
I like the transform idea. Sounds very CoreAnimationy

I just remembered this could be done with a Swift PropertyWapper￼, but I am doubtful that is how I'd end up implementing it.

I'm exploring the implementation of a new struct called Timecode.Transformer which can contain a transformer definition enum (such as .offset(by: Timecode.Delta) and simple have an input →  → output function.
(Timecode.Delta is also a new struct that describes an abstract delta/distance in timecode, with a positive/negative sign and relevant methods to allow flattening down to a concrete Timecode object with various options. Refer to https://github.com/orchetect/TimecodeKit/issues/15 for progress.)
This makes transform functionality modular, scalable (with additional transform types possible in future), and keeps Timecode lightweight when transforms are not needed.

Introduced Timecode.Transformer in release 1.1.0: https://github.com/orchetect/TimecodeKit/releases/tag/1.1.0


Update org.yaml

adding myself - shanidchamal

This change is

@shanidchamal please post links to a couple of your PRs that have been merged to any Kubeflow repositories for documentation mentation purposes


Add support for rsyslog integrations

Looks good, thanks. We'll still try this out before merging.

Thanks @rikonen, I've tried this out and it works for our configuration, but I haven't tried using it with client certificate auth.


Fix redirection for pages missing in other docs versions

related #844
related #1343
I think this should fix our redirection problems. The error was that we assumed that a 404 response would be an error, but as far as Javascript is concerned a 404 response is still a real response!  Now we check for response.ok (meaning a response in the 200-299 range) and triage the URL accordingly. The try/catch is left in place as a fallback in case something actually did go wrong with the request/response (i.e., on local or PR builds when the request is blocked due to CORS restrictions).
cc @lagru would appreciate if you could test this branch and report back

tested on this page: https://pydata-sphinx-theme.readthedocs.io/en/latest/examples/gallery.html
It does not exist in V0.9 and the redirection worked as expected. Congrats, I'll close the associated issues.

At least locally this seems to resolve the issue! When I select a version that doesn't have an equivalent page it resolves to the root of that target version. I'll keep an eye on this and report back should the issue resurface for us.
@drammock, thanks for tackling this! :)


Checkbox Check is off-centered

Current Behavior
The checkbox check is slightly off-center.

Expected Behavior
The checkbox check is smack in the middle of the box itself.

Steps To Reproduce
Add this component to a page and check it, or set it to be. checked programatically.
Link to Reproduction / Stackblitz
No response
More Information
I was able to get this centered up by adding tw class box-content to the CheckboxPrimitive.Root component, and changing all of the h-4 w-4 classes to h-3.5 w-3.5 in order to preserve the height of the checkbox.

If the proposed approach in More Information is alright, I volunteer as tribute.

Sounds good to me! @wlockiv thanks!


Added missing explicit return types and turned eslint rule back on

Here you go @bfred-it. This fixes missing explicit return types as per @sindresorhus comment, https://github.com/sindresorhus/refined-github/pull/1740#discussion_r251200144

Please run this to delete the tags from your fork and locally, we keep pulling them from your fork and pushing them to this repo (we no longer use tags)
git tag -d $(git tag | grep -E '.')
git ls-remote --tags --refs origin | cut -f2 | xargs git push origin --delete

Now that the cache is generic, I think this is good to go. Let me know your thoughts on the cache changes @bfred-it.


nothing about 2019

there is no text about SharePoint 2019 on this page

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

ID: f8fe7471-d644-095c-4fbe-af23d7bb80e2
Version Independent ID: 07920952-4448-ab49-6f53-8d56a5aa1d45
Content: Business intelligence in SharePoint Server
Content Source: SharePoint/SharePointServer/administration/business-intelligence-0.md
Product: sharepoint-server-itpro
GitHub Login: @MikePlumleyMSFT
Microsoft Alias: mikeplum

@DeanGross Thank you for submitting feedback. We understand that this issue has been resolved.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.


Re-evaluate shoot conditions immediately after reconciliation

How to categorize this issue?

/area monitoring
/kind enhancement
/priority normal
What would you like to be added:

When the shoot reconciliation flow finishes successfully then the .status.lastOperation.state is set to Succeeded. The same update call should  set the conditions to Progressing.
The shoot care controller should enqueue shoots immediately after their .status.lastOperation.state was set to Succeeded (if the .type is not Delete) in order to re-perform the health checks.

Why is this needed:
Today, the shoot conditions are evaluated periodically (e..g, every minute). This means that after a shoot reconciliation it may take up to a minute until they reflect the actual health status. Let's show this health status faster by implementing above improvements.

/assign


Fix for GLSTMCell implementation

Fix issue described here: https://github.com/tensorflow/tensorflow/issues/16703
Make it work correctly for input sizes!=num_units

case540 partially fixed it. I'll submit another PR for a smaller fix


Sort values during UInt64Set serialization.

UInt64Sets were serialized and sorted according to their hashed value, not their value. This resulted in indeterminate order when serializing state.

This is a good idea.  It might be better to sort in numerical order rather than string order, but that can be done later.


Integration test cargo feature that spawns bitcoind within rust

Description
We introduce the bitcoind cargo feature for integration tests.
This cargo feature adds the ability for integration tests to spawn a child process of bitcoind (via the bitcoind crate).
When the bitcoind cargo feature is enabled, internally-spawned bitcoind will replace mock rpc client and rpc client that interacts with externally-spawned bitcoind.
A new env BITCOIN_EXE is added which the bitcoind binary location can be specified. If unspecified, the bitcoind crate will download the binary.
RealBitcoinTest is now an enum, either specifying just a client, or both a service and a client (with bitcoind::BitcoinD).
Checklist

[x] Update README

Codecov Report

Merging #445 (d1bdd49) into master (49de1c7) will decrease coverage by 0.04%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #445      +/-   ##
==========================================
- Coverage   74.53%   74.48%   -0.05%
==========================================
  Files          83       83
  Lines       10520    10531      +11
==========================================
+ Hits         7841     7844       +3
- Misses       2679     2687       +8

Impacted Files
Coverage Δ

modules/fedimint-wallet/src/bitcoincore_rpc.rs
0.00% <0.00%> (ø)

fedimint/src/net/connect.rs
95.20% <0.00%> (+0.25%)
:arrow_up:

fedimint/src/net/peers.rs
93.43% <0.00%> (+0.52%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@elsirion Thank you for your review! Just to make sure I understand you, this should be my next steps with this PR:

Make running bitcoind via rust the only way of running bitcoind in rust integration tests.
Run core lightning in the same fashion.

Is this correct?

Yes, that's what I meant. I'd like to hear @jkitman's opinion since he built the rust integration tests, but I think starting the daemons externally is a historic artifact that we haven't gotten around to fix.

@evanlinjin So the advantage of using bitcoind is that it can be automatically downloaded and run from Rust, rather than to rely on it already running?
I would also agree with @elsirion we shouldn't have the feature flags and just switch the real fixtures to use bitcoind and the fake fixtures continue to use the mock bitcoin impl.
So long as all the tests can pass with bitcoind I don't see a problem to switching to use it.

@evanlinjin So the advantage of using bitcoind is that it can be automatically downloaded and run from Rust, rather than to rely on it already running?

Yes, this is correct.

I would also agree with @elsirion we shouldn't have the feature flags and just switch the real fixtures to use bitcoind and the fake fixtures continue to use the mock bitcoin impl.

Would it make sense to NOT use mock bitcoind service for testing? It means less code we need to maintain, and we can just test with the real thing.
Also the reason why I switched over to using feature flags is because nix did not seem to like the bitcoind crate - making it a dev dependency caused nix to claim the hashes does not add up. I do not understand nix so if I can get some guidance in this regard, it will be appreciated.

We may also need to change the scripts/rust-tests.sh to avoid starting two instances of bitcoind.

That sounds good, I will see how I can get that done!

Would it make sense to NOT use mock bitcoind service for testing

@evanlinjin the purpose of the mock was for faster testing and eliminating any shared state between tests so they can be run concurrently.  If we use bitcoind it will likely make tests fail if run concurrently.

I'm marking this as blocked, as it's unclear if we can proceed with this one. Feel free to keep discussing etc. but it just makes easier for us to know which things we need to actively look into and which not.

Also the reason why I switched over to using feature flags is because nix did not seem to like the bitcoind crate - making it a dev dependency caused nix to claim the hashes does not add up. I do not understand nix so if I can get some guidance in this regard, it will be appreciated.

I would be happy to help, but need more details. If you want you can ping me on Discord, or just paste some more info here.

Closing this because we’ve recently started spawning everything via rust


Optimize CASE WHEN for "expression or null" case

Is your feature request related to a problem or challenge?
Given the expression CASE WHEN predicate THEN expr ELSE null END (as seen in some TPC-DS queries) we could do better than using our generic CaseExpr. In this specific case we can evaluate expr and create a new array using the existing data buffer but just replace the null mask with the results of evaluating the predicate.
Describe the solution you'd like
No response
Describe alternatives you've considered
No response
Additional context
No response

I am implementing this in Comet in https://github.com/apache/datafusion-comet/pull/672 and plan on upstreaming to DataFusion soon. The optimization is resulting in a > 10x speedup for my test case.


change math/rand to crypto/rand to break tie in elections

This is to solve https://github.com/etcd-io/raft/issues/48
Change math/rand to crypto/rand so that even in emulations the random numbers are different for each server.
Result verified by the sample given in https://github.com/etcd-io/etcd/issues/15784:
[ec2-user@ip-172-31-38-170 ~]$ cat shadow.data/hosts/server3/etcd.1000.stdout | grep leader
2000-01-01T00:00:02.65Z	info	raft	v3@v3.0.0-20221201111702-eaa6808e1f7a/node.go:344	raft.node: d88930ebb1eeba8b elected leader 4ec99d67dc5f5788 at term 2
[ec2-user@ip-172-31-38-170 ~]$ cat shadow.data/hosts/server1/etcd.1000.stdout | grep leader
2000-01-01T00:00:02.65Z	info	raft	v3@v3.0.0-20221201111702-eaa6808e1f7a/node.go:344	raft.node: 4f7b593e8bbade70 elected leader 4ec99d67dc5f5788 at term 2
[ec2-user@ip-172-31-38-170 ~]$ cat shadow.data/hosts/server2/etcd.1000.stdout | grep leader
2000-01-01T00:00:02.6Z	info	raft	v3@v3.0.0-20221201111702-eaa6808e1f7a/raft.go:903	4ec99d67dc5f5788 became leader at term 2
2000-01-01T00:00:02.6Z	info	raft	v3@v3.0.0-20221201111702-eaa6808e1f7a/node.go:344	raft.node: 4ec99d67dc5f5788 elected leader 4ec99d67dc5f5788 at term 2

(I verified that globalRand is used only for the election timeout, i.e. it's not on any hot path).


Fix custom fog, and make FOG built-in readable

Fixes shader custom fog (#41415), which was likely broken since #45023.
Additionally, the fragment shader built-in FOG allows for modification of standard fog, rather than just overwriting it. This allows for simple tweaks, such as:
FOG *= vec4(0.5, 0.5, 1, 1); // Modulate fog color

Linear fog could be implemented like so (taken from #54248):
float fog_linear = clamp((length(VERTEX) - fog_linear_start) / (fog_linear_end - fog_linear_start), 0, 1);
FOG.a = max(FOG.a, fog_linear);

One difference to note from the original custom fog PR is that custom fog now mixes before volumetric fog rather than after.
Will need updating in the docs (see: https://github.com/godotengine/godot-docs/pull/4301)

@clayjohn Would you prefer I calculate volumetric fog alongside regular fog before custom fog, restoring original behavior? Or do you think adding a render mode option is a good idea?

@briansemrau That is a difficult question. To me it made sense to do them together, but for you it was more intuitive to have FOG only override fixed fog.
This highlights the issue when devs add features without proposals. I clearly don't have a good sense of what users need and didn't realize that users may have different expectations for this feature.
You or I should write a proposal and try to get some feedback from users.

I was thinking about this again. I wonder if the ideal approach is just to expose the fog_process and volumetric_fog_process to users and then leave the current fog alone. I.e. if users use FOG they will be responsible for integrating the other types of fog.

I was thinking about this again. I wonder if the ideal approach is just to expose the fog_process and volumetric_fog_process to users and then leave the current fog alone. I.e. if users use FOG they will be responsible for integrating the other types of fog.

I fear that will make things a bit more complicated than most use cases would demand it.
So far my experiences were almost always fragment related, just having FOG exposed and useable would help me much more.
Another reason is that volumetric and normal fog are blended in magical ways no one understands, so having to reliably "reconstruct" the real fog color that is applied from two different functions... wouldn't really help me personally a lot 😵
Why not both? :D


Error while copying from an editor to another

I have three distinct summernote's instances. When I try to copy from one to paste into another the code throws "Uncaught TypeError: Cannot read property 'length' of undefined" (summernote-cleaner.js:60).
Call stack:

at cleanText (summernote-cleaner.js:60)
at HTMLDivElement.summernote.paste (summernote-cleaner.js:120)
at HTMLDivElement.dispatch (jquery.min.js:5)
at HTMLDivElement.v.handle (jquery.min.js:5)
at Object.trigger (jquery.min.js:5)
at HTMLDivElement. (jquery.min.js:5)
at Function.each (jquery.min.js:4)
at init.each (jquery.min.js:4)
at init.trigger (jquery.min.js:5)
at Context.triggerEvent (summernote.min.js:3)

I'll try to fix it here but any help would be nice, hehe.

Solution here: #42


convert files to a single pdf

I think it would be better if these files can be converted to a single .pdf file.

This should already be possible using your web browser's "Print" feature.
Bear in mind, though, that PDF only supports a limited subset of the
functionality provided by HTML, JavaScript and CSS, so a PDF may be
missing features or data that are present in the original article.


Tutorials issues

Here: https://cookiecutter.readthedocs.io/en/latest/tutorials.html
Under the subhead:
Create Your Very Own Cookiecutter

Audrey's tutorial "Create a Cookiecutter From Scratch" stops after creating some directories and says "To be continued..." (Also says "Create a directory called {{ cookiecutter.repo_name }}" which might be out of date).
Danny's article seems out of date and isn't really a tutorial. Should probably be unlinked.
Hackbot's tutorials seem thorough but are too complex for beginners.

I'd like to see (and will try to work on):

Creating a "Hello, World"-style template: as minimal an example as possible, to get people over the initial hump.
Adding to the above in steps, or creating templates with intermediate complexity.
... to the point where people are ready for Hackbot's tutorials.

Yesterday @BruceEckel wrote https://github.com/BruceEckel/HelloCookieCutter1 which I'd like to turn into the official Cookiecutter tutorial. We've needed a minimal tutorial for a long time, and I think this is perfect.
The next step is to integrate https://github.com/BruceEckel/HelloCookieCutter1 into the Cookiecutter docs. This will require some thought about the best way to do this. Some TODOs:

Get the link in https://github.com/audreyr/cookiecutter/blob/master/docs/tutorials.rst working properly

Does it make sense as a link to an external repo?
Or should we integrate it into the main docs as a git submodule or by bringing in the files?

Add text to https://github.com/audreyr/cookiecutter/blob/master/docs/tutorials.rst to make the tutorial obvious as a starting point for people new to Cookiecutter

Working on this :)

Great work @BruceEckel! 👍
@audreyr I'm 👎 for git submodules - it makes things overly complicated. Prefer the other options 😄

Thanks for the feedback @hackebrot!
Decided to stick with using a git submodule because it eases the burden of maintenance to have less in core, and because @BruceEckel offered to update the tutorial if any issues come up.
@BruceEckel if you ever decide in the future that you don't want to maintain it anymore, let us know and we can bring the tutorial into core.


remove gds_resolver

Long ago, this module was created to resolve issues hitting our internal
DNS server.  However, at some point, <IP_ADDRESS> stopped being a
valid internal DNS server -- or at least, it's not valid on all networks.
So this module only has the effect of breaking internal DNS.
People have worked around this broken DNS (say, by having /etc/hosts
entries for frequently-used hostnames) which may be why this brokenness
has gone unfixed.  But it's probably time to remove it.
People who use this module: @bradwright @bruntonspall @carlmassa @daibach @dcarley @heathd @issyl0 @jennyd @JohnStrudwick @mattbostock @robyoung @russellthorn @surminus @tombooth

:ok_hand:

:ok_hand:

:+1:

:+1:

:+1:

:+1:

:+1:

emoticon indicating agreement
On 15 January 2016 at 15:16, Tom Booth<EMAIL_ADDRESS>wrote:

[image: :+1:]
—
Reply to this email directly or view it on GitHub
https://github.com/alphagov/gds-boxen/pull/199#issuecomment-171988444.

--
Carl Massa
Government Digital Service
Aviation House
125 Kingsway
London
WC2B 6NH
<EMAIL_ADDRESS>

I think that's a quorum. does someone want to merge?


[ENH] Functions added to fetch the termURLs of diagnosis, assessment, sex and image modality

Closes #19

Changes proposed in this pull request:

Fetches the appropriate termURL of diagnosis and assessment tool from the respective api url.
Gets the  appropriate termURL of sex and image modality from the hardcoded mappings.
Added tests for all the new functions.

Checklist
This section is for the PR reviewer

[x] PR has an interpretable title with a prefix ([ENH], [FIX], [REF], [TST], [CI], [MNT], [INF], [MODEL], [DOC]) (see our Contributing Guidelines for more info)
[x] PR has a label for the release changelog or skip-release (to be applied by maintainers only)
[x] PR links to GitHub issue with mention Closes #XXXX
[x] Tests pass
[x] Checks pass

For new features:

[x] Tests have been added

For bug fixes:

[ ] There is at least one test that would fail under the original bug conditions.

Thanks for making the changes @Raya679! I left one small comment other than that this is good to go 🧑🍳 Side note, how did you create the abbreviations?

Hi @rmanaem thanks for the review!! Regarding the abbreviations I had created them using llama3 itself similar to what was done in the annotation tool ai


Read all comics

Source information
Readallcomics 1.4.3
Source language
English
Steps to reproduce
Open source, doesn't show covers
Expected behavior
To open and show covers of titles searched
Actual behavior
Says no covers when searching

Mihon/Tachiyomi version
Tachij2k 1.74
Android version
17
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have updated the app to version 0.15.3.
[X] I have updated all installed extensions.
[X] I have tried the troubleshooting guide.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

That's intended/intentional, since the site itself literally doesn't have thumbnails when searching.


Pillow 7.1.2

Type: Incomplete
Summary:
Pillow 7.1.2
Details:
Declaring Other for Python Imaging Library License (PIL).
Resolution:
I don't think there is an SPDX identifier for this license.
https://pillow.readthedocs.io/en/stable/about.html#license
https://github.com/python-pillow/Pillow/blob/7.1.2/LICENSE
Affected definitions:

Pillow 7.1.2

@AE49 This is has been curated as HPND since that is what is listed in the package metadata. However, I have come across related conversations that state the PIL license is a match to MIT-CMU instead of HPND.
https://github.com/spdx/license-list-XML/issues/907
I'm reaching out the community to find out more information about these past conversations and if there was a definite resolution to the which identifier it should be.

From what I understand, pypi currently doesn't support MIT-CMU as a license indicator so I will process as-is.


Groups for TreeMap

Please add an ability for Grouped Treemap...
something like https://coin360.com

It doesn't render the legend "around" the series directly in the chart, but check out the demo for Treetop Multiple Series, it's pretty close to the asset breakdown chart you linked.

This would be very useful. We are looking for this type of solution. It would probably require a new type of series that supports nested series.


logback appender thread failed to stop

Hi~
When I redeploy my web-application with tomcat, it happens warning "The web application [ROOT] appears to have started a thread named [logback-appender-stash-<IP_ADDRESS>:5043-2] but has failed to stop it. This is very likely to create a memory leak".
How can I accomplish this?
thx!

You'll need to stop the logback context when your web application stops.

thx!
I knew this solution, I have solved my problem with logback official suggestion.
And I want to know if we have some customized plans for this situation whin our project?

The proper way of shutting down appenders is by shutting down logback as I mentioned.
logback-logstash-encoder is not going to implement any other way of shutting down.


credentials: describe function of rasa attribute

Proposed changes:
Fixes #4854. Changed a default config file so no formatting/testing required.
Status (please check what you already did):

[ ] added some tests for the functionality
[ ] updated the documentation
[ ] updated the changelog (please check changelog for instructions)
[X] reformat files using black (please check Readme for instructions)

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

Thanks for submitting a pull request 🚀 @melindaloubser1 will take a look at it as soon as possible ✨


chore(main): release bgg_client 0.2.0

:robot: I have created a release beep boop
0.2.0 (2024-07-15)
Features

add HTTP connection using Faraday (8c60b1b)

Continuous Integration

add Codecov configuration (74dddfd)

This PR was generated with Release Please. See documentation.

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


When scaling feature is turned on the title doesn't show in a consistent place or size

If you turn on the scale label for the zoom level feature, the health estimate text doesn't stay at the top (or wherever you have it set), it slowly moves down depending on what zoom level you are at. It also is unaffected by the text size setting except if you zoom in far enough then suddenly the text size setting will apply. It'll suddenly change size dramatically at that zoom level and above.
Expected behavior
I would expect the text to stay in the same position relative to the token it is hovering over no matter what the zoom level and for the text size setting to affect the size consistently.
Screenshots
Zoomed in with the text size set to 8. Position -65. Scaling on:

Same settings Zoomed all the way out:

Position set to -30 with otherwise the same settings as above. Zoomed in to the very first zoom level when the font size setting seems to apply:

One zoom level out from the above picture:

Same as the above but zoomed all the way out. Now the text starts to cover a large portion of the token:

Game Specifics (please complete the following information):

dnd5e 2.2.2
Foundry 11.305

Additional context
I think the key might just be changing the zoom point to the bottom of the text instead of the middle (or maybe the top of the text when below the halfway point of the token?

Yes, it can be improved by a lot. I'll take a shot at changing this when I have the time (~1 month from now).
Back when it was implemented I couldn't find a better way to get the placement right for all 3 positions and it was only tested at the default text size (24).
Also, I appreciate the feedback on the zoom point, that's something I'll test once I get to it.

I've changed the behavior on v31.6 to be more consistent, check it out and let me know if anything is out of place.


banded plots from Scatter plot

I thought we dealt with a problem similar to this due to float precision in Scatter plot. However, Scatter plot has been modified for double precision everywhere now. Some time ago I reported banding issue on scatter plots. The problem seemed to be solved but... Our team encountered again same problem. The sample data is attached in this message (hdf5). Please do the scatter plot "dt" vs "p". Seems ok ? Right it is. Now please unselect the normalize option in appearance tab - rescale and... Banding again (see the attached jpg). Any idea how to solve it or what could cause the problem (looks same as previos, sorted, problem). Regards, See attached file. Do scatter plot with electrons_dt in X and electrons_p on y. Go to appearence tab and de-check scale to unit cube. You get a banded plot. Thought it was related to narrow xrange of data. The xbounds for the viewport are 1e-7 apart and was assuming GL hardware was having same kinds of problem as when we zoom in way to far. Can be scaled independently in x and y if use expressions to scale the variables. However, user finds issues with that as well. Jonathon Smith at Tech-X also reports. I wanted to comment here. The underlying issue responsible for this (treatment of double precision data as single precision) remains in VisIt 2.9.2 on windows. The users we're supporting want to look at non-transformed data. The end users we're working with want/need to have the labels representative of the raw data, so ideas like scaling or translating the data are not being received well. The only way we could satisfactorily use an expression containing a translation to the data (so it's centered on 0 to avoid this issue) is if we could also force some sort of false labelling so that the data is labelled as it would be with the original coordinates centered around 1.8e7 seconds with variations of order /- 1e-11. It seems that the other visualisation tools we've tried have not run into such problems, and a better solution would be to ensure we have a pipeline for native double precision data. I'm happy to contribute to resolving this issue by testing code, and even hacking source with guidance as needed. I think the issues have not moved on much from those described in my older post (13th March) If I recall - the problem is that we call avtTransformManager::NativeToFloat: needNativePrecision=false, admissibleDataTypes={VTK_FLOAT,VTK_DOUBLE,} this code is somewhere in the engine, and shows up in the engine log at debug level 5. It may also show up at lower levels, I've not checked, but it is still happening in 2.9.2. This statement clearly comes from avt/Database/Database/avtTransformManager.C, but the problem is understanding what's calling it and why. It appears to be getting called within avtMissingDataFilter (not sure why this is used here, as it appears the dataset is complete, but this is probably my ignorance). I think we'd learn something by instrumenting the "if" statement around line 360 of plots/Scatter/avtScatterFilter.C with some extra debug information, then to start working backwards from there. Do we need to ensure that we call something similar to NativeToFloat, called avtTransformManager::NativeToDouble: needNativePrecision=true What is responsible for calling the transform manager, and what might we be able to do to modify it's behaviour. Presumably this was once needed as VTK historically couldn't handle the double precision dataset.
-----------------------REDMINE MIGRATION-----------------------
This ticket was migrated from Redmine. As such, not all
information was able to be captured in the transition. Below is
a complete record of the original redmine ticket.
Ticket number: 2349
Status: Pending
Project: VisIt
Tracker: Bug
Priority: Normal
Subject: banded plots from Scatter plot
Assigned to: -
Category: -
Target version: -
Author: Mark Miller
Start: 08/05/2015
Due date:
% Done: 0%
Estimated time:
Created: 08/05/2015 02:00 pm
Updated: 08/05/2015 04:18 pm
Likelihood: 3 - Occasional
Severity: 4 - Crash / Wrong Results
Found in version: 2.8.2
Impact:
Expected Use:
OS: All
Support Group: Any
Description:
I thought we dealt with a problem similar to this due to float precision in Scatter plot. However, Scatter plot has been modified for double precision everywhere now. Some time ago I reported banding issue on scatter plots. The problem seemed to be solved but... Our team encountered again same problem. The sample data is attached in this message (hdf5). Please do the scatter plot "dt" vs "p". Seems ok ? Right it is. Now please unselect the normalize option in appearance tab - rescale and... Banding again (see the attached jpg). Any idea how to solve it or what could cause the problem (looks same as previos, sorted, problem). Regards, See attached file. Do scatter plot with electrons_dt in X and electrons_p on y. Go to appearence tab and de-check scale to unit cube. You get a banded plot. Thought it was related to narrow xrange of data. The xbounds for the viewport are 1e-7 apart and was assuming GL hardware was having same kinds of problem as when we zoom in way to far. Can be scaled independently in x and y if use expressions to scale the variables. However, user finds issues with that as well. Jonathon Smith at Tech-X also reports. I wanted to comment here. The underlying issue responsible for this (treatment of double precision data as single precision) remains in VisIt 2.9.2 on windows. The users we're supporting want to look at non-transformed data. The end users we're working with want/need to have the labels representative of the raw data, so ideas like scaling or translating the data are not being received well. The only way we could satisfactorily use an expression containing a translation to the data (so it's centered on 0 to avoid this issue) is if we could also force some sort of false labelling so that the data is labelled as it would be with the original coordinates centered around 1.8e7 seconds with variations of order /- 1e-11. It seems that the other visualisation tools we've tried have not run into such problems, and a better solution would be to ensure we have a pipeline for native double precision data. I'm happy to contribute to resolving this issue by testing code, and even hacking source with guidance as needed. I think the issues have not moved on much from those described in my older post (13th March) If I recall - the problem is that we call avtTransformManager::NativeToFloat: needNativePrecision=false, admissibleDataTypes={VTK_FLOAT,VTK_DOUBLE,} this code is somewhere in the engine, and shows up in the engine log at debug level 5. It may also show up at lower levels, I've not checked, but it is still happening in 2.9.2. This statement clearly comes from avt/Database/Database/avtTransformManager.C, but the problem is understanding what's calling it and why. It appears to be getting called within avtMissingDataFilter (not sure why this is used here, as it appears the dataset is complete, but this is probably my ignorance). I think we'd learn something by instrumenting the "if" statement around line 360 of plots/Scatter/avtScatterFilter.C with some extra debug information, then to start working backwards from there. Do we need to ensure that we call something similar to NativeToFloat, called avtTransformManager::NativeToDouble: needNativePrecision=true What is responsible for calling the transform manager, and what might we be able to do to modify it's behaviour. Presumably this was once needed as VTK historically couldn't handle the double precision dataset.
Comments:

2353_CLA-MU1-DIA-SCR-01_electrons.vsh5.zip


Issue with the shared x-label when an axis is deleted

Description
The shared x-label does not appear when fig.delaxes is used.
Steps to reproduce
fig, axs = pplt.subplots(ncols=3, nrows=2)

axs.format(xlabel='xlabel', ylabel='ylabel')
fig.delaxes(axs[-1])

Actual behavior: [What actually happened]

Equivalent steps in matplotlib
import matplotlib.pyplot as plt
fig, axs = plt.subplots(ncols=3, nrows=2)

fig.supxlabel('x-label')
fig.supylabel('y-label')
fig.delaxes(axs.flat[-1])

Proplot version
0.9.5
3.4.3

It works well for me:

matplotlib: 3.5.1
proplot: 0.9.5.post202

Latest "dev" version shows the label, but proplot should probably be able to auto-update label positions when subplots are dynamically deleted. That is, it should have the same effect as passing a subplots array with "zero" slots:
fig, axs = pplt.subplots([[1, 2, 3], [4, 5, 0]])
axs.format(xlabel='xlabel', ylabel='ylabel')


[Samples] Minor typo fixes

PR Details
Fixes some minor typos in the beginner sample project.
Types of changes

[ ] Docs change / refactoring / dependency upgrade
[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

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


Models created via a script behave unexpectedly with materials that have a normal map

Release Type: Official Release
Version: <IP_ADDRESS> & 3.1
Platform(s): Windows
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Open Xenko Launcher.
Create a new Project - New game. Include the Materials Pack asset pack.
Create a new empty entity.
Create a new script with the following code:

    using Xenko.Engine;
    using Xenko.Extensions;
    using Xenko.Graphics.GeometricPrimitives;
    using Xenko.Rendering;

    public class MeshScript : SyncScript
    {
        public Material Material
        {
            get;
            set;
        }

        // Declared public member fields and properties will show in the game studio

        public override void Start()
        {
            var meshDraw = GeometricPrimitive.Sphere.New(this.GraphicsDevice).ToMeshDraw();
            var mesh = new Mesh() { Draw = meshDraw };

            var model = new Model();
            model.Meshes.Add(mesh);
            model.Materials.Add(this.Material);

            var modelComponent = this.Entity.GetOrCreate<ModelComponent>();
            modelComponent.Model = model;
        }

        public override void Update()
        {
            // Do stuff every new frame
        }
    }

Add the script to the empty entity.
Assign a PBR texture from the pack (such as Materials/brick/brick). Seems to only affect materials with a normal map.
Build and run the game.

Expected behavior
A sphere to appear in game rendered with the specified material.
Screenshots

Disabling Bright Filter post-processing:

Disabling Surface normal map on brick texture:

Log and callstacks
n/a
Additional context
Disabling all post-processing removes the black artifacts but the model renders in all black.
ReproProject.zip

OK, I have investigated.
The issue is due to GeometricPrimitive not generating TANGENT data. It defaults to 0 which results in NaN when shader tries to normalize it.

Thank you for researching this. I’ll give it a shot and go from there. If it works, I may submit a PR on the documentation repo to expand some of the conceptual docs w/r/t procedurally generated models. I believe there’s an existing page I can add to.

Duplicate of #325

@Eideren Not sure this should be closed. As far as I'm aware his steps still are reproducible? The issue is that any models that are produced with normal vertices, but the tangent data is not included, it will show this display issue. The problem is the Bright Filter shader uses the tangent data leading to the NaN issue that xen2 mentions.
Perhaps an enhancement is needed to warn users that they must have tangent data when procedurally generating models?

At the very least, the documentation should be updated to correctly explain how to create a sphere that contains tangent data.. since right now it advocates using:

var meshDraw = Stride.Graphics.GeometricPrimitives.GeometricPrimitive.Sphere.New(GraphicsDevice).ToMeshDraw();

https://doc.xenko.com/latest/en/manual/scripts/create-a-model-from-code.html

Found solution
in Blender when exporting FBX files! It's under the Geometries tab, at the bottom -- make sure "Tangent Space" is checked on:

It appears there are at least two ways stride can generate tangents for a mesh that only has position, normal and UVs.
The TNB extensions class has a tangent generator
https://doc.stride3d.net/latest/en/api/Stride.Extensions.TNBExtensions.html?q=tangent
As does VertexHelper class
https://doc.stride3d.net/latest/en/api/Stride.Graphics.VertexHelper.html?q=tangent#Stride_Graphics_VertexHelper_GenerateTangentBinormal_Stride_Graphics_VertexDeclaration_System_IntPtr_System_Int32_System_Int32_System_Int32_System_IntPtr_System_Boolean_System_Int32_
You can see the second method implemented here on the stride primitives
https://github.com/stride3d/stride/blob/8fe8da27eee46da0ad515b859a1226ebadfbc996/sources/engine/Stride.Rendering/Rendering/ProceduralModels/PrimitiveProceduralModelBase.cs#L141


Argument must be str in LOG

I have Nuki Lock 3.0 with bridge. Everything works fine but I have such errors in LOG
File "/config/custom_components/nuki_ng/sensor.py", line 220, in extra_state_attributes
"timestamp": datetime.fromisoformat(timestamp) if not None else None,
TypeError: fromisoformat: argument must be str

Duplicate of #106


SQL error when running Canvas

Hi!
I'm just installing Canvas but when I login it redirects to /canvas I get the following SQL error:
Illuminate\Database\QueryException
SQLSTATE[01000]: Warning: 1265 Data truncated for column 'user_id' at row 1 (SQL: update `sessions` set `payload` = YTo0OntzOjY6Il90b2tlbiI7czo0MDoiM3cxTlE5bXRHeGU2NTE2NVNncnVlRTJuc1N3Sk1oYmR3RHRwVGI1UiI7czo5OiJfcHJldmlvdXMiO2E6MTp7czozOiJ1cmwiO3M6MzM6Imh0dHBzOi8vbm90aW9uaW52b2ljZS50ZXN0L2NhbnZhcyI7fXM6NjoiX2ZsYXNoIjthOjI6e3M6Mzoib2xkIjthOjA6e31zOjM6Im5ldyI7YTowOnt9fXM6NTM6ImxvZ2luX2NhbnZhc181OWJhMzZhZGRjMmIyZjk0MDE1ODBmMDE0YzdmNThlYTRlMzA5ODlkIjtzOjM2OiI2YWQyNTIyYy1jOGE5LTQ1YWEtOWMzOC1iZWY5YzAwMGM2ZTIiO30=, `last_activity` =<PHONE_NUMBER>, `user_id` = 6ad2522c-c8a9-45aa-9c38-bef9c000c6e2, `ip_address` = <IP_ADDRESS>, `user_agent` = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 where `id` = xWh5H46YehplHjkjjz3KQJYZWOk3qH4YYPDOXPuz)

It looks like Canvas is trying to insert a string into the user_id field of the session table, which is a BIGINT field.

Steps to reproduce:

Run composer require austintoddj/canvas.
Run php artisan canvas:install.
Go to /canvas/login and login with<EMAIL_ADDRESS>and 'password'.
SQL error is thrown.

Laravel version: 8.54

@farez #851 Might have some solutions for you. Let me know if you're still stuck after checking that thread out and I can guide further.


struct.error: unpack requires a bytes object of length 35

Hi @cswaney, thanks for putting this module together! I tried to run it with this sample file: ftp://emi.nasdaq.com/ITCH/GIS/S022717-v50.txt.gz using:
pk.unpack(fin='S022717-v50.txt',
          ver=5.0,
          date='022717',
          fout='itch.hdf5',
          nlevels=5,
          names=['GOOG', 'AAPL'],
          method='hdf5')

but am getting:
Traceback (most recent call last):
  File ".../nasdaq_itch.py", line 34, in <module>
    method='hdf5')
  File "/home/src/prickle/prickle/core.py", line 1389, in unpack
    message = get_message(message_bytes, message_type, date, clock, ver)
  File "/home/src/prickle/prickle/core.py", line 1074, in get_message
    message = protocol(message_bytes, message_type, time, version)
  File "/home/src/prickle/prickle/core.py", line 1293, in protocol
    temp = struct.unpack('>HHHIQsI8sI', message_bytes)
struct.error: unpack requires a bytes object of length 35

Any suggestions?

I've submitted pull request to fix two format strings for v5.0: https://github.com/cswaney/prickle/pull/3.


[docs] Add Pigment CSS integration guide

closes #42523

[ ] I have followed (at least) the PR section of the contributing guide.

@siriwatknp sorry for disturbing, is it expected at the moment that extendTheme from @mui/material passed to a vite PigmentCSS plugin (based on the guide here) doesn't change any styles of the components, when using latest @mui/material & PigmentCSS?

if it's not expected, then I'd create a separate issue

@siriwatknp sorry for disturbing, is it expected at the moment that extendTheme from @mui/material passed to a vite PigmentCSS plugin (based on the guide here) doesn't change any styles of the components, when using latest @mui/material & PigmentCSS?

if it's not expected, then I'd create a separate issue

It should change, please create a separate issue. FYI, this is a wip docs please don't take it as final.

Moved to https://github.com/mui/material-ui/pull/42819


There was something wrong with the set_scale and set_settings methods of the SceneItem class defined in pyslobs/slobs/scenenode.py.

The first argument of both is not named "self".

Thanks for bringing this to my attention, and also the pull request.
This note is just to reassure you I am not ignoring this. I am on it, and hope to release a fixed version soon.
I have reviewed the code looking for other instances of the same mistake, and found none.
This is in an area that hasn't been covered by "testing" (I have been using the expression 'exercising' because it isn't true testing.) I am working on writing some new test cases, and in doing so, identified a few other localised issues, which I want to release fixes for in the same release.

I have release 1.2.0.
It includes this fix.
It includes test code to exercise this area.
It fixes a large number of bugs found while doing so.


Fix crash when switching main screen from a disabled plugin main screen if code editor is floating.

If currently main screen is provide by editor plugin, remove this editor plugin will switch to script editor automatically.
But the ScriptEditorPlugin will switch to previous editor plugin main screen again if script editor is floating, and lead to crash when switching main screen later.

Thanks!


Use mb_* functions

I am wandering whether it would be good to use multi-byte string functions by default or have a wrapper for both e.g. strlen and mb_strlen?

Can  you provide statistics on how common mb_string is deployed?

How would one be able to calculate this?

If you install any Linux they are not part of the php-common package and must be installed manually
Maybe you can check if they exist and use them if they are present


Add dist to python/.gitignore

python folder contains setup.py file which allows to generate .egg file by running
$ cd python
$ python setup.py bdist_egg

This command generates .egg file in dist folder.
dist folder should be ignored by git

Thanks @apivovarov


Adds the wind direction dimension to arrays

Feature or improvement description
This pull request expands on the work in #6 to include the wind direction as a dimension in the low-level arrays.
Dependencies:

#6

@RHammond2 the unit test for the _filter_convert function is failing here. I can't quite understand what's wrong. Could you take a look?

After looking at this again with @bayc yesterday, I've made some changes and I believe this one is ready to roll.

After looking at this again with @bayc yesterday, I've made some changes and I believe this one is ready to roll.

I think this could totally work, my comments are mostly addressing the TODO comments in the code, which could be done now, or in another PR.

@RHammond2 Thanks, I've addressed your comments, so I'm going to merge.

Whoops, I hit the button too soon and one commit didn't make it. Merging that one manually.


Draft doesn't recognize markdown links

*Using Amazon Linux AMI
The drafts created using a markdown template (foia.md) did not recognize markdown links and came out as raw markdown.
Expected behaviour:
nous vous demandons de répondre à CES QUESTIONS avant le 20 août 2021
Actual behaviour:
nous vous demandons de répondre à [CES QUESTIONS](https://docs.google.com/forms/d/e/1FAIpQLSckrqdL8KjFyrpQtB-c62WetoghHQ4-qB64HH0V6SdB5zq1Fw/viewform) avant le 20 août 2021

Did the rest of the markdown conversion work? Or just the link part of the markdown failed? (I'm also assuming you have the latest version of foiamail?)

I only did markdown with links, so I can’t say if other markdown code worked or failed. Also, yes, I believe I have the latest version. I installed it on EC2 just last month.  From: Brandon RobertsSent: July 27, 2021 4:43 PMTo: bettergov/foiamailCc: Roberto Rocha; AuthorSubject: Re: [bettergov/foiamail] Draft doesn't recognize markdown links (#68) Did the rest of the markdown conversion work? Or just the link part of the markdown failed? (I'm also assuming you have the latest version of foiamail?)—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.

I only did markdown with links, so I can’t say if other markdown code worked or failed. Also, yes, I believe I have the latest version. I installed it on EC2 just last month.  From: Brandon RobertsSent: July 27, 2021 4:43 PMTo: bettergov/foiamailCc: Roberto Rocha; AuthorSubject: Re: [bettergov/foiamail] Draft doesn't recognize markdown links (#68) Did the rest of the markdown conversion work? Or just the link part of the markdown failed? (I'm also assuming you have the latest version of foiamail?)—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.

I edited my message (which you probably can't see via email):

~Did the rest of the markdown conversion work? Did only the link part of the markdown fail? (I'm also assuming you have the latest version of foiamail?)~
foiamail sends the response email as plain text. Markdown is only used to prepare the PDF. So this is a bug with the strip_markdown function in msg/compose.py

Currently foiamail only supports plain text emails. Things to try:

using an HTML link
using the DOCX message if you don't want PDF
just putting a plain text URL in your message.
figuring out how to strip links from inside the strip_markdown function inside msg/compose.py


nginx and njs version

Hi,
we just had the issue, that we were still using nginx 1.18.0 in our tests startNginx({ version: '1.10.0'}) but in the nginx.conf we were using js_var – a feature, that should not have worked with the njs version that was packaged with nginx 1.18.0. But the tests stayed green. Only when we deployed it, did it fail.
How can we avoid this in the future?
Thanks again for this great tool!

Hi,
that’s because I always build nginx with the latest modules and dependencies at the time. njs is a separate module, it’s not shipped within the nginx tarball, so what do you mean by “njs version that was packaged with nginx 1.18.0”? This depends on particular distribution.
You can find the exact versions of modules and other dependencies the binary was built with in index.json (see IndexEntry). If you need some specific version, you can try to find it in history of the binaries branch.

OK – thanks for the explanation. I always just use the official nginx docker image (stable version) and don't do anything to the container after that.
So what I would find super helpful is a possibility to separately specify which njs version should be used in the tests. Would that even be possible?


Why does appcenter distribute SDK needs android.permission.DOWNLOAD_WITHOUT_NOTIFICATION permission ?

Why does appcenter distribute SDK needs android.permission.DOWNLOAD_WITHOUT_NOTIFICATION permission ? is there any way for distribution SDK to work without this permission? And why is this permission required?

@Vikaass  We are looking at this issue and will get back to you with an update. Thanks!

Please look into it on priority as we have to make the new version release the next week.

@elamalani any update ?

Sorry for the delay.  That permissions used to hide system notification for mandatory updates. We display a modal progress dialog instead in the app.  Mandatory updates cannot be postponed or canceled.  The permission does not require user approval and will thus not be listed in permissions on/off settings.
The fact that it doesn't appear in the app settings as a permission is something that the Android OS controls.
If you never distribute updates as mandatory, the permission will never be used.  However, there is no way to use the SDK without this permission.


Mark safe for app extensions

Mark the framework safe for use in app extensions.
So Xcode and Apple don't complain when you use it in things like shared embedded frameworks and share extensions

Thanks @jannon and sorry for the delay.


Touch support

Adding touch support. Related to #20

@Wondermarin Could you approve this PR? Have the same issue

@Wondermarin Could you approve this PR? Have the same issue

@lesleyxyz I'm preparing v7.0.0, where will be added support for touch devices.

Added in v7


fix: Release

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Unclear how to inject a node_modules module

If I want to inject, for example, the promise npm module.  How is this achieved?  Forgive me if this is an obvious question, I've watched the YouTube video and read the documentation to no avail.  Just getting my feet wet with different DI in Node

@stephengardner just using "promise" for packagepath should work. non relative paths are handled by  https://github.com/c9/architect/blob/master/architect.js#L191

Got it, somehow that's not working.
Right now I'm requiring the npm modules in the architect modules themselves.
This doesn't work for me.
//...
var appConfig = [
		{
			packagePath : './app',
			config : config
		},
		{
			packagePath: "promise"
		},
		"./plugins/connections"
	];
	var tree = architect.resolveConfig(appConfig, __dirname);
	architect.createApp(tree, function(err, Architect){
		if(err) {
			logger.error(err);
		}
		else {
			onCreateApp(Architect);
		}
	});
//...

I get TypeError: not a function from within node_modules/promise/lib/core.js

That means promise isn't an architect plugin (doesn't provide like https://github.com/c9/architect/blob/master/demos/calculator/plugins/auth/auth.js#L1) in that case just use require("promise") directly

Got it, alright that's how I'm doing it, wasn't sure if that was the correct way, I guess it makes sense.  The variations in all these DI frameworks made it a little confusing.
Thanks


Does the [Feature Request] framework have Christmas eggs like Ant Design?

Existing Component
否
Component Name
无
Description
框架也会有类似Ant Design的圣诞彩蛋吗

没有，放心使用。

Element UI does not have any plan in the past or the future on implementing irrelevant features that don't help our customers to improve product's value.


Deployment failing after moving to new MBT

Link to application: https://github.wdf.sap.corp/S4HANA-Procurement-GB/GB
Steps to Reproduce:
After the movement the compilation went through but the deployment is failing.
Error: 2019-12-24T04:17:05.671+0000 [STG/0] ERR SEVERE: Unhandled exception in Buildpack main method: None of the available runtimes: [Tomee, Tomee7, Tomcat, Java Main] support the application in the specified path. Failed to compile droplet: Failed to compile droplet: exit status 9
Please help us resolve this issue

Hi,
Could you please elaborate on the environment where you build and deploy the project.
Are you doing it from Web IDE (please provide the link), CLI, pipeline?
What is the target platform: XSA or CF?
Regards
Natalia

Hello mv93,
You are not properly reference build results in mta.yaml.  web*.jar that has to be archived is created in folder web/target. So it has to be:
build-parameters:
build-result: 'web/target/web*.jar'
Please change, try and let us know if it solves the problem.
Regards,
Alla

this worked for me. thanks!


async mapping?

Having trouble determining how to best read and async map, from a file with a consumer that pauses/resumes the stream.
My first attempt was something like the following:
var mapper = function (raw) {
   //...parsing was happening here
  return result;
};

var consumer = function (err, x, push, next) {
//... if not err or nil, write batch to db
// there is some detection here to pause and resume the stream to only have a few concurrent writes to the db at a time.
};

var stream = _(fs.createReadStream(filepath)).split().map(mapper).batch(3000).consume(consumer);

This was working fine, and it was throttling with the pause resume with no problems. However, due to some changes i'm required to have the mapper parsing each row asynchronously, but i can't seem to figure out what I need to do to make that work with highland.
I tried changing mapper to
var mapper = _.wrapCallback(function (raw, cb) {
  //... async stuff,
  cb(null, result);
});

but after the first 500 items, i end up with the script spitting out a bunch of
(node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral. until max callstack exceeded.

The typical way to do async things with highland is via the flatMap operator.
stream.flatMap(function (raw) {
    return _(function (push, next) {
        // do work with raw here.
        // call push with the result when done.
        // Call push(null, _.nil); after that.
    }
});

Alternatively, if you have a node-style async function that does the work,
stream.flatMap(_.wrapCallback(asyncMapper));

This is the analogue of returning a promise for async operations from a then callback, if you're familiar with promises.
As a side note, if you want to throttle db writes, you can easily do it with parallel.
stream.errors(function (err) {
    // handle errors somehow.
    // Optional. Only if you care about handling errors from the mapper.
}).flatMap(function (batch) {
    return _(function (push, next) {
        // write to db.
        // Optionally call push(err) for write errors.
        // call push(null, _.nil) when done.
    });
}).parallel(2) // two concurrent writes at once.
.errors(function (err) {
    // handle db errors.
    // Only needed if your writes can produce errors or you didn't handle mapper errors above.
})
.resume(); // Start the whole stream. You can delay this until you're ready.

Actually, you're better off calling done here instead of resume, since resume will swallow errors if you forget to install an error handler.
In general, you're better off calling one of the consumption transforms than calling resume directly, as they'll make sure that unhandled errors don't get swallowed.

Thanks for the response, @vqvu.
I do have an error handler in place, just didn't in that psuedo example above.
I'll give your flatMap solution a try and see if that solves my problem.

Well, it seems I'm still getting that problem with the (node) warning: Recursive process.nextTick detected.
The problem seems tied to the https://github.com/wdavidw/node-csv-parse module that I'm using inside the flatMap.
stream.flatMap(function (raw) {
    return _(function (push, next) {
        csv(raw, function (err, output) {
            // work with the output, do some more work to it
            push(null, parsed);
            push(null, _.nil);
        });
    });
});

I was avoiding using the node-parse-csv as a stream because i couldn't seem to get the backpressure from the db writes to hold back the file reading (some of these files are quite large). So now my only working solution is this:
_h(fs.createReadStream(self.filepath).pipe(require('csv-parse')()).map(syncMapper).filter(...).batch(3000).consume();
Do you have any suggestions for how i could determine if the fileread and csv parse are being affected by the backpressure at all?

The recursive nextTick warnings seems like a csv-parse bug, unless the intent was to not be able to synchronously call the parser within the callback. Here's a test case.
var csv = require('csv-parse');

var i = 0;
function cb(err, x) {
    if (i++ < 500) {
        console.log(x);
        csv('1, 2, 3, 4', cb);
    }
}

csv('1, 2, 3, 4', cb);

What's happening here is that Highland will do things synchronously as much as possible. The call to push(null, _.nil) will push data down to the batch, which then asks for more data (because there's more space for the buffer). Usually, there'll be more data already available because of your use of split (the file read stream tend to more than one line at a time). That data then gets immediately pushed down through the csv parser, thus causing a recursive call into the csv parser and thus process.nextTick.
You should be able to just pipe through the csv-parse stream directly (without split, since csv-parse understands Buffer) using through
_(fs.createReadStream(self.filepath))
    .through(csv())
    .batch(5000)
    ...

There's no really good way to check that back pressure is being applied, but you can override write to see when the stream is begin written to. This could serve as a proxy for how often the file is read from.
var s = _(fs.createReadStream(self.filepath));

// Use for debug/testing only!
var oldWrite = s.write;
s.write = function (x) {
    console.log('Written to.');
    return oldWrite.call(this, x);
};

s.through(csv())
    .batch(3000)
    .doto(function () {
        console.log('batch');
    })
    .resume();

You should see interleavings of batch and Written to..

Ok, I tried it out with a large file. Here's what I got (with node 0.10).
var decorate = _.curry(function decorate(str, s) {
    var oldWrite = s.write;
    s.write = function (x) {
        console.log('Written from', str);
        return oldWrite.call(this, x);
    };
    return s;
});

var s = _(fs.createReadStream('large.csv'))
    .through(decorate('file'))
    .through(csv())
    .through(decorate('csv'))
    .batch(3000)
    .flatMap(function (x) {
        var self = this;
        return _(function (push, next) {
            console.log('Pausing.');
            setTimeout(function () {
                push(null, x);
                push(null, _.nil);
            }, 500);
        });
    })
    .resume();

Result
Written from file
Written from csv
...
Written from csv x3000
...
Pausing.
Written from file
...
Written from file x a bunch
...
Written from csv x3000
Pausing.
*paused for 2 seconds*
Written from csv x3000
...

It looks like there's backpressure from between csv -> batch but not from fs -> csv.
So I went digging in the node source. There is backpressure, but 0.10 has really terrible defaults for objectMode streams. The highWaterMark is always 16k even in object mode. This means the csv-parse stream will read until it has 16k Buffers! Each of those objects are probably 64KB, and so you end up with effectively no backpressure at all.
Switching to 0.12 makes things better, since the default highWaterMark is 16. Ideally, csv-parse would set writableObjectMode = true, but they'd be giving up 0.10 compatibility in the process, so that's really up to them.
A workaround is to call csv({highWaterMark: 2}) (or some other small number), since csv-parse passes the option object directly to the stream constructor. It's a workaround though, because highWaterMark isn't an official parser option.
The other workaround is to use Highland's backpressure mechanism instead of regular stream's. You'll need to get csv-parse to fix their recursive call bug first.
var s = _(fs.createReadStream('large.csv'))
    .through(decorate('file'))
    .split()
    .flatMap(_.wrapCallback(csv))
    .batch(3000)
    .flatMap(function (x) {
        var self = this;
        return _(function (push, next) {
            console.log('Pausing.');
            setTimeout(function () {
                push(null, x);
                push(null, _.nil);
            }, 500);
        });
    })
    .resume();

The problem is that you'll be creating a new parser for every line. This may or may not be prohibitively expensive to do.

@vqvu Hopefully this isn't off-topic.    In your opinion, how does that compare with using consume with a consumer function?  Is the former preferred because it reads better?  Or are there also reasons why consume is a less-desirable choice?

If you are using flatMap purely to do async computations, that is, if the generator stream that you return will always emit one or zero values, then flatMap is preferred only because it reads better than consume. Consumer functions require quite a bit of boilerplate.
However, if you're extending the stream (i.e., your generator stream returns emits values), then flatMap also comes with built-in backpressure handling, which you wouldn't be able to implement easily with consume.
That said, flatMap is implemented with consume and forces you to create lots of short-lived streams, so in theory consume has lower overhead (both computation and memory). Depending on your application, this may or may not be important.
Also, from a readability standpoint, it's also possible to factor out complicated logic into a function that can be used with through, so your choices are not necessarily restricted to readable flatMap vs boilerplate-y consume.

Thank you.


Screen sharing example project not working

Description
The example project for screen sharing is not working properly. The video does not appear as a track in the room.
Steps to Reproduce

Create a test room
Get an access token for that room
Paste into line 33 of video-quickstart-ios/ReplayKitExample/ReplayKitExample/ViewController.swift
Run the app
Click Start Conference
Click Record Screen
Check the room participant tracks

Code
The only thing I changed about the project was the access token
Expected Behavior
The video and audio should connect to the room, and the video and audio tracks should appear in the room/recording logs
Actual Behavior
Only the audio track seems to connect to the room
Reproduces How Often
99%
Logs
Xcode logs with TwilioVideoSDK.setLogLevel(.debug)
twilio_log.txt
Versions
Room settings

Video iOS SDK
3.5 via cocoapods
Xcode
11.5
iOS Version
13.3.1
iOS Device
iPhoneX - physical device

@jamesal4 ReplayKit sample app is functional and up to date.
I looked into the room sid RMcc8927af2fd2fba302ac996416ad1119 , you had only one participant connected to room beef4. There was no other participant in the Room. Also I noticed you were connected to the Room only for 2 seconds and then you had the call disconnected.  If you join beef4 from other phone, you should see the screen shared by the first participant. Let me know if you have any questions.

I intentionally only had one participant connected because I was trying to debug the issue through twilio's website logs. I expected the video/audio recording to appear, but instead, I only saw the audio recording, and it lasted for the same amount of time I was connected through the app, 58 seconds.
In a different room, I also tried having someone else connect, and they were able to connect but only heard the audio. I can't find that room id now, but if it would help, we can run that test again and give you the room id.

@jamesal4 Apologies for the late response here. Were you able to resolve the problem. If not, please provide the room sid with both the participants in the Room. Thanks!

The issues still exists. Screen sharing feature from sample project is not working. Here's the SID of the room with 2 participants.
RM929d3751d5865c847f581b14e766d483

oddly, I had this issue with the videoqucikstart project, but the screen recording works fine for me

I have passed RM929d3751d5865c847f581b14e766d483 to the backend team. I will keep you posted.

Unfortunately, I don't have any update on this issue. Are you still observing the issue?
Wanted to let you know that we have shipped InApp screen sharing component in our 4.x SDK. And, we are currently working on making broadcast extension APIs part of SDKs. Try it out and let us know.

Unfortunately, I don't have any update on this issue. Are you still observing the issue?
Wanted to let you know that we have shipped InApp screen sharing component in our 4.x SDK. And, we are currently working on making broadcast extension APIs part of SDKs. Try it out and let us know.

Please feel free to reopen or file another ticket if you run into any issues.

Please feel free to reopen or file another ticket if you run into any issues.

Maybe the reply is outdated, but still might help someone
Faced the same issue today: audio is played in the room, video is not displayed.
The root of the problem was that broadcaster and other room participant used different test authentication methods: the broadcaster used the manually generated access token while the receiving participant used the serverless backend provided by twilio tools:
twilio rtc:apps:video:deploy --authentication passcode
I made both my participants use the manually generated token and it worked like a charm.


Sitemap not compatible with definePageMeta().path

Hey!
It seems like there is an issue when using the sitemap in combination with the path property of definePageMeta.
Instead of using the proper path, the sitemap is generated using the /pages files, even if they have a custom path.
For example, if I have /app/note-list.vue with a custom path to use it as the index of a folder (better for organization purposes):
    definePageMeta({
        path: '/app/',
    });

I will get the following error when generating the website while doing npm run generate. I think it might be because the generation switch to using the sitemap instead?
  ├─ /app/note-list (886ms)                                                                                nitro 9:11:44 AM
  │ └── Error: [404] Page not found: /app/note-list

The issue seems to persists even when I exclude every page in nuxt.config.ts
 sitemap: {
        exclude: ['**'],
    },

I use NuxtSEO directly, so it might be another module maybe? As soon as I remove NuxtSEO it the issue is gone

This appears to be a Nuxt bug, see the reproduction: https://stackblitz.com/edit/nuxt-starter-k6cb5d?file=pages%2Fapp%2Fnote-list.vue.
I'm not too sure what the solution is meant to look like but I'd encourage you to open an issue on https://github.com/nuxt/nuxt/issues with this reproduction if it's something you want to solve.


Bug: metadata.metadataBase is not set for resolving social open graph or twitter images

Describe the bug and the steps to reproduce it
Warning during development : metadata.metadataBase is not set for resolving social open graph or twitter images, using "http://localhost:3000". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase
What's the expected behavior?
Can be great to remove it, pretty painful to get this error at every build
What version of the libraries are you using?
No response

Oh yeah, I have been noticing that too.
I am going to get our F1 mechanic on top of this.

@leo5imon fix this one by @wespickett