Vectorized evaluation of FunctionCoefficients

Hi,
Based on feedback I got on https://github.com/mfem/mfem/issues/1838, I tried writing analytic solutions to test problems as FunctionCoefficients and it seems I've hit upon a performance issue.  As an example, what I have right now is
auto rho_soln = [pid = problem_id, t=time](const mfem::Vector& x) -> double {
              return rho_analytic(x, pid,t);
};
mfem::FunctionCoefficient rho_coeff(rho_soln);
analytic_gridfunction.ProjectCoefficient(rho_coeff);
double error = solver_gridfunction->ComputeL2Error(rho_coeff);

where rho_analytic has a signature like double rho_analytic(const mfem::Vector& x, int pid, double time)
Which works, and gives me an error estimate I can refer to at a glance, and allows me to register the evaluated analytic solution in a DataCollection to view alongside the simulation's solution, take lineouts, etc. However, I guess FunctionCoefficient is doing a pointwise evaluation, because it is rather slow to evaluate certain analytic solutions, and ends up totally dominating the runtime of the simulation. I think this is because some of the analytic solutions have substantial overhead, which it ends up repeating for each pointwise evaluation (the versions of these analytic solvers that act on arrays are quite fast).
Is there any way to make this process more efficient?  My analytic solvers can be (and originally were) formulated to take in an array of initial points and return an array of the solution at that point, which would probably be more efficient. Is there perhaps some way to initialize the GridFunction from a Vector that has been evaluated at the DOFs of the FE space of that GridFunction?

A first thought: if the problem is recalculating values, could you implement some caching within a container object (or many global variables)? Something like calculate the reused values once and then check some logical condition to see if they need to be computed or if they can simply be used.
Just looking at your code snippet, you could save half of the evaluations, but introduce some discretization error, by doing something like the following.
auto rho_soln = [pid = problem_id, t=time](const mfem::Vector& x) -> double {
              return rho_analytic(x, pid,t);
};
mfem::FunctionCoefficient rho_coeff(rho_soln);
analytic_gridfunction.ProjectCoefficient(rho_coeff);
mfem::GridFunctionCoefficient analytic_gridfunction_coeff(analytic_gridfunction);
double error = solver_gridfunction->ComputeL2Error(analytic_gridfunction_coeff);

This may be acceptable if you're only using it for a relative metric but would no longer be the true error.

@tzanio, @wcdawn, thanks for the ideas. I decided to go with @tzanio's suggestion because even half the execution time was painfully long!
Long story short, I got it to work well (I think) . In case anyone in the future comes across this, the following snippet should provide a solution:
// Important to get the integration order directly from the FE space you'll eventually project to
const int intOrder= analytic_rho->FESpace()->GetOrder(0);
mfem::QuadratureSpace rho_space(&mesh, 2 * intOrder+ 1);
mfem::QuadratureFunction rho_func(&rho_space, 1);

// Get the int rule and # quad points from the QuadSpace so it stays in sync
auto ir = rho_func.GetSpace()->GetElementIntRule(0);
int nqpts = ir.GetNPoints();

mfem::Vector X(n_elements*nqpts*n_space_dim);
X = mesh->GetGeometricFactors(ir, mfem::GeometricFactors::COORDINATES)->X;
mfem::Vector rho_data(n_elements*nqpts);

// Fill rho_data with the analytic solution
some_expensive_function(X,rho_data)
// Transfer solution back
{
    for (int i = 0; i < n_elements; i++)
    {
        for (int j = 0; j < nqpts; j++)
        {
        rho_func((i * nqpts) + j) = rho_data((i * nqpts) + j);
        }
    }
}
// Project solution onto GridFunction for visualization, error analysis, etc.
mfem::QuadratureFunctionCoefficient rho_coeff(rho_func);
analytic_rho->ProjectCoefficient(rho_coeff);
double error = simulation_rho->ComputeL2Error(rho_coeff);

Varchas


Cannot precompile on machine with limited memory

A user was unable to activate aqueduct because the process ran out of memory on a 1GB machine during pub global activate. The machine was a remote VM.
root@aqueduct-1G-1CPU:~# pub global activate aqueduct
Resolving dependencies... (8.6s)
+ analyzer 0.32.4
+ aqueduct 3.0.0
+ args 1.5.0
+ async 2.0.8
+ charcode 1.1.2
+ codable 1.0.0
+ collection 1.14.11
+ convert 2.0.2
+ crypto 2.0.6
+ csslib 0.14.4+1
+ front_end 0.1.4
+ glob 1.1.7
+ html 0.13.3+2
+ isolate_executor 2.0.1
+ kernel 0.3.4
+ logging 0.11.3+2
+ meta 1.1.6
+ open_api 2.0.0
+ package_config 1.0.5
+ password_hash 2.0.0
+ path 1.6.2
+ plugin 0.2.0+3
+ postgres 1.0.0
+ pub_cache 0.2.1
+ pub_semver 1.4.2
+ safe_config 2.0.0
+ source_span 1.4.1
+ string_scanner 1.0.3
+ typed_data 1.1.6
+ utf 0.9.0+5
+ watcher 0.9.7+10
+ yaml 2.1.15
Downloading aqueduct 3.0.0...
Downloading yaml 2.1.15...
Downloading safe_config 2.0.0...
Downloading postgres 1.0.0...
Downloading password_hash 2.0.0...
Downloading open_api 2.0.0...
Downloading crypto 2.0.6...
Downloading args 1.5.0...
Downloading codable 1.0.0...
Downloading pub_cache 0.2.1...
Downloading path 1.6.2...
Downloading meta 1.1.6...
Downloading isolate_executor 2.0.1...
Downloading pub_semver 1.4.2...
Downloading logging 0.11.3+2...
Downloading charcode 1.1.2...
Downloading analyzer 0.32.4...
Downloading kernel 0.3.4...
Downloading front_end 0.1.4...
Downloading convert 2.0.2...
Downloading plugin 0.2.0+3...
Downloading package_config 1.0.5...
Downloading source_span 1.4.1...
Downloading string_scanner 1.0.3...
Downloading typed_data 1.1.6...
Downloading watcher 0.9.7+10...
Downloading glob 1.1.7...
Downloading collection 1.14.11...
Downloading html 0.13.3+2...
Downloading utf 0.9.0+5...
Downloading csslib 0.14.4+1...
Downloading async 2.0.8...
Precompiling executables... (30.6s)
Failed to precompile aqueduct:aqueduct:
../../runtime/vm/zone.cc: 50: error: Out of memory.
Dumping native stack trace for thread de8
  [0x0000560e90f117df] dart::Profiler::DumpStackTrace(void*)
  [0x0000560e90f117df] dart::Profiler::DumpStackTrace(void*)
  [0x0000560e9114d302] dart::Assert::Fail(char const*, ...)
  [0x0000560e90fc0506] Unknown symbol
  [0x0000560e90fc0ab9] dart::Zone::AllocateExpand(long)
  [0x0000560e90dbfb33] dart::ApiMessageReader::ReadInternalVMObject(long, long)
  [0x0000560e90dbf1cc] dart::ApiMessageReader::ReadInlinedObject(long)
  [0x0000560e90dbde42] dart::ApiMessageReader::ReadMessage()
  [0x0000560e90e1fb93] dart::NativeMessageHandler::HandleMessage(dart::Message*)
  [0x0000560e90e1d06a] dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
  [0x0000560e90e1d7dc] dart::MessageHandler::TaskCallback()
  [0x0000560e90fae73d] dart::ThreadPool::Worker::Loop()
  [0x0000560e90fae5d4] dart::ThreadPool::Worker::Main(unsigned long)
  [0x0000560e90ec03c9] Unknown symbol
-- End of DumpStackTrace

Probably need @a-siva or @zanderso to give some ideas here.
(Background: pub tries to "precompile" dart scripts into snapshots, and it looks like the memory requirement for that has gone up since Dart 1).
@joeconwaystk: You could let users know about the --no-precompile flag for now.

Wouldn't --no-precompile just delay the problem until you actually try to run it though? Unless the executable isn't ever ran in this context.

I'm curious how much running it from source uses compared to precompiling.

Can we have the command line that the precompile step executes to compare the memory footprints between Dart 1 and Dart 2 modes.

@joeconwaystk: You could let users know about the --no-precompile flag for now.

Just my two cents from a battle from the front lines, where I lost hours due to this suggestion (it's sometimes tricky to get info about why a container fails in kubernetes).

Wouldn't --no-precompile just delay the problem until you actually try to run it though? Unless the executable isn't ever ran in this context.

This is exactly what happened to me.
It's not so much the suggestion itself, but the fact that it's in Aqueduct's official documentation by default, without explanation, right here: https://aqueduct.io/docs/deploy/deploy_docker/#dockerfiles
@joeconwaystk I'd suggest you adding comments to the --no-precompile lines, explaining the tradeoff and potential effects.

I'm also have this issue on a raspberry pi with 1gb.

If possible the best way to run your app when in a memory constrained environment is to compile it ahead of time and deploy the compiled app to the device instead of compiling it on device.

Unfortunately I'm running on a PC and deploying to a PI.
I'm trying to use the PI as the build environment as dart doesn't cross
compile.
I eventually got around the problem by increasing swap but I've had the
same issue with deploying to memory constrained VMs.
On Wed, 4 Nov 2020 at 02:14, Jacob MacDonald<EMAIL_ADDRESS>wrote:

If possible the best way to run your app when in a memory constrained
environment is to compile it ahead of time and deploy the compiled app to
the device instead of compiling it on device.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/sdk/issues/34119#issuecomment-721189869,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG32OHVR6M7T6QR353N2I3SOAM35ANCNFSM4FO52OJA
.


ttop: init at 0.8.6

Description of changes
ttop - top-like system monitoring tool with TUI, historical data service and triggers.
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Thanks, these look like good libraries to have packaged.


Update jackson-core to 2.16.2

About this PR
📦 Updates com.fasterxml.jackson.core:jackson-core from 2.16.1 to 2.16.2
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.fasterxml.jackson.core", artifactId = "jackson-core" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.fasterxml.jackson.core", artifactId = "jackson-core" }
}]

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

