text:
Teleporting issue

When teleporting from another world it teleports them for one second and then just put them back where they were.

It’s really annoying please help

Are you using Multiverse-Inventories with the last_location sharable?

Are you using Multiverse-Inventories with the last_location sharable?

I am only using that for “world”

Then your problem should be fixed with Multiverse-Inventories 4.2.2. Please download it and let us know if that solves the problem.
Also note that 4.2.2 was accidently released as an alpha, but it is actually stable.

I am using 4.2.2

Please provide the link given by /mvv -p.

HTTPS://j.mp/398xG91

You have MV Core 4.2.2, not MV Inventories.

You have MV Core 4.2.2, not MV Inventories.

Oh how do I get inventories 4.2.2?

Download from here, https://dev.bukkit.org/projects/multiverse-inventories/files/3222929.

Download from here, https://dev.bukkit.org/projects/multiverse-inventories/files/3222929.

I’m downloading it now I will let you know if it works.

On Mon, Mar 22, 2021 at 9:34 PM nicegamer7 @.***> wrote:

Download from here,
https://dev.bukkit.org/projects/multiverse-inventories/files/3222929.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Multiverse/Multiverse-Core/issues/2603#issuecomment-804517578,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATLQW3X26OE5JT3OU4RCU63TE7V33ANCNFSM4ZUGBJSQ
.

It’s working right now. But if it happens again I’ll let you know. Thank
you!

No problem :)

It's still happening. My players are stuck in the end.￼￼

see #2160


text:
Backend repository is missing

Hello,
I wanted to start the project, but I see that the backend is no longer accessible. Could you possibly make it public? Many thanks!

Thanks for pointing that out! The backend is now public. Feel free to check it out and let me know if you have any questions.

source: gharchive/issue

authors: BauerKristof MunavvarSinan

repo: MunavvarSinan/sneakerSpot-frontend

license: MIT

license_type: permissive

license_source: github-api


text:
📝 Add Button to documentation on the README.md

This PR adds a simple large button on the README.md to easily access the documentation.

I will merge that as an exception straight away as it is time-critical and just adds a tiny part to the documentation.

source: gharchive/pull-request

repo: Munich-Quantum-Software-Stack/QDMI


text:
macOS 11.4 微信 3.1.2 版本，安装之后没有效果

issue规范

MacOS版本 : 11.4
微信版本 : 3.1.2
小助手版本 : 最新版
BUG描述 : 微信 for macOS 3.1.2 版本，安装之后微信并没有出现任何改变

看到有人说 3.1.1 的问题，但是我 3.1.1 的版本也装不上小助手，也蛮奇怪的。安装的时候 Terminal 会提示
/Users/XXX/Downloads/WeChatExtension-ForMac-master 3/WeChatExtension/Rely/Install.sh: line 59: /Users/XXX/Downloads/WeChatExtension-ForMac-master: is a directory

这里多了个空格,另外, 这个版本微信还没适配, 可能会有问题

authors: CheukFaiho MustangYM

repo: MustangYM/WeChatExtension-ForMac


text:
Add a /redeem route

We have three (THREE!) new ways to get money into mutiny in PRs currently:
https://github.com/MutinyWallet/mutiny-web/pull/885
https://github.com/MutinyWallet/mutiny-web/pull/891
https://github.com/MutinyWallet/mutiny-web/pull/837
All three work on the premise of you pasting in something, and then you see some sort of preview, and then you click a button and get the money. (Potentially gifting can work like this as well, although rn it has its own path / ux)
LnurlW is a bit different because it can, optionally, have an editable receive amount, afaik cashu and fedi oob will always be fixed amounts.
I plan on building the /redeem route to unify these, just wanted to make this a discussion issue of any thoughts / gotchas I might need to have in mind when trying to unify the UX here.
@oleonardolima @elnosh @tompro any thoughts / special considerations I should be aware of?

not sure where/how it should be handled but wondering about cases where the amount of the cashu token pasted is very low. Should we show a warning or something instead of a redeem button if the amount is too low?

[...]  afaik cashu and fedi oob will always be fixed amounts.

yes, at least for fedimint the oob's have fixed amounts

[...] I plan on building the /redeem route to unify these, just wanted to make this a discussion issue of any thoughts / gotchas I might need to have in mind when trying to unify the UX here.

I don't have any specific thoughts about it, and I agree that unifying it would be better.
The only thing is that currently, OOB would only work with copy/paste and not through QR, could that lead to bad UX somehow ? 🤔

@elnosh what would too low mean, it's all burned to fees?

maybe something below 5 sats. That could end up going most of it in fees.

I just noted that current LNUrlW implementation does not give access to the invoice that is processed. Showing a QR (that is never used) does not make much sense during processing. It will need access to the tx to show the exact received amt in the success screen later though.

not sure where/how it should be handled but wondering about cases where the amount of the cashu token pasted is very low. Should we show a warning or something instead of a redeem button if the amount is too low?

You can just offer to trust the origin mint and do a swap instead of melting the cashu to LN. Then no fees.

authors: EthnTuttle benthecarman elnosh futurepaul oleonardolima tompro

repo: MutinyWallet/mutiny-web


text:
Optional vs Required with Regex

It seems that with working with Regex optional is the way to successfully register where required fails to register intents.

I don't think it's as straightforward as described above. It works mostly. But if another regex is added that has a certain content it starts to fail. See https://gist.github.com/forslund/e077b749278de3476ef121b81277d689 for an example. Here the Location won't be found by adapt when the second regex is added.
The second regex will catch EVERYTHING but it's still weird that it will reduce the score of the Location regex.

Thanks for the guidance here, @forslund. Closing as answered.

hey @kfezer , as an FYI I'm finally tackling this as with #137

authors: clusterfudge forslund kfezer

repo: MycroftAI/adapt

license_source: bigquery


text:
Limit empty certificates

Fix #397. This PR is delicate, please pay careful attention at the proposer's conditions to advance round. This PR is not urgent.

See also https://github.com/MystenLabs/narwhal/pull/598

@asonnino closing this as we have moved repo under SUI https://github.com/MystenLabs/sui. Please re-open PR there if it's still relevant

authors: akichidis asonnino

repo: MystenLabs/narwhal


text:
type 'FusedTransformer' is not a subtype of type 'SyncTransformer' in type cast

I am using sui in flutter the latest version  sui: ^0.2.1. I am getting error said:
type 'FusedTransformer' is not a subtype of type 'SyncTransformer' in type cast

I'm not sure what happen, it throws this error when I use moveCall or getObject:
Move call
  Future<void> voteCandidate() async {
    SignTransactionService signTxService = SignTransactionService();

    final tx = TransactionBlock();

    try {
      tx.moveCall(
        '${signTxService.packageObjectId}::vote::new_ballot',
        arguments: [tx.pure(candidate?.suiEventId), tx.pure(candidate?.suiCandidateId), tx.pure("This is voter hash"), tx.pure(candidate?.name)],
      );

      await signTxService.client.signAndExecuteTransactionBlock(
        signTxService.account,
        tx,
        responseOptions: SuiTransactionBlockResponseOptions(
          showEffects: true,
          showBalanceChanges: true,
          showInput: true,
          showObjectChanges: true,
        ),
        requestType: ExecuteTransaction.WaitForLocalExecution,
      );

      // Notify listeners only if the vote is successful
      notifyListeners();
    } catch (e) {
      if (kDebugMode) {
        print("Error voting candidate: $e");
      }

      // Re-throw the error to handle it in the caller function
      rethrow;
    }
  }

Get object
  Stream<String?> getLiveEventResult() async* {
  try {
    final client = SuiClient(SuiUrls.testnet);

    _suiEventDetail = await client.getObject(event?.suiEventId ?? '', options: SuiObjectDataOptions(showContent: true));
  } catch (e) {
    if (kDebugMode) {
      print("Error getting event: $e");
    }
  }
}

Duplicate of #18829

authors: stefan-mysten vaneath

repo: MystenLabs/sui


text:
Pass total gas reward from validator to on-chain contract at end of epoch

A validator will need to aggregate total gas reward happened during the epoch, during reconfiguration, so that it can pass that into the on-chain contract to properly distribute gas reward to stakers and delegators.

Addressed by #5246

authors: emmazzz lxfind


text:
[Question] One Time Witness pattern

I am building an amm on SUI. My AMM has a struct representing the LP token
struct LP<phantom X, phamtom Y> {
      .....
}

I want it to initialize it as a coin using the 0x2::sui::coin::create_currency function to make sure my LP token is unique. However, the compiler gives an error one-time witness type candidate lp::LP cannot have type parameters which seems to be caused by this code
fn verify_one_time_witness(
    module: &CompiledModule,
    candidate_name: &str,
    candidate_handle: &StructHandle,
) -> Result<(), String> {
    // must have only one ability: drop
    let drop_set = AbilitySet::EMPTY | Ability::Drop;
    let abilities = candidate_handle.abilities;
    if abilities != drop_set {
        return Err(format!(
            "one-time witness type candidate {}::{} must have a single ability: drop",
            module.self_id(),
            candidate_name,
        ));
    }

    if !candidate_handle.type_parameters.is_empty() {
        return Err(format!(
            "one-time witness type candidate {}::{} cannot have type parameters",
            module.self_id(),
            candidate_name,
        ));
    }
    Ok(()
}

I want to use two phantoms X and Y (X,Y are tokens in a liquidity pair) as witnesses for LP token so that LP token is unique. If another phantom type is used (phantom T)
struct LP<phantom T, phantom X, phamtom Y> {
      .....
}

to represent the witness of the LP token, it needs to be declared in the AMM module. This is really not cool, AMM will not be able to create liquidity pairs for new tokens because witness T needs to be declared in the module.
If someone has a different approach, please let me know. Thanks for help !!!

Thanks for this feedback, we will look into allowing this sort of pattern!
In the meantime, here is an example of an alternative approach to LP tokens: https://github.com/kunalabs-io/sui-smart-contracts/blob/master/amm/move/sources/amm.move

What the one-time-witness pattern is trying to do is enforce that certain structs must be singleton objects (only one of them can exist in Sui at any given time).
I think this is a very useful thing to have, but a little clunky. Another issue is that if I have an init function and I want to create multiple different singleton classes linked to the same module, I cannot. Imagine something like:
fun init<T: drop>(witness: T) {
   sui::coin::create_currency(witness);
   sui::metadata::create_metadata(witness);
}

this cannot work, because one of the functions consumes the one-time witness, making it unavailable for the other function. If we pass by refs instead, there's no guarantee that we can't call the same function multiple times within the init function.
How do other languages ensure singleton classes? Ideally a module could do something like:
singleton struct Market<X,Y> {
id: UID
}
and then the module can create one of those any time it wants, but it will abort if there is already a Market<X,Y> currently in existence; it must first destroy the original Market<X,Y> in order to create a new one. Implementation-wise, maybe the runtime could keep track of "has this been created yet?"; it flips a bool to 'true' when creation happens, then flips it back to 'false' when the singleton struct is destroyed. This would be a Move-VM level change though I think?

How to dynamically call create_currency to create tokens? For example, there is a factory contract that issues coins according to user needs. If you directly call to create Balance and Supply, and then convert them to Coin at the appropriate time, but how to attach CoinMetadata to the above coin? Can the coin metadata be displayed using the 0x2::display module?

authors: PaulFidika freeffect sblackshear truong-elpis


text:
APY  round to two decimal and

Description
Describe the changes or additions included in this PR.

Round APY to two decimals
epoch  and stakeSubsidyStartEpoch are now strings use numbers for calc

Test Plan
How did you test the new or updated feature?

Merging now to unblock CI failure


text:
[ts-sdk] Remove void provider

Description
Describe the changes or additions included in this PR.
Test Plan
How did you test the new or updated feature?

If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)

