Can't add local files

Issue description
Adding a matched file gives TheMovieDB Error: not all files were added unfortunately. This is due to TheMovieDB API LIMIT constraints. Just try again in a couple of seconds :)  despite waiting for plenty of time.
Java log shows:
May 23 13:35:55 fserver java[31134]: DEBUG grails.app.services.streama.TheMovieDbService - conn.responseCode: 200
May 23 13:35:57 fserver java[31134]: ERROR grails.app.services.streama.TheMovieDbService - Error occured while trying to retrieve data from TheMovieDB. Please check your API-Key.

Steps to Reproduce

Install streama
Bulk create from files
Run matcher on single file
Wait 10s (let tmdb rate limit expire)
Click Add this File

Expected Behaviour
File should be added
Actual Behaviour
Error as above
Environment Information
Running via systemd

Operating System: Ubuntu 18.04.1
Streama version: v1.7.0-RC10

the files that failed should have a little info-icon with some more info to them. Can you please check that and paste it here?

There's no additional information from the ? icon

There is no info if you hover over the questionmark? (maybe need to hover a lil longer?)

Nope! The DOM element has no title attribute, and there are no event handlers attached.
I do get this popup

hm that is strange.
That blue message is outdated, it blames everything on the API limit but I don't think thats the case for you. if it were, it would show up as a title tag for the questionmark.
hm... and you configured an API Key?

I did configure the API key, and the log shows HTTP 200 responses. I also tested the API key just by accessing a url on my browser and that works fine...

Here's the JSON response from the file/matchMetaDataFromFile.json request:
[{"file":"/var/www/files/Video/TV Shows/Test/Luther.S05E01.Episode 1.Bluray-1080p.mkv","type":"episode","tvShowOverview":"A dark psychological crime drama starring Idris Elba as Luther, a man struggling with his own terrible demons, who might be as dangerous as the depraved murderers he hunts.","tvShowId":1426,"showName":"Luther","poster_path":"/hDxOMX8zzH1FiqKWVBzNaYGBkle.jpg","backdrop_path":"/A2qdFRq9oJDC5E7fbgSS4POUMDF.jpg","apiId":1626346,"episodeName":"Episode 1","first_air_date":"2019-01-01","episodeOverview":"A new spate of nightmarish murders brings DCI John Luther to once again face the depths of human depravity on the streets of London. As the body count rises, and gangster George Cornelius applies his own pressure, can Luther catch the killer and save his own neck?","still_path":"/yV6c9zk4g5yADpIa55mozcdEc9O.jpg","status":1,"message":"match found","season":5,"episodeNumber":1}]

And the file/bulkAddMediaFromFile.json response:
[{"first_air_date":"2019-01-01","showName":"Luther","episodeOverview":"A new spate of nightmarish murders brings DCI John Luther to once again face the depths of human depravity on the streets of London. As the body count rises, and gangster George Cornelius applies his own pressure, can Luther catch the killer and save his own neck?","episodeName":"Episode 1","still_path":"/yV6c9zk4g5yADpIa55mozcdEc9O.jpg","type":"episode","message":"match found","tvShowId":1426,"episodeNumber":1,"poster_path":"/hDxOMX8zzH1FiqKWVBzNaYGBkle.jpg","backdrop_path":"/A2qdFRq9oJDC5E7fbgSS4POUMDF.jpg","file":"/var/www/files/Video/TV Shows/Test/Luther.S05E01.Episode 1.Bluray-1080p.mkv","tvShowOverview":"A dark psychological crime drama starring Idris Elba as Luther, a man struggling with his own terrible demons, who might be as dangerous as the depraved murderers he hunts.","season":5,"apiId":1626346,"status":4}]

In case that helps... seemed odd that theyre identical except the status

might have something to do with my recent changes for subtitle-matching... I'll try to reproduce by creating a test-file Luther.S05E01.Episode 1.Bluray-1080p.mkv

I have the exact same problem, could it have anything to do with this?
I am trying to add a tv show, but I noticed this log line:
WARN grails.app.services.streama.TheMovieDbService - could not load fullMeta for Movie this time, https://api.themoviedb.org/3/movie/null?api_key=197bf1a762d8e13a072c32e85213737d&language=en                                                                                ERROR grails.app.services.streama.TheMovieDbService - Error occured while trying to retrieve data from TheMovieDB. Please check your API-Key.

Looks like you're possibly hitting the wrong endpoint / pulling movieId off of the previous response when you should be using tvId or showId or whatever it is for TV shows.

@dularion any luck? I don't think it has to do with the file name. It fails the same way for all my files

I do have issue with this too.
Confirming this happends only with tv shows...
Hope we can have a hotfix as soon as possible...

Weird, more and more people are chiming in on this, but i cant reproduce it for the life of me. I will try creating some files on the demo-server and send you a link

Ok, check it out here: https://demo.streamaserver.org/#!/admin/shows

Seems to work fine there ...

No it doesn't ;)
https://imgur.com/a/xhuld8f
My exact clicks are:

Bulk Create From Files
tv-shows
shameless-s08
checkbox next to s08e01
run matcher
add file under match: shameless s08e01

Running firefox 67. I did try MS Edge with my own setup and it didn't work either.

@dularion did you try to press add all matched or even on 1 add this file?

aaah see, that I didnt do! Finally I can reproduce it. Will probably have a fix for you later tonight :)

Alright guys, hope it works: https://github.com/streamaserver/streama/releases/tag/v1.7.0-RC11

Fixed! Thank you


No indication that a project is working on being published

Problem
There is no indication to users that an action is happening, and we may see a lot of support questions about why they've published but don't know what to do next.
Steps to repro:

Create a project
Save
Publish
Observe message that says publishing
Once message disappears, but is still building, there is no indication that it's working on being published. The dashboard status says Updated and the publish screen shows no messaging.
Once it's published, the dashboard status changes, but the publish screen does nothing until refresh.

Potential solutions

Refresh the publish tab automatically upon successful publish?
Some type of messaging on the screen after clicking publish that tells user what's happening?

Since I believe this is how it currently works I don't think this should be a blocker to redesign launch, but it is an unintuitive user experience so we should talk about ways to make this process more smooth.

I just tried publishing a project and got slightly different steps than the one above. Logging here for reference.
Steps to repro:
Create a project

Save
Publish
Observe message that says publishing
Once message disappears, but is still building, the publishing button says publishing with animation. There is a refresh or some type of action, the publish button reverts back to publish now, and there is no indication on the publish page that the project is doing anything. The dashboard status says Updated, the create tab says updating and the publish screen shows no messaging.
Once it's published, the dashboard status changes, but the publish screen does nothing until refresh.

Video of publish flow: https://www.dropbox.com/s/g5gnp0r5z3xx4mh/publish flow.mov?dl=0


Provide examples

What's the current state of this? It seems like out of all the hdf5 bindings out there, yours seems to be the most actively developed.
Are you planning to provide some example on how to interact with hdf5-rs, or do you think it is not ready for consumption yet?