The only changes to 2.16.2 are updated tests, no functional changes. And 2.17 was just released. We should just skip this release and wait for the PR to update to 2.17.


Is there a rate limit for downloadFile API ?

Is there a limit on how many times I can call downloadFile from one client before being put on the cooldown timer?
I don't see anything of that nature in the documentation.

Every method has limits, explicit or implicit. But there is no such thing as a cooldown, which affects allowed number of requests. You can't exceed these limits but you can send as much requests as you want and only the same limited number of them will be executed. The limits are not documented anywhere, because they are subject to change, approximate and client don't need to know them at all. App just need to call downloadFile when it needs to download a file and the rest is done by TDLib.

Currently, TdLib downloads a small image automatically.  To get a larger, I have to call downloadFile API explicitly.  Assuming I have to call the API on every image for every 200 channels I'm subscribed to, am I likely to hit the limit?
thanks

TDLib doesn't download files automatically, see https://github.com/tdlib/td/issues/156.
You should call downloadFile whenever you need to download a file and never worry about possibility to hit a limit. Whether app will hit a limit or not doesn't depend much on how much downloadFile calls app do. If a limit is hit, it is usually automatically handled by TDLib and file continues to download when flood wait time passes.

Perfect, thanks as always Aleksey !!


Tests

Now we have Programming Model v4 and proper context spoofing I'd really like to start adding test suites to our Function Apps. I've tried this using @nx/vite:test, but starting or building the app always tries to include the vite.config.ts file in the build despite explicit exclusions in the tsconfig files. Any idea how to set this up properly, @AlexPshul?
Many thanks!

Did you try to add it to the tsconfig.build.ts as well?
Other than just having this config file in the dist, does it affect the app in any way?

Any update on this @JonSilver ?

Closing due to inactivity.
Feel free to comment if you still need this.


Rework Auto Track on Mark as Read

Setting

When off

When on

Just a toggle? Weren't you adding a selection with the option to disable the snackbar too?

Was the plan and then antsy said no.


Respond with ParamOutgoingResetRequest

This is a fix for the issue reported in https://github.com/algesten/str0m/issues/286

This is marked as Draft, since I think we need to check spec here. It might be the close calls shouldn't be automatic in sctp-proto, but a stream from outside stream.stop() – looking at pion that might be what we want to do.
@k0nserv is good with the spec detective work.

The spec seems pretty clear: respond with an OutgoingResetRequest when one is received to confirm the closure. However, I'm not sure Pion implemented it like this in the end, there's a lot of relevant discussion in https://github.com/pion/sctp/pull/238

I tried to replicate pion's fix in webrtc-rs/webrtc which has the same problem

So maybe this solve is more correct. If only we could make it close straight away and not wait for the next RTO.

I think this might be ready. The problem was that the response ParamOutgoingResetRequest needs to have the reconfig_request_sequence_number set. And now it does. The channels close promptly.

Hi @rainliu what do you think about this fix?


🔍. Add lgtm.yml for better checking of code

Issue
Description
Create a lgtm.yml file to correctly check the C++ and C# code.
As it currently stands the lgtm tool defaultly cannot check the library

[ ] Create lgtm.yml
[ ] Add C++ rules to yaml to ensure make build is checked
[ ] Add C# rules to ensure .NET Standard C# code is checked
[ ] Update CodeQL workflow

This can be checked at lgtm.com.
Example would be:
extraction:
  cpp:
      index:
  csharp:
      index:

Please assign this to me ..

@mihir1739 you got it!


We need to reevaluate how loggers are created

Once #167 is merged, we should rethink how our custom logger is instantiated, as currently it is in static manner and such, the PR #167 will not work as expected with @Inject WildFlyConfig, as it will always be null (injection in static context), thus the condition for nullability is required.

After offline discussion we have decided to prepend dry run message only to specific remote calls, thus it will not be responsibility in PullRequestLogger but individual log calls.


Add interpolation method options

add interpolation method options for im2rec and image_augmenter

still a lot of spacing issues need to be fixed


doc/website: add a page for dev-database / twin-environment

I like! It read more like a blog post than documentation though, was this your intention?

Explain the motivation/concept + show 2 tiny examples.


visualization of grid density of protein-ligand

Hi prof. Koes,
I am training a CNN model for predicting the binding pose. Also, I plan to visualize the generated grid density of the input protein-ligand 3d data.
If libmolgrid provides some function that we can directly use to visualize the grid density? or are there any source code available from gnina github repos?
Thank you!

I'll have to figure out why this isn't showing up in the online documentation, but there are writers (and readers) for dx files.  See molgrid.write_dx_grids and molgrid.write_dx.  You can then use your favorite molecular visualization tool (e.g. PyMOL, VMD) to view the dx files.

I'll have to figure out why this isn't showing up in the online documentation, but there are writers (and readers) for dx files.  See molgrid.write_dx_grids and molgrid.write_dx.  You can then use your favorite molecular visualization tool (e.g. PyMOL, VMD) to view the dx files.

Thank you Prof. koes. I will try then.

Thank you Prof. koes. I will try then.

Hi prof.koes
I tried molgrid.write_dx_grids() function, but it didn't work with error messages.
I found the function is defined as follows:
write_dx_grids(prefix, data.get_type_names(), grid, batch_info[0].grid_center, gmaker.get_resolution(), scale);
could you give me an example of the above parameters used in this defined functio?
especially, I don't understand the the second parameter: data.get_types_names(), is it obtained from example_provider?
Thanks a lot!

what is the type of grid?  It is reporting as AtomGrid which isn't something in libmolgrid.  It needs to be of type molgrid.Grid4f.

I used this type of grid:
grid = AtomGrid(
values=np.array(grid_data),
channels=grid_channels,
center=lig_struct.center,
resolution=grid_maker.get_resolution(),)
Is this wrong right? I still did not get the meaning of the parameters in write_dx_grids function.
I also have several other questions.

what is molgrid.Grid4f?
I know, libmolgrid can automatically calculate the center of the binding pocket by lig_struct.center.
but what if i don't input ligand, how libmolgrid calculate the center of binding pocket?
I am new beginner, sorry for lots of very questions.

What is AtomGrid?  It is not part of molgrid, so one generally would not expect passing it to a molgrid function to work. A Grid4f is a 4D grid.
You can provide the center of the grid.  If you are using a function that calculates the center for you, it will take the center of the last molecule specified.

Prof. Koes , Thank you for helping solve my questions. I used AtomGrid defined in your  liGAN repos, and will check more details of the source code.

If it is AtomGrid from the liGAN repository use its to_dx method.

Thank you prof. koes. i have found it from liGAN repository.

Hi prof.Koes,

I tried to_dx() function in liGAN repos and obtained the .dx files. Then I used pymol to visualize the generated .dx files. But I got very strange 3d grid density (white and back colored only, shown in the attached image), is this correct?

How did you obtain the following visualization figure in your 3d-cnn binding pose prediction paper:

Are there any specific reasons to define the grid density using the following formula in your paper?

Looking forward to your reply. Thank you.

That figure is using VMD and showing multiple levels of isosurfaces (which you can do in pymol as well).   Some resources:
https://pymolwiki.org/index.php/Isosurface
https://pymolwiki.org/index.php/Volume
The density function was chosen to be a Gaussian that smoothly goes to exactly zero at 1.5 the radius.

thanks a lot prof. koes. I have another question regarding one of your recent paper: deepfrag (https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>5790v1).
How to modify the grid density definition A(d,r) to other definitions similar with voxelization methods described in section 3.2.2 in your above paper?
It is needed to redefine from your libmolgrid source code?  Looking forward to your reply. sorry for so many questions.

Harrison didn't use libmolgrid, he wrote is own gridding code.  libmolgrid supports Gaussian+quadratic, truncated Gaussian, and boolean gridding.


Consider object getter/setter API

Just pushed this:
https://www.npmjs.com/package/v8-flags-object-proxy
Happy for you to steal it and will deprecate module if you choose to use it

I've seen that and don't see a huge gain there.
Could you explain to me what I'm missing? How is foo(x) so much harder than foo = x?

The main benefit from my perspective is functional object composition. If we treat the flags as a key value store instead of a command list then it's easier to mixin other data sources (eg cli options, cfg files, post requests) when that data is also represented as an object. Essentially for me it boils down to this: _.assign(flags, opts)  as opposed to traversing the object and conditionally calling various methods based on the presence of properties.

While I get the convenience you're after that can be easily solved and isn't worth changing the API especially considering setters have more overhead than just a function call.
Here's an example:
Object.keys(config).forEach(assign);
function assign(k) {
   var val = config[k];
   flags[k](val);
}

So just put that in your code somewhere and use that (or use your version of the v8-flags).

fair enough :)
On Fri, Apr 24, 2015 at 5:34 PM, Thorsten Lorenz<EMAIL_ADDRESS>wrote:

While I get the convenience you're after that can be easily solved and
isn't worth changing the API especially considering setters have more
overhead than just a function call.
Here's an example:
Object.keys(config).forEach(assign);function assign(k) {
var val = config[k];
flagsk;
}
So just put that in your code somewhere and use that (or use your version
of the v8-flags).
--
Reply to this email directly or view it on GitHub
https://github.com/thlorenz/v8-flags/issues/3#issuecomment-95986677.

--
David Mark Clements Ltd is a company registered in Northern Ireland.
Registered number: NI617728. Registered office: Unit 22a, Pennybridge
Industrial Estate,
Ballymena, Antrim, BT42 3HB


Unit Correlation Track Focus

Selected unit v. aux input correlation graph should switch with selected unit (not have to reopen window).

fixed in v4.3.7


input[time] renders with milliseconds if the browser does not support time input

