CacheLimitExceeded error when training

W1126 16:03:16.529497 1228885 torch/_dynamo/convert_frame.py:844] [1/8] torch._dynamo hit config.cache_size_limit (8)
W1126 16:03:16.529497 1228885 torch/_dynamo/convert_frame.py:844] [1/8]    function: '_compilable_update_' (/home/marthinwurer/.pyenv/versions/3.9.6/envs/minerl/lib/python3.9/site-packages/heavyball/utils.py:694)
W1126 16:03:16.529497 1228885 torch/_dynamo/convert_frame.py:844] [1/8]    last reason: 1/0: tensor 'L['p'][0]' size mismatch at index 0. expected 16, actual 64
W1126 16:03:16.529497 1228885 torch/_dynamo/convert_frame.py:844] [1/8] To log all recompilation reasons, use TORCH_LOGS="recompiles".
W1126 16:03:16.529497 1228885 torch/_dynamo/convert_frame.py:844] [1/8] To diagnose recompilation issues, see https://pytorch.org/docs/main/torch.compiler_troubleshooting.html.
1batch [00:14, 14.43s/batch]

---------------------------------------------------------------------------
CacheLimitExceeded                        Traceback (most recent call last)
Cell In[21], line 5
      3 results = []
      4 for i in range(runs):
----> 5     result, stats = train_run(1e-3)
      6     results.append(result)
      7     print("result:", result)

Cell In[20], line 20, in train_run(lr)
     17 stats = defaultdict(list)
     19 start_time = time.time()
---> 20 train_loop(autoencoder, train_dataloader, optimizer, 10, stats)
     21 result = test_loop(autoencoder, test_dataloader)
     22 return result, stats

Cell In[14], line 24, in train_loop(model, dataloader, optimizer, epochs, stats)
     19             image = data.cuda()
     20 #             print(image.shape)
     21 #             break
     22
     23     #         loss = train_batch(image, model, optimizer, autoencoder.spectral_loss)
---> 24             full_loss, losses = train_batch(model, [image], image, optimizer, F.mse_loss)
     26             if isinstance(full_loss, tuple):
     27                 loss = full_loss

Cell In[13], line 19, in train_batch(model, inputs, targets, optimizer, loss_func)
     15 loss = torch.mean(losses)
     17 loss.backward()
---> 19 optimizer.step()
     21 return loss.detach().item(), losses.detach()

File ~/.pyenv/versions/3.9.6/envs/minerl/lib/python3.9/site-packages/torch/optim/optimizer.py:487, in Optimizer.profile_hook_step.<locals>.wrapper(*args, **kwargs)
    482         else:
    483             raise RuntimeError(
    484                 f"{func} must return None or a tuple of (new_args, new_kwargs), but got {result}."
    485             )
--> 487 out = func(*args, **kwargs)
    488 self._optimizer_step_code()
    490 # call optimizer step post hooks

File ~/.pyenv/versions/3.9.6/envs/minerl/lib/python3.9/site-packages/heavyball/utils.py:601, in StatefulOptimizer.step(self, closure)
    599 for top_group in self.param_groups:
    600     for group in self.get_groups(top_group):
--> 601         self._step(group)
    602         if self.use_ema:
    603             self.ema_update(group)

File ~/.pyenv/versions/3.9.6/envs/minerl/lib/python3.9/site-packages/heavyball/precond_schedule_palm_foreach_soap.py:105, in PrecondSchedulePaLMForeachSOAP._step(self, group)
    102 precond = project(exp_avg_projected, state['Q'], True)
    104 update_preconditioner(g, state, max_precond_dim, precondition_1d, old_debiased2, update_precond)
--> 105 update_param_([p], [precond], step_size, group["weight_decay"], caution=group['caution'], grad=[g])

File ~/.pyenv/versions/3.9.6/envs/minerl/lib/python3.9/site-packages/heavyball/utils.py:719, in update_param_(param, update, lr, decay, add_fn, caution, grad)
    717 if add_fn is None:
    718     add_fn = stochastic_add_
--> 719 _compilable_update_(param, update, decay, add_fn, lr, caution, grad)

File ~/.pyenv/versions/3.9.6/envs/minerl/lib/python3.9/site-packages/torch/_dynamo/eval_frame.py:465, in _TorchDynamoContext.__call__.<locals>._fn(*args, **kwargs)
    460 saved_dynamic_layer_stack_depth = (
    461     torch._C._functorch.get_dynamic_layer_stack_depth()
    462 )
    464 try:
--> 465     return fn(*args, **kwargs)
    466 finally:
    467     # Restore the dynamic layer stack depth if necessary.
    468     torch._C._functorch.pop_dynamic_layer_stack_and_undo_to_depth(
    469         saved_dynamic_layer_stack_depth
    470     )

File ~/.pyenv/versions/3.9.6/envs/minerl/lib/python3.9/site-packages/torch/_dynamo/convert_frame.py:1269, in CatchErrorsWrapper.__call__(self, frame, cache_entry, frame_state)
   1263             return hijacked_callback(
   1264                 frame, cache_entry, self.hooks, frame_state
   1265             )
   1267 with compile_lock, _disable_current_modes():
   1268     # skip=1: skip this frame
-> 1269     return self._torchdynamo_orig_callable(
   1270         frame, cache_entry, self.hooks, frame_state, skip=1
   1271     )

File ~/.pyenv/versions/3.9.6/envs/minerl/lib/python3.9/site-packages/torch/_dynamo/convert_frame.py:526, in ConvertFrameAssert.__call__(self, frame, cache_entry, hooks, frame_state, skip)
    510 compile_id = CompileId(frame_id, frame_compile_id)
    512 signpost_event(
    513     "dynamo",
    514     "_convert_frame_assert._compile",
   (...)
    523     },
    524 )
--> 526 return _compile(
    527     frame.f_code,
    528     frame.f_globals,
    529     frame.f_locals,
    530     frame.f_builtins,
    531     self._torchdynamo_orig_callable,
    532     self._one_graph,
    533     self._export,
    534     self._export_constraints,
    535     hooks,
    536     cache_entry,
    537     cache_size,
    538     frame,
    539     frame_state=frame_state,
    540     compile_id=compile_id,
    541     skip=skip + 1,
    542 )

File ~/.pyenv/versions/3.9.6/envs/minerl/lib/python3.9/site-packages/torch/_dynamo/convert_frame.py:859, in _compile(code, globals, locals, builtins, compiler_fn, one_graph, export, export_constraints, hooks, cache_entry, cache_size, frame, frame_state, compile_id, skip)
    844 log.warning(
    845     "torch._dynamo hit config.%s (%s)\n"
    846     "   function: %s\n"
   (...)
    854     troubleshooting_url,
    855 )
    856 if config.skip_code_recursive_on_cache_limit_hit and justknobs_check(
    857     "pytorch/compiler:skip_code_recursive_on_cache_limit_hit"
    858 ):
--> 859     raise CacheLimitExceeded(f"{limit_type} reached")
    860 else:
    861     # do not recursively skip frames
    862     unimplemented(f"{limit_type} reached")

CacheLimitExceeded: cache_size_limit reached

Started my training with a relatively complex resnet autoencoder, got this error.

Oh, good catch. Following @gau-nernst's recommendation, I've disabled dynamic compilations, meaning you will hit cache size limits for small caches in the optimizer.
This can be safely ignored by increasing the cache size limit (128 works well in my runs).
I'll add documentation for that tomorrow.

Increased it to 128 with
import torch._dynamo.config
torch._dynamo.config.cache_size_limit = 128

And now it runs. However, it takes 15-30s for it to compile and run the first batch.

@ClashLuke Btw you can also use torch._dynamo.utils.disable_cache_limit() within the optimizer. Should be safe I think
https://github.com/pytorch/ao/blob/5eb6339e0b6f413c74a3dfd5e7f53449474723fc/torchao/prototype/low_bit_optim/adam.py#L90-L92
Also, did you observe faster speed compared to dynamic-shape compile used previously?

@gau-nernst super cool, wasn't aware of that! I'll add that now, thank you for the pointer

Starting 0.23.3, compile_mode reflects the mode of known-good compilations (that receive speedups from being compiled), with compile_mode_recommended_to_none being used for usually-negative compilations. The previous compile_mode argument is therefore now named compile_mode_recommended_to_none, and the new compile_mode argument reflects the previous hardcoded "max-autotune-no-cudagraphs".
You can further enable dynamic compilation to speed up compilation and reuse across shapes at the cost of slower runtime.


Swagger should identify config = true/false for the attributes in YANG

Swagger should create two schema definitions for every YANG grouping (class）:

state attributes that contains all attributes;
config attributes that includes only config=true;

I guess this relates to an class/grouping having attributes that are input only, output only and both input/output

Hi Hui, do you have any example?
Thanks.

Hi Ricard,
Take grouping Topology and grouping ConnectivityService for example.
The attributes in Topology are all "config false", so these attributes are read only and should only have "GET" operations in Swagger.

    grouping Topology {

        list _node {
            key 'uuid';
            config false;
            uses Node;
            description "none";
        }
        list _link {
            key 'uuid';
            config false;
            uses Link;
            description "none";
        }
        leaf-list layerProtocolName {
            type Tapi:LayerProtocolName;
            config false;
            description "none";
        }
        uses Tapi:ResourceSpec;
        description "The ForwardingDomain (FD) object class models the “ForwardingDomain” topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding.
            At the lowest level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). Note that an NE can encompass multiple switch matrices (FDs). ";
    }

In connectivityService, all the attributes except _connection is "config true" (which is not shown as default). So the other attributes, such as _servicePort, can have "POST/PUT/DELETE" operations.

    grouping ConnectivityService {

        leaf-list _connection {
            type leafref {
                path '/Tapi:Context/Tapi:_connection/Tapi:uuid';
            }
            config false;
            description "none";
        }
        list _servicePort {
            key 'localId';
            uses ConnectivityServicePort;
            description "none";
        }
        container _connConstraint {
            uses ConnectivityConstraint;
            description "none";
        }
        container _schedule {
            uses Tapi:TimeRange;
            description "none";
        }
        container _state {
            uses Tapi:AdminStatePac;
            description "none";
        }
        leaf direction {
            type Tapi:ForwardingDirection;
            description "none";
        }
        leaf layerProtocolName {
            type Tapi:LayerProtocolName;
            description "none";
        }
        uses Tapi:ServiceSpec;
        description "The ForwardingConstruct (FC) object class models enabled potential for forwarding between two or more LTPs and like the LTP supports any transport protocol including all circuit and packet forms.
            At the lowest level of recursion, a FC represents a cross-connection within an NE.";
    }

Dear Hui,
The tooling takes into consideration config=false. If you find a concrete example where it is not taken into consideration, we might find a bug. I have not been able to find a bug example in the suggested ones:
-"/config/Context/_topology/{uuid}/_node/" has only get
-"/config/Context/_topology/{uuid}/_link/" has only get