I'm planning to work on the datasets reading/writing in February, at which point it will become fully useable. I've put quite a lot of effort to make the bindings thread-safe (which other wrapping libraries don't really care about), this includes locking operations with reentrant mutexes and providing some helper macros.
I guess for now you can look at the tests for each module (file/group) to see how it works.
There's one major stumbling point (or a problem of choice, rather) which prevented me from implementing datasets earlier -- how exactly to deal with reading/writing structured datasets, I don't have a good idea of how the API should look like (given there's no proper runtime struct introspection in Rust).

I was also thinking of using rust-ndarray as the in-memory backend of choice, now that it's actively developed: https://github.com/bluss/rust-ndarray

@aldanor Maybe I don't understand correctly, what you are getting at. But why do you need runtime introspection? Wouldn't rust-serialize or serde help you, to do the job at compile time?

@mokasin Because that's how HDF5 works:

datasets are homegeneous collections of data
you have to create datasets explicitly before pushing any data to them, which requires specifying the memory layout
you're unlikely to serialize data item-by-item, the whole point of using HDF5 is to able to read/write large amounts of similarly-typed objects at once

As a matter of fact, I've wrote a little utility package which should help with this issue: https://github.com/aldanor/typeinfo

I was particularly interested in reading datasets from HDF5 files, for which so far there is no high-level API for Rust. Is there any progress on this particular feature?

@Enet4 As a matter of fact, I'm sort of working on that right now because I need it too :)
There's a few stumbling blocks to which I have no particular solutions yet, for instance how to represent the variable-length types (strings in particular) -- and whether to support them at all.

It's more of a matter of figuring things out than anything. If anyone in this thread has time/desire to discuss possible ways of handling compound / vlen datatypes in Rust -- this would speed things up :wink:

I'm a beginner on Rust, unfortunately. Still, I am interested in this and would like to keep in touch with any discussion that will hopefully take place, perhaps even managing to contribute with my thoughts.

The main question is what to do with types that are not Copy or with variable-length datatypes in HDF5 if you want to get some objects with expected Rust semantics in the end. E.g, a variable-length string as a field in a compound datatype.

Wrapping structs like this in Rust is possible, but if there's a Drop impl, Rust compiler will add an extra field so the struct cannot have the same layout is in C (#[repr(C)]). This will make it incompatible with what HDF5 expects.
As of today, the only way to avoid that is to add #![feature(unsafe_no_drop_flag)] crate attribute which will enable using #[unsafe_no_drop_flag]. This will imply that hdf5-rs would no longer be compatible with stable Rust -- for some time, until the Rust compiler team implements "dynamic drop" semantics which they are planning to do in the foreseeable future (issue 5016 on rust-lang/rust). I wonder if that'd be an acceptable solution.

Proof of concept: https://gist.github.com/aldanor/8ca3bb807c79836455a87c699d844efe

IMHO: If this is the only feasible solution, I'd say go for it. A crate only working on nightly is better than a non working crate. And either this stabilise itself or someone finds a different solution later.

Wrapping structs like this in Rust is possible, but if there's a Drop impl, Rust compiler will add an extra field so the struct cannot have the same layout is in C (#[repr(C)]). This will make it incompatible with what HDF5 expects.

Couldn't there be an implicit conversion between a type with normal Rust semantics and an internal, "unsafe" implementation whenever that is needed? Or am I just missing the point?

@Enet4 Would you care to elaborate on what exactly do you mean by "implicit conversion"? Could you provide an example?
Imagine a case where you read the dataset where the datatype is compound, one field is an int, another a variable-length string. H5Dread will write into a buffer that looks like this:
struct A {
    int x;     // normal field
    struct {   // vlen field
        void *p;
        size_t len;
    } y;
};

Now assume you have 1 billion of these (so calling 1 billion constructors is out of question) taking almost all of your RAM (so copying all of the data is out of question), you have a C pointer to this data which you received from HDF5, what would you do next to construct a zero-copy Rust view on this which behaves like a bunch of normal Rust objects and ensures the proper cleanup?
For each of the variable-length elements, HDF5 will malloc() the memory and leave it to the user to free. This implies that the wrapper type for y field in Rust will need to be droppable and should call free() when dropped. However, Drop is not compatible with #[repr(C)] as it essentially adds a third 8-byte element to the end of y and stores the drop flag there indicating destructor status. Therefore, the struct doesn't have the same layout as C anymore. You can hack around this by adjusting the field offsets etc, but what's worse, you cannot safely memset this struct or pass it to the C library as is since the hidden drop byte may be affected.
The only way to have both Drop and #[repr(C)] avoiding the drop flags is the #[unsafe_no_drop_flag] as of today which requires nightly channel.
The user-code would look like this, I think:
h5def! {                  // macro that enables extracting offset/type information at runtime
    pub struct A {
        pub x: u32,
        pub y: VLString,  // variable-length zero-copy string view on a malloc'd buffer
    }
}

Does this also mean, that a user of this crate would have to drop the data himself?

Does this also mean, that a user of this crate would have to drop the data himself?

No, quite the opposite -- the whole point here is to be able to cast C-allocated buffers (potentially nested in weird ways) into Rust-managed structs that would automatically free C memory in accordance with normal drop semantics.
Hypothetical example:
{
    let data = dataset.read::<A>();
} // any nested heap-allocated elements owned `data` will be dropped, like var-len strings

I pondered a bit more on this and prototyped the possible implementation for fixed size strings / var len strings / var len arrays, and I think the compromise is to only support fixed-length strings and fixed-size arrays on stable, and also support variable-length strings/arrays on nightly. Once the drop flag business is solved upstream, var-len types would work on stable as well.

Good news, I've been able to make the type system work (the types branch) and to read some structured data into an array backed by rust-ndarray, this includes strings and compound types etc. Will take a little bit of time to shape it into an API but things seem to generally work.
Here's an example:
import h5py
f = h5py.File('foo.h5')
arr = np.core.rec.fromarrays([[1, 2, 3, 4], ['foo', 'bar', 'x', ''],
    [True, True, False, True]], names='a,b,c')
f['test'] = arr
f.close()

this now works:
#[macro_use]
extern crate hdf5_rs;

use hdf5_rs::new_datatype;
use hdf5_rs::Container;
use hdf5_rs::FixedString;

fn main() {
    let f = hdf5_rs::File::open("foo.h5", "r").unwrap();
    let ds = f.dataset("/test").unwrap();

    h5def!(
        #[derive(Debug)]
        struct T {
            a: i64,
            b: FixedString<[u8; 3]>,
            c: bool,
        }
    );

    let arr = ds.read::<T>().unwrap();
    println!("{:?}", arr);
}

which prints (with whitespace formatted)
[T { a: 1, b: "foo", c: true },
 T { a: 2, b: "bar", c: true },
 T { a: 3, b: "x", c: false },
 T { a: 4, b: "", c: true }] shape=[4], strides=[1]

^ This looks good.  Any plans to push this?

@aldanor  May I ask what is the read/write functionality status now? I am working on a project heavily involved with hdf5, and really wish to have it coded all in Rust. Thanks!

A tiny re-bump here. How would one read and write simple datasets of a scalar type at this time? Would I need to be aware of chunks? In my use case, I'm only using chunks in order to make the dataset resizable, and I would prefer using an abstraction over them. As in, treating the dataset as a contiguous, elastic n-dimensional array of data.

@Enet4 @andysureway-10x sorry for the delay folks, I fell off the face of the earth for a bit with the pycon and other stuff; haven't had time to finish the types/read/write branch as of recent but hope to do it (even if partially) as this new years's resolution, there I've said it :)
@Enet4 No, generally you won't need to be aware of the chunks for reading, HDF5 takes care of that (unless you're trying to do something very smart). Resizable datasets are generally not a great idea in HDF5 from my experience; plus, they've only just added the functionality to reclaim space in 1.10, in previous versions you end up having to repack.

Resizable datasets are generally not a great idea in HDF5 from my experience; plus, they've only just added the functionality to reclaim space in 1.10, in previous versions you end up having to repack.

I'm actually just stacking data to a 4-dimensional dataset on a specific axis. I end up relying on a chunked dataset because I do not know in advance how many volumes I'll be stacking nor how large they are, and I may wish to increase it at a later time without creating copies (think GB scale). So I don't need to reclaim or modify existing data.
Nevertheless, I'm looking forward to this. Keep up the good work. :)

By the way, in regard to strings, it looks like there will have to be four different string types unfortunately, something like FixedString(n), VarLenString, FixedAscii(n), VarLenAscii, for unicode/ascii and fixed/varlen (h5py support all except fixed-size utf-8, I believe). HDF5 will not convert between ascii and unicode implicitly; whether it will convert fixed to varlen I don't know yet, will have to check.

I suppose that would be fine, as long as those elements and attributes can be trivially converted (even if explicitly) to string slices.

@Enet4 Yes most traits you'd expect from a string type are already there: https://github.com/aldanor/hdf5-rs/blob/feature/types/src/types/fixed_string.rs#L106

@aldanor - Sir, is there any chance of an updated example? The keywords and some datatypes from what I can see, don't seem to be in the documentation. I attempted to use your above example, however "FixedString" or the "h5def!" macro doesn't seem to work... Appreciated! :)


Fix #915  serialize custom properties in __sleep

I did not find a good way to place the test fixture, so i included it in the testcases file.

Now its green.

Awesome, thanks :)


[ResourceExplorer] Make "add" button sticky

Description:
This task is to make it so that the "add" button on the resource explorer shows, even when there are many results on the page. The method to achieve this will be to make the button "add button" such that it always is visible at the very bottom of the resource explorer.
### Acceptance criteria
- [ ] Is accesibile
- [ ] contains a snapshot test
- [ ] adheres to UX detailed in this ticket


Follow link resolution for sass does not respect existing files

VSCode Version: 1.36.1
OS Version: Windows 10

Steps to Reproduce:

create three files main.scss and _partial.scss file.scss
add @import _partial.scss in main.scss
add @import file.scss in main.scss
click hover any of the @import lines and try to follow link.

Expected result is to go correct locations, how ever:

_partial.scss will look for __partial.scss
file.scss will look for _file.scss

Follow link sass file resolution should respect sass import resolution:
@import "file"

look for file.scss, if not found
look for file.sass, if not found
look for file.css, if not found
look for _file.scss, if not found
look for _file.sass, if not found
look for file/_index.scss (as per dart-sass), if not found
look for file/_index.sass (as per dart-sass), if not found
show current error message

note: since it's not clear what type was needed to be created, perhaps a multi option interface should be shown with _file.scss being the default option, probably

@import "_file"

look for _file.scss, if not found
look for _file.sass, if not found
look for _file.css, if not found
look for _file/_index.scss (as per dart-sass), if not found
look for _file/_index.sass (as per dart-sass), if not found
show error message with multi option interface

@import "file.scss"

look for file.scss, if not found
look for _file.scss, if not found
probably not look for file.scss/_index.scss,
probably not look for file.scss/_index.sass,
show current error message

Note: @import "file.sass" -- works the same like above, with sass extension.
@import "file.css"

look for file.css, if not found
probably not look for file.css/_index.scss,
probably not look for file.css/_index.sass,
show current error message

@import "_file.scss"

look for _file.scss, if not found
probably not look for _file.scss/_index.scss,
probably not look for _file.scss/_index.sass,
show current error message

Note: @import "_file.sass" -- works the same like above, with sass extension.
Does this issue occur when all extensions are disabled?: Yes

Duplicate of #58204. You can test the fix in tomorrow's Insider release.


Remove the redundant _check suffix

In the yaml file, we have a checks section, and all the type values are xxx_check
In the code, we call register_check with xxx_check for each check.
I would say the _check suffix is redundant in these cases, and we should get rid of it.

I think I agree with this. It is starting to be very verbose and redundant 💯

Sounds good to me 😎


Browser compositor

This PR adds:

A new section about browser compositing, with how to use it to separate browser chrome from web contents
Accompanying implementation that uses three surfaces, and stops baking scroll offsets and browser chrome offsets into the display lists

Ready for review.


DDLambda causes thread leak

I am integrating aws lambda java with the datadog extension and dd-lambda-java
Following the instructions in the README file on adding
var dd = new DDLambda(context);
try {
    //make money
} catch (Exception e) {
   //no money
  dd.error(context);
} finally {
  dd.finish();
}

Found these exceptions
unable to create native thread: possibly out of memory or process/resource limits reached: java.lang.OutOfMemoryError
java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached
	at java.base/java.lang.Thread.start0(Native Method)
	at java.base/java.lang.Thread.start(Unknown Source)
	at com.timgroup.statsd.StatsDSender.startWorkers(StatsDSender.java:71)
	at com.timgroup.statsd.NonBlockingStatsDClient.<init>(NonBlockingStatsDClient.java:348)
	at com.timgroup.statsd.NonBlockingStatsDClient.<init>(NonBlockingStatsDClient.java:370)
	at com.timgroup.statsd.NonBlockingStatsDClientBuilder.build(NonBlockingStatsDClientBuilder.java:175)
	at com.datadoghq.datadog_lambda_java.ExtensionMetricWriter.<init>(MetricWriter.java:50)
	at com.datadoghq.datadog_lambda_java.DDLambda.<init>(DDLambda.java:55)
	at com.datadoghq.datadog_lambda_java.DDLambda.<init>(DDLambda.java:66)

Appears https://github.com/DataDog/datadog-lambda-java/blob/main/src/main/java/com/datadoghq/datadog_lambda_java/DDLambda.java#L55 is always creating worker threads from statsD client.
Confirmed with threaddump as well
"StatsD-Processor-1" daemon prio=5 Id=15 TIMED_WAITING

"StatsD-Sender-1" daemon prio=5 Id=16 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@655523dd

"StatsD-Processor-1" daemon prio=5 Id=18 TIMED_WAITING

"StatsD-Sender-1" daemon prio=5 Id=19 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6f7e336b

"StatsD-Processor-1" daemon prio=5 Id=21 TIMED_WAITING

"StatsD-Sender-1" daemon prio=5 Id=22 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3a2b2322

"StatsD-Processor-1" daemon prio=5 Id=23 TIMED_WAITING

