The column 'Dimensionality Cheon' in stable_materials_summary.csv is empty

The column 'Dimensionality Cheon' in stable_materials_summary.csv is empty

Apologies! Will upload an updated summary shortly.

Working on this! Sorry, more issues related to migrations from open-sourcing for the missing columns. I'll add more documentation about the csv as well.
The columns 'Dimensionality Cheon' and 'Is Train' will be populated shortly and 'Decomposition Energy Per Atom Relative' slightly thereafter.
For data such as the band gap, we have released the calculations that we have. We have not run calculations for all materials, so None likely corresponds to missing calculations np.nan often arises from parsing VASP outputs: similar to this catch: https://github.com/materialsproject/pymatgen/blob/ebd776900edfc45bd3b9f045e1e04db1e2d2752b/pymatgen/io/vasp/outputs.py#L133. I'll try to find another way to parse these files or rerun. If there is interest in bandgaps for specific family that we missed, let's chat!

I'll reply in this thread as there is progress!

We have not run calculations for all materials, so None likely corresponds to missing calculations
If you need help for computer power maybe we could make an api to get some materials to test and then send the ones that are stable. I think there's a lot of people out there that would like to help (including me)!
The only problem is that we need to be sure that the people sending the tested materials are really tested and they are not sending false information.


[stable/metrics-server] Support custom sidecar containers

Signed-off-by: Matteo Ruina<EMAIL_ADDRESS>What this PR does / why we need it:
Allow to run additional containers inside the metrics-server pod. For example, we're using the addon-resizer containers to automatically resize the metrics-server
Special notes for your reviewer:
Looking at other charts, the majority seem to use the extraContainers variable, but I'm happy to change it if needed
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/assign @olemarkus

/lgtm


Consider release it on Firefox

Currently, with Chrome Store Foxified, I can install this addon in Firefox Nightly and it is working okay for now.
WebExtensions will land on Firefox stable on August 2.
A guide on how to do so is available here

Duplicate of https://github.com/sindresorhus/refined-github/issues/71.
When Firefox 48 is released we'll look into it.

It's been released!
Refined GitHub for Firefox 🎉


feat(lint): add ignoreNull option to noDoubleEquals rule

Note: this is my first contribution/proposal to biome, and I was unsure of if I had to open an issue/discussion first for a relatively simple proposal like this one, or if writing it directly to not waste time was OK. Do not hesitate to tell me the preferred etiquette for potential future contributions, thanks.
Summary
The noDoubleEquals rule made an exception when checking against null, as it's a frequently used pattern to check against both null and undefined.
This not something that is always wanted by developers, some preferring no exception to this rule in the name of explicitness.
I also often seen == null used as a shortcut when people were unsure if some nullable value could also be undefined due to other factors not catched by a type checker (out-of-bounds array indexing or Record lookup on inexistent properties for example), in which case I do also prefer making such shortcuts less tempting to allow simpler future code updates.
The original eslint rule, eqeqeq, has an always option to disable specific handling of null. Here, I propose an ignoreNull option instead, by default set to true to not break API (and as it may be your recommended setting), because I found it much more explicit on what it does than the more vague always, though I don't really have any attachment to that naming if you prefer another one.
For implementation and documentation, I tried to look at how rules like useNamingConvention declared options and try to rely on more or less the same syntax and macros for its struct.
Test Plan
I added tests for invalid cases under the ignoreNull: false case, that I named invalidNoNull in the corresponding directory. I checked that their output seemed right.

Thanks!

Thanks for this feature. It helps a lot when trying to migrate to biome. One thing is there are also some project that standardizes on using == undefined instead of == null to check for undefined or null. Is it possible to allow that case as well?

Thanks for this feature. It helps a lot when trying to migrate to biome. One thing is there are also some project that standardizes on using == undefined instead of == null to check for undefined or null. Is it possible to allow that case as well?

Note that by default Biome already ignores == and != against null. ignoreNull was introduced for opting in ESLint always mode.
ESLint doesn't allow == and != against udnefined in any mode.
However, by symmetry with null, I am not opposed to also allow == and != against udnefined by default.
If we make the change, we should certainly replace ignoreNull with a more general option (maybe strict?).


check before reading from heap the buffer boundaries

Pull request
Choose Correct

[ ] bug
[X] feature

Describe the pull request

Check that length that going to read from (heap) buffer not exceeding the buffer length
To Reproduce

return to the server too big length
Expected behavior

Stuck (at least at dev flavors), probably heap corrupted
Screenshots

Desktop (please complete the following information):

OS:ubuntu
eRPC Version: v1.9.0

Steps you didn't forgot to do

[X] I checked if other PR isn't solving this issue.
[X] I read Contribution details and did appropriate actions.
[X] PR code is tested.
[X] PR code is formatted.

Additional context

Not sure if to add enter between the assert to the write

@Hadatko can you review this?

I see it is more complicated than I thought. No test currently has the use case I want to cover (that the server is allocating buffer with max size and afterward memcpy from it to the message buffer)


Better subtitles support

[x] Simplify. Remove redundant state.playing.subtitles.enabled. Remove hacks like regex-parsing the 'label' of each subtitle, using the label as the identifier, etc
[x] Detect subtitles next a video file automatically
[x] Default to the user's language instead of just the first subtitle track

I just tested your code, and the only problem I am getting is when adding multiples subtitles manually.

Add First subtitle. Subtitle is added and starts playing.
Add second subtitle. Subtitle is added and starts playing.
Add third subtitle. Subtitle is added but second subtitle keeps playing.

Oops, you already merge it. I will open an issue.

@grunjol yeah, right now it replaces the currently-playing subtitle only if it's in the OS language

see https://github.com/feross/webtorrent-desktop/blob/master/renderer/index.js#L639
that means you can drop a folder full of subtitles and it will pick the "right" one (eg if your computer is set to Spanish, it'll pick the Spanish subtitle track)
maybe we want a different behavior

My machine is in English.
I added the subs manually in this order, each one individually
First test

Start playing video
Add Portuguese => PT plays
Add French => FR plays
Add German => FR keeps playing

Second test

Start playing video
Add French => FR plays
Add German => DE plays
Add Portuguese => DE keeps playing

I dont know why the second is added and displayed buy not the third, and no matter the order the second is picked if no matching languages.
I agree with you, If you add a lot of subtitles you need to select which one to show, and its fine to try to select the OS-matching one. But if you add a new one, I expect that one to be selected regardless the OS language you are running.

But if you add a new one, I expect that one to be selected regardless the OS language you are running.

Agree that this is the right behavior.

Already done in #529

@grunjol i couldn't reproduce what you described with the second subtitle you added

@dcposch See https://github.com/feross/webtorrent-desktop/issues/534 -- it might need to be closed if it's already fixed


FAB icon tinting

Support for icon tinting using DrawableCompat.

Could you re-use the View#getForegroundTintList property as well for this purpose?


Request Onboarding to OSC Data Commons

Requesting onboarding for github user: jiahknee5
Request access to github team: <team-name(s)>
View teams here: https://github.com/orgs/os-climate/teams
Onboarding resources:

Data Commons environment setup
credentials.env file

Onboarding checklist:

[x ] new user invited to os-climate github org
[ ] user invited to requested teams

Please specify the team names you are requesting to join. Thanks.

Hi @jiahknee5 - you've been added to data commons project and odh team.  If you need access to any other projects (e.g., physical risk, implied temperature rise, transition analysis), please reply here.
@strawberry-baked-alaska

thank you


Add isWithRemove to condition field to hide close icon

This PR updates ConditionField with a 'isWithRemove' prop, which allows enabling / disabling of the remove button.
Here's an example of why this functionality is needed:
http://c.hlp.sc/47c2d62e537f

Pull Request Test Coverage Report for Build 2238

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 2236:
0.0%

Covered Lines:
11167

Relevant Lines:
11167

💛  - Coveralls


support for changing the actionbar text color

The title says all
Other notes:

This only support setting the color of title (sets titleTextStyle in the styles)
The ABS support may not be correct, as the code is based on the answer at http://stackoverflow.com/a/10357340/1523910
The Transparent and the Solid title colors are same.

closing as this is no longer maintained.


Guides roadmap

Below is the structured list of guides we'll want to add for developers.

Frontend

[x] Creating a Page
[x] Creating a Command & Shortcut
[x] Customizing Context Menus
[x] Customizing the Command Palette
[ ] Communicating with the GraphQL endpoint
[ ] Working with Editors & CodeMirror
[ ] Using a Component Library
[ ] Using @caido/frontend-utils (not available yet)

Backend

[ ] Sending HTTP requests
[ ] Storing Plugin Data
[ ] Handling Events
[ ] Using @caido/backend-utils (not available yet)

Examples

[x] Notebook

Distribution

[x] Store

I combined Creating a Command & Shortcut with Customizing the Command Palette. Let me know if I should split them but they went hand n hand.


pretty print resources json with sorted keys

This PR makes timelines and definitions easier to read and to handle with git. It also sorts object keys to prevent unnecessary changes when simply opening the timeline without modifying it in the editor.
The drawback is the file size, which increases because of the added characters. This PR does not provide any minifying script to run before packing the game.
Closes #269

How much of a difference does it make file size?

negligible, we are talking less than a small sprite

Pretty much what I thought, was wondering why it was listed as a concern in all honesty.

I believe Arnaud comes from webdev so in a website every byte counts :)


Customize default query keys

Is it possible to configure the convention used for query key generation?
I see that you can override the query key when using the generated hook, but this requires remembering to do so each time.  Instead, I'd like to configure how the query key is constructed project-wide because our APIs already have consistent hierarchical routes.
For ex., instead of this generated query key:
export const getGetResourceByIdQueryKey = (resourceId: number,) => [`/resource/${resourceId}`];

It would make a lot more sense in my project for the query key to be split by path segments, e.g.:
['resource', resourceId]

I don't see any obvious way to configure or override the convention used for query keys.
My motivation is to simplify query invalidation by having predictable query keys and support prefix invalidation.

Hello @mpetito-envative, not really the only thing that you can do at the moment is to override the options in the orval config. Could be a new option but how would you do it?

It seems like this would be a runtime behavior because the queryKey depends on properties passed into the query hook.
It is already possible to do something similar with the mutator override for the purpose of replacing the http request.  Perhaps a queryKey override would allow for replacement of the queryKeyFn at runtime?
Alternatively (or in addition), it might make sense to change the default convention used for queryKey generation.  I know this would be a breaking change, but I can't think of any disadvantage to splitting the route on / and it would offer an easy path for prefix invalidation if routes already represent a hierarchy.