Whenever a browser does not support input[time] natively, angular falls back to text field. It renders nicely in Chrome (e.g. 07:15 AM), but in Firefox it will display 07:15:00.000 instead. There are some quick hacks out there: http://mark.zealey.org/2015/01/08/formatting-time-inputs-nicely-with-angularjs
It would be nice, if we could configure the date format whenever angular switches in fallback mode.
The problem is located in input.js where we set the format to 'HH:mm:ss.sss'

+1 for this feature

+1

+1

it would be great if the formatter of the input could be overridden, in one project i need the time(span) to be entered as 'mm:ss.sss' without hours which would be possible with a custom formatter

+1

+1

Update to input.js link in the original bug report.

This isn't really a feature request, this is a regularly occurring bug. The fallback behaviour should surely mimic the behaviour of the standard HTML 5 time input, adding milliseconds doesn't really seem like a useful fallback, it's got to be the niche case!

+1

AngularJS should respect HTML5 "step" attributes on the input element. According to HTML5 standard, when step is set to "60", value of the input should only contains minutes "11:23", while when step is set to "1" or some number less than 60, value should contains seconds e.g. "11:23:34"

@hubo1016 This is a different issue. You can open a new issue as a separate feature request.

Worked with v1.0.3 it seems... http://jsfiddle.net/yk29zeLz/1/

+1 for this feature

Note that this issue has had the PRs plz label for almost a year. It is probably not that hard to fix. Does someone in the community - perhaps someone affected by the problem? - want to step up and provide a PR?


chore(main): release clean-youtube-chat 0.2.1

:robot: I have created a release beep boop
0.2.1 (2024-01-11)
Bug Fixes

