Merging actions/stale:master -> master

There were merge conflicts in the compile index.js so manually pulling the changes in.
Getting this ready to upstream (or at least start the conversation with the maintainers)

@Chocrates Any insight on the failing build?

@Chocrates Any insight on the failing build?

Nope, i told it to re-run but ill have to dig into it to see whats up when it fails again.

@Chocrates I found the issue with this PR. The tests still need the use of @actions/github, octomock is not a total replacement.
The @actions/github import provides a github object that contains a github.context object that represents the context of the action itself. The way Node.js works with import keeps the github object in the Node cache once it's imported in __test__/main.test.ts.
Setting github.context.actor = 'abot' in __test__/main.test.ts carries over to IssueProcessor.isIssueStillStale and the validation in the return works properly
return (
      comments.filter(
        comment =>
          comment.user.type === 'User' &&
          comment.user.login !== github.context.actor // This now works!
      ).length > 0

My initial suggestion needs to be reverted and import {GitHub} from '@actions/github'; needs to be changed to import * as github from '@actions/github';.

@Chocrates I've pushed the fixes to the test in https://github.com/ActionsDesk/stale/pull/4/commits/e6b78412ac7d42b22812e85cb1be4259bc9be79f.
Checks are now green.

Thanks for digging in to this @froi


Troubleshooting instructions for step 7

This shows troubleshooting instructions as in step 11 of the tutorial.

I signed it!


cartesian product of coordinates and using it to index / fill empty dataset

For a given empty dataset with only coordinates
import xarray as xr
import numpy as np
data = xr.Dataset(coords={'x': np.linspace(-1, 1), 'y': np.linspace(0, 10), 'a': 1, 'b': 5})

I'd like to iterate over the product of coordinates, in a similar way as it can be done for numpy.arrays
data = np.zeros((10, 5, 10))
for (i, j, k), _ in np.ndenumerate(data):
    data[i, j, k] = some_function(i, j, k)

to fill the data with values of some function.
Also I'd like to extend this to the cases of functions that are multi-valued, i.e. they return a numpy.array.
Is there an easy way to do so? I was unable to find anything similar in the docs.

Let me give a bit of a background what I would like to do:

Create an empty Dataset of coordinates I want to explore, i.e. two np.arrays x and y, and two scalars a and b.
Generate an list of the Cartesian product of all the coordinates, i.e. [ {'x': -1, 'y': 0, 'a': 1, 'b': 5}, ...] (data format doesn't really matter).
For each item of the iterator compute some function: f = f(x, y, a, b). In principle this function can be expensive to compute, therefore I'd compute it for each item of list from 2. separately on the cluster.
"merge" it all together into a single xarray object

In principle f should be allowed to return e.g. np.array.
An related issue in holoviews and my initial attempt.

I think that this shouldn't be too hard to 'get done' but also that xarray may not give you much help natively. (I'm not sure though, so take this as hopefully helpful contribution rather than a definitive answer)
Specifically, can you do (2) by generating a product of the coords? Either using numpy, stacking, or some simple python:

In [3]: list(product(*((data[x].values) for x in data.dims)))
Out[3]:
[(0.287706062977495, 0.065327131503921),
 (0.287706062977495, 0.17398282388217068),
 (0.287706062977495, 0.1455022501442349),
 (0.42398126102299216, 0.065327131503921),
 (0.42398126102299216, 0.17398282388217068),
 (0.42398126102299216, 0.1455022501442349),
 (0.13357153947234057, 0.065327131503921),
 (0.13357153947234057, 0.17398282388217068),
 (0.13357153947234057, 0.1455022501442349),
 (0.42347765161572537, 0.065327131503921),
 (0.42347765161572537, 0.17398282388217068),
 (0.42347765161572537, 0.1455022501442349)]

then distribute those out to a cluster if you need, and then unstack them back into a dataset?

For "get done" I had for example the following (similar to what I linked as my initial attempt)
coordinates = {
    'x': np.linspace(-1, 1),
    'y': np.linspace(0, 10),
}

constants = {
    'a': 1,
    'b': 5
}

inps = [{**constants, **{k: v for k, v in zip(coordinates.keys(), x)}}
        for x in list(it.product(*coordinates.values()))]

def f(x, y, a, b):
    """Some dummy function."""
    v = a * x**2 + b * y**2
    return xr.DataArray(v, {'x': x, 'y': y, 'a': a, 'b': b})

# simulate computation on cluster
values = list(map(lambda s: f(**s), inps))

# gather and unstack the inputs
ds = xr.concat(values, dim='new', coords='all')
ds = ds.set_index(new=list(set(ds.coords) - set(ds.dims)))
ds = ds.unstack('new')

It is very close to what you suggest. My main question is if this can be done better. Mainly I am wondering if

Is there any built-in iterator over the Cartesian product of coordinates. If no, are there people that also think it would be useful?
Gathering together / unstacking of the data. My 3 line combo of concat, set_index and unstack seems to do the trick but it seems a bit like over complication. Ideally I'd expect to have some mechanism that works similar to:

inputs = cartesian_product(coordinates) # list similar to ``inps`` above
values = [function(inp) for inp in inputs]  # or using ipypparallel map

xarray_data = ... # some empty xarray object
for inp, val in zip(inputs, values):
   xarray_data[inp] = val

I asked how to generate product of coordinates from xarray object because I was expecting that I can create xarray_data as an empty object with all coordinates set and then fill it.

After preparing list similar to [{'x': 0, 'y': 'a'}, {'x': 1, 'y': 'a'}, ...] interaction with cluster is quite efficient. One can easily pass such a thing to async_map of ipyparallel.
Thanks for your suggestion, I need to try few things. I also want to try to extend it to function that computes few different things that could be multi-valued, e.g.
def dummy(x, y):
    ds = xr.Dataset(
        {'out1': ('n', [1*x, 2*x, 3*x]), 'out2': ('m', [x, y])},
        coords = {'x': x, 'y': y, 'n': range(3), 'm': range(2)}
    )

    return ds

and then group together such outputs... Ok, I know. I go from simple problem to much more complicated one, but isn't it the case usually?

xarray.broadcast() could also be helpful for generating a cartesian product. Something like xarray.broadcast(*data.coords.values()) would get you three 3D DataArray objects.
apply_ufunc with vectorize=True could also achieve what you're looking for here:
import xarray as xr
import numpy as np

data = xr.Dataset(coords={'x': np.linspace(-1, 1), 'y': np.linspace(0, 10), 'a': 1, 'b': 5})

def some_function(x, y):
    return float(x) * float(y)

xr.apply_ufunc(some_function, data['x'], data['y'], vectorize=True)

Results in:
<xarray.DataArray (x: 50, y: 50)>
array([[ -0.      ,  -0.204082,  -0.408163, ...,  -9.591837,  -9.795918, -10.      ],
       [ -0.      ,  -0.195752,  -0.391504, ...,  -9.200333,  -9.396085,
         -9.591837],
       [ -0.      ,  -0.187422,  -0.374844, ...,  -8.80883 ,  -8.996252,
         -9.183673],
       ...,
       [  0.      ,   0.187422,   0.374844, ...,   8.80883 ,   8.996252,
          9.183673],
       [  0.      ,   0.195752,   0.391504, ...,   9.200333,   9.396085,
          9.591837],
       [  0.      ,   0.204082,   0.408163, ...,   9.591837,   9.795918,  10.      ]])
Coordinates:
  * x        (x) float64 -1.0 -0.9592 -0.9184 -0.8776 -0.8367 -0.7959 ...
    a        int64 1
    b        int64 5
  * y        (y) float64 0.0 0.2041 0.4082 0.6122 0.8163 1.02 1.224 1.429 ...

You can even do this with dask arrays if you set dask='parallelized'.
That said, it does feel like there's some missing functionality here for the xarray equivalent of ndenumerate. I'm not entirely sure what the right API is, yet.

This issue has brought up a lot of the same issues: https://github.com/pydata/xarray/issues/1773
Clearly, we need better documentation here at the very least.

@shoyer Thanks for your suggestions and linking the other issue. I think this one can also be labelled as the "usage question".

This StackOverflow question is related to this "issue".

Indeed, this is exactly the kind of situation I wrote xyzpy for. As a quick demo:
import numpy as np
import xyzpy as xyz

def some_function(x, y, z):
    return x * np.random.randn(3, 4) + y / z

# Define how to label the function's output
runner_opts = {
    'fn': some_function,
    'var_names': ['output'],
    'var_dims': {'output': ['a', 'b']},
    'var_coords': {'a': [10, 20, 30]},
}
runner = xyz.Runner(**runner_opts)

# set the parameters we want to explore (combos <-> cartesian product)
combos = {
    'x': np.linspace(1, 2, 11),
    'y': np.linspace(2, 3, 21),
    'z': np.linspace(4, 5, 31),
}

# run them
runner.run_combos(combos)

Should produce:
100%|###################| 7161/7161 [00:00<00:00, 132654.11it/s]

<xarray.Dataset>
Dimensions:  (a: 3, b: 4, x: 11, y: 21, z: 31)
Coordinates:
  * x        (x) float64 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0
  * y        (y) float64 2.0 2.05 2.1 2.15 2.2 2.25 2.3 2.35 2.4 2.45 2.5 ...
  * z        (z) float64 4.0 4.033 4.067 4.1 4.133 4.167 4.2 4.233 4.267 4.3 ...
  * a        (a) int32 10 20 30
Dimensions without coordinates: b
Data variables:
    output   (x, y, z, a, b) float64 0.6942 -0.3348 -0.9156 -0.517 -0.834 ...

And their are options for merging successive, disjoint sets of data (combos2, combos3, ...) and parallelizing/distributing the work.
There are also multiple ways to define functions inputs/outputs (the easiest of which is just to actually return a xr.Dataset), but do let me know if your use case is beyond them or unclear.

@jcmgray I had to miss your reply to this issue, I saw it just now. I love your code! I will definitely include xyzpy in my tools from now on ;-).

Suggest we close given xyzpy seems great at thsi

xyzpy seems to be unmaintained at present - the last release was 3 years ago.
Given how useful/common this functionality is, I would support pulling it into Xarray proper. I still find myself writing adhoc versions of this pretty regularly (usually involving expand_dims and concat).

xyzpy seems to be unmaintained at present - the last release was 3 years ago.

Yeah, it was late 2021. https://pypi.org/project/xyzpy/#history. I had looked at the commit history, which seems reasonably active this year, maybe a release is forthcoming...
That said, reopening!

It does actually have commits pretty recently: https://github.com/jcmgray/xyzpy/commits/main/

xyzpy is indeed still in use and development, thanks for the reminder to mint a release, I'll try and do that soon...


RSO - Scheduling/Optimization with Requirement Groups

Is RSO able to optimize booking with Requirements Groups.
E.g. Work order has 2 requirements (1 - Driver and 2 - Big Truck) both are resources, one is a user and the other is an equipment.
Can we get RSO to book both the driver and the truck to a work order without doing that manually on the requirement group?