"/config/Context/_connectivityService/{uuid}/_state/" has CRUD
"/config/Context/_connectivityService/{uuid}/_connConstraint/" has CRUD

R.


Update thread_wifi_ap_internet_configurable_topology.py

Since happy-state-delete would take care of happy internet delete and do the release of isp virtual link in happy toplogy, we need do the correpsonding change in this thread_wifi_ap_internet_configurable_topology.py.

Codecov Report

Merging #171 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master    #171      +/-   ##
=========================================
+ Coverage    53.9%   53.9%   +<.01%
=========================================
  Files         326     326
  Lines       55609   55609
=========================================
+ Hits        29974   29976       +2
+ Misses      25635   25633       -2

Impacted Files
Coverage Δ

src/lib/profiles/security/WeaveCert.cpp
84.41% <0%> (+0.64%)
:arrow_up:

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 9783211...3ab7770. Read the comment docs.


README: add MacPorts instructions

Thank you for adding this! I don't use macports but I assume you've successfully installed via https://github.com/macports/macports-ports/blob/master/textproc/hck/Portfile?

And just to make sure, xinstall must run something equivalent to cargo install --release?

Thank you for adding this! I don't use macports but I assume you've successfully installed via https://github.com/macports/macports-ports/blob/master/textproc/hck/Portfile?

Yes, I am the maintainer who submitted that Portfile.  Portfiles are internal to MacPorts. End users are not aware of them.

After that, the end user effectively just does sudo port install hck and hck is gets installed to /opt/local/bin (which will be in the user's PATH as part of installing MacPorts).
To your second question, yes, hck is being built with cargo. You can see each individual crate that hck requires + a crate checksum in the Portfile.

Excellent! Again, thanks for adding this to MacPorts 👍

Thank you for hck 👍🏾


Module is one version behind with 8.2.0 released now

I'm working to deploy Wildfly 8.2.0 and so far have simply changed version = 8.2.0 in order to deploy it. This appears to work so far, but it would be nice to see this become the new default.
I'm happy to help test it with 8.2.0 if you have a testing routine or suggestions as to what I should run against my install to test it.

Done and pushed to puppet forge,
I use this vagrant box https://github.com/biemond/vagrant-fedora20-puppet for my wildfly testing
cheers


Keep a Changelog

I see 3 possible approaches here:
Manual Changelog
On every version bump/release manually update the changelog (something like the news.md file in builder)
Automated Changelog
Some tools like conventional changelog allow to create a well formated changelog  with a command, the bad part if we had to use some commit standard for example: https://conventionalcommits.org/
Devlog
We had a similar issue with CARTO.js and we created a tool to generate a changelog without changing our commit rules, just using a quick code in the github merges
you know the pros & cons of each one so feel free to share your point of view @davidmanzanares @elenatorro @jgoizueta @Jesus89 @rochoa

I propose to use the guidelines shown here: https://keepachangelog.com/en/1.0.0/
From my point of view, we should update the changelog in each PR manually. I don't like the idea of automatizing it because usually there are many commits for just one feature, while there is one PR for each feature.
I think that we should enforce this convention by checking at code-review time that the changelog is updated.

What if we could automate it based on the contents of the PR description?

I'm not very fan of automation in this case, because IMO there is always a particular case that can not be covered with automation and external APIs. For example, a feature closed in two PRs or a dev-happiness PR you don't want to include in the changelog.
I think we can update manually the changelog in each PR, if required, as we did in Builder, but following the keepachangelog format: Added, Changed, Fixed, Removed (Deprecated, Security).

Fair enough. If you are happy doing manually, I'm also happy. 😃We have been doing that in Engine API projects for years.

Manual then :rocket:

Do we agree on starting it after the next release?
I don't say to start it now because we would need to look back for previous changes to make the version complete.

We have the changelog info for v0.6.0 version so I think we could add the information and continue after that.
Maybe for the public release, we should do a summary for the previous versions.

I have added a branch with the changes from 0.6.0 (0.6.2 and unreleased) https://github.com/CartoDB/carto-vl/pull/814.
Please add anything that you miss since 0.6.0 in the file. And remember to follow always the principles https://keepachangelog.com/en/1.0.0/#how :scroll:

:+1:

Closed by https://github.com/CartoDB/carto-vl/pull/814


Deserializing feed: missing optional fields return 0 value in node.js

Given a feed that does NOT have an optional field (e.g. vehicle speed), the value returned when getting this value is 0. So there's no way to differentiate "not included" from an actual value of zero.
const feed = realtime.transit_realtime.FeedMessage.decode(protobuf);
feed.entity.forEach((entity) => {
  if (entity.vehicle) {
    const speed = entity.vehicle.position.speed; // speed is 0
  }
});

This may be similar to #52

@nselikoff Thanks for the report!  In Java bindings there is a hasSpeed() method that you can call to determine if the field has been set, but I'm not as familiar with the Node.js bindings.  I'm assuming there isn't an equivalent?

@barbeau good question - just looked and there is not a similar method. However, I found a workaround using realtime.transit_realtime.Position.toObject:
const feed = realtime.transit_realtime.FeedMessage.decode(protobuf);
feed.entity.forEach((entity) => {
  if (entity.vehicle) {
    // using `toObject` only adds properties that exist in the protobuf
    const position = realtime.transit_realtime.Position.toObject(entity.vehicle.position);
    // so speed will be undefined if not included in the protobuf
    const speed = position.speed;
    // maybe you want it null
    // const speed = position.speed || null;
  }
});

Same issue. All of the optional fields are somewhat captured in the interface definitions as ? optional as well as |null (arguably the wrong way and in conflict with itself, but at least captured), e.g.:
/** Properties of a VehiclePosition. */
interface IVehiclePosition {
    trip?: (transit_realtime.ITripDescriptor|null);
    vehicle?: (transit_realtime.IVehicleDescriptor|null);
    position?: (transit_realtime.IPosition|null);
    currentStopSequence?: (number|null);
    stopId?: (string|null);
    currentStatus?: (transit_realtime.VehiclePosition.VehicleStopStatus|null);
    timestamp?: (number|Long|null);
    congestionLevel?: (transit_realtime.VehiclePosition.CongestionLevel|null);
    occupancyStatus?: (transit_realtime.VehiclePosition.OccupancyStatus|null);
    occupancyPercentage?: (number|null);
    multiCarriageDetails?: (transit_realtime.VehiclePosition.ICarriageDetails[]|null);
}

But then all the class implementations lose that optionality on primitive fields, while preserving it on other entity types, e.g.:
/** Represents a VehiclePosition. */
class VehiclePosition implements IVehiclePosition {
    constructor(properties?: transit_realtime.IVehiclePosition);
    public trip?: (transit_realtime.ITripDescriptor|null);
    public vehicle?: (transit_realtime.IVehicleDescriptor|null);
    public position?: (transit_realtime.IPosition|null);
    public currentStopSequence: number;
    public stopId: string;
    public currentStatus: transit_realtime.VehiclePosition.VehicleStopStatus;
    public timestamp: (number|Long);
    public congestionLevel: transit_realtime.VehiclePosition.CongestionLevel;
    public occupancyStatus: transit_realtime.VehiclePosition.OccupancyStatus;
    public occupancyPercentage: number;
    public multiCarriageDetails: transit_realtime.VehiclePosition.ICarriageDetails[];
    // ...
    public static toObject(message: transit_realtime.VehiclePosition, options?: $protobuf.IConversionOptions): { [k: string]: any };
}

The workaround suggested (using toObject) does work, as does toJSON, so clearly the data is being decoded properly. This suggests whatever tool was used to auto-generate these Node/TypeScript bindings simply had deficiencies around optional fields. Why would it it stuff 0 values into a class object in the first place instead of allowing them to be null as the interface suggests?
Related, the use of null for optional fields is completely atypical for Node/JavaScript/TypeScript ecosystem, and in fact is in conflict with the ? optional syntax, which implies undefined as the value for "missing".
So here we are 5 years later... I don't know what tool was used or how these bindings were generated, but I would imagine the tooling has matured over this time and can better and more natively handle optional fields. It would be a great update to this library to properly support optional fields!
This update should ideally come as an intentional breaking change and major version update (or fork), as undefined is the proper way to represent missing data in the JavaScript ecosystem, and null does not even exist in Protocol Buffers, so its inclusion is redundant and unnecessarily complicating.
I'm happy to look into some of this myself, but I have no experience with generating PB bindings, so there are likely others more knowledgable and well suited for this task. (Although feel free to drop some suggestions here in comments)

Following up after some initial research including this project's NodeJS README...
It appears this project uses a slightly older version of ProtoBuf.js  (7.1.2 vs 7.4.0 latest). ProtoBuf is a very popular package (9.8k GH stars).
An alternative ts-proto (2.1k GH stars) includes these notes:

ts-proto transforms your .proto files into strongly-typed, idiomatic TypeScript files!
The 2.x release of ts-proto migrated the low-level Protobuf serializing that its encode and decode method use from the venerable, but aging & stagnant, protobufjs package
A poor man's attempt at "please give us back optional types"
The canonical protobuf wrapper types, i.e. google.protobuf.StringValue, are mapped as optional values, i.e. string | undefined, which means for primitives we can kind of pretend the protobuf type system has optional types.
(Update: ts-proto now also supports the proto3 optional keyword.)

Another alternative protobuf-ts (1k GH stars) was written to address deficiencies of ts-proto, but those have since been fixed in ts-proto itself.
This PR in this project here has been open for over a year, and there are even several new versions of ProtoBuf.js since, so even if ProtoBuf.js fixed how it handles optional fields (unlikely given same 7.* major version number), it seems there are no resources or will in this project to migrate to something newer on that line anyway, which is fine, but worth noting:

https://github.com/MobilityData/gtfs-realtime-bindings/pull/126

I expect the best path forward for developers who care about more natural TypeScript bindings (especially re default values) is to wrap the GTFS gtfs-realtime.proto file up in one of these other more modern TypeScript / Protocol Buffer bridges.

Well I finished a deep dive, and... it ain't pretty. The entire concept of "optional" primitive fields in Protocol Buffers is riddled with complexity and problems, though it works reasonably well for optional messages/objects as well as optional wrapped types (eg google.protobuf.Int32Value). But GTFS-RT is using PB2 with optional primitives. PB3 actually removed the optional/required distinction entirely! (Although apparently they are planning to add it back in again). Also the inclusion of 0 by GTFS-RT (sometimes explicit, and sometimes forced by ancient decisions from GTFS-Static) as valid values in some of these enums only exacerbates everything.
I banged on protobuf-ts as well as ts-proto quite a bit. It's universally problematic, with assumptions of 0 and mixing up of 0, null, and undefined in generated code everywhere. And the workaround above, while functional, loses typing and incurs unnecessary overhead in extra object creation. So I'm sticking with this library, and I wrote a helpful utility class, which hopefully will be useful for any other TypeScript / PB devs stumbling on this page:
// ===========================================================================
// `PBUtil` Static Utility Class
// ===========================================================================

/**
 * Utility class for working with `protobuf.js` decoded messages.
 *
 * This class primarily provides methods to handle issues related to
 * optional fields, particularly in Protocol Buffers version 2 syntax,
 * addressing the following issues:
 *
 * - Distinguishing between primitive fields (`int32`, `string`, etc) that
 *   were not included in encoded message vs fields that were included
 *   but set to their default values (`0`, `""`, etc).
 *
 * - Normalizing `null` to `undefined` for consistency and adherence to
 *   standards and expectations within the JavaScript ecosystem.
 *
 * - Maintaining full TypeScript type safety on field names as well as
 *   value types.
 *
 * @example
 * ```ts
 * const decodedMessage = protobufBinding.decode(wireMsg); // (eg decode)
 * for (const item of decodedMessage.some.things ?? []) {
 *     console.log(`Offer: ${PBUtil.get(item, 'offer') ?? "(N/A)"}`);
 *     if (PBUtil.has(item, 'rewardPoints')) {
 *         balance += PBUtil.has(item, 'rewardPoints'); // (type preserved)
 *     }
 * }
 * ```
 */
export abstract class PBUtil
{
    /**
     * Did the encoded message that was decoded by `protobufjs` into `message`
     * actually have the field specified by `field` (and not just use the
     * field's default value)?
     *
     * @param message - A decoded `protobufjs` message.
     * @param field - Name of the field on `message` to check.
     * @returns `true` if field was included in encoded message,
     *          `false` if not included.
     *
     * @see get - Get the value of the field (or `undefined` if not included).
     */
    public static has<M extends object, F extends keyof M>(
        message: M,
        field:   F
    )
        : boolean
    {
        return message.hasOwnProperty(field);
    }

    /**
     * Retrieve the raw value of a field from a decoded `protobufjs` message,
     * returning `undefined` if the field was not actually included in the
     * encoded message.
     *
     * @param message - A decoded `protobufjs` message.
     * @param field - Name of the field on `message` to retrieve.
     * @returns The raw value of the field if it was included in the encoded
     *          message, or `undefined` if not included.
     *
     * @see get - Like this, but with coercion of `null` to `undefined`.
     * @see has - Boolean test of whether the field was included.
     */
    public static getRaw<M extends object, F extends keyof M>(
        message: M,
        field:   F
    )
        : M[F] | undefined
    {
        return PBUtil.has(message, field) ? message[field] : undefined;
    }

    /**
     * Retrieve the value of a field from a decoded `protobufjs` message,
     * returning `undefined` if the field was not included in the encoded
     * message (or if its value was `null`).
     *
     * @param message - A decoded `protobufjs` message.
     * @param field - Name of the field on `message` to retrieve.
     * @returns The value of the field if it was included in the encoded
     *          message (and not `null`), or `undefined` otherwise.
     *
     * @see getRaw - Like this, but without coercion of `null` to `undefined`.
     * @see has - Boolean test of whether the field was included.
     */
    public static get<M extends object, F extends keyof M>(
        message: M,
        field:   F
    )
        : Exclude<M[F], null> | undefined
    {
        const value = PBUtil.getRaw(message, field);
        return (value === null ? undefined : value) as Exclude<M[F], null> | undefined;
    }
}

For the original code at the top of this page, you would use it like this (in TS). You can see the value type (number) is preserved, we get rid of that pesky null, and your IDE will offer autocomplete and flag any typos on the field name ('speed'):
const feed = realtime.transit_realtime.FeedMessage.decode(protobuf);
feed.entity.forEach((entity) => {
  if (entity.vehicle) {
    // The speed will be either a number or `undefined` if not provided:
    const speed: number|undefined = PBUtil.get(entity.vehicle.position, 'speed');
  }
});


mobilitydcatap:mobilityDataStandard and mobilitydcatap:MobilityDataStandard

In the specification, in some cases, the wrong URI is used for the class mobilitydcatap:MobilityDataStandard, e.g., in https://mobilitydcat-ap.github.io/mobilityDCAT-AP/releases/index.html#properties-for-mobility-data-standard. The URI with the uppercase "M" should be used for the class and the one with the lowercase "m" for the property.

Moved to #20


Program States If/Else Statements are Still Present When They Are Not

Challenge Replacing If Else Chains with Switch has an issue.
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:

function chainToSwitch(val) {
  var answer = "";
  // Only change code below this line

  case: "bob"
    answer = "Marley";
    break;
   case: (42)
    answer = "The Answer";
    break;
   case: (1)
    answer = "There is no #1";
    break;
   case: (99)
    answer = "Missed me by this much!";
    break;
   case(7);
    answer = "Ate Nine";

}
  // Only change code above this line
  return answer;
}

