Installation instructions need to be updated

When I try go get github.com/lunixbochs/vtclean/vtclean
I get:
go get: installing executables with 'go get' in module mode is deprecated.
	Use 'go install pkg@version' instead.
	See 'go help get' and 'go help install' for more information.

using a recent go: go version devel +f3ce010b33 Thu Nov 19 21:51:34 2020 +0000 darwin/arm64
As a workaround I found an older version of go on another machine go version go1.15.5 darwin/amd64
and it worked great for my one-off task.
I'm not a go user, so this is all I can share..

I get:
$ go install github.com/lunixbochs/vtclean/vtclean
no required module provides package github.com/lunixbochs/vtclean/vtclean: working directory is not part of a module

Sorry looks like github censored my command as an email address, because I sent it over email.
Try this: go install<EMAIL_ADDRESS>

Interesting, I didn't know they did that.
Yes, that works. Sending PR.
Thanks!


About classification modelnet40_normal？

Traceback (most recent call last):
File "main_normal.py", line 208, in
train(args, io)
File "main_normal.py", line 46, in train
train_loader = DataLoader(ModelNetNormal(args.num_points, partition='train'),
File "/opt/data/private/swz/CurveNet-main/core/data.py", line 140, in init
self.data, self.label = load_data_normal(partition)
File "/opt/data/private/swz/CurveNet-main/core/data.py", line 51, in load_data_normal
f = h5py.File(os.path.join(DATA_DIR, 'modelnet40_normal', 'normal_%s.h5'%partition), 'r+')
File "/root/anaconda3/envs/pytorch_swz/lib/python3.8/site-packages/h5py/_hl/files.py", line 442, in init
fid = make_fid(name, mode, userblock_size,
File "/root/anaconda3/envs/pytorch_swz/lib/python3.8/site-packages/h5py/_hl/files.py", line 197, in make_fid
fid = h5f.open(name, h5f.ACC_RDWR, fapl=fapl)
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py/h5f.pyx", line 96, in h5py.h5f.open
FileNotFoundError: [Errno 2] Unable to open file (unable to open file: name = '../data/modelnet40_normal/normal_train.h5', errno = 2, error message = 'No such file or directory', flags = 1, o_flags = 2)

Hi, can you please double check the modelnet40_normal data is indeed at the right place? i.e. '../data/modelnet40_normal/normal_train.h5' ?

modelnet40_normal 这是数据集是哪个，我看modelnet40_ply_hdf5_2048 没有啊。

Yes, we processed the ModelNet40 normal datasets ourselves, please refer to this section in README for details and downloads.

ok。thanks


[Request] Add a procedure to concatenate secrets

Description
Add a procedure that concatenates two secrets. Specifically, the functionality requested is this one: https://doc.rust-lang.org/std/primitive.slice.html#method.concat
Motivation
We need this for the ECDH-1PU algorithm that concatenates the secrets generated from two Diffie-Hellman procedures: https://github.com/iotaledger/identity.rs/blob/dd55652ccec75cbe3f095b162e83e8efec6b08ec/libjose/src/jwe/encoder.rs#L701.
See also the relevant section from the RFC: https://datatracker.ietf.org/doc/html/draft-madden-jose-ecdh-1pu-04#section-2.3
Requirements
Write a list of what you want this feature to do.

concatenate two secrets

Open questions (optional)
n/a
Are you planning to do it yourself in a pull request?
I'm open to it, just let me know.

Hey @PhilippGackstatter, I think this Issue has been resolved by 354. May you confirm?

Unfortunately not. The ConcatKdf does something different. This issue really just needs to expose the concat method on slices as a procedure.


185 adding qrcodemonkey

I have added the QRcode monkey tool and updated the Pngegg tools logo.

Hey @Rico-Smit, thank you for your contribution. There is currently a conflict with the tools.json file. Let me know if you need any assistance in resolving the conflict. Thanks!

Hey @Rico-Smit, thank you for your contribution. There is currently a conflict with the tools.json file. Let me know if you need any assistance in resolving the conflict. Thanks!

Heya! I made a video of how you would go about fixing something like this and used your pull request as a demo :) Hope that is OK with you. :+1:

Hey @Rico-Smit, thank you for your contribution. There is currently a conflict with the tools.json file. Let me know if you need any assistance in resolving the conflict. Thanks!

Heya! I made a video of how you would go about fixing something like this and used your pull request as a demo :) Hope that is OK with you. :+1:

Yeah, no problem at all. Please post the link in our community discord 😁


Cosine Similarity for rows of two 3D tnsors

Hi,
Let's say I have two tensors(let's name them A and B) by size of None,10,200 and I want to get the cosine similarity of corresponding rows of these two tensors and get a None, 10 tensor.
What do you suggest me to do? The merge function gives me a single number and I couldn't run merge function through the Timedistributed function.
Anybody had the same situation?
What do you suggest me to do?
I appreciate any help. Thanks.

I had to write a Lambda function to normalize a vector and after normalization using TimeDistributed, I used the dot product to compute the cosine similarity. I couldn't find a way to do the job directly by using merge with mode = cos.


Update easy-rsa to 3.0.5

easy-rsa 3.0.4 -> 3.0.5

Did you test? 😉

looks like file name have changed over time... u need to has the -nix suffix
https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.5/EasyRSA-nix-3.0.5.tgz

LGTM 👍


roc test crashes with 'Symbol 16.IdentId(12) is not defined in environment {}'

Was working on something and came across the IdentId is not defined bug. I think this is a known issue, however logging here as it seems like a small reproduction which may be useful.
chompUntil : U8 -> (List U8 -> Result {val : List U8, input : List U8} [NotFound])
chompUntil = \target ->
    \input ->
        check = \x -> Bool.isEq target x
        when List.findFirstIndex input check is
            Err _ -> Err NotFound
            Ok index ->
                val = List.sublist input {start : 0, len : index }
                Ok {val, input : List.drop input index}

expect
    chomper = chompUntil '\n'
    input = "# H\nR" |> Str.toUtf8
    result = chomper input
    result == Ok {val : ['#', ' ', 'H'], input : ['R']} ## Doesn't crash for `chomper input == Ok {val : ['#', ' ', 'H'], input : ['R']}`

luke@Lukes-MacBook-Air roc-cmark % roc test Cmark.roc
thread 'main' panicked at 'Symbol `16.IdentId(12)` is not defined in environment {}', crates/compiler/alias_analysis/src/lib.rs:664:21
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Note this doesn't crash if the expect is changed to the following.
expect
    chomper = chompUntil '\n'
    input = "# H\nR" |> Str.toUtf8
    chomper input == Ok {val : ['#', ' ', 'H'], input : ['R']}

Interesting, seems to be a test specific issue

Minimal reproducer is
interface Test exposes [] imports []

go : {} -> Bool
go = \{} -> Bool.true

expect
    input = {}
    x = go input
    x

ircheck catches the problem
---- issue_4705 stdout ----
thread 'issue_4705' panicked at 'IR problems found:
── SYMBOL NOT DEFINED ──────────────────────────────────────────────────────────

in 3 : () -> {} (no niche)

0│  procedure `Test.3` ():
1│>     let `Test.x` : Int1 = CallByName `Test.go` `Test.input`;
2│      let `Test.input` : {} = Struct {};

Test.input not found in the present scope

The whole block is
procedure : `Test.3` {}
procedure = `Test.3` ():
    let `Test.x` : Int1 = CallByName `Test.go` `Test.input`;
    let `Test.input` : {} = Struct {};
    expect `Test.x`;
    let `Test.5` : {} = Struct {};
    ret `Test.5`;

so the ordering of defs in the expect block seems to be wrong!

Thabk you @ayazhafiz this will make it much nicer for testing.


How to get clients in a room when the users are on different servers

I tried this code and it works if the users are on the same server.
      io.sockets.adapter.clients([room], function(err, clients){
        console.log("total clients in room: %d", clients.length);
      });

But it does not work when the users are on different servers but in the same room.

same problem here

PRs welcome for this

I've taken a stab at an implementation of this (and all other cases where remote nodes are involved) in case anyone's interested: https://github.com/mother/socket.io-adapter-mongo. I was originally intending to submit a PR or fork from this repo, but decided to do a clean rewrite using ES6 classes and without the use of mubsub.

@asabhaney Would you be interesting in taking ownership of this module? I'm no longer with the company where I was using this module and would be happy to transfer it to someone who is using it on an ongoing basis.

Sorry for the delayed response @lklepner. Sure sounds good. Not sure how long we will be using it either, but for now we are using it in production in a clustered environment so will keep maintaining it for the foreseeable future.


split ha repos from el9 rhui config

Making the el9 RHUI config multi-arch has one issue, which is that the HA repos are x86-only. After consulting with RH, we decided to split the HA repos out to their own package, and install it only on x86 images at image build time.

/lgtm


Various minor trait improvements

lower bounds on trait definition, i.e. super traits
use super traits for associated types
use traits from where clauses and their super traits for method resolution
lower fn-like paths (i.e. Fn(X, Y) -> Z)
pass the environment to Chalk in the correct way to make elaboration work, i.e. inferring things like T: Clone from T: Copy. The clauses need to be wrapped in FromEnv clauses for that to work, which I didn't do before.
add some tests for closure inference already

bors r+


Budget allocation and optimal point estimations

Hello team!
Context
As marketers, we're perpetually hunting for ways to amp up the effectiveness of the campaigns we churn out regularly.
Hence, possessing reliable methods to allocate our budget efficiently—wherein we maximize our outcomes—is paramount in ensuring the success of our marketing investments.
Competitors
Other tools like Robyn and Lightweight MMM offer features to create budget allocation aimed at maximizing the target. This highlights the importance it holds within the community.
Goal
Integrating a budget allocator function within PyMC-Marketing that allows users to conveniently select a budget and allocate their resources to those channels that maximize the value of their target variable.
Secondary goals (Value proposition)

Including optional variables that allow the use of business rules within the budget optimizer, so users can tinker more freely and optimize the variable based on their own conceptions (Priors).
Incorporating additional information that allows users to better understand where they should not be overspending, and where their spend start to diminish.
Add uncertainty around the curves.

Hypotesis
As we are dealing with diminishing return curves, which have a sigmoidal shape, meaning, as x becomes excessively positive (approaching infinity), the sigmoid function approaches its upper limit. Based on my interpretation of the logistic_saturation function on mmm/transformers.py.
We should find different sections on the curve:

