Open a custom ROOT object

I am trying to open a ROOT file (produced by MARS -- software to analyze data from the MAGIC telescopes) and then load a leaf into an array:
import uproot
f = uproot.open('./20171123_M1_05068934.001_C_PSRJ2032-W0.40+051.root')
t = f['Events']
samples = t['MRawEvtData.fHiGainFadcSamples'].array()
samples

This produces the following error:
IndexError                                Traceback (most recent call last)
~/.local/anaconda3/lib/python3.6/site-packages/IPython/core/formatters.py in __call__(self, obj)
    700                 type_pprinters=self.type_printers,
    701                 deferred_pprinters=self.deferred_printers)
--> 702             printer.pretty(obj)
    703             printer.flush()
    704             return stream.getvalue()

~/.local/anaconda3/lib/python3.6/site-packages/IPython/lib/pretty.py in pretty(self, obj)
    393                             if callable(meth):
    394                                 return meth(obj, self, cycle)
--> 395             return _default_pprint(obj, self, cycle)
    396         finally:
    397             self.end_group()

~/.local/anaconda3/lib/python3.6/site-packages/IPython/lib/pretty.py in _default_pprint(obj, p, cycle)
    508     if _safe_getattr(klass, '__repr__', None) is not object.__repr__:
    509         # A user-provided repr. Find newlines and replace them with p.break_()
--> 510         _repr_pprint(obj, p, cycle)
    511         return
    512     p.begin_group(1, '<')

~/.local/anaconda3/lib/python3.6/site-packages/IPython/lib/pretty.py in _repr_pprint(obj, p, cycle)
    699     """A pprint that just redirects to the normal repr function."""
    700     # Find newlines and replace them with p.break_()
--> 701     output = repr(obj)
    702     for idx,output_line in enumerate(output.splitlines()):
    703         if idx:

~/.local/anaconda3/lib/python3.6/site-packages/awkward/array/base.py in __repr__(self)
     50
     51     def __repr__(self):
---> 52         return "<{0} {1} at {2:012x}>".format(self.__class__.__name__, str(self), id(self))
     53
     54     def _try_tolist(self, x):

~/.local/anaconda3/lib/python3.6/site-packages/awkward/array/base.py in __str__(self)
     47             return "[{0}]".format(" ".join(awkward.util.array_str(x) for x in self))
     48         else:
---> 49             return "[{0} ... {1}]".format(" ".join(awkward.util.array_str(x) for x in self[:3]), " ".join(awkward.util.array_str(x) for x in self[-3:]))
     50
     51     def __repr__(self):

~/.local/anaconda3/lib/python3.6/site-packages/awkward/array/base.py in <genexpr>(.0)
     47             return "[{0}]".format(" ".join(awkward.util.array_str(x) for x in self))
     48         else:
---> 49             return "[{0} ... {1}]".format(" ".join(awkward.util.array_str(x) for x in self[:3]), " ".join(awkward.util.array_str(x) for x in self[-3:]))
     50
     51     def __repr__(self):

~/.local/anaconda3/lib/python3.6/site-packages/awkward/array/objects.py in __iter__(self)
    165     def __iter__(self):
    166         for x in self._content:
--> 167             yield self.generator(x, *self._args, **self._kwargs)
    168
    169     def __getitem__(self, where):

~/.local/anaconda3/lib/python3.6/site-packages/uproot/interp/objects.py in __call__(self, bytes)
    273             source = uproot.source.source.Source(bytes)
    274             cursor = uproot.source.cursor.Cursor(0)
--> 275             return self.cls.read(source, cursor, self.context, None)
    276         def __repr__(self):
    277             if isinstance(self.cls, type):

~/.local/anaconda3/lib/python3.6/site-packages/uproot/rootio.py in read(cls, source, cursor, context, parent)
    839             context = context.copy()
    840         out = cls.__new__(cls)
--> 841         out = cls._readinto(out, source, cursor, context, parent)
    842         out._postprocess(source, cursor, context, parent)
    843         return out

~/.local/anaconda3/lib/python3.6/site-packages/uproot/rootio.py in _readinto(cls, self, source, cursor, context, parent)

~/.local/anaconda3/lib/python3.6/site-packages/uproot/source/cursor.py in array(self, source, length, dtype)
     83         start = self.index
     84         stop = self.index = start + length*dtype.itemsize
---> 85         return source.data(start, stop, dtype)
     86
     87     def string(self, source):

~/.local/anaconda3/lib/python3.6/site-packages/uproot/source/source.py in data(self, start, stop, dtype)
     60
     61         if stop > len(self._source):
---> 62             raise IndexError("indexes {0}:{1} are beyond the end of data source of length {2}".format(start, stop, len(self._source)))
     63
     64         if dtype is None:

IndexError: indexes 27:108427 are beyond the end of data source of length 108426

There should only be 2000 entries in this file for that leaf.
Do you have an idea, what the issue is? Thanks in advance for your time!
Link to the file:
https://nextcloud.e5.physik.tu-dortmund.de/index.php/s/zoiCwmmzWCxE9w3

Thanks for the sample file; I'll take a look as soon as I can (likely Monday).

I looked into it. The serialization of MArrayB and MArrayS do not include what I have affectionately called the "speed bump byte," which distinguishes between an empty array and a non-existent array (a distinction I ignore). These two classes contain char* and short* fields, for which this distinction can be relevant. However, unlike every other case in which I have encountered serializations of pointers to arrays of primitive types, in your file, the "speed bump byte" is missing.
I haven't been able to find any metadata in your file that says this byte should be missing— in fact, you even have the same TStreamerBasicPointer version as another file with the speed bumps. I can't change the logic universally because it would break all of those other cases, so the least I could do was offer a switch: you can explicitly turn off the speed bump byte, which lets you read your file.
When PR #170 makes it through continuous integration and this fix is pushed to PyPI as uproot 3.2.6, you'll be able to do this:
branch = t["MRawEvtData.fHiGainFadcSamples"]
samples = branch.array(branch.interpretation.speedbump(False))

That is, you're creating a new interpretation from the default branch.interpretation by turning off the speedbump (default is True). Then you're passing this interpretation into the branch.array method to read the branch with the new interpretation.
The hint was that it's trying to read off the end of your data source by a single byte. It's starting one byte too far in.

Oh! And once you've read these objects in, you'll have to do
samples[i]._fArray     # for some index i

to get at the array data. uproot doesn't know anything about the MArrayB or MArrayS types, so it creates Python classes with field names like _fN and _fArray. If you want to get fancy and give these types Pythonic methods (e.g. samples[i].something()), you can follow what THnSparse does in uproot-methods. However, I'd guess that once you get the array, you've got everything you need.

The MArrayB and MArrayS objects have fields named _fN that specify (to uproot) the length of the arrays. I didn't notice any inconsistency with that.
Oh! It could be the fact that these are private members of the C++ class, but the C++ class might hide some data in its public interface, especially if you normally get the data from a C++ method. Unfortunately, code isn't stored in the ROOT file for uproot to use in its interpretation.
I'm glad it's working for you!


[FEAT] CHANGELOG v0.0.3-alpha

Added tomlc99 parser
Added config.toml configuration file support (just font for now)
Modified the static font path in xdg_surface_handle which is mapped to the font path in config.toml file
Updated all the build files and readme for the newly made changes

Looks good to me


Font files ending up in the wrong place.

Hi! I tried updating a project to MM4 using middleman-sprockets (4.0.0.rc.1). The project uses the materialize-sass gem.
In my config.rb i have set the fonts_dir to assets/fonts. While running the preview server or middleman build I used to get the fonts in assets/fonts/fontname/font-file.woff
Here are some selected output from the middleman build going from v3 to v4 with a persisted build directory to clarify the issue.
create  build/assets/roboto/Roboto-Light-6300f659.woff
create  build/assets/roboto/Roboto-Medium-d45f8492.woff
...
remove  build/assets/fonts/roboto/Roboto-Bold-47327df0.ttf
remove  build/assets/fonts/roboto/Roboto-Bold-933b866d.woff2

Any help appreciated

