Add PHIA surveys

Could add more surveys
There are sexual behaviour (SB) questions in MICS 4 and 5 but not 2 and 3
It seems like PHIA is less standardised than MICS (?) but I looked at ZIMPHIA 2015-2016 and that had the sexual behaviour module

The relevant PHIA surveys are:

LSO2016PHIA
MWI2015PHIA
NAM2017PHIA
SWZ2016PHIA
TZA2016PHIA
UGA2016PHIA
ZMB2016PHIA
CMR2017PHIA

The steps needed I think are:

Access all the prior objects like survey_meta survey_regions
Transform them to have the same structure as DHS surveys (following this example)
See if they can be merged together with DHS versions (e.g. a bind_rows) to use one call of calc_survey_indicators

Want to replicate this section of create_sexbehav_dhs (including the Adam adjustments at the end)

To-do on this tomorrow:

Rewrite the previous commit into a function
Create survey_circumcision object in lso_survey_phia, save as artefact
Import artefact into lso_survey_behav and attempt to run calc_survey_indicators on the PHIA data, then merge the results with that of running calc_survey_indicators for the DHS data
Or alternatively attempt to merge the PHIA data with the DHS data and run calc_survey_indicators once
Go back over DHS coding of the categories and see if improvements can be made, or more importantly perhaps make sure that the approach is standard across types of survey #44

Based on the below call, it looks like everyone who is in not exactly one category is in none of them. Hopeful that this can be fixed.
> survey_sexbehav %>%
+   mutate(
+     r_tot = nosex12m + sexcohab + sexnonreg + sexpaid12m
+   ) %>%
+   filter(
+     r_tot != 1
+   ) %>%
+   summary()
  survey_id         individual_id          sex12m     nosex12m    sexcohab   sexnonreg   sexpaid12m sexnonregplus     r_tot
 Length:119         Length:119         Min.   :1   Min.   :0   Min.   :0   Min.   :0   Min.   :0    Min.   :0     Min.   :0
 Class :character   Class :character   1st Qu.:1   1st Qu.:0   1st Qu.:0   1st Qu.:0   1st Qu.:0    1st Qu.:0     1st Qu.:0
 Mode  :character   Mode  :character   Median :1   Median :0   Median :0   Median :0   Median :0    Median :0     Median :0
                                       Mean   :1   Mean   :0   Mean   :0   Mean   :0   Mean   :0    Mean   :0     Mean   :0
                                       3rd Qu.:1   3rd Qu.:0   3rd Qu.:0   3rd Qu.:0   3rd Qu.:0    3rd Qu.:0     3rd Qu.:0
                                       Max.   :1   Max.   :0   Max.   :0   Max.   :0   Max.   :0    Max.   :0     Max.   :0

Let NIQ be "not in questionnaire".

NAMPHIA

analsxever has kindsex_a, kindsex_b, ... instead. Also skips section if no vaginal sex
partlastsxtimed1, partlastsxtimed2, and partlastsxtimed3 NIQ

MPHIA

analsxever called ansxyn instead
lifetimesex, lifetimesexdk NIQ
part12modkr called part12monumdk instead

LEPHIA
Serves as baseline.

partlastsxtimed1, partlastsxtimed2, partlastsxtimed3 NIQ
sellsx12mo NIQ

Running through the combination pipeline for ZWE:

[x] zwe_survey_phia run and commit
[ ] zwe_survey_sexbehav run and commit

[ ] Fix remaining issue with this table add payments for sex loop in last three partners to sexpaid12m.
[ ] Move those functions out to naomi.utils

aaa_survey_behav failed on the following. Find way to fix:

[ ] CMR
[ ] TZA:

Error in assign_dhs_cluster_areas(survey_clusters, survey_region_areas) :
  Survey clusters have survey_region_id not contained in survey_regions:
    survey_id survey_region_id cluster_id
1  TZA2007AIS               54          4
2  TZA2007AIS               53         11
3  TZA2007AIS               51         13
4  TZA2007AIS               51         16
5  TZA2007AIS               52         18
6  TZA2007AIS               53         26
7  TZA2007AIS               54         27
8  TZA2007AIS               54         34
9  TZA2007AIS               53         41
10 TZA2007AIS               55         42
11 TZA2007AIS               53         46
12 TZA2007AIS               55         47
13 TZA2007AIS               51         49
14 TZA2007AIS               55         51
15 TZA2007AIS               55         54
16 TZA2007AIS               53         61
17 TZA2007AIS               52         68
18 TZA2007AIS               52         78
19 TZA2007AIS               51         88
20 TZA2007AIS               52         91
21 TZA2007AIS               52

The PHIA part of this is done, so closing and adding new issue relating to adding new DHS surveys back to 1994 #46

ZWE PHIA has zero in sexcohab

Fixed those zeros in sexcohab by changing the sexbehav-vars-adam branch of naomi.utils. All good now I think!


Client OS break-down summary

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
Add a section to the report to show counts of each operating system.

No public interest for this request.


Extract constants for updateTeamNamesForDisplay

The PR removes some magic numbers from updateTeamNamesForDisplay and extracts filters

thanks for taking a look


Add DeviceOrVariationIndex enum

In the first pass of this stuff I basically ignored the VariationIndex table, and just used the Device table everywhere. This patch replaces this with a 'format table', DeviceOrVariationIndex, that is an enum with Device and VariationIndex members. We parse these as appropriate based on the DeltaFormat.
I have mixed feelings! On the plus side, this is consistent with the rest of the codebase and makes good use of codegen etc. On the downside, this will be more annoying to use without much clear benefit, since you'll need to use a match statement or similar in order to access the actual inner table that you want; this is especially annoying since the Device table seems to be more or less ignored now.
There are some alternatives that might make this less of a headache:

I could keep this code, but add some convenience methods to the enum for accessing the inner values, without unwrapping
I could remove this, just keeping the device table, and leaving it up to the user to interpret the fields correctly as needed.

There are probably other reasonable options, but those two feel like a good place to start the conversation.

This honestly seems like a good approach to me. The design is a bit unfortunate but the fault for that lies with the spec and this seems to accurately capture the concept with nice codegen.
All the abstraction around ValueRecord might be a performance problem for shaping but we’ll profile when we get to that and add an escape hatch if necessary.


Regression from use of opam ---option flag in tests

Introduced by #351
/home/opam: (run (shell "opam option solver=builtin-0install"))
opam: unknown command `option'.
Usage: opam COMMAND ...
Try `opam --help' for more information.
"/usr/bin/env" "bash" "-c" "opam option solver=builtin-0install" failed with exit status 2
2024-09-05 11:20.39: Job failed: Failed: Build failed

https://opam.ci.ocaml.org/github/ocaml/opam-repository/commit/8bb0696dddd93b63ad5a6ad3c5047beaa2d3bacf/variant/extras,opam-2.0-ocaml-4.14,gluten-lwt.0.5.2,tests

It's opam 2.0.10, so we need to update that to 2.2, which will help the timeout issue as well!
/home/opam: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
Linux 5.15.0-119-generic
The OCaml toplevel, version 4.14.2
2.0.10

Doing so! Thanks :)

I'm finding the code that sets the opam version quite tricky to follow. As a followup, I think this is probably worth a deep refactoring pass.
It looks like we are setting the opam version for all the obuilder specs at
https://github.com/shonfeder/opam-repo-ci/blob/e682604cd3f890291107f724d05e9e3896ed5be1/lib/build.ml#L9
But obviously something else is overriding this at some point, or we have another source of truth for which opam to use that only comes into effect on some platforms.

Ah, ok, it is coming from
https://github.com/ocurrent/opam-repo-ci/blob/e682604cd3f890291107f724d05e9e3896ed5be1/lib/build.ml#L156-L159
And the reason this is testing on opam < 2.2 is because these tests are meant to be testing the lower opam versions XD

So, iiuc, the only place where not already using the dev version is the place where we explicitly wanted to be testing older opam versions.

The alternative to opam option solver=builtin-0install is to use env "OPAMEXTERNALSOLVER" "builtin-0install"; but that also gave problems.  I agree, let's revert until we have a better plan.

For now I can add a test so that this is only added when opam version is >= 2.2, and that may still reduce the timeouts, tho it can't clear up all of them.
Also, as per https://github.com/ocurrent/opam-repo-ci/pull/351#discussion_r1744361162, it's not clear that we want to use 0install on opam < 2.3

But it's likely that only opam < 2.2 have the problem.

How about increasing the timeout for the solver.  I looked at that previously: https://github.com/ocurrent/opam-repo-ci/pull/342

The quick fix I thought would work here is not doing so... :/ I'll revert to get this resolved in prod and let us work out a proper fix here, along with any refactoring necessary.
Longer timeout seems like a good stopgap.


About

Hello  thank you very much for sharing. Can you share the acquisition of the evaluation indicators in this article?

Hello,can you tell me about your experimental hardware environment configuration including your computer system version

Hi @hanyueling, the evaluation code can be found in utils/eval.py.

I test and evaluate the indicators on the detection result file result.pkl based on the function in the eval.py file. The result obtained is as follows:
mIoU: 0.7542786070242297
Acc: 0.917440785114841
mAcc: 0.8877087975117793
mESM: 0.45479424029757287
mCR: 0.0005653710247349824
i don't how to solve this problem. And the code I wrote is as follows:
import os
import torch
from gorilla.config import Config
from utils import *
from utils.eval import affordance_eval, pose_eval
import argparse
import pickle
from tqdm import tqdm
import numpy as np
from scipy.spatial.transform import Rotation as R
加载 result.pkl 文件
result_path = 'log/detectiondiffusion/result.pkl'
with open(result_path, 'rb') as f:
result = pickle.load(f)
定义 affordance_list
affordance_list = list({affordance for shape in result for affordance in shape['affordance']})
调用 affordance_eval 函数
mIoU, Acc, mAcc = affordance_eval(affordance_list, result)
print(f"mIoU: {mIoU}")
print(f"Acc: {Acc}")
print(f"mAcc: {mAcc}")
提取 gt_poses 和 pred_poses
gt_poses = [{affordance: shape['pose'][affordance] for affordance in shape['affordance']} for shape in result]
pred_poses = [{affordance: shape['result'][affordance][1] for affordance in shape['affordance']} for shape in result]
确保 pose 是二维数组
def ensure_2d(poses):
return {aff: np.atleast_2d(poses[aff]) for aff in poses}
确保 gt_poses 和 pred_poses 是二维数组
gt_poses_2d = [ensure_2d(poses) for poses in gt_poses]
pred_poses_2d = [ensure_2d(poses) for poses in pred_poses]
提取并展平 GT 4x4 矩阵
def transform_pred_poses(pred_poses):
transformed_poses = {}
for affordance, pose in pred_poses.items():
if pose.shape == (2000, 7):  # 3 维位置 + 4 维四元数
positions = pose[:, :3]  # 提取 3 维位置
quaternions = pose[:, 3:]  # 提取 4 维四元数
rotations = R.from_quat(quaternions).as_matrix()  # 转换为 3x3 旋转矩阵
flattened_rotations = rotations.reshape(2000, 9)  # 展平为 9 维向量
transformed_poses[affordance] = np.hstack((flattened_rotations, positions))  # 拼接成 12 维向量
else:
transformed_poses[affordance] = pose
return transformed_poses
提取并展平 GT 4x4 矩阵，提取旋转和平移部分为 12 维向量
def transform_gt_poses(gt_poses):
transformed_poses = {}
for affordance, pose in gt_poses.items():
if pose.shape == (50, 4, 4):  # 处理 (50, 4, 4) 变换矩阵
rotations = pose[:, :3, :3].reshape(50, 9)  # 提取并展平 3x3 旋转矩阵为 9 维向量
translations = pose[:, :3, 3]  # 提取 3 维平移向量
transformed_poses[affordance] = np.hstack((rotations, translations))  # 拼接成 12 维向量
else:
transformed_poses[affordance] = pose
return transformed_poses
对每个 shape 的 gt 和 pred 进行转换
gt_poses_transformed = [transform_gt_poses(poses) for poses in gt_poses_2d]
pred_poses_transformed = [transform_pred_poses(poses) for poses in pred_poses_2d]
调用 pose_eval 函数
mean_min_distance, mean_rate = pose_eval(gt_poses_transformed, pred_poses_transformed)
输出指标
print(f"mESM: {mean_min_distance}")
print(f"mCR: {mean_rate}")