"StatsD-Sender-1" daemon prio=5 Id=24 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5e1218b4

"StatsD-Processor-1" daemon prio=5 Id=25 TIMED_WAITING

"StatsD-Sender-1" daemon prio=5 Id=26 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@12958360

"StatsD-Processor-1" daemon prio=5 Id=27 TIMED_WAITING

"StatsD-Sender-1" daemon prio=5 Id=28 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@c6e0f32

"StatsD-Processor-1" daemon prio=5 Id=29 TIMED_WAITING

Initializing MetricWriter could naively be in a static initializer but that's just me.

I'm also seeing this error after instrumenting APM.

Temporary solution could be calling NonBlockingStatsDClient.close() in DDLambda.finish(). This will kill the infinite sendLoop() running in the thread created by StatsDSender.startWorkers()

Hey everyone, I'd like to apologize for the delay in us responding to this ticket. We will look through this in the next few days.

@DarcyRaynerDD

This patchset addresses the leak partially,  but I'm not an expert in datadog java, so no sure what else consequences it might introduce. Also, I see that from time to time the threads are still left(2 per invocation), but since it's very rare, it's not causing problems.


Add template for children of Invitations

When one clicks an Invitation with children, it should open an index page of all the children. Perhaps this could be done with some sort of conditional in the template, such that if the Invitation has children, show an index of the children, and else, show the article.

See 3e9f968d5fb69d95c726b88eec89c6ab642ed6f1.
Now Invitations can have child pages. If an Invitation has a child page, then clicking that Invitation will take a user to an index page of all of the children. The only fields that will be used/displayed to users in this Invitation-with-children will be the Title, Lead Image, and optionally the author.
The title of children's index page will be the title of the Invitation-with-children. Aside from the Title, Lead Image, and optionally the Author(s), no other fields in that Invitation-with-children will be displayed anywhere, even if filled in.
Child invitations (i.e. children of the Invitation-with-children) will not display anywhere but the index page of that invitation.
For example, consider the Invitation "Children Test":

We can see it has children from the > on the right of its panel.
Editing "Children Test" shows just a few fields filled out:

Viewing its children shows three child pages:

Users will see, when they visit the main Invitations index page:

When a user clicks "CHILDREN TEST" they will be taken to the index of CHILDREN TEST's children:

Clicking an individual article will work as expected and display the child Invitation.


formatting with stylua

used stylua for consistent formatting
all changes are non-functional

eventually have it as part of the CI process?

This looks great.  I don't like the defaults, but we can change that easily.


Fixes #3 - Allows building on macOS

This:

Detects if it's running on macOS and will then

use clang
check for the existence of dtc, convert and llvm-objcopy and suggest that you brew install them

fixes the issue #3 with cpio on macOS not having the -D flag
pip3 installs certifi which isn't in the stdlib (at least wasn't on my machine)

Feel free to take anything from this PR if you decide not to merge or close if you have a better solution.

Got bored and added an auto-releaser via Github Actions.  This will auto run ./build.sh in a docker image in Github's CI/CD actions and auto create a release w/ checksum file and upload that to the Releases.  You could then have your bootstrap.sh file point to: https://github.com/AsahiLinux/asahi-installer/releases/latest/download/installer.tar.gz

I don't think we necessarily need to do all the checks for tools; these things should instead be documented in the README. The GH workflow is a good idea (and what I wanted to do myself later), but see comments on no needing any of the docker/arm64 stuff.

K, I'll pull out all the extra junk and just leave the GH actions stuff 👍

@marcan okay, I've remove all the extra unneeded bloat.  Let me know what you think!


How to tell if connect to Google?

Specify the API at the beginning of the title.
just exactly the same as the asynchronous speech recognition sample code as
java-speech/google-cloud-speech/src/main/java/com/google/cloud/speech/v1/SpeechClient.java
OS type and version: ubuntu 18.04 inside docker container (docker version  18.06.1-ce)
Java version:

JDK: 1.8.181
Runtime:
Openjdk version "1.8.0_265"
OpenJDK Runtime Environment (build 1.8.0_265-8u265-b01-0ubuntu2~18.04-b01)
OpenJDK 64-Bit Server VM (build 25.265-b01, mixed mode)

speech version(s): v1,24,4

Step to reproduce:

make my example running jar inside a ubuntu 18.04 contrainer with Openjdk 1.8.0_265 installed
deploy my docker to VM, some of them could run successfully, not some exactly the same spec VM got nothing
I used wireshark to inspect those VM not working and found actually no tcp packet sent to Google, but
those VM worked successfully could sent packet. Since VM spec and docker container are exactly the same,
I wonder maybe SpeechClient.java got stucked somewhere but don't know how to figure it out.
Are there any way to diagnosis if SpeechClient.java is connected to Google?

Hi @alanywlee, would you please explain further what your goal is. Also, please can you clarify your repro steps.

Hi @b-loved-dreamer,
I am looking for a standard way to diagnosis connection status with Google in case I got no recognition result from Google.
In my case, no exception during recognition process seems not referring connection status with Google is good, maybe connection not be able to establish with unknown reason in wireshark point of view. And in case of docker deployment, it is very hard to make sure the internet quality of all deployed machines. If I can tell the deployed environment is not able to work properly, maybe a better solution is to report an error message and destroy itself than just return no recognition result.
Similar case I encountered before: DNS of my VM environment responded very slow ( >10 sec ) during that time, client got no recognition result if timeout is not long enough.

Hi @alanywlee, STT uses REST and gRPC to service each request, depending on the request type. The details about how the connection can be probed falls outside our domain. However, you can take a look at this documentation to try to understand the logistics of how it operates. You might want to focus your research on gRPC.

Closing this issue. Reopen if you need more clarification.


Add max-respawns parameter to dmon

Add a parameter to set a max number of respawns before dmon gives up

Also, I have noticed that it would be handy to propagate the last exit status of the monitored process when using the new -m/--max-respawns option, so I have added that in commit 85236e660d589be662ba3062a55a21d4cc731868 :hammer_and_wrench:

@schultetwin1 Also, congratulations on being the first contributor to the project! :tada:

@schultetwin1 Also, congratulations on being the first contributor to the project!

My pleasure! Its a great project!


nixos/minecraft-server: add ops (operators) option

This change extends the minecraft-server module with a new option ops. If specified, ops is a list of users who are "operators" of the minecraft server, and able to issue commands to it while playing.
To test, I've deployed this modified nixpkgs to my server using nixops.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

Perhaps @costrouc is an appropriate reviewer, based on maintainership.

I think you accidentally pushed a mindustryupdate to the same branch.

I'm not sure how that happened. I've rebased onto master.

There is a competing pull request to this feature over here: #92711
It contains a lot of discussion on the matter.

There is a competing pull request to this feature over here: #92711
It contains a lot of discussion on the matter.


TimePicker initial onClick does not occur

When using the TimePicker component with a custom button to trigger it opened/closed, the initial click event (using no drag of the mouse) on the hours portion of the clock will not use the selected value. If you reload the page and attempt to reproduce, but this time instead click and drag even slightly, the hours field updates without trouble.
Steps to reproduce:
Chrome/FF/Safari

Load view with TimePicker in it's hidden state
Press custom input button and update active state of TimePicker to trigger open modal dialog
!SINGLE! Click on any of the hours numbers (do not drag at all) and the modal advances to not selecting the minutes
Hour on top of modal has not changed from default

Hi! What version of react toolbox are you using? I haven't been able to reproduce it with v2:

I believe this can be closed, the problem was something else other than this library taking over the initial click event.


Ability to add send-time parameters to execute within a compose() chain

Raised by @nullun - there was a desire to add packAppCallResources to a transaction in a compose chain and it's not currently possible.

Fixed by #94


Support other SolidWorks versions

I see there is an only option to use the 2020 version, sadly my university still has only 2019 license, would it be possible to add? Thanks.

@cewbdex Yes you can! I get my serial number from here: https://www.mbcad.de/solidworks-produkte/solidworks-privatlizenz/
... but I have the problem with the installation of VBA 7.1 , what we need, when we will use this 2020 or newer version.
Can you check, which VBA version will be install SOLIDWORKS 2019 version, please?

I have found out that Dassault Systèmes have created "DEXPERIENCE SOLIDWORKS for Maker und Private users" that works with the internet browser!
Here is the link: https://discover.solidworks.com/makers
But it cost US$99.00/year!!!

@Dyllan2000alfa Can you give me a link from the installer of the version 2021 of SOLIDWORKS? Then I have only this link:

https://dl-ak.solidworks.com/nonsecure/sw2020/sw2020_sp04.0_f/x64/200715.002-1-QA7UDVC9/SolidWorksSetup.exe

@cryinkfly I cant give you a link since the link I use is a temporarily one that is created after I enter my schools license number. Do you think you could make it so people can manually specify an exe they have downloaded?

I registered for an education trial here with the code TEMPDL and got the latest exe link: https://dl-ak.solidworks.com/nonsecure/sw2022/sw2022_sp02.0_f/x64/220318.003-1-PGQH6ND3/SolidWorksSetup.exe

Oh I forgot I already made a PR here https://github.com/cryinkfly/SOLIDWORKS-for-Linux/pull/22

I registered for an education trial here with the code TEMPDL and got the latest exe link: https://dl-ak.solidworks.com/nonsecure/sw2022/sw2022_sp02.0_f/x64/220318.003-1-PGQH6ND3/SolidWorksSetup.exe
The serial numbers are also static (they give the same to everyone) but I'm not sure if it's ok to share them (even a fake email will give you the serials)

Can you post download link to 2021 version? Thank you!

Can you post download link to 2021 version? Thank you!

Here you go :smiley:

So, I have add an option in my new installer where the user can select another SOLIDWORK version which is downloaded in his home directory! :+1:

I have been trying to install this package using, I believe, the latest version updated today, but I am not able to move forward with the installation after I reach the "Version Selection" screen.
I suppose option 1 is defaulted to SW 2022, and option 2 should let the user free to choose another option (I have an installer for 2019 Pro, for instance that I want to use), but the is no keyboard input that allows me to move forward and select the "OK" option ... is it me?


Sensor pod fails and raises