It's also what I thought but if we do a sort of mutator I will need to pass the route and all params to the function. For the other one, could make sense but since it's a breaking change I will add it for the next major release

@anymaniax Any updates on this? This issue just bit me and I'm not sure how to move forward without hardcoding the path in some form and matching with a predicate.

+1. This is an awesome tool but the queryKey is blocking me from using it.

@missing1984 it's on my todo list for the next version. Sorry I have a lot of stuff to do lately

Another use case for query-key customisation is when there are more than one orval-generated api clients. If both that a /version endpoint for example, then the queries keys clash.

Did you guys manage to find a workaround?

I wrote a custom script base on "ts-morph" to process the generated file. It will be great to have native support though

@missing1984 Can you share it?

@knyzorg sure, https://gist.github.com/missing1984/907c2b6aef0206e8944ccbaea7c4d0a9 the script basically break key into arrays

I found a changelog item in 6.11. Is this possible now, I can't find an example in the doc. @anymaniax

Hello @missing1984, you can do it with this. It’s completely new and the doc is not complete about it but it’s like a mutator

Has anyone got this solution working? My queryOptions function isn't run by orval.

What is your config @OliverDudgeon?

// orval.config.ts
import { defineConfig } from 'orval';

export default defineConfig({
  apiName: {
    input: {
      target: './openapi.yaml',
      validation: false,
    },
    output: {
      mode: 'tags-split',
      target: './src/apiName.ts',
      prettier: true,
      client: 'react-query',
      override: {
        operationName: (operation) => operation['x-semantic-name'],
        mutator: {
          path: './src/custom-instance.ts',
          name: 'customInstance',
        },
        query: {
          useQuery: true,
          queryOptions: {
            path: './src/queryMutator.ts',
            name: 'mutator',
            default: true,
          },
        },
      },
    },
  },
});

// src/queryMutator.ts
export const mutator = (args: any) => {
  console.log('Mutator:');
  console.log(args);
};

export default mutator;

No console logs when running orval.

Using 6.12.0

I am currently trying on the react basic samples with this config and it seems to work properly.
import { defineConfig } from 'orval';

export default defineConfig({
  petstore: {
    output: {
      target: 'src/api/endpoints/petstoreFromFileSpecWithTransformer.ts',
      schemas: 'src/api/model',
      client: 'react-query',
      override: {
        query: {
          useQuery: true,
          queryOptions: {
            path: './src/api/mutator/queryMutator.ts',
            name: 'mutator',
          },
        },
      },
    },
    input: {
      target: './petstore.yaml',
    },
  },
});

@OliverDudgeon Do You have extra information that can help me reproduce this?

Don't have time tonight to figure out a minimal example but here is what I have.
This is my project, https://github.com/InformaticsMatters/squonk2-openapi-js-client-generator.

Update orval to @latest
Place this OpenApi, https://pastebin.com/EsN5cVUW, in the root as openapi.yaml
Add the mutator file below this
Add a path to it in queryOptions
Run npm i && npm run orval

// // src/queryMutator.ts
export const mutator = (args: any) => {
  console.log('Mutator:');
  console.log(args);

  return args;
};

export default mutator;

Hello @OliverDudgeon, I can reproduce a problem only when I use the path directly like the following. Otherwise it seems to work properly
{
 query: {
  queryOptions: './src/queryMutator'
}
}

@OliverDudgeon I did a fix will be in the next release

Ok this is even more strange. On 6.12.0, the error only happens on some of the generated files. I'm using mode: 'tags-split'. Two of my tags have the import statement missing when the others are fine.

hmm, i did try out the mutator but i found the getXXXQueryKey function remains unchanged. We're rely on this function to do cache invalidation..
Any idea how can i override the key getter function?

Hi, @missing1984
In the version 6.24.0 it is possible to override keys by specifying options in the custom hook that is generated. Could you please check this?

+1

+1

hmm, i did try out the mutator but i found the getXXXQueryKey function remains unchanged. We're rely on this function to do cache invalidation..
Any idea how can i override the key getter function? @anymaniax

I want to change the individual keys so that when I call getXXXQueryKey, it directly returns the key according to how I modify it. The idea is that I want to use getXXXQueryKey with a new key.
For example:
From:
export const getApiQueryKey = (params?: GetApiKeyParams,) => {
    return [`/api/apikey/`, ...(params ? [params]: [])] as const;
    }

To:
export const getApiQueryKey = (params?: GetApiKeyParams,) => {
    return [`MARKETS_SERVICE`, `/api/apikey/`, ...(params ? [params]: [])] as const;
    }

and use in:
await queryClient.prefetchQuery(getApiQueryKey(...))

v6.31.0 if queryOptions are placed in operations it failed to work

@missing1984 @AndrejNemec
For now I've created a script which searches for the getXXXQueryKey function return array and naively replaces that part of the code with a hardcoded string prefix:
https://gist.github.com/g-otn/76ed6c228b042597f54b20731d888857
You can use this script with the afterAllFilesWrite hook option, which sends the generated files (and folders) as args.
It seems to work well for now (Orval v6.31.0), but it'll probably break in the future.
Make sure to run it before prettier/etc.

@melloware
Hi!
I think that best and fast solution create option that can split route in array
Now:
const routeString = isVue(outputClient)
      ? getRouteAsArray(route) // Note: this is required for reactivity to work, we will lose it if route params are converted into string, only as array they will be tracked // TODO: add tests for this
      : `\`${route}\``;

Suggest:
const routeString = isVue(outputClient) || options.splitQueryKeyRoute
      ? getRouteAsArray(route) // Note: this is required for reactivity to work, we will lose it if route params are converted into string, only as array they will be tracked // TODO: add tests for this
      : `\`${route}\``;

https://github.com/orval-labs/orval/blob/852dce7746b33a246e408b4284a1f5f71caf4390/packages/query/src/index.ts#L1185C4-L1187C24

PR is welcome.

PR is welcome.

I need your help)). I don't understand how to build project to see my generated code with my fix

It seems there's a bit of confusion here. I got this working with the queryOptions field as stated above. An example:
// orval.config.ts
import { defineConfig } from 'orval';

export default defineConfig({
  name: {
    output: {
      [...]
      override: {
        query: {
          queryOptions: {
            path: './src/api/mutator/queryMutator.ts',
            name: 'mutator',
          },
        },
      },
    },
    [...]
  },
});

// src/api/mutator/queryOptions.ts
export const mutator = (args: any) => {
  const params = new URLSearchParams(window.location.search)
  const scope = params.get('scope')

  return {...args, queryKey: [`${args.queryKey[0]}?scope=${accountId}`]}
}

export default mutator

The mutator is evaluated at runtime, so you can use the window object, etc. If you put a breakpoint in the mutator function and run your site, you'll see what you're getting for args.


Implement YouTube OAuth2 login

This pull request...

[ ] Fixes a bug
[x] Introduces a new feature
[ ] Improves an existing feature
[ ] Boosts code quality or performance

Description
This PR adds a toggle to enable the OAuth2 capability found in the YouTube source manager. It also automatically stores & retrieves the refresh token for convenience of JMusicBot users (as the source manager does not do that itself.)
Quick summary of the login flow
Upon enabling OAuth2 (youtubeoauth2=true in the config.txt) the YouTube source manager will log the following:
[13:41:00] [INFO] [YoutubeOauth2Handler]: ==================================================
[13:41:00] [INFO] [YoutubeOauth2Handler]: !!!  DO NOT AUTHORISE WITH YOUR MAIN ACCOUNT, USE A BURNER !!!
[13:41:00] [INFO] [YoutubeOauth2Handler]: ==================================================

Navigating to https://www.google.com/device and entering the code will lead you to an OAuth2 page

(the source manager pretends to be a logged in TV client to play tracks)
Once allowed, the source manager logs a refresh token. For convenience, JMusicBot intercepts the log with a turbo filter & stores the refresh token as a file, youtubetoken.txt. The refresh token will be used when JMusicBot gets restarted to retrieve an access token.
Purpose
This should circumvent the "Sign in to confirm you're not a bot" message that people (particularly) on servers have been getting.
Relevant Issue(s)
Fixes #1588
Todo

[ ] The GUI can't seem to log the messages from the OAuth2 handler, they always end up in stdout. Have to yet look into why

It did not works for me. I cloned this branch and after executed run_jmusicbot.sh, in my config.txt did not appear the option youtubeoauth2

JMusicBot does not alter existing config files. You will need to manually add youtubeoauth2=true to your config.txt file.

JMusicBot does not alter existing config files. You will need to manually add youtubeoauth2=true to your config.txt file.

I have just did it, but after executed the .sh, youtubesource did not show me this log:
[13:41:00] [INFO] [YoutubeOauth2Handler]: ==================================================
[13:41:00] [INFO] [YoutubeOauth2Handler]: !!!   For anyone wondering, if you run the bot as a service on linux you can use 'sudo journalctl -u .service -f' to see the logs in real time and to find the code you need to enter into https://www.google.com/device.

i cant build the jar file, how can i build the java file? sorry im new to java things and i usually do php

i cant build the jar file, how can i build the java file? sorry im new to java things and i usually do php

@joseph23pronton
I made this a few years ago but try it: https://github.com/iamayod/jmusicbotselfupdateguide

Worked great for me as well!

I'll need to check the logging issue you described. A few concerns:

Do these tokens expire? (Do we need to capture the expiration somehow and re-request auth?)
Does this log message first appear only when trying to play something, or right when the bot starts? (Should we do a dummy request immediately if this feature is enabled?)
Should we have an enumeration so that owners can opt to receive the request via DM instead of in the logs?

They shouldn't expire by themselves (actual TVs using this stay logged in practically forever from my experience), though one likely could manually revoke them through their Google Account.
Right when the bot starts, more specifically when calling yt.useOauth2();
I guess we could see if this can be implemented in a neat way

If there is no expiration - so in theory this only happens once - maybe we just do both (log the message, and attempt to DM the owner).

I really wish there was a nightly build section, anyone have the latest prerelease version with this fix?

Can someone please build a .jar file for this?

I've made a PR that adds a new page to the wiki: #1714
Ideally we'll wanna merge this PR & the docs PR roughly at the same time, as I'm referring to the new wiki page in here:
https://github.com/jagrosh/MusicBot/blob/96ffcd8291488ac97b0f25edc958a97986aadcfa/src/main/java/com/jagrosh/jmusicbot/audio/AudioHandler.java#L210

Can someone release this build?