Hi @hanyueling, the evaluation code can be found in utils/eval.py.

I test and evaluate the indicators on the detection result file result.pkl based on the function in the eval.py file. The result obtained is as follows:
mIoU: 0.7542786070242297
Acc: 0.917440785114841
mAcc: 0.8877087975117793
mESM: 0.45479424029757287
mCR: 0.0005653710247349824
i don't how to solve this problem. And the code I wrote is as follows:
import os
import torch
from gorilla.config import Config
from utils import *
from utils.eval import affordance_eval, pose_eval
import argparse
import pickle
from tqdm import tqdm
import numpy as np
from scipy.spatial.transform import Rotation as R
result_path = 'log/detectiondiffusion/result.pkl'
with open(result_path, 'rb') as f:
result = pickle.load(f)
定义 affordance_list
affordance_list = list({affordance for shape in result for affordance in shape['affordance']})
mIoU, Acc, mAcc = affordance_eval(affordance_list, result)
print(f"mIoU: {mIoU}")
print(f"Acc: {Acc}")
print(f"mAcc: {mAcc}")
gt_poses = [{affordance: shape['pose'][affordance] for affordance in shape['affordance']} for shape in result]
pred_poses = [{affordance: shape['result'][affordance][1] for affordance in shape['affordance']} for shape in result]
def ensure_2d(poses):
return {aff: np.atleast_2d(poses[aff]) for aff in poses}
gt_poses_2d = [ensure_2d(poses) for poses in gt_poses]
pred_poses_2d = [ensure_2d(poses) for poses in pred_poses]
def transform_pred_poses(pred_poses):
transformed_poses = {}
for affordance, pose in pred_poses.items():
if pose.shape == (2000, 7):
positions = pose[:, :3]
quaternions = pose[:, 3:]
rotations = R.from_quat(quaternions).as_matrix()
flattened_rotations = rotations.reshape(2000, 9)
transformed_poses[affordance] = np.hstack((flattened_rotations, positions))
else:
transformed_poses[affordance] = pose
return transformed_poses
def transform_gt_poses(gt_poses):
transformed_poses = {}
for affordance, pose in gt_poses.items():
if pose.shape == (50, 4, 4):
rotations = pose[:, :3, :3].reshape(50, 9)
translations = pose[:, :3, 3]
transformed_poses[affordance] = np.hstack((rotations, translations))
else:
transformed_poses[affordance] = pose
return transformed_poses
gt_poses_transformed = [transform_gt_poses(poses) for poses in gt_poses_2d]
pred_poses_transformed = [transform_pred_poses(poses) for poses in pred_poses_2d]
mean_min_distance, mean_rate = pose_eval(gt_poses_transformed, pred_poses_transformed)
print(f"mESM: {mean_min_distance}")
print(f"mCR: {mean_rate}")

@toannguyen1904 @hanyueling
I have two questions that I would like to ask for your help. Thank you so much!

When running:
python3 detect.py --config  --checkpoint  --test_data <test data in the 3DAP dataset>
for testing, how do I prepare my configuration file?
Is the test data the entire 3DAP dataset? Or do I need to manually crop out the objects I want to test? If so, how do I crop them?
Thanks so much! Look forward to your reply.

@toannguyen1904 @hanyueling I have two questions that I would like to ask for your help. Thank you so much!

When running:
python3 detect.py --config  --checkpoint  --test_data <test data in the 3DAP dataset>
for testing, how do I prepare my configuration file?
Is the test data the entire 3DAP dataset? Or do I need to manually crop out the objects I want to test? If so, how do I crop them?
Thanks so much! Look forward to your reply.

Hello, problems solved yet? I met the same problem, it seems that the content of the repo is incomplete.


[QUESTION] Dynamically load options from file.

First check

[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the Typer documentation, with the integrated search.
[X] I already searched in Google "How to X in Typer" and didn't find any information.
[ ] I already searched in Google "How to X in Click" and didn't find any information.

Description
I would like to dynamically load arguments from a file in a specified directory (defaults to Path.cwd()).  I have a function for doing this in argparse.
I found an answer for how to do something like this in Click, but I'm not sure how I would do it following the Typer method of specifying options.
I was thinking I could use something like the following to handle those options, but I'm not sure how I could add them to the output when I run python main.py config --help
@app.command(
    context_settings={"allow_extra_args": True, "ignore_unknown_options": True
)
def config(ctx: typer.Context):
    for arg in ctx.args:
        handle_arg(arg)

Is there a good way of doing this?  Any help would be greatly appreciated.

After looking through more of the click documentation, I'm not seeing a clear way of doing this on click.  I have the following (untested) solution that I think will work.
Basically, if the user specifies a directory, I want the command to pick up a list of options specified in a file called manifest.json in that directory.  I ended up looking at the click Command API as well as the implementation and realized I could probably accomplish this by overriding Command.get_params method:
class DynamicCommend(typer.core.TyperCommand):
    params = super().get_params(ctx)
    # Make parser for given params (from click.core.Command.make_parser/parse_args)
    parser = click.OptionParser(ctx)
    for param in params:
        param.add_to_parser(parser, ctx)
    # Get current arguments (from click.core.BaseCommand.main)
    args = sys.argv[1:]
    if os.name == "nt" and windows_expand_args:
        args = click.utils_expand_args(args)
    else:
        args = list(args)
    # Parse current arguments
    opts, args, order = parser.parse_args(sys.argv)
    if 'directory'  not in opts:
        return params

    config_file = Path(opts['directory']).resolve()
    with open(config_file, 'r') as fp:
        config_opts = json.load(fp)
    for opt in config_opts.items():
        option = typer.Option(#make option)
        self.params.append(option)

Basically I'm just looking for a way to modify the help and functionality of a callback at runtime.
For example the Go Cobra library allows changing of the command at runtime
type InnerCmd func(cmd *cobra.Command, config map[string]interface{})
// Dynamically generate a command with flags that correspond to manifest.json
func GenerateCommand(use, short string, commandToRun InnerCmd) *cobra.Command {

    // Initial variant of the command
    cmd := &cobra.Command{
        Use:   use,
        Short: short,
        // If no manifest is found, this version of the command runs without calling innerCmd
        Run: func(cmd *cobra.Command, args []string) {
            Println("No manifest found. This command needs a manifest to function.")
            Fatal(1)
        },
    }
    manifest := getCWDManifest()
    createContextMap := func() map[string]interface{} {
        // parse JSON
    }
    # Add parsed options
    cmd.Run = func(cmd *cobra.Command){
        context := createContextMap()
        commandToRun(context)
    }

}

func config() *cobra.Command{
    // Use parsed manifest invocation values
    commandToRun := func(cmd *cobra.Command, context map[string]interface{}) {
        handleContextArgs(context)
    }

    // Dynamically generated command to load the invocation
    cmd := GenerateCommand(
        "test",
        "test command",
        commandToRun,
    )
    return cmd
}

func main() *cobra.Command {
    cmd := &cobra.Command{
        Use:   "example",
        Short: "use example",
    }
    cmd.AddCommand(config())
    return cmd
}

This comment might be useful.

That actually looks fantastic, I'll give it a try, thanks!


Refresh token

List of changes
Major

Created RefreshToken entity with OneToOne relationship to User
Added new jwt secrets and expiration time in application.properties
Implemented assignRefreshToken, refreshAccessToken, revokeRefreshToken
Replaced old userService.getUserFromRequest(httpServletRequest) with customUserDetailsService.getUserPrincipal() and userService.getAuthenticatedUser() (and changed tests for this)
Updated Spring boot version from 2.7.5 to 2.7.8

Minor

Changed WrongAuthenticationException to UnauthorizedException extenting AuthenticationException
Changed NotVerifiedUserException to extends AccessDeniedException
Handle all AuthenticationException and AccessDeniedException
Throw AccessDeniedException with 403 status code on @AllowedRoles and @DevPermit (before WrongAuthenticationException with 403)
Refactored application.properties a little

Checklist:

[ ] I have added tests with code coverage >=75%
[ ] My code pass Checkstyle rules
[ ] PR is reviewed manually again (to make sure you have 100% ready code)
[ ] All reviewers agreed to merge the PR

Closes #1680


Fix: Added Issue Template

Closes: #181
Created an issue template for the repository to encourage easy contribution.
Created two readme files for the issue template i.e bug_report and feature_request.

The issue template looks awesome. Bur please make the PR to dev branch not main. @VividhPandey003

The issue template looks awesome. Bur please make the PR to dev branch not main. @VividhPandey003

Hey @Rajdip019 Sorry for that. I have changed the base branch to dev. I have also added a pull request template. Could you please review this pull request now along with the new changes I have made

This looks good. @VividhPandey003 .
Congrats 🎉, your PR got merged. To be eligible for the swags from iNeuron X ClueLess. Follow this steps.

SignIn / SignUp in ClueLess Website.

Go to profile section from the top right hand corner.

Comment your profile URL under this comment tagging the person who merged your PR.

That’s it. Follow the leaderboard !
And don’t forget to share your achievement with your friends.


Implement placeholder testing to be run in CI

Contributes to the the planned issue of #8
Delivers just placeholder because I'm still not familiar with the codebase.
And was the smallest step.

Create placeholder test for:

DgcLibAutoConfigurationTest
SignedCertificateMessageBuilderTest
CertficateUtilsTest

Add test runner on CI for pull request.

@M3kH currently I'm also working on the Unit tests. I would like to merge your PR into my local dev branch. Then your contribution is not lost.
Is it okay for you? Then I would close this PR.

Is it okay for you? Then I would close this PR.

Yes sure go ahead! :-)


Stop using deprecated auto_ptr when using C++11 or later

std::auto_ptr was deprecated since C++11 and removed in C++17. Therefore, if C++11 is available, then it would be better to use std::unique_ptr rather than std::auto_ptr.

Yes, use unique_ptr unconditionally. Should have been part of the C++11 PR now that I think of it.

@ken-matsui were you planning to open a new PR that replaces with std::unique_ptr unconditionally?

@jonesmz I had planned, but I decided to work on my own fork.

@ken-matsui If you're planning to work on your own fork, consider using my patch series as the basis for it.
https://github.com/splinter-build/splinter/
I haven't updated my patches for the absolute latest commit of ninja, but i did rebase them all a few months ago, so they're not terribly out dated.

@jhasse Wow, thank you for letting me know :) I will read the code and send PRs if I can.

@jhasse Wow, thank you for letting me know :) I will read the code and send PRs if I can.
EDIT: I could not create a fork of splinter because I already forked ninja and do not want to delete it cry

