Add matching history

Pull Request Title:
Add match-history Collection for Storing User Preferences and Match States
Summary:
This PR introduces a new match-history collection to the database and modifies the matching logic to store user preferences (topic and difficulty) alongside the match state (pending, accepted, or declined). The goal is to create a more cohesive flow between the matching service and the collaboration service, enabling future enhancements such as question selection/voting.
Changes Made:

Created match-history Collection:

A new database collection named match-history was added to store information about user matches. The stored information includes user preferences such as topic and difficulty, along with the current state of the match.
Possible match states: pending (both users haven't confirmed yet), accepted (both users have confirmed the match), and declined (one or both users declined the match).

Updated Match Logic:

When a match is found, a match history entry is created with the state set to pending. The entry also captures user preferences (topic and difficulty) to preserve context.
If both users accept the match, the state of the match history entry is updated to accepted. If a user declines, the state is marked as declined.
User preferences (topic and difficulty) are stored with each match history entry, ensuring that these preferences are easily accessible and centralized.

Separation of Concerns and Future Flexibility:

By storing the user preferences in a centralized match history, the collaboration service now has access to these preferences without relying on the matching service.
The collaboration service can directly reference match history to determine the context for fetching and filtering questions, improving overall architecture and separation of concerns.

Intentions for Changes:

Collaboration Service Awareness:

Currently, the collaboration service is not aware of user preferences (topic and difficulty) since these are handled exclusively within the matching service. This can lead to limited flexibility and cohesion in the workflow. By centralizing these preferences in the match history, the collaboration service can easily access them to determine which questions to offer.

Enhanced Flexibility and Workflow:

Storing the user preferences allows us to implement a potential feature where users can vote or select specific questions before starting the collaboration session. This introduces a more dynamic experience and gives users control over the questions they’ll tackle.
The likely workflow for question selection will be:

Get user preferences: Retrieve the stored preferences (topic and difficulty) from the match history.
Fetch questions based on preferences: Use the preferences to query a set of potential questions.
Vote/Select questions: Allow both users to vote or choose the questions they prefer.
Start the collaboration session: Once questions are selected, pass them as part of the collaboration session initialization.

Next Steps:

Introduce endpoints in the collaboration service to support question voting and selection, leveraging the stored match history.
Implement a caching layer if necessary to optimize frequent reads of match history entries, especially for large-scale sessions.

Thanks for doing this even when u have so much on you man. Following are some of my thoughts/questions, lmk what u think about them:

Separation of matching-history and collab-session Collections:

I agree with the idea of separating the matching-history collection and the collab-session collection to maintain a clear separation of concerns between the matching service and the collaboration service.
Can I check that given this separation,  the matchAccepted event would need to return both the sessionId (for the collaboration session) and the matching-history Id as they represent different entries in their respective collections.
Or are we storing the matching-history Id as a foreign key (some sort bc nosql) in 'collab-session' that the collab service can access by calling its collab-session collection.
I think this is closely linked with my next question ->

Placement of the Question Voting Feature:

Based on the current PR, I assume you meant to place the question voting feature as be part of the collaboration service. As you mentioned that the collaboration service will have direct access to user preferences (topic and difficulty) via the centralized match history.
Bc initially I thought this feature is handled by the matching-service, such that after a match is found, the matching-service will retrieve a list of suitable questions from question-service and emit to the FE to vote. Then the FE can emit back the selected question and we can create a collab-session with the given selected question. I think that is why I thought there isnt a need for matching-history collection given this approach as everything should be handled within the matching-service. But I think both approaches work, will let you make the call on this man.

Question 1
There will be several instances where match-history will be involved:

On matchFound, an match history document is created with the pending status. This will return the matchId (which corresponds to the object ID of the document created on mongo). This is consistent with the existing flow to generate a matchId (but now it just references to a document)
On both users callingacceptMatch, the status will change to accepted status. This will generate a matchConfirmed event also, where the sessionId is generated, stored on the db, and returned to the client.

From there onwards, the user will only need to care about the sessionId. MatchId will no longer be relevant.
Indeed, so this PR is phase 1 of storing the match history. For phase 2, each session will reference to a match history using a foreign key. Now, the question is, should preferences (topic and difficulty) be stored in the session document as well (i.e when a session starts, the session document references and duplicates the value from the match history)? While potentially reducing seperation of concerns (since now session does not have to get preferences from the match history anymore), this will result in code duplication and potential multiple source of truth. This can be discussed.
Question 2
Question Voting will not be part of the collaboration service, or depending on plans, it may be. But right now im just basing it off figma where the current figma flow is matching -> voting -> session. So the voting page will strictly only rely on the question service and possibly the matching service (in order to get the user preferences).
⭐  PS: Honestly, im not sure if this is entirely necessary considering the current plans we have....but i think it wont cause any issues. The changes are made in a way that it should not affect the existing implementation for now.


Nvidia removed deprecated -Mchkfpstk option with nvhpc

See The issue on the nvidia forum [1].  This stroke me when trying to compile cosmo in debug mode.
Is there a way to disable this flag this in a clean spack way for all packages when using nvhpc >= ??  or should we go to the concerned codes build procedure individually?
[1] https://forums.developer.nvidia.com/t/error-when-trying-to-compiler-with-mchkfpstk/165577

Thanks, title is more accurate :-)

IMHO, disabling this flag for all packages is not within the scope of a package manager. Technically it might be possible because spack wraps the compilers, but handling such a problem is not their intended use.
If a package is not compatible with a compiler, there are two options. Either mark it as a conflict, because de facto the two softwares are incompatible, or create a patch to fix it.
And yes, I think you should go to the concerned codes build procedures individually, and improve their compatibility.


Request for Notification System for Instandb Updates

I am very interested in the concept of instandb. While I am not ready to migrate any production applications to it just yet, I am keen to keep an eye on its development. Currently, I notice that there are no Releases set up on the repository, which means I can't "Watch Releases" for updates. Additionally, there isn't a newsletter available for updates.
I have heard that you are working on a guide for integrating instandb with existing PostgreSQL-based schemas and applications. I am very interested in receiving notifications as soon as this guide is released. Could you please advise on how I can stay informed about this and other important updates? Thank you!

Awesome to hear you want to stay informed!
Right now we make announcements in our Discord. We'll set up a newsletter in the coming weeks to keep signed up users informed :)


Update to webdriverJS 2.45

This is currently blocked by tests timing out.

Is it mocha-related tests that are timing out?  My change to webdriver: https://github.com/SeleniumHQ/selenium/commit/9dbf2e8e771c52f8d18594cf5694f9b60ef05734 might be a culprit.  (Basically, the webdriver mocha wrappers now honor the pass-a-done-callback async invocation method, so if any functions being run by mocha take a parameter that isn't a done callback you'll hit a timeout.)

Minimum case I've reproduced so far:
  it('shows minimal test case which fails with 2.45', function() {
    expect(element(by.binding('greeting'))).toBeDefined();
  });

I think this is because of how Jasminewd2 wraps Jasmine compare functions.

@tullmann so far I've only seen problems with the Jasmine tests, but I will test mocha more thoroughly and get back to you.

Here's a more clear minimal case:
  fit('shows minimal case without expectations', function() {
    element(by.binding('greeting')).then(function(elem) {
      console.log('got here OK'); // This works OK
    });

    protractor.promise.when(element(by.binding('greeting'))).then(function() {
      console.log('here here OK 2'); // THIS NEVER HAPPENS, it just stalls.
    });
  });

It seems like there is some confusion, so I'd like to clarify.
Protractor uses the Selenium Server to help manage and connect browser drivers. This has just been released at 2.45, and the new version fixes the firefox 35/36 issues. The master branch of Protractor has been upgraded to use Selenium Server @2.45 and this will be pushed in a release soon.
Protractor also uses WebDriverJS (the selenium-webdriver node package). This has also just been released at 2.45, but we are having issues upgrading Protractor, which is what this issue is about. Until those issues are resolved, we will remain at WebDriverJS @2.44.0

ETA for the next release?

@BrodaNoel The release with Selenium Server @2.45 is now available (1.8.0)
I am still working on a fix for this issue - things have been slow due to ng-conf :)

@juliemr, so, running the test suite with Firefox 36 should be working well. Right?

Copying from issue https://github.com/angular/protractor/issues/1734:
More clarifications - FireFox 35/36 will still hang if you are using directConnect, due to #1872. All other forms of connection should work. I'm re-opening this issue due to this lingering problem.
Sorry for the confusion.

Even more minimal error case:
element(by.binding('greeting')).then();

I think we've got a bit of a fundamental problem with our setup where ElementFinder.prototype.then resolves to an ElementFinder, so it won't fully resolve. I haven't yet pinpointed the exact change made to webdriverJS which causes this, but I think we have a fundamental issue anyway.
@hankduan as the last person to do a big refactor of elements, do you have any ideas on this one?

Proposed solution - this involves some breaking changes, so we'd probably want to release as a new major version.
ElementFinder no longer extends promise. It does not have a then function, so element(by.id('foo')).then is undefined. However, when an action is taken, the element finder is given a then function. For example, element(by.id('foo')).getText().then is defined and resolves to the text of the element.
element.all(by.css('div')) still has a then function - it returns an array of ElementFinders, as it does now.
I believe this solves all the issues with promises resolving to themselves, and improves clarity overall. We need to work out what happens when you use an ElementFinder inside a webdriver function that expects a WebElement, such as browser.actions().dragAndDrop.
I've made a quick proof of concept PR. There's still some issues with 'filter', but it passes most things: https://github.com/angular/protractor/pull/1926

We have now implemented the proposed solution above, and it will be out in the next release. Because there's the potential to break a lot of tests which relied on element(by.foo).then, we're going to call it v2.0.0, but there is no change in functionality.

Done in 2.0.0


Exclude previous zip from the gulp zip task

Running the zip task adds the previous zip file into the new one

Fixed in #27


WIP: Separate SamsungTV remote from media player

Proposed change