// Change this value to test
chainToSwitch(7);

switch(val){
case "bob":
answer = "Marley";
break;
case 42:
answer = "The Answer";
break;
case 1:
answer = "There is no #1";
break;
case 99:
answer = "Missed me by this much!";
break;
case 7:
answer = "Ate Nine";
break;
}
you are missing the start of the switch statement

@siseer11 Yes, but it wasn't the switch statement that solved it. I had to add a curly brace outside of the editable text zone to prevent chaintoswitch(7); from being deeemed unreachable due to the command "return". This was still a glitch, and while the challenge was overall functional, I had to ignore a parameter to accomplish the task.

@ellsee thanks for the report.
While your code is NOT correct, and your report that the test cases are reporting use of else statements even when they are not their is buggy, is an right argument.
but, from the screenshot that you posted:

There is a clear notification that the syntax is not valid.
The test cases fail, because they fail to run the code in editor which is NOT right in the first place. Hence you should fix the code (check for errors in the console) and then consider the results that the tests say.
Closing, as at the moment this is the best way that we have to point errors.


[Bug Report] loading frame is not adaptive container

Element UI version
1.4.8
OS/Browsers version
win10/Chrome 60.0.3112.101
Vue version
2.5.2
Reproduction Link
https://jsfiddle.net/Lma32ca9/
Steps to reproduce
等待loading层出现，拖拽使窗口放大
What is Expected?
loading框遮罩层自适应容器尺寸变化
What is actually happening?
loading框遮罩层未自适应容器尺寸变化

Avoid using the body modifier when you're expecting viewport resize: https://jsfiddle.net/Lma32ca9/1/


Nested timeout on Linux

I use nested timeout, outer function has use_signal=false and inner functions have use_signal=false too. It works on Ubuntu 20, but that will produce many processes, their parent process is 1.  But these processes are not zombie, and process 1 will not recycle them. So i think maybe the outer function has timeout and inner function hasn't finished causes the result.

Dear Jsoo,
If the parent is about to die, it is the parents job to clean up (send SIGTERM) all his childs.
The child needs to properly terminate on SIGTERM, or You need to send SIGKILL to the child.
this all can be done in the python code.
You might also read : propagate Sigterm
yours sincerely
bitranox

Thanks for your link, and i will send SIGTERM to pgid rather than pid.


[SPARK-9238][SQL]two extra useless entries for bytesOfCodePointInUTF8

Only a trial thing, not sure if I understand correctly or not but I guess only 2 entries in bytesOfCodePointInUTF8 for the case of 6 bytes codepoint(1111110x) is enough.
Details can be found from https://en.wikipedia.org/wiki/UTF-8 in "Description" section.

cc @chenghao-intel  @rxin

Merged build triggered.

Merged build started.

Test build #38026 has started for   PR 7582 at commit 8bddd01.

LGTM

cc @davies

Test build #38026 has finished for   PR 7582 at commit 8bddd01.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

@zhichao-li Two entries are enough for correctness. 254 and 255 are invalid, using 6 for them are even confusing. Right now, we didn't handle invalid UTF8 well (right now, it may raise exception), we could improve that, should pay attention to reduce the overhead for correct one.

@davies, currently if the first byte is 254 or 255,  numBytesForFirstByte would return 6 which somehow hide the invalid case not raising exception.  What's your opinion? 1)Just stay the same 2)Explicitly raise exception here?  or 3)Delete these two entries which would raise outOfRange exception when facing invalid char?

I think it's better to raise an exception than parse it in wrong way silently. If we want to have better behavior, then it should be done case by case for every function, it's not trivial to me. So I'd like to peek 3), not to have this two additional entries.

yeah, that's what this pr target to, I guess it's ready to be merged?

LGTM, merging this into master and 1.4!


repeat with overlap

Hello I try to repeat assemblies with a overlaping space, using the repeat function
in this example.
But the ovelapping parts of space is not rendered. Any idea to solve this problem ?
Maybe using another function?
Thanks

Hi!
You’re correct for noticing the cells when using repeat can’t overlap. What I recommend is doubling the spacing between the repeated assemblies, and then rendering multiple repeated instances offset to fill the space. For things which are repeated on all three axes would require quite a few extra draws though. That’s the best solution i think of at this moment!


Updating blazor.webassembly.js Opt-in fix for last version of Blazor for iOS 13

Updating blazor.webassembly.js Opt-in fix for last version of Blazor for iOS 13
As the current failure is not yet resolved by Apple or Microsoft, and as an update of Blazor has been shipped, updating the current blazor.webassembly.js file, we must include our opt-in fix for iOS for the current release.

Done


[Question] How to install a new translation from Crowdin ?

Hi,
I just opened my instance of Blessing Skin for my server but a great majority of our players are French.
Can you tell me how to use the French translation from the Crowdin ?

Solved !

I already started to translate French on Crowdin (#195) and as soin I've the time i'll translate somme others strings ;)

Thanks! And you can ask your friends to translate it as well.


Adding solution for 14.java

Fixes #14

My code sample is in :

[ ] CPP
[x] Java

Screenshot of working code sample  :

Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My code sample is formatted and works correctly

LGTM , star the repo , if it helped you.

Can you please add "hackoberfest-accepted" label as well, since that would confirm the pull request for the event

If your pr is merged in a participating repository, it is automatically considered for the event.


Adding CraftCMS Chart

What this PR does / why we need it:
CraftCMS Helm Chart added to Incubator
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x ] DCO signed
[x ] Variables are documented in the README.md

/assign @foxish

Hi everyone. Do you have any updates? May be something can be changed / improved in order to bring closer this PR review?

Would be lovely to see this advanced. Even better if the chart added an istio config option.

Hi @XedMada ,
Thanks for the interest in this chart! I'll work on adding Istio there. Not sure if I can do it fast, but it will definitely be added


[MJAR-296] Allow including files excluded by default.