Hello everyone.
i've deployed Central on k8s cluster A and Secured+Sensor on cluster B.
Everything works, but Sensor pod on cluster B always fails, which lead to collector pods fail too. After 3-5 minutes doing absolutely nothing its running again.
Logs of sensor pod:
'/usr/local/share/ca-certificates/ca.crt' -> '/etc/pki/ca-trust/source/anchors/ca.crt' No certificates found in /etc/pki/injected-ca-trust main: 2023/07/11 08:00:51.413265 main.go:32: Info: Running StackRox Version: 4.1.0 kubernetes/sensor: 2023/07/11 08:00:51.415280 sensor.go:60: Info: Running sensor with Kubernetes re-sync disabled kubernetes/sensor: 2023/07/11 08:00:51.417077 sensor.go:79: Info: Loaded Helm cluster configuration with fingerprint "2f44bc2b7e620140fada6b600f5b50c02cae0f537e0c2e8695f2d8045f058999" kubernetes/sensor: 2023/07/11 08:00:51.435658 sensor.go:97: Info: Determined deployment identification: {   "systemNamespaceId": "95679b35-8dca-41b6-a75f-5fff98d52e08",   "defaultNamespaceId": "dc33a561-8d6f-49ee-9ae2-8fed5fbb8de2",   "appNamespace": "stackrox",   "appNamespaceId": "4f4c5a3f-5258-4ca0-903a-ab41ad4e7517",   "appServiceaccountId": "",   "k8sNodeName": "7-kube-node1" } kubernetes/listener: 2023/07/11 08:00:51.439597 listener.go:47: Warn: ECR credential manager is not available: node provider is not AWS:  common/sensor: 2023/07/11 08:00:51.440426 sensor.go:127: Info: Connecting to Central server stackrox.ams-sec.kube.xbet.lan:443 common/sensor: 2023/07/11 08:00:51.441150 sensor.go:201: Info: API services registered common/sensor: 2023/07/11 08:00:51.441345 sensor.go:224: Info: All components have started common/sensor: 2023/07/11 08:00:51.441394 sensor.go:233: Info: Running Sensor without connection retries: sensor will restart on disconnect pkg/grpc: 2023/07/11 08:00:51.441338 server.go:216: Info: Launching backend gRPC listener pkg/grpc: 2023/07/11 08:00:51.441383 server.go:216: Info: Launching backend gRPC listener pkg/grpc: 2023/07/11 08:00:51.442509 server.go:329: Warn: failed to register Prometheus collector: descriptor Desc{fqName: "http_incoming_in_flight_requests", help: "Number of http requests which are currently running.", constLabels: {path="/ready"}, variableLabels: []} already exists with the same fully-qualified name and const label values pkg/grpc: 2023/07/11 08:00:51.442618 server.go:379: Info: TLS-enabled HTTP server listening on [::]:9443 pkg/grpc: 2023/07/11 08:00:51.443129 server.go:379: Info: TLS-enabled multiplexed HTTP/gRPC server listening on [::]:8443 kubernetes/listener: 2023/07/11 08:00:51.443552 resource_event_handler.go:85: Error: error finding compliance CRD: the server could not find the requested resource kubernetes/listener: 2023/07/11 08:00:51.545208 resource_event_handler.go:166: Info: Successfully synced secrets, service accounts and roles common/centralclient: 2023/07/11 08:00:51.565333 grpc_connection.go:128: Info: Did not add central CA cert to gRPC connection common/sensor: 2023/07/11 08:00:51.566331 central_communication_impl.go:129: Info: Re-using cluster ID 820b31f9-3f62-490d-bca6-600645c389f1 of previous run. If you see the connection to central failing, re-apply a new Helm configuration via 'helm upgrade', or delete the sensor pod. kubernetes/listener: 2023/07/11 08:00:51.646558 resource_event_handler.go:181: Info: Successfully synced role bindings kubernetes/listener: 2023/07/11 08:00:51.646719 resource_event_handler.go:191: Info: Successfully synced k8s pod cache kubernetes/listener: 2023/07/11 08:00:52.047983 resource_event_handler.go:223: Info: Successfully synced network policies, nodes, services, jobs, replica sets, and replication controllers kubernetes/listener: 2023/07/11 08:00:52.150230 resource_event_handler.go:248: Info: Successfully synced daemonsets, deployments, stateful sets and cronjobs kubernetes/listener: 2023/07/11 08:00:52.228261 resource_event_handler.go:257: Info: Successfully synced pods common/clusterid: 2023/07/11 08:01:01.668911 cluster_id.go:54: Info: Received dynamic cluster ID "820b31f9-3f62-490d-bca6-600645c389f1" common/config: 2023/07/11 08:01:01.683357 handler.go:86: Info: Received configuration from Central: {   "config": {     "admissionControllerConfig": {       "enabled": false,       "timeoutSeconds": 20,       "scanInline": false,       "disableBypass": false,       "enforceOnUpdates": false     },     "registryOverride": "",     "disableAuditLogs": true   } } common/config: 2023/07/11 08:01:01.683457 handler.go:95: Info: Stopping audit log collection common/sensor: 2023/07/11 08:01:01.907089 central_communication_impl.go:156: Info: Established connection to Central. common/sensor: 2023/07/11 08:01:01.907212 central_communication_impl.go:165: Info: Communication with central started. common/sensor: 2023/07/11 08:01:02.157698 central_sender_impl.go:94: Info: Sending synced signal to Central common/config: 2023/07/11 08:01:02.804694 handler.go:75: Info: Received audit log sync state from Central: {   "nodeAuditLogFileStates": {   } } common/compliance: 2023/07/11 08:01:18.639862 service_impl.go:134: Info: Received connection from "7-kube-master2" common/compliance: 2023/07/11 08:01:18.640461 service_impl.go:158: Info: Adding node 7-kube-master2 to list of eligible compliance nodes for audit log collection because it is on a master node common/compliance: 2023/07/11 08:01:18.640572 auditlog_manager_impl.go:171: Info: Adding node 7-kube-master2as an eligible compliance node for audit log collection common/compliance: 2023/07/11 08:01:19.748742 service_impl.go:134: Info: Received connection from "7-kube-master1" common/compliance: 2023/07/11 08:01:19.748885 service_impl.go:158: Info: Adding node 7-kube-master1 to list of eligible compliance nodes for audit log collection because it is on a master node common/compliance: 2023/07/11 08:01:19.748922 auditlog_manager_impl.go:171: Info: Adding node7-kube-master1as an eligible compliance node for audit log collection common/compliance: 2023/07/11 08:01:23.671502 service_impl.go:134: Info: Received connection from "7-kube-node1" common/compliance: 2023/07/11 08:01:26.943711 service_impl.go:134: Info: Received connection from "7-kube-master3" common/compliance: 2023/07/11 08:01:26.943831 service_impl.go:158: Info: Adding node 7-kube-master3 to list of eligible compliance nodes for audit log collection because it is on a master node common/compliance: 2023/07/11 08:01:26.943868 auditlog_manager_impl.go:171: Info: Adding node7-kube-master3as an eligible compliance node for audit log collection common/compliance: 2023/07/11 08:01:30.582472 service_impl.go:134: Info: Received connection from "7-kube-node2" common/signal: 2023/07/11 08:01:36.958652 signal_service.go:105: Info: starting receiveMessages common/signal: 2023/07/11 08:01:39.778678 signal_service.go:105: Info: starting receiveMessages common/signal: 2023/07/11 08:01:43.861880 signal_service.go:105: Info: starting receiveMessages common/signal: 2023/07/11 08:01:53.115847 signal_service.go:105: Info: starting receiveMessages common/signal: 2023/07/11 08:02:17.151266 signal_service.go:105: Info: starting receiveMessages kubernetes/clusterstatus: 2023/07/11 08:02:38.130827 updater.go:253: Info: No Cloud Provider metadata is found common/sensor: 2023/07/11 08:07:58.580080 central_communication_impl.go:170: Info: Communication with central ended. common/sensor: 2023/07/11 08:07:58.580435 sensor.go:298: Info: Terminating central connection. main: 2023/07/11 08:07:58.580483 main.go:73: Info: Sensor exited normally
This is a cycle of fails and rises

sensor Completed - CrashLoopBackOff - Running
Collector - CrashLoopBackOff - Running
LoadBalancer - ingress nginx exposing Central.
Why pod lost connection?
Can anyone please help me to solve this issue?

Hi @msugakov
For now i've solved this adding "while true"  to sensor pod container. command "kubernetes-sensor" Now, there is no restarts in last 1h.

I don't think adding such hacks is necessary. How do you build and deploy Sensor?

I’ve deployed it using helm manually but my goal is to deploy it using ArgoCD.

What is the status of this? From the above it seems that the root problem of sensor not being able to communicate with central.

Hello! Using this truck everything works properly. All cluster in internal network with cluster with Central are OK. But now trouble divided to connecting external Clusters with Secured  to Central. I’ve described in in Slack Chanel https://cloud-native.slack.com/archives/C01TDE3GK0E/p1691050009654009

Hi, is there any way to upload information from RedHat here? Unfortunately, I don't have a subscription :(
https://access.redhat.com/solutions/7026261

hey! the logs seem to indicate that it's failing connecting to Central via gRPC! What load balancer is Central behind? If you're using, say, an Amazon ALB or similar, that do not support gRPC, you'll need to use the WebSocket protocol instead. when deploying your sensor, you can specify this by adding the wss:// schema on your central endpoint, i.e.: wss://$STACKROX_CENTRAL_ENDPOINT:443. Hope this fixed your issue!

Closing inactive issue, please feel free to reopen when you have more updates.


Upgrading DB version fails with InvalidParameterCombination for instance parameter group

Found a bug? Maybe our Slack Community can help.

Describe the Bug
Attempting to do a major version upgrade of an Aurora Postgres instance from 11.13 to 12.9. On latest version 50.2 and 3.63.0 of terraform. Below is my module config:
module "postgres" {
  source                      = "cloudposse/rds-cluster/aws"
  version                     = "0.50.2"
  name                        = "api-db"
  engine                      = "aurora-postgresql"
  cluster_family              = "aurora-postgresql12"
  engine_version              = "12.9"
  allow_major_version_upgrade = true
  apply_immediately           = true
  cluster_size                = 1
  admin_user                  = data.aws_ssm_parameter.db_admin_user.value
  admin_password              = data.aws_ssm_parameter.db_admin_password.value
  db_name                     = "api"
  db_port                     = 5432
  instance_type               = "db.t3.medium"
  vpc_id                      = var.vpc_id
  security_groups             = concat([aws_security_group.api.id], var.rds_security_group_inbound)
  subnets                     = var.rds_subnets
  storage_encrypted           = true
}

When running apply I get the error:
 Failed to modify RDS Cluster (api-db): InvalidParameterCombination: The current DB instance parameter group api-db-xxxxxxx is custom. You must explicitly specify a new DB instance parameter group, either default or custom, for the engine version upgrade.