One where our curve increase and gets more results, even if those results are just a few on absolute numbers.
Other where our curve increases very slowly and gets a lot of results on absolute numbers, but at a higher cost.

These two sections of the curve would be divided by the elbow, basically where our curve changes direction and starts to be flatted.

Solution
If we know the function that defines the curve of our data, we can project it to discern which channels have the most potential for development according to our model and which do not. This empowers the budget allocator to distribute our resources non-linearly, based on the data.
Example output:

Work.
To achieve our goal, the first step was to find a function that could interpret the points in a coherent manner. Using the original function was challenging due to its scaled nature, and it operates with values and parameters between 0 and 1, which are difficult to retrieve after the model is trained.
I chose the function of Michael Mentes, which is expressed as follows:
y = L * x / K + x

where:

L is the maximum value the curve approaches as x goes to infinity (akin to the saturation level).
k is the x value when the function reaches half its maximum value. This can be thought of as a measure of the steepness of the curve or the position of the "elbow".

How look like?

When k=0.5, the curve saturates quickly and then plateaus. This is because the "elbow" is closer to the y-axis.
As k increases, the curve starts to look more like an linear curve, with the elbow moving closer to the x-axis.
ps: This given the same value for L

How do these changes affect the current curve fitting?
Since we now have a quadratic function, at times the model tends to believe that after passing the maximum point, any additional input will yield negative returns. This is indeed true when discussing marginal returns, but in this case, our curve is dealing with absolute values.
Example 1: Current fit

Example 2: Modify fit (Michael Mentes)

Great to hear your opinions here: @ricardoV94 @juanitorduz
Questions

First of all, I would like to get your feedback on the reasoning and logic behind, it and if makes sense to you to move in this direction with PyMC-Marketing. Based on my experience, makes a lot of sense but I could be biased.
Even when we use our model to fit the data into a logistic (sigmoid) function, within the response curve plots, we make use of a quadratic (polynomial) fit. Given by default on Seaborn. Why?

Help

Unit tests, I already build some but I'm not so familiarized. It would be amazing if you could check the functions built and validate are working as expected.

Important
This PR is a synthesis of the one previously opened here. The idea is to take all the feedback received earlier to create this cleaner and more succinct draft for new contributors. I hope you find it appropriate. I'm also open to suggestions.
I still need to run this on some notebooks to ensure that the results are coherent. Although everything has worked as custom functions in my test notebook, I must try installing this version of the PR.
Code snippet
#Estimate your curve (Michaelis Menten)
parameters = mmm.compute_channel_estimate_points_original_scale()

#Budget allocation based on the estimations
mmm.budget_allocation(
    total_budget=5,
    parameters = parameters,
    budget_bounds = {'x1':[1,30],
                     'x2':[1,60]
                     }
)

#Check the curve
mmm.plot_direct_contribution_curves(show_estimations=True)

Example notebook
Google Colab: #329 PR
cc: @juanitorduz @ricardoV94 @twiecki @cluhmann

:books: Documentation preview :books:: https://pymc-marketing--329.org.readthedocs.build/en/329/

@cetagostini Would you mind sharing an example code of how this will be used in our example? You can assume the mmm object is already fitted. Thank would help the review.
I want to run:
mmm.budget_allocation(
    total_budget=1000,
)

and I get the (expected error)
TypeError                                 Traceback (most recent call last)
Cell In[43], line 1
----> 1 mmm.budget_allocation(
      2     total_budget=1000,
      3 )

TypeError: BaseMMM.budget_allocation() missing 2 required positional arguments: 'parameters' and 'budget_bounds'

So a reproducible code snipped will help the review :)

@juanitorduz Again, thank you very much for your review!
Before sharing, I did a small verification and found a couple of issues to be corrected. It took me a bit longer, but here is the snippet and a small Colab to check the results, so you can play with it.
Code snippet
#Estimate your curve (Michaelis Menten)
parameters = mmm.compute_channel_estimate_points_original_scale()

#Budget allocation based on the estimations
mmm.budget_allocation(
    total_budget=5,
    parameters = parameters,
    budget_bounds = {'x1':[1,30],
                     'x2':[1,60]
                     }
)

#Check the curve
mmm.plot_direct_contribution_curves(show_estimations=True)

Example notebook
Google Colab: #329 PR

All changes already done!

@cetagostini I also suggest opening a followup PR where we load the mmm model from the example (we can use the model builder here) to run an explain this optimization procedure.

Hey @juanitorduz
I apply all the changes you mention, and additionally create a new PR with the documentation here.
Relevant changes
1 - Adding custom saturation method:
I made some important changes, the first and most important is that I added a new function inside the PR. The idea is that now users can choose the method to fit their curve, not only michaelis-menten but also sigmoid. For this use the native function of the model with a little adjustment.
$$
\frac{\alpha - \alpha \cdot \exp(-\lambda x)}{1 + \exp(-\lambda x)}
$$
Where:

α (Alpha): Represents the Asymptotic Maximum or Ceiling Value. It is the value the function approaches as the input x becomes large.
λ (Lambda): Affects the steepness of the curve. A higher value of λ makes the curve steeper, while a lower value makes it more gradual.

Why modify the function and add the alpha parameter?
Right now, since most of the process requires understanding the maximum points of the curve and the inflection points, adding it made me more scalable, without requiring so many changes, because now both functions will be estimated with two parameters. Additionally, I think that having a cealing parameter also makes the function somewhat more interpretable, personal opinion.
By the way, and I think we can debate, doing tests I think it would even be good to estimate it directly with the base model. We could have the model with two saturation functions, which could be estimated and chosen by the user. Each one with its pros and cons (But this is the subject of another PR).
Why not use the internal functions of PyMC?
I was playing around with this idea for a while but I didn't get a satisfactory fit. Even passing the base parameters of the model. Also as I mentioned previously, even trying to move forward with this idea, use the function due to the difference in parameters would have required more code lines.
lam = float(mmm.fit_result['lam'].sel(channel='tiktok_cost_android').mean())
beta = float(mmm.fit_result['beta_channel'].sel(channel='tiktok_cost_android').mean())
alpha = float(mmm.fit_result['alpha'].sel(channel='tiktok_cost_android').mean())

print(beta,lam, alpha)

def max_abs_scaler_factor(x):
    return np.max(np.abs(x))

x = df['tiktok_cost_android'].to_numpy()
y = channel_contributions.sel(channel='tiktok_cost_android').to_numpy()

factor_x = max_abs_scaler_factor(x)
factor_y = max_abs_scaler_factor(y)

x_range = np.linspace(min(x), max(x), 100)

y_saturated = logistic_saturation(
    x=(x_range / factor_x),
    lam=lam
).eval()

plt.scatter(x, y,)
plt.plot(x_range , y_adstock_saturated * factor_y, #re-scaling based on the `y`
linestyle='-')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Fitting Curve')
plt.show()

2 - Adding plot method to compare budget recommendations:
Basically, based on the recommended budget, create a method to be able to compare the initial scenario with respect to the new ones proposed, allowing you to see the differences.
Here is an small snippet but you can see more on the other PR inside of the example notebook.
figure_ = mmm.plot_budget_scenearios(base_data=initial_scenario, method='sigmoid', scenarios_data=[result_sigmoid])

As you can see there are some shaded sections inside the plot, basically I'm looking to add the intervals of the curve using the 0.05 and 0.95 quantiles of our posterior. Meaning, the shaded areas represent the maximum expected contribution, the minimum, and the expected average.
3 - Adding intervals on the method plot_direct_contribution_curves:
Now we can see the intervals, again based on the quantiles and the selected fit (Sigmoid or Menten) in addition to the estimate of the alpha (Ceiling) parameter for both functions.
sigmoid_response_curve_fig = mmm.plot_direct_contribution_curves(
show_fit = True, method='michaelis-menten'
)

I would think that with this we are closer to leaving. However, you may be leaving something in the dark regarding hints or unit tests. For which I ask you for help if you consider a function that we should test correctly and you do not see it there in the tests.
I hope for your always appreciated feedback! 🚀

Small changes

New docstrings added to secondary support functions.
The error in the unit test was solved (Apparently). Still, I believe the unit test could be basic and need a more sophisticated approach to cover the majority of the cases, a hand here would be nice.
Adjust the plot to avoid warning of redundant parameters.

To be defined

Scaled X data: Right now I'm using the parameter self.X to perform the fit according to the determined function, the same parameter is used later inside the budget allocation functions, this means that the user would have to pass the scaled budget bounds, and the results of the optimal budget would also be scaled each one to its respective factor according to the channel.

Easy fix: Replace self.X with the unprocessed X data.
Less easy: Use the internal scaler parameter to unscale the data and return the results to the original scale.

PS: I'm not sure if this was always the case, I think in earlier versions the direct response curves were shown in the original scale. I haven't checked with previous versions, but we should keep an eye on it.

Unit test from utils working. Still, debugging is needed on the budget optimizer unit test.

The lint problem has nothing to do with your code. Is probably and update in mypy, see https://github.com/pymc-labs/pymc-marketing/pull/376/commits/dba627882c70ae5c4c3535f7057073d5ff8734a4

Budget optimizer unit test:

Tests and lint is 🟢 ! Yay! I will take a look in the upcoming days :)

Can we merge?

Can we merge?

I think we are set. Not sure if the team has other questions @twiecki
From my side:

We have already all checks except codecov. Still, I added a few new unit tests to improve and increase the target.
The branch is updated up to September 19th.
I ran a test on the current notebook using my branch and everything works properly (Test here).
I ran a test on the new example notebook for budget allocation and it works as well (Test here)

I added some flexibility to the curve_fit functions to give users the possibility to use them outside of the mmm class. This also gives the chance to handle non-fit errors given by the optimizer.
The pre-commit looks correct when I test it locally:

The error given now by docs/readthedocs.org:pymc-marketing is related to the Numpy new version, but I assume this should be solved from the GitHub config checks. Right?
Wait for your feedback!
cc: @ricardoV94 @juanitorduz

Can we add a warning saying that this feature is experimental? What do you think ?

Can we add a warning saying that this feature is experimental? What do you think ?

Sure, where do you think can we added? Notebook? @juanitorduz

Can we add a warning saying that this feature is experimental? What do you think ?

Sure, where do you think can we added? Notebook? @juanitorduz