Following this checklist to help us incorporate your
contribution quickly and easily:

[x] Make sure there is a JIRA issue filed
for the change (usually before you start working on it).  Trivial changes like typos do not
require a JIRA issue.  Your pull request should address just this issue, without
pulling in other changes.
[x] Each commit in the pull request should have a meaningful subject line and body.
[x] Format the pull request title like [MJAR-XXX] - Fixes bug in ApproximateQuantiles,
where you replace MJAR-XXX with the appropriate JIRA issue. Best practice
is to use the JIRA issue title in the pull request title and in the first line of the
commit message.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Run mvn clean verify to make sure basic checks pass. A more thorough check will
be performed on your pull request automatically.
[x] You have run the integration tests successfully (mvn -Prun-its clean verify).

To make clear that you license your contribution under
the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

[x] I hereby declare this contribution to be licenced under the Apache License Version 2.0, January 2004

[x] In any other case, please file an Apache Individual Contributor License Agreement.

Underlining issue: MJAR-296.
Goal:

allow to include in the resulting archive files that are excluded by default - e.g. .gitignore, etc.

@redzi , @michael-o - fixed  and tested - should be ok


Source Terminal

The script doesn't seem to be playing well with the souce terminal:
> freecandy 1

currentMood => apathetic
Preference currentMood changed from default to apathetic
Preference customCombatScript changed from default to grimoire_macro
CCS set to grimoire_macro

Executing hacking your system/Autumn-Aton
CCS set to grimoire_macro
Autoattack is disabled.
Submitting option 2 for choice 1483
Send your autumn-aton to Shadow Rift
Preference _autumnatonQuests changed from 3 to 4
Preference autumnatonQuestLocation changed from to Shadow Rift
Preference autumnatonQuestTurn changed from 1210060 to 1210136

Executing hacking your system/Terminal Skills
Autoattack is disabled.
Source Terminal: educate extract.edu
Source Terminal used.
Source Terminal: educate duplicate.edu
Preference sourceTerminalEducate1 changed from extract.edu to duplicate.edu
Source Terminal used.

Executing hacking your system/Terminal Skills
Autoattack is disabled.
Source Terminal: educate extract.edu
Preference sourceTerminalEducate1 changed from duplicate.edu to extract.edu
Source Terminal used.
Source Terminal: educate duplicate.edu
Preference sourceTerminalEducate1 changed from extract.edu to duplicate.edu
Source Terminal used.

Executing hacking your system/Terminal Skills
Autoattack is disabled.
Source Terminal: educate extract.edu
KoLmafia declares world peace.
Preference sourceTerminalEducate1 changed from duplicate.edu to extract.edu
Autoattack is disabled.
freecandy has run 0 blocks, and produced the following items:
autumn-aton: -1
JavaScript exception: KoLmafia error: KoLmafia declares world peace. (file:/D:/KoLMafia/scripts/freecandydotexe/freecandy.js#4376)
at file:/D:/KoLMafia/scripts/freecandydotexe/freecandy.js:4376
at file:/D:/KoLMafia/scripts/freecandydotexe/freecandy.js:4457 (educate)
at file:/D:/KoLMafia/scripts/freecandydotexe/freecandy.js:9766
at file:/D:/KoLMafia/scripts/freecandydotexe/freecandy.js:7217
at file:/D:/KoLMafia/scripts/freecandydotexe/freecandy.js:7069
at file:/D:/KoLMafia/scripts/freecandydotexe/freecandy.js:7006
at file:/D:/KoLMafia/scripts/freecandydotexe/freecandy.js:10152 (main)

It will continue like this indefinitely.

Freecandy expects you to have a fully upgraded source terminal. I'll consider making it more resilient to unupgraded terminals, but the answer here will probably be "I add something to the readme telling you to upgrade your source terminal"

My terminal was upgraded fully when this was run. In particular, I had duplicate.edu already installed, and extract.edu is installed by default..

Based on what happened here, mafia doesn't believe you have a DRAM chip installed because it thinks you can only know one skill at a time. You should either let mafia know that this is the case (by visiting the terminal in the relay browser and running the status command) or you should make that be the case (by installing a DRAM chip)


Week 25 Review Ticket

Yuri - Week 25 Hacks
Collegeboard MCQ review
2.2 Image Compression Hacks
2.3 Extracting Information from data Hacks

Self Grade: I think that I deserve to get an 2.7+
I completed the MC#3 with above a 50%, with test corrections and explanations on why I got them wrong.
My hacks are throughly completed, but I've not done any of the extra parts of the hacks for extra points. (I did not do the CPT integration).
Questions and comments are done throughly and I think that it showed good learning on my end
For the 2.3 Hacks I definitely should have experimented more with the database extraction with .csv and .json files.
Overall, I think that I deserve an 2.7+ for the MC score + corrections, the hacks that i throughly completed and the blog being pretty detailed.


($$18++NEW@SEX))*Divya Prabha Viral Video Divya Prabha Leaks Original Video On Social Media X TikTok Trending #61

44 seconds ago
L𝚎aked Video Divya Prabha Original Video Viral Video L𝚎aked on X Twitter Telegram
..
[-𝐅𝐔𝐋𝐋-𝐕𝐈𝐑𝐀𝐋-]— Divya Prabha Video Original Video Link Divya Prabha Video Viral On Social Media X Now [1U2M3N]
[-wATCH-]— Divya Prabha Video Original Video Link Divya Prabha Video Viral On Social Media X Trending Now
[-wATCH-]— Divya Prabha Video Original Video Link Divya Prabha Video Viral On Social Media X Trending Now
[-wATCH-]— Divya Prabha ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Divya Prabha ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Divya Prabha Video Original Video Link Divya Prabha Video Viral On Social Media X Trending Now
Divya Prabha Original Video video took the internet by storm and amazed viewers on various social media platforms. Divya Prabha, a young and talented digital creator, recently became famous thanks to this interesting video.
L𝚎aked Video Divya Prabha Original Video Viral Video L𝚎aked on X Twitter
Divya Prabha Original Video video oficial twitter
L𝚎aked Video Divya Prabha Original Video Viral Video L𝚎aked on X Twitter...

1


package.json vars breaking change since npm 7.0.0 breaks kpt-fn-sdk docker build and push workflow

We read the value of npm_package_kpt_docker_repo_base in kpt-funtions-sdk when users run npm run kpt:docker-build -- --tag ${TAG} or npm run kpt:docker-push -- --tag ${TAG}.
With npm version <=6.*.*, npm_package_kpt_docker_repo_base is set by npm since it has prefix npm_package_.
However, with npm version >=7.0.0, npm no longer sets env vars npm_package_*. The reason behind it.
This is going to breaking users of kpt-functions-sdk, when they upgrade to npm 7.0.0+. We need to come up with a plan.

At the very minimum, what we can do is:
When users run into this issue, they google search it and find this GH issue or our updated document that instructs them to manually set env var npm_package_kpt_docker_repo_base.
cc: @Shell32-Natsu @frankfarzan

At the very minimum, what we can do is:
When users run into this issue, they google search it and find this GH issue or our updated document that instructs them to manually set env var npm_package_kpt_docker_repo_base.
cc: @Shell32-Natsu @frankfarzan

@mengqiy What's the alternative for passing package.json fields to script?

@mengqiy What's the alternative for passing package.json fields to script?

There are a few possible alternatives:

Move .kpt.docker_repo_base into the config object in packge.json.
Quote from the RFC:

npm_package_config_* Each key in the config object will be included, but npm will not override values with a <pkgname>:<keyname> config value if one exists.

kpt-functions-sdk expect env var npm_package_kpt_docker_repo_base to be set. We can try to do something like "kpt:docker-build": "npm_package_kpt_docker_repo_base=$(jq -r .kpt.docker_repo_base package.json) kpt docker-build",. This will require the user to have jq installed.

kpt-functions-sdk can process the package.json by itself and extract the container registry name.
Quote from the RFC:

Provide a new field, npm_package_json, with the path to the package.json file.

IMO we need to fix this issue, but it doesn't have to be right now. Because this issue only affect the function produce while our top priority is targeting the function consumers. We can get back to this after we build the kpt-fn-catalog.

This is pretty annoying. Please at least update the typescript guide.
https://kpt.dev/sdk/ts-guide


Amend pact to include "wip" pacts. Hoping that this will ensure that …

…when UI PR pact check fails, it will rerun when API is updated.

After discussing with @AndyNewton going to leave this for now


Fix: Auto-resizing input buffer

This has been issued in #278.
The auto-resizing functionality of DearImgui uses a callback, and the user is responsible for managing the underlying buffer (malloc, realloc, free). Since in pyimgui the string buffer is internally managed, it wasn't possible to implement the functionality via python.
Now the resizing of the buffer, if asked via the imgui.INPUT_TEXT_CALLBACK_RESIZE, is done internally and is fully transparent to python users. If the user provides a custom callback, it is still called properly after the internal buffer resizing.
Moreover, it is not very python friendly to ask for a buffer with a given size that is growable; one would have to create a variable buffer_size, globally access it in a provided callback function, and update it when the resize callback is called. This all comes from the c/c++ management of character strings and does not make a lot of sense for a python user. Thus I decided to simplify a bit the prototype of input_text, input_text_multiline, and input_text_with_hint. Now the argument buffer_length is optional and has a value of -1 by default. In this case, the buffer size sent to DearImgui is the length of the argument value and the flag imgui.INPUT_TEXT_CALLBACK_RESIZE is automatically set.
This allows writing input text field as
_, buf = imgui.input_text("Basic", buf)
_, buf = imgui.input_text_multiline("Multiline", buf)
_, buf = imgui.input_text_with_hint("With hint", "astuce", buf)

Of course, the old syntax with the buffer_length argument is still usable and would lead to a field with a maximum byte length
_, buf = imgui.input_text("With max", buf, 32)

I consider this PR a work in progress since working on this has highlighted some weird and suboptimal functioning of pyimgui that I wish to fix. DearImgui asks for a char* that we must create from the passed value argument. Currently for each call of input_text(), memory is dynamically allocated with malloc, the content is copied from value to the internal buffer, and this buffer is passed to DearImgui. The internal buffer is freed at the end of the function. This is problematic since all of this is done for each text field and for each frame (which is a lot). I am considering implementing a memory pool internally to pyimgui that would be allocated at the start and using it instead of dynamically allocating memory for each input_text() call.
Moreover, there is some cleaning to do in the methods of the class _ImGuiInputTextCallbackData.
Any feedback is welcome :)

I changed the allocation strategy to be more reasonable.
Before, it was calling malloc/free every call to input_text() (and thus every frame for every field) and strncpy inside it.
Now we have a shared memory buffer that is kept inside pyimgui. If capacity isn't enough, it is doubled and reallocated. Thus now, memory allocation is done only a couple of times during runtime, which sounds way more sain to me.
It also considerably simplified the implementation of the auto-resize functionality, which is good.