Environment (please complete the following information):
Anything that will help us triage the bug will help. Here are some ideas:

OS: OSX
Version: 50.2
Terraform: 3.63.0

The terraform plan output:
Terraform will perform the following actions:

  # module.api_service.module.postgres.aws_db_parameter_group.default[0] must be replaced
+/- resource "aws_db_parameter_group" "default" {
      ~ arn         = "arn:aws:rds:us-west-2:xxxxxxxxxx:pg:api-db-20220331153311430500000002" -> (known after apply)
      ~ family      = "aurora-postgresql11" -> "aurora-postgresql12" # forces replacement
      ~ id          = "api-db-20220331153311430500000002" -> (known after apply)
      ~ name        = "api-db-20220331153311430500000002" -> (known after apply)
        tags        = {
            "Name" = "api-db"
        }
        # (3 unchanged attributes hidden)
    }

  # module.api_service.module.postgres.aws_rds_cluster.primary[0] will be updated in-place
  ~ resource "aws_rds_cluster" "primary" {
      ~ allow_major_version_upgrade         = false -> true
      ~ db_cluster_parameter_group_name     = "api-db-20220331153311419900000001" -> (known after apply)
      + enable_global_write_forwarding      = false
      ~ engine_version                      = "11.13" -> "12.9"
        id                                  = "api-db"
        tags                                = {
            "Name" = "api-db"
        }
        # (33 unchanged attributes hidden)
    }

  # module.api_service.module.postgres.aws_rds_cluster_instance.default[0] will be updated in-place
  ~ resource "aws_rds_cluster_instance" "default" {
      + apply_immediately                     = true
      ~ db_parameter_group_name               = "api-db-20220331153311430500000002" -> (known after apply)
        id                                    = "api-db-1"
      ~ instance_class                        = "db.t3.large" -> "db.t3.medium"
      ~ preferred_maintenance_window          = "wed:13:04-wed:13:34" -> "wed:03:00-wed:04:00"
        tags                                  = {
            "Name" = "api-db"
        }
        # (24 unchanged attributes hidden)
    }

  # module.api_service.module.postgres.aws_rds_cluster_parameter_group.default[0] must be replaced
+/- resource "aws_rds_cluster_parameter_group" "default" {
      ~ arn         = "arn:aws:rds:us-west-2:xxxxxxxxxxx:cluster-pg:api-db-20220331153311419900000001" -> (known after apply)
      ~ family      = "aurora-postgresql11" -> "aurora-postgresql12" # forces replacement
      ~ id          = "api-db-20220331153311419900000001" -> (known after apply)
      ~ name        = "api-db-20220331153311419900000001" -> (known after apply)
        tags        = {
            "Name" = "api-db"
        }
        # (3 unchanged attributes hidden)
    }

After yes to applying the changes:
module.api_service.module.postgres.aws_db_parameter_group.default[0]: Creating...
module.api_service.module.postgres.aws_rds_cluster_parameter_group.default[0]: Creating...
module.api_service.module.postgres.aws_db_parameter_group.default[0]: Creation complete after 1s [id=api-db-20220331162335693200000001]
module.api_service.module.postgres.aws_rds_cluster_parameter_group.default[0]: Creation complete after 1s [id=api-db-20220331162335693200000002]
module.api_service.module.postgres.aws_rds_cluster.primary[0]: Modifying... [id=api-db]

And then the error:
Error: Failed to modify RDS Cluster (api-db): InvalidParameterCombination: The current DB instance parameter group api-db-20220331153311430500000002 is custom. You must explicitly specify a new DB instance parameter group, either default or custom, for the engine version upgrade.

@Gowiem did not end up getting around this unfortunately, had other priorities come up and so this got put in the backlog. honestly not sure what solution I'd expect since I'm still not exactly sure why this is failing. But maybe instead of using custom DB parameters it could just use the default ones? Seems like that might simplify things a bit

Seems related to this, which doesn't seem too promising: https://github.com/aws/aws-cli/issues/5939

@Gowiem This exception is thrown because the module doesn't pass a value to db_instance_parameter_group_name argument in aws_rds_cluster resource. I've opened a PR #151 that fixes this issue.


erreur lors du lancement homebridge

comment je pourais supprimer c'est erreur
pi@raspberrypi:~ $ homebridge
[29/09/2019, 10:46:26] config.json (/home/pi/.homebridge/config.json) not found.
[29/09/2019, 10:46:26] No plugins found. See the README for information on installing

You need to create a HomeBridge config file. I would suggest having a read through of the readme or visiting a tutorial online (of which there are many). This is not a bug.


Add Alpine.js

Thank you for contributing! Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md
[x] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[ ] Suggesting edits to an existing topic or collection
[x] Curating a new topic or collection

Curating a new topic or collection

[x] I've formatted my changes as a new folder directory, named for the topic or collection as it appears in the URL on GitHub (e.g. https://github.com/topics/[NAME] or https://github.com/collections/[NAME])
[x] My folder contains a *.png image (if applicable) and index.md
[x] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/master/docs

Alpine.js is a relatively new library but it's already got a few related projects, having a filled out explore page will be great to showcase those projects and any new ones that will be created.

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

Currently this topic only has 9 repositories. We reserve these curations for widely used topics, see here in our contribution guide: https://github.com/github/explore/blob/master/CONTRIBUTING.md#curating-a-new-topic-or-collection
Also, it appears that you are a top contributor for this project, which creates a conflict of interest.
Thank you for your contribution, but we can't accept it at this time for the above reasons.

Thanks for the quick feedback let's see when it's more popular


Problem with compiled Bootstrap 4 Beta 2

If I try using Bootstrap 4 Beta 2 it will give me this error in Chrome's developer console:
Failed to load resource: the server responded with a status of 422 () theme.scss.css
Steps to replicate:

Put the compiled version (bootstrap.css) of Bootstrap 4 Beta 2 in src/styles/vendor
update theme.scss with @import url('vendor/bootstrap.css');
build & run

The weird thing is that the compiled version of Bootstrap 4 Beta 1 works though.

Slate version 0.13.0

Not working with compiled Bootstrap 4 Beta 3 either. Direct CDN link works though.


Add partition function, analogous to List.partition

This is useful when the "failure" path must still be processed, perhaps in order to retry certain items.  In that case, generating a list of Results is worthwhile: the "success" cases can be handled in one way and the "failure" cases can be handled in another way.  This function separates those cases for separate processing.

Thanks for the PR! I'll be working through reviewing all these PRs in the next day or two.


Develop

This is an enhancement or feature.

Summary
Making the top bar transparent on mobile
Context

Making the navbar transparent on mobile


Align styles with design style guide

A nice to have, but not urgent
Would be nice to bring the styling in line with our main platform.

I vaguely recall that Quincy wanted this to be only loosely associated with fcc proper, so it may not need to match the style guide. I've reached out to him about it in chat.


Switch from asserts on POSIX_FADV_* to conversions

Yes, AIX has different values.

Merged upstream at https://github.com/dotnet/corefx/pull/35971


Grid dataframe values are shared via the MemoryCache

If we modify the values for a dataframe for a Grid object that's been loaded into the Memory cache, they seem to be modified in new instantiated grids of the same interconnect.
>>> from powersimdata import Grid
>>> grid1 = Grid("Texas")
Reading bus.csv
Reading plant.csv
Reading gencost.csv
Reading branch.csv
Reading dcline.csv
Reading sub.csv
Reading bus2sub.csv
Reading zone.csv
>>> grid1.plant.groupby("type").sum().Pmax
type
coal       14501.59
hydro        555.10
ng         68642.42
nuclear     5138.60
solar       2460.20
wind       19062.63
Name: Pmax, dtype: float64
>>> grid1.plant.Pmax = 0
>>> grid1.plant.groupby("type").sum().Pmax
type
coal       0
hydro      0
ng         0
nuclear    0
solar      0
wind       0
Name: Pmax, dtype: int64
>>> grid2 = Grid("Texas")
>>> grid2.plant.groupby("type").sum().Pmax
type
coal       0
hydro      0
ng         0
nuclear    0
solar      0
wind       0
Name: Pmax, dtype: int64
>>> grid1 is grid2
False
>>> grid1.plant is grid2.plant
False

The following test reproduces it in a minimum working example:
def test_mem_cache_put_version_never_changes():
    cache = MemoryCache()
    key = cache_key("foo", 4)
    obj = {"key1": 42}
    cache.put(key, obj)
    obj["key2"] = 8675309
    assert "key2" not in cache.get(key)

Another test:
>>> from powersimdata import Grid
>>> g1 = Grid("Texas")
Reading bus.csv
Reading plant.csv
Reading gencost.csv
Reading branch.csv
Reading dcline.csv
Reading sub.csv
Reading bus2sub.csv
Reading zone.csv
>>> g2 = Grid("Texas")
>>> g1.plant.Pmax = 0
>>> g2.plant.Pmax.sum()
110360.54000000001
>>> g3 = Grid("Texas")
>>> g3.plant.Pmax.sum()
110360.54000000001

Closed via #444


Installation not working - error 404

Describe The Bug:

In installation process this error appear:
node-pre-gyp ERR! install response status 404 Not Found on https://github.com/abandonware/node-bluetooth-hci-socket/releases/download/0.5.3-8/bluetooth_hci_socket-0.5.3-8-node-v108-linux-arm64.tar.gz
The plugin is installed in Homebridge, but not working (desk cant be controlled either from Homebridge or Homekit).
Using the required idasen controller in command line is working (desk can be manipulated)
To Reproduce:

Install the plugin in Homebridge…
Expected behavior:

Would like to control my desk hight by Home app on iPhone.
Logs:
node-pre-gyp ERR! install response status 404 Not Found on https://github.com/abandonware/node-bluetooth-hci-socket/releases/download/0.5.3-8/bluetooth_hci_socket-0.5.3-8-node-v108-linux-arm64.tar.gz
0 verbose cli /opt/homebridge/bin/node /opt/homebridge/bin/npm
1 info using<EMAIL_ADDRESS>2 info using<EMAIL_ADDRESS>3 timing npm:load:whichnode Completed in 7ms
4 timing config:load:defaults Completed in 13ms
5 timing config:load:file:/opt/homebridge/lib/node_modules/npm/npmrc Completed in 4ms
6 timing config:load:builtin Completed in 7ms
7 timing config:load:cli Completed in 21ms
8 warn config global-style This option has been deprecated in favor of --install-strategy=shallow
9 timing config:load:env Completed in 5ms
10 timing config:load:file:/var/lib/homebridge/node_modules/homebridge-linak/.npmrc Completed in 0ms
11 timing config:load:project Completed in 41ms
12 timing config:load:file:/home/homebridge/.npmrc Completed in 0ms
13 timing config:load:user Completed in 2ms
14 timing config:load:file:/opt/homebridge/etc/npmrc Completed in 0ms
15 timing config:load:global Completed in 2ms
16 timing config:load:setEnvs Completed in 6ms
17 timing config:load Completed in 101ms
18 timing npm:load:configload Completed in 102ms
19 timing config:load:flatten Completed in 18ms
20 timing npm:load:mkdirpcache Completed in 1ms
21 timing npm:load:mkdirplogs Completed in 1ms
22 verbose title npm rebuild
23 verbose argv "rebuild" "--foreground-scripts"
24 timing npm:load:setTitle Completed in 6ms
25 timing npm:load:display Completed in 4ms
26 verbose logfile logs-max:10 dir:/home/homebridge/.npm/_logs/2023-11-01T14_41_25_273Z-
27 verbose logfile /home/homebridge/.npm/_logs/2023-11-01T14_41_25_273Z-debug-0.log
28 timing npm:load:logFile Completed in 307ms
29 timing npm:load:timers Completed in 0ms
30 timing npm:load:configScope Completed in 0ms
31 timing npm:load Completed in 546ms
32 timing arborist:ctor Completed in 5ms
33 silly logfile done cleaning log files
34 timing build:queue Completed in 53ms
35 timing build:link:node_modules/node-pre-gyp Completed in 10ms
36 timing build:link:node_modules/@mapbox/node-pre-gyp Completed in 53ms
37 timing build:link:node_modules/color-support Completed in 50ms
38 timing build:link:node_modules/mkdirp Completed in 49ms
39 timing build:link:node_modules/needle Completed in 49ms
40 timing build:link:node_modules/node-gyp-build Completed in 20ms
41 timing build:link:node_modules/nopt Completed in 17ms
42 timing build:link:node_modules/rc Completed in 16ms
43 timing build:link:node_modules/rimraf Completed in 16ms
44 timing build:link:node_modules/semver Completed in 13ms
45 timing build:link:node_modules/which Completed in 12ms
46 timing build:link:node_modules/cross-spawn/node_modules/semver Completed in 13ms
47 timing build:link:node_modules/make-dir/node_modules/semver Completed in 12ms
48 timing build:link:node_modules/node-pre-gyp/node_modules/detect-libc Completed in 12ms
49 timing build:link:node_modules/node-pre-gyp/node_modules/nopt Completed in 13ms
50 timing build:link:node_modules/node-pre-gyp/node_modules/rimraf Completed in 13ms
51 timing build:link:node_modules/node-pre-gyp/node_modules/semver Completed in 13ms
52 timing build:link:node_modules/tar/node_modules/mkdirp Completed in 13ms
53 timing build:link Completed in 59ms
54 info run<EMAIL_ADDRESS>install node_modules/@abandonware/bluetooth-hci-socket node-
pre-gyp install --fallback-to-build
55 info run<EMAIL_ADDRESS>install { code: 0, signal: null }
56 timing build:run:install:node_modules/@abandonware/bluetooth-hci-socket Completed in 20743ms
57 info run<EMAIL_ADDRESS>install node_modules/@abandonware/noble node-gyp rebuild
58 info run<EMAIL_ADDRESS>install { code: 0, signal: null }
59 timing build:run:install:node_modules/@abandonware/noble Completed in 4130ms
60 info run<EMAIL_ADDRESS>install node_modules/@s524797336/noble-mac node install.js
61 info run<EMAIL_ADDRESS>install { code: 0, signal: null }
62 timing build:run:install:node_modules/@s524797336/noble-mac Completed in 379ms
63 info run<EMAIL_ADDRESS>install node_modules/bluetooth-hci-socket node-gyp rebuild
64 info run<EMAIL_ADDRESS>install { code: 1, signal: null }
65 timing command:rebuild Completed in 38845ms
66 verbose stack Error: command failed
66 verbose stack     at ChildProcess. (/opt/homebridge/lib/node_modules/npm/node_modules/@npmcli/promis
e-spawn/lib/index.js:53:27)
66 verbose stack     at ChildProcess.emit (node:events:517:28)
66 verbose stack     at maybeClose (node:internal/child_process:1098:16)
66 verbose stack     at ChildProcess._handle.onexit (node:internal/child_process:303:5)
67 verbose pkgid<EMAIL_ADDRESS>68 verbose cwd /var/lib/homebridge/node_modules/homebridge-linak
69 verbose Linux 6.1.0-rpi4-rpi-v8
70 verbose node v18.18.2
71 verbose npm  v9.8.1
72 error code 1
73 error path /var/lib/homebridge/node_modules/homebridge-linak/node_modules/bluetooth-hci-socket
74 error command failed
75 error command sh -c node-gyp rebuild
76 verbose exit 1
77 timing npm Completed in 39691ms
78 verbose unfinished npm timer build<PHONE_NUMBER>919
79 verbose unfinished npm timer build:deps<PHONE_NUMBER>921
80 verbose unfinished npm timer build:run:install<PHONE_NUMBER>036
81 verbose unfinished npm timer build:run:install:node_modules/bluetooth-hci-socket<PHONE_NUMBER>293
82 verbose code 1
83 error A complete log of this run can be found in: /home/homebridge/.npm/_logs/2023-11-01T14_41_25_273Z-debug-0.
log
Environment:
Clean installation of latest Rasberyy OS (Bookworm) on Raspberry Pi 3

Plugin Version: v1.1.2 (tried v1.3.0.-6 with same result)
Homebridge Version: v1.6.1
Node.js Version: v18.18.2
NPM Version: sudo: npm: command not found
Operating System: Raspberry OS - Debian GNU/Linux 12 (bookworm)

This sounds like a configuration / system error on your side.
Are you able to run the command in the homebridge console and have the desk move?
If yes, please post the output of that. If not, thats where the error comes from...


Typescript generator function assumes asynchronous global Promise