I assume you meant to @ me.
I don't really understand the problem you're having with forking the splinter repository.
The splinter codebase is not really meant to be "forked", it's meant to be a patch series. Just git-clone the repository to your local workstation and apply the patches to your fork as you see fit.
Further, any contributions to splinter probably won't be super useful in the form of a PR, again due to the nature of that project being a patch series on top of ninja.

Ah, I totally misunderstood what your repository intended. Thank you :)


"No Internet access"

From Guru3D forum
https://forums.guru3d.com/threads/display-driver-uninstaller-thread.379506/page-95#post-5819321
I've been using DDU for years without any issues. A few moments ago, I used it once more (latest version) before installing the latest Nvidia drivers (452.06).
Everything went smoothly... except for the fact that Windows now thinks there's no internet connection, even though I'm typing this message from the same PC hardwired to my router via Ethernet.
Under Settings, the network status is listed as "No Internet access". I can't login and download anything from the Microsoft Store and Xbox apps, as I'm hit with a "You'll need the Internet for this" error message (even though I can navigate the store just fine). If I connect via WiFi, the same behavior happens. I've tried everything: clearing the Store's cache, setting up a static IP address, disabling and re-enabling the network adapter, flushing DNS and resetting IP via IP config on a command prompt window and even following the troubleshooter and going with a full network reset. Nothing helped.
Not sure if this has anything to do with DDU or not. I always unplug the Ethernet cable before running the software and rebooting to safe mode. I also always check the option to prevent Windows from installing updates until the new driver is completely installed. The only difference is that this time I forgot to uncheck that setting after completing the installation. I plugged the Ethernet cable back in and used my PC for a while before realizing I had left the setting checked/enabled. I usually uncheck/disable it before even reconnecting to the internet (by plugging the Ethernet cable back in). As soon as I noted the issue with Windows apps, I opened DDU, unchecked/disabled the setting and restarted my PC, but the issue persists.
Any ideas?

Hey, @Wagnard, thanks for offering to help me.
As it turns out, it really didn't have anything to do with DDU. I was able to solve my problem (for now, at least) by editing a registry key... that I had never touched before.
Found the answer thanks to this thread, where someone else reported having the same issue and was able to fix it by editing the registry key "Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet" and setting the DWORD value of "EnableActiveProbing" to 1 (default appears to be 0).
Weird thing is that I had never edited that key before, nor did I have any issues with Windows not being able to detect internet access for its own apps and settings prior to last week.
I did update to 2004 sometime before the latest drivers, so, that may be related to the problem. Microsoft always work in mysterious ways.
P.S.: Also, thanks @Watcher for pinging Wagnard. :)


Console messages have no minimum height

Messages should have min-height of probably 1em, so that if you enter just whitespace they don't get squished up and mess up the layout.
Noticing this with Ooplie's console. Less noticeable with the simple-console demo because it outputs "undefined" in that case.

Same problem in the command history menu.


There a plugin API for this

There a typo in this... ;-)
https://github.com/YOURLS/YOURLS/wiki/Possible-With-A-Plugin

@sirtet Yeah, thanks! :mag:


feat: add some icon

Please run pnpm run format in your commit.

Please run pnpm run format in your commit.

Processed.


API for stopping the debugger

Apologies if such a feature is already present, I couldn't find it in the project.
Could I request an API method to stop the debugger once it's been loaded? I'm from the RubyMine team, and our use case for this is the following: the users would like to be able to launch their program and then later attach our debugger to it. Our debugger conflicts with the debug gem, however, so if the user project contains this gem (and Rails apps include it by default), then the attaching our debugger will lead to problems (mostly hanging, I think). The debug gem is loaded at the program start, so if we try to attach our debugger later, we cannot disable the debugger from debug, and so our debugger won't work; the only way to disable it is by setting the environment variable RUBY_DEBUG_ENABLE before launching the program, but that is up to the user only, not to RubyMine (if they launch their app in the terminal, not via an RM run configuration). So, is it or would it be possible to shut the debugger down completely during execution? Then we could call such a hypothetical stop method upon starting our debugger, and everything would work.
To be more precise, one of the incompatibilities is that our debugger hangs at the DEBUGGER__::SESSION@server thread, though there may be other issues as well.

If the problem is activation by require, https://github.com/ruby/debug/issues/797 should help once it's implemented.
Before that, I think asking users to add require: "debug/prelude" or require: false to gem "debug" can also work. Both of them will not activate the debugger and the former can still provide breakpoint methods and only load the debugger when they're hit.


Add new generic toast component to support any HTML markup as a template

Stacked display of toast items must support "ascending" and "descending" orders.
Must support any valid DOM selector string and any HTML fragments.

Completed.


Add new IndexLogEntryTags to cache InMemoryFileIndex

What is the context for this pull request?

Tracking Issue: #317
Parent Issue: n/a
Dependencies: n/a
Fixes #317

What changes were proposed in this pull request?

This PR introduces 2 new IndexLogEntryTags for caching InMemoryFileIndex.
Currently, InMemoryFileIndex is created for every query execution. However, it incurs a new spark job & sometimes takes longer in cluster mode. To avoid the overhead, we could cache InMemoryFileIndex object for each index entry.
  // INMEMORYFILEINDEX_INDEX_ONLY stores InMemoryFileIndex for index only scan.
  val INMEMORYFILEINDEX_INDEX_ONLY: IndexLogEntryTag[InMemoryFileIndex] =
    IndexLogEntryTag[InMemoryFileIndex]("inMemoryFileIndexIndexOnly")

  // INMEMORYFILEINDEX_HYBRID_SCAN stores InMemoryFileIndex including appended files
  // for Hybrid Scan.
  val INMEMORYFILEINDEX_HYBRID_SCAN: IndexLogEntryTag[InMemoryFileIndex] =
    IndexLogEntryTag[InMemoryFileIndex]("inMemoryFileIndexHybridScan")

Does this PR introduce any user-facing change?

Yes, if the cached InMemoryFileIndex object is used, we could avoid unnecessary listing files jobs for every query execution.
How was this patch tested?

Unit test

Currently, InMemoryFileIndex is created for every query execution. However, it incurs a new spark job & sometimes takes longer in cluster mode.

Can you attach the screenshots of jobs from Spark UI if available (before and after)? It will be very useful to check the improvements.

Currently, InMemoryFileIndex is created for every query execution. However, it incurs a new spark job & sometimes takes longer in cluster mode.

Can you attach the screenshots of jobs from Spark UI if available (before and after)? It will be very useful to check the improvements.

Test scripts:
hs.refreshIndex(indexName) // use refreshIndex to clear the tags.
val linetable = spark.read.parquet(tableName)
val filter = linetable.filter(linetable("l_partkey") isin (1234,12341234, 123456)).select("l_suppkey","l_quantity","l_shipdate","l_extendedprice","l_discount","l_orderkey")
measure(filter.count)
val filter = linetable.filter(linetable("l_partkey") isin (1234,12341234, 123456)).select("l_suppkey","l_quantity","l_shipdate","l_extendedprice","l_discount","l_orderkey")
measure(filter.count) // second query with cache

hs.refreshIndex(indexName)
val filter = linetable.filter(linetable("l_partkey") isin (1234,12341234, 123456)).select("l_suppkey","l_quantity","l_shipdate","l_extendedprice","l_discount","l_orderkey")
measure(filter.count)
hs.refreshIndex(indexName) // clear cache
val filter = linetable.filter(linetable("l_partkey") isin (1234,12341234, 123456)).select("l_suppkey","l_quantity","l_shipdate","l_extendedprice","l_discount","l_orderkey")
measure(filter.count) // second query without cache

Result:
linetable: org.apache.spark.sql.DataFrame = [l_orderkey: bigint, l_partkey: bigint ... 14 more fields]
filter: org.apache.spark.sql.DataFrame = [l_suppkey: bigint, l_quantity: double ... 4 more fields]
duration: 2212
filter: org.apache.spark.sql.DataFrame = [l_suppkey: bigint, l_quantity: double ... 4 more fields]
duration: 868
filter: org.apache.spark.sql.DataFrame = [l_suppkey: bigint, l_quantity: double ... 4 more fields]
duration: 2235
filter: org.apache.spark.sql.DataFrame = [l_suppkey: bigint, l_quantity: double ... 4 more fields]
duration: 2121

Spark UI:

Test scripts:
hs.refreshIndex(indexName) // use refreshIndex to clear the tags.
val linetable = spark.read.parquet(tableName)
val filter = linetable.filter(linetable("l_partkey") isin (1234,12341234, 123456)).select("l_suppkey","l_quantity","l_shipdate","l_extendedprice","l_discount","l_orderkey")
measure(filter.count)
val filter = linetable.filter(linetable("l_partkey") isin (1234,12341234, 123456)).select("l_suppkey","l_quantity","l_shipdate","l_extendedprice","l_discount","l_orderkey")
measure(filter.count) // second query with cache

hs.refreshIndex(indexName)
val filter = linetable.filter(linetable("l_partkey") isin (1234,12341234, 123456)).select("l_suppkey","l_quantity","l_shipdate","l_extendedprice","l_discount","l_orderkey")
measure(filter.count)
hs.refreshIndex(indexName) // clear cache
val filter = linetable.filter(linetable("l_partkey") isin (1234,12341234, 123456)).select("l_suppkey","l_quantity","l_shipdate","l_extendedprice","l_discount","l_orderkey")
measure(filter.count) // second query without cache

Result:
linetable: org.apache.spark.sql.DataFrame = [l_orderkey: bigint, l_partkey: bigint ... 14 more fields]
filter: org.apache.spark.sql.DataFrame = [l_suppkey: bigint, l_quantity: double ... 4 more fields]
duration: 2212
filter: org.apache.spark.sql.DataFrame = [l_suppkey: bigint, l_quantity: double ... 4 more fields]
duration: 868
filter: org.apache.spark.sql.DataFrame = [l_suppkey: bigint, l_quantity: double ... 4 more fields]
duration: 2235
filter: org.apache.spark.sql.DataFrame = [l_suppkey: bigint, l_quantity: double ... 4 more fields]
duration: 2121

Spark UI:

Great! Can you update the description with this info (you can just copy/paste)? Thanks!

Great! Can you update the description with this info (you can just copy/paste)? Thanks!

@sezruby Can you fix the conflicts please?

@sezruby Can you fix the conflicts please?


unit test failure when mosek not installed

Heard from a new windows user that when only cvxopt is installed, we get a unit test failure related to mosek.

[ ] update continuous integration to include a machine with only cvxopt installed (?) @galbramc
[ ] find what's causing this issue and fix it