This is expected behavior in middleman-sprockets 4.0.x, and something that should/will be explained the in upgrading guide (that's coming). With 4.0.x we've stopped trying to detect file type and rewrite paths based on that -- everything will get dumped into imported_asset_path option, which defaults to assets.
Are you having any issues with link helpers pointing to the wrong locations though?

Thanks for the reply! No, it's not causing any real issues. Link helpers seems to be working fine!


METRON-1345: Update EC2 README for custom Ansible tags

https://issues.apache.org/jira/browse/METRON-1345
Simple improvement/correction to the EC2 README. This runs the command with the appropriate environment info and skip-tags enabled via the run.sh script instead of through ansible-playbook directly, which misses some things.
Pull Request Checklist
Thank you for submitting a contribution to Apache Metron.
Please refer to our Development Guidelines for the complete guide to follow for contributions.
Please refer also to our Build Verification Guidelines for complete smoke testing guides.
In order to streamline the review of the contribution we ask you follow these guidelines and ask you to double check the following:
For all changes:

[x] Is there a JIRA ticket associated with this PR? If not one needs to be created at Metron Jira.

[x] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[x] Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent?

For documentation related changes:

[x] Have you ensured that format looks appropriate for the output in which it is rendered by building and verifying the site-book? If not then run the following commands and the verify changes via site-book/target/site/index.html:
cd site-book
mvn site

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.
It is also recommended that travis-ci is set up for your personal repository such that your branches are built there before submitting a pull request.

+1 Thanks!

I just found another item when going through an AWS install. We don't setup users for the REST API. From what I can tell, we do this via blueprint when we install full-dev from a setting in single_node_vm.yml
  - metron-rest-env:
      metron_spring_profiles_active: "dev"

I'm wondering if we can/should configure this same setting in small_cluster.yml, which is used by the Amazon EC2 deployment. Any thoughts on this? At the very least I think this PR should include a doc change to indicate that we aren't setting up users unless you explicitly set a profile via Ambari or create them manually as a separate task.

Good catch @mmiklavc.  Would be nice to get that added to the blueprint so it just happens.

Just a heads up, I've added the spring profile to the ec2 blueprint.

Testing
Run the EC2 deployment
cd metron-deployment/amazon-ec2
./run.sh

The dev profile should now be set for the REST API. This is the same way we spin up full dev.

Nice.  I'm glad you uncovered the issue with the REST API.  Reaffirming +1

+1

+1 remains here.  Solid work.


Something wrong with running example

Hi, @pianpianyouche
I found this software and I couldn't help trying it. I installed this software using conda. However, when I ran with the example fasta file, it reported that something was wrong:
 Error: Sequence file /mnt/d/test2/example_MOB_temp_mob.faa is empty or misformatted

cat: '*ATPase.hmm_domtblout_parsed_out': No such file or directory
cat: '*T4CP*_domtblout_parsed_out': No such file or directory
cat: '/mnt/d/test2/example*MPFF*_result_out': No such file or directory
cat: '/mnt/d/test2/example*MPFG*_result_out': No such file or directory
cat: '/mnt/d/test2/example*MPFI*_result_out': No such file or directory
cat: '/mnt/d/test2/example*MPFT*_result_out': No such file or directory
Warning: [blastp] Number of threads was reduced to 8 to match the number of available CPUs

I updated the software with conda but the issue was still there. Could you help me? Thanks.

Hi galstriker,
Thank you for your feedback. I just tried it and it worked for me.
Did you install it with the following commend?
conda create -n Plascad -y -c bioconda -c pianpianyouche plascad
conda activate Plascad
does "Plascad -h" work for you after installation?

Hi, @pianpianyouche
I found this software and I couldn't help trying it. I installed this software using conda. However, when I ran with the example fasta file, it reported that something was wrong:
 Error: Sequence file /mnt/d/test2/example_MOB_temp_mob.faa is empty or misformatted

cat: '*ATPase.hmm_domtblout_parsed_out': No such file or directory
cat: '*T4CP*_domtblout_parsed_out': No such file or directory
cat: '/mnt/d/test2/example*MPFF*_result_out': No such file or directory
cat: '/mnt/d/test2/example*MPFG*_result_out': No such file or directory
cat: '/mnt/d/test2/example*MPFI*_result_out': No such file or directory
cat: '/mnt/d/test2/example*MPFT*_result_out': No such file or directory
Warning: [blastp] Number of threads was reduced to 8 to match the number of available CPUs

I updated the software with conda but the issue was still there. Could you help me? Thanks.


Add an example that demonstrates input

skulpin_app and renderer_only examples only show drawing, and don't show practical usage of taking input. An example would be useful.

Completed


Temperature range of AC

HomeKit shows me a temperature range from 0º to 30º, so its unresponsive util 18º.  Is it possible to show  only 18º to 25º? (config.json after the image)

I created my config.json for my AC like this:
{
"name": "AC",
"type": "air-conditioner",
"data": {
"off": "3920",
"temperature25": {
"pseudo-mode": "cool",
"data": "2938293"
},
"temperature24": {
"pseudo-mode": "cool",
"data": "23092"
},
"temperature23": {
"pseudo-mode": "cool",
"data": "20923"
},
"temperature22": {
"pseudo-mode": "cool",
"data": "39202"
},
"temperature21": {
"pseudo-mode": "cool",
"data": "20320-23"
},
"temperature20": {
"pseudo-mode": "cool",
"data": "3920392"
},
"temperature19": {
"pseudo-mode": "cool",
"data": "9222323"
},
"temperature18": {
"pseudo-mode": "cool",
"data": "0239203"
}
}
},

I have same issue.
But it seem to be specification of Homekit itself.
I think it is because we can set only same range of temperature between all modes.
So we don't have any ways instead of integrate ranges of each mode.


Migrate coverage reporting to Circle

Current state
Travis CI reports coverage. In the past, this has been fine, and particularly when we were straddling both version 2.7 & 3.x.
Problem
Now that various feature requests are including Matplotlib functionality (i.e., #53), we need to consider the best environment for such tests. Travis + Matplotlib has posed a headache in the past, and if we ignore the tests on Travis, we lose lots of coverage.
Solution
We should add a new job to the Circle CI workflow for Python 3.6 (on CPython, not PyPy) that includes coverage reporting. This should be pretty straight-forward.

[x] Add new job python36 to Circle workflow, and enable coverage reporting
[x] Remove coverage dependencies and reporting from Travis CI

This was merged in #57


Strawman

A strawman to get us started. Thanks to @timhall99 for most of this.

The small changes make sense and improve readability.

I'll take Tim's comment as approval and merge. We can make improvements on the dev branch.


Allow specifying a custom file extension for copybook lookup

The editor currently only works with local copybook files with the extension .cpy.
Make this extension configurable, i.e. allow specifying an array of different potential extensions.

@Morridt I filed this issue here as discussed today.

Hi Peter,
regarding the case #23, changing the extension didn't solve the problem

@przemekherok looking at your screen shot again I see that the .vscode directory with the property groups is in a sub-directory. Are you using VS Code multi-root workspaces? Did you see the instructions for those here: copying the property groups into the .code-workspace file)? https://ibm.github.io/zopeneditor-about/Docs/setting_propertygroup.html#setting-ibm-z-open-editor-property-groups-in-multi-root-workspaces
If this is a single root workspace then you need to open the workspace one level down so that the .vscode directory is at the top-level. Only then will the settings be read.

Perhaps not only « one » extension but « many » extensions (a list = a property of type array in settings.json) for cobol copybooks / PL/I includes / hlasm copys + macros.

@Morridt this has now been done for v1.0.3. Let us know if this works for you.


Problems with the release candidate version

Hey, bearmaster,
The release candidate is wonderful, but there is an issue: the website announces that the latest beartype version is 0.19.0rc1 (from here, probably). But the actual pypi package version is 0.19.0rc0!
This is actually pretty confusing, since I was thinking: "huh, functools.partial is broken, lemme try release candidate", then I googled beartype to get the candidate version, and got this:
 and when trying to pip install beartype==0.19.0rc1 pip gives up. Yikes.

...lol. You're absolutely right. That's confusion incarnate. Interestingly, the underlying issue is that our doco version picker is currently defaulting to "latest" (...for some reason, which it shouldn't, so that's a bad reason) rather than "stable".
I also note that the logo in the upper left-hand corner has already spontaneously failed when I wasn't looking at it. Bit-rot everywhere! The bit-rot is setting in already. I'll patch up all these doco issues tonight and push out a web update. Thanks so much for the heads-up, @knyazer. :full_moon_with_face:


Update to proper default product variant price

@carolineschnapp Saw you mention this issue in our of our themes, so making the fix here as well. Set the default liquid price to that of the selected variant when set.
Using current_variant to hold product.selected_or_first_available_variant for brevity.
cc/ @stevebosworth @mpiotrowicz

Last commit was to ensure the #ComparePrice is always in the DOM, but hidden by default. JS will show it when needed. The default or set variant might not have a compare_at price, so the element wouldn't exist when the JS tries to modify it.


re-export structs/enums used in the client's public API

What should be done?
nowadays in order to use the client you need to add both miden-client and miden-object packages. We should instead do a re-export of structs and enums used in the public interface (such as AccountId for example)
How should it be done?
add the re-exports on lib.rs
When is this task done?
when you can create a new crate, and use the client only by adding miden-client as a dependency in Cargo.toml without the need of adding miden-objects as a dependency
Additional context
No response

As discussed offline, as part of this we should remove enums such as the client's AccountStorageMode which is a duplicate of the miden-base one.

#394 got merged, should we close this? We'll probably need another iteration but it might deserve a second issue

Yup, let's close


[android] Search Filtering and Dynamic Filter Suggestions Checklist

~Make entire panel scrollable~
~Bug with file extensions suggestions~
~After the screen is rotated the tags stop responding to onClick, look at onResume()~
~Filter out tags longer than 20 characters~
~ActionBar filter button should not behave on a media type basis, should be consistent with the global behavior of the KeywordFilterDrawerView which shows global suggestions. Note: In the beginning suggestions were shown only for the current selected tab, but the experience was way too confusing, so we switched to global suggestions~
~Make sure ActionBar filter button is shown onResume for the SearchFragment, going to the Android home and back can make the button dissapear~
~Last refactor is not refreshing adapter when removing applied tags. Test by filtering, changing media type, then trying to remove applied tags.~
Add a dumb-proof way to dismiss the drawer. Right now user can touch the search results in the back or they can gesture the drawer away, but these two might not be obvious.
~Hide "Clear Filters" unless filters have been applied~

Just in case... The issue with source filters is not included here and persists on build 401:
"Not only Sources appear within the Filter by Source"

Never mind... Sources & Channels then


⚠ Bofrost.be has degraded performance

In 4bb8fa6, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1318 ms

Resolved: Bofrost.be performance has improved in e0f0998.


[#157278274] Allow user deletion

What
We'd like to allow our tenants to remove certain users from their
orgranisation. This can be done via the secret users role being unset
on already existing org user. We're adding views for delete
confirmation and the success page.
How to review

Run the application
Attempt to delete user from one of the organisations

I think it would be worth adding screenshots.  I'm also wondering if it would make more sense to use buttons like these:
http://alphagov.github.io/digitalmarketplace-frontend-toolkit/button.html
I realise the design has links, but that the user journey has also changed a bit since then.   Also removing a user is an action, so having a button like saving role changes is currently would be more uniform.  Probably worth talking with @stephenjoe1 too.

Didn't add screenshots, as there is no before or after. It has no designs either aside from the remove link.

Also removing a user is an action, so having a button like saving role changes is currently would be more uniform

The initial link is still a link IMO. It redirects user to a confirmation page, where you have to confirm/perform the actual action represented by a button.

You’re right about it being a link, but it's a bit of an unusual case because it's leading to a page that is only a confirmation page and nothing else, so in a way the link to it is part of the action.  This is why I'm wondering if a link represents the meaning in the best way in this particular situation.  In other teams in the past there have been various approaches to this, including using something in between a link and a button, or confirmation flash messages.  The way it currently looks just now makes it appear as if changing a user role is a more drastic action than removing the user with the bright green button right next to a more understated link.
I think screenshots can be useful if you are adding a new user journey, even if there’s not a before as it makes it easier to see what’s there visually quite quickly.


✨ More Customized Audio Control

What feature or enhancement are you suggesting?
My application is somewhat similar to FaceTime in the fact that the user may play videos while the front camera is recording the user. Right now I'm using react-native-video that allows some level of flexibility, with props like

mixWithOthers
audioOutput
etc.

I'm using react-native-vision-camera and right now I believe the AVAudioSessionCategory is just playAndRecord (but I'm not positive on this).
One of the issues that I'm experiencing is that if a user is playing a video, the audio from the video is getting picked up by the microphone, which can sound poor or reduce the users microphone input. This is obviously a very difficult technical challenge to solve.  I've been trying tons of different combinations and even trying to set the AudioSession separately with react-native-volume-manager.
I don't know how possible this is, but some things that come to mind for some new react-native-vision-camera properties:

microphoneSensitivity // 0 - 100 percent
audioSessionCategory // similar to setCategory
audioSessionMode // similar to setMode
disableAudioSession // somehow allow the user to set their own audio session using libraries like react-native-volume-manager
microphoneSelection // maybe there is more than one microphone for a specific device and the user can select?
removeBackgroundNoise // some insane method that filters background audio (I saw this on a new google pixel advertisement)

Expo Audio has some decent features for audio control.
I don't quite know the best way to approach this issue in my ignorance. I guess the perfect test would be to have demo video playing with react-native-video on decent (60-80%?) volume and the front camera not picking up any of the music or video audio.
Thanks as always @mrousavy,
Chris
What Platforms whould this feature/enhancement affect?
iOS, Android
Alternatives/Workarounds
I've tried tons and tons of customizations and combinations with different audio levels.
The only way the camera doesn't pick up background audio from the video is if the user is wearing headphones or if the video is at a very low volume.
Additional information

[X] I agree to follow this project's Code of Conduct
[X] I searched for similar feature requests in this repository and found none.

Just noticed that there is a static background noise while recording videos using this library. Compared with the iphone camera app, there  doesn't seem to be any background noise.


documentation is really hard to understand

Hi, I created a support request with Google since I have paid support, but they actually told me to come here (both sides have now told me to speak with the other side).
I had a lot of difficulty understanding the library documentation. Here are some of the issues I ran into... I hope this doesn't read too negatively, but you should know that it's quite difficult for a new user to understand.
Issues all relate to the following page: https://googleapis.dev/python/secretmanager/latest/secretmanager_v1/secret_manager_service.html

The signatures seem to be written in a special kind of definition language that isn't familiar to me. Is this language defined anywhere? If so it would be great if you could link to it from the documentation. My inability to fully understand these signatures is blocking me from using the library.

For example, from the instantiator, what does Union[str, google.cloud.secretmanager_v1.services.secret_manager_service.transports.base.SecretManagerServiceTransport] mean? I'm guessing it means you can provide either a string or that object, because it doesn't seem like it could actually be the "union" of the two. But I don't know where to look for the definition of Union.
This one is more confusing (again from the instantiator):
client_options: <module 'google.api_core.client_options' from '/workspace/.nox/docs/lib/python3.8/site-packages/google/api_core/client_options.py'> = None
I can't figure this one out at all. I assume we aren't meant to pass a Python module as an argument, but I wouldn't be confident using this argument even if I could find a class in that path that seemed to match.

In both of the above cases, you aren't linking to the class definition (SecretManagerServiceTransport or whatever the class is supposed to be in the second example), so I wouldn't know how to instantiate the class in any case.

There isn't any example code provided for anything, which would make things a lot easier.

You list a few methods on these pages that look like they're probably "private" methods, like "parse_secret_path". It seems like it would make things simpler if you hid whatever you don't intend end users to use.

Just in general, I've found the Python Cloud Client Library docs to be hard to understand. Not enough examples in particular, which is especially important since sometimes they can be pretty complex.

Hi @eliot1785,
Thanks for taking the time to leave feedback.
If you're a new user of any Google Cloud product, you should start off by cloud.google.com. For Secret Manager, that's https://cloud.google.com/secret-manager/docs. These pages have (1) conceptual documentation and (2) code samples to accomplish common tasks. Most products have a quickstart to help you get started: https://cloud.google.com/secret-manager/docs/quickstart
The reference documentation (https://googleapis.dev/python/secretmanager/latest/secretmanager_v1/) is an exhaustive list of every function/type inside the library. It's primary purpose is for looking up specific options after you're already familiar with the API.

The signatures seem to be written in a special kind of definition language that isn't familiar to me. Is this language defined anywhere? If so it would be great if you could link to it from the documentation. My inability to fully understand these signatures is blocking me from using the library.

I think the section you're referring is this:

That is a copy-paste of the function definition (some replacements since the source code aliases some imports). It's primary purpose is figuring out whether something is a positional or keyword argument. The parameters themselves are described below in more detail.
https://github.com/googleapis/python-secret-manager/blob/e949b6a56815079d1ffd25d76cbee63cb4a79390/google/cloud/secretmanager_v1/services/secret_manager_service/client.py#L272-L279

For example, from the instantiator, what does Union[str, google.cloud.secretmanager_v1.services.secret_manager_service.transports.base.SecretManagerServiceTransport] mean? I'm guessing it means you can provide either a string or that object, because it doesn't seem like it could actually be the "union" of the two. But I don't know where to look for the definition of Union.

This syntax is used when the argument can be passed as one type or another. See typing.Union. For this case, it means the argument can be a str OR a google.cloud.secretmanager_v1.services.secret_manager_service.transports.base.SecretManagerServiceTransport.

This one is more confusing (again from the instantiator):
client_options: <module 'google.api_core.client_options' from '/workspace/.nox/docs/lib/python3.8/site-packages/google/api_core/client_options.py'> = None

Ah, I think that specifically needs a fix that's already been applied to the sync client. See here for what the AsyncClient should look like once that's been fixed.
One other important note: if the parameter/argument is a keyword argument and the docstring doesn't say Required it is optional. You can instantiate clients with 0 arguments in most cases.
# Import the Secret Manager client library.
from google.cloud import secretmanager

# Create the Secret Manager client.
client = secretmanager.SecretManagerServiceClient()

I can't figure this one out at all. I assume we aren't meant to pass a Python module as an argument, but I wouldn't be confident using this argument even if I could find a class in that path that seemed to match.
In both of the above cases, you aren't linking to the class definition (SecretManagerServiceTransport or whatever the class is supposed to be in the second example), so I wouldn't know how to instantiate the class in any case.

Fair point, let's think about whether we want to publish the transport docs @parthea. It's pretty uncommon to need to use instantiate a transport separately, as the client instantiated one works fine for most use cases.
Another point worth mentioning is that the generated reference docs are derived from the source code docstrings. If you need to create a transport please reference the docstrings in the source code.

There isn't any example code provided for anything, which would make things a lot easier.

We're working on adding some generic generated sample code inside the docstrings right now. (ETA is this quarter). But even after those are published Secret Manager has high quality handwritten samples that accompany how-to guides.

You list a few methods on these pages that look like they're probably "private" methods, like "parse_secret_path". It seems like it would make things simpler if you hid whatever you don't intend end users to use.

Can you share why those seemed like private methods to you? Those methods are intended to be public - the secret is terminology specific to this API. Private functions/attributes start with a _:
https://github.com/googleapis/python-secret-manager/blob/e949b6a56815079d1ffd25d76cbee63cb4a79390/google/cloud/secretmanager_v1/services/secret_manager_service/client.py#L54-L58. We're following the Google Style Guide here, but I believe it's fairly common in Python codebases to use the leading _ as "private by convention".

Just in general, I've found the Python Cloud Client Library docs to be hard to understand. Not enough examples in particular, which is especially important since sometimes they can be pretty complex.

The reference docs on googleapis.dev aren't meant as the starting point for you to get acquainted with the product - https://cloud.google.com/secret-manager/docs/how-to is where you should start out. 😄  If you don't mind, could you share how you ended up on the reference doc pages? That could help us design a more helpful getting started experience for folks.
CC @dandhlee - Some of this information might be interesting since you're working on the new ref docs.

Thank you for the ping Bu Sun! And thank you as well @eliot1785 for bringing this to our attention.
I've been working on a lot of customer issues lately and one of the most frequent topics brought up is "I'm new, I'm on this doc and it makes no sense". Similarly, Bu Sun's point on that the page you ended up on is not the most appropriate place if you're new - I definitely agree with, however we should also put in the effort to specify the difficulty as users are not aware of this. Tricky part is finding where to redirect the users to, and being able to do this throughout our documentation - there's 100+ client libraries I'm working with for the new ref docs, totalling to 10k+ pages.

The signatures seem to be written in a special kind of definition language that isn't familiar to me. Is this language defined anywhere? If so it would be great if you could link to it from the documentation. My inability to fully understand these signatures is blocking me from using the library.

I will personally agree with you on this, because even to this day a function signature with 7+ lines full of text at first glance still scares me. There are explanations provided below that goes into depth for each provided argument, but I'll keep this in mind when attempting to show the full signature.

Hi folks, thanks for your response, it was encouraging.
It's a bit embarrassing, but I had never thought to click on the Samples tab at the top of the main documentation pages. That page is excellent and contains more or less what I was looking for.
I think the main problem is that the current documentation pushes you toward googleapis.dev pretty quickly. It isn't exactly buried and you get the impression that that's the place to go to learn how to use the API. Below are some of my series of clicks if that helps you understand how I arrived here.
For example once I realized that I wanted to use Google Cloud Client Libraries, I believe the flow was something like:

Google "Google Cloud Client Libraries"
Arrive at main page for the libraries (this is the top Google result): https://cloud.google.com/apis/docs/cloud-client-libraries
Incidentally on this page it says that these links are for getting started: "The following table provides links to get you started with Cloud Client Libraries in all our currently supported languages."
Both of the links for Python take you to GitHub
Scroll down to Secret Manager and click on it
It links directly to googleapis.dev for documentation

Another flow I remember doing:

Go to main How To guide: https://cloud.google.com/secret-manager/docs/how-to
Click on "Accessing the API" to reach: https://cloud.google.com/secret-manager/docs/accessing-the-api
Click on "Secret Manager Client Libraries" to reach: https://cloud.google.com/secret-manager/docs/reference/libraries
Scroll down to "Using the client library," read a very tiny code snippet, and then be told by the documentation that for more information I need to go to googleapis.dev

Anyway, now that I've fixed my brain fart about how to find things in the main documentation, I have a bit of a different perspective. Perhaps a simple thing you could do for now is just link to the Samples page from googleapis.dev and say that that is better if you're new to the API, and that googleapis.dev is only for experts.
If I were you I wouldn't really want to duplicate all of the documentation if there's already pretty nice code samples in the main documentation, although the look and feel of googleapis.dev could still be improved.

Forgot to mention, as for my not understanding things like Union etc - I discovered just now that that's associated with the Python typing module. I've been using Python for a couple years but hadn't yet encountered any library that specified its parameters that way, from my experience it's somewhat uncommon. Don't get me wrong, it might be an improvement to have that, but it might not hurt to add a comment noting that you're using that library to format the docs, along with a link to the typing docs. (Of course it all comes back to what audience you intend.)


Release 0.8.1

[0.8.1] - 2024-05-17
Added

Ability to convert from an old style NetCDF object store to the new Zarr based store format - PR #967
Updated parse_edgar function to handle processing of v8.0 Edgar datasets. PR #965
Renaming high_time_resolution argument to time_resolved in metadata as more appropriate description for footprints going forward and added deprecation warning. - PR #968
Added explicit backwards compatability when searching previous object stores containing the high_time_resolution keyword rather than time_resolved - PR #990
Added ability to pass additional tags as optional metadata through standardise_* and transform_flux_data functions. PR #981
Check added object stores listed in the configuration which are in the previous format with a warning raised for this PR #962

Fixed

source can be passed to transform_flux_data with the EDGAR parser; date isn't stored with the transformed EDGAR data, since this is used for choosing what data to add, but doesn't describe all of the data in the object store. Fixed bug due to string split over two lines in logging message - #PR 1010
Fixed problem where the zarr store check raised an error for empty stores, preventing new zarr stores from being created - #PR 993
Retrieval of level 1 data from the ICOS Carbon Portal now no longer tries to retrieve a large number of CSV files - #PR 868
Added check for duplicate object store path being added under different store name, if detected raises ValueError. - PR #904
Added check to verify if obs and footprint have overlapping time coordinates when creating a ModelScenario object, if not then raise ValueError - PR #954
Added fix to make sure data could be returned within a date range when the data had been added non-sequentially to an object store - PR #997
Replace references to old supplementary_data repository with openghg_defs - PR #999
Added call to synonyms for species while standardising - PR #984

Was there another PR into master from devel?

Was there another PR into master from devel?

Yes - https://github.com/openghg/openghg/pull/1011 is the PR which included the changes listed. It would be worth changing the description of this PR to include just the details which have been changed i.e. the documentation strings and why they needed to be changed.


New version: RandomNumbers v1.6.0

Registering package: RandomNumbers
Repository: https://github.com/JuliaRandom/RandomNumbers.jl
Created by: @sunoru
Version: v1.6.0
Commit: fc035d3972b0298eb882c7d0a79449cb75f143df
Reviewed by: @sunoru
Reference: https://github.com/JuliaRandom/RandomNumbers.jl/commit/fc035d3972b0298eb882c7d0a79449cb75f143df#commitcomment-145301092
Description: Random Number Generators for the Julia Language.

Pause the auto-merging until I fix the manifest


UpdateImage is very slow at updating a small region from an incompatible SDL_Surface

If UpdateImage needs to convert the format of the source pixels, it converts the entire source surface in copySurfaceIfNeeded.
My usecase involves copying thousands of individual 32x32 regions from a very large (512x6000 or larger) source surface to build an atlas image at startup. With the current code, that ends up converting the whole 512x6000 surface thousands of times and is intolerably slow.

What platform and GPU are you using?  Do you have any thoughts on how to improve this?
One possibility is to add a function that does the conversion explicitly and returns the result.  That way, you can continually upload the converted surface instead of the original.  This would be very similar to how SDL_DisplayFormat() was used in SDL 1.2.

It was a 3rd party report on macOS, I don't know the GPU used.
Here's the workaround I ended up using: https://github.com/mutability/Cataclysm-DDA/commit/85dc4399d4b0ce727978928c117d8a297acd1f3a
(tl;dr: create a new SDL_Surface that shares storage but has a different pixel start / width / height)

Original report is here: https://github.com/CleverRaven/Cataclysm-DDA/pull/19412#issuecomment-263537985

Does it sound like my suggestion would be helpful here?

Traveling so sorry for the brevity
Something to get the desired format for an image would be potentially
useful elsewhere. For my particular case doing it piece by piece is OK. I
can do a PR that integrates workaround if you like?

It could be potentially good for improved atlas support, but I'm not sure yet whether it fits the goals of SDL_gpu.  I'll have to think more about other cases.


Automatically detect and display balances for ERC20 assets in a users’ wallet

As a user, I want to be able to see and interact with any ERC20 token in my wallet, regardless of whether or not it is in the app's asset list.
AC:

If a user has an ERC20 balance in their wallet, the app reads the token symbol, name, and precision from the contract and displays the asset and balance in all asset lists throughout the app
Users can see the asset and balance throughout the app (dashboard, asset page, asset dropdown in trade menu, asset in accounts)
Users can send, receive, and trade the asset

very closely related to https://github.com/shapeshift/web/issues/957

This will be a bit tricky, since we don't have an automated way to tell if a token's contract is safe to interact with and we can't in general trust a token's reported name and symbol. We'll have to do some thinking about the possible attack vectors and how to mitigate them.

Potential solution, lmk what you think @mrnerdhair :
We add a caution icon with a tooltip for tokens that aren't included in the CoinGecko/asset list that explains that the user should use caution when interacting the token.
Re: depending on symbols and names from contracts:
I've never seen a token that doesn't have a name/symbol and feel comfortable displaying whatever is in the contract, but if there is a chance that a contract doesn't have a name and/or symbol (wouldn't this break the erc20 standard) we could always just show N/A or Unknown.
Lmk what you think of these solutions and I can run them past product and then get a mock-up for the caution icon and tooltip

I'm less worried about missing symbols/names than malicious ones: i.e. a token might name itself "USDC" and "airdrop" itself to someone's wallet as a phishing scheme.
I expect that A UX solution (of which a caution icon might be a part) is probably part of the appropriate mitigation here. I'll need to do some thinking about what sort of risks are involved and how we can warn users of them appropriately.
I do hold out hope that we might be able to find some sort of useful technical mitigation, though no silver bullet occurs to me at the moment.

@cjthompson - to discuss making the asset service dynamic

Been thinking about this a bit more. I think that automatically-detected tokens are more likely to be risky than manually-imported ones, but they shouldn't be considered second-class citizens in the UI just because we detected them. I think the appropriate UX solution might be to ask the user if they want to add the automatically-detected token to their asset list, after which we'd handle it in the same fashion as any other manually-imported token. That way we could show a relatively scary warning, but only once, and after that just have the usual lower-impact warning associated with manually-imported tokens.

If there's multiple we'll show a little counter at the top (1 of 2) for example. When the user takes an action (import or dont import) please move them to the next token to review

@willyogo do you have a wallet with tokens that aren't supported by the app that we can test this on - or able to send a tiny amount to an engineer?

@0xdef1cafe apologies for not seeing this sooner, are you able to connect willywonka.eth or 0x05A1ff0a32bc24265BCB39499d0c5D9A6cb2011c ? if not, lmk an address to send to and I'll send an unsupported ERC20

@willyogo 0xA44C286BA83Bb771cd0107B2c1Df678435Bd1535 send some shitcoins plz

@willyogo bump on above for shitcoins plz

thanks for ping and sorry i missed the first tag!
Just sent 2 tokens that aren't in the coingecko list:

DomainDAO (no liquidity on DEXs)
https://etherscan.io/tx/0xc4109ec8d6e48b78da5a5c24c9c72e12549ebc713149f8712ea5fae701f0d41a
Gem (some liquidity on DEXs; should at least be able to trade ETH for it) https://etherscan.io/tx/0x0ae967c3f873e6a89a1de4111f6106b4356da74355de89511effe473d886b81d

closing as stale and not a user request


Do the full review on the comments view : add comments, modify code, navigate, intellisense

I have been struggling to do my normal flow :
CASE A

I have a PR assigned
I take a look but I need to navigate the code and have intellisense in the view with the comments and with the side by side diff with master
-> Now I can only see/add the comments but not navigate and have intellisense in the same view.

CASE B

I create a PR
my colleague introduce comments
I respond with more comments and modify code and push again
-> Now I can not introduce code changes in the comments view
-> If I do checkout the PR, it creates a new local branch , so if I add changes to it it will be different than the real branch where I did all the changes

Hey @jonathanvila
For Case A, there is a way to do this currently, but is perhaps not immediately discoverable. If you open the description page of the PR and click "Checkout", a new view in the sidebar should appear titled "Changes in Pull Request". Here you can browse the diffs as before, or navigate to the file as it is on disk using this button:

You can see and add comments in both the diff and actual file, intellisense/navigation should work in both, and the right hand side of the diff editor should allow editing.
For Case B,

If I do checkout the PR, it creates a new local branch

This is not the expected behavior, it should reuse the branch you already have instead. I'll look into this!

I had to find this comment from @RMacfarlane in order to find out how I can have the code diff, navigation and IntelliSense in the same view, so it's probably worth making this feature easier to discover from within VS Code or just enable it by default.

@RMacfarlane  I have already tried that but I dont see the differences ( old code vs new code )

Closing as a duplicate of https://github.com/microsoft/vscode-pull-request-github/issues/486


Type 'BigInt' cannot be used as an index type

Bug Report
🔎 Search Terms
BigInt, indexing, Type 'BigInt' does not satisfy the constraint 'string | number | symbol'.
🕗 Version & Regression Information

This is the behavior in every version I tried (that supports BigInt), and I reviewed the FAQ for entries about BigInt

⏯ Playground Link
Playground link with relevant code
💻 Code
const num: bigint =<PHONE_NUMBER>0000n;
const record: Record<bigint, bigint> = {};

record[num] = num;

console.log(record[num] + 10n);

🙁 Actual behavior
TypeScript reports three errors:
Type 'BigInt' does not satisfy the constraint 'string | number | symbol'.
Type 'BigInt' cannot be used as an index type.
Type 'BigInt' cannot be used as an index type.

🙂 Expected behavior
No errors should be reported as BigInts can in fact be used as an index type in JS.

Duplicate of #46395. Used search terms: bigint in:title

Sorry about that! Since the exact search for the error messages ("BigInt cannot be used as an index type." and 'BigInt' does not satisfy the constraint 'string | number | symbol') didn't bring up anything, I assumed, that this wasn't reported yet. I'll close this duplicate now.


Add CLI configuration for memory limits and improve performance for large initial heaps

Closes #74 and #76

Hey Adam,
Can you fix the conflicts, so this can be merged? That would be great :)