This may sound like a silly report -- please bear with me (:
I'm the author of synchronous-promise, an A+ Promise-like implementation which doesn't defer (and allows pausing and resuming), so makes testing certain scenarios clearer / easier. Mostly, it's worked well with TypeScript because of how awesome TypeScript's async/await logic is.
The problem is very specific is this: if SynchronousPromise is installed globally (overriding Promise -- and we could do this so that client code returning a Promise actually returns a SynchronousPromise, during test-time), and a SynchronousPromise resolution happens in a setTimeout, the TS generator function also makes use of SynchronousPromise and doesn't complete awaiting the following:
import { SynchronousPromise } from "./index";
import { expect } from 'chai';

// install SynchronousPromise globally
global.Promise = SynchronousPromise;

describe("typescript async/await", () => {
  it("should not hang", async function() {
    // Arrange
    // Act
    await new SynchronousPromise(function(resolve, reject) {
      setTimeout(() => {
        resolve("done!");
      }, 0);
    });
  })
});

The problem seems to track down to the generated generator code which expects a P (short-handed global Promise) to defer. If I comment out the line:
// global.Promise = SynchronousPromise;

then the test completes, as expected.
Now, I realise that there is a valid argument that SynchronousPromise, being not async in nature, violates the A+ specification and that this whole issue shouldn't be the problem of TypeScript at all. This is a fair argument, which has a counter-argument: that all TypeScript is a super-set of Javascript. The following Javascript works fine:
"use strict";
var
  expect = require("chai").expect,
  sut = require("./index"),
  SynchronousPromise = sut.SynchronousPromise,
describe("with timeout in ctor", () => {
  it("should complete when the timeout does", (done) => {
    // Arrange
    var
      captured,
      sut = new SynchronousPromise(function(resolve, reject) {
        setTimeout(function() {
          resolve("moo");
        }, 0);
      }).then(function(result) {
        captured = result;
      });
    // Act
    // Assert
    setTimeout(function() {
      expect(captured).to.equal("moo");
        done();
     }, 500);
  });
});

And debugging the prior snippet has shown that all promises (even the TS-generated / wrapper ones created for async/await) are resolved. Execution is simply not continued by the generator.
Expected behavior:
The first snippet (TypeScript) should complete like the second snippet (Javascript)
Actual behavior:
The Javascript completes where the TypeScript does not
Proposed solutions.

Since the generator function requires deferral, perhaps use setTimeout -- however, this is subject to the same problems as testing frameworks like jasmine can install a testing clock which has to be manually advanced by the test code.
"var off" the global Promise implementation before allowing client code to run and use that version inside the generator code. This seems to be the lowest-hanging fruit for solving this problem, from my point of view.

Of course, the response could also be that this is just an issue with synchronous-promise, but it also highlights that TS compiled execution can be interfered with by client code -- which may not be optimal.

If you are emitting to ES5/ES3, then annotate your async functions with a return type using SynchronousPromise. this will cause the resulting code to use SynchronousPromise as a constructor instead of the global Promise.
It is important to note that as per ES7 you can not change the return type of an async function. an async function will always return a promise using the built-in Promise constructor, even if you override the global Promise declaration.
Please see https://github.com/Microsoft/TypeScript/pull/6631 and https://github.com/Microsoft/TypeScript/issues/6068 for more context.

Hi
I think I've failed to communicate the issue properly (: In particular, I've used the words "generator function", when I should have been talking about the __awaiter function emitted by TypeScript
For some more context:

prior versions of SynchronousPromise (1.x) did not display this problem because of faulty behavior in SynchronousPromise (https://github.com/fluffynuts/synchronous-promise/issues/7) which was resolved through a re-write. This behavior would essentially prematurely resolve a promise chain when there was branching (ie, .then() twice on the same promise, which happens in the emitted code which is awaited)
I'm emitting to es6.
I'm definitely overriding the global Promise and seeing it used in the emitted __awaiter function used to provide the async/await functionality. This appears to be the source of the problem and, from your explanation, I shouldn't be able to interfere with the nature of the global Promise for es7 emission, so it might be worthwhile investigating different behavior for when emission is set to < es7.

The emitted __awaiter function looks like this:
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};

When I set global.Promise to be SynchronousPromise, then the P within that awaiter is a SynchronousPromise (observed through debugging), but the code inside that function assumes that the promise implementation it's using will be async, so, for the very specific case I've detailed above, where the global Promise implementation has been overridden to be synchronous but the code within that promises constructor is actually asynchronous, the __awaiter function does not run to completion, even though all promises within the code run (both from the example test code and the ones generated by the async/await generation) are resolved (again, observed through debugging, breaking just after the resolve() in the example test code).
I don't agree that this is working as intended -- my test code has managed to (unintentionally) interfere with the emitted TypeScript __awaiter function in such a way that it can be caused to essentially lock up.
This could be fixed by emitting the following __awaiter Javascript instead:
var __awaiter = (function (self) {
    var RealPromise = Promise; // store off the real Promise implementation early
    return (self && self.__awaiter) || function (thisArg, _arguments, P, generator) {
        return new RealPromise(function (resolve, reject) {
            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
            function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
            function step(result) { result.done ? resolve(result.value) : new RealPromise(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
            step((generator = generator.apply(thisArg, _arguments || [])).next());
        });
    };
})(this);

Optimally, the P provided to __awaiter could be discarded, though this would obviously also require an update to the emission of the awaited code (the code run with a yield)

You can provide your own implementations of the helpers and chose to not emit the helpers and use tslib as a base for authoring your custom helpers.
I am not sure that effecting everyone else because you have chosen to implement a non-spec compliant promise is a good idea...

Implementing the awaiter logic in a romance doesn't affect anyone else negatively. It does make the generated code impervious to client code changing behavior that it doesn't control directly.
I'm fully aware that my promise implementation is non-standard. I don't expect TypeScript to incorporate non-standard functionality or a special workaround for my test library. A simple closure makes the emitted code more resilient and also happens to fix my issue.

I'd like to thank you all for the discussion. I've implemented a workaround in my library (SynchronousPromise) which patches the __awaiter to be in a closure (basically my suggestion for a fix in the TS emitter). It feels a little dirty that the consuming user has to understand or care about the way TypeScript emits Javascript, but it works, it's documented and it references this thread for context.


A way to add capes?

Is it even possible? I really want the old capes but since its a limited time only I couldn't get it. much appreciated thanks :D

There's a mod where u can modify caps/skins.


add tests that exercise foreground-child on Windows

We should add a test that captures this regression:
https://github.com/tapjs/foreground-child/pull/6
CC: @isaacs

foreground-child now has passing appveyor tests, I think we can close this.


How to compile lua source  into java class imported by java code?

How to compile lua source  into java class imported by java code?

I'm not sure that this is possible with LuaJ, but I remember that Rembulan was compiling Lua to native Java bytecode. However, I am not sure if that's what you mean.
If you want a language that will support transpiling to both Java and Lua, you can take a look at Haxe.

@noncom Generate a java library.


Rethink Limits in Composer?

I want to think about adjusting the default limit behavior in Composer.
My Observations: The current default limit of 10 helps prevent unintentionally running giant result sets that will take forever to return & render. This is helpful sometimes, BUT:

It's confusing / unexpected for folks that a limit has been auto-added; it's not immediately obvious what's happened or how to make it go away.
When nesting, no limit is auto-added so one can still easily run a ridiculously large result. In fact, an unlimited nested query is actually worse than in the outermost query because it's repeated.
When I add a "pivoted" query like the below example, the limit 10 actually gives a very confusing result. I think this will confuse composer users, especially since you can't see the table underlying the chart so it's not clear why this result is odd. In this example, I was drilling into a single name, loading the gender_year_line_chart query, returning this chart. It took me a minute to figure out why only female values were coming back.

  query: gender_year_line_chart is {
    group_by: year_born
    aggregate: population
    group_by: gender
  }

this is the actual full result here:

For this specific example I can help address the issue by pre-supplying a reasonable limit on this query, but overall I think the default limiting behavior could be improved. To consider:

make it more obvious that a default limit has been provided and how to edit it
should we do some sort of default limiting of nests, or warning for unlimited nests?
maybe we should talk about limits with "pivoted" queries, I'm not sure if we could offer something smarter now that we have all(), perhaps by adding totals and making queries sortable by total or something like that??

actually, going to create a discussion for this.


Unclear error message from lncli updatechanpolicy

Background
updating the fee channel policy of the 85+ channels of my node
command executed but with an error message
Your environment
85 + channels some initially with base_fee_msat 0 and 1000 and after the cmd all 1000
0.11.99-beta
bitcoind v 0.20.0,
bitcoin and lnd on the same machine,
lnd launched with nohup
Running on a Ubuntu 16.04 virtual machine, with 1 TB disk, 14 GB RAM

Steps to reproduce
Launch the following command:
~$ lncli updatechanpolicy --base_fee_msat 1000 --fee_rate 0.000001 --time_lock_delta 144
Expected behaviour
It would be expected that the fee policy of all channels are updated according the command, that no error message is returned and if it does, that the error message reports whether the command was executed fully, partially or not at all and in case it is specific to the channels in error, it list them and gives their status after the command is executed
Actual behaviour
got the following error message:
[lncli] rpc error: code = Unknown desc = generated invalid channel update sig: max_htlc(5000000000 mSAT) for channel update greater than capacity(2500000000 mSAT)
lncli feereport shows all channels have updated policies as per the lncli updatechanpolicy.

Error is as stated: you can't set the max_htlc value for a channel to be a value greater than the channel itself.

You're correct in that it's possible for partial application, as we commit each channel individually.

Noted that the command processes all channels per increasing chan_id until it hits the ill channel, then the command reports the error and quit, leaving all channels with chan_id higher than the ill channel untouched.
I would expect the command skips the ill channel (after having reported the chan_id and the error message) and continues to process the following channels.

Adding some commentary here: a way forward here is to either ensure that updates are all or nothing, or modify the return value to indicate which updates were successful vs not.

Adding some commentary here: a way forward here is to either ensure that updates are all or nothing, or modify the return value to indicate which updates were successful vs not.


Merge tutorials updates from tutorials branch into main

@soichiro-hattori — Can you take a look at this and see if it looks sensible?

@dfm I'm concerned about how long the MCMC sampling takes since it builds every time it's pushed.

I was going to say the same thing too! I'll see if I can take a look through the specifics in more detail soon and make some suggestions for compromises to get the runtime down.


[question] Dynamic Prometheus configuration

I'd like to automate the process of adding more configuration after Prometheus installation.
My use case is to add more blackbox configuration (under scrape_configs) to prometheus.yml on-the-fly. Is there a way to setup multiple Prometheus config files?
Environment
prometheus, version 1.1.3 (branch: master, revision: ac374aa6748e1382dbeb72a00abf47d982ee8fff)
build user:       root@3e392b8b8b44
build date:       20160916-11:36:30
go version:       go1.6.3

@hgontijo There's no support for multiple config files - if you want to change arbitrary things in the config while Prometheus is running, you can just send a HUP signal to Prometheus and it will reload the config.
If all you want to change are the targets, you can use any of the dynamic service discovery mechanisms, including file_sd_config, which allows you to let Prometheus watch the list of targets in a set of files.

Great, file_sd_configs worked nicely with my blackbox job.
As far the refresh_interval, the documentation says
# Refresh interval to re-read the files.
[ refresh_interval: <duration> | default = 5m ]

... however the refresh rate for me was a couple of secs.
I tried to configure the refresh_interval as:
scrape_configs:
  - job_name: 'blackbox-http-2xx-secure'
    metrics_path: /probe
    params:
      module: [http_2xx]  # Look for a HTTP 200 response.
    file_sd_configs:
      - files:
        - '/etc/prometheus/blackbox/*.yml'
      - refresh_interval: 10s
    relabel_configs:
      - source_labels: [__address__]
        regex: (.*)(:80)?
        target_label: __param_target
        replacement: ${1}
      - source_labels: [__param_target]
        regex: (.*)
        target_label: instance
        replacement: ${1}
      - source_labels: []
        regex: .*
        target_label: __address__
        replacement: <IP_ADDRESS>:9115  # Blackbox exporter.

And it gives this error message:
time="2016-09-30T19:23:31Z" level=error msg="Error loading config: couldn't load configuration (-config.file=/etc/prometheus/prometheus.yml): file service discovery config must contain at least one path name" source="main.go:126"

it works fine without the refresh_interval on the job configuration.

@hgontijo That is odd. Refreshes resulting from the refresh timer should execute the same code path as the initial load or refreshes triggered by changes to the files.
By the way: you probably do not need to set your refresh interval to 10s. The file_sd SD mechanism automatically detects changes to any of the watched target files, so the refresh interval is only a safety guard in case a watched update ever gets lost due to some bug or something. Then it will still eventually get the new target state. Normally you should be able to keep it at 5 minutes or so.

@juliusv the error message happens when I configure refresh_interval under file_sd_configs and restart (stop/start) the service. As you suggested, I'll go without refresh_interval since the file change detection works fine.

@hgontijo you can refer here for config refresh_interval :-)


[USM] Clear error for docker test utils

What does this PR do?
If the container exists but is not running (e.g: stopped), docker inspect -f {{State.Pid}} containerName will return pid: 0 without any error
Motivation
clear error for UTs that use the docker utils for containerized envs scenarios
Describe how to test/QA your changes
existing UTs should pass.
Flaky UTs that use this utility should have a better error
Possible Drawbacks / Trade-offs
Additional Notes
example for current flaky test before the change

/merge


make the sticky header appear when scrollview pass certain point

I love this library!
This is exactly what I was looking for :)
I am just wondering if I could make the sticky header appear when I scroll the view to a certain point.
Right now the sticky header starts to appear immediately when scrolling to the top. But don't want the sticky header to appear right away. I want it to appear when I scroll up to a certain point.
Could this be done?

@kirhim Just put your content in renderForeground of everything before parallax effect. Put everything that you want to appear after the effect as children.

hey @anthonyk1225 can you supply an example?
i'm also interested in this.

https://gist.github.com/anthonyk1225/1e9f4949050cdd2fdd7762189da1d63e
The header won't appear, until you start to scroll past what is in renderForeground.

did you find a solution?

https://gist.github.com/anthonyk1225/1e9f4949050cdd2fdd7762189da1d63e
The header won't appear, until you start to scroll past what is in renderForeground.

This doesn't work if you need to render a background. Frankly it doesnt work well at all.

What I ended up doing was using the fixed header and using an Animated.View to have it appear after the user scrolled a certain amount. It worked quite well.


Little improvements

Hello,
I saw a streamer using your mod and I really liked how intuitively it works with the mapview. There was a few small issues that I was mentioned so I thought I'd fix them for you, if you don't mind :)
I also added a simple thumbnail and changelog, although I didn't try to add in the changes in previous versions. Now the changelog will show in the mod portal and in-game.

First of all, thanks for your PR. Most of it looks great. Also the thumbnail....I really should've gotten around to do that.

First of all, thanks for your PR. Most of it looks great. Also the thumbnail....I really should've gotten around to do that.

No worries. And life gets busy fast, can't do everything.


