More precise firewall documentation (preferaby with use cases)

This documentation enhancement request is a follow up of
https://github.com/apple/cups/issues/5192#issuecomment-351955407
for
https://github.com/apple/cups/blob/master/doc/help/firewalls.html
I think the current CUPS firewall documentation
should be more precise if on the CUPS server machine a port
must be open for incoming or outgoing network traffic (or both).
Additionally documentation of some usual use cases
(e.g. using a network printer via TCP socket plus SNMP
versus using a modern IPP network printer only via IPP
or making a CUPS server fully accessible in a trusted network)
could help a lot so that firewall administrators can actually
do the right firewall settings in their particular environments.

We necessarily need to be as generic as possible as every OS (and Linux distribution) has different ways of setting up a firewall.

[master 3f76968f9] Expand a bit on the firewall documentation (Issue #5202)
Let me know what you think...
(but we won't add iptables examples or other firewall-specific documentation)

Much better now!
But at least for me the wording "outgoing port" still looks confusing, cf.
https://github.com/apple/cups/issues/5192#issuecomment-352479636
Perhaps "outgoing port" might be replaced by "destination port"
or even by "destination port for outgoing network traffic"
to avoid possible misunderstanding?
I do fully agree to not provide any firewall-specific documentation.
Only generic documentation about what ports are used and how.
Firewall-specific documentation is too much a snakepit
that basically calls for user complaints when things doen't work
and in general it is a potential security risk to provide
firewall-specific examples.

[master 77401306b] Reword firewall docs - "outgoing ports" -> "port for outgoing network traffic".

Only a possibly reasonable further change request
for the upcoming CUPS 2.3 series:
Because not any firewall-specific documentation should be
provided I wonder if then the file name 'firewalls.html'
is really the right one.
I think what actually is provided is generic documentation
about CUPS-related network traffic so that the file name
should be accordingly to avoid false expectations what
is actually documented therein.
Of course with that documentation firewall administrators
can set up their particular firewalls as they need it in their
particular environments - but that is (strictlky speaking)
only a (intended) side effect of what is actually documented.


localRegistry being used even though my cluster registries work fine

What happened?
I have a local cluster created with k3d and I used the option --registry-create myregistry.localhost to have its own registry which I can push from my local machine and that the cluster can use to pull container images.
Even though docker push works fine from my local machine, when I start my devspace project I receive this output:
Ensuring image pull secret for registry: myregistry.localhost:5000...
Couldn't retrieve username for registry myregistry.localhost:5000 from docker store
Couldn't retrieve password for registry myregistry.localhost:5000 from docker store
local-registry: Starting Local Image Registry
local-registry: Port forwarding to local registry started on: 30521 -> 5000
Ensuring image pull secret for registry: myregistry.localhost:5000...
Couldn't retrieve username for registry myregistry.localhost:5000 from docker store
Couldn't retrieve password for registry myregistry.localhost:5000 from docker store
Ensuring image pull secret for registry: myregistry.localhost:5000...

But as I said, I can docker push from the same machine/environment where I start my devspace project, so I don't understand why devspace says that.
Plus, if in my devspace.yaml file I add:
localRegistry:
  enabled: false

it will still display the Couldn't retrieve... message, but it will actually correctly push to that registry.
What did you expect to happen instead?
I expected to not see these errors, and that it does not fallback to the localRegistry
How can we reproduce the bug? (as minimally and precisely as possible)
My devspace.yaml:
version: v2beta1
...

Local Environment:

DevSpace Version: 6.2.3
Operating System: mac m1
ARCH of the OS: ARM64
Kubernetes Cluster:
Local: k3d
Kubernetes Version:

Client Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.3", GitCommit:"434bfd82814af038ad94d62ebe59b133fcb50506", GitTreeState:"clean", BuildDate:"2022-10-12T10:47:25Z", GoVersion:"go1.19.2", Compiler:"gc", Platform:"darwin/arm64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.6+k3s1", GitCommit:"418c3fa858b69b12b9cefbcff0526f666a6236b9", GitTreeState:"clean", BuildDate:"2022-04-28T22:16:58Z", GoVersion:"go1.17.5", Compiler:"gc", Platform:"linux/arm64"}

Anything else we need to know?

Hey @igoooor ! Thanks for creating this issue! Would it be possible to share your images section so that we know what builder etc you are using?

thanks @FabianKramm I updated my initial message

Hey @igoooor! Your problem should be fixed with https://github.com/loft-sh/devspace/pull/2486, but it seems the error message comes up because DevSpace cannot find the credentials locally as this seems to be an insecure registry. So when disabling the localRegistry, is DevSpace correctly pushing to the registry?

Yes, when disabling the localRegistry, the error still shows up but DevSpace is correctly pushing to the registry.
And you are also correct this is an insecure registry, so there is no credentials to be found.

With DevSpace v6.2.4 the localRegistry configuration shouldn't be needed anymore and if you set createPullSecret: false for the images the warning will also not appear anymore

many thanks @FabianKramm 🙌 I will test that new release today

I think I must be hitting some edge case here with my macOS.
The yaml I gave you is the one linux users are using (I'm the only mac user in the team).
macOS (by default at least) does not support xxx.localhost (it won't resolve to localhost), so I am using instead myregistry.local.gd instead. local.gd is a service similar to nip.ip xip.io and others, where all subdomains will resolve to localhost.
Do you see something I could do?
Because now with createPullSecret: false and localRegistry: enabled: false it gives me this output:
info Using kube context 'k3d-localcluster'
build:nginx Rebuild image registry.local.gd:22345/platform/nginx because image config has changed
build:nginx Building image 'localhost:30944/platform/nginx:latest' with engine 'docker'
build:node Rebuild image registry.local.gd:22345/platform/node because image config has changed
build:nginx Authenticating (localhost:30944)...
build:node Building image 'localhost:30944/platform/node:latest' with engine 'docker'
build:php Rebuild image registry.local.gd:22345/platform/php because image config has changed
build:node Authenticating (localhost:30944)...
build:php Building image 'localhost:30944/platform/php:latest' with engine 'docker'
build:php Authenticating (localhost:30944)...
build_images: build images: error building image registry.local.gd:22345/platform/php:latest: Error during image registry authentication: Error response from daemon: Get "http://localhost:30944/v2/": dial tcp [::1]:30944: connect: connection refused

If I only set localRegistry: enabled: false it will work with the following output:
info Using kube context 'k3d-localcluster'
Ensuring image pull secret for registry: registry.local.gd:22345...
Ensuring image pull secret for registry: registry.local.gd:22345...
Ensuring image pull secret for registry: registry.local.gd:22345...
build:nginx Rebuild image registry.local.gd:22345/platform/nginx because tag is missing
build:nginx Building image 'registry.local.gd:22345/platform/nginx:latest' with engine 'docker'
build:node Rebuild image registry.local.gd:22345/platform/node because tag is missing
build:nginx Authenticating (registry.local.gd:22345)...
build:node Building image 'registry.local.gd:22345/platform/node:latest' with engine 'docker'
build:php Rebuild image registry.local.gd:22345/platform/php because tag is missing
build:node Authenticating (registry.local.gd:22345)...
build:php Building image 'registry.local.gd:22345/platform/php:latest' with engine 'docker'
build:php Authenticating (registry.local.gd:22345)...
build:nginx Authentication successful (registry.local.gd:22345)
build:php Authentication successful (registry.local.gd:22345)
build:node Authentication successful (registry.local.gd:22345)

I guess this is totally acceptable right?


Remove the Low QPS threshold for SGPP

What would you like to be enhanced:
Currently, SGPP assignment by design , a low QPS call done VPC Resource Controller when it tries to associate Trunk ENI to Branch.
https://github.com/aws/amazon-vpc-resource-controller-k8s/blob/master/pkg/config/loader.go#L29-L30
That is because SGP by costly operation, and this will be lower qps set than any other EC calls.
However, we should consider removing that low QPS call and let the max pod creation threshold be handled by kubernetes.
Why is the change needed and what use case will it solve:
There was  customer report that when SGPP was enabled, their deployment scaling took a long time, and they wanted to avoid it

Folks, any updates on when this will be prioritized? SGFP is effectively unusable in our environment (which is not even that big in terms of AWS customer scale) due to this low limit.


:before content doesn't escape /a as breakline

I can't escape content value with \a
This
const Title = styled.div`
  &:before {
    content: "Hello \a World"; /*not working*/
    white-space: pre-wrap;
  }
`;

is not equivalent to
.title2:before {
  content: "Hello \a World";
  white-space: pre-wrap;
}

Demo: https://codesandbox.io/s/styled-components-njovq

@eldyvoon I think this is mostly a consequence of using javascript template literals. If you add a second escape it works as expected. Not sure there's anything we can do in the library to handle this since it's a general language behavior.

wow nice catch there, double escape does worked! anyway, thanks!


ECS

Adjusted curves in humidity and temperature simulations so that groups correspond closer to Earth norms.
Added some weighting variables in humidity simulation to make it easier to adjust output. Increased the weighting of latitude for determining temperature in temperature simulation to produce a result that seems closer to Earth's (less chaotic).
Added an error catch to astar.py to prevent a CTD error that seemed to occur on maps of 1024x512 and larger.
Added a variable called latshift to generation.py. This will ultimately allow people to rerun a specific seed but shift the continental position up and down. This way if you identify a spot you think would be a good central location but you think that the campaign/story would benefit from having it further north or south the simulation can be rerun and the results shifted.
Reversed the order of generating temperature and humidity in generation.py as the temperature has an effect on the humidity.
Added biomes.scm, a script for GIMP that should create layers and layer groups for the biome png files.

Any way you can add some coverage by writing tests?
Unit tests for anything you can reproduce in a function level.
Integration tests for seeing that nothing breaks when running with command line arguments.

Thank you for the A* catch! :D

Thank you so much for sending this! And the script for Gimp is a great idea: we should consider exporting all our data to Gimp.

I don't think we want to move the Data to any form of specific graphics software. The advantage of PNG is that people can use pretty much any software. I like GIMP because I've gotten pretty good with it an I like supporting Open Source software but I understand that some people find it more cumbersome to use (I still can't get my wife to use is and it drives me nuts over the crummy software she does use when she wants to print images).
I notice that my pull request is failing the coverage check. This is because if I try and use the must up to date branch of WorldEngine I get an error. I could fold the changes I've made into the latest release but I wouldn't be able to test them on my own (it looks like they should be fine because they occur in areas completely unrelated to the changes between 0.18 and current) so let me know if you want me to incorporate them and resubmit or what.
I can look into writing some unit tests but to be honest that isn't something I've got any experience in so it may take me a little bit to get up to speed with that.

I'm not sure what branch you are talking about, but under normal circumstances, your (or anyone's) pull request should always be against master.
I think what is really happening is that your A* fix is preventing erosion from running. To test this, can you revert your A* fix and push? I think coveralls will show us a different picture then.
If my hunch is correct, then you needn't have to write unit tests... but you should probably read through ours and see how we do testing. It helps us catch problems. :)

Ok. I updated to the latest base and backed out the astar change and it is still failing the coverage check.

Super, -0.4% is better than -4.0% in my books! :)
Can you please create a new issue about the A* problem and how I can duplicate the issue?

@ftomassetti I'm OK with this as-is, and you?

Me too: I took a look at the changes yesterday and the code seems fine. I do not understand the GIMP script so... I will trust @esampson :)
Feel free to merge!

@esampson you are already listed among the contributors but let us know if you want us to update the description of your contributions


Increment characters

It would be nice if the increment/decrement functionality would also work for character sequences:
A
A
A
A

to
A
B
C
D

Maybe?:
...
Y
Z
AA
AB
...


Dart_NewFinalizableHandle never runs destructor.

Here is an example showing the issue:
ffi.Pointer<ffi.Void> _registerFinalizer(Box boxed) {
  final dart = ffi.DynamicLibrary.executable();
  final registerPtr = dart.lookup<
      ffi.NativeFunction<
          ffi.Pointer<ffi.Void> Function(ffi.Handle, ffi.Pointer<ffi.Void>,
              ffi.IntPtr, ffi.Pointer<ffi.Void>)>>("Dart_NewFinalizableHandle");
  final register = registerPtr.asFunction<
      ffi.Pointer<ffi.Void> Function(
          Object, ffi.Pointer<ffi.Void>, int, ffi.Pointer<ffi.Void>)>();
  return register(boxed, boxed._ptr, 42, boxed._dropPtr.cast());
}

void _unregisterFinalizer(Box boxed) {
  final dart = ffi.DynamicLibrary.executable();
  final unregisterPtr = dart.lookup<
      ffi.NativeFunction<
          ffi.Void Function(ffi.Pointer<ffi.Void>,
              ffi.Handle)>>("Dart_DeleteFinalizableHandle");
  final unregister =
      unregisterPtr.asFunction<void Function(ffi.Pointer<ffi.Void>, Box)>();
  unregister(boxed._finalizer, boxed);
}

class Box {
  final Api _api;
  final ffi.Pointer<ffi.Void> _ptr;
  final String _drop_symbol;
  bool _dropped;
  bool _moved;
  ffi.Pointer<ffi.Void> _finalizer = ffi.Pointer.fromAddress(0);

  Box(this._api, this._ptr, this._drop_symbol)
      : _dropped = false,
        _moved = false;

  late final _dropPtr = this._api._lookup<
      ffi.NativeFunction<
          ffi.Void Function(ffi.Pointer<ffi.Void>,
              ffi.Pointer<ffi.Void>)>>(this._drop_symbol);

  late final _drop = _dropPtr.asFunction<
      void Function(ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Void>)>();

  ffi.Pointer<ffi.Void> borrow() {
    if (this._dropped) {
      throw new StateError("use after free");
    }
    if (this._moved) {
      throw new StateError("use after move");
    }
    return this._ptr;
  }

  ffi.Pointer<ffi.Void> move() {
    if (this._dropped) {
      throw new StateError("use after free");
    }
    if (this._moved) {
      throw new StateError("can't move value twice");
    }
    this._moved = true;
    _unregisterFinalizer(this);
    return this._ptr;
  }

  void drop() {
    if (this._dropped) {
      throw new StateError("double free");
    }
    if (this._moved) {
      throw new StateError("can't drop moved value");
    }
    this._dropped = true;
    _unregisterFinalizer(this);
    this._drop(ffi.Pointer.fromAddress(0), this._ptr);
  }
}

and here is the output from dart analyzer showing that the finalizable handle is keeping itself alive:
Retaining path	{  ⊟
Box {  ⊟
final Api _api = Api {  ⊞  }
final Pointer<Void> _ptr = Pointer {  ⊞  }
final String _drop_symbol = 'drop_box_CustomType'
bool _dropped = false
bool _moved = false
Pointer<Void> _finalizer = Pointer {  ⊞  }
final Pointer<NativeFunction<(Pointer<Void>, Pointer<Void>) => Void>> _dropPtr = Pointer {  ⊞  }
final _drop = object
}
retained by a GC root (weak persistent handle)
}

@dvc94ch have you tried triggering full GC? (there is a button for that in the Observatory / Flutter DevTools).

and here is the output from dart analyzer showing that the finalizable handle is keeping itself alive:

Retaining path like this indicates that this object should be collected whenever the next (full) GC happens.

I can't find such a button in the dart observatory. Is this available without the flutter sdk? while the bindings are intended to be used with flutter, the test setup runs the generated dart script with LD_LIBRARY_PATH=path_to_built_so_dir dart --enable-asserts --observe --write-service-info=service.json, although the last two are just for debugging as they slow down the test speed.
I tried adding some memory pressure to force the gc to run:
final boxed = api.make_box(42);
assert(api.do_something(boxed) == 42);
final largeList = [];
while (!api.was_dropped()) {
  sleep(Duration(milliseconds: 10));
  largeList.add(99);
}

looks like increasing the memory pressure more works

Dart_NewFinalizableHandle is not available from flutter.

Dart_NewFinalizableHandle_DL is on the list of methods, so it should be available. It's not available for dynamic lookup, which is by design, but you can look it up in the NativeApi.initializeApiDLData structure (you can look into https://github.com/dart-lang/sdk/blob/main/runtime/include/internal/dart_api_dl_impl.h for the layout of this otherwise opaque structure).

not very convenient but it worked, thanks!


[zh]The link miss url.

This is a Bug Report

Problem:
The link can not redirect to correct url.

Proposed Solution:
Page to Update:
https://kubernetes.io/...

/language zh

/language zh

/kind bug

/kind bug

/assign

/assign


Some small improvements and fonts that are automatically adjusted for many resolutions!

(!) Archive "Engine" folder so we could distribute it for other players. I'm not sure how to make it more convenient:

Add it to a ModList as a mod
Add a special button (we already have too many buttons)

Nice updates! Gotta check them out today since Github is derping again and marks a lot as conflicts eventhough they are basically identical to the files on my master branch.

GitHub strikes again :-)
I also fixed a TLS/SSL problem that occurs on Windows 7 when DoW Mod
Manager downloads something
Aaaaaand customizable font sizes are ALREADY available as a mod!
On Mon, Mar 8, 2021 at 3:07 PM Dennis S<EMAIL_ADDRESS>wrote:

Nice updates! Gotta check them out today since Github is derping again and
marks a lot as conflicts eventhough they are basically identical to the
files on my master branch.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/Fragjacker/DoW-Mod-Manager/pull/24#issuecomment-792743622,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APM5F32FAY24UUA7PUGEQWDTCTDXXANCNFSM4YWTUFAQ
.

Alright I handmerged it and also removed some unnecessary variables in the nofog file that were never used. So you may want to pull the latest changes as well.


How to load .pth file weights?

I've been experimenting with candle and re-implementing ESRGAN in it. I ended up needing to convert a couple .pth files I have into .safetensors format in python in order to load them into the VarBuilder. I saw on the docs you say this supports loading pytorch weights directly though, but there does not seem to be an example on how to do that. I looked into the pickle module included in the library and got as far as being able to read the weights into a pickle format with TensorInfo, but then I got stuck trying to convert those to tensors and get it in a format VarBuilder would accept.
An example on how to either load these weights or convert them to safetensors format in rust would be great, thanks!

The easiest would probably be to use VarBuilder::from_tensors, and to provide its input you can either use the PthLoader or I just added a helper function candle::pickle::read_all in order to get all tensors from a .pth file.
Note that reading such files is quite tricky as in general it would require a python runtime so only a subset is supported at the moment. If it doesn't work for you and you can put the .pth file somewhere, I can have a look at what is missing to get it to work.

Thanks, I'll try that and let you know

Ah, so I think part of the issue is the .pth file I was trying out stores their weights under a "params_ema" parent key. I think candle's pickle reader just ignores anything that isnt a top level key:tensor pair, which is why it wasn't working. Do you know if there's a way I can make it read from that params_ema key rather than root?

Parent keys should work but the format is far from being standardized so the easiest is probably if I can access the .pth file somewhere and look at what is going on.

And just to note: what I was seeing was it loading as an empty hashmap. I can't actually test anything else until later today, but I'm just assuming it was an issue with that parent key. At the time I was testing this, I forgot that was a thing until I converted it to safetensors format and had to access the weights through it.

Is there a reason it can't just load it similarly to how python handles it, where it doesn't necessarily need to be a strict key:tensor pair but could also contain subkeys?
Honestly I'd be fine with this just not being possible. The fact that tencent and other researchers (mostly through the use of BasicSR) started saving their pth files this way has always rather pissed me off as it has caused me many headaches in the past. Making it standard to not do that anymore would be fantastic imo


Remove references to BookKeeping from readme.

As of: https://github.com/exercism/ruby/issues/836 the BookKeeping section is no longer used in the exercise test cases.
The documentation in the readme can also be removed.
TODO:
Remove the BookKeeping::VERSION section from the ruby repository Readme.md: https://github.com/exercism/ruby/blob/master/README.md

@Insti In the Readme.md we also have a part in the Regenerating a Test Suite section that mentions updating BookKeeping::VERSION number when you run generate. Is this part as well being removed?

@kevinsamoei well spotted! :heart:
Yes that should also be removed.

@Insti Awesome. Pull request coming up.


Milestone 4 Improve the app

Need 5 improvements. Please put related PRs here.

Improvement 1: Adding the loading feature
Pull request 1: https://github.com/UBC-MDS/video_game_sales_dashboard/pull/65
Improvement 2: Re-organized the charts so they look a bit more well organized, add a dividing line
Pull request 2: https://github.com/UBC-MDS/video_game_sales_dashboard/pull/65 (in the same pull request as the improvement 1)


what's the mean about obstacle's theta in module perception?

apollo 3.5
what's the mean about obstacle's theta in module perception?
is it a angle between east direction?

@wanggujin  could you specify which theta are you referring to by quoting the line of code here?

@wanggujin could you specify which theta are you referring to by quoting the line of code here?

message PerceptionObstacle {
optional int32 id = 1;  // obstacle ID.
// obstacle position in the world coordinate system.
optional common.Point3D position = 2;
optional double theta = 3;  // heading in the world coordinate system.
optional common.Point3D velocity = 4;  // obstacle velocity.
}

@wanggujin   As the comment stated, it should be the object heading direction in the world coordinated system.   The world coordinate system is x --> east, y --> north, z --> up.

Closing this issue as it appears to be resolved. Feel free to reopen if you have additional questions. Thanks!

@KaWaiTsoiBaidu
Is it angle or radians? It seems like radians but not angle. Could you pls help to check that. Aslo Which side does it rotate to?


Add documentation with installation and usage example

I can take on this issue, please assign me to it.

Sure @raphaelz 👍

@raphaelz just to give you some context about the usage part: to create the client you have to call ClientFactory::create(), it will return the Client object on which you can call positions() method. This method will return an array of Position object that have public methods to retrieve the data you need. Happy Hacktoberfest :)