@phecke There's no specific documentation topic, it is an implementation requirement. However we cannot use RSO with Requirement Groups it seems. Is there any reference on how to leverage requirement groups with RSO?

@IbrahimElSayed1 thank you for reaching out. I've reached out out to a subject matter expert and will circle back when I have an answer.
Thanks,
Michael

Hello @IbrahimElSayed1 - I got confirmation that requirement groups aren't supported in RSO at this time. The team is aware of this ask but there's no timeline for it. However, Scheduling Assistant can work with requirement groups if that's a viable fallback for you. https://learn.microsoft.com/en-us/dynamics365/field-service/multi-resource-scheduling-requirement-groups
Kind regards,
Michael


Include new attributes for Sale and SaleAccount

ch550

ch550

:shipit: released on version 1.3.0


get webnotifications permissions

It would be great if we could use the service to get the current state.  Right now I'm using the global window.notify object.

Just a question, but why do you need it?
I built the API in a way that you don't need to mess with that, so maybe I'm missing something.

I wanted to have small indicators in my UI about the status.. more for diagnostic purposes.

ok, I'll try to add that this week.

Added webNotification.permissionGranted attribute (boolean), hope that helps.
https://github.com/sagiegurari/angular-web-notification/blob/master/docs/api.md#webNotification.permissionGranted
I don't want to give the actual permission name and prefer to have a true/false flag.
pushed with version: 0.0.65


Electron sandbox_bundle.js script failed to run

I followed all  the steps suggested here: https://github.com/cawa-93/vite-electron-builder/discussions/770 to use React.js instead of Vue.js.
The app shows up, but  some strange error messages appear :
(base) raphy@pc:~/ViteElectronReactBuilder$ yarn run watch
yarn run v1.22.18
$ node scripts/watch.js
vite v3.0.0-alpha.11 building SSR bundle for development...

watching for file changes...

build started...
✓ 3 modules transformed.
rendering chunks (1)...Sourcemap is likely to be incorrect: a plugin (unplugin-auto-expose-preload) was used to transform files, but didn't generate a sourcemap for the transformation. Consult the plugin documentation for help
dist/index.cjs   0.55 KiB
dist/index.cjs.map 0.10 KiB
built in 50ms.
vite v3.0.0-alpha.11 building SSR bundle for development...

watching for file changes...

build started...
✓ 3 modules transformed.
dist/index.cjs   4.00 KiB
dist/index.cjs.map 10.38 KiB
built in 67ms.
8:47:14 PM [vite] ✨ new dependencies optimized: react, react-dom/client
8:47:15 PM [vite] ✨ optimized dependencies changed. reloading
8:47:15 PM [main] Failed create window: Error: ERR_ABORTED (-3) loading 'http://localhost:5173/'
    at rejectAndCleanup (node:electron/js2c/browser_init:161:7647)
    at EventEmitter.navigationListener (node:electron/js2c/browser_init:161:7953)
    at EventEmitter.emit (node:events:526:28) {
  errno: -3,
  code: 'ERR_ABORTED',
  url: 'http://localhost:5173/'
}
8:47:15 PM [main] [84984:0615/204715.636173:ERROR:CONSOLE(160)] "Electron sandbox_bundle.js script failed to run", source: node:electron/js2c/sandbox_bundle (160)
[84984:0615/204715.636210:ERROR:CONSOLE(160)] "TypeError: object null is not iterable (cannot read property Symbol(Symbol.iterator))", source: node:electron/js2c/sandbox_bundle (160)

You can find the repo here:  https://github.com/raphael10-collab/ViteElectronReactBuilder

I don't see any errors with the last committee in this template. You should probably contact the author of the react fork


Add option to not attach state

Documentation: https://docs.sentry.io/platforms/javascript/guides/react/features/redux/#redux-enhancer-options
Implementation in @sentry/react: https://github.com/getsentry/sentry-javascript/blob/8.37.1/packages/react/src/redux.ts#L149

Great, thanks for the pull request. I'll release this in a new minor version.


Add support for Python 3.11

Actually it refers to https://github.com/coqui-ai/TTS#install-tts as they said :

TTS is tested on Ubuntu 18.04 with python >= 3.7, < 3.11..
If they support Python 3.11 , your problem will be solved.


Fix httpChunkStore race between Close() and Has/Get

In httpChunkStore, calls to Get/Has and friends put a request object
with a 'return channel' onto a queue channel, and then block on the
return channel. The queue channel was buffered, which made it
impossible to cause Get, Has et al to terminate reliably when the
store was closed.
This patch removes the buffering on the channel so we can
deterministically bail from Get/Has et al when closing the store. I
don't think we were actually seeing any benefit from the buffer on the
queue channels, because everywhere we write to one of them we
immediately block on another channel, waiting for the result of the
request.
Fixes #3566

PTAL

Put/Commit/Close race bug https://github.com/attic-labs/noms/issues/3572


Add .circleci/config.yml

What type of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Refactor
[ ] Documentation
[ ] Not Sure?

Does this PR introduce breaking changes?

[ ] Yes
[ ] No

List any relevant issue numbers:
Description:

Hi, thanks for your PR! It would be nice to bring more context about why you think this would help. In the meantime I'll close it.


⚠ Game Join API Endpoint has degraded performance