deps: update dependency solid-js to ^1.8.10 (#26) (cbbdd2f)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/noriapi/clean-youtube-chat/releases/tag/clean-youtube-chat-v0.2.1 :sunflower:


Update parameter variable names in onnx_test.cpp

Change the parameter variables names in onnx_test.cpp from l0, l1, etc to x, y, etc. Should make it clearer that the variables are not literals.

Can I claim this issue?


Transpose Does Not Work on Infinite Lists

while True:
        if any(has_ind(row, r) for row in matrix):
            this_row = gen_row(r)
            if all(type(x) is str for x in this_row):
                yield "".join(this_row)
            else:
                yield this_row

        else:
            break
        r += 1

That any is going to never finish on an infinite matrix if there's no such row

Hey, @Lyxal, that's a nice issue you've got there! It'd sure be a shame if somebody were to assign you to it!

L + ratio + don't care

Expected behaviour


[increase-inbound-liquidity]: Track mempool funding across RBF changes

The funding transaction for a swap may change multiple times while waiting for a confirmation as fees are adjusted and new swap outputs are added
Currently once the swap funding output is found in the mempool it will not continue to search for more potential funding transactions, but it should only stop searching for the funding output in the mempool when the swap confirms

+1


Pleeeeease add a changelog

otherwise it's really hard to figure out what the breaking changes are between each version... 😭

You're gonna make me install ruby aren't you! 😄
I'm on it.

feel free to do it manually or use another tool, but pleeeeease so something! 😉

Resolved by #254


[V3] Choppy left/right panel animation on android

[ ] bug

[x] enhancement

[ ] feature-discussion (RFC)

Framework7 Version: 3.0.0-beta.15

Framework7 React Version: 3.0.0-beta.15

Platform and Target:  CORDOVA, ANDROID.

What you did
cloned react template repo
git clone https://github.com/bencompton/framework7-react-static-template my-app

then installed on android phone via cordova.
Expected Behavior
Left and right panel to animate smoothly like the popup.
Actual Behavior
Animation is a pretty choppy on android phones.
I know you can only expect so much out of an android phone but the popup still has a clean animation.
Thanks!

To clarify, that template is actually still on Framework7 V1--or did you happen to upgrade it to V3?

@bencompton Sorry I didnt clarify, I did checkout the v3 branch.

Android webview is (usually) a way slower than iOS one or Android Chrome. It highly depends on Android version and device manufacturers because some of them don’t use Chrome webview and use own implementations/forks. I can recommend you try crosswalk-webview, or try to simplify panel appearance, for example by removing box-shadow on it


Change zoneMembership into Classification

Rather than having zoneMembership as a property on Asset, have it as a Classification linked to Asset, which still has an array / list of qualifiedNames of the zones of which that the asset is a member.
Rationale:

zones can be "mastered" somewhere other than the home repository of the asset itself
zones will no longer a "special case", but act like any other classification

We also agreed to do the same with owner/ownerType.  This then removes all of the governance attributes from outside of the Asset entity.  So if an asset comes from a repository that does not directly support Egeria's governance attibutes they can still be attached and the asset governed.


what's the correct format to compute TX90p

Setup Information

Xclim version:
Python version:
Operating System:

Context
Hi, I have tried several method to try to compute the TX90 in JJA and DJF from 1950-2021, with the base_period from 1961-1990, but I failed to do so and got different errors, may I ask how to compute the TX90 correctly?
My codes are below:
tas_ref = tas.sel(time=slice('1961-01-01','1990-12-31'))
t90 = percentile_doy(tas_ref,window=5,per=90).
tx = tg90p(tas, t90=t90.sel(percentile=90),freq='YS',bootstrap=True,season='JJA',drop=True)
Thank you.
Code of Conduct

[X] I agree to follow this project's Code of Conduct

@Patty-Lyn could you possibly provide the error output ?

Hi @Patty-Lyn !
Your code looks good, but I think you are hitting issue #1091. I'm only guessing; if you give us the version of xclim you are using and an example of an error message, we could help narrow down the problem. And eventually fix it if it's a bug.
If my guess is right, this means you can't use the season  argument when using bootstrap=True. This is a limitation of xclim that we need to fix. However, depending on your needs you could very easily work around it:
tas_ref = tas.sel(time=slice('1961-01-01', '1990-12-31'))
t90 = percentile_doy(tas_ref, window=5, per=90)
txSEAS = tg90p(tas, t90=t90.sel(percentile=90), freq='QS-DEC', bootstrap=True)

txJJA = txSEAS.sel(time=txQ.time.dt.month==6)
txDJF = txSEAS.sel(time=txQ.time.dt.month==12)

Where I computed the tg90p indicator seasonally and then extracted the summer and the winter into their own variables, dropping spring and fall that i computed unnecessarily.
txJJA is the same data as what your code would have given without the issue, except that the time coordinate is an annual series on the 1st of june. (instead of the 1st of january).
--
You might know, but note that for the DJF series, your code would have to use freq='AS-DEC to make sense and it would output the exact same thing as my example here. If you use YS, it means you are starting the year with january first, and thus for year X, the data from january, february and december are used. With my technique or with freq='AS-DEC', season='DJF', then you're using december of year X, january and february of year X+1, which makes most sense.

Hi!
@aulemahal It looks like #1091 indeed but, it breaks in cases I did not expect.
I think here it's the combination of bootstrap=True and drop=True.
When running bootstrap=True, the bootstrap algorithm calls multiple time tg90p on an altered versions of the input dataset.
However, with drop=True this input dataset is already truncated to JJA subset, so there is only 93 values per year.
In that case, it breaks inresample_doy called within tg90p and not in percentile_doy like in #1091.
To fix both, I guess we could avoid calling  _interpolate_doy_calendar when the calendars match ?
# Instead of doing:
if doy_max_source == doy_max:
   return source
# We could do:
if target.dayofyear == source.dayofyear:
   return source

By the way, there is another broken case, when both drop and bootstrap are False:
xclim.atmos.tg90p(da,
         tas_per=t90.sel(percentiles=90),
         freq='YS',
         bootstrap=False,
         season='JJA',
         drop=False
 )

It's different, it's an issue in missing.py::is_null function which adds drop=True to the select_time call.
Instead, I think we should do indexer.update({"drop": True}) to avoid this issue.
I can try to make a PR to fix both issues.
@Patty-Lyn As a workaround until those are fixed, if you don't mind having NaNs in your output, you can remove drop=True from your call:
xclim.atmos.tg90p(da,
         tas_per=t90.sel(percentiles=90),
         freq='YS',
         bootstrap=True,
         season='JJA',
         # drop=False
 )

I'm willing to work on a fix, it also breaks in icclim anyway (https://github.com/cerfacs-globc/icclim/issues/178)

Hi @Patty-Lyn !
Your code looks good, but I think you are hitting issue #1091. I'm only guessing; if you give us the version of xclim you are using and an example of an error message, we could help narrow down the problem. And eventually fix it if it's a bug.
If my guess is right, this means you can't use the season argument when using bootstrap=True. This is a limitation of xclim that we need to fix. However, depending on your needs you could very easily work around it:
tas_ref = tas.sel(time=slice('1961-01-01', '1990-12-31'))
t90 = percentile_doy(tas_ref, window=5, per=90)
txSEAS = tg90p(tas, t90=t90.sel(percentile=90), freq='QS-DEC', bootstrap=True)

txJJA = txSEAS.sel(time=txQ.time.dt.month==6)
txDJF = txSEAS.sel(time=txQ.time.dt.month==12)

Where I computed the tg90p indicator seasonally and then extracted the summer and the winter into their own variables, dropping spring and fall that i computed unnecessarily.
txJJA is the same data as what your code would have given without the issue, except that the time coordinate is an annual series on the 1st of june. (instead of the 1st of january).
-- You might know, but note that for the DJF series, your code would have to use freq='AS-DEC to make sense and it would output the exact same thing as my example here. If you use YS, it means you are starting the year with january first, and thus for year X, the data from january, february and december are used. With my technique or with freq='AS-DEC', season='DJF', then you're using december of year X, january and february of year X+1, which makes most sense.

Hi! Thank you for the help, the version of xclim is 0.36.0, and I have tried to use your codes to run but strange error occured as "'percentile is not a valid dimension or coordinate'" in the code 'txSEAS = tg90p(tas, t90=t90.sel(percentile=90),freq='QS-DEC',bootstrap=True)', do you know what is the problem?

Hi!
@aulemahal It looks like #1091 indeed but, it breaks in cases I did not expect. I think here it's the combination of bootstrap=True and drop=True. When running bootstrap=True, the bootstrap algorithm calls multiple time tg90p on an altered versions of the input dataset. However, with drop=True this input dataset is already truncated to JJA subset, so there is only 93 values per year. In that case, it breaks inresample_doy called within tg90p and not in percentile_doy like in #1091.
To fix both, I guess we could avoid calling _interpolate_doy_calendar when the calendars exactly match ?
def adjust_doy_calendar(
    source: xr.DataArray, target: xr.DataArray | xr.Dataset
) -> xr.DataArray:
doy_max_source = source.dayofyear.max()

# -- Instead of doing:
if doy_max_source == doy_max:
   return source
# -- We could do:
if target.dayofyear == source.dayofyear:
   return source

return _interpolate_doy_calendar(source, doy_max)

By the way, there is another broken case, when both drop and bootstrap are False:
xclim.atmos.tg90p(da,
         tas_per=t90.sel(percentiles=90),
         freq='YS',
         bootstrap=False,
         season='JJA',
         drop=False
 )

Here it's a different issue, it's in missing.py::is_null function which adds drop=True to the select_time call. Instead, I think we should probably do indexer.update({"drop": True}) to avoid this issue.
@Patty-Lyn As a workaround until those are fixed, if you don't mind having NaNs in your output, you can remove drop=True from your call:
xclim.atmos.tg90p(da,
         tas_per=t90.sel(percentiles=90),
         freq='YS',
         bootstrap=True,
         season='JJA',
         # drop=False
 )

I'm willing to work on a fix, it also breaks in icclim anyway (cerfacs-globc/icclim#178)

Hi, thank you for the reply. I also encountered the error with " 'percentile is not a valid dimension or coordinate'", may i ask is it the bug? Also, for the bootstrap reference period, is it set to 1961-1990 as default?

As for the reference period used in bootstrap, the time range used is the one stored in t90.attrs["climatology_bounds"].
This attributes is filled in t90 when calling t90 = percentile_doy(tas_ref,window=5,per=90).

I guess "percentile is not a valid dimension or coordinate" comes from t90.sel(percentile=90) Try doing t90.sel(percentiles=90) instead (notice the 's' of percentiles).

Hi, I fixed this but when I used the sentence 'txJJA = xclim.atmos.tg90p(tas,t90,freq='YS',bootstrap=True,season='JJA')',
an error orrcued as " got an unexpected keyword argument 'season'"...

Hum, I don't think I have ever seen this with a simple xclim script. For us to help you better, please include code snippets to show what you're trying to do and more detailed error tracebacks.

dask.config.set({"array.slicing.split_large_chunks": False})
dask.config.set({"distributed.worker.memory.target": "0.8"})
dask.config.set({"distributed.worker.memory.spill": "0.9"})
dask.config.set({"distributed.worker.memory.pause": "0.95"})
dask.config.set({"distributed.worker.memory.terminate": "0.98"})
dask.config.set({"array.chunk-size": "100 MB"})
tas = xr.open_dataset('atmax-1.nc').tmax
tas_ref = tas.sel(time=slice('1961-01-01','1990-12-31'))
t90 = percentile_doy(tas_ref,window=5,per=90).sel(percentiles=90)
txJJA = xclim.atmos.tg90p(tas,t90,freq='YS',bootstrap=True,season='JJA')
output:
UserWarning: Variable does not have a cell_methods attribute.
UserWarning: Variable does not have a standard_name attribute.  check_valid(vardata, "standard_name", data["standard_name"])
Process finished with exit code 137 (interrupted by signal 9: SIGKILL)
It generally means it runs out of memory but I don't think it will run out of memory.

Well bootstrapping does use a lot of memory, more than one might expect from the size of the data. Also, I don't think dask is being used here. First, chunks are not specified in the open_dataset call. Secondly, when using dask this should all be lazy, there shouldn't be any computation done in the code snippet you showed as neither load or values or a plot or a to_netcdf was specified.
I'd retry with a chunking specified along the latitude/longitude but not time, unless the on-disk chunking of your data requires something else. You could also try the code on a single point, in order to see if the problems from dask/memory or from xclim.
Both UserWarning are unimportant if you know what your data is. On this point, if you are using tmax, maybe you want to use tx90p (instead of tg90p), it's the same calculation, but the metadata will reflect that tasmax was used.


Error when launching extension: "Sent env to running instance. Terminating..."

testing #29511:

installed latest generator with npm install -g yo generator-code
created new JavaScript extension "hello-foo-bar" with yo code
opened in VS Code
pressed F5

got this:

'/Applications/Visual Studio Code - Insiders.app/Contents/MacOS/Electron' --debugBrkPluginHost=9439 --extensionDevelopmentPath=/Users/weinand/MS/Projects/Scenarios/extensions/hello-foo-bar
2017-06-27 13:46:53.903 Electron[55944:6683699] ApplePersistence=YES
Error: Sent env to running instance. Terminating...
    at /Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/code/electron-main/main.js:4:313579
    at Object.v [as _notify] (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/code/electron-main/main.js:4:67277)
    at Object.enter (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/code/electron-main/main.js:4:70842)
    at n.Class.derive._creator._run (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/code/electron-main/main.js:4:72670)
    at n.Class.derive._creator._completed (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/code/electron-main/main.js:4:72111)
    at Object.v [as _notify] (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/code/electron-main/main.js:4:67277)
    at Object.enter (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/code/electron-main/main.js:4:70842)
    at n.Class.derive._oncancel._run (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/code/electron-main/main.js:4:72670)
    at n.Class.derive._oncancel._completed (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/code/electron-main/main.js:4:72111)
    at Object.v [as _notify] (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/code/electron-main/main.js:4:67277)

After that the extension was running fine and I could trigger the Hello command and hit breakpoints.

I can reproduce.

This is due to https://github.com/Microsoft/vscode/pull/29034

This was caused by #29034. cc @felixfbecker @jrieken
We should rewrite that code to not rely on throwing Errors, in any case.

What was the behaviour before, no error logged? Not sure how #29034 caused changes. Is the Error thrown inside extension code?

Seems like we relied on that haps error-case being a string: https://github.com/Microsoft/vscode/blob/master/src/vs/code/electron-main/main.ts#L154

Got it - do you know where the error is thrown? I would propose changing the check to a check for a property on the error (like fatal: true? not sure what the semantic is)

I can just rewrite the code not to rely on happy errors. 👍


Reimplement with error module

Codecov Report

Merging #3 (dd52469) into master (9ebfa4b) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master        #3   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            4         4
  Lines          296       286   -10
=========================================
- Hits           296       286   -10

Flag
Coverage Δ

unittests
100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

errno.lua
100.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


Greenkeeper/snyk 1.248.0

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Create a RESTful API

Even if rails_admin is a graphical data management tool it would be nice (and pretty easy to do) a RESTful API.

Out of scope of RailsAdmin.


extra commands

it would be useful to have a dict of commands:
{
   "run": "run",
   "continuous run": "~run",
   "test": "test",
   "continuous test": "~test",
   "custom task": "..."
}

You can already do this by adding a Default.sublime-commands file to your User package directory:
[
  { "caption": "SBT: run", "command": "sbt", "args": {"command": "run"} },
  { "caption": "SBT: continuous run", "command": "sbt", "args": {"command": "~ run"} }
]

I think "continuous run" should be included by default. I use it 99.5% of the time i develop in scala.

Can you add something more generic like an input box to ask what sbt task to run ? (Similar to the input box from testing only)

@MasseGuillaume you can just enter the task to run at the sbt prompt. Help me understand what the input box would provide.

{
  "run_command1": "~ReadWrite/test:compile",
  "run_command2": "~ReadWrite/it:test",
  "run_command3": "~testBench/compile",
  "run_command4": "~DashboardJVM/reStart",
  "run_command": "~PipelineTest/test"
}

Have you tried the history support? Not only can you easily recall and edit commands that you've typed in, but you can also specify commands that are pre-loaded into the history either globally or on a per-project basis.


bugfix fix datetime convert error.

Proposed changes
Issue Number: close #xxx
https://github.com/apache/doris/discussions/26049

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

@zy-kkk PTAL

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall


Examine redis-py retry strategies and determine how they can be leveraged

Relevant: https://github.com/redis/redis-py/blob/master/redis/retry.py
Backoffs: https://github.com/redis/redis-py/blob/master/redis/backoff.py
Examples: https://github.com/redis/redis-py/blob/d3a3ada03e080f39144807c9fbe44876c40e0548/docs/retry.rst

StackExchange.Redis - LinearRetry
StackExchange.Redis - ExponentialRetry


Clarify readonlyRootfs

In confid.md:
We should clarify the readonlyRootfs flag.  My interpretation is that when true, writes to that file system from within the container would result in copy on write and when false they would actually modify the underlying file system.  Is that an accurate understanding of the intent?

That is great question. My interpretation is that readonlyRootfs means it is mounted RO and nothing is writeable, writes will fail.

@chanezon wrote the original spec, so what was the thought with readonlyRootfs. Perhaps @crosbymichael knows too.

On Thu, Jun 25, 2015 at 01:01:42PM -0700, Brandon Philips wrote:

My interpretation is that readonlyRootfs means it is mounted RO and
nothing is writeable, writes will fail.

That was my interpretation too.  If you want the CoW semantics, just
copy your container before launching it and don't set readonlyRootfs.
For bonus points, using something like btrfs' snapshots for this
initial copy will mean you get to share unaltered blocks between your
copy and the original.
That said, I agree that disambiguation is good, and “mounted
read-only” is pretty unambiguous ;).

Makes since, I'll try to disambiguate.   Is this a feature utilized commonly today?  Windows does not support booting/running the OS from read-only volumes so this would have to be a platform split at least for now.

On Thu, Jun 25, 2015 at 03:32:56PM -0700, Taylor Brown wrote:

Is this a feature utilized commonly today?