Would you also want to have testing that only tests mosek without cvxopt? This is what is actually happening on the windows test machine because I could not get cvxopt compiled on windows.
How did the user get cvxopt installed?!

I believe they used Pythonxy (https://code.google.com/p/pythonxy/), which includes an option to install cvxopt as part of the pythonxy install.
Testing with cvxopt (and no mosek) is the most pressing special case because cvxopt is open source, making it the only free option for non-academic users.

I currently have anaconda installed on the Windows machine. Do you suggest
I uninstall that and install pythonxy instead? Pythonxy says it does not
play nice with other python installs.
On Tue, 4 Aug 2015 at 16:48 Warren Hoburg<EMAIL_ADDRESS>wrote:

I believe they used Pythonxy (https://code.google.com/p/pythonxy/), which
includes an option to install cvxopt as part of the pythonxy install.
Testing with cvxopt (and no mosek) is the most pressing special case
because cvxopt is open source, making it the only free option for
non-academic users.
—
Reply to this email directly or view it on GitHub
https://github.com/convexopt/gpkit/issues/312#issuecomment-127757472.

No, I think the current CI setup is great and we should stick with it. If we did pythonxy tests I would think they should be in addition. Does a virtualenv setup make sense here, or does that defeat the purpose of on-hardware CI?

Yeah we could setup virtualenv. I could probably use some help though from
someone, I have never used virtualenv, particularly on a windows machine. I
presume we would need to install pythonxy in the virtualenv every time we
run the test?
On Tue, 4 Aug 2015 at 21:27 Warren Hoburg<EMAIL_ADDRESS>wrote:

No, I think the current CI setup is great and we should stick with it. If
we did pythonxy tests I would think they should be in addition. Does a
virtualenv setup make sense here, or does that defeat the purpose of
on-hardware CI?
—
Reply to this email directly or view it on GitHub
https://github.com/convexopt/gpkit/issues/312#issuecomment-127812354.

This might go completely against the spirit of continuous integration, but for this add-on unit testing case, I think it might be fine to just run the unit tests (on the same installation every time), to make sure we haven't introduced code that assumes mosek exists.
Does that seem reasonable? And more importantly, would it make this a lot easier?

I added another axis so we can try to test cvxopt by it self, and
cvxopt+mosek. I don't have an explicit mosek only test on linux and OSX,
but since I could not get cvxopt installed on the windows machine it is
only testing with mosek.
I can't easily test things at the moment until someone creates a pull
request and triggers the builds. This should of course fail unless the
mosek dependency in the tests is fixed.
On Tue, 4 Aug 2015 at 22:30 Warren Hoburg<EMAIL_ADDRESS>wrote:

This might go completely against the spirit of continuous integration, but
for this add-on unit testing case, I think it might be fine to just run the
unit tests (on the same installation every time), to make sure we haven't
introduced code that assumes mosek exists.
Does that seem reasonable? And more importantly, would it make this a lot
easier?
—
Reply to this email directly or view it on GitHub
https://github.com/convexopt/gpkit/issues/312#issuecomment-127822187.

Cool, so just to confirm, the "cvxopt" axis is only cvxopt, and "mosek" is cvxopt+mosek?

Yeah, I didn't feel like making the combo explicit as the name should be
really long.
How do I expose the system numpy to the virtialenv? I also have cvxopt
installed with --user which I'm guessing the virtualenv is also going to
ignore.
On Wed, 05 Aug 2015, 10:30 Warren Hoburg<EMAIL_ADDRESS>wrote:

Cool, so just to confirm, the "cvxopt" axis is only cvxopt, and "mosek" is
cvxopt+mosek?
—
Reply to this email directly or view it on GitHub
https://github.com/convexopt/gpkit/issues/312#issuecomment-128016174.

is it an anaconda virtualenv? If so, just give the packages, e.g.
conda create -n cvxopt_only python2.7 numpy pint
then you would
source activate cvxopt_only
and install cvxopt (python setup.py install) into the activated environment
Hope this is helpful (?) .

Not using Anaconda on the Linux or the Mac.
On Wed, 05 Aug 2015, 14:21 Warren Hoburg<EMAIL_ADDRESS>wrote:

is it an anaconda virtualenv? If so, just give the packages, e.g.
conda create -n cvxopt_only python2.7 numpy pint
then you would
source activate cvxopt_only
and install cvxopt (python setup.py install) into the activated
environment
Hope this is helpful (?) .
—
Reply to this email directly or view it on GitHub
https://github.com/convexopt/gpkit/issues/312#issuecomment-128098717.

With standard virtualenv you should be able to simply pip install:
source <env name>/bin/activate
pip install numpy
pip install pint
cd <path to cvxopt>
python setup.py install

@galbramc we can debug in person if easier

Yes let's do that. I have a meeting at 3, I can let you know when I'm back.
On Wed, 05 Aug 2015, 14:40 Warren Hoburg<EMAIL_ADDRESS>wrote:

@galbramc https://github.com/galbramc we can debug in person if easier
—
Reply to this email directly or view it on GitHub
https://github.com/convexopt/gpkit/issues/312#issuecomment-128103593.

I'm back.
On Wed, 05 Aug 2015, 14:40 Marshall Galbraith<EMAIL_ADDRESS>wrote:

Yes let's do that. I have a meeting at 3, I can let you know when I'm back.
On Wed, 05 Aug 2015, 14:40 Warren Hoburg<EMAIL_ADDRESS>wrote:

@galbramc https://github.com/galbramc we can debug in person if easier
—
Reply to this email directly or view it on GitHub
https://github.com/convexopt/gpkit/issues/312#issuecomment-128103593.

I added the flag --system-site-packages to virtualenv. Hopefully this solves the problem. Give it a try.

So I don't know how to get build.py to ignore mosek. Right now it just looks in the home directory to see if it's there, and if so gpkit assumes that mosek is installed and tries to use it. This means I would have to modify the testing script to delicately rename the mosk directory in the home directory to avoid gpkit configuring it self to use moske. The mucking with .bashrc also precludes me from preventing gpkit from finding mosek.

Do all these tests pass on your compter (https://acdl.mit.edu/csi/job/gpkit/buildnode=reynolds,optimizer=mosek/224/console). Looking at the output it does not look like these are errors from not finding mosek (this is the case that should be testing mosek).

Can we add a flag to build.py to tell it to not look for mosek?

@galbramc, yes, all those tests pass on my computer. That's the first time I've seen those failures on jenkins -- looks like solver issues to me, though the errors are admittedly difficult to parse/understand.
@bqpd what do you think of adding a --nomosek flag to build.py and/or setup.py to deal with this issue? Seems reasonable to me but I may be missing a problem.

Adding the flag --nomosek to setup.py should do the trick.
I don't know why the tests with mosek failed... Could we try one more time? I tested things out manually on the machine and it worked. I made a couple of small changes to the jenkins script.

hmm, still seeing similar errors
On Aug 6, 2015, at 9:56 AM, Marshall Galbraith<EMAIL_ADDRESS>wrote:

Adding the flag --nomosek to setup.py should do the trick.
I don't know why the tests with mosek failed... Could we try one more time? I tested things out manually on the machine and it worked. I made a couple of small changes to the jenkins script.
—
Reply to this email directly or view it on GitHub.

I removed the virtualenv. Can we give it a try again?

I was able to reproduce the error. The problem is I am running multiple instances of gpkit at the same time. It appears you are constantly creating and deleting the folder ~/gpkit_tmp. This fundamentally means I cannot have multiple tests running at the same time on the same computer. So I can either serialize the testing, or you can use some other folder other than ~/gpkit_tmp as a temporary folder. I believe python provides an interface to request a temporary folder in /tmp with a unique name, but don't recall for sure how to use it.

I've removed the duplicate testing until we get the --nomosek flag. The test should work again, but we are back to testing cvxopt+mosek at the moment.

Sorry, forgot to fix one line in the script. Should work now.

One more try. I had forgotten to uninstall mosek on the mac and I think that was messing with the virtualenv

Try again.

Thanks @galbramc for getting CI back to a working state. Here's an updated list of todos. Waiting on @bqpd's thoughts on adding --nomosek flag to setup.py.

[ ] @bqpd what do you think of adding a --nomosek flag to build.py and/or setup.py to deal with this issue? Seems reasonable to me but I may be missing a problem.
[ ] update continuous integration to include a machine with only cvxopt installed (?) @galbramc
[ ] original error was in t_gp_solution_array.TestGPSolutionArray.test_table due to solver='mosek'. @whoburg fixed this in e5acc459b496a7025afe007f295a6650c7825d22. Temporarily add back solver='mosek' on a branch to confirm CI catches the error (but don't merge that change).
[ ] It appears we are constantly creating and deleting the folder ~/gpkit_tmp. This fundamentally means we cannot have multiple tests running at the same time on the same computer. So we can either serialize the testing, or use some other folder other than ~/gpkit_tmp as a temporary folder. I believe python provides an interface to request a temporary folder in /tmp with a unique name, but don't recall for sure how to use it.

The --nomosek flag would only be used for setting up test environments? Most users won't run build.py themselves.

Yes. I only need --nomosek to setup testing workout it. I would need it for
setup.py. It's either that or I serialize thinks and very carefully rename
~/mosek to prevent setup from finding it. I really do not like that
solution.
On Fri, 07 Aug 2015, 19:51 bqpd<EMAIL_ADDRESS>wrote:

The --nomosek flag would only be used for setting up test environments?
Most users won't run build.py themselves.
—
Reply to this email directly or view it on GitHub
https://github.com/convexopt/gpkit/issues/312#issuecomment-128862670.

@bqpd, is your point that we know what's causing the original unit test failure (indeed, we do), and so we might as well just fix it and not have cvxopt-only testing be part of our CI?
That will work short term but don't you think there's value in CI testing a cvxopt only setup?

If you want gpkit to always work with only cvxopt, then you want to make
sure you test with only cvxopt to make sure a similar bug to what you just
fixed does not get reintroduced.
I don't run build.py when I setup the testing. I use setup.py to mimic what
a user would do. I just need the --nomosek flag on setup.py so I can test
the situation where a user does not have mosek on their system, but I don't
want to constantly rename the ~/mosek folder to prevent setup.py from
finding it.
On Sat, 8 Aug 2015 at 10:25 Warren Hoburg<EMAIL_ADDRESS>wrote:

@bqpd https://github.com/bqpd, is your point that we know what's
causing the original unit test failure (indeed, we do), and so we might as
well just fix it and not have cvxopt-only testing be part of our CI?
That will work short term but don't you think there's value in CI testing
a cvxopt only setup?
—
Reply to this email directly or view it on GitHub
https://github.com/convexopt/gpkit/issues/312#issuecomment-128986600.

Naw, I meant changing the unit test so that it doesn't unnecessarily call on MOSEK, as below.
We can definitely add the --nomosek flag for the case where mosek is installed but we don't want to access it.
    def test_table(self):
        x = Variable('x')
        gp = Model(x, [x >= 12])
        # sol = gp.solve(solver='mosek', verbosity=0)
        sol = gp.solve(verbosity=0)
        tab = sol.table()
        self.assertTrue(isinstance(tab, str))

I think it's important to test gpkit with only cvxopt since that is a supported mode. If that fix to the unit tests works then thats fine with me, I don't know the details of gpkit.
I can use a virtualevn where mosek is not installed for testing without mosek. But I will have ~/mosek. If you can look at the python environment to decide if testing should be done with mosek or not works for me. Otherwise I need the explicit flag --nomoske to tell gpkit to not use mosek.
I don't know how you choose the optimizers. Does the unit testing test both cvxopt and mosek when both are available?

Yup, it does.

I'll add the --nomosek flag, then! Alternately, if you're running a bash script to set this all up, you could edit the gpkit/env/settings file to change which solvers are used.

So if I just remove mosek from gpkit/env/settings you won't test with mosek?

Let me try adding the echo command. I can easily do that.

Yup, it only tests solvers that are in that file.

So I tested things on the master branch. If I don't have mosek in the DYLD_LIBRARY_PATH on the mac I get these errors:
======================================================================
ERROR [0.002s]: test_table (gpkit.tests.t_gp_solution_array.TestGPSolutionArray)
Traceback (most recent call last):
File "/Users/jenkins/workspace/gpkit/buildnode/macys/optimizer/cvxopt/gpkit/tests/t_gp_solution_array.py", line 70, in test_table
sol = gp.solve(printing=False)
File "/Users/jenkins/workspace/gpkit/buildnode/macys/optimizer/cvxopt/gpkit/geometric_program.py", line 353, in solve
return self._solve(*args, **kwargs)
File "/Users/jenkins/workspace/gpkit/buildnode/macys/optimizer/cvxopt/gpkit/geometric_program.py", line 379, in _solve
from ._mosek import expopt
File "/Users/jenkins/workspace/gpkit/buildnode/macys/optimizer/cvxopt/gpkit/_mosek/expopt.py", line 26, in
raise ImportError("Could not load MOSEK library: "+repr(e))
ImportError: Could not load MOSEK library: ImportError(OSError('dlopen(/Users/jenkins/.gpkit/expopt.so, 10): Library not loaded: @loader_path/libmosek64.7.1.dylib\n  Referenced from: /Users/jenkins/.gpkit/expopt.so\n  Reason: image not found',),)
Oddly enough it seems that it working on the Linux machine.
Also, I still have to run things serially due to the gpkit_tmp folder. This means nobody can ever run gpkit in parallel on a computer to solve multiple problems simultaneously.

@whoburg I used @bqpd trick to only use cvxopt with the command
echo "installed_solvers : cvxopt" > $GPKIT/env/setting
However, the gpkit master branch still seems to try to test mosek, or at least it tries to load the shared library even if it isn't getting used. I'm only getting errors on OSX on the moment though. You can see the output here:
https://acdl.mit.edu/csi/job/gpkit/buildnode=macys,optimizer=cvxopt/236/console

Is there a typo in setting vs settings in that command?
should
echo "installed_solvers : cvxopt" > $GPKIT/env/setting
instead be
echo "installed_solvers : cvxopt" > $GPKIT/env/settings
?
@bqpd I already removed the mosek call from that unit test in https://github.com/convexopt/gpkit/commit/e5acc459b496a7025afe007f295a6650c7825d22

Yup, it should be settings, my mistake!

Looks like its working now after the typo got fixed. I believe you have testing of cvxopt alone now.
The testing is still serial due to gpkit_tmp/. Maybe that should be opened as another issue.

Working perfectly as confirmed by #314!
Remaining checkboxes are a) the --nomosek flag (@galbramc seems like we can skip this for now?), and b) the gpkit_tmp serial naming issue.

gpkit_tmp is fixed in the GP refactor, which is ready for code review and
will hopefully be merged soon.

Great! Dropping --nomosek for now.

What still needs to be done in this issue?

I believe that this issue has been resolved, and @whoburg has opened a new issue in regards to parallel testing.

Great!

@bqpd confirm the third checkbox above (re: gpkit_tmp) should be checked off?

Yup, we create proper tmp folders now


Tasks issue when accessing task

Description
Gives error when trying to access tasks
File "/home/ubuntu/.local/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 565, in _run_script
exec(code, module.dict)
File "/home/ubuntu/AGiXT/agixt/pages/4-Tasks.py", line 22, in
existing_tasks = task_agent.get_tasks_files()
File "/home/ubuntu/AGiXT/agixt/Tasks.py", line 92, in get_tasks_files
files = os.listdir(os.path.join("agents", self.agent_name, "tasks"))
Steps to Reproduce the Bug

Go create  agent any provider
Go to tasks
Error will show

Expected Behavior
It should not show error
Actual Behavior
Shows error.
File "/home/ubuntu/.local/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 565, in _run_script
exec(code, module.dict)
File "/home/ubuntu/AGiXT/agixt/pages/4-Tasks.py", line 22, in
existing_tasks = task_agent.get_tasks_files()
File "/home/ubuntu/AGiXT/agixt/Tasks.py", line 92, in get_tasks_files
files = os.listdir(os.path.join("agents", self.agent_name, "tasks"))
Additional Context / Screenshots
No response
Operating System

[X] Microsoft Windows
[ ] Apple MacOS
[X] Linux
[X] Android
[ ] iOS
[ ] Other

Python Version

[ ] Python <= 3.9
[X] Python 3.10
[ ] Python 3.11

Environment Type - Connection

[X] Local
[X] Remote

Environment Type - Container

[ ] Using Docker
[X] Not Using Docker

Acknowledgements

[X] My issue title is concise, descriptive, and in title casing.
[X] I have searched the existing issues to make sure this bug has not been reported yet.
[X] I am using the latest version of AGiXT.
[X] I have provided enough information for the maintainers to reproduce and diagnose the issue.

Problem was fixed with commit #bf08aaa

Problem was fixed with commit #bf08aaa
can be closed, i suppose

My bad sorry I thought you were commenting on the another issue for the tasks status. Yeah it seems like it's fixed.


Footer

Summary
Hello, Really appreciate for the great app and efforts.
On TV, I wanted to add same as like Header but on the bottom single NavigationSlideView item  can you help me to achieve this thanks
Please confirm the following

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.

I took so much time on doing the navigation slide view on the left, so if it's not already implemented by Android, you will have to do it yourself from scratch.
Not sure if I can help you


New version: pizzaboxer.Bloxstrap version 2.0.0

Pull request has been created with WinGet Releaser v2 :rocket:
Microsoft Reviewers: Open in CodeFlow

@microsoft-github-policy-service agree

https://github.com/microsoft/winget-pkgs/pull/92827#issuecomment-1369993178

#92827 (comment)

This package may have accidentally become one of a select few where a pre-existing dependency continues to be allowed, despite the general block on dependencies.

Hi @pizzaboxer,
This version requests to install the .NET Desktop Runtime, even when it's already installed on the system:

Is there an installer switch to bypass this?

Hi @pizzaboxer,
This version requests to install the .NET Desktop Runtime, even when it's already installed on the system:

Works for me, though. This is a generic error that just means it's not installed on the system.

Hi @pizzaboxer,
This version requests to install the .NET Desktop Runtime, even when it's already installed on the system:
Is there an installer switch to bypass this?

The installer is part of the application, which is made in .NET 6, so there's not really any way to get around it unfortunately.
This is strange, I have the x64 SDK installed on my PC and launching the x86 version works fine.

The installer is part of the application, which is made in .NET 6, so there's not really any way to get around it unfortunately. This is strange, I have the x64 SDK installed on my PC and launching the x86 version works fine.

There was an issue with mixing dependency architectures on my end. Sorry for the concern.


ddev-redis-7 doesn't work with v1.23.0

I see that tests against DDEV HEAD have been failing for quite some time, and now that v1.23.0 is released, all tests are failing.
https://github.com/ddev/ddev-redis-7/actions
From Discord, https://discord.com/channels/664580571770388500/1068592266752573440/1230052601404592170

Has anyone seen the error * error decoding 'services[redis].deploy.resources.limits.cpus': unexpected value type int for cpus since the latest update of ddev to v1.23.0 ? Since this update the redis addon fails. (ddev/ddev-redis-7)

Could you please get this fixed up? If you're not getting emails about failed tests, it would be great to sort that out as well, thanks!

Related:

https://github.com/oblakstudio/ddev-minio/issues/35

Fixed in #28.


ApiListingResource.getListing method is not recognized as valid Java method annotated with @HttpMethod.

Hi,
I'm using Swagger with Jersey Jax-RS and I'm receiving the following error when I try to deploy the application:
:com.sun.jersey.api.container.ContainerException:Method, public javax.ws.rs.core.Response io.swagger.jaxrs.listing.ApiListingResource.getListing(javax.ws.rs.core.Application,javax.servlet.ServletConfig,javax.ws.rs.core.HttpHeaders,javax.ws.rs.core.UriInfo,java.lang.String), annotated with GET of resource, class io.swagger.jaxrs.listing.ApiListingResource, is not recognized as valid Java method annotated with @HttpMethod.
Do you know what the fix might be for this issue?
I'm using swagger-jaxrs-1.5.6,   as our Jersey version is 1.1.x.
Could it be that the fix for the problem was merged in a later version?
I've followed the steps on this page for setting up Swagger: https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-1.X-Project-Setup-1.5#using-a-custom-application-subclass
Thank you!

Try updating to 1.5.18 first.

Thanks! I tried using this version but it seems our compiler is too old to support it.

Which Java version do you use?

I'm using Java 7.

When I try to deploy the application the following error comes up:
Caused By: java.lang.UnsupportedClassVersionError: io/swagger/jaxrs/config/DefaultJaxrsConfig : Unsupported major.minor version 51.0.

Hmm, that shouldn't be the case. 1.5.6 is fairly old though, can you try any of the newer versions first?

Sorry, I just checked again and we are using Java version 1.6..
I tried with all the swagger versions from 1.5.11 upward and the problem is the same.
While for versions 1.5.6 - 1.5.10 the initial problem appears, with the getListing method.
I suppose in this case we have to wait until we upgrade to a newer Java version?

1.6 has been EOL'ed years ago. So has 1.7. We don't officially support 1.6 anymore, and version 2.0 of swagger-core supports Java 1.8 and above only.

Ok, thank you.


Fix build error on latest unstable nixpkgs

On latest unstable nixpkgs, the build fails with the following error :
error: function 'buildVscodeExtension' called without required argument 'pname'

this fixes the error :+1:

thanks anyway, it's very appreciated!


Scrolling not working

Describe the bug
Unable to scroll in an app using the windowsAppSDK
Steps to reproduce the bug
Windows 11 Pro, 22H2, Windows Feature Experience Pack 1000.22638.1000.0, Version: <IP_ADDRESS>
OS Version: 10.0.22621.1105
Unable to scroll at all in the files app
Expected behavior
one should be able to scroll in the app
Screenshots
No response
NuGet package version
None
Packaging type
No response
Windows version
Windows 11 version 22H2 (22621, 2022 Update)
IDE
Other
Additional context
No response

Not enough information is provided to begin investigating. This could be an issue with WinAppSDK or the Files app. Is there a repro from Files?

The repository is here https://github.com/files-community/Files

I believe it related to this #2791


Indexing issue with stride in row vecor.

The bug is as follows:
scala> import org.nd4j.linalg.indexing._

scala> val arr = Nd4j.create(Array(1f,2f,3f,4f))
arr: org.nd4j.linalg.api.ndarray.INDArray = [ 1.00, 2.00, 3.00, 4.00]

//IntervalIndex without stride works fine.
scala> val subarr = arr.get(NDArrayIndex.interval(0,2))
subarr: org.nd4j.linalg.api.ndarray.INDArray = [ 1.00, 2.00]
But row vector's get doesn't work, if IntervalIndex has explicit stride field.

//IntervalIndex with stride doesn't work.
//This should return [1.00, 3.00].
scala> val subarr2 = arr.get(NDArrayIndex.interval(0,2,3))
subarr2: org.nd4j.linalg.api.ndarray.INDArray = [ 1.00, 2.00]

fixed.


cfour: init at 2.1

This adds the public CFour 2.1, which is available after registration but free of charge. Some specialties of CFour: with GCC 10 and the current GFortran from nixpkgs master it produces segfaults, which did not happen with stdenv from nixos-20.09. This seems to be a known bug in GCC 10 for some very special functions. It is necessary to disable the stack protector and string optimisations to work around the segfaults.
Furthermore CFour works in principle with OpenMPI. It is just not called directly but as with ORCA by the entry point executable xcfour. Instead, they are trying to obtain the number of MPI threads from an environment variable, see also the cfour manual. I try this here but xcfour does not see the environment variable and instead of mpirun -np 4 xinitenv xcfour executes mpirun -np xinitevn, which obviously fails. I don't see why it is not passed properly. I am open for suggestions. For the moment it works well without MPI.

Was finally able to get it running correctly with MPI. It was a just a problem with escapes in Nix-strings. It also actually recognises mpich as an option, so I removed the OpenMPI assert.
I was also able to build it with MVAPICH2. Is there a reason why you've put it in the legacy section of the overlay? On our OmniPath cluster MVAPICH2 is significantly faster than OpenMPI, especially for CP2K, where OpenMPI also produces memory leaks in our configuration.

I was also able to build it with MVAPICH2. Is there a reason why you've put it in the legacy section of the overlay?

"legacy version" only refers to libxc4 here.
I haven't used MVAPICH that much since we rarely use Infiniband. I think the derivation could use a little clean up to be able to build build different variants with the flip of a switch. MVAPICH is one of the cases which should be moved upstream eventually.


Minimal setup takes ridiculous amounts of disk space

I created the most minimal database to test tiedot a bit.
I created one collection, test, and inserted one document into it:
{"test": "yep"}

I checked the filesystem, and there's 768MB of files created by tiedot.
I can understand some preallocation, but having the minimal setup take 3/4 of a GIGABYTE of disk space is quite excessive.

I've pasted some text from a wiki page I wrote when I was evaluating tiedot for a project.  The line numbers are no longer correct, but it looks like all the settings are still the same.  Hope that helps!

Tiedot configuration
Tiedot pre-allocates files for all of the data structures it uses, and grows them when necessary.  The default config creates a 32MB file for the data, and then one 32MB file per index (there's an id index by default, plus whatever indices we would create).  That's a lot of wasted space for our constrained devices.  Fortunately, the author has defined constants for all of the settings, and by choosing different initial values it's easy to start with a small disk footprint that can grow as needed.  The settings below assume that there's not a lot of flash space available for storing reports, and as such no more than a few thousand reports will be stored at any given time.
There are two settings in data/collection.go that control the size of the data file and maximum document size (lines 16-17):
	COL_FILE_GROWTH = 32 * 1048576 // Collection file initial size & size growth (32 MBytes)
	DOC_MAX_ROOM    = 2 * 1048576  // Max document size (2 MBytes)

I changed these values to 4MB and 1MB respectively, which causes tiedot to pre-allocate a 4MB data file initially, and then grow that in 4MB increments.
There are several settings in data/hashtable.go that control the behavior of the on-disk hashtable implementation (lines 16-22):
	HT_FILE_GROWTH  = 32 * 1048576                          // Hash table file initial size & file growth
	ENTRY_SIZE      = 1 + 8 + 8                             // Hash entry size: validity (single byte), key (uint64), value (uint64)
	BUCKET_HEADER   = 8                                     // Bucket header size: next chained bucket number (int 10 bytes)
	PER_BUCKET      = 16                                    // Entries per bucket
	HASH_BITS       = 16                                    // Number of hash key bits
	BUCKET_SIZE     = BUCKET_HEADER + PER_BUCKET*ENTRY_SIZE // Size of a bucket
	INITIAL_BUCKETS = uint64(65536)                         // Initial number of buckets == 2 ^ HASH_BITS

I changed the following settings:
	HT_FILE_GROWTH  = 1 * 1048576                          // Hash table file initial size & file growth
	HASH_BITS       = 11                                    // Number of hash key bits
	INITIAL_BUCKETS = uint64(2048)                         // Initial number of buckets == 2 ^ HASH_BITS

With those initial settings, tiedot initially allocates a 1MB file per index.

Hyvaa huomenta!
I entirely agree with you, the initial data file size can be quite large, and you probably have a 6-core Xeon E3 or Intel i7 extreme edition.
Those numbers were written down as constants because altering them after creation of a collection is quite a challenging task. If tiedot used a tree or skip list data structure for indexes, those huge numbers can be avoided. And that reminds me of the famous quote "today's constant is tomorrow's variable".
tiedot has seen very infrequent updates in the recent months, therefore it may be viable to maintain a fork with tweaked constants. I hope that helps.

Is there any reason these couldn't be configured using environmental variables?

It was an incorrect decision to make them constants in the beginning.
How about this: write down collection and hashtable parameters into a JSON or text file underneath database directory. If the file exists, the parameters from the file will be used to operate on collections; if it does not exist, the default value (the current constants) will be used instead, and the file shall be created and default values written down.

Sounds like a plan, I will start working on a pr

Wonderful to hear! Many thanks for your help.

#157 Added this, let me know what you think.

import (
	"github.com/HouzuoGuo/tiedot/db"
	"strconv"
	"io/ioutil"
	"os"
	//"sync"
)

const (
  NUM_PARTS = 2
)

//
// Pre-write concurrent configuration to prevent excessive hard disk pre-allocation
//
func writeDBConfig(dbname string) (err error) {
	// Multi-threaded locking
	num := []byte(strconv.Itoa(NUM_PARTS))
	numFile := "./db_base_path/"+ dbname +"/"+ db.PART_NUM_FILE

	// Ignore if the file already exists
	if _, err := os.Stat(numFile); err == nil {
		return nil
	}
	if err := ioutil.WriteFile(numFile, num, 0600); err != nil {
		return err
	}
	return nil
}


Create CentOS6.9 x86_64 template for ADS to support and install services/labs

Currently ADS service's centos_bridge adapter is functioning (can deploy labs/services) only with ubuntu vms/containers there is no provision to install labs/services which runs on centos.
Adapter functionality has to be enhanced to support centos as well

@ksripathi : Created a centos-6.9-x86-64-with-emacs template on Base4 machine and also installed tornado, pip and emacs.
Also tested running make file for feedback portal and its woking.

CentOS container is created based on lab-specifications data using ADS. Container is unable to ping external network there is an issue connecting to internet
@shashankviswanadha
Can you please look into it

above issue refers to @sivashankerN

Resolved issue by removing bridge related configuration in /etc/sysconfig/network file


What is the purpose of ClassicAppCompatKey?

I thought AppCompat keys were thoroughly deprecated starting with Windows 8 (although I can't find the doc mentioning this right now). The fact that this key is in the rescap4 namespace implies it is not for general use, but on the other hand it is publicly documented here, which implies that might be found useful by a fairly large segment of apps/devs. This article does a good job of explaining what ClassicAppCompatKey is, but does not discuss at all what it does. Could this please be expanded? Thanks!

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

ID: fb781ee5-9428-073e-2227-179cd2384503
Version Independent ID: 865d9dca-6230-5b65-bc71-abe01c8c84e8
Content: rescap4:ClassicAppCompatKey - UWP app developer
Content Source: winrt-related-src/schemas/appxpackage/uapmanifestschema/element-rescap4-ClassicAppCompatKey.md
Service: unspecified
GitHub Login: @laurenhughes
Microsoft Alias: lahugh

AppCompat keys in this context allow for Centennial applications packaged as appx packages to advertise registry keys outside the appx bubble for interoperability scenarios where older software that needs to detect or interact with the appx packaged application can find the registry keys exposed as if the package was installed in its pre-Centennial form. Most software will not require such extensions, but if the software supports, for example, add-ins which are installed separately, then there may be cases where those add-ins look for certain registry keys to detect that their targeted product is installed and will fail to install or work correctly if those keys are not found. These AppCompatKeys can help smooth over the transition to Centennial by exposing the keys that these other installers expect, but in a way that is still compatible with the Centennial installation requirements regarding maintainability and installation isolation.

@bjr1822 Apologies for the confusion; I was indeed very much discussing the rc4:ClassicAppCompatKey AppX manifest element. I thought it was related to something completely different due to similar naming conventions.
Your answer has been very helpful. If you want, I can prepare a PR inserting your answer into the doc page for the manifest element in question. Thanks for your help!

e.g. For exposing Chromium / Firefox NativeMessagingHosts registry keys for browser extensions to communicate with the app.

It sounds like this issue has been answered, so I am closing it.


chore: Store EXTENSION_INFO as Set[String] instead of newline-delimited String

Which issue does this PR close?

N/A
Rationale for this change

I think it would be cleaner to store extension info as Set[String] rather than using a newline-delimited string, because:

It removes the need to use split("\n") and mkString("\n") when manipulating the info
It ensures that we do not have duplicate entries

What changes are included in this PR?

Some refactoring inside CometSparkSessionExtensions

How are these changes tested?

Existing tests

@parthchandra Does this seem reasonable?

Thanks for the reviews @parthchandra and @advancedxy
@viirya I need a committer approval to be able to merge. Could you review?


Recipient authentication

The Jamtis specs contains a recipient authentication workflow. Is this worth implementing? There has not been much feedback on this.

On first sight, looks like a power user feature to me, i.e. one that many more casual users probably would not bother to take into service and simply click away every time. (Most may not even bother to set up an address book.)
I remember that in a number of earlier cases such "lookup using DNS" mechanisms turned out to be problematic in one way or another, but don't remember enough details to judge whether similar problems could lurk here.


+19182126435

Proposed changes
https://developers.cloudflare.com/
Subject Matter
To chat
Content Location
Oklahoma
Additional information
No

How can I add the number to another app and how can I get the code

Howdy @MelissaGold4744, you might want to post in the Cloudflare Community or reach out to Cloudflare Support for help.
This is a docs repo... we can't help with any troubleshooting.


Uncaught TypeError: Cannot set property 'control' of undefined

@nolimits4web plz help!
I use the loop parameter and it would be wrong, and Thumbs Gallery With Two-way Control can be used.
this is my code:

Slide 2

Slide 3

You don't have element with "gallery-top" class

The code has "gallery-top" elements on it.

Then provide JSfiddle with the issue or live example where it can be replicated

thank you for your reply,
the code:
https://jsfiddle.net/v97yka6x/2/

I find the same problem with swiper "Cannot set property 'control' of undefined"

Same problem like this https://jsfiddle.net/v97yka6x/2/ !

+1

+1

+1

If you inspect the objects stored in those variables they contain an array of Swiper.
console.log(galleryTop);
console.log(galleryThumbs);

/*
(2) [Swiper, Swiper]
(2) [Swiper, Swiper]
*/

Since galleryTop and galleryThumbs are both arrays in this example, the params property does not exist at that level, but in each Swiper object instead. The code example in the documentation doesn't have this issue, though.
Trying something like this
galleryTop[0].params.control = galleryThumbs;
galleryThumbs[1].params.control = galleryTop;

is not the fix overall, but did get things working.

+1
i have 4 slider
2 slider in index.html
2 slider in another.html
when i use two-way control for 4 slider in one script file this error happen and dont know how to fix it

Really does not find the items. Error appears on pages where the slider does not exist.
Use the condition.
 if ($(".swiper-container.gallery-top")[0]){
//initialization parameters
}

For the topic-starter's code and for others demos I maked it work. Just surrounded all Swiper's JS code with jQuery (I'm using it with side slideshow):
`$(document).ready(function() {
var mainSliderSelector = '.main-slider',
navSliderSelector = '.nav-slider',
interleaveOffset = 0.5;
// Main Slider
var mainSliderOptions = {/.../}
var mainSlider = new Swiper(mainSliderSelector, mainSliderOptions);
// Navigation Slider
var navSliderOptions = {/.../}
var navSlider = new Swiper(navSliderSelector, navSliderOptions);
// Matching sliders
mainSlider.params.control = navSlider;
navSlider.params.control = mainSlider;
});`
Hope this helps someone ;)


Job eexcution duration is sometime wrong in rate caculation

Problem:
From the log, we can find the job run for about 2 hours and 20 minutes, but the job duration used in the rate calculation is only 477.505seconds.
This could happen not matter if the start time is gotten using System.currentTimeMillis() in beforejob() of the job listener, or call getStartTime() one the current JobExecution object.
And so far, seems this only happens in the kub pod instead of my local.
[3/16/20 2:25:10:024 GMT] com.ibm.fhir.bulkimport.ImportPartitionMapper                  getFhirDataSources4ObjectStore: ObjectStorge Object(r4_Organization.ndjson) - 106901752 bytes.
[3/16/20 4:45:25:991 GMT] com.ibm.ws.batch.JobLogger                                     CWWKY0013I: Partition 0 ended with batch status COMPLETED and exit status COMPLETED for step step1 for job instance 110 and job execution 110.
[3/16/20 4:45:26:559 GMT] com.ibm.ws.batch.JobLogger                                     CWWKY0020I: Step step1 ended with batch status COMPLETED and exit status COMPLETED for job instance 110 and job execution 110.
[3/16/20 4:45:26:622 GMT] com.ibm.fhir.bulkimport.ImportJobListener                       ---- Fhir resources imported in 477.505seconds ----
[3/16/20 4:45:26:622 GMT] com.ibm.fhir.bulkimport.ImportJobListener                      ResourceType 	 Imported 	 Failed
[3/16/20 4:45:26:622 GMT] com.ibm.fhir.bulkimport.ImportJobListener                      Organization	185615	0
[3/16/20 4:45:26:622 GMT] com.ibm.fhir.bulkimport.ImportJobListener                       ---- Total: 185615 ImportRate:<PHONE_NUMBER>388195 ----

You may want to look at https://stackoverflow.com/a/18994289/1873438
As others have said, currentTimeMillis is clock time, which changes due to daylight saving time, users changing the time settings, leap seconds, and internet time sync. If your app depends on monotonically increasing elapsed time values, you might prefer nanoTime instead.

nanoTime is agnostic to the above issue.

still found the same issue even switched to use nano time

very very strange... maybe a code review?

step through it with John?

the codes are simple and straight forward, I suspect "jobstart" was called at not the "right" time some time by the framework - like maybe it's call more than one time ... I'm going to create a bebug version to run in cdt to collect more info ...

Finally find the root cause, there should be a bug somewhere in liberty javabatch framework, sometimes(not always) in afterJob() of joblistener, the jobexcutionendtime of current execution was set to just very few minutes right after the job was submitted, but actually the execution was finished a few hours later. According to the design of IBM javabatch framework, Joblistener is part of the jobexecution, and this is why jobstatus is always "Started" instead of "Complete" inside afterJob(), so jobexecutionendtime of current execution should never be set before the afterJob() function is called. To work around this Liberty defect, I will change our Job listener codes to always use system time to calculating job duration for current job execution no matter its jobexecutionendtime is null or not.
Logs show what I described:
[3/22/20 9:27:52:232 GMT] com.ibm.fhir.bulkimport.ImportJobListener                      currentExecutionEndTimeInMS: 446540064 SystemcurrentTimeMillis:1584869272232
[3/22/20 9:27:52:280 GMT] com.ibm.fhir.bulkimport.ImportJobListener                      jobContext.getExecutionId(): 148
[3/22/20 9:27:52:280 GMT] com.ibm.fhir.bulkimport.ImportJobListener                      jobExecution.getEndTime().getTime():<PHONE_NUMBER>644 jobExecution.getStartTime().getTime():1584843981170
[3/22/20 9:27:52:280 GMT] com.ibm.fhir.bulkimport.ImportJobListener                      totalJobExecutionMilliSeconds: 207474
[3/22/20 9:27:52:280 GMT] com.ibm.fhir.bulkimport.ImportJobListener                      Precalc totalJobExecutionMilliSeconds: 207474
[3/22/20 9:27:52:280 GMT] com.ibm.fhir.bulkimport.ImportJobListener                      Aftercalc jobProcessingSeconds: 207.474
[3/22/20 9:27:52:280 GMT] com.ibm.fhir.bulkimport.ImportJobListener                      Aftercalc jobProcessingSeconds1: 207.474
[3/22/20 9:27:52:280 GMT] com.ibm.fhir.bulkimport.ImportJobListener                       ---- Fhir resources imported in 207.474seconds ----
[3/22/20 9:27:52:280 GMT] com.ibm.fhir.bulkimport.ImportJobListener                      ResourceType 	 Imported 	 Failed
[3/22/20 9:27:52:280 GMT] com.ibm.fhir.bulkimport.ImportJobListener                      DiagnosticReport	1442524	0
[3/22/20 9:27:52:280 GMT] com.ibm.fhir.bulkimport.ImportJobListener                       ---- Total: 1442524 ImportRate: 6952.794085041982 ----

also opened a issue for openliberty
https://github.com/OpenLiberty/open-liberty/issues/11413


pytorch inplace operation issue

hello
This is my mistake!
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [1, 256, 40, 40]], which is output 0 of ReluBackward0, is at version 1; expected version 0 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True).
The error ends here！
grad_input = torch.zeros_like(ctx.saved_tensors[0])
May I ask what caused the problem
thank you！

Hi @git-luo66 ,
Judging from the line of code you have highlighted, you are using the CUDA implementation of the code and not the inplace version. Assuming this, the error relates to an operation that happens after SoftPool. I would suggest to check that you are not using Relu with inplace=True.  Another easy solution is to create a deep copy of the input before/after applying SoftPool.


Setup different bundles

@hrajchert suggested in #33 to use RollupJS instead of Webpack. After reading the following articles, it seems (by the date of April 2017) RollupJS fits better for library usage:

The cost of small modules
Webpack and Rollup: the same but different

Axel Rauschmayer describes pretty well in the article "Setting up multiplatform npm packages" what we can use as a standard convention for providing different bundles in npm packages.
Jason Aden does it as well in a talk in the ngconf talk "Packaging Angular libraries"

Haven't seen the talk yet but I will
Thanks for the quick response :)

Closed by 75dd59b


feat(devops-1901): Added configurations cdn frontdoorstandarad/premium

Issue-id
PR Checklist

[x] I have added example(s) inside the [./examples/] folder
[x] I have added the example(s) to the integration test list for normal (~30 minutes) or long runner >30 minutes
[x] I have checked the coding conventions as per the wiki
[x] I have checked to ensure there aren't other open Pull Requests for the same update/change?

Description
Added feature to create azure cdn front door with standard/premium sku. Added following resources azurerm_cdn_frontdoor_custom_domain,azurerm_cdn_frontdoor_profile and other related resources
Does this introduce a breaking change

[ ] YES
[x] NO

Testing
Tested Standalone

Hi @reshmarajan1730
Well done
You should rename cdn_front_door_profiles in cdn_frontdoor_profiles and declare it in variables.tf for this to work.


Getting rid of "(default: false)" part in boolean options

Hello
When I use following code:
try
{
	cxxopts::Options options("Program", "Program description");
	options
		.custom_help("[options]")
		.add_options()
			("h,help", "Print help");
	auto result = options.parse(argc, argv);
	if (result.count("help"))
	{
		std::cout << options.help() << std::endl;
	}
	else
	{
            // ...
        }
}
catch (const cxxopts::OptionException& e)
{
	std::cout << "Wrong option(s) provided: " << e.what() << std::endl;
}

I get the following output when -v option is used:
Program - Program description
Usage:
  Program [options]

  -h, --help  Print help (default: false)

I would like to get rid of "(default: false)" part and the only way (hack) I figured out is like following:
class custom_boolean_value : public cxxopts::values::standard_value<bool>
{
	public:
		custom_boolean_value()
		{
			m_default = false;
		}
		~custom_boolean_value() = default;
};

Then using this custom class like following:
options
	.custom_help("[options]")
	.add_options()
		("h,help", "Print this help message", std::make_shared<custom_boolean_value>());

Is there a better way to get rid of "(default: false)" part in boolean options?

Actually I can't see why anyone would want booleans to print default: false. That was a side effect of rewriting the boolean handling code. I'll find a better way to fix that.


Change repo URL

thanks!

What, no dessert? (cc. @frewsxcv)

@frewsxcv to the rescue!

:thumbsup: :clap: :star2:


Regions don't get updated when switching layout

Hi @arunoda,
I noticed that if you switch layout after login/logout of a user like described in issue #38 of flow-router the regions don't get rendered. You can find a demo project here: https://github.com/banglashi/flow-router-regions-update
I just added
FlowLayout._updateRegions(regions);
to line 20 in layout.js and this seems to fix the issue. But I think there is a better way to do it. Perhaps you could take a look?

:+1: I have the same prb

Okay. I will fix this today.
On 2015 මාර්තු 25, බදාදා at ප.ව. 5.49 Gildas Garcia <
<EMAIL_ADDRESS>wrote:

[image: :+1:] I have the same prb
—
Reply to this email directly or view it on GitHub
https://github.com/meteorhacks/flow-layout/issues/1#issuecomment-86002344
.

Okay. Check now.
I fixed the bug and publish a new version.
see commit: c98c02c

Hi @arunoda,
thanks, that did the trick.

Nice.
On Wed, Mar 25, 2015 at 8:57 PM banglashi<EMAIL_ADDRESS>wrote:

Hi @arunoda https://github.com/arunoda,
thanks, that did the trick.
—
Reply to this email directly or view it on GitHub
https://github.com/meteorhacks/flow-layout/issues/1#issuecomment-86081981
.

Thx @arunoda :)