This change separates remote from the Samsung TV media player. This is in order to be able to send arbitrary key commands to the TV, not just ones related to the media player.
This is an incomplete work in progress PR; it currently actually breaks stuff, as the remote should somehow be "attached" to the media player so the media player would use it, but I'm not sure what's the best way to accomplish that. Grab a direct reference to the remote in the media player on a platform discovery event, or call the remote using its services, or...
I'm posting this here before finalizing it, so I can abandon it early in case the feature would for some reason be undesirable, and in the case it is desirable, to ask for some help with finalizing it :)
Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New integration (thank you!)
[x] New feature (which adds functionality to an existing integration)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Additional information

This PR fixes or closes issue: fixes #
This PR is related to issue:
Link to documentation pull request:

Checklist

[ ] The code change is tested and works locally.
[ ] Local tests pass. Your PR cannot be merged unless tests pass
[ ] There is no commented out code in this PR.
[x] I have followed the development checklist
[x] The code has been formatted using Black (black --fast homeassistant tests)
[ ] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated for www.home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly.
Updated and included derived files by running: python3 -m script.hassfest.
[ ] New or updated dependencies have been added to requirements_all.txt.
Updated by running python3 -m script.gen_requirements_all.
[ ] Untested files have been added to .coveragerc.

The integration reached or maintains the following Integration Quality Scale:

[ ] No score or internal
[ ] 🥈 Silver
[ ] 🥇 Gold
[ ] 🏆 Platinum

Some more WIP here. Separated the rc wrapper, remote platform works at least to some extent, media player side needs at least some work. To be continued

Maybe have a look at what's going on in this PR:
https://github.com/home-assistant/home-assistant/pull/31537
There's a bridge abstraction added there for two different types of remotes (libraries).

@scop I suggest you to wait until the @MartinHjelmare's mentioned PR will be completed. The Bridge I'm introducing there will help in doing what you're aiming at. https://github.com/home-assistant/home-assistant/pull/31537#issuecomment-585606363
Thanks.

Ok, thanks for the heads up. I'll wait to see what happens there, and see if I'm still interested in completing this when that's done :) (I got around the most important use case I would have used this stuff for in another way meanwhile.)

@scopy this is just to inform you that my PR got merged.


error: ati drivers are no longer supported by any kernel >=4.1

Describe the bug
During system update with 'nixos-rebuild switch' getting the error error: ati drivers are no longer supported by any kernel >=4.1
To Reproduce
Steps to reproduce the behavior:

nix-channel --update
nixos-rebuild switch

nixos-rebuild switch
building Nix...
building the system configuration...
error: ati drivers are no longer supported by any kernel >=4.1
(use '--show-trace' to show detailed location information)

Expected behavior
System update
Additional context
No ati drivers installed or specified in configuration.nix Current systems is using Nvidia drivers configuration and no other changes for config was done prior to getting the error .
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
nix-shell -p nix-info --run "nix-info -m"                                            8.7m
 - system: `"x86_64-linux"`
 - host os: `Linux 5.11.21, NixOS, 20.09.4159.a7064e23973 (Nightingale)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.4pre20210503_6d2553a`
 - channels(root): `"home-manager-20.09, nixos-20.09.4159.a7064e23973, unstable-21.05pre291103.d42cd445dde"`
 - channels(mudrii): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