I don't know how to get a number for that, but the ability to do this
in Docker landed in 1.5 1, and the associated PR
(docker/docker#10093) references docker/docker#7923 (“Fedora has
supported the concept of a readonly root for a long time…).  The other
referenced issues (docker/docker#2710 and docker/docker#8752) seem to
be more focused on the general ideas of increased security and the
fact that you'll fail early if your application tries to store
information in a volume that you don't intend to save.

Interesting, seems like the initial conversation was skeptical on it's usefulness but I do like the idea of it interims of failing deterministically if the process tires to write outside of the intended/defined scope.  I submitted https://github.com/opencontainers/specs/pull/25 to try and cleanup/disambiguate the content.


[Auto-generated] Update dependencies

Update dependencies
Automatically created PR from ci/dependabot-updates.
For more information see the "Dependabot updates" workflow.
To-do

[ ] Check that the diff is sensible, and that tests and builds pass with the new dependency versions.
[ ] Make sure that the PR is squash merged, with a sensible commit message.

Codecov Report

Merging #136 (3e24a9f) into master (4fcfe8b) will decrease coverage by 0.10%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #136      +/-   ##
==========================================
- Coverage   74.08%   73.98%   -0.11%
==========================================
  Files          36       36
  Lines         988      988
==========================================
- Hits          732      731       -1
- Misses        256      257       +1

Flag
Coverage Δ

linux
73.98% <ø> (ø)

linux-extra_libs
?

windows
?

windows-extra_libs
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

oteapi/utils/paths.py
85.00% <0.00%> (-5.00%)
:arrow_down:

Continue to review full report at Codecov.

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


problemas with the colors themes

duplicate of https://github.com/notion-enhancer/repo/issues/37
please follow the contributing guidelines or your bug reports / feature requests will be closed


Form.Checkbox onChange provides weird value

Description
I have a very peculiar issue with the Form.Checkbox component. The onChange handler gets a value of another component passed as its newValue parameter. The value given here is what I've entered into a Form.TextArea (with id "preCommand") component. The value that gets passed is not even a boolean, but a string. The checkbox has a unique id (and key for that matter). I've even removed both the defaultValue and value props from the component. I have no idea of how this value gets there, at all, and have been scratching my head for three days trying to debug this. I've come to the conclusion that this must be a bug in the API with some state being confused somehow.
Raycast version: 1.34.1
@Raycast/api version: 1.34.1
Steps To Reproduce

git clone -b rsync-commands-before-after git@github.com:maxfahl/raycast-extensions.git
cd raycast-extensions/extensions/rsync-commands
npm install
npm run dev
Run Rsync Commands in Raycast
Create new entry
Enter details into the following fields

Name
Source > Path
Destination > Path
Pre Command (at the bottom)

Save the entry
Edit saved entry
Check the console for onChange value: PRE_COMMAND_VALUE

The weird action is going on inside of src/components/entry-option-form-fields.tsx, in the onChange handler of the Form.Checkbox component.
The current behavior
Value from a different field gets passed to the onChange handler of a Form.Checkbox
The expected behavior
I don't believe the onChange handler should fire at all in this case. And even if there was a defaultValue assigned to the component, the onChange handler shouln't be called with this value either, since it's the defaultValue. If I give a defaultValue of false, every EntryOptionFormFields components onChange will be called with a value of false.

I don't believe the onChange handler should fire at all in this case. And even if there was a defaultValue assigned to the component, the onChange handler shouldn't be called with this value either, since it's the defaultValue. If I give a defaultValue of false, every EntryOptionFormFields component onChange will be called with a value of false.

Since the initial value for the checkbox is anyway false, so, I don't see a reason to provide a false defaultValue for the case.
To make callbacks work more predictable we made it all work consistently. Some items can be updated initially on the native side. For example, the dropdown preselects the first available item. Or if an item has storeValue then the callback should be triggered with this value. And assuming all these cases would probably be hard to remember in what case the callback will be triggered. That's why we made an initial callback if any value/defaultValue/storeValue has been provided.

What about issue you mentioned, @sxn could you please take a look at that?

Hey @mattisssa. That's true what you say. My issue is that I don't use value, defaultValue or storeValue, and the value I get for onChange comes from a completely different field in my form. They have unique keys and id's. Very strange.

Ah, alright, that we will have a look at 👍

Thank you @sxn! You mean removing the option filtering? Yes I will try that for now, looking forward to the fix!

You mean removing the option filtering?

Yup, for now at least. The issue's been fixed internally, so you should be able to add the filtering back after next release. 😉
Thanks again for the thorough report!


[Feature][User Experience] Workflow definitions and workflow instances, as well as task instances can be quickly associated

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
After the workflow definition is scheduled, a workflow instance will be generated, but currently on the page, the association between them cannot be quickly located（工作流定义被调度后，会生成工作流实例，但是目前在页面上，不能很快的定位到他们之间的关联）
Use case
It is recommended to add a button to the page defined by the workflow, and add an interface to query according to the workflow ID at the back end, and only display the workflow instance（建议在工作流定义的页面加一个按钮，后端加一个按照工作流ID查询的接口，仅展示工作流实例）

针对每个工作流实例，增加按照工作流实例查询相关的任务实例的接口

Related issues
No response
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

@SbloodyS  please assign to me if no one is implementing it, please assign to me if no one is implementing it

@SbloodyS please assign to me if no one is implementing it, please assign to me if no one is implementing it

Great! I've assigned to you. Looking forward to your contribution.


Rename Unknown to Password

The Unknown field in the login response is actually the password, which for some reason is not checked client side. This password will be sent in all future requests though, so maybe it's worth hashing?

Thanks for updating license, btw


Add missing license headers and lint

Haha, we have tons of lint errors coming from internal packages and the autogenerated thrift code. I suggest using VSCode because it underlines the lint errors and you can selectively fix :P


[Add] Tooplate to theme & templates

Site URL
https://www.tooplate.com/
Description of the above provided site
Tooplate offers a vibrant collection of color-rich website templates, providing a visually striking and professionally designed platform for creating captivating online experiences.
Category
Frontend
Sub Category
theme & templates
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I am willing to work on this issue (optional)
[ ] I am a GSSoC'23 contributor

closing this issue because of inactivity


Incorrect Minimum tumbling window trigger interval value

I found the difference "Minimum tumbling window trigger interval value" in data factory between the two documents below.
And, I confirmed it in my azure data factory v2 environment. Then, 5 minutes seems to be the correct value.
It could be confusing. Please consider fixing the first document.
https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#data-factory-limits

https://docs.microsoft.com/en-us/azure/data-factory/how-to-create-tumbling-window-trigger?tabs=data-factory

My data factory environment

@t-htsuchiya  Thanks for the feedback! We are investigating and will update you shortly.

@t-htsuchiya Thanks for pointing out the issue, I've addressed this issue in PR: https://github.com/MicrosoftDocs/azure-docs-pr/pull/172916
The changes should be live EOD or tomorrow. In future, if you see any minor bug fixes in the doc, feel free to click on the edit button and submit a PR to update. we love to take community contributions.


Pretty format console output

Thanks for building this project!
I'm having trouble reading the console output. Seems like it would be very helpful to pretty format the console output in a more human readable way... or maybe I'm using this wrong?

I am using bunyan to log the output to console.
So you can pipe the output to bunyan to pretty print it, eg.
claudia-local-api --api-module lib/app.js | bunyan --output short

You can see more examples of bunyan CLI usage here

@suddi Fantastic, yes this works. thanks for the tip!


Refresh PG Data Dumps

Database Tables View permission is not in the permissions table.

fixed with latest update


Update to Nickel v1.2.0

@vkleen the type doesn't show in the manual anymore. Any idea why? Could that be related to the changes to nickel doc?

Probably, let me take a look

I pushed a tentative fix

Yup, sorry for the preemptive summoning!


Question about LMD-GHOST security proofs fixed by EIP7045

to @djrtwo
Hi Danny,
I was wondering what are the LMD-GHOST security proofs you are fixing with the EIP-7045 ?
Thanks a lot for your time 👍🏻

@wenceslas-sanchez There are some security proofs here, although I'm not sure they cover the attestation range increase exactly (I've only skimmed them): https://notes.ethereum.org/@djrtwo/2023-fork-choice-reorg-disclosure#Proofs

Understood thanks ! 😄

The reason to increase the inclusion slot is so that the formal proofs in those notes (and attached files) is actually correct. One of the scenarios is that there is a reorg and the canonical chain cannot be continued because of the necessary attestations in the attacking withheld branch, that are enough to justify a previous epoch, are not possible to include in the canonical branch anymore. This fix makes it always possible for the honest validators to include possibly withheld attestations

Thanks @potuz and @michaelsproul !


#1143 Security Officer and Governance Engine OMAS throwing Unsupporte…

…dOperationException
Signed-off-by: Daniela Otelea<EMAIL_ADDRESS>

Thank you for fixing this


Bower missing minified version

My last issue concerning bower, for now :P
Please add minified versions of dragdealer.js and dragdealer.css to distribution package.

It will take a while for me to address these issues, I'm short on time
these days. Feel free to open a PR with the proposed changes.
Thanks!
On Monday, June 22, 2015, Juha Tauriainen<EMAIL_ADDRESS>wrote:

My last issue concerning bower, for now :P
Please add minified versions of dragdealer.js and dragdealer.css to
distribution package.
—
Reply to this email directly or view it on GitHub
https://github.com/skidding/dragdealer/issues/94.

--
Best regards,
Ovidiu Cherecheş


Failing tests with Go 1.15

