svgo dependcy issue

The original tempalte :

has build time dependencies, on svgo
svgo executable is embedded into the astro-icon package :  that way the user does not need to worry about astro-icon version / svgo version in our project's package.json
Now there is still one issue : when you run the astro build, an error is thrown stating that the svgo package is not installed, so typescript compilatation fails
Then i ran pnpm add -D @types/svgo && pnpm add --save svgo, which installs a specific version, different from the version of the embeded svgo in the astro-icon package.
so i seeked a way to find out what svgo version is embedded, so that I add the same svgo version with pnpm add, and that's how i found out :

Utilisateur@Utilisateur-PC MINGW64 ~/juste-un-curieux (feature/spinup_project)
$ pnpm run  build

><EMAIL_ADDRESS>build C:\Users\Utilisateur\juste-un-curieux
> astro build

23:53:07 [content] Types generated 1.14s
23:53:07 [build] output target: static
23:53:07 [build] Collecting build info...
23:53:07 [build] Completed in 1.37s.
23:53:07 [build] Building static entrypoints...
23:53:11 [build] Completed in 3.65s.

 building client
Completed in 98ms.

 generating static routes
▶ src/pages/index.astro
(node:10412) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
file:///C:/Users/Utilisateur/juste-un-curieux/dist/chunks/pages/index.astro.f08d44cb.mjs:266
      throw new Error(`[astro-icon] Unable to load icon "${name}"!
            ^

Error: [astro-icon] Unable to load icon "wordmark"!
Error: Unknown builtin plugin "cleanupIDs" specified.
    at file:///C:/Users/Utilisateur/juste-un-curieux/dist/chunks/pages/index.astro.f08d44cb.mjs:266:13

Node.js v18.4.0
 ELIFECYCLE  Command failed with exit code 1.

Utilisateur@Utilisateur-PC MINGW64 ~/juste-un-curieux (feature/spinup_project)
$ ./node_modules/astro-icon/node_modules/.bin/svgo --version
node:internal/modules/cjs/loader:949
  throw err;
  ^

Error: Cannot find module<EMAIL_ADDRESS>    at Module._resolveFilename (node:internal/modules/cjs/loader:946:15)
    at Module._load (node:internal/modules/cjs/loader:787:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
    at node:internal/main/run_main_module:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Node.js v18.4.0

So the fix is :
pnpm remove -D @types/svgo && pnpm remove --save svgo
pnpm add -D<EMAIL_ADDRESS>&& pnpm add --save<EMAIL_ADDRESS>

"Et voilà!":
Utilisateur@Utilisateur-PC MINGW64 ~/juste-un-curieux (feature/spinup_project)
$ pnpm remove @types/svgo && pnpm remove svgo
pnpm add -D @types/svgo && pnpm add --save<EMAIL_ADDRESS> ERR_PNPM_CANNOT_REMOVE_MISSING_DEPS  Cannot remove '@types/svgo': no such dependency found

Available dependencies: @astrojs/image, @astrojs/tailwind, @types/micromodal, astro, astro-icon, prettier, prettier-plugin-astro, prettier-plugin-tailwindcss, rimraf, tailwindcss-fluid-type, @fontsource-variable/inter, micromodal, sharp, tailwindcss, tiny-invariant

Utilisateur@Utilisateur-PC MINGW64 ~/juste-un-curieux (feature/spinup_project)
$ # pnpm add -D<EMAIL_ADDRESS>&& pnpm add --save<EMAIL_ADDRESS>
Utilisateur@Utilisateur-PC MINGW64 ~/juste-un-curieux (feature/spinup_project)
$ pnpm add -D @types/svgo && pnpm add --save<EMAIL_ADDRESS>Progress: resolved 0, reused 1, downloaded 0, added 0
Progress: resolved 15, reused 15, downloaded 0, added 0
 WARN  deprecated<EMAIL_ADDRESS>This is a stub types definition. svgo provides its own type definitions, so you do not need this installed.
Progress: resolved 147, reused 107, downloaded 0, added 0
 WARN  deprecated<EMAIL_ADDRESS>Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
Progress: resolved 772, reused 538, downloaded 0, added 0
Progress: resolved 773, reused 539, downloaded 0, added 0
Packages: +1
+
Progress: resolved 773, reused 539, downloaded 0, added 0, done

devDependencies:
+ @types/svgo 3.0.0 deprecated

Progress: resolved 1, reused 0, downloaded 0, added 0
 WARN  deprecated<EMAIL_ADDRESS>This is a stub types definition. svgo provides its own type definitions, so you do not need this installed.
 WARN  deprecated<EMAIL_ADDRESS>Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
Progress: resolved 445, reused 339, downloaded 0, added 0
Progress: resolved 703, reused 529, downloaded 0, added 0
Progress: resolved 735, reused 536, downloaded 0, added 0
Progress: resolved 739, reused 539, downloaded 0, added 0
Already up-to-date
Progress: resolved 739, reused 539, downloaded 0, added 0, done

dependencies:
+ svgo 2.8.0 (3.0.2 is available)

Utilisateur@Utilisateur-PC MINGW64 ~/juste-un-curieux (feature/spinup_project)
$ pnpm run  build

><EMAIL_ADDRESS>build C:\Users\Utilisateur\juste-un-curieux
> astro build

00:12:01 [content] Types generated 462ms
00:12:01 [build] output target: static
00:12:01 [build] Collecting build info...
00:12:01 [build] Completed in 672ms.
00:12:01 [build] Building static entrypoints...
00:12:04 [build] Completed in 3.22s.

 building client
Completed in 102ms.

 generating static routes
▶ src/pages/index.astro
(node:12612) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
  └─ /index.html (+1.12s)
 optimizing 8 images in batches of 4
00:12:09 [build] Waiting for the @astrojs/image integration...
Completed in 4.78s.

Completed in 5.91s.

00:12:11 [build] 1 page(s) built in 9.93s
00:12:11 [build] Complete!


Help with before and after

I'm trying to fade content out of view before scroll animation occurs, and likewise have content fade into view once the scrolling has finished.
I've trying using jQuery delay() function but it does not produce the desired result.
Any suggestions?

Scrollify will always scroll as soon as the user wants to. There's isn't a good way to delay it.

Here's a snippet I used, you can tweak it to fit your needs:
'before' : function (index, sections) {
    var $question;
    var $sections = $(sections).removeClass('has-focus');
    var $currentSection = $(sections[index]);
    var isQuestion = $currentSection.hasClass('question');

    if (isQuestion) {
        $question = $currentSection;
    } else {
        // this is because of intersitial sections and how scrollify was assigning index
        $question = $(sections[2]);

        if (index > 2) {
            $question = $(sections[sections.length - 3]);
        }
    }

    $question.addClass('has-focus');
},

Thank you lukehaas and keif for your responses.
keif, correct me if I'm wrong but I don't see any delay implementation in your snippet.

@rodrigobell Scrollify probably isn't the right tool for the job here.


Support for streaming data

This PR builds on #2007 adding a StreamDataFrame Stream, which lets you subscribe to updates from a streamz.StreamingDataFrame. The dependency is entirely optional and with a bit of glue it's very easy to subscribe to generate a streaming plot this way. For now I have just monkey-patched streamz using this code:
from streamz.dataframe import StreamingDataFrame, StreamingSeries, Random
from holoviews.streams import StreamDataFrame

def to_hv(self, function, backlog=2000):
    return hv.DynamicMap(function, streams=[StreamDataFrame(self, backlog=backlog)])

StreamingDataFrame.to_hv = to_hv
StreamingSeries.to_hv = to_hv

The individual chunks emitted by the StreamingDataFrame are fed through a user supplied callback and are then used to update the bokeh plot using the CDS.stream method, which sends just the most recent samples. It may also be worth considering an option where StreamingDataFrame itself accumulates data rather than just emitting chunks, which can also be very useful. The current approach makes something like this possible:

After a long discussion with @philippjfr I came around to this approach for now, even if we find a deeper way to integrate streamz support in the long term. There are a few changes that would help:

Don't show patches anywhere that the user can see.
Enable the bokeh streaming optimization if the holoviews stream is there AND the data in the element while plotting is the data in the stream (allows optimization even if the data is mutated in the user callback)
Issue a warning if the stream is present but the optimization is disabled because the identity test fails - the user may have made a copy, disabling the optimization which they should be made aware of.

Ready to review once #2007 is merged.

Happy to hold off on merging until I've added a user guide entry and some examples.

Issue a warning if the stream is present but the optimization is disabled because the identity test fails - the user may have made a copy, disabling the optimization which they should be made aware of.

Note that I don't think we should warn here, modifying the data can often be useful, e.g. when computing a histogram of the streaming window.

@jbednar Ready for you to make a pass over the user guide.

Ready to merge.

a. These two statements together are pretty dense:
stream.sliding_window(10).map(pd.concat).sink(stream_data.send)
hv.DynamicMap(hv.Scatter, streams=[stream_data]).redim.range(x=(-3, 3), y=(-3, 3))

also, is map(something) required?
b. Reading this, " which will wait for 10 sets of stream updates to accumulate and then apply pd.concat to combine those updates,” it sounds to me like it will send chunk 1-10 together, then send again with chunks 11-20, then again with chunks 21-30, etc. I suggest a rewording of "which will wait for 10 sets of stream updates to accumulate and then apply pd.concat to combine those updates." to make it clearer how it works. The current wording is also not clear if it continues pass the 10th chunk.

Note that I don't think we should warn here, modifying the data can often be useful, e.g. when computing a histogram of the streaming window.

You could maybe warn in such a case, if the user hasn't passed a special argument writeable=True?  Fine by me either way.

It looks like this notebook needs to be run cell by cell for it to work well, which I don't usually like; I'd rather it just sit there consuming CPU so that I can read each bit as I wish, not necessarily one cell at a time in order.  So it would be good to show how to have a stream that ends, but I don't think most of the examples should be like that; seems to me that most should just keep going indefinitely.
In any case, particularly if single-cell running is encouraged, please change variables to be unique.  E.g. source is defined differently in different cells, which causes confusion and apparent errors when run out of order.

In "Applying operations", instead of redefining source and sdf, can you do something like source.restart() or source.start() to resume that stream?  I don't see any operation like that on the Random argument, but if that's not supported by streamz; seems like it ought to be...

Should zooming in work, e.g. on the last plot? It doesn't seem to, even if only covering a shorter rather than a longer time; the ranges reset when the next update happens.
Would it be reasonable to set up streams that set the backlog to the right default when appropriate, such as when the backlog maps to an x axis of a plot?  This might address item 1.
Can we have at least one datashader plot with a datetime axis?  I think that will be the first thing people will say when they see this one.
I think we need a spatial datashader plot as well.

Apart from that, thanks, and it looks great!  I'll push my changes to the notebook now.

Should zooming in work, e.g. on the last plot? It doesn't seem to, even if only covering a shorter rather than a longer time; the ranges reset when the next update happens.

What would you expect to happen? The axis has to follow the current window, so it's not clear to me how you could avoid setting the range when a new event comes in.

Would it be reasonable to set up streams that set the backlog to the right default when appropriate, such as when the backlog maps to an x axis of a plot? This might address item 1.

I'm not sure what you mean here either, the backlog determines the range of the axis not the other way around.

Can we have at least one datashader plot with a datetime axis? I think that will be the first thing people will say when they see this one.

I'll update once #2023 is merged.

I think we need a spatial datashader plot as well.

Sure, I'll add that if you haven't already.

On zooming in, I would expect the size of the viewport to change, even if the actual location of the viewport is tracking what comes in.
I'm mainly thinking about the x axis here, where zooming amounts to changing the backlog. If the backlog is 1000 points and I zoom into the x axis 2X, I'd expect to see 500 points at a time from then on. From there, if I zoom back to 1.0X, I'd expect to see 1000 points again.  If I instead zoom out, I would expect to see a half-empty plot, because I know the backlog isn't keeping that much data, but I might hope that the backlog will dynamically update based on my zooming so that I now see up to 2000 points if I wait for a while, because the backlog has now been updated to 2000 points.  This all seems uncontroversial to me, which doesn't mean it's feasible, but I think it does mean it's reasonable to consider.
The y axis is significantly trickier.  If I zoom out, I'd expect to see the same data as before, with a buffer around the top and bottom; probably not very useful, but intuitive.  If I zoom in, I'd expect to see half the y range as before, but the question is which bit of the y range, since that keeps jumping around all the time.  And I guess the answer is the middle bit of the range, if I haven't done any panning, such that if the auto-ranged Y is 0.3 to 0.6, I'd expect to see 0.4 to 0.5 after zooming y 2X.  And then I'd expect panning to show me 0.5 to 0.6 or 0.3 to 0.4, depending on how I drag it.
To motivate all this, just imagine a streaming plot that has quite a bit of data that is arriving very slowly.  Anyone looking at it is going to want to be able to zoom in to a bit of it and check it out, and will be surprised and annoyed if such zooming suddenly gets overwritten every time an update appears.
This all also brings up the issue of wanting to be able to scrub back into some portion of the history, e.g. to have a backlog of 5000 points, showing only the last 1000 but allowing scrubbing (panning to the left, in this case) over the previous 5000.  This isn't stuff that needs to be handled in this PR, just functionality that I think is clearly desirable without any weight for how feasible it is to implement.

Oh, and I didn't see your note about documenting the chunksize option for the DataFrameStream, so I don't think I focused on that explicitly.

Okay, I agree none of that is particularly controversial and you can achieve the scrubbing back portion of what you suggested already. The rest may be feasible but I don't think it'll be in this PR. Hunt's suggestion of having some button that let's you stop updates to a plot seems very reasonable here, I could imagine a button that temporarily pauses updates to a plot (while leaving the actual stream intact). That way you could pause the plot, zoom in and then start it again once you've looked at the feature you're interested in.

Oh, yes, I meant to suggest that too, a "go offline" mode.

Should also address https://github.com/ioam/holoviews/issues/1775 by adding a psutils based example.

hi. On Windows the psutils example faile because thee is no aciv/inacive memory:
import psutil;psutil.virtual_memory();

svmem(total=4260392960, available=1139920896, percent=73.2, used=3120472064, free=1139920896)

hi. On Windows the psutil example faile because there is no active/inactive/wired memory:

That's annoying, would you mind pasting what is available on Windows?

then it fails, on maybe a missed patch from myself ?

Yes, it seems you got an old version of this PR before I rebased fixes to Area.stack into it.

on windows, there is:

total
available
used
free

Thanks, that's great! I'll update the example.

This PR is now fully ready to review. I've further improved the DataFrameStream so you can now use it without streamz.  This way you can still get the benefit of optimized bokeh streaming without streamz.
The user guide includes two examples of this, including the psutil example which is also reused as a bokeh app. @jlstevens This PR definitely needs a review from you, I'm personally very happy with the way it works. I'd strongly recommend running through the user guide before diving into the code (although there's nothing scary lurking there, I promise).

I'll review this PR this evening.

I can only review the first bit of the user guide as the 'A simple streamz example' section breaks with:

Main comment

"Streaming data" is data that is continuously generated, often by some external source like a remote website, a measuring device, or a simulator. This kind of data is common for financial time series, web server logs, scientific applications, and many other situations.

I don't think this is quite true. You can use a DynamicMap to display 'continuously generated' data without needing 'streaming' in the sense described in the user guide. This is true of the reaction diffusion examples, the boids examples etc.
I think 'streaming' is now very overloaded as a term: we talking about 'streaming support in bokeh', 'HoloViews streams', 'streamz' etc and all these are different (though related) things! In particular, this is going to cause confusion within HoloViews as we already have a 'streams system'.
I propose the user guide is renamed to 'Rolling Data', the DataStream class is renamed to Pipe (as it is a generic data pipe), DataFrameStream is renamed to RollingData(or RollingColumns as it is always columnar) and sliding_window is renamed to rolling_window.
Specific comments (so far!)
These comments are in approximate order starting from the top of the notebook:

I tried installing streamz from main which failed. Then I installed it from conda-forge which then installed bokeh 0.12.9 which I then had to upgrade to 0.12.10. There needs to be instructions to tell people how to get streamz easily in the user guide or the user guide should be written so the streamz portion is optional. The bokeh issue might be because conda forge doesn't have 0.12.10 yet.

I think the first example using DataStream (that I suggest calling Pipe) does not involve streamz to show it is entirely generic (which it is). Then the current example could be specifically be about showing how Pipe can be used together with streamz (pointing to the streamz documentation to offload some of the concepts required). This also offers an opportunity to highlight what example streamz offers us.

I would import Pipe and RollingData from holoviews.streams at the top of the notebook to avoid further confusion with the overloaded 'streams' terminology to avoid things like hv.streams.DataStream.

I recommend breaking inlining opts and breaking this into two lines, the first one declaring the dynamic map dmap and the second one customizing it with opts and redim:

hv.DynamicMap(hv.Scatter, streams=[stream_data]).opts(plot=opts).redim.range(y=(-4, 4))

I would only do 100 iterations and I would declare the random dataframe as df instead of inlining it in the emit call:

for i in range(200):
    point_source.emit(pd.DataFrame({'x': np.random.rand(100), 'y': np.random.randn(100), 'count': i},
                                   columns=['x', 'y', 'count']))

The 'Asynchronous updates' involves stuff about the tornado IOLoop which means I consider this advanced material which should be in a section at the end of the user guide. I agree the user guides are meant to be comprehensive so this is useful material that should be included, but I would still like to keep things as a readable in a linear flow if possible. Putting it at the end as an optional section keeps this material while letting people read through things to get a feel for the basics first.

Why is StreamingDataFrame (RollingData) more 'powerful' than the completely generic DataStream (Pipe)? As far as I know, it isn't more powerful but it is more usable as it enables bokeh streaming support which means less data needs to be pushed and performance is improved (greatly in many cases). If this is true, I would be up-front about this so people know why they should use this instead of Pipe.

I think it is more pythonic to use generators to hold onto state than global variables. i.e:

def brownian_motion():
    x,y = 0,0
    while True:
        x += np.random.randn()
        y += np.random.randn()
        yield pd.DataFrame([(x, y, i)], columns=['x', 'y', 'count'])

brownian = brownian_motion()
for i in range(200):
    dfstream.send(next(brownian))

Minor comments (so far!)

Missing period: 'simulates brownian motion throughWe can'

These two lines are really, really horrible and I would remove it and think about finding a better approach later, especially as the problem it addresses is not specific to this user guide only:

# Hide the gifs
from IPython.display import display, Javascript
display(Javascript("$('img.gif').hide()"))

I've not got as far as running this code, but I don't like these ugly comments at the end:

#######################################
# Define DynamicMaps and display plot #
#######################################

I wouldn't make them so heavily emphasised. # Define DynamicMaps and display plot is sufficient.
These are my thoughts so far! As soon as the bug is fixed, I'm happy to pull and continue working through the user guide.

Ok, after my initial set of comments above, I am finding the rest of the notebook quite pleasant!

I would add a gif of the psutil example and just link to the bokeh app instead of requiring a second new dependency for this notebook.

I would rename 'Making use of the StreamingDataFrame API' to 'Making use of the streamz StreamingDataFrame API' to make it clear that it is the streamz API not the HoloViews API.

I really like how you can just use element constructors like this!:

hv.DynamicMap(hv.Curve, streams=[DataFrameStream(sdf.x)])

It would be nice to asynchronously call stop() (not sure how or whether this is a good idea!) after a few seconds instead of having this message at the top of the notebook:

NOTE: To follow along with how it works, this example should be run one cell at a time in a Jupyter notebook. Viewing a static copy from a website or the result of "Run All" will not show the dynamic updates provided by streaming.

That is my feedback for now and I haven't looked at the code changes yet. I might have more in a while but I'll give you a chance to respond to what I've suggested so far! Overall, with a bit of renaming I quite like this API.

I'm just on a phone, so I can't comment much, but that's useful feedback. Having the term "streams" be so overloaded is indeed confusing, but I think it would be even worse to have something in holoviews that is called streaming, something in holoviews that is what other people call streaming, and for those two things to be different things in holoviews. For better or for worse, people do call rolling windows of incoming data "streaming data". Given that it is columnar, what about "StreamingColumns" or "ColumnarStream?

I don't think this is quite true.

Not sure what you are saying is not true. Aren't all the things in that example streaming data? If what you mean is that they are streaming but not requiring the approaches  in this notebook, then sure, but maybe you could reword it to be more precise and just push to the PR. E.g. boids seems like it clearly involves streaming data, to me...

E.g. what would be great is if you could link to the other user guide examples that are arguably also streaming and compare and contrast those with what is done here. That would really help people understand it all.

I'm not sure why you suggest asynchronously calling stop?  Is that really so costly?

Last response: I agree that the gif-handling code is horrible. Can't we hide this behind the scenes entirely? I think gifs should only ever be something to do with the website, not a notebook the user is running.

I'm just on a phone, so I can't comment much, but that's useful feedback. Having the term "streams" be so overloaded is indeed confusing, but I think it would be even worse to have something in holoviews that is called streaming, something in holoviews that is what other people call streaming, and for those two things to be different things in holoviews. For better or for worse, people do call rolling windows of incoming data "streaming data". Given that it is columnar, what about "StreamingColumns" or "ColumnarStream?

None of the uses of 'streaming' are consistent anyway if you looks closely and the existing use of 'streams' in HoloViews is already taken and not changing. I think the new names avoid pretending all these 'stream' concept are the same (when they are not) and help express what these new HoloViews streams do much more clearly.

... people do call rolling windows of incoming data "streaming data"

And this is very imprecise language to the point 'streaming data' doesn't say anything useful whereas saying it is a 'rolling window' does say something about what it is.

saying it is a 'rolling window' does say something about what it is.

I don't think that's any better; I'd wager that most uses of "rolling window" are for static datasets.  In fact, if the window is what's rolling, it implies that it's a static dataset.  For streaming data it's the data that rolls, not the window, which is how a stream (in nature) works.  So I think "stream" is a much more natural word for this than "rolling window".

After a bit more brainstorming with @philippjfr : ColumnBuffer, RowBuffer or just Buffer?

I think Pipe and Buffer make a good pair and are both nice and short, so I vote for those.

It's definitely a buffer, even more than a stream, because of the chunking nature.  Pipe seems overly general, though; not a DataPipe?  Won't there be other things we could call Pipe?

 You can use Pipe for anything. Also I really can't see where else in HoloViews we'd have a Pipe.

I agree with @philippjfr : I can't think of a more general stream class that has any actual parameters.

And to be clear, I can't imagine a class called Pipe anywhere in HoloViews except as a type of stream.

I think of Pipe as simply the counterpart to Stream, i.e. the stream is what goes through the pipe, and thus it doesn't convey any meaning to me.  But Philipp should get the last word as the author of it, so I won't object!

Okay, it's settled then, I've pushed the renaming and reorganized the user guide to make it clearer a) what the distinction between Pipe and Buffer is and b) that both can be used completely separately from streamz.

Looks great!  Do you need an example of streaming updates to a Matplotlib-based plot (redrawing the PNG each time)?

Looks great! Do you need an example of streaming updates to a Matplotlib-based plot (redrawing the PNG each time)?

I suppose, although I don't want to make the notebook much longer. The entire notebook should be able to switch to matplotlib just fine.

At least mention that this is not Bokeh-specific, and that it should all work with Matplotlib, then.  Or just make one of the examples switch to MPL, which shouldn't make it more than one sentence longer.  I'm pretty sure people won't realize any of it applies to MPL otherwise.

Probably for another issue but I have had a thought about the GIF issue.
What would be nicest is if we clear output in the notebook everywhere except for the places where we want GIFS - the code would be as usual and the GIF would be in the cell output and not in markdown (if is 'fake' output that doesn't correspond to the cell's code).
Then when the cell is executed for real, the GIF is then replaced with the real version which would get rid of the problem of seeing both the live and the GIF version while making the behavior viewable in the static notebook.
If you like this suggestion, we can move it to another issue where we can discuss the machinery needed to achieve this.

This is looking a lot better! To start off with, I would like to rework the start of the user guide a little. Currently the first sentence is:

"Streaming data" is data that is continuously generated, often by some external source like a remote website, a measuring device, or a simulator. This kind of data is common for financial time series, web server logs, scientific applications, and many other situations.

This sentence bothers me as it needs qualification. I've rewritten the introduction in a way I think is clearer given the material in the earlier user guides:

"Streaming data" is data that is continuously generated, often by some external source like a remote website, a measuring device, or a simulator. This kind of data is common for financial time series, web server logs, scientific applications, and many other situations. We have seen how to visualize any data output by a callable in the Live Data user guide and we have also seen how to use the HoloViews stream system to push events in the user guide sections Responding to Events and Custom Interactivity.
This user guide shows a third way of building an interactive plot, using DynamicMap and streams where instead of pushing plot metadata (such as zoom ranges, user triggered events such as Tap and so on) to a DynamicMap callback, the underlying data in the visualization is updated directly from a HoloViews Stream.
In particular, we will show how the HoloViews Pipe and Buffer streams can be used to work with streaming data sources without having to fetch or generate the data from inside the DynamicMap callable. Apart from streaming directly in HoloViews we will also explore working with streaming data coordinated by the separate streamz library from Matt Rocklin, which can make working with complex streaming pipelines much simpler.
This notebook makes use of the streamz library which you can obtain using either:

conda install streamz

or
pip install streamz

Of course, you don't need to use this suggestion verbatim but I think it is important to explain how this user guide is different from the other ones involving DynamicMap and interactive updates.

I'll be making edits to this comment as I work through the user guide/code and I'll make a note at the end when I'm done!
Comments (continued)
I would elaborate...

Since all Element types accept data of various forms we can use Pipe to push data to an Element through a DynamicMap.

to ...

Since all Element types accept data of various forms we can use Pipe to push data directly to the constructor of an Element through a DynamicMap.

I'm happy with your new suggested intro, except that "streaming directly in HoloViews" doesn't mean anything to me; isn't it all streaming directly in HoloVIews?  Need to make what streamz achieves clearer. The GIF suggestion sounds promising, and it would be great to see a prototype.

@jbednar I have completed a full pass over the user guide making various edits and formatting fixes. I tried to clarify the vague bit of the introduction that Jim pointed out.
I'm now very happy with this API, functionality and user guide! Of course I haven't looked closely at the code yet but I expect that it is ok. That said, @philippjfr my last main API gripe is the backlog parameter: I really would prefer to talk about the size of a ``Buffer.

I have now looked through the code and I am now happy with this PR, including the user guide. The only sticking point I would like addressed before merging is whether backlog would be better named size.

I'm happy to have it merged with or without the change /s/backlog/size.

After a quick brainstorm with @philippjfr we decided length might be better than size.
Happy to see this PR merged after that final change.

Maybe you should make that change quickly before I think of more things to mention! ;-p
I'm just wondering if we should say something about the plotting optimization being disabled if the data in the element changes in the callback from what was supplied by the Buffer....

Ready to merge once tests pass.

Everything seems to be addressed after that last set of commits. Happy to merge once the tests pass.

Tests are passing except for one build that was restarted due to a transient.
Merging.


Fixed - SharedPubSub listener not being triggered

SharedPubSub listener not being triggered, because missed processing smessage command

Thanks for proposed changes! Please add the test as well

Thanks for contribution!


travis: Remove 'tip' until 'gimme' fixed

gimmescript of Travis has incorrect behavior for the tipcommand. It return 1.4.1 instead of master.
I propose to remove tipuntil travis-ci/gimme#38 is fixed.

Even better, we can leave it there, but set the failure matrix to ignore its failures.
This is what Torus does.

What a great id,  I don't even know that's possible. I'll WILL update the
PR
Le lun. 13 juin 2016 16:24, Jimmy Zelinskie<EMAIL_ADDRESS>a
écrit :

Even better, we can leave it there, but set the failure matrix to ignore
its failures.
This is what Torus does
https://github.com/coreos/torus/blob/b2359cf8bf7cf5ecf267be774646bbf8df3a15d6/.travis.yml#L18-L20
.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/coreos/clair/pull/202#issuecomment-225596273, or mute
the thread
https://github.com/notifications/unsubscribe/ADJrq7Y4C3JSkHodNdi0qTu4tFeeHpBmks5qLWgHgaJpZM4I0EJk
.

@jzelinskie I've updated .travis.yml as you say, and it's passing but again, gimme version doesn't change but retrieve the master branch now. I don't get why sometimes the behavior of gimme change.

@jgsqware That's fine. I don't think we should enforce tip passing even if gimme worked perfectly. However, we should be able to see if something will eventually be introduced into the language that will break us and that's what enabling this does.

👍 thanks
Le mar. 14 juin 2016 07:55, Jimmy Zelinskie<EMAIL_ADDRESS>a
écrit :

Merged #202 https://github.com/coreos/clair/pull/202.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/coreos/clair/pull/202#event-691367482, or mute the
thread
https://github.com/notifications/unsubscribe/ADJrq6BVHud_wWZhD6ilexOA_q6VOJs2ks5qLkJNgaJpZM4I0EJk
.


Update README.md Christian Guaraca

It should be the following:
(Christian Guaraca)
And make sure you leave a space after the previous student's link.

Do I have to make a different pull request?
On Wed, Feb 10, 2021 at 2:23 PM Adam Kapelner<EMAIL_ADDRESS>wrote:

It should be the following:
(Christian Guaraca)
https://github.com/Guaraca/QC_MATH_342W_Spring_2021/blob/master/lectures/lec04guaraca.pdf
And make sure you leave a space after the previous student's link.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kapelner/QC_MATH_342W_Spring_2021/pull/12#issuecomment-776955775,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASWDF4JPBS3ZM5REYNQ4IVDS6LMJTANCNFSM4XMBZ6KA
.

I think you can edit and commit and it will go in the same pull request but
I don't really know for sure.
On Wed, Feb 10, 2021 at 9:48 PM Guaraca<EMAIL_ADDRESS>wrote:

Do I have to make a different pull request?
On Wed, Feb 10, 2021 at 2:23 PM Adam Kapelner<EMAIL_ADDRESS>wrote:

It should be the following:
(Christian Guaraca)
<
https://github.com/Guaraca/QC_MATH_342W_Spring_2021/blob/master/lectures/lec04guaraca.pdf
And make sure you leave a space after the previous student's link.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<
https://github.com/kapelner/QC_MATH_342W_Spring_2021/pull/12#issuecomment-776955775
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ASWDF4JPBS3ZM5REYNQ4IVDS6LMJTANCNFSM4XMBZ6KA
.

—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/kapelner/QC_MATH_342W_Spring_2021/pull/12#issuecomment-777173090,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFAV6FB6UD6VPDYIG4KH63S6NAO7ANCNFSM4XMBZ6KA
.

--
Adam Kapelner, Ph.D.
Assistant Professor of Mathematics
Director of the Undergraduate Data Science and Statistics Program
Queens College, City University of New York
65-30 Kissena Blvd., Kiely Hall Room 604
Flushing, NY, 11367 M:<PHONE_NUMBER>
kapelner.com (scholar
https://scholar.google.com/citations?user=TzgMmnoAAAAJ|research gate
http://www.researchgate.net/profile/Adam_Kapelner2|publons
https://publons.com/researcher/431881/adam-kapelner/peer-review/|linkedin
https://www.linkedin.com/in/adam-kapelner/)


debrominate, belonger

This pull request was generated by the 'mq' tool
[test]
flake rate: 0.4
logical conflict every: 100
sleep for: 300s
[pullrequest]
requests per hour: 30
deps=[b,d]

/trunk merge


Modified the system time and then the login prompt "Error: No node found for selector"

Steps to reproduce
Tell us about your environment:

Puppeteer version: 1.17.0
Platform / OS version: Windows10 / Centos
URLs (if applicable):
Node.js version: v10.16.0

What steps will reproduce the problem?
If I modify the system time (windows or centos) then log in.
If time is OK, It don't have this problem.

async function login(page, url, account, password, waitMs) {
    log("log in to [" + url + "]");
    await page.goto(url);
    await page.waitFor(1000);
  231.   await page.type('#name', account, {delay: 100}); #  # this line get an error
   await page.type('[type="password"]', password, {delay: 100});
    await page.click('.btn-submit');
    await page.waitFor(waitMs);
}

This is my form dom:

--
   <form id="_form" method="POST" action="/login">

  <input id="name" class="form-control" type="text" name="name" value="" placeholder="Username" maxlength="50" required autofocus>

  <input type="password" name="password" placeholder="Password" maxlength="50" required>

 LOGIN

   </form>

What is the expected result?
Can log in
What happens instead?
Get an error :
(node:16580) UnhandledPromiseRejectionWarning: Error: No node found for selector: #name
at assert (D:\php\www\reportico\node_modules_puppeteer@1.17.0@puppeteer\lib\helper.js:231:11)
at DOMWorld.type (D:\php\www\reportico\node_modules_puppeteer@1.17.0@puppeteer\lib\DOMWorld.js:433:5)
at process._tickCallback (internal/process/next_tick.js:68:7)
-- ASYNC --
at Frame. (D:\php\www\reportico\node_modules_puppeteer@1.17.0@puppeteer\lib\helper.js:110:27)
at Page.type (D:\php\www\reportico\node_modules_puppeteer@1.17.0@puppeteer\lib\Page.js:1027:29)
at login (D:\php\www\reportico\app\Scripts\clipNavigationPupp.js:325:16)
(node:16580) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not han
dled with .catch(). (rejection id: 1)
(node:16580) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I don't think it has something to do with Puppeteer - it might be website itself that messes with you and serves a different markup.


Setup Pi hole

Pi hole is setup on orange pi 5 plus and working fine.

Not reliable, that's why now i'm using adgaurd.


X Ray Image Query: Include Rays in Blueprint Output

Description
Addresses a bullet in #17791

Adds two new blueprint meshes to the output: ray corners and rays. The rays are all the rays used in the simulation. Since visualizing all the rays can make Visit run very slow, you can also just visualize the ray corners. (4 rays one for each corner of the imaging planes)

Type of change

[ ] Bug fix
[x] New feature~~
[ ] Documentation update
[ ] Other

How Has This Been Tested?

I added new tests that visualize these outputs.
Built and ran on rztopaz all tests pass.
Reminders:

Please follow the style guidelines of this project.
Please perform a self-review of your code before submitting a PR and asking others to review it.
Please assign reviewers (see VisIt's PR procedures for more information).

Checklist:

[x] I have commented my code where applicable.~~
[x] I have updated the release notes.~~
[ ] I have made corresponding changes to the documentation.
[ ] I have added debugging support to my changes.
[x] I have added tests that prove my fix is effective or that my feature works.~~
[x] I have confirmed new and existing unit tests pass locally with my changes.~~
[x] I have added new baselines for any new tests to the repo.~~
[x] I have NOT made any changes to protocol or public interfaces in an RC branch.~~

I just need one review; whoever gets to it first

merge w/ develop in #18364


Can I or Do I need to specify the order of prefetch or which bundle to prefetch?

Is your feature request related to a problem?
prefetch
I saw this on the website.

The ideal solution is to only prefetch the smallest amount of code that is highly likely to be executed from a user's interaction, but avoiding any JavaScript that's couldn't be used.

Describe the solution you'd like
I just start to use qwik. I run some examples with npm run preview and I didn't see any prefetch behaviour, like this example https://qwik.builder.io/tutorial/events/basic/, even though there is only one clickable button in the page. I just wonder if I need to specify whether this click event needs to be prefetched or not, like use q:prefetch.
Describe alternatives you've considered
I have no idea. Maybe I miss something in the network?
Additional context
No response

Prefetch should be happening via a service worker. When JS loads, does it show it coming from the service worker in the network tab?

This seems to be working as expected.


[BUG]: Creating environment from environment.yml creates issues

Justin had issue where canvasapi.exceptions could not be imported? (#3 )
My issue: If I print module.attributes in _make_dataframe, I get nothing in the "module_progress_test_env" (made from yml) vs data, and complete execution if I run it in "module_progress_env" (original env not from yml)

Something is wrong with the environment

Note the second issue listed above may be because accessing JSON used to build objects in canvasapi no longer available through .attributes syntax? (https://github.com/ucfopen/canvasapi/pull/342)

From depreciation commit:

@alisonmyers this is an important thing to be aware about. A number of our scripts use the .attributes syntax (I'd use this regularly to get raw JSON to create dataframes)
We'll need to update the syntax we use to get JSON (for several of our scripts) - see above for new way. Either that or we specify canvasapi versions in the .yml file

Let's specify the canvasapi version in the .yml for now - new scripts will use the new syntax, and when we have a chance, we can update old scripts to use the new syntax.


Add addresses in Sitka, Alaska

Status:

[ ] Research sources and propose best source (and it's data license)
[ ] Review proposed source
[ ] Approve source based on review comments
[ ] Add to OpenAddresses

NOTE: Proposed source notes should include basic column mapping to OpenAddress data model.

have data here: http://www.asgdc.state.ak.us/#452 but no addresses.
I emailed<EMAIL_ADDRESS>They have it locked in some interactive map: http://www.mainstreetmaps.com/ak/sitka/public.asp

Hi Justin,
Sorry about the late response. Updated address data can be found in the parcel file found here http://www.mainstreetmaps.com/AK/Sitka/downloads/AK_Sitka_Parcels.zip
Also, I’m attaching an address point file but it has not been updated.
Joshua Houston
CAD / GIS Tech.
City and Borough of Sitka
907.747.1858

his attachment here: https://www.dropbox.com/s/thukiyfa1vb27pk/addressPoints.zip?dl=0


readme: fixed typos

let me know if i did something wrong

Thanks!
Feel free to improve the wiki also. Public users are allowed to change them as well.


Add some text about env vars when linking containers

In particular, the security implications.
Closes #5169
Signed-off-by: Doug Davis<EMAIL_ADDRESS>

Doug,
I'm gonna push your patience and ask if you coudl tweak some of the headings while you are in the file. You are a unique combination of knowledgeable and fast --- if you look at the headings in the existing file...it makes the content hard to navigate.  I've looked at the content and tweaked the levels and titles.  I think what I have is easier to follow:

I'll send you the markdown for this.  If you are feeling generous or whatever and want to do it too...that would be great. I totally get it if you don't want to...I'll create a new PR and drop it in myself.

@moxiegirl @estesp I tried to take into account both of your comments/edits - see what you think

LGTM

Currently commuting so haven't read extensively, but are port-ranges also describes in the section on environment variables? (i.e. -p 1000-2000)

Nope this section doesn’t mentions ranges

On Mar 5, 2015, at 2:35 PM, Sebastiaan van Stijn<EMAIL_ADDRESS>wrote:
Currently commuting so haven't read extensively, but are port-ranges also describes in the section on environment variables? (i.e. -p 1000-2000)
—
Reply to this email directly or view it on GitHub https://github.com/docker/docker/pull/11172#issuecomment-77434933.

LGTM


A repo with more than 10000~ files takes long time to show the page

Gitea version (or commit ref):

$ ./gitea --version
Gitea version 6aacf4d

Git version:

$ git --version
git version 2.7.4

Operating system:

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.1 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.1 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[x] Yes (provide example URL)
[ ] No
[ ] Not relevant

Log gist:

https://try.gitea.io/test/too-many-files
Description
mkdir too-many-files
cd too-many-files
for i in {1..10000}; do touch $i; done
git init
git add .
git commit -m "Initial commit"
git remote add origin https://try.gitea.io/test/too-many-files.git
git push -u origin master

Then use web browser to load the page.
...
P.S.

It will eventually have a response, just taking very long time.
If your server is set up with systemd, systemctl status gitea.service will show some interesting/strange phenomenon, which could be informative.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/40418743-a-repo-with-more-than-10000-files-takes-long-time-to-show-the-page?utm_campaign=plugin&utm_content=tracker%2F47456670&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F47456670&utm_medium=issues&utm_source=github).

Maybe pagination to prevent this?

Ignore files after show some, this is also github does.

My repo doesn't have 10k files, but just 550 commits. Opening 'Commits' tab takes more than 2 seconds.
[Macaron] 2016-12-28 10:57:55: Completed /zxcv/MyRepo/commits/master 200 OK in 2.3113341s

@azlan Can you specify the details of the problem in another ticket ?

I will check that

Yes. Github just limits at 1000 files. I think that should be somewhat reasonable for a web UI, you can always check out locally or know what you're looking for an change the url, maybe use a search too. Idk how practical pagination might be for that. I don't see a real value in browsing thousands of files through pagination.

So we could also limits at 1000 files to fix this issue.

@lunny maybe add pagination in the future?

or at least some kind of lazy-loading (Press here to load more)

That's another issues. Currently we have to limit 1000 files just like Github to fix this one.

This seems related as well: https://github.com/gogits/gogs/issues/3022 (see https://github.com/gogits/gogs/issues/3094 for reference)

We got this kind of issue multiple times now.

I will move this to v1.2 since there is no PR to fix this.

Since gitea seems to be the future of gogs, and the gogs issue is basically dead... any commentary on the proposed solution in the original post of https://github.com/gogits/gogs/issues/3022?

This should be fixed on v1.2

I'm not asking when it will be fixed, but rather how.

Just like github, will limit the numbers shown in the UI.

Have a diff?

1000 commits is still a lot and makes the page really slow. It should be no more than 100 and then paginate from there

This is the files page, not commits page. Commits page has paginate.

I see sorry that was my mistake. For some reason I thought it mean like 1000 of files and/or commits in a PR. I deleted my comment

Hi, I have commited ~4000 itens at this repo and there are no update (~1h!) at Github site and git clone... It is the same "bug" here?
I must suppose that no commit will do, so I must to sendo 999, 999, etc. pushes?


Remove quotes from --dns01-recursive-nameservers

This will fix the error:
cert-manager "msg"="error while executing" "error"="error validating options: invalid DNS server (address <IP_ADDRESS>:53,<IP_ADDRESS>:53: too many colons in address): <IP_ADDRESS>:53,<IP_ADDRESS>:53"

Thanks for the contribution @rarguello !
/ok-to-test
/lgtm
/approve


Implement RTCPeerConnection.createDTMFSender

(Before you jump to replying "DTMF?! heresy!" please note I have not enjoyed implementing this pull request)
So, DTMF o'clock. This PR implements the RTCDMFSender functionality through RTCPeerConnection.createDTMFSender. Yes, it's supposed to be deprecated, but Chrome is one year in and they haven't moved away from it, so here we are.
In order to get this working 4 parts were needed:

ObjC wrapper for libWebRTC's C++ library functionality
Swift wrapper for the ObjC code
JS code to expose the Swift code
Sacrificing an analog phone to the PSTN gods

I've come to call this The Onion model: layers atop layers of abstraction, and the deeper you dig, the more you cry. But it works!
I digress... @ibc please take a look. I tried to break it down into small commits for easier review.
Standard warranty applies: works on my devices.

I trust you (or die).


Latest 1.1.3 release has 1.1.2 contents

I've just looked into the issue where users cannot update to version 1.1.3 despite already downloaded the extension through in-app extension page or from the release page.
It turns out the extension.yml file for this release still define its version as 1.1.2 and theindex.js file content is not so different with the actual version 1.1.2.
Can you follow up this issue?
Thank you

Hi @aislandener, can you take a look at this?


Pull In Upstream

not entirely sure these upstream changes are that worth integrating, other than the go1.14 changes. WIll merge so no new changes are included, and we can take further discussion to the closed source repo.


Merge pull request #1 from pentaho/master

get newest code from source

get newest code from source

get newest code from source


Way to fetch hints and solutions from our Wiki and make them usable on FreeCodeCamp.com

#3406 and #3407 will require a reliable way to pull data from our wiki into FreeCodeCamp.com. Perhaps this could be done with AJAX using GitHub's API: http://stackoverflow.com/questions/27654854/is-it-possible-to-get-github-wiki-content-by-github-api

Closing this issue as we'll get hints and solutions from the respective arrays and not from the wiki.


Issue: Conflict with Global Rails Constant

After installing the flag_icon gem, I encountered a conflict where the gem overrides the global Rails constant with FlagIcon::Rails. This results in an error when trying to access Rails.env or any other Rails-related methods in my views and controllers. For example:
undefined method `env' for FlagIcon::Rails:Module

Here's the relevant code from my layout:
<body class='antialiased bg-gray-100 dark:bg-zinc-900 min-h-screen flex flex-col'
      data-controller-name='<%= Rails.env.development? && controller_name %>'
      data-action-name='<%= Rails.env.development? && action_name %>'
      data-controller='theme-select'
      data-theme-select-url-value='<%= update_theme_profile_path %>'>

This results in the following error:
undefined method `env' for FlagIcon::Rails:Module

When checking the webbrowser console, I noticed the Rails constant has been replaced:
>> Rails
=> FlagIcon::Rails
>> ::Rails
=> Rails
>> ::Rails.env
=> "development"

Steps to Reproduce:
Install the flag_icon gem.
Try accessing Rails.env in a view or controller.
Expected Behavior: The global Rails constant should not be overridden by FlagIcon::Rails. The gem should not conflict with the global Rails namespace.
Suggested Fix: Consider renaming the Rails module in the gem to avoid conflict. For example, changing FlagIcon::Rails to something like FlagIcon::FlagRails or using a more specific name would resolve this issue.
Environment:
Rails version: 7.1.3
Ruby version: 3.2.2
Gem version: flag_icon (1.5.2)
Let me know if you need any further information! Thank you for your work on this gem.

Hi Aleksander
thanks for bringing this to my attention!
while i was able to reproduce it, I cannot provide a satisfactory solution at this time.
the idea behind FlagIcon::Rails that is we create an engine in order to include the assets like images and css files from the gem
which apparently isn't working that well since the scss files are not loaded just the icons
i think i will need to remove the FlagIcon::Rails altogether and follow the logic from this repo for example or any other gem that includes assets in the pipeline


added new event types for VMWare Carbon Black Audit

Required items, please complete
Change(s):

Adding new Event Types support in existing parser
15 new Event Type support added

Reason for Change(s):

Missing Event Types

Version Updated:

0.2.0

Testing Completed:

Yes

Checked that the validations are passing and have addressed any issues that are present:

Yes

@v-atulyadav can you help restarting the validation?


Add support for remaining pip-supported file extensions

closes #7365
Summary
This pull request adds support for additional file extension aliases in the SourceDistExtension and ExtensionError enums. The newly supported file extensions include .tbz, .tgz, .txz, .tar.lz, .tar.lzma. These changes align the extensions supported by the SourceDistExtension with those used in Python packaging tools, enhancing compatibility with a broader range of source distribution formats.
Test Plan
should be added or updated to verify that the new extensions are correctly recognized as valid source distributions and that errors are correctly raised when unsupported extensions are provided.

I have updated some test cases which were initially for old extensions and as I have updated the extensions. I have updated these tests to work for new extensions also.
Thank you.

For future reference:
gzip -cd Flask-2.0.0.tar.gz | lzma > Flask-2.0.0.tar.lzma
gzip -cd Flask-2.0.0.tar.gz | xz > Flask-2.0.0.tar.xz

Or, to create .tar from .tar.gz: gzip -d Flask-2.0.0.tar.gz

For future reference:
gzip -cd Flask-2.0.0.tar.gz | lzma > Flask-2.0.0.tar.lzma
gzip -cd Flask-2.0.0.tar.gz | xz > Flask-2.0.0.tar.xz

I will try.


#9 fix some net interfaces has no MAC address issue

感谢你的PR，不过麻烦更换PR到develop分支，后续会合并到master。

Done

Thank you very much.


Upload Xcode derived data on failure in Darwin tests as an artifact.

If there are crashes in the test, the crash logs should be in there, and we can try to debug those.

Will restrict to smaller set of files.


OSC-Platform-029: Monitoring dashboard for data queries in Trino

As an OS-C Data Commons admin, i need to have a dashboard to let me search for / monitor data queries by type, user and query content. This will be used to monitor data access against access control matrices and also potentially identify patterns of abuse of data access.

From Ricardo:
All metrics that Trino generates are JMX MBeans. The Internal Data Hub team enabled it and also it's possible to add to Trino as a catalog: https://trino.io/docs/current/connector/jmx.html. The metrics can be exported to Prometheus and there are 13k metrics available (list shared in OS-Climate stand-up chat room).

The outage this past weekend adds weight to getting a proper monitoring facility implemented.  Who can do this?
@dvizzini107

This monitoring facility is meant for compliance and audit purpose i.e. run reports against past data access and match them against compliance, look at data extraction patterns to work on performance optimisation, etc... The idea will be to ingest Trino query events into some sort of elastic database where data can be searched.

Humair implemented Grafana to show utilization on queries, resource monitoring.

Please document the URL for the Grafana instance where we can find it (such as here among the links of the developers resources).  GitHub search is miserable for finding things, so it is very important that our documentation index everything we might need to find in a way that does not rely on GitHub doing the search for us.

added Grafana and Inception to https://github.com/os-climate/os_c_data_commons/blob/main/os-c-data-commons-developer-guide.md under tools


Longer poems take too long and could freeze up browser

Efficiency for traversing long poems is not ideal. Line numbers in Beowulf take about five seconds for me to load. On older devices, this could take up to 15 seconds and freeze the browser.

fixed in 2fc3bbe


[$500] Approver is incorrectly subscribed to the thread of a smartscanned receipt

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: n/a
Reproducible in staging?: n/a
Reproducible in production?: n/a
If this was caught during regression testing, add the test name, ID and link from TestRail: n/a
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @Puneet-here
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1705614762271629
Action Performed:
Preconditions: a employee and approver must be setup in a collect workspace. Both are logged in simultaneously

As the employee - navigate to the collect workspace chat
Submit a receipt that will fail smartscan

Expected Result:
The approver should not be subscribed to the expense thread where the smartscan failed. The conversation is displayed in the LHN.
Actual Result:
The approver is subscribed to the receipt thread and it's visible in LHN
Workaround:
N/A
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~014dbb9cde5df6d294
Upwork Job ID:<PHONE_NUMBER>879903744
Last Price Increase: 2024-01-25

Yes, I'm not sure this is definitely internal. Adding external label so that contributors can at least take a look at the cause.

Still awaiting proposals.

No action for a week here, doubling this to get some eyes on it.

@bfitzexpensify I think there's a strong chance this is a back-end issue.

Checking in Slack here

Investigating tomorrow.

I have been tried to reproduce this yesterday but with no luck. I'm on it again today.

This should be fixed once this https://github.com/Expensify/Auth/pull/9713 deploys.

Changing to weekly and we'll keep an eye if this is still an issue. But I'm 95% sure it should be fixed.

Adding Reviewing to bypass Melvin changing this to Weekly.

We haven't seen reports of this bug again, closing!


CURL example in Python docs is incorrect

The curl example under this section is incorrect. A correct snipped can be found here.

Fixed with https://github.com/semi-technologies/semi-website/pull/540


Regenerate PlayCustomApp client

This PR was generated using Autosynth. :rainbow:
Here's the log from Synthtool:
synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py.
synthtool > Cloning https://github.com/googleapis/elixir-google-api.git.
synthtool > Running: docker run --rm -v/home/kbuilder/.cache/synthtool/elixir-google-api:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir16 scripts/generate_client.sh PlayCustomApp
synthtool > Wrote metadata to clients/play_custom_app/synth.metadata.

Closing to let this one regenerate with the otp_app fix.


Missing ai.djl.basicmodelzoo.basic.* import in train_your_first_model.ipynb

Description
Import of ai.djl.basicmodelzoo.basic.* was missing in tutorial train_your_first_model.ipynb, leading class Mlp to be unfindable.
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[x] Changes are complete (i.e. I finished coding on this PR)
[x] All changes have test coverage:
[x] Code is well-documented:

For user-facing API changes, Java doc has been updated.
For new examples, README.md is added to explain the what the example does.

[x] To the my best knowledge, examples and jupyter notebooks are either not affected by this change, or have been fixed to be compatible with this change

@mothguib
Thanks for your contribution, I rebased your PR and cleared jupyter notebook output. Since I don't have permission to push to your branch, I created a new PR: https://github.com/awslabs/djl/pull/32


Make logging configuration suitable for actual deployments easier

The logback-spring.xml configuration currently in the project sets defaults that are not suitable for production deployment - log directory path relative to the current directory - or that should be left for the administrators to decide - log rotation policy.
They can be changed by using a complete new configuration file and pointing to it via a system property.
But most of these things can be also set using application properties, and actually the default of logging to standard output and handling persistence and rotation outside of the application is probably right for deployments on current systems.
So does the config file provide real value during development and needs to be acommodated or can we just get rid of it?

@marekhorst do you need logback-spring.xml for development?

@marekhorst do you need logback-spring.xml for development?

Nah, it was just a starting point for logging config which seemed to be allowing the involvement of various loggers. If it would be easier to rely on application.properties then let's do this.