The issue with (enabled) GUI not logging the instructions is caused by lavalink's youtube source logging the message before the GUI gets initialised & intercepts the log messages
https://github.com/jagrosh/MusicBot/blob/859e5c5862decf433f8face5eaca3372d7d27b22/src/main/java/com/jagrosh/jmusicbot/gui/ConsolePanel.java#L39-L40
A fix for this could be to just initialize the GUI earlier... or we could do nothing as we are also DM'ing the bot owner through Discord.

Adding youtubeoauth2=true to the config.txt and then starting the bot doesnt do anything.
The prompt to add the code does not appear.

It looks like people are still encountering an error stating "Invalid status code for player api response: 400" that I have to yet look into

I'm uncomfortable merging this at the moment, as YouTube seems to have begun making sign in via OAuth2 ineffective.

Google probably has rolled out a fix for this workaround to everyone by now.


Import/Export properties of ride /vehicles

I create a "stadium seating, following this tuto : https://www.youtube.com/watch?v=iyRwic53eus
I use your plugin to set the X/Y/Z position of each vehicle (and i have... many many many vehicles)
If i'm doing something like close the ride, activate the building mode... all vehicles are reset..
So my idea is : Add the feature to export all settings of a ride and its vehicle, and of course, the feature to re-import them..
If I spend 3 hours customizing the ride and i'm doing something wrong, it could be great to easily restore all settings

Hello, thank you for your suggestion. I think some import/export/saving/loading of vehicle configurations is a good idea for a feature yes. I'll take it into account for when I get around to develop the next version of RVE. 😃

Gonna be closed by #121


Fixing Weather Display and Pause Timer

Fixing UI for Weather Display and Pause Timer
User Story
As a user of the Pilot application website,
I want to see a clear user interface,
So that I can use and navigate easily through the options provided.
Acceptance Criteria
GIVEN the Pilot application website,
WHEN the timer is running and the left panel is opened to stop the timer,
THEN the weather display does not appear while the timer is running.
GIVEN the Pilot application website,
WHEN the timer is paused and it is stopped at the same time,
THEN the pause UI function must be cleared and it should not show the next time the timer is started.

Is this not completed?


Deal with sites with lots of missing data

Jordan's example plots sites as small gray dots if they're missing too much data to plot with colors.
Gray dots could be the solution both for #25 (this issue) and #24 (deal with sites with a few missing daily points)

Fixed by @wdwatkins in #62


PVC not found

https://github.com/Altinity/clickhouse-operator/blob/0.6.0/docs/custom_resource_explained.md
Follow the instruction here and cannot allocate specific PVC, fail to create specific Pod.

Any details available?

it's my mistake.
After I added the volumeClaimTemplates named: chpvc,
volumeClaimTemplates:
  - name: chpvc
    reclaimPolicy: Retain
    spec:
      accessModes:
        - ReadWriteOnce
      volumeMode: Filesystem
      resources:
        requests:
          storage: 5Ti
      storageClassName: clickhouse-storage

I added the template named chpvc in the podTemplates block,
volumes:
  - name: chpvc
    persistentVolumeClaim:
      claimName: chpvc

instead of this inside containers block.
volumeMounts:
  - name: chpvc
    mountPath: /var/lib/clickhouse

it worked just fine after I remove the volumes part.


test_full.py working but results in exception

Running python test_full.py works, but gives the following exception as score and pred_seg are not defined in the test() method:
Traceback (most recent call last):
File "test_full.py", line 228, in
main(args)
File "test_full.py", line 139, in main
test(test_loader, model, args)
File "test_full.py", line 112, in test
return score, pred_seg
NameError: name 'score' is not defined

Hi Jonathan,
Thanks for your contact about the bug. Please just remove the line 112 in
test "return score, pred_seg". It should work now. If not, please let me
know and I will check the problem further.
Best,
Yao
On Sun, Jun 10, 2018 at 2:15 AM, Jonathan Rubin<EMAIL_ADDRESS>wrote:

Running python test_full.py works, but gives the following exception as
score and pred_seg are not defined in the test() method:
Traceback (most recent call last):
File "test_full.py", line 228, in
main(args)
File "test_full.py", line 139, in main
test(test_loader, model, args)
File "test_full.py", line 112, in test
return score, pred_seg
NameError: name 'score' is not defined
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/yaq007/Autofocus-Layer/issues/1, or mute the thread
https://github.com/notifications/unsubscribe-auth/APj3E8fIOiOcpuuatNYe-4S8iOe7j8DTks5t7BCvgaJpZM4UhbwF
.


Testnet and Regtest

Does this wallet also have a version for Testnet and Regtest? Does it support a custom Signet?

OK, is there an estimate of when there will be a testnet version?

Why aren't you happy with the signet version? Signet is better than testnet.

No problem is that it would be cool to have other networks too.