Sorry for the late reply 🙈 ! What about the public methods regarding optimization in pymc_marketing/mmm/base.py?

I added an alert to the docstrings located under base.py. It is okay? @juanitorduz

I added an alert to the docstrings located under base.py. For each new function, It is okay? @juanitorduz

Thank you @cetagostini ! In addition, we can add a warning in the code itself as:
import warnings

...

warnings.warn("This budget allocator method is experimental", UserWarning)

After that we can merge from my side :)

Yes, we should merge this.

Incredible contribution @cetagostini!

Hey guys! Didn't have the time to reply properly a few days ago, just wan to highlight a few things.

Really thank you for the support, I'm thrilled to see the merge finally happening 🙌🏻 I'm quite inspired by this momentum, and I'll surely try to help with the other issues that are now active, since this one is closed.
A great mention to @juanitorduz without all the time he dedicated and helped me get this PR forward, I would surely have stayed halfway. A great source of inspiration in the community, as well a great person to debate and share ideas reliably in the community.

ps: I'll probably be doing a little self-promotion this week to invite users to test.
Go PyMC-Marketing 🚀


Updated author to be the default info email address for Vue Vixens. F…

…ixes Issue #69

the source branch for this PR has been deleted, as someone else will be rebuilding this PR. Thanks for your attention here @ratracegrad ❤


ARM Runners December 2024

Feature request
Github Actions will publish ARM Runners in GITHUB.
Totally free December 2024:
https://github.blog/news-insights/product-news/arm64-on-github-actions-powering-faster-more-efficient-build-systems/
https://github.blog/changelog/2024-09-03-github-actions-arm64-linux-and-windows-runners-are-now-generally-available/
taking account this for next dockers and the future of computation:
https://wccftech.com/nvidia-x-mediatek-ai-pc-soc-debut-second-half-2025/
Motivation
Compatible library with arm device like grace and jetson agx orin
Your contribution
loading

We'll track the aarch64 build here: #1437.


The llama-cpp-python installed using the following method cannot find llama.dll, but the actual llama.dll exists.

installation method：
https://github.com/lperezmo/clblast-llama-cpp-python
Download llama_cpp_python：

error:
Traceback (most recent call last):
File "d:\python\Lib\site-packages\llama_cpp\llama_cpp.py", line 72, in _load_shared_library
return ctypes.CDLL(str(lib_path), **cdll_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python\Lib\ctypes_init.py", line 376, in init
self._handle = _dlopen(self._name, mode)
^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: Could not find module 'd:\python\Lib\site-packages\llama_cpp\llama.dll' (or one of its dependencies). Try using the full path with constructor syntax.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "d:\python\Lib\site-packages\llama_cpp\llama_cpp.py", line 86, in
_lib = _load_shared_library(_lib_base_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "d:\python\Lib\site-packages\llama_cpp\llama_cpp.py", line 75, in _load_shared_library
raise RuntimeError(f"Failed to load shared library '{_lib_path}': {e}")
RuntimeError: Failed to load shared library 'd:\python\Lib\site-packages\llama_cpp\llama.dll': Could not find module 'd:\python\Lib\site-packages\llama_cpp\llama.dll' (or one of its dependencies). Try using the full path with constructor syntax.

@jreves that's correct, it's likely a dependency. If you check out llama_cpp.py line 58 actually adds the CUDA_PATH as a dll search directory, not sure if AMD has a similar common path variable but would be happy to add it if it helps.

@abetlen , yes there's a similar path for HIP installs on native Windows. The HIP directory is available as %HIP_PATH%, and the libraries are in %HIP_PATH$lib. The utilities - including the clang and clang++ compilers are in %HIP_PATH%bin.
%HIP_PATH% references the specific version as a part of the directory structure, so on my system - for example - %HIP_PATH$ expands to C:\Program Files\AMD\ROCm\5.5.  The hipblas.dll file is in the bin directory.
There's a useful utility in the bin directory, as well: hipinfo.exe.  Here's an example of the output:
c:\Program Files\AMD\ROCm\5.5\bin>hipinfo

device#                           0
Name:                             AMD Radeon RX 6900 XT
pciBusID:                         47
pciDeviceID:                      0
pciDomainID:                      0
multiProcessorCount:              40
maxThreadsPerMultiProcessor:      2048
isMultiGpuBoard:                  0
clockRate:                        2105 Mhz
memoryClockRate:                  1000 Mhz
memoryBusWidth:                   0
totalGlobalMem:                   15.98 GB
totalConstMem:<PHONE_NUMBER>
sharedMemPerBlock:                64.00 KB
canMapHostMemory:                 1
regsPerBlock:                     0
warpSize:                         32
l2CacheSize:                      4194304
computeMode:                      0
maxThreadsPerBlock:               1024
maxThreadsDim.x:                  1024
maxThreadsDim.y:                  1024
maxThreadsDim.z:                  1024
maxGridSize.x:<PHONE_NUMBER>
maxGridSize.y:                    65536
maxGridSize.z:                    65536
major:                            10
minor:                            3
concurrentKernels:                1
cooperativeLaunch:                0
cooperativeMultiDeviceLaunch:     0
isIntegrated:                     0
maxTexture1D:                     16384
maxTexture2D.width:               16384
maxTexture2D.height:              16384
maxTexture3D.width:               2048
maxTexture3D.height:              2048
maxTexture3D.depth:               2048
isLargeBar:                       0
asicRevision:                     0
maxSharedMemoryPerMultiProcessor: 64.00 KB
clockInstructionRate:             1000.00 Mhz
arch.hasGlobalInt32Atomics:       1
arch.hasGlobalFloatAtomicExch:    1
arch.hasSharedInt32Atomics:       1
arch.hasSharedFloatAtomicExch:    1
arch.hasFloatAtomicAdd:           1
arch.hasGlobalInt64Atomics:       1
arch.hasSharedInt64Atomics:       1
arch.hasDoubles:                  1
arch.hasWarpVote:                 1
arch.hasWarpBallot:               1
arch.hasWarpShuffle:              1
arch.hasFunnelShift:              0
arch.hasThreadFenceSystem:        1
arch.hasSyncThreadsExt:           0
arch.hasSurfaceFuncs:             0
arch.has3dGrid:                   1
arch.hasDynamicParallelism:       0
gcnArchName:                      gfx1030
peers:
non-peers:                        device#0
memInfo.total:                    15.98 GB
memInfo.free:                     15.86 GB (99%)

@jreves perfect, I've added HIP_PATH to the dll search directories for windows users if it's defined in their environment. Should be in the next release

@chengjia604 does that resolve your issue as well?

I tried to use the prebuilt binary provided by llama.cpp repo. After setting LLAMA_CPP_LIB to the path of llama.dll I am getting the same error. cublas64_12.dll, cublasLt64_12, cudart64_12.dll are all present in the same folder as llama.dll. However if I tried to add llama.cpp binary folder to PATH, then it works.

I'm having this same issue.
Here is the error I get:
02:08:15:llama_chat_adapter.py:     from .llama_cpp import *
02:08:15:llama_chat_adapter.py:   File "C:\Program Files\CodeProject\AI\modules\LlamaChat\bin\windows\python311\venv\lib\site-packages\llama_cpp\llama_cpp.py", line 88, in
02:08:15:llama_chat_adapter.py:     _lib = _load_shared_library(_lib_base_name)
02:08:15:llama_chat_adapter.py:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
02:08:15:llama_chat_adapter.py:   File "C:\Program Files\CodeProject\AI\modules\LlamaChat\bin\windows\python311\venv\lib\site-packages\llama_cpp\llama_cpp.py", line 77, in _load_shared_library
02:08:15:llama_chat_adapter.py:     raise RuntimeError(f"Failed to load shared library '{_lib_path}': {e}")
02:08:15:llama_chat_adapter.py: RuntimeError: Failed to load shared library 'C:\Program Files\CodeProject\AI\modules\LlamaChat\bin\windows\python311\venv\lib\site-packages\llama_cpp\lib\llama.dll': Could not find module 'C:\Program Files\CodeProject\AI\modules\LlamaChat\bin\windows\python311\venv\lib\site-packages\llama_cpp\lib\llama.dll' (or one of its dependencies). Try using the full path with constructor syntax.
02:08:15:Module LlamaChat has shutdown
Local install on Win10 OS

Any update on this issue?  I am facing same error. Kindly guide. Thanks


More hyper-parameters optimization algorithms

CONDITIONS

Optuna version: 0.16.0

FEATURE REQUEST
Currently, the Optuna library supports two kind of samplers:

random
TPE

Do you plan to add support for other algorithms (e.g. grid search, simulated annealing, etc...) in next releases ?
Thank you in advance,
Emanuele

In addition to Random Search and TPE, Optuna has supported Gaussian Process and CMA-ES since v0.13.0 and v0.14.0, respectively.
We would like to implement more sampling algorithms in future releases.
And also, users are able to define their own samplers. For example, this tutorial explains how to implement Simulated Annealing.
Thanks.

Wow, interesting, I missed that !
Thank you for the clarification,
Emanuele


MAINT: doc and code fixes for optimize.newton

Follow up from gh-8357:

remove converged keyword that was introduced there, it's duplicate with full_output.
add a clearer example for vectorized use
lots of little code and doc style cleanups

Addressed one minor review comment by @mikofski and this was a follow-up to his PR, so merging.


feature: new auciton markets (outbound liquidity)

Allow the submission of orders for different auction markets. Expand the current auctions, bidder pays for inbound liquidity, with another market where the bidder pays for channel acceptor, outbound liquidity.
NOTE: Only the last 5 commits need to be reviewed in this PR

initial notes about the impending design doc on this functionality  https://docs.google.com/document/d/1qM2mCtukMFM0lPHh98nihWCTcQ-qtp8bOIdvw9Trxns/edit#heading=h.4tmfx1hae58w

after we get ZC and unannounced channels merged, we'll need 2x review on this with Roas to cap it out

@positiveblue, remember to re-request review from reviewers when ready


MINIFICPP-330 Implemented Expression Language substring operations

Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

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

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

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file?
[ ] If applicable, have you updated the NOTICE file?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

@phrocker yes, if they call substringBefore on an attr with no other arguments, then they should get an "attempted to call incomplete function." I'll add a test case for that.

@phrocker tests added.


Pubsub message fields

Rename topicCIDs to topicIDs. See the background discussion.

@diasdavid Needs PR https://github.com/libp2p/js-libp2p-floodsub/pull/49 and https://github.com/ipfs/interface-ipfs-core/pull/169 released.  Then update dependencies.


keras ImageDataGenerator  issue

I am trying to do runtime augmentation using ImageDataGenerator for my segmentation task( 3 objects).
The mask image values are 0,128 and 255 corresponding to each object. but when the image generator is applied the obtained mask value turns out to be 0 and 255 all the 128 values are converted to 255. I am attaching the input image,augemnted mask image and the code to reproduce the issue.

But this issue is  not occurring for all images. Image for this case is also attached for reference

code used:
from keras.preprocessing.image import ImageDataGenerator
from keras.preprocessing.image import img_to_array
from keras.preprocessing.image import load_img
import os
import numpy as np
IMAGE_PATH = "./images"
OUTPUT_DIRECTORY = "./aug_images/"
for i in os.listdir(IMAGE_PATH):
image = load_img(os.path.join(IMAGE_PATH ,i),color_mode="grayscale")
image = img_to_array(image)
#print(image)
image = np.expand_dims(image, axis=0)
#image  = (image).astype(np.uint8)
datagen = ImageDataGenerator(brightness_range=[0.4,1.5],zoom_range=0.3)
PREFIX = 'aug'
imGen = datagen.flow(image, batch_size=1, save_to_dir = OUTPUT_DIRECTORY,
                save_prefix=PREFIX, save_format='png')
batch = imGen.next()

Any help on this will be greatly appreciated.

@DNJ-JINI,
I was facing the indentation error while executing the code. Kindly find the gist of it here and provide the code in the reproducible way or the colab gist which helps to debug the issue. Thank you!


Readme in bahasa

Adding README.md in Bahasa Indonesia, stored in README.id.md

Related to issue #11

Will be merged end of day tomorrow

Looks good to me!


Feature Request: Onedrive oAuth Authentication Failure with @businessname.com

Hi,
Feature request please:
Onedrive does not authenticate to business based login, e.g<EMAIL_ADDRESS>Plugin uses the following URL to authenticate to a Microsoft account - https://login.live.com/oauth20_authorize.srf?client_id=...
However, business type accounts authenticate on - https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=....
Please could i request support for this authentication method.
Many thanks

OneDrive business is not supported.


eporetrieve ftp server error

If have trouble retrieving the EPO with the actual IP address try replacing it by ftp://ftp.gtop-tech.com/
Rgds,

Thanks.  I'm checking.

Yep, that's better.  Thanks!
I'm not sure why I used the ip address in the first place.


HighScoreRow constructor doesn't evaluate Point^ arguments

It should be evaluating if they're nullptr's and throwing an ArgumentNullException if they are. Don't forget to revise the exception documentation for the constructor when this is implemented.

fixed in commit 73943828b0460034b812dc7358ee6ef9c105ee86.


Option + s (on OS X) opens a dialogue box asking me to name my session

Hi,
After the last Chrome update I noticed that whenever I try to type the "ß" character in German using Option + s, Marinara opens a dialogue box asking me to name my session.
I love Marinara but since I need to write every day in both English and German and I can't figure out how to turn this off (there's nothing about hot keys in the options), I might just have to uninstall, but I really don't want to!
Screenshots of dialogue and source attached (can't copy the text for some reason because of the code viewer, another great update feature from Chrome it seems)

That screen is not from this extension. Marinara doesn't having any session naming. It must be another extension or program on your machine.
What's the URL in the source window? You might see a long string of random letters which would be the extension ID. For example, the Marinara options page lives at chrome-extension://lojgmehidjdhhbmpjfamhpkpodfcodef/modules/options.html#/settings.
Once you have the ID, you can see which extension it is, e.g. by visiting https://chrome.google.com/webstore/detail/lojgmehidjdhhbmpjfamhpkpodfcodef


@static files 500 every other time when fingerprint false

I have an app which is deployed to API Gateway (no CloudFront) with Architect, and arc-plugin-enhance. In my .arc file I have:
@static
fingerprint false

When I load the page, the static files will load on every other request. (note commented out ServiceWorker registration)
For example, when I load https://schizo.social/_public/browser/async.mjs I first see:

then I hit the reload button and see:

reloading again, I see the file again

@jessehattabaugh Can you create a reduced example we can use to reproduce it? I have tried but I can't reproduce it so far.

@ryanbethel I added you as a collaborator. I followed these instructions when I set it up in AWS https://arc.codes/docs/en/guides/domains/registrars/route53
I get the same behavior if I use the raw API Gateway host https://133fgiavmb.execute-api.us-east-1.amazonaws.com/_public/browser/async.mjs

I tested with Firefox and got the same behavior.
I then tested by opening the same file in two browsers, and alternating between them and it seems to alternate per-browser not per-request. Which makes me feel like it might have something to do with HTTP headers.

If I disable the cache the behavior stops

@jessehattabaugh I think I have reproduced your bug. I think it is related to the cache control headers that are returned when fingerprinting is turned off. But I think it only happens after first deploying with fingerprinting turned on. And I think for it to happen prune has to be false. So that is as far as I will get tonight. I will verify this in the morning and see if I can track down the cause.

@jessehattabaugh I found the bug and have a draft PR for a fix (https://github.com/architect/asap/pull/417). I was slightly off in my comment above. It is caused by different error properties coming from the aws-sdk v3. I am going to get a couple more eyes on it before I can merge it, but I wanted to give you a heads-up.

@ryanbethel you rock!

No problem. The fix is published to the ASAP package. It should be in the enhance plugin today so you can update the plugin.


Uncaught TypeError: dispatch(...).then is not a function

found it is not related with redux-thunk, please delete it. Sorry

@wenqiW What was it, I am having the same issue

@wenqiW, @ericwooley  i am having the same issue... where am i wrong?

@sun2rise Did you return promise in action creator?

This is the object that i return from my action:
return new Promise(function (resolve, reject) {
    resolve({
      type: types.STORE_MEDIA_DATA_AUDIO_TRACKS,
      payload: fixedData
    });
  });

and this is the error i got:
VM5118:1180 Uncaught Error: Actions must be plain objects. Use custom middleware for async actions.

@sun2rise Thunk isn't promise middleware. Your action creators can look like this
const actionCreator = () => dispatch => {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve();
    }, 10);
  }).then(() => {
    dispatch({ type: 'ACTION_TYPE' });
  });
};