Github MLH Partnership

Attended the office hours for insight on how to run our Hackathon and market better to get more participants.
Need to Focus on Marketing and Outreach
Post Flyers around campus
Have attached noted from the meeting below
email potential professors and partners
Running Hackathon notes.pdf

Meeting notes with Shubham from MLH - 09/20/2022:

APAC Region - Shubham

They don't support hackathons more than 24 or 48 hour as most of the coaches work voluntarily and have full time job elsewhere.


accept json-Strings and objects as datepicker config

Coverage decreased (-0.13%) to 89.69% when pulling 76ce2f3c66b73a0bed9bc11a0188df4048bf7a03 on datepicker_support-config-with-strings-and-objects into a56142718a9caa1688132ff9af3333ec2b100045 on master.


It is hard to distinguish events from a utility.batch call

I made a utility.batch call with 8 calls, and they emit 9 events. It is not easy to identify which call emit which event.
A possible solution is have utility.batch emit a completed event after each dispatch.
But for calls dispatched in other ways, such as from scheduler, it is still not easy to distinguish the source of the event.
Maybe we can emit event in pre_dispatch and post_dispatch? but that sounds like some large overhead? But if the cost of an event is very low, maybe the overhead is acceptable?
Otherwise this can be part of https://github.com/paritytech/substrate/issues/2082