Enable WhileUntilModifier cop

For discussion.
Followup to https://github.com/capistrano/capistrano/pull/1594

More concise and still readable == :+1:


Theme results filter selectors to look like toggle buttons instead of radio buttons

There is currently also no way to un-filter once one is selected.


add udf2

Add a NC_UDF2 format specifier which allows classic and pnetcdf formats.
NC_UDF0 and NC_UDF1 are restricted to NETCDF4 formats.
addresses issue #2582

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

Not sure I understand this PR. Despite the "netcdf-4 only" comment,
you should be able to just build a dispatch table where netcdf-4 specific
entries are set to either do nothing or return an error.
Have you tried this?

@DennisHeimbigner this PR was superseded by #2586 which was merged a year ago.  This PR was old, stale and unnecessary, so I just closed it :).


Makes smoke grenade packets buyable by all squad ranks (except WS)
also removes the name of filled HEFA and HEPD packets, since they get the same name from their parent.
Why / Balance
All is parity, except the ability for req to be able to buy smoke grenades.
Fixes #1905, #1846, #1759, #1641, #1475, #1395
Media
https://github.com/user-attachments/assets/baa5a0bb-17d5-492f-ab0c-5537425c6972
Requirements

[x] I have read and I am following the Pull Request Guidelines. I understand that not doing so may get my pr closed at maintainer’s discretion
[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog
:cl:

add: All squad roles can now buy smoke grenades.

should be ready now, had some trouble commiting, not sure why it is saying there are 2 conflicts

oh, hang on

conflicts are resolved, should be ready to be merged now


LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20210720033358262 to main

LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20210720033358262 to main with localized lcls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.002%) to 42.559%