store.dispatch(actionCreator()).then(() => {
  console.log('The end of poem');
});

For the record, my problem wasn't redux-thunk, it ended up being a different middle ware that was interfering with this.

So redux-thunk is only for timing stuff? i have to chain actions, should i use redux-promise? I have to wait for a very short operation to complete and then call the next action

@sun2rise If your having a similar problem to me, try disabling other middle wares and see if it works
IIRC the one that was the issue for me was the redux-localstorage middleware

thanks @ericwooley but i only (try to) use redux-thunk for now.. all i do is
applyMiddleware(thunk)

in my createStore function

I'm having this issue.  I tried removing all other middleware but that didn't fix it. It looks like the dispatch method is just returning the action object, not a promise.

The action is being returned from here: https://github.com/reactjs/redux/blob/master/src/createStore.js#L181


Add missing docs from 6.16

From https://github.com/babel/babel/releases/tag/v6.16.0 (anything on the changelog that is spec compilancy/new feature)
new pages

[ ] for new plugins for async generators (make new plugin page, update stage-2)
[ ] move object-rest-spread to stage 3 https://github.com/babel/babel.github.io/issues/932

update pages

[ ] add parserOpts + generatorOpts to babel options

Is there anything we need to do to get babel-standalone updated for the repl @Daniel15? I can add you do this repo too (or add me to standalone/move it to babel repo?).

Is there anything we need to do to get babel-standalone updated for the repl @Daniel15?

Oh yeah, sorry, Babel-standalone is supposed to auto-update whenever a new Babel release is pushed to npm, but I still haven't set up the cronjob that runs the auto-update script. I'll run it now, new release should be up soon.

or add me to standalone/move it to babel repo?

This sounds like a good idea! It probably makes sense for babel-standalone to live in the Babel GitHub organisation.

Pushed an update to babel-standalone:
https://github.com/Daniel15/babel-standalone/commit/2d01ab331fb327cb2792018360dfec8dd90fe480
<EMAIL_ADDRESS>→<EMAIL_ADDRESS>I'll definitely automate this, I just need to add npm publish + Github release creation to my update script.

Awesome - we also added babel-plugin-transform-async-generator-functions and babel-plugin-syntax-async-generator-functions (now stage-3, so it's included)

Yeah later it would be great if we can update the repl code to support choosing individual plugins, presets, and options

https://github.com/babel/babel.github.io/commit/d318a6eaaede11149ce5f340a2dfbacc392c8c54


Override Pipeline tasks from client

Describe your changes :

This PR fixes https://github.com/open-metadata/OpenMetadata/issues/2224.
Hi @harshach, as discussed this PR updates the behaviour of the task updater to override the current tasks from whatever is sent from the client side.
Afterwards, I am going to tackle https://github.com/open-metadata/OpenMetadata/issues/2316 to update the lineage backend accordingly.
Happy to discuss 🙏

Type of change :

[ ] Bug fix
[x] Improvement
[ ] New feature
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation

Frontend Preview (Screenshots) :
For frontend related change, please link screenshots of your changes preview! Optional for backend related changes.

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have performed a self-review of my own.
[ ] I have tagged my reviewers below.
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] My changes generate no new warnings.
[ ] I have added tests that prove my fix is effective or that my feature works.
[x] All new and existing tests passed.

Reviewers

@sureshms @harshach

Hi @harshach, I also noticed that some py-tests workflows were failing. This is because pytest just got a major update to 7.0.0, looks like python devs have been busy this start of the year.
To not block any PR I am fixing the pytest version to 6.2.5 and I opened https://github.com/open-metadata/OpenMetadata/issues/2625 to check pytest 7.0.0. Thanks!


Fix libgcc.so symlink in sysroot

Checklist

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

Ok. Let's give this a try.


[AVM Module Issue]: Using letsencrypt certificates within http_listeners

Check for previous/existing GitHub issues

[x] I have checked for previous/existing GitHub issues

Issue Type?
I'm not sure
(Optional) Module Version
No response
(Optional) Correlation Id
No response
Description
Hello,
The public IP resource creation is today incorporated in the AVM App Gateway  module and as mentioned by the issue 67 it was a choice of having this behavior in order maintain the same setup as the portal experience.
The issue we are encountering is the usage of a letsencrypt certificate for our http_listeners during the app gateway creation .
Before the usage of the app gateway AVM module the order of the app gateway creation was:

Creating the public IP resource
Creating the DNS A record for the public IP (public host name)
Creating the acme letsencrypt certificate for the public host name , the host name creation is important because of the DNS challenge of letsencrypt
Storing the certificate in a key vault
Creation of the App gateway using the new created key vault certificate reference.

The problem if we want to use the current AVM App Gateway the PIP is not accessible and the DNS record cannot be created before the creation of the PIP resource and so we are unable to create an SSL certificate because of the DNS challenge failure of acme letsencrypt.
Will you be willing to reconsider the creation of the PIP resource inside the AVM App Gateway module and allow users to define their own PIP instance and link it with the app gateway instance ?
What do you think ?
Thanks for help and suggestions
Victor

Thanks @izvictor for the feedback, understand the requirements will work this.
You can provide input to use pre-created public IP. otherwise default module will create public IP, hope this helps
#88 Option to create a new public IP or use an existing one
public_ip_resource_id = azurerm_public_ip.public_ip.id
create_public_ip      = false

The changes right now at branch version 0.3.0, possible please validate let me know your feedback, if not comment or changes i will merge with main and release it.
The example at https://github.com/Azure/terraform-azurerm-avm-res-network-applicationgateway/tree/version-0.3.0/examples/simple_http_probe_app_gateway

Hello @mofaizal ,
Thanks for you message I have just tested your update on branch version 0.3.0 and the 2 options :
public_ip_resource_id = azurerm_public_ip.public_ip.id
create_public_ip = false

are working perfectly ;) thanks for the update.
When you plan to release the version 0.3.0 ?
Thanks and have a nice day.
Best regards.


Update vue-events version

I fixed a bug in vue-events that was introduced in Vue 2.2.x, just updating this projects dependency.
https://github.com/cklmercer/vue-events/issues/8

@cklmercer Thanks, really appreciated. :)


Support for lima usernet network

fixes #1222
This PR adds support for the following,

[x] Lima Usernet (Provides host -> vm, vm <-> vm communication)
[x] Usernet as daemon and support for reconciler similar to socket_vmnet
[x] New property added in yaml usernet.enabled, defaults to false. If its set to true, lima usernet will replace the slirp network

Todo items

[x] Handle timeout in usernet client
[x] Example template
[x] Test for Performance issues
[ ] Writing integration test (Atleast for QEMU)
[ ] Documentation

Marking PR as ready for review as the code looks lot better compared to the initial version.
There are some todo items but i think it can be done incrementally as well. Should not affect the current code much.
Will start with documentation as a last item once naming are finalised

Testing for performance are done as well.
I tested in M1 with some long running instance (for more than a day with sleep). Haven't faced any issues (There was slight degrade when did iperf3, but on restarting iperf3 -s on host the performance was back to more meaningful value)
Also performance of QEMU is improved with this PR https://github.com/containers/gvisor-tap-vsock/pull/188
Performance report
VZ <-> Host
$ iperf3 -c host.lima.internal
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  2.64 GBytes  2.27 Gbits/sec    0             sender
[  5]   0.00-10.02  sec  2.64 GBytes  2.26 Gbits/sec                  receiver

iperf Done.
$ iperf3 -c host.lima.internal -R
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  2.02 GBytes  1.73 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  2.02 GBytes  1.73 Gbits/sec                  receiver

QEMU <-> Host
$ iperf3 -c host.lima.internal
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.84 GBytes  1.58 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  1.84 GBytes  1.58 Gbits/sec                  receiver

iperf Done.
$ iperf3 -c host.lima.internal -R
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.21 GBytes  1.04 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  1.21 GBytes  1.04 Gbits/sec                  receiver

iperf Done.

VZ <-> QEMU
$ iperf3 -c <IP_ADDRESS>
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.44 GBytes  1.24 Gbits/sec    0             sender
[  5]   0.00-10.07  sec  1.44 GBytes  1.23 Gbits/sec                  receiver

iperf Done.
$ iperf3 -c <IP_ADDRESS> -R
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.04  sec  1.83 GBytes  1.57 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  1.83 GBytes  1.57 Gbits/sec                  receiver

iperf Done.

Here is what I got:
? Creating an instance "usernet" Proceed with the current configuration
FATA[0001] the YAML is invalid, saved the buffer as "lima.REJECTED.yaml": field `networks[0].lima` is only supported on macOS right now

Missed support for linux with networks.lima property.
Will fix it. Thanks 👍

@afbjorklund
Done changes to support linux, can you check if it works now :)

@afbjorklund @jandubois
WDYT?

To be honest, I kind of like the name "usernet". I'm also not confusing it with QEMU networking, as I always think of that one as SLIRP. "User mode networking" is just the general category, and SLIRP is a specific instance of it.
Now, you could argue that we should not use the category name ("user mode networking") and usurp it for the specific Lima implementation, but again personally I'm not bothered by it because it is disambiguated by context (it is the Lima usernet). I think descriptive names are good.
And if we ever need another name, and still can't come up with anything better, then we can still use usernet-v2. But maybe (hopefully) we will just have some different configuration parameter to tweak the implementation instead of having to replace it wholesale again.

To be honest, I kind of like the name "usernet". I'm also not confusing it with QEMU networking, as I always think of that one as SLIRP. "User mode networking" is just the general category, and SLIRP is a specific instance of it.

"slirp" has become a general category too.
Docker calls VPNKit as "slirp", although its implementation is different from the original slirp.

@AkihiroSuda
Added documentation as well. For testing, the newly added template is already been tested via integration test. I hope that should be sufficient for now.
I will do a follow-up story to support configurable IP range for user-v2. Before this change we need some improvement / cleanup with DNS resolution.

Sorry needs another rebase

@AkihiroSuda - Done :)

@jandubois @afbjorklund May I merge this, or do you want to take the final look before merging?

May I merge this, or do you want to take the final look before merging?

I did want to review it, but I continue to be out of time. Feel free to merge if you are ok with it. At least it gets it into more people's hands for testing.

Any chance of releasing this? It seems it would fix some issues I'm having.

Yes, probably next week


feat: add run import slack command

Add a temporary / prototype run import slack command to allow folks to run an import outside of a schedule and without needing access to AWS.

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

v1.43.0
GitHub release

Your semantic-release bot :package::rocket:


Failed to return in running luigi.build in luigi tasks

I have a workflow to trigger another luigi.build in the task run method (like below). Both parent and child level of luigi build use multiple workers.
import luigi

class Task2(luigi.Task):
    def run(self):
        print("*"*10, "done task2")

class Task1(luigi.Task):
    def run(self):
        luigi.build([Task2()], local_scheduler=True, workers=2)
        print("*"*10, "done task1")

luigi.build([Task1()], local_scheduler=True, workers=2)

The scheduler in the child process (Task.run) stuck and failed to return. I killed the process and it seems to me the worker queue failed to pull the task.
2022-11-12 01:06:00,411 INFO Informed scheduler that task   Task2__99914b932b   has status   PENDING
2022-11-12 01:06:00,411 INFO Done scheduling tasks
2022-11-12 01:06:00,411 INFO Running Worker with 2 processes
^C2022-11-12 01:06:40,606 INFO Worker Worker(salt=4670658361, workers=2, host=slurm-node6.development-singapore.chorus, username=gchan, pid=27743) was stopped. Shutting down Keep-Alive thread
Traceback (most recent call last):
  File "test_luigi.py", line 37, in <module>
    luigi.build([Task1()], local_scheduler=True, workers=2)
  File "/home/gchan/intranet/environments/20220905_211953_12c7ddd0-0e8b-4bcd-b13b-b7e44cd1f344/lib/python3.8/site-packages/luigi/interface.py", line 239, in build
    luigi_run_result = _schedule_and_run(tasks, worker_scheduler_factory, override_defaults=env_params)
  File "/home/gchan/intranet/environments/20220905_211953_12c7ddd0-0e8b-4bcd-b13b-b7e44cd1f344/lib/python3.8/site-packages/luigi/interface.py", line 173, in _schedule_and_run
    success &= worker.run()
  File "/home/gchan/intranet/environments/20220905_211953_12c7ddd0-0e8b-4bcd-b13b-b7e44cd1f344/lib/python3.8/site-packages/luigi/worker.py", line 1242, in run
    self._handle_next_task()
  File "/home/gchan/intranet/environments/20220905_211953_12c7ddd0-0e8b-4bcd-b13b-b7e44cd1f344/lib/python3.8/site-packages/luigi/worker.py", line 1101, in _handle_next_task
    self._task_result_queue.get(
  File "/opt/chorus-python38/lib/python3.8/multiprocessing/queues.py", line 107, in get
    if not self._poll(timeout):
  File "/opt/chorus-python38/lib/python3.8/multiprocessing/connection.py", line 257, in poll
    return self._poll(timeout)
  File "/opt/chorus-python38/lib/python3.8/multiprocessing/connection.py", line 424, in _poll
    r = wait([self], timeout)
  File "/opt/chorus-python38/lib/python3.8/multiprocessing/connection.py", line 931, in wait
    ready = selector.select(timeout)
  File "/opt/chorus-python38/lib/python3.8/selectors.py", line 415, in select
    fd_event_list = self._selector.poll(timeout)
KeyboardInterrupt

Currently I am using the latest luigi version 3.1.1 and Python 3.8.12.

luigi.build() is intended to be called from your main function, not from run(). If you want Task2 to run before Task1, add it to requires() for Task1. See https://luigi.readthedocs.io/en/stable/tasks.html#task-run for an example.

We have built an internal scheduler library to leverage on luigi and the users pass a configuration specifying the pipelines on business level to schedule the tasks in luigi.
The problem is we have no control on users' tasks and they can pass in another level of luigi scheduler in the Task.run. In the meantime, regard luigi as a schduler to run tasks in dependency trees. It makes total sense for the users to spawn a new tree on the node.
Meanwhile, I struggle to understand why no_lock parameter is set to True in the luigi.build function, but defaulted as False in the command line entry point.

Ok. Luigi is a simple tool, and that's one of its primary strengths in comparison to the alternatives. Recursive invocation is simply outside the design scope and this is not a functionality bug. Feel free to submit a doc PR to clarify this limitation if you want.
It is possible to build services on top of Luigi, as you have done, since Luigi is simple and not opinionated. We should not add features for each such case, however. It would complicate the core. It would be reasonable to refactor or expose existing features, or add optional functionality. But for the things you build on top, you will need to work within Luigi's design constraints. At least IMHO.
I don't know anything about no_lock.

Thanks for your detailed explanation.
I understand it would be huge pain for the contributors to maintain the open source software whenever the users request a change to work around with their corner cases. At the moment I am not requesting for any change in luigi but just to raise a question to understand why the scheduler was frozen in my case, so that we can accommodate with it in our library design. It just seems to me it is related to the parent pid process lock.
There are two evidences why it may be related to an issue of the pid process lock

Run the scheduler with single worker (without using multiprocessing in background)

Just change the child scheduler to run with workers=1 and it retains only one process retaining the process lock.
import luigi

class Task2(luigi.Task):
    def run(self):
        print("*"*10, "done task2")

class Task1(luigi.Task):
    def run(self):
        luigi.build([Task2()], local_scheduler=True, workers=1)
        print("*"*10, "done task1")

luigi.build([Task1()], local_scheduler=True, workers=2)

Run the child scheduler in a new process

Spawning the child scheduler in a separate process avoids sharing the same process lock and then it works perfectly.
import subprocess
import luigi

class Task2(luigi.Task):
    def run(self):
        print("*" * 10, "done task2")

class Task1(luigi.Task):
    def run(self):
        subprocess.run(
            [
                "luigi",
                "--local-scheduler",
                "--workers",
                "2",
                "--module",
                "test_luigi_subprocess",
                "Task2",
            ],
            check=True,
        )
        print("*" * 10, "done task1")

luigi.build([Task1()], local_scheduler=True, workers=2)

It'd be great if anyone could share more details / previous discussions about the usage of process lock in luigi, or the luigi design doc around arguments no_lock, take_lock and lock_size


Allow to show or hide error message

Closes #11

This change is

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

Pull Request Test Coverage Report for Build 85

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.09%) to 95.918%