Emit event from pre_dispatch / post_dispatch won't work, because they are only called when applying extrinsic.

One solution is somehow support nested event. But that sounds like a large-ish change.

Closed by https://github.com/paritytech/substrate/pull/9462


Provide a way to implement a HealthChecker with periodic polling

Motivation
#3392
I saw a comment to use last check time, but if we want to support long polling, we still need to use eventloop schedule?
Modifications

Add two factory method on HealthChecker interface.
Add two concrete FixedDelay/FixedRate health checker.

Questions

Should we ignore the previous result in FixedRate if it arrives after the subsequent check?

And realize there are some concurrent issues like async check finishes after server stop will schedule the next again. Let me thingk :thinking:

And realize there are some concurrent issues like async check finishes after server stop will schedule the next again. Let me think thinking

Yeah, we're gonna have to cancel any previously scheduled tasks when server starts to stop.

Updated, try to make ScheduledHealthChecker can handle stop->start & shared by multiple owner. I tried to throw away the stopped ScheduledHealthCheckerImpl  and recreate new one when we need fresh start. There is a chance that stopped ScheduledHealthCheckerImpl may have one more scheduled job, but it return early without triggering the user's task.

@kojilin Could you update the PR description to make sure it matches the final version of this PR?

PR desc updated


Fix: Docker Cleanup schedule