show-trace
nixos-rebuild switch --show-trace
building Nix...
building the system configuration...
error: ati drivers are no longer supported by any kernel >=4.1

       … while evaluating anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/options.nix:110:23:

          109|     if defs == [] then abort "This case should never happen."
          110|     else foldl' (val: def:
             |                       ^
          111|       if def.value != val then

       … from call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/options.nix:110:10:

          109|     if defs == [] then abort "This case should never happen."
          110|     else foldl' (val: def:
             |          ^
          111|       if def.value != val then

       … while evaluating 'mergeEqualOption'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/options.nix:108:27:

          107|   /* "Merge" option definitions by checking that they all have the same value. */
          108|   mergeEqualOption = loc: defs:
             |                           ^
          109|     if defs == [] then abort "This case should never happen."

       … from call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:499:59:

          498|       if isDefined then
          499|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |                                                           ^
          500|         else let firstInvalid = findFirst (def: ! type.check def.value) null defsFinal;

       … while evaluating the attribute 'mergedValue'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:497:5:

          496|     # Type-check the remaining definitions, and merge them. Or throw if no definitions.
          497|     mergedValue =
             |     ^
          498|       if isDefined then

       … while evaluating 'apply'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/boot/kernel.nix:40:15:

           39|       type = types.unspecified // { merge = mergeEqualOption; };
           40|       apply = kernelPackages: kernelPackages.extend (self: super: {
             |               ^
           41|         kernel = super.kernel.override {

       … from call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:458:35:

          457|       # yield a value computed from the definitions
          458|       value = if opt ? apply then opt.apply res.mergedValue else res.mergedValue;
             |                                   ^
          459|

       … while evaluating the option `boot.kernelPackages':

       … while evaluating the attribute 'value'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:465:9:

          464|     in warnDeprecation opt //
          465|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          466|         inherit (res.defsFinal') highestPrio;

       … while evaluating anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:98:72:

           97|           # For definitions that have an associated option
           98|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                                                                        ^
           99|

       … from call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:279:20:

          278|               then recurse (path ++ [name]) value
          279|               else f (path ++ [name]) value;
             |                    ^
          280|         in mapAttrs g set;

       … while evaluating 'g'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:276:19:

          275|           g =
          276|             name: value:
             |                   ^
          277|             if isAttrs value && cond value

       … from call site

       … while evaluating the attribute 'boot.kernelPackages.kernel'

       … while evaluating the attribute 'content'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:633:14:

          632|     { _type = "if";
          633|       inherit condition content;
             |              ^
          634|     };

       … while evaluating 'dischargeProperties'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:549:25:

          548|   */
          549|   dischargeProperties = def:
             |                         ^
          550|     if def._type or "" == "merge" then

       … from call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:555:11:

          554|         if def.condition then
          555|           dischargeProperties def.content
             |           ^
          556|         else

       … while evaluating 'dischargeProperties'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:549:25:

          548|   */
          549|   dischargeProperties = def:
             |                         ^
          550|     if def._type or "" == "merge" then

       … from call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:478:137:

          477|         defs' = concatMap (m:
          478|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                ^
          479|         ) defs;

       … while evaluating definitions from `/nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/boot/kernel.nix':

       … while evaluating anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:477:28:

          476|         # Process mkMerge and mkIf properties.
          477|         defs' = concatMap (m:
             |                            ^
          478|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … from call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:477:17:

          476|         # Process mkMerge and mkIf properties.
          477|         defs' = concatMap (m:
             |                 ^
          478|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … while evaluating the attribute 'values'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:590:7:

          589|     in {
          590|       values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
             |       ^
          591|       inherit highestPrio;

       … while evaluating the attribute 'values'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:491:9:

          490|       in {
          491|         values = defs''';
             |         ^
          492|         inherit (defs'') highestPrio;

       … while evaluating the attribute 'mergedValue'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:497:5:

          496|     # Type-check the remaining definitions, and merge them. Or throw if no definitions.
          497|     mergedValue =
             |     ^
          498|       if isDefined then

       … while evaluating the option `assertions':

       … while evaluating the attribute 'value'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:465:9:

          464|     in warnDeprecation opt //
          465|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          466|         inherit (res.defsFinal') highestPrio;

       … while evaluating anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:98:72:

           97|           # For definitions that have an associated option
           98|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                                                                        ^
           99|

       … from call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:279:20:

          278|               then recurse (path ++ [name]) value
          279|               else f (path ++ [name]) value;
             |                    ^
          280|         in mapAttrs g set;

       … while evaluating 'g'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:276:19:

          275|           g =
          276|             name: value:
             |                   ^
          277|             if isAttrs value && cond value

       … from call site

       … while evaluating the attribute 'assertions'

       … while evaluating 'fold''

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/lists.nix:55:15:

           54|       len = length list;
           55|       fold' = n:
             |               ^
           56|         if n == len

       … from call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/lists.nix:59:8:

           58|         else op (elemAt list n) (fold' (n + 1));
           59|     in fold' 0;
             |        ^
           60|

       … while evaluating 'foldr'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/lists.nix:52:20:

           51|   */
           52|   foldr = op: nul: list:
             |                    ^
           53|     let

       … from call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/activation/top-level.nix:128:12:

          127|   # Replace runtime dependencies
          128|   system = fold ({ oldDependency, newDependency }: drv:
             |            ^
          129|       pkgs.replaceDependency { inherit oldDependency newDependency drv; }

       … while evaluating the attribute 'config.system.build.toplevel'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/activation/top-level.nix:293:5:

          292|
          293|     system.build.toplevel = system;
             |     ^
          294|

Same here. No ati drivers should be installed as my system has an NVIDIA GPU...
 - system: `"x86_64-linux"`
 - host os: `Linux 5.11.16, NixOS, 20.09.20210511.f34eb30 (Nightingale)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.4pre20210503_6d2553a`
 - channels(mathym): `"unstable-21.05pre291220.5dbd28d7541"`
 - nixpkgs: `/nix/store/7cq726an8m9x6mr5n0smnvkadlf93v88-source`

Fixed by https://github.com/NixOS/nixpkgs/pull/123904.
It may take some time for this to be built by Hydra and the channel to be updated, until then you can rebuild from nixpkgs master.

I apologize for the failure. Should have done more ripgrepping :(

any workaround is available? As I am unable to install any app due to the error?
@samuelgrf Please would you provide a timeline when we can expect the sync and issue fixed?

You can see the channel build status on https://status.nixos.org/ .
nixos-unstable is at rev 900115a4f7fd right now which includes the fix, try updating your channels again.

FWIW this is the workaround I had in my configuration before https://github.com/NixOS/nixpkgs/pull/123904 , updating the channel should already fix the issue though:
nixpkgs.overlays = [
  (_: prev: {

    prev.linuxPackagesFor = kernel:
      (prev.linuxPackagesFor kernel).extend (_: _: { ati_drivers_x11 = null; });

  })
];

FWIW this is the workaround I had in my configuration before #123904 , updating the channel should already fix the issue though:
nixpkgs.overlays = [
  (_: prev: {

    prev.linuxPackagesFor = kernel:
      (prev.linuxPackagesFor kernel).extend (_: _: { ati_drivers_x11 = null; });

  })
];

Workaround didn't work for me :(  and Just syncup from and nofix yet in the channel. will; wait for a wile

Just took a look at your config, the workaround isn't working because it isn't applied to the unstable channel that is imported here: https://github.com/mudrii/nixlenovodot/blob/master/configuration.nix#L9 .
It should look like this:
let
  unstable = import <unstable> {
    config.allowUnfree = true;
    overlays = [
      (_: prev: {

        prev.linuxPackagesFor = kernel:
          (prev.linuxPackagesFor kernel).extend (_: _: { ati_drivers_x11 = null; });

      })
    ];
  };
in

Alos can you post the output of nix-shell -p nix-info --run "nix-info -m" again (after updating yout channels), would be good to know what nixpkgs revision this happens on.

Thank you @samuelgrf I got confused on unstable part.
made the change but the same error
head -18 /etc/nixos/configuration.nix
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).

{ inputs, config, options, pkgs, lib, callPackage, ... }:

let
  unstable = import <unstable> {
    config.allowUnfree = true;
     overlays = [
      (_: prev: {
        prev.linuxPackagesFor = kernel:
          (prev.linuxPackagesFor kernel).extend (_: _: { ati_drivers_x11 = null; });
      })
    ];
  };
in
______________________________________________________________________________________________
sudo nixos-rebuild switch
building Nix...
building the system configuration...
error: ati drivers are no longer supported by any kernel >=4.1
(use '--show-trace' to show detailed location information)
______________________________________________________________________________________________
nix-shell -p nix-info --run "nix-info -m"                                                         2409ms
 - system: `"x86_64-linux"`
 - host os: `Linux 5.11.21, NixOS, 20.09.4159.a7064e23973 (Nightingale)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.4pre20210503_6d2553a`
 - channels(root): `"home-manager-20.09, nixos-20.09.4169.ac60476ed94, unstable-21.05pre291486.900115a4f7f"`
 - channels(mudrii): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`
______________________________________________________________________________________________
sudo cat /root/.nix-channels
https://github.com/rycee/home-manager/archive/release-20.09.tar.gz home-manager
https://nixos.org/channels/nixos-20.09 nixos
https://nixos.org/channels/nixos-unstable unstable

I made a mistake while searching through the git log, the fix is not included in the channel at the moment :(.
It would have been included in the latest Hydra evaluation but the tested build job has failed, see: https://hydra.nixos.org/job/nixos/trunk-combined/tested .
The channel will only update when the tested build job succeeds on a future Hydra evaluation.
As for the workaround, can you also add the overlay to home-manager.nix#L6 and any other import <unstable> that I might have missed.

Thx @samuelgrf   I tried all combinations and same results :(

You should be able to override the channel with a local nixpkgs checkout including the fix by doing nixos-rebuild -I unstable=/path/to/nixpkgs.

Yes I know but seems too much trouble :)  I decided to revert back to a stable kernel until the issue is fixed  and published into unstable
Appreciate your help

I import some packages from unstable via overlays, but mostly using stable on my systems, where both are local git checkouts.
Surprisingly, applying both PRs to my local "stable" check out did not fix the issue, but simply removing ati_drivers_x11 worked. I could not find any reference to ati_drivers_x11 via ripgrep either.

I'm pulling off master and am still encountering this issue. Last commit ccb0f0080dbdb7155f45e107794f45a46b5a32ee.

Do you mind posting your configuration? If your modules and packages are being taken from master, this shouldn't occur

I had a line like:
boot.kernelPackages = pkgs.linuxPackages_latest;

Defined twice in two files (my configuration is splitted in different imports) and was getting the same error.
If I pull either one off, then it builds fine.

I'm starting to suspect that something is eagerly evaluating the entire package set. Which would force the throw to be evaluated. Also doesn't help that there hasn't been another release since I put in the module fix https://status.nixos.org/

(again this is running nixpkgs.git@master not sure this is impacted by the release)

@jonringer https://github.com/DieracDelta/flakes/blob/flakes/flake.nix with nix build .#nixosConfigurations.desktop.config.system.build.toplevel -L. I apologize since my config files are pretty messy. The TLDR is that I am setting an overlay with the master's version of nixpkgs that generates a latest_kernel here: https://github.com/DieracDelta/flakes/blob/flakes/flake.nix#L194. Then I am importing https://github.com/DieracDelta/flakes/blob/flakes/hosts/hw/desktop.nix. This imports https://github.com/DieracDelta/flakes/blob/flakes/hosts/hw/gpu_passthrough.nix and https://github.com/DieracDelta/flakes/blob/flakes/hosts/hw/shared.nix. None of these files seem particularly suspicious, and this was working on an earlier commit (before the ATI fix was pushed). I am not sure why it's failing.

I can confirm this occurs when boot.kernelPackages is set twice. In my case it was in my own configuration.nix and in a nixos-hardware module.

In my case kernelPackages set single for each machine config.
if i set unstable.linuxPackages_latest i catching this issue. If i use kernel from  nixos-small or stable i have other problem this nvidia driver on my laptop.

There shouldn't be a need to pick kernel packages from master.... as the kernel versions should be gettting updated in lockstep
[11:06:57] jon@jon-desktop /home/jon/projects/nixpkgs (master)
$ nix eval .#linuxPackages_5_10.kernel.version
"5.10.37
[11:07:30] jon@jon-desktop /home/jon/projects/nixpkgs (release-20.09)
$ nix eval .#linuxPackages_5_10.kernel.version
"5.10.37"

If a broken nvidia package is forcing people to choose, then we should fix that module.

@jonringer the reason I was pulling kernel packages from master was because on stable the specific versions of binutils and elfutils conflict with each other. Specifically, I was running into this issue when I was compiling the vendor-reset kernel module. Master's stdenv had a more recent version of binutils, fixing this issue. Maybe binutils will be bumped in the next release (I have not checked on this).

If a broken nvidia package is forcing people to choose, then we should fix that module.

@jonringer - I broke that particular problem out into a separate issue; should have written it a long time ago but figured it'd be solved with 21.05 ;)

It should :), works on unstable

Just another "oh hey I'm fixed" voice chiming in to confirm that a single boot.kernelPackages = unstable.linuxPackages was breaking on this and moving to stable.linuxPackages got me rebuilding again.

FWIW this is the workaround I had in my configuration before #123904 , updating the channel should already fix the issue though:
nixpkgs.overlays = [
  (_: prev: {

    prev.linuxPackagesFor = kernel:
      (prev.linuxPackagesFor kernel).extend (_: _: { ati_drivers_x11 = null; });

  })
];

It worked for me. Just had to change prev.linuxPackagesFor = kernel: for linuxPackagesFor = kernel:.
nixpkgs.overlays = [
  (_: prev: {
    linuxPackagesFor = kernel:
      (prev.linuxPackagesFor kernel).extend (_: _: { ati_drivers_x11 = null; });
  })
];

Any chance this would be fixed?

@alsvartr  the fix  @jnetod proposed for @samuelgrf  works for me  https://github.com/mudrii/nixlenovodot/blob/master/configuration.nix#L9

Hmm, I have a suspicion that something is eagerly evaluating the package set, which causes the throw to be evaluated. This shouldn't be the case... but it might be prudent to just remove the entry altogether.

I've been trying to understand what was evaluating it. The only guess I had was the apply in the boot.kernelPackages option, but I don't know how to verify that.

Post updating to 21.05 issue went away

FWIW, issue is still present on master.

I suspect that ati module is not properly removed given running tab completion, ati_drivers_x11 appers.
[... /nixpkgs]$ nix eval .#linuxPackages_5_12.
Display all 106 possibilities? (y or n)
.#linuxPackages_5_12.__unfix__                 .#linuxPackages_5_12.evdi                      .#linuxPackages_5_12.mwprocapture              .#linuxPackages_5_12.r8125                     .#linuxPackages_5_12.tmon
.#linuxPackages_5_12.acpi_call                 .#linuxPackages_5_12.exfat-nofuse              .#linuxPackages_5_12.mxu11x0                   .#linuxPackages_5_12.r8168                     .#linuxPackages_5_12.tp_smapi
.#linuxPackages_5_12.akvcam                    .#linuxPackages_5_12.extend                    .#linuxPackages_5_12.ndiswrapper               .#linuxPackages_5_12.recurseForDerivations     .#linuxPackages_5_12.turbostat
.#linuxPackages_5_12.amdgpu-pro                .#linuxPackages_5_12.facetimehd                .#linuxPackages_5_12.netatop                   .#linuxPackages_5_12.rtl8192eu                 .#linuxPackages_5_12.tuxedo-keyboard
.#linuxPackages_5_12.anbox                     .#linuxPackages_5_12.fwts-efi-runtime          .#linuxPackages_5_12.nvidiaPackages            .#linuxPackages_5_12.rtl8723bs                 .#linuxPackages_5_12.usbip
.#linuxPackages_5_12.asus-wmi-sensors          .#linuxPackages_5_12.gcadapter-oc-kmod         .#linuxPackages_5_12.nvidia_x11                .#linuxPackages_5_12.rtl8812au                 .#linuxPackages_5_12.v4l2loopback
.#linuxPackages_5_12.ati_drivers_x11           .#linuxPackages_5_12.hid-nintendo              .#linuxPackages_5_12.nvidia_x11_beta           .#linuxPackages_5_12.rtl8814au                 .#linuxPackages_5_12.v86d
.#linuxPackages_5_12.batman_adv                .#linuxPackages_5_12.hyperv-daemons            .#linuxPackages_5_12.nvidia_x11_legacy340      .#linuxPackages_5_12.rtl8821au                 .#linuxPackages_5_12.vendor-reset
.#linuxPackages_5_12.bbswitch                  .#linuxPackages_5_12.intel-speed-select        .#linuxPackages_5_12.nvidia_x11_legacy390      .#linuxPackages_5_12.rtl8821ce                 .#linuxPackages_5_12.vhba
.#linuxPackages_5_12.bcc                       .#linuxPackages_5_12.isHardened                .#linuxPackages_5_12.nvidia_x11_vulkan_beta    .#linuxPackages_5_12.rtl8821cu                 .#linuxPackages_5_12.virtualbox
.#linuxPackages_5_12.bpftrace                  .#linuxPackages_5_12.isLibre                   .#linuxPackages_5_12.nvidiabl                  .#linuxPackages_5_12.rtl88x2bu                 .#linuxPackages_5_12.virtualboxGuestAdditions
.#linuxPackages_5_12.broadcom_sta              .#linuxPackages_5_12.isZen                     .#linuxPackages_5_12.oci-seccomp-bpf-hook      .#linuxPackages_5_12.rtl88xxau-aircrack        .#linuxPackages_5_12.wireguard
.#linuxPackages_5_12.callPackage               .#linuxPackages_5_12.isgx                      .#linuxPackages_5_12.odp-dpdk                  .#linuxPackages_5_12.rtlwifi_new               .#linuxPackages_5_12.x86_energy_perf_policy
.#linuxPackages_5_12.can-isotp                 .#linuxPackages_5_12.it87                      .#linuxPackages_5_12.openafs                   .#linuxPackages_5_12.rtw88                     .#linuxPackages_5_12.xpadneo
.#linuxPackages_5_12.chipsec                   .#linuxPackages_5_12.ixgbevf                   .#linuxPackages_5_12.openafs_1_8               .#linuxPackages_5_12.sch_cake                  .#linuxPackages_5_12.zenpower
.#linuxPackages_5_12.cpupower                  .#linuxPackages_5_12.jool                      .#linuxPackages_5_12.openafs_1_9               .#linuxPackages_5_12.stdenv                    .#linuxPackages_5_12.zfs
.#linuxPackages_5_12.cryptodev                 .#linuxPackages_5_12.kernel                    .#linuxPackages_5_12.openrazer                 .#linuxPackages_5_12.sysdig                    .#linuxPackages_5_12.zfsStable
.#linuxPackages_5_12.ddcci-driver              .#linuxPackages_5_12.kernelAtLeast             .#linuxPackages_5_12.perf                      .#linuxPackages_5_12.system76                  .#linuxPackages_5_12.zfsUnstable
.#linuxPackages_5_12.digimend                  .#linuxPackages_5_12.kernelOlder               .#linuxPackages_5_12.phc-intel                 .#linuxPackages_5_12.system76-acpi
.#linuxPackages_5_12.dpdk                      .#linuxPackages_5_12.lttng-modules             .#linuxPackages_5_12.pktgen                    .#linuxPackages_5_12.system76-io
.#linuxPackages_5_12.e1000e                    .#linuxPackages_5_12.mba6x_bl                  .#linuxPackages_5_12.ply                       .#linuxPackages_5_12.systemtap
.#linuxPackages_5_12.ena                       .#linuxPackages_5_12.mbp2018-bridge-drv        .#linuxPackages_5_12.prl-tools                 .#linuxPackages_5_12.tbs

Sure enough it fails to evaluate.
[... /nixpkgs]$ nix eval .#linuxPackages_5_12.ati_drivers_x11
error: ati drivers are no longer supported by any kernel >=4.1

Even though grep "./ati.nix" nixos/modules/module-list.nix returns nothing.
Nixpkgs git commit ID:  3cf17240f014282a1f40bc27e5fc7b21868f517a


Using ng2-translate with Meteor v1.2.1

Will it ever be possible to use the ng2-translate npm module with Meteor v1.2.1 or will we need to wait for Meteor 1.3 to use npm modules on the client?

It has bundled version based on SystemJS https://github.com/ocombe/ng2-translate/blob/master/bundles/ng2-translate.js. So I don't see any problem to move it to Atmosphere.
Look at how Angular2 NPM itself converted here https://github.com/Urigo/angular2-meteor/tree/master/atmosphere-packages/angular2 and repeat.


Possible to run on testnet?

Locking 0.01 bitcoin to properly test this software is quite a lot for me and I am debating whether to use this software or not.
Whoever if it would be possible to deploy this on testnet first I'd be much more comfortable deploying it on mainnet after some time...
I think the idea for this project is great and I am prepared to do the necessary changes to use this on testnet. I'd just need some pointers / instructions.
Thanks

In theory it "can" run on testnet, but at much reduced functionality:

Normally CLBOSS will connect to nodes on the existing network.  I have ways to do that for mainnet but not for testnet.

ConnectFinderByHardcode needs some reliably high-uptime nodes for mainnet, but not for testnet.  I need to locate some high-uptime nodes for testnet (if you have a good curated list, that would be appreciated).  The issue here is that since testnet coins are valueless, people are not really incentivized to keep their nodes high uptime --- they may run their nodes at high uptime for a few weeks, then shut them down completely, so the list needs to be continuously maintained and filtered by somebody to ensure it does not rot.  The hardcoded list for mainnet is a lot less maintenance-heavy since people who have high-uptime mainnet nodes now have an incentive to keep them high-uptime in the future.
ConnectFinderByDns has DNS servers for mainnet but not for testnet.  I do not know if anyone runs a DNS server for testnet nodes.  In any case, it also runs into the same issue as above --- people tend to not keep their testnet nodes up, so a testnet DNS server might give long-dead testnet nodes when you query it for a list.

Other than the above, I think CLBOSS "should" work on Bitcoin Testnet.  So for now, you have to manually maintain connections to the testnet network to download the gossip map.

When I try running this on testnet, it gets stuck on:
2021-12-07T15:26:36.578Z INFO    plugin-clboss: ChannelFinderByPopularity: Not enough nodes with >0 channels in routemap (only 309, need 800), will try again later.

I'm guessing the public testnet LN is currently only around 309 nodes, and therefore clboss never finds enough nodes and never does anything. It also doesn't seem that there's anyway to configure this 800 node limit, so I'm stuck. It seems like a key feature to be able to give this a test drive with testnet funds before committing mainnet funds.
As a side note, I'm guessing swapping off-chain/on-chain funds and purchasing inbound liquidity via boltz.exchange won't work in testnet?

boltz.exchange has a testnet swapper, actually.  https://testnet.boltz.exchange/api
Lemme see about that 800-limit...

Making the node count minimum configurable would be good I think. I could even imagine wanting to make this limit much smaller for private regtest networks or something. I actually looked at the code to see if it would be something I could implement myself but my C++ is very rusty and it wasn't immediately clear to me. Thank you!

Making the node count minimum configurable would be good I think. I could even imagine wanting to make this limit much smaller for private regtest networks or something.

Interested in this too. Would love to be able to investigate and test this on regtest. What is the chance that this will be considered?
Thank you for this very promising piece of software :pray:

I've been using CLBOSS in testnet for a bit. I needed these modifications: https://github.com/ZmnSCPxj/clboss/pull/156

Closing because CLBOSS runs on testnet currently


Save activation map for a specific convnet in the process of tf.train.MonitoredTrainingSession()

ADDING FEATURES
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16.04
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): ('v1.4.0-19-ga52c8d9', '1.4.1')
Python version:  2.7 anaconda
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory: Quadro K400
Exact command to reproduce:

Describe the problem
I followed this tutorial from the source code of TF: model/tutorials/image/cifar10/, in the tutorial, you used tf.train.MonitoredTrainingSession() to log the checkpoint or tensor for future usage with TensorBoard, my question is to display the activation maps of my convnet during training process. But inside the:
while not mon_sess.should_stop():              mon_sess.run(train_op)
I can not add new tensor because the Graph is finalized. So I want to ask you how to add something like tf.summary.image: Pass one example image to a specific convnet  after relu, and save it as png for all the filters???
I think I can easily implement this in a normal tf.Session(), but I am still interested if we can do it in tf.train.MonitoredTrainingSession().
I think that would be great for the newbie to understand what happened for our CNN.
Thanks in advance

This question is better asked on  StackOverflow since it is not a  bug or feature request. There is also a larger community that reads questions there. Thanks!
(That said, to give you some hints -  you can insert summary operations in the definition of your model, for example, in the inference() function in the tutorial code, that builds the graph for the forward pass).
Hope that helps.


Dev mode PDFization broken

Describe the issue
The STATIC_IETF_ORG_INTERNAL stuff in https://github.com/ietf-tools/datatracker/blob/2bf7e8250c3fc2fcaf9a6223c331a52d1f6d89a4/ietf/doc/models.py#L630 causes a Python error in the dev environment.
CC @NGPixel
Code of Conduct

[X] I agree to follow the IETF's Code of Conduct

Make sure you're using the latest settings_local.py file, specifically this line:
https://github.com/ietf-tools/datatracker/blob/main/docker/configs/settings_local.py#L60

I am

This is from within the docker image:
curl http://localhost:80/fonts/noto-sans-mono/import.css
curl: (7) Failed to connect to localhost port 80: Connection refused

I found the issue. I'm working on a fix.


Upgrade to pybind11 v2.6.0

Resolves #6
The only core package depending on pybind11, at the moment, is rosbag2_py. Running CI up rosbag2_py and testing rosbag2_py:

Linux
Linux-aarch64
macOS
Windows
Windows Debug:

EDIT: re-triggered CI with changes in ros2/rosbag2#544

Looks like there's a CMake warning introduced:
https://ci.ros2.org/job/ci_linux/12839/cmake/new/source.8eef91a6-36f3-4c27-b5b5-48052cac62ec/#17

Working on related fixes in rosbag2_py https://github.com/ros2/rosbag2/pull/544

I've fixed the warnings, but still need to work out what happened to the Windows debug build.

@jacobperron any luck with the windows debug build?

@sloretz I've tried messing around with the CMakeLists.txt of rosbag2_py in https://github.com/ros2/rosbag2/pull/544, but I'm not sure what's going wrong. I'll have to put this down for now and revisit with a Windows debug setup later.

Closing in favor of #10 (which has a similar problem, but we actually need to do it now for the upgrade to Ubuntu 22.04).


Adaptive script: HTTP POST request with 2D array in payload cannot be successfully done

Describe the issue:
In adaptive authentication, a 2D array in payload is converted to an object format when doing a HTTP POST request with the httpPost() method. This throws 400 bad request from clients as the request payload is not recognized.
How to reproduce:

include a 2D array in a HTTP POST request payload in an adaptive authentication script.
ex -

"context": {
    "ip": "<IP_ADDRESS>",
    "headers": [
        [
            "User-Agent",
            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Safari/605.1.15"
        ],
        [
            "Accept-Encoding",
            "gzip, deflate, br"
        ],
        [
            "Accept-Language",
            "en-us"
        ],
        [
            "Accept",
            "text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8"
        ],
        [
            "Connection",
            "close"
        ],
        [
            "Host",
            "castle.io"
        ]
    ]
}

It will be converted to the following when the actual request is done.

"context":{
      "ip":"<IP_ADDRESS>",
      "headers":{
         "0":{
            "0":"User-Agent",
            "1":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/14.1.1 Safari\/605.1.15"
         },
         "1":{
            "0":"Accept-Encoding",
            "1":"gzip, deflate, br"
         },
         "2":{
            "0":"Accept-Language",
            "1":"en-us"
         },
         "3":{
            "0":"Accept",
            "1":"text\/html,application\/xhtml+xml,application\/xml;q=0.9,\/;q=0.8"
         },
         "4":{
            "0":"Connection",
            "1":"close"
         },
         "5":{
            "0":"Host",
            "1":"castle.io"
         }
      }
   }

Expected behavior:

Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: [e.g., IS 5.10.0, IS 5.9.0]
OS: [e.g., Windows, Linux, Mac]
Database: [e.g., MySQL, H2]
Userstore: [e.g., LDAP, JDBC]

Optional Fields
Related issues:

Suggested labels:

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Fix a typo and add a missing progress message in formatting script

In the alternate bulk format script, we were printing that we were converting the files to YAML when we are really converting them to CSV. Also, one of the messages that said this was missing.

I hope this isn't too trivial

Thank you.


Feature/revendor

What
Update dependencies to latest dp-graph / neptune
How to review
Ensure unit tests pass
Who can review
Describe who worked on the changes (Pete), so that other people can review. (eldeal)

Moved to go modules - closing pull request


linux-raspberrypi: Bump kernel to 4.9.59

Signed-off-by: Florin Sarbu<EMAIL_ADDRESS>

Build finished.

Build finished.

Build finished.

Build finished.

closes #151


CB-12648 Add http_proxy and no_proxy environment variables to environ…

…ment file
Also add this environment file to the ccmv2 service unit

This change is going to be in conflict with https://github.com/hortonworks/cloudbreak-images/pull/573. Can you help me merge the other PR first?
The RPM also contains changes for systemd unit file.


Self Signed Certs?

Any support for self-signed certs?
(Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1129)')))

Found a workaround with:
export CURL_CA_BUNDLE=""

At the moment the cert verification is automatic but yes self-signed certs should be supported, probably along the lines of a cli flag like how curl does it with --insecure. But yes setting that env var will sort it in the meantime 👍

Hi @vitosans , Are you able to download dashboards without SSL verify ? can you please send me your command.


Provide signatures for plugins when distributed as OCI artifacts

Feature
For the last few months we've been distributing plugins as OCI artifacts: https://github.com/orgs/falcosecurity/packages?repo_name=plugins .
The next steps to continue with this work involve properly signing all artifacts. Keyless signing with cosign works well for our purpose, although for now we won't be able to use the new OCI v1.1 mechanisms to store signatures, mainly because the official spec isn't released yet at the time of writing ( https://opencontainers.org/release-notices/overview/ ) and GHCR does not support it yet.
I think it would be better to have OCI v1.1 support, but on the other hand Falco is security software, and when given the ability to download plugins for easier consumption, the most up to date signature support is pretty much mandatory :)

Some context to get anyone interested started:
Currently the process to push OCI artifacts is completely on GHA: it downloads artifacts from S3 published by Prow and publishes them on GHCR (in the future, also building+publishing on S3 will be handled via GHA, and this work is already in progress) and is triggered manually
The relevant code is written in Go and calls the relevant falcoctl library functions to do the actual push (handled with ORAS) https://github.com/falcosecurity/plugins/blob/904f750adab96bb958e4647c1984bc98a240023a/build/registry/pkg/oci/oci.go#L263
This task involves adding the code necessary to do the signing (with cosign as a library, binary, whatever works best :D), either here or in the falcoctl library, wherever it makes more sense (cc @loresuso )
cc @sumitb

@LucaGuerra I'll work on this, please assign it to me.

/assign @sumitb

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale

Hi @sumitb! Did you have a chance to work on this?
I'm asking this as we're working on the same feature, as part of the work the Falco software supply chain security working group is doing.
Thank you

/remove-lifecycle stale

Thanks Max! I think your work is great and we're close to the solution :)


Unable to login to upgraded app.

https://github.com/bithyve/bitcoin-keeper/assets/62699947/9724a8f4-4f3c-4b36-8e2d-d0b40c0e6778

giving "Incorrect passcode" error.

https://github.com/bithyve/bitcoin-keeper/assets/62699947/02bb84f8-8bed-441c-a232-e2b2f2696472

Verified this issue on keeper app v 1.1.11(295)


Countdown logic & implementation

Accidentally worked directly on main instead of branching from this issue, but use this issue for continuing work on it if you like! :)

Accidentally worked directly on main instead of branching from this issue, but use this issue for continuing work on it if you like! :)


Changing the font on your outlines

New feature documented in this change note.
If you have questions or comments post them here.

Running smoothly here on the web version...

No urgency about this, for sure, but if one or two additional font choices were within reach, I'd suggest:

The ability to display the blog title at the top of the Old School web page with both lower and upper case letters. (All caps is usually a little less readable in most fonts.)
A choice of fonts for displaying the title there.

It's all running smoothly here on the web version, as usual. Merci...

Ken, I don’t understand what you’re asking for. Provide a link or an example or screen shot. This is also not related to this feature, I think you’re talking about web rendering. You can also leave out the part about no urgency.

You're right, it's about rendering. In the image here, I have both lower and upper case letters in the blog's title. And I have a different font as well, just for the title. If I had more skill I would have added the ultra-fine black outline to the letters that already is part of the blog title display in Old School--that's a very nice touch.

Ken I still don’t know what you’re asking for.


How to programatically log the user with the code I got from the callback?

I'm working on a Ionic-React + Capacitor application that uses axa-fr/react-oidc for authentication with AWS Cognito. Everything works fine on the web application, but now I'm packaging the app in Android... I managed to get the proper deeplink from Cognito, which is detected by a handler in my code.
I get a url like my-scheme://oauth2/callback?code=XXXXXXXXXX  but now I don't know what to do to continue with the authentication flow. What method should I call now with the given code?
Thanks

Hi @ifigueroap , thank your for your issue.
I do not know about ionic react capacitor but i can try to help with pleasure.
I am not sure but the method is not exposed by react oidc but you can use oidc client directly for the callback:
https://github.com/AxaFrance/oidc-client/blob/823a3c37351e39b0bb1290228f72c58f11a28960/examples/oidc-client-demo/src/index.tsx#L103
It is the library used under the hood so it should work.
I am not sure the regex will work but i will add a test on it tomorrow.

Thanks Guillaume for your response, I have managed to make it work! Although now the logout link in our app is not working, I will check why... am I missing something in the promise resolution?
This is the way for anyone using Capacitor and deeplinks:
const DeeplinkHandler: React.FC = () => {
  /* ******************************************************************************/
  /* Register handler for deeplink callback (authConfiguration is defined before) */
  const vanillaOidc = OidcClient.getOrCreate(() => fetch)(authConfiguration);

  useEffect(() => {
    CapApp.addListener("appUrlOpen", async (urlOpenEvent) => {
      console.log(`Got deeplink appUrlOpen with url: ${urlOpenEvent}`);
      const splitURL = urlOpenEvent.url.split("//").pop();
      console.log(`Got splitURL: ${splitURL}`);
      if (splitURL) {
        const newURL = `${window.location.protocol}//${splitURL}`;
        console.log("Push splitURL: " + newURL);
        window.location.replace(newURL);
        console.log("After pushh split ");
        vanillaOidc.loginCallbackAsync().then(() => {
          console.log("After logincallback");
        });
      }
    });
  }, []);
  return null;
};

This component is inside the BrowserRouter but outside the OidcSecure element:
    <OidcProvider
      configuration={authConfiguration}
      loadingComponent={() => (
        <IonApp>
          <IonPage>
            Loading...
          </IonPage>
        </IonApp>
      )}
    >
      <BrowserRouter>
        <DeeplinkHandler />

        <OidcSecure>
          ....
        </OidcSecure>
      </BrowserRouter>

When the app is cold-started again, it requires login, whereas in the web browser, the session is restored from SessionStorage. Any clues on how/why to make it work in a hybrid app?

Hi @ifigueroap ,
Thank you very much for your feedback, it is a good news.
May you print a copy of the console.log displayed by your code ? It will help me to understand the logout problem.
Your code sound good for the logout. logout is just a redirection to an oidc server url with idtoken in query string.
About the session, I do not know how work ionic react capacitor. Do you have a sample of your OIDC configuration ?

Hi @ifigueroap , did you succed ?

Sorry I haven't replied back. I noticed that even in our PWA the login is not "persistent". I'm not sure if it's because we are using the library incorrectly, or if is something related to AWS Cognito :/
FWIW, we are using session storage to, welp, store the tokens... and every time I go to the website from scratch, it prompts me with the OAuth/Cognito login redirect. However, once logged in, I can refresh the tab and I'm still logged in.
Is it because we are somehow not storing something? or perhaps de refresh tokens are expired? Or does session storage expire when I close the tab?

Hi @ifigueroap , did you try to setup localstorage instead of sessionstorage?
sessionStorage life end when browser or page is closed.
localStorage keep living when page is closed or browser os closed.

Thanks for the tip, I will try that. Regarding this issue, I think it can be closed as I managed to log in "programatically", as shown above. Thanks a lot!


madvoc add interceptor , @In @Out not work!

@InOut
Long id;
@Out String bookName;
@Action(value = "/book/${id}")
// @InterceptedBy(EchoInterceptor.class)
public String book() {
    System.out.println(id);
    bookName = "Java";
    return "#book";
}

http://localhost:8080/book/123 console print 123 and book.jsp render Java it work!
when i add EchoInterceptor
@InOut
Long id;
@Out String bookName;
@Action(value = "/book/${id}")
@InterceptedBy(EchoInterceptor.class)
public String book() {
    System.out.println(id);
    bookName = "Java";
    return "#book";
}

http://localhost:8080/book/123 console print null and book.jsp render nothing it not work!
why?

Check out the MadvocConfig class: https://github.com/oblac/jodd/blob/master/jodd-madvoc/src/main/java/jodd/madvoc/component/MadvocConfig.java#L66
By default, ServletConfigInterceptor is the one that those all the @In and @Out magic for you. When you specify the:
@InterceptedBy(EchoInterceptor.class)
public String book() {

you simply didn't use the ServletConfigInterceptor but just the echo one.
Fix
Either add the default configurator explicitly:
@InterceptedBy(EchoInterceptor.class, ServletConfigInterceptor.class)
public String book() {

OR specify all default ones
@InterceptedBy(EchoInterceptor.class, DefaultWebAppInterceptors.class)
public String book() {

OR add echo to default ones:
madvocConfig.setDefaultInterceptors(ew Class[] {EchoInterceptor.class, ServletConfigInterceptor.class};

OR do the same in madvoc.props
OR create new ActionInterceptorStack
and so on :)

There are so many methods to solve the problem
thank you very much!


WIP recovery: quick recovery from a simple random loss

Simple lost detection: when the recovery episode ends
and the duration of current recovery episode is
short than a given threshold, currently defined by
2 x min_rtt. This means there was a small loss
recovered very quickly, indicating this has a
low probability of congestion but a simple packet lost.
In this case we restore previous cwnd/ssthresh
to resume faster after recovery.
This gives a good performance improvement in case of high
random loss, not by congestion. Test result shows that
it can improve more than 40% in case of 1% random loss.
Note that it can be used other than Reno (cubic etc) too. (not BBR)
p.s. This PR assumes #299.

Closing this PR. I have another PR for CUBIC (https://github.com/cloudflare/quiche/pull/890) and once this is merged, I will create another PR for Reno later.


potential perf regeressions due to io_uring SQPOLL

IORING_SETUP_SQPOLL is an io_uring feature, where the kernel creates a thread, which busily polls the SQ. It appears libuv creates an SQPOLL io_uring instance for every single context
https://github.com/libuv/libuv/blob/08a1e7fd23a9b8c893932c1a0083fc703dfe51c0/src/unix/linux.c#L648
There is a high cost associated with it at runtime and also during setup/teardown. It's not recommended to use without precise fine tuning and good sharing as it'd likely backfire.  I'm looking at a perf regression, which I haven't yet confirmed is due to libuv, but it narrows down to someone creating tons of io_uring SQPOLL instances (and therefore additional threads) that are not even used. The turnaround is high enough to show up in profiles.
Is it right that every libuv instance would create an SQPOLL io_uring?
If so, it should really be conditional by request from the user.
In what cases it might be unused, i.e. nobody issues any requests to the SQPOLL io_uring instance?

Is it right that every libuv instance would create an SQPOLL io_uring?

If "instance" means event loop a.k.a. uv_loop_t: yes

If so, it should really be conditional by request from the user.

I don't think so. I mean, I might see myself changing it to lazy initialization (create on first uv_fs_t request) but I don't plan on adding any knobs or overrides.
I'd first like to see conclusive evidence that sqpoll is indeed a big bottleneck though. The io_uring support in libuv has been around for a while now and you're the first to bring up setup performance. It can't be that prevalent or we'd have received reports much sooner.
One thing you will want to test is whether it's specific to your kernel. io_uring doesn't have a spotless track record when it comes to bugs and performance, see e.g. #4089. We blacklist a pretty wide range of known-bad kernels but it's definitely not comprehensive.

Is it right that every libuv instance would create an SQPOLL io_uring?

If "instance" means event loop a.k.a. uv_loop_t: yes

If so, it should really be conditional by request from the user.

I don't think so. I mean, I could see myself changing it to lazy initialization (create on first uv_fs_t request) but I don't plan on adding any knobs or overrides.

Do all io_uring reads, writes and other fs requests are normally executed by SQPOLL?

I'd first like to see conclusive evidence that sqpoll is indeed a big bottleneck though. The io_uring support in libuv has been around for a while now and you're the first to bring up setup performance.

Right, better to confirm before throwing in laziness, but defaulting to SQPOLL in generic libraries is a problem in itself. Perhaps there are some smart algorithms and/or conditional usage? but if done naively it'd be easy to craft a case wasting 90%+ of CPU busy polling, e.g. sending one request every half sqpoll_idle. And it's as easy to hit it in real apps with different degrees of waste unless finely tuned for each case, especially when mixing io_uring with epoll (IIUC, fs and net ops). And it's not that easy to spot, artificial benchmarks are not helpful, and with real apps the user needs to monitor cpu util rather than throughput/etc., as they might indeed get a boost but at expense of encumbering another core while thinking that it's free.

It can't be that prevalent or we'd have received reports much sooner.

The overhead I talk about is under 0.5% of system's total, which still hurts at scale. But to reiterate, this problem is different from the rant above, the SQPOLL is apparently never used to issue any request.

One thing you will want to test is whether it's specific to your kernel. io_uring doesn't have a spotless track record when it comes to bugs and performance, see e.g. #4089. We blacklist a pretty wide range of known-bad kernels but it's definitely not comprehensive.

I'd encourage to report such issues to io_uring / liburing if not already, it's always addressed and backported when there is a bug. At least I don't remember seeing this one.

Do all io_uring reads, writes and other fs requests are normally executed by SQPOLL?

A subset (the most common file ops.)
Libuv also uses IORING_OP_EPOLL_CTL but that's a separate sq/cq pair that doesn't use sqpoll.

I'd encourage to report such issues to io_uring / liburing

I don't remember bugs that were still unfixed but I didn't keep meticulous notes and I'm mostly acting on second-hand information (users reporting issues.)


Fix a syntax error in xml extension

Corrected the syntax for handling <%-- some comments --%> comments in XML files.

Fixed misplaced 'end' and 'name' keys in comment captures.

See the beginning of the file:
		"This file has been converted from https://github.com/atom/language-xml/blob/master/grammars/xml.cson",
		"If you want to provide a fix or improvement, please create a pull request against the original repository.",
		"Once accepted there, we are happy to receive an update request."

that repo has been archived

that repo has been archived

@aeschli can we temporarily fix this issue and waiting for issue #176193 to be fixed?

just some indentation fixes?

@offensive-vk not indentation fixes, the format of grammar is wrong.
The end and name fields should be at the same level as the begin field, but they are currently at the same level as captures.
related issues:

https://github.com/microsoft/vscode/issues/176193
https://github.com/microsoft/vscode/issues/184852
https://github.com/atom/language-xml/issues/96

@alexr00 Please decide if we want to patch the grammar on our side given the original one is archived.

Let's avoid patching the grammar on our side and instead try to find a new grammar: https://github.com/microsoft/vscode/issues/176193
Alternatively, maybe we should make xml one of the first languages that we adopt tree-sitter for.


Create a demo instance

This has come up a couple of times but there's not currently a simple solution due the authentication requirement.

This has come up a couple of times but there's not currently a simple solution due the authentication requirement.

One traditional workaround could be to allow github user to be able to join planetscale's github organization as a member (e.g. see nvidia's approach on accessing their private repos, https://developer.nvidia.com/gameworks-source-github) or create a dummy organization, albeit not sure if that's an adequate approach.
With everything considered, cross authorizing userbase from planetscale.com to be able to login demo instance beam (and any future demo instances) maybe a better solution on paper.

I think it could be easy to do since okta allows to create a registration system where people could register in the test instance.

@jasonlong I wonder if an easy solution for this could be a demo instance that uses a simple credentialed login and a Vercel cron on an API route to delete all demo accounts, or just wipe the DB every 24 hours.

That sounds like a good solution. You'd need some sort of key to pass to the API route to ensure that only the cron job could wipe the DB and not just a random person calling the API.

Could easily be done using Vercel's recommended method!
https://vercel.com/docs/cron-jobs#how-to-secure-cron-jobs


"Amaru" is listed in the drop-down menu

Description:
"Amaru" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Amaru" in the search bar.

Expected results
The location is listed in the drop-down menu as "Amaru, Buzău".


NuGet Package with signed assembly

I am using it right now in an strong-named assembly. As there is no signed version of the assembly in the package, I cannot start my application.
For now I'll do it by myself, but it would be nice if this was added to the package in the future.

Hi @Skyppid,
Strong-naming has been the subject of endless debates for years, and the consensus is now that it's a remnant of the past, and that most open-source libraries probably shouldn't do it... See this article for details.
If for some reason you really need it, there are tools like this one that can automatically strong-name sign third-party assemblies.

Well I haven't read about that so far. Well then forget about it, I guess I got to update my knowledege on that part. Thanks for the fast reply, though!


deaths_lag_sweden_latest in CSV format

Would be nice to be able to get the exact data used to create deaths_lag_sweden_latest.png, perhaps in a CSV file. I found some of the data in covid_deaths_latest.csv but that file doesn't include your estimations. Specifically I'm most interested in the amount of deaths that occurred on each day when including the forecast of the to-be-reported deaths.

I'll output the predictions to a separate csv!

Thanks :)


Use atomics instead of mzmetrics

This replaces the use of the mzmetrics counter library with the built-in atomics library (as of Erlang/OTP 21.2).
Further, when updating a counter the persistent_term library is used to look up the reference to the atomics array and each metric is now assigned an specific index in this array. Caller processes cache the atomics array reference, so it doesn't have to lookup the value in the persistent_term store. Before using mzmetrics each metric used would cause the mzmetrics reference to be stored.
This implementation seems to be about %27 faster on average than the mzmetrics one.

Added the extra allocations as discussed and only allocate a new array if one didn't already exist


mini.pairs: Input lag for {} expansion

Contributing guidelines

[X] I have read CONTRIBUTING.md
[X] I have read CODE_OF_CONDUCT.md
[X] I have updated 'mini.nvim' to latest version

Module(s)
mini.pairs
Description
I very much appreciate the work and effort that is being put into the mini plugin collection, but
I have something to complain, and maybe a solution for it.
pairs.lua:390
-- Precomputed keys to increase speed
-- stylua: ignore start
local function escape(s) return vim.api.nvim_replace_termcodes(s, true, true, true) end
H.keys = {
  above     = escape('<C-o>O'), -- <<<< This is the offending line.
  bs        = escape('<bs>'),
  cr        = escape('<cr>'),
  del       = escape('<del>'),
  keep_undo = escape('<C-g>U'),
  -- NOTE: use `get_arrow_key()` instead of `H.keys.left` or `H.keys.right`
  left      = escape('<left>'),
  right     = escape('<right>')
}
-- stylua: ignore end

The issue arises from the fact the <C-o>O is used to add a blank line between opening and closing curly braces.
This mapping brings us briefly into normal mode, which triggers events we don't need -- that's what causes the lag.
A blank line above is all we want.
I rewrote the offending line to above = escape('<cr><up><C-f>').
This sequence keeps us in insert mode and there is no lag.
<C-f> ... reindent current line :h i_CTRL-F
Neovim version

Steps to reproduce

Expected behavior
No response
Actual behavior

Thanks for the issue!
This was already brought up and discussed in #626 with a detailed resolution in this comment.
However, I think I like the idea of using <C-f> for re-indent, but not with <Up> as it might be disabled by some users and seems to break some later remapping (like to work well with 'mini.completion'). Maybe <C-g>k could work, though.
That said, direct keys replace breaks tests and I did not manage to quickly figure out why exactly. Will take a look later.

This should now be fixed on latest main.
Although using <C-f> instead of O was promising, it has some problems. It does not necessarily reindents but puts directly ^F (needs either 'cindent' or 'indentexpr' option). Even disabling it with the equivalent of :autocmd InsertCharPre * if v:char == "\<C-F>" | let v:char = '' | endif, involving manual <Up> navigation has issues that it breaks the undo blocks (expanding in <CR> will need two u to fully undo).
The current approach of temporarily ignoring some events seems like the best alternative. It does not add much overhead (around 0.002 ms if triggered inside a pair), so let's hope there will not be any other unwatned side effects.


Stuck, Stream can't play video

After deploying and seting gdrive api key, i try to add video. But the video won't play i dont know why, something wrong?

Problem Fixed https://github.com/ArdiArtani/Google-Drive-Player-Script/commit/c45287ce95755abb9ecaa5183208a0719fd224ae


xWebConfigKeyValue: Updated schema.mof to include description for Ensure

Pull Request (PR) description
Updated schema.mof for xWebConfigKeyValue to include description for Ensure property.
This Pull Request (PR) fixes the following issues

Fixes #455

Task list

[x] Added an entry under the Unreleased section of the change log in the CHANGELOG.md.
Entry should say what was changed, and how that affects users (if applicable).
[ ] Resource documentation added/updated in README.md.
[x] Resource parameter descriptions added/updated in README.md, schema.mof
and comment-based help.
[ ] Comment-based help added/updated.
[ ] Localization strings added/updated in all localization files as appropriate.
[ ] Examples appropriately added/updated.
[ ] Unit tests added/updated. See DSC Resource Testing Guidelines.
[ ] Integration tests added/updated (where possible). See DSC Resource Testing Guidelines.
[x] New/changed code adheres to DSC Resource Style Guidelines and Best Practices.

This change is

Codecov Report

Merging #505 into dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev     #505   +/-   ##
=======================================
  Coverage   91.39%   91.39%
=======================================
  Files          17       17
  Lines        2661     2661
=======================================
  Hits         2432     2432
  Misses        229      229

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 bf23883...e10f393. Read the comment docs.


Is the miss vector segment load/store isa defintion?

The vector segment load/store definition seems to be missing inside this file, or is it somewhere else? Thanks.

In other words, Mavis will decode them, but will set various attributes in the return opcode info.  See example: https://github.com/sparcians/mavis/blob/2d098024a2fcb5e54123d518a611436017159edc/test/main.cpp#L619-L625


Can't do touch and click at the same time

I'm not familiar with key mapping, so I decided to move using my phone and move the camera, skills etc using the mouse.
The problem is when I click, my movement stops, and when I walk again, the camera or whatever I click will stop until I click again.
is there a way to fix this?

so I decided to move using my phone and move the camera

Sorry, I don't understand the context.
In a specific application mirrored by scrcpy?

I use scrcpy to mirror my phone to play genshin impact.
but I can't click on scrcpy and touch on my phone at the same time.


allow the user to have pool of ips they can set to their VDC

To have a public IP, it should be attached to a node which means if the VDC couldn't deploy the master VM on this node, it won't be able to use this public IP. And the only solution is removing this IP, and attaching it to another node. At this moment maybe someone else can take this IP.
The VDC deployer creates a new identity for each VDC, how can use the IPs of another identity?  AFAIK there is no sharing in pools or workloads between users (identities)

Proposal 1

a single identity is created for each user
all vdcs of the user are created using the user identity in separate pools (pool per farm for each vdc)
workloads are distinguished using vdc uuid in workload description (same as now)
public ips are reserved separately from vdcs and paid upfront (important)
each public ip has its own pool
will require atomic workload transfer between nodes (decomission and deploy the workload on a different node)
pools can have a description field to help in filtering (optional)


Is this SDK still under development state?

What is the question: Is this SDK still under development state?
I want to know when the next version of this SDK will be release, because I see many changes on the specifications, for example, https://github.com/serverlessworkflow/specification/issues/686  . If I want to contribute on this SDK, what should I do? which branch should I checkout and working on?

Hello @Flex-Xuan and thank you for your interest!
The SDK is still active! We are waiting for SW 0.9 for next release, which includes the PR you mentionned and many more.
As for contributing, which you are very welcome to, you should prefer using main.
Hope this answers your questions!

Ok, understood. Do you know when SW 0.9 will be finished.

It seems the SW 0.9 was released, when will we released the new SDK?

Do you need the 0.9? Reason I ask Is before the 1.0.0-alpha1 is gonna be released this week or next, and is a major overhaul of the spec, and I was thinking to skip the 0.9 and go straight to it.
If you fo need it, any chance you are up to contribute to it? Would allow me to keep focus on the upcoming DSL and Synapse.

Closing issue as stale


Change java to openjdk

In "Create your first Docker image using Java" step, change docker pull java to docker pull openjdk, since java has been deprecated in Docker Hub. Also, need to update all subsequent references to java in the instructions.

@ManoMarks merged and can be closed now.


Create a wil::resume_background coroutine that can cap the number of threads at a reasonable number

winrt::resume_background is the current state of the art for coroutines, background threads, and Windows programming.  As I understand it, cppwinrt would like to get out of the coroutine business and WIL is happy to fill this role.  See wil::resume_foreground.
One problem with winrt::resume_background is that it is unbounded for thread usage.  It will happily request lots and lots of threads if you schedule a bunch of calls all at once.  Once these threads reach a high enough number it becomes self-defeating and slows things down instead of making it faster.
It should be possible to use threadpool APIs such as SetThreadpoolCallbackPool to correlate these "background" coroutine calls with the Windows threadpool.  This would allow the number of threads to be capped.
Those APIs seem like they would be difficult to use, and to use correctly.  That means that a well-tested implementation in WIL would be valuable.
Having not thought deeply about exactly how this would look, what I have in mind is something like:
winrt::fire_and_forget DoThingAsync()
{
    co_await wil::resume_foreground(4); // will never use more than 4 background threads, including other calls in other functions
    // other code that runs on a background thread
    co_return;
}

I think a reasonable test case for this would be:
std::unordered_set<DWORD> backgroundThreads;
for (auto i = 0; i < 100; ++i)
{
  co_await wil::resume_background(4);
  backgroundThreads.emplace(GetCurrentThreadId());
}
// wait on all coroutines to have run
VERIFY(backgroundThreads.count() == 4); // may need a fudge factor if the number of threads never exceeds 4 but more than 4 different threads are ever used by the threadpool

Thanks @kennykerr for pointing out winrt::thread_pool which may satisfy this desire.
Usage seems to be roughly:
winrt::thread_pool myPool;
myPool.thread_limits(4, 1);

// elsewhere
co_await myPool;

Thanks @kennykerr for pointing out winrt::thread_pool which may satisfy this desire.
Usage seems to be roughly:
winrt::thread_pool myPool;
myPool.thread_limits(4, 1);

// elsewhere
co_await myPool;

@dmachaj Is this sufficient for your needs? It's a little odd that I have to go grab cppwinrt to use a threadpool coroutine, but maybe that's OK? The alternative is to port the cppwinrt thread_pool into WIL and provide additional convenience wrappers over it, like things that create lambda-based callbacks, in the same vein as the registry/file/etc watchers.

Yes, it's not specific to WinRT and would be more appropriate in a library such as this - much like @oldnewthing's other coroutine helpers.

This is unblocked for now so I'm going to close this out.  If someone wants to port the helpers over to WIL later then they can reactivate this issue.


Regarding changing from storing data in local machine to storing data in supabase's servers

Hi, I need to store the data in Supabase's servers rather than storing it in my local machine. How can i do that? which file in source code should i change?
Thank you!

Hi, I need to store the data in Supabase's servers rather than storing it in my local machine. How can i do that? which file in source code should i change?
Thank you!

Hi,
You can follow these steps:

Download repository

In the repository's root directory, run yarn install

Setup environment variables: duplicate .env.development, rename it .env.local and set the NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY environment variables to the URL and the anon key that you can get from supabase dashboard.

Run the following command (set --dbname to the postgres database URL ):

cd server/scripts && psql --single-transaction --variable ON_ERROR_STOP=1 --file tables.sql --file auth.sql --file rpc.sql --file folders.sql --file documents.sql --file shares.sql --file cron.sql --file realtime.sql --file storage.sql --dbname "postgres:..." && cd ../..

Rename @tiptap-pro-placeholder (shared/editor/extensions/@tiptap-pro-placeholder) to @tiptap-pro

To start the app in development mod, run npm run dev. To start the app in production mode, run npm run build then npm run start

Hope it helps you! (Let me know if you need more details)

Hi, I need to store the data in Supabase's servers rather than storing it in my local machine. How can i do that? which file in source code should i change?
Thank you!

Hi,
You can follow these steps:

Download repository
In the repository's root directory, run yarn install
Setup environment variables: duplicate .env.development, rename it .env.local and set the NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY environment variables to the URL and the anon key that you can get from supabase dashboard.
Run the following command (set --dbname to the postgres database URL ):

cd server/scripts && psql --single-transaction --variable ON_ERROR_STOP=1 --file tables.sql --file auth.sql --file rpc.sql --file folders.sql --file documents.sql --file shares.sql --file cron.sql --file realtime.sql --file storage.sql --dbname "postgres:..." && cd ../..

Rename @tiptap-pro-placeholder (shared/editor/extensions/@tiptap-pro-placeholder) to @tiptap-pro
To start the app in development mod, run npm run dev. To start the app in production mode, run npm run build then npm run start

Hope it helps you! (Let me know if you need more details)

The project does use Docker. How can I remove docker, and from storing everything on local machine to use supabase's Databases to store all the data including auth? and some projects use SUPABASE_DB_URL in .env but this project doesn't. How can I change all this WITHOUT need to run this command:
**cd server/scripts && psql --single-transaction --variable ON_ERROR_STOP=1 --file tables.sql --file auth.sql --file rpc.sql --file folders.sql --file documents.sql --file shares.sql --file cron.sql --file realtime.sql --file storage.sql --dbname "postgres:..." && cd ../..
**
?
Thank you:)

The project does use Docker. How can I remove docker, and from storing everything on local machine to use supabase's Databases to store all the data including auth? and some projects use SUPABASE_DB_URL in .env but this project doesn't. How can I change all this WITHOUT need to run this command:
**cd server/scripts && psql --single-transaction --variable ON_ERROR_STOP=1 --file tables.sql --file auth.sql --file rpc.sql --file folders.sql --file documents.sql --file shares.sql --file cron.sql --file realtime.sql --file storage.sql --dbname "postgres:..." && cd ../..
** ?
Thank you:)

Sorry for my late reply,
The SUPABASE_DB_URL variable you're refering to is called NEXT_PUBLIC_SUPABASE_URL in .env file (same for SUPABASE_ANON_KEY, called NEXT_PUBLIC_SUPABASE_ANON_KEY).
To run the different scripts it's easier to run the command you mentioned, as running each script manually on supabase SQL editor probably won't work because of relations... You should try to connect to supabase with psql and run the command.
Hope it helps!

Thank you brother! I will check and drop the results.


fixes to work with allegro-5.2

I had two issues trying to get this library to work and run the examples.
First, documenter.go wouldn't build because the go.net/html dependency couldn't be resolved. I updated the import path accordingly.
Second, https://github.com/liballeg/allegro5/commit/2852b07a92f0cb6c6fcff77221db56e203a850df changed the return type of the al_ferror() function from bool to int in allegro, with values !=0 indicating an error condition, so I updated the HasError() method accordingly.

I also updated all the pkg-config references because at least on my mac, allegro-5.2 is installing with a pkg-config conf file of allegro-5*.pc rather than 5.0

The changes that are intended to help it work with 5.2 should probably go into a separate 5.2 branch, but I'm not sure if Github allows opening PR's against nonexistent branches, so I'll have to figure out how to merge this properly.
Side note, do you know what version the al_ferror() change was made in?

It appears from the commit ref that the change lines up with the <IP_ADDRESS> tag. https://github.com/liballeg/allegro5/commit/2852b07a92f0cb6c6fcff77221db56e203a850df

Just merged into a new 5.2 branch. Please test it out and let me know if everything works as expected. I'll probably also make 5.2 the default branch for the repository and merge these changes into master as well.

Thank you Damien!
On Thu, Jun 16, 2016 at 10:23 AM, Damien Radtke<EMAIL_ADDRESS>wrote:

Closed #9 https://github.com/dradtke/go-allegro/pull/9.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dradtke/go-allegro/pull/9#event-694949012, or mute
the thread
https://github.com/notifications/unsubscribe/ABcFp5k3TqFJxV379Kkx3DNg05UnyKhQks5qMYaWgaJpZM4IMRVn
.


Contact Information

Contact Information
User Story
AS AN employer
I WANT to view a potential employee's deployed portfolio of work samples
SO THAT I can review samples of their work and assess whether they're a good candidate for an open position
Acceptance Criteria
GIVEN I need to sample a potential employee's previous work
WHEN I load their portfolio
THEN I am presented with the developer's name, a recent photo or avatar, and links to sections about them, their work, and how to contact them

My name, profile picture and links to the different sections have been added and tested in the Professional Portfolio application.


[DOC] TidyTuesday examples need to be cleaned up

https://pyjanitor.readthedocs.io/notebooks/tidytuesday_20190423.html

Title should be changed
Needs a pyjanitor intro rather than someone else's text copy-pasted (though maybe this could be included as a quote block to make it explicit that this is not janitor content)
Python warnings in output blocks need to be removed
Resulting dataframes from each step should be previewed in cell output

https://pyjanitor.readthedocs.io/notebooks/tidytuesday_20190430.html

Show original dataframe previews in cell output
Show resulting dataframe previews in cell output

Great catches, @zbarry! Thanks for doing these checks :smile: :tada:

@zbarry I'll fix up https://pyjanitor.readthedocs.io/notebooks/tidytuesday_20190423.html

Think this only resolves for one of the notebooks.


List block in a partitioned Markdown doc identified as a Title element under special conditions

I noticed that when the number of characters per line is very short in a list block in a Markdown document, the list is identified as a Title instead of a NarrativeText.
It prevents the chunking by title to work properly afterwards as I expect all content under a Markdown header to become a CompositeText to be indexed with an embedding function.
It is reproducible with the following python code:
from unstructured.partition.md import partition_md

md_text = """
# header 1
## header 2
My list
- item 1
- item 2
- item 3
- item 4
- item 5
## header 3
"""

elements = partition_md(text=md_text)

for el in elements:
    if el.category == "Title": print("{}: {}".format(el.category,el.text))

The moment any line of the list block (including the intro line) has more characters, the list block is then properly recognized as a NarrativeText.
Package version:
unstructured                             0.14.5

@nickphilip - Thanks for reporting this, we'll take a look as soon as we're able.

@MthwRobinson Turns out this behavior is produced by the markdown package, which is what partition_md() uses to convert Markdown to HTML.
md_text = """
My list
- item 1
- item 2
- item 3
"""

>>> markdown.markdown(md_text)

My list
- item 1
- item 2
- item 3

Adding a blank line before the list results in the expected behavior:
md_text = """
My list

- item 1
- item 2
- item 3
"""

>>> markdown.markdown(md_text)

My list

item 1

item 2

item 3

The "official" John Gruber spec and reference implementation specifies this behavior, that a list requires a blank line before it. The gist is that a word-wrapped line that just happens to start with a "-" or "*" should not be interpreted as a list item, like:
The computed value of 7
* 3 equals 21.

In practice, Markdown parsers are more clever about this and are able to distinguish author intent reliably without the blank line before the list.

Note that using the markdown_it package (already a dependency I believe, possibly for ingest), we get a "correct" conversion with or without the blank line.
My general impression, after poking around a bit, is that the markdown package is overly dogmatic, like adhering closely to the "original" standard from 2005 or so. I think what we care about is that the maximum number of legitimate Markdown files parse as they would be expected to, like how they appear on GitHub or whatever other site they came from.
This "defacto-standard" behavior is what the CommonMark standard articulates and markdown_it is CommonMark compliant. It's also somewhat more modern, being only 1 decade old rather than 2 :)
I'm inclined to think we'd be better off in general using the markdown_it package since I believe it would parse more Markdown documents the way the author intended and the way they appear when rendered on their source.

@nickphilip In the meantime, a workaround for this would be:
from markdown_it import MarkdownIt

md = MarkdownIt("commonmark", {"html": True}).enable("table")
html_text = md.render(md_text)
elements = partition_html(text=html_text)

Basically converting the MD to HTML yourself and then using partition_html() on the result.

Btw, @nickphilip what was the provenance of that problematic Markdown?
Is that something you just typed in by hand for experimentation purposes or did you have an actual "mis"-partitioning from a document from say StackOverflow or something?

@scanny - I found the issue testing unstructured.io against Markdown documents from public repos, as I noticed that my RAG app was not getting the expected context.
Great assessment of the root cause. Your workaround makes sense, but the fix would be preferable if one uses the runner (pipeline). Thanks!

@nickphilip when you say "public repos", does that imply this would be GFM (GitHub Flavored markdown) you're parsing?

@MthwRobinson After noodling this a bit and a little more research, I think there are four possible courses:

support "traditional" (maybe "legacy") Markdown (what we're doing today)
support CommonMark Markdown
support GFM (GitHub Flavored Markdown)
support multiple using a partitioning option of some sort

I think the right answer is 2 (CommonMark).

it solves this particular problem
it generally does the expected thing with traditional markdown
it does not interpret a single newline as a
 element (the way GFM does)

I'm not sure there's a perfect answer, but I think CommonMark provides the broadest coverage for what we care about when partitioning and so is a good step in the right direction. I think we'd all prefer to avoid a new partitioning option until we can show a compelling use case that requires it.


Send tasks automatically

Hi @hkgnp !
This plugin is really great, essential, wonderful... thanks again.
Do you think it would be possible to add an option (to check) to automatically send a task when there is TODO at the beginning of the line?

Do you mean sending with the default options?

My use case would be to have a synched state between logseq and todoist, preferably also synching status changes.
As a first step, it would be nice if you could define a keyword which then sends that block automatically to todoist (i.e. ^TODO)
So if a item changes project in todoist, this being reflected in logseq too and the original block being replaced with a reference.

An automatic sync would be really great.


Add authorization options to Nebula 2.0 service

replace 2.0 graphd configs with Nebula 1.0 version
add enable_authorize and auth_type options when start Nebula service

 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.