Totals

Change from base Build 82:
0.09%

Covered Lines:
27

Relevant Lines:
27

💛  - Coveralls


Fix hierarchy between flavors and resources in documentation

What type of PR is this?
/kind documentation
What this PR does / why we need it:
Fix hierarchy between flavors and resources in documentation. In the past, resources where listed before flavors, but after we changed that, the documentation remained with the opposite wording.
Also give a better example of when to use multiple resource groups. Typically, GPUs are tied to cpus and memory, so the example should have them in the same resource group.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

/assign @gabesaba

/lgtm

/cherry-pick website


Two-way data binding for pickerConfig

Hi, if it possible to have Two-way data binding for pickerConfig ? I have availableColors depends on condition, have can I proceed it? At the moment availableColors not changing at view, when I`m changing them at component. Thanks

Hi hbolshakov,
I'll look in to making this possible, thanks for the suggestion.


"Select Organization settings, and then select Extensions to see your newly installed extension" - a-a-and?...

What's next?
How and where do I see that 'my-hub.html' page we've just created?
I do see the extension as 'installed', but I'm unable to find that web page anywhere in my org.

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

ID: 14955ee9-29f2-46fe-3a8d-a42666f53ffc
Version Independent ID: 5d417cd0-a671-ee30-8fca-5f8b0addd328
Content: Develop a web extension for Azure DevOps - Azure DevOps
Content Source: docs/extend/get-started/node.md
Product: devops
Technology: devops-ecosystem
GitHub Login: @chcomley
Microsoft Alias: chcomley

@scale-tone Thanks for your question. While we look into updating the article, consider these resources:

Azure DevOps Services
Azure DevOps Support Bot
Azure DevOps on Stack Overflow


[cga] Centralize compilation flags

Currently every module defines its own compilation flags. In some cases this is the wanted behavior, but in others (C++ standard, warning level..) it causes confusion.
Think about which flags should be set for the whole SDK.

Not a cmake expert, but I think the cleanest way would be to define a central interface library add_library(cga_common INTERFACE), set the properties there via target_compile_options(cga_common INTERFACE <flags>) & friends, and then link all our actual targets against this interface library. There was a nice talk by Robert Maynard on Modern CMake + CUDA at last year's GTC https://developer.nvidia.com/gtc/2019/video/S9444.


fix: estimated time in withdrawal history V1

Related issue:

https://github.com/nervosnetwork/light-godwoken/issues/168

Changes in the PR:

Fix estimated time in withdrawal history V1
Fix vertical align of WithdrawalItemvV1


Handle spaces in update_tags.cmd's path

I'm unsure whether cscope.vim needs a similar change.

I'm going to clean up the previous pull request from johatfie.


Questions about default settings in dnscrypt-server-docker

Do your scaleway-fr server settings reflect the default settings (in unbound.sh, dnscrypt-proxy.toml) in jedisct1/dnscrypt-server-docker?
I think

Query prefetching to reduce latency

is 'prefetch: yes' and 'prefetch-key: yes' in unbound.sh. Right?

Supporting the latest DNSCrypt protocol version, with short certificate TTLs for enhanced forward secrecy

is 'cert_refresh_delay = 240' in dnscrypt-proxy.toml of dnscrypt-proxy. Right?
scaleway-fr uses

Query minimization for improved privacy

but unbound.sh of jedisct1/dnscrypt-server-docker contains 'qname-minimisation: no'. Why?

Qname minimisation is great in theory, but unfortunately breaks some domains.
These are misconfigured domains, or broken servers that don't respect the protocol, but you may still end up with domains that resolve properly "with other resolvers" and not yours.
This is less and less the case as people slowly fix broken configurations, and as unbound implements workarounds.
In the Docker image, I preferred the default configuration to be conservative. On scaleway-fr, minimisation is enabled to study its implications.
So, your mileage may vary. Feel free to enable it in your containers if you feel brave :)

is 'prefetch: yes' and 'prefetch-key: yes' in unbound.sh. Right?

Yes

is 'cert_refresh_delay = 240' in dnscrypt-proxy.toml of dnscrypt-proxy. Right?

This is more about the scripts in the container that are constantly rotating the keys.


Use query file for table initializer

https://docs.rs/sqlx/latest/sqlx/macro.query_file.html
Would enable resource sharing

Looked at this and, at least for the Rust side, it's pretty unwieldy. Not worrying about it for now.


Use new dataset manager module to upload data to S3

If PR #38 from the serenata-toolbox is merged we can cleanup this repo using boto3 instead of tinys3. The main reson why is:

tinys3 uses requests under the hood and requests is unable to upload large files to S3 (more than 10MB).

@cuducos isn't it resolved by https://github.com/datasciencebr/serenata-toolbox/commit/a0e3c005a0cdaea6ce4bcaf3518b81bc71a8d62f ? Can this issue be closed?


feat: typechain safe ETH/FOX contracts

Description

Notice

[ ] Have you followed the guidelines in our Contributing guide?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

Pull Request Type

[ ] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[ ] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)

closes #
Risk

Testing

Engineering

Operations

Screenshots (if applicable)

Current dependencies on/for this PR:

develop

PR #3414   👈

This comment was auto-generated by Graphite.


Add official guide to integrate with remix

Test stitches with Remix and then write an official guide for it

@hadihallak has there already been done something on this. We might be interested to help out there. We are currently using stitches quite heavily with Next.js, but would like to try out Remix for one of our next projects.


Added alternative installation instructions

Added installation instructions for users of the Homebrew Mac OSX package manager

brew install minica is the only command you need. Go is only needed if you plan to build minica.

I would suggest install with gobinaries curl -sf https://gobinaries.com/jsha/minica | sh


Convert cf cluster agent to an fx app

What does this PR do?
Refactors the CF cluster agent binary so it is an fx app
Motivation
We need to convert all binaries to fx apps for the component migration
Additional Notes
Additionally, I imported the flare command instead of copy-pasting it from the cluster agent.
Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

closing in favor of newer https://github.com/DataDog/datadog-agent/pull/15210


packaging: simplify naming

This makes packaging work with HASH_ARCHIVES=ON when some packages (i.e. ASE) are skipped.
Example output files with CPACK_GENERATOR=RPM and HASH_ARCHIVES=ON:
opae-2.0.1.g5329d4d3-2.x86_64.rpm
opae-PACSign-2.0.1.g5329d4d3-2.x86_64.rpm
opae-devel-2.0.1.g5329d4d3-2.x86_64.rpm
opae-libs-2.0.1.g5329d4d3-2.x86_64.rpm
opae-opae.admin-2.0.1.g5329d4d3-2.x86_64.rpm
opae-tests-2.0.1.g5329d4d3-2.x86_64.rpm
opae-tools-2.0.1.g5329d4d3-2.x86_64.rpm
opae-tools-extra-2.0.1.g5329d4d3-2.x86_64.rpm

Example output files with CPACK_GENERATOR=DEB and HASH_ARCHIVES=ON:
opae-ase-2.0.1.g45fa4a0e-2.x86_64.deb
opae-devel-2.0.1.g45fa4a0e-2.x86_64.deb
opae-libs-2.0.1.g45fa4a0e-2.x86_64.deb
opae-tests-2.0.1.g45fa4a0e-2.x86_64.deb
opae-tools-2.0.1.g45fa4a0e-2.x86_64.deb
opae-tools-extra-2.0.1.g45fa4a0e-2.x86_64.deb

Example output files with CPACK_GENERATOR=DEB and HASH_ARCHIVES=OFF:
opae-ase-2.0.1-2.x86_64.deb
opae-devel-2.0.1-2.x86_64.deb
opae-libs-2.0.1-2.x86_64.deb
opae-tests-2.0.1-2.x86_64.deb
opae-tools-2.0.1-2.x86_64.deb
opae-tools-extra-2.0.1-2.x86_64.deb

Example output files with CPACK_GENERATOR=TGZ and HASH_ACRIVES=ON:
opae-2.0.1.g45fa4a0e-2.tar.gz

Coverage increased (+0.03%) to 75.396% when pulling b34508d216e4319e00d39d71343dbc051169e70f on hundeboll/packaging into 921be4ee9a9b81cb5bd954301131eb834fe2b0d7 on master.

Coverage increased (+0.03%) to 75.396% when pulling b34508d216e4319e00d39d71343dbc051169e70f on hundeboll/packaging into 921be4ee9a9b81cb5bd954301131eb834fe2b0d7 on master.

Am I supposed to merge this myself or are we waiting for someone/something ?

Am I supposed to merge this myself or are we waiting for someone/something ?

@hundeboll-silicom , yes, please. Also, can you assign this PR to yoursef?

@hundeboll-silicom , yes, please. Also, can you assign this PR to yoursef?


query value array types

There are some inconsistencies in how the values[] array type is handled between iOS and Android.
On iOS queries, values array must be string[]. In Plugin.swift line 204
        guard let values = call.options["values"] as? Array<String> else {
            retValues(call:call,ret:[],message:"Query command failed : Values should be an Array of string")
            return
        }

On Android, any[] is accepted and the plugin will seemingly happily convert to strings. In CapacitorSQLite.java line 229
            ArrayList<String> vals = new ArrayList<String>();
            for (int i = 0; i < values.length(); i++) {
                vals.add(values.getString(i));
            }

This feature implies that something that works perfectly on Android may fail on iOS. This is unfortunate.

@haavardj Thanks for using the plugin and pointing me out some inconsistencies. The Android plugin has been fixed in release 2.2.1-3. It must be an Array. When you have test it please close the issue

It now correctly throws 'Must provide an Array of strings' on Android. Thanks!


Revert "Fixed #106"

This reverts commit 29992b453e3c1a79bcda647d4a37ca3fa84bda2c.
These changes break pipestat, so this PR reverts them.
Example pytests error:
FAILED tests/test_db_only_mode.py::TestDatabaseOnly::test_manager_can_be_built_without_exception - sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:postgresql.psycopg
Confirmed that we can install latest sqlmodel v0.0.14 and sqlalchemy  2.0.23. Must keep pydantic to v1.10.7 (<2.0)
#106

Never mind, the issue was solved by force reinstalling optional dependencies.


Is it possible to apply group membership when authenticating a user with django-mama-cas and django-cas-ng?

I am using django-mama-cas (2.4.0) and django-cas-ng (3.5.10) to manage user authorisation (single sign on, single log off, group membership) across a few django (1.11) projects. I am able to apply user attributes (first_name, last_name, email address) from the cas server to the cas-ng clients using the callback 'mama_cas.callbacks.user_name_attributes' in mama-cas and setting CAS_APPLY_ATTRIBUTES_TO_USER = True on my cas-ng clients.
On my mama-cas server, I also add the user to a number of groups (snippet below) which I want to then apply to the users on the cas-ng clients.
group = Group.objects.get(name=groupname)
user.groups.add(group)

However, when I try using the callback 'mama_cas.callbacks.user_model_attributes' in mama-cas none of the group memberships are applied to my clients (I check this via the admin interface and via the django shell).
Is applying group membership from mama-cas to cas-ng possible or am I doing something wrong? If it's not possible my next best idea was to create some boolean custom user attributes, i.e. user.is_member_groupA etc but would welcome advice.
Thanks in advance!
(This is a cross-post from https://stackoverflow.com/questions/52840298/is-it-possible-to-apply-group-membership-when-authenticating-a-user-with-django - I am not sure what the etiquette is but I can copy answers across etc)
Update 1:
From the callbacks.py I see that only fields within user._meta_fields are added to the dict of attributes returned and that user.groups etc are not included here. From this I presume that group memberships are not intended to be applied from mama-cas to cas-ng as I am trying?

You can provide your own callback.
https://django-mama-cas.readthedocs.io/en/latest/settings.html#django.conf.settings.MAMA_CAS_SERVICES

Thank you Stephane. In the meantime I created a custom user model with additional Boolean fields indicating group membership.

For posterity:
If you're using a virtual environment, you can find and edit the callbacks.py somewhere similiar to lib/python3.10/site-packages/mama_cas.
You can access the attributes returned by the custom functions in callbacks.py through request.session['attributes'] .
If someone can leave a link to official docs describing these, it would be appreciated, because I just found out about these by mere chance.
In my case, I also just created a custom user model with a groups or permissions field in django-mama-cas server then accessed the values in the django-cas-ng client through request.session['attributes']. Although I feel like there's a better solution out there.


HOWTO: Set Up a Testnet and Deploy Custom Contracts

closes #9
This HOWTO describes the steps required to:

Create a local Stellar network
Write and compile a custom contract
Deploy said contract to a (test)net and invoke it

In case someone wants a quick contract to play around with, here's a lib.rs from Foo. It has a map of vectors in addition to an integer counter.
#![no_std]
use soroban_sdk::{contract, contractimpl, log, symbol_short, Env, Symbol, Vec, Map, Address};

const VAL: Symbol = symbol_short!("VAL");
const ADDRS: Symbol = symbol_short!("ADDRS");

#[contract]
pub struct FooContract;

type AddrMap = Map<u32, Vec<Address>>;

#[contractimpl]
impl FooContract {
    pub fn bar(env: Env, addr: Address) -> u32 {
        // Get the current count.
        let mut val: u32 = env.storage().instance().get(&VAL).unwrap_or(1); // If no value set, assume 0.
        log!(&env, "val: {}", val);

        // If val < 50, double, else set to 1
        val = if val < 5 { 2 * val } else { 1 };

        // Save val.
        env.storage().instance().set(&VAL, &val);

        // Save the caller, for the current counter value
        let mut addrs: AddrMap = env.storage().instance().get(&ADDRS).unwrap_or(AddrMap::new(&env));

        let mut new_vec = addrs.get(val).unwrap_or(Vec::new(&env));
        new_vec.push_back(addr);

        addrs.set(val, new_vec);

        // Save addrs.
        env.storage().instance().set(&ADDRS, &addrs);

        // The contract instance will be bumped to have a lifetime of at least 100 ledgers if the current expiration lifetime at most 50.
        // If the lifetime is already more than 100 ledgers, this is a no-op. Otherwise,
        // the lifetime is extended to 100 ledgers. This lifetime bump includes the contract
        // instance itself and all entries in storage().instance(), i.e, COUNTER.
        env.storage().instance().extend_ttl(50, 100);

        // Return val to the caller.
        val
    }

    pub fn baz(env: Env) -> AddrMap {
        return env.storage().instance().get(&ADDRS).unwrap_or(AddrMap::new(&env));
    }
}

mod test;

As we've discussed, we should create a megacontract in the future, and when we do I'll link it here as an example.

I have made it through the first half of the doc! It's nice and detailed. I left a few comments. Stopped at a blocker that requires me to find a contract somewhere. Please add one.

https://github.com/freespek/solarkraft/pull/10#issuecomment-2051495611

I have made it through the first half of the doc! It's nice and detailed. I left a few comments. Stopped at a blocker that requires me to find a contract somewhere. Please add one.

#10 (comment)

Yeah, that's where I got stuck. Why would you just commit the whole contract layout, e.g., under examples/contracts

We got this working for the dev team quite some time ago, and the Soroban "getting started" docs are probably a more up-to-date resource: https://developers.stellar.org/docs/smart-contracts/getting-started


U-boot script variables not saving to environment properly

Hi team,
I have a bit of an issue I'm hitting encompassing u-boot, rauc, and my raspberrypi board that I was hoping someone here could potentially assist me with. I'm using meta-rauc-raspberrypi as is for the RPi Compute Module 4 running dunfell. When I run rauc status, I get the following:
:~$ rauc status

(rauc:1527): rauc-WARNING **: 17:52:05.386: Failed getting primary slot: Failed getting primary slot: Unable to find primary boot slot

=== System Info ===
Compatible:  RaspberryPi4
Variant:
Booted from: rootfs.0 (A)

=== Bootloader ===
Activated: (null) ((null))

=== Slot States ===
o [rootfs.1] (/dev/mmcblk0p3, ext4, inactive)
	bootname: B
	boot status: bad

o [rootfs.0] (/dev/mmcblk0p2, ext4, booted)
	bootname: A
	mounted: /
	boot status: bad

As a result, it obviously doesn't work. Not sure when this problem was introduced on my development system, so I'm having some trouble tracking it down.
Fundamentally, the issue seems to be because the BOOT_ORDER variable doesn't seem to be saving to my uboot.env. When I manually set that via fw_setenv, rauc corrects itself. But, if I reboot, that variable doesn't stick. Below is what I get when I run fw_printenv:
BOOT_A_LEFT=3
arch=arm
baudrate=115200
board=rpi
board_name=rpi
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=mmc0 mmc1 usb0 pxe dhcp
bootcmd=run distro_bootcmd
bootcmd_dhcp=run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00011:UNDI:003000;setenv bootp_arch 0xb;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_mmc1=devnum=1; run mmc_boot
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
bootcmd_usb0=devnum=0; run usb_boot
bootdelay=2
cpu=armv8
dhcpuboot=usb start; dhcp u-boot.uimg; bootm
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
fdt_addr_r=0x02600000
fdt_high=ffffffffffffffff
initrd_high=ffffffffffffffff
kernel_addr_r=0x00080000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x00200000
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
preboot=usb start
pxefile_addr_r=0x02500000
ramdisk_addr_r=0x02700000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done; setenv devplist
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found EFI removable media binary efi/boot/bootaa64.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
scriptaddr=0x02400000
soc=bcm283x
stderr=serial,vidconsole
stdin=serial,usbkbd
stdout=serial,vidconsole
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
vendor=raspberrypi

Here's my u-boot debug output:
U-Boot 2020.01 (Jan 06 2020 - 20:56:31 +0000)

DRAM:  2 GiB
RPI Compute Module 4 (0xb03140)
MMC:   mmcnr@7e300000: 1, emmc2@7e340000: 0
Loading Environment from FAT... *** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
starting USB...
No working controllers found
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
1383 bytes read in 11 ms (122.1 KiB/s)
## Executing script at 02400000
Found valid RAUC slot A
Saving Environment to FAT... OK
16724480 bytes read in 1400 ms (11.4 MiB/s)
## Flattened Device Tree blob at 2eff4000
   Booting using the fdt blob at 0x2eff4000
   Using Device Tree in place at 000000002eff4000, end 000000002f002f22

Starting kernel ...

A thing to note, I recently downgraded my u-boot version from 2022.01 for unrelated reasons and needed to apply a patch to uboot to support the CM4 board. Below is the patch I created.
diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
index e367ba3092..36c1b710da 100644
--- a/board/raspberrypi/rpi/rpi.c
+++ b/board/raspberrypi/rpi/rpi.c
@@ -157,6 +157,21 @@ static const struct rpi_model rpi_models_new_scheme[] = {
 		DTB_DIR "bcm2711-rpi-4-b.dtb",
 		true,
 	},
+   [0x12] = {
+		"Zero 2 W",
+		DTB_DIR "bcm2837-rpi-zero-2.dtb",
+		false,
+	},
+   [0x13] = {
+		"400",
+		DTB_DIR "bcm2711-rpi-400.dtb",
+		true,
+	},
+   [0x14] = {
+		"Compute Module 4",
+		DTB_DIR "bcm2711-rpi-cm4.dtb",
+		true,
+	},
 };

Logically, this move seems like the smoking gun, but I'm not sure why. Not sure if anyone here has hit this error before or has some insight. It seems a little odd that the BOOT_A_LEFT variable would stick, but the others wouldn't. When I take a look at the uboot.env file, it seems to be consistent with what fw_printenv prints out. Also, the Loading Environment from FAT... *** Warning - bad CRC, using default environment error when u-boot loads seems to also indicate other issues with my environment.
Would appreciate any help on this. Thanks

I'm actually going to close this issue I think because its a weird set of circumstances that are a bit beyond the scope of this project. Further, I was trying to hack some things together to make them function. Ultimately, I was able to move back up to u-boot 2022.01 which resolved my rauc issues.

Hi @MitchGaines,
Thank you for sharing your experience and the note about u-boot 2022.01 and congrats for figuring it out. The feedback might be useful to someone else in a similar situation using CM4.
Thanks,
Leon


Remove node v6 from travis build matrix

node v6 will reach end-of-life on April 2019: https://github.com/nodejs/Release#release-schedule

Closed by https://github.com/dashed/shallowequal/pull/56


call can throw but is not marked with try

Hello,
I See JSON(data: data) has throws exception, so add 'try' in front, the error "call can throw but is not marked with try" can fixed.
public init(data: Data, options opt: JSONSerialization.ReadingOptions = []) throws {
}
The PR should summarize what was changed and why. Here are some questions to
help you if you're not sure:

What behavior was changed?
What code was refactored / updated to support this change?
What issues are related to this PR? Or why was this change introduced?

Checklist - While not every PR needs it, new features should consider this list:

[ ] Does this have tests?
[ ] Does this have documentation?
[ ] Does this break the public API (Requires major version bump)?
[ ] Is this a new feature (Requires minor version bump)?

Thanks, @JackSteven


Uber Data Analysis Project

Description
Uber Data Analysis Project
Checklist

[X] I've read the contribution guidelines.
[X] I've checked the issue list before deciding what to submit.
[X] I've edited the README.md and link to my code.

Related Issues or Pull Requests
Finished working on issue #387

I have made the changes as directed by you.
On Sun, 25 Jun 2023, 10:08 pm Khushee Kapoor, @.***>
wrote:

@.**** requested changes on this pull request.
Hi, please link it to the readme of the Data Analysis directory.
—
Reply to this email directly, view it on GitHub
https://github.com/The-Data-Alchemists-Manipal/MindWave/pull/428#pullrequestreview-1497130796,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQYMEQEDXHPTDSIQGAWXMNLXNBSO3ANCNFSM6AAAAAAZLN6OCE
.
You are receiving this because you authored the thread.Message ID:
@.***
com>


Another API reduction

After these changes, the interface will be pretty lean.

[x] Remove Engine.config

[x] Inline all default config choices into their functions
[x] Update docs with default args
[x] Query/Scan get new strict kwarg, defaults true
[x] Engine takes boto3.session.Session instead of Client

[x] Remove before_bind_model signal
[x] Add model_bound signal
[x] Drop one, first, build from Filter
[x] Filter is the base class for Scan, Query
[x] Filter.prepare returns PreparedSearch
[x] PreparedSearch.prepare does validation
[x] PreparedSearch.__iter__ returns ScanIterator and QueryIterator
[x] QueryIterator, ScanIterator expose one(), first() in addition to current
[x] Wire Engine through Search -> PreparedSearch -> SearchIterator

[x] Subclass SearchIterator -> SearchModelIterator override __next__ to unpack using Engine
[x] SearchIterator ignores Engine kwarg.

[x] Remove Client class

[x] model operations move to operations/model.py
[x] table operations move to operations/table.py
[x] Engine takes a boto3.session.Session
[x] Drop retry logic

[x] operations will consist of model.py, table.py, and stream.py
[x] Remove new_base, expose BaseModel directly (Meta.abstract=True)
[x] Move Index and Column into model.py
[x] Rename NotModified -> NotLoaded
[x] Don't raise raw ValueError
[x] Move all validation (if it throws a ValueError subclass) to one module
[x] Unit test each __repr__
[x] lowercase projection value in Index.projection after _bind, move mapping to ConditionRenderer
[x] Rename Query/Scan select to projection to match Index.__init__

[x] New values for Query/Scan projection are all, count, [str, ...]

Possible changes:

[ ] Perform tracking through signals
[ ] Simplify ConditionRenderer

Closing - the two proposed items may get checked off by the eventual import ordering review.


Please add Kushagra's push access

@cutoffthetop, please add @varadekd as a contributor to this repo.
Cheers!

Did not mean to close; used the wrong column to add it to the project.

Resolved, no action required (just an oddity about watchers / tagging autocomplete)

Resolved, no action required (just an oddity about watchers / tagging autocomplete)

yep, he should already be on board :)


[cli] Cannot list or update apps in a specific namespace

Hello,
I've tried to used Rancher CLI to update an app. However, when I execute rancher apps ls, there is nothing returned despite the fact that I have a bunch of apps installed in different namespaces on the current project. I have only found a namespace attribute when using rancher apps install but no attributes on rancher apps ls or rancher apps update
Am I missing something ? Without that, the CLI is unusable for app management

I am also still seeing this issue.
I wish I had the time to look into this and add a pull-request, but I don't 😦

Any update on this topic, it is still relevant !!!


Connecting MUI applications with different starting commands

How can two MUI-enabled applications connect with each other if they are not started at the same time (with same mpirun command)?
Second question would be: if one has a MUI-enabled application, is it possible to connect with some other application that is extended by a dynamically loaded plug-in (containing MUI communication code)?

Hello, the fundamentals of MUI are needed here to answer both questions:
MUI is effectively a neat wrapper around complex scenarios involving multiple MPI comm worlds. Therefore when we create an MUI interface (or interfaces), the assumption is that this will happen via the default MPI comm world, MUI therefore provides a helper function to give you a new, local comm world to use in your application for all other MPI communications. This is the key requirement of the library, we have to be able to tell our application to use a new comm world to free up the default comm world for MUI.
The fact that MUI relies on the default comm world also tells us that, in order for applications to talk to each other, they need to be launched using the same MPMD mpirun command (i.e. mpirun -np 2 [app1] : -np 4 [app2] : -np 2 [app3] : ...) if they aren't then they won't share the same default comm world and so won't be able to see each other.
In terms of your second question, all of the above applies, so there is no reason you can't connect using an application extended by a library, as long as you are able to tell the original application to use a different MPI comm world and you are able to include the external library above the MPI_Init command within the application. Another option is if you can modify the data in the application by way of input/output routines (either by file or shared memory or if the application provides a user routine method) then you could write an external "proxy" application that embeds MUI and simply sends/receives the data on behalf of the application in question.

Understood, thank you for the explanation!

Could you please comment on "ease" of the alternative: is there a file-based communicator ready out-of-the-box to avoid MPI in any case? (Assume performance is not crucial...)
I'm not familiar with sockets, but can TCP be used instead of MPI for the problem above, and what is the status of it? Also, the same question for shared memory (e.g. with Boost, Qt or some other implementation)?
And finally, if I would like to implement some missing communicator (e.g. via shared memory), would it be a one/two classes to modify/add or changes are needed throughout the whole code?

Hi,
At the moment MUI is entirely MPI based, that isn't to say there isn't scope for extending this.
The general concept of adding a new communication layer is already present in the library (i.e. when you create an interface you do so using a string in the format "protocol://domain_name/interface_name", at the moment protocol can only be "mpi" but you may have noticed there is an incomplete TCP implementation already, following the same pattern a file-based communication layer could be added or one that uses shared memory. The "comm_factory" creates instances of the correct type of communication class depending on this string, so absolutely extending the functionality of the code is possible. I'm not going to say that you can simply write a new communication layer class and it will just work, certainly the basic design is already there to support this but undoubtedly there will be changes needed to other parts of the code for unforeseen reasons.
One comment I would make though is to remember that MPI was primarily chosen as the communication layer in the first place as it is portable in nature and system agnostic. Underneath it automatically uses the best transport layer depending on the fabric you are using (i.e. infiniband, TCP/IP for ethernet, shared memory for local operations etc.) so if you can find a way to make it work for what you are doing then you are guaranteeing your coupled solution can be used in nearly any environment.
One final point, MUI (other than using the current RBF spatial interpolation in the dev branch which introduces a dependency on Eigen at the moment) is a stand-alone library, I would try and make any additional functionality you add stand-alone as well, one of the key features of the library is that it is stand-alone and header-only. If you add a dependency on Boost or Qt etc. then this will be removing this neat feature.

Thank you for all the explanations!


ModelSelect2TagWidget doesn't work with new tags

Hi! I basically copy pasted this from the testapp:
class TagWidget(ModelSelect2TagWidget):
search_fields = [
    'name__startswith'
]
model = Tag

def create_value(self, value):
    self.get_queryset().create(name=value)

But, the problem is, when I instert a tag into the field which wasn't used before (the expectation is that django will save it first), I get the following error:
ValueError at [...] invalid literal for int() with base 10:
I also tried the solution, that is:
class MyModelSelect2TagWidget(ModelSelect2TagWidget):
queryset = MyModel.objects.all()
def value_from_datadict(self, data, files, name):
    values = super().value_from_datadict(self, data, files, name)
    qs = self.queryset.filter(**{'pk__in': list(values)})
    pks = set(force_text(getattr(o, pk)) for o in qs)
    cleaned_values = []
    for val in value:
        if force_text(val) not in pks:
            val = queryset.create(title=val).pk
        cleaned_values.append(val)
    return cleaned_values

But it wasnt working as well.
Could you help me figure this out?

Hi @sztankatt I just saw that there is a type in the documentation. It should be
for val in values:

I just created a PR for a little fix, can you try if it actually works for you? #248