Pleas add a LICENSE.txt file

Hi @kapoorlab, could you please add the LICENSE.txt file to the root of the repo with the corresponding text?
Something like:
Copyright (c) 2023, Varun Kapoor

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Hi @goanpeca, many thanks for pointing this out, this commit fixes it.


open_mfdataset for one file, time subsetting

Hi,
Until now, we used open_mfdataset to open 12 datasets (one corresponding to a month). It works perfectly. But now I have those data in one dataset covering 26 years. So I used sel to subset the dataset and get the 12 wanted months.
 with xr.open_mfdataset(file_list, combine="by_coords", parallel=True) as ds:
    ld = pd.date_range(start="20170101", end="20171201", freq="MS")
    ds = ds.sel({"time":ld}, method="nearest")

With file_list is a list of just one file.
When I print ds, I correctly get a dataset with the size 12 for the time (dask.array<chunksize=(12, 75, 681, 1440))
But later in the code, I get "MemoryError: Unable to allocate 85.5 GiB for an array with shape (312, 75, 681, 1440) and data type float32".
In this error you can see that the time variable got back to 312 (26 years).
But oddly, when I change open_mfdataset(file_list,..) by open_dataset(file_list[0]), it works. I still have the shape (12, 75, 681, 1440).
Do you have any idea for this behavior ?
Thank you.

But later in the code, I get "MemoryError: Unable to allocate 85.5 GiB for an array with shape (312, 75, 681, 1440) and data type float32".

What line triggers this behaviour? A minimal example would be most helpful here...

The error is triggered by the line dims in this code coming from a common function that takes as parameters a dataset computed earlier in the process and some integers. I checked the input dataset, it has the good shape.
da_interp = xr.DataArray(
        all_tabs,
        coords=[da["time"], lat_I, lon_I],
        dims=["time", "latitude", "longitude"],
    )

all_tabs and da have shape=(3, 681, 1440).

What happens if you do ds = ds.sel({"time": ld}, method="nearest").load() in your code? Is there a reason you use open_mfdataset to open a single file and not open_dataset.

I get a RuntimeError: NetCDF: Access failure. The file is provided by an opendap that has technical limitations preventing me to do big downloads of data.
The actual code use open_mfdataset to open a collection of datasets. But I got the MemoryError so, for a reason I don't remember, I decided to change to open_dataset. And it worked. That's how I spotted the difference in behavior. If it works only with open_dataset, I'll put a condition to have both case but it would be cleaner if I can only use one.

Hi, I work with @JohnBrouillet on the code that gives us this strange issue.
I was able to reproduce this behaviour with a minimal example :
import numpy as np
import xarray as xr

file_list = 'one big file'  # dims : 'longitude': 1440, 'latitude': 681, 'depth': 75, 'time': 312

with xr.open_mfdataset(
    file_list,
    combine="by_coords",
    parallel=True,
) as ds:
    da = ds[the_good_var].isel({"time": [0, 1, 2]}) # dims : 'time': 3, 'depth': 75, 'latitude': 681, 'longitude': 1440

# Perform computation on dataset
da_compute = da.isel({"depth": 0}, drop=True) # dims :  'time': 3, 'latitude': 681, 'longitude': 1440

# reconstruct DataArray from values (used in our case for interpolation)
all_tabs = da_compute[:, :, :]        # np.shape(all_tabs) =    (3, 681, 1440)
# same if we use all_tabs = da_compute[:, :, :].values

# ERROR here : MemoryError: Unable to allocate 85.5 GiB for an array with shape (312, 75, 681, 1440) and data type float32
da_interp = xr.DataArray(all_tabs)

So you can see that the last line xr.DataArray(all_tabs)  is trying to allocate a (312, 75, 681, 1440) array whereas all_tabs has shape   (3, 681, 1440)  ... Of course (312, 75, 681, 1440) is the size of the initial DataSet but it should have nothing to do with all_tabs here no ?
If someone has a brilliant idea to understand this, that would be great :-)

Maybe worth noting that the problem is bypassed when using 'chunks' in open_mfdataset
However we don't know exactly how to parametrize the chunks values, and the code is still super, super slow at the line da_interp = xr.DataArray(all_tabs)

I am not able to reproduce. Probably also because I am not aware of a large opendap file I could test this with. Do you get a traceback or just a MemoryError ?

Hi  @mathause  thanks for the support. Yes indeed it seems to be strongly file-size dependant. However we cannot provide you the file for privacy reasons, sorry.
However we had recent news or our boss, and getting data from opendap like this is not mandatory anymore in our code, so luckily we can just skip it for now.
Anyway, if someone has any idea we would be still very curious of what could cause such a strange mix-up in the datas.
Cheers


Add a 'longest line' calculator for minimap.vim background work

As part of https://github.com/wfxr/minimap.vim/issues/160, it is required to have an external program that will scan a file for the longest line. code-minimap is already a dependency for minimap.vim, so tucking the background work into this binary seems a reasonable way to do that.

@ZNielsen Thank you for your excellent contribution to the minimap project!
I'm not sure if it is possible to use wc -L <filename> instead? wc is a pre-installed tool in almost all distributions.
❯ cargo run -q --release -- -O LongestLine ~/.zshrc
/home/wenxuan/.zshrc
96

❯ wc -L ~/.zshrc
96 /home/wenxuan/.zshrc

-L is not available on the wc that ships with MacOS, requiring an installation of gnu-wc. I also have no idea what the Windows story is for those unix-y utils.

This does not handle files that don't exist. Adding a fix soon.

I could see the argument that this feature is out of scope for code-minimap.
If we want to declare that gnu-wc is now a requirement to make minimap.vim work on Mac, we can do that. I'll probably make the current way the default and add an option to move to background processing that requires a compliant version of wc.

Reworked to use wc -L, so this isn't needed anymore. Thanks for the feedback 😁


The shebang must be on the first line. Delete blanks and move comments. See SC1128.

https://github.com/koalaman/shellcheck/wiki/SC1128

Nice find—if it's safe to assume you found these while trying to build from source, did everything else go smoothly afterward?

@sestinj not got it fully up and running yet.
Are you happy for me to submit some other quality of life stuff in the install scripts etc?

@Mearman absolutely, will never say no to improved quality of life.
Is there anything in particular you're stuck on? I'm guessing you're following this documentation: https://continue.dev/docs/walkthroughs/manually-run-continue
One thing that is maybe a bit hidden is the need to select the "Manually Running Server" checkbox


Set permissions for rollover file

Warning!
It is highly recommended to discuss feature requests in the mailing lists first.
[A clear and concise description of the feature requested.]
When a log rollover, I can not update the permissions, it inherited the permissions of the original file

@StudentGu,

When a log rollover, I can not update the permissions, it inherited the permissions of the original file

Can you give us the:

configuration of your rolling file appender,
the OS you are using,
the user that is running the Java application (is it a privileged user, is it the owner of the log file, etc.)?

Yes, please see the answer below:

configuration
<RollingFile name="task_sync" fileName="${sys:catalina.base}/apphome/log/task.log">
  <PatternLayout>
	<Pattern>TASK INFORMATION | %mm | THREAD="%t" %n</Pattern>
  </PatternLayout>
</RollingFile>
<Async name="vsc_task_run_file">
	<AppenderRef ref="task_sync"/>
	<NoteCategoryFilter category="SCHEDULE"/>
</Async>

OS
Linux kwephis12504946 4.12.14-120-default #1 SMP Thu Nov 7 16:39:09 UTC 2019 (fd9dc36) x86_64 x86_64 x86_64 GNU/Linux

the current file is task.log with the permissions "-rw-r-----",
and when task.log is rolled to task_xxxx.log, it permissions still is  "-rw-r-----", which i want it permissions is  "-r--r-----"

So, how can i configure the  rolled file permissions  to be different from the current file
If it is not currently supported, can I add this feature to the project?

@StudentGu,

When a log rollover, I can not update the permissions, it inherited the permissions of the original file

Can you give us the:

configuration of your rolling file appender,
the OS you are using,
the user that is running the Java application (is it a privileged user, is it the owner of the log file, etc.)?

@ppkarwasz
Yes, please see the answer below:

configuration
<RollingFile name="task_sync" fileName="${sys:catalina.base}/apphome/log/task.log">
  <PatternLayout>
	<Pattern>TASK INFORMATION | %mm | THREAD="%t" %n</Pattern>
  </PatternLayout>
</RollingFile>
<Async name="vsc_task_run_file">
	<AppenderRef ref="task_sync"/>
	<NoteCategoryFilter category="SCHEDULE"/>
</Async>

OS
Linux kwephis12504946 4.12.14-120-default #1 SMP Thu Nov 7 16:39:09 UTC 2019 (fd9dc36) x86_64 x86_64 x86_64 GNU/Linux

the current file is task.log with the permissions "-rw-r-----",
and when task.log is rolled to task_xxxx.log, it permissions still is  "-rw-r-----", which i want it permissions is  "-r--r-----"

So, how can i configure the  rolled file permissions  to be different from the current file
If it is not currently supported, can I add this feature to the project?


(WIP) Fixes for services playback per review 2

Relates https://github.com/ros2/rosbag2/pull/1481

Made the following changes per review:

Make service_event_ts_lib as private member again

Motivation: The shared pointer to the service event type support library shall be a member variable to make sure that the library is loaded during the liveliness of the instance of this class, since we have raw pointers to its inner members.

Cleanup in PlayerServiceClient::async_send_request(ser_message)

Rewrite raw pointers arithmetic. The assumption that size_t represents the size of the void* may not necessarily be true on all platforms.
Use shared pointer with custom deleter for deserialized messages.
The assumption that we can take the first element from the bounded sequence by dereferencing raw pointer to the bounded sequence may not necessarily be true and up to the underlying rmw and transport layer implementation. Use dedicated request_member.get_function(request_sequence_ptr, 0) function instead.
Add sanity checks for service_event_members_ in PlayerServiceClient constructor.

Refactoring. Do full deserialization and only once

Rationale: We can't rely on the assumption that we can safely partially deserialize service event to the ServiceEventInfo structure.

@Barry-Xu-2018 @fujitatomoya Here is the draft of my second round changes per review. I haven't done with this PR yet, but you can consider my changes and make some comments.
I will be on vacation during the next week. However, going to get back to this PR in the middle of the week.

@MichaelOrlov
Thank you for your revision. I have no further comments aside from the previous one.

@MichaelOrlov
I have a few minor comments.

If you don't have any more comments/requests for changes for This PR let's move forward and merge rhi PR to your branch.

I will merge this PR. And above minor comments, I will continue to do in https://github.com/ros2/rosbag2/pull/1481


Fix minor typos.

Fixed some typos I found.

I have checked relevant translations and they are not affected.


Question

I Think this is not the issue, I tried installing the app on Mac OSX, but always getting the error Could not find activesupport-4.2.0 in any of the sources lot of message present the missing gems. Is it unable to installing on Mac?

Hi @zkenstein
We are developing BeaconControl using OS X. It is hard to help you with deployment because you didn't provide details on how you try to setup application. I suggest you to try execute bin/setup script.

Hi @jkurdel
Thanks for the reply, yes I used the bin/setup to install and I got too many errors with GEMS missing. I used El Capitant as the OS, the for Ruby I installed yang brew and also with rvm with no luck. Any clue how to solved it?
Big thanks,

Please upload your ruby version, bundler version and bundle output.

HI @jkurdel
Finally I can installed the app correctly after reinstall several times, thank for you responded. Anyway for the database, is it possible to used XAMPP with added the mysql2 ? Tried with postresql not working, is the bin/setup also creating the DB too?
Thanks

Yes, bin/setup creates database assuming MySQL or PostgreSQL is already installed (so using MySQL from XAMPP distribution should be ok). Please look at lib/tasks/setup.rake to check which commands bin/setup script executes.
I close this issue as it looks like your problems are not connected to BeaconControl directly but rather to basic environment setup.
Good luck with further steps to set up your own BeaconControl application.

Thanks @jkurdel for creating a nice app

Hi Guys,
I'm trying to install BeaconControl but I have some issues with that... The error when executing ubuntu.sh shows this:
Installing ri documentation for bundler-1.15.3
Parsing documentation for bundle-0.0.1
Installing ri documentation for bundle-0.0.1
Done installing documentation for bundler, bundle after 5 seconds
2 gems installed
Succeed
[!] There was an error parsing Gemfile: The branch option for gem 'simple_form' is not allowed. Only gems with a git source can specify a branch. Bundler cannot continue.
from /home/admuser/Proyects/BeaconControl/Gemfile:101
-------------------------------------------

gem 'simple_form', branch: 'bootstrap-3'

-------------------------------------------
Failed
My versions:
Ruby 2.2.2
Bundler version 1.15.3
Any sugestions?
Regards,
Francisco Yu


make fuse command insensitve to links

@sampsyo or @sa2257 can you make sure this won't break buildbot setup? Once we have this, we can freely link fuse globally or put it on the path.

This is a good idea, but at least on my shell the || isn't quite enough to suppress the error that results when the script $0 is not a symbolic link:
$ dirname foo.sh
.
$ readlink foo.sh
$ dirname $(readlink foo.sh)
usage: dirname path
$ dirname $(readlink foo.sh) || dirname foo.sh
usage: dirname path
.

I can try looking into a suitable way to do this tomorrow…

I gave this a try:
#!/bin/sh
script=`readlink $0 || echo $0`
here=`dirname $script`
echo $here

And it does avoid the error. It works as long as the symbolic link is absolute, but if it's relative, readlink will still give you a path that's relative to the symbolic link's location—so $here is a lie from the perspective of the working directory. I don't see an obvious way around that…

Hm, that seems like a reasonable restriction. I've updated the script to use your snippet. Merge if you think it'll work fine.

Seems fine, at least for now! A solution that is vaguely frustrating but would work could use Python's realpath function:
python3 -c 'import os, sys; print(os.path.realpath(sys.argv[1]))' /path/to/file/that/might/be/a/link


Validate color themes in CI

I'd like to add a pipeline to my upcoming theme that checks that the theme is valid.
There are no schemas in https://github.com/SchemaStore/schemastore/tree/231a34/src/schemas/json/ for VSC color theming. :(
Alternatively, is there a way for a CI to launch the theme in a new window and check that the theme throws no problems?
(Might need to ping Martin on this one..)

Hey @aeschli any straightforward way to dump this data as a JSON?

https://github.com/microsoft/vscode/blob/1.59.0/src/vs/workbench/services/themes/common/colorThemeSchema.ts
https://github.com/microsoft/vscode/blob/1.59.0/src/vs/platform/theme/common/tokenClassificationRegistry.ts#L265
https://github.com/microsoft/vscode/blob/1.59.0/src/vs/platform/theme/common/colorRegistry.ts#L604

The color-theme schema is computed based on the registry of colors and contributed colors from extensions.
It is provided at vscode://schemas/color-theme by a TextDocumentContentProvider.
You can write an extension that opens that document in an editor, if you want to look at it and store it. But as said, the contents depends on the extensions installed and colors contributed.
You can use the vscode-json-languageservice to validate a JSOn document against a schema. Here is an sample for that.
As this is not an issue against  vscode-extension-samples (more like a vscode question) I close it.

Thanks for the comprehensive answer. It's great that I don't have to download VSC electron either

Does const schema = { $ref: 'vscode://schemas/color-theme' }; work?

Yes, vscode://schemas/color-theme is only resolvable when running inside vscode.

I implemented this and it worked:
https://github.com/SNDST00M/starfall-visual-studio-code/blob/08b25d70b13f7f719b09ef47051a15a496b1b7f2/themes/test/suite/starfall-color-theme.test.ts#L16-L47

ALright, thanks for the help


🙇  Thank you very much for this gem 💎

It saved me a lot of time with Mail::Message conversion to MandrillDm::Message, especially as mail gem doesn't have consistent/intuitive public API for simple things like mail.from and mail.to.
Much appreciate with your work and will definitely contribute if I find something useful 👍

you are welcome :) Thanks to all contributors and original author @jlberglund


Add big decimal support

Do you want to request a feature or report a bug?
Feature
What is the current behavior?
Big Ints can't return fractions, so in some cases we lose precision that we need
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.
Reproduction of the problem can be seen on uniswap subgraph, where we try to divide ETH price by MKR price and it returns 0 instead of ~0.270
What is the expected behavior?
We get the fraction returned
I closed this issue https://github.com/graphprotocol/graph-ts/issues/34 in graph-ts that is related

I agree that if you divide two BigInts you should get an exact result. Using f64 internally is a bad option since it will lose precison in intermediary operations, since this usually represents monetary values precision must be controled. So we should represent the number as a fraction.
An open question is how do we represent this in graphql? Some options:

Return a fraction string and let frontend get as much precision as it wants.
Approximate to an f64 so we can use the native graphql type. This gets us around 15 digits of decimal precision.
Aproximate to a decimal string so we can get more precision than an f64, but how much is enough? 100 decimal places? Make it user configurable?

I thought I had written my thoughts down somewhere else already...

bignumber.js supports fractional numbers. I'd expect Web3 clients to use this library to deal with those numbers.

The only way to guarantee any level of precision beyond what f64 etc. are capable of is to use strings. It seems natural to me to add a BigDecimal (or similarly named) scalar to our GraphQL API and (de)serialize it as strings.

According to http://www.postgresqltutorial.com/postgresql-numeric/, "[t]he NUMERIC value can have up to 131,072 digits before the decimal point 16,383 digits after the decimal point". So on the database side that should be more than sufficient.

NUMERIC would be an easily implementable way to deal with this in the database, but we have to pick a precison and there's always a loss compared to using fractions, which are slower but exact. For fractions we'd need to find an implementation or implement ourselves. The concern with losing intermediate precision is that when doing aggregations and any other arithmetic on the stored data, we'll need to consider the numerical stability of the algorithm.
Using a decimal string in graphql is an option but the open question there is how many decimal places do we want?

I talked about this with @jacksonblazensky and he agreed that losing precison can be an issue for guaranteeing correct results aggregations, and that it would be best to represent this with fractions in the db.

yeah, I agree with that. Storing it as a fraction would be fine. Even as a big string fraction. Then whoever is calling the API can convert it in the front end to a real number.
I agree the DB can't be losing any precision because then we dont have the same results as the blockchain. but right now our fractions are rounding down to 0, and whole integers, so if we fix this my allowing huge fractional big ints , I think it would solve our problem completely

That's an interesting idea. Instead of going for a full-fledged fraction representation that would allow arithmetic sorting and filtering, we could just store it as a string for now, this would make the implementation much easier since how to do fractions in postgres is the big open implementation question. @lutter @fordN do you guys have ideas here? I could only find this and this implementations of fractions for PG, none of which inspire much confidence.
Separate note, Vyper supports a decimal type which has 10 digits of fixed precision. That's less precise than an f64, but fixed precision operations are easier to reason about than floating point.

@leodasvacas you are right that these two extensions look a bit sketchy; the first looks a little better, but it seems that it's not maintained anymore.
We also have the added difficulty that we store all our data in JSON, and that doesn't have a notion of rationals either. We might very well have to do all the handling of fractions application-side, and encode fractions into JSON following some convention (like separately as numerator/denominator, with fun stuff like bringing those fractions into lowest terms, worrying about int overflow etc.)
Storing fractions as numerator/denominator, when compared to a native fraction support, mostly has the disadvantage of making it very heard to use fractions in query conditions (like "give me everything with amount < 14/3", or "order by amount desc") We could support that by also storing a fixed-point approximation with fractions.
But looking at the Solidity docs, it looks like Solidity doesn't have support for fractions either, only for fixed point numbers, which Postgres supports as the NUMERIC type, which is much wider than what Solidity needs; we could use some NUMERIC(M,N), but that's more an optimization.
I think we should just go with NUMERIC, since that is all that Solidity offers; using fractions would be exact, but since Solidity is inexact, I am not sure we should deviate from that. The other thing to worry about is that arithmetic with fixed-point numbers in the handlers is done the same way as in Solidity, including rounding modes, overflows etc.

I agree with @lutter. Correctness is important but storing "58213953184128385124/28923513421892343523588132412391241" kind of fractions instead of "0.048583591230512" would be rather unpractical.
Since Postgres' numeric type supports much more accurate decimal numbers than Solidity, I think numeric + string representation in GraphQL feels like a decent solution.
Regarding correctness and provability: Can't we mandate a certain "big decimal" standard for index nodes?

Some thoughts here. It seems pure fractions would be easier to reason about in a few domains.

First is in the security model — bad people are awfully clever when it comes to number representations and there are potential attack vectors that take advantage of compounding effects on numerical imprecision (both from a control-flow manipulation angle and from misrepresentation of data in the interface).
A second problem domain is consensus, we would hope consensus between indexing nodes wouldn’t get stuck due to disagreement over slightly different number representations or calculations yielding different results for example.
And then another is possibly the verifiable computations domain, where if the inputs to a snark for example are blessed by inclusion in the canonical set, the program will execute and return a result and a verifiable proof of integrity. But then it may be possible for this result to be verified, even though the result may be significantly off due to compounded errors from imprecision.

One more thought here: in theory, fractions are precise, in practice, you will always run into situations where you can not represent the result of a computation, no matter what we do, unless we allow the storage for a number to grow without bound, which will brings its own fun exploits. With limited storage per number, there will always be a smallest positive number we can represent, and when we are asked to divide that number by 2 (or 10), we will need to decide whether that gets rounded back to that smallest number, or to 0.
We'll therefore have to find some pragmatic compromise for representing fractions, no matter what we do. And we'll have to make sure we can handle the fallout from that along the lines of what @jacksonblazensky  said (which might be as simple as completely disregarding non-integers for certain kinds of computations).

@lutter That also goes for the fact that we store BigInts, strings and arrays without a bound on size, so it's not an issue particular to fractions.

It sounds like we want to go with storing values in numeric , while also having a string representation of the fraction along side it. Is this correct?
It would be good to be able to move forward and have someone start working on implementing the solution. This is really blocking some of the math that makes BigInts flexible in subgraph calculations

Considering that fixed-point is being adopted in blockchains, then we'd not be the only ones dealing with the concerns that @jacksonblazensky raised. I don't think supporting sorting and comparisons on fractions would be particularly hard, but it would be slow compared to fixed point. So doing fixed-point first seems reasonable, and we could also have fractions in the future if there are use cases that require arbitrary precision.
The question left would be the precision. @lutter suggests we use default NUMERIC which has a huge precision. But that's hard to put it in a spec. I'm fine with starting with NUMERIC, knowing we'll likely change it when doing a spec.

Oh wow we support floats in the store (I was assuming we didn't). In light of this whole discussion, I suppose we should only have one type for non-integer numbers, and we should drop support for f32 and support only a new fixed-point BigDecimal.

We only refer to float here in graph-ts index.ts:
export enum ValueKind {
  STRING = 0,
  INT = 1,
  FLOAT = 2,
  BOOL = 3,
  ARRAY = 4,
  NULL = 5,
  BYTES = 6,
  BIGINT = 7,
}

But we never write any functions to handle setting or getting Float. Since no one is dependant on f32 right now, I agree with what you are saying leo, that we should stick with just BigDecimal

Implementation plan:
In graph-node, add a BigDecimal scalar graphql type, with all the filters that BigInt has. Coerce it from input strings, ints or floats. Add a store::Value::BigDecimal variant, with a bigdecimal as the backing implementation. Store it in the entity json as a string, casting to ::numeric for filtering, same as we do for BigInt.
In graph-ts, add a BigDecimal class with a BigInt field for the digits and an i64 for the scale (decimal expoent). Have a from_big_int constructor and the math operators (exported from the node). Change BigInt division from returning a BigInt to returning a BigDecimal.
In graph-cli, add BigDecimal to validation and to schema codegen.

@leodasvacas The plan looks good to me! 👍

A better organized plan:
Requirements

Have a fixed-point decimal type.
Integrate that type fully with our graph-cli tool, our graph-ts library and our GraphQL schema.

Proposed solution

Call the type BigDecimal.
Have parity with BigInt in graphql, with the added ability of coercing from floats.
Use the bigdecimal in the Rust implementation.
Store it as a string in the entity json, casting to postgres numeric when necessary.
In graph-ts, represent it as a class with a BigInt field for the digits and an i64 for the scale (decimal expoent), with a from_big_int constructor, a from_float constructor and a parse function. Have same operations as BigInt. Change BigInt division from returning a BigInt to returning a BigDecimal.

Tasks

[ ] Graph Node: Add BigDecimal scalar graphql type, with appropriate filters and coercions.
[ ] Graph Node: Add BigDecimal store value type, and implement its operations in the postgres store.
[ ] Graph CLI: Add BigDecimal to validation and schema codegen.
[ ] Graph TS: Implement the BigDecimal class and its operations.
[ ] Graph Node: Implement runtime support for the BigDecimal AS class.

I only have two comments about the plan (which looks great):

In graph-ts, the methods would be fromBigInt(n: BigInt) and fromFloat(n: f64) instead of from_big_int and from_float.

Changing the behavior of div// for BigInt might break existing subgraphs. I also think there should be a BigInt division method that returns a BigInt. Think 5 / 4 = 1 vs. 5 / 4.0 = 1.25. Can we check if we can overload the / operator so that we can do e.g.
let n: BigInt = BigInt.fromI32(5) / BigInt.fromI32(4) // => 1 (as BigInt)
let f: BigDecimal = BigInt.fromI32(5) / BigDecimal.fromBigInt(BigInt.fromI32(4)) // => 1.25 (as BigDecimal)

That would be ideal. If we can't do that, I'm ok if we break the behavior.

I touched base with the AS team regarding operator overloading. It's not currently possible.

Thanks for the comments! That's not possible even in Rust so I'm not surprised. Different languages take different approaches with division of integers. Since JS/TS/AS will return a float, it seems reasonable to follow the convention. We should offer a asBigInt() to truncate the BigDecimal.


Undefined reference to mi_malloc, mi_free on Windows 10 Cygwin

Hello, greetings to fellow developers. I recently came across mimalloc and though of using it in my C project. So I cloned the repository and went into it, created a folder out with subfolder release (just like the readme file told me), in that I compiled mimalloc and got few files. This process did not return an error. Here's my directory structure:
C:\Users\USER\Desktop\Github Sources -> This is where I cloned the reposiroty (doing so created a mimalloc folder in it)
C:\Users\USER\Desktop\Github Sources\mimalloc\out\release:
CMakefiles/
test/ -> Directory I created
cmake_install.cmake
CMakeCache.txt
CTestTestfile.cmake
libmimalloc.dll
libmimalloc.dll.a
libmimalloc-static.a
Makefile
mimalloc-redirect.dll
mimalloc-test-api.exe
mimalloc-test-stress.exe
The test folder has a file test.c, the contents of which are:
#include <stdio.h>
#include <assert.h>
#include <mimalloc.h>
int main() {
int *test_ptr = (int *) mi_malloc(10);
for (int i = 0; i < 10; i++)
test_ptr[i] = i;
for (int i = 0; i < 10; i++)
printf("%i, ", test_ptr[i]);
mi_free(test_ptr);
return 0;
}
I compiled this using the following command:
gcc -o test/test -L "C:\Users\USER\Desktop\Github Sources\mimalloc\out\release" -lmimalloc -I C:\Users\USER\Desktop\Github Sources\mimalloc\include" test/test.c
But this gives an error:
C:\cygwin64\tmp\ccQisqZT.o:test.c:(.text+0x13): undefined reference to mi_malloc' C:\cygwin64\tmp\ccQisqZT.o:test.c:(.text+0x86): undefined reference to mi_free'
collect2.exe: error: ld returned 1 exit status
Could anyone help me out?
I'm using cygwin and Windows 10 (no I am not using Visual Studio)

Thanks for the report -- unfortunately mimalloc is not supported for cygwin :-(   It is recommended to use visual studio, clang-cl, (or WSL2).
ps. Supporting cygwin is on my wishlist but I am time constrained; it is tricky as I am not sure how to override malloc/free in that environment;

Ohk, I see. Thank you soo much for answering my query.


Simplify intersectionBy

Simplify intersectionBy [ENHANCEMENT]
No need to use arrow function in b.map callback
What does your PR belong to?

[ ] Website
[X] Snippets
[ ] General / Things regarding the repository (like CI Integration)
[ ] Tests

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X] Enhancement (non-breaking improvement of a snippet)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[X] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[X] I have updated the documentation accordingly.
[X] I have checked that the changes are working properly
[X] I have checked that there isn't any PR doing the same
[X] I have read the CONTRIBUTING document.

It's odd how you just glance over the small stuff like that -.-;

@skatcat31 sorry)

Not at all, a second set of eyes is always something I'm grateful for.

Great leaders who do not head words of wisdom will often be replaced by those whose words they did not head

I am however going to await another approve to merge this in case they have any insight into why we didn't use a direct call there that I may have forgotten.

🤞


Please add TouchpadOverscrollHistoryNavigation

Please add TouchpadOverscrollHistoryNavigation, either in flags or as a default behaviour.
Currently I have to do thorium-browser --enable-features=TouchpadOverscrollHistoryNavigation for the same

Yes, please.
It's quite standard these days  in my opinion to navigate back and forward with the two finger swipe gesture....

yes, please


Patching node before bootstrapping

As already mentioned on  https://bugzilla.suse.com/show_bug.cgi?id=1111361, the cpi parameters on heat template won't work if you don't patch the system before the bootstrap happens. without the patching, the velum container on admin gets stuck with:
Database ready
Importing seeds from 10-cloud-framework.yaml
Importing seed: cloud:framework
OpenStack Cloud Provider config file doesn't exist
Please add that to the template. It might also be a good idea to add warning messages on the readme warning customers that a reboot will happen after running the heat template.

Duplicate of #16


Error in HasBinaryUuid trait...?

Isn't this method in Spatie\BinaryUuid\HasBinaryUuid likely to cause errors when explicitly setting the primary key...?
    public function getKeyName()
    {
        return 'uuid';
    }

The examples seem to allow for explicitly setting the primary key to something other than uuid:

If don't like the primary key named uuid you can leave off the HasUuidPrimaryKey trait and manually specify $primaryKey.

Of course, I've just noticed that HasUuidPrimaryKey has been deprecated and that getKeyName was once in that trait.
I'm not sure if the docs are wrong, the code is wrong, or I'm wrong in how I've understood things.  It seems like the docs allow for a uuid primary key with any name, but the code doesn't.
For what it's worth, I prefer the flexibility reflected in the docs and, without being too familiar with the package or its various features yet, would prefer a solution that allows one to craft the solution one wants for individual models.  That would include the following:

allowing for uuid primary keys called uuid or otherwise
allowing for uuid keys (that are not primary) that are called uuid or otherwise
allowing for multiple uuid keys where one/none of them could be the primary key and where one/none of them could be called uuid

I'm sure there's more, but like I said, I've not yet begun to use this package...much.  ;-)
Thanks for your time.  :-)

@brendt I'm not sure that I see the connection.  I followed the link to #49 , but I'm not seeing any changes to HasUuidPrimary key or any changes having to do with HasBinaryUuid's getKeyName() method.
Am I missing something...?

@brendt it has nothing to do with #49 . @telkins you can modify the what getKeyName()  returns by overriding the method in your model (if you don't want to use uuid which is returned by the getKeyName() method defined in the HasBinaryUuid trait). Which i have done in my Laravel 5.6 project which uses this package already.

@telkins  from what you said, you haven't started using this package so there isn't an actual error case here or am i wrong ?

@isocroft

if that's okay with @brendt

Definitely!

@isocroft Thanks for the info/help.  I'm not sure why, but I didn't even consider overriding the getKeyName() method in my model(s).  My bad...!
No, I really haven't begun to use it just yet.  I'm in the early stages of a new project.  I'm wanting to use laravel-event-projector and then this package for (binary) UUIDs.  I was also hoping to use Nova for administration, but I'm a little wary about how nicely Nova and an event sourced system will play together.  So....things have stalled a bit while I wait for Nova and I'm now focusing a bit more on some other things.
So...I'd consider this a non-issue now and I'll close it.  Your help's been appreciated.  :-)

This is the related issue: https://github.com/spatie/laravel-binary-uuid/issues/34
Unfortunately, I don't have the time this and next week to look further into this 😞However, feel free to suggest a solution!


Could Azure Stream Analytics violate the late arrival tolerance window?

This page says, "Azure Stream Analytics uses watermark progress as the only trigger to produce output events. When using windowed aggregates, the service only produces outputs at the end of the windows." It also says, "When there's any incoming event, the watermark is the largest event time Stream Analytics has seen so far minus the out-of-order tolerance window size." This implies that Stream Analytics will generate output when the watermark reaches the end of the window, which would be at the event time for the end of the window plus the out-of-order tolerance window size. However, it doesn't mention the late arrival tolerance window. If the late arrival tolerance window is set to a larger number than the out-of-order tolerance window, then wouldn't it be possible for Stream Analytics to generate output before it has received an event that is within the late arrival tolerance window but not within the out-of-order tolerance window, in which case it would be violating the late arrival policy?

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

ID: a2c0fd76-b30f-d6e9-1fe9-68bbecfa0759
Version Independent ID: b3d0b1b4-aa8a-f137-ed6d-3bf3e87131d9
Content: Understand time handling in Azure Stream Analytics - Azure Stream Analytics
Content Source: articles/stream-analytics/stream-analytics-time-handling.md
Service: stream-analytics
GitHub Login: @xujxu
Microsoft Alias: xujiang1

@guyhummel
Thanks for your feedback! We will investigate and update as appropriate.

Hello @guyhummel
Azure Stream Analytics uses the watermark progress as the trigger to produce output events, and the watermark is derived from the arrival time and application time. The late arrival tolerance window is used to determine whether an incoming event is considered late and whether to drop or adjust the event's time to be within the tolerance. The out-of-order tolerance window is used to determine whether an incoming event is considered out-of-order and whether to drop or adjust the event's time to be within the tolerance.
When using windowed aggregates, the service only produces outputs at the end of the windows. The watermark is the largest event time Stream Analytics has seen so far minus the out-of-order tolerance window size. This means that the watermark will not progress until an event arrives that is within the out-of-order tolerance window. Therefore, if an event arrives that is within the late arrival tolerance window but not within the out-of-order tolerance window, the watermark will not progress until an event arrives that is within the out-of-order tolerance window. This ensures that Stream Analytics does not violate the late arrival policy.
In summary, Azure Stream Analytics will not generate output before it has received an event that is within the late arrival tolerance window and within the out-of-order tolerance window. The watermark will not progress until an event arrives that is within the out-of-order tolerance window, even if there are events that are within the late arrival tolerance window but not within the out-of-order tolerance window.
I hope it helps! If there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.

Thanks for your response.
Here's a concrete example to illustrate what I mean:

Suppose you have a 1-minute aggregation window starting at 00:00:00 and ending at 00:01:00.
Late arrival policy: 15 seconds
Out-of-order policy: 5 seconds
An event with an application time of 00:01:00 arrives at 00:01:05. It is within the out-of-order tolerance window, so the watermark progresses to 00:01:00 (which is the 00:01:05 arrival time minus the 5-second out-of-order tolerance window). Since 00:01:00 is the end of the aggregation window, Stream Analytics generates output for this window.
An event with an application time of 00:00:59 arrives at 00:01:06. This is within the late arrival tolerance window, but since the aggregation window has already generated output, this event is not included in that window's output. This violates the late arrival policy.

It seems to me that the logical way to design the system is to update the watermark based on the larger of the late arrival and out-of-order policy values to avoid the situation I outlined above. My assumption is that the documentation simply neglected to mention that the late arrival policy is also taken into account when updating the watermark. There are some other parts of the documentation that suggest that might be the case. First, the documentation says, "When there is no input in a given partition, the watermark time is calculated as the arrival time minus the late arrival tolerance window." This makes sense, but I would think that the late arrival tolerance window would be taken into account even when there are events in a partition. Second, it says that one potential cause of watermark delay is "The late arrival window introduced delay, because watermark is reduced by the size the tolerance window." It doesn't say that this only applies in the case where no events are received in a partition, so I would think that it applies even when events are received.

@guyhummel
I'd recommend working closer with our Q&A forum by posting your issue there so our community, and MVPs can further assist you in troubleshooting this issue or finding potential workarounds. Teams Q&A forum for technical questions about the configuration and administration of Microsoft Teams on Windows. Microsoft Teams Community forum

@guyhummel
We are going to close this thread, if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.
#Please-clsoe


Error - Array dimensions exceeded supported range

sabretools_array_error.txt
I was creating a d2d of a nested folder structure, nothing too complicated.  88 folders, around 30,000 zips.
I've been using Sabretools in Windows command line, so the first time I got this error I tried it again in PowerShell, but got the exact same error output.  RAM usage was off the chart (about 16GB for 5 mins or so) during the "Organizing roms by Machine" portion, then the error hits.  A log file was generated but it was nothing but the scan portion up to and including the "organizing roms" entry, where it ends.  The remaining error output was sent to screen which is attached to this ticket.
I am completely unsure if this is a problem on my side.  I did some google-fu and found a command to see what the max array value was in powershell and came back with:
[int]::MaxValue
2147483647
Not sure if this helps.  Let me know if you need any more info!

Unfortunately, that MaxValue isn't always the number of elements, depending on the size of the objects you're talking about. In this case, it's probably hitting one of the other internal limits. There's little I can do about that, but I can definitely try to cap it before hitting that limit. For better or worse, this is the first time that limit has been hit by a user.

Thanks for the update.  I did (a lot of) further research to try to see where this limit was being hit.. i pared down the amount of files being scanned from this large set and tried many scan attempts, but when I got into the 3,000 zip files range, I gave up.  Even if i were to split up a very large folder of files into smaller chunks and scan them then merge afterwards, I'd still be left not knowing if I'd run into this problem again during a merge operation.
Still, i'd like to be able to use SabreTools for any size folder.. I have collections in the size range of 100,000+ archive files, so this 30,000 files was only the lower limit of what I'd like to create. :)

Could you run with "-mt=1" option? (Single Thread mode).

Sorry for taking so long to respond, been busy with lots of other things.  I did find some time to look into this today and here's the results:
Single thread mode didn't help, but it was a good idea!
However, in doing some tests I did find some new results.  While the thread count didn't matter, if the folder being scanned contains even a single EMPTY FOLDER in them, this is what SabreTools seems to be getting hung up on.  I can reliably recreate the issue over and over again.
This test instance has a total of 102 files, so the issue is NOT with the number of files being processed.
  No empty folders or subfolders.  (12 folders, 102 files)
Created a handcrafted zip with the same structure as above. (4 folders, 4 files)
result:  SabreTools processes this folder with 2 zips with no issue, within seconds, and I get a good datfile output.

Test #2:

Created a zip from a Folder, containing subfolders filled with files.  TWO EMPTY FOLDERS left in, one a simple top-level folder that is empty, the other a top-level folder with a subfolder, both empty.  (15 folders, 102 files)
Created a handcrafted zip with the same structure as above (6 folders, 3 files)
result:  SabreTools processes this folder with 2 zips up until "Organizing roms by Machine" and just starts chewing up ALL AVAILABLE RAM.  Process never finishes and has to be hard exited with a Ctrl-C.

I believe the core issue is SabreTools has a problem with empty folder entries and/or the --add-blank-files option, and/or the organizing stage and blank placeholder entries.  That's my guess anyway.
I can still use SabreTools to convert a dat containing hundreds of thousands of files.. even millions of files, without issue.  But those dats being converted do not have empty folders in them.
I'll attach the log files so you can see the folder structures and the outputs.  You can even create your own test as outlined above and meet with the same results.
empty_folders_test_logs.zip


Transform tool does not work for nested models

Environment

OS Version: Ubuntu 18.04
Source or binary build?
Source, 4.5.0

Description

Expected behavior:
The Transform tool should work for nested models in TPE starting from Dome and for both TPE and DART in Edifice. It used to work in TPE, but https://github.com/ignitionrobotics/ign-physics/pull/142 might have broken it.

Actual behavior:
Models snap back to their original location after the transform tool is applied.

Steps to reproduce

Run ign  gazebo --physics-engine ignition-physics-tpe-plugin -v 4 nested_model.sdf
Use the transform tool to move model

Output
https://user-images.githubusercontent.com/206116/109078741-76470c00-76c3-11eb-86c6-226a80860532.mp4

Should be fixed by https://github.com/ignitionrobotics/ign-physics/pull/231

Closed by https://github.com/ignitionrobotics/ign-physics/pull/231


Misc changes for emacs on windows

Change-Id: I78918c06aa6af1588c346db9024180ec03a06404

Perhaps this PR will be needed as well?


Punchblock::ProtocolError destroys valuable backtrace information

See https://github.com/adhearsion/punchblock/blob/develop/lib/punchblock/connection/xmpp.rb#L85
When using adhearsion/adhearsion-xmpp, message handlers run within the context of the Punchblock Connection.  This means that any exceptions happening in user code get raised, converted to Punchblock::ProtocolError, and then re-raised.  Example:
[2012-02-16 15:53:36] ERROR Adhearsion::Initializer: <Punchblock::ProtocolError> #<Punchblock::ProtocolError: name="TypeError" text="can't convert String into Integer" call_id=nil component_id=nil>
	/srv/apps/arabbit.mojolingo.com/shared/bundle/ruby/1.9.1/gems/punchblock-0.9.1/lib/punchblock/connection/xmpp.rb:85:in `rescue in connect'
	/srv/apps/arabbit.mojolingo.com/shared/bundle/ruby/1.9.1/gems/punchblock-0.9.1/lib/punchblock/connection/xmpp.rb:77:in `connect'
	/srv/apps/arabbit.mojolingo.com/shared/bundle/ruby/1.9.1/gems/punchblock-0.9.1/lib/punchblock/connection/xmpp.rb:73:in `run'
	/srv/apps/arabbit.mojolingo.com/shared/bundle/ruby/1.9.1/gems/punchblock-0.9.1/lib/punchblock/client.rb:11:in `run'
	/srv/apps/arabbit.mojolingo.com/shared/bundle/ruby/1.9.1/bundler/gems/adhearsion-89f17d4771c3/lib/adhearsion/punchblock_plugin/initializer.rb:99:in `connect_to_server'
	/srv/apps/arabbit.mojolingo.com/shared/bundle/ruby/1.9.1/bundler/gems/adhearsion-89f17d4771c3/lib/adhearsion/punchblock_plugin/initializer.rb:89:in `block (2 levels) in connect'
	/srv/apps/arabbit.mojolingo.com/shared/bundle/ruby/1.9.1/bundler/gems/adhearsion-89f17d4771c3/lib/adhearsion/foundation/exception_handler.rb:4:in `catching_standard_errors'
	/srv/apps/arabbit.mojolingo.com/shared/bundle/ruby/1.9.1/bundler/gems/adhearsion-89f17d4771c3/lib/adhearsion/punchblock_plugin/initializer.rb:89:in `block in connect'

The only clue as to the actual problem here is the message itself: "can't convert String into Integer", but the backtrace is meaningless because the original exception happened somewhere else.

ProtocolError was intended to wrap Rayo errors only, where no backtrace was actually available. I propose for other circumstances, we raise the original exception.

I concur.  I'll work on this.

Fixed in 5471a2c


connect.c will not compile if "CONFIG_EXAMPLE_CONNECT_IPV6" is not set (IDFGH-3366)

Fix compile issue with missing define "MAX_IP6_ADDRS_PER_NETIF" if you have not defined "CONFIG_EXAMPLE_CONNECT_IPV6"

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

@linlun Thanks for you contribution.

@linlun Thanks again for addressing this issue, but this has already been fixed internally and will soon get published in GitHub. Could you please keep this open to help other users to work around the common connection in examples without IPv6, until the fix is published.

@linlun Thanks for your contribution, please see https://github.com/espressif/esp-idf/commit/5c6bca69a5f12b3039c6fcf76d8e480cd541bc65. Will close this PR now.


Automatically format imports

Following the same approach as in /jaeger repo
Signed-off-by: Pavol Loffay<EMAIL_ADDRESS>

This change is

If we do end up needing the script, it would probably be better suited for the .travis directory, as we don't have a scripts yet.

I will put it wherever you think it's the best. Seems odd to put things into .travis  which are not related to travis...

Isn't goimports sufficient?

From https://godoc.org/golang.org/x/tools/cmd/goimports
In addition to fixing imports, goimports also formats your code in the same style as gofmt so it can be used as a replacement for your editor's gofmt-on-save hook.
goimports -w $(go list ./cmd/... ./pkg/...)                                                                                 4:52
stat github.com/jaegertracing/jaeger-operator/cmd: no such file or directory
stat github.com/jaegertracing/jaeger-operator/cmd/manager: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/account: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/apis: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/apis/io/v1alpha1: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/cmd/start: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/cmd/version: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/config/sampling: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/configmap: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/controller: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/controller/deployment: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/controller/jaeger: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/deployment: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/ingress: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/inject: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/route: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/service: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/storage: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/strategy: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/util: no such file or directory
stat github.com/jaegertracing/jaeger-operator/pkg/version: no such file or directory

@jpkrohling is there anything missing in this PR?
I would like to be consistent with jaeger repo to provide the same source code structure. Enforcing style at build time is the only way how to check the code is properly formatted. As you can see the imports are mismatched in the current master.

Check added


Cannot connect to jupyter lab with special character like @ in the url

Applies To

[X] Notebooks (.ipynb files)
[X] Interactive Window and/or Cell Scripts (.py files with #%% markers)

What happened?
The Jupyter Hub I am using uses user's email as username.
The URL is like the following when vscode try to request a ist of kernel: https://jupyter.example.com/user/user%40example.com/
A vs code cannot retrieve the kernel as it translates the special character to @ to %40 result in 404 not found.
When I  try to replace the %40 back to @ and try in my browser and it returns a list of URL:
[
    {
        "id": "8a195b2f-7d39-4bb0-a4ed-e5b65e269e4e",
        "name": "python3",
        "last_activity": "2023-10-06T09:56:09.408009Z",
        "execution_state": "idle",
        "connections": 2
    }
]

But in VSCode it does not work.
VS Code Version
1.82.3
Jupyter Extension Version
v2023.8.1002501831
Jupyter logs
[error] UniversalRemoteKernelFinder: Failed to get kernels without cache t [Error]: Invalid response: 404 Not Found
    at Function.create (~\.vscode\extensions\ms-toolsai.jupyter-2023.8.1002501831-win32-x64\out\extension.node.js:2:68150)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at Object.t.listRunning (~\.vscode\extensions\ms-toolsai.jupyter-2023.8.1002501831-win32-x64\out\extension.node.js:2:55954)
    at xm.getRunningKernels (~\.vscode\extensions\ms-toolsai.jupyter-2023.8.1002501831-win32-x64\out\extension.node.js:17:167615)
    at async Promise.all (index 0)
    at Mm.listKernelsFromConnection (~\.vscode\extensions\ms-toolsai.jupyter-2023.8.1002501831-win32-x64\out\extension.node.js:17:176326)
    at ~\.vscode\extensions\ms-toolsai.jupyter-2023.8.1002501831-win32-x64\out\extension.node.js:17:174573 {
  response: L [Response] {
    size: 0,
    timeout: 0,
    [Symbol(Body internals)]: { body: [PassThrough], disturbed: true, error: null },
    [Symbol(Response internals)]: {
      url: 'https://jupyter.example.com/user/user%40example.com/api/kernels?1696586173731',
      status: 404,
      statusText: 'Not Found',
      headers: [I [Headers]],
      counter: 0
    }
  },
  traceback: ''
}

Coding Language and Runtime Version
Python 3
Language Extension Version (if applicable)
No response
Anaconda Version (if applicable)
No response
Running Jupyter locally or remotely?
Remote

I have the same problem
VS Code Version: 1.83.0
Jupyter Extension Version: v2023.9.1002770152

@nikita-dev-null @ypj0202
Sorry you are running into this issue and thanks for filing this.
I believe this VSIX shoudl fix it.

Please download this file
Extract the zip file
Go into VS Code and select the command Extensions: Install from VSIX
Select the extracted vsix
Reload VS Code when prompted to do so,
Try again and this shoudl work

Let em know how that goes.

@DonJayamanne
In my case, it helped
Thank you very much!

This is indeed the fix. I will now close this issue.


SW3: Suggest sliders for undeclared variables

Online graphing calculator users know what this is about.

WHAT. 🔥  This can be very nice, esp. if one can control bounds of the slider.
Though this also borders the variables/symbols distinction if there won’t be a special construct to declare such bindings.

WHAT. 🔥 This can be very nice, esp. if one can control bounds of the slider. Though this also borders on the variables/symbols distinction if there won’t be a special construct to declare such bindings.

SonicWeave is a compute-heavy language. Debounced sliders that cause recalculation of the whole scale should be relatively easy to implement, but realtime control bound stuff would require symbols and JIT compiled algebraic expressions to have any chance of working on real hardware.

In connection to this I should also mention that the debounce code might need to be improved. I think there's a dead zone where a call currently being executed doesn't properly enque further calls.

The slider values should be injected using extraBuiltins to prevent re-calculation of the AST.


nanoc-live depends on defunct (and now-broken) version of rack-livereload; live reload is broken

Rack 3.0 requires all headers to be lowercase. The rack-livereload gem is not yet compatible with Rack 3.0, incorrectly looks for Content-Type instead of content-type, and failing to find it, assumes that no documents are ever HTML and thus refuses to inject livereload.js into pages.
As a result, live reload in nanoc live is currently broken: Nanoc automatically rebuilds after changes, but one must manually refresh the browser to see the changes.

There is a pull request on rack-livereload to fix this. Alas, the fix will not land for nanoc live even after the PR is merged, because Nanoc is using an outdated source for the rack-livereload gem. The previously authoritative version of the gem has been deprecated:
https://github.com/johnbintz/rack-livereload
Per that page, the new authoritative version of the gem is:
https://github.com/jaredmdobson/rack-livereload
Nanoc may want to consider updating its dependency to point to that git repo.

In the meantime, anyone who wants to restore live reloading in Nanoc without waiting for all these fixes can add this to their Nanoc project’s Gemfile:
gem "rack-livereload", git: "https://github.com/pcantrell/rack-livereload", branch: "lowercase-headers"

This is resolved with the new rack-livereload version (see https://github.com/denisdefreyne/adsf/issues/29)!


Multi release

First step of updating the release process.
This PR will namespace the 1.3 release properly so that we can also host the 1.4 versions.
Also fixes a few other low hanging release issues as well.

Also paired w the sibling PR on the homebrew repo:
https://github.com/pachyderm/homebrew-tap/pull/3

Going to merge since that vastly simplifies testing this


Method nativeEvalAndFetch(function(){%@}) missing in exec.js

In a Cordova plugin for OSX platform I'm calling following method on CDVCommandDelegate
- (void) evalJs:(NSString*) js

which in fact executes Javascript:
cordova.require('cordova/exec').nativeEvalAndFetch(...)

Problem is that method nativeEvalAndFetch is not defined in cordova/exec module (defined in exec.js) and therefore not available in runtime.
I've manually added following implementation
OSXExec.nativeEvalAndFetch = function(func) {
    func();
};

however, I'm not sure if it's fully compatible with OSX Cordova platform implementation.
Method nativeEvalAndFetch exists in exec.js of iOS Cordova platform implementation, so possibly this is a portation problem.

Node version: v10.8.0
Cordova version: 8.1.1
<engine name="osx" spec="^4.0.2" />

Thanks for reporting, I just added the bug label. Should be an easy fix (see j3k0/cordova-plugin-purchase#848) if someone has time to make and test it.
One more thing: I have a feeling (just a feeling right now) that it should be possible to make a more general solution in cordova-js.

We are archiving this repository following Apache Cordova's Deprecation Policy. We will not continue to work on this repository. Therefore all issues and pull requests are being closed. Thanks for your contribution.


Ready all the html template for now

As a developer
You need to have a ready HTML template before developing the site
So that you only need to worry about that functionality and not the HTML itself

no need for this but I still adapt this process to avoid thinking HTML template while working in the function.


Navbar Bug fix for hamburger mode

Mobile Navbar Bug Fix
Steps to Reproduce:

whenever the navbar goes into hamburger mode, open the navbar and the illustrator is incorrectly aligned and hidden.
it continues till the small screen mobile.

Fix:

added necessary media query and changed the position of the illustration in different positions based on screen size suitability.

Conflicts resolved! 🚀


Fetch SearchHits scroll by scroll as needed than all at once in Elasticsearch

Currently we fetch all SearchHits in one call and keep them in memory. This causes
too much delay in getting first record and memory pressure. Write a custom iterator
that fetches the SearchHits as needed. One downside with this approach is the
scroll could get timedout, but there is a way to config custom scroll time in
plugin config.

Merged, thanks!


[EXP-74-274] Fix/eurt vault apy

In calculating vault apy, the liquidity gauge contract is required.  Generally this address is found in either the factory or registry, whichever has a get_gauge method.  Eurt, is unique in that it has both a factory and a registry with the get_gauge method.  The current implementation will return contract(factory).get_gauge(pool) if it's not the ZERO_ADDRESS or None.  The gauge address for Eurt is found in the registry contract but it is never reached b/c the if statement is taken as opposed to the elif shown below.  If we add the additional constraint that contract(factory).get_gauge(pool) must also be not the ZERO_ADDRESS we can accomodate the Eurt edge case.
Additional changes: deleted unnecessary whitespace (editor setting) and removed duplicate apy function calls.

Removed the duplicate apy functions but after talking to @BobTheBuidler , this may be intentional.  Should we standardize the naming of apy functions?

Per discussion with @jstashh  and @pmdaly , pat will homogenize the apy function names in lower case and then we're good for merge


Option to disable "Running" output

Is your feature request related to a problem? Please describe
Similar to alajmo/mani project, output from sake includes a Running spinner, which is also present when directed to file.
Describe the solution you'd like
Add an option to disable the Running spinner (-s, --silent).
Additional context
I use and enjoy both projects ;)

This should work now with v0.12.0.
sake run <task> -o table -S


provider/mem: cleanup closed listener in GC

... rather than in the Subscribe method. Currently the cleanup for a
given Alert subscription is done in a blocking goroutine, started in
the Subscribe method.
This simplifies it by moving the cleanup to the GC.
Additionally it simplifies the subscribe method by setting up the
buffered channel big enough to fill it up with all pending alerts
preventing the necessity to start a goroutine in Subscribe at all.
/cc @mxinden @brancz

@stuartnelson3 thanks a lot for the review! :-) Ahh, I am still new in the code base and wasn't aware (yet), that there is some shared functionality, so #1507 makes sense :+1: I can help out factoring that cleanup as I after quickly scanning that PR SetGCCallback seems to be the right hook?!
pinging @mxinden for the decision point if we need another unit test.

#1507 may or may not happen :) If @mxinden is happy with this I say merge it.

@s-urbaniak thanks for your first contribution! :tada:


The Guide link is broken. Any more documentation?

Just looking for some installation instructions! Any help would be appreciated!

We no longer run the Wombat service this endpoint was made for which is why the link no longer works.  You're welcome to use the source code to develop your own integration with Amazon, but this will not work without Wombat. This is also the newer version https://github.com/wombat/amazon_integration

Ah - thanks for the explanation! We'll probably retool this for our store. Thanks!


Question only: Select nodes without selecting parents/childrens

Dear ng2-tree community,
I don't get it. I investigated the demos published in  .
I want to have the behaviour that I can select any node (checkbox selection) without automatic selection of it's parent or childs. For example in demo:
"Directory/File structure" -> select "home"... -> "home" and all subnodes ("firstUser", "Documents", etc) are selected.
"Programming languages tree" (with custom template) -> select "Hand icons" -> NO other nodes are selected.
But I can't get the relevant difference for that. Both are using "settings". The second on has a custom ng-template in it. I am using a custom template also.
What have I to do, so that a checkbox selection does not select other nodes?
I would appriciate it if someone could explain me the difference in selection behaviour.
Kind regards
Timo

Hey @normantimorehl and community
I'm facing that same problem, could you or somebody solve that? Please, tell me how to get this behavior (check the selected checkbox whithout auto checking its parent/chidren)
Thanks

Hello @normantimorehl
Yeah, I've made reverse engineering too and get the same conclusion.
But the fact is that I need to fill the id property because I have to use getControllerById function in order to add children in nodes.
This your propose to create a boolean setting "autocheckChildren" was a good idea, but need to be implemmented in component.
It's possible someone to do that?

Hi renatotozzi,
it's quite easy:
Step1: Add property in "tree-internal.component.ts"
`export class TreeInternalComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {
@Input() public tree: Tree;
@Input() public settings: TreeTypes.Ng2TreeSettings;
@Input() public template: TemplateRef;
public autocheckChildren = false;
public isSelected = false;
public isRightMenuVisible = false;
public isLeftMenuVisible = false;
public isReadOnly = false;
public controller: TreeController;`
And modify "onNodeChecked()":
`  public onNodeChecked(): void {
if (!this.checkboxElementRef) {
return;
}
this.checkboxElementRef.nativeElement.indeterminate = false;
this.treeService.fireNodeChecked(this.tree);
if (autocheckChildren) {
	this.executeOnChildController(controller => controller.check());
}
this.tree.checked = true;

}`
That's all to to the change on default behavior.
If you want to use that property from outside of the component you have to add this property in "tree.component.ts" (add property in template and add input property):
@Component({   selector: 'tree',   template: <tree-internal #rootComponent [tree]="tree" [settings]="settings" [template]="template" [autocheckChildren]="autocheckChildren">`,
providers: [TreeService]
})
export class TreeComponent implements OnInit, OnChanges, OnDestroy {
private static EMPTY_TREE: Tree = new Tree({ value: '' });
/* tslint:disable:no-input-rename /
@Input('tree') public treeModel: TreeTypes.TreeModel;
/ tslint:enable:no-input-rename */
@Input() public settings: TreeTypes.Ng2TreeSettings;
@Input() public autocheckChildren: boolean = false;
@Output() public nodeCreated: EventEmitter = new EventEmitter();`
Easy and risk free change ;-)
My code is only a proposal ;-) Better solutions are welcome.
Kind regards
Norman

Wow!!! It works like a charm!!
very thanks @normantimorehl

@renatotozzi @normantimorehl  Thank you for the solution! Is there any way where we can override this behavior via the controller or via settings?
Any help is appreciated! :)

Hi @rychkog
I used it by that way. I customized the component so that ir only works selecting clicked checkbox, never select parents and children, so I don't need to configure via settings. But I would appreciate it too, because I could use the original component, without customizaton.

@akshaygolash @renatotozzi
The settings are part of the source code, if you want to change this behaviour via settings you have to customize the component too, it's not possible to have this behaviour with the original component.
But the changes which are necessary to have the possibility to set the behaviour via settings are not much.
All changes described above are necessary (the property and the change to onNodeChecked() ).
I find the option to set this behaviour via HTML markup property useful, so I recommend the "tree.component.ts" too.
-> important: the "public autocheckChildren = false" in "tree-internal.component.ts" defines the default behaviour if nothing else is used/set to change this. If you want to change the default only set this variable to true.
To add the possibility to change this via settings just add it in the settings class in "tree.types.ts":
export class Ng2TreeSettings {
  /**
   * Indicates root visibility in the tree. When true - root is invisible.
   * @name Ng2TreeSettings#rootIsVisible
   * @type boolean
   */
  rootIsVisible? = true;
  autoSelectRoot? = false;
  autoCheckChildren? = false;
  showCheckboxes? = false;
  enableCheckboxes? = true;
}

And to get this work you have to change the place where the settings are used. In "tree-internal.component.ts" inbetween the ngOnInt() method add this line:
    this.settings = this.settings || new Ng2TreeSettings();
    this.isReadOnly = !get(this.settings, 'enableCheckboxes', true);

// add this line
this. autocheckChildren = get(this.settings, 'autoCheckChildren', this. autocheckChildren);

    if (this.tree.isRoot() && this.settings.rootIsVisible === false) {
      this.tree.disableCollapseOnInit();
    }

After that you have the possibility to define the autoCheck behaviour via settings.
For changing the controller you have to do additionally things. For example you have the possibility to extend the check() and the uncheck() methods. In this methods the controller uses the internal-tree-component instance do whatever you want then.
After all these things I think of create a folk of this project, what do you mean?

@renatotozzi , @normantimorehl , Thanks alot for your response. I think it would be best to create a PR and get it in the original component so everyone can benefit from it. I do see this as a very common use case.
Let me know what you guys think?

Hello @akshaygolash
I think so. How I said before, I'm using a custom version, but it would be better if I could use the original component, downloaded from npm.
However, I would like to remember that is important not auto check chidren and also parents. In my case, I want to check ONLY the clicked checkbox.

@renatotozzi , That makes sense because you cannot expect a hybrid behavior from a tree. Either we have autoCheck both ways or make all nodes independent.

Hey guys, youre all right, better is to include the enhancement in the main source code. But be realistic, there are much more important and critical issues like that: Issue 309: Not compatible with latest rjx
And the insight tab shows the frequency: only 22 commits the whole year 2018. The last one 2018-04.
And if you are realistic: this projet is dead, sad but true.

@normantimorehl @renatotozzi I am afraid that you may be right. I don't see any commits for past 6 months.
@rychkog  Is there any plan to support this project?


ref(aws): Improve AWS queries instead of piping output.

Fully utilise the power of aws cli query instead of piping various AWS commands into cut, head and other programs

LGTM. Thanks for doing this! I wasn't aware of these AWS powers.
FWIW: Jenkins failed after provisioning succeeded... but you'll still need to retry this job until the build passes.


Amplify PR environments override S3 access policies for the Authenticated role in an imported Identity Pool

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
v16.9.1
Amplify CLI Version
7.6.25
What operating system are you using?
macOS 12.2.1 (21D62)
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
No. We use imported Cognito User and Identity Pools.
Amplify Categories
auth, storage
Amplify Commands
Not applicable
Describe the bug
Amplify PR environments override S3 access policies for the Authenticated role in an imported Identity Pool.
Amplify CLI version: 7.6.25
Amplify replaces the bucket name in all ARNs with the PR env bucket name when creating the PR environments. It should not change the bucket name in the policy but instead append a new item to the "Resource" array.
Policies affected:
Private_policy_*
Protected_policy_*
Public_policy_*
read_policy_*
Uploads_policy_*
As it is, all PR environments will override the S3 access policies for the imported ID Pools  Authenticated role.
Relevant AWS documentation:
https://docs.amplify.aws/cli/auth/import/#import-an-existing-identity-pool
Amplify CLI will update the policies attached to the roles to ensure Amplify categories function correctly. For example, enabling Storage for authenticated & guest users will add private, protected, public, read and upload permissions for the S3 bucket to the unauthenticated & authenticated role.

Expected behavior
It should not change the bucket name in the policy but instead append a new item to the "Resource" array.
Reproduction steps
•	Create a User Pool
•	Create an Identity Pool with the new user pool as an authentication provider.
•	Run amplify import auth and import the User and ID Pools.
•	Create a dev environment.
•	Add storage to the environment and take note of the bucket name.
•	Require authenticated access to storage.
•	Push the dev environment.
•	Turn on PR environments.
•	Turn on Amplify continuous deployment for the dev environment and perhaps the main branch.
•	Make some code changes and raise PR in GitHub.
•	Merge the PR to main.
•	When the PR environment is created, it will override the bucket name in the imported identity pool's Authenticated role S3 access policies. E.g. it will no longer use the original storage bucket specified when adding storage to Amplify but instead use the bucket created for the PR environment.
GraphQL schema(s)

# Put schemas below this line

Log output

# Put your logs below this line

Additional information
No response

Hey @agrantdeakin :wave: apologies for the delay here!! I was able to successfully reproduce this issue using the provided steps, thank you for those!

Hi @agrantdeakin @hico34
It seems like we don't support imported Identity pool sharing in multi envs , as its overriding the BucketName of specific env in the authRole IAM policies when changing env and auth is imported and shared.
Changing this to enhancement and for the workaround, you can use extensibility (overrides feature to append policies to PR Preview env.)
https://docs.amplify.aws/cli/storage/override/.
Steps in dev environment:

amplify override storage
Add the below override code to modify cfn based on env

import { AmplifyProjectInfo, AmplifyS3ResourceTemplate } from '@aws-amplify/cli-extensibility-helper';

export function override(resources: AmplifyS3ResourceTemplate, amplifyProjectInfo: AmplifyProjectInfo) {
    const devs3ObjectPolicyDocument = {
                    "Version": "2012-10-17",
                    "Statement": [
                        {
                            "Effect": "Allow",
                            "Action": {
                                "Fn::Split" : [ "," , {
                                    "Ref": "s3PermissionsAuthenticatedProtected"
                                } ]
                            },
// pr preview env s3 resource
                            "Resource": [
                                {
                                    "Fn::Join": [
                                        "",
                                        [
                                            "arn:aws:s3:::",
                                            {
                                                "Ref": "S3Bucket"
                                            },
                                            "/protected/${cognito-identity.amazonaws.com:sub}/*"
                                        ]
                                    ]
                                },
// this is my **dev** env s3 bucket resource
"arn:aws:s3:::i1009811d219ddaf50465c8ef0cbc9d95b40b634325-dev/protected/${cognito-identity.amazonaws.com:sub}/*"
                            ]
                        }
                    ]
                }
    // this to be added only is you have  imported userpool  and shared between envs
    if(amplifyProjectInfo.envName !== 'dev'){
        resources.s3AuthPrivatePolicy.policyDocument = {...devs3ObjectPolicyDocument}
    }

}

amplify push
amplify add env test (pr preview env)
amplify push (above override code will append the dev s3 bucket policy in test env)

This will append both bucket resources in authRoleName of imported Identity pool. Like below:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::storagepolicyappend268ce824ac9c54f01a62f2fddd70151932-test/protected/${cognito-identity.amazonaws.com:sub}/*",
                "arn:aws:s3:::i1009811d219ddaf50465c8ef0cbc9d95b40b634325-dev/protected/${cognito-identity.amazonaws.com:sub}/*"
            ],
            "Effect": "Allow"
        }
    ]
}


Head/Body concatenation?

I'm writing an application that uses the pubsub mechanism paired with a pull socket.  The idea is to be able to have subscribers connect with the pub socket listening on topics they are interested in.  The pull socket is where messages are published to and it in turn passes those messages to the pub socket.
//Send on "dateTopic"
d := date()
header := []byte("dateTopic")
body := []byte(d)
msg := mangos.Message{Header: header, Body: body}
testSocket.SendMsg(&msg)
//The issue is on the receiving side the header is no longer separate from the body.
The receiving sockets that are set to listen on the dateTopic successfully receive the messages and those not setting that option do not get the message.  All is as expected.  However, when the sub socket receives the message the header is empty and the header is prepended to the body instead.
if msg, err = sock.RecvMsg(); err != nil {
fmt.Printf("Cannot recv: %s", err.Error())
}
fmt.Printf("CLIENT(%s): HEADER RECEIVED %s\n", name, string(msg.Header))
fmt.Printf("CLIENT(%s): BODY RECEIVED %s\n", name, string(msg.Body))
A sample of the output look like this:
CLIENT(C client): HEADER RECEIVED
CLIENT(C client): BODY RECEIVED dateTopicThu Mar 16 20:20:07 2017

The "Header" is reserved for protocol-specific header bits.  The PUB/SUB actually doesn't have any specific protocol header, and so its incorrect to put anything there.   (By contract, REQ protocol places routing information (backtrace) and a request ID in the header.
For PUB/SUB the entire message is payload.  The intention is that the header in such cases be empty.  This matches the nanomsg usage btw.
Note that the underlying protocols do not convey any special framing to indicate "this is the header", instead the protocol is expected to be able to parse off the header and stash it appropriately.  Obviously it can't do that for PUB/SUB.
If you need such framing for your application, you can do it yourself, by having a fixed length "topic" (or a separating character if you want to use variable length topics) and then handling this at the application layer.

Thanks for the feedback.  That's unfortunate as the message with header is the perfect mechanism for specifying the topic/queue/destination one wishes to to send a message to.  The semantics do seem a bit confusing in this case as the SendMessage/ReceiveMessage doesn't actually work on message level but reduces it to the body alone.  From an API perspective there isn't anything that would be intuitive about that without peeling back the layers and determining what the underlying implementation is doing with it.
I'd actually started working with setting to RAW but realized this was getting in a little deeper than what I was after as an end user.
The design I'm looking for is to be able to have applications register themselves with a pub socket and then have another socket received a message with header/body that is then sent out to the listeners registered on the pub socket.

It would be easy to create a new protocol that separated the topic into a header field.  I am not sure that is as universally useful as you think though.  It is easy enough to define your own application specific framing in the payload if you need it.
Sent from my iPhone

On Mar 18, 2017, at 9:48 PM, Ranx0r0x<EMAIL_ADDRESS>wrote:
Thanks for the feedback. That's unfortunate as the message with header is the perfect mechanism for specifying the topic/queue/destination one wishes to to send a message to. The semantics do seem a bit confusing in this case as the SendMessage/ReceiveMessage doesn't actually work on message level but reduces it to the body alone. From an API perspective there isn't anything that would be intuitive about that without peeling back the layers and determining what the underlying implementation is doing with it.
I'd actually started working with setting to RAW but realized this was getting in a little deeper than what I was after as an end user.
The design I'm looking for is to be able to have applications register themselves with a pub socket and then have another socket received a message with header/body that is then sent out to the listeners registered on the pub socket.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.

I'm not sure why you think it is an edge case? What I find to be a bit of an odd pattern is firing up a pub socket that applications from hither and yon connect to directly. We want to minimize known connection points. I believe the ZeroMQ uses XPub/XSub to solve the problem.
That's what I was looking to use Mangos for - to create a small, local broker that Go applications can connect to at start up.     I'd undoubtedly have used Mangos to solve this problem one way or another but code not fulfilling the expressed API contract is a full stop for me.  I work with too many languages, clients, and libraries to have to guess is an API means what it expresses.  A SendMessage and ReceiveMessage methods that take a Message with Header a Body have very clear semantics.  Which explicitly convey that the a Message is an atomic unit here and that it is expected to that I will send and receive those.  I understand that nanomsg didn't define it that way so that's a separate problem.
But this isn't really an issue of what is good practice in regard to brokers, queues, messages, topics, destinations, etc. It's just a fundamental software issue.  I expect a library to perform in the manner expressed by its API and if it doesn't I expect it to be considered a bug.  That isn't the case here.
The way the library is handling this is probably the worst I can imagine.  If the given protocol can't handle messages then it shouldn't expose a message interface.  If RAW sockets can by setting the raw mode to 1? 0? true? false? or whatever then it's a specialized case of the protocol which can faithfully implement the interface requirements.
Not acceptable but better would be to strip the header off. Header, body, and payload shouldn't be semantically interchangeable as they live at different levels of abstraction.  Low level concerns about how the transports shuttle binary data across the wire shouldn't leak up into that level.  I shouldn't send a message on one side with header/body and find I receive no header on the message on the other side but that my body now has the concatenated form of header/body in the body because the underlying protocol merged them. Sending a raw []byte payload and a Message are fundamentally different levels of abstraction.
At the very least, sending a Message across a protocol that isn't capable of handling it correctly should result in a hard break and a panic.  I should know about it right now.
Obviously for someone like me that raises a lot of other issues. I'm putting together a set of libraries for a project I'm pitching - gorilla, boltdb, and so on.  I'm looking at ZeroMQ, Mangos, nanomsg, etc.  When I write up a quick prototype like I did and see it do what I want...sort of, I have to ask how many other cases will there be when I look at the API of the library and have to stop and say - "I wonder if it really does that or not?"
Common use cases...
RabbitMQ:
channel.basic_publish(exchange='',
routing_key='hello',
body=message)
That's a RabbitMQ routing key example.  It is essentially the same id of header/body. A more complex example would be in JMS.
Header {
[java]    jmsDestination  : TOPIC.testTopic.DurableSubscription[
clientId=DurableSubscriberExample name=jms-ex1dtps selector=null]
[java]    jmsDeliveryMode : 2
[java]    jmsExpiration   : 0
[java]    jmsPriority     : 4
[java]    jmsMessageID    : ID:3-11028998375501
[java]    jmsTimeStamp    :<PHONE_NUMBER>550
[java]    jmsCorrelationID: null
[java]    jmsReplyTo      : null
[java]    jmsType         : null
[java]    jmsRedelivered  : false
[java]    jmsProperties   : {}
[java]    jmsPropReadWrite: false
[java]    msgReadOnly     : true
[java]    producerClientId: ID:3
[java] }

http://zguide.zeromq.org/page:all#The-Dynamic-Discovery-Problem
If you look at the Pub-Sub Envelope section in docs you'll see what I was aiming at but that's really a separate issue from how the API should honor the contract expressed.

So I think the problem here is that you expect that the "topic" is part of a protocol header, distinct from the payload.  But historically the topic has always been considered to be defined as the leading part of the payload.  That definition is not intrinsic to mangos, but is really part of the nanomsg specifications that predate my involvement with nanomsg (and the existence of mangos.)
The reason I said that I don't think your definition is universal is that there are a large number of applications where the leading bytes of the payload are the topic.  Duplicating those in the header would be wasteful at best.
The message Header is for mangos/nanomsg/SP headers, and as I said, historically the topic isn't considered to be part of the header.
I think part of what's going on here is that you're thinking that you want certain semantics that may apply from another product, but nanomsg & co. have somewhat different semantics.  Whether those semantics are better or worse is a reasonable item for debate, but unfortunately the standards have been around for far too long, and expected by too many people, to change in the existing protocols.
To create a new semantic, we'd not only have to break the API semantic, but also the wire protocol, so that we had a way to delimit (either by a magic byte - or more likely by prefixing with a length field) the header from the payload on the wire.  This is critical to being able to split the header from the message when it arrives on the wire.  Right now there is no such delimiter, and it is technically impossible to take an arbitrary pub message and split the topic off, because we don't know where the topic ends.
As I also indicated, its not infeasible (or even necessarily particularly difficult) to imagine creating a new "protocol" (not called pub/sub but maybe pub2/sub2 or something?) that splits the topic off into the header, and uses a length field to indicate the length of the topic in the header.
Having said that, it is hard for me to imagine that the need for such separation is sufficiently great to justify even that small amount of effort -- since its easy enough to stash a topic in other manners -- you just need to define a delimiter byte (e.g. NULL) to indicate the end of the topic.  (Unfortunately, you can't use a length field because that will confuse substring compares.)
As to "Header" and "Body" semantics.  Typically for most protocols "Headers" have a clear protocol-specific definition. That is in fact the case here, it's just that the pub/sub protocol doesn't actually have any interesting header data (unlike say REQ/REP), since we assume the topic is part of the payload.  (And as indicated, whether good or bad, the precedent and wire protocol for this were established years ago.)


Add share button that would just copy the URL to the clipboard

Several questions I have related to this change @AviMaayan

Currently, we use the "share" icon for publishing, I don't think we should use a different icon for getting a link so I suggest using the link icon or alternatively finding a different "publish" icon. Please advise

Currently, we only give you the link to the playbook if you have it saved, this is because unsaved playbooks are subject to deletion and thus a user might arrive at a 404 if it was deleted since the playbook was shared. We can either: auto-save when you click the share button (you would need to be logged in for this), or just give the link ignoring this potential issue.

I forgot about this policy... I like the idea of saving automatically if the user press the share button. As a naive user, I created the GTEx workflow and then wanted to share it with you to report a bug, so it was not trivial to me that I need to save the workflow first...


SSLRec does not seem to be able to effectively reproduce some of the baseline results

I tried to utilize the classic dataset Yelp2018 dataset used in the LightGCN and SimGCL papers. I noticed that the interface for adding new datasets was not presented in data_handler_general_cf.py, so I modified the file so that it could directly read the official code of LightGCN that presents the train.txt and the test.txt files.
After completing this step, I ran LightGCN and SimGCL according to the best-parameters of the original paper, which were set as follows:
LightGCN: batch_size = 2048, layer_num=3, reg_weight=1.0e-4, embedding_size=64
SimGCL: batch_size = 2048, layer_num=3, reg_weight=1.0e-4, cl_weight=0.5, temperature=0.2, eps=0.05, embedding_size=64
Unfortunately, LightGCN and SimGCL do not seem to train properly at all. the loss of LightGCN has been fixed at 0.6931, while the Recall@20 of SimGCL is only 0.04. Subsequently, I further tuned the parameters of SimGCL, but the highest performance is only 0.066 (the best result of the original paper is 0.072).
I have some confusion about this, and I would like to inquire if there are inconsistencies in SSLRec's sampling, training, and strategy with mainstream methods that lead to the above phenomenon.

Hi!
Thanks for your interest! The code for sampling positive/negative items can be found in the data_utils/datasets_general_cf.py file, as shown below:
class PairwiseTrnData(data.Dataset):
    def __init__(self, coomat):
    self.rows = coomat.row
    self.cols = coomat.col
    self.dokmat = coomat.todok()
    self.negs = np.zeros(len(self.rows)).astype(np.int32)

    def sample_negs(self):
    for i in range(len(self.rows)):
	u = self.rows[i]
	while True:
            iNeg = np.random.randint(configs['data']['item_num'])
            if (u, iNeg) not in self.dokmat:
                break
	self.negs[i] = iNeg

    def __len__(self):
    return len(self.rows)

    def __getitem__(self, idx):
    return self.rows[idx], self.cols[idx], self.negs[idx]

While it may differ from the sampling strategy used in LightGCN-PyTorch, which employs uniform sampling by first sampling users and then sampling both positive and negative items, SSLRec follows the distribution of the original interactions. This means that we sample negative items for each interaction during training.
Additionally, during training, we employ early stopping to avoid manually tuning the number of training epochs for all methods. This approach has proven effective for the currently implemented methods. However, when dealing with new datasets, the hyperparameters for early stopping (such as the patience) may vary to achieve optimal performance for different methods.
Moreover, several model-agnostic sub-details, such as InfoNCE loss and regularization loss, are uniformly implemented in our SSLRec for all methods. However, it is important to note that the implementation may differ from other repositories. Each repository has its own unique design and implementation approach. Nonetheless, in all our current experiments, SimGCL consistently outperforms LightGCN in various scenarios and datasets.
Lastly, thank you for testing our framework and for your valuable questions. If you have any ideas to improve SSLRec, please don't hesitate to submit a pull request (PR). We appreciate your contributions to enhance the SSLRec framework : )
Best regards,
Xubin


Adguard breaks OnePlus Community app

@slavaleleka commented on Wed Jan 30 2019
Issue URL
https://play.google.com/store/apps/details?id=net.oneplus.forums
Screenshots

Screenshot 1

Screenshot 2

System configuration

Information
value

Platform:
And 9

AdGuard version:
2.12.247

Filtering quality:
High-quality

HTTPS filtering:
enabled

DNS requests blocking:
disabled

Steps to reproduce

Disable all kind of blocking
Open the app

But if DNS filtering is enabled — the app works just fine.
My environment

Adguard version: 3.0.205
Android version: 8.1, 9

@ameshkov @sfionov  Please, fix it. The task will soon 2 years. :-)

@ameshkov @sfionov  Please, fix it. The task will soon 2 years. :-)

@nkartyshov починим-починим:)

@nkartyshov починим-починим:)


Support multiline version of readline.CmdISearchBackward

Currently, CtrlR is not mapped in default but I want use it as backward incremental search of history.
There is readline.CmdISearchBackward, but it seems not yet fully compatible with go-multiline-ny.
Newlines are displayed as ^J and not expanded to multiline.
_ = ed.BindKey(keys.CtrlR, readline.CmdISearchBackward)

I think multiline version of CmdISearchBackward is better to be implemented in the package.

I think multiline version of CmdISearchBackward is better to be implemented in the package.

I agree. I will try

Implemented on v0.17.0
Could you confirm on macOS ?

It seems to work as expected.
Thank you for very fast fixing!


Excel Export Issues

Volunteer export - add organization column.
Request export - missing field header, columns misaligned.

Which fields are supposed to be included? There are currently some fields that aren't included in the spreadsheet
What are the Hebrew terms for the "guiding" and "keep_mandatory_worker_children" fields?

@itay-sho

remove full name, add organization, languages, neighborhood, address, keep children, hearing way.
Also add creation timestamps (for both volunteers and requests), database id, address (for requests).

Also add creation timestamps (for both volunteers and requests), database id, address (for requests).
You mentioned address twice. What do you mean by "for requests"?
Also should I also add moving_way? I feel like I should.

There are two excel exports - for volunteers and for requests. Both need modification. Volunteers have addresses, and also people in need of help, hence writing them twice (and the clarification).
As for moving way - good idea.

Ohh, I thought you meant requests as in HttpRequests 😅
Sure.
What about the type_text (the actual content of the helprequest) in the HelpRequest exporting?
Soon we'll have a chat platform and all these conversations will be there instead of here lmao


Error in decimation of flat plane

Sorry to trouble you but I've been doing some testing with your library. I've been using its lossless methods and they seem to hold up great when working with fully enclosed solids, but given a flat plane with no enclosing sides or bottom it cuts a corner off. It's a 16 by 16 subdivided plane I made in blender. The same object with sides and bottom decimates just fine. Can this be fixed or is this algorithm not meant to be applied to non-enclosed solid objects?
Here are the example files;
planes.zip

Hi, @LyingDwarf!
I am aware of this issue.
Please see my comment for a similar issue reported in my other project using the same mesh simplification algorithm: https://github.com/Whinarn/UnityMeshSimplifier/issues/16#issuecomment-513567244
In short, the algorithm in its current shape isn't very well suited for this. It could most definitely be improved, but I won't be implementing support to deal with planes similar to your needs. Sorry for the inconvenience.
If you manage to get a working solution, I do accept pull requests however.
Thanks!

Thanks for the quick response. Since the lossless methods seem to work very well on enclosed solids I may be able to work around the issue by generating fully enclosed solids, simplifying using the lossless methods, and then discarding the extra sides that I don't need.

Closing this issue because the project is being archived. Consider using UnityMeshSimplifier instead, if you are using Unity.