[ ] user-visible impact
[ ] breaking change for a client SDKs
[ ] breaking change for FNs (FN binary must upgrade)
[ ] breaking change for validators or node operators (must upgrade binaries)
[ ] breaking change for on-chain data layout
[ ] necessitate either a data wipe or data migration

Release notes

Current dependencies on/for this PR:

main

PR #9073   👈

This comment was auto-generated by Graphite.


text:
🛑 Mysteryexe is down

In 4af46dc, Mysteryexe (https://mysteryexe.xyz) was down:

HTTP code: 403
Response time: 947 ms

Resolved: Mysteryexe is back up in 30cb376 after 3 minutes.

repo: Mysteryexe/uptime-checker


text:
いいところ診断の結果に優しさを追加したい

以下の結果を追加したい
'{userName}のいいところは優しさです。あなたの優しい雰囲気や立ち振る舞いに多くの人が癒されています。'

これから対応します。

e971573 で対応されました。

repo: N-hotate/assessment


text:
无法朗读中英文

版本
0.81.1
UI配置

表现

所有中英文都无法朗读

升级到了最新的插件版本吗，我在本地没有复现这个问题。可以尝试重启一次 PowerToys 🫡

同问，无法朗读
系统环境为win10 22H2，不知道有无影响
以为是环境问题尝试了下载.net 8.0，无用
powertoy版本为0.85.1，插件版本为最新
声音设置没问题，进入有道网页测试能听到声音

authors: N0I0C0K Tzxhy owlsapce


text:
Fatal error: Cannot access protected property cpanelAPI::$scope

Fatal error: Cannot access protected property cpanelAPI::$scope

@tiagocaus sorry - examples update pushed (its been done for a while but it seems i got sidetracked...)
The README.md file is the most up to date resource for this code, so follow that

I tried this:
require "cpaneluapi.class.php";

$cPanel = new cpanelAPI($user_bancodedados, $pass_bancodedados, 'cpanel.xxxx.com');

$response = $cPanel->create_database(['name' => 'db']);
var_dump($response);

This error appeared:

Fatal error: Uncaught exception 'Exception' with message '$this->api is not set or is incorrectly set. The only available options are 'uapi' or 'api2'' in /home1/tstesit/public_html/INSTALAR/cpaneluapi.class.php:166 Stack trace: #0 /home1/tstesit/public_html/INSTALAR/cpaneluapi.class.php(141): cpanelAPI->APIcall('create_database', Array) #1 /home1/tstesit/public_html/INSTALAR/instalar.php(34): cpanelAPI->__call('create_database', Array) #2 /home1/tstesit/public_html/INSTALAR/instalar.php(34): cpanelAPI->create_database(Array) #3 {main} thrown in /home1/tstesit/public_html/INSTALAR/cpaneluapi.class.php on line 166

I also tried this, but it also does not create the database and no error appears.
require "cpaneluapi.class.php";

$uapi = new cpanelAPI($host_usuario, $host_senha, 'cpanel.xxxx.net');

$database = $nome_bancodedados;
$databaseuser = $user_bancodedados;
$databasepass = $pass_bancodedados;

$uapi->uapi->Mysql->create_database(array('name' => $database));
$uapi->uapi->Mysql->create_user(array('name' => $databaseuser, 'password' => $databasepass));

$uapi->uapi->Mysql->set_privileges_on_database(array('user' => $databaseuser, 'database' => $database, 'privileges' => 'ALL'));

Ok, So questions:

The class assumes https by default. If you're connecting with http then you'll need to change the ssl flag to 0
Have you dumped the $uapi variable? there is an error array that might contain something useful, or you can assign the result of each call to a variable and dump that. If you're not getting any errors but nothing is happening, it could be an issue connecting to the endpoint specifically.
Do you have 2 factor auth enabled?

Closing as no further responses. feel free to re-open if needed though.

license: mit


text:
[AERIE-1825] Nullable Windows

Tickets addressed: AERIE-1825
Review: By commit
Merge strategy: Merge (no squash)

Description
Thank you @pranav-super and @Twisol for getting this PR started!
Aside from javadocs on Windows.java, IntervalMap.java and a couple smaller classes, this PR is ready for review.
This PR allows Windows to have gaps. This requires a large conceptual shift in definition:

Old definition: A subset of the timeline
New definition: A boolean profile, with some special operations

To do this, the PR introduces IntervalMap<T>: a generic container that can store any profile, but currently it is only used to store Booleans. The existing Discrete and Real profile containers aren't changed to use IntervalMap, although they are not fundamentally different. Windows has been changed to be a subclass of IntervalMap<Boolean>, which adds extra operations.
This PR is not very separable; for the most part it is one gigantic change. I've separated it anyway into packages and tests, but any individual commit except for the last one will probably not build.

The Window class has been renamed to Interval to keep its name consistent with IntervalMap, and to not associate it too strongly with Windows, because they are also used in Spans. The refactor was easy, but it tends to flood the git comparison. So I've done my best to group them all in one commit, but it is not perfect.
Add IntervalMap and refactor Windows to use it
Add tests for IntervalMap
Update the rest of the constraints package to match
Update scheduler and scheduler-server to match
Update scheduler and scheduler-server tests to match
(in progress) documentation for Windows and IntervalMap

Verification
Just about every test in the constraints and scheduler packages were invalidated and updated.
Documentation
pending
Future work
Allow for some dank dank external profiles

FYI, since I dug into the PR code directly for my last set of comments, I made a bunch of changes locally to help me explore the PR. I've pushed my branch prototype/castello-intervalmap-review if you'd like to see what I had in mind for some of this. Feel free to ignore.

@Mythicaeda  Could the method be flattened something like this?

No, because of searchingIndex=this.segments.size()-1 + indexToRemove;. See this comment

authors: JoelCourtney Twisol

repo: NASA-AMMOS/aerie


text:
Error during calculating CNT and CNTSUM statistics (Difference option) for MODE MET-322

During calculation CNT and CNTSUM statistics (Difference option) for MODE METViever gives this error:
"FUNCTION s.COUNT does not exist. "
The problem is in invalid SQL statement for calculating statistics.
SELECT s.model, s.fcst_init, s.fcst_valid, s.fcst_lead, s.fcst_var, s.object_id, s.object_cat, 'CNT_DAA' stat_name, s.COUNT(object_id) - s2.COUNT(object_id) stat_value FROM mode_single s, mode_single2 s2.
MySQL functions COUNT and SUM can't be accessed using the table name

METviewer calculates the difference only for MODE Ratio stat

authors: TatianaBurek lisagoodrich

repo: NCAR/METviewer


text:
quick hack on issue #63

Please review this fix, and if everything looks right, I'll merge it!

Ok, this fix seems really simple so I'll merge it.
But this pull request, then review, then merge steps should be really useful!

repo: NCAR/VAPOR


text:
Explanatory no results Workflow C.2

https://arax.ncats.io/?source=ARS&id=bc7d0408-402c-480e-ad36-da57145834fc

  "description": "Unsupported query structure.",
  "logs": [],
  "message": {
    "knowledge_graph": {
      "edges": {},
      "nodes": {}
    },
    "query_graph": {
      "edges": {
        "e01": {
          "object": "n1",
          "predicates": [
            "biolink:related_to"
          ],
          "subject": "n0"
        },
        "e02": {
          "object": "n2",
          "predicates": [
            "biolink:related_to"
          ],
          "subject": "n0"
        },
        "e03": {
          "object": "n3",
          "predicates": [
            "biolink:related_to"
          ],
          "subject": "n0"
        }
      },
      "nodes": {
        "n0": {
          "categories": [
            "biolink:Gene"
          ]
        },
        "n1": {
          "categories": [
            "biolink:ChemicalSubstance"
          ],
          "ids": [
            "CHEBI:45783"
          ]
        },
        "n2": {
          "categories": [
            "biolink:Disease"
          ],
          "ids": [
            "MONDO:0005301"
          ]
        },
        "n3": {
          "categories": [
            "biolink:ChemicalSubstance"
          ]
        }
      }
    },
    "results": []
  },
  "status": "Unsupported",
  "validation_result": {
    "message": "",
    "n_edges": 0,
    "n_nodes": 0,
    "provenance_summary": {
      "n_sources": 0,
      "predicate_counts": {},
      "provenance_counts": {}
    },
    "size": "2 kB",
    "status": "PASS",
    "version": "1.1.1"
  }
}

Explanatory agent does not handle three-hop queries and is currently out of scope.

repo: NCATSTranslator/minihackathons


text:
Using fastq as input does not successfully execute magicblast alignment

On Ubuntu server:
Using fastq as input does not successfully execute magicblast alignment with the following error:
Traceback (most recent call last):
File "src/virusfriends.py", line 183, in
main()
File "src/virusfriends.py", line 178, in main
e.screen(args.inputs, args.intype)
File "src/virusfriends.py", line 101, in screen
s.screen_srr(s.srr, s.virus_db.path, samfile)
TypeError: screen_srr() missing 1 required positional argument: 'samfile'

Hi @gstarrett, I realize this was a while back but did you happen to find a solution to this issue? I currently have the same problem.

authors: JonathonMifsud gstarrett

repo: NCBI-Hackathons/VirusFriends


text:
🛑 Taksonomi is down