Remove artifacts of obsolete Profiles (fixes #289)

Only OAS (and ClassDiagram) had to be changed.
No changes in ProfileList, ProfileInstanceList and CONFIGfile.

In regards to 1.:
Corrected 2 occurrences in the OAS.
Thanks!
In regards to 2.:
Corrected 8 occurrences each in the OAS.
Many Thanks!


The format of the wav file is unknown.

I get a RuntimeError when I run the fourth Try out random prediction codebase present in test.py. in Setup.
I found that the format of the wav file in data/test was unknown.
I opened this wav file in audacity, but it showed up as a file of unknown format.
Is this wav file the correct one?
Sorry if this is my mistake.
The full text of the error is below.
> python3 test.py
Mixture file is present at following location: /home/shun/aicrowd/music-demixing-challenge-starter-kit/data/test/Mu - Too Bright/mixture.wav
Traceback (most recent call last):
  File "/home/shun/aicrowd/music-demixing-challenge-starter-kit/evaluator/music_demixing.py", line 142, in run
    self.evaluation()
  File "/home/shun/aicrowd/music-demixing-challenge-starter-kit/evaluator/music_demixing.py", line 129, in evaluation
    self.prediction(mixture_file_path=self.get_music_file_location(music_name),
  File "test.py", line 52, in prediction
    x, rate = sf.read(mixture_file_path)  # mixture is stereo with sample rate of 44.1kHz
  File "/home/shun/.local/share/virtualenvs/music-demixing-challenge-starter-kit-dMCFg2FA/lib/python3.8/site-packages/soundfile.py", line 256, in read
    with SoundFile(file, 'r', samplerate, channels,
  File "/home/shun/.local/share/virtualenvs/music-demixing-challenge-starter-kit-dMCFg2FA/lib/python3.8/site-packages/soundfile.py", line 629, in __init__
    self._file = self._open(file, mode_int, closefd)
  File "/home/shun/.local/share/virtualenvs/music-demixing-challenge-starter-kit-dMCFg2FA/lib/python3.8/site-packages/soundfile.py", line 1183, in _open
    _error_check(_snd.sf_error(file_ptr),
  File "/home/shun/.local/share/virtualenvs/music-demixing-challenge-starter-kit-dMCFg2FA/lib/python3.8/site-packages/soundfile.py", line 1357, in _error_check
    raise RuntimeError(prefix + _ffi.string(err_str).decode('utf-8', 'replace'))
RuntimeError: Error opening '/home/shun/aicrowd/music-demixing-challenge-starter-kit/data/test/Mu - Too Bright/mixture.wav': File contains data in an unknown format.

Traceback (most recent call last):
  File "test.py", line 64, in <module>
    submission.run()
  File "/home/shun/aicrowd/music-demixing-challenge-starter-kit/evaluator/music_demixing.py", line 148, in run
    raise e
  File "/home/shun/aicrowd/music-demixing-challenge-starter-kit/evaluator/music_demixing.py", line 142, in run
    self.evaluation()
  File "/home/shun/aicrowd/music-demixing-challenge-starter-kit/evaluator/music_demixing.py", line 129, in evaluation
    self.prediction(mixture_file_path=self.get_music_file_location(music_name),
  File "test.py", line 52, in prediction
    x, rate = sf.read(mixture_file_path)  # mixture is stereo with sample rate of 44.1kHz
  File "/home/shun/.local/share/virtualenvs/music-demixing-challenge-starter-kit-dMCFg2FA/lib/python3.8/site-packages/soundfile.py", line 256, in read
    with SoundFile(file, 'r', samplerate, channels,
  File "/home/shun/.local/share/virtualenvs/music-demixing-challenge-starter-kit-dMCFg2FA/lib/python3.8/site-packages/soundfile.py", line 629, in __init__
    self._file = self._open(file, mode_int, closefd)
  File "/home/shun/.local/share/virtualenvs/music-demixing-challenge-starter-kit-dMCFg2FA/lib/python3.8/site-packages/soundfile.py", line 1183, in _open
    _error_check(_snd.sf_error(file_ptr),
  File "/home/shun/.local/share/virtualenvs/music-demixing-challenge-starter-kit-dMCFg2FA/lib/python3.8/site-packages/soundfile.py", line 1357, in _error_check
    raise RuntimeError(prefix + _ffi.string(err_str).decode('utf-8', 'replace'))
RuntimeError: Error opening '/home/shun/aicrowd/music-demixing-challenge-starter-kit/data/test/Mu - Too Bright/mixture.wav': File contains data in an unknown format.

i guess this is a git-lfs error (do you really have valid files on your disk - did you check the filesize?)
Python 3.9.1 (default, Dec 10 2020, 10:36:41)
[Clang 11.0.0 (clang-1<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import soundfile as sf
>>> sf.read("data/test/Mu - Too Bright/mixture.wav")
(array([[-0.09933472, -0.09863281],
       [-0.11071777, -0.08987427],
       [-0.12136841, -0.08178711],
       ...,
       [-0.04922485, -0.08898926],
       [-0.04959106, -0.08755493],
       [-0.04937744, -0.08685303]]), 44100)

@tkeshun, adding to above comment.
In your repository please try out the following:
git lfs pull

In case this command fails, you need to install git-lfs in your system or upgrade your git version.
Please let us know in case you continue facing the issue.

@skbly7
I got the git-lfs error as you suggested.
Here is what I did.
I checked the file size.
ls -l * | awk '{print $5}'
132
132
132
132
132

The file size was 132 bytes, which is very small.
I installed git lfs and ran git lfs pull on data/test//Mu - Too Bright.
ls -l * | awk '{print $5}'
1234844
1234844
1234844
1234844
1234844
```

```
> python3 test.py May 06, 2021 02:45:35 PM
Mixture file is present at the following location: /home/shun/aicrowd/music-demixing-challenge-starter-kit/data/test/Mu - Too Bright/mixture.wav
/home/shun/aicrowd/music-demixing-challenge-starter-kit/data/test/Mu - Too Bright/mixture.wav: prediction completed.
Successfully generated predictions!

The file was successfully executed.
Thank you for your help!

Glad to hear it!
Closing this issue and waiting to see you on the leaderboard soon. 🚀


Redis cluster not supported

Describe the bug
When using a redis cluster as the store some operations fails.
To Reproduce
1 setup a redis cluster, the hosted version on Azure can be used
2 configure the connection
3 try to add multiple providers, change soe of them etc
4 exveptions are thrown
Expected behavior
no eceptions

@bearish the fix preview is deployed on nuget : https://www.nuget.org/packages/Aguacongas.AspNetCore.Authentication.Redis/3.1.1-preview0017
Can you confirme it's fixed ?


resolving the problem in issue #57

I've added the "angularts" keyword for searching Javascript files. for better suppport for angular2.

thank you. i will merge this. can you please insert the missing space character, so that it matches the code style.

thanks for your advice, I implemented it.


Add possibility to possibility to extend DropwizardApacheConnector

Problem:
Some users want to have more fine-grained Jersey-Apache HTTP client integration. For example, more elaborate behavior during retrying of with the chunked encoding enabled.
Solution:
Make the getEntity method of DropwizardApacheConnector protected and provide a new method for creating an own implementation of DropwizardApacheConnector in JerseyClientBuilder.
Result:
Powerful users are more happy with Dropwizard and don't need to copy-past classes to customize them.

@arteam should we merge this into master as well?

Applied to master as e40ed6c


Could not download from vod-platfo rm.net

log file
youtube-dl --verbose "https://www.vod-platfo
rm.net/embed/3r6jVBuRrAWx2x5BJGyiHA?responsive=1&autoplay=0&RelVideos=0"
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://www.vod-platform.net/embed/3r6
jVBuRrAWx2x5BJGyiHA?responsive=1&autoplay=0&RelVideos=0']
[debug] Encodings: locale cp1256, fs mbcs, out cp720, pref cp1256
[debug] youtube-dl version 2017.10.29
[debug] Python version 3.4.4 - Windows-7-6.1.7601-SP1
[debug] exe versions: ffmpeg N-64796-gd5ee358
[debug] Proxy map: {}
[VODPlatform] 3r6jVBuRrAWx2x5BJGyiHA: Downloading webpage
[VODPlatform] 3r6jVBuRrAWx2x5BJGyiHA: Downloading m3u8 information
WARNING: Failed to download m3u8 information: HTTP Error 403: Forbidden
[VODPlatform] 3r6jVBuRrAWx2x5BJGyiHA: Downloading MPD manifest
WARNING: Failed to download MPD manifest: HTTP Error 403: Forbidden
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug
. Make sure you are using the latest version; type  youtube-dl -U  to update. B
e sure to call youtube-dl with the --verbose flag and include its complete outpu
t.
Traceback (most recent call last):
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpk63cqkyt\bu
ild\youtube_dl\YoutubeDL.py", line 784, in extract_info
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpk63cqkyt\bu
ild\youtube_dl\extractor\common.py", line 434, in extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpk63cqkyt\bu
ild\youtube_dl\extractor\vodplatform.py", line 30, in _real_extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpk63cqkyt\bu
ild\youtube_dl\extractor\common.py", line 1072, in _sort_formats
youtube_dl.utils.ExtractorError: No video formats found; please report this issu
e on https://yt-dl.org/bug . Make sure you are using the latest version; type  y
outube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and
include its complete output.
youtube-dl is up-to-date (2017.10.29)

can explain more !!!!!


Doc updates

@dvargas92495

A couple of odd things I noticed while doing this:

all of my docs/applications/* 404

No idea why.  I can't find anything unique about that directory compared to the rest.  Even the network tab 200's.

my local logseq menu item didn't conform to the new name: LogSeq (hence the change)

There is a Samepage menu item on the live version and not locally.

Im in the middle of changing how docs/applications works to pull dynamically from separate app repos - could be some growing pains here until its stable

We should def filter out samepage from the side panel here

I don't see this on the live site anymore so I'm assuming you fixed it in the recent commits.


Add Difficulty column to Questions

Please add the difficulty column (string) to the questions model. Please also update the corresponding serialisers so that difficulty can be access via its corresponding endpoints.
On the model, use the following syntax to ensure the difficulty can be of the following options: Easy, Medium, and Hard.
format = models.CharField(
        choices=(
            ("t", "text"),
            ("h", "html"),
            ("m", "mathjax"),
        ),
        max_length=1,
    )

Hi @MathyouMB - can myself or @aidutcher take this? We are peer programming together. Only Alec would submit a PR.

Hi @MathyouMB - can myself or @aidutcher take this? We are peer programming together. I would submit the PR with credit to him.

Hey :)
Yeah for sure! I'll assign you to this.


Conditionally include jose from env var or sibling directory

Signed-off-by: Christian Heimes<EMAIL_ADDRESS>

Can we just do away with all this custom linking code? We now ship jose in Fedora. Can we just link against the system jose?

I made the custom linking optional. It's useful for local testing and development against an unreleased version of jose. My development process relies on it.


cleanup: use absl::make_unique instead of our own

This is used only internally. Well, it may be used in a header, but it doesn't affect any of our public APIs -- it's just a function call.

This change is

I just sent #4097 to fix the unrelated clang-tidy problems.

I think the build failures are because our CMake configuration files are missing a find_dependency(absl) or something similar, probably around here:
https://github.com/googleapis/google-cloud-cpp/blob/694a426ccb6e7380fe20c73cb12e6b0ad8393fc9/google/cloud/config.cmake.in#L15

I think the build failures are because our CMake configuration files are missing a find_dependency(absl) or something similar, probably around here:
https://github.com/googleapis/google-cloud-cpp/blob/694a426ccb6e7380fe20c73cb12e6b0ad8393fc9/google/cloud/config.cmake.in#L15

Thank you. That was exactly the bug I was trying to track down -- very helpful!


Server: keep Postgres static schema

Hello team,
We had this conversation in Gitter, but I want to make it official here.  I was wondering if you folks agree to keep Postgres statics schema DDL in the Iglu server?
I saw #193 and #194  but they seem to be a bit far for now.

Can you clarify what Postgres statics schema DDL is?

Like the .sql files in Iglu Central (i.e. https://github.com/snowplow/iglu-central/tree/master/sql/com.amazon.aws.cloudfront) but in Iglu Server.

Yes but the links in the tickets are not working. Can I ask for the working links so that I can review the plan details, please?

Sorry @szareiangm, I afraid there's no working links for these tickets. And unfortunately we don't have any ETA on full Postgres support yet (though many open source users are interested in it). But PRs for schema-ddl can significantly speed-up this process.

Thanks @chuwy . After spending some time, I understood that Iglu-server cannot generate Redshift schema but Igluctl can generate schema for Redshift.
Postgres and Redshift have similarities, and the schema-ddl code could be reused for Postgres, too. How about this plan below?

In schema-ddl: Taking out the mutual codes to a different package, called something like sql. This package might have some traits/abstractions to keep the structure the same for higher levels of the code using it.
In schema-ddl:  Add Postgres DataTypes and syntax in the new package.
In iglu-server: Add the capability to call DdlGenerator for the schema.

I will do it in steps with separate pull requests with separate issues.
cc @alexanderdean  @nafid

Hey @szareiangm,
Thanks for your interest in this and sorry for slightly delayed response. I have few points here:
I like the plan overall, but little bit hazy on first step. Although abstracting over SQL DDLs sounds like a good idea in theory, I'm not 100% sure that this is a good idea in practice. Problem is that SQL DDLs usually differ in a most important for us nuance: data type definitions. As an example, you can take a look at Snowflake AST which is quite different. And we definitely want have data types as sealed hierarchy. Same for columns definition: column options can be very different.
I'm not saying that I disagree with this step, but at least if we'll take this path we need be sure that we don't loose any preciseness on DDLs. E.g. we cannot have definitions like:
case class Column(name: String, sqlType: SqlType, sqlOptions: SqlOptions)

As its very lossy type, we won't be able to inspect it as pretty much anything will be able to extend SqlType and SqlOptions. In a slightly similar fasion though, I can imagine following definition:
case class Column[T <: SqlDdl](name: String, sql: SqlType[T], sqlOptions: SqlOptions[T])

In summary, this is a very hard trade-off between boilerplate (until now, I was leaning towards boilerplate) and possibly leaky abstractions.
One more very important point is that if we'll implement your roadmap, we'll still be missing one very important building block in Postgres support. Namely, we don't have a Postgres support in RDB Shredder (https://github.com/snowplow/snowplow-rdb-loader/issues/47).

@chuwy Good morning from Toronto!
What is your suggestion? Sealing the datatypes and column options inside the redshift package and have duplicate similar ones for postgres?
About Postgres support in RBD Shredder, I gotta spend some time and understand the dynamics of it. I am not sure if that blocks this plan.

Hey @szareiangm!

About Postgres support in RBD Shredder, I gotta spend some time and understand the dynamics of it. I am not sure if that blocks this plan.

Sure, please feel free to ask questions. In short: enriched events is our canonical TSV, containing all common fields (e.g. event_id, collector_tstamp etc) as well as self-describing JSONs (contexts, unstructured events). And Shredder is a Spark transformer job that transforms this heterogeneous TSV+JSON into something more friendly for particular DB (in our case Redshift) like TSV.

What is your suggestion?

Sorry, I'm not entirely sure yet. Most specific suggestion is in previous comment. However, right now I'm totally fine with boilerplate solution. This is super-important for our use case to prevent constructing following non-sense objects, like:
Column("foo", redshiftType, postgresOptions)

And current single hierarchy does not prevent it. It can be not a big deal for object-construction, but will be a huge problem for parsers.

Sure, please feel free to ask questions. In short: enriched events is our canonical TSV, containing all common fields (e.g. event_id, collector_tstamp etc) as well as self-describing JSONs (contexts, unstructured events). And Shredder is a Spark transformer job that transforms this heterogeneous TSV+JSON into something more friendly for particular DB (in our case Redshift) like TSV.

Thanks for the kind explanation, invaluable and enlightening. I think that would be the next step in my plan. There is room for progress in every aspect of the codebase when we extending it to new data sinks.  I will get back to you for shredding when I read its code more throughly, however for now, I have to have schema generated out of iglu-server as the first step.

Sorry, I'm not entirely sure yet. Most specific suggestion is in previous comment. However, right now I'm totally fine with boilerplate solution. This is super-important for our use case to prevent constructing following non-sense objects, like:
Column("foo", redshiftType, postgresOptions)
And current single hierarchy does not prevent it. It can be not a big deal for object-construction, but will be a huge problem for parsers.

I think since Redshift is based on Postgres 8 with some commercial additions, the difference in types and options that we are worried about are potentially minimal. However, we can decided on the solution for the potential issues as we move forward. Let's move on and and have a look at my PR for first step, and then I can submit the second step PR. I appreciate your positive and open attitude.

Migrated to https://github.com/snowplow-incubator/iglu-server/issues/13


Expanded guides for some APIs and Microservices challenges and fixed links to the source files

I certify that:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Attention Mods: There are two earlier PRs (#35315 and #35322) which make changes to one or more files on this PR.  Please review/merge them first.  This may result in merge conflicts on this PR, but the OP or you can resolve then.

I'm wondering if we should remove all the links at the bottom that say "Help our community expand these hints and guides" - since there will be a link and info like that at the bottom of all the guide articles with the latest master.


Question: Can relationship resources always have id and type?

Hello!
Firstly, I'm not 100% sure if this is the right place as I'm new to the gem. If it's not correct them I'm happy to move it as required.
We found this gem and am very excited about using it due to the very impressive performance. We are currently using ActiveModelSerializers in our app and are looking to migrate away in favour of this gem. I have everything working with the exception of one thing:
We have an Ember front-end and the devs on that team have said that when Ember uses a jsonapi API, we should always have id and type in the data object of a relationship as Ember maintains a data cache and if they are missing Ember will assume that those entities are no longer present. This should be irrespective of if the relationship is included or not.
For example, if we have a resource that belongs_to an account and we don't include account we get this:
"relationships": {
  "account":{
    "meta":{"included": false}
  }
}

If we include account we get this:
"relationships": {
  "account":{
    "data":{"type":"accounts","id":"26524"}
  }
}

Is it possible to always have the type and id of a related resource even if it isn't included? Maybe something like this is useful:
"relationships": {
  "account":{
    "data":{"type":"accounts","id":"26524"},
    "meta":{"included": false}
  }
}

This is the only thing stopping us from removing AMS and moving to jsonapi-rb.
Thanks in advance!
Andy
❤

Hey, sure, simply do
belongs_to :account do
  linkage always: true
  # ...
end

Thank you! Works a treat! 💜


Some hidden icons would re-appear after updating the plugin

For instance, the hidden "New Excalidraw drawing" icon would re-appear after updating the excalidraw plugin.
zsviczian/obsidian-excalidraw-plugin: A plugin to edit and view Excalidraw drawings in Obsidian

Okay, if it disappeares again its normal. If it doesn't, the ID or Name of the Command probably has changed and this Plugin doesn't know anymore that it should hide it.

Further tests show that the hidden MOP icon would re-appear whenever re-starting Obsidian.


Use Time-Based Chunking to Calculate Features

Currently, we have some code in the featurebuilder that allows us to analyze only the first X% of chats, where X is defined relative to the number of chats in the conversation:
Code initializing the FeatureBuilder class:
    def __init__(
            self,
            input_file_path: str,
            output_file_path_chat_level: str,
            output_file_path_user_level: str,
            output_file_path_conv_level: str,
            analyze_first_pct: float=1.0
        ) -> None:

Then, in get_first_pct_of_chat(), we truncate conversations to the first X%:
    def get_first_pct_of_chat(self) -> None:
        """
            This function truncates each conversation to the first X% of rows.
        """
        chat_grouped = self.chat_data.groupby('conversation_num')
        num_rows_to_retain = pd.DataFrame(np.ceil(chat_grouped.size() * self.first_pct)).reset_index()
        chat_truncated = pd.DataFrame()
        for conversation_num, num_rows in num_rows_to_retain.itertuples(index=False):
            chat_truncated = pd.concat([chat_truncated,chat_grouped.get_group(conversation_num).head(int(num_rows))], ignore_index = True)

        self.chat_data = chat_truncated

This Issue proposes doing so using the time in the conversation, rather than the percentage of chats. That is, similar to how we have now implemented time chunking based on time (see: https://github.com/Watts-Lab/team-process-map/issues/139), we would look at the first X% (time-wise) of a conversation, using the timestamps.

Chunking logically based on time is really important for some of the stuff I have done and, using LIWC I have had to insert special characters to split on which is a pain. This would be a great feature! A separate way of thinking about this (which might be easier to implement) would be to allow users to define chunks of text to be investigated separately by including a new column for time period that is populated with either numbers (1,2,3) or labels (practice, performance 1, performance 2, etc.). For example, I have text from lab experiments and I may want to have all the conversation from the practice period to be analyzed separately from the performance period. Those periods may not be based on the same amount of time for each group so some label might be necessary, hence the extra column.


Updated docs. Replaced example argument to be -debug

Updated docs as per [comment] (https://github.com/mesos/chronos/pull/337#issuecomment-70179794)

LGTM

Thanks!


Nerf EShield and Noslips Uplink prices.

About the PR
Due to the fact that EShield and Noslips are a must buy for nukies, and both far outlive their usefulness due to how powerful not being able to slip is, as well as the ability to disguise the shoes, and the Eshield blocking enough damage to make a blood red hardsuit that much more tanky, 6 TC Eshields were way too OP for their effectiveness and price. 2 TC noslips as well. Making both purchases trivial at best and a must-buy for most nukie rounds. Though this change is mostly intended for nukies, it will also affect traitors in regards to the eshield.
Why / Balance
I have nerfed the price of both noslips as well as the Eshield, they were former 2 TC and 6 TC previously, I have increased the prices from 2 TC to 4 TC for the noslips, and from 6 TC to 12 TC for the Eshield. Making them more of an investment at the very least, reducing the effective TC that nukeops would have available from where before an entire team of nukies could buy 1 eshield each and be left with 34 TC, or 170 TC total for the entire 5 man team, which would lead to them buying an eshield for every situation which lead to a nukie meta that was very difficult to counter effectively. Now they would have to invest 60 TC total for every team member to have an eshield, rather than 30 TC.
Changelog

tweak: Noslips and Eshields have had their prices increased in the Nuclear Operative Uplink, from 2 TC and 6 TC, to 4 TC and 12 TC respectively.
tweak: Eshields have had their price increased in the traitor uplink from 6 TC to 8 TC.

12 tc for a defensive option is a bit much, considering the energy sword is 8 tc. If you REALLY feel the shield needs a nerf, maybe increasing it 8 would be better, the noslips don't need a change since nukies shouldn't be able to be countered by a bar of soap under any circumstances.

Objectively better options are not good.

12 tc for a defensive option is a bit much, considering the energy sword is 8 tc. If you REALLY feel the shield needs a nerf, maybe increasing it 8 would be better

the energy shield completely counters all lasers. all. lasers. the most common type of weapon, completely countered. 12tc makes the energy shield from something nukies can buy and be set for the rest of the ops to something they actively have to think about. Even 8tc I think is too low to make energy shield's usage drop.

keep noslips at 2tc it hurts traitor too much imo

keep noslips at 2tc it hurts traitor too much imo

Yeah I had to create 2 separate listings, 12 TC eshield was too much to be worth it for tators, so I instead made an 8 TC version for traitors, and a 12 TC for Nukies. And noslips are staying 2 TC for traitors, but being bumped up to 4 TC for nukies.

how about you train players on how to shoot bullet based weaponry at things that counter lasers

how about you train players on how to shoot bullet based weaponry at things that counter lasers

A nukie can almost survive a full WT550 clip being hit by every single shot, they just barely got downed. A completely unarmored person doesn't even have 25 damage after being shot with 10 shots from the captain laser gun.
https://github.com/space-wizards/space-station-14/assets/106132477/95065900-4dc2-4adb-b221-058f5d6862fa

Why should no-slips be 4 TC when blood-red mags are also 4 TC and overall superior?

Why should no-slips be 4 TC when blood-red mags are also 4 TC and overall superior?

They're more of a sidegrade, you get to move around in nograv as well as a jetpack but:

Valid Salad
10% movespeed penalty when used
No-slip effect applies only when used

They're more of a sidegrade, you get to move around in nograv as well as a jetpack but:

Valid Salad
10% movespeed penalty when used
No-slip effect applies only when used

only 5% so negligible

only 5% so negligible

Pretty sure it's 5% on walking and 10% on running, checked the .yml before commenting.
Even then, 10% can still make a difference, especially if it adds up with the duffel and hardsuit.

Noslips is at a perfect area to purchase as a syndicate, and any changes would like mess that up

Noslips is at a perfect area to purchase as a syndicate, and any changes would like mess that up

They are in a separate listing for nukie and traitor, Nukies have noslips at 4 TC, and Traitors have them still at 2 TC.

the noslip nerf just hurts stealthops, pretty sure non-stealth nukies will now always just buy redboots since you can kill grav and gain a massive advantage with them and you get a free emergency jetpack
should maybe make noslips 3 TC instead

I think it's at a good level where it's at, crew shouldn't be able to take down Nukies so easily and nerfing this will make Nukies have an even harder time. Stun/Slip shouldn't be the meta against nukies, ACTUAL COMBAT should be the meta

As someone who always wanted noslip and eshield nerfs, noslips should be between 3 to 4 tc (if secoff slipping is just skill issue, maybe syndies should get a taste too and simply walk lol), eshield stats decreased and cost from 6 tc to between 8 to 10 tc

how about you train players on how to shoot bullet based weaponry at things that counter lasers

A nukie can almost survive a full WT550 clip being hit by every single shot, they just barely got downed with 28 shots (if I counted correctly). A completely unarmored person doesn't even have 25 damage after being shot with 10 shots from the captain laser gun. This is ignoring the fact that players in game will also attempt to evade being shot at or duck behind cover.
2024-01-25.20-07-26.mp4

Also keep in mind that eshields are like 200 hp, crew usually only get lasers when armoury is blasted (which shields ignore), and that damage to a nukie is easily healable via omnizine and puncturase
Hence nerf needed

Noslips is at a perfect area to purchase as a syndicate, and any changes would like mess that up

They are in a separate listing for nukie and traitor, Nukies have noslips at 4 TC, and Traitors have them still at 2 TC.

personally think these should be swapped (4TC for tots and 2TC for nukies) as this keeps the bloodred magboots effective as an upgrade for more TC while handicapping traitors who brainlessly buy noslips every time they go loud and just break welding tanks and throw soaps at everyone.
no syndie item should be a complete crutch to a playstyle. it's why the rigged boxing gloves were nerfed so hard, and why nocturine is now near impossible to get for a non chemist. if noslips are being bought every time a syndicate agent wants to go loud, then that means they're either too low price or too powerful, neither of which are fun for the poor station victims who have to deal with it.
tl;dr is that metas aren't fun and i genuinely believe that a loud syndie using noslips has far too many options to fuck over everyone else fighting them for it to be only 2TC. bumping them to 4TC is valid.

i would recommend to just not touch noslips and make eshield 8 TC and 150 HP so it's the same HP as a bloodred, plus remove the absurd laser resist and replace it with a smaller one

I have no problem with nukies having bloodred boots or noslips, in fact they should be roundstart for them in their armoury - we currently give them visors and flash/weldproof mask so they can do their job as an elite strike force that can't just be slipped.
Traitors however... noslips for traitors let you avoid avoid a rather painful and somewhat underexplained mechanic, which the rest of the station can't without galoshes or magboots. However it also has the side effect of letting you murderbone if you just splash lube and oil everywhere for just 2 tc, which doesn't make much sense for something meant to be a stealthy gadget

as this keeps the bloodred magboots effective as an upgrade for more TC

As I've said earlier, magboots are more of a sidegrade, you can argue that as a sidegrade they outperform noslips in most scenarios, but if you don't use the features of the magboots they're worse than noslips; and you most likely won't use them.

while handicapping traitors who brainlessly buy noslips every time they go loud and just break welding tanks and throw soaps at everyone

This won't handicap the occasional loud traitor; they can just murder one of the janitors at this rate. Neither is this strategy a bad thing to have because it comes off with a tradeoff and has its counters.

no syndie item should be a complete crutch to a playstyle.

This isn't true, if you want to be a pseudo-nukie you need a blood-red hardsuit. Want to be a comms agent? You need a voice changer. Want to do crazy perma breakouts? You need an uplink implanter, etc. Uplink items can and at times should be a key to certain playstyles.

it's why the rigged boxing gloves were nerfed so hard, and why nocturine is now near impossible to get for a non chemist.

The rigged glove nerf is mild, I nerfed them to not be too unfair on the receiving end while keeping them a decent item nonetheless, you buy nocturine in the uplink without the chem kit.

if noslips are being bought every time a syndicate agent wants to go loud, then that means they're either too low price or too powerful, neither of which are fun for the poor station victims who have to deal with it.

No-slips aren't bought because they are a necessity for loud traitors, but because it prevents the rare event of the traitor slipping and dying.  Loud syndies are on the crew's ground and if the crew decides to not use this advantage and go headfirst into a loud traitor knowing they most likely won't win, then they probably shouldn't win in the first place.

Oops removed freeze, thought this was still frozen but it was put into a different category #24346

How did this turn from nukies balance to removing an iconic item from the traitor uplink? What justification is there? I can't see anything in the discussion that even touches on traitor use of it, only nukie. Nukie gameplay is a completely different gamemode to traitor, that's the point of having the option of separate listings.

How did this turn from nukies balance to removing an iconic item from the traitor uplink? What justification is there? I can't see anything in the discussion that even touches on traitor use of it, only nukie. Nukie gameplay is a completely different gamemode to traitor, that's the point of having the option of separate listings.

traitor isn't supposed to be a powerful force that can kill the entire station. The shield doubles your EHP and negates lasers, which is good for nukies who are taking blow after blow and can make good use of something to beef them up a bit, but traitors don't need to wage war on security unless they REEEAAALLLY screwed up.

I'd love to see a replay of this issue having happened on a live server.


wails: 2.3.1 -> 2.4.0

Description of changes
Update Wails app builder from v2.3.1 to v2.4.0.
Changelog: https://github.com/wailsapp/wails/releases/tag/v2.4.0
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 221227 run on x86_64-linux 1

1 package built:

wails


Improve github-pages

To have a pretty tutorial we'd need the following features :

[ ] Generating the index.html file (it's the landing page of github pages, litterally the first thing we see)
[ ] Having a table of content on each page to quickly navigate between pages
[ ] CSS theme to make it look pretty

Regarding the CSS, the main drawback of the default theme IMO is that it doesn't separate code and text clearly, so adding a different background to the code might be a good idea.

Regarding the CSS, the main drawback of the default theme IMO is that it doesn't separate code and text clearly, so adding a different background to the code might be a good idea.

this I would say it is also a bug of nimib. originally water.css had a better background for code. when picking androidstudio for highlighting, this replaces the code background with a lighter one (you can easily verify this inspecting the page). I will have to make sure that default code background stays the one of water.css.

I see, disabling it in the devtools does make it look better 🚀 Something I noticed when inspecting the CSS was that the output blocks didn't have any background color at all. I want to remember that last time I tried Nimib out it did have a background as well, but I may also misremeber 🤔

no the output never had a background (in water.css). regarding the default styling of nimib it can certainly be improved and it will be improved (and a more visible output block is something I agree on also).
With respect to current default, I wanted to start with something that was minimal and would work out of the box. After trying out many of the no-class minimal css frameworks (here is nice page that collects many of them in a demo way), water.css was the only one that required absolutely no tweaking and would look good enough. I would definitely encourage us to tweak the css here and then next default might be able to incorporate some of the improvements that was done here or elsewhere.

Okay, bad memory than :) Nice, and it doesn't seem to hard to do either, add a class and of we go.
Totally understandable, and it looks great in every other regard. I tested a few random ones on the page you linked and Water was the nicest of them all.
Sounds like a plan! Is nbDoc.context["stylesheet"] the only way to modify styles at the moment? Ie to override one aspect of Water.css for example I will copy it and modify it?

if you want to ovveride a single element of style I would add a head_other.mustache template with the content you need.
I use this mechanism for all of my nimib projects to add plausible analytics (a very nice, open and privacy friendly alternative to google analytics). Actually on that subject if you want to add analytics to this project too, I can make it available through my account, plausible allows to make the analytics dahsboard public (see for example https://plausible.io/pietroppeter.github.io%2Fnimib) and I have a lot of views unused! :D

if you want to ovveride a single element of style I would add a head_other.mustache template with the content you need.

Oh that seems like exactly what I'm looking for, thanks 😃 I see the partial called left as well in the body. I guess that would be the place to put our Table of Content. Would it be sensible for us to generate a TOC.mustache when doing nimble genbook and just having it included in every page? But we may have to loop over all files twice because every file needs TOC.mustache when compiling, right? I feel like I'm bombarding you with questions now 😅

Actually on that subject if you want to add analytics to this project too, I can make it available through my account, plausible allows to make the analytics dahsboard public (see for example plausible.io/pietroppeter.github.io%2Fnimib) and I have a lot of views unused! :D

If you would like to I'm sure everyone would be very grateful! :D And of course if you in the future for whatever reason need to cancel your Plausible subscription just tell us and we'll switch it out 😄 I'm having something similar for my personal site called GoatClicker which also should be privacy and GDPR friendly, plus they have a free plan for non-commercials. But they don't seem to have public dashboards so that's definitely a plus for Plausible. Once again, we would be very thankful for your generosity. :D

Would it be sensible for us to generate a TOC.mustache when doing nimble genbook and just having it included in every page? But we may have to loop over all files twice because every file needs TOC.mustache when compiling, right?

yes, that is a good option. you could generate a toc.mustache first and then when you generate the pages every page will take the generated toc.mustache, so probably you would not need to have a double pass over files (but there might be gotchas there).

I'll try it out then :) Not that it matters but by two passes I meant that to create toc.mustache we have to pass through all the files once, and then we have to pass over all files again to generate the pages but as I said it doesn't matter. As long as it works, it work ;)

I guess the next step when we get the general layout fixed is to make the TOC reflect the folder structure so that files in the same folder are clumped together.

All of these are implemented in the current Nimibook


Better Math.random wrapper

Stashing a note after the larger post on math.random. This isn't a cryptographically secure module, but we could have better entropy. Maybe even something like the mentioned mini-wrapper
Just making a note of it for now.

Apparently Math.random was rewritten in a newer V8. I'll ramp down the need for concern.


Ability to decorator model expression

Currently we can add decorators on model declarations but can't decorate on model expressions which would be useful to add decorators for inline/anonymous models.
playground
model Foo {
  prop: {
    sub: string;
  };
  props: {
    sub: string;
  }[];
  propDict: Record<{
    sub: string;
  }>;
}

// decorate named model
@@doc(Foo, "document for Foo");

// decorate inline model
@@doc(Foo.prop::type, "document for Foo");

// decorate model expression including array
@@doc(Foo.props::type::indexerValue, "document for props");

@@doc(Foo.propDict::type::indexerValue, "document for propDict");

For context this is not something that is fixed by the symbol refactor as its by design right now that model expression cannot be decoratored. I have a follow up PR to the symbol that makes it an error so its not silently ignored https://github.com/microsoft/typespec/pull/4926. There is no technical limitation to supporting this(we are just not calling checkDecorators in the checker by design for model expression)
The question here is should we allow model expression to be decorated and if so what is the syntax to do it inline. As we don't really want augment decorator to be the only way to decorate something.
model Foo {
  prop: @doc("Doc for this model Exp") {
    sub: string;
  };

could just have something like that, though it might be ambiguous/need more wrapping for array cases
model Foo {
  props: (@doc("Doc for this model Exp") {
    sub: string;
  })[];
  propDict: Record<@doc("Doc for this model Exp") {
    sub: string;
  }>;
}

there is also the maybe confusion on why you cannot do that
model Foo {
  prop: @doc("Doc for this") string;
  array: (@doc("Doc for this") string)[];
}


neutron_service_check.py not recognizing fqdn after change from short reporting linuxbridge-agent down

Do NOT include any confidential information, this issue will be created on a public repo
This section is completed by the issue reporter
On which version(s) do you encounter this issue?
Kilo - r11.1.6
Please provide the output to 'git describe --all' for  all deployments where you have confirmed it occurs.
root@infra-node1:/opt/rpc-openstack# git describe --all
tags/r11.1.6
What type of issue is this? Please tick the appropriate box.

[ x] bug - existing functionality that does not work for you as documented
[ ] feature - new functionality that you would like to see added

What is the expected behavior?
That no alert would be created when the service is indeed responding/ok.
What is actually happening?
When the maas plugin attempts to verify it can find itself with the following piece of code;
# gather nova service states
if args.host:
    services = nova.services.list(host=args.host)
else:
    services = nova.services.list()

if len(services) == 0:
    status_err("No host(s) found in the service list")

It is not finding the hosts that have changed from short, to a fqdn.
To fix the issue, I modified the plugin as follows;
agents = neutron.list_agents(host=args.host + '.l42scl.hortonworks.com')['agents']
... and the check was successful.
What were you attempting to do when you encountered this error (give as much detail as possible)?
Verify an alert detailing that neutron_linuxbridge_agent was failing/down. When I ran the check manually, it was claiming that "No host(s) found in the agents list". So I looked at the code and realized that it couldn't find itself after the customer changed to fqdn's.
How can we reproduce this issue?
Create a host with a short name, install maas, then change the hostname to a fqdn. If you run the neutron_service_check.py maas plugin after, it should fail even though within the environment it is checking in without issue.
How can we verify your issue is addressed?
We should be able to work with our customer and re-install/update maas on the hosts effected and ensure all checks are good to go. (via lab you should be able to reproduce and verify as well)
If you are using or know of a workaround please describe the necessary steps?
As previously mentioned, if you add a short bit to the specified line in the plugin code;
[from]
agents = neutron.list_agents(host=args.host)['agents']
[to]
agents = neutron.list_agents(host=args.host + '.l42scl.hortonworks.com')['agents']
The error goes away.
What is your evaluation on the importance of this issue, and why?
Pretty significant in my opinion. Any customer using MaaS that receives an alert about linuxbridge-agent being down may mobilize resources to address the instances on that compute only to find out that there is in fact no issue at all. (a hair extreme in my opinion, but seems feasible)
This section is completed during the issue resolution process. If you are reporting an issue, please do not modify the section below.
Which branches are impacted by this issue?
Remove branches that are not impacted.
For each pull request, update the branch line to reference it.

[ ] master
[ ] mitaka-13.1
[ ] liberty-12.2
[ ] kilo

Upgrade impact. Consider the impact on moving between major, minor and patch releases.

[ ] This change does not impact upgrades
[ ] This change addresses a potential upgrade impact
[ ] The upgrade impact is being tracked by another issue.

The issue tracking the upgrade impact is:
Testing impact

[ ] An issue/pull-request has been create or exists to track the testing gap, and is referenced below
[ ] This change includes additional testing
[ ] This change is tested by the existing setup

Additional testing links:
Release note

[ ] This change includes a release note.
[ ] This change does not require a release note.

Doc Impact
Does your change require documentation?

[ ] Yes, and I submitted an issue to Docs issues
[ ] Yes, and I contributed a documentation patch to docs-rpc
[ ] No documentation required for this change

Additional documentation links (please add links if you have ticked yes):

Thanks @ihavegerms!
My guess is that we are not setting the right host value in the neutron_*.yml checks i.e. https://github.com/rcbops/rpc-openstack/blob/master/rpcd/playbooks/roles/rpc_maas/templates/neutron_linuxbridge_agent_check.yaml.j2#L8.
I could be wrong, but we haven't had much experience with people changing to FQDNs. However, this is definitely still worth a fix. I'm marking this as prio-3 as it doesn't prevent the default deployment from succeeding. Please let me know if you feel if this priority needs to be higher.

It could be that this issue has already been fixed by all of the recent MaaS PRs that have gone through. If not, then this probably effects newton as well and needs to be addressed. I'm going to milestone it as r14.0.1, but I do not guarantee it will be fixed by then.

I've confirmed that this is still a problem in our master branch.
The neutron_service_check.py plugin takes in a host argument. If you look at the check yaml files, ansible_nodename is passed to the plugin via the host argument. Per Ansible documentation, ansible_nodename is the hostname as reported by the system by the hostname command, which doesn't include the domain.
This means that these checks that are using ansible_nodename will not pass on an openstack environment that uses fqdns instead of shortnames for hosts.
A possible solution would be to modify the neutron_service_check.py plugin to take in the fqdn as well, then check to see if the hosts reported by neutron.list_agents() match either args.fqdn OR args.host.

Update: I am investigating this issue in Master. The setup-maas.yml playbook is failing. Trying to figure out why.

Update -- setup-maas.yml is succeeding.

Update: rewriting the script. Still working on it.


[Gally]: master <- dev

Automatically created by Git-Ally

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


🚀  Formalise Testing and Release Process

User Need
As a Operations Engineer
I want a formalised testing process before releasing changes on third-party tools like GitHub
so that we can ensure changes are properly vetted before they are deployed to production.
Value
A more robust testing process will help catch issues earlier, reducing the risk of errors and improving the reliability of releases. This will ultimately reduce disruptions for users.
Functional Requirements (What):

[ ] Create a runbook outlining the testing process for changes to GitHub and other third-party tools.
[ ] Require approval from two team members ("two thumbs up") in Slack before proceeding with a release.

Non-Functional Requirements (How):

[ ] Ensure that risk assessment is conducted to identify risk and potential user impact (will help inform user engagement and test plans)
[ ] Ensure that the testing process is scalable and can be applied to future third-party tools.
[ ] Ensure that the testing process is easy to follow and includes both functional and non-functional testing aspects.
[ ] Ensure that there is at least 24 hours time between release and user engagement/comms

Acceptance Criteria:

[ ] A runbook outlining the testing process is created and followed for all future GitHub releases.
[ ] The "two thumbs up" approval process is used before every release.

Notes:
This process should be easy to follow and should allow for thorough testing before any significant changes are pushed to GitHub.
This ticket was created off the back of this incident.

We had a post-incident review on the Unset GitHub Spending Limit issue.
Because of this we'd also like to include guidance on the following point from the document:

Treat configuration changes just as we tread code changes - with peer reviews and demonstrations.
Ensure that comms are sent out to the relevant channels whenever we make a configuration change on one of our third-party tools.


Detect a lot of memory leaks when invoking JVM

Valgrind detects a lot of memory leak errors in all programs invoking JVM. I don't know whether it comes from Java or C++ native code. If it comes from Java, is it a correct behavior? Is it needed to force garbage collection in Java?
Following result comes from valgrind --leak-check=full ./test_bin/java_data_structure_test.
Memory leaks are detected in all tests (java_query_repo_*) using JVM.
==12719==
==12719== LEAK SUMMARY:
==12719==    definitely lost: 570 bytes in 4 blocks
==12719==    indirectly lost: 0 bytes in 0 blocks
==12719==      possibly lost: 3,353,842 bytes in 174 blocks
==12719==    still reachable: 8,977,521 bytes in 2,037 blocks
==12719==                       of which reachable via heuristic:
==12719==                         newarray           : 22,536 bytes in 1 blocks
==12719==         suppressed: 0 bytes in 0 blocks
==12719== Reachable blocks (those to which a pointer was found) are not shown.
==12719== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==12719==
==12719== For counts of detected and suppressed errors, rerun with: -v
==12719== Use --track-origins=yes to see where uninitialised values come from
==12719== ERROR SUMMARY: 292370 errors from 763 contexts (suppressed: 0 from 0)

that looks pretty weird, here's the profiler output:
Total: 32553160 B
31966432  98.2%  98.2% 31974512  98.2% JVM_FindSignal
  368832   1.1%  99.3%   368960   1.1% Java_java_util_zip_ZipFile_getZipMessage
   81920   0.3%  99.6% 11477888  35.3% SUNWprivate_1.1
   81920   0.3%  99.8%    81920   0.3% pool (inline)
   10592   0.0%  99.9%    10592   0.0% _dl_new_object
    9280   0.0%  99.9%     9280   0.0% __gnu_cxx::new_allocator::allocate (inline)
    6912   0.0%  99.9%     6912   0.0% allocate_dtv
    3616   0.0%  99.9%     3616   0.0% _nl_intern_locale_data
    2848   0.0%  99.9%     2848   0.0% std::__cxx11::basic_string::_M_construct
    2352   0.0%  99.9%     4928   0.0% google::protobuf::protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto

Enforcing VM destroying didn't help. Also full valgrind logs don't look suspicious so I guess there's no problem
Feel free to open the issue if required


[Profiler] Verify if Triton SYCL event based profiler still works with PyTorch upstream

From PyTorch team, using SYCL event to get kernel execution time should be supported in the Stock PyTorch. It's covered in SYCL runtime.
We need to verify it and see can we keep using the legacy way to do performance profiling. So that it won't block Triton switch to Stock PyTorch.

If not, we have to think about other way mentioned in https://github.com/intel/intel-xpu-backend-for-triton/issues/1145 which would need much more efforts.

From device_activity_tracing, to use SYCL event_profiling with stock PyTorch, we have to initialize SYCL queue with sycl::property::queue::enable_profiling().
For the best E2E performance consideration, PyTorch upstreaming do not enable this feature. XPUStream.cpp#L101-L111.
FYI. @vlad-penkin @whitneywhtsang
From @chengjunlu , as replacements, we have two option:

Use the Kineto, the same as PyTorch XPU.
Enable Proton, https://github.com/intel/intel-xpu-backend-for-triton/issues/1145

Please help decide which way Intel Triton should choose. Otherwise, it will block Triton moving to Stock PyTorch.

Also, Triton Autotune relies on torch.xpu.Event.elapsed_time to get kernel execution time, which is not implemented in pytorch/aten/src/ATen/xpu/XPUEvent.h.
Without this Triton Autotune will fail to work.

I guess @alexbaden is working on something related to this in https://github.com/pytorch/pytorch/pull/126456.

While waiting for torch.xpu.Event.elapsed_time to be supported, we can experience to use Kineto, assuming that it requires much less time than Proton to work. We can change the do_bench used by Triton Autotune to the modified version as well to unblock us.

Based on the offline discussion.
SYCL event_profiling is expected to be added back in PyTorch 2.5 after PyTorch team resolve the high overhead issue.
So Triton with PT2.4, we will apply the required changes in CL/local machine when building PyTorch from source.
On the other hand, it's still worthy to try enable Kineto in Triton. It would not take as much effort as Proton. We should check if Kineto can provide the same performance data as the legacy profiler.

Based on the offline discussion. SYCL event_profiling is expected to be added back in PyTorch 2.5 after PyTorch team resolve the high overhead issue. So Triton with PT2.4, we will apply the required changes in CL/local machine when building PyTorch from source.
On the other hand, it's still worthy to try enable Kineto in Triton. It would not take as much effort as Proton. We should check if Kineto can provide the same performance data as the legacy profiler.

The patch for using elapse_time Upstream PyTorch is here Support elapsed_time in XPUEvent. We should include it in the PR to apply before building the upstream PyTorch, so that we can use Triton Autotune and legacy profiler as we did.
PR https://github.com/intel/intel-xpu-backend-for-triton/issues/1145 tracks the task that enables Kineto in Triton.

PR https://github.com/intel/intel-xpu-backend-for-triton/issues/1145 tracks the task that enables Kineto in Triton.

It is tracked in https://github.com/intel/intel-xpu-backend-for-triton/issues/1066.

PR #1145 tracks the task that enables Kineto in Triton.

It is tracked in #1066.

Updated comment message, thanks.


Fix zero duration tasks

This PR addresses the issue with jobs that has tasks with zero duration reported at:
https://github.com/dwave-examples/job-shop-scheduling-cqm/issues/7

Not sure why the CI isn't triggering. Will give it a bit and then take a look


19/04 Refactoring plan for solana-swift

Edited

SolanaSDK namespace will be marked as deprecated, new classes, modules will be implemented without namespace.

The problems and their solutions
1. Highly coupled features in SolanaSwift library
Problem
Due to lack of knowledges and documentation about Solana blockchain at the beginning of the development, the network client module, blockchain client module and other module are highly coupled in one class SolanaSDK, which is inconvenient for using and really hard to test.
For example: For retrieving list of supported token or calling getBalance for an account, the class SolanaSDK needs to be initialized first. As a result, all another modules has to be initialized too, including AccountStorage, which requires user to authenticate, even the SolanaRPC does not require authorization.
The one-class-to-rule-them-all is a bad idea, as it make the class unscalable and hard to test. The graph below shows the implementation of SolanaSDK at the moment:

Solution
The big class SolanaSDK has to be separated into multiple modules.
The term “independent” in this situation means:

The module can be initialized and used independently. For example:APIClient must needs only endpoint to be initialized and can be used independently without authorization.
The module has their own responsibility and doesn't need to know about another modules.

All modules has to be written in POP, which always starts with an interface (protocol). For example: class APIClient: SolanaAPIClient.
The SolanaSDK will be marked as deprecated for backward compatible.
The graph of SolanaSDK after refactoring is something like this:

Modules’ explaination:

AccountStorage: SolanaAccountStorage stores user’s credentials and define if user is authorized.
APIClient: SolanaAPIClient api client to connect with Solana RPC API, contains following methods (https://docs.solana.com/developing/clients/jsonrpc-api).
TokensRepository: SolanaTokensRepository repository that provides informations about supported token in Solana blockchain. (https://raw.githubusercontent.com/solana-labs/token-list/main/src/tokens/solana.tokenlist.json)
BlockchainClient: SolanaBlockchainClient the client that helps us preparing, signing and serializing transaction using SolanaPrograms before sending using method sendTransaction, simulateTransaction from SolanaAPIClient or forwarding to FeeRelayer.
SolanaProgram Type of Programs that lives on Solana Blockchain that provides methods for preparing instructions in any transaction.
TransactionParser: SolanaTransactionParser: Custom parser to define readable type of transaction, for example: Send, Swap, Receive,...
Socket: SolanaSocket: Socket connection that provide suitable methods to observe user’s account or transaction signature status.

2. Highly depending on Rx libraries
Problem
The SolanaSwift library is right now deeply depending on RxSwift.
The SolanaSwift library is also depending on RxAlamofire for handling network request, it must be replaced by the native solution to reduce dependency.

Solution
As swift concurrency is now backward compatible with iOS 13, we use async/await and URLSession as the replacement for RxSwift and RxAlamofire
Notice
In the scope of this refactoring, there would be no ui part touched, so a bridge needs to be created to convert async/await code to adapt new concurrency solution in UI (the UI will be refactored later).
3. Model is coupled inside namespace SolanaSDK
Problem
Model is coupled inside SolanaSDK
Solution

Move models outside of SolanaSDK, for example SolanaSDK.PublicKey becomes PublicKey
For backward compatibility, type alias has to be added back to SolanaSDK. For example:

extension SolanaSDK {
   typealias PublicKey = SolanaSwift.PublicKey // (?)
}

What is “neсessary”, and what is “nice to have”?

The SolanaSDK is separated into multiple independent modules, each module has to be fully tested.
The SolanaSwift needs to be independent from RxSwift, RxAlamofire.
The concurrency code is lightweight and easy to use.
A bridge need to be built to keep the ui part unchanged (will be refactored later)

Task decomposition
This task has to be separated to child tasks, which equivalent to cleaning, deprecating and creating each modules in SolanaSDK:

Group all deprecated implementation of SolanaSDK in to Deprecated folder, move all Models out of SolanaSDK, but don't break the old working solution.
Implement AccountStorage: SolanaAccountStorage, blocked by 1
Implement APIClient: SolanaAPIClient, blocked by 1
Implement TokensRepository: SolanaTokensRepository, blocked by 1
Implement BlockchainClient: SolanaBlockchainClient, blocked by 1
Implement SolanaProgram , blocked by 1
Implement TransactionParser: SolanaTransactionParser, blocked by 1
Implement Socket: SolanaSocket, blocked by 1

Definition of done

RxSwift, RxAlamofire is removed from SolanaSwift’s dependencies, a bridge is created to map async function to return Observable to work with current Rx code in p2p-wallet-ios
Several modules in SolanaSDK are independent
All modules are fully tested

Лучше не использовать формат SolanaSwift.ApiService, SolanaSwift.etc.
SolanaSwift является отдельной библиотекой, внутри которой все независимые сервисы должны быть разбиты по модулям с помощью SPM или CocoaPods.
Нету необходимости разбивать зависимости через enum, так как это значительно усложняет код и это уже видно в нашем основном проекте.
Что я предлагаю:

Отказаться от enum и разбить сервисы на модули с помощью SPM или CocoaPods.
Каждый модуль покрыть тестом.

Я согласен. Спасибо)
Sent from my iPhone

On 19 Apr 2022, at 17:05, Ivan Babich @.***> wrote:

Лучше не использовать формат SolanaSwift.ApiService, SolanaSwift.etc.
SolanaSwift является отдельной библиотекой, внутри которой все независимые сервисы должны быть разбиты по модулям с помощью SPM или CocoaPods.
Нету необходимости разбивать зависимости через enum, так как это значительно усложняет код и это уже видно в нашем основном проекте.
Что я предлагаю:
Отказаться от enum и разбить сервисы на модули с помощью SPM или CocoaPods.
Каждый модуль покрыть тестом.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.

++
It would be also nice if we move all dependencies into modules or packages directory in wallet project. I like the modular approach.
./modules/solanaSDK
./modules/feeRelayer

@TrGiLong it would be nice, but it's out of current task. Let't discuss about it later )

@qwerkly yes. I have already marked SolanaSDK as deprecated, we won't use this namespace anymore.
But all the modules has to be nested inside SolanaSwift library, because they all are needed for Solana application
The implementation will be:
// in Solana-swift library
class ApiClient {...}

class BlockchainClient {...}

class AccountStorage {...}

// In any class
import SolanaSwift

class AnyClass {
  init() {
    let apiClient = AnySolanaSDK.ApiClient()
    let blockchainClient = AnySolanaSDK.BlockchainClient()
  }
}


New landing page bug (?)

Describe the bug
I really like the new landing page however it does feel a bit "zoomed in", I thought that it was a setting in google chrome but it wasn't  to check that I did not zoom in, in Google chrome. Also, maybe we can get the entire marcheting picture to be included before you start scrolling, not sure if that is possible but maybe?
Is this a bug or by design?
Screenshots

Desktop (please complete the following information):

OS: Mac
Browser Chrome
Version

Additional context
Add any other context about the problem here.

"This is not a feature, but a bug." :smile:
I'm trying to gather here two concerns that I heard lately with the new landing page:

The design feels "zoomed in".
The design feels confusing due to lack of a navbar.
The marchitecture is below the fold.

Regarding (1), the reason why you might perceive the page to be zoomed in, is because we decided to hide the navbar on the left and the table of contents on the right. If we bring the navbar back, then we fix (1) and (2). This would not fix (3). Here is how it would look like:

Alternatively, we could opt for a top navbar. This would fix (2), but not (1) and would make (3) worse. Here is how it would look like:
Screencast from 2023-09-14 16:06:24.webm
@simonekman @emmasundqvist @llarsson Please vote. :smile:

My vote is for option 1, with the navbar on the sides.

Yes, just bring back the navigation stuff on the sides, please.

I also like option 1, go with that :)

Wow! We have unanimity. I wonder how often that will happen when it comes to how something should look like. :joy:


No on_stylesheet_saved

Not a clue on how to fix...
$compass watch --trace
NoMethodError on line 148 of /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/inheritance.rb: on_stylesheet_saved
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/inheritance.rb:146:in `send'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/inheritance.rb:146:in `method_missing'
  /Library/Ruby/Gems/1.8/gems/compass-growl-0.1.0/lib/compass-growl.rb:34:in `init'
  /Library/Ruby/Gems/1.8/gems/compass-growl-0.1.0/lib/compass-growl.rb:52
  /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
  /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/data.rb:122:in `require'
  /Volumes/roussey/resources/config.rb:3:in `parse_string'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/serialization.rb:20:in `parse_string'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/serialization.rb:15:in `_parse'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/serialization.rb:14:in `open'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/serialization.rb:14:in `_parse'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/file_data.rb:29:in `new_from_file'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/inheritance.rb:96:in `with_defaults'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/file_data.rb:28:in `new_from_file'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/helpers.rb:42:in `configuration_for'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/configuration/helpers.rb:89:in `add_project_configuration'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/commands/project_base.rb:31:in `add_project_configuration'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/commands/project_base.rb:25:in `configure!'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/commands/project_base.rb:15:in `initialize'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/commands/update_project.rb:29:in `initialize'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/exec/sub_command_ui.rb:42:in `new'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/exec/sub_command_ui.rb:42:in `perform!'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/exec/sub_command_ui.rb:15:in `run!'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/bin/compass:25
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/bin/compass:39:in `call'
  /Library/Ruby/Gems/1.8/gems/compass-0.11.5/bin/compass:39
  /usr/bin/compass:19:in `load'
  /usr/bin/compass:19

$ compass --version
Compass 0.11.5 (Antares)
Copyright (c) 2008-2012 Chris Eppstein
Released under the MIT License.
Compass is charityware.
Please make a tax deductable donation for a worthy cause: http://umdf.org/compass

$ sass --version
Sass 3.1.5 (Brainy Betty)

you going to want to use the older version (0.0.5)  with 0.11.x the 1.0 release is targeted to new features in compass 0.12.x. This needs to be documented better I suppose but with the final release of 0.12 coming soon i didn't even think about this regression =\

When you made the change you set the min compass version >= 0.11. Perhaps you should change that to 0.12.

oh good catch sorry for this mess ill push 1.0.1 with that updated i rused this out the door too fast

OK, great. When will 0.12 compass come out?

ok i yanked 0.1.0 and pushed 0.1.1 which depends on 0.12 .. no hard date on 0.12 yet but will be in next few weeks