Do you want to request a feature or report a bug?
Bug
What did you do?
I tried running the tests with Go 1.15 via `go test ./...
What did you expect to see?
The tests should have succeeded
What did you see instead?
FAIL	github.com/containous/traefik/v2/pkg/metrics [build failed]
?   	github.com/containous/traefik/v2/pkg/middlewares	[no test files]
ok  	github.com/containous/traefik/v2/pkg/middlewares/accesslog	0.300s
ok  	github.com/containous/traefik/v2/pkg/middlewares/addprefix	0.231s
--- FAIL: TestForwardAuthRemoveHopByHopHeaders (0.00s)
    forward_test.go:173:
        	Error Trace:	forward_test.go:173
        	Error:      	Not equal:
        	            	expected: 302
        	            	actual  : 500
        	Test:       	TestForwardAuthRemoveHopByHopHeaders
        	Messages:   	they should be equal
    forward_test.go:180:
        	Error Trace:	forward_test.go:180
        	Error:      	Received unexpected error:
        	            	http: no Location header in response
        	Test:       	TestForwardAuthRemoveHopByHopHeaders
        	Messages:   	there should be no error
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x558fd436a5ec]

goroutine 348 [running]:
testing.tRunner.func1.1(0x558fd46cb5e0, 0x558fd490e230)
	testing/testing.go:1057 +0x30d
testing.tRunner.func1(0xc00078f800)
	testing/testing.go:1060 +0x41a
panic(0x558fd46cb5e0, 0x558fd490e230)
	runtime/panic.go:969 +0x175
net/url.(*URL).String(0x0, 0xc00078f800, 0x558fd4738600)
	net/url/url.go:813 +0x4c
github.com/containous/traefik/v2/pkg/middlewares/auth.TestForwardAuthRemoveHopByHopHeaders(0xc00078f800)
	github.com/containous/traefik/v2/pkg/middlewares/auth/forward_test.go:181 +0x616
testing.tRunner(0xc00078f800, 0x558fd472ec00)
	testing/testing.go:1108 +0xef
created by testing.(*T).Run
	testing/testing.go:1159 +0x38d
FAIL	github.com/containous/traefik/v2/pkg/middlewares/auth	0.325s

Furthermore:
pkg/metrics/statsd_test.go:39:71: conversion from untyped int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)
pkg/metrics/statsd_test.go:40:71: conversion from untyped int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)
pkg/metrics/statsd_test.go:43:80: conversion from untyped int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)
pkg/metrics/statsd_test.go:79:71: conversion from untyped int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)
pkg/metrics/statsd_test.go:80:71: conversion from untyped int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)
pkg/metrics/statsd_test.go:83:80: conversion from untyped int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)

Output of traefik version: (What version of Traefik are you using?)
2.2.8

Hello,

Traefik v2.2 uses go1.14.
Traefik v2.3 uses go1.15.

We will not update Traefik v2.2 to go1.15 related to the impact of the changes of this Go version.
Related to #7169
Thanks anyway.


Merge the changes from scripts

Docs Build status updates of commit a5afad7:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-PullRequestMergeConflict] Cannot sync git repo to specified state. Please make sure the pull request is mergeable.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 61e89f4:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

ci-configs/packages-preview.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit ddf91ca:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-PullRequestMergeConflict] Cannot sync git repo to specified state. Please make sure the pull request is mergeable.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 199c5f8:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

ci-configs/packages-latest.json
:white_check_mark:Succeeded

ci-configs/packages-preview.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 2210931:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

ci-configs/packages-latest.json
:white_check_mark:Succeeded

ci-configs/packages-preview.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


NotFoundError: Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.

Please include some context and the contents of the console in your browser's developer tools.
JavaScript Error
Error: Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.
    at http://coba.test/blog:154:251111
    at $p (http://coba.test/blog:154:251129)
    at $p (http://coba.test/blog:154:251221)
    at Gp (http://coba.test/blog:154:250542)
    at gh (http://coba.test/blog:154:267493)
    at HTMLUnknownElement.y (http://coba.test/blog:154:103635)
    at Object.Hn (http://coba.test/blog:154:103960)
    at Kn (http://coba.test/blog:154:104921)
    at mh (http://coba.test/blog:154:265330)
    at t.unstable_runWithPriority (http://coba.test/blog:154:38308)

Reproduction Steps
Please tell us what you were doing when this error occurred, so we can more easily debug it and find a solution.

…

User Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36

Solusion?


authorizationPolicy operation works unexpected

Bug description
[ ] Docs
[ ] Installation
[X] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Expected behavior
I am testing the authorization policy in istio 1.6.7.
the service I used is a httpbin example:

##################################################################################################
# httpbin service
##################################################################################################
apiVersion: v1
kind: ServiceAccount
metadata:
  name: httpbin
---
apiVersion: v1
kind: Service
metadata:
  name: httpbin
  labels:
    app: httpbin
spec:
  ports:
  - name: http
    port: 8000
    targetPort: 80
  selector:
    app: httpbin
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpbin
spec:
  replicas: 1
  selector:
    matchLabels:
      app: httpbin
      version: v1
  template:
    metadata:
      labels:
        app: httpbin
        version: v1
    spec:
      serviceAccountName: httpbin
      containers:
      - image: docker.io/kennethreitz/httpbin
        imagePullPolicy: IfNotPresent
        name: httpbin
        ports:
        - containerPort: 80

I also use virtualservice to redirect the route
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: jwt-test-vs
spec:
  hosts:
  - "ec2-25-38-68-56.cn-northwest-1.compute.amazonaws.com.cn"
  gateways:
  - cc-gateway
  http:
  - match:
    - uri:
        prefix: /jwt/v1
    rewrite:
      uri: /
    route:
    - destination:
        host: httpbin
        port:
          number: 8000
    corsPolicy:
      allowOrigin:
      - "*"
      allowMethods:
      - POST
      - GET
      - PUT
      - DELETE
      allowCredentials: true
      allowHeaders:
      - "jwt"
      - "content-type"
      - "authorization"

And here is my RequestAuthentication and AuthorizationPlicy
apiVersion: "security.istio.io/v1beta1"
kind: "RequestAuthentication"
metadata:
  name: "jwt-example"
spec:
  selector:
    matchLabels:
      app: httpbin
  jwtRules:
  - issuer<EMAIL_ADDRESS>    jwksUri: "https://raw.githubusercontent.com/istio/istio/release-1.5/security/tools/jwt/samples/jwks.json"

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: require-jwt
spec:
  selector:
    matchLabels:
      app: httpbin
  action: ALLOW
  rules:
  - from:
    - source:
       requestPrincipals: ["testing<EMAIL_ADDRESS>    to:
    - operation:
        methods: ["GET"]

When I type
curl  -I -H  "Host: ec2-25-38-68-56.cn-northwest-1.compute.amazonaws.com.cn" -H  "Authorization: Bearer $TOKEN" http://ec2-25-38-68-56.cn-northwest-1.compute.amazonaws.com.cn:30000/jwt/v1/status/200

I can get a 200 as expected, however when I add a paths field:
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: require-jwt
spec:
  selector:
    matchLabels:
      app: httpbin
  action: ALLOW
  rules:
  - from:
    - source:
       requestPrincipals: ["testing<EMAIL_ADDRESS>    to:
    - operation:
        methods: ["GET"]
+      paths: ["/status/200"]

I think I should get a 200 like before, but I always get a 403.
I have also replaced the path /status/200 to /jwt/v1/status/200, but in vain.
Steps to reproduce the bug
See above
Version (include the output of istioctl version --remote and kubectl version and helm version if you used Helm)
istioctl version --remote
client version: 1.6.7
control plane version: 1.6.7
data plane version: 1.6.7 (22 proxies)
How was Istio installed?
kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-25T14:58:59Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-25T14:50:46Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}
Environment where bug was observed (cloud vendor, OS, etc)
aws, ubuntu18.04

Before adding paths in authorization policy.
With action: ALLOW and no specific paths defined implies access to httpbin at all paths is allowed and authenticated requests return 200. Thus your request ".../jwt/v1/status/200" with valid token after the virtual service redirects to destination httpbin at "/" returned 200.
After adding paths: ["/status/200"]
With action: ALLOW and defined paths: ["/status/200"] for the workload httpbin implies that any path to access httpbin other than at "/status/200" are forbidden. But your virtual service is configured in such a way to redirect the request ".../jwt/v1/status/200" to access httpbin at "/" which is now forbidden returning 403
So it should be paths: ["/"] in the authorization policy for httpbin so that all requests with prefix "/jwt/v1" redirected to httpbin at "/" return 200 if the token is valid.
I hope this is helpful

@allandhir Thanks for your reply, I finally figure it out.
The main problem is my virtual service, in my virtual service


remove type from import because it is causing Jodit' cannot be used a…

…s a value because it was imported using 'import type' this error -[Done]

Fixes #

Oh, sorry( Now in version 4.1.2


Raspberry Pi Support - Like piRa1n

Hello I was wondering if there is/will we see raspberry pi support? I tried to install the arm iso from the releases using balenaEtcher and the official raspberry pi imager but neither of them worked.
The main reason this would be so good, is that you can use the raspberry pi as a sort of portable dongle that you can use to re-jailbreak.
Here is a similar project, but for checkra1n - https://github.com/raspberryenvoie/piRa1n-OS
Could you fork piRa1n and make changes so it supports palera1n? As both are similar.
Thanks

Should be fairly easy to implement. Just need to use the Raspberry Pi version of Alpine instead of the normal one.

Should be fairly easy to implement. Just need to use the Raspberry Pi version of Alpine instead of the normal one.

That's good, do you think they will ever release something like this? And if it is easy, then how soon could it be?

I'll look into it.

I'll look into it.

Appreciated, lmk if you get an update :)

Try this and see if it works for you.
If not, try rebuilding it by following the README.

Trying now

Keep getting disk is unreadable, not FAT

After I flash it, and on the raspi screen
btw I have a raspberry pi 4 and the raspi projects for other jailbreaks such as this one seems to only support the raspberry pi 4.


fix ci

updated go-gitlab to current master to include the Code->Content fix (https://github.com/xanzy/go-gitlab/commit/47af183d477ca28e15881e75bf9e4ae514518041#diff-141c0f2a22da0f2480cdc41a602ad8dc)
fixed validation of gitlab.com which now include an additional /-/ in the path
added a prepare step to mr_test to remove an orphan test mr from previous run
updated gitlab.NewClient for api change (returned error currently not handled)

travis status not being reported might be because of: https://travis-ci.community/t/known-issue-travis-ci-reports-expected-waiting-for-status-to-be-reported-on-the-github-status-api-but-the-status-never-arrives/1154

@rsteube thanks this helps a lot. I'll follow those steps to fix travis and hopefully we'll be rolling again


⚠ Bofrost.com has degraded performance

In cbdbdec, Bofrost.com (https://www.bofrost.com) experienced degraded performance:

HTTP code: 200
Response time: 869 ms

Resolved: Bofrost.com performance has improved in ac7cfaf after 6 minutes.


Bump k3d and harvester version

Related issue: https://github.com/cnrancher/autok3s/issues/512

k3d test passed

LGTM

Failed to build windows binary, as following:
[INFO] [1227 06:45:43] building windows/amd64
go: downloading github.com/inconshreveable/mousetrap v1.0.0
go: downloading github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1
go: downloading github.com/Microsoft/go-winio v0.5.2
go: downloading github.com/Microsoft/hcsshim v0.9.4
# github.com/c9s/goprocinfo/linux
/go/pkg/mod/github.com/c9s/goprocinfo@v0.0.0-20210130143923-c95fcf8c64a8/linux/disk.go:15:16: undefined: syscall.Statfs_t
/go/pkg/mod/github.com/c9s/goprocinfo@v0.0.0-20210130143923-c95fcf8c64a8/linux/disk.go:16:17: undefined: syscall.Statfs
[FATA] [1227 06:48:16] hack/make-rules/autok3s.sh:115 'GOOS=${os} GOARCH=${arch} CGO_ENABLED=0 go build -ldflags "${version_flags} ${flags} ${ext_flags}" -tags netgo,prod -o "${CURR_DIR}/bin/${platform}/autok3s${suffix}" "${CURR_DIR}/main.go"' exited with status 2

After upgraded to harvester v1.1.1, the dependency github.com/c9s/goprocinfo/linux, which doesn't support windows platform, is introduced into autok3s. closing this PR for now


flag to skip post-import-db-* hooks when using import-db

A colleague asked me about this and I was surprised to not find a native way of doing it.
I wonder if this is something logical to add?

This would be a duplicate of

https://github.com/ddev/ddev/issues/2129
true?

True

#2129 seems like a modest effort and right up your alley for a contribution :)

I'll take a look


Error when changing report's date range after "run query"

Describe the Bug
When I create report, select website, date range and run query and then change the date range I get this error:
Something went wrong.
Cannot set properties of undefined (setting 'text')

Database
PostgreSQL
Relevant log output
No response
Which Umami version are you using? (if relevant)
2.11.0
Which browser are you using? (if relevant)
No response
How are you deploying your application? (if relevant)
No response

I can't seem to reproduce the error. Do you have a specific report I can target? (Funnel, Retention, etc). I'm testing on a self-hosted psql instance.


Allow superuser to delete notes

Note: DefectDojo is now on Python3.5 and Django 2.2.x Please submit your pull requests to the 'dev' branch as the 'legacy-python2.7' branch is only for bug fixes. Any new features submitted to the legacy branch will be ignored and closed.
This PR grants superuser users the ability to delete notes from the API, and also make the patch endpoint work to remove a note from a finding.
When wanting to remove a note from a finding with the same user from the UI or from the APIv2, the APIv2 forbid me to delete if not the same user, something we don't have from the UI.
Also, the patch or put methods were actually forbidden (error 405), even though specified on the remove_note endpoint, it had to be specified also on the notes to work.
Since both seemed to achieve the same thing, I removed the put method.
When submitting a pull request, please make sure you have completed the following checklist:

[x] Your code is flake8 compliant
[x] Your code is python 3.5 compliant (specific python >=3.6 syntax is currently not accepted)
[ ] If this is a new feature and not a bug fix, you've included the proper documentation in the ReadTheDocs documentation folder. https://github.com/DefectDojo/Documentation/tree/master/docs or provide feature documentation in the PR.
[ ] Model changes must include the necessary migrations in the dojo/db_migrations folder.
[ ] Add applicable tests to the unit tests.
[ ] Add the proper label to categorize your PR

Current accepted labels for PRs:

Import Scans (for new scanners/importers)
enhancement
feature
bugfix
maintenance (a.k.a chores)
dependencies

what about staff users? or is that the same? I always get confused because I think what django calls superuser is called staff user in defect dojo?

what about staff users? or is that the same? I always get confused because I think what django calls superuser is called staff user in defect dojo?

Superusers and staff are different permission sets, even though maybe today the difference is thin. My reference is what you look at a user, you have active, staff and superuser, which supposedly has more rights.

Should staff users also be allowed to remove notes then?

Should staff users also be allowed to remove notes then?

I thought not, but somehow was totally arbitrary (e.g. like an "incremental" change, since everyone was denied before).

Well, if you want it to be the same as the UI.... :-D

Yea. What to say about this model. I can definitely change it.

I would also have approved if both superuser and staff were there :-D

Dude.

More seriously, can an admin not be staff?

I have no idea. I studied computer science for 5 years but I think a PhD is needed to understand superuser vs staff vs admin ;-). So my initial thought was to allow them both to have access, sorry if I was not clear.

I have no idea. I studied computer science for 5 years but I think a PhD is needed to understand superuser vs staff vs admin ;-). So my initial thought was to allow them both to have access, sorry if I was not clear.

No problem ;-)
Actually I think in our state-of-the-art case of permission modeling, being an admin without being a staff is probably something we would not see much -- even though technically possible.


Make search icon look less like a button

Maybe if it was on the left side of the text input and/or didn't have a background color?

Duplicate of #36


ARTEMIS-2023 Fix missing setEnable1x methods

Can some tests be added

@michaelandrepearce yes.  leave it with me.


Change project structure

Add bin directory and make build in order to build the project's binary inside bin/.
Rename cmd directory to commands.
Signed-off-by: arielireni<EMAIL_ADDRESS>

@masayag Do you think we should add the internal directory anyway for future use of subdirectories inside it? or keep this change with the commands directory only?


Restore using 'mirror and swap' strategy instead of 'reset and merge'

This addresses an obscure but real edge case encountered by a user who was using chef provisioning to provision a couple hundred nodes in one machine_batch. In this scenario nodes are being provisioned in separate thread's. In each threads code path is this:
    def converge
      with_chef_config do
        Chef::Runner.new(run_context).converge
      end
    end

with_chef_config uses mixlib-config's save and restore to temporarily add state to Chef::Config and later restore it to its original. In the case of chef-provisioning it does not actually add any state while in the  with_chef_config block but restore is still called on Chef::Config. During the restore, all state is cleared and then its previous state is merged back in. So for a brief period of time Chef::Config is "naked" with only its god given defaults. In a high concurrency scenario, another thread may depend on the configured settings like a custom trusted_certs_dir for example. If it is pointed to the default directory, it may not find the certs it needs.
This PR, instead of clearing state, makes a copy of the configuration objects populated with the state to restore and then swaps the curent config objects with these new ones so that the config is not ever in an empty state.

:+1: LGTM

My concern with this patch is the re-creation of the config_contexts can cause them to lose methods that were added by users. I suspect this will do the job equally:
    def restore(hash)
      self.configuration = hash.reject { |key, value| config_contexts.has_key?(key) }
      config_contexts.each do |key, config_context|
        config_context.restore(hash[key] || {})
      end
    end

Actually looks worse than that--by creating new config contexts we're losing default value information. Here's a test:
require "mixlib/config"

module X
  extend Mixlib::Config

  config_context :urls do
    default(:protocol) { "https" }
    default(:google) { "#{protocol}://google.com" }
  end
end

puts X.urls.google
X.restore(urls: { protocol: "ftp" })
puts X.urls.google

The first prints "https://google.com"; the second prints empty string.

@jkeiser I'm a bit confused here. If I am restoring the config from urls: { protocol: "ftp" }, wouldn't the expected output of X.urls.google be nil?
Unless I am misunderstanding the objective of restore it is supposed to restore the config to match the saved state you feed it with. Here that saved state has no google so it should not exist in the restored state right?

nevermind I see now that those are defaults and should of course persist in that case

:+1:


[Q] How to trace microservices?

My application is designed as microservice. Here is my application arch:
service A Web API => event-driven cloud function =>  service B API
I want to use Cross-Service Trace Contexts to trace a completed business transaction which means I expect below trace span.
Here is a demo for Cross-Service Trace Contexts feature. But I use the local nodejs web server. There is no background cloud function.

I deployed my real application services above on GCP.  But the cross-service trace contexts doesn't work well. I use trace context in my background cloud function like this:
const pkg = require('./package.json');
const tracer = require('@google-cloud/trace-agent').start({
  serviceContext: {
    service: pkg.name,
    version: pkg.version
  }
});
const fetch = require('node-fetch');
const CLOUD_FUNCTION_PUBSUB_SERVICE_URL = process.env.CLOUD_FUNCTION_PUBSUB_SERVICE_URL || '';
console.log('CLOUD_FUNCTION_PUBSUB_SERVICE_URL: ', CLOUD_FUNCTION_PUBSUB_SERVICE_URL);

exports.TestCloudTracePubSubService = async function TestCloudTrace(data, context) {
  const pubSubMessage = data;
  const jsonString = pubSubMessage.data ? Buffer.from(pubSubMessage.data, 'base64').toString() : '{}';
  const message = JSON.parse(jsonString);
  const span = tracer.createChildSpan({ name: pkg.name, traceContext: message.traceContext });
  span.addLabel('traceContext', message.traceContext);
  console.log(`message: ${JSON.stringify(message, null, 2)}`);

  const body = await fetch(CLOUD_FUNCTION_PUBSUB_SERVICE_URL).then((res) => res.json());
  console.log(`body: ${JSON.stringify(body, null, 2)}`);

  span.endSpan();
};

I try to create child span with traceContext passed by event message. But it doesn't work.

As you can see, there is only a root span. Not only for background cloud function, but also for HTTP cloud function.
So, how can I trace a whole business transaction? The microservice arch is designed like this:
GKE service A API => background cloud function => GKE service B API
I can't even add a label to cloud trace within HTTP and background functions.
I got below error in my HTTP cloud function:

@google-cloud/trace-agent ERROR StackdriverTracer#start: Tracing might not work as the following modules were loaded before the trace agent was initialized: [accepts, array-flatten, body-parser, bytes, content-disposition, content-type, cookie, cookie-signature, debug, depd, destroy, ee-first, encodeurl, escape-html, etag, express, finalhandler, forwarded, fresh, http-errors, iconv-lite, inherits, ipaddr.js, media-typer, merge-descriptors, methods, mime, mime-db, mime-types, ms, negotiator, on-finished, parseurl, path-to-regexp, proxy-addr, qs, range-parser, raw-body, safe-buffer, send, serve-static, setprototypeof, statuses, type-is, unpipe, utils-merge, vary]

I am thinking use trace REST API within HTTP and backgroud Cloud function, but I am not sure that how can I use traceContext generated from cloud trace library with trace REST API.
I want to generate a trace and spans like below:

I want to trace a whole business transaction, even some microservice is called asynchronously(background cloud function).
Is this possible? Any advice will be good!

Hi @mrdulin, I assume you are using Google Cloud Functions. GCF has been working on supporting this library but I believe this support is not yet released. Unfortunately because of how the platform works, using require('@google-cloud/trace-agent') in your cloud function will not work and result in the error message you encountered above (note: v4.1.0+ of this library makes it a warning rather than an error).
In the meantime, you can try this workaround that uses the custom span API:
https://gist.github.com/kjin/3b86f1eaf6c8ee9c458df8708e77ae53
Note two things: that (1) you would be manually be creating root spans via tracer.runInRootSpan (instead of having them created automatically by our express plugin), and (2) you would be manually specifying the span context via the traceContext option in conjunction with tracer.propagation.extract to process the incoming headers.
Let me know how that works for you!

@kjin  Thanks for replying. Your example is very helpful, but what about the background cloud function?

For now, I am using the same traceId and pass it to each downstream service like this:
web service 1(publish message) => background cloud function => HTTP cloud function => web service 2
Here is the trace timeline:

It seems work, but I don't know does it make sense.

So it seems like there are two separate issues at play here:

Trace ID doesn't match up between A -> B (where A is a Node server, B is an HTTP cloud function)

After looking at this a little bit I think this is because node-fetch doesn't work with the Trace Agent. I was surprised by this but I think it's due to the fact that we use it internally. This is a bug in our library and I'll open an issue to track its fix shortly.

Background cloud functions don't get correlated

This might be an impossible problem to solve. IIUC background cloud functions have no direct communication channel to the server/function that indirectly triggered them, so there's no proper way I can think of to pass the Trace ID to a background cloud function. You could somehow embed the trace ID in the incoming data (like for a PubSub object, an "attribute"?). But at the same time, I would not expect a background function to have a latency impact; in your screenshot, the spans describing it are completely disjoint from the main request, right?

@kjin
I made a demo for tracing cross services. Here are my services:
.
├── 01-web-api
├── 02-create-budget
├── 03-create-campaign
├── 04-create-adgroup
├── 05-create-ad
├── 06-google-adwords-api
├── deploy.sh
├── docs
└── utils.js

The workflow is from 01-web-api to 06-google-adwords-api
02 - 05 services are background cloud functions
Here is the timeline, it seems work. But I am not sure does it make sense.
The key point for trace cross services is to use the same traceContext.
I pass the traceContext to background cloud function by pubsub message payload(attribute will be fine as well). And forward traceContext to 06-google-adwords-api(RESTful web service)

I think it makes sense. If I understand correctly, this is how I would guess things work:

User hits /campaign endpoint, which is part of 01-web-api. This results in a PubSub publish.
Four background cloud functions 02-05 are triggered sequentially as a result of the publish. Each one makes a request to 06-google-adwords-api. However, the background cloud function spans do not show up in the screenshot, so all we see is that the /GoogleAdwordsAPI endpoint gets hit four times over non-overlapping time segments.

And that you were able to get 06 to show up because you passed the trace context from 01 to 06 via each of 02-05. You receive the value of the trace context in each of these four background functions 02-05 via the input data attribute, but only pass it onto 06 rather than using it in these functions. So the one missing part of this diagram, if any, is the spans that represent the running time of each of 02-05 (which should be technically possible since you have that information).

Hi @mrdulin -- I'm going to close this issue. Please comment if you have any other Q's and I'll re-open. Thanks!

@kjin I think, The problem is in root span. If I close root span in the first microservice, I can not see all the time of work my microservices. But If I do not close root span in the first microservice, I will get a memory leak. I think If we have the feature: send trace data and clear memory without close root span(We can do it in another service), it will be good point for trace microservices.

@klerick Thanks for the suggestion. I don't think we'll have the bandwidth to implement such a feature, though. (I'm also not sure it's possible to start a span in one service and end it in another, the Stackdriver Trace API may not allow that.)

@kjin I think, the Stackdriver Trace API does not depend on it because this behavior is common for Stackdriver. I tried to extend the class RootSpanData but the filed "children" is private.
For example:
In the first microservice we create rootSpan and create childSpan if needed. Then we close childSpan, send trace to StrackDriver and clean the child filled in rootspan class. We can get data from rootSpan, such us getCurrentRootSpan, getCurrentContextId. This data pushes to the next microservice and create rootspan with these details. if this microservice is the last one, we close rootspan.

@kjin I think If will add the feature, create root span from existing data. We can use the trace agent for microservice.
From StrackDriver documantation:
Sends new traces to Stackdriver Trace or updates existing traces. If the ID of a trace that you send matches that of an existing trace, any fields in the existing trace and its spans are overwritten by the provided values, and any new fields provided are merged with the existing trace data. If the ID does not match, a new trace is created.
We will have the opportunity to change endTime for root span and we will have correctly charts)

Can someone share a workflow for implementing distributed tracing in cloud functions/cloud run?

@bcoe @mrdulin Can you guys confirm if its still the same way we need to do?
I was expecting it is automated by now but unfortunately, only see first service trace alone(cloud run) but not the pubsub function trigger trace.
Right now I just have imported at start of each service alone and don't have any further code. Do I need to pass the context from each service and pass it to others(pubsub subscriptions/other services)?


CMake Error at ../tools/cmake/component.cmake:475 (add_library):

-- Configuring done
CMake Error at ../tools/cmake/component.cmake:475 (add_library):
Cannot find source file:
C:/Espressif/frameworks/esp-idf-v4.3.2/esp32-client-sdk/components/iota_c/iota_c/src/core/seed.c

Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm
.hpp .hxx .in .txx
Call Stack (most recent call first):
components/iota_c/CMakeLists.txt:49 (idf_component_register)
CMake Error at ../tools/cmake/component.cmake:475 (add_library):
No SOURCES given to target: __idf_iota_c
Call Stack (most recent call first):
components/iota_c/CMakeLists.txt:49 (idf_component_register)
CMake Generate step failed.  Build files cannot be regenerated correctly.
cmake failed with exit code 1

@CavyAgrotronics Could you provide more information?

which branch you are working on? I'd recommend main branch for working with Chrysalis network, develop branch is WIP and broken at this moment.
steps of how to reproduce this compiling error


only op

only ops can buy, sell and create shops. non ops cant do anything.

There's a config setting for that.  Also make sure non-ops are using [buy] and [sell] in their shops not [server-buy] and [server-sell]

i cant find it

It's a server config. World/server config/dicemcmm-server.toml

what do i chnage

it already says
#The minimum permission level to create basic shops.  default= 0 = all players
#Range: 0 ~ 4
"shop level" = 0

Then you have something else causing your non-ops to be unable to use the signs. Try with a fresh forge install and just this mod and see if the issue persists.


Progress bar full+checkmark with 9 of 14 days

The risk summary shows "9 of 14 days saved", but the progress bar next to it is full and displays a checkmark. Tapping on it for details shows the progress bar correctly.
PS: Android is working correctly.

Hey @Bandyt, thanks for your feedback. This has already been fixed with #634 and will be part of the next release. :-)


kubeadm init Fails Due to "No Space Left on Device" Error on https://labs.play-with-k8s.com/

Title: kubeadm init Fails Due to "No Space Left on Device" Error
Description:
When running the kubeadm init command on my Kubernetes setup, I encountered multiple errors indicating that there is no space left on the device. The command fails during image pulling and certificate generation phases.
Steps to Reproduce:
Run kubeadm init --apiserver-advertise-address $(hostname -i) on a machine with limited disk space.

Error Log:
vbnet
W0802 06:39:39.690903     485 initconfiguration.go:120] Usage of CRI endpoints without URL scheme is deprecated...
[WARNING SystemVerification]: failed to parse kernel config: unable to load kernel module: "configs"...
[WARNING FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist
[WARNING ImagePull]: failed to pull image registry.k8s.io/kube-controller-manager:v1.27.16: no space left on device
...
error execution phase certs/ca: failure while saving ca certificate and key: couldn't write key: no space left on device
Expected Behavior:
The kubeadm init command should complete successfully without running into disk space issues.
Actual Behavior:
The command fails with multiple "no space left on device" errors during the image pulling and certificate generation phases.
Environment:
Kubernetes Version: v1.27.16
Operating System: Linux
Disk Space Status: Full

Additional Information:
If there are specific configurations or known issues related to disk space that might affect the kubeadm init process, please provide guidance or workarounds.

This is still occurring as of Aug 14th 2024.


Implement version control prior to public beta

For example, prefix all routes with v1 or similar.

Definitely want to end up with this:

All routes go under /v1 (anticipating /v2 ...etc)
If no version specifier is provided, the "latest" endpoints are used

Closing in favor of #224