Link to "supported APIs" in the documentation is dead

Hello,
the link in the docs that is supposed to show supported APIs does not work for me. Maybe this information moved?
Best Regards

Thanks for reporting this @MatsLP :+1:
I've addressed this together with another documentation improvement in #737 - should be fixed soon


Don't truncate logfile on each run, but add a timestamp marker instead

The information in the logfile from a previous run could be important
for manually fixing the system, like for example when reinstalling modules
Fixes #132

I think it would be more convenient to generate a new log file each time the script is executed, and as #132 says, the logs can be quite large.
For example, handle it like this
logfile=/var/log/migrate2rocky-$(date +%Y%m%d-%s).log

This is fixed in PR #135


Refactoring struct with/without typedef

Close #621
Created for #560

This change is

Reviewed 16 of 18 files at r1, 2 of 2 files at r2.
Review status: all files reviewed at latest revision, 2 unresolved discussions, some commit checks failed.

program/program.go, line 130 at r2 (raw file):

		// Need for "stdbool.h"
		p.TypedefType["_Bool"] = "int"
	}()

Why does this need to be a defer? Can you not set it up like the rest of the values below?

types/resolve_test.go, line 162 at r2 (raw file):

					"void **"},
				returns: []string{"int"},
			},*/

Why is this one commented out?

Comments from Reviewable

Review status: all files reviewed at latest revision, 2 unresolved discussions, some commit checks failed.

program/program.go, line 130 at r2 (raw file):
Previously, elliotchance (Elliot Chance) wrote…
Why does this need to be a defer? Can you not set it up like the rest of the values below?

Done in nex PR  #641

types/resolve_test.go, line 162 at r2 (raw file):
Previously, elliotchance (Elliot Chance) wrote…
Why is this one commented out?

Uncomment that and  add more test in next PR  #641

Comments from Reviewable


Stage Branch --> Master

What does this PR do?
To enable the documentation preview link again before we merge, will need to change to develop.
Motivation
DOCS-3019
Additional Notes
Anything else we should know when reviewing?
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[ ] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Codecov Report

Merging #911 (c27168d) into develop (17addad) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #911   +/-   ##
========================================
  Coverage    83.04%   83.04%
========================================
  Files          267      267
  Lines         9047     9047
  Branches      1453     1453
========================================
  Hits          7513     7513
+ Misses        1139     1136    -3
- Partials       395      398    +3

Impacted Files
Coverage Δ

...android/rum/internal/ndk/DatadogNdkCrashHandler.kt
85.63% <0.00%> (-2.30%)
:arrow_down:

...rc/main/java/com/datadog/opentracing/DDTracer.java
55.65% <0.00%> (-0.42%)
:arrow_down:

...nternal/persistence/file/batch/BatchFileHandler.kt
81.13% <0.00%> (+2.83%)
:arrow_up:

...ndroid/core/internal/persistence/file/EventMeta.kt
90.00% <0.00%> (+10.00%)
:arrow_up:


[docs] Migrate system props to sx prop

Part of #42259
This PR is done by running v6.0.0/system-props codemod on docs/* and examples/* without manual adjustments.

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

Looks good, for the multiline aspect, I've tried to fix it in siriwatknp#4

Awesome @alexfauquette

Looks good, for the multiline aspect, I've tried to fix it in siriwatknp#4

Awesome, very cool

the codemod tends to add line break

Do we have control over this behavior from the codemod?

Do we have control over this behavior from the codemod?

No, we don't. It's from recast. What we can do is add the logic after transformation.

@siriwatknp OK, I can't find anything about it in https://github.com/facebook/jscodeshift/issues?q=is%3Aissue+is%3Aopen+format. It looks like another reason why we need https://github.com/mui/pigment-css/issues/102. I have linked this.

@siriwatknp OK, I can't find anything about it in https://github.com/facebook/jscodeshift/issues?q=is%3Aissue+is%3Aopen+format. It looks like another reason why we need mui/pigment-css#102. I have linked this 👍

Opps, it might be because of the sx codemod. There is a logic to remove recast's empty line but somehow the logic is wrong. Let me check.

@siriwatknp OK, I can't find anything about it in https://github.com/facebook/jscodeshift/issues?q=is%3Aissue+is%3Aopen+format. It looks like another reason why we need mui/pigment-css#102. I have linked this 👍

The bug is mine. Here is the fix https://github.com/mui/material-ui/pull/42527.

This looks awesome! Just calling out that we'll have to look for places where documentation should be updated, too. For example, there's a "System props" section on the Material UI Stack page. Maybe there are more like these.

This looks awesome! Just calling out that we'll have to look for places where documentation should be updated, too. For example, there's a "System props" section on the Material UI Stack page. Maybe there are more like these.

Thanks for calling out, I updated all of them.


Page needs to be more explicit that this is legacy API

[Enter feedback here]
This page refers to APIs that are older, yet the title of the page "Grant access to create Azure Enterprise subscriptions (preview)" has the word preview which leads readers to believe that this is the latest and greatest.
Can we change it to something like "Grant access to create Azure Enterprise subscriptions (legacy)"
There are notes in the doc are should be updated. Talks about going to a preview link for the GA version.
Need to be more explicit. Something like "Unless there is some limitation you run into, please us the GA version of the API at....."

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

ID: 564fcf4e-69b9-a8b0-a362-c4effeca4a8b
Version Independent ID: 7ae1feea-e9ca-bc0a-c984-81b19f4339b8
Content: Grant access to create Azure Enterprise subscriptions
Content Source: articles/cost-management-billing/manage/grant-access-to-create-subscription.md
Service: cost-management-billing
Sub-service: billing
GitHub Login: @bandersmsft
Microsoft Alias: banders

Thanks for the feedback! We are looking into this and will get back to you soon.

https://github.com/MicrosoftDocs/azure-docs-pr/pull/161749

@lunar87 Thanks for the feedback suggesting improvements. I'm making your suggested changes with https://github.com/MicrosoftDocs/azure-docs-pr/pull/161749. The article should get refreshed live tomorrow.
#please-close


Add Project Burnout metric

Under the authorship of @ruth-ikegah, we developed in the D&I WG this metric Project Burnout
https://docs.google.com/document/d/1XYvlo8uzaQ_YEUHyTHC92CZrQORQRBRLyZmaHaQlRzU/edit#

Thanks @GeorgLink I'm super pumped about this!

Looks Good To Me!!!!


DOC: added survey link

The added link will let the interested users access our survey directly.

Thanks for the review and sorry for the silly typo with the link! Sure, I'm correcting it right now and will add it to news.

that looks good.

can you please remove the .DS_Store file

you missed this one:)

But I did leave it out when uploading files from GitHub Desktop :D Isn't it enough to uncheck the file? I'll try again...

No experience with GitHub Desktop, but I think not. If you look at the diff, it's still there:

Now that you have it checked in, you need to explicitly remove it again (git rm .DS_Store on the command line).

You're right, it was still there :-) Desktop is probably not the best choice for removing files..

Merged, thanks @mkg33!

Live now:)


Fix hang when expanding arc tree node without azdata

Fixes https://github.com/microsoft/azuredatastudio/issues/14025
The promise here was causing a deadlock because of how the logic is set up - if an error occurs during a refresh it will then recall refresh in order to reprompt the user for controller info. This meant it was stuck on the promise forever the second time.
We no longer need this promise guard though - acquireAzdataSession will guarantee that a refresh is completely finished before another starts.
Now the behavior again will be that if the tree is expanded before azdata discovery is complete we'll display an error and prompt the user to reconnect :

This isn't completely ideal though - we really should be either waiting for the initial azdata discovery to complete (at which point we'll show the error if azdata isn't installed) or at least not pop up the login prompt if we couldn't find azdata since if we couldn't find azdata then we'd never be able to connect anyways.
I'll investigate into making this better but for right now fixing this to unblock any other testing.

Pull Request Test Coverage Report for Build 504879746

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.007%) to 43.122%

Files with Coverage Reduction
New Missed Lines
%

extensions/machine-learning/src/common/processService.ts
2
81.48%

Totals

Change from base Build 504838055:
-0.007%

Covered Lines:
24444

Relevant Lines:
51912

💛  - Coveralls

Pull Request Test Coverage Report for Build 504879746

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.007%) to 43.122%

Files with Coverage Reduction
New Missed Lines
%

extensions/machine-learning/src/common/processService.ts
2
81.48%

Totals

Change from base Build 504838055:
-0.007%

Covered Lines:
24444

Relevant Lines:
51912

💛  - Coveralls


Import time

Hello,
pynndescent takes ages to load, most likely because of heavy usage of numba jit. Would it be possible to use cache or AOT compilation?
In[1]: %time import pynndescent
Wall time: 17.9 s
In[2]: pynndescent.__version__
Out[2]: '0.5.1'

Ahead of time compilation creates some packaging issues. Perhaps it could be done, but it is beyond what I can manage right now (I would welcome any help).
I have tried caching, but it breaks for several functions, and produced issues for others, so it is avoided for a lot of cases.
I certainly understand the concerns. It is a long import time. Unfortunately I am not sure I can do much to remedy it right now.

Ahead of time compilation creates some packaging issues. Perhaps it could be done, but it is beyond what I can manage right now (I would welcome any help).
I have tried caching, but it breaks for several functions, and produced issues for others, so it is avoided for a lot of cases.
I certainly understand the concerns. It is a long import time. Unfortunately I am not sure I can do much to remedy it right now.

I just want to second this issue. It would be very helpful if something could be done.
This makes this excellent package (as well as others reliant on it - like umap) unusable in many production applications.
I now have two independent examples where using pynndescent would solve my problems, but can't deploy it because the import is too slow...
This is not a complaint, I'm thankful for the package, it's just pity I can't use it in practice...

It looks like very aggressive application of cache=True to all the top level numba jitted functions in the various submodules does a good job of alleviating a lot of this. Obviously I still need to check that caching is not going to cause other issues, but perhaps a solution might be forthcoming soon.

It’s still very slow compared to a lot of other packages. I can’t say I’d expect this to make umap “unusable in many production applications”, as that just means you should use a long running process instead of spawning a new python process for every call.
But it certainly hurts when you want to import a dependent package for something unrelated, e.g. for test collection.
This is how importing scanpy looked before I noticed and fixed it:

I see that some njit invocations are now cached and the import time has improved relative to original report, but from pynndescent import NNDescent still takes multiple seconds.
A quick review of pynndescent_.py shows that there are still many njit invocations with the cache either not set or set to False. Are there more opportunities to apply caching? How and why do things break when adding caching?