Crash with EnderOI facades and Galacticraft

When I go on the moon I crash only when I have a conduit hooked up to a sealer on the moon. Crash: http://pastebin.com/8YvxDYPh I think it may have something to do with JRE 8 and the being on the moon with no sound accept I have a frequency module which allows me to hear on the moon when I have it on. Thank you for your time.

This doesn't have anything to do with EnderIO, the crash report doesn't even mention EnderIO. Please report this to Galacticraft.


Director really really really wants to use Qt version 4.8.6 (but I have 4.8.7)

As of today, the director build is failing with the following error:
[  6%] Building CXX object src/vtk/DRCFilters/CMakeFiles/vtkDRCFilters.dir/depth_compose.cxx.o
gnumake[10]: *** No rule to make target `/usr/local/Cellar/qt/4.8.6/lib/QtGui.framework', needed by `lib/libvtkDRCFilters.dylib'.  Stop.
gnumake[9]: *** [src/vtk/DRCFilters/CMakeFiles/vtkDRCFilters.dir/all] Error 2
gnumake[8]: *** [all] Error 2
gnumake[7]: *** [src/ddapp-stamp/ddapp-build] Error 2
gnumake[6]: *** [CMakeFiles/ddapp.dir/all] Error 2
gnumake[5]: *** [all] Error 2
gnumake[4]: *** [all] Error 2
gnumake[3]: *** [director-prefix/src/director-stamp/director-build] Error 2
gnumake[2]: *** [CMakeFiles/director.dir/all] Error 2
gnumake[1]: *** [all] Error 2
make: *** [all] Error 2

which makes sense, because I don't have Qt 4.8.6; I have 4.8.7. The configuration process seems to know that:
-- Looking for QT_MAC_USE_COCOA
-- Looking for QT_MAC_USE_COCOA - found
-- Found Qt4: /usr/local/bin/qmake (found version "4.8.7")

but no matter what I do, the vtk filters still try to link against a non-existent version 4.8.6. My qmake --version returns:
± qmake --version
QMake version 2.01a
Using Qt version 4.8.7 in /usr/local/Cellar/qt/4.8.7/lib

which is correct.
I've done a clean build in director, manually removed director/distro/pods/drake-distro/pod-build, and even nuked the entire drake/pod-build folder, to no avail.
Any ideas?

Is it possible that you homebrew installed vtk while qt v4.8.6 was on your system?  I suspect this might fix it:
brew uninstall vtk5
brew install vtk5 --with-qt
The problem is that when the director uses vtk, it imports vtk's libraries and those reference non-existent qt v4.8.6.

That's probably the case. I'll reinstall vtk5 and see what happens.

@rdeits resolved?

Possibly, but I'm now getting QT errors when building signal-scope. But I'm not entirely sure that the vtk5 install completed successfully, so I'm going to retry that.

For signal-scope, you need to brew install qwt.
On Monday, August 24, 2015, Robin Deits<EMAIL_ADDRESS>wrote:

Possibly, but I'm now getting QT errors when building signal-scope. But
I'm not entirely sure that the vtk5 install completed successfully, so I'm
going to retry that.
—
Reply to this email directly or view it on GitHub
https://github.com/RobotLocomotion/director/issues/60#issuecomment-134303823
.

It works! Thanks


Navigating with mouse wheel in Skill Tree

You were able to switch between pages by using mouse wheel in Skill Tree in 1299.

This issue was moved to ApexKO/OpenKO#40

This problem handled by #114. Also #41 and #42 handled too. We may close them.


Select a release series for uuid which is compatible with diesel

uuid = "0" permits implicit/automatic breaking updates. This version requirement has been the source of many bizarre compilation issues for us, because paperclip-core will select uuid version 0.8.2, but diesel only provides impls on uuid version 0.6.5.
A carefully-manicured Cargo.lock can get us out of this situation, but it ends up being a pretty janky developer experience, because any accidental changes to it can often break the build with confusing errors.
The big downside to this is that it puts paperclip on uuid version 0.6, which in my experience is the only way to make things work with diesel. I see that you've previously been using 0.8 (in development?). Is there any particular reason why?

hmm I can't give you an answer as to why it's set to 0.8, seems it's been this way for years.
We also have another PR to bump it to 1, see #447.
Honestly I'm not sure what to do with this if different users have different requirements?
Provide different uuid features? Egg, uuid0 and uuid1?
Doesn't seem great, but not sure what else to do in order to support both, what do you think?

I would prefer a uuid0 and uuid1 feature.
The situation as it is now is extremely confusing to new Rust users, so I don't think making users pick one of the features is a big problem.

Diesel maintainer here. Let me clarify a few things, as there is some misconception in the OP.

but diesel only provides impls on uuid version 0.6.5.

This is not true for recent diesel versions. Diesel 1.4.8 support uuid with the versions between 0.2.x and 0.6.x behind the uuid feature flag and uuid 0.7.x and 0.8.x behind the uuidv07 feature flag. For the upcoming 2.0 release and the recent rc releases any uuid version > 0.7, <2.0 is supported behind the uuid feature flag.

uuid = "0" permits implicit/automatic breaking updates.

Using uuid = "0" as version constraint allows compatibility with all uuid versions supported by diesel. Cargo will just not select the right one by default in some cases. That's something you as a user can fix by issuing cargo update -p uuid --precise=some.version.path where the version needs to be supported by all of your crates. To be clear that's a bug/issue in how cargo resolves dependencies. There is no real way for crates to fix that.

Thank you @weiznich, so in that case I wonder if we could simply have a uuid0 feature which uses uuid="0" and a uui1 with uses uuid="1" ? Paperclip itself doesn't have any constraints on the uuid, we just impl a trait for the type, with no self.

I think between the PR referenced above and the new diesel release, this has been taken care of in better ways. Thanks all!


Fix doc comment for isNumber prop

The isNumber prop doesn't add textAlign: right to the cell.
Follow on from #596

ping @mshwery

Thanks!


add device_type helper function

added a helper function to identify the device type

Thank you very much!

I just published a new version with your addition.


First stab at pageTracking getTitle handler. Resolves #12

So this PR has three parts:

Fix some random indentation in package.json
Fixed bug where the default clickTracking handler could never be used because of Object.assign() blowing away the default filter method.
Put existing pageTracking title-getting behavior into an overridable getTitle() default handler

This would allow me to override getTitle to get the page title instead of the payload.instruction.config.title.
This is my first try at this, so feedback is appreciated. :)
Cheers!

Up for discussion: is the inclusion of deepmerge worth the extra dependency? It's small(550b gzipped), and it seems nicer to not have that code live in this repo... But what do you folks think?

Hi @miguelzakharia sorry for the delay in getting back with you all and @ostyn thanks for running with this - had a death in the family so been offline for a few days. Havent tested it out yet but yes this looks like it handles my issue as well.  Pulling now and will let you know if I run into any issues thanks!

My condolences, Kevin.

Sorry, Kevin :(

thanks guys appreciate the condolences,
best,
Kev

is then being merged in then?

I'll merge it in today and release it. I will not be able to get to it until later this evening though.
On Mar 21, 2017, 9:07 AM -0400, Kevin Stong<EMAIL_ADDRESS>wrote:

is then being merged in then?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub (https://github.com/miguelzakharia/aurelia-google-analytics/pull/15#issuecomment-288072551), or mute the thread (https://github.com/notifications/unsubscribe-auth/AApp7GJuSJgxUZw83fOFlI54iI6Bh1h-ks5rn8usgaJpZM4Mg-zo).


add ETWTracer to kudu

first line is the test output of :

second line:

third line:

fix issue #2340, but not yet tested in geneva

@suwatch why in traceModule we use Guid.NewGuid(), but in ninject we use Guid.Empty for missing requestId?


Ever growing MapDbFile

Hi,
We recently switched from 2.0-beta13 to 3.0.4 and we seem to be facing some odd behavior: our MapDb file which is constantly completely rewritten (HTreeMap with the exact same keys and values being reinserted) keeps on growing on every pass. That map contains over 500k key value pairs but I've reproduced it which much fewer values.
It looks that this could also explain #828
here is how we're writing in the map:
	public Observable<Integer> write(Observable<? extends Entry<K, V>> source) {
		return source
			.doOnSubscribe(() -> {
				this.loadDb();
				map.clear();
			})
			.doOnNext(e -> map.put(e.getKey(), e.getValue()))
			.doOnCompleted(() -> {
				this.db.commit();
				this.close();
			})
			.count();
	}

The DB is created with the following options:
DBMaker
			.fileDB(new File(config.getMapDbFullPath()))
			.fileMmapEnable() // Memory mapped files are much faster and should be enabled on 64bit systems for better performance.
			.transactionEnable() // Transactions have a performance overhead, but without them the store gets corrupted if not closed properly.
			.fileMmapPreclearDisable() // Make mmap file faster
			// Unmap (release resources) file when its closed.
			// That can cause JVM crash if file is accessed after it was unmapped
			// (there is possible race condition).
			.cleanerHackEnable()
			.closeOnJvmShutdown();

And here's what the loadDb method looks like
	public void loadDb() {
		if (loadingDb.compareAndSet(false, true)) {
			boolean initial = this.db == null;
			L.debug("[" + name + "] " + (initial ? "L" : "Rel") + "oadind data...");
			close();

			Observable.just(maker)
				.map(m -> m.make())
				.doOnError(t -> L.warn("[" + name + "] Failed to load db, will retry in " + DB_RETRY_INTERVAL_MS + "ms (" + t.getMessage() + ")", t))
				.retryWhen(o -> o.flatMap(t -> Observable.timer(DB_RETRY_INTERVAL_MS, TimeUnit.MILLISECONDS)))
				.toBlocking()
				.subscribe(db -> {
					this.db = db;
					this.map = db.hashMap(this.name)
						.keySerializer(serializer.keySerializer())
						.valueSerializer(serializer.valueSerializer())
						.createOrOpen();
					L.debug("[" + name + "] Data " + (initial ? "" : "re") + "loaded");
					loadingDb.set(false);
				});
		}
	}

	protected void close() {
		if (map != null) {
			map.close();
		}
		if (db != null && !db.isClosed()) {
			db.close();
		}
	}

Any idea what may be going wrong ?

Not that it seems that if I remove the part that clears the db, then it stops growing. That prevents me from removing entries though. Would there be something I'm missing when I remove values ?

It is not the only problem we had. We had a huge data corruption using version 3.0.4. Key/value association seems corrupted. We had to rollback to 2.0-beta13. I'd be willing to talk about our use case with you if you want.

Hi,
compaction is missing in 3.0x in transaction store. That explains the
growing file.
Jan
On Thu, 2017-05-18 at 03:06 -0700, Laurent wrote:

Hi,
We recently switched from 2.0-beta13 to 3.0.4 and we seem to be
facing some odd behavior: our MapDb file which is constantly
completely rewritten (HTreeMap with the exact same keys and values
being reinserted) keeps on growing on every pass. That map contains
over 500k key value pairs but I've reproduced it which much fewer
values.
It looks that this could also explain #828
here is how we're writing in the map:
public Observable write(Observable<? extends Entry<K,
V>> source) {
return source
.doOnSubscribe(() -> {
this.loadDb();
map.clear();
})
.doOnNext(e -> map.put(e.getKey(),
e.getValue()))
.doOnCompleted(() -> {
this.db.commit();
this.close();
})
.count();
}
The DB is created with the following options:
DBMaker
.fileDB(new File(config.getMapDbFullPath()))
.fileMmapEnable() // Memory mapped files are
much faster and should be enabled on 64bit systems for better
performance.
.transactionEnable() // Transactions have a
performance overhead, but without them the store gets corrupted if
not closed properly.
.fileMmapPreclearDisable() // Make mmap file
faster
// Unmap (release resources) file when its
closed.
// That can cause JVM crash if file is accessed
after it was unmapped
// (there is possible race condition).
.cleanerHackEnable()
.closeOnJvmShutdown();
And here's what the loadDb method looks like
public void loadDb() {
if (loadingDb.compareAndSet(false, true)) {
boolean initial = this.db == null;
L.debug("[" + name + "] " + (initial ? "L" :
"Rel") + "oadind data...");
close();
  	Observable.just(maker)
  		.map(m -> m.make())
  		.doOnError(t -> L.warn("[" + name + "]

Failed to load db, will retry in " + DB_RETRY_INTERVAL_MS + "ms (" +
t.getMessage() + ")", t))
.retryWhen(o -> o.flatMap(t ->
Observable.timer(DB_RETRY_INTERVAL_MS, TimeUnit.MILLISECONDS)))
.toBlocking()
.subscribe(db -> {
this.db = db;
this.map =
db.hashMap(this.name)
.keySerializer(serializ
er.keySerializer())
.valueSerializer(serial
izer.valueSerializer())
.createOrOpen();
L.debug("[" + name + "] Data "

(initial ? "" : "re") + "loaded");
loadingDb.set(false);
});
}
}
protected void close() {
if (map != null) {
map.close();
}
if (db != null && !db.isClosed()) {
db.close();
}
}

Any idea what may be going wrong ?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c5
5493e4bb","name":"GitHub"},"entity":{"external_key":"github/jankotek/
mapdb","title":"jankotek/mapdb","subtitle":"GitHub
repository","main_image_url":"https://cloud.githubusercontent.com/ass
ets/143418/17495839/a5054eac-5d88-11e6-95fc-
7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent
.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-
b52498112777.png","action":{"name":"Open in
GitHub","url":"https://github.com/jankotek/mapdb"}},"updates":{"snipp
ets":[{"icon":"DESCRIPTION","message":"Ever growing MapDbFile
(#829)"}],"action":{"name":"View
Issue","url":"https://github.com/jankotek/mapdb/issues/829"}}}


[FLINK-21659][coordination] Properly expose checkpoint settings for initializing jobs

Ensures that various checkpointing-related settings are written into the ArchivedExecutionGraph when the job is in an INITIALIZING state, if checkpointing is enabled.
Previously we always nulled these fields, due to which the checkpoint handlers throw exceptions claiming checkpointing to be disabled.

As is your proposal wouldn't have really helped; it was generally clear from the start that something went wrong when querying the rest api.
The proper solution would be to query the api, and if the return code is not 200, print the full response. But that seems surprisingly difficult with curl. If exit code is 200, parse as usual, and if that fails also print the response. But that's something I did not want to bother with because bash.


name of nodes

hi,
thanks for the code shared,
would you please let me know how I can now the name of nodes in your code?

Hello Saria. I'm not sure if that's exactly what you're asking, but the name of each TensorFlow node is usually passed as the parameter name in TensorFlow methods. For example: https://github.com/rvinas/sentiment_analysis_tensorflow/blob/master/tsa/neural_network.py#L179

thank you ramon,
Actually I am working on your model, Its great,
I want to freeze the model then optimize that for using the model in android studio,
I successfully freezed the model, but it raises error for optimization,
May I ask you to have a look on that regarding this,?
I greatly appreciate your help,
actually I am suffering of near deadline,
I worked on that for two days but it seems I have problem with the concept maybe

actually this is the code for freezing and optimization,
freezing works, but optimization :|
def freeze_graph(model_folder):
# We retrieve our checkpoint fullpath
checkpoint = tf.train.get_checkpoint_state(model_dir)
input_checkpoint = checkpoint.model_checkpoint_path

# We precise the file fullname of our freezed graph
absolute_model_folder = "/".join(input_checkpoint.split('/')[:-1])
output_graph = absolute_model_folder + "/frozen_model.pb"

# Before exporting our graph, we need to precise what is our output node
# This is how TF decides what part of the Graph he has to keep and what part it can dump
# NOTE: this variable is plural, because you can have multiple output nodes
output_node_names = [n.name for n in tf.get_default_graph().as_graph_def().node]

# We clear devices to allow TensorFlow to control on which device it will load operations
clear_devices = True

# We import the meta graph and retrieve a Saver
saver = tf.train.import_meta_graph(input_checkpoint + '.meta', clear_devices=clear_devices)

# We retrieve the protobuf graph definition
graph = tf.get_default_graph()
input_graph_def = graph.as_graph_def()

print(input_graph_def)

# We start a session and restore the graph weights
with tf.Session() as sess:
    saver.restore(sess, input_checkpoint)
    print(input_checkpoint)
    # We use a built-in TF helper to export variables to constants
    output_graph_def = tf.graph_util.convert_variables_to_constants(
        sess,  # The session is used to retrieve the weights
        input_graph_def,  # The graph_def is used to retrieve the nodes
        output_node_names  # The output node names are used to select the usefull nodes
    )

    # Finally we serialize and dump the output graph to the filesystem
    with tf.gfile.GFile(output_graph, "wb") as f:
        f.write(output_graph_def.SerializeToString())
    print("%d ops in the final graph." % len(output_graph_def.node))

if name == 'main':
parser = argparse.ArgumentParser()
parser.add_argument("--model_folder", type=str, help="Model folder to export")
args = parser.parse_args()
freeze_graph(args.model_folder)

input_graph_def = tf.GraphDef()
checkpoint = tf.train.get_checkpoint_state(model_dir)
input_checkpoint = checkpoint.model_checkpoint_path

absolute_model_folder = "/".join(input_checkpoint.split('/')[:-1])
output_graph = absolute_model_folder + "/frozen_model.pb"

with tf.gfile.FastGFile(output_graph, 'rb') as f:
    graph_def = tf.GraphDef()
    graph_def.ParseFromString(f.read())
    _ = tf.import_graph_def(graph_def, name='')
output_graph_def = optimize_for_inference_lib.optimize_for_inference(
    graph_def,
    ['loss'],
    [''],
    tf.float32.as_datatype_enum)

Hello Saria. Which is the error you get? Is it related to my code?
Unfortunately, I'm very busy right now and I can't guarantee my help.
Thank you

I dont think its related to your code, but probably you are the best one that may fix it out or say that it cant be fix, because you know the code more I mean the functionality and input output, because the error is abou input and this is the last part of the code,
actually this is the error:
node, 'Input tensor %r %s' % (input_name, te)))
ValueError: graph_def is invalid at node 'word_embeddings/Variable/Assign': Input tensor 'word_embeddings/Variable:0' Cannot convert a tensor of type float32 to an input of type float32_ref.
but I see that you are busy, many thanks for your reply

I resolved this part, actually the name wasnt loss,
thanks for helping


[PE-D][Tester D] Find feature is unable to find with certain parameters e.g. phone, email, tele user

The find feature is unable to be used to find with certain parameters, like phone, email and telegram username. I believe this is less useful to the intended target user, because they might need to search by any one of these features (e.g. if they remember the telegram username better because the student's name is complicated).
It would be good to allow functionalities for the other parameters.

Labels: type.FeatureFlaw severity.Medium
original: rachelyeohm/ped#10

As discussed, users are unlikely to search by phone number etc, which was why we decided not to include these parameters. Perhaps this could be made clearer in the user guide (that the parameters chosen are useful for the user)


Publish yarn plugin

Add a release script and a yarn script to run it, similar to how it is done in the @spdx/tools library.
Then run it to publish V0.0.1

Before publishing, make sure that the pre-commit hooks throw no warnings.

Before publishing, https://github.com/spdx/tools-ts/issues/227 should be fixed.

Closed in favor of https://github.com/spdx/yarn-plugin-spdx/issues/13


added way for user to configure shell environment before it's executed.

From Discord: https://discord.com/channels/571796279483564041/973241313778630727/973342497331900426
Added SHELL_ENV_EXPANDER construction variables. This variable allows the user to Define a function which will be called to obtain an environment which will be used in the shell command of some Action.
Contributor Checklist:

[x] I have created a new test or updated the unit tests to cover the new/changed functionality.
[x] I have updated CHANGES.txt (and read the README.rst)
[x] I have updated the appropriate documentation

Still need to write some tests to remove WIP

I think SHELL_ENV_GENERATOR is a better name, because you may want to do other things the subst expand..
@mwichmann - any thoughts?


Semantic Highlighting for Type Hints

I recently updated to Pylance 2020.9.0 and I really like the Semantic Highlighting!
However it seems like type hints don't have any special semantic (usually it's a class) and I'm wanted type hints to have a different color than classes. Whether it's annotation type hints or comment type hints.
Before this update, comment type hints had special TextMate scopes like comment.typehint and meta.typehint which I've customized, and now these are overridden by the semantic colors. Is it at least possible to still enforce my colors in this case?

This is a screenshot of how comment type hints look right now after the update:

Previously the classes (int, Order, datetime) had the same color as the # type: token (a semi-transparent purple), is it possible to achieve that again without completely disabling semantic highlighting?

Out of curiosity, why are you still using type comments? Are you stuck on an old version of Python? Since Python 3.6, variable type annotations can and should be provided using the new syntax in PEP 526.

I used the type comments mainly because I was able to give them a different color based on TextMate Scopes. Not being able to customize the color for annotations made Django Model Definitions quite unreadable. I use annotations everywhere else though.

Thanks. I'll investigate if we can make this customizable.

This has been fixed for the next release.

You'll also be able to do something like this:

Given settings like these:
  "editor.semanticTokenColorCustomizations": {
    "[One Dark Pro]": {
      "rules": {
        "*.typeHint": "#00ff00"
      }
    }
  },
  "editor.tokenColorCustomizations": {
    "[One Dark Pro]": {
      "textMateRules": [
        {
          "scope": "meta.typehint",
          "settings": {
            "foreground": "#a32f9aaa"
          }
        },
        {
          "scope": "comment.typehint",
          "settings": {
            "foreground": "#a32f9aaa"
          }
        }
      ]
    }
  },

@huguesv great 😁
Does modifier also apply to annotation-based type hints?
self._identifier: int = MY_CONSTANT

@hassanselim0 it does not, from what I saw it didn't seem that textmate was setting a special scope for it either.

But it's relatively easy to add a different modifier for this case (so that you'd be able to distinguish from the ones in comments).

@huguesv It would be great to have a modifier for annotation type hints (same or different), the reason I went with comment hints in the first place was because TestMate didn't have a scope for annotation hints.
I think if I can give annotation hints a different color it would make certain bits of code more readable, like the Django Model in the screenshot I uploaded earlier, to visually separate the type from the field class beside it. That's my main goal here.
Side Note: The reason I'm even putting type hints in Django Models is because even though the class attributes have types that are a subclass of orm Field, the instance attributes have normal python types. So name = CharField() when later accessed via self.name gives an str type. So I write the class attr as name: str = CharField() or name = CharField()  # type: str so that VS Code would better help me.
If there is a way to write a pyi file and define CharField in such a way that the the Language Server would automatically show me all instances of CharField as having a type of str without using any type hints, I'd be glad to know.

@hassanselim0, the best way to declare CharField in a stub file is to define a __get__ method that returns str. That's how CharField is implemented in django, so defining it that way in the type stub will produce the most accurate results.
Incidentally, there is a stub package available for django.

I do have django stubs installed and working, but it doesn't do that behavior in my code.
I checked to see the stub file here: https://github.com/typeddjango/django-stubs/blob/master/django-stubs/db/models/fields/init.pyi#L107
They have overloaded __get__, it can return a Field type or a "get return type", but I don't understand how the type checker is supposed to figure out which overload to pick. The end result is that Pylance tells me the instance attr is of type Any. I'm not sure if this is a bug in the stub or in Pylance, then maybe create a separate issue for this?

This would warrant another issue, yes, as it doesn't really fit within the bounds of the original semantic highlighting issue.

Yeah, if you think that the type checker is not correctly handling __get__ in this case, please file a separate issue — preferably in the pyright repo, since that's where the type checking logic lives. Thanks!

Done, I've actually commented on a closed ticket about a very similar issue, so it can be reopened in case it's a regression.
Getting back to the original issue, I still think it would be useful to have a semantic modifier for annotation type hints, so you can easily customize the colors for all type hints whether they are in an annotation or a comment.

I've just checked in a change that allows customization of colors for type hints in annotation or comment. It will be in the next release of Pylance.
Default colors (One Dark Pro):

Customized colors (One Dark Pro):
  "editor.semanticTokenColorCustomizations": {
    "[One Dark Pro]": {
      "rules": {
        "*.typeHint": "#286605",
        "*.typeHintComment": "#6ed3d3"
      }
    }
  }

@huguesv thank you 😁

This issue has been fixed in version 2020.9.6, which we've just released. You can find the changelog here: https://github.com/microsoft/pylance-release/blob/master/CHANGELOG.md#202096-23-september-2020

@jakebailey @huguesv Thank you for your efforts, I just got around to testing this today and stumbled upon two issues. I set *.typeHint and *.typeHintComment to #ff000000 to test the new modifiers.
This is the first one:

The square brackets used for generic types doesn't have the new typeHint modifier.
This is the second one:

In function argument annotations that have generic types, the generic type doesn't have the typeHint modifier.

That's likely a bug; we'd appreciate a new issue for tracking.


feat: use date from default date picker, fronted for chose metric and…

… dimensions, correct cast float to number

please check and reply comment


Not clear what gets lowercased

Only header_choice_displayed_and_accepted and valid_entries should be lowercased.
Not returns, for example
Make clear in documentation and example yamls
Write test for this

Added to README/TODO


I couldn't find a way to contact you

Hey Mikeee324, I think this is a really cool project and I'd love to get involved and help you achieve the goal of making Golf world's much easier to make for VRChat, I played the Junkyard Minigolf yesterday and it was the best golf world I've played yet and I started thinking about trying to make a golf world of my own and then I looked into it and found this GitHub and thought maybe you'd like some help from someone just as passionate about golf in VRChat to help you whether it be with modelling, Coding or whatever else is needed
I also have tons of free time
I know this is probably a long shot but I hope to hear back from you, regardless I'm rooting for you - Cube

Hiya, apologies for the late reply!
I'm glad you love the project. If you'd like to help out I'd definitely appreciate it!
I don't have tonnes of stuff left to add to the main library as it is right now. The bulk of the recent work I've done is optimising various parts to reduce frame stutters and trying to track down weird issues.
If you'd like to you can add me on discord with the same name (but lowercase) and we can figure things out a bit better!

I think I added you but in case I didn't my discord name is formingcube2

Yep, received it :)
I'll close this issue down for now!


Load new MTD columns for MET version 9.0.

See https://github.com/NCAR/METviewer/issues/164
The columns for the MODE Time Domain output have been updated for MET version 9.0.
(1) Make time convolution amount configurable:
NCAR/MET#1133
Add 4 new MTD header columns: FCST_T_BEG, FCST_T_END, OBS_T_BEG, OBS_T_END
These are integers indicating the beginning/ending of the time convolution window. They appear in the header columns for all MTD text files. For example...
mtd_BASIC_20100517_010000V_2d.txt
mtd_BASIC_20100517_010000V_3d_pair_cluster.txt
mtd_BASIC_20100517_010000V_3d_pair_simple.txt
mtd_BASIC_20100517_010000V_3d_single_cluster.txt
mtd_BASIC_20100517_010000V_3d_single_simple.txt
These 4 header columns should appear in the METviewer GUI in the same menus as the other header columns (like FCST_RAD and FCST_THR).
(2) Add a user-configurable intensity percentile:
NCAR/MET#1134
Add 1 new MTD data column: INTENSITY_* where * is a number between 0 and 100 and is specified by the user. This is exactly the same logic as in the MODE output. The last INTENSITY_ columns is configurable by the user.

Completed as part of Issue 23.
The configurable Intensity column is named intensity_nn


Reference code instead of inline code?

Is your feature request related to a problem? Please describe.
Just came across this, it's exactly what we are looking for.
I'm far from a sphinx expert, so not sure if this is already possible, but it would be great to be able to reference code files from a different location instead of including the actual code inline in the page, with something like
.. literalinclude:: ../examples/example-code.json
I tried a few different ways but couldn't get it to work.. maybe it just can't.  For example:
.. tabs::

    .. code-tab:: json classic

        .. literalinclude:: ../examples/example-code.json

Describe the solution you'd like
Would be great to reference code instead of putting it inline.  We are trying to use it for an code examples page where there would be maybe 10 examples or more on a page, and sometimes more, and each example can be 100 or more lines... so it just makes the page much longer.  Again, not sure it's even possible.
Describe alternatives you've considered
It does work with just putting the code inline, so definitely not a show-stopper.
Additional context
Add any other context or screenshots about the feature request here.

Hi @JosephPJordan, good question - that approach would make the document much more concise.
I think you should be able to achieve this with our group-tab and the literalinclude directive:
.. tabs::

    .. group-tab:: json classic

        .. literalinclude:: ../examples/example-code.json
            :language: json

code-tabs currently expect the code directly, while group-tab's can hold any content. So I'd use the language option for literalinclude to set the code language.
As long as you use consistent names for the tabs between tab sets, they should use the grouping action when changing between languages.
Hope this helps 😄

@foster999, thanks, that did the trick!!  Appreciate the quick response.


How can i request a specific follower to be leader?

I might have the wrong idea how this is done (if so please correct me) but when deploying new versions of a software using aeron cluster, if you want no downtime deploys then you would take down one of the followers upgrade to your new version, let it sync up with snapshots and the log and then make it the leader when you are confident everything is good.
Is there a way to request a specific follower to take over and be the leader? ClusterTool seems not to have such functionality
How do you do 0 downtime deploys with services that are using aeron cluster?

With Raft you never decide which node should be leader. For our customers on commercial support we can detail what steps are necessary to do hot upgrades.


Flood fill in C#

C# implementation of Flood fill. Added the code in flood_fill.md

Hello @DimYfantidis and thank you for your interest in the AAA.
We'll try to review your PR as soon as possible, but be aware that it might take a while, as I'm not sure we currently have available C# reviewers.
From what I see, there is a lot of boilerplate code, which seems like a lot to me, but I'm not a C# expert.
I'll nonetheless get a first review path going soon-ish, so that it doesn't get too stuck in review limbo

I tried compiling on my machine, and it simply didn't.
I'm using an Ubuntu 20.04 machine, with the mono-complete package.
Could you provide compilation instructions for Linux?
Here's the output:
❯ mcs FloodFill.cs
FloodFill.cs(65,33): error CS1525: Unexpected symbol `+', expecting `)', `,', or `identifier'
FloodFill.cs(65,36): error CS1525: Unexpected symbol `)', expecting `)', `,', or `identifier'
FloodFill.cs(66,16): error CS1525: Unexpected symbol `new', expecting `)', `,', or `identifier'
FloodFill.cs(66,34): error CS1525: Unexpected symbol `.', expecting `)', `,', or `identifier'
FloodFill.cs(67,16): error CS1525: Unexpected symbol `new', expecting `)', `,', or `identifier'
FloodFill.cs(67,30): error CS1525: Unexpected symbol `.', expecting `)', `,', or `identifier'
FloodFill.cs(68,16): error CS1525: Unexpected symbol `new', expecting `)', `,', or `identifier'
FloodFill.cs(68,34): error CS1525: Unexpected symbol `.', expecting `)', `,', or `identifier'
FloodFill.cs(156,20): error CS1525: Unexpected symbol `)', expecting `(' or `type'
FloodFill.cs(156,25): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(156,28): error CS1525: Unexpected symbol `1', expecting `(' or `type'
FloodFill.cs(156,31): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(156,34): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(157,16): error CS1525: Unexpected symbol `new', expecting `(' or `type'
FloodFill.cs(157,25): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(157,28): error CS1525: Unexpected symbol `1', expecting `(' or `type'
FloodFill.cs(157,31): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(157,34): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(158,16): error CS1525: Unexpected symbol `new', expecting `(' or `type'
FloodFill.cs(158,25): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(158,28): error CS1525: Unexpected symbol `1', expecting `(' or `type'
FloodFill.cs(158,31): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(158,34): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(159,16): error CS1525: Unexpected symbol `new', expecting `(' or `type'
FloodFill.cs(159,25): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(159,28): error CS1525: Unexpected symbol `1', expecting `(' or `type'
FloodFill.cs(159,31): error CS1525: Unexpected symbol `1', expecting `(' or `type'
FloodFill.cs(159,34): error CS1525: Unexpected symbol `1', expecting `(' or `type'
FloodFill.cs(160,16): error CS1525: Unexpected symbol `new', expecting `(' or `type'
FloodFill.cs(160,25): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(160,28): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(160,31): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(160,34): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(164,20): error CS1525: Unexpected symbol `)', expecting `(' or `type'
FloodFill.cs(164,25): error CS1525: Unexpected symbol `3', expecting `(' or `type'
FloodFill.cs(164,28): error CS1525: Unexpected symbol `1', expecting `(' or `type'
FloodFill.cs(164,31): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(164,34): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(165,16): error CS1525: Unexpected symbol `new', expecting `(' or `type'
FloodFill.cs(165,25): error CS1525: Unexpected symbol `3', expecting `(' or `type'
FloodFill.cs(165,28): error CS1525: Unexpected symbol `1', expecting `(' or `type'
FloodFill.cs(165,31): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(165,34): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(166,16): error CS1525: Unexpected symbol `new', expecting `(' or `type'
FloodFill.cs(166,25): error CS1525: Unexpected symbol `3', expecting `(' or `type'
FloodFill.cs(166,28): error CS1525: Unexpected symbol `1', expecting `(' or `type'
FloodFill.cs(166,31): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(166,34): error CS1525: Unexpected symbol `0', expecting `(' or `type'
FloodFill.cs(167,16): error CS1525: Unexpected symbol `new', expecting `(' or `type'
FloodFill.cs(167,25): error CS1525: Unexpected symbol `3', expecting `(' or `type'
FloodFill.cs(167,28): error CS1525: Unexpected symbol `1', expecting `(' or `type'
FloodFill.cs(167,31): error CS1525: Unexpected symbol `1', expecting `(' or `type'
FloodFill.cs(167,34): error CS1525: Unexpected symbol `1', expecting `(' or `type'
FloodFill.cs(168,16): error CS1525: Unexpected symbol `new', expecting `(' or `type'
FloodFill.cs(168,25): error CS1525: Unexpected symbol `3', expecting `(' or `type'
FloodFill.cs(168,28): error CS1525: Unexpected symbol `3', expecting `(' or `type'
FloodFill.cs(168,31): error CS1525: Unexpected symbol `3', expecting `(' or `type'
FloodFill.cs(168,34): error CS1525: Unexpected symbol `3', expecting `(' or `type'
Compilation failed: 58 error(s), 0 warnings

Thank you for your time, I'm very sorry but it seems that there are no special compilation instructions for Linux. Normally, "mcs FloodFill.cs" should be enough, but it seems that I've written code that could compile and execute due to specific IDE configurations that I had on my machine. I have made changes to the code and it now compiles successfully on Ubuntu 22.04.3 simply by typing the aforementioned command (It would be very unlucky if it was to fail Ubuntu 20.04 though very unlikely; I believe it should compile fine on your machine now).
I'm not sure on how I could change the code I have commited. Is it possible that, in this specific pull request, I could change the contents of FloodFill.cs? Or should I create a new pull request? If the former is possible, notify me so that we could come in contact on Discord. (I'm a new at contributing to open source projects and github projects)
Thanks again and I'm very sorry.

You can simply modify the code and git add FloodFill.cs and then git commit with a relevant message.
When you then git push, we'll get the up to date code in this PR. :)

Done. I'm on standby in case another problem occurs, although now I suppose everything is fine. 👍

Thanks, it compiles now.
I'll try to get a PR going to get C# into our build system to make sure we don't have a problem like that any more.
Hopefully we can get a competent C# developer who can look at your PR soon :)

Alright, the PR to get C# in our build system is up (#1012)

Alright, I have refactored code and markdown according to the above discussion.


Revert "Delete Subversion support"

Reverts caskroom/homebrew-cask#16118.
Looks like there was a case for this after all.
This necessity makes me dislike subversion support even more, though. The reason we’re doing it this way is svn, unlike git, allows us to checkout a single directory from the repo, making for a smaller download.
Download size in itself isn’t that big a deal, I’d say, since worst case scenario the download of a full fonts repo should be ≈250MBs (Google Fonts) and there are bigger apps.
However, using subversion in this manner is in itself bad for casks, I’d argue, since it requires an important additional value to urls. This subversion revision value is (seems like) an obtuse parameter to get in the context of a github repo, and I’m not even sure there’s an easy way for contributors to know when to updated it and to what value. It also makes the cask somewhat more difficult to understand in the sense that its url value will seem to lead nowhere.
In light of all this, I’d rather have yet a different solution. I briefly considered a sibling project, like our sister alehouse to host these multiple-fonts-per-repo fonts. I was envisioning a script that regularly would download those repos, package fonts as individual zip files, and push them to a github repo. Corresponding cask font files would then be set to :latest (fonts is one case where you absolutely always want the latest) and download from there. Those wouldn’t really be official links, though, and there may be other things I’m also not predicting there.
Any ideas?

@vitorgalvao We should revert this merge ASAP and open up a discussion about a solution - the fonts repository is currently unusable.


Theme is not completely responsive on mobile device.

The theme is responsive when I view pages, but when i open side menu, it become unresponsive. Please see screenshot to better understand.
My device Have Display Resolution
2400 x 1080, device is Poco X3 Pro, and I am on Kiwi Browser.

I can not reproduce this issue on a Nokia 7.2 with Android 11. Neither with Chrome 110.0.5481.63 nor Firefox 109.2.0.
Also a iPhone 8 with iOS 16.1.2 and Chrome or Safari has no problems.
This must be specific to your Kiwi browser. Please test with a different browser.

Thanks, Checked on Firefox Nightly, No issue there, it is specific to kiwi browser.


Fail to view student contributions

Hi,
I fail to view the student contributions when I am in the teacher mode. I can see the registered students but I cannot see the exercises they realized. I guess the students have to make a synchronization and the teacher as well right? But even with the synchronization, it does not work. May be, it is due to some problems of synchronization I have when the Git copy is clean (nothing to commit) and for which I obtain the following message in Learn OCaml : "HTTP error (500): Error: Internal Server Error". Could you help me?
Thanks a lot for your help.
All the best,
David.

Hi David,
you should be able to inspect students' contributions by a middle-click on the student identifier.
Can you tell me how you are running your learn-ocaml instance?

Hi Yann Régis,
Yes, I can open the window of the contributions of one student (as you indicate). But no contribution is displayed. I have the message "No assigned or open exercises found". But I use the "Demo of the exercise environment" and the student (another account) has realized the corresponding exercise.
I run the learn-ocaml instance locally with : learn-ocaml serve --port 8080, and I first make the exercise with a student account, and finally I enter the teacher mode with the teacher account (where I can see the student but not his contributions).
Thanks again for your help.
David.

It is probably due to the permissions of the sync directory.
If you run the command from the demo-repository of the git repository, then learn-ocaml must have created a sync folder inside. Do you confirm that? What are the permissions/owner of this directory?

I run learn-ocaml in a directory with the following content:
drwxrwxr-x  5 delahaye delahaye 4096 janv.  6 15:21 my-learn-ocaml-repository
drwxrwxrwx  4 delahaye delahaye 4096 juin  15  2019 sync
drwxr-xr-x  9 delahaye delahaye 4096 juin  15  2019 www
The content of "my-learn-ocaml-repository" is actually the same as the demo-repository in the git repository. I provide all the permissions to the "sync" directory but the synchronization still fails. Should I change the owner as well?

You should run learn-ocaml from inside the my-learn-ocaml-repository
directory.
On Mon, Jan 6, 2020 at 3:34 PM delahayd<EMAIL_ADDRESS>wrote:

I run learn-ocaml in a directory with the following content:
drwxrwxr-x 5 delahaye delahaye 4096 janv. 6 15:21 my-learn-ocaml-repository
drwxrwxrwx 4 delahaye delahaye 4096 juin 15 2019 sync
drwxr-xr-x 9 delahaye delahaye 4096 juin 15 2019 www
The content of "my-learn-ocaml-repository" is actually the same as the
demo-repository in the git repository. I provide all the permissions to the
"sync" directory but the synchronization still fails. Should I change the
owner as well?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ocaml-sf/learn-ocaml/issues/337?email_source=notifications&email_token=AADNQ3Z7DT3TLPECNOGICVLQ4M6PNA5CNFSM4KDELE4KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIFTLKI#issuecomment-571159977,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADNQ35COEBCM4TMIT57MT3Q4M6PNANCNFSM4KDELE4A
.

It does not work because once built, I must launch the server in the directory where I have the "www" directory. Otherwise, I have the following error in the browser: "Error: Unix.Unix_error(Unix.ENOENT, "open", "./www/index.html")". Anyway, after the app for a given exercise repository has been built (with "learn-ocaml build"), I guess it is not used anymore, right?

The synchronization works only when something has changed, otherwise I have an error. Here is the trace of the server (the first synchronization works but the second fails):
2020-01-06T15:00:24Z	<IP_ADDRESS>	POST	/sync?token=GBS-TOK-D1T-JHJ
HEAD est maintenant à ba93f3a Update
[master 7c78e38] Update
1 file changed, 6 insertions(+)
2020-01-06T15:00:30Z	<IP_ADDRESS>	POST	/sync?token=GBS-TOK-D1T-JHJ
HEAD est maintenant à 7c78e38 Update
Sur la branche master
rien à valider, la copie de travail est propre
Error handling ((headers
((accept /) (accept-encoding "gzip, deflate")
(accept-language "fr,en-US;q=0.7,en;q=0.3") (connection keep-alive)
(content-length 155) (content-type application/x-www-form-urlencoded)
(host localhost:8080) (origin http://localhost:8080)
(referer http://localhost:8080/)
(user-agent
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0")))
(meth POST) (resource /sync?token=GBS-TOK-D1T-JHJ) (version HTTP_1_1)
(encoding (Fixed 155))): (Failure "git command failed: commit -m Update")

I see. This is definitely a bug.

Sorry for having accidentally closed the issue.

@delahayd Can you try now?

The bug of synchronization with no change is solved, thanks a lot.
However, I still fail to find the contributions of a student. The window opens when I select a given student but I have the message "No assigned or open exercises found" while the demo exercise pack is marked as opened in the teacher account and while the student has realized the exercises and saved his changes with the synchronization button. I guess I do something wrong but I do not know what. Any idea? Thanks again for your help.

I found the bug and I am working on a fix.
For the moment, what you can do as a workaround is to mark the exercise as "closed" (do not forget to click on "apply") and mark it back to "open" (and again do not forget to click on "apply".)

Great! The workaround you indicate works perfectly, thanks. Do not hesitate to tell me when the bug will have been fixed. Thanks again for your quick support.

Closed by https://github.com/ocaml-sf/learn-ocaml/pull/439


Poh Dungeon Corridors and Junctions loading improperly

Type
Other
Operating System
Windows
OS Version
Windows 10
Bug description
Upper levels load into the Dungeon Corridors and Junctions when using certain house themes
Basic stone, Whitewashed stone, Fremennik-style wood styles not affected
Doesn't happen in the official client or mobile.
Screenshots or videos

RuneLite version
RuneLite Version: <IP_ADDRESS>
Launcher Version: 2.7.2
Logs
No response

I saw a streamer with this issue several months ago and after fiddling around with settings he concluded it was the "Roof Removal" plugin.
I don't have an upstairs or dungeon in my house to test with

Thank you! wow much appreciated! Helped me solve the eyesore I've been looking at for months


Phospholipases - merges and improvements of definitions

Hello,
From #21230
After discussion with @aimol - @lbreuza and I propose to

change the definition of children of GO:0004620 phospholipase activity, for example for

GO:0004623 phospholipase A2 activity
Current def:
Catalysis of the reaction: phosphatidylcholine + H2O = 1-acylglycerophosphocholine + a carboxylate.
Change to something like:
Hydrolysis of a glycerophospholipid, removing the fatty acid attached to the sn2-position. Substrates include phosphatidylcholine, phosphatidylethanolamine, choline plasmalogen and phosphatides, for example catalyzing the reaction: phosphatidylcholine + H2O = 1-acylglycerophosphocholine + a carboxylate.

Obsolete (or merge) GO:0035755 cardiolipin hydrolase activity since this represents a specific substrate of PLD.

Merge

[ ] GO:0052740  1-acyl-2-lysophosphatidylserine acylhydrolase activity into GO:0008970 phospholipase A1 activity (same EC xref; all IEA annotations

Remove EC:<IP_ADDRESS> from terms other than GO:0047498 calcium-dependent phospholipase A2 activity

@alanbridge @aimol please let us know what you think.

Question for @lbreuza
Can you give us a sense of how many RHEA each of those phopholipase correspond to? for example PLA2?

I would not obsolete GO:0035755 cardiolipin hydrolase activity, can you edit the name to match the description instead? Maybe cardiolipin PLD hydrolase activity?

PLA2 will probably have many associated RHEA IDs, it is not specific for phosphatidylcholine, like you mention, many other glycerophospholipids can be substrates. I think the options are to either broaden the term to include the different classes (like you propose) or create a term for each glycerophospholipid class: phosphatidylcholine PLA2 activity, cardiolipin PLA2 activity, phosphatidylethanolamine PLA2 activity, etc.

You need to do both - have a parent term for all phospholipids and create specific children for each class to give a 1:1 Rhea mapping: pinging @hdrabkin to get his thoughts.
Like
PLA2 acting on PC - phosphatidylcholine + H2O = 1-acyl-sn-glycero-3-phosphocholine + a fatty acid
PLA2 acting on PE - phosphatidylethanolamine + H2O = 1-acyl-sn-glycero-3-phosphethanolamine + a fatty acid
PLA2 acting on PG - ...
PLA2 acting on PI - ...
PLA2 acting on PS - ...
etc
NB: cardiolipin is a class with some very particular biological functions - please don't obsolete this term.

NB:
for
GO:0004623 phospholipase A2 activity
Current def:
Catalysis of the reaction: phosphatidylcholine + H2O = 1-acylglycerophosphocholine + a carboxylate.
Suggestion:
Catalysis of the reaction: a 1,2-diacyl-sn-glycero-3-phospholipid + H2O = 1-acyl-sn-glycero-3-phospholipid + a fatty acid.

We would need a mechanism to identify all relevant reactions - for example PLA2G4C (Q9UP65) has about 20 reactions
https://www.uniprot.org/uniprot/Q9UP65

GO_0102567 phospholipase A2 activity (consuming 1,2-dipalmitoylphosphatidylcholine) -> 1 EXP annotation, PMID:31413195; dipalmitoylphosphatidylcholine used in assay
GO:0102568 phospholipase A2 activity consuming 1,2-dioleoylphosphatidylethanolamine) -> 0 EXP

Merge into GO:0004623 phospholipase A2 activity; ass MetaCyc xrefs as narrowMatch


📊 ai: Epoch dataset - playing around with better visualizations

closed as will be added as a part of #3074


pico-blink-sdk can't find headers outside of pico directory

When I add #include "pico/cyw43_arch.h" (header used in picow_blink.c in upstream pico-examples) to BridgingHeader.h and reconfigure with cmake -DPICO_BOARD=pico_w -B build -G Ninja . that runs fine, I see this output from CMake:
PICO platform is rp2040.
Build type is Release
Using PICO_BOARD from environment ('pico_w')
Using CMake board configuration from pico-sdk/src/boards/pico_w.cmake
Using board configuration from pico-sdk/src/boards/include/boards/pico_w.h
TinyUSB available at pico-sdk/lib/tinyusb/src/portable/raspberrypi/rp2040; enabling build support for USB.
BTstack available at pico-sdk/lib/btstack
cyw43-driver available at pico-sdk/lib/cyw43-driver
Pico W Bluetooth build support available.
lwIP available at pico-sdk/lib/lwip
Pico W Wi-Fi build support available.

But when I try to build with cmake --build build it can't find any of the headers specific to Pico W:
BridgingHeader.h:15:10: error: 'pico/cyw43_arch.h' file not found
13 |
14 | #include "pico/stdlib.h"
15 | #include "pico/cyw43_arch.h"
   |          `- error: 'pico/cyw43_arch.h' file not found

I tried adding include paths manually:
add_custom_command(
    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/_swiftcode.o
    COMMAND
        ${SWIFTC}
        -target armv6m-none-none-eabi -Xcc -mfloat-abi=soft -Xcc -fshort-enums
        -Xfrontend -function-sections -enable-experimental-feature Embedded -wmo -parse-as-library
        $$\( echo '$<TARGET_PROPERTY:swift-blinky,INCLUDE_DIRECTORIES>' | tr '\;' '\\n' | sed -e 's/\\\(.*\\\)/-Xcc -I\\1/g' \)
        $$\( echo '${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}'             | tr ' '  '\\n' | sed -e 's/\\\(.*\\\)/-Xcc -I\\1/g' \)
        -I$ENV{PICO_SDK_PATH}/src/rp2_common/pico_cyw43_arch/include
        -I$ENV{PICO_SDK_PATH}/src/rp2_common/pico_cyw43_driver/include
        -I$ENV{PICO_SDK_PATH}/src/rp2_common/pico_async_context/include/
        -I$ENV{PICO_SDK_PATH}/lib/cyw43-driver/src
        -I$ENV{PICO_SDK_PATH}/lib/lwip/src/include
        -I$ENV{PICO_SDK_PATH}/lib/lwip/contrib/ports/unix/lib
        -I$ENV{PICO_SDK_PATH}/lib/lwip/contrib/ports/unix/port/include
        -import-bridging-header ${CMAKE_CURRENT_LIST_DIR}/BridgingHeader.h
        ${CMAKE_CURRENT_LIST_DIR}/Main.swift
        -c -o ${CMAKE_CURRENT_BINARY_DIR}/_swiftcode.o
    DEPENDS
        ${CMAKE_CURRENT_LIST_DIR}/BridgingHeader.h
        ${CMAKE_CURRENT_LIST_DIR}/Main.swift
)

but this seems wrong, as picow_blink from pico-examples doesn't seem to be doing this and gets its include headers automatically.
It also doesn't help anyway as in the end I get this error:
pico-sdk/src/rp2_common/pico_cyw43_arch/include/pico/cyw43_arch.h:30:2: error: must specify support pico_cyw43_arch architecture type or set PICO_CYW43_ARCH_HEADER
 28 | #include "pico/cyw43_arch/arch_freertos.h"
 29 | #else
 30 | #error must specify support pico_cyw43_arch architecture type or set PICO_CYW43_ARCH_HEADER
    |  `- error: must specify support pico_cyw43_arch architecture type or set PICO_CYW43_ARCH_HEADER
 31 | #endif
 32 | #endif

When working with code not specific to Pico W, this also happens to headers like "hardware/i2c.h"

Have you verified that your target_link_libraries include the proper libs?
# Link the Swift object file with the executable target
target_link_libraries(swift-pico
    pico_stdlib
    hardware_uart
    hardware_gpio
    pico_lwip_arch
    pico_cyw43_arch_none
    ${CMAKE_CURRENT_BINARY_DIR}/_swiftcode.o
)

Have you set the PICO_SDK_PATH environment variable?
I have created a Docker container (https://github.com/shivarajd/swift-embedded-pico-docker) and everything works fine.

As contributed by @yochidros in https://github.com/apple/swift-embedded-examples/pull/11, we need a slightly different setup for Pico W compared to Pico. Making this even more explicit in the docs in https://github.com/apple/swift-embedded-examples/pull/31. With that I think this should be resolved.


So close to working with memcache

I have a project where this module would be pretty much perfect, but I'm using Memcache instead of Redis (via https://github.com/3rd-Eden/memcached). As far as I can tell, it should be trivial to adapt since the Memcache module also has get() and set() functions. I'd love to submit a pull request if it's something you have any interest in adding, but...
I'm confused by the db.set() call. Specifically the 3rd parameter: 'PX'. What is that? I haven't used the redis module, but looking at the docs, I don't see where that parameter is necessary or even allowed. I'm sure I'm missing something, but that param keeps the module from working with memcache.
Can you help me understand what's happening there so I know how to proceed (again, assuming memcache compatibility is of interest to you).
Thanks.

I'm sure by now you've figured it out :) but in case you haven't, PX is an expiration in milliseconds, see: http://redis.io/commands/SET


so many fails when trying get API key...

UrlGetToHtmlDocumentRetry() Request failing: https://steamcommunity.com/dev/apikey?l=english
Yet I think it is better to cache. (The key is generated once and in principle there is no need to pull Steam each ASF start.)
Example: to use folder like "cache". In the future it will be possible to cache anything else.

No.


Avoid stack overflow on decode

This PR includes changes that will avoid a stack overflow when the decoder receives a large array buffer.

Closes https://github.com/kayahr/text-encoding/issues/2

Thanks! I applied your fix a little bit differently and also added a unit test for this problem. The code now appends to a string directly, no need to first create an array of code points and then iterating over them to create the string.


Support for 3D animation

🚀 Feature
3D animation
Motivation
It would be great to have an open-source viewer that displays 3D volume and you can fly through it and record as you do so or just have a 360-degree rotation of volume.
Pitch

Scripted animation - http://zulko.github.io/blog/2014/11/29/data-animations-with-python-and-moviepy/
Screen Record animation - idea from @kevinyamauchi To do this we save camera position, colorbars etc in a json and generate the 3D animation later

Details
We can either use ffmpeg or gif to record frames and generate the video.

Adding some sort of storyboarding to the animation process would be very beneficial especially as there are multiple frames and vantage points wanted for timeseries data.

I think it would be nice to be compatible with - https://www.nature.com/articles/s41592-019-0359-1 - there is a FIJI plugin https://github.com/bene51/3Dscript which we could maybe port to python. If anyone has any experience with this tool or knows the original developers please let us know. I have not used it, but it seems like people really like it, for example https://twitter.com/DougPShepherd/status/1190365654311792641

Cross posting a link to an amazing naparimove repo built ontop of napari by @guiwitz - originally posted in this image.sc post
I was able to successfully use it to make movies right out of the box, and I’m curious from @guiwitz if there’s more stuff we need to expose better to make this easier for you, if you have feedback on our apis or napari in general, or if you’re interested in contributing any of this into the main napari repo.
I think we see support for high quality animations as something pretty fundamental and something we want to provide to all users.

Hi @sofroniewn, I would definitely be enthusiastic at trying to integrate naparimovie directly into napari! I guess my main question is what form this integration should take. If I remember correctly there's the plan to have a sort of plugin system in napari. Should that be the way or should it be a standard feature of napari?
In both cases, I'd need some pointers on "where to put things", e.g where should I add entire classes as for example the one replicating 3Dscript, or where's the best place to add list of interpolated camera states etc. In the contribution guide I couldn't find guidelines on the general organisation philosophy of the code. Is that info available somewhere or can you summarise general principles?
On a more detailed level, I guess the most difficult part was handling getting and setting the camera state, in particular its rotation. A few comments:

To get and set the camera state, I ended up using these quite low level vispy functions:

viewer.window.qt_viewer.view.camera.get_state()
viewer.window.qt_viewer.view.camera.get_state()

but I'm really not sure that the best solution, and there might be something much simpler that I missed. If not, that would probably be something nice to have access to at a higher level e.g. for the rotation as: viewer.camera_rotation.

To calculate camera rotations as quaternions I also directly used modules of vispy. Is that ok or are there higher level functions for that?

For the interpolation between rotation steps I used an external package called pyquaternion. I couldn't find a way to do that simply in vispy, but let me know if it's doable to avoid that dependency.

If we definitely try to integrate my code into napari, keep in mind that I'm not a software engineer, and that I therefore most certainly do strange things in my code that you should not hesitate to point out : )

@guiwitz as I said in some of the other threads it's so exciting to see naparimovie - one of our goals is definitely to enable people to build on top of this tool and starting a new repo for such an advanced feature was a fine idea.
You’re correct that we are planning for a plugin system around napari, but we haven’t done too much to support that yet. We’re also working on a Values doc that will contain more info on the philosophy and vision around the code to help guide people interested in building on napari, but haven’t got that in yet either!! Hopefully that will come soon :-) - see https://github.com/napari/napari/pull/655 for an early draft of some stuff.
For now I’ll say that at a high level I think we imagine any domain specific, highly custom, or complex dependency code to go into plugins and general purpose, domain agnostic, widely used code to go into the core.
I think some form of movie making support belongs in the core, but possibly not all of it, and possibly not all the dependencies that might be required should be installed automatically. We’re planning to better support optional dependencies so that one could do pip install napari [movie] say and get all the dependencies for making movies (see https://github.com/napari/napari/issues/704#issuecomment-555112651 for more discussion around optional dependencies in another context) only if you wanted them. Again, we’re still working out the details, but the philosophy is that we don’t want the core of napari to become too challenging to install because of features not everyone will use.
As to getting towards the details, my initial inclination is to try and get naparimovie.py and state_interpolations.py. As you suspect, I’d prefer to avoid the additional pyquaternion dependency. I’m not sure vispy supports that interpolation out of the box, but we might be able to add it quite easily. Using the vispy quaternion is also ok, though depending on what we want to get done we might end up with our own simple Quaternion class. We can consult with the vispy team if we end up ultimately wanting to make additions to their quaternion class, but starting with our own will give us more flexibility at the beginning.
We can also expose viewer.window.qt_viewer.view.camera.get_state() in an easier way, though have to be careful as we change cameras when switching from 2D to 3D views and some forward methods won't capture that.
As to what does integration look like in more detail, I imagine that we’d have one of your movie objects accessible at viewer.movie and then either you could do something like
viewer.movie.record(inter_steps=15, with_viewer=False)

to “activate it” and enable recording, and then maybe viewer.movie.finish() to “deactivate it”. When in the recording mode we can also change the state of the GUI to make it clear that you’re recording when using keypresses, and possible add additional functionality to make navigating the frame captures more obvious - but that can come later. We’d want to add a button to the GUI to enable recording mode too. Or the movie making functionality can always be “active” but then we might want to change the keybindings so that they have additional modifiers in front of them. We still might want to add additional GUI functionality to make navigating the frame captures more obvious in this case too. Curious how @jni and @royerloic think about this part.
I think at the beginning we probably also only want to support writing options that are supported by imageio, such as the gif, or maybe directory of png so we don't have to add new dependencies. We can think about adding the ffmpeg mp4 generation at some point, but might want that to be an optional dependency later on.
I also think at the beginning we might not want to add support for the scrip commands inside scriptcommands.py as these might be more custom functionality for a plugin - sort of depends on how widely spread that scripting language already is / if we have cross compatibility with scripts people have already written and how easy it is to write similar “scripts” in pure python. I'm open to that being added to core at some point, but have to get the take of @royerloic and @jni too.
Finally one overall design note is that we’ve tried to separate out our model / view files - where our model files don’t depend on any Qt or vispy code, and then our view files have the Qt and vispy dependencies. Here you certainly ultimately need to be able to interact with our vispy and Qt code both to add keybindings and to capture the screenshot, but it will be good to otherwise try and keep the core movie code as independent from Qt as possible to make it easily testable.
Maybe as first steps do you want to create a new folder called movie at the top level of the napari and move your movie class in there. You can then also move your state_interpolation.py in there (maybe renamed util.py for consistency), and maybe try to drop the  pyquaternion dependency by making our own quaternion class / doing the interpolation ourselves, and maybe try and drop the ffmpeg dependency for now, and drop the scriptcommands.py support for now. I think probably best to try and get to a minimal PR with minimal changes to what you have working now and then we can start working on things like making sure the API conforms to the rest of the library, checking the implementation works in all cases we want to support, and then adding unit tests for everything. I ran into some problems trying to make movies during 2D rendering - I’m not sure if that’s fully supported right now, but that’s definitely something we will want to support right away (not sure about transitions between them though!)
Ultimately once this is done, we'll want to add a movie page to our napari-tutorials repo and our https://napari.github.io/napari-tutorials/ page, but that can come a bit later.
How does this all sound to you? We’re super excited to work together with you to get this functionality into napari!!

@sofroniewn This all makes perfect sense, thanks for the detailed answer! I also think that keeping the scripting part out is better for now, and I'll make a repo with just that part to avoid confusing people. I can then turn it into a plugin whenever this becomes possible in napari.
I found that one can probably do all necessary quaternion calculations with scipy so we should be able to dump the pyquaternion dependency. And we can definitely skip ffmpeg for the moment and create a png folder, although if you manage to create a conda package for napari at some point, adding ffmpeg should not be too much of an issue.
I'll be getting started with all this in the coming days.

Very excited to  see this happen @guiwitz  !

Hi @sofroniewn, I started integrating naparimovie into napari following your detailed description. The good news is that I managed to get rid of the pyquaternion dependency by using scipy. Now I have a question regarding the integration and in particular this part of your comment:

As to what does integration look like in more detail, I imagine that we’d have one of your movie objects accessible at viewer.movie and then either you could do something like
viewer.movie.record(inter_steps=15, with_viewer=False)

to “activate it” and enable recording, and then maybe viewer.movie.finish() to “deactivate it”. When in the recording mode we can also change the state of the GUI to make it clear that you’re recording when using keypresses, and possible add additional functionality to make navigating the frame captures more obvious - but that can come later. We’d want to add a button to the GUI to enable recording mode too. Or the movie making functionality can always be “active” but then we might want to change the keybindings so that they have additional modifiers in front of them.

I'd like to go the first route and have my classes accessible e.g. in viewer.movie, however I have the following problem: currently I'm passing a viewer instance as a variable to my Movie class. The reason for that is that I need access to the viewer to get/set it's state. To replicate this I would now have to "self-reference" the viewer as variable of my Movie class. Something like this:
class Viewer:
    def __init__(self, state = 15):
           self.state = state

class Movie:
    def __init__(self, viewer = None):
        self.viewer = viewer
    def set_viewer_state(self, var):
        self.viewer.state = var

viewer = Viewer()
viewer.movie = Movie(viewer=viewer)

#set the viewer from within the movie instance
viewer.movie.set_viewer_state(100)
#it really does change the viewer instance
print(viewer.state)
>>100

In that way the viewer can be get/set directly from within the Movie class, but it looks incredibly ugly and I'm pretty sure it's a trivial problem and there's an elegant solution that I just can't see now. Any idea ?

@guiwitz that’s great that you could drop the extra dependency and that your beginning work on the integration.
You’re right that I think we want to avoid that setting of the viewer state from within your Movie class. It’s fine to pass viewer to your Movie class and attach it as you do, but at that point we should consider Viewer as read only and not write to it, over wise you can end up with complex loops that are hard to debug.
You will likely want like add a couple lines to napari/viewer.py. One at the very top
from .movie import Movie

and then another at the end of the init
	self.movie = Movie(self, param1=value1, param2=value2)

You should then have everything you need within Movie to make the movies. Does this make sense? If you any example branch on your fork of napari I'm happy to take a look before you make the PR

Wait, doesn't movie have to modify the viewer, e.g. to set viewpoints/rotation parameters?
In my opinion, the viewer should not be touched by this functionality at all, except maybe in having additional methods to control viewpoints/animations. The movie object or function should exist entirely outside the viewer, take in a viewer as a parameter, and modify it as needed. I don't see a reason for the viewer to be aware of any of this, but please correct me if I'm wrong!

I'm a bit confused too now, so let me try to summarise. We indeed have to modify the viewer, so somehow we need access to it where the movie methods are also accessible. I think there's three solutions for that: (1) we add all the movie methods directly to the viewer, (2) we do the ugly self-referencing mentioned above, (3) we keep things separate and pass the viewer as a parameter to the independent movie object.
I think we definitely don't want (1) to avoid messing with what is a core piece of napari, and also (2) because it seems very ugly. (3) is then essentially what I did until now with my independent package :
import napari
from napariviewer import Movie

view = napari.View()
#add images here
movie = Movie(view)
#do what's necessary for making the movie here

So I can just add the movie class as a napari module, and then people would do:
import napari

view = napari.View()
#add images here
movie = napari.Movie(view)
#do what's necessary for making the movie here
movie.finish()

Calling napari.Movie(view) would add all the key bindings (and in the future maybe change the window aspect to make it clear it's in movie recording state). And movie.finish() would release the key bindings.
If that's alright, I'll push this and you can have a look.

I’m sorry yes, I wasn’t thinking it all through when I wrote the above. Thanks for the catch @jni. Starting with something like (3) seems reasonable, but maybe @jni can weigh in more. Also though if @guiwitz you are close to having a PR ready maybe best to submit it and we can continue the discussion there

Looking great overall! Very exciting!
I agree with @jni and @sofroniewn, solution 3 is the right way to go -- more modular.
A few thoughts:
i) Long term, when thinking about animation, we could imagine that the whole state of the viewer (model) can me thought as all the information needed at each key frame of an animation. Some numeric properties, such as the 3D view transform, or opacity, can be interpolated between key-frames -- perhaps with the option of doing spline interpolation. For other properties such as visibility of a layer, that would be simply switched for a key frame at index i until next keyframe at index i+1 might set it to a different state. What this means, is that in a future PR we could define a movie as a list of keyframes set in time, each keyframe defining the complete state/model of the viewer.  This would be very powerful and would naturally extend to any property defined by the viewer and layers. Luckily, we have a model for the viewer and layers, and that model should be mostly modular and instanciable/copyable so that one could simply build the sequence of keyframes by 'copying' the state of the viewer step by step -- perhaps aided by the corresponding UI elements (play bar with key frames). By copying I literally mean a deep copy of the viewer model (but no arrays of course!). There mkight be issues with that of course initially. Of course we can start we a smaller subset of models, perhaps the dims model and the viewer transform... But going forward, our modular model architecture should buy us incredible flexibility for having movies where layers can be turned on/off, opacity changing, switching from stacked to grid modes, and more... If this is well designed, it should work out of the box for new layers... without any extra code. The tough part is writing a model interpolator that introspects the objects anddoes the right thing depending on the type... etc...
Note: This is how keyframe animation in Spimagine by @maweigert works roughly.
ii) Doing the above instead of creating a separate 'state' object that needs to be 'synced' and maintained leads to less duplication of the notion of 'viewer state'. Having said that, there might be (bad) reasons why we can't do the above on the short term.
iii) The ability to do the above would be a great stress-test to make sure that our viewer and layers model are fully modular and reentrant.
iv) IMPORTANT:  Having said all that above, I think we should merge this PR as soon as we are happy with the  basic architecture: modular, viewer does not know about movies, but movies know about viewers. It's already extremely useful!  We can revisit these more advanced concepts later.
v) One nice thing about having the movie object separate from the viewer, is that you could imagine applying the same movie to 2 different viewers (maybe with a movie.viewer = ... setter) and render two animations with perhaps some data changing, etc...

@royerloic I love these comments, thanks for weighing in. I'm very excited about (i) - this should become easier after we get #686 in - which even includes round-trip tests for consistency. I also really like (v) - one can then imagine us or someone else making some standard "pre-recorded" "Movie" instances that you could then apply regardless of your data if you wanted to automate and standardize movie making - like a "zoom in" / "zoom out", or "loop through sliders once", or "full 3D rotation".
For now though, like you suggested, I think we keep these principles in mind as we press on with a more minimal PR from @guiwitz that will add initial movie support

:-)
I forgot something:
vi) Support for headless rendering of movies. In my experience, things can go sometimes go wrong when rendering in opengl, capturing the frames and making a video. If window visibility is changed or other OpenGL complexities are involved (disconnecting external screen), you get into trouble. Ideally and eventually, we should have means to do the rendering in a completely headless fashion (would still require OpenGL to be available though). this would permit high-quality and high-resolution rendering without spawning a napari window or doing any on-screen rendering. This takes on to a more general discussion of the utility of having our models capable of living without views (which we are doing quite ok right now), and having ways to generate images from the model without necessarily having Qt windows open, Vispy/OpenGl canvases active.  Again, not for now, but important to keep in mind...

Calling napari.Movie(view) would add all the key bindings (and in the future maybe change the window aspect to make it clear it's in movie recording state). And movie.finish() would release the key bindings.

Oooh, this to me sounds like a context manager!
with napari.Movie(viewer) as mov:
    mov.record_keyframes()  # this blocks and lets the user pick keyframes
    mov.animate(option1=..., option2=...)
    mov.save(filename)

or
with napari.Movie(viewer) as mov:
    mov.play_script(path='path/to/3dscript.txt')

This seems pretty nice to me, no?

I finally made this pull request and we can then go on with the discussion there. Just a few points in regard to previous comments.
@royerloic I agree that it would be nice to essentially just copy entire view states to create key-frames. But there's to issues at the moment: (1) I don't know how to copy an entire view state. Using deepcopy generates an error coming from Qt. I tried also with lower level objects such as the camera, but those can't be deepcopied either. When trying to deepcopying the layer object, there's yer another problem: copying the layers just adds them to the viewer. Maybe someone knows how to generically copy these objects? (2) Even if we save entire states, as you mentioned we still have to go inside to do the interpolation part. So in the end I'm not sure it's worth copying these entire views.
I still tried to go in a more modular direction by changing the way I'm saving states. E.g. before I was saving specific camera features (rotation, displacement etc.). Now I save the entire camera state. Similarly, instead of implementing a specific "time" feature, I'm just interpolating all the available sliders now. I also tried to simplify the interpolation part by creating "generic" interpolation functions that one can re-use for different types of features. However one hits very fast a limit in how generic these functions can be as different features need a different treatment. For example while one wants a smooth interpolation e.g. for camera zooming, one doesn't want to fudge the timing of a layer being set ON/OFF. So I think each additional feature will have to be added "manually" after some thinking. One just has to 1) add it to the series of features tracked, 2) define an interpolation function (ideally re-using an existing one) and 3) update the viewer.
@jni I'm not sure a context manager is the right thing here. When creating these movies, I often go through multiple iterations where I create the movie, readjust it, create the movie etc. With a context manger I would be limited to do this just once. But maybe this could be solved by making it possible to watch the movie directly in napari. I could add a new key-binding that just goes through all frames automatically.
Let me also note here that the module now allows to mix 2D and 3D views, while it was limited to 3D before. Let me know your thoughts in the PR.

Link to the PR: https://github.com/napari/napari/pull/780

Just as an additional note and to partially answer my own question, I guess this PR #686 will solve the problem of saving the full viewer state. Whenever this is ready we can could just save views as key-frames. It wont however change the fact that we'll have to interpolate whatever needs to be interpolated. In that context, saving the full viewer only makes sense if by default we interpolate ALL properties of the viewer, which will require some more work.

Great work @guiwitz ! Let me answer your comment below:

@royerloic I agree that it would be nice to essentially just copy entire view states to create key-frames. But there's to issues at the moment: (1) I don't know how to copy an entire view state. Using deepcopy generates an error coming from Qt. I tried also with lower level objects such as the camera, but those can't be deep copied either. When trying to deep copying the layer object, there's yer another problem: copying the layers just adds them to the viewer. Maybe someone knows how to generically copy these objects? (2) Even if we save entire states, as you mentioned we still have to go inside to do the interpolation part. So in the end I'm not sure it's worth copying these entire views.

(1) What I described only applied to the 'model' of the viewer, not the Qt stuff! Of course that would never work and be terrible in many ways :-)  The problem is that currently a lot of the viewer state is actually in the vispy side of things, like the camera position and such things, when they should be in fact at least reflected in the viewer model. I am just realizing now (pinging @sofroniewn here) that this is a bit of a deviation from our strict model-view architecture, and we should keep it in mind medium term: we should at least sync that with some field in the viewer model so that the model carries explicitly the information about the viewpoint (and related states of the viewer).
(2) Assuming that the viewer model has all the relevant states, then, because we have full control of the model, we can make sure that we know how to do interpolations...
I am not suggesting we do this anytime soon, as discussed above, our model-view separation is not yet fully implemented for the viewer. In the mean time we should get something reasonable merged and perhaps later we can revisit all this...

I think this issue is largely covered by https://github.com/napari/napari-animation

I think this issue is largely covered by https://github.com/napari/napari-animation

Agreed.
Extra feature suggestions, improvements, etc. can be discussed at https://github.com/napari/napari-animation/issues


feat(probe): add host property to HttpGet probes

HttpGet probes has host field. Added support for it in cdk8s-plus:
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#httpgetaction-v1-core

💚 All backports created successfully

Status
Branch
Result

✅
k8s-27/main

✅
k8s-28/main

Questions ?
Please refer to the Backport tool documentation


stream data to stdin of exec

when execing and exec ;) is it possible to send data to the stdin of the process you are starting
something more sophisticated than  exec("echo 'foo' | someapp")
I have a json object that I want to stringify and pipe to the stdin of a process
thanks

This module is just a small wrapper around the native child_process module. As such, it just passes along the provided arguments directly to the native exec, execFile or spawn methods. You can use the progress event to access the native child process instance and from there you have access to child.stdin, child.stdout and child.stderr.
Since you have access to the input and output streams of the child process you should be able to do everything that you need. Please take a look at the docs for the child_process module and let me know if you are still stuck or if you think something can be improved in this module.

Thanks for the pointer Patrick! Please forgive this asinine followup, I'm leaving this here just as a tiny example: I wanted to replicate this node-native functionality:
var spawn = require('child_process').spawn;
var s = "hi there!";
var wc = spawn('wc', []);
wc.stdin.write(new Buffer(s));
wc.stdin.end();
wc.stdout.on('data', function(data) {
  console.log("wc said: " + data);
});

With child-process-promise, this is what that looks like:
var spawn = require('child-process-promise').spawn;
var s = "hi there!";
var p = spawn('wc', [], { capture: ["stdout"] })
            .progress(function(childProcess) {
              childProcess.stdin.write(new Buffer(s));
              childProcess.stdin.end();
            })
            .then(function(results) { return results })
            .fail(function(err) { console.error('[spawn] ERROR: ', err); });
// ...
p.then(function(results) { console.log("wc said: " + results.stdout); })

where the first chunk of code can be in, say, a module, and the last line in a consumer of that module.
🙇!

Hey @jmls and @fasiha. Just throwing this out there, but what if we monkey-patched the returned promise object to include a childProcess property as shown below:
var spawn = require('child-process-promise').spawn;
var s = "hi there!";
var p = spawn('wc', [], { capture: ["stdout"] })
p.childProcess.stdin.write(new Buffer(s));
p.childProcess.stdin.end();
// ...
p.then(function(results) { console.log("wc said: " + results.stdout); })

The progress event is not part of the native Promise specification (only supported by Q as far as I know). I think monkey-patching the promise object is the lesser of two evils. Any other ideas to simplify the code a bit?

@patrick-steele-idem that would be much clearer!
(Embarrassed to admit it but I didn't know that progress was a Q thing, I just used it blindly. But I had no problem converting the resulting promise to a bluebird promise using resolve.)


Adds README as main index page of docs

Adds high level docs and rational to the README and puts this as the main index content.
closes #13

Closing as stale. We'll have separate markdown docs for the readme and home page as they serve slightly different purposes.


Compile

Hey,When I compiled, something went wrong.
Makefile:168: "USE_LAPACK disabled because libraries were not found"
Makefile:276: WARNING: Significant performance increases can be achieved by installing and enabling gperftools or jemalloc development packages
cd /mnt/data/gulinlin/Rpackages/incubator-mxnet/3rdparty/dmlc-core; make libdmlc.a USE_SSE=1 config=/mnt/data/gulinlin/Rpackages/incubator-mxnet/config.mk; cd /mnt/data/gulinlin/Rpackages/incubator-mxnet
make[1]: Entering directory /mnt/data/gulinlin/Rpackages/incubator-mxnet/3rdparty/dmlc-core' make[1]: libdmlc.a' is up to date.
make[1]: Leaving directory `/mnt/data/gulinlin/Rpackages/incubator-mxnet/3rdparty/dmlc-core'
What should I do? Any help would be appreciated.

HI @gulinlin, thanks for your question. what platform are you using currently to build the package? Have you tried to make -j $(nprocs) before you make the R package?
@anirudhacharya Can you also take a look from here?
@mxnet-email-bot please label : R, build to this issue

@gulinlin can you please provide more information like what environment you are running it on? and provide a steps to reproduce the error.
@mxnet-label-bot please label : [Pending Requester Info]

@sandeep-krishnamurthy please close this due to lack of activity.


pop-credit FIFO variants

It would be nice to have pop-credit FIFO variants, so we can optimize away the internal skid buffering on the RAM read path. However, this feature request is roughly ~P2 priority, since users can do a FIFO + br_credit_sender to functionally achieve the same thing (with more area/latency cost).

+1


Test failure on 3.12

On Python 3.12 the following test fails:
Failures:

  1) PyCall.eval without globals without locals raises an exception occurred in Python side
     Failure/Error: expect { PyCall.eval('raise Exception("abcdef")') }.to raise_error(PyCall::PyError, /abcdef/)

       expected PyCall::PyError with message matching /abcdef/, got #<PyCall::PyError: <class 'SyntaxError'>: invalid syntax (<string>, line 1)> with backtrace:
         # ./lib/pycall/pyobject_wrapper.rb:49:in `eval'
         # ./lib/pycall/pyobject_wrapper.rb:49:in `method_missing'
         # ./lib/pycall.rb:41:in `eval'
         # ./spec/pycall/eval_spec.rb:23:in `block (6 levels) in <top (required)>'
         # ./spec/pycall/eval_spec.rb:23:in `block (5 levels) in <top (required)>'
     # ./spec/pycall/eval_spec.rb:23:in `block (5 levels) in <top (required)>'

Finished in 2.86 seconds (files took 0.2082 seconds to load)
193 examples, 1 failure, 26 pending

Failed examples:

rspec ./spec/pycall/eval_spec.rb:22 # PyCall.eval without globals without locals raises an exception occurred in Python side

Which seems strange as it is valid Python:
Python 3.12.2 (main, Apr  3 2024, 09:31:13) [GCC 13.2.1 20230801] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> raise Exception("abcdef")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
Exception: abcdef

It seems SyntaxError gets less info on Python 3.12, compared to 3.11:
3.11.8:
> PyCall.eval('raise Exception("abcdef")')
/usr/lib/ruby/gems/3.0.0/gems/pycall-1.5.1/lib/pycall/pyobject_wrapper.rb:49:in `eval': <class 'SyntaxError'>: ('invalid syntax', ('<string>', 1, 1, 'raise Exception("abcdef")', 1, 6)) (PyCall::PyError)
        from /usr/lib/ruby/gems/3.0.0/gems/pycall-1.5.1/lib/pycall/pyobject_wrapper.rb:49:in `method_missing'
        from /usr/lib/ruby/gems/3.0.0/gems/pycall-1.5.1/lib/pycall.rb:41:in `eval'
        from (irb):2:in `<main>'
        from /usr/lib/ruby/gems/3.0.0/gems/irb-1.4.2/exe/irb:11:in `<top (required)>'
        from /usr/bin/irb:25:in `load'
        from /usr/bin/irb:25:in `<main>'

3.12.2:
> PyCall.eval('raise Exception("abcdef")')
/usr/lib/ruby/gems/3.0.0/gems/pycall-1.5.1/lib/pycall/pyobject_wrapper.rb:49:in `eval': <class 'SyntaxError'>: invalid syntax (<string>, line 1) (PyCall::PyError)
        from /usr/lib/ruby/gems/3.0.0/gems/pycall-1.5.1/lib/pycall/pyobject_wrapper.rb:49:in `method_missing'
        from /usr/lib/ruby/gems/3.0.0/gems/pycall-1.5.1/lib/pycall.rb:41:in `eval'
        from (irb):2:in `<main>'
        from /usr/lib/ruby/gems/3.0.0/gems/irb-1.4.2/exe/irb:11:in `<top (required)>'
        from /usr/bin/irb:25:in `load'
        from /usr/bin/irb:25:in `<main>'

I'm not sure what caused the change, though.

Found one interesting difference:
3.11.8:
irb(main):102:1* begin
irb(main):103:1*   PyCall.eval('raise Exception("abcdef")')
irb(main):104:1* rescue => error
irb(main):105:1*   error.value
irb(main):106:0> end
=> ('invalid syntax', ('<string>', 1, 1, 'raise Exception("abcdef")', 1, 6))

error.value is a tuple.
3.12.2:
irb(main):064:1* begin
irb(main):065:1*   PyCall.eval('raise Exception("abcdef")')
irb(main):066:1* rescue => error
irb(main):067:1*   error.value
irb(main):068:0> end
=> SyntaxError('invalid syntax', ('<string>', 1, 1, 'raise Exception("abcdef")', 1, 6))

error.value is an Object.
This leads to the changes in https://github.com/python/cpython/pull/101607/files#diff-c37c836d0535b79d87b8eb0652c59ac0c2aeb1461bcb2274bee82656cecacad4L421-R475 which makes "value" the new internal exception PyObject instead.


Inconsistent intersection results for same shape based on method of creation

r = (ShapeList() + (PolarLocations(1, 4) * Line((0,-1),(0,1)))).edges()
l = Line(1,2).edge()
i = l.intersect(*r)

r = Rectangle(2,2).edges()
l = (Pos(1) * Line(0,1)).edge()
i = l.intersect(*r)

Thanks @MatthiasJ1 and @bernhard-42, tolerance was indeed the problem, fixed now.


Add type checking

Lets add type checking using the TypeScript compiler. We can run it in CI to verify that the JavaScript is correctly typed. This will help us when bringing in new versions of our dependencies.

Coverage remained the same at 100.0% when pulling 21e012eafb273a0194533ece9f48934ffdbccd58 on chore/type-check into dbbd6052f415bfdb4f1a5971ce5b5fb96058ced2 on master.


BUG: client.Transcripts.GetSubtitles Error: http2: response body closed

Describe the bug
I don't believe the client.Transcripts.GetSubtitles function works.  It errors with http2: response body closed.
To Reproduce
Steps to reproduce the behavior:
Follow the example here: https://www.assemblyai.com/docs/speech-to-text/speech-recognition#export-srt-or-vtt-caption-files
Expected behavior
client.Transcripts.GetSubtitles should return []byte instead of error with the HTTP body already closed.
Additional context
I believe the following is causing the problem:

Here the GetSubtitles function does a defer resp.Body.Close() and then errors on the next line at return io.ReadAll(resp.Body).
I believe this happens because the HTTP body is already closed earlier in the execution flow here via the Clients private do method.
The do method is called inside of GetSubtitles here

Workaround
I've just written my own function:
// Function to get the subtitles data
func GetSubtitles(ctx context.Context, transcriptID, format, apiKey string) ([]byte, error) {
	// Create the request URL
	url := fmt.Sprintf("https://api.assemblyai.com/v2/transcript/%s/%s", transcriptID, format)

	// Create a new GET request
	req, err := http.NewRequestWithContext(ctx, "GET", url, nil)
	if err != nil {
		return nil, fmt.Errorf("failed to create request: %w", err)
	}

	// Set the Authorization header
	req.Header.Set("Authorization", apiKey)

	// Perform the request
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		return nil, fmt.Errorf("request failed: %w", err)
	}
	defer resp.Body.Close()

	// Check for a successful response
	if resp.StatusCode != http.StatusOK {
		return nil, fmt.Errorf("unexpected status code: %d", resp.StatusCode)
	}

	// Read the response body
	body, err := io.ReadAll(resp.Body)
	if err != nil {
		return nil, fmt.Errorf("failed to read response body: %w", err)
	}

	return body, nil
}

Thank you for reporting this, and sorry for the inconvenience 🙏
I've fixed this upstream, and aiming to get a patch release out later today.

Fix is available in v1.5.1. Let me know if you're still experiencing issues.


Add check valid visits rake task

Motivation
To prevent something like #302 from happening again, I propose we add a new rake task that verifies all visit overrides are correct.
Implementation
SyntaxTree already has a list of all valid visits, so we're just eager loading requests and checking against that list. I also added a message to check_docs to make sure that it prints something on success.
Finally, I added a ci command to dev.yml, so that we can run all checks locally without having to type them manually.

Okay, changed the task to check that all visits are marked as overrides instead, based on https://github.com/Shopify/ruby-lsp/pull/302#discussion_r973285288.


Add isClosedConversation

Really this should be renamed to isClosedConversation but...

🚀 ?

Um this PR makes GitHub crash 🎉.
Maybe the :is() should not be used here?

Maybe the :is() should not be used here?

Yup

Ouch I see why...


Add servers guru

Changes
As discussed in the issue i opened i added servers guru.
Here is the description:
Servers Guru | Servers Guru provides affordable and anonymous VPS and cloud servers with dedicated cpu resources. they accept crypto-currencies (Bitcoin, Monero, Ethereum etc..) and don't require any personal informations. They resell from reliable main actors in the industry and provide multiple hosting locations accross europe. Their VPS offers starts at 4.99€/ month

Supporting Material
website address: https://servers.guru

Affiliation
I am the funder of servers.guru

Checklist

[x] I have read the Contributing guide, and confirmed my PR aligns with the requirements
[x] I have performed a self-review (valid markdown formatting, spelling and grammar)
[x] I have indicated whether I have any affiliation with any software/ services added
[x] I agree to follow the repositories Contributor Covenant Code of Conduct

Hey,
i made the changes, add moved it to the bottom of the list.
Let me know if that is correct. Sorry i'm not so experienced with pull requests :)

No worries, and thanks for updating :)
Usually you'd squash your changes into a single commit when you make an amendment, like: git rebase -i <first-commit-hash>. then re-push. But it doesn't matter too much, so I'll go ahead and merge ;)


Add MPI-PR variant

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Add multiple variants based on the ARMCI_NETWORK value
See https://github.com/conda-forge/nwchem-feedstock/issues/29
ARMCI_NETWORK values

MPI-TS (default)
MPI-PR (best option for multi-node runs)

https://nwchemgit.github.io/ARMCI.html

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender


Accept alternate data format

It'll be great if termgraph can accept reading input from stdin from uniq -c result.

Just a quick note:
You can already do that with some command line magic, specifically process substitution. Just try:

termgraph.py <(echo -e 'two two three three three'|sed 's/ /\n/g'|uniq -c| awk '{ print $2 " " $1; }')

You should see something like:
------------------------------------
Reading data from /dev/fd/63
------------------------------------

two  : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇   2.00
three: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇   3.00

Stdin support would be more elegant, and is very easy to implement (check pull request #3 ).
As far as format goes, since you can construct it with standard UNIX tools (such as awk in my example), I think there is value in keeping it as simple as possible.

Just a quick note:
You can already do that with some command line magic, specifically process substitution. Just try:

termgraph.py <(echo -e 'two two three three three'|sed 's/ /\n/g'|uniq -c| awk '{ print $2 " " $1; }')

You should see something like:
------------------------------------
Reading data from /dev/fd/63
------------------------------------

two  : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇   2.00
three: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇   3.00

Stdin support would be more elegant, and is very easy to implement (check pull request #3 ).
As far as format goes, since you can construct it with standard UNIX tools (such as awk in my example), I think there is value in keeping it as simple as possible.

PR #3 was merged which closes this one.