Totals

Change from base Build<PHONE_NUMBER>:
-0.002%

Covered Lines:
26720

Relevant Lines:
56901

💛  - Coveralls


Add Georgia scraper

Georgia shared an updated bulk file and links to their releases and records APIs.
I'll share links separately as I don't think these are public yet.
Could we get the updated bulk file loaded into kingfisher early next week (it should be possible to load the local file using the existing scraper)?
I'll also need to provide feedback on the API, so if there was time to try and write a scraper for that (and share feedback on any ways it could be improved) that would be great, otherwise I can have a play with it myself on my machine.

Also: Georgia has this older data source: http://opendata.spa.ge/#/tenders (Click English top-left)
When I tried, the "All tenders in zip file" expands 67784 files in annual folders from 2010 to 2017, almost all of which are 0 bytes.
However, the individual JSON links work.

@duncandewhurst Do you know if the URL they shared is now considered public? Tagging as 'blocked' in the interim.

They had only shared a private dropbox link if I remember correctly which we local loaded.
However, today they have shared public URLs:

ZIP of release packages at https://odapi.spa.ge/spage.json.zip
XLSX dump of releases at https://odapi.spa.ge/spage.xlsx
via OCDS API. OpenAPI definition at https://odapi.spa.ge/api/swagger.json, readable version at https://odapi.spa.ge/api/swagger.ui

Can we get a scraper written as a priority as they have requested feedback on the data.

Scraper is done, and run.


add some playlist tutorial

how to add files and make a pr

Steps to Contribute to Open Source Project

Fork the Repository
Clone the Repository
Commit and Push the Changes
Open a Pull Request


Added an errors summary for --pretty --watch results

Reports a "Found X error(s) across Y file(s)." message on each recompile if in both pretty and watch modes.
I ended up cutting & pasting emitFilesAndReportErrors up into three functions:

getProgramDiagnosticsAndEmit: Retrieves diagnostics output and emit results from the program.
reportDiagnosticErrors: Outputs the traditional error reporting that already existed.
summarizeDiagnosticsAcrossFiles: Outputs the new summary message.

This commit intentionally doesn't include tests yet as I have a few questions about implementation details:

In the first commit, there's an added message before the constant "Compilation complete." one. I would prefer to have one message with a descriptor of the errors or lack thereof, followed by "Waiting for file changes.". Would that break anything? Nothing comes to mind.
Why does emitFilesAndReportErrors exist in watch.ts but get used in tsc.ts? If it's part of logic not exclusive to logic, should it be moved to tsc.ts?
clearScreenIfNotWatchingForFileChanges is hardcoded to not clear the screen for one specific diagnostic method. I changed it to also allow the new messages. Is there a less hardcoded way I should use instead?

Commit 1 output in cmder:

Fixes #22124.

I'll take that signoff as approval :) and write tests & resolve conflicts soon.

I wounder if we should show this all the time as well.. like not just --watch.. nu just regular compilations.

Moved all the logic to watch.ts, so tsc.ts remains untouched.
@sheetalkamat I don't see any existing tests that include the "Compilation complete." string. Am I missing them, or do you want me to add them in this PR?

Ah, now the tests are failing. Will update...

@JoshuaKGoldberg #22570 should be fixed now, can we update this PR.


Saturation middle quants

Testing proper export of weight middle quants to onnx

Test:

create a simple model
calculate middle quant points
replace weights by middle quant point
replace quantizer scale by middle quants related one
export model to onnx file
load model from onnx file
compare reference weights with actual weights


Handle some errors, turn to verbose

The script in its current state fails on first bde_copy invocation
for me. These changes just make the failure exposed earlier and
avoid further wild processing (ie: w/out early exist I ended up
with an empty file called *.gz in the output directory)
See #1

@ccrook the empty *.gz.txt was the result of running this line in an empty directory.


Add example of how to write unit tests along with how to use babel and webpack

The included example is meant to be self-contained. That's why it includes its own package.json and .gitignore.

Wow - that is awesome, thanks a lot for doing that. We have really been missing an example like that.
Let me look through your example a little more carefully - thanks.

Any thoughts on this? Can I make it better?

No I think it looks really good.
Only little annoying nitpic is that the rest of the code in ngReactis indented with 2 spaces, yours is with 4 :smile_cat: I can merge your pull request and change it or you can do it - what do you think?
Thanks again.

@kasperp no problem. I've added an editorconfig file to make it easy to do the right thing and I've formatted all the js files with 2 spaces.

Perfect - thanks for the effort.


Tutorial how to build a docker image with rules_conda and bazel

Hi,
thank you for providing this nice rules! I am a newbie with bazel and would like to ask for help building a py3_image instead of a py_binary.
Thanks you!

Assuming that:

you want to use Bazel inside Docker during image building
you can use BuildKit
you are inside example directory
you changed rules_conda rule in WORKSPACE from local_repository to http_archive (currently commented out)

then you can use the following Dockerfile:
FROM debian:bullseye-slim as build

RUN apt-get update && \
    apt-get install -y ca-certificates openssl gcc git python

# Get certificate from "releases.bazel.build"
RUN mkdir /usr/local/share/ca-certificates/extra && \
    openssl s_client -showcerts -connect releases.bazel.build:443 </dev/null 2>/dev/null | openssl x509 -outform PEM > /usr/local/share/ca-certificates/extra/releases.bazel.crt && \
    update-ca-certificates

WORKDIR /app/

COPY ./ ./

RUN --mount=type=cache,target=/root/.cache \
    ./bazelw build app && \
    mkdir ./.cache/ && \
    mv /root/.cache/bazel/ ./.cache/bazel/ && \
    mv /root/.cache/bazelisk/ ./.cache/bazelisk/

RUN mv ./.cache/bazel/ /root/.cache/bazel/ && \
    mv ./.cache/bazelisk/ /root/.cache/bazelisk/

ENTRYPOINT [ "./bazel-bin/app/main" ]

and the following .dockerignore:
Dockerfile
.dockerignore
README.md
bazel-*/
bazelw.bat
tools/bazelisk/
!tools/bazelisk/bazelisk-linux-*

And then run:
DOCKER_BUILDKIT=1 docker build -t rules_conda/example . && docker run -it rules_conda/example