Changes

fix: Always use Docker cleanup frequency, with threshold or force cleanup enabled - previously, if a disk usage threshold was set, it would check every 10 minutes, causing notification spam and unnecessary load on the server.
feat: Added a disk usage check frequency setting

Thank you for the PR!


backend agnostic reconciliation test

we'd like something like https://github.com/kubernetes/kubernetes/blob/master/test/e2e/network/kube_proxy.go that we can use to run a/b comparisons in service of #325
@astoycos is interested in this, seems like a simple way to do it would be
make a service
for node in nodes:
   add 100 pods to the service

and then, say 1000 times

modify pod count (scale up or scale down)

make 1000 go funcs:
  in parallel poll  the SEP until EACH ENDPOINT is obtained.

continuously.

/assign @astoycos

/unassign @astoycos

/good-first-issue
(For an experienced programmer that knows how to use client-go)

how far is taht from https://github.com/kubernetes-sigs/kpng/blob/master/server/cmd/kpng-backend-torture/main.go ?
Other refs:

#150
dist/kpng-backend-torture --listen unix:///tmp/kube-proxy.sock --sleep 1s 0:0 10000:10 10001:10 0:0 100000:1 0:0 1:100000 : 1s delay between diffs to the client, start with 0 services each with 0 endpoints, then 10k services with 10 endpoints, then 10k1 services with 10 endpoints, then back to 0:0, then 100k services with 1 endpoint, back to 0:0, then 1 service with 100k endpoints.