In 50cb3e8, Game Join API Endpoint (http://gamejoin.roblox.com/) experienced degraded performance:

HTTP code: 200
Response time: 11763 ms

Resolved: Game Join API Endpoint performance has improved in f69de45.


Tutorial: model a dataflow (3/4)

Hi, @semiwaker @wangyuyue

Ref.: TENET tutorial
Could you explain why you map the loop index to PE[k%8, c%8]?
It assumes you can do many MACs in a PE per cycle.
Did I miss something? Thank you!

The systolic access pattern requires the inner-most time-stamp to be:
{S{k,c,ox,oy,rx,ry} → T[k%8 + c%8 + ox]}
Map the outer loop index to the time stamp：
{S{k,c,ox,oy,rx,ry} → T[floor(k/8), floor(c/8), oy, k%8 + c%8 + ox]}

For T[0, 0, 0, 0], I get

k
c
ox
oy
rx
ry

0
0
0
0
0
0

0
0
0
0
0
1

0
0
0
0
0
2

0
0
0
0
1
0

0
0
0
0
1
1

0
0
0
0
1
2

0
0
0
0
2
0

0
0
0
0
2
1

0
0
0
0
2
2

Only PE[0, 0] is used.
For T[0, 0, 0, 1], I get

k
c
ox
oy
rx
ry

0
0
1
0
0
0

0
0
1
0
0
1

0
0
1
0
0
2

0
0
1
0
1
0

0
0
1
0
1
1

0
0
1
0
1
2

0
0
1
0
2
0

0
0
1
0
2
1

0
0
1
0
2
2

Only PE[0, 0] is used.
For T[0, 0, 0, 2], I get

k
c
ox
oy
rx
ry

0
0
2
0
0
0

0
0
2
0
0
1

0
0
2
0
0
2

0
0
2
0
1
0

0
0
2
0
1
1

0
0
2
0
1
2

0
0
2
0
2
0

0
0
2
0
2
1

0
0
2
0
2
2

Only PE[0, 0] is used.

Hi Kevin,
Thanks for your question.
Take T[0, 0, 0, 1] as an example, it gives the condition that T[floor(k/8), floor(c/8), oy, k%8 + c%8 + ox] = T[0, 0, 0, 1].
I think under this condition k=0, c=1, and ox=oy=0 is a valid solution, and thus we can infer that PE[0, 1] is also working.

For the question

It assumes you can do many MACs in a PE per cycle.
Did I miss something? Thank you!
Yes, your guess is correct here. If we don't map a variable to either the timestamp or the space, then it means we assume this variable is free and compute instances with all its possible values execute in a single cycle.
I know this kind of assumption is implicit and prone to negligence and error. A solution is to add the max concurrent MAC number per PE somewhere in the code and add an assertion to check no more instances as specified by this constraint are executed concurrently. You are welcome to contribute a pull request.

@wangyuyue Thank you for the reply. You are right.
However, there are still 9 MACs (9 instances) on PE[0, 0] at T[0, 0, 0, 1], right?

Sorry, my previous explanation is wrong.
As the timestamp is used to express the execution order of compute instances, the smallest timestamp interval doesn't necessarily correspond to a physical clock cycle. The compute latency is calculated as (total #compute instances) / (total # active PE). So changing the timestamp mapping doesn't really impact the compute latency.
If we really want to model concurrent MAC in a PE, just change the compute latency formula to (total #compute instances) / (total # active PE * PE_parallel_factor).

@wangyuyue
Thank you for the explanation! 😄

The compute latency is calculated as (total #compute instances) / (total # active PE).

Could you share the permalink for this feature in the TENET code?
I have a question about computation latency = (total #compute instances) / (total # active PE).
For simplicity, I replace ./dataflow_example/conv.s with
2 1
{S[k,c,ox,oy,rx,ry]:0<=k<2and 0<=c<3 and 0<=ox<3 and 0<=oy<3 and 0<=rx<2 and 0<=ry<2}
{S[k,c,ox,oy,rx,ry]->I[c,ox+rx,oy+ry]}
{S[k,c,ox,oy,rx,ry]->W[k,c,rx,ry]}
{S[k,c,ox,oy,rx,ry]->O[k,ox,oy]}

, replace ./dataflow_example/pe_array.p with
{PE[i,j]:0<=i<2 and 0<=j<2}
{PE[i,j]->PE[i+1,j]; PE[i,j]->PE[i,j+1]}

128 1024 64 4

and replace ./dataflow_example/KC_systolic_dataflow.m with
{S[k,c,ox,oy,rx,ry]->PE[k%2,c%2]}
{S[k,c,ox,oy,rx,ry]->T[floor(k/8),floor(c/8),oy,ox+k%8+c%8]}

After running the command
bin/tenet --m ./dataflow_example/KC_systolic_dataflow.m --p ./dataflow_example/pe_array.p --s ./dataflow_example/conv.s --o test.csv --all

At T[0, 0, 0, 2],
all instances in PE[0, 0]:

k
c
ox
oy
(rx, ry)

0
0
2
0
(0, 0), (0, 1), (1, 0), (1, 1)

0
2
0
0
(0, 0), (0, 1), (1, 0), (1, 1)

2
0
0
0
(0, 0), (0, 1), (1, 0), (1, 1)

At T[0, 0, 0, 2],
all instances in PE[0, 1]:

k
c
ox
oy
(rx, ry)

0
1
1
0
(0, 0), (0, 1), (1, 0), (1, 1)

At T[0, 0, 0, 2],
all instances in PE[1, 0]:

k
c
ox
oy
(rx, ry)

1
0
1
0
(0, 0), (0, 1), (1, 0), (1, 1)

At T[0, 0, 0, 2],
all instances in PE[1, 1]:

k
c
ox
oy
(rx, ry)

1
1
0
0
(0, 0), (0, 1), (1, 0), (1, 1)

At T[0, 0, 0, 2], there are $4\times3 + 4 + 4 + 4 = 24$ instances and $4$ active PEs, right?
(total #compute instances) / (total # active PE) = 6 cycles, but we actually need $4 \times 3 = 12$ cycles (PE[0,0] needs 12 cycles to perform 12 MACs).
Did I miss something? 😕

@Gnaiqing @wangyuyue I further simplify the previous example by replacing 0<=oy<3 with 0<=oy<1 and rerun TENET.

Timestamp
MAC
Active PEs
Actual Cycles

T[0,0,0,0]
4
1
4

T[0,0,0,1]
12
3
4

T[0,0,0,2]
20
4
8

T[0,0,0,3]
20
4
8

T[0,0,0,4]
12
3
4

T[0,0,0,5]
4
1
4

The actual total latency is 32 cycles. However, the computation latency from TENET is 18 (GetMacNum/dsize, GetMacNum=72, dsize=4). The relative error is about 43%, and that isn't ignorable.
You have also made a function GetAverageActivePENum, but only use it to show the average active PEs number. If you compute computation latency with  GetMacNum/GetAverageActivePENum, you will get 27 cycles (GetMacNum=72, GetAverageActivePENum=2.67). The relative error is about 16%, and the relative error becomes smaller, although it is still not ignorable. Is there any reason for using GetMacNum instead of GetAverageActivePENum to compute the computation latency?

https://github.com/pku-liang/TENET/blob/8a3b3bc0982ee18eb9852b2298340f909fad840d/src/dataflow.cpp#L336-L339
https://github.com/pku-liang/TENET/blob/8a3b3bc0982ee18eb9852b2298340f909fad840d/src/dataflow.cpp#L287-L294

one may enumerate the workload of every PE to get more accurate estimation, however this will take longer runtime as well.

Could you add this feature or explain in detail how to create that? Thank you. :smile:

Hi Kelvin,
I've merged your pull request. Thanks for your contribution!


Changed Test case Configuration names

Changed the Configuration names that were shared between
gmail_client_test and gmail_client

resolves : https://github.com/wso2/ballerina-integrator/issues/632

It has been decided that the Tests for this template are not required.
Will close this pull request and add another commit to delete the tests.


Is there a way to get delayed_job working on Thin?

Heroku uses Thin for its web server (or at least that's what they recommend), so that seems to imply that you can't use delayed_job on Heroku...which obviously isn't the case since Heroku itself suggests using delayed_job.
So what's the workaround here?
For example, when running on Heroku, my .delay generates this:
--- !ruby/object:Delayed::PerformableMethod
object: !ruby/class KM
method_name: :send_or_log_query
args:
- /e?_k=c6a6f93cfe7e386cb580ea2cfa2f954f70592665&_n=Signed+In&_p=josh%40popsurvey.com&_t=1323729190

And then it errors when trying to run it: undefined method 'send_or_log_query' for Class:Class

You want to use a Proc file and specify a worker - http://devcenter.heroku.com/articles/procfile
This will cost you money if you are running a web and a worker process.

Sorry, I'm not following how a working in a Proc file really has anything to do with this.
 If so, the error still occurs by doing that.

I've run into the same issue on heroku. I am using the latest versions of delayed_job and delayed_job_active_record. Both seem to working correctly on my local since this patch https://github.com/collectiveidea/delayed_job/commit/023444424166ba2ce011bfe2d47954e79edf6798 using Webrick, but I am still getting the undefined method Class:Class after deploying to heroku

As mentioned here by tshr, I am also having the same issue. Looks like it was fixed but I am not sure if the fix is in the latest gem. I could set up Bundler to install directly from the git repo HEAD. In case there is going to a new gem release soon, I can wait for that as well. Thanks.

my temporary fix for this was to downgrade to version 2.1.4 and use Rake 0.8.7, the combination of which works on heroku on the bamboo stack, with no Proc file necessary.


pluto: use max proximity code per billing-bbl

In the case of condos, there are sometimes multiple prox codes per bbl in a given billing bbl. Previously when we were assigning proxcodes, the choice of proxcode was not deterministic. This changes to use the most proximate condo unit. E.g.
+-----+--------------+-----------+
| bbl |  billing bbl |  proxcode |
+-----+--------------+-----------+
|   1 |          123 |         1 |
|   2 |          123 |         2 |
+-----+--------------+-----------+

billing bbl for 123 will use proxcode 2

I approve of this change.  I'm flagging that we'll need to update the ProxCode definition in the data dictionary to reflect this change.

I did some QA between data sets to assess impact of this change, and it appears to be very, very minor. I generated one Pluto dataset with this fix, and one without, both comparing against 23v2 for QA.
23v2.2 with fix
23v2.2 without fix
They're basically identical. The number of proxcode changes against 23v2 stays the same - which felt suspicious at first, until I remembered that in every discrepancy we looked at, the proxcodes in the later version were higher. So I think this is what we would expect.
In fact this fix only appears to affect 1 row, and only for the following fields: comarea, resarea, otherarea, lottype, bsmtcode. Even more curiously, the version with fix is more similar to 23v2. This may, I hate to say it, be another source of indeterminacy. But since it's a single row, I'm not sure it's high priority to chase down.
To sum up, from this experiment, I can't say for certain that this resolves the issue - to do that, I'd need to replicate the conditions (code, database, etc.) that generated 23v2, and implement the fix there. But I feel confident that this will keep the proxcodes from varying between releases, so I think this is probably worth merging.


climate-sensor enhancement

Added deviceName to the ouput of the climate-sensor. Resolves #75
Added separateOuputs option the the climate sensor. Resolves #75

I tested setting the output config. Seems to work. Just don't have a sensor to test the sending as well.

I tested setting the output config. Seems to work. Just don't have a sensor to test the sending as well.


Exception in certain situations while trying to export: context is incorrect

Game
Resident Evil 5
Example game file names
Any
Blender version
2.76
Albam version
develop at commit 913b03e7ed (probably reproducible in 0.1)
Observed behavior
Exception thrown when trying to export a model
Traceback (most recent call last):
  File "/home/sysop/.config/blender/2.76/scripts/addons/albam/blender.py", line 188, in execute
    bpy.ops.object.mode_set(mode='OBJECT')
  File "/opt/blender-2.76b/2.76/scripts/modules/bpy/ops.py", line 189, in __call__
    ret = op_call(self.idname_py(), None, kw)
RuntimeError: Operator bpy.ops.object.mode_set.poll() failed, context is incorrect

location: <unknown location>:-1

Expected behavior
No exceptions, of course.
Steps to reproduce

Open a model ready to export
Delete part a mesh of that model
Click on export

Fixed in Albam Reloaded and backported to Albam.


fix: update to eye v4.10.19

fix: update to eye v4.10.19

:tada: This PR is included in version 6.0.7 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release
v6.0.7

Your semantic-release bot :package::rocket:


TS API - Add support for checking the YAML-CPP version used in the core.

This will be handy for several reasons:
1 - Avoid binary compatibility issues: Make sure that any plugin using a TS API with a TSYaml as part of their signature runs the same YAML-CPP version as in core.
2 - if any JSONRPC Plugin handler wants to make sure they have the same yaml version as in core(before registering by TSRPCRegister, or even after using the constants) so they can avoid issues.

[approve ci centos]


Update sangria to 3.4.0

Updates org.sangria-graphql:sangria from 3.3.0 to 3.4.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.sangria-graphql", artifactId = "sangria" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.sangria-graphql", artifactId = "sangria" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

@dependabot ignore this minor version

There seems to be issues internally with this version so I'm closing this PR.


Clean up usage of hard coded hosts in tests that use containers

Description
A number of our tests that use containers, hard code localhost as the host to use when connecting to the container service. This works so long as the container is running on the host machine. That may not always be the case, so we should support connecting to remote hosts.

Initial PR https://github.com/apache/camel-quarkus/pull/5509.
It'll eventually need a follow up PR for dealing with tests that explicitly configure certificates for localhost. In that case host verification will fail if the docker host is remote.

Certificate issues fixed in https://github.com/apache/camel-quarkus/pull/5540.


Revision of function specifications

I think we should consider some modifications to our function specifications before we proceed with writing unit tests and code for the functions. Use this issue for communications on this topic.

1. Rename add_team_members to get_types:
As is, recommend takes as input a list current_team of up to 5 pokemon names. This list would then be immediately passed to add_team_members, which takes as input a list pokemon_names of pokemon names, and returns as output as a corresponding list of pokemon types.  For this reason, I think it makes sense to rename add_team_members to get_types, as that seems to be a more accurate description of the function's purpose. This new name would also make sense since the current docstring for the function is "Given a list of pokémon names, determine the types of those pokémon using an existing dataset."

2. Consider the existence of dual-type pokémon:
One detail that was neglected in milestone 1 is the fact that some pokemon can have two types, rather than just one. This complicates some things.

2.1. Double weaknesses and resistances:
Some dual-typed pokemon can be doubly weak or doubly resistant to certain types. For example, Abomasnow is both Ice-type and Grass-type, and as a result, is doubly weak to Fire-type attacks.  Another example is Skarmory which is both Steel-type and Flying-type, and as a result, is doubly resistant to Bug-type attacks.
In my opinion, the simplest solution is to make a double weakness/resistance count twice when creating the dictionaries for calc_weaknesses/calc_resistances. For example, if Abomasnow was on a team, then the entry for 'fire' in the dictionary from calc_weaknesses should receive a +2 from Abomasnow.

2.2. Cancelling out weaknesses and resistances:
Some dual-typed pokemon can have a weakness cancel out with a resistance. For an example, we can consider Skarmory yet again. Flying-type pokemon are weak to Rock-type and Ice-type attacks, but Steel-type pokemon are resistant to Rock-type and Ice-type attacks. As a result, Skarmory takes normal damage from Rock-type and Ice-type attacks.
In my opinion, the simplest solution is to make a cancelled-out weakness/resistance not count at all.  For example, if Skarmory was on a team, then the entries for 'rock' and 'ice' in the dictionaries from calc_weaknesses and calc_resistances should both receive no contribution from Skarmory.

After implementing changes 2.1 and 2.2, the keys of the dictionary output by calc_weaknesses would still be the same (18 keys for the 18 types in the game), and the values would still be integers, but rather than being the "number of pokemon on the team weak to that type (key)", it would just serve as a measure of the total amount of weakness the team has to that type (key). Similarly for calc_resistances. In order to account for cancelling out as detailed in 2.2, the output of get_types would need to be altered to be a list of lists. For example, get_types(['Pikachu', 'Skarmory', 'Abomasnow']) would output [['Electric'], ['Steel', 'Flying'], ['Grass', 'Ice']].

3. Consider the existence of type immunities:
Another detail that was neglected in milestone 1 is the fact that some pokemon types are completely immune to other pokemon types. For example, ghost-type pokemon are immune to normal-type attacks, and flying-type pokemon are immune to ground-type attacks. This should clearly contribute some amount to the values in the dictionary from calc_resistances. The only question is how much. Given that a double resistance will count as +2, I think an immunity needs to count for more since a double resistance is equivalent to $\frac{1}{4}\times$ damage, but an immunity is equivalent to $0\times$ damage. Perhaps +4 for immunity would be appropriate? For example, if Skarmory (a flying type), was on a team, then the entry for 'ground' in the dictionary from calc_resistances should receive a +4 from Skarmory.

4. Clarify the specifications of recommend:
Currently, the docstring of recommend is "recommend a pokémon that could be added to the current team to make its weaknesses and resistances more balanced." The idea of the function is to use the information in the dictionaries created by calc_weaknesses and calc_resistances to determine which pokemon would make the team more "balanced". In order to do this, it seems appropriate that we should first define a metric to measure how "balanced" a team is. To this end, I suggest that we consider using something like the following:

For $i=1,2,\dots, 18$, let $\text{weak}_i$ be the value corresponding to the $i$ -th pokemon type in the dictionary returned by calc_weaknesses and let $\text{resist}_i$ be the value corresponding to the $i$ -th pokemon type in the dictionary returned by calc_resistances. Now define $\delta_i = \text{resist}_i -  \text{weak}i$. If $\delta_i < 0$, then the team is weak (overall) to pokemon type $i$, and this should definitely be considered. The more negative $\delta_i$ is, the more problematic. For example, if a player used a team of 5 fire type pokemon, then $\delta{\text{water}$ would be equal to -5, and this would be a big problem. If $\delta_i > 0$, then the team is resistant (overall) to pokemon type $i$, which is a good thing. The more positive the better, but any value greater than zero is good.
So in my opinion, I think we should penalize negative $\delta_i$ values more than we reward positive $\delta_i$ values. For this reason, I suggest we define $\text{TypeAdvantage}_i = \text{TA}_i$ to be a piecewise function of $\delta_i$. In particular, $\text{TA}_i = -\alpha\delta_i^2$ if $\delta_i < 0$ and $\text{TA}i = \beta\sqrt{\delta_i}$ if $\delta_i \geq 0$.
Here, $\alpha>0$ and $\beta>0$ would be parameters to control the desired tradeoff between weaknesses and resistances (by default, we could set something like $\alpha = \beta = 1$). Since $\delta_i$ is squared for negative values, it follows that large negative values of $\delta_i$ would be he6avily penalized. On the flip side, since we take the square root of $\delta_i$ for non-negative values, it follows that large positive values of $\delta_i$ would not be rewarded much more than small positive values.
Finally, I propose that we define the balance metric of a team as follows: $\text{balance} = \sum{i=1}^18\text{TA}_i$. Positive values of balance would indicate a well-balanced team, and negative values would indicate a team that could use improvement.

Now the goal of the recommend function would be: "given an input list of up 5 pokemon, determine which pokemon should be added to the team to maximize its 'balance' metric". This could be accomplished via a simple brute-force search since the total number of pokemon is not very large.

Please let me know your thoughts on the above sugestions.

1. Rename add_team_members to get_types

See https://github.com/UBC-MDS/pokehelpyer/commit/d73b8ba9899a55cbb3860556cff7b568afbea7c0 for a mockup of my suggestions.

2. Consider the existence of dual-type pokémon
3. Consider the existence of type immunities

See https://github.com/UBC-MDS/pokehelpyer/commit/18db0ecf6029cda332644e32dac5272e7e4d6e67 and https://github.com/UBC-MDS/pokehelpyer/commit/a20cacb24a3e744cc30784c84081e91649676ef7 for a mockup of these suggestions.

4. Clarify the specifications of recommend

See https://github.com/UBC-MDS/pokehelpyer/commit/275abd38f76e50cbd6016985fdd2c4321a97f8c3 and https://github.com/UBC-MDS/pokehelpyer/commit/ed82989cf7dce820107f082db52892d43581b1fc for a mockup of these suggestions.

By the way, I should probably mention that I'd be fine with taking on the development of both recommend as well as the new function calc_balance.

I missed 2.2 implementation, for now, the code is adding 1 any type regardless of whether this type is also a weakness for the same Pokemon. I will fix it later today. All other specifications were implemented.


MiniLM: releasing all models?

Hi there,
First of all: great work on distilling a strong teacher into a well performing student and eliminating the issue of parameter size discrepancy in teacher-student models! I am always happy to see smaller, usable models.
I was wondering if you plan to release the Small MiniLM model (L6xH384). It says We release the uncased 12-layer and 6-layer MiniLM models with 384 hidden size [...], but I can only find the link to the 12-layer model.
Thanks so much

Hi @volker42maru,
Thanks for your interest. We will release the 6-layer English and multilingual MiniLM models later.
Thanks

Hi @WenhuiWang0824,
Thanks a lot for providing models with such great accuracy and speed combination!
Will it be possible to provide the link to the 6-layer MiniLM model?
Very much appreciated!

Hi @maksymbevza, we are preparing the models in MiniLMv2 and will release them later.
Thanks

Hi @volker42maru and @maksymbevza,
We have released the monolingual and multilingual minilmv2 models distilled from different teachers. Please find the model links in the MiniLM folder.
Thanks

Hi @WenhuiWang0824
great, thank you for the great work and releasing the model. The MiniLMv1 models work great for bi-encoders and cross-encoders, so I'm eager to test the v2 models.
It would be great if the models could also be added to the huggingface model hub: https://huggingface.co/microsoft
This would make it easy to load and use the models.
Let me know if you need help putting the models on the hub.


Treat missing cache buster as valid

When deploying the first release of h-assets in h we found a handful of non-critical cases where asset URLs were being generated without cache busters:

An icon font URL in a CSS file
Source map URLs in generated JS bundles (I really should have noticed this earlier)

To make the initial deployment of h-assets easier, this commit relaxes the cache-buster check to always allow requests if there is no cache-busting query string. We can increase the strictness in a later release once all the downstream projects are ready.

To test this change with the h or lms projects:

Build a local wheel from this branch using make dist and change requirements.txt in h/lms to reference it
Go to some page in h and grab and asset URL from one of the <script> or <style> tags in the page
Using curl try fetching the URL with the query string, without the query string (should both succeed) and with a different query string (should return a 404)

This looks fine, but I'm wondering if this should be something configurable instead? Presumably you're going to want to toggle it back on pretty soon?

Yes, I was planning to add this soon-ish. I figured I'd just send a separate PR for that though once I had a better idea of how the configuration should work (just a boolean? configurable per file type? predicate callback?).

I think a boolean until it's proven we need more?


Auto-Reload not working on Windows

Hi, I love your golang-dev Container but my main work environment is windows.
Unfortunately, docker does not support inotify for windows users.
I have evaluated two solutions to this problem:

Implement a polling mechanism that may be activated by an environment variable.
Use the docker-windows-volume-watcher python package and add attrib to the inotifywait command.

I am going with the second one and will provide a PR soon.

Thanks alot @DanielHabenicht ! Concurrently, I'm working on a binary that should work for windows, it's in the feat/app branch

@DanielHabenicht have published a fix at version 0.4.0, thanks once again!


Debian images are using older corretto images

The Debian docker images are currently using older corretto builds (<IP_ADDRESS>.1 and dk_8.242.08-1 to be precise). I think that they should be upgraded to the latest builds

Thanks for reporting. Fixing.

Dockerfiles updated


feat: add ormolu formatter for Haskell (#377)

If you want to update the comment for fourmolu, you should update the meta field in the formatter itself. The Readme and help docs are autogenerated.

Thank you for the heads up!Thank you for the heads up!

Thanks for the PR!


Refactor readers i

Some refactorings of the PSM readers

use _psm_df iternally instead of psm_df (first commit)

simplify column_mapping initialization (second commit)

Introduce string constants to access the data frames in the reader classes.
Benefits: the relation between the different locations where columns are accessed becomes transparent.

LGTM!

scVI tools (really solid library, part of the scVerse - HA!) inherits from the named tuple class

https://github.com/scverse/scvi-tools/blob/998ea3dabf5434dcacaf78bb707ef0ca54f10593/src/scvi/data/_constants.py#L4
https://github.com/scverse/scvi-tools/blob/998ea3dabf5434dcacaf78bb707ef0ca54f10593/src/scvi/_constants.py#L2

@GeorgWa thanks for the heads up regarding precursor_df & the unused columns, noted.


[dcc32 Fatal Error] VSoft.HttpClient.pas(36): F2613 Unit 'VSoft.CancellationToken' not found.

[dcc32 Fatal Error] VSoft.HttpClient.pas(36): F2613 Unit 'VSoft.CancellationToken' not found.

VSoft.HttpClient has a dependency on VSoft.CancellationToken.

where I can get VSoft.CancellationToken ? because I failed compile VSoft

Umm. this is the VSoft.Cancellation token repository.. clone this repo, add the source folder to your project's search path.

VSoft.HttpClient how to support http/2 ?


Fwd: Dedebelngot

Fwd: Dedebelngot created by<EMAIL_ADDRESS>on 2020-05-19 07:59:36

<EMAIL_ADDRESS>replied, Two things.  One, does anyone know about a ghost named  Dedebelngot?
Something we should add to our dictionary?   Two, anyone know a lot about
this story so we can help out  Evgeniya?
Thanks,
John
---------- Forwarded message ---------
From: Evgeniya Korovina<EMAIL_ADDRESS>Date: Tue, May 19, 2020 at 4:39 AM
Subject: Dedebelngot
To<EMAIL_ADDRESS>Dear colleagues and members of Palau community,
I am sorry to trouble you, but maybe you know something about this and it
will be possible to clear some details. In KrÃ¤mer 1929 text there are such
fragment:
â€Dedebelngot, the galid spirit from Ngarameleg nearby Melekeiok, used to
take off arms legs when he slept. Then, when he woke up and needed them, he
called them.â€
I know that in Micronesian legends sometimes mentioned person without hands
and legs who can call them and also I know that in Polynesian texts there
are spirits who slept without skin, just as skeletons. It is the reason why
this passage is very interesting for me. Maybe you know more about this
story about Dedebelngot or other Palauan stories where there is somebody
who can â€œcall his hands and legsâ€ or something close?
Yours sincerely,
Evgeniya Korovina,
Institute of Linguistics, RAS.


Number of people tested daily.

Number of cases is corelated to number of people tested. Number of tests done are already questionable.
Get number of tests done daily data and plot it against active cases discovered.
This helps to understand importance of testing in fight against covid19

ICMR has released daily updates on testing stats for April 3 and April 4 (links attached). Unfortunately, they are pdf's. If these updates are shared daily, we could perhaps copy over the data points manually?

Those links don't work anymore for me.
There is also state wise testing stats being published by some states. We can scrape that data state wise.

Added via #699


Fully remove the deprecated apply_gate API

The previous non module-based API for applying gate is deprecated and should be completely removed from the codebase.

done


Cannot add sampler2DArray as shader global due to Texture2D Array import compression

Godot version
v4.1.1.stable
System information
Godot v4.1.1.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 750 Ti (NVIDIA; <IP_ADDRESS>23) - 12th Gen Intel(R) Core(TM) i5-12400F (12 Threads)
Issue description
When creating a Shader Global of type sampler2DArray:

The expected resource is Texture2DArray.

Using an imported Texture2DArray does not work as they are actually imported as a CompressedTexture2DArray, and to my knowledge a normal Texture2DArray is impossible to create

Steps to reproduce

Import a spritesheet as a Texture2DArray
Notice the file is imported as a CompressedTexture2DArray resource
Create a Shader Global of type sampler2DArray
Try to add your texture array but notice that it only accepts Texture2DArray, while our import is CompressedTexture2DArray. To my knowledge, a Texture2DArray is impossible to import, it will always be a compressed array.

Expected behavior: sampler2DArray lets you select both Texture2DArray and CompressedTexture2DArray resources
Minimal reproduction project
N/A

We might need to allow some more subclasses to be used or adjust the type checks if they are too strict. Meanwhile, you might be able to use RenderingServer.global_shader_parameter_set() to set the CompressedTexture2DArray object directly during runtime (or in a tool script if running in editor).

I focused this post on the CompressedTexture2DArray but after looking at the suggested resources for a sampler2DArray that is not global, it applies to more than just the singular class i was talking about if that wasn't obvious already
Pic of all the classes a sampler2DArray spot should have:

Related to https://github.com/godotengine/godot/issues/70649 and https://github.com/godotengine/godot/issues/71789.


Trying to get coverage report

Hi,
It seems that using the Rest module with Phpbrowser does not work for 'coverage'
Example running bin/codecept run --coverage --coverage-xml --coverage-html :

Here is the config of api.suite.yml :
class_name: ApiTester
coverage:
  enabled: true
  remote: true
  remote_context_options:
    http:
      timeout: 60
    ssl:
      verify_peer: false
modules:
    enabled:
        - Asserts
        - Symfony:
              kernel_class: App\Kernel
              app_path: 'src'
              environment: 'test'
        - REST:
              depends: PhpBrowser
        - Doctrine2:
              depends: Symfony
              cleanup: true

We are mainly using the send() method of the ApiTesterActions.
We followed the doc here : https://codeception.com/docs/11-Codecoverage
We also followed the instructions to installed the c3.php file (https://github.com/Codeception/c3)
What are we missing ?
Thanks in advance for your help,
Julien

I think that you missed Remote CodeCoverage reports are not printed to console message at the bottom of your screenshot.
XML and HTML reports are saved to tests/_output directory.
HTML to tests/_output/api.remote.coverage directory,
XML to tests/_output/api.remote.coverage.xml file.
Output could be improve, this result was unexpected to me as well.


feat: flag definitions that are defined but never used

Changes:

added checks for parameters, responses, and other definitions in the components section that are not used in the API definition
updated comments in refs.js
restructured refs.js as needed to support checking components.parameters and components.responses

Tests:

added tests to that ensure that a warning is issued when a response or parameter definition is not used
added tests to ensure a warning is not issued when a response or parameter definition is used

:tada: This PR is included in version 0.22.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Acrotensor integration [dynamic-tensor-dev]

I could use an extra pair of eyes on DiffusionIntegrator::TensorAssembleMatrices.  I think I might be using dof_map improperly here and getting the order wrong.

Closing in favor of occa-acro-dev


Make FactoredMatrix compatible with tensor-like arguments

Description
I'd like to be able to use FactoredMatrix with things that implement the interface of torch.Tensor without subclassing it.  This slight change allows FactoredMatrix to work with such classes rather than returning None in various places.
(I haven't finished the checklists, so creating this draft PR so I don't forget about this)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist:

[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[x] I have not rewritten tests relating to key interfaces which would affect backward compatibility

@JasonGross Do you still have a bit to wrap up on this? If you need any help getting this out the door let me know. If you could add a test for this, that would be greatly appreciated as well.


Sorting Error

What steps will reproduce the problem?
- unzip gtc_to_sort_test.tar.gz in NVIDIA_CUDA_SDK project folder
1. make (~/NVIDIA_CUDA_SDK/projects/gtc_to_sort_test/)
2. execution (~/NVIDIA_CUDA_SDK/bin/linux/release)
(e.g.: ./gtc_sort_test
~/NVIDIA_CUDA_SDK/projects/gtc_to_sort_test/input/1.txt 5 30 32)
3.

What is the expected output?  On what operating system?
GTX280
Ubuntu 8.04
cuda 2.2

Please provide any additional information below.
Sorting error occurs sometimes like the ouput example above.
Besides, the same error occurs in cudpp1.1 and cudpp1.1.1 test program as
well.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 19 Feb 2010 at 7:17
Attachments:

gtc_to_sort_test.tar.gz

Thanks for the report. Can you test with CUDA 2.3 or 3.0?

Original comment by<EMAIL_ADDRESS>on 19 Feb 2010 at 2:27

To test with CUDA 2.3 or 3.0, os upgrade(ubuntu 8.04 -> ubuntu9.04) is needed.
But, I'm not a server administrator.
I can test with CUDA 2.2.

Original comment by<EMAIL_ADDRESS>on 22 Feb 2010 at 5:44

The radix sort you are using is an NVIDIA CUDA SDK sample, not part of CUDPP.
This
sample has been upgraded in the latest SDKs.  I suggest you update to the
latest SDK
and CUDA version to make sure you get all bug fixes.

Since this is not an issue with cudppSort(), I'm going to close this as invalid.

Original comment by<EMAIL_ADDRESS>on 11 Mar 2010 at 3:03

Changed state: Invalid


Performance Check

This reverts commit 0cf0b62274d76d3fa40e2de00eea05c5be95f82b. Let's see whether that one is really the problem.

It seems like something is wrong with a CI preparation step, not the commit.


line 77: extra_args[@]: unbound variable

hello,
I use this script for wasabi. I changed B2_ACCOUNT_ID B2_ACCOUNT_KEY line to :  AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
I get this error:
/bin/restic_backup.sh: line 77: extra_args[@]: unbound variable
Can you help ?

Also:
systemd gives error :  Executable path is not absolute, ignoring: bash -c 'set -o pipefail; ps cax
I added:  ExecStart=/bin/bash -c
it fixed

Hello,
In not at my computer right now, but I Susie to that you need to modify this line in the restic backup script that asserts that all needed variables are set:
https://github.com/erikw/restic-automatic-backup-scheduler/blob/main/bin/restic_backup.sh#L37

Hello,
In not at my computer right now, but I suspect that you need to modify this line in the restic backup script that asserts that all needed variables are set:
https://github.com/erikw/restic-automatic-backup-scheduler/blob/main/bin/restic_backup.sh#L37

yes, I changed that but it gives an error. IDK why.

It's the -u at
https://github.com/erikw/restic-automatic-backup-scheduler/blob/main/bin/restic_backup.sh#L12
that causes "unbound variable", meaning that a variable is being referenced that has not been defined.
It complains at the command starting at line 77
https://github.com/erikw/restic-automatic-backup-scheduler/blob/49cc054eebf12f7aec6d61c5c4cd8c94aef7c90b/bin/restic_backup.sh#L77
May I guess that it could be maybe that $B2_CONNECTIONS is not set? As you are not using B2, this line should be removed.

It's the -u at
https://github.com/erikw/restic-automatic-backup-scheduler/blob/49cc054eebf12f7aec6d61c5c4cd8c94aef7c90b/bin/restic_backup.sh#L12
that causes "unbound variable", meaning that a variable is being referenced that has not been defined.
It complains at the command starting at line 77
https://github.com/erikw/restic-automatic-backup-scheduler/blob/49cc054eebf12f7aec6d61c5c4cd8c94aef7c90b/bin/restic_backup.sh#L77
May I guess that it could be maybe that $B2_CONNECTIONS is not set? As you are not using B2, this line should be removed.

Even If I remove the line:   "--option b2.connections="$B2_CONNECTIONS" \  "
B2_CONNECTIONS is set 10 so it is not empty.
still gives the error.
Also, systemd was not working without the full path of I added: ExecStart=**/bin/**bash -c

Even If I remove the line: "--option b2.connections="$B2_CONNECTIONS" \ "
B2_CONNECTIONS is set 10 so it is not empty.
still gives the error.

All right, we have learned this one was not the problem. There are quite a few variables used in this line. You can figure out which one it is that is not set by e.g. adding set -x at the top of the script, which is the same as running it like
$ source /etc/restic/default.env.sh
$ bash -x /path/to/restic_backup.sh

and inspect the debug output.
Or you can simply inject some echo prints in the script just before the failing line :)

lso, systemd was not working without the full path of I added: ExecStart=**/bin/**bash -c

Interesting. May I ask what Linux dist you are using and the version? I have been using Arch Linux only with this project and for this dist, it works as it currently looks.


Use the layerStatesArray property from the frameState

cc @tsauerwein, @elemoine

Oh yes, this makes sense. Please merge.

Makes sense to me too.


Expose E-Tag header for cross-origin WHEP requests

Add the access-control-expose-headers: E-Tag header to the /whep response to allow access to the E-Tag header when making a cross-origin request.

i added Accept-Patch and Link too and merged, thanks.


Create default database file if one is missing.

If database file is missing for some reason, default one should be created so the program can still run.

Resolved with #20


Test build not working with latest mac build env (big sur + xcode 12.2)

Hi I'm running:
Mac os big sur: 11.0.1
Xcode: 12.2 (12B45b)
cordova: 10.0.0
Followed these steps...
git clone https://github.com/dpa99c/cordova-plugin-firebasex-test.git
cd cordova-plugin-firebasex-test/
cordova platform add ios
cordova build ios
Get the following build error at the very end of the process...
PhaseScriptExecution [CP]\ Copy\ Pods\ Resources /Users/andrew/Library/Developer/Xcode/DerivedData/FirebaseTest-ggrcfbgmmmmvhxatzvufmwwcmmbt/Build/Intermediates.noindex/FirebaseTest.build/Debug-iphonesimulator/FirebaseTest.build/Script-3264597389ED60D8691763F7.sh (in target 'FirebaseTest' from project 'FirebaseTest')
    cd /Users/andrew/Documents/cordova/projects/cordova-plugin-firebasex-test/platforms/ios
    /bin/sh -c /Users/andrew/Library/Developer/Xcode/DerivedData/FirebaseTest-ggrcfbgmmmmvhxatzvufmwwcmmbt/Build/Intermediates.noindex/FirebaseTest.build/Debug-iphonesimulator/FirebaseTest.build/Script-3264597389ED60D8691763F7.sh
/Users/andrew/Documents/cordova/projects/cordova-plugin-firebasex-test/platforms/ios/Pods/FirebaseFirestore/FirebaseFirestore/Resources/gRPCCertificates-Cpp.bundle
error: Resource "/Users/andrew/Library/Developer/Xcode/DerivedData/FirebaseTest-ggrcfbgmmmmvhxatzvufmwwcmmbt/Build/Products/Debug-iphonesimulator/FirebaseInAppMessaging/InAppMessagingDisplayResources.bundle" not found. Run 'pod install' to update the copy resources script.

warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'GoogleUtilitiesLegacy' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'GoogleAnalytics' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'FirebasePerformance' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'GoogleTagManager' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'GoogleSignIn' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'GoogleAppMeasurement' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'FirebaseAnalytics' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'GoogleSymbolUtilities' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'FirebaseCrashlytics' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'nanopb' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'Protobuf' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'GoogleUtilities' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'GoogleTagManager-TagManagerResources' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'GoogleDataTransport' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'GTMAppAuth' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'FirebaseRemoteConfig' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'FirebaseInstanceID' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'FirebaseInstallations' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'FirebaseCoreDiagnostics' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'FirebaseCore' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'FirebaseAuth' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'FirebaseABTesting' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.2.99. (in target 'AppAuth' from project 'Pods')
** BUILD FAILED **

The following build commands failed:
	PhaseScriptExecution [CP]\ Copy\ Pods\ Resources /Users/andrew/Library/Developer/Xcode/DerivedData/FirebaseTest-ggrcfbgmmmmvhxatzvufmwwcmmbt/Build/Intermediates.noindex/FirebaseTest.build/Debug-iphonesimulator/FirebaseTest.build/Script-3264597389ED60D8691763F7.sh
(1 failure)

The error suggests running "pod install" which I then tried and then rebuilt, same error.

Resource "/Users/andrew/Library/Developer/Xcode/DerivedData/FirebaseTest-ggrcfbgmmmmvhxatzvufmwwcmmbt/Build/Products/Debug-iphonesimulator/FirebaseInAppMessaging/InAppMessagingDisplayResources.bundle" not found. Run 'pod install' to update the copy resources script.

Duplicated of #326 - see Cordova CLI builds


fix(ci): prevent audit from running on fork

What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Docs
[ ] New Binding issue #___
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[x] ci

Does this PR introduce a breaking change?

[ ] Yes, and the changes were approved in issue #___
[ ] No

Checklist

[ ] When resolving issues, they are referenced in the PR's title (e.g fix: remove a typo, closes #___, #___)
[ ] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.
[ ] I have added a convincing reason for adding this feature, if necessary

Other information

I don't see why this should be added in here, the fork can just do that in its own repo or disable actions altogether.

I don't see why this should be added in here, the fork can just do that in its own repo or disable actions altogether.

oh, I see, thanks for the reminder.


Mage doesn't support running two servers simultaneously

Describe the bug

When trying to run simultaneously 2 servers
mage start something
using mage start something_else --port 6791 (in another folder) it opens a server on that port but it shows the data of the first server
and the button doesn't work when on different port

To Reproduce
Steps to reproduce the behavior:

Run mage start project_1 in one folder
Run mage start project_2 --port 6791 in another folder
Check whether both servers load pipelines correctly

Expected behavior
Two server should be running correctly at the same time
Additional context
Reported by Stefan Chirus

Running Mage servers with different ports is supported now. You can use <IP_ADDRESS>:port to connect to Mage. https://docs.mage.ai/development/troubleshooting


Add dev report for april 28th

Signed-off-by: Michael Crosby<EMAIL_ADDRESS>

Codecov Report

Merging #784 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #784   +/-   ##
=======================================
  Coverage   62.46%   62.46%
=======================================
  Files           5        5
  Lines         682      682
=======================================
  Hits          426      426
  Misses        160      160
  Partials       96       96

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9a79813...96bf630. Read the comment docs.

LGTM

LGTM


feat(controls): add tooltip property to buttons

Adds tooltip to buttons

@EthanWaite,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Only raise errors if reference data is empty after padding

DRAFT PULL REQUEST: Still requires testing
Description
Raise empty_reference_data error only if padding fails. If padding succeeds, raise warning instead.
Changelog
Itemize code/test/documentation changes and files added/removed.

dynamic.py

Fixes

GS outages: If a signal has an outage for longer than the reference period, then reference_data would be empty and padding would not be done. (Probably an oversight when writing pad_reference_df)

@nmdefries The way this is written:
1: No need to pad - no errors
2: Need to pad, padding succeeds: 1 warning
3: need to pad, padding fails: 1 warning, 1 error
Should there be no warning for # 3?

Should there be no warning for # 3?

Yeah, it makes sense to only raise the error. I think the best way to do so is before padding, save the status of the reference data, like
pre_pad_empty_flag = reference_api_df.empty

and then add another clause to the later if statement with the error, like
        if reference_api_df.empty:
            report.add_raised_error(
                ValidationFailure("empty_reference_data",
                                  checking_date,
                                  geo_type,
                                  signal_type,
                                  "reference data is empty; comparative checks could not "
                                  "be performed"))
            return False
       elif pre_pad_empty_flag:
           report.add_raised_warning(
                ValidationFailure(...)
           )

@qx-teo You should review this as well to check the changes I made.

I looked through them, everything seems fine! The log output also seems to indicate that things are working as intended, so that's good


Building a .deb for ARMv7

I would like to run Facette on my Raspberry Pi 3, which has an ARMv7 processor. Since there's no package available for download, I tried to build it myself. That succeeded without problems. Now, I would prefer to install it using dpkg, to have the right folder structure as well as having Facette start at boot.
At first, I did dpkg-deb --build . which failed because there is no DEBIAN/ subdirectory. So I added a symlink (DEBIAN -> debian) and tried again.
Now it fails with
dpkg-deb: error: parsing file './DEBIAN/control' near line 11:
 missing package name

And I have no idea how to fix this. What is the command that the Facette team uses to build the Debian packages?

See facette/buildenv#2.

Future releases will ship this architecture.


bug: a new "Splash" view appears in gamelist options

hello @fabricecaruso  a small new bug here. A new "splash" view appears in the view style selector in the theme options.

I think this is because I have created a piece of code in theme.xml with .
https://github.com/pajarorrojo/es-theme-PlayStation-X/blob/master/theme.xml#L34
Even so, that view should not appear, just like the screen view does not appear, for example.
To reproduce you can download the last version of the theme playstation-x.
On the other hand, now that we are talking about the list views, would it be possible to hide the basic view of the list, with some theme tag? I'm thinking something like:
<theme defaultTransition="instant" hideView="basic">
Thanks for your work!

I've created this piece of code in theme.xml because inside splash.xml doesn't recognize some ifSubset type filters, basically. In fact, many variables don't work inside splash.xml
I have already realized that simply declaring a view, this appears in the list, but splash is not a view to use, technically it is more like screen or help, it should not appear in the list of available layouts IMHO because is not a layout. I don't see why it has to be a condition that the splash view code can only be written into the splash.xml file (or gamesplash.xml). If I need to create exclusive includes for splash for any reason?.
I'll try deleting all the basic declarations, as you suggest.

The basic view thing worked as you suggested, I always had the belief that it was an essential list for the theme to work well, and conversations with other developers expressed the same feeling about this. Mystery solved. I should have tried before asking...
Regarding the splash issue, sorry but I must insist that I think it is an error that this "not view" appears like an option for gamelist

did you solve it ? I can't see "splash" in your theme recent version.
If you solved it, please close this issue.

I "fixed" it by deleting the view="splash" declarations from the external files to splash.xml, something I already knew. However, this wasn't the intention of this issue. The intention was to be able to declare the splash view outside the file and prevent it from appearing in the game views list as just another view.

Was fixed in my previous commit.


Updated build version for the module

Updated the build # to push a new version to the gallery
major.minor[.build[.revision]]

Looks good to me.


WIP: Render prompt asyncronuosly using zsh-async

#315 already exists for async rendering, Didn't want to mess up @sei40kr work there by pushing into it so made a new PR. To see previous discussion on async see #307 and #315

[x] Loading zsh-async (>= v1.7.0)
[x] API for sections
[ ] API documentation
[ ] Async git section

[ ] async git_branch section
[ ] async git_status section

[ ] Updated testcases

Looks good for a start 👍

Sometimes random numbers popping up on git_status section

These were specifically related to our git_status section and it's indicators.

Untracked files ➜  Exit code of previous command  (image)
Modified unstaged files ➜  Random numbers, Yet to figure out what it is.

Correct behavior on

Stashes
Staged files
Deleted
Rename
Modified + Renamed + Unstaged

Last one was surprise for me and needs for information.

I'm busy with work now. Don't think would be able to get back on this soon. Feel free if someone want to work on this or takeover.

The async worker should be restarted in precmd to refresh the shell environment. Otherwise, new exported environ variables are not available in async job.
https://github.com/robobenklein/zinc/blob/28bea2b33e8fe1fc1319eab3c034f81bec8601b5/zinc_functions/prompt_zinc_setup#L102-L109
# restarts just the worker - in order to update worker with current shell values
function zinc_worker_restart () {
  # _ZINC_DBG_OUT "restarting worker..."
  # async_worker_eval zinc_segment_worker "zinc_reload"
  async_stop_worker zinc_segment_worker
  async_start_worker zinc_segment_worker
  async_register_callback zinc_segment_worker _zinc_segment_async_callback
}

I don't think that's needed, but I can't remember details at the moment - check https://github.com/mafredri/zsh-async/pull/29 and the linked issue to that PR.

@maximbaz Sorry, maybe I didn't make it clear. The async worker doesn't have access to any variables (not only export type) set later after the worker starts up. It will keep using the stale shell environment when it's set up. Besides, some unset variables may be still available in the stale environment. That's the reason we need to restart the async worker at precmd.
async_worker_eval is used to change specific variables manually inside the worker, which is not enough to refresh all the environment variables.

Ah, I see now, thanks! So is the main purpose of restarting worker all the time to allow configuring prompt in runtime (e.g. by executing export SPACESHIP_EXEC_TIME_SHOW=false directly in the terminal), as opposed to restarting the terminal once you made your changes to the config file? It is definitely a valid scenario, I simply want to understand if there's more to it - I don't think prompt cares about any other environment variables, right?

So is the main purpose of restarting worker all the time to allow configuring prompt in runtime ...

@maximbaz No, the main purpose of refreshing environment of the worker is to make the async_jobs (used by async plugins and run by the worker) work properly.
I'll take pyenv, the python version manager, for an example. (The following process applies to rbenv, nodenv as well.) Using pyenv, you can set a specific python version or virtual environment used under the current dir with one of the following methods,

export PYENV_VERSION=<venv-name> manually
Use pyenv local <venv-name> to write <venv-name> in the .python-version file under current working dir

The command pyenv version-name, which is used in the pyenv  plugin, will try to retrieve the current python version from the places above.
If you make the pyenv version-name as an async_job, the plugin doesn't work as expected. Cause the PYENV_VERSION may be stale or not available at all in the worker with a stale shell environment.
I notice there's an async ruby plugin in your fork, you can replace the word pyenv with rbenv in the above words to understand the whole process.

I see, thanks for the explanation!

any update on this PR? Seeing my prompt very slow.

Hey what’s up? Can i be of help to you?
On Sun, May 3, 2020 at 3:21 PM raihan26<EMAIL_ADDRESS>wrote:

any update on this PR? Seeing my prompt very slow.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/denysdovhan/spaceship-prompt/pull/499#issuecomment-623191699,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACHL57DZI7FQSQZBHSGRHL3RPXU5PANCNFSM4FQKPIQA
.

--
Logan Bek
LinkedIn http://www.linkedin.com/in/loganbek
Github https://github.com/loganbek
Come work for the open internet w/ Gitcoin
https://gitcoin.co/townsquare/?cb=ref:e727
<EMAIL_ADDRESS>

I'd rather keep this open if you don't mind, but with corresponding badge.

Sure. I'll leave this PR open and branch unmodified.


GenerateResource w/ ResXFileRef System.IO.MemoryStream, mscorlib, Version=<IP_ADDRESS> fails at runtime

Originally reported here https://github.com/dotnet/coreclr/issues/26472#issuecomment-536176848.  Thanks @koszeggy
Steps to reproduce
Include resources that use ResXFileRef for a MemoryStream with <IP_ADDRESS> assembly identity for mscorlib.
Build.
Access resource at runtime.
Expected  behavior
Resource is returned as UnmanagedMemoryStream.
Actual behavior
Resource is treated as an Activator resource and we attempt to call the a MemoryStream constructor passing in the backing stream, which fails because MemoryStream doesn't have a constructor that takes a stream.
Environment data
dotnet.exe 3.0.100
Bug is here: https://github.com/microsoft/msbuild/commit/edb3be367107d5976dd5a9b30ed067b24f982668#diff-5a51b7df470ec16b6d58bdf7234efefeR85
Here's  a repro: https://github.com/ericstj/repros/tree/master/testMemStreamResXFileRef
/cc @rainersigwald

I could have sworn we discussed this and decide on only 4, but I don't see that discussion, just the mscorlib/System.Private.CoreLib. Perhaps I was just confused. This is similar to what was necessary for string in microsoft/msbuild#4638.
Is checking for <IP_ADDRESS> sufficient, or are there other relevant versions? Looks like string was just 2.
Workaround
Change the resx to MemoryStream version 4, for example:
diff --git a/testMemStreamResXFileRef/Resources.resx b/testMemStreamResXFileRef/Resources.resx
index f4201cc..f7d3df7 100644
--- a/testMemStreamResXFileRef/Resources.resx
+++ b/testMemStreamResXFileRef/Resources.resx
@@ -122,6 +122,6 @@
     <value>test.wav;System.IO.MemoryStream, mscorlib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name="test2.0" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>test.wav;System.IO.MemoryStream, mscorlib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>test.wav;System.IO.MemoryStream, mscorlib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
 </root>
\ No newline at end of file

Looks like this eventually calls Type.GetType https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/Resources/ResXFileRef.cs,289
That appears to be super tolerant of garbage if the assembly name is mscorlib.  All the following work for me:
Type.GetType("System.IO.MemoryStream, mscorlib, Version=5i.300.-2.π, Culture=neutral, PublicKeyToken=0000086753090000")
Type.GetType("System.IO.MemoryStream, mscorlib, Version=never, Culture=nowhere, PublicKeyToken=nobody")
Type.GetType("System.IO.MemoryStream, mscorlib, trash trash, blah blah")
Type.GetType("System.IO.MemoryStream, mscorlib, ............")

Type.GetType("System.IO.MemoryStream, mscorlib,d.dkjfhsahgliofsdty -08u[0ip'fjsdcgv;okhn aWE; YUFGQPOIJH DFSG/LVN'ASSDFAKULGD FLIKJHJDGFKAJHSDL'AH;vrne4oosjh;'lyhkjh;'lskdfgjh;'okshj'pofrijg]sdojf.,fkdf;'.afds./.,/s.fdfdDZlJXJMDA;KOLUIFDUH")

I bet a check of StartsWith would be safe and match what was previously permitted.


oiiotool: --fullsize followed by --attrib could lose the fullsize

The --fullsize wasn't updating the spec properly in both places, and the
subsequent --attrib that re-copies some items from the underlying
ImageBuf's spec into the ImageRec's copy of the spec would overwrite the
previous changes of --fullsize. The --origin code path got it
right. Easy to adjust.

LGTM


Issue with torchao patching with loaded model

Basically, when I quantize a model and patch it to use torchao_int4 ops, it works, but if I then save this model and load it again the patching fails. Am I doing something wrong ? I have been trying to follow the instructions.
This works:
import torch
from hqq.engine.hf import HQQModelForCausalLM, AutoTokenizer

#Model and setttings
model_id      = 'mistralai/Mixtral-8x22B-Instruct-v0.1'
compute_dtype = torch.bfloat16
device        = 'cuda:0'

#Load model on the CPU
######################
model     = HQQModelForCausalLM.from_pretrained(model_id, torch_dtype=compute_dtype)
tokenizer = AutoTokenizer.from_pretrained(model_id)

#Quantize the model
######################
from hqq.core.quantize import *
quant_config = BaseQuantizeConfig(nbits=4, group_size=64)
model.quantize_model(quant_config=quant_config, compute_dtype=compute_dtype, device=device)

#Save the quantized model
model.save_quantized(save_dir="./quantized_mixtral_huge_attempt2/")

#Load from local directory or Hugging Face Hub on a specific device
#model = HQQModelForCausalLM.from_quantized(save_dir_or_hfhub, device='cuda', compute_dtype=torch.bfloat16)

from hqq.utils.patching import prepare_for_inference
prepare_for_inference(model, backend="torchao_int4") #torchao's int4mm kernel, use compute_dtype=bfloat16
#prepare_for_inference(model, backend="marlin", allow_merge=True) #marlin int4 kernel.

model = torch.compile(model, mode='max-autotune')

#Text Generation
prompt = "<s> [INST] How do I build a car? [/INST] "

inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False)
outputs = model.generate(**(inputs.to('cuda')), max_new_tokens=1000)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Output:
Loading checkpoint shards: 100%|██████████| 59/59 [33:36<00:00, 34.18s/it]
100%|██████████| 56/56 [00:01<00:00, 41.41it/s]
100%|██████████| 56/56 [16:14<00:00, 17.40s/it]
Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.
How do I build a car? 1. Gather resources: You will need a variety of tools, materials, and equipment to build a car. This includes a chassis, engine, transmission, suspension, brakes, wheels, tires, body panels, interior components, and electrical systems. You will also need specialized tools such as welding equipment, a lift, and diagnostic tools.

... truncated

However, when I then try to load the quantized and saved model the patching step fails:
import torch
from hqq.engine.hf import HQQModelForCausalLM, AutoTokenizer

model_id      = 'mistralai/Mixtral-8x22B-Instruct-v0.1'
tokenizer = AutoTokenizer.from_pretrained(model_id)

#Load from local directory or Hugging Face Hub on a specific device
model = HQQModelForCausalLM.from_quantized("./quantized_mixtral_huge/", device='cuda', compute_dtype=torch.bfloat16)

from hqq.utils.patching import prepare_for_inference
prepare_for_inference(model, backend="torchao_int4") #torchao's int4mm kernel, use compute_dtype=bfloat16
#prepare_for_inference(model, backend="marlin", allow_merge=True) #marlin int4 kernel.

model = torch.compile(model, mode='max-autotune')

#Text Generation
prompt = "<s> [INST] How do I build a car? [/INST] "

inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False)
outputs = model.generate(**(inputs.to('cuda')), max_new_tokens=1000)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Traceback (most recent call last):
  File "/home/rohitg/vision_llm/scratch/infer_saved_llm.py", line 12, in <module>
    prepare_for_inference(model, backend="torchao_int4") #torchao's int4mm kernel, use compute_dtype=bfloat16
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/c3-0/rohitg/mforge/envs/quantllm/lib/python3.11/site-packages/hqq/utils/patching.py", line 74, in prepare_for_inference
    patch_linearlayers(model, patch_hqq_to_aoint4)
  File "/home/c3-0/rohitg/mforge/envs/quantllm/lib/python3.11/site-packages/hqq/utils/patching.py", line 13, in patch_linearlayers
    model.base_class.patch_linearlayers(model, fct, dict([(k, patch_param) for k in model.base_class.get_linear_tags()]), verbose=verbse)
  File "/home/c3-0/rohitg/mforge/envs/quantllm/lib/python3.11/site-packages/hqq/models/hf/mixtral.py", line 53, in patch_linearlayers
    layers[i].self_attn.q_proj = patch_fct(
                                 ^^^^^^^^^^
  File "/home/c3-0/rohitg/mforge/envs/quantllm/lib/python3.11/site-packages/hqq/backends/torchao.py", line 243, in patch_hqq_to_aoint4
    w_q_config = hqq_layer.quant_config['weight_quant_params']
                 ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^

I see, that's actually a bug, thanks for reporting, I will fix this soon.
Work around, after you load, before you apply the patching, do this:
patch_linearlayers(model, patch_add_quant_config, quant_config))
# where quant_config is the quant config you used to quantize the model

Your quant settings are also not correct to work with that backend, as the documentation says, you need to use axis=1. It will not use the faster backend if you feed it the default axis=0. Try:
quant_config = BaseQuantizeConfig(nbits=4, group_size=64, quant_scale=False, quant_zero=False, axis=1)

Oh thanks for the help !

I think this should fix it: https://github.com/mobiusml/hqq/commit/3a62b11a82f1ab81b3f902a224ac11cdc2cbd1ab
Let me know if you still have the same issue

@mobicham this is tangentially related, but the new quantization config caused the model's size to increase from 73 to 75GB which makes it no longer fit on a single A100, so I was trying to use multiple GPUs. Is that possible to do in HQQ ? I tried passing device_map but it seems unlike the HuggingFace version HQQ doesn't support that.
Traceback (most recent call last):
  File "/home/rohitg/vision_llm/scratch/infer_saved_llm.py", line 11, in <module>
    model = HQQModelForCausalLM.from_quantized("./quantized_mixtral_huge/", device_map='auto', compute_dtype=torch.bfloat16)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: HQQWrapper.from_quantized() got an unexpected keyword argument 'device_map'

Oh I see, because by default it quantizes the meta-data, and the settings I shared turned them off. You have two options:

Option 1: use the native backends in hqq that support all nbits and scale/zero quantization t. Since you are using Mixtral, you can quantize the MoEs to lower bits and fit everything even in a lower-end gpu, try something like this:

axis = 0
attn_params    = BaseQuantizeConfig(nbits=4, group_size=64, axis=axis)
experts_params = BaseQuantizeConfig(nbits=3, group_size=64, axis=axis)

quant_config = {}
#Attention
quant_config['self_attn.q_proj'] = attn_prams
quant_config['self_attn.k_proj'] = attn_prams
quant_config['self_attn.v_proj'] = attn_prams
quant_config['self_attn.o_proj'] = attn_prams
#Experts
quant_config['block_sparse_moe.experts.w1'] = experts_params
quant_config['block_sparse_moe.experts.w2'] = experts_params
quant_config['block_sparse_moe.experts.w3'] = experts_params

from hqq.utils.patching import prepare_for_inference
HQQLinear.set_backend(HQQBackend.ATEN if (axis==0) else HQQBackend.PYTORCH)
prepare_for_inference(model)

With settings like this, you'd expect a drop of about ~1-1.5 point in performance: https://huggingface.co/mobiuslabsgmbh/Mixtral-8x7B-Instruct-v0.1-hf-attn-4bit-moe-3bit-metaoffload-HQQ
Option 2:
Multi-gpu: just pass device=['cuda:0', 'cuda:1'] here:
model.quantize_model(quant_config=quant_config, compute_dtype=compute_dtype, device=['cuda:0', 'cuda:1'])

You can also do it with transformers directly (pip install git+https://github.com/huggingface/transformers.git) for that you need to use HqqConfig as explained here: https://huggingface.co/docs/transformers/main/en/quantization#hqq
I think multi-gpu runtime with the hqq lib is faster than transformers, at least with the models I tried. Let me know !

So question about option 2, can I utilize multi-GPU with quantized weights that have already been saved ?
HQQModelForCausalLM.from_quantized(device=['cuda:0', 'cuda:1'])
results in errors:
  File "/home/rohitg/vision_llm/scratch/infer_saved_llm.py", line 11, in <module>
    model = HQQModelForCausalLM.from_quantized("./quantized_mixtral_huge/", device=['cuda:0', 'cuda:1'], compute_dtype=torch.bfloat16)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/c3-0/rohitg/mforge/envs/quantllm/lib/python3.11/site-packages/hqq/engine/base.py", line 86, in from_quantized
    model = cls._get_hqq_class(arch_key).from_quantized(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/c3-0/rohitg/mforge/envs/quantllm/lib/python3.11/site-packages/hqq/models/base.py", line 469, in from_quantized
    cls.patch_model(
  File "/home/c3-0/rohitg/mforge/envs/quantllm/lib/python3.11/site-packages/hqq/models/base.py", line 185, in patch_model
    cls.patch_nonlinearlayers(model, patch_nonlinear_fct, verbose=verbose)
  File "/home/c3-0/rohitg/mforge/envs/quantllm/lib/python3.11/site-packages/hqq/models/hf/mixtral.py", line 26, in patch_nonlinearlayers
    model.lm_head = patch_fct(model.lm_head)  ###
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/c3-0/rohitg/mforge/envs/quantllm/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/c3-0/rohitg/mforge/envs/quantllm/lib/python3.11/site-packages/hqq/models/base.py", line 459, in _load_module
    state_dict[key].to(
TypeError: to() received an invalid combination of arguments - got (non_blocking=bool, dtype=torch.dtype, device=list, ), but expected one of:
 * (torch.device device, torch.dtype dtype, bool non_blocking, bool copy, *, torch.memory_format memory_format)
 * (torch.dtype dtype, bool non_blocking, bool copy, *, torch.memory_format memory_format)
 * (Tensor tensor, bool non_blocking, bool copy, *, torch.memory_format memory_format)```

@rohit-gupta multi-gpu was only implemented for the quantization call. Let me see how to add that to the from_quantized call.

@rohit-gupta I created a separate issue for this since it's not related to the original thread: https://github.com/mobiusml/hqq/issues/71 . I will give it a try tomorrow.


nixos/dhcpcd: don't assert for hardened malloc, use scudo instead

Motivation for this change
https://github.com/NixOS/nixpkgs/pull/151795 broke the hardened test (see https://github.com/NixOS/nixpkgs/issues/151696#issuecomment-1025183261). not sure this is a good solution, but it is a solution. the hardened test still fails with this applied, but apparently not due to dhcpcd:
machine: must succeed: su -l alice -c 'nix ping-store'
machine # [   22.382193] su[973]: Successful su for alice by root
machine # [   22.391510] su[973]: pam_unix(su:session): session opened for user alice(uid=1000) by (uid=0)
machine # warning: 'ping-store' is a deprecated alias for 'store ping'
machine # error: experimental Nix feature 'nix-command' is disabled; use '--extra-experimental-features nix-command' to override
machine # [   22.521474] su[973]: pam_unix(su:session): session closed for user alice
machine: output:
Test "nix-daemon cannot be used by all users" failed with error: "command `su -l alice -c 'nix ping-store'` failed (exit code 1)"
cleanup
kill machine (pid 8)
machine # qemu-system-x86_64: terminating on signal 15 from pid 6 (/nix/store/i6vabb4div9iy6lsl642d86k1q8riasn-python3-3.9.9/bin/python3.9)
(finished: cleanup, in 0.10 seconds)
kill vlan (pid 7)

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

I don't think it's your problem but nixosTests.hardened is currently failing for me with
Test "nix-daemon cannot be used by all users" failed with error: "command `su -l alice -c 'nix ping-store'` failed (exit code 1)"

at least we can now see that failure though.

yeah, that's the test failure noted up top. looks like the test doesn't like nix >=2.4.

Yes I should read things...

to be clear: we're very unsure this is the right solution. other memory allocators are also broken, so falling back to scudo can still cause some systems to fail to build. the mechanism by which this overrides the malloc implementation is also pretty ad-hoc and should probably be formalized somewhat, but no idea how that would even look (just adding it as an option to systemd.services probably won't be a good idea, since client utilities may also fail with overriden malloc, or fail differently)

Perhaps we could do with an environment variable that causes /etc/ld-nix.so.preload to be ignored. It would probably also need to be considered "unsafe" and ignored for setuid binaries.

@pennae Do you know if this is still relevant?


iPhone 12 Pro unexpected heating up on DM prompts

Sometimes when using the messaging function on the app, my phone starts to become inexplicibly warm, sometimes starting to get incredibly hot. Seemed to take me a good 10-15 minutes before my phone started heating up for some reason.
Repo steps:
Open a DM between someone
Wait for an amount of time (I had it happen after 10-15 minutes, not sure if it varies depending on phone)
You'll feel phone start to warm up because of exessive resource usage.

Hello @dev-sda1 and thanks a lot for your bug report! I realised that I made a very dumb mistake with the way we handle push events from the server. It should be fixed now, can you reload the app twice (to download the last javascript payload and execute it) and tell us if you're still experiencing this issue?
Thanks again and have a great day!

Seems to all be good now. Thanks!


create pre-populated feedback link in data

to help facilitate an easy way to let the Plazi team now about suspicious names or other data associated with HMW, suggest to include feedback link in the data.
The feedback link should prepopulate a github issue with the following elements:

doc uuid
name
placeholder text to describe desired behavior

for example, see https://github.com/plazi/treatments-xml/issues/7


[CELEBORN-338] Clean duplicated exception message of handling push data

What changes were proposed in this pull request?
In the current ShuffleClientImple code, the delivery of exceptions is messy, repetitive, and redundant.
In this pr, do below things:

Keep passing RuntimeException from TransportResponseHandler to wrappedCallback.onFailure
In the ShuffleClientImpl side, we only pass CelebornIOException with a message only contain cause name to wrappedCallback.onFailure
Only add detail info of pushing data into the final exception of pushState
Keep error stack of ShuffleClientImpl side exception
PushDataHandler side failure only pass StatusCode too since Client-side exception log contains all push info

Why are the changes needed?
Does this PR introduce any user-facing change?
How was this patch tested?

ping @FMX @waitinfuture @pan3793


Debugger Problems

It looks like the recent changes broke the debugger.
$ python debugger.py load_store.asm
Traceback (most recent call last):
File "debugger.py", line 602, in
s = sim6502(object_code,symbols=symbol_table)
File "/Users/dj/Documents/src/py6502/src/sim6502.py", line 30, in init
self.memory_map.InitializeMemory(address, object_code)
File "/Users/dj/Documents/src/py6502/src/memory_map.py", line 51, in InitializeMemory
raise ValueError
ValueError
memory_map.py at line 51 is checking that there are no out of range memory values (0-255), but the object_code object passed from sim6502.py contains uninitialized memory (-1) as it should.
Turning off that check we get.
$ python debugger.py load_store.asm
Traceback (most recent call last):
File "debugger.py", line 605, in
dis = dis6502(s.object_code,symbols=symbol_table)
AttributeError: 'sim6502' object has no attribute 'object_code'
$
sim6502.py takes in object_code as a parameter but doesn't assign it to self.object_code.
Fixing that by having debugger.py refer to object_code rather than s.object_code we get..
A) The reset vector isn't followed. To reproduce
$ python debugger.py load_store.asm
Type 'R' to reset. Observe that the reset vector is 0x100
Type 's' to step one instruction, which should follow the reset vector. It does not.
B) It crashes when it reaches a real instruction
Keep typing 's' until you reach PC=0x100 and this happens..
$ python debugger.py load_store.asm
Traceback (most recent call last):
File "debugger.py", line 608, in
d = dbg6502(object_code,symbol_table)
File "debugger.py", line 485, in dbg6502
draw_disassembly_inner_view(vptu_disassembly_inner,object_code)
File "debugger.py", line 250, in draw_disassembly_inner_view
vptu.addstr(x=0,y=i,thestring=linelist[i],bold=False)
File "/Users/dj/Documents/src/py6502/src/termbox_util.py", line 224, in addstr
self.tb.change_cell(x+i, y, ord(thestring[i]), self.fg,self.bg)
TypeError: ord() expected a character, but string of length 34 found
Which I don't understand yet. It's looks like termbox_util is being sent a list of strings from the debugger rather than a string.

Added a log of what string was being passed to line 224 of termbox_util and got this.
$ tail py6502_debugger.log
DEBUG:root:           00ff 00       DW  $00
DEBUG:root:           00ff 00       DW  $00
DEBUG:root:           00ff 00       DW  $00
DEBUG:root:           00ff 00       DW  $00
DEBUG:root:           00ff 00       DW  $00
DEBUG:root:           00ff 00       DW  $00
DEBUG:root:           00ff 00       DW  $00
DEBUG:root:           00ff 00       DW  $00
DEBUG:root:           00ff 00       DW  $00
DEBUG:root:('start:     0100 a9 aa    lda  #$aa', 2)
That '2' shouldn't be there.

Fixes were submitted.


ImpersonateUser/rev2self and SMB Pivoting

ImpersonateUser/rev2self and SMB Pivoting
If you add those couple of things, your C2 will be gold in addition to the teamserver you are already building.
Also visualization of pivots would be also a nice addition. :)
Not sure if  you can do the impersonation, i assume you can if you have privileges to inject on different process but it wont be possible to rev2self i assume right?
Awesome work till now man. I will start testing it around.
P.S Mark as enhancement.

Along side the team server I'm also working on token abuse, then you will be able to steal tokens from processes and ret2self. SMB and RPC pivots are in the pipeline.
Also yes your right, its not really possible to ret2self when migrating a process, because if you migrate to a process with lower privilages than yours its not possible to migrate back.
Visualization of pivots is also a good idea, I will keep it in mind when building the GUI.
I'm gonna close this issue cause there is a lot of different things here, but I do plan on implementing all of them thanks.