In fcbff59, Taksonomi (https://api.ndla.no/taxonomy/api-docs) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Taksonomi is back up in 3b7e940.

repo: NDLANO/oppetid


text:
Possible cause for some upload problems

We are continuing to get reports of difficulties registering and uploading records. Richard Dawson has looked into this further and has unearthed some issues (that arose on iOS devices) that I have been able to replicate on Android.
When a user who first registers via the app, they are asked for an email address and their full name. Registration cannot be completed without providing these. The account then needs to be verified via an email. If a user does that successfully, they are shown this screen:

That has a message about setting "at least your last name on your user account". However, it is not very obvious how that should be done, nor is it at all obvious WHY it should be done, given that the user has already provided a full name.
It is possible to continue at this point without adding the first name or last name, and going on to use the app for a FIT Count. If the user does that, the count results fail to upload, and no error message is given to explain to the user that anything has gone wrong.
Questions:

Do we really have to ask the user to provide a "full name" AND a "first name/last name" combination, or can we remove one or other of those options?
If we do have to have first/last name, can we ask the user to provide this as part of the main registration process, rather than having to do it as a separate step?
If it does have to be a separate step, I think we need to give more explanation to the user about how to do so.

The process of editing the user account is very cumbersome, especially when accessed via a phone, and I will add a separate issue for that.

You should be able to upload records right after clicking that verification link. Isn't that the case?

There is an increasing number of messages in the PoMS inbox from people who are unable to upload FIT Counts, all of which (so far) seem to be related to missing first and last names.
I think this must be a new problem? I don't recall it causing difficulties in the past.

authors: kazlauskis kitenetter

repo: NERC-CEH/fit-count-app


text:
在弹出气泡框时进行路由跳转，气泡框无法关闭

Version
0.7.1
Environment
win10, 谷歌浏览器
Reproduction link
https://github.com/
Steps to reproduce
1.先弹出一个气泡框或提示框，并点击里面的元素进行跳转
<nz-tooltip [nzTitle]="'作业明细'" [nzPlacement]="'top'">

2.可以看到跳转到新的页面后， '作业明细'几个提示文字依旧存在并无法关闭
3.不仅仅是提示文字无法关闭，尝试使用气泡弹框，跳转后依旧无法关闭
What is expected?
路由跳转后弹出的提示框自动关闭
What is actually happening?
路由跳转后弹出的提示框没有关闭
Other?

https://stackblitz.com/edit/ng-zorro-antd-setup-9bsiux?file=app%2Fapp.component.html
请不要提不可以在线重现的bug

repo: NG-ZORRO/ng-zorro-antd


text:
nz-input-number support onUp and onDown callback

What problem does this feature solve?
In some case we need to listen nz-input-number up and down event, thus we need those callbacks in nz-input-number.
What does the proposed API look like?
class NzInputNumberComponent {
@Output() onUp: EventEmitter<{oldValue: number, newValue: number}>;
@Output() onDown: EventEmitter<{oldValue: number, newValue: number}>;
}

<nz-input-number
(onUp)="doSomething($event)"
(onDown)="doSomething($event)">
</nz-input-number>

plz use ngModelChange.

@vthinkxie it seems like we can only get the newValue from ngModelChange event thus we can't know which event is triggered.

https://www.learnrxjs.io/operators/combination/pairwise.html

@vthinkxie In most cases, (ngModelChange ) is adequate. But what if we need to distinguish if it is :

an user input  or
a change triggered programmatically (setValue or patchValue).

Something like (onUserInput) would be helpful.

authors: kevindaizj mnikn vthinkxie


text:
使用select 选择器时，快捷键复制文本直接到文本框中后宽度没有自动更新

使用select 选择器时 快捷键复制文本后宽度没有触发更新(开启拼音输入法下也会),会产生以下样式问题

在本地测试中,使用了(input)方法来解决了这个问题,(nz-select.component.ts)

will be fixed in next version, thanks.

authors: ferqx vthinkxie


text:
Option to make the modal stay opened if the promise from nzOnOk fails

What problem does this feature solve?
Let's say I have a form inside the modal:
        this.modalService.confirm({
            nzTitle: 'Save user',
            nzContent: MyModalComponent,  // the form is inside this component
            nzOnOk: async (form) => {
                this.myService.saveUser(modal.form);
                console.log('User saved');
            }
        });

Upon clicking save, the server might reject the promise and the modal closes. In this case the user lost all the form information it had written and it has to reopen the modal and fill in the form again.
To fix this in the current version of ng-zorro, I have to use a try-catch block to catch the error and return false from it so the modal doesn't close(which is a bit ugly):
        this.modalService.confirm({
            nzTitle: 'Save user',
            nzContent: MyModalComponent,  // the form is inside this component
            nzOnOk: async (form) => {
                try{
                     this.myService.saveUser(modal.form);
                     console.log('User saved');
                }carch(e) {
                     // I am not handling the error here since it is handled by a HTTP interceptor
                     return false;
                }
            }
        });

I think the modal service, by default, should not close the modal if the promise returns a rejection. But if this cannot be done, I am thinking we can add a new option when creating a modal.
What does the proposed API look like?
We can call the option: nzCloseOnRejection.
        this.modalService.confirm({
            nzTitle: 'Save user',
            nzContent: MyModalComponent,
           nzCloseOnRejection: true,
            nzOnOk: async (form) => {
                this.myService.saveUser(modal.form);
                console.log('User saved');
            }
        });

This will allow to remove a ton of try catches from the nzOnOk methods.

What do you think about this feature, @hsuanxyz ?

For now, this is default behavior.
https://stackblitz.com/edit/angular-sjmdrt?file=src/app/app.component.ts

For now, this is default behavior.
https://stackblitz.com/edit/angular-sjmdrt?file=src/app/app.component.ts

It seems not work for modal created by this.modalService.create(), how to set delay time for this kind of modal?

authors: IonelLupu hsuanxyz zackshine


text:
De-duplicate / combine records between NCBI GEO + OmicsDI

OmicsDI harvests all the records from GEO, but with less metadata.  Combine relevant metadata and de-duplicate the records.  See also #40

It looks like the following fields can be used to match records between OMICS-DI and GEO:

name (title of dataset)
citation.pmid
author.name

Merging will be challenging as there is metadata unique to each.
For example, https://data.niaid.nih.gov/resources?id=OMICSDI_PRJNA775608 and https://data.niaid.nih.gov/resources?id=GEO_GSE186705 appear to be duplicate entries. However:

The GEO version appears to have better values for:

species
description

While the OMICS-DI version has a value for measurementTechnique which is not the GEO record

A sampling/survey should be performed to determine the extent and consistency of these differences. The description for GEO datasets coming from OMICS-DI appear to have the 'name' field mirrored for 'description'; hence, 'description' will likely always be better from GEO.

Initially, it appeared that GEO has better values for:

species
description
An evaluation of duplicates identified via matching names and citation.pmids indicate that GEO is NOT better than OMICS-DI for the description field and that this field should be normalized between the GEO and OMICS-DI parsers before the duplicates are merged.

In the following example of duplicates, we can see that the NDE's record of the dataset as ingested from OMICS-DI has a longer description than the NDE's record of the dataset as ingested from GEO. Further investigation reveals that the OMICS-DI record for this dataset does not match NDE's record of the dataset. Furthermore, the NDE's record as ingested from OMICS-DI actually aggregates additional information which is available in GEO's record of the dataset but not NDE's ingestion of the record from GEO
NDE's ingestion of the record from OMICS-DI

OMICS-DI's version of the record

NDE's ingestion of the record from GEO

GEO's version of the record

Resolving the differences between the handling of the 'description' field should enable us to merge the duplicates without worrying about which repository should override for conflicting 'descriptions'. Differences in the parsing may affect other metadata fields; however, it may not be as necessary to resolve those as they are expected to be unique between the repositories and should theoretically 'merge' without overwriting.

Per discussions the week of 2023.10.16, the GEO parser will be improved to have better descriptions. Both OMICS-DI and GEO will have the source names removed from the _id prefix to enable merging of GEO datasets with OMICS-DI datasets (which apparently augment each dataset with a variableMeasured value

Implemented, but awaiting build completion in staging

Available on staging

The number of duplicate records that are estimated to have been de-duplicated/merged are:
69782 between NCBI GEO and OMICS DI
290 between LINCS and OMICS DI

Thank you for the presentation on this issue from Scripps on 7 January 2024. The outcome from this approach sound promising. OK to move to production.
Please note: NIAID recognizes and is appreciative of the level of detail and would suggest that requests for NIAID feedback be focused more on outcome and impact rather than methods and approaches.

This has been moved to Production on 2024.01.29. The status of the issue has been changed to pending close out and will close after 1 week, if there are no further concerns about this issue.

authors: flaneuse gtsueng hartwickma

repo: NIAID-Data-Ecosystem/nde-crawlers


text:
fix niftycloud_lb deregist_instance error

Hi,  I find bug.
If there are two or more LBs, and the instance does not exist in the first LB, detachment will fail.
I fixed it. please merge!

:+1:

I fixed test data.

Tests passed. :+1:
$ git branch
* fix/niftycloud_lb_deregist_instance_error
  master

$ nosetests
.......................................................
----------------------------------------------------------------------
Ran 55 tests in 0.356s

OK

$ nosetests --no-byte-compile --with-coverage > /dev/null 2>&1 && coverage report --include=./niftycloud*.py
Name                   Stmts   Miss  Cover
------------------------------------------
niftycloud.py            165     31    81%
niftycloud_lb.py         118     17    86%
niftycloud_volume.py     100     24    76%
------------------------------------------
TOTAL                    383     72    81%

(By the way, I had to pip install coverage nose mock requests instead of pip install unittest mock requests to run tests. Maybe library README should be modified?)

Thanks! @harikiriboy

authors: harikiriboy tily ykokw

repo: NIFTYCloud/ansible-role-niftycloud


text:
JsonSchemaGenerator.GenerateAsyc() never returns

I have this code which works perfectly fine when I run it from my unit test.. but when I try it over IIS through postman or any other client the "schemaGen.GenerateAsync(sourceType).Result" never returns a response back.. sourceType is the Type of my POCO.
    private JsonSchema4 GenerateSchema(Type sourceType)
    {
        NJsonSchema.Generation.JsonSchemaGenerator schemaGen = _schemaGenerator.Value;
        var readSchema = schemaGen.GenerateAsync(sourceType).Result;
        return readSchema;
    }

As per the response to one more question on the blog, I tried this as well but no luck:
        var readSchema = schemaGen.GenerateAsync(sourceType).GetAwaiter().GetResult();

This could result into a show stopper if unable to get a resolution on this.. Any quick help/guidance on this will be greatly appreciated.
PS: I tried upgrading the NJsonSchema to the latest release (8.14.6289.34345). Still no luck
Thanks,
Vins

Hi vinaysharma,
I modified your code to use async/await to avoid thread blocking and it's working fine in IIS ASP.Net Application..
   private async Task<JsonSchema4> GenerateSchema(Type sourceType)
    {
        NJsonSchema.Generation.JsonSchemaGenerator schemaGen =
                              new JsonSchemaGenerator(new JsonSchemaGeneratorSettings());
                            //_schemaGenerator.Value;
        var readSchema = await schemaGen.GenerateAsync(sourceType).ConfigureAwait(false);
        return readSchema;
    }

Ii called it in a webform page and returning valid result:
   protected async void Button2_Click(object sender, EventArgs e)
    {
        var schema= await GenerateSchema(typeof(Person));
        Label1.Text =  schema.ToJson();
    }

The result Schema:
     {
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"title": "Person",
	"additionalProperties": false,
	"properties": {
		"id": {
			"type": "integer",
			"format": "int32"
		},
		"name": {
			"type": ["null", "string"]
		}
	}
}

The POCO Class:
   class Person
	{
                public int id { get; set; }
               public string name { get; set; }
	}

Best Regards,

See https://github.com/NJsonSchema/NJsonSchema/issues/333

authors: moh-hassan rsuter vinaysharma77

repo: NJsonSchema/NJsonSchema


text:
Stemmekretssammenslåing

Fikser #14

Takk!

authors: NKAmapper noenandre


text:
A fizzbuzz in C

Hello!
Here my participation. It's a little FizzBuzz in C, with just one printf.
Hope you'll like it!
Mel-louie

Interesting! Thank you :D

authors: Mel-louie NLDev

license: Unlicense


text:
Update oid.rs

I found a few comment typos while reading through these OID functions and felt it was easy enough to raise a PR for. Feel free to pass!

Thank you for the PR! “Identifier” apparently is a difficult word to spell …

authors: lvkv partim

repo: NLnetLabs/bcder


text:
mini_event.h (4.3.2 and 4.3.1) on OpenBSD cannot find fd_set - patch

--- ./mini_event.h.orig	2020-06-22 16:28:12.000000000 +0200
+++ ./mini_event.h	2020-06-22 16:29:23.000000000 +0200
@@ -73,6 +73,9 @@
 /* needs our redblack tree */
 #include "rbtree.h"

+/* for fd_set on OpenBSD */
+#include <sys/select.h>
+
 /** max number of file descriptors to support */
 #define MAX_FDS 1024
 /** max number of signals to support */

Thanks for the fixup, merged the fix.

authors: hdatma wcawijngaards

repo: NLnetLabs/nsd


text:
add camx as model

I just realized that I forgot to do this.
This just adds the CAMx reader as a possible model. It has been in MONETIO for a while now, and I have been using it in my fork, but (stupidly) never committed it to the main repo.
Cheers
Pablo

I am not sure about who I should at. @zmoon ? @rschwant ?

repo: NOAA-CSL/MELODIES-MONET


text:
Integration tests for RedisBackedJobManager

Suite of automated tests (not necessarily yet passing) for verifying behavior of RedisBackedJobManager implementation and its interaction with Redis instance.

@robertbartel A test in the communication suite is failing with this PR.  Do you want to fix that before merging?

@hellkite500, yeah, let me work in a few more changes before we fully merge this in.

repo: NOAA-OWP/DMOD


text:
t-route segfaults when loaded after netcdf-c<=4.9.1 shared library

TL;DR
T-Route's netCDF4(python library) dependency can segfault when another netcdf-c<=4.9.1 shared library has already been loaded. You are most likely to run into this issue when running NextGen with routing enabled. This issue is present in netCDF4 versions 1.6.5(latest) and 1.6.4. Versions <=1.6.3 are not affected.
To solve this issue either:

build a netCDF4 wheel from scratch locally: pip uninstall netcdf4; pip install --no-cache-dir --no-binary :all: netcdf4
install netCDF4<=1.6.3. pip install netCDF4==1.6.3.

Current behavior
Note: this has only been confirmed on linux.
If you compile and run NextGen with routing enabled with netcdf-c<=4.9.1 and netCDF4==1.6.4 or netCDF4==1.6.5 (python dep), when NextGen starts routing a segmentation fault will occur. This appears to have been resolved in the latest un-released version of netCDF4.
This occurs because of shared library function loading precedence. netCDF4 1.6.4 and 1.6.5 ship with a pre-compiled version of netcdf-c>4.9.1 as a shared library. netCDF4 calls a shared library function, nc_rc_set, from its included shared library. nc_rc_set calls another library function, NC_rcfile_insert that exists in both the netCDF4 included shared library and whatever netcdf-c shared library you have installed and loaded. When this call is made, it is possible that the NC_rcfile_insert function call, calls the function from your netcdf-c shared library and not the netCDF4 shared library. To make things worse, different versions of netcdf-c have different function signatures for NC_rcfile_insert. This means that nc_rc_set's  NC_rcfile_insert call could (in my case it did) have the wrong number of parameters or the order is incorrect. This leads to a segmentation fault when NC_rcfile_insert tries to call the strdup function on one of the function input arguments (that are likely incorrect).
To solve this issue either:

build a netCDF4 wheel from scratch locally: pip uninstall netcdf4; pip install --no-cache-dir --no-binary :all: netcdf4 this is preferred, but takes longer.
install netCDF4<=1.6.3. pip install netCDF4==1.6.3.

With a few small tweaks you can reproduce this issue locally:
# to run this script, first:
# linux: `export LD_LIBRARY_PATH=/usr/local/lib/python3.9/site-packages/netCDF4.libs`
#   mac: `export DYLD_LIBRARY_PATH=/usr/local/lib/python3.9/site-packages/netCDF4.libs`
# to find your site-package directory run
# `python -c 'import site; print(site.getsitepackages())'

import ctypes
import certifi
import os

def strencode(pystr,encoding=None):
    # encode a string into bytes.  If already bytes, do nothing.
    # uses 'utf-8' for default encoding.
    if encoding is None:
        encoding = 'utf-8'
    return pystr.encode(encoding)

# you likely need to change this
# use `nc-config --libs` to get the path to your `libnetcdf` shared library
og_nc = ctypes.CDLL("/usr/lib/aarch64-linux-gnu/libnetcdf.so", mode=ctypes.RTLD_GLOBAL)

# this likely will also need to change
# run `ls <the-path-to-netCDF4.libs>` and look for `libnetcdf-<xxx>.so.<xx>`
nc = ctypes.CDLL("/usr/local/lib/python3.9/site-packages/netCDF4.libs/libnetcdf-15d50133.so.19", mode=ctypes.RTLD_GLOBAL)

# segmentation fault
nc.nc_rc_set("HTTP.SSL.CAINFO", strencode(certifi.where()))

repo: NOAA-OWP/t-route


text:
Ferret hangs on SAVE when dataset has very long string global att

Reported by ansley b manke on 17 Mar 2011 19:27 UTC
reported by Keith Lindsay in this message
http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2011/msg00179.html
The dataset has a global attribute nco_input_file_list  which lists the names of 1000 files.  The attribute string is 39000 characters long.
When writing the global attributes Ferret is not handling that correctly which sends it off to the moon.
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/1818

Comment by ansley.b.manke on 31 Mar 2011 19:17 UTC
Duplicate of ticket 1028

repo: NOAA-PMEL/Ferret


text:
lift the restriction of 6 line colors

Reported by Steven C Hankin on 29 Aug 2005 23:51 UTC
Change the limit of "6" into a variable, wherever it occurs (if it is not
already so).  This should include the automated logic that selects line styles
in the simplest plot commands such as
yes?  PLOT v1,v2,v3,v4,v5,v6,v7,v8
Make the limit changeable with a command like
yes?  SET MODE LINE_COLORS 10
The command
yes? PPL COLOR n,r,g,b
could set the colors.  The syntax @Cnn etc. would access the colors.
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/1333

Comment by ansley.b.manke on 12 Jan 2009 19:04 UTC
This was done partially in v6.02 or so (interactive and gif modes only) and fully in v6.16+ where it also works in batch mode for postscript and metafiles (see also #1476, batch mode, comments about ppl color)
set mode linecolors:12
ppl color,7,100,50,0   ! orange
ppl color,8,0,55,0     ! dark green
ppl color,9,60,0,100   ! purple
ppl color,10,100,60,70 ! pink
ppl color,11,80,70,60  ! tan
ppl color,12,100,75,0  ! yellow
plot/thick/line/i=1:100 \
cos(i/20), cos(i/24), cos(i/28), cos(i/32), \
cos(i/36), cos(i/40), cos(i/44), cos(i/48), \
cos(i/52), cos(i/56), cos(i/60), cos(i/64)

Comment by ansley.b.manke on 12 Jan 2009 19:06 UTC
Here is the example, formatted:
set mode linecolors:12

ppl color,7,100,50,0   ! orange
ppl color,8,0,55,0     ! dark green
ppl color,9,60,0,100   ! purple
ppl color,10,100,60,70 ! pink
ppl color,11,80,70,60  ! tan
ppl color,12,100,75,0  ! yellow
plot/thick/line/i=1:100 \\
 cos(i/20), cos(i/24), cos(i/28), cos(i/32), \\
 cos(i/36), cos(i/40), cos(i/44), cos(i/48), \\
 cos(i/52), cos(i/56), cos(i/60), cos(i/64)


text:
"dms" formatting of axes alters axis limits

Reported by Jonathan S Callahan on 27 Apr 2006 17:33 UTC
This is important for the Engineering folks because they want both:

axes formatted with Degrees-Minutes-Seconds
guaranteed equal length axes

The following test shows the problem:
yes? use etopo60
yes? set win/aspect=1:ax
yes? fill/hlimits=-158.68:-120.52/vlimits=33.629:71.786 rose
yes? ! The plot axes precisely reflect the limits specified
yes?
yes? fill/set/hlimits=-158.68:-120.52/vlimits=33.629:71.786 rose
yes? ppl xfor (F7.2,''lone'')
yes? ppl yfor (F7.2,''lat'')
yes? ppl xfor (dms)
yes? ppl yfor (dms)
yes? ppl fill
yes? ! Why did the axis ranges get rounded all of a sudden!
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/1409

Comment by Ansley.B.Manke@noaa.gov on 27 Apr 2006 20:23 UTC
This was done to re-compute axis limits which had been automatically computed
based on the range of coordinates for the data. The default computations set
"good" intervals in decimal degrees. That is, an axis that's one degree in each
direction would have a default delta of 0.2, say, but for dms formatting we want
20 minutes.
The problem can be fixed by resetting only the delta-degrees on the axes and
leaving the upper and lower limits alone. This is definitely the correct
behavior when the user has set the axis limits. At the point when the ppl xfor
(dms) is done, Ferret does not know whether the user explicitly set the limits
or not.
Fixed in pplcmd_f.F  Whether the axis endpoints should be changed on PPL XFOR
(DMS), PPL YFOR (DMS) when they had previously been computed by Ferret is left
to future development.


text:
Slide puzzles too slow

Slide puzzles work, but they are very slow to randomly generate.  For now might have to have some hard coded options.
Split from #37

Hard coded for now.

repo: NPBruce/valkyrie


text:
Grid Charging Battery Profile

Hi, In the API, what is the profile for the utility charging battery [kw]?
From the webtool, we do have a profile showing how much power is applied from the utility to charge the battery.

@tingm417  The output series you are looking for is in outputs.Scenario.Site.ElectricTariff. year_one_to_battery_series_kw. You can find a detailed description and other outputs in the documentation at https://developer.nrel.gov/docs/energy-optimization/reopt-v1/

repo: NREL/REopt-API-Analysis


text:
ssc_auto_exec created to address #634 only works in callbacks and NOT MIMOs

The ssc_auto_exec works in callback scripts but not MIMOs. For example, see ETES System Design page. The issue is that equations are evaluated before the case is created and the invoke functions need to have the case to iterate over the variables. That is why the tedious MIMO method works and updates whenever any of the specified inputs are changed. Still investigating alternate solutions.

Search through lk parser and equation evaluator and setting of inputs and output and dependent varibles and find no lk function that will properly setup and parse equations in Case->SetConfiguration.
Alternative is to parse the equation script at input page load and expand as

For proper triggering when a MIMO input changes.
Cannot handle the if financing exception above but all other values can be set and the data opject can be created and returned and all will be treated as inputs.
Change would have to occur either at

or at

@tyneises , working now in equations in SAM_634 branches of lk, ssc, and SAM. SSC variables not in UI need to have UIHINT set to SIMULATION_PARAMETER

repo: NREL/SAM


text:
Fix Revit 221153

Fixes https://github.com/NREL/SystemsAnalysisReports/issues/96
When multizone coils are hard-sized in the simulation, the Coil Sizing Details report writes 'default' (uncalculated, -999) values to the ideal loads temperature/humidity ratio state points, which caused the psychrometric routines used in populating the Design Psychrometrics report to fail. This change catches the default values and returns nil instead, and edits the design psychrometrics report generator to handle nil/null values. When all null values are detected, the psychrometrics summary table is replaced with a message that valid state points were not found due to hardsizing:

The psychrometric chart is and Summary table are still shown, but with the missing data. Also, the printed PDF is generated with the psychrometric table, with blank values.
Future refinements will be needed to handle the bad data shown in the Summary Table, if requested.

Note to check 11 Jay St..xml report, which doesn't work.

authors: MatthewSteen eringold

repo: NREL/SystemsAnalysisReports


text:
Contract meta data

If we have contract data in template in form of ID for RC.org, we should display:
contract name,
ID,
link
as well as following meta data categories:
contract type,
signature year,
resource
disclosure mode

all of these should be populated via API query to RC usign RC ID

Condition for adding to RP:
Only add contracts if document_type="contract"
Example:
X company signs contract in 2010. In 2015 company payments from B company appears. B may or may not own A.

It is not displaying contract name right now nor here:
http://dev.resourceprojects.org/contracts
nor on project site where there is a link to contract.
http://dev.resourceprojects.org/project/gh-jubi-zpqzhc

probably easiest to fix is the first one (contracts page), other one maybe better to wait post soft launch.

These match the wireframe specs. If you want to change these can you add a screenshot of where and what you want?

As a dirty fix, maybe we could change RC-ID to be a link (open in new window)  to appropriate RC contract page?  http://www.resourcecontracts.org/contract/ RC-ID /view
since contract page is empty we don`t really need to display that.

moved to #117


text:
TST: Test that exceptions are included in mds object API.

The main point of making this a formal unit test is ensuring that other MDS implementations don't forget to expose the exceptions as attributes.

Not as obsessed about coverage as @tacaswell lol

Current coverage is 89.70% (diff: 100%)

Merging #250 into master will increase coverage by 0.63%

@@             master       #250   diff @@
==========================================
  Files             4          4
  Lines           476        476
  Methods           0          0
  Messages          0          0
  Branches         75         75
==========================================
+ Hits            424        427     +3
+ Misses           37         34     -3
  Partials         15         15

Powered by Codecov. Last update 54c2c0d...acfc132

Haha, no problem, @arkilic. I only added these because I realized I want them for portable-mds. This kind of coverage doesn't mean much for metadatastore itself.

I imported them in mdclient like a crazy person as well. mdclient has mds as a requirement just because of these exceptions.

As soon as this is merged I will kick off a PR into portable-mds that depends on this being in MDS master.

I will do the same in mdclient

authors: arkilic codecov-io danielballan

repo: NSLS-II/metadatastore


text:
Add endpoint to return a list of detectors for a given beamline

For example the detectors on SRX are

bpmA_cam
default
dexela
hfm_cam
merlin
xspress3
zebra

@nmaytan Do we need to include the default in the list ?  i.e. is a real detector or just a catchall location ?

Yes, default is in our current list of managed directories for SRX assets. If we are "moving" this to proposals, I presume it should match - unless we take a line to only put detectors in assets.

I think the answer here is: not all assets dirs belong in the detector list, and therefore default should have a path entry but not be in the list of detectors

authors: nmaytan stuartcampbell


text:
Reactjs repo

fixed sponsor page
large:

small:

fixed blog page

Just a question, should the blog and date be flex-end?

Just a question, should the blog and date be flex-end?

I decided to center them after adding the background since there are colors at the corner. this is the alternative, pick your poison haha @mqchua

i can do it like this as well, maybe the rest can chip in with ur opinions? @mqchua @Nielsencu @Wincenttjoi

i can do it like this as well. this is the most i can go b4 the words get too close to the corners. maybe the rest can chip in with their opinions? @mqchua @Nielsencu @Wincenttjoi

i can do it like this as well. this is the most i can go b4 the words get too close to the corners. maybe the rest can chip in with their opinions? @mqchua @Nielsencu @Wincenttjoi

I actually like this but ultimately ops will have the final say. May want to consider standardizing this background and title throughout the webpages if u want (pretty sure theyre fine with it)

Add a title prop to the bottombar component so that everyone else can reuse the component

authors: Nielsencu Wincenttjoi mqchua thewongwayround


text:
Interpret this into "MOCAP" Data?

Is it possible to record this data or live link it to like blender or UE4 as animation data like done with mocap? It would be really useful and help me with my game development. Of course this cant deal with facial expressions but that is separate thing I can do.

Hi JohnLemone,
Thanks for reaching out!
I'm not familiar with animation software, but it may be possible! (and would certainly be cool to see)
This algorithm takes as input an RGB image and computes the 2D location of all detected parts for each person in the image.
Please let me know if this helps or if you have any questions.
Best,
John

authors: JohnLemone jaybdub


text:
[QST] Environment settings to run example notebooks

❓ Questions & Help
Details

Hi! First, thanks for the interesting research and library :) I'm trying to run the example notebook ('example/getting-started-session-based/02-session-based-XLNet-with-PyT.ipynb'), but am running into several errors seemingly related with PyTorch, etc.
May I ask for the recommended library installation process and environment settings to successfully run the example notebooks without errors? My current environment is:
conda, CUDA Version: 11.4
python 3.7.12, nvtabular 0.7.1, transformers4rec 0.1.2, pytorch 1.7.1, cudatoolkit 11.0.221
I got to this environment by installing in this order:

NVTabular
conda install -c nvidia -c rapidsai -c numba -c conda-forge nvtabular python=3.7 cudatoolkit=11.0
TRM4Rec
conda install -c nvidia -c rapidsai -c numba -c conda-forge transformers4rec cudatoolkit=11.0
PyTorch
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch

I had to install in this way to meet with NVTabular requirements. If I'm missing something, please let me know.
Thanks for the help!
Example error that I am having currently:
I first got this cuda related error by running the script than instantiates training.
start_time_window_index = 1
final_time_window_index = 7
#Iterating over days of one week
for time_index in range(start_time_window_index, final_time_window_index):
    # Set data
    time_index_train = time_index
    time_index_eval = time_index + 1
    train_paths = glob.glob(os.path.join(OUTPUT_DIR, f"{time_index_train}/train.parquet"))
    eval_paths = glob.glob(os.path.join(OUTPUT_DIR, f"{time_index_eval}/valid.parquet"))
    print(train_paths)

    # Train on day related to time_index
    print('*'*20)
    print("Launch training for day %s are:" %time_index)
    print('*'*20 + '\n')
    trainer.train_dataset_or_path = train_paths
    trainer.reset_lr_scheduler()
    trainer.train()
    trainer.state.global_step +=1
    print('finished')

    # Evaluate on the following day
    trainer.eval_dataset_or_path = eval_paths
    train_metrics = trainer.evaluate(metric_key_prefix='eval')
    print('*'*20)
    print("Eval results for day %s are:\t" %time_index_eval)
    print('\n' + '*'*20 + '\n')
    for key in sorted(train_metrics.keys()):
        print(" %s = %s" % (key, str(train_metrics[key])))
    wipe_memory()

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
/tmp/ipykernel_87597/2595200145.py in <module>
     16     trainer.train_dataset_or_path = train_paths
     17     trainer.reset_lr_scheduler()
---> 18     trainer.train()
     19     trainer.state.global_step +=1
     20     print('finished')

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers/trainer.py in train(self, resume_from_checkpoint, trial, ignore_keys_for_eval, **kwargs)
   1288             self.control = self.callback_handler.on_epoch_begin(args, self.state, self.control)
   1289
-> 1290             for step, inputs in enumerate(epoch_iterator):
   1291
   1292                 # Skip past any already trained steps if resuming training

~/anaconda/envs/thesis/lib/python3.7/site-packages/torch/utils/data/dataloader.py in __next__(self)
    433         if self._sampler_iter is None:
    434             self._reset()
--> 435         data = self._next_data()
    436         self._num_yielded += 1
    437         if self._dataset_kind == _DatasetKind.Iterable and \

~/anaconda/envs/thesis/lib/python3.7/site-packages/torch/utils/data/dataloader.py in _next_data(self)
    473     def _next_data(self):
    474         index = self._next_index()  # may raise StopIteration
--> 475         data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
    476         if self._pin_memory:
    477             data = _utils.pin_memory.pin_memory(data)

~/anaconda/envs/thesis/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py in fetch(self, possibly_batched_index)
     26             for _ in possibly_batched_index:
     27                 try:
---> 28                     data.append(next(self.dataset_iter))
     29                 except StopIteration:
     30                     break

~/anaconda/envs/thesis/lib/python3.7/site-packages/nvtabular/loader/backend.py in __next__(self)
    332
    333     def __next__(self):
--> 334         return self._get_next_batch()
    335
    336     def _fetch_chunk(self):

~/anaconda/envs/thesis/lib/python3.7/site-packages/nvtabular/loader/backend.py in _get_next_batch(self)
    359         # get the first chunks
    360         if self._batch_itr is None:
--> 361             self._fetch_chunk()
    362
    363         # try to iterate through existing batches

~/anaconda/envs/thesis/lib/python3.7/site-packages/nvtabular/loader/backend.py in _fetch_chunk(self)
    338         if isinstance(chunks, Exception):
    339             self.stop()
--> 340             raise chunks
    341         self._batch_itr = iter(chunks)
    342

~/anaconda/envs/thesis/lib/python3.7/site-packages/nvtabular/loader/backend.py in load_chunks(self, dev)
    142             if self.dataloader.device != "cpu":
    143                 with self.dataloader._get_device_ctx(dev):
--> 144                     self.chunk_logic(itr)
    145             else:
    146                 self.chunk_logic(itr)

~/anaconda/envs/thesis/lib/python3.7/contextlib.py in inner(*args, **kwds)
     72         def inner(*args, **kwds):
     73             with self._recreate_cm():
---> 74                 return func(*args, **kwds)
     75         return inner
     76

~/anaconda/envs/thesis/lib/python3.7/site-packages/nvtabular/loader/backend.py in chunk_logic(self, itr)
    124
    125             if len(chunks) > 0:
--> 126                 chunks = self.dataloader.make_tensors(chunks, self.dataloader._use_nnz)
    127                 # put returns True if buffer is stopped before
    128                 # packet can be put in queue. Keeps us from

~/anaconda/envs/thesis/lib/python3.7/contextlib.py in inner(*args, **kwds)
     72         def inner(*args, **kwds):
     73             with self._recreate_cm():
---> 74                 return func(*args, **kwds)
     75         return inner
     76

~/anaconda/envs/thesis/lib/python3.7/site-packages/nvtabular/loader/backend.py in make_tensors(self, gdf, use_nnz)
    466
    467                 batches[n].append(c)
--> 468         return [self._handle_tensors(*batch) for batch in batches]
    469
    470     def _get_segment_lengths(self, num_samples):

~/anaconda/envs/thesis/lib/python3.7/site-packages/nvtabular/loader/backend.py in <listcomp>(.0)
    466
    467                 batches[n].append(c)
--> 468         return [self._handle_tensors(*batch) for batch in batches]
    469
    470     def _get_segment_lengths(self, num_samples):

~/anaconda/envs/thesis/lib/python3.7/contextlib.py in inner(*args, **kwds)
     72         def inner(*args, **kwds):
     73             with self._recreate_cm():
---> 74                 return func(*args, **kwds)
     75         return inner
     76

~/anaconda/envs/thesis/lib/python3.7/site-packages/nvtabular/loader/backend.py in _handle_tensors(self, cats, conts, labels)
    598                         f"Did not convert {column_name} to sparse due to missing sparse_max entry"
    599                     )
--> 600                 X[column_name] = self._to_sparse_tensor(X[column_name], column_name)
    601
    602         # TODO: use dict for labels as well?

~/anaconda/envs/thesis/lib/python3.7/site-packages/nvtabular/loader/backend.py in _to_sparse_tensor(self, values_offset, column_name)
    493                 + f"largest sequence in this batch have {max_seq_len} length"
    494             )
--> 495         return self._build_sparse_tensor(values, offsets, diff_offsets, num_rows, seq_limit)
    496
    497     def _to_tensor(self, gdf, dtype=None):

~/anaconda/envs/thesis/lib/python3.7/site-packages/nvtabular/loader/torch.py in _build_sparse_tensor(self, values, offsets, diff_offsets, num_rows, seq_limit)
    177
    178     def _build_sparse_tensor(self, values, offsets, diff_offsets, num_rows, seq_limit):
--> 179         indices = self._get_indices(offsets, diff_offsets)
    180         return self._get_sparse_tensor(values, indices, num_rows, seq_limit)
    181

~/anaconda/envs/thesis/lib/python3.7/site-packages/nvtabular/loader/torch.py in _get_indices(self, offsets, diff_offsets)
    162     def _get_indices(self, offsets, diff_offsets):
    163         row_ids = torch.arange(len(offsets) - 1, device=self.device)
--> 164         row_ids_repeated = torch.repeat_interleave(row_ids, diff_offsets)
    165         row_offset_repeated = torch.repeat_interleave(offsets[:-1], diff_offsets)
    166         col_ids = torch.arange(len(row_offset_repeated), device=self.device) - row_offset_repeated

RuntimeError: CUDA error: invalid device ordinal

Even when I fix the above error manually by fixing the code, I get another error like below with the same script.
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
/tmp/ipykernel_9524/2595200145.py in <module>
     16     trainer.train_dataset_or_path = train_paths
     17     trainer.reset_lr_scheduler()
---> 18     trainer.train()
     19     trainer.state.global_step +=1
     20     print('finished')

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers/trainer.py in train(self, resume_from_checkpoint, trial, ignore_keys_for_eval, **kwargs)
   1314                         tr_loss_step = self.training_step(model, inputs)
   1315                 else:
-> 1316                     tr_loss_step = self.training_step(model, inputs)
   1317
   1318                 if (

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers/trainer.py in training_step(self, model, inputs)
   1847                 loss = self.compute_loss(model, inputs)
   1848         else:
-> 1849             loss = self.compute_loss(model, inputs)
   1850
   1851         if self.args.n_gpu > 1:

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers/trainer.py in compute_loss(self, model, inputs, return_outputs)
   1879         else:
   1880             labels = None
-> 1881         outputs = model(**inputs)
   1882         # Save past state if it exists
   1883         # TODO: this needs to be fixed and made cleaner later.

~/anaconda/envs/thesis/lib/python3.7/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    725             result = self._slow_forward(*input, **kwargs)
    726         else:
--> 727             result = self.forward(*input, **kwargs)
    728         for hook in itertools.chain(
    729                 _global_forward_hooks.values(),

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers4rec/torch/trainer.py in forward(self, *args, **kwargs)
    785     def forward(self, *args, **kwargs):
    786         inputs = kwargs
--> 787         return self.module(inputs, *args)

~/anaconda/envs/thesis/lib/python3.7/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    725             result = self._slow_forward(*input, **kwargs)
    726         else:
--> 727             result = self.forward(*input, **kwargs)
    728         for hook in itertools.chain(
    729                 _global_forward_hooks.values(),

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers4rec/torch/model/base.py in forward(self, inputs, training, **kwargs)
    520         outputs = {}
    521         for head in self.heads:
--> 522             outputs.update(head(inputs, call_body=True, training=training, always_output_dict=True))
    523
    524         if len(outputs) == 1:

~/anaconda/envs/thesis/lib/python3.7/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    725             result = self._slow_forward(*input, **kwargs)
    726         else:
--> 727             result = self.forward(*input, **kwargs)
    728         for hook in itertools.chain(
    729                 _global_forward_hooks.values(),

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers4rec/torch/model/base.py in forward(self, body_outputs, training, call_body, always_output_dict, **kwargs)
    386
    387         if call_body:
--> 388             body_outputs = self.body(body_outputs, training=training)
    389
    390         for name, task in self.prediction_task_dict.items():

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers4rec/config/schema.py in __call__(self, *args, **kwargs)
     48         self.check_schema()
     49
---> 50         return super().__call__(*args, **kwargs)
     51
     52     def _maybe_set_schema(self, input, schema):

~/anaconda/envs/thesis/lib/python3.7/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    725             result = self._slow_forward(*input, **kwargs)
    726         else:
--> 727             result = self.forward(*input, **kwargs)
    728         for hook in itertools.chain(
    729                 _global_forward_hooks.values(),

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers4rec/torch/block/base.py in forward(self, input, training, **kwargs)
    149
    150             elif "training" in inspect.signature(module.forward).parameters:
--> 151                 input = module(input, training=training)
    152             else:
    153                 input = module(input)

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers4rec/config/schema.py in __call__(self, *args, **kwargs)
     48         self.check_schema()
     49
---> 50         return super().__call__(*args, **kwargs)
     51
     52     def _maybe_set_schema(self, input, schema):

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers4rec/torch/tabular/base.py in __call__(self, inputs, pre, post, merge_with, aggregation, *args, **kwargs)
    379
    380         # This will call the `forward` method implemented by the super class.
--> 381         outputs = super().__call__(inputs, *args, **kwargs)  # noqa
    382
    383         if isinstance(outputs, dict):

~/anaconda/envs/thesis/lib/python3.7/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    725             result = self._slow_forward(*input, **kwargs)
    726         else:
--> 727             result = self.forward(*input, **kwargs)
    728         for hook in itertools.chain(
    729                 _global_forward_hooks.values(),

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers4rec/torch/features/sequence.py in forward(self, inputs, training, **kwargs)
    259         if self.masking:
    260             outputs = self.masking(
--> 261                 outputs, item_ids=self.to_merge["categorical_module"].item_seq, training=training
    262             )
    263

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers4rec/config/schema.py in __call__(self, *args, **kwargs)
     48         self.check_schema()
     49
---> 50         return super().__call__(*args, **kwargs)
     51
     52     def _maybe_set_schema(self, input, schema):

~/anaconda/envs/thesis/lib/python3.7/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    725             result = self._slow_forward(*input, **kwargs)
    726         else:
--> 727             result = self.forward(*input, **kwargs)
    728         for hook in itertools.chain(
    729                 _global_forward_hooks.values(),

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers4rec/torch/masking.py in forward(self, inputs, item_ids, training)
    197
    198     def forward(self, inputs: torch.Tensor, item_ids: torch.Tensor, training=False) -> torch.Tensor:
--> 199         _ = self.compute_masked_targets(item_ids=item_ids, training=training)
    200         if self.mask_schema is None:
    201             raise ValueError("`mask_schema must be set.`")

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers4rec/torch/masking.py in compute_masked_targets(self, item_ids, training)
    138         """
    139         assert item_ids.ndim == 2, "`item_ids` must have 2 dimensions."
--> 140         masking_info = self._compute_masked_targets(item_ids, training=training)
    141         self.mask_schema, self.masked_targets = masking_info.schema, masking_info.targets
    142

~/anaconda/envs/thesis/lib/python3.7/site-packages/transformers4rec/torch/masking.py in _compute_masked_targets(self, item_ids, training)
    381
    382             labels_to_unmask = torch.masked_select(
--> 383                 sampled_labels_to_unmask, sequences_with_only_labels
    384             )
    385             rows_to_unmask = torch.masked_select(rows_ids, sequences_with_only_labels)

RuntimeError: invalid shape dimension -1095467911

@kev94yo thanks for reporting the issue. The recommended way is to use  Merlin docker containers. Can you try using merlin-pytorch-training:21.11 image?
simply pull the container first:
docker pull nvcr.io/nvidia/merlin/merlin-pytorch-training:21.11

and then use the commands in this README to launch the container and jupyter notebooks.
If you get an error in the model training, try uninstalling PyTorch and then install PyTorch 1.10.0 again. You can do it via pip install torch==1.10.0.
Let us know if that works for you.

@rnyak Thanks for the quick reply. Unfortunately, the problem for me is that I'm using a server that doesn't support docker :(
I solved the problem in the meantime by installing PyTorch 1.10.0 like you suggested, by following steps in #314. I think it would be good in the future if there is a specific guideline including versions for NVTabular, PyTorch and Transformers4Rec installation to successfully run the example notebooks. (For users without docker)
Thanks for the help!

@kev94yo Glad that you solved this issue. Thank you for the feedback and sorry for the inconvenience.  We will make our installation steps clearer for the upcoming releases.


text:
add gcp label to jenkinsfile

This adds the label for GCP a100 nodes to be used on gpuci.io to run PR gpu tests

rerun tests

authors: AyodeAwe rnyak

repo: NVIDIA-Merlin/models


text:
[BUG] ImportError: lxml.html.clean module is now a separate project lxml_html_clean.

Describe the bug
from nemo_curator.download import download_common_crawl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/NeMo-Curator/nemo_curator/download/__init__.py", line 16, in <module>
    from .commoncrawl import (
  File "/opt/NeMo-Curator/nemo_curator/download/commoncrawl.py", line 21, in <module>
    import justext
  File "/usr/local/lib/python3.10/dist-packages/justext/__init__.py", line 12, in <module>
    from .core import justext
  File "/usr/local/lib/python3.10/dist-packages/justext/core.py", line 21, in <module>
    from lxml.html.clean import Cleaner
  File "/usr/local/lib/python3.10/dist-packages/lxml/html/clean.py", line 18, in <module>
    raise ImportError(
ImportError: lxml.html.clean module is now a separate project lxml_html_clean.
Install lxml[html_clean] or lxml_html_clean directly.

Steps/Code to reproduce bug
https://github.com/NVIDIA/NeMo-Curator/issues/25 use this Dockerfile to build image, and create a container successfuly, but when i run from nemo_curator.download import download_common_crawl, it encountered an error above.

Yeah we saw this too. It's a problem with jusText. I have found a workaround that I will make a PR for later.

repo: NVIDIA/NeMo-Curator


text:
Curator should support numpy > 2

Is your feature request related to a problem? Please describe.
Currently numpy is restricted to < 2. But in cudf 24.10 release numpy allows 2.0 release.
However we tried just removing that version pinning, but it ended up in pip being unable to resolve dependencies.
Describe the solution you'd like

Support numpy 2
Be installable with pip

Describe alternatives you've considered

Tried just removing that pin and installing, but pip wasn't able to resolve packages

Duplicate of https://github.com/NVIDIA/NeMo-Curator/issues/120.

authors: praateekmahajan sarahyurick


text:
malloc error on initialization of inverse normalizer

In the initialization of inverse normalizer for English language, sometimes the code crashed with the following error at the initialization:
malloc(): unaligned tcache chunk detected
I traced the code and found this occasional error occured in the importing some modules from pynini package in nemo_text_processing/text_normalization/en/graph_utils.py lines 23 to 25:

I fixed this issue by updating pynini to version 2.1.6, however its version in requirements file is explicitly set to 2.1.5 and this version seems to be reason of such crash.
I think the pynini version in requirements/requirements.txt file should be updated to 2.1.6

OS: Ubuntu 22.04
HW: CPU
python 3.10

We haven't been able to reproduce this. Have you tried this on another machine?

repo: NVIDIA/NeMo-text-processing


text:
Allow disabling service

We scrape the pod port directly. Plus scraping the service doesn't really work with daemonset since the service will point to only one of the daemonset pods, and when more than one node exists with GPUs, this ends up not scraping more than one node.

How would Helm like an empty template? For example, helm template needs --output-dir argument to ignore empty YAML files.

Helm does just fine, I did this and get correctly rendered deployment:
$ helm template dcgm-exporter deployment --set service.enable=false

This rendered my local changes without the Service.  This pattern of not deploying a template is already being used in this Helm chart:
https://github.com/NVIDIA/dcgm-exporter/blob/50ccb1a609153bed097ccfb849797a5ab8f7b23b/deployment/templates/service-monitor.yaml#L1
My local Helm deployment of this exporter sets that serviceMonitor to not be included and it works great.  Helm doesn't care if one file is empty, since it renders all the files together so one empty file is going to be like that file doesn't exist.

I moved the boolean for enable/disable service to same place (above comments) like the serviceMonitor file to make things consistent.

@treydock, Could you sign-off you commit, please?

Updated commit to be signed off.

authors: nikkon-dev treydock

repo: NVIDIA/dcgm-exporter


text:
[auto-merge] bot-auto-merge-branch-23.02 to branch-23.04 [skip ci] [bot]

auto-merge triggered by github actions on bot-auto-merge-branch-23.02 to create a PR keeping branch-23.04 up-to-date. If this PR is unable to be merged due to conflicts, it will remain open until manually fix.

SUCCESS - auto-merge

repo: NVIDIA/spark-rapids-jni


text:
Make creation of a Scalar decimal value simpler

So the original code that this was commented on is
        if (DecimalType.is32BitDecimalType(dt)) {
          withResource(Scalar.fromDecimal(-scale, 0)) { scalar =>
            scalar.sub(input.getBase)
          }
        } else {
          withResource(Scalar.fromDecimal(-scale, 0L)) { scalar =>
            scalar.sub(input.getBase)
          }
        }

Is there a way to make an API where we could combine the two if blocks?
Originally posted by @revans2 in https://github.com/NVIDIA/spark-rapids/pull/1717#discussion_r605116802

We can add a generic fromDecimal is templated or uses Object and we pass the precision or some metadata bit to do this logic through the API.

The code in question is gone now. We already have a GpuScalar.from that does this and has replaced most calls. I think this is good enough.

Thank u Bobby. Maybe we should use that [https://github.com/NVIDIA/spark-rapids/blob/branch-22.02/sql-plugin/src/main/scala/org/apache/spark/sql/rapids/arithmetic.scala#L79]

authors: kuhushukla razajafri revans2

repo: NVIDIA/spark-rapids


text:
Improve benchmark error handling

Improve benchmark error handling when converting executed plan to JSON.

PR is marked for Release 0.4 but the target branch is 0.3?

authors: andygrove jlowe


text:
Adds subquery aggregate tests from SPARK-31620

Closes https://github.com/NVIDIA/spark-rapids/issues/1898.
This is being added to incorporate sub-query aggregate tests added in SPARK-31620 (Spark 3.0.0). These later showed failures in SPARK-32031 (3.1.0), but I can't reproduce the failure with our gpu aggregate.
The tests are being added so we exercise the sub-query aggs going forward.

build


text:
Falcor 4.4 build system has changed

Hello, This is actually not a technical issue. I guess the instruction set for Falcor in Readme.md has changed a lot for the latest Falcor 4.4.

Thanks. This code base is pretty out-of-date, I'd be surprised if it still works with the latest Falcor. The code still has some use to it, but we need to at least note that it won't work as-is. I'll try to update it in some way soon.


text:
Fix ShapeNet_Images and its tests

Description

Fix ShapeNet_Images to follower original ShapeNetRendering topology.
put back tests/datasets/test_ShapeNet.py:test_Images and fixed it.

Tests
Tested with pytest test_ShapeNet.py
OS: Ubuntu 18.04
GPU: Titan RTX
CUDA: 10.2
Driver: 440.31
Comments
There are still some fix to be done on ShapeNet_Images, among them:

Remove the non-determinism due to random view selection in getitem
Tougher tests
Format fixes

Looks great! Just a minor change in the test needed and it's good to be merged.

authors: Caenorst Jean-Francois-Lafleche

repo: NVIDIAGameWorks/kaolin


text:
[Toolkit feature]: Option to hide selected 3D asset

Contact Details (Optional)
No response
What is the context of the feature/improvement?
I would love to have a way to quickly hide a selected object, for example a custom mesh, from view. So that I can work on whatever is behind it. Perhaps it can be done with pressing the H key? But then we must also have a "unhide" system. I'll provide a screenshot to show my workflow and how I was hindered from working on the vanilla asset underneath it (the Train in this case):

My custom mesh is blocking me from reaching and working with the vanilla mesh under it. Please let me quickly hide it temporarily.
Please describe the feature/improvement?
Ad described above
What would be your solution? (optional)
...
Version
2024.1.1

Hey @PapaSlask
We have aware of this an use the existing internal ticket: REMIX-1597

authors: PapaSlask nvdamien

repo: NVIDIAGameWorks/rtx-remix


text:
Improve the filtering modal

Needs improvement in layout on small screens
Get rid of the background / underlay thing so scrolling is evident and closing the modal is more intuitive when clicking outside the modal

closing by #238, #231, #239

repo: NYPL/design-toolkit


text:
Fix delivery locations endpoint for M2 items

Fixes delivery locations endpoint for M2 items. The function existed to retrieve delivery locations by M2 customer code, but the route wasn't calling it.
Also:

Improves a long-standing issue where we query SCSB for all barcodes regardless of their holding location (which should be used to restrict the queried barcodes to just those items that have ReCAP holding locations). Now we only query SCSB for ReCAP customer codes for those items that have ReCAP holding locations.
Centralize item barcode extraction and ReCAP holding location check.

Was this work overlooked or just not ticketed?

Was this work overlooked or just not ticketed?

Should have been part of https://jira.nypl.org/browse/SCC-3415

authors: charmingduchess nonword

repo: NYPL/discovery-api


text:
How can change port?

I need change port to 3016, pls share me path and file to do that
tnks

Sure, you can run rails s -p 3016 or append the following to ./Rakefile:
task :server do
  `bundle exec rails s -p 3016`
end

felipe@felipeurrego:~/transcript-editor$ cat ./Rakefile
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require File.expand_path('../config/application', __FILE__)

Rails.application.load_tasks

task :server do
  `bundle exec rails s -p 3016`
end

and this is show error
felipe@felipeurrego:~/transcript-editor$ rails s
=> Booting WEBrick
=> Rails 4.2.5 application starting in development on http://localhost:3000
=> Run rails server -h for more startup options
=> Ctrl-C to shutdown server
[2016-07-15 07:13:44] INFO  WEBrick 1.3.1
[2016-07-15 07:13:44] INFO  ruby 2.1.2 (2014-05-08) [i686-linux]
Exiting
/home/felipe/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/socket.rb:206:in bind': Address already in use - bind(2) for 0.0.0.0:3000 (Errno::EADDRINUSE)         from /home/felipe/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/socket.rb:206:in listen'
from /home/felipe/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/socket.rb:461:in block in tcp_server_sockets'         from /home/felipe/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/socket.rb:232:in each'
from /home/felipe/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/socket.rb:232:in foreach'         from /home/felipe/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/socket.rb:459:in tcp_server_sockets'
from /home/felipe/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/utils.rb:75:in create_listeners'         from /home/felipe/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/server.rb:132:in listen'
from /home/felipe/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/server.rb:113:in initialize'         from /home/felipe/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:45:in initialize'
from /home/felipe/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/handler/webrick.rb:31:in new'         from /home/felipe/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/handler/webrick.rb:31:in run'
from /home/felipe/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/server.rb:286:in start'         from /home/felipe/.rvm/gems/ruby-2.1.2/gems/railties-4.2.5/lib/rails/commands/server.rb:80:in start'
from /home/felipe/.rvm/gems/ruby-2.1.2/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:80:in block in server'         from /home/felipe/.rvm/gems/ruby-2.1.2/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in tap'
from /home/felipe/.rvm/gems/ruby-2.1.2/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in server'         from /home/felipe/.rvm/gems/ruby-2.1.2/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:39:in run_command!'
from /home/felipe/.rvm/gems/ruby-2.1.2/gems/railties-4.2.5/lib/rails/commands.rb:17:in <top (required)>'         from bin/rails:9:in require'
from bin/rails:9:in `'

Instead of rails s, run rake server and see if that works

felipe@felipeurrego:~/transcript-editor$ rake server
[2016-07-15 09:39:21] INFO  WEBrick 1.3.1
[2016-07-15 09:39:21] INFO  ruby 2.1.2 (2014-05-08) [i686-linux]
[2016-07-15 09:39:21] INFO  WEBrick::HTTPServer#start: pid=19434 port=3016

But not work with real ip
http://181.135.20.181:3016/
works with rails s -b 0.0.0.0 -p 3016
how can fix that localhost to 0.0.0.0?

What happens if you change the ./Rakefile code to:
task :server do
  `bundle exec rails s -b 0.0.0.0 -p 3016`
end

authors: beefoo johnfelipe

repo: NYPL/transcript-editor


text:
Use permissions check inside template

Is there a way to check for permissions inside a template?
Something like:
<div ng-if="ngPermission(['admin', 'moderator'])">
  Some restricted content
</div>

@sikko No, it is only used to restrict routes according to Role. You can have a look at https://gist.github.com/pratik14/35ffcb3ba1e020170b43, which serves same purpose.

repo: Narzerus/angular-permission


text:
Axis labeling issues since #30

Since adding #30, I notice two issues:

Empty X/Y titles should keep the axis unlabled:

The scatter3d plot does not use the configured titles:

@jonyrock -- can you take a look?

@ryantxu I will take a look in 24 hours

@ryantxu working on this

[ ] Empty X/Y titles should keep the axis unlabled
[ ] The scatter3d plot does not use the configured titles:

@jonyrock X/Y fixed, but 3d still different

fixed in #32

authors: jonyrock ryantxu

repo: NatelEnergy/grafana-plotly-panel


text:
WebAssembly Support

Is your feature request related to a problem? Please describe.
It would be very nice to support WebAssembly in Ghidra. There is a public plugin available (https://github.com/andr3colonel/ghidra_wasm) but it only loads wasm files without disassembly or decompilation support. Wasm code is becoming increasingly common on the Web for both good and bad purposes (e.g. malware, exploit code, cryptomining) and decompilation would be a huge boon.
Describe the solution you'd like
A way to load .wasm binary files into Ghidra with disassembly/decompilation support.
Describe alternatives you've considered
I have a pipeline for compiling wasm to x86-64 and then loading it in Ghidra or IDA, but the process is cumbersome and the output is decidedly suboptimal. Constructs like switches are often lost or poorly reconstructed. I have toyed with the idea of creating a module myself, but there are challenges with the Wasm bytecode format which make a straightforward SLEIGH disassembly difficult (see next section).
Additional context
The main target of disassembly would be the instruction bytecode format. Here are the major challenges with the format as it relates to SLEIGH, as I see it:

There's the concept of "blocks", which are strictly nested groupings of code. In the bytecode, the blocks are identified by pairs of start and end bytes, meaning that we'd need to parse the code ahead of time to identify block boundaries.
Branches are not expressed as a straightforward jump to a fixed address or offset, but are instead target one of the containing blocks (it is impossible to target a block that is not a direct/indirect container of the branch instruction). The actual jump target depends on the targeted block's type - it either targets the beginning or end of the block. To add further complexity, branch instructions implicitly pop elements off the operand stack to match the level of the target block.
All numbers in the bytecode are LEB128-encoded. This is not a problem for a small number of operands, but some instructions (such as the br_table instruction) contain a variable number of numeric arguments. (Probably just have to get creative with context variables)
Most wasm-targeting compilers require the use of a separate global variable to track the depth of the C stack (separately from the Wasm stack, which contains operands, branch labels and implicitly return addresses). This means effectively two stack pointers, which I don't know if Ghidra can handle.

I am not familiar enough with P-code or SLEIGH to know how to resolve these issues in a clean way. One (ugly) approach would be to transpile WASM bytecode to some intermediate format which would be easier to work with. But, the downside here is that it would break the association between the addresses in the file and the Ghidra disassembly, which would make debugging much more challenging. Ideas welcome - I am happy to pursue potentially implementing this myself if there's a clear way to deal with the challenges.

WASM has been on the queue to do for a while.  We've seen the loader you mention and thought there might be a PR at some point with the rest of the implementation.
The decompiler is a simplification engine, so sometimes just providing equations that it can solve is enough.  The constant propagation can also figure out some things given constant state.  For example setting the value of a register at the start of a function that has an initial value that is kept consistent across the function which when fed into the equations produces a constant reference.  However, the value of set registers is only used at the start of a function.
While I can't promise anything, we'll need to take a closer look and see if we can get a reasonable processor spec together, or provide a skeleton to solve some of the issues.

I'm interested in working toward this over the next few months. Has there been any progress over the past two months that I should be aware of?

I'm interested in working on this. I think most of the problems raised can be solved pretty cleanly by bailing out to Java, in a similar manner to how the JVM module handles "Injects."

Still a few tricky instructions missing, but initial results are promising:
https://github.com/garrettgu10/ghidra-wasm-plugin

There's still some bugfixing and testing to do, but the basic feature set is now complete. I'm also interested in making a PR after bugfixing and refactoring.
The way branch target resolution and implicit pops are handled at decompilation time is a bit... strange, to say the least. I'd appreciate if someone experienced in Ghidra dev could review the plugin, and I'd be happy to walk anyone through it and/or brainstorm "nicer" ways to do things.

I was quite impressed with @garrettgu10's efforts, and so I started to make some changes. Eventually this turned into a bit of a rewrite: https://github.com/nneonneo/ghidra-wasm-plugin/
I believe this new plugin is substantially more usable, and I've used it practically for reversing large programs like Unity web games (>10MB Wasm files).

Looking forward to checking out both these implementations.   I had started to take a look at the sleigh implementation to offer some refactoring, but had to put it on the back burner getting ready for 10.1 and other drains on my time.  We've got a little breathing room now that 10.1 is almost released.
We are interested in a PR if you would like to submit one.

I’m glad to hear that there’s excitement for this, and I’d be happy to submit a PR.
One issue that would be nice to resolve before a formal PR would be the problem of supporting DWARF data import, and the main issue we’re having is that the existing Ghidra DWARF importer has no provisions to support Harvard architectures. Our Wasm plug-in uses a “modified” Harvard approach - we load the program code at a specific, arbitrary address (0x80000000) into the same address space as the program data, because that produces a nicer user experience.
What we would like there is support on the DWARF importer to supply a program-specific implementation of the DWARF “toAddr” function, with separate hooks for program (PC) addresses and data (static object) addresses. Separately, it might be nice to be able to hook some other DWARF functions to parse architecture-specific directives - right now, I think the only solution would be to provide a bunch of modified subclasses with our importer, but the architecture of the DWARF code is such that we would likely have to maintain a sizable amount of copied code for this to work.

On Nov 18, 2021, at 6:58 PM, emteere @.***> wrote:

Looking forward to checking out both these implementations. I had started to take a look at the sleigh implementation to offer some refactoring, but had to put it on the back burner getting ready for 10.1 and other drains on my time. We've got a little breathing room now that 10.1 is almost released.
We are interested in a PR if you would like to submit one.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

I like @nneonneo's implementation better, and I don't think the issue with the DWARF importer should block it from getting merged since the feature is still very useful without DWARF support.
I was just wondering if there's been progress on a PR and if there's anything I can contribute to make the process go more smoothly?
Thanks!

@garrettgu10 Thanks for the push :). I went through and cleaned up the code a bit and integrated it into a PR (#4103). Please feel free to take a look.
(CC @emteere who also expressed interest in the PR)

I was trying to get pcodetest working with this and ran into an issue, have you tried the emulator for anything here yet by chance?  Can't tell if I'm coming across a SLEIGH or an emulator issue.
                             **************************************************************
                             *                          FUNCTION                          *
                             **************************************************************
                             void __wasm i1_complexLogic_Main(void)
                               assume contextreg = 0x4400000000000000000
             void              <VOID>         <RETURN>
                             i1_complexLogic_Main                            XREF[1]:     table:00000018(*)
    ram:800013f8 8f 01           .locals
    ram:800013fa 01 7f           .local     count=0x1 type=0x7f
    ram:800013fc 01 7f           .local     count=0x1 type=0x7f
    ram:800013fe 01 7f           .local     count=0x1 type=0x7f

it was a hacky script so maybe I just didn't have enough state setup (setting PC/SP/LR).  Starting at this main and then with emuHelper.step(monitor) I was getting these addresses:

ram:800013f8
ram:800013fa
ram:800013fb <- not sure why its not ram:800013fc

Then hit a Divide by 0 in OpBehaviorIntSdiv's long evaluateBinary
and
WARN  Uninitialized memory read at ram:800013fb: register:4ffffff0:8   (EmulatorHelper.java:710)
WARN  Uninitialized memory read at ram:800013fb: register:4ffffff8:8   (EmulatorHelper.java:710)

@mumbel probably better to put that on the PR, since it's specific to this implementation.

authors: emteere garrettgu10 mumbel nneonneo

repo: NationalSecurityAgency/ghidra


text:
I am trying to read .text section but don't know how to read from the input mem block  data stream

after using getMemoryBlock('.text'), I got the DB@address of .text mem block input stream. I can't use getByte as it is iterable and don't really know how to read from the section.
offset = 1052832
size = 533
data_in = getMemoryBlock('.text').getData()
data = data_in.read(byte[] b, 1052832, 533) .. I have no idea if this is the right way.. but this doesn't work

MemoryBlock.getData() returns a java InputStream.  It's read(byte[], int, int) method probably isn't what you want as the offset value is the offset into the byte array of where to put the data being read, not the file offset.
If you use skip() on the InputStream to seek to the location you want to read from, you could then use read(my_byte_array, 0, 533) to read 533 bytes into the array.  (as long as my_byte_array already existed and was at least 533 bytes long)

You can utilize java.nio.ByteBuffer.allocate(size).array() to easily get a java byte array in jython.

You can utilize java.nio.ByteBuffer.allocate(size).array() to easily get a java byte array in jython.

I tried different ways but wasnt able to get it.
my program looks like this:
`from java.nio import ByteBuffer
from ghidra.program.model.mem import MemoryBlock
def make_byte_array(size):
return ByteBuffer.allocate(size).array()
blocks = currentProgram.getMemory().getBlocks()
dot_text = getMemoryBlock('.text')
print(dot_text.getData().toString())
print(dot_text.getSize())
size1 = dot_text.getSize()
data_in = dot_text.getData()
addr =dot_text.getStart()
b = make_byte_array(size1)
data = data_in.skip(0x1010a0)
print(data)
data = data_in.read(b, 0, 533)
print(data)`
I tried both read and skip, but only "533" as output. I am doing something majorly wrong here.
I just wanted to print out the .text section from headless. Like this for example...
0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00000580  31ed 4989 d15e 4889 e248 83e4 f050 544c  1.I..^H..H...PTL
0x00000590  8d05 ba01 0000 488d 0d43 0100 0048 8d3d  ......H..C...H.=
0x000005a0  0c01 0000 ff15 2e0a 2000 f40f 1f44 0000  ........ ....D..
0x000005b0  488d 3d79 0a20 0048 8d05 790a 2000 5548  H.=y. .H..y. .UH
0x000005c0  29f8 4889 e548 83f8 0e76 1548 8b05 fe09  ).H..H...v.H....
0x000005d0  2000 4885 c074 095d ffe0 660f 1f44 0000   .H..t.]..f..D..
0x000005e0  5dc3 0f1f 4000 662e 0f1f 8400 0000 0000  ]...@.f.........

@anzosasuke if you take a look at the docs for the read() call (I linked it in my reply a few days ago), you can see for yourself that the return value of read() is just the number of bytes that were successfully read from the stream.
In your case, you are assigning that value to 'data', and its telling you that it successfully read 533 bytes into the 'b' variable that you created earlier.
You should be looking at 'b' to get the bytes that you read from the stream.

Thanks @astrelsky  and @dev747368 . I got to read .text section from there. But I got it in negative hex. Is there any way to change it to positve hex. The b is integer array.. encode('hex') didn't work.. hex(dot_text) gives me negative.. doing %x gives me negative hex as well. Any other way to get it postive??

Thanks @astrelsky  and @dev747368 . I got to read .text section from there. But I got it in negative hex. Is there any way to change it to positve hex. The b is integer array.. encode('hex') didn't work.. hex(dot_text) gives me negative.. doing %x gives me negative hex as well. Any other way to get it postive??

b & 0xff?

Oh thank you so much .. It worked now.

authors: anzosasuke astrelsky dev747368


text:
Decompiler alignment error when trying to examine function

Describe the bug
I'm trying to examine an old German DOS game to figure out how it works, and when I tried to examine function FUN_2d77_30fe(), it gives me an error: "Exception while decompiling 2d77:30fe: GHIDRA/decompiler alignment error"
To Reproduce
Steps to reproduce the behavior:

Open the attached exe file in Ghidra
Analyze with 'Decompiler Parameter ID' enabled
Go to the mentioned function

Expected behavior
I expected to be able to browse the decompiled function just like any other.
Screenshots

Attachments
HW.zip
Environment (please complete the following information):

OS: Windows 10
Java Version: 12.0.2
Ghidra Version: 9.0.4

Additional context
I have already changed some function & variable names before going to the erroneous function, not sure if/how that makes a difference.

Update: looked at the console, turns out my issue is a clone of #239


text:
Removed support for TPM 1.2

Code for TPM 1.2 was removed
The tpm2.0 directory was renamed simply tpm2

Good call, it's removed.

repo: NationalSecurityAgency/kmyth


text:
Remove Average Accessibility Score as it's not calculated anymore

re: https://github.com/NationalSecurityAgency/skills-service/issues/2202

PR: https://github.com/NationalSecurityAgency/skills-docs/pull/252

repo: NationalSecurityAgency/skills-docs