This way you can benefit from both Docker and Bazel. Bazel cache will persist between container runs (locally on one machine). If you need, you can tweak it further and use multi-stage builds  to reduce image size (e.g. you don't really need bazel and bazelisk binaries to run the app), but that will require some dirty work with the right files and directories.

I think I figured it out with py_image. I'm not 100% sure it works correctly though. I'm also using py3_image instead of py_image
Let's assume you are in example directory.

Add empty BUILD file in the current directory. Not sure why it's necessary but see the third point here.

Add this at the end of the WORKSPACE file. This needs to be after register_toolchain (see here):

http_archive(
    name = "io_bazel_rules_docker",
    sha256 = "27d53c1d646fc9537a70427ad7b034734d08a9c38924cc6357cc973fed300820",
    strip_prefix = "rules_docker-0.24.0",
    url = "https://github.com/bazelbuild/rules_docker/releases/download/v0.24.0/rules_docker-v0.24.0.tar.gz",
)

load(
    "@io_bazel_rules_docker//repositories:repositories.bzl",
    container_repositories = "repositories",
)

container_repositories()

load(
    "@io_bazel_rules_docker//python3:image.bzl",
    _py3_image_repos = "repositories",
)

_py3_image_repos()

Change app/BUILD to:

load("@io_bazel_rules_docker//python3:image.bzl", "py3_image")

alias(
    name = "app",
    actual = "main",
)

py3_image(
    name = "main",
    srcs = glob(["**/*.py"]),
)

Build the image and run the container with:

./bazelw run --spawn_strategy=standalone app

If you don't want to pass --spawn_strategy=standalone every time you can add it to .bazelrc


Secure username and password.

Hello,
I'm trying to create an HTML page that connects to Splunk Enterprise and execute a search query. This page will be accessible publically for end users.
Hince, I'm looking for a way to secure my Splunk credentials. I there a way to that? Like API Key or encrypted credentials.
Is there another way instead of this one?
svc = new splunkjs.Service(http, {                  scheme: 'http',                 host: 'localhost',                 username: 'admin',                 password: 'changeme'             });
Thank you!

Hey @saibimajdi - we can't support this through the front end. We'd recommend setting up a web app that does authentication via a proxy on the back end.

Why it possible to do in node.js https://github.com/splunk/splunk-javascript-logging but not in browser ?

@vyazadji The JS logging library that you've linked to only supports Splunk HEC which is a specific port and set of endpoints only for ingesting data.
This JS SDK faces the same limitations of the underlying Splunk REST APIs and this is unlikely to change anytime soon.


The player can't reproduce VPAID video

The player can't reproduce VPAID video.
To Reproduce
Click the browser to play.
Expected behavior
Reproduce VPAID video.
Screenshots or Links

class MyVideo extends React.Component {
  constructor(props) {
    super(props);
    this.self = React.createRef();
    this.player = null;
  }

  render() {
    return (
      <video ref={this.self}>
        <source
          src="https://cdn.fluidplayer.com/videos/valerian-1080p.mkv"
          data-fluid-hd
          title="1080p"
          type="video/mp4"
        />
      </video>
    );
  }

  componentDidMount() {
    this.player = fluidPlayer(
      this.self.current,
      {
        vastOptions: {
          allowVPAID: true,
          adList: [
            {
              roll: 'preRoll',
              vastTag: 'https://www8.smartadserver.com/video/vpaid?siteid=346437&pgid=1247692&fmtid=89428&ab=1&tgt=&ps=1&pb=0',
            },
          ],
        },
      },
    );
  }

  componentWillUnmount() {
    if (this.player) {
      this.player.destroy();
    }
  }
}

ReactDOM.render(<MyVideo />, document.getElementById('root'));

VPAID .xml file/response:
<VAST version="2.0">
<Ad>
<InLine>
<AdSystem version="v1">SMART Adserver</AdSystem>
<AdTitle>SMART AdServer VPAID AdPlayer</AdTitle>
<Impression event="impression_smart">
<![CDATA[ https://creatives.sascdn.com/shim.gif ]]>
</Impression>
<Creatives>
<Creative>
<Linear>
<Duration>00:00:30</Duration>
<AdParameters>
<![CDATA[ { "siteid" : "346437", "pgid" : "1247692", "fmtid" : "89428", "ab" : "1", "tgt" : "", "ps" : "1", "pb" : "0", "nwid" : 3697, "domain" : "www8.smartadserver.com" } ]]>
</AdParameters>
<MediaFiles>
<MediaFile delivery="progressive" type="application/javascript" width="480" height="640" apiFramework="VPAID">
<![CDATA[ https://ced-ns.sascdn.com/diff/video/current/libs/js/vpaid-plugin.js ]]>
</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>

Desktop:

OS: Linux
Browser Chrome, Firefox

Mobile:

Device: Redmi Note 7
Browser  Chrome

Affected version
v3.0.1

Hello!
Apologies, but this ticket has been closed because there is no actionable way to identify what the actual issue is.
The initial ticket description fails to provide details required to identify the problem, such as error output, request logs, environment and browser details, and other details that could aid and allow in identifying the problem you are facing.
Before submitting a new ticket, please make sure that the problem you are facing is related to this software and is not a result of a misconfiguration or third party code - including your usage of this software.
As a general rule, we are unable to help with user-specific implementation details, and we are not able to debug user implementations, such as websites, plugins, scripts, etc..
You are required to take the minimum steps necessary to identify the issue, such as debugging the software, your specific configuration, the requests made, the responses returned by any external services.
You are required to submit enough details about the problem so that we would be able to reproduce and verify the problem.
Make sure to fill out any issue templates as provided by the issue tracker when such templates are present.
This is an automatic response. Please, do not reopen or re-create this ticket without addressing the requirements and problems outlined above.


JumpBox Deployment failed  in AVS Nested Lab deployment.

Hi,
I'm facing issue during AVS Privatecloud deployment with Nestedlabs through script. I could see jumpbox deployment failed with below details.
Operation name :Create Deployment
Error code : ResourceDeploymentFailure
Message : The resource write operation failed to complete successfully, because it reached terminal provisioning state 'Failed'.
{"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details.","details":[{"code":"RetryableError","message":"A retryable error occurred."}]}

Issue addressed by clarifying prerequisites in the documentation. Fixed in commit 855ae34


Cartesian iterates second sequence more than once

Cartesian iterates second sequence as many times as items in the first sequence. There's even a to-do comment in the code that this needed addressing:
https://github.com/morelinq/MoreLINQ/blob/f6a3f7b398ff624fdd8a09cd29bedf25fccae2a5/MoreLinq/Cartesian.cs#L44-L46
This is being considered a breaking change for sake of alerting users that it's behaving now the way it should've in the first place.

Forked from #422.

Closed by 4a13672a005e82a909363b5881deb95db4e5eec6.


Incorrect code example.  open with 'write' flag

The example doesn't work as is.  You need the 'w' flag.

Thanks!


mexer.cs.calvin.edu?

Should we change the name of the server from
eviz.cs.calvin.edu
to
mexer.cs.calvin.edu?
Also, should we change the name of this GitHub repository? And get it out of Energy-Visualizer?

Name of repo has been changed to mexer.


Hirefire Dyno Manager name limit

I'm trying to create a new infrastructure based on sidekiq and hirefire and since the number might scale a lot we need the name to  be a little bit bigger than the current regular expression supports.
I just checked Hirefire and it does support names longer than 29 characters so why is there a lock for it?
Could i open a PR to remove this constraint?

Hi @plribeiro3000 I've just released v1.0.5 which increases the limit to 63 characters. Any more than that and Heroku will reject deployments.

@mrrooijen Awesome Michael!
Than you for the fast work on this!

Glad to help!


os-release identifier incorrect

Definately can't ship bluefin:stable if we claim to be Fedora Bluefin lol. This likely might be in 39 as well, checking.  The correct string should be Welcome to Bluefin 40 (FROM Fedora Silverblue)

Tested in a VM, looks like gts is not affected.

Looks like the boot menu in grub is incorrect too, this happens on F39 with rechunker enabled.

Confirmed fixed on today's builds, GTS refreshed and pushed, including ISOs, thanks for this @m2Giles !


Can we invoke a standalone qaf project or test run config xml from jenkins build ?

QAF Version

Note: only the latest version is supported

Steps To Reproduce
1.
2.
3.

Expected behavior
Actual behavior
Is the issue reproducible on runner?

[x] QAS
[ ] Maven
[x] Gradle
[x] Ant
[ ] Eclipse

Test case sample

Please, share the test case (as small as possible) which shows the issue

Yes you can run from Jenkins or any other continuous integration tool.
Please post your question in users group.


Add changelog

I can't find a changelog and I don't know if I should worry about changes from v5 to v6 since you upped the major version?

Now you bumped to v7 and it's again very unclear what's the breakage.
Diff helps a tiny bit, but I really can't understand the scope of all changes without diving into the internals of the library.
Above mentioned releases page has no information either.
A simple CHANGELOG.md in the root of the project with a short list of things that have been broken in a major version would really help.
Thanks!

Really wish there was a change log as well or an up to date releases page with breaking changes. Great software but it makes it very difficult to use.


Updated index.html

Implemented Multilingual support(using google translation)
solved #497

@Suchitra-Sahoo Done with my work once have a look. Thank You.

This is  not looking good some words are in english and some are in hindi. Also after conversion words are not making proper sense. Keep only indian languages. Also the language changing option should be designed properly.

Actually after changing to other language it may take 2sec to change whole
webpage with accurately.
On Thu, May 30, 2024, 11:22 PM Suchitra Sahoo @.***>
wrote:

This is not looking good some words are in english and some are in hindi.
Also after conversion words are not making proper sense. Keep only indian
languages. Also the language changing option should be designed properly.
—
Reply to this email directly, view it on GitHub
https://github.com/Suchitra-Sahoo/AgriLearnNetwork/pull/574#issuecomment-2140460829,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BBI4VG762FP2HOE74OGYOILZE5RMHAVCNFSM6AAAAABIRKIZ32VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBQGQ3DAOBSHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Okay keep two language english and hindi. Take refrence from this website and try to replicate https://www.bighaat.com/hi

Ok sure by tomorrow morning I will be committing these changes
On Thu, May 30, 2024, 11:40 PM Suchitra Sahoo @.***>
wrote:

Okay keep two language english and hindi. Take refrence from this website
and try to replicate https://www.bighaat.com/hi
—
Reply to this email directly, view it on GitHub
https://github.com/Suchitra-Sahoo/AgriLearnNetwork/pull/574#issuecomment-2140521392,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BBI4VG565OPICLAQSKH5VG3ZE5TRDAVCNFSM6AAAAABIRKIZ32VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBQGUZDCMZZGI
.
You are receiving this because you authored the thread.Message ID:
@.***>


direct token requests commit

Currently, the token-sdk attaches to the commit pipeline of a given backend to get notification of when a transaction gets committed. In the future, we might have to attach to a network that only notify about the validity of a given transaction.
This means that the token-sdk will not be able to access the transaction itself, but only manage token requests.
This issue requests the ability to explicitly commit to the tokenDB a token request.

addressed by #554


invalid block directive in minify-dead-code-elimination

Just encountered this error (w/ babel-plugin-minify-dead-code-elimination@0.1.7):
TypeError: bundle.js: block.get(...).filter is not a function
    at getUseStrictDirectives (.../node_modules/babel-plugin-minify-dead-code-elimination/lib/remove-use-strict.js:50:34)
    at removeUseStrict (.../node_modules/babel-plugin-minify-dead-code-elimination/lib/remove-use-strict.js:21:20)
    at PluginPass.exit (.../node_modules/babel-plugin-minify-dead-code-elimination/lib/index.js:844:13)
    at newFn (.../node_modules/babel-traverse/lib/visitors.js:276:21)
    at NodePath._call (.../node_modules/babel-traverse/lib/path/context.js:76:18)
    at NodePath.call (.../node_modules/babel-traverse/lib/path/context.js:48:17)
    at NodePath.visit (.../node_modules/babel-traverse/lib/path/context.js:117:8)
    at TraversalContext.visitQueue (.../node_modules/babel-traverse/lib/context.js:150:16)
    at TraversalContext.visitSingle (.../node_modules/babel-traverse/lib/context.js:108:19)
    at TraversalContext.visit (.../node_modules/babel-traverse/lib/context.js:192:19)
    at Function.traverse.node (.../node_modules/babel-traverse/lib/index.js:114:17)

I've added some debug traces and it seems that block.get("directives") doesn't always return an array, but sometimes an object too, in which case this error is triggered. Not sure about the internals of blocks, but maybe that's an upstream issue?
As a quick fix this works:
function getUseStrictDirectives(block) {
    var dir = block.get("directives");
    return dir.filter ? dir.filter(function (directive) {
        return directive.node.value.value === useStrict;
    }) : [];
}

Just wondering about the corner case, Can you give the test code where it got failed?

Looks like a bug. Would you like to send a PR?

@vigneshshanmugam not easily, code base is >40k LOC and couldn't yet determine which part triggers it. I've noticed though that the block in question has an empty body, so guess this is caused by a previous optimization step (path.remove())...
{ type: 'BlockStatement',
  body: [],
  trailingComments: [],
  leadingComments: [],
  innerComments: [] }

So proposing a better fix based on that finding:
function getUseStrictDirectives(block) {
    return block.body && block.body.length ?
        block.get("directives").filter(function (directive) {
            return directive.node.value.value === useStrict;
        }) : [];
}

@boopathi sure, should this be based on master?

@postspectacular Thanks for explaining. Yes based on master.

@vigneshshanmugam no prob, still i think the real issue is somewhere else (in babel?) which causes block.get("directives") to return wrong data (NodePath instead of array) - this current fix is just addressing symptoms, not a cure...

I'm still getting this error. Running babel-preset-babili 0.1.4 with babel-cli 6.24.1 on node 8.1.3


Upload functionapp configurations from Json file

Is there a way to upload multiple configuration from json file using following cmdline syntax?
az functionapp config appsettings set --name MyFunctionApp --resource-group MyResourceGroup --settings

I need this.

@andigwandi Please see my github issue that was closed yesterday. They answered my question about how to use a json file to upload multiple configurations.
https://github.com/Azure/azure-cli/issues/11552#issuecomment-565154393

@andigwandi Apologies for the late reply. I am hoping that you have followed the suggestions in the above comment. Could you please let me know if you need any further assistance on this ? Awaiting your reply.

No action is required as of now. Thank you for following up.


Can't run in Ubuntu

It just closes itself. I tried running it from the terminal, and this is the log I got:
current: Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })
payload: IpPayload { origin: "<IP_ADDRESS>" }
app inited
app state: AppSt(Mutex { data: <locked> })
Gtk-Message: 15:07:02.846: Not loading module "atk-bridge": The functionality is provided by GTK natively. Please try to not load it.
libEGL fatal: DRI driver not from this Mesa build ('23.2.1-1ubuntu3.1~22.04.2' vs '23.0.4-0ubuntu1~22.04.1')

How you started the programm ?
You have to open it in a browser....
Ciso iGerd

Steps:
sudo apt update
sudo apt install wireguard # install
nmcli connection import type wireguard file <path/to/wireguard.conf> # add the config
nmcli connection show # see all the config, to get the name
nmcli connection up <wireguard-config-name> # start that connection

ref: https://developerinsider.co/how-to-set-up-wireguard-client-on-ubuntu/

Sorry I thought it was a client, sorry my silly mistake.

The wireguar-ui is a GUI for the server....
Ciao Gerd


Encrypted password storage

[x] Authentication passwords
[x] Backup password

This is just a reminder for myself to implement some kind of encrypted/hashed storage for the authentication passwords (password and PIN) and the backup password.
Until now both are stored in plain-text which is not really secure at all.
For the authentication it should be sufficient to simply store the credentials hashed.
For the backup password this is not really an options since the hash of the password is used to generate the key, so knowing the hash would allow someone to decrypt the backups. The simplest solution would be to don't store the backup password at all and ask every time a backup is created or imported. This on the other hand would break support for automated encrypted backups since it would require user-interaction.
Help wanted: I would like to hear some opinions of the users what would be their preferred solution to storing the backup password.

Just for reference, I added two different methods to storing the passwords:

The backup password is stored encrypted using a new key from the Android KeyStore.
The authentication password or PIN are stored as SHA256 hash. I decided against storing them encrypted as well so that in cases something happens with the KeyStore (as it sometimes does after wiping the cache in recovery) the App can still be started without clearing it's data.

Existing settings should be automatically migrated upon starting the new version of andOTP for the first time.


would like to add this channels

http://mhdtvworld.com/genre/jio-tv/
http://mhdtvworld.com/genre/jio-tv/page/2/
http://mhdtvworld.com/genre/jio-tv/page/3/
http://mhdtvworld.com/genre/jio-tv/page/4/
http://mhdtvworld.com/tv-channels/hindi-channels/
http://mhdtvworld.com/genre/star-tv/
http://mhdtvworld.com/genre/zee5/
http://mhdtvworld.com/genre/zee5/page/2/
hi bro would u mind to add this channels. no rush when ever u have time.
really appreciate

I support this request
Thanks
Keep Up the Good Work !!!

Yes I saw but links I sent those channels are not there in the list. Please if u can look.
Appreciate your work.
Sunny
Xtreme Tv Service

On Sep 13, 2019, at 3:41 AM, ik4u<EMAIL_ADDRESS>wrote:
I support this request
Thanks
Keep Up the Good Work !!!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@xtremetv I added to the playlists all the streams from this site that were possible.
The fact is that some links to streams on this site are exposed daily, as a result of which links simply stop working the next day after you copy it. Also, some broadcasts simply do not work anywhere except this site. So I'm sorry, but I won’t be able to add more channels from there.

Please don’t be sorry
It’s all good. You doing very good bro. If I will find more sites will post.
Thanks
Sunny
Xtreme Tv Service

On Sep 13, 2019, at 3:27 PM, Aleksandr Statciuk<EMAIL_ADDRESS>wrote:
Closed #339.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@xtremetv Okay!


Add gasLimit option to EvmSignerOptions for overriding gas limit

The EVM signer's gas limit is hardcoded to 500,000, which is insufficient for chains like Arbitrum in some cases.

Failed with 50w gas, https://arbiscan.io/tx/0xa52ff890d9e43ba316c43fb357800bed0b7b59ef9f3143b1514f4a8b79812f5e
Extremely high with 51,881,506 gas  https://arbiscan.io/tx/0xe3fa9f5201a3c9b1fe3d709e3add4b17a633639d5b8f280f9c05c4e6cef2a192

We need to provide the ability to modify the gas limit in EvmSignerOptions.
Dune query:
select * from arbitrum.transactions where to = 0x0b2402144Bb366A632D14B83F244D2e0e21bD39c order by gas_used desc limit 100

Thanks for the PR!


feat: new widget style

https://byebuyglobaloperations.atlassian.net/browse/CHIN-345
Changed the text and order of the widget as requested.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Less 文件编辑时,vscode  系统占用过高。

所需的数据太大，无法直接发送。我们已经将其写入剪贴板，请粘贴。

The required data is too large to send directly. We have written it to the clipboard, please paste it.

We need this data and steps to repro the issue


Re-challenge: Use module: node12 in tsconfig.json

blocked: https://github.com/eslint/eslint/issues/15453 OR https://github.com/eslint/eslint/issues/15394

There's nothing we can do!

Perhaps, but we can solve this problem by using https://github.com/eslint/eslint/issues/15453#issuecomment-1001200953. Moreover, it can also support eslint v7.

This PR is conflicting, so we need to recreate a new PR.


Changed cursor

I have changed cursor outline and size.
This was old cursor

This is the new cursor with bigger outline.

now you can merge the request. I have changed the cursor as demanded.

This has to be implemented in react please refer to the issue once again #990


Mast: Watch back[\W_]+to[\W_]+school[\W_]*+promo

Mast requests the watch of the watch_keyword back[\W_]*+to[\W_]*+school[\W_]*+promo. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

back[\W_]*+to[\W_]*+school[\W_]*+promo has been seen in 2 true positives, 0 false positives, and 0 NAAs.

Approved by tripleee in Charcoal HQ


feat(layout): add split_array method

Layout::split_array() makes it easy to store areas in individual values.
E.g.:
let [top, main] =
    Layout::vertical([Constraint::Length(1), Constraint::Min(0)])
    .split_array(area);

I want two approvals on this one - mainly for working out whether the naming makes sense.

In terms of names, I would have preferred split_into() if area was stored in the layout, i.e.
let [top, main] =
    Layout::vertical([Constraint::Length(1), Constraint::Min(0)])
    .split_array(area);

versus
let [top, main] =
    Layout::vertical([Constraint::Length(1), Constraint::Min(0)])
    .area(area)
    .split_into();

With the functionality as is, I think the name split_array() is great!

I have a small preference for .split_into_array(area) as it would be more descriptive and representative of what the function does, i.e.
layout.split(area)
    .to_vec()
    .try_into()
    .unwrap()

is replaced by this:
layout.split_into_array(area)

I like split_into_array as a descriptive name but perhaps it feels too verbose.

it feels too verbose

Once merged, I assume this will be the main splitting method used.

Maybe it is worth introducing a breaking change for this and replacing .split(area) with this?

I'm 👎 on breaking .spilt - 1.1K calls

https://github.com/search?q=ratatui+layout%3A%3A+.split(+lang%3Arust+NOT+repo%3Aratatui-org%2Fratatui&type=code

But what about split_area() as a compromise on verbosity?

Once merged, I assume this will be the main splitting method used.

There's a PR that shows how the code would look using this https://github.com/ratatui-org/ratatui/pull/731

I like in order of preference:

.split_into(area): it's as short as we can get while being descriptive, it hints at what's going on inside the function (i.e. try_into)
.split_into_array(area): it's descriptive but verbose for something that might be the default way people use this function
.split_array(area): it's short but I don't think I'd be able to guess what is going on in the function? It could be misinterpreted as split the argument which is an array which is why I like .split_into_array(area) more than this
.split_area(area): it's short but repeats the argument name in the function name so it falls down the list

I think 1,2, and 3 are all problematic because they imply that the area is the (linguistic) object associated with the verb (split_into, split_into_array, split_array). Area is not the object of the sentence its the subject. Only a bare verb, or a verb phrase that repeats the subject communicates this properly.
Put in a sentence we want:

The area is split by the layout
Not:
The layout is split into the area
The layout is split into an array that is the area
The layout splits an array that is the area

Chatting on Discord - @kdheepak made the observation that this then leads to:
area.split(Layout::horizontal([constraints]));

which I've added.
This now also includes the helper methods too.

Needs:

docs
updated changelog message
examples in website to be changed to use this approach

This looks good to me!
But maybe useful to get one more review for feedback on area.split(&layout)?

Yep - definitely want one on this. I'm going to rebase and rewrite the commit for the CHANGELOG also.

rebased and commit message / PR text updated.
There's a build failure that is fixed in #743

Would be nice if we could write
area.split([Constraint::Length(10), Constraint::Length(10)]);
area.split([10, 10]);

Not too sure about the second one but the first one is definitely something I'd like.
Approving as this can be part of another PR.

Direction to split is necessary, so perhaps Rect::split_horizontal():
fn split_horizontal<const N: usize, T: IntoIterator<Item = Into<Constraint>>(self, constraints: T) -> [Rect; N] {
    self.split(Layout::horizontal(constraints));
}

But at that point we're just losing a single word (Layout), which is a good one to keep as it makes it a little more obvious what the [1,2,3] does. I like there to be a solid obvious way to do something. Do you think having both split(layout) and split_horizontal(constraints) might add one too many ways that would make it difficult to choose which method is the right one to use?

it makes it a little more obvious what the [1,2,3] does

I wasn't too sure about that, let's forget that for now.

Do you think having both split(layout) and split_horizontal(constraints) might add one too many ways that would make it difficult to choose which method is the right one to use?

Probably yes, this is confusing.

I though of my suggestion as
fn split<const N: usize, L: Into<Layout>>(self, layout: L)

That way you can still write .split(layout) which is the "solid obvious way", and is good if you want to store layout (for configuration perhaps). And for quick and easy split use Into.
That would require implementing From<Vec<Constraint>> for Layout or similar. But overall it makes sense to convert a bunch of constraint to a layout.

Direction to split is necessary

As for direction I'd just use the default one. Use layout if you want something else or

I'd prefer to avoid defaulting the direction implicitly as it makes the code difficult to read unless you know what that default is. Happy to do it with `default(), but it should be explicit otherwise.

Alright lets leave it as is for now. On second thought after reading the updated examples it seems fine to me.


Update iam.tf to address malformed json policy

Deployment of this terraform stack in my local AWS environment failed and claimed malformed json. An IAM role if a Sid is declared, requires a non-empty Sid. If a more descriptive name is better, feel free to use something else :)
What this PR does / why we need it:
This PR addresses an incorrect IAM policy in iam.tf. A policy requires a non-empty Sid. Once added, terraform successfully spins up the EKS environment.
Which issue(s) this PR fixes:
493: Malformed json in iam.tf
Fixes #
Quality checks
[ x] My content adheres to the style guidelines
[x ] I ran make test or make e2e-test and it was successful - I ran terraform fmt and deployed to local environment with the fix.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thanks for this @gvasels-aws not something that came up before


V2: JSON Schema

I think we should try to target a specific version of JSON Schema, I guess ideally the latest version, e.g. currently 2020-12.
See this thread on twitter for some pointers.
I've heard there are a set of test cases somewhere, would be good if we could test against all or some of them.
I know many people want OpenAPI support too. Maybe we have to build a simple converter or switch to work with the latest version of OpenAPI which I understand is very behind JSON Schema? Maybe a convert already exists?
In terms of how to implement this, might rough suggestion (once #4516 is merged) would be:

delete everything in pydantic/schema.py and start again
use the pydantic-core schema which is already being generated and saved on models as __pydantic_validation_schema__ and process that recursively building a JSON Schema
extra details required by JSON Schema, but not used in pydantic-core should be saved in the 'extra' key which is already available in pydantic-core schema

You'll need to build something to respect the __modify_schema__ method which existed in V2. We should rename this to perhaps __pydantic_modify_json_schema__, because:

we're trying to be good (or good-ish) and note add dunder attributes/methods which don't start with __pydantic
we need it to have a name that avoids confusion with pydantic-core schema

@tiangolo I know you originally implemented JSON Schema in pydantic when you were first working on fastapi :pray:, would you be able to implement it again? If not, please unassign yourself and hopefully someone else will take it on.
I've had some interactions with @Relequestual about JSON Schema, maybe he would be able to help too :question: :smile: there's also a JSON Schema slack org which might be able to help.

Need to think about #1270 while working on this, it has a lot of interest.

As dicussed with @Relequestual, the plan is to target JSON Schema 2020-12 which is compliant with OpenAPI 3.1.
FastAPI uses redoc or swagger-ui to generate API docs, so it would be good if they both supported OpenAPI 3.1:

redoc: supports "basic" OpenAPI 3.1, see https://github.com/Redocly/redoc/issues/1715 for context on what's missing. TL;DR I think it should be fine.
swagger-ui: doesn't yet support OpenAPI 3.1, but looks like it will soon, see https://github.com/swagger-api/swagger-ui/issues/5891

Regarding testing, we should try to leverage the JSON Schema test suit, see https://github.com/json-schema-org/JSON-Schema-Test-Suite.
The Slack channel for JSON Schema should be helpful when planning/work on this issue and I'm sure some of them would be willing to review a PR, Ben mentioned that @Julian might be able to help us a little?
Of course it would be amazing if someone from the JSON Schema community could take a stab at a PR ... but maybe that's too much to ask? :crossed_fingers:

Hi hi! Indeed happy to hear a bit more about what I can help with -- I'm graciously paid full-time to work on JSON Schema-related things, and whilst there's an everlasting backlog of things I'm already engaged with, if there are things I can help easily with (especially vis-a-vis the test suite) I'm more than happy to. I also honestly have never looked at Pydantic's JSON Schema support, and separately my goals with the python-jsonschema org are to create JSON Schema ecosystem tooling for Python beyond those just for my own jsonschema implementation. That may not be directly relevant to Pydantic's v2 goals but may as well mention it in case there become any tools which are "obviously" beneficial in a wider sense. But yeah should I start by just reading this issue a bit more carefully? Apologies for not making the call this morning I have literally no good excuse other than "my alarm didn't go off" :(

Apologies for not making the call this morning I have literally no good excuse other than "my alarm didn't go off" :(

No worries, I was very late, with equally little excuse.

I also honestly have never looked at Pydantic's JSON Schema support so I have a bunch of caatching up to do

Not really, we basically need to delete what's there now and re-implement the whole thing to translate the pydantic-core schema generated for a model/other validation target into JSON Schema.
See #4516 for the switch to pydantic-core, and https://github.com/pydantic/pydantic-core/blob/main/pydantic_core/core_schema.py is probably the best explanation of what pydantic-core schema looks like, the pydantic-core trays might help to.

After that, basically someone needs to have a crack at implementing it, and others can review.
If no one else is willing, I'll get around to it as soon as I can.
In the meantime, any pointers or suggestions from JSON Schema experts would be much appreciated.

Hi, I am not sure if this is helpful but https://schema.org/Recipe offers a lot of information and is also used by Bring! (https://sites.google.com/getbring.com/bring-import-dev-guide/web-to-app-integration).

On the twitter thread mentioned in the description, I suggested focusing on the JSON version that OpenAPI 3.1.0 complies (the latest JSON version). But...
There's one problem with that, which you've already pointed out: Swagger doesn't support OpenAPI 3.1.0 yet. But then, that's a very important issue for FastAPI. If Swagger doesn't support it, FastAPI will not be able to bump it as well.
So... Maybe we are blocked here because of that? And if so... Should we change our strategy?
It looks like OpenAPI 3.0.2 (the one FastAPI uses) is a subset of Draft Wright JSON Schema.
I personally don't think we should be blocked by Swagger. For me, it's much more interesting to have a valid OpenAPI schema, which I can use already with ReadMe, ReDoc, to generate HTTP clients, and to use tools like schemathesis.
In any case, I'd be happy to help here, but I think @tiangolo wants to do this himself (I'll talk to him).

Thanks @Kludex. My understanding from talking this through with @Relequestual was that we can formally target 3.1.0, but we might have to not use all the new features/types.
We might just have to call it 3.0.2 or similar to satisfy Swagger?
I suspect we won't really know what works and what doesn't until we get into the work and try it out with Swagger.

extra details required by JSON Schema, but not used in pydantic-core should be saved in the 'extra' key which is already available in pydantic-core schema

I didn't get this part. You mean to save it for caching purposes?
(Should I ask questions elsewhere, or is it fine here?)

I didn't get this part. You mean to save it for caching purposes?

Sorry if I wasn't quite clear, the JsonSchema you refer to is not quite right, sorry if it's confusing. JsonSchema there refers to the pydantic-core schema for the Json "meta-type", e.g. how we would defined the json_data type below
from pydantic import BaseModel, Json

class MyModel(BaseModel):
    json_data: Json[list[int]]

What I meant by

extra details required by JSON Schema, but not used in pydantic-core should be saved in the 'extra' key which is already available in pydantic-core schema

is this: the new JSONSchema generation logic will recursively process the pydantic-core schema to convert it to JSONSchema. However sometimes there's information required to generate the JSONSchema which aren't required for pydantic-core schema (e.g. title and description), since pydantic-core schema is validated and extra keys are forbidden, we need a way to include this info so it can be used to generate JSONSchema, so we use the extra key which is allowed in pydantic-core schema but not used to generate the validator.

How does the JSON-Schema-Test-Suite fits here?

No idea yet, I just saw that there were some standard JSONSchema tests and thought it might help to try and implement them. I haven't yet looked into how best to do this.

How does the JSON-Schema-Test-Suite fits here?

No idea yet, I just saw that there were some standard JSONSchema tests and thought it might help to try and implement them. I haven't yet looked into how best to do this.

Note that these are meant to test validators of JSON Schema. For pydantic it would be better to have a set of python objects and their expected JSON Schema.
We/you could probably do something like:

Take test data from JSON-Schema-Test-Suite
Convert data to python object
Make pydantic model from object
Create JSON Schema for model
Assert model's generated schema is same as test data's schema

However, you would probably still need a mapping of test data to models or perhaps a bit more easily a mapping of models to JSON Schemas. I don't immediately see how we/you could use the JSON-Schema-Test-Suite directly with modification as it serves another purpose (schema validation vs. schema generation).

openapi-generator and openapi-json-schema-generator ingest the json schema test suite and generate an openapi-test spec that includes the tests results and uses them to auto generate tests. pydantic could do the same.

unit test spec and test spec writer in openapi-generator w/ json schema test cases
source PR that added the autogen spec + test: https://github.com/OpenAPITools/openapi-generator/pull/12619
autogen tests (models/api request body/api response body): https://github.com/OpenAPITools/openapi-generator/tree/90e468b9a3bf48bf81dde68014d5452356d906b1/samples/openapi3/client/3_0_3_unit_test/python/test

Make pydantic model from object

I don't know whether this way is the best.
datamodel-code-generator can generate Pydantic code from the JSON Schema for the JSON-Schema-Test-Suite.
Now, the code generator creates v1 pydantic models.
After It supports v2, we can create a test case.
We may use the generator for the test.


[Enhancement] Add FORWARD_NO_SYNC for all SHOW PROC statements

Now some SHOW PROC statementss have no message when executed
in follower. These message are only in master. So I add
FORWARD_NO_SYNC for all SHOW PROC statements.

Hi @chaoyli . Actually, not all ShowProc stmt should be forward to master.
Some of them, yes, like: show proc "/cluster_balance", because the non-master FE has
nothing to do the the cluster balance logic.
But some of them don't, like: show proc "/dbs/10003/10017/partitions/10016/10018";.
This is the stmt to show the tablet info saving in the current FE's memory.
These kind of show proc stmt should not be forward to master FE because sometimes
we need to check the meta of current FE, to see if there is any inconsistency with the Master FE.
That is why I add the variable forward_to_master to control whether to forward these stmts.

And by the way, better to fix the compilation problem in another PR.
That is more urgent and need to be fixed and merged ASAP.

Hi @chaoyli . Actually, not all ShowProc stmt should be forward to master.
Some of them, yes, like: show proc "/cluster_balance", because the non-master FE has
nothing to do the the cluster balance logic.
But some of them don't, like: show proc "/dbs/10003/10017/partitions/10016/10018";.
This is the stmt to show the tablet info saving in the current FE's memory.
These kind of show proc stmt should not be forward to master FE because sometimes
we need to check the meta of current FE, to see if there is any inconsistency with the Master FE.
That is why I add the variable forward_to_master to control whether to forward these stmts.

Hi @chaoyli . Actually, not all ShowProc stmt should be forward to master.
Some of them, yes, like: show proc "/cluster_balance", because the non-master FE has
nothing to do the the cluster balance logic.
But some of them don't, like: show proc "/dbs/10003/10017/partitions/10016/10018";.
This is the stmt to show the tablet info saving in the current FE's memory.
These kind of show proc stmt should not be forward to master FE because sometimes
we need to check the meta of current FE, to see if there is any inconsistency with the Master FE.
That is why I add the variable forward_to_master to control whether to forward these stmts.

I thinks the variable forward_to_master is useless, even make application complicated. User deploy the Doris will one Master and two Follower. The master will change when new vote. And I don't know whether to set the variable or not. The user must remember every show statement which it's semantics.

I thinks the variable forward_to_master is useless, even make application complicated. User deploy the Doris will one Master and two Follower. The master will change when new vote. And the user don't know whether to set the variable or not. He must remember every show statement implementation difference.

It indeed complicated. But I can't figure out how to make it simple for user to see both master and non-master FE's meta info.

And by the way, better to fix the compilation problem in another PR.
That is more urgent and need to be fixed and merged ASAP.

It's because I run the unit test before I push the PR, this is by the way.

I thinks the variable forward_to_master is useless, even make application complicated. User deploy the Doris will one Master and two Follower. The master will change when new vote. And the user don't know whether to set the variable or not. He must remember every show statement implementation difference.

It indeed complicated. But I can't figure out how to make it simple for user to see both master and non-master FE's meta info.

So I only make show proc get the forward variable to make a comprise.

I thinks the variable forward_to_master is useless, even make application complicated. User deploy the Doris will one Master and two Follower. The master will change when new vote. And the user don't know whether to set the variable or not. He must remember every show statement implementation difference.

It indeed complicated. But I can't figure out how to make it simple for user to see both master and non-master FE's meta info.

So I only make show proc get the forward variable to make a comprise.

How to do with this?
show proc "/dbs/10003/10017/partitions/10016/10018";

I thinks the variable forward_to_master is useless, even make application complicated. User deploy the Doris will one Master and two Follower. The master will change when new vote. And the user don't know whether to set the variable or not. He must remember every show statement implementation difference.

It indeed complicated. But I can't figure out how to make it simple for user to see both master and non-master FE's meta info.

So I only make show proc get the forward variable to make a comprise.

How to do with this?
show proc "/dbs/10003/10017/partitions/10016/10018";
This is a question. If we make the behavior consistent with master to make balance statistics exists in follower like table metadata.

I thinks the variable forward_to_master is useless, even make application complicated. User deploy the Doris will one Master and two Follower. The master will change when new vote. And the user don't know whether to set the variable or not. He must remember every show statement implementation difference.

It indeed complicated. But I can't figure out how to make it simple for user to see both master and non-master FE's meta info.

So I only make show proc get the forward variable to make a comprise.

How to do with this?
show proc "/dbs/10003/10017/partitions/10016/10018";

This is a question. If we make the behavior consistent with master to make balance statistics exists in follower like table metadata.

I thinks the variable forward_to_master is useless, even make application complicated. User deploy the Doris will one Master and two Follower. The master will change when new vote. And the user don't know whether to set the variable or not. He must remember every show statement implementation difference.

It indeed complicated. But I can't figure out how to make it simple for user to see both master and non-master FE's meta info.

So I only make show proc get the forward variable to make a comprise.

How to do with this?
show proc "/dbs/10003/10017/partitions/10016/10018";

This is a question. If we make the behavior consistent with master to make balance statistics exists in follower like table metadata.

That could cause too many meta sync log.
Maybe we can find a way to classify the show proc statement. This can control the behavior of each category.

I thinks the variable forward_to_master is useless, even make application complicated. User deploy the Doris will one Master and two Follower. The master will change when new vote. And the user don't know whether to set the variable or not. He must remember every show statement implementation difference.

It indeed complicated. But I can't figure out how to make it simple for user to see both master and non-master FE's meta info.

So I only make show proc get the forward variable to make a comprise.

How to do with this?
show proc "/dbs/10003/10017/partitions/10016/10018";

This is a question. If we make the behavior consistent with master to make balance statistics exists in follower like table metadata.

That could cause too many meta sync log.
Maybe we can find a way to classify the show proc statement. This can control the behavior of each category.

OK, we should found another method to address the problem.


Feature: Use Microsoft KeyedServiceProvider

Use KeyedServiceProvider instead of ContractDictionary for Splat.Microsoft.Extensions.DependencyInjection adapter.
What is the current behavior?
Splat and ServiceProvider provides different instances of a singleton object
https://github.com/reactiveui/splat/issues/1074
What is the new behavior?
Splat and ServiceProvider provides the same instance of a singleton object
What might this PR break?
Nothing known.
Please check if the PR fulfills these requirements

[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

Other information:

@dpvreony In this case should I provide these test you have mentioned? I need to take some time to think about use cases. Thanks for corresponding

leave it with me

actually the net6 version supports IKeyedServiceProvider with v8 of the package. headache of framework vs packages

i'll tidy up and get this merged


Removed a Space from the Path causing Failure

Corrected:
$path = "$($env:SYSTEM_ARTIFACTSDIRECTORY)$($env:RELEASE_PRIMARYARTIFACTSOURCEALIAS)\Compressed Modules"
to
$path = "$($env:SYSTEM_ARTIFACTSDIRECTORY)$($env:RELEASE_PRIMARYARTIFACTSOURCEALIAS)\CompressedModules"
To stop failure on release pipeline due to inability to find path.

This change is

Thanks!


Crash after TODO output

I wish I could be more useful here, I tried looking in the loguru logs, but it doesn't show much. This is the only error I had, no traceback.

Could you upload the complete log file here? Likely there's a bug in the input_parser. Let me try to reproduce.

Yes, there are a few logs in the folder, just so I'm making sure I'm sending the right one, which one do you want?
This would be my most recent run, I haven't tried to launch PentestGPT again since.

Then please just upload the most recent one. I assume that the last file is the right one since all the files are named based on timestamp.

chatgpt.log or pentest_gpt.log?
I'm only asking because whichever one you want I'm going to doublecheck for sensitive information like tokens before sending it.

Did you mean right? Or left. Right is just json output of my inputs and pentestgpt's responses it seems. It's also not the most recent.
{"user": [[1683434055.0129015, "This is a HackTheBox pentest challenge called Forest.  It's a windows machine. The IP is <IP_ADDRESS>"], [1683434274.1453934, "todo"], [1683434274.145396, "todo"]], "pentestGPT": [], "reasoning": [[1683434082.4434094, "To-Do List:\n1. Reconnaissance\n   1.1. Perform Nmap scan\n   1.2. Perform SMB enumeration\n   1.3. Enumerate LDAP\n2. Vulnerability Analysis\n   2.1. Analyze Nmap results\n   2.2. Analyze SMB enumeration results\n   2.3. Analyze LDAP enumeration results\n3. Exploitation\n   3.1. Exploit SMB vulnerabilities\n   3.2. Exploit LDAP vulnerabilities\n4. Privilege Escalation\n   4.1. Local privilege escalation\n   4.2. Lateral movement\n\n--------\nBased on the provided information, I recommend that the junior penetration tester should start with the following task:\n\n1.1. Perform Nmap scan: Scan the target machine (IP <IP_ADDRESS>) using Nmap to identify open ports, services, and their respective versions."]], "input_parsing": [], "generation": [[1683434091.8223412, "Sure, I can help with that. To start with, the first thing you need to do is reconnaissance to gather information about the target system. You can use the following command to scan the target IP address:\n\n```\nnmap <target-IP>\n```\n\nThis will scan the target IP address and provide information about the open ports and services running on the system. You can use this information to identify potential attack vectors.\n\nOnce you have identified the open ports and services, you can perform a deeper scan to identify the version and configuration details of the services running on the target system. You can use the following command to perform a more comprehensive scan:\n\n```\nnmap -A <target-IP>\n```\n\nThis command will perform an aggressive scan and provide more detailed information about the target system. You can use this information to identify potential vulnerabilities that can be exploited to gain access to the system.\n\nAfter completing the reconnaissance phase, the next step is enumeration. In this stage, you try to identify potential vulnerabilities by looking for misconfigured services, outdated software, and weak passwords.\n\nOne common technique is to use a tool like Hydra to brute-force the login credentials of a service. For example, if you have identified a web application running on the target system, you can use the following command to brute-force the login page:\n\n```\nhydra -l <username> -P <password-list> <target-IP> http-post-form \"/login.php:user=^USER^&pass=^PASS^:Invalid username or password\"\n```\n\nThis command will use the username and password list provided to try and brute-force the login page of the web application. If successful, it will provide you with the valid credentials that can be used to gain access to the system.\n\nAfter identifying the vulnerabilities, the next step is to exploit them to gain access to the target system. For example, if you have identified a vulnerability in a web application, you can use a tool like Metasploit to exploit the vulnerability and gain access to the system.\n\nTo use Metasploit, you can follow the following steps:\n\n1. Open the Metasploit console by running the following command:\n\n```\nmsfconsole\n```\n\n2. Search for the exploit module that corresponds to the vulnerability you have identified using the following command:\n\n```\nsearch <exploit-name>\n```\n\n3. Select the exploit module you want to use by running the following command:\n\n```\nuse <exploit-module>\n```\n\n4. Set the required options for the exploit module, such as the target IP address, by running the following command:\n\n```\nset <option-name> <option-value>\n```\n\n5. Run the exploit by running the following command:\n\n```\nexploit\n```\n\nThis will attempt to exploit the vulnerability and provide you with a remote shell to the target system.\n\nFinally, after gaining access to the target system, you need to perform post-exploitation activities to test the security of the system. For example, you can use tools like Mimikatz to extract password hashes and other sensitive information from the target system.\n\nTo use Mimikatz, you can follow the following steps:\n\n1. Download the latest version of Mimikatz from the official website.\n\n2. Transfer the Mimikatz executable to the target system using a tool like SCP or SMB.\n\n3. Open a command prompt and navigate to the directory where Mimikatz is located.\n\n4. Run the following command to extract the password hashes:\n\n```\nmimikatz.exe \"privilege::debug\" \"sekurlsa::logonpasswords\"\n```\n\nThis will extract the password hashes and other sensitive information from the target system, which can be used to further test the security of the system."]], "exception": [[1683434091.8253813, "PentestGPT suggests you to do the following: \nTo-Do List:\n1. Reconnaissance\n   1.1. Perform Nmap scan\n   1.2. Perform SMB enumeration\n   1.3. Enumerate LDAP\n2. Vulnerability Analysis\n   2.1. Analyze Nmap results\n   2.2. Analyze SMB enumeration results\n   2.3. Analyze LDAP enumeration results\n3. Exploitation\n   3.1. Exploit SMB vulnerabilities\n   3.2. Exploit LDAP vulnerabilities\n4. Privilege Escalation\n   4.1. Local privilege escalation\n   4.2. Lateral movement\n\n--------\nBased on the provided information, I recommend that the junior penetration tester should start with the following task:\n\n1.1. Perform Nmap scan: Scan the target machine (IP <IP_ADDRESS>) using Nmap to identify open ports, services, and their respective versions."], [1683434091.8304338, "You may start with: \nSure, I can help with that. To start with, the first thing you need to do is reconnaissance to gather information about the target system. You can use the following command to scan the target IP address:\n\n```\nnmap <target-IP>\n```\n\nThis will scan the target IP address and provide information about the open ports and services running on the system. You can use this information to identify potential attack vectors.\n\nOnce you have identified the open ports and services, you can perform a deeper scan to identify the version and configuration details of the services running on the target system. You can use the following command to perform a more comprehensive scan:\n\n```\nnmap -A <target-IP>\n```\n\nThis command will perform an aggressive scan and provide more detailed information about the target system. You can use this information to identify potential vulnerabilities that can be exploited to gain access to the system.\n\nAfter completing the reconnaissance phase, the next step is enumeration. In this stage, you try to identify potential vulnerabilities by looking for misconfigured services, outdated software, and weak passwords.\n\nOne common technique is to use a tool like Hydra to brute-force the login credentials of a service. For example, if you have identified a web application running on the target system, you can use the following command to brute-force the login page:\n\n```\nhydra -l <username> -P <password-list> <target-IP> http-post-form \"/login.php:user=^USER^&pass=^PASS^:Invalid username or password\"\n```\n\nThis command will use the username and password list provided to try and brute-force the login page of the web application. If successful, it will provide you with the valid credentials that can be used to gain access to the system.\n\nAfter identifying the vulnerabilities, the next step is to exploit them to gain access to the target system. For example, if you have identified a vulnerability in a web application, you can use a tool like Metasploit to exploit the vulnerability and gain access to the system.\n\nTo use Metasploit, you can follow the following steps:\n\n1. Open the Metasploit console by running the following command:\n\n```\nmsfconsole\n```\n\n2. Search for the exploit module that corresponds to the vulnerability you have identified using the following command:\n\n```\nsearch <exploit-name>\n```\n\n3. Select the exploit module you want to use by running the following command:\n\n```\nuse <exploit-module>\n```\n\n4. Set the required options for the exploit module, such as the target IP address, by running the following command:\n\n```\nset <option-name> <option-value>\n```\n\n5. Run the exploit by running the following command:\n\n```\nexploit\n```\n\nThis will attempt to exploit the vulnerability and provide you with a remote shell to the target system.\n\nFinally, after gaining access to the target system, you need to perform post-exploitation activities to test the security of the system. For example, you can use tools like Mimikatz to extract password hashes and other sensitive information from the target system.\n\nTo use Mimikatz, you can follow the following steps:\n\n1. Download the latest version of Mimikatz from the official website.\n\n2. Transfer the Mimikatz executable to the target system using a tool like SCP or SMB.\n\n3. Open a command prompt and navigate to the directory where Mimikatz is located.\n\n4. Run the following command to extract the password hashes:\n\n```\nmimikatz.exe \"privilege::debug\" \"sekurlsa::logonpasswords\"\n```\n\nThis will extract the password hashes and other sensitive information from the target system, which can be used to further test the security of the system."], [1683434351.9340947, "Extra data: line 1 column 6 (char 5)"]]}

Thanks. I'll try to reproduce the issue first. I think there is a bug in the generation handler.

I had the same error message Exception: can only concatenate tuple (not "str") to tuple, but I believe it is due to
You've reached the current usage cap for GPT-4. You can continue with the default model now, or try again after ...

I encountered the same issue. Added a debug logging in the latest commit so you may try to pull it. If you encounter this issue again, you can paste the full error trace here.


Timeouts in Travis CI tests

It appears there's some issue with the Travis CI tests that is causing tests to fail at random, mostly with timeout errors. I've been seeing this with PR #360 a lot, where I'm having to close and reopen the PR to get Travis CI tests to kick off again and hope they all come back clean. There doesn't appear to be any determinism as to what fails.

Yup, travis appears to be flakey, shared CI environments have this problem in general :cry:

These have been fixed mostly, I will rerun any that are experiencing it and will look at making it easier to restart a failed one.


The dashboard continues to show projects as "Running" if they're closed after launch

The dashboard on the Resources page, continues to show project resources as in the "Running" state even if the process is manually stopped.
https://github.com/dotnet/aspire/assets/249088/e7020d1b-cc3d-4fde-aa8d-218c234fcc4a

This should be fixed now.


Is it possible to pass in parameters when running a batch file?

Hi,
I am working on Windows, my batch file has some if-else statement for different commands, for example,
IF condition1 (c:\Windows\System32\schtasks.exe /Create ...)
Else (c:\Windows\System32\schtasks.exe /delete ...)

I hope with sudo-prompt, we can pass parameters like the following syntax, so that I can verify the if condition above by comparing with the passed parameter value.
var sudo = require('sudo-prompt');
var options = {
  name: 'Electron',
  icns: '/Applications/Electron.app/Contents/Resources/Electron.icns', // (optional)
};
sudo.exec('echo hello', [args] ,options, function(error, stdout, stderr) {});

If with current package, there is other ways to achieve my goal, please let me know.
Thanks,

Hi @junjunruan, sudo.exec() is similar to child_process.exec() in that you simply pass the arguments as part of the command string (see the Node.js docs). There is therefore no [args] argument when calling sudo.exec().
If you need to pass parameters to your batch file, just pass "test.bat arg1 arg2 ..." as your command string. You then need to know how to access arguments from within a Windows batch file (see StackOverflow).

Thanks @jorangreef. It works.
I have a few questions. Is it the right place to ask questions or is there other ways to contact you?
My questions are:

From your documentation, I see this message: Passing options.name or options.icns is currently not supported by sudo-prompt on Windows. Then what the syntax should be for windows?
I tried delete options json, and remove "options" from sudo.exec(), it doesn't work.
The only way it works for me now is leave options json and parameter there.

I have several commands in my .cmd batch file need admin right, is there any ways to remember user's choice ("Yes") in the first time so that the dialog doesn't need to prompt every time?
(maybe save the windows username and password when the first time a user clicks yes?)

What if the user click "NO" when the dialog popup (user did not grant permission), is there any ways to keep popup the dialog until user choose YES?

Sure, you're welcome to ask here and it might be helpful to others. Regarding your questions:

Just pass {} as options on Windows.

No, we delegate the privilege elevation to Windows itself. Windows shows the dialog prompt and we never receive the username and password (this would also not be safe). The best thing is to create a batch script which does everything that requires admin rights, and then execute this batch script using sudo-prompt's exec(). That way the user will only receive a single password prompt each time you run the batch script.

Sure, you could just call exec() again but this would be annoying to the user. Perhaps you could explain to the user in advance why you need admin privileges, so that they are more likely to accept?

Thanks for your quick response @jorangreef.
Here is what I tried based on your suggestion:

I got an error: "process.title cannot be used as a valid name" after I changed to the following code:

process.title = "electron";
 sudo.exec('echo hello', {}, function(error, stdout, stderr) {});

I checked the default value of process.title, the result is some Unrecognizable code.

I think what you mean if put all the commands need admin right in a batch file, then have one sudo.exec() to run at once.
But in my case, I have several sudo.exec() in my code by passing different parameters to run the batch file.

sudo.exec('test.cmd param1', options, function(error, stdout, stderr) {});
sudo.exec('test.cmd param2', options, function(error, stdout, stderr) {});

My batch file is similar to:
    if(param1) run command1
    if(param2) run command2

Sure,

It may be that your process title was not in English? sudo-prompt requires options.name to be alphanumeric, and uses the process title if options.name is not provided. To solve this, just try  using{ name: 'Test' } as your options object instead of {}.

Then you would need two prompts, unless you can restructure things.

Thanks @jorangreef:
Yes, the process title is some weird characters that I didn't recognize. But with { name: 'Test' }, it works.


Provide spec documentation and samples for dynamic schema detection (aka dynamic discovery)

Migrated from GitLab: https://gitlab.com/meltano/sdk/-/issues/33
Originally created by @aaronsteers on 2021-03-03 19:51:40

All of the samples and cookiecutter boilerplate currently assumes a static schema per stream. We should add an example which uses a dynamic schema detection method so that developers can more easily adopt this behavior in their own taps.
In theory, the code would look something like this:
class MyStream(...):
    ...
    @property
    def schema(self) -> dict:
        # piggy-back on self.request_url() or similar, leveraging the same auth flow
        return {... something dynamically calculated ...}
    ...

Another option is to discover and initialize each stream in the Tap class by overriding this static approach with a dynamic one:
class Tap{{ cookiecutter.source_name }}(Tap):
    """{{ cookiecutter.source_name }} tap class."""
    # ...
    def discover_streams(self) -> List[Stream]:
        """Return a list of discovered streams."""
        return [stream_class(tap=self) for stream_class in STREAM_TYPES]

View 4 previous comments from the original issue on GitLab


Image Deform in real time

Hi wysaid,
Is there any way to deform a bitmap in real-time. I had checked ImageDeformActivity, but when I try with the camera which changes a preview bitmap in high fps, it does not work. Can you check, please?

Sure you can.  But you should not use the bitmap.  You should pass the binary data, and change the OpenGL texture with glTexSubImage2D


Span should get children IDs

It looks like there was a bug in renderTrace, probably an oversight after a refactoring.
In the web UI, (the data/modelview prepared for trace rendering) every span has a list of
children/child span IDs. This list only contained a single element the ID of the span itself.
I'm sure the intention is to get the actual list of children.
It looks like this may have fixed #999, at least in some cases.

Thanks, Eirik!