$el from a component in a v-repeat is the v-start comment

I just updated to vue v0.11.9 and got an error that the $el property of a component that is used in a v-repeat was the v-start comment node instead of its element. Reverting back to v0.11.8 fixed the issue.
Perhaps you know straight away what the issue is, if not, I'll try to make a minimal testcase.

Are you accessing $el directly, or was this error thrown by Vue internally? If the latter, I'd appreciate a jsfiddle.

Directly indeed.

So you are probably using a component with more than 1 top-level elements and replace: true. This will result in a "block instance" that basically manages a block of nodes defined by a v-start comment node and a v-end comment node. Previously a block instance's $el points to the first top-level element, and now it points to the v-start comment node. In this case I'm curious what you are trying to do with the $el of the block instance, since conceptually it doesn't have a root node.

Ah, you are completely right! A popup element got moved out of the root element because of z-index issues, and with 0.11.8 this kept working, so we never noticed that of course it shouldn't work! Thanks!


programs.neovim: init

Allows to build a proper runtime folder with after/ ftplugin/ parser/ subfolders etc.
(neo)vim expects a few different folders, for instance to load
treesitter parsers.
This PR reuses the builder from the etc module, notwithstanding the
different modes/uid/gid.
This allows to get rid of some autocmd in customRC (via proper use of
the folder hierarchy) which is a win in my opinion.