Set Pop up Settings Position

Be sure to search for your issue before opening a new one.
Current Behavior
When I click the other settings in the player the pop up appear in the middle of the video player
Expected Behavior
If I click the other settings the pop up must appear just above the other settings icon
Steps to Reproduce

Load the player
Click the other settings

Environment

URL attempting to play: https://d17ru6tkeiq9n1.cloudfront.net/videos/99fe0cfc-d139-4c69-92f6-efcd4b9525186052fae1ee4ae82cf0a440b1.webm
Browser: Google Chrome
Operating system: Windows 10

Other Information
Here's the screenshot

Any update on the issue? I might have to ditch the package otherwise in my project 😢
Let me know if there is a workaround


Cannot determine the database type of column created_at, as it does not exist

ThinkingSphinx::MissingColumnError: Cannot determine the database type of column created_at, as it does not exist

Hi Pat,
Is there a way we can get Sphinx to tell us which index this happens in?
Adam

I used an mysql query to search for tables without that value.


fixed export to torcheserve

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
torch2serve is not working from scratch. You have to add manually the parameter config_file. The model_file does exist but if I change it to config_file it breaks elsewhere.
Modification
I added a parameter config_file in order to be able to run the script

Hi @ODAncona,
We'd like to express our appreciation for your valuable contributions to the mmdetection. Your efforts have significantly aided in enhancing the project's quality.
It is our pleasure to invite you to join our community thorugh Discord_Special Interest Group (SIG) channel. This is a great place to share your experiences, discuss ideas, and connect with other like-minded people. To become a part of the SIG channel, send a message to the moderator, OpenMMLab, briefly introduce yourself and mention your open-source contributions in the #introductions channel. Our team will gladly facilitate your entry. We eagerly await your presence. Please follow this link to join us: https://discord.gg/UjgXkPWNqA.
If you're on WeChat, we'd also love for you to join our community there. Just add our assistant using the WeChat ID: openmmlabwx. When sending the friend request, remember to include the remark "mmsig + Github ID".
Thanks again for your awesome contribution, and we're excited to have you as part of our community!


Add JSDoc comments for media state management

Summary
Add JSDoc comments for media state management.

@cvolzke4 You might be interested in #2960 - trying to get to better JSDoc step by step

@cvolzke4 You might be interested in #2960 - trying to get to better JSDoc step by step

This is a great improvement, thanks for adding this!


Can't login with Auth::attempt($credentials) and retrieve the user from AD

Laravel Version: 5.6
Adldap2-Laravel Version: 4.0
PHP Version: 7.2
LDAP Type: ActiveDirectory

Description:
I'm trying to connect and login a user in ldap. In my case, I have users from AD and users added by website that will authenticate in the system, by my user table and model. I saw in the documentation that exists a way to sync my model user with the AD.
I followed the usage tutorial, but I can't connect and retrieve the user using Auth:attemp() and Auth::user(). The only way was using Adlap::auth()->attemp(), but don't returns the user in Auth::user().
My adlap.php file
`<?php
return [
/*
|--------------------------------------------------------------------------
| Connections
|--------------------------------------------------------------------------
|
| This array stores the connections that are added to Adldap. You can add
| as many connections as you like.
|
| The key is the name of the connection you wish to use and the value is
| an array of configuration settings.
|
*/

'connections' => [

    'default' => [

        /*
        |--------------------------------------------------------------------------
        | Auto Connect
        |--------------------------------------------------------------------------
        |
        | If auto connect is true, Adldap will try to automatically connect to
        | your LDAP server in your configuration. This allows you to assume
        | connectivity rather than having to connect manually
        | in your application.
        |
        | If this is set to false, you **must** connect manually before running
        | LDAP operations.
        |
        */

        'auto_connect' => env('ADLDAP_AUTO_CONNECT', true),

        /*
        |--------------------------------------------------------------------------
        | Connection
        |--------------------------------------------------------------------------
        |
        | The connection class to use to run raw LDAP operations on.
        |
        | Custom connection classes must implement:
        |
        |  Adldap\Connections\ConnectionInterface
        |
        */

        'connection' => Adldap\Connections\Ldap::class,

        /*
        |--------------------------------------------------------------------------
        | Schema
        |--------------------------------------------------------------------------
        |
        | The schema class to use for retrieving attributes and generating models.
        |
        | You can also set this option to `null` to use the default schema class.
        |
        | For OpenLDAP, you must use the schema:
        |
        |   Adldap\Schemas\OpenLDAP::class
        |
        | For FreeIPA, you must use the schema:
        |
        |   Adldap\Schemas\FreeIPA::class
        |
        | Custom schema classes must implement Adldap\Schemas\SchemaInterface
        |
        */

        'schema' => Adldap\Schemas\ActiveDirectory::class,

        /*
        |--------------------------------------------------------------------------
        | Connection Settings
        |--------------------------------------------------------------------------
        |
        | This connection settings array is directly passed into the Adldap constructor.
        |
        | Feel free to add or remove settings you don't need.
        |
        */

        'connection_settings' => [

            /*
            |--------------------------------------------------------------------------
            | Account Prefix
            |--------------------------------------------------------------------------
            |
            | The account prefix option is the prefix of your user accounts in LDAP directory.
            |
            | This string is prepended to authenticating users usernames.
            |
            */

            'account_prefix' => env('ADLDAP_ACCOUNT_PREFIX', 'mltbr\\'),

            /*
            |--------------------------------------------------------------------------
            | Account Suffix
            |--------------------------------------------------------------------------
            |
            | The account suffix option is the suffix of your user accounts in your LDAP directory.
            |
            | This string is appended to authenticating users usernames.
            |
            */

            'account_suffix' => env('ADLDAP_ACCOUNT_SUFFIX', ''),

            /*
            |--------------------------------------------------------------------------
            | Domain Controllers
            |--------------------------------------------------------------------------
            |
            | The domain controllers option is an array of servers located on your
            | network that serve Active Directory. You can insert as many servers or
            | as little as you'd like depending on your forest (with the
            | minimum of one of course).
            |
            | These can be IP addresses of your server(s), or the host name.
            |
            */

            'domain_controllers' => explode(' ', env('ADLDAP_CONTROLLERS', 'ldap.foo.com.br')),

            /*
            |--------------------------------------------------------------------------
            | Port
            |--------------------------------------------------------------------------
            |
            | The port option is used for authenticating and binding to your LDAP server.
            |
            */

            'port' => env('ADLDAP_PORT', 389),

            /*
            |--------------------------------------------------------------------------
            | Timeout
            |--------------------------------------------------------------------------
            |
            | The timeout option allows you to configure the amount of time in
            | seconds that your application waits until a response
            | is received from your LDAP server.
            |
            */

            'timeout' => env('ADLDAP_TIMEOUT', 5),

            /*
            |--------------------------------------------------------------------------
            | Base Distinguished Name
            |--------------------------------------------------------------------------
            |
            | The base distinguished name is the base distinguished name you'd
            | like to perform query operations on. An example base DN would be:
            |
            |        dc=corp,dc=acme,dc=org
            |
            | A correct base DN is required for any query results to be returned.
            |
            */

            'base_dn' => env('ADLDAP_BASEDN', 'OU=foo,DC=MLTBR,DC=LOCAL'),

            /*
            |--------------------------------------------------------------------------
            | Administrator Account Suffix / Prefix
            |--------------------------------------------------------------------------
            |
            | This option allows you to set a different account prefix and suffix
            | for your configured administrator account upon binding.
            |
            | If left empty or set to `null`, your `account_prefix` and
            | `account_suffix` options above will be used.
            |
            */

            'admin_account_prefix' => env('ADLDAP_ADMIN_ACCOUNT_PREFIX', ''),
            'admin_account_suffix' => env('ADLDAP_ADMIN_ACCOUNT_SUFFIX', ''),

            /*
            |--------------------------------------------------------------------------
            | Administrator Username & Password
            |--------------------------------------------------------------------------
            |
            | When connecting to your LDAP server, a username and password is required
            | to be able to query and run operations on your server(s). You can
            | use any user account that has these permissions. This account
            | does not need to be a domain administrator unless you
            | require changing and resetting user passwords.
            |
            */

            'admin_username' => env('ADLDAP_ADMIN_USERNAME', 'mltbr\lista_ad'),
            'admin_password' => env('ADLDAP_ADMIN_PASSWORD', 'foo12345'),

            /*
            |--------------------------------------------------------------------------
            | Follow Referrals
            |--------------------------------------------------------------------------
            |
            | The follow referrals option is a boolean to tell active directory
            | to follow a referral to another server on your network if the
            | server queried knows the information your asking for exists,
            | but does not yet contain a copy of it locally.
            |
            | This option is defaulted to false.
            |
            */

            'follow_referrals' => false,

            /*
            |--------------------------------------------------------------------------
            | SSL & TLS
            |--------------------------------------------------------------------------
            |
            | If you need to be able to change user passwords on your server, then an
            | SSL or TLS connection is required. All other operations are allowed
            | on unsecured protocols.
            |
            | One of these options are definitely recommended if you
            | have the ability to connect to your server securely.
            |
            */

            'use_ssl' => env('ADLDAP_USE_SSL', false),
            'use_tls' => env('ADLDAP_USE_TLS', false),

        ],

    ],

],

];
`
My Model User file,
`<?php
namespace App;

use Adldap\Laravel\Traits\HasLdapUser;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable, HasLdapUser;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

`

Steps To Reproduce:
When I run this simplest test code, the script stop's in this second if,but don't returns the user.
if (Adldap::auth()->attempt($credentialsx['username'], $credentials['password'])) {             var_dump('Hey, this is the user:', Auth::user(), __LINE__);         }
`
Route::get('test', function () {
$credentials = ['email' =><EMAIL_ADDRESS>'password' => 'foo123456'];
$credentialsx = ['username' => 'andre.figueredo', 'password' => 'foo123456'];
$credentialsy = ['email' =><EMAIL_ADDRESS>'password' => 'foo123456'];
    if (Auth::attempt($credentials)) {
        var_dump('Hey, this is the user:', Auth::user(), __LINE__);
    }

    if (Adldap::auth()->attempt($credentialsx['username'], $credentials['password'])) {
        var_dump('Hey, this is the user:', Auth::user(), __LINE__); //line 40
    }

    if (Adldap::auth()->attempt($credentialsy['email'], $credentialsy['password'])) {
        var_dump('Hey, this is the user:', Auth::user(), __LINE__);
    }

    dd("Can't login");
});

`
Return,