/assign


Add files via upload: Upload logo CFB and tokens information

Please change filenames to lowercase format
(This content is created via Gittool)
On behalf of bobcoin98

Please change filenames to lowercase format (This content is created via Gittool) On behalf of bobcoin98
filename is lowercase format, why need change?
What filenames of ? Logo or token name? of something else? i do not understand what you mean?

Please follow this https://github.com/BuildOnViction/tokens#2-create-a-pull-request

Yes, we have update logo filename to lowercase here : https://drive.google.com/file/d/1buOD_Op_WPbtPEEe9qV8UBRS7og4XRyG/view?usp=sharing

B93 ????

please update .png filename as well

Where to update again? can not edit file png again? where to publish again?
Our error because of your copy on https://tomoscan.io/token/0x567b1e373f7285e9a32f5eeb9305b6964b6a3532
when we copy smc it auto change to B from b, please fix it
But now, how to rename .png file?
i can not edit that png file

update filename same you did with json file

0x567b1e373f7285e9a32f5eeb9305b6964b6a3532.json

https://drive.google.com/file/d/13Y_Foyz-n84w9aV65LpzhqxZTz3_ZWsQ/view?usp=sharing
https://drive.google.com/file/d/1QtaM0C-xsvepBuZejNT0nhwr9jJlXTGP/view?usp=sharing

https://github.com/tomochain/tokens/issues/401

File has been updated, please promptly upload the CFB logo to the Tomo
blockchain network. (
https://github.com/BuildOnViction/tokens/pull/400/commits/271ccf01891624b25c338af508d57baa35b2c5f4).
Thank you.
Vào CN, 12 thg 11, 2023 vào lúc 16:37 Bob Jr @.***>
đã viết:

update filename same you did with json file
—
Reply to this email directly, view it on GitHub
https://github.com/BuildOnViction/tokens/pull/400#issuecomment-1807072070,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDTZ4CVBC7TJYDFWVBLP5NLYECKFLAVCNFSM6AAAAAA6W4AMX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXGA3TEMBXGA
.
You are receiving this because you authored the thread.Message ID:
@.***>

update filename same you did with json file

Done, pls update logo for us on Tomo(Vic) Wallet, C98 Wallet and Tomoscan.
Thanks

Rule violation

Number of files: only 2 file changes accepted
Logo size: 256x256  ( 512x512 detected)
(This content is created via Gittool)
On behalf of bobcoin98

follow steps here : https://github.com/BuildOnViction/tokens#2-create-a-pull-request
2. Create a pull request
Image Requirements
file extension: png (PNG is invalid) name：contract_address.png (filename in lowercase). Example: 0xea8d13af16a33fc5de19c0b1edcf4cd053bd2fa9.png Resolution: recommend 256x256 px size: under 512 KB background: preferably transparent (use simple drag and drop online service tinypng to optimize image size)
Token Information Requirement
file extension: json (JSON is invalid) name：contract_address.json (filename in lowercase). Example: 0xea8d13af16a33fc5de19c0b1edcf4cd053bd2fa9.json required fields: symbol, name, website

I want delete all and upload all files again? how to do that? I can not delete pgn file, show me, thanks

I want delete all and upload all files again? how to do that? I can not delete pgn file, show me, thanks, it do not show delete files

follow steps here : https://github.com/BuildOnViction/tokens#2-create-a-pull-request
2. Create a pull request
Image Requirements
file extension: png (PNG is invalid) name：contract_address.png (filename in lowercase). Example: 0xea8d13af16a33fc5de19c0b1edcf4cd053bd2fa9.png Resolution: recommend 256x256 px size: under 512 KB background: preferably transparent (use simple drag and drop online service tinypng to optimize image size)
Token Information Requirement
file extension: json (JSON is invalid) name：contract_address.json (filename in lowercase). Example: 0xea8d13af16a33fc5de19c0b1edcf4cd053bd2fa9.json required fields: symbol, name, website

We have uploaed 2 files follow your guide at here https://github.com/BuildOnViction/tokens/pull/400/files
Please check it, is it ok?
Thanks

We have updated email official, please confirm is it ok?
Update our logo soon for C98 wallet and Tomoscan, do not waste our time
Thanks

oops, wrong folder
revert

oops, wrong folder revert

is it done?

done in my other commit
check here
https://tomoscan.io/token/0x567b1e373f7285e9a32f5eeB9305b6964B6a3532

done in my other commit
check here
https://tomoscan.io/token/0x567b1e373f7285e9a32f5eeB9305b6964B6a3532

But social link telegram, website, twitter have not update, why you ask us fill social link but you not update on tomoscan? Please update it

done in my other commit
check here
https://tomoscan.io/token/0x567b1e373f7285e9a32f5eeB9305b6964B6a3532

Please update link telegram, twitter, .. on https://scan.tomochain.com/tokens/0x567b1e373f7285e9a32f5eeb9305b6964b6a3532

Why do you force us to update telegram social network links, emails (with official domain), and all other strict requirements, but after we follow those requirements, you don't update those links to Tomoscan? Why is it so funny? Are you kidding us? So why ask us to update? Why and WHY AND WHY?


Update TokenRange toString “]%s, %s]” to "[%s, %s]"

a little mistake?

Hi @johnyannj , thank you for your contribution!
I will admit it does look odd, but this is actually by design.  token ranges in cassandra are start-token exclusive and end-token inclusive, so when you see a range with a format of ]10, 20] it means "all tokens from 10 to 20, excluding 10, but including 20.
One common notation of intervals is to use square-brackets to indicate membership.  From the wikipedia article for Brackets in Mathematics under the Intervals section:

Both parentheses, ( ), and square brackets, [ ], can also be used to denote an interval. The notation [a, c) is used to indicate an interval from a to c that is inclusive of a but exclusive of c. That is, [5,12) would be the set of all real numbers between 5 and 12, including 5 but not 12. The numbers may come as close as they like to 12, including 11.999 and so forth (with any finite number of 9s), but 12.0 is not included. In some European countries, the notation [5,12[ is also used for this.

@tolbertam
Thank you for your explaining

Ha, same here, I didn't know this was a european thing 😃


Alter path for persistent volume based on contents of riak archive

One can use erl_tar:table(...) to inspect the archive's content, and then set the persistent volume path appropriately.
Finally, pass that to the executor
Related basho-labs/riak-mesos#12

Fixed by #91


[WIP] feat(forge): fuzz dictionary

Implements a fuzzing dictionary per #387
Takes a weighted union of 2 strategies, 40-60 weighted dictionary-random. Grabs state via a hack around the deconstruct method to get all state changes not applied (in our case, thats all of them), and flattens them into a hashset. We then pass this state hashset into the strategy creator which uses a selector to select a random value from the set as the input and transforms it into an input
Some limitations: bytes and strings types are only ever 32 bytes when pulling from state. probably improvements to be had there

@onbjerg something to consider for the REVM fuzzer. For Revm it should be easier, as we can lift the changelog each time?

Rolled into #985