Motivation for this change
I find strange to use a systemwide module for an editor but https://github.com/NixOS/nixpkgs/pull/55635 was too ambitious this I prefer to do it step by step. The (neo)vim configuration is not trivial and the module system with the typecheck is quite useful. The ability to reproduce a proper runtime folder is quite useful to alleviate the customrc writing but also to install treesitter parsers alongside neovim. I plan to improve the module later but right now I use it with
{ config, lib, pkgs,  ... }:
{
  programs.neovim = {
    enable = true;
    package = pkgs.neovim-unwrapped-master;

    configure = pkgs.neovimConfigure // {
      customRC = (pkgs.neovimConfigure.customRC  or "") + ''
        let g:fzf_command_prefix = 'Fzf' " prefix commands :Files become :FzfFiles, etc.
        let g:fzf_nvim_statusline = 0 " disable statusline overwriting
        source ~/.config/nvim/init.vim
      '';

    };

    runtime."ftplugin/bzl.vim".text = ''
      setlocal expandtab
    '';

    runtime."ftplugin/c.vim".text = ''
      " otherwise vim defaults to ccomplete#Complete
      setlocal omnifunc=v:lua.vim.lsp.omnifunc

    '';

    # cp $(nix-build -A tree-sitter.builtGrammars."$lang" ~/nixpkgs)/parser config/nvim/parser/${lang}.so
    runtime."parser/c.so".source = "${pkgs.tree-sitter.builtGrammars.c}/parser";
    runtime."parser/bash.so".source = "${pkgs.tree-sitter.builtGrammars.bash}/parser";
  };

}

@timokau
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

I worry a bit about adding yet another dimension to the "how have you set up your neovim configuration in nix(os)". Could you expand a bit on the motivation? I'm not entirely sure I understand it completely. Is this mainly about the ability of adding files to ftplugin? Couldn't we somehow achieve that with the wrapper as well, for example by adding a custom prefix somehow?
Besides that, having it documented in man configuration.nix is and advantage of course.

I think an editor would be best configured on a per-basis project too but right now that's too hard. The configure attrset is a mess etc.
The module system provides:

type checking/ discoveribility as you mentioned
it makes the ability to compose a proper runtime with the filehierarchy supported by (neo)vim. For instance I have this hierarchy https://github.com/teto/home/tree/master/config/nvim (and it's missing treesitter queries / parsers that are not versioned). You can
have several runtime."ftplugin/c.vim".text = '' that will be concatenated and all.

I've been frustrated long enough with the nix vim configuration system and this is the smallest PR I could put that fixed it. I have tried to build the runtime in vim-utils but it was just too hard and not as powerful as the module system. I do plan to improve the vim-utils.nix file (I have some local changes too) but little by little.

How does this relate with the neovim module in home-manager?

thanks for the reviews, I tried to address them. I used to be adamant about home-manager and nixos modules convergence but it's clear it's not happening anytime soon. Thus I don't think it's a problem if they diverge (I kinda keep an eye on both). My goal is to let the module remain a thin interface wrapper around better vim-utils.nix functions. Having a module in the same repository as the utilities makes the task easier IMO (and we may experiment a bit more in HM).

Alright. I still think it would be desirable to match the HM and NixOS modules from an UX perspective (even if the implementation differs). I understand your point too though. Your call :)

The defaultEditor option doesn't do anything and enabling this module unconditionally configures neovim as the default editor.

thanks for the notification, looking forward to #101127


Switch to "neither" from "not".

This is a nit, and I will close it if it goes on for more than 2-3 comments.
This just reads better to me when a nor is matched with a neither, and most places in the spec that use nor with a group of values uses neither.
Alternatively, the only other place in the spec where we seem to negate values of null or undefined with "not" uses the word "or" instead of "nor", and that would probably sound best to me.

with "not" uses the word "or" instead of "nor", and that would probably sound best to me.

"nor" should always be used when describing a negative union.


How to add a custom formula to a vue instance

I see the basic documentation for adding formulas, but attempting to use it in a vue instance hasn't given me any luck. Where do you define the formula in a vue app?
Also I noticed the custom formula example does not have parseFormulas as an option. Is this because parseFormulas is true by default?

https://bossanova.uk/jexcel/v3/examples/spreadsheet-formulas
Bear in mind, the formula must be in the global scope to be available in the parsing. Yes, parseFormulas is the default true for all spreadsheets.


Greenkeeper/semantic release 15.1.2

Coverage remained the same at 95.07% when pulling a250c8d89eac3dcce4b407da56fcf3cecf1055c0 on greenkeeper/semantic-release-15.1.2 into 1e601b48da21a5c7b2d305c1fbe2ddea249bf730 on master.


synonym

From<EMAIL_ADDRESS>on March 10, 2011 09:53:44
label for the new term
synonym
Background
This is intended as an IAO mapping for the OBO tag synonym.
This tag is used to relate ontology terms to the language that people use.  But that language is not always precise. Words do not come with necessary and sufficient conditions to specify their referents.  In regular language, and at least some scientific language, there is no way to define crisp boundaries for the referent of a word that will satisfy most users conception of what that word refers to.
Even within a single scientific community there are often subtle distinctions of usage.   For a term used in anatomy, biologists often differ in how they define spatial and or temporal boundaries for the referents of a term. Or they might differ slightly in what subclasses they consider should be subsumed by a class.  Or they may use variants of a term to refer to the same thing, or some completely different term for identically or similarly defined structures . We can't possibly add terms for all such cases and deal with the resulting overlapping partonomies or fantastically detailed classifications. Such an ontology would be unmaintainable and probably unusable.
So, for a whole set of closely related terms we choose one definition and and one term and add the rest as synonyms.  That way, users can find candidate terms by searching with a term that is familiar to them.  It may be useful to further classify (scope) synonyms as having spatial, temporal boundaries or class referents that are broader, narrower, the same as or just slightly different from the referents of the ontology term.  But note that only where we can link to a particular usage can we be precise about this (in reference X Michael Ashburner uses term Y as an exact synonym of term Z).  The rest of the time, scoping synonyms in this way can only be a matter of judgment about usage by the community of users.  Given that, any definitions using quantifiers will be useless. Instead, we need qualitative terms like 'generally' or 'largely'.
Finally, a note on definitions
Defining these synonyms as ontology terms is far from trivial because it implicitly requires some stance on what words in regular language actually refer to. This is not exactly an uncontroversial subject.  I have neither the time nor inclination to get involved in a long debate on this matter before we can add this term to the IAO
Textual definition
def: "Information artifact that links an ontology term to a term in language that, within some specified discipline or publication, has referents that largely or completely correspond to the referents of the ontology term."
comment: "Publication can be specified directly via a database cross reference, domain Please add an example of usage for that term Please see several 10s of thousands off instances of use in OBO ontologies.
Original issue: http://code.google.com/p/information-artifact-ontology/issues/detail?id=103

From<EMAIL_ADDRESS>on March 10, 2011 06:54:31
Note - I have not added this to the existing ticket - https://code.google.com/p/information-artifact-ontology/issues/detail?id=94 , becuase I don't believe that synonyms are alternate labels.

From<EMAIL_ADDRESS>on May 05, 2011 08:54:34
For discussion of relationship to 'alternative term' see: https://code.google.com/p/information-artifact-ontology/issues/detail?id=106#c1

From<EMAIL_ADDRESS>on May 05, 2011 14:15:51
We intended alternative terms to be exact synonyms, or exact synonyms per community of usage.
Examples of the former:

hemagglutination inhibition assay has alternative term HAI (we often us alternative terms properties for acronyms, such as PCR etc)
DMS structure mapping assay has alternative term single nucleotide resolution mapping assay using DMS probe

Examples of the latter:

we had the case of "probe" being used as "synonyms" to denote either reporter or detector in 2 different microarray communities. We would like to add probe as alternative term on detector and reporter and add a tag as to in which community this is true.
serum neutralization of viral infectivity assay has alternative term "influenza neutralization assay", with an editor note "MC, 20100217: I added influenza neutralization assay as alternative term. This should be tagged with a community specific value, eg "influenza ontology" or else."

As you can see from those, we have the same intent, provide users with terms they are familiar with, even if specific of a community.
If there is any confusion about the IAO alternative term, we may need to update the definition, but I think the intent is the same than what you are trying to achieve with synonym.

From<EMAIL_ADDRESS>on May 11, 2011 01:42:36
I think your examples provide a good case for IAO adopting scoped synonyms!
"serum neutralization of viral infectivity assay has alternative term "influenza neutralization assay".  Given how many types of viruses might be neutralized by serum, it sounds like one is a subclass of the other. And if not - that one should be a broad synonym of the other.

From<EMAIL_ADDRESS>on May 11, 2011 02:29:35
I’d argue that these annotation properties have two possible functions:
a.	To provide a bridge to language – in all its messiness. This is essential for the ontology to be easily searchable.
b.	To provide alternative labels for classes/properties – suitable as an aid to display / querying in specific contexts.
I think that ‘synonym’ works well for case ‘a’, and that dictionary definitions of synonym (see below) are consistent with the use of scoping (see clauses ‘or very similar to’ or ‘means exactly or nearly the same’).  Based on dictionary definitions / connotations for the word ‘term’, ‘alternative term’ might be better label for case b.  But note that some cases may have both functions.  So, I think the best way to deal with this is with this is to use annotate ‘synonym’ with some standard annotation property indicating suitability for use as an alternative term.
Dictionary definitions:
synonym (wiktionary): A word or phrase with a meaning that is the same as or very similar to, another word or phrase
synonym (OED): 1. A word or phrase that means exactly or nearly the same as another in the same language (e.g. shut and close). 2. A word denoting the same thing as another but suitable for a different context (e.g. serpent for snake). 3. A word equivalent to another in some but not all senses (e.g. ship and vessel).
term (Wiktionary): A word or phrase, especially one from a specialized area of knowledge.
term (OED): A word used to express a definite concept, esp, in a particular branch of study etc. (a technical term).
terminology (Wiktionary): A system of specialized terms.
terminology (OED): 1. The system of terms used in a particular subject. 2. The science of the proper use of terms.

From<EMAIL_ADDRESS>on July 29, 2011 13:19:51

Label for IAO mapping of 'OBO synonym'

It is clear that synonym is not an acceptable label for some people involved.  Even if these are retained as OBO community labels, the rdfs label still needs to be acceptable chosen still needs to be acceptable to the OBO community.
We need to find a label that is usable:
suggestions
'near synonym'   (?)
'closely related term'
... ?

Definitions.

The definition first suggested in this ticket is not suitable.  Here's why:
Two researchers define the boundary of the cerebellum slightly differently.  If we were to define ontology classes for these then it is true that
(a) the extensions of these classes are disjoint
(b) most people would say that the two classes have nearly the same meaning
I think they would do so because two instances, one from each class, would be very similar to each other.
Because of lack of agreement on a label, we will use the label foo:
name: foo
def: "A word or phrase that, within some paper or community, has exactly or nearly the same meaning as this ontology term."
comment: It is important when recording foo, to record the paper or community where this is the case.
more formal def: "A word or phrase that, within some paper or community that has exactly or nearly the same set of referents as this ontology term, or has a set of referents whose members are very similar to the referents of this ontology term."
name: exact foo
def: "A word or phrase that, within some paper or community, has exactly the same meaning as this ontology term."
comment: It is important when recording exact foo, to record the paper or community where this is the case.
SubPropertyOf: foo
name: broad foo
def: “A word or phrase that, within some paper or community, has a slightly broader meaning than this ontology term.”
comment: It is important when recording broad foo, to record the paper or community where this is the case.
SubPropertyOf: foo
name: narrow foo
def: “A word or phrase that, within some paper or community, has a slightly narrower meaning than this ontology term.”
comment: It is important when narrow broad foo, to record the paper or community where this is the case.
SubPropertyOf: foo
name: related foo
def: “A word or phrase that, within some paper or community, has nearly the same meaning as this ontology term, but where the meaning is not simply broader or narrower.”
comment: It is important when recording related foo, to record the paper or community where this is the case.
SubPropertyOf: foo

This issue was moved to information-artifact-ontology/ontology-metadata#15


How to start the instantbox?

There is no instructions or commands on how to start the instant box.
Can you please tell how to start using it?

Please check Deploy section in README. Feel free to reply with any questions you may have.


add getMessage api

使用场景->用机器人的时候监听贴表情的事件, 如果有getMessage会方便很多

Usage scenario -> When using a robot, listen to the event of emoticon posting. It would be much more convenient if there is getMessage

bot received info is not enough?
which props did you want but webhook not provide?


Regression: tspan in signal name doesn't work anymore

I'm trying to change the label color for a waveform. It used to work in some previous version by putting a tspan with a custom style inside the name of the waveform.
Unfortunately this code isn't working anymore (I'm using the official wavedrom editor):
{signal: [
    {name: ['tspan', {style: 'fill: red'}, 'Test'], wave: '0HL'}
]}

I get this error in the browser console::

TypeError: str.charCodeAt is not a function

For comparison, the code without the styling is as simple as:
{signal: [
    {name: 'Test', wave: '0HL'}
]}

Thank you for your awesome tool.

You can use tspan styling in most of the text labels, except the name.
The name is special because I have to measure the width of this text to let enough space on the left.
You can use some https://github.com/drom/tspan markup inside the text.

Thank you for your reply. Is there any other way to change the label color? I could have misread the docs, but tspan maskup doesn't seem to be able to change it.

I agree that it would be really useful to be able to change the label color.
By the way, thanks for developing this tool, it is awesome!


Error when running CNN (Step 6)

I get a matrix dimension error when running the CNN:
InvalidArgumentError: Dimensions must be equal, but are 32768 and 25088 for 'MatMul' (op: 'MatMul') with input shapes: [16,32768], [25088,4096].
It looks like this error involves Variable_26:0 in the vggnet16?

@pyrobluestar I got the same issue. Did you manage to solve it?


doc: Record the steps used to update server software

When I went to install the latest version of the software on the production server, I realized there were not explicit steps for doing so recorded in the documentation. This PR begins to fill that gap, with the knowledge I have gleaned so far.

I just did (to generate this), but there's no harm in re-doing. Or you could merge this, and then do that, so that it won't be the null update. Whichever you prefer. Thanks!


Update package versions in doc

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


Upgrade spdlog to 1.4.2

Could you please release next version of the hunter? I can see that there is spdlog upgrade on the master branch but there is no release. I would appreciate that because I need spdlog with systemd logger ;)


Added links to conductor, cadence and jBPM

I believe orchestration engines like conductor and cadence would be a nice addition to this list, as in a way they're workflow engines as well. Also added jBPM as a full BPM Suite which also provides a workflow engine on its core.

👍


test: add beaker autopart with lvm support

This PR will add LVM test in bootc install on beaker. bootc install will deploy on a beaker server deployed by autopart with --type=lvm.

/test-rhel95-replace


Fixing git checkout to reflect latest version tag

Makes sure that the 'Getting HPX' documentation page always refers to the latest version tag

This will be solved by merging #5926. Closing...


[Documentation] Add CODE_OF_CONDUCT.md

We should add a CODE_OF_CONDUCT.md file at the root of the repo
see an example here: https://github.com/therzka/OSS-Example-Repo/blob/main/CODE_OF_CONDUCT.md
other resources:

https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-code-of-conduct-to-your-project
https://www.valamis.com/hub/code-of-conduct#:~:text=code of conduct-,What is a code of conduct%3F,from staff within an organization.

Hey @coderlore sorry if I stepped on your toes on this.


Title image not working in PDF

Hello,
I'm trying to add logo into adoc file. Tried already different ways and it's not working at anyway.
= Book Name
:title-logo-image: logo.png
:toc: left
:doctype: book
:toclevels: 5
Also, I tried this one:
= Book Name
:front-cover-image: image::logo.png[]
:toc: left
:doctype: book
:toclevels: 5
I tried to paste into whole code of chronicles-example and still I'm not getting any logo in my pdf.

Hi, this is not supported in AsciidocFX.

Could you please suggest me any free tool which supports?

You can check Asciidoctor PDF, maybe it supports

It really supports! Thank you so much!


toolbox version.

Please add a
$toolbox version
command handler, to display the version information for toolbox
Both podman and buildah have this.
podman:
[tim.hawkins@localhost ~]$ podman version
Version:            1.4.5-dev
RemoteAPI Version:  1
Go Version:         go1.12.6
OS/Arch:            linux/amd64
[tim.hawkins@localhost ~]$
buildah:
[tim.hawkins@localhost ~]$ buildah version
Version:         1.9.0
Go Version:      go1.12.5
Image Spec:      1.0.0
Runtime Spec:    1.0.0
CNI Spec:        0.4.0
libcni Version:
Git Commit:
Built:           Thu Jan  1 08:00:00 1970
OS/Arch:         linux/amd64
[tim.hawkins@localhost ~]$
It makes the process of reporting issues easier to document.

Hey, @thawkins, thanks for the heads up. What kind of info is needed to show?? I was thinking of:. toolbox version, podman version and possibly OS + Arch. I guess that could be enough.

Anything that would be required to report bugs, i think the list you gave is a good start.

Duplicate of https://github.com/debarshiray/toolbox/issues/49


Add page descriptor to main page

Great for beginners!
Add a summary of the project (as comments) at the top of the JS_Game.html page
I have marked where it should go at the top of the page

@SangTran01 is currently working on this issue


jupyterlab-vpython>=3.1.7 fails to install on windows 11

Solution to issue cannot be found in the documentation.

[X] I checked the documentation.

Issue
conda install of jupyterlab-vpython failling on versions 3.1.7 and 3.1.8
Current error message:
InvalidArchiveError("Error with archive C:\\Users\\egb339jobs\\AppData\\Local\\miniforge3\\pkgs\\jupyterlab-vpython-3.1.8-pyhd8ed1ab_0.conda.  You probably need to delete and re-download or re-create this file.  Message was:\n\nfailed with error: [Errno 2] No such file or directory: 'C:\\\\Users\\\\egb339jobs\\\\AppData\\\\Local\\\\miniforge3\\\\pkgs\\\\jupyterlab-vpython-3.1.8-pyhd8ed1ab_0\\\\share\\\\jupyter\\\\labextensions\\\\jupyterlab_vpython\\\\static\\\\vendors-node_modules_script-loader_addScript_js-node_modules_css-loader_dist_runtime_api_js-n-e40101.547bebd6dfa3b2c1a3eb.js'")

At the moment is solved by installing the version 3.1.4
Installed packages
bzip2                     1.0.8                h2466b09_7    conda-forge
ca-certificates           2024.7.4             h56e8100_0    conda-forge
libexpat                  2.6.2                h63175ca_0    conda-forge
libffi                    3.4.2                h8ffe710_5    conda-forge
libsqlite                 3.46.0               h2466b09_0    conda-forge
libzlib                   1.3.1                h2466b09_1    conda-forge
openssl                   3.3.1                h2466b09_2    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
python                    3.11.9          h631f459_0_cpython    conda-forge
setuptools                71.0.4             pyhd8ed1ab_0    conda-forge
tk                        8.6.13               h5226925_1    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
ucrt                      10.0.22621.0         h57928b3_0    conda-forge
vc                        14.3                h8a93ad2_20    conda-forge
vc14_runtime              14.40.33810         ha82c5b3_20    conda-forge
vs2015_runtime            14.40.33810         h3bf8584_20    conda-forge
wheel                     0.43.0             pyhd8ed1ab_1    conda-forge
xz                        5.2.6                h8d14728_0    conda-forge

Environment info
active environment : test
    active env location : C:\Users\egb339jobs\AppData\Local\miniforge3\envs\test
            shell level : 3
       user config file : C:\Users\egb339jobs\.condarc
populated config files : C:\Users\egb339jobs\AppData\Local\miniforge3\.condarc
          conda version : 24.3.0
    conda-build version : not installed
         python version : 3.10.14.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=skylake
                          __conda=24.3.0=0
                          __win=0=0
       base environment : C:\Users\egb339jobs\AppData\Local\miniforge3  (writable)
      conda av data dir : C:\Users\egb339jobs\AppData\Local\miniforge3\etc\conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/win-64
https://conda.anaconda.org/conda-forge/noarch
          package cache : C:\Users\egb339jobs\AppData\Local\miniforge3\pkgs
                          C:\Users\egb339jobs\.conda\pkgs
                          C:\Users\egb339jobs\AppData\Local\conda\conda\pkgs
       envs directories : C:\Users\egb339jobs\AppData\Local\miniforge3\envs
                          C:\Users\egb339jobs\.conda\envs
                          C:\Users\egb339jobs\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/24.3.0 requests/2.31.0 CPython/3.10.14 Windows/10 Windows/10.0.22631 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.8
          administrator : False
             netrc file : None
           offline mode : False

That's a long path so I'd check whether the final linking path is longer than what the system allows, which might be getting blocked by Windows and throwing that error. Try for example to install it in a very short prefix like:
conda create -p C:\env "jupyterlab-vpython>=3.1.7"

Thanks for your reply!,
Attempting to install using a short prefix stills fails:
CondaVerificationError: The package for jupyterlab-vpython located at C:\Users\egb339jobs\AppData\Local\miniforge3\pkgs\jupyterlab-vpython-3.1.8-pyhd8ed1ab_0
appears to be corrupted. The path 'share/jupyter/labextensions/jupyterlab_vpython/static/vendors-node_modules_script-loader_addScript_js-node_modules_css-load'
specified in the package manifest cannot be found.

CondaVerificationError: The package for jupyterlab-vpython located at C:\Users\egb339jobs\AppData\Local\miniforge3\pkgs\jupyterlab-vpython-3.1.8-pyhd8ed1ab_0
appears to be corrupted. The path 'share/jupyter/labextensions/jupyterlab_vpython/static/vendors-node_modules_script-loader_addScript_js-node_modules_css-load'
specified in the package manifest cannot be found.

But the error is in fact due to a long path, I manage to fixed it by enabling long paths on Windows.


Enhance the OBJ writer to support inverted color tables and alpha values

It would be nice if the OBJ writer, when writing out a color table as a texture, could take into account whether or not the user has inverted the color table. It would also be nice if the OBJ writer could respect alpha values of color tables.

[x] invert color tables
[ ] alpha values

@visit-dav/visit-developers Can I just close this?

No argument here.
As a matter of policy, I think anyone that opens an issue, works to address it and decides after researching it effort is too much needn't ask permission to close it. But, I would strikeout the second check box in the initial comment to indicate it is not handled here.

We are going to close this as alpha values are no longer planned.


grid_import_limit

Is your feature request related to a problem? Please describe.
Hi, in order to support multiple EV's, loadpoints and pricebased charging in PV mode, setting a max_grid_import limit for example 40A, would be helpfull, in order to not have an unitentional surge protection being activated.
Describe the solution you'd like
for the meter grid part a setting which contorls that combined power of all loadpoints must not exceed a specific grid import limit in A per phase
The priority of loadpoints can then be used to distribute the available sureplus of energy which can be consumed via grid
Describe alternatives you've considered
I was not able to create a solution with my given knowledge of evcc and the well documented known features
Thank you

I think this is the topic of#8427


Game not loading saved files

I'm using Solasta and the mod versions <IP_ADDRESS>, but did try to remove the error using UB version 1.5.94 and <IP_ADDRESS>
When trying to resume a gaming session by loading a saved game, I get the inconsistency error message and the game just stays on the loading screen forever.
I open the game, close the mod window, click Continue (or Load Game, neither work) and try to resume playing, when the error message appears and the loading screen never ends.
I can't seem to upload all of the files you asked for, so I'm attaching the UB folder with everything in it.
Solasta - Copy.zip

Please check change log. On <IP_ADDRESS> I had to remove ring mail recipes and items. Most likely one of your heroes have a ring mail. Downgrade to <IP_ADDRESS>, remove these items, upgrade and try again.

Right, that seems weird because I started playing on <IP_ADDRESS>, but I'll try. However, I can't seem to find <IP_ADDRESS> on your releases, the earliest is <IP_ADDRESS>, I'll try that since it must be the one you were going for.

It’s the same error message related with umm 27.11. Try umm 0.24.x


issue-4737

Issue description: https://github.com/tensorflow/tensorflow/issues/4737
I test it by:
x = tf.constant(-1,tf.float32)
y = tf.nn.elu(x)
dy = tf.gradients(y,x)
ddy = tf.gradients(dy,x)
dddy = tf.gradients(ddy,x)

elu2 = lambda x: tf.select(x < 0., tf.exp(x) - 1., x)
dy2 = tf.gradients(elu2(x), x)
ddy2 = tf.gradients(dy2,x)

with tf.Session() as sess:
    print sess.run(dy2)
    print sess.run(ddy2)
    print sess.run(dy)
    print sess.run(ddy)
    print sess.run(dddy)

Can one of the admins verify this patch?

Thanks for the contribution. Can you extend the tests in https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/kernel_tests/relu_op_test.py to also cover the second order derivatives for Elu ? Thanks.

OK

@guotong1988 , to be clear, did you address Benoit's request?

I already commit the unit test.

Jenkins, test this please.


[ENG-7070][eas-cli] Fix issues with invisible build info in some terminals in build:run and build:resign commands

Checklist

[ ] I've added an entry to CHANGELOG.md if necessary. You can comment this pull request with /changelog-entry [breaking-change|new-feature|bug-fix|chore] [message] and CHANGELOG.md will be updated automatically.

Why
https://linear.app/expo/issue/ENG-7070/unable-to-see-details-of-disabled-builds-when-selecting-the-build-to
How
Don't use the dim effect. Use bold effect for all undimmed fragments.
Test Plan
Test locally

@wkozyra95 Could you test it, please?

/changelog-entry bug-fix Fix issue with invisible build info in some terminals in the eas build:run and eas build:resign commands


Add Home Assistant Octopus Energy

Insert URLs to the project here: https://github.com/BottlecapDave/HomeAssistant-OctopusEnergy

[x] The projects is active, documented, open source licensed, shows usage from external parties and is directly targeting environmental sustainability. Find more details in the Contribution Guide.

All issues labeled as Good First Issue of the project listed on OpenSustain.tech will be visible on ClimateTriage.com. This is a great way to welcome new community members to your project.
All projects listed will be posted on our Mastodon channel

@BottlecapDave


[bugFix]: Typo In Server Application Data

Fixing a possible copy/paste typo in Server Application Data section.

Merged and deployed.  Thanks, nice find!


Too many open files - which would be the best way to implement ulimit on project.json ?

Hi,
Not much an issue as a question: how it would be appropriated to implement configuration as ulimit or equivalent to be ran before the function ? I know that inside containers you wont be able to set new sysctl but memory and files might be useful. Thanks

I don't think there's a way to have apex set that across all supported languages. Would be neat if I'm wrong though.
PS: if you have a nodejs lambda, you could try settrlimit from https://github.com/ohmu/node-posix

If I understood correctly the shim is node.js... so probably this lib would help b/c if the app is exec'ed from the shim it should inherit settings and env vars (as per exec man page http://www.unix.com/man-page/posix/3posix/exec/). I will look into node again and try to test it. Thanks.


Still being maintained? Merging Changes

Wondering if this is still being maintained. I am using this on my project and have updated a bit. Checking to see if my changes can be merged after review.

Great, will check on it. Thank you @leinierperez


Add a static label to virt-operator job podspec

This allows network policy to apply to job pod
Signed-off-by: Marcus Sorensen<EMAIL_ADDRESS>
What this PR does / why we need it:
This adds a static label to the virt-operator job's pod, which in turn allows us to target it with network policy, pod presets, etc.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #3339
Special notes for your reviewer:
See mailing list discussion: https://groups.google.com/forum/#!topic/kubevirt-dev/X0NjRDuoFWs
Release note:

NONE

/lgtm
/approve


fix Ex12.19~Ex12.20

In Ex12.20 you included the "Ex12.19.h",but there is a problem you use the begin() and end(),but the defination of them are in Ex12.19.cpp,And you do it in Ex12.20 in the same way.So I delete the Ex.12.19.cpp.And add the function defination in Ex12.19.h.And i test it in Ex12.20.cpp.It works well.

:sweat:
Please compile ex12_20.cpp in this way:
g++ ex12_20.cpp ex12_19.cpp -std=c++11

Implementation codes in headers is generally a bad idea since it forces recompilation of all files that includes the header when you change the actual code rather than the declarations. It will also slow down compilation since you'll need to parse the code in every file that includes the header.
A reason to have code in header files is that it's generally needed for the keyword inline to work properly and when using templates that's being instanced in other .cpp files.

Oh,I don't know this usage.And i can't understand this "A reason to have code in header files is that it's generally needed for the keyword inline to work properly and when using templates that's being instanced in other .cpp files."Can you explain this in Chinese.Thx

@Soyn
把实现代码放到头文件里，通常有两个理由：

inline 成员
模板

除此之外，尽量不要这么干。

Thx for your patience


Textlog does not support Chinese nor other non-latin text

Hello,
Textlog does not support chinese character.

Is there a way to make it work?
Thanks

Adding support for Chinese should indeed be possible, but the way our GUI library is set up (egui) it would mean bundling a Chinese font in the binary, or building out egui to load system fonts when needed.
Bundling a Chinese font is definitely the easier route, but it means each wasm binary gets bigger by quite a lot, so I think I rather figure out a way to get egui to dynamically load fonts when needed:

https://github.com/emilk/egui/issues/5233

That make a lot of sense. Thanks for the quick response.
I think that I can alleviate this problem for now but, I think it could be nice to have. Also, I can imagine that chinese rerun settings can be a future feature as well.
Working more and more on multimodal data and rerun is really nice for this !
Thanks :)

Closed in favor of #5234

Let's keep this issue open to track the progress


How to use GroundDB?

On this thread https://forums.meteor.com/t/how-to-use-grounddb/2946 I tried asking for help because I can't make it work?
Could you please take a look at  my code and help me fix it.
From your documentation it looks like it should be easy to use but for me it doesn't work.
What am I doing wrong?
Is there any example code on git hub?
Is it possible that you package needs meteor add appcache?
Because once I included it I think it worked.
I don't think this is mentioned anywhere?
If this package is needed shouldn't be automatically included?

meteor add ground:db
then var foo = new Ground.Collection('foo');
If you are using it with iron router or the new template subscriptions you might want to wait a couple of weeks for me to wrap up intelligent subscriptions. :)

Yeah, that didn't work.
Then I tried frozenman, which had a full example thatonly needed to be copy
pasted, and it also didn't work.
So I started thinking that maybe something else is wrong and not the way I
am using the package.
Then next second I thought to myself "Maybe I need to use to cache source
files or else Browser will have nothing to call when offline"
So I added meteor add appcache.
And it seems that made it work.
If so then shouldnt you package include appcache if it can't work without
it?
Or at least to mention that appcache is needed or something?
On 19 April 2015 at 03:44, Morten N.O. Nørgaard Henriksen <
<EMAIL_ADDRESS>wrote:

meteor add ground:db
then var foo = new Ground.Collection('foo');
If you are using it with iron router or the new template subscriptions you
might want to wait a couple of weeks for me to wrap up intelligent
subscriptions. :)
—
Reply to this email directly or view it on GitHub
https://github.com/GroundMeteor/db/issues/91#issuecomment-94216608.

Thanks for the answer.
That didn't work until I added appcache.
Could you comment on that?
Is appcache prerequisute?
If so should you include it in packaga or just mention that it is needed?

Hi Morten,
I have been using GroundDB with appCache on a mobile app in production for
1 month now. Works great (thanks for that!).
My problem has to do with Iron router: I have to do some tweaks in order to
understand when the data subscriptions are ready (I use Ground.ready()
together with other callbacks, but it's messy). I cannot wait on standard
meteor "subscription.wait()" because they wait for the server to respond -
and my app can be offline, in which case it would wait forever...).
Is this what you're working on when you say in your email below:
"If you are using it with iron router or the new template subscriptions you
might want to wait a couple of weeks for me to wrap up intelligent
subscriptions. :)"
Thanks,
Joao
On 19 April 2015 at 01:44, Morten N.O. Nørgaard Henriksen <
<EMAIL_ADDRESS>wrote:

meteor add ground:db
then var foo = new Ground.Collection('foo');
If you are using it with iron router or the new template subscriptions you
might want to wait a couple of weeks for me to wrap up intelligent
subscriptions. :)
—
Reply to this email directly or view it on GitHub
https://github.com/GroundMeteor/db/issues/91#issuecomment-94216608.

Currently what method is preferred to be used in order to load data? In my app I have Iron Router routing the paths but all subscriptions done template-level. As consequence I'm not able to work offline in any way.
Aware you are working in a fix for it, but I have a rather critical app that must sync asap, so I'm willing to change my subscriptions methods in order to make it all work. Suggestions?

you should be able to add subscriptions that hold the data you want offline - the template based subs should still work - but when they unsubscribe the "offline" subscriptions would still hold the data

So is really all you have to do to turn your normal online meteor app into an offline one is add this package, along with appcache, and then ground your existing collections by using Ground.Collection(exampleCollection)
And then make sure your subscriptions are not using iron router's waitOn?
I have set this up and it is working. But am wondering if there is anything else I need to do.

@raix Any update on the iron router (intelligent subs) update? I am currently using subscribes in iron routes waitOn's and using the template subscriptions. I was using groundDB but removed it due to some quirky UI behavior, and also becuase without the waitOn, templateInstance.data is not available in the rendered callback. Because of iron router it is hard to work with groundDB right now.


Scale webpack in large projects by watching "observers" instead of files

Feature request
Webpack performance improvement that is unaffected by scale of project.

What is the expected behavior?
Ideally I believe everyone wants that should you have a project that is 65,000 entry points[1] its just as fast as a project running just 1 entry point.
What is motivation or use case for adding/changing the behavior?
At the moment project re-build performance in development is tied directly to the performance of rebuilding all your entry points.
When you have a single entry point in your application you can only really make webpack faster by "make webpack build faster". However when you have a N entry points your performance degrades over time based on how many entry points you are building.
Let's say N is 10 and webpack has come out with a new version that improves performance by 50%. All it takes is for you to reach 20 for N and the performance is now (likely) back to where it was previously. Even worse, once you reach 30 it's worse then it was originally, and going forward 50 it's now abysmal.
Each entry point itself will take verying time to compile based on it's complexity. However in general the developer is very motivated to keep it low and since there's only so much that can go on a page even in a full page js rendered page you'll hit some natural limits (outside of very special cases).
Some solutions do exist at the moment that try to address this, one of which is DLLs. Parts of the application are marked static and compiled into their own separate bundle using webpack.DllPlugin and thereby webpack doesn't need to deal with them. However this is not particularly ideal, you have to pick things to put into it and remember you put them into it. Everything you don't put into it is now your new N, which is unlikely to be 1.
How should this be implemented in your opinion?
The specific settings names & placement isn't important for this feature, so let's just say it's simply mode value of observer and when present the following happen.

webpack no longer re-compiles on change, only marks files as having changed in it's internal representation of the filesystem
only fast error checks are performed if any at all; where fast means checks that can scale to (extremely) large number of files per project (may be disabled entirely; projects may be running their own language error checkers anyway, such as typescript)
under no circumstance will webpack decide to compile "everything" (exception: if next rule happens to apply to every file in the project)
a entry point or partial are recompiled only when they are "observed"

In the abstract, something is considered "observed" when:

the server was required to send the file
the user is viewing the page and the page is not in the background
the partial (eg. async import, and similar patterns) was requested (this is added to the current page's "observed" parts; all parts together are the observed)

We'll need webpack to be "told" what is observed and what isn't. For this purpose we'll define a very simple protocol as follows. In observer mode, webpack listens on a predefined port and responds to the following messages:

ID <id|uuid|etc> tells the server who we are (a uuid is automatically assigned per connection otherwise)
RESET wipes the current list of observables (for the client). If multiple clients are connected each have their own list and webpack's complete list is the sum of all of them.
OBSERVE <entity> tells webpack whats being observed (for the client)
BUILD tells webpack to build it's current observable list, request only finishes when it's done
TRY like build but returns the list of all observables and their current build number (since each might have been build different number of times). This can be used on client side to determine if the state is stable.

The protocol should be simple so helpers can be easily implemented by hand if need be in practically any language. An alternative might be to implement it as a json protocol, the details aren't important.
We'll assume a webpack-helper exists that just implements the protocol.
Example
Let's say you have a site that is fully rendered by javascript. You have SSR support for it so every page is also another entry point. Some of your pages also import some of their features asynchronously.
We'll assume the example application has 65,000 entry points.

You open /home
The server uses the webpack-helper to send RESET, OBSERVE home (the entry point), BUILD then once it's finished sends the page and calls RESET (this instance of webpack-helper won't be reused for future requests). Webpack has now built just 1 entry point (out of 65,000). Likely took less then a second.
The client loads the bundle. Because we are in development mode a client version of webpack-helper was included. It sends ID webpack-<uuid> and then also sends RESET, OBSERVE home but this time does not send BUILD (since the http request to get the bundle is confirmation enough). Webpack is now aware of this new client with and it's set of observables.
You click About in your navigation. There is an about entry point but this time this is not done though the server but loaded directly.
Since we are in development mode webpack wrapped all async import with webpack-helper calls, so our request for about turns into OBSERVE about-target-partial (or whatever is necessary), TRY. Using the output of try it determines if it's state is stable; if we happen to hit some strange case where the code won't work webpack will give us an error instead (we can simply refresh to solve the problem). Once TRY is succesful the import goes though as usual (since the file now exists) and everything works as expected.
You open a new tab. The page is now in the background. The client side webpack-helper sends RESET to the server to tell it to clear it's list.
You go back to the tab. The client side webpack-helper sends RESET and uses OBSERVE to rebuild the list of entities then it does a TRY. If the TRY takes more then 1 second then (as part of development mode) webpack places a dark gray overlay with a "Checking..." to indicate to you the tab may be stale. If after TRY the build numbers are unchanged compared to last build numbers webpack pops up a tiny confirmation "Build is fresh" in a corner otherwise it gives a "Build is old" in the corner (ideally configurable to "just refresh page" in options)
You close the tab, the webpack-helper sends a RESET

If this was normal --watch long after the example above was done and over with, you would still be waiting for webpack to startup and finish it's initial build of the 65,000 entry points.
I don't think I need to convince anyone that not compiling things is the fastest way to compile, but if you simply want to see how much of a difference this sort of optimization would make in your own project you can simply comment out all entry points except a few and see what webpack's build time is for your app, when you change files. For me it goes from a CPU / memory hog that can builds at snail pace (and I do use DLLs and everything I can) to less then a second.
In the example the webpack-helper was called in the server code directly. This honestly the simplest solution and might be even the best for anyone who wants to have control over it (its easy to understand and integrate). An alternative if you want it to be more transparent is to simply implement it as a proxy. You can then simply have servers such as nginx proxy_pass to it (this only replaces the server part of the example). So long as the protocol is kept to be simple, the webpack project doesn't really need to implement every variation of it, just the most basic.
Are you willing to work on this yourself?
I do not have the free time at the moment. (My understanding of webpack internals is also nonexistent.)
[1] approximation of FAT32 max directory size (every other filesystem is practically max filesystem files number)

Sounds like a good idea, but also something that would consume a lot of time to implement. I don't think we'll find somebody who wants to do this.
Next.js uses a similar approach. They only add entrypoints to the webpack build once they are requested by the server.