Hi @AndreFigueredo-Multilaser,
First thing, remove the account_prefix you have set in your configuration, as this may be causing your issue. Simply set it to an empty string, or null.
I would set your account_prefix to your user principal name suffix. In you given configuration this is likely @mltbr.local.
Also, your base DN is likely incorrect: OU=foo,DC=MLTBR,DC=LOCAL, you need to set it to your actual base DN in your directory, otherwise Adldap2 won't be able to locate any users since it's searching from an incorrect base.
Once you've made these configuration changes, make sure you clear Laravel's configuration cache using php artisan config:clear.
Let me know if you're successful!

Hi @stevebauman, thank you for your support!
I did the changes, but didn't work yet.
'account_prefix' => env('ADLDAP_ACCOUNT_PREFIX', ''),
That's it?
'account_suffix' => env('ADLDAP_ACCOUNT_SUFFIX', '@mltbr.local'),
About DN, I'm tested search for my user and returns perfectly. There are difference between search and login? Does this influence authentication or are they different things?
$user = Adldap::search()->users()->find('andre victor oliveira de figueredo');         dd($user);

@AndreFigueredo-Multilaser
Has there been any evolution in this problem?
I'm facing exactly the same thing here.
For the time being, I implemented the login() method manually using Adldap::auth()->attemp().

I had the exact same problem. Did you set AUTH_DRIVER in your .env file? Laravel 5.6 introduced a new ENV variable IIRC.
'providers' => [
        'users' => [
            'driver' => env('AUTH_DRIVER', 'eloquent'),
            'model' => App\User::class,
        ],
    ],


[Unity] [Hexagon] Fix deprecated call for data layout size in bits

The unity branch has errors for deprecated APIs.  Updating the codegen for Hexagon call from llvm::DataLayout::getTypeSizeInBits.getFixedSize() to llvm::DataLayout::getTypeSizeInBits.getFixedValue()
Verified this works on main as well.
cc: @farshidsp

@janetsc Can you send this to main? The change to unity should be specific to relax. We get the same change in unity after weekly rebase.

Done, created a PR for main, closing this one.


Update faq-energy-data-services.yml

Removing GATING

@bharathim
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#assign: tiannaward

#sign-off

#sign-off
#assign:tiannaward
#assign-reviewer: bharathim

#sign-off

#sign-off

#sign-off

@Court72 I have signed off. Could you help with the merge? cc: @tiannaward


Open Vault Metadata Decisions Spreadsheet

This spreadsheet lists the PBCore field, and if and how each should be displayed on Open Vault.
OpenVault_Metadata_Decisions_160105.xlsx

@mccalluc: Please disregard the column that says "Normalization Needed." This is outdated as all fields will be normalized by the time you receive the PBCore XML.

@caseyedavis12 : I'm not going to look closely at this until I see xml, but here are some points that might need clarification. If it's all under control, great.

In the spreadsheet, 8 fields are identified as "facets": The UI only accommodates 6 filters.
To confirm, we will not have publisher roles?
pbcoreAnnotation type="Thumbnail" and pbcoreAnnotation type="Transcript": These are booleans, right, and not URLs?
pbcoreAnnotation type="Outside URL": So to distinguish AAPB and News I'll look at the hostname? Any other value will be an error?
pbcoreAnnotation type="Geoblock" and pbcoreAnnotation type="Password Restriction": booleans?
genre and topic exist only at the series level
Playlist Group/Order: Not clear to me what's going in here. In particular, where will the total count be stored so that record 1 of 3 knows it is "of 3"?

@mccalluc Here is the updated version of the spreadsheet:
OpenVault_Metadata_Decisions_01152016.xlsx
We changed the two instantiation elements to annotations (Duration, Media Type).

I think all the fields are in place in the UI. Gaps should be their own bugs. Closing.


When updating using pip, the fixes due to represent >= 2.0 are not being picked up

The fixes due to represent >= 2.0 are not being included when using pip to update Orbitalpy.

This isn't actively maintained, I may make a release when I'm at a computer but there are other issues too. You can install from the master branch using
pip install 'OrbitalPy @ git+https://github.com/RazerM/orbital.git@master'

or more precisely by pointing to a certain commit hash:
pip install 'OrbitalPy @ git+https://github.com/RazerM/orbital.git@d7ba7491209caa104801eaee53e5aed485554e80'


wifi-subsys: add support for storing uin32 integers in the NVS

Contribution description
Add support for storing or reading uint32_t type in the Non-Volatile storage
Testing procedure
Run the related tests running the following in the test folder:
idf.py build -D "TEST_COMPONENTS=storage" flash monitor

Select option: Save a uint32_t in the NVS (for storing)
Select option: Get a previously saved uint32_t from the nvs_ (for reading)
Issues/PRs references
None

I saw all ok, for me go ahead.

I saw all ok, for me go ahead.

ok, so squash and merging :+1:


:100: Cleaned code, fixed loading settings, changed location of setti…

…ng entries

The location of the api permission is now defined under the namespace setting of a module IF the developer of the module has stated an array of permission requirements in the module's info.
Fixed loading settings.
The ApiKeyRepository setting entry remains defined under the CoreSettings.
The code is cleaned up some more.

Module dev important functions/fields:
/// Checks if a main client is active to create subtokens from.
public bool Connected

/// Returns the Guid of the specified Guild Wars 2 API key. Required permission: Account.
        public Guid GetGuid(string apiKey)

/// Returns an array containing the USER set permissions of the specified module.
        public static TokenPermission[] GetModulePermissions(Modules.IModule module)

/// Checks if the active API client still conforms a character name in the repository. If not, disposes the client.
        public bool Invalidate()

/// Checks if the provided string is a valid Guild Wars 2 API key.
        public static bool IsKeyValid(string apiKey)

/// Returns a fool safe dictionary containing name and the first halfs of the actual keys currently in the settings.
        public static Dictionary<string, string> GetKeyIdRepository()

/// Checks if the Api Client has the given permissions.
        public bool HasPermissions(TokenPermission[] permissions, string apiKey = null)

/// Finds a key where the first half matchs the given id and removes it from the settings.
        public void RemoveKey(string id)

/// Registers a new Guild Wars 2 API key, overwriting an existing key of the same account.
        public void RegisterKey(string apiKey)

/// Gets a subtoken for the specified module.
        public string GetModuleToken(Modules.IModule module, int days)


Remove CircleCI cache

(This is a port of a PR from client.)
The main problem was that
~/.gradle/caches/transforms-1/files-1.1/keybaselib.aar is a
cached directory that stores every new keybaselib.aar build.
But we don't really need to be caching anyway. It seems that CircleCI already
does some sort of download caching. So just nuke caching entirely.
Also fix build breakage when there is no cache -- we'd previously run into
it periodically.

Situation isn't as bad as client was, but still worth doing.


Add package.name and package.version implicitly to context

When name and version are not given in the context, I think it could be good to append them to the context from the package dictionary.
I often see code like:
context:
   name: "bla"
   version: "1.2.3"

package:
   name: ${{ bla }}
   version: ${{ version }}

which seems a bit double

Why would you need to use context cant you just use package.name? I mean can't we make it like that?

Related to this we might also be able to inject pkg.name and pkg.version.

Although perhaps package is still a better context name given that the key in the recipe is also package.


Update README -- we're using JSX now

Remove section that talks about the old dom.div ... syntax.

nice!


Update user-help-join-device-on-network.md

When an already configured Windows 10 device join to Azure AD, need to use account of the local administrators group.
Sorry, If my English mistaken, please correct.

@38cat : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@38cat  Thanks!!!!
#sign-off


Complete documenation

Please complete the documentation for this cmdlet

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

ID: b1f56a10-dabe-a37e-9ccf-24fe58077d6a
Version Independent ID: 86f1c91c-c475-fa6d-1708-b1093682caad
Content: Add-SPOGeoAdministrator (sharepoint-online)
Content Source: sharepoint/sharepoint-ps/sharepoint-online/Add-SPOGeoAdministrator.md
Service: sharepoint-powershell
GitHub Login: @techwriter40
Microsoft Alias: kirks

@DeanGross Thank you for your feedback.
I will make sure to get this to the PowerShell team for completion.
I was able to get this into the backlog for the PowerShell team. The team will get this prioritized into a sprint plan. Thank you for reporting and making the docs better. Much appreciated.
I made a note to request the team to update this when the work is complete.

Added new PR with number #2911

@j0rt3g4  Thank you very much for the contribution and updating the documentation with PR. @DeanGross Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


languageconfiguration: allow to modify autoClosing pairs dynamically

VSCode Version: Latest VSCode Insiders build as of 8/24/2017
OS Version: Windows 10 Build 16273

The most popular extension for LaTeX is unable to implement the recommended pairings for math and display modes in LaTeX ( \( ... \) and \[ ... \] respectively (according to the official documentation, direct invocation of math mode with $ ... $ and $$ ... $$ is deprecated and has been for years)) as auto-closing pairs due to a limitation directly in VSCode.
If this isn't possible, could something please be added to at least allow the masking out of some auto-closing pairs, because as they are right now, they get in the way for me, and I can't disable them without forking the extension due to another limitation in VSCode.  The extension maintainer is willing to add this as well, but he said that autoclosing pairs can't be disabled with an option.

You are correct, there's currently no API to change the LanguageConfiguration of a language.
That should go into the LanguageConfiguration API.

@aeschli How about the multi-character auto-closing pair options and the fact that
\( ... \) and \[ ... \]
can't be made to work?  Since you changed the title, should I recreate that issue as a separate one?

We have #583 for multi character autopairs.
Let me add that auto pairs can be implemented programmatically by listening to content changes. See https://github.com/formulahendry/vscode-auto-close-tag/blob/master/src/extension.ts as an example. So if you want a solution now you could go for that in the latex extension.

@aeschli It looks like someone was assigned to that issue then canceled the assignment, and it is over two years old.  Is there any realistic prospect of the vscode team implementing it any time soon, or is this something you're leaving to the community?

It's likely not getting implemented any time soon. What we tackle next depends on the number of requests for it. We count the 👍 on the description.

Is there anything happening on this? (I presume this feature is about being able to disable the super-annoying auto-closing of brackets without having to fork LaTeX Workshop.) Forcing auto-closing brackets down by throat is a total showstopper.

Let's track in #38352 which has more upvotes.

@vomout You can turn off auto closing brackets for LaTeX.  I have to find the setting
"editor.autoClosingBrackets": "never",


[Question] What calibration data should I use if my model is finetuned on downstream data

If I finetune a model on custom data from a downstream task, when it comes to oneshot using sparse modifier or GPTQ, what calibration data should I use?

General sft data, like ultrachat_200k. Is it going to hurt downstream performance?
Custom data. I find it difficult to calibrate, unstable during cholesky_inverse.
Mixed. Seems more reasonable, but how to define the proportion?

Seen in the https://github.com/vllm-project/llm-compressor/tree/main/examples/quantization_w8a8_int8, closing.


update ui_test

This leads to panics that I don't really understand and tons of raw JSON on the terminal:
     Running tests/ui.rs (tooling/target/debug/deps/ui-befc0d33fda8aebb)
Compiler: /home/r/src/rust/minirust/tooling/target/debug/minimize "--error-format=json" "--out-dir" OUT_DIR
thread '<unnamed>' panicked at /home/r/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ui_test-0.21.2/src/dependencies.rs:191:29:
no artifact found for `intrinsics`(`path+file:///home/r/src/rust/minirust/tooling/minimize/intrinsics#0.1.0`):`
{"reason":"compiler-artifact","package_id":"path+file:///home/r/src/rust/minirust/tooling/minimize/intrinsics#0.1.0","manifest_path":"/home/r/src/rust/minirust/tooling/minimize/intrinsics/Cargo.toml","target":{"kind":["staticlib","lib"],"crate_types":["staticlib","lib"],"name":"intrinsics","src_path":"/home/r/src/rust/minirust/tooling/minimize/intrinsics/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/r/src/rust/minirust/tooling/minimize/target/ui/x86_64-unknown-linux-gnu/debug/deps/libintrinsics-787635764c18b040.a","/home/r/src/rust/minirust/tooling/minimize/target/ui/x86_64-unknown-linux-gnu/debug/deps/libintrinsics-787635764c18b040.rlib"],"executable":null,"fresh":true}
{"reason":"compiler-artifact","package_id":"path+file:///home/r/src/rust/minirust/tooling/minimize/tests/deps#dependencies@0.1.0","manifest_path":"/home/r/src/rust/minirust/tooling/minimize/tests/deps/Cargo.toml","target":{"kind":["bin"],"crate_types":["bin"],"name":"dependencies","src_path":"/home/r/src/rust/minirust/tooling/minimize/tests/deps/src/main.rs","edition":"2015","doc":true,"doctest":false,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/r/src/rust/minirust/tooling/minimize/target/ui/x86_64-unknown-linux-gnu/debug/dependencies"],"executable":"/home/r/src/rust/minirust/tooling/minimize/target/ui/x86_64-unknown-linux-gnu/debug/dependencies","fresh":true}
{"reason":"build-finished","success":true}

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
./tests/pass/enum_direct_tag.rs ... FAILED
./tests/pass/enum_niche_tag.rs ⠁ waiting for dependencies to finish building
./tests/pass/enums.rs ⠁ waiting for dependencies to finish building
Building dependencies ⠁                                                                                thread '<unnamed>' panicked at /home/r/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ui_test-0.21.2/src/dependencies.rs:191:29:
no artifact found for `intrinsics`(`path+file:///home/r/src/rust/minirust/tooling/minimize/intrinsics#0.1.0`):`
{"reason":"compiler-artifact","package_id":"path+file:///home/r/src/rust/minirust/tooling/minimize/intrinsics#0.1.0","manifest_path":"/home/r/src/rust/minirust/tooling/minimize/intrinsics/Cargo.toml","target":{"kind":["staticlib","lib"],"crate_types":["staticlib","lib"],"name":"intrinsics","src_path":"/home/r/src/rust/minirust/tooling/minimize/intrinsics/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/r/src/rust/minirust/tooling/minimize/target/ui/x86_64-unknown-linux-gnu/debug/deps/libintrinsics-787635764c18b040.a","/home/r/src/rust/minirust/tooling/minimize/target/ui/x86_64-unknown-linux-gnu/debug/deps/libintrinsics-787635764c18b040.rlib"],"executable":null,"fresh":true}
{"reason":"compiler-artifact","package_id":"path+file:///home/r/src/rust/minirust/tooling/minimize/tests/deps#dependencies@0.1.0","manifest_path":"/home/r/src/rust/minirust/tooling/minimize/tests/deps/Cargo.toml","target":{"kind":["bin"],"crate_types":["bin"],"name":"dependencies","src_path":"/home/r/src/rust/minirust/tooling/minimize/tests/deps/src/main.rs","edition":"2015","doc":true,"doctest":false,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/r/src/rust/minirust/tooling/minimize/target/ui/x86_64-unknown-linux-gnu/debug/dependencies"],"executable":"/home/r/src/rust/minirust/tooling/minimize/target/ui/x86_64-unknown-linux-gnu/debug/dependencies","fresh":true}
{"reason":"build-finished","success":true}

...

@oli-obk any idea what is going on here?

Ah, the issue is with this filter
            if artifact
                .filenames
                .iter()
                .any(|f| !matches!(f.extension(), Some("rlib" | "rmeta")))
            {
                continue;
            }

The "intrinsics" crate has two files, a .a and a .rlib, and the presence of the .a makes ui_test ignore the rlib...

Filed upstream bug: https://github.com/oli-obk/ui_test/issues/225.
Also minimize had to change how it outputs things or else it was impossible to make ui_test accept the test.^^ But now it should all work.

No, something isn't right... ui_test always blesses now, and doesn't ever complain when the output is wrong.^^


dispatchWorkflow: An unexpected error has occurred: Unexpected inputs provided: ["distinct_id"]

i'm not passing "distinct_id"… seems like a bug in the action.

I use this action extensively, it definitely works :)
Can you please post your action usage / syntax?

sure thing….
`      - name: Dispatch lifter-ui-tests workflow and get the run ID
uses<EMAIL_ADDRESS>id: return_dispatch
with:
token: ${{ secrets.ALON_ASHKENAZI_GH_PT }}
repo: devops-tools
ref: main
owner: rightbound
workflow: lifter_ui_tests.yml
workflow_inputs: '{"repost_to_slack": "true", "env": "staging", "triggered_from": "mono-client"}'
  - name: Await lifter-ui-tests Run ID ${{ steps.return_dispatch.outputs.run_id }}
    uses<EMAIL_ADDRESS>    with:
      token: ${{ github.token }}
      repo: return-dispatch
      owner: codex-
      run_id: ${{ steps.return_dispatch.outputs.run_id }}
      run_timeout_seconds: 900 # Optional
      poll_interval_ms: 5000 # Optional`

above workflow configuration throws: dispatchWorkflow: An unexpected error has occurred: Unexpected inputs provided: ["distinct_id"]

This usually means the target workflow has not had the required input added:
on:
  workflow_dispatch:
    inputs:
      distinct_id:


Write shortest possible code: python how to read csv (python)

Please write shortest code example for this question:
python how to read csv in python
How to do it:

Go to python codes
Create new file (named in underscore case, should contain key words from title) with md extension (markdown file).
Propose new file with following content (please use all three blocks if possible - title, code itself and explanations list):

# python how to read csv

```python
code part1 part2 part3 ...
```

- part1 - explain code part 1
- part2 - explain code part 2
- ...

More advanced template for examples and linked solutions. More docs here.

How to parse CSV


falco-driver-loader rmmod check/loop inadvertently finds other modules

Describe the bug
The falco-driver-loader script just does a basic lsmod | grep -q "falco" so will partially match and can inadvertently think that the falco module is loaded when actually an unrelated "falcon_nf_netcontain" kernel module (e.g.,) happened to be loaded on the host
https://github.com/falcosecurity/falco/blob/294804daf436b4d146731322f46a99e2736feee0/scripts/falco-driver-loader#L223-L238
How to reproduce it
Attempt to start falco on a host that has a similarly named "falcon" module and notice that the falco-driver-loader will loop attempting to rmmod falco when falco is not loaded.
Expected behaviour
falco-driver-loader should inspect only the first column of /proc/modules and require the whole search string to match
i.e.,
while cut -d' ' -f1 </proc/modules | grep -qx "${KMOD_NAME}" && [ $WAIT_TIME -lt "${MAX_RMMOD_WAIT}" ]; do

Screenshots

Environment

Falco version:
System info: Falco version: 0.23.0
Driver version: 96bd9bc560f67742738eb7255aeb4d03046b8045
OS: Ubuntu bionic
Kernel: 4.15.0-122-generic
Installation method: deb

Good catch.
Would you like to submit a PR?
Btw, I'm not sure we can use /proc/modules since it can be not shared with the container in which falco-driver-loader is running.

@leogr yeah we can probably do the same thing, just parse lsmod output instead. I think /proc/modules should always be available, both kube (containerd) and docker will mount it by default without any user configuration. It's actually the fallback if lsmod is run as a non-root user.


POSTing file with filename as single part

Is there a way to encode a file into a single part so it can be sent via POST ?
Use case: User sends "file.pdf" to Vapor *** Vapor posts the file to a remote API
Code
public struct APIFile: Content, MultipartPartConvertible {
    public static let defaultMediaType: MediaType = .formData

    public let file: Core.File

    public func convertToMultipartPart() throws -> MultipartPart {
        print(#function + " \(file.contentType!)")
        var part = try file.convertToMultipartPart()
        part.contentType = file.contentType!
        return part
    }

    public static func convertFromMultipartPart(_ part: MultipartPart) throws -> APIFile {
        let file = try File.convertFromMultipartPart(part)
        return APIFile(file: file)
    }
}

// Called by a route
public func _uploadFile(on req: Request, userFile: APIFile) throws -> Future<Response> {
    return try userFile.encode(for: req)
//    let client = try req.make(Client.self)
//    return client.post(url, content: userFile)
}

Expected:
--BOUNDARY
Content-Disposition: form-data; name="data"; filename="file.pdf"
Content-Type: application/pdf

%PDF-1.3
...

Actual result:
--BOUNDARY
Content-Disposition: form-data; name=filename

file.pdf
--BOUNDARY
Content-Disposition: form-data; name=data

%PDF-1.3
...

A Core.File can be encoded using convertToMultipartPart() (MultipartPartConvertible) but the result doesn't conform to Content, hence it can't be post'ed

See #21


Occasionally, cf unbind-service seems to fail and not unbind, even though the service broker operation was successful

Issue
Occasionally, cf unbind-service seems to fail even if the service broker responds with a successful deletion, which leads to service instance not being unbound from the app.
Context
We have occasionally observed that users were not able to unbind service instances from an app.
When they issue a cf unbind-service the service broker gets called with a DELETE on the appropriate binding resource, the deletion is audit logged and then the end-user gets an error message and the binding is not removed from the app.
Steps to Reproduce

cf unbind-service

Expected result
Successful unbinding, service binding is removed in the broker
Current result
Unbinding is not successful, even though service binding was removed in the broker
Here are some the logs that show the problem:
The service broker received and processed the unbind at August 26th 2018, 08:00:21.486:
user 'cloudcontroller' at client 'xxx' sent request 'DELETE /v2/service_instances/3c9e55c5-5343-48a1-b527-54248a340cfa/service_bindings/a4da5beb-f23c-4448-b757-189a62c4dc71' with response code 'OK' and message 'Unbound service instance binding with id a4da5beb-f23c-4448-b757-189a62c4dc71 from service instance with id 3c9e55c5-5343-48a1-b527-54248a340cfa'

On August 26th 2018, 08:00:21.510 the unbind was audit logged by the CC:
{"timestamp":1535263221.5107431,"message":"(0.002702s) INSERT INTO \"events\" (\"type\", \"actor\", \"actor_type\", \"actor_name\", \"actor_username\", \"actee\", \"actee_type\", \"actee_name\", \"space_guid\", \"organization_guid\", \"timestamp\", \"metadata\", \"created_at\", \"updated_at\", \"guid\") VALUES ('audit.service_binding.delete', '719710de-a44c-4184-8427-3a846a7cf0e8', 'user', 'xxx', 'xxx', 'a4da5beb-f23c-4448-b757-189a62c4dc71', 'service_binding', '', 'da504186-e5a8-4085-919d-513923e1e9ba', '23ef5087-8f89-4390-bdc2-7195b36233b9', CURRENT_TIMESTAMP, '{\"request\":{\"app_guid\":\"add7989a-8e41-4b9e-a36f-7b0164b3e1f9\",\"service_instance_guid\":\"3c9e55c5-5343-48a1-b527-54248a340cfa\"}}', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '868029a6-c298-4501-99eb-a5cee9c557f1') RETURNING *","log_level":"info","source":"cc.db","data":{"request_guid":"5090c0ce-2477-4c8d-70c7-f88aed24e1ef::5bb9f46a-d58f-45c9-b507-60d15d8f0572"},"thread_id":47261997817580,"fiber_id":70049708818820,"process_id":7005,"file":"/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/2.4.0/gems/sequel-4.49.0/lib/sequel/database/logging.rb","lineno":88,"method":"block in log_each"}

However, the unbind did not actually succeed and different end-users retry it, and the service broker responds with 410 Gone as it should according to OSB API, and the Cloud Controller logs it, too:
service broker August 26th 2018, 08:02:15.661:
 user 'cloudcontroller' at client 'xxx' sent request 'DELETE /v2/service_instances/3c9e55c5-5343-48a1-b527-54248a340cfa/service_bindings/a4da5beb-f23c-4448-b757-189a62c4dc71' with response code 'Gone' and message 'Service instance binding with id a4da5beb-f23c-4448-b757-189a62c4dc71 was already unbound from service instance with id 3c9e55c5-5343-48a1-b527-54248a340cfa'

CC August 26th 2018, 08:02:15.663:
{"timestamp":1535263335.6639955,"message":"Already deleted: https://service-broker/v2/service_instances/3c9e55c5-5343-48a1-b527-54248a340cfa/service_bindings/a4da5beb-f23c-4448-b757-189a62c4dc71","log_level":"warn","source":"cc.service_broker.v2.client","data":{"request_guid":"0d064ec4-5209-487b-7b73-baa67218328e::7aa73de0-9d9a-4209-b005-2f33466b127f"},"thread_id":47377758954620,"fiber_id":47377756389960,"process_id":7092,"file":"/var/vcap/data/packages/cloud_controller_ng/772c1711e503d7335ace40a27607d9959bcf3a59/cloud_controller_ng/lib/services/service_brokers/v2/response_parser.rb","lineno":82,"method":"parse_unbind"}

{"timestamp":1535263335.6701798,"message":"(0.001350s) INSERT INTO \"events\" (\"type\", \"actor\", \"actor_type\", \"actor_name\", \"actor_username\", \"actee\", \"actee_type\", \"actee_name\", \"space_guid\", \"organization_guid\", \"timestamp\", \"metadata\", \"created_at\", \"updated_at\", \"guid\") VALUES ('audit.service_binding.delete', '719710de-a44c-4184-8427-3a846a7cf0e8', 'user', 'yyy', 'yyy', 'a4da5beb-f23c-4448-b757-189a62c4dc71', 'service_binding', '', 'da504186-e5a8-4085-919d-513923e1e9ba', '23ef5087-8f89-4390-bdc2-7195b36233b9', CURRENT_TIMESTAMP, '{\"request\":{\"app_guid\":\"add7989a-8e41-4b9e-a36f-7b0164b3e1f9\",\"service_instance_guid\":\"3c9e55c5-5343-48a1-b527-54248a340cfa\"}}', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '2b8db03e-87a1-449a-905f-19ed2728ff0b') RETURNING *","log_level":"info","source":"cc.db","data":{"request_guid":"0d064ec4-5209-487b-7b73-baa67218328e::7aa73de0-9d9a-4209-b005-2f33466b127f"},"thread_id":47377758954620,"fiber_id":47377756389960,"process_id":7092,"file":"/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/2.4.0/gems/sequel-4.49.0/lib/sequel/database/logging.rb","lineno":88,"method":"block in log_each"}

This repeats two times.
To me it looks like cloud controller bug as it receives the correct service brokers responses, audit logs the success, and still does not remove the binding.
Is there anything that would help debug this? We don't keep logs for a long time, and the error occurred only two times (that we know of) in the last month, so it might take a while to gather more logs if you need them.

Thanks for raising this @silvestre
We've pulled this into our backlog to investigate and will let you know if we have any further questions.

Hi @silvestre, when you say "However, the unbind did not actually succeed", does the CLI (or curl request) succeed but not actually remove the binding, or does it fail with some error message?

Friendly reminder for @silvestre to take a look at this if you can! We will leave this another week before closing.

Closing this as we haven't had further feedback and can't reproduce this.


Call for maintainers

I no longer have time to maintain BlocksKit at the level it deserves. However, I would rather not see it slip further into bitrot given its popularity.

In the coming weeks, BlocksKit will be transferred to a GitHub organization.
I'll adopt a simple CoC like that of the Swift project.
Future pull requests should add changes to the CHANGELOG.md at the root of the project to ease the process of tagging a release.
I'll add recent top contributors of PRs to the organization automatically.
Owners can be added to CocoaPods at request, although I only intend to hand this to people who want to be in charge of releases.

Please respond if you'd like to be added as a contributor. This is non-binding and no-pressure in basically every way, and nobody has any obligation to participate.

Thank you for your great work. Who will be responsible to review the future pull requests? I had a pull request #334 .   Thank you again for your work. Hope I can make a little contribution to this project.

I love this guy~

Hello, can anyone shows here a living fork of this project?


Voting parameter for Decision Forest has been added

Description
New interface for Decision Forest algorithm has been implemented. It includes new Parameter "VotingMethod" for choosing voting method across all trees.
Changes proposed in this pull request:

New interface for Decision Forest
New parameter for Decision Forest
Fix performance degradation on prediction stage

Merge in master will be deferred


fix broken links

this ci report points out a few broken links on the website.   If these can be identified and corrected, great.
https://github.com/bids-standard/bids-website/actions/runs/8700915053/job/23861938919#step:4:517

Looks like a rename without a redirect: https://www.internationalbraininitiative.org/data-standards-and-sharing-working-group -> https://www.internationalbraininitiative.org/data-standards-and-sharing


How to print shapes from each layer of the network

I want to use torchsummary to print the shape of the network.
But because the network is two inputs, it keeps failing.
How to set shape in the demo you provided
def main():
# load config
cfg.merge_from_file(args.config)
cfg.CUDA = torch.cuda.is_available()
device = torch.device('cuda' if cfg.CUDA else 'cpu')
# create model
model = ModelBuilder()

# load model
model.load_state_dict(torch.load(args.snapshot,
    map_location=lambda storage, loc: storage.cpu()))
model.eval().to(device)

**summary(model,(shape))**

# build tracker
tracker = build_tracker(model)

print('model',model)
first_frame = True
if args.video_name:
    video_name = args.video_name.split('/')[-1].split('.')[0]
else:
    video_name = 'webcam'
cv2.namedWindow(video_name, cv2.WND_PROP_FULLSCREEN)

Thanks a lot

I think what you wanted to do is to open up this issue at the repo of torchsummary.
Since this issue is not relevant, I'm closing it for now.


Add ceylon.random module

This is for https://github.com/ceylon/ceylon/issues/5467.
Todos:

Add module docs, possibly improve other docs
Investigate that tests seem to fail more frequently than they should (problem with the test code?)
Incorporate any feedback

Can one of the admins verify this patch?

ok to test, please test this

The only thing I can see is that the module.ceylon is missing documentation. It needs a general explanation of what the module is for and especially some very simple usage example ("How do I get a random number between 1-10?").

I added module docs. Absent additional feedback, this should be ready.

Looks completely fine by me. The API seems very useful.

@jvasileff is this for 1.2.1? I can merge it if yes.

Merged.


fix(protocol-designer): add white space below deck and remove module tag

closes RQA-3604 RQA-3603
Overview
Remove the module tags in protocol steps because they're too small and can't be read
Add white space below protocol overview's deck map when viewport shows 1 column
Test Plan and Hands on Testing
Test slot details in protocol overview when screensize is small enough for 1 column. make sure there is no flickering
Then go to protocol steps and make some steps and see that the module tag is removed from the labware
Changelog

remove deck labels
add hardcoded white space
remove unnecessary debounce due to the white space

Risk assessment
low

I think flickering often occurs when hovering over an adjacent slot that has nothing. However, it also happens with none -> none, so I’m not sure about the exact cause. I thought the issue cause from the size change but none -> none case has the same flickering issue.

Uploading Screen Recording 2024-11-18 at 12.10.44 PM.mov…

@ncdiehl11 @koji, i think the flickering issue is not really a bug since there is white space between the hover containers on the deck map. Will ask in the PD weekly tomorrow though what people think.


Added ./VAADIN/** to the matchers to allow loading of widgetsets.

I had to add this to my SecurityConfiguration in order to be able to see the login screen. Before, the widgetset was not loading due to a 404 message on the client end.

Had not seen the WebSecurity overload of the configure parameter.


feat(x/foundation): remove unnecessary gov-mint feature

Description

closes: #843
Checklist:

[x] I followed the contributing guidelines and code of conduct.
[ ] I have added a relevant changelog to CHANGELOG.md
[ ] I have added tests to cover my changes.
[x] I have updated the documentation accordingly.
[x] I have updated API documentation client/docs/swagger-ui/swagger.yaml

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


Version 0.9.23

Includes:

select_one_external support
configurable namespaces (in settings sheet- namespaces column)

:+1:


chore(space-wizard) : improved formatting and linting

The focus of this pull request is readability, ts linting and formatting for easier merging of the space wizard fixes and iterations. It  fixes a host of formatting and ts linting issues ( not all but many).

There were the following issues with your Pull Request

Commit: c9950f3ed0f900d183a5444565753dfefff7828f
Commits must be in the following format: %{type}(%{scope}): %{description}
Your subject line is longer than 50 characters

Guidelines are available at https://github.com/fabric8io/fabric8-ui

This message was auto-generated by https://gitcop.com

Can one of the admins verify this patch?

[test]