Allow generate unmount-able / freeable wasm module in cli config

Motivation
In On WASM, How to free / destroy / close an instance? #11619 I talk about the difficulty to destroy and recreate bevy game instance.
I found this is possible, by manually comment out the
if (wasm !== undefined) return wasm;

in bindgen generated js file.
Proposed Solution
Maybe we can add a cli option to not adding this line, so everything I use initSync or __wbg_init to create a game instance from wasm Uint8Array, I can surely create a new game instance, and old one gets GC.
Alternatives destroy()
Or maybe generate a method to destroy the old instance, so I can create a new one safely.
I'm using this
export function destroy() {
    wasm = undefined;
    __wbg_init.__wbindgen_wasm_module = undefined;
    cachedFloat32Memory0 = null;
    cachedFloat64Memory0 = null;
    cachedInt32Memory0 = null;
    cachedUint32Memory0 = null;
    cachedUint8Memory0 = null;
}

with
export function destroy(): void;

But have to add it manually with a script after bindgen.
And this needs to be called before next initSync. Can't call it immediately after JS side UI canvas component unmount, otherwise there will be error wasm is undefined from some wasm.xxx calling, maybe some teardown logic sill running inside wasm. Set a timeout 1s after component unmount is not working, still get same error. Only called before next initSync works.
Alternatives getWasmContext()
This is what I'm using later, also use custom script to modify generated js file (See On WASM, How to free / destroy / close an instance? #11619 for my script)
I use script to create
export function getWasmContext() {
    const __exports = {};
//...

return { initAsync: __wbg_init, initSync, ...__exports };

}

declare namespace WasmBindgen {
	/* tslint:disable */
	/* eslint-disable */
	/**
	*/
	export function startGame(): void;
	/**
	*/
	export function stopGame(): void;
	/**
	* @param {string} events_json_string
	*/
	export function setGamificationEvents(events_json_string: string): void;

}

//...
/**
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
* for everything else, calls `WebAssembly.instantiate` directly.
*
* @param {InitInput | Promise<InitInput>} module_or_path
*
* @returns {Promise<InitOutput>}
*/
function initAsync (module_or_path: InitInput | Promise<InitInput>): Promise<InitOutput>;

/**
 * remove previous game, to prevent `Creating EventLoop multiple times is not supported.` error.
 * @url https://github.com/bevyengine/bevy/discussions/11619
 */
export function destroy(): void;
export type WasmContext = typeof WasmBindgen & { initAsync: typeof initAsync }
export function getWasmContext(): WasmContext;

And this works very fine, if not using destroy(). While there mighe be memory leak when creating new game.
Additional Context
When embedding a game in existing apps like https://tiddlywiki.com/, we have to handle the case that component (or card note) that owns the canvas element gets unmounted.
Later, when such component remounts, we need to recreate the game on the new canvas. If old game already exists, they will throw error Creating EventLoop multiple times is not supported.

Unfortunately this isn't really a path we should go down too, especially because there is currently no way to actually destroy a Wasm instance. E.g. setting variables to unknown doesn't necessary cause GC, event listeners might still be holding references to the Wasm instance, which then would cause probably some form of UB when trying to call into the newly made instance.
I'm not entirely sure about the correct JS terms here, but you just have to create a new valid context.
E.g. I believe creating a new <script> tag should solve the problem.
Does that address your issue?

Thank you for your response, I noticed there were mysterious calls to methods. And now seems my new workaround is creating a new context via JS closure (see generated getWasmContext() function, while it is not able to destroy old context). Would you accept the new workaround as a cli config?

creating a new <script> tag

I'm more certain that create a new iframe tag will create a context, and it is possible to delete that iframe to totally free the memory, but script tag will reuse the global context, and deleting script tag won't delete any memory AFAIK.

Thank you for your response, I noticed there were mysterious calls to methods from deleted wasm. And now seems my new workaround is creating a brand new context via JS closure, that avoids this situation (see generated getWasmContext() function, while it is not able to destroy old context, but new context has no error).

I'm not following.
Did you make a new getWasmContext() that addresses the problem I mentioned above? If so, where can I see that?
You mentioned "brand new context via JS closure", which is an interesting idea, but I think would be complicated to implement. If you have some code I could look at it would be appreciated.
So I would prefer to make sure we just get a clean context.

creating a new <script> tag

I'm more certain that create a new iframe tag will create a context, and it is possible to delete that iframe to totally free the memory, but script tag will reuse the global context, and deleting script tag won't delete any memory AFAIK.

We don't use the global context in our JS module output.
The goal is not to destroy the old Wasm instance, as that's not really possible (unless you use something like an IFrame as you suggested), but to make sure we create a clean JS context.

you make a new getWasmContext() that addresses the problem I mentioned above? If so, where can I see that?

Yes!
I generate it based on this script scripts/buildGame.mjs (see I'm using --target no-modules)
#!/usr/bin/env zx

import { appendFile, readFile, writeFile } from 'fs/promises';
import { $, cd, path } from 'zx';

const gamePath = path.resolve(__dirname, '../src/scp-foundation-site-director/game');
/**
 * Build the game
 */
cd(gamePath);
await $`cargo build --release --target wasm32-unknown-unknown`;
await $`wasm-bindgen --omit-default-module-path --reference-types --weak-refs --out-name game --out-dir wasm --target no-modules target/wasm32-unknown-unknown/release/game.wasm --debug`;

/**
 * Fix Wasm Bindgen No Destroy Method
 */
// JS snippet to append
const jsSnippet = `
function destroy() {
    wasm = undefined;
    __wbg_init.__wbindgen_wasm_module = undefined;
    cachedFloat32Memory0 = null;
    cachedFloat64Memory0 = null;
    cachedInt32Memory0 = null;
    cachedUint32Memory0 = null;
    cachedUint8Memory0 = null;
}
`;

// TS definition to append
const tsDefinition = `
/**
 * remove previous game, to prevent \`Creating EventLoop multiple times is not supported.\` error.
 * @url https://github.com/bevyengine/bevy/discussions/11619
 */
export function destroy(): void;
export type WasmContext = typeof WasmBindgen & { initAsync: typeof initAsync }
/**
 * Create a new wasm context.
 *
 * ## If reuse previous one:
 *
 * There will be \`already borrowed: BorrowMutError\` \`RuntimeError: unreachable executed\` error, when switch from one game to another.
 *
 * And sometimes there still be \`Uncaught TypeError: wasm is undefined\` \`Uncaught RuntimeError: unreachable\` \`Uncaught TypeError: Cannot read properties of undefined (reading 'wasm_bindgen__convert__closures__invoke0_mut__h9f5f8d8886b9ec6c')\` \`Uncaught TypeError: Cannot read properties of undefined (reading '__wbindgen_export_3')\` error, when switch from one game to another, maybe switch is too fast? Change from \`0\` to \`1000\` some times still cannot fixes this, even the game should have been stopped. And it slowdown the game init. And this error throw on global can't be catch here.
 */
export function getWasmContext(): WasmContext;
`;

// Path to the wasm bindgen generated JS file
const jsFilePath = path.resolve(gamePath, 'wasm/game.js');
const tsFilePath = path.resolve(gamePath, 'wasm/game.d.ts');

try {
  // Append JS snippet
  // await appendFile(jsFilePath, jsSnippet);
  const jsFile = await readFile(jsFilePath, 'utf8');
  await writeFile(
    jsFilePath,
    jsFile
      .replace('wasm_bindgen = Object.assign(__wbg_init, { initSync }, __exports);', 'return { initAsync: __wbg_init, initSync, ...__exports };')
      .replace('})();', '}')
      .replace(
        `let wasm_bindgen;
(function() {`,
        'export function getWasmContext() {',
      ),
  );
  console.log('JS snippet appended successfully.');

  // Append TS definition
  const tsFile = await readFile(tsFilePath, 'utf8');
  await writeFile(
    tsFilePath,
    tsFile
      .replace('declare namespace wasm_bindgen', 'declare namespace WasmBindgen')
      .replace('declare function wasm_bindgen', 'function initAsync'),
  );
  await appendFile(tsFilePath, tsDefinition);
  console.log('TS definition appended successfully.');
} catch (error) {
  console.error('Failed to append to file:', error);
}

(copy from https://github.com/bevyengine/bevy/discussions/11619#discussioncomment-8322223 )
And generated content is
export function getWasmContext() {
    const __exports = {};
//...

return { initAsync: __wbg_init, initSync, ...__exports };

}

declare namespace WasmBindgen {
	/* tslint:disable */
	/* eslint-disable */
	/**
	*/
	export function startGame(): void;
	/**
	*/
	export function stopGame(): void;
	/**
	* @param {string} events_json_string
	*/
	export function setGamificationEvents(events_json_string: string): void;

}

//...
/**
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
* for everything else, calls `WebAssembly.instantiate` directly.
*
* @param {InitInput | Promise<InitInput>} module_or_path
*
* @returns {Promise<InitOutput>}
*/
function initAsync (module_or_path: InitInput | Promise<InitInput>): Promise<InitOutput>;

/**
 * remove previous game, to prevent `Creating EventLoop multiple times is not supported.` error.
 * @url https://github.com/bevyengine/bevy/discussions/11619
 */
export function destroy(): void;
export type WasmContext = typeof WasmBindgen & { initAsync: typeof initAsync }
export function getWasmContext(): WasmContext;

(Copy from https://github.com/rustwasm/wasm-bindgen/issues/3818#issue-2109907772 )

I am very confused, you are modifying the no-modules output but using export. Why are you using the no-modules target to being with?
In any case, an upstreamable solution for the no-modules target has to keep it actually free of any JS module code.

I am very confused

Feel free to chat, I'm on vacation, so can spend 8 hours to opensource per day.
The reason for using no-modules instead of browser is that it generate an IIFE. It already wrap everything in a function closure, so it is easier to modify it. The script I'm using is just remove the II part of IIFE, and add an export and a function name getWasmContext to it.
(although I can also use browser target, and use script to remove all export and wrap things with a function, just a bit difficult to write the script. I tried.)

Feel free to chat, I'm on vacation, so can spend 8 hours to opensource per day.

We have a Discord channel on the official Rust server you can find us at, where we can have a more real-time discussion.
To summarize so far:

Any solution has to preserve targets constraints. Ergo we can't modify the no-modules target to include any JS module statements like export.
Creating a new context through <script> can hopefully cover the use-case. If it does then I would be against implementing a feature into wasm-bindgen unless the use-case or inconvenience by the lack thereof can be made more clear.

can't modify the no-modules target to include any JS module statements like export.

I want to add a new target closure that returns a js with export function getWasmContext()

Creating a new context through <script>

Can you provide more details? AFAIK, <script> tags share a global context, so it is not working.
Even if every new <script> tag has a new context, how to interact with each one?

Creating a new context through <script>

Can you provide more details? AFAIK, <script> tags share a global context, so it is not working.

The web target shouldn't store anything in the global context, so that should not be an issue.

Even if every new <script> tag has a new context, how to interact with each one?

I'm unsure exactly how you are deploying your page, but in the <script type=module> context you are initializing your Wasm module in, you are able to interact with it directly.
Interacting with a specific Wasm instantiation from outside the <script type=module> context is exactly as limited as it is for any JS in a <script type=module>. You probably will have to store functions in the global context or use some other trickery. I'm definitely no JS expert.
In any case, considering you are using Bevy, you shouldn't really need to do that, because you are interacting with your page from inside the module.
After writing all this, I guess you are using the no-modules target to circumvent exactly this problem? It would probably help at this point to figure out exactly why the web target doesn't work for you.

I'm building a https://tiddlywiki.com/ plugin, so I'm expecting to initialize a new canvas for bevy wasm, then create a bevy wasm instance, let it operate on that canvas.
But when using web target, JS code generated by wasm-bindgen will create a wasm variable in its module. And I'm bundling my Typescript code with this JS code, so my Typescript code always import the same module of JS code, so always get the same wasm variable.
I'm writing TS as a plugin, so I'm not directly writing HTML. So if I'm going to create a <script type=module> tag, I will have to do something like
const wasmLoaderScript = document.createElement('script');
wasmLoaderScript.type = 'module';
wasmLoaderScript.textContent = // I'm importing & bundling JS, so It is not easy to get stringified version of wasm-bindgen generated js code here
// even I make it, how to pass wasm module to it? Maybe by concat it as base64 string...

If I want to add a new target that is similar to no-modules, am I going to change https://github.com/rustwasm/wasm-bindgen/blob/main/crates/cli-support/src/js/binding.rs ? It looks very complicated.
I just want to create a version similar to web target, but without local variable in the JS file level, that is created only once when JS module loaded.
Only function level variables that created everytime when I call the function.

So if I'm going to create a <script type=module> tag, I will have to do something like
const wasmLoaderScript = document.createElement('script');
wasmLoaderScript.type = 'module';
wasmLoaderScript.textContent = // I'm importing & bundling JS, so It is not easy to get stringified version of wasm-bindgen generated js code here
// even I make it, how to pass wasm module to it? Maybe by concat it as base64 string...

Can't you just use src and point to the file?

This is the problem, when I use bundler like webpack/esbuild, instead of load wasm-bindgen js using script tag.

It sounds to me like you should just not bundle your TS code, which handles your page state, with the wasm-bindgen shim, which should be a separate state you want to be able to unload.

So by "store things in global context", I mean bundled JS module will have a closure (local variable in that JS file), and on my TS code, I import that JS module, I will always get the same closure, seems like that JS module stores a wasm variable in the global context.

The problem is that import won't create a new JS context if it's the same path, the problem is not that wasm is stored in the global context.
You can also solve that by dynamic import with something like this: pathToYourScript.js?version=0. That way you will always get a new context without having to make a new script tag.

I just want to create a version similar to web target, but without local variable in the JS file level, that is created only once when JS module loaded.

Adding a new target to wasm-bindgen should require some very serious justification. This problem so far sounds to me like something that should be possible with the current web target. I have outlined multiple solutions to do this, so we should rule them out before even discussing adding a new target.
Generally speaking I would also like to make it easy to do this with the current web target, because all solutions known to me so far are pretty much hacks, even if they work.

Only function level variables that created everytime when I call the function.

Something like this, but unfortunately we can't do that every time we call the default (init) function, but maybe with an additional parameter or something like this.
I don't know exactly what a solution would look like here, but somebody would have to dive in and figure out how and if the web target can be modified without breaking changes to make it easier to support this use-case.

So right now the following solutions for you are still on the table, both requiring that you don't bundle your TS code with the wasm-bindgen JS shim code.

Creating a new <script> tag.
Using dynamic import with ?version=x to trick JS into not sharing the context. Comes with the downside of actually making a new HTTP request.

Can't you just use src and point to the file?

Sorry but no, in most TS development, we need everything to be bundled as a single JS file, and in the browser there is no real filesystem, also no network if the app is local-first. So everything is handled inside JS memory.
Maybe it is possible to not bundle files for a web app using snowpack, but Tiddlywiki need to bundle all things into its in-memory filesystem, to work offline.

?version=0

I tried this before, but both esbuild's bundling system and Tiddlywiki's in-memory filesystem don't handle this well, it will be an unfound module and become a HTTP request, but we don't have a server to serve files, everything is bundled and loaded to in-memory filesystem.

I do more test today, seems comment out if (wasm !== undefined) return wasm; will do the trick. I was going too far during debug, and come up with a solution with more boilerplates...
Maybe just add a new option here:
https://github.com/rustwasm/wasm-bindgen/blob/3e469b265464e60645f7eceb5745fa2558aea703/crates/cli-support/src/js/mod.rs#L705

Maybe it is possible to not bundle files for a web app using snowpack, but Tiddlywiki need to bundle all things into its in-memory filesystem, to work offline.

You could try creating an object URL.
const blob = new Blob([yourScript], { type: 'text/javascript' })
const objectURL = URL.createObjectURL(blob)

I'm unfortunately completely unfamiliar with the JS/TS ecosystem and have no clue if bundlers and tools support something like that.

?version=0

I tried this before, but both esbuild's bundling system and Tiddlywiki's in-memory filesystem don't handle this well, it will be an unfound module and become a HTTP request, but we don't have a server to serve files, everything is bundled and loaded to in-memory filesystem.

Seems you are stuck with adding script tags.

This seems certainly to be a very unique combination of restrictions ... so I don't really believe this justifies its own target. Though I still think using script tags you should be able to fit in those restrictions.

Thanks, I'm doing experiment, and first this is GPT4 says:

Using the Exported Function:
To use the exported function (init in your case) from another script, you should also treat that script as a module and use the import statement. However, direct import from a blob URL like this is not straightforward because the blob URL doesn't have a predictable or meaningful origin that can be used to import from other scripts.
A workaround is to export your functions or variables to the global scope (e.g., window) inside the blob script itself, and then access it from other scripts. This approach, however, negates some benefits of modules like encapsulation and explicit dependencies.
Concerning Multiple Instances and JavaScript Context:
When you execute the script multiple times by creating multiple blobs and object URLs, each execution of the script runs in the same JavaScript context of the webpage. Variables declared outside of functions (like your wasm variable) will not be reinitialized between executions of the script tag created this way; wasm would retain its value if the script is executed again and would not be undefined in the second script tag, assuming the init function has been called once already.

So even I new a script tag, it is impossible to get the exported function, unless assign them to a global context like window.initSync
Anyway, I can use my hack (no-module target + postprocess script that modify it) for a while, until I get more fremillar with wasm-bindgen, I'm reading the contributing doc today. But for now, I will focus on writing the game for a while.
Many thanks to @daxpedda , and hope this discussion can help others.

Thank you @daxpedda , using blobUrl with async import works:
  private async initializeGameCanvas() {
    // wasm is bundled into tiddlywiki using `game/tiddlywiki.files` as base64
    const gameWasm = $tw.wiki.getTiddlerText('$:/plugins/linonetwo/scp-foundation-site-director/game_bg.wasm');
    // we parse and run the code on runtime, to create a new JS context each time, to prevent reuse last game's wasm.
    const wasmBindGenJSCode = $tw.wiki.getTiddlerText('$:/plugins/linonetwo/scp-foundation-site-director/game.js');

    if (gameWasm !== undefined && wasmBindGenJSCode !== undefined) {
      const wasmBuffer = loadWasmModuleFromBase64(gameWasm);
      console.time('gameLoad'); // 384 ~ 1551 ms
      try {
        const blob = new Blob([wasmBindGenJSCode], { type: 'text/javascript' });
        const objectURL = URL.createObjectURL(blob);
        this.wasmContext = await import(objectURL) as typeof IGameContext;
        /**
         * Use `initAsync` for large wasm.
         *
         * Can't use `initSync`, it cause error:
         * > RangeError: WebAssembly.Compile is disallowed on the main thread, if the buffer size is larger than 8MB. Use WebAssembly.compile, compile on a worker thread
         */
        await this.wasmContext.default(wasmBuffer);
        this.wasmContext.startGame();
// ...

  destroy(): void {
    this.wasmContext?.stopGame?.();
    this.wasmContext = undefined;
    this.gameInitialized = false;
  }

And this use official web target without modification!

Problem solved, well, why didn't I come to this at first place? Maybe I forget using async import(blobUrl) will create new JS context?

Glad it worked out!


Any roadmap on the development of this library?

Hi, everyone, do you have any plan to follow for developing this library? Are you looking for contributors?

Hey @ostafen! It's still early, and we keep experimenting with some ideas as the library is used in a few different projects. The API should become more stable over the next weeks. :) Please contribute any ideas you might have until then!


Equality considerations

About
This improves the equality constraints and adds tests.

Codecov Report

Merging #12 into master will increase coverage by 0.13%.
The diff coverage is 90.9%.

@@             Coverage Diff              @@
##             master      #12      +/-   ##
============================================
+ Coverage      92.1%   92.23%   +0.13%
  Complexity        8        8
============================================
  Files             2        2
  Lines           190      219      +29
  Branches         19       24       +5
============================================
+ Hits            175      202      +27
+ Misses            6        5       -1
- Partials          9       12       +3

Impacted Files
Coverage Δ
Complexity Δ

...test/java/com/mercari/remotedata/RemoteDataTest.kt
96.57% <100%> (+0.49%)
1 <0> (ø)
:arrow_down:

...src/main/java/com/mercari/remotedata/RemoteData.kt
75% <62.5%> (-0.68%)
7 <0> (ø)

Continue to review full report at Codecov.

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


Support for _find?

I see there is a db.find method, but still used http GET instead of POST. Will this functionality be added soon?

+1

Currently working on a version which does support this feature. If you are still interested and would like to help out, please join and provide PRs on https://github.com/triplem/Ektorp/tree/v1.6.

Hello @triplem I'm using Ektorp and I need to make querys with _find. Currently, is there something on Ektorp v1.6 for that?


Adding the ability to adjust the button on AnnouncementsPage using props

This addresses #298
Checklist:

[X] I have updated the necessary documentation
[X] I have signed off all my commits as required by DCO
[X] My build is green

Starting some discussion in the issue before merging.


services endpoints were started

Hi guys!
Just want to add a few important endpoints which are available in docker-engine since the version 1.12
Let me know any thoughts.
Also I have one question: why all the tests are so massive? They're running too long and I can't realize why even the docker is required! So, this app is just a simple REST API client, it should not testing the docker functionality! Imho strictly should not! Why not to write simple mock-objects of supposed responses? In this case it's possible to track the Docker API versions. Apologize if I'm missing something, just trying to understand what's going on.

@adastreamer thanks for that, any plans to write the tests?


UI Design updating

#3 I have updated the design , basically the navbar , the search engine , the collection columns , and the footer

I have adjusted the navbar size , also please add the hacktoberfest lables and tell if any other issue needed

@all-contributors please add @Dipeshdahiya  for design

Is their is anything else for me to do ?

@Dipeshdahiya No.


Certain ET rulesets don't install properly

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:
[X] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[X] I have searched the existing issues and I'm convinced that mine is new.
Describe the bug
Some Emerging Threats rule files aren't populated with downloaded rules and instead only contain an opnsense_download_hash header.  It seems that only rule files that are prefixed with 'emerging-' contain rules.
The following ruleset categories are affected:

botcc.rules
botcc.portgrouped.rules
ciarmy.rules
compromised.rules
drop.rules
dshield.rules
tor.rules

I've verified that this affects the core et-open ruleset and the et-telemetry plugin on my installation.  It may also affect et-pro but I have no way of testing this.
Tip: to validate your setup was working with the previous version, use opnsense-revert (https://docs.opnsense.org/manual/opnsense_tools.html#opnsense-revert)
I have just enabled the IPS for the first time on OPNsense 20.7 so I do not know when the bug began.
To Reproduce
Steps to reproduce the behavior:

Enable any of the aforementioned rulesets (ex: ET-open/botcc.rules).
Open a shell on the firewall
Navigate to /usr/local/etc/suricata/opnsense.rules
cat botcc.rules
Observe there are no rules in the file

An affected rule file looks like this:
root@OPNsense:/var/unbound/etc # more /usr/local/etc/suricata/opnsense.rules/botcc.rules
#@opnsense_download_hash:e214f8d0ae092644570cca4c940bba2e
In the UI, searching the rules tab for 'botcc' also results in no rules displayed.
Expected behavior
The rules files would contain rules, and rules would be available in the UI for the selected category.
For example, ET-open/botcc.rules:
https://rules.emergingthreats.net/open/suricata-5.0/rules/botcc.rules
As of the time of this bug report botcc.rules has the following as the first few rules:
alert ip $HOME_NET any -> [<IP_ADDRESS>,<IP_ADDRESS>] any (msg:"ET CNC Shadowserver Reported CnC Server IP group 1"; reference:url,doc.emergingthreats.net/bin/view/Main/BotCC; reference:url,www.shadowserver.org; threshold: type limit, track by_src, seconds 3600, count 1; flowbits:set,ET.Evil; flowbits:set,ET.BotccIP; classtype:trojan-activity; sid:2404000; rev:5923; metadata:affected_product Any, attack_target Any, deployment Perimeter, tag Shadowserver, signature_severity Major, created_at 2012_05_04, updated_at 2020_11_20;)
alert ip $HOME_NET any -> [<IP_ADDRESS>,<IP_ADDRESS>] any (msg:"ET CNC Shadowserver Reported CnC Server IP group 2"; reference:url,doc.emergingthreats.net/bin/view/Main/BotCC; reference:url,www.shadowserver.org; threshold: type limit, track by_src, seconds 3600, count 1; flowbits:set,ET.Evil; flowbits:set,ET.BotccIP; classtype:trojan-activity; sid:2404001; rev:5923; metadata:affected_product Any, attack_target Any, deployment Perimeter, tag Shadowserver, signature_severity Major, created_at 2012_05_04, updated_at 2020_11_20;)
alert ip $HOME_NET any -> [<IP_ADDRESS>,<IP_ADDRESS>] any (msg:"ET CNC Shadowserver Reported CnC Server IP group 3"; reference:url,doc.emergingthreats.net/bin/view/Main/BotCC; reference:url,www.shadowserver.org; threshold: type limit, track by_src, seconds 3600, count 1; flowbits:set,ET.Evil; flowbits:set,ET.BotccIP; classtype:trojan-activity; sid:2404002; rev:5923; metadata:affected_product Any, attack_target Any, deployment Perimeter, tag Shadowserver, signature_severity Major, created_at 2012_05_04, updated_at 2020_11_20;)
alert ip $HOME_NET any -> [<IP_ADDRESS>,<IP_ADDRESS>] any (msg:"ET CNC Shadowserver Reported CnC Server IP group 4"; reference:url,doc.emergingthreats.net/bin/view/Main/BotCC; reference:url,www.shadowserver.org; threshold: type limit, track by_src, seconds 3600, count 1; flowbits:set,ET.Evil; flowbits:set,ET.BotccIP; classtype:trojan-activity; sid:2404003; rev:5923; metadata:affected_product Any, attack_target Any, deployment Perimeter, tag Shadowserver, signature_severity Major, created_at 2012_05_04, updated_at 2020_11_20;)

Screenshots
Not applicable.
Relevant log files
No logs are generated for the rule update.
Additional context
Add any other context about the problem here.
Environment
OPNsense 20.7.5-amd64
FreeBSD 12.1-RELEASE-p10-HBSD
OpenSSL 1.1.1h 22 Sep 2020

when using et-open these should contain content, when using etpro-telemetry, these won't. so the question is, are you using ETPro-Telemetry?

Using telemetry.  At the very least this violates the principle of least surprise.  If those rules aren't present in telemetry they should not be selectable, and the text should indicate that the rules are nerfed.


Only connected side is working

So this is yet another "only one side working issues".

I'm using the serial connection (without resistors)
TRRS cable is working (tested on a Redox bought from Falbatech)
TRRS Pad connections seem OK using a multimeter
D0 Pin connection seems OK
both Pro Micros light up
when typing on the TRRS-connected half, every once in a while a character might actually be send
I am using the 3D printed case

When mixing and matching with the Falbatech Redox (using the same firmware) the issue persists, only the connected half is detected. The full Falbatech one is working as expected. What would be the best course of action to debug the issue, preferably without having to desolder the pro micros and key switches?

I did some further testing. I am pretty confident the solder joints should be ok. Every single Key is working and if I measure the resistance between D0 and D1 on both boards, in comes out to 1.5 Ohm. The Pro Micros are the USB C variant.
The new Keyboard uses the rev1 PCBs  from Github and is without underglow, the Falbatech one is prebuilt with underglow. Both are using the exact same firmware using MASTER_LEFT. If I connect one half of the Falbatech board as slave, the underglow stays off. It does not matter which half of the Falbatech I use as slave or which of the new boards I use as master. The Falbatech Board uses 4.7K Ohm resistors on the left side, while I have none at all.
What's bothering me is that on the slave side, I have only 2.7V between VCC and GND.

Turns out the problem existed between keyboard and chair. The TRRS sockets are pretty firm, the plug appears to click into place, but there is still 1mm or so left before it actually clicks into place, so the tip had barely any connection.


Expose the number of samples as an option for network workloads

Description
In bare metal environments the oscillation between test runs is less significant compared with shared cloud ones.
Exposing the number of samples as an option will allow to run faster tests in bare metal scenarios.
Fixes

Can one of the admins verify this patch?

Hi @jose, can we have the variable as a part of readme too

@mohit-sheth added some workload env vars to the README


bash wrapper and start scripts are veeery slow (20 s) on Cygwin with mounted network drives that are available right at the root directory

The shell scripts do for the Cygwin path translation to find path arguments to be translated the command find -L / -maxdepth 1 -mindepth 1 -type d.
This should list all top-level directories to find absolute paths in the arguments.
The problem is, if you

have mapped network drives (we have 11+ at work)
maybe are additionally connected via VPN
have the drives available at /... via symlinks to /cygdrive/...,

then this find command is majorly slow, so that you have to wait around 20 seconds (in words: twenty seconds, this is not a typo) until the actual Gradle process is actually started and prints something.
Maybe it could be somehow made faster by not using find but for example ls -1 --color=none which works blazingy fast.
It also matches files at the root directory, but I'd say it is even more correct to also do the cygpath call for those.
Expected Behavior
bash start scripts start fast even with mapped network drives
Current Behavior
it is veeery slow
Your Environment
Gradle 7.1.1

@Vampire could you try generating gradlew/start scripts with the 7.2 nightly? You can still keep using an older version of Gradle, just update the scripts.
These scripts were revamped and that find was removed.

I had a look at the changes and as the problematic find is gone, I assume it will be fast now.
I'll let the colleague test it that had the problem as I'm not using Cygwin anymore.
I'll close it for now and reopen it if there should still be the issue, but I don't think so, thanks.

Works perfectly fine now.
Still a bit slow if you actually have one of the mapped network drives as path (2 seconds) but as long as you do not reference any path or reference only local paths, it works perfectly fine now regarding speed.

possibly related to #17955
still waiting on disconnected network drives


Add drag and drop for NodePaths

Closes https://github.com/godotengine/godot-proposals/issues/1042

To make it work, I added an Alt modifier to scene tree dock (other modifiers are already taken). When you hold Alt while selecting node, the editor will ignore it (i.e. not inspect the node).
This might also solve issues like #39539 and similar.

Thanks!

Cherry-picked for 3.5.


Wrong Email and Password given

I cannot login using the default super admin email and password

same issues

Password : 1234


handling of commands during config

some command should just be ignored during config, a few of them can cause crashes.
config_type determines how it behaves during config reading.
if less then zero, its deferred until compositor is ready.
if zero, its called during config normally.
if more then zero, its ignored during config.
would it be better to use an enum or define instead of an int,
i cant think of good and short names to use for them though.

enum {
    CMD_COMPOSITOR_READY,
    CMD_KEYBIND,
    CMD_ANYTIME
};


Update TypeScript version to 5.6.2 in multiple packages

Summary by CodeRabbit

New Features

Upgraded TypeScript dependency across multiple packages to version ^5.6.2, introducing potential new features, improvements, and bug fixes.

Bug Fixes

Updated TypeScript version may resolve existing issues and enhance overall performance.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 70.52%. Comparing base (0a8399c) to head (9fc8516).

:exclamation:  There is a different number of reports uploaded between BASE (0a8399c) and HEAD (9fc8516). Click for more details.
HEAD has 1 upload less than BASE

Flag
BASE (0a8399c)
HEAD (9fc8516)

2
1

Additional details and impacted files
@@             Coverage Diff             @@
##              dev     #508       +/-   ##
===========================================
- Coverage   85.03%   70.52%   -14.52%
===========================================
  Files         291      129      -162
  Lines        2967     1357     -1610
  Branches      178       78      -100
===========================================
- Hits         2523      957     -1566
+ Misses        444      400       -44

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Mentions Markdown Support in TextField

Hi, I apologize for asking this as an issue. I understand this is more of a discussion topic.
But how can I use this for parsing and triggering mentions selection like in Discord while the input is being typed?
I assume this would be quite a common use case. I have been able to successfully display the mentions once I have the text but running into all sorts of issues in typed text.
Congratulations. This is a great port for CMP/KMP

you should be able to use TextFieldValue as it can take an AnnotatedString

Yeah that part is quite straightforward. What I am talking about is supporting replacement spans. Removing entire span on backspace and inserting in the middle of the text. I dont think there is any markdown library which does something similar to that. For reference: https://github.com/linkedin/Spyglass


Check if variables that were included via NDA tickets during May-December have been included in the current data

Tashrif needs to check if variables that were included via NDA tickets during May-December, have been included in the current data.
Copying @npenzel and @sbouix for awareness.

Link Tashrif's PR to outcome_calculations here. Close this issue once the PR is merged.


help for symlinks

I would greatly appreciate an advice on using symlinks in the workflow. I want to to have output in results directory which is a symlink to external storage. Is it a good idea to create a separate rule which will create the symlink?
Sorry if the question is basic and thank you for help!
Amel

Just personally I would create the symlink manually. Creating a symlink to somewhere else isn't really reproducible and kind of defeats the purpose of snakemake

thank you for the opinion, @eternal-flame-AD!


Export sleepecg.io members to main package

To avoid situations like this:
from sleepecg import extract_features
from sleepecg.io import read_mesa

I'd like to reduce the API to a single level, so one can do this:
from sleepecg import extract_features, read_mesa

Also, to have SleepRecord, SleepStage and ECGRecord included and correctly linked in the docs, they are exported as well.

Thanks @hofaflo!


Error in requirements.txt Packages

Hello,
I tried to install the requirements.txt file but shows an error in the line " import numpy as np" saying no module found as "numpy" .
UPDATE:
I tried to manually install all the packages.
I was not able to install lws and PyYAML. The process got terminated.
Kindly help me resolve this issue.
Regards,
Harshit

try python -mpip install numpy, that will work. also upgraded lws==1.2.6


validateFileNamePath is too restrictive

Solution
Allow the underlying process attempting to read the file to perform validation. Invalid files at that level will report back via a thrown error which can then be displayed to the user.
Benefits

Less code
Improve correctness

Thanks, @RA80533! Feel free to open a PR with your improvements and we'll take a look.

@codecov/open-source I would love your thoughts on if this can be removed, since it's no longer being passed directly to spawnSync or the like. Does removing it open a possible security hole?
(CC: @eddiemoore

@mitchell-codecov is this still a security issue?


Erratic ValueError due to cors-headers

I sometimes get ValueErrors in one view that does lookups (searches) for users. In the view users type a minimum of 2 characters and then an ajax request is fired to find the corresponding user. This ajax request sometimes gives this error; I could not find the exact cause, but it seems to be related with the bound method CorsPostCsrfMiddleware.process_view returning None and not a HttpResponse object.
ValueError: The view searchView didn't return an HttpResponse object. It returned None instead.
File "django/core/handlers/base.py", line 151, in get_response
% (callback.module, view_name))

I don't think it's CorsPostCsrfMiddleware.process_view because that always returns None, it doesn't make sense that it would lead to any random behaviour like you're reporting. Also it's perfectly legitimate for it to return None, as per docs:

It should return either None or an HttpResponse object.

You are right. We are using an external error logging tool which pointed to this and I could not reproduce it on our local dev environment... I have to keep searching, thanks for the reply!


Spanner: Make rows, consume_all and consume_next private

See #4414

@tseaver PTAL, thanks.

@vkedia @tseaver PTAL, thanks.

I just changed the _rows to list.  I will put that in another PR.


Floating number of input

Hi, I have tried the code from example and it worked fine. But I have some issues found by changing the input to a pair of floating numbers. it did not give result as its proper calculation of the Fuzzy rule. I try to change the data type of the inputs Int --> float, but it did not work.
How can I use the floating number inputs?
Next issue was, I try to modify the example code to 2 inputs (5 memberships functions each, which give 25 fuzzy rules) and 1 output (also has 5 membership functions), the code I attached below. I have manually tried the code by pairs of different inputs. but some pair of input numbers can not give any result. I dont know why.
Please, can somebody help me?
Thanks in advance
FLC_2input_5stage_e_de.zip

Hey, it should accept float numbers as input! Is this attached code the same of the first issue?

Hi, sorry for the late reply. It did can be input with float number, but gives wrong calculation on output. I compared it to the Fuzzy on Matlab Toolbox, the floating number gave output calculation as if it being rounded as integer.
The code attached has same issue, but I have another more important issue that not all integer pair of input give result on that code. for example pair of inputs [1,3] as attached

Can you provide a bit more of details, please.


Query result does not contain columns in expected order

Hi,
if I do a SQL query with columns in a certain order, the database delivers them correctly, but the order is lost (random) in the result. The reason is using HashMap instead of LinkedHashMap which would keep the insertion order. I don't know yet whether this works together with Robot Framework.
Example:
SELECT COLUMNA, COLUMNB, COLUMNC FROM TABLEABC
->
@{result} = [ 	{ COLUMNB: 2, COLUMNA: 1, COLUMNC: 3 }, 	{ COLUMNB: 5, COLUMNA: 4, COLUMNC: 6 }, 	{ COLUMNB: 8, COLUMNA: 7, COLUMNC: 9 } ]
Kind regards,
Holger

At least when I made test with H2 I get order correctly.
Test case:
Result Order Check with Execute SQL
    [Documentation]    Checks that query execution returns results in correct order
    ${data}    Execute SQL    Select ID, NAME from DemoTable
    Log    ${data}
    ${data}    Execute SQL    Select NAME, ID from DemoTable
    Log    ${data}

Logged output (in order):
[{ID=1, NAME=Donny Darko}, {ID=2, NAME=Darth Vader}]
[{NAME=Donny Darko, ID=1}, {NAME=Darth Vader, ID=2}]

Order seems to be keeping same also when storing results as array:
    @{data}    Execute SQL    Select ID, NAME from DemoTable
    @{data}    Execute SQL    Select NAME, ID from DemoTable

If you have the issue with ordering, can you provide more information about the DB, and preferably create test case that shows the error with H2 (if reproducible with that).

I made a similar test with the DB Library source code:
@Test
public void checkExecuteSQLColumnOrder() throws Exception {
	List<HashMap<String, Object>> result2 = query.executeSql("SELECT EMail, Id, LastPosting, Name, Postings, State FROM MySampleTable");
	printResult(result2);
	List<HashMap<String, Object>> result3 = query.executeSql("SELECT State, Postings, Name, LastPosting, Id, EMail FROM MySampleTable");
	printResult(result3);
}

private void printResult(List<HashMap<String, Object>> result){
	for (HashMap row : result){
		System.out.println(row.toString());
	}
}

->
{STATE=1, ID=1, LASTPOSTING=2010-02-26 12:42:58.0<EMAIL_ADDRESS>NAME=Donny Darko, POSTINGS=1001}
{STATE=2, ID=2, LASTPOSTING=2010-02-27 11:41:45.0<EMAIL_ADDRESS>NAME=Darth Vader, POSTINGS=123}
{STATE=1, LASTPOSTING=2010-02-26 12:42:58.0, ID=1<EMAIL_ADDRESS>POSTINGS=1001, NAME=Donny Darko}
{STATE=2, LASTPOSTING=2010-02-27 11:41:45.0, ID=2<EMAIL_ADDRESS>POSTINGS=123, NAME=Darth Vader}

So I get a different result with the same database. When I exchange HashMap with LinkedHashMap in the test and all called methods, it works correctly.

Thank you! I'll test it with our production code and give feedback.

Released version containing this as 3.1.3.

I tested the development version: it works as intended. Thank you very much!


⚠ Bofrost.at has degraded performance

In 8179998, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1718 ms

Resolved: Bofrost.at performance has improved in 58efad6.


Autocomplete can only select once.

From your example about Autocomplete in: http://erikras.github.io/redux-form-material-ui/
After I choose one option then I can't choose another one without page refresh.

Testing this, it seems like it works fine.
Note that once you've selected a value, your options are filtered by the selected option's string.   Deleting the current choice make all of the other choices available again.

I have used autocomplete of material-ui with redux form. Even after selecting a value, all other choices are available. But it is not possible with this library. I am not raising any issue. I am just curios to know why it is done that way?
Thanks


where and how to import videoStreamer?

Im unable to use this awesome library, would anyone help me figuring out how to import this library in a angular ionic project?
I've tried this:
import * as videoStreamer from 'cordova-rtsp-rtmp-stream';

and this:
import { videoStreamer } from 'cordova-rtsp-rtmp-stream';

but nothing worked
Thanks for your time.

You can use this more updated plugin based on capacitor
https://github.com/disono/capacitor-rtsp-rtmp-stream


Stack unwinding error in go-mruby

When supporting mruby 2.1 in go-mruby it caused some stack unwinding error.
https://github.com/mitchellh/go-mruby/pull/75
https://github.com/mrbgems/go-mruby/tree/mruby-2
Unexpected NULL stack pointer occur in the mrb_protect
Logs: https://gist.github.com/take-cheeze/399dee626b9d085dfaf247121a660f23
Logs with sanitizer: https://gist.github.com/take-cheeze/c8369086e8f07744870e3a1bf968dc75

Is this solved?  I do not understand why is instance_eval(arg) called?
Why not mrb_yield(mrb, arg) call? Here is the failing code:
evalFunc := func(m *Mrb, self *MrbValue) (Value, Value) {
		arg := m.GetArgs()[0]
		result, err := self.CallBlock("instance_eval", arg)
		if err != nil {
			return result, createException(m, err.Error())
		}

		return result, nil
	}

mrb.TopSelf().SingletonClass().DefineMethod("myeval", evalFunc, ArgsBlock())

result, err := mrb.LoadString("myeval { raise 'foo' }")

I did my own Go bindings, slightly different. I ported this test, and it fails with instance_eval (same null pointer derefference in mrb_vm_exec), but passes if I use mrb_yield C API.

This problem may be solved with #5415.


KNOX-2231 - Fix KnoxSSO OIDC integration

What changes were proposed in this pull request?
Fix broken OIDC KnoxSSO integration
How was this patch tested?
This patch was locally tested

Looks good.
Future note to myself - it might make sense to avoid excluding javax.activation and instead include a specific version in pom.xml. I don't think it matters here, but just something to keep in mind.


Create Base Warning Atom and UnlockToken Molecule Components

What
Base UI

Build the Base Field Alert component (can be named something else)
Displays a message (left aligned) and arbitrary element (right aligned)
Consumes our Haus theme,
can display success, warning, error states

Unlock Token Molecule

Fires Unlock token
Composes Base UI

Jord said this one was built in TributePicker


DS triggers a crash if another mod freezes the pack load

Mod Version:
1.12.2-<IP_ADDRESS>
Forge Version:
<IP_ADDRESS>47
Link to client log:
https://pastebin.com/HW2YwE3r
Link to crash log:
https://pastebin.com/HBB0vxVm
Description:
If a mod is missing a dependancy (in this case FTB Utilities) and locks onto the Forge missing dependancy screen, DS will error out and crash the pack.

I think the whole startup process is hosed up.  Despite the fact the client will not start, something somewhere insists on playing music which triggers the DS sound engine code, which in turn causes it to use a reflection support class from OreLib, which cannot be found.
Up further in the log is this output:
[13:29:45] [main/ERROR]: A critical problem occurred registering the ASM transformer class
java.lang.ClassNotFoundException:
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_51]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_51]
    at net.minecraft.launchwrapper.LaunchClassLoader.registerTransformer(LaunchClassLoader.java:88) [launchwrapper-1.12.jar:?]
    at net.minecraftforge.fml.common.launcher.FMLDeobfTweaker.injectIntoClassLoader(FMLDeobfTweaker.java:46) [forge-1.12.2-<IP_ADDRESS>47.jar:?]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:115) [launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
Caused by: java.lang.NullPointerException
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) ~[launchwrapper-1.12.jar:?]
    ... 6 more

The times I have seen this all bets are off.  Is this trace present after you get the pack cleaned up?

Yea, if the version mismatch is fixed, the pack loads perfectly with the same version of DS, but the same exception is showing in the logs.
Ah found it, The exception's coming from Advanced Rocketry.

I found that by changing the priority of the render event handler I can work around the issue.

Found a work around to avoid the crash.

Pushed v<IP_ADDRESS> with fix.

Thanks mate


Files not complete and no download

Hello.
First of all, thank you for your hard work.
Sadly i have two problems.
It seems, that TT won't download all images of a blog.
I used TumbleOne for a long time.
When i compare the downloaded Files (downloaded at the same day), the TumbleOne downloads seems complete, but TumbleThree is missing a lot of files.
I don't know why. :(
For example:

Second problem is, that TT is scanning a blog (Queue tells Evaluated 3000 ...) and when the scanning is finished no file was downloaded.
I'm autheticated to the tumblr network and no error message is displayed.
Thank you very much in advance for your help.

Can you also check the box Download reblogged posts? I guess that will already fix your problem, otherwise I'll take a look later today.
Most posts from people on Tumblr aren't orignally from their selves, but re-blogged from someone else. Thus, if you do not enable that box, only the pictures the author has uploaded him/herself will be downloaded.

Thank you for your fast reply.
Ah, ok.
I thought reblogged posts are text posts, not images.
My fault.
I see, that there is no hint on that option like the others (Skip .gif files, too. Version <IP_ADDRESS>)
I will test with that option checked.

Perfect. That did the trick.
Works like a charm.
Thanks. 👍
Maybe it's possible to add a new column Downloaded Images to the main window?
That would be create. :)


Sign up to attend SoutheastCon

We need to get moving on who is going to SoutheastCon. I've already created a sheet for this below and sent out an email. Please fill this out in a timely manner.
https://docs.google.com/a/ncsu.edu/spreadsheets/d/1NMfbqIGODgMOcYEHx_OPKNPUuWU35waDXEwC5VM-XeQ/edit#gid=0

We also need to know what day and time we are leaving.

Last call for this. I want to send it out tomorrow. Some of you don't have your IEEE membership number included. Make sure to put that in ASAP, I plan to submit the names tomorrow

I've sent off the Roster for who is going to SEcon, I'll provide everybody updates as I get them.


Number conversion to string - Menus

Hey,
The other week I was hosting hackathon and some users were trying to send numbers as the title of the menu. When they did this the sub-title no longer rendered. I've put together a minimal example to replicate this issue:
var UI = require('ui');

new UI.Menu({
    sections: [{
        items: [{
            title: 89,
            subtitle: 'hello world'
        }, {
            title: 92,
            subtitle: 'hellow world'
        }]
    }]
}).show();

As you can see the title renders fine but the subtitle is not there as expected. The expected output would be:

Thanks for catching this one! Let me know if the fix works for you.

Looks good thanks @Meiguro


refactor: dedupe CallRequest/TransactionRequest

Motivation
CallRequest and TransactionRequest are basically the same type, with very few differences:

TransactionRequest was missing an optional chain ID
TransactionRequest was missing max_fee_per_blob_gas
CallRequest and TransactionRequest had different blob fields

Since they also serve the same purpose, this PR dedupes them, to make sure there is only one tx request type, which is important for the network abstraction.
Solution
Dedupe them, porting over fields missing from either.
I removed the blob transaction sidecar, but only because I didn't really know if it is actually a part of the spec. As far as I could tell, only blob_versioned_hashes and the gas field is. I asked @mattsse for direction in case he knew, but ultimately we didn't land on anything.
PR Checklist

[x] Added Tests
[x] Added Documentation
[ ] Breaking changes

@DaniPopes where do I note breaking changes for the checklist?

gm @onbjerg can this be merged?


feat(iroh-net): add derp-only feature

This forces the MagicSock to only ever send messages through a derp node.
However, this does not prevent the node from receiving messages over the udp sockets.
Hole punching attempts may still occur, but regardless of how fast the udp latency is, we will only ever send over derp.
Description
Adjusts the addr_for_send method, ensuring that we only ever return the DerpRegion (if we know it) as a possible option for how to communicate with the given peer.
Change checklist

[x] Self-review.
[x] Documentation updates if relevant.

How hard would it be to make this runtime configurable? It seems you would have to just have a flag check in addr_for_send.
Something like
if self.config.derp_only {
    return (None, self.derp_addr, false);
}
// the other stuff

I always find feature flags a bit of a maze, and also I can see scenarios where you would want to set this for an existing binary like iroh cli to troubleshoot something.

How hard would it be to make this runtime configurable? It seems you would have to just have a flag check in addr_for_send.
Something like
if self.config.derp_only {
    return (None, self.derp_addr, false);
}
// the other stuff

I always find feature flags a bit of a maze, and also I can see scenarios where you would want to set this for an existing binary like iroh cli to troubleshoot something.

Never mind, I think a feature flag is fine. Making this a cli feature would require more thought about what it means to be "derp-only"

Two things:

maybe it is better to translate the feature flag into a const bool and then from then on only use the const bool. It seems like you get fewer unused code warnings that way. See this: https://github.com/n0-computer/iroh/commit/fc41dfd78f5194898f8f03de5838ea64aa75aacc for inspiration.

I am still not entirely happy with using a feature flag for this. At least not the way it is done here. Feature flags are supposed to be additive, and this is a subtractive feature flag. So --all-features actually does less than the default feature set.

Not sure what to do about it. Use something else after all (env var?), or make it an additive feature flag that is enabled by default, like use-direct-connections = [] that you would have to disable using --no-default-features?

From a feature flag perspective, in an ideal world we would have

derp-connections: enables the usage of derp
udp-connections: enables the usage of udp based direct connections

They would be additive and could be used entirely independently, buuut this would require a lot of refactoring. So maybe we make this a runtime/config flag after all..

While having these two modes is great, I'm not sure they need to be feature flags.  I think feature flags only start making sense if the resulting code ends up being significantly smaller.  But we're just returning None somewhere, so feature flags are only additional maintenance and use burden.

I meant that they would actually disable the whole machinery if implemented properly, which is why it would be a large refactor.

I meant that they would actually disable the whole machinery if implemented properly, which is why it would be a large refactor.

Ah, you mean with them both off magicsock would just be a quinn socket? Not sure how you would even do that, and if you do it it would be a large refactor.
I don't think it is a good idea. Better to have crates that just use quinn, like iroh-bytes, and then give people the option to plug in a real quinn endpoint or a magic endpoint.

Agree with all these criticisms. It’s been annoying working through the feature implications, including messing with —all-features. No bueno.
The purpose of this PR was to create a relatively simple way to test that the DERP protocol works as a relay within the MagicEndpoint flow (in the case where we have a insurmountable NAT problem).
So part of the disconnect is I'm trying to solve for a dev issue when any adjustment we make to the code can be interpreted / used as a feature.
Eg, adding a field to the config or adding a feature flag implies some other use beyond testing.
So, I’m thinking, env variable as per dig’s mention. DEV_DERP_ONLY. Name can be bike shedded.
This will prevent the features snafus and the unused code warnings. The code change would be a one-liner, it’ll be easy test manually, and we can add a few DEV_DERP_ONLY modes in critical tests, that way we can catch issues in the derp protocol that our superior 🤣 hole punching has been masking.
Thoughts?

Latest issues: https://github.com/n0-computer/iroh/issues/1404
Basically, I have proof that if we do "derp only" mode on both sides with no attempts at hole punching, I was able to send ~300mbs of data no problem (took at least a minute, but no issues).
When I tried the scenario where the Getter attempted to hole punch, we started getting errors. I outlined my theory in the above issue, but haven't investigated yet. Since this is the exact scenario we want to ensure works I want to take another day to try to solve the issue.
The current derp_only branch includes a temp commit that prevents hole punching attempts when using DEV_DERP_ONLY mode, if others want to try it out.
That should work just fine. But if you check out the previous commit 0aefc81, you will get errors when using DEV_DERP_ONLY.


WHERE values come up as @p0, @p1 etc. in every query (in Unity)

Hi I'm using SqlKata v2.2.0 (no execution package) in Unity 2019.3.14f1 on a Mac. I have the 'Api Compatibility Level' configured at .NET 4.x.
Whenever I try and compile a query with a WHERE statement it doesn't inject the values into the query when I retrieve it as an SQL string.
Using the same(ish) code from the default playground scenario:
MySqlCompiler compiler = new MySqlCompiler();
var query = new Query("Users")
        .Where("Name", "Sami")
        .Where(q =>
            q.Where("Country", "Lebanon")
            .OrWhere("Country", "France")
        );
print(compiler.Compile(query).Sql);

I get the result:
SELECT * FROM "Users" WHERE "Name" = @p0 AND ("Country" = @p1 OR "Country" = @p2)
I'm using the SQLite compiler but it also happens for the others:
SQLServer: SELECT * FROM [Users] WHERE [Name] = @p0 AND ([Country] = @p1 OR [Country] = @p2)
MySQL: SELECT * FROM 'Users' WHERE 'Name' = @p0 AND ('Country' = @p1 OR 'Country' = @p2)
I've tried this on other queries and get a similar result:
SELECT * FROM "ConsumableData" INNER JOIN "ItemData" ON "ConsumableData"."ID" = "ItemData"."ID" WHERE "ConsumableData"."ID" = @p0
RawSql works, all of the @pXs come up as ?. I'd rather be able to use the package like it's intended however.
Any thoughts on this?

This is apparently expected behaviour.

the SqlResult.ToString() is what you expect, but this is extremely dangerous since it will open the doors for SQL injection.

Is there a way I can generate the SQL string with the values in the string rather than @p0? Or do I have to use the NamedBindings property to map them?


Fix apply callback running twice in diagnostic actions

It looks like the apply handlers for lint diagnostic actions are getting run twice because it's being executed as part of the onclick and onmousedown events, which does not seem to be intentional (but please correct me if I'm wrong).
See repro here: https://replit.com/@SergeiChestakov/cm-lint-apply
And demo below:

We do want that handler to avoid the click moving focus. Attached patch fixes this with a kludgey extra boolean variable instead.

ahh great that's the workaround we used internally haha thanks! looking forward to this being published


change remote debug tomcat configuration

What does this PR change?
I'm trying to clean up all the tomcat custom configuration in uyuni and sumaform. Currently we have configuration in:

/etc/sysconfig/tomcat
/etc/tomcat.conf
and apply them requires parsing the content with some regex.
This change is aligned with the ones that I'm having for uyuni, where each different configuration is in a different file in /etc/tomcat/conf.d/*conf

Fixes https://github.com/SUSE/spacewalk/issues/19824

Hi there, just for your information, this PR broke one month ago the pipeline that runs the test suite with a JaCoCo agent in place, to collect test coverage.
I did not had time until now to debug the reasons about what that was failing.
We were injecting the config from here:
https://github.com/SUSE/susemanager-ci/blob/master/terracumber_config/config_files/etc_sysconfig_tomcat
I'm gonna fix it now by creating another file in /etc/tomcat/conf.d/ at main.tf level, as I need results asap.
But we might want to consider moving JaCoCo enablement for the testsuite at sumaform level, to avoid the unalignment.

Thanks Oscar, I wasn't aware of that.

But we might want to consider https://github.com/uyuni-project/sumaform/issues/1305, to avoid the unalignment.

+1


Bad Certificate

Hi,
I am getting this error now,
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:997)
Can you please check that?

That's interesting. Could you give me the full call stack?

Server Call Stack:
python server.py
Generating x509 cert with message 'wait', data payload length 4

Enter a command type ('bash', 'exfil', 'kill'): bash
enter the bash command: ls
Generating x509 cert with message 'bash', data payload length 2
/root/Desktop/Research/exfil/secret_handshake/server.py:99: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket()
  with ssl.wrap_socket(
Traceback (most recent call last):
  File "/root/Desktop/Research/exfil/secret_handshake/server.py", line 208, in <module>
    main()
  File "/root/Desktop/Research/exfil/secret_handshake/server.py", line 202, in main
    start_server(listen_addr, listen_port,
  File "/root/Desktop/Research/exfil/secret_handshake/server.py", line 146, in start_server
    client_msg, client_data = listen_for_client(listen_addr, listen_port, ca_cert_path, cmd_cert)
  File "/root/Desktop/Research/exfil/secret_handshake/server.py", line 99, in listen_for_client
    with ssl.wrap_socket(
  File "/usr/lib/python3.10/ssl.py", line 1442, in wrap_socket
    return context.wrap_socket(
  File "/usr/lib/python3.10/ssl.py", line 513, in wrap_socket
    return self.sslsocket_class._create(
  File "/usr/lib/python3.10/ssl.py", line 1071, in _create
    self.do_handshake()
  File "/usr/lib/python3.10/ssl.py", line 1342, in do_handshake
    self._sslobj.do_handshake()
python client.py                                                                                ─╯
Generating x509 cert with message 'request', data payload length 0
sleeping for 4 seconds
Server connection refused - trying again soon
sleeping for 5 seconds
Server connection refused - trying again soon
sleeping for 5 seconds
Server connection refused - trying again soon
sleeping for 3 seconds
Server connection refused - trying again soon
sleeping for 3 seconds
Server connection refused - trying again soon
sleeping for 4 seconds
Server connection refused - trying again soon
sleeping for 6 seconds
/home/kali/Desktop/Research/exfiltration/secret_handshake/client.py:64: DeprecationWarning: ssl.PROTOCOL_TLSv1_2 is deprecated
  context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
Traceback (most recent call last):
  File "/home/kali/Desktop/Research/exfiltration/secret_handshake/client.py", line 192, in <module>
    main()
  File "/home/kali/Desktop/Research/exfiltration/secret_handshake/client.py", line 176, in main
    start_client(
  File "/home/kali/Desktop/Research/exfiltration/secret_handshake/client.py", line 122, in start_client
    cert = call_server(host_addr, host_port, server_sni_hostname, ca_cert_path, next_msg_cert)
  File "/home/kali/Desktop/Research/exfiltration/secret_handshake/client.py", line 68, in call_server
    with context.wrap_socket(sock, server_side=False, server_hostname=server_sni_hostname) as secure_sock:
  File "/usr/lib/python3.10/ssl.py", line 513, in wrap_socket
    return self.sslsocket_class._create(
  File "/usr/lib/python3.10/ssl.py", line 1071, in _create
    self.do_handshake()
  File "/usr/lib/python3.10/ssl.py", line 1342, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:997)

Call Stack for Client:
python client.py                                                                                ─╯
Generating x509 cert with message 'request', data payload length 0
sleeping for 4 seconds
Server connection refused - trying again soon
sleeping for 5 seconds
Server connection refused - trying again soon
sleeping for 5 seconds
Server connection refused - trying again soon
sleeping for 3 seconds
Server connection refused - trying again soon
sleeping for 3 seconds
Server connection refused - trying again soon
sleeping for 4 seconds
Server connection refused - trying again soon
sleeping for 6 seconds
/home/kali/Desktop/Research/exfiltration/secret_handshake/client.py:64: DeprecationWarning: ssl.PROTOCOL_TLSv1_2 is deprecated
  context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
Traceback (most recent call last):
  File "/home/kali/Desktop/Research/exfiltration/secret_handshake/client.py", line 192, in <module>
    main()
  File "/home/kali/Desktop/Research/exfiltration/secret_handshake/client.py", line 176, in main
    start_client(
  File "/home/kali/Desktop/Research/exfiltration/secret_handshake/client.py", line 122, in start_client
    cert = call_server(host_addr, host_port, server_sni_hostname, ca_cert_path, next_msg_cert)
  File "/home/kali/Desktop/Research/exfiltration/secret_handshake/client.py", line 68, in call_server
    with context.wrap_socket(sock, server_side=False, server_hostname=server_sni_hostname) as secure_sock:
  File "/usr/lib/python3.10/ssl.py", line 513, in wrap_socket
    return self.sslsocket_class._create(
  File "/usr/lib/python3.10/ssl.py", line 1071, in _create
    self.do_handshake()
  File "/usr/lib/python3.10/ssl.py", line 1342, in do_handshake
    self._sslobj.do_handshake()
**ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid** (_ssl.c:997)

hmmm...I'm not getting that, butcert_gen.gen_msg_cert creates the message certs and has an optional argument validity_end=1 that is used to set the not_valid_after date to datetime.utcnow() + timedelta(days=validity_end). (cert_gen.py line 64-65).
Try changing the validity_end argument to something like 7 (days) everywhere it's called in both client.py and server.py. Or just change the default value to 7.
Let me know if that fixes it and I'll change my repo. It should probably be something like 90 days anyway

While debugging this issue I changed that to 365 in func argument in cert_gen.py but that didn't work though.

I think what is happening is that cert_gen.py line 64 sets the cert's not_valid_before date to datetime.utcnow(). But when the client validates the server's cert on client.py line 68 the datetime written to the cert is before your's OS's current time somehow. That's why the error is certificate is not yet valid, which I thought was odd at first.
You should be able to fix it by setting cert_gen.py line 64 to something like .not_valid_before(datetime.utcnow())  - timedelta(days=10)
If you could, I'd like you to test something. Could you run it again. Note when the datetime is of your OS when you run it, and then send me the generated server cert? I'd like to match the two datetimes and see what the difference is. I have no idea why it would do this though.

This works. Since my server is in Cloud and geographically located somewhere in US so the time difference as you explained. Though, you need to replace this .not_valid_before(datetime.utcnow())  - timedelta(days=10) to .not_valid_before(datetime.utcnow()  - timedelta(days=10)) otherwise you will get attribute error.
date && python server.py
Fri Jan 13 06:37:15 AM UTC 2023
Generating x509 cert with message 'wait', data payload length 4

Enter a command type ('bash', 'exfil', 'kill'): bash
enter the bash command: ls
Generating x509 cert with message 'bash', data payload length 2
/root/Desktop/Research/exfil/secret_handshake/server.py:99: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket()
  with ssl.wrap_socket(
Parsed x509 cert with message 'request', data payload length 0
client requested command
Parsed x509 cert with message 'response', data payload length 161
client response:
	asn1_null_fields.py
	assets
	cert_gen.py
	certs
	client.py
	LICENSE
	Pipfile
	Pipfile.lock
	__pycache__
	README.md
	requirements.txt
	server.py
	super_valuable_files
	util.py

oh good! glad that got you working. I'll make the change in my source for anyone else running a similar environment. Might add some randomness too. Thanks!


unable to install

$ iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
bash: syntax error near unexpected token `new-object'

$ set-executionpolicy remotesigned -s cu
bash: set-executionpolicy: command not found

Those two are powershell commands, not bash commands.

Can you guide me about bash commands ?

Have you tried https://github.com/lukesampson/scoop/wiki/Quick-Start ?

thanks.


ERROR: CMake for Bullet Physics failed

Running bin/build.sh I got error:
ERROR: CMake for Bullet Physics failed
Previously I finished setup.sh successfully after corrections (issue #217)
CMakeOutPut.log: https://pastebin.com/8XkNvDvH
Command line error:
build_log_francisco_20170717.txt
Please help

That error may be caused by missing dependencies.
Take a look at the INSTALL file in the root of the Github repo, and install
any missing dependencies. Once you have all deps installed you should nuke
your existing NTRTsim install and compile a new version from scratch.
Let me know if that does/doesn't resolve your problems (or this specific
error, at the very least).
Perry
On Mon, Jul 17, 2017 at 4:46 PM, franciscocarreno<EMAIL_ADDRESS>wrote:

Running bin/build.sh I got error:
ERROR: CMake for Bullet Physics failed
Previously I finished setup.sh successfully after corrections (issue #217
https://github.com/NASA-Tensegrity-Robotics-Toolkit/NTRTsim/issues/217)
CMakeOutPut.log: https://pastebin.com/8XkNvDvH
Command line error:
build_log_francisco_20170717.txt
https://github.com/NASA-Tensegrity-Robotics-Toolkit/NTRTsim/files/1153941/build_log_francisco_20170717.txt
Please help
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/NASA-Tensegrity-Robotics-Toolkit/NTRTsim/issues/218,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFl5s9jPXKyzENVPDUm0Is006UeCWpcOks5sO8gdgaJpZM4Oag9V
.

That error may be caused by missing dependencies.
Take a look at the INSTALL file in the root of the Github repo, and install
any missing dependencies. Once you have all deps installed you should nuke
your existing NTRTsim install and compile a new version from scratch.
Let me know if that does/doesn't resolve your problems (or this specific
error, at the very least).
Perry

I installed all dependencies, erase env and build, run again setup.sh, and build.sh
I finished all with no error messages. I guess it's installed now. (see log attached)
I'm following the tutorial now. I'm trying to use YAML. When I run BuildModel nothing happens. I also tried "build/yamlbuilder/BuildModel resources/YAMLStructures/BaseStructures/3Prism.yaml" and got
message 'YAML::BadFile' (see log attached)
YAML 20170718 fran 1.txt
Build 20170718 fran 1.txt

While running the build does compile all simulator applications, you'll still need to explicitly run an application -- many are included in NTRT. For instance, if you want to run 3prism-serialize you would navigate to build/examples/3_prism_serialize and run AppPrismModel.

I see. I tried the examples. They run no problem. How can I build my own structures? Which tutorial could I follow?

See the repo README. Many details and links there.

Francisco,
Check out the video tutorial in the README file. It shows you how to use
YAML files as well as traditional tgModel applications. Welcome to NTRT!
Drew
On Tue, Jul 18, 2017 at 5:51 AM Perry Bhandal<EMAIL_ADDRESS>wrote:

See the repo README. Many details and links there.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/NASA-Tensegrity-Robotics-Toolkit/NTRTsim/issues/218#issuecomment-316053892,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC56Y7LB80PMSzvEVhMo_vckgBkRfm0_ks5sPKpDgaJpZM4Oag9V
.

--
Drew (Andrew P.) Sabelhaus
Graduate Student Researcher | UC Berkeley | Mechanical Engineering
Berkeley Emergent Space Tensegrities (BEST) Lab
NASA Ames Research Center | Intelligent Robotics Group | Dynamic Tensegrity
Robotics Lab
My pronouns are he, him, his. (What's
https://www.ccsu.edu/lgbt/files/PreferredGenderPronounsForFaculty.pdf
this? http://lgbt.williams.edu/resources/trans-resources/pronouns/ Why?
https://www.aclunc.org/article/frequently-asked-questions-whats-pronoun)
Phone:<PHONE_NUMBER> | www.apsabelhaus.com

thank you guys!

So sorry to bother you guys again…
I tried "git pull" to download the examples and I get this:
francisco@ubuntu:~/Documents/NTRTsim-master$ git pull
fatal: Not a git repository (or any of the parent directories): .git
I also tried this:
francisco@ubuntu:~/Documents/NTRTsim-master$ git checkout NTRT_Intro
fatal: Not a git repository (or any of the parent directories): .git
I then try gitinit
francisco@ubuntu:~/Documents/NTRTsim-master$ git init
Initialized empty Git repository in /home/francisco/Documents/NTRTsim-master/.git/
francisco@ubuntu:~/Documents/NTRTsim-master$ git pull
fatal: No remote repository specified.  Please, specify either a URL or a
remote name from which new revisions should be fetched.
I'm not sure which URL is asking me for. Please help!

If you downloaded the zip I linked earlier and extracted it somewhere it just includes the master branch, but not the settings for the specific git repository you pulled it from. For git pull to work you would have needed to clone the repository, rather than downloading it as a zip.
If the specifics above aren't something you're familiar with, don't worry about it. I believe that for everything you'll want to do you can simply ignore any git commands.
(I'm 99% certain that after sending this e-mail an example from the tutorials will come up where the above rule is incorrect. Fortunately I can blame that on Drew.)

Hey Perry/Francisco,
Francisco, it would be a good idea to get familiar with git before using
NTRT. The branches are important. Maybe try a git tutorial, and create an
example repository for yourself, and get familiar with clone/push/pull.
You'll need to clone the repository, or use one of the pre-built virtual
machines, in order to switch to the NTRT_Intro branch. As discussed in the
video, you need to install the simulator (implication: clone or use the
virtual machine) before switching to the NTRT_Intro and following the
video. Downloading a .zip file does not contain all the branches, so you
won't be able to switch to the NTRT_Intro branch inside the zip file. You'd
have to download a separate zip for the other branch. But since you'll be
using  both, it's best to just clone and not have to deal with two
installations.
To sum up: your error message at this point is not about NTRT. It's about
using git. There are many other resources online to help with that. I'll
help on this list for NTRT-specific problems, if you encounter any.
Good luck,
Drew
On Tue, Jul 18, 2017 at 4:01 PM Perry Bhandal<EMAIL_ADDRESS>wrote:

If you downloaded the zip I linked earlier and extracted it somewhere it
just includes the master branch, but not the settings for the specific git
repository you pulled it from. For git pull to work you would have needed
to clone the repository, rather than downloading it as a zip.
If the specifics above aren't something you're familiar with, don't worry
about it. I believe that for everything you'll want to do you can simply
ignore any git commands.
(I'm 99% certain that after sending this e-mail an example from the
tutorials will come up where the above rule is incorrect. Fortunately I can
blame that on Drew.)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/NASA-Tensegrity-Robotics-Toolkit/NTRTsim/issues/218#issuecomment-316222809,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC56Y2oUYDAkZ9-Hlqbxd08-6ijvd6Vwks5sPTkwgaJpZM4Oag9V
.

--
Drew (Andrew P.) Sabelhaus
Graduate Student Researcher | UC Berkeley | Mechanical Engineering
Berkeley Emergent Space Tensegrities (BEST) Lab
NASA Ames Research Center | Intelligent Robotics Group | Dynamic Tensegrity
Robotics Lab
My pronouns are he, him, his. (What's
https://www.ccsu.edu/lgbt/files/PreferredGenderPronounsForFaculty.pdf
this? http://lgbt.williams.edu/resources/trans-resources/pronouns/ Why?
https://www.aclunc.org/article/frequently-asked-questions-whats-pronoun)
Phone:<PHONE_NUMBER> | www.apsabelhaus.com

I found some instructions on how to clone the repository.
https://help.github.com/articles/cloning-a-repository/
Actually for the first exercise in the video I need to download some examples with git pull.
I'll try to do this by tomorrow so I'm able follow the NTRT Introduction Seminar video.

I was getting a similar error, and afterinstalling the dependencies and running setup.sh, the part where boost is doesnt progress. the timer keeps ticking along. Also Perry, your website where the virtual machine is also down.

Hi Zain,
I should have posted about the site being down.
I'm moving the server to a new DC. Unfortunately it won't be back up until the 29th at the earliest.
Perry

Hi Perry,
Oh damn that's bad.
I cloned the repostiories did as you said above about dependenciesand the part where boost is downloading seems to be stuck. It keeps ticking forever. Any leads,
Zain
Sent from my iPhone

On 16-May-2020, at 7:43 AM, Perry Bhandal<EMAIL_ADDRESS>wrote:
Hi Zain,
I should have posted about the site being down.
I'm moving the server to a new DC. Unfortunately it won't be back up until the 29th at the earliest.
Perry
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Yikes, completely forgot that the dependencies were hosted on my domain. I
figured only the buildbot would be affected which isn't super urgent.
I'll try to get it running again on a VPS asap. Hopefully it'll be up by
Monday. I'll send an e-mail once it's up.
On Sat, May 16, 2020 at 2:36 AM Zain Raza<EMAIL_ADDRESS>wrote:

Hi Perry,
Oh damn that's bad.
I cloned the repostiories did as you said above about dependenciesand the
part where boost is downloading seems to be stuck. It keeps ticking
forever. Any leads,
Zain
Sent from my iPhone

On 16-May-2020, at 7:43 AM, Perry Bhandal<EMAIL_ADDRESS>wrote:
Hi Zain,
I should have posted about the site being down.
I'm moving the server to a new DC. Unfortunately it won't be back up
until the 29th at the earliest.
Perry
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/NASA-Tensegrity-Robotics-Toolkit/NTRTsim/issues/218#issuecomment-629617501,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKAYXUZN65OUND2V4JBUGDRRZNBNANCNFSM4DTKB5KQ
.

Thanks man! I'll remind you in the unlikely case it escaped your mind.

Hey Zain,
Sorry, unfortunately it won't be done until Thursday night. It's a definite, though.
Perry

Hm it's okay, I forked the legacy version as suggested by Massimo, it worked after throwing a boost initialisation failure the first time.
Cheers

On 18-May-2020, at 12:36 PM, Perry Bhandal<EMAIL_ADDRESS>wrote:
Hey Zain,
Sorry, unfortunately it won't be done until Thursday night. It's a definite, though.
Perry
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

A little guidance on the data logging part would be great tho. I have copied the BuildTensegrity.cpp file for a yaml model and added the code in it. Do I need to make it somehow?

On 18-May-2020, at 12:36 PM, Perry Bhandal<EMAIL_ADDRESS>wrote:
Hey Zain,
Sorry, unfortunately it won't be done until Thursday night. It's a definite, though.
Perry
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hi Zain et al.,
First - Zain, responding to your individual email to me, I would not
recommend actively using NTRT for something with a deadline like a class
project, much less waiting until one week before the deadline to get
logging started. NTRT is out of date and is not actively used by most
developers. For me in particular, NTRT isn't my research anymore, so all
code is offered as-is. That said, I have a moment, so here are some
pointers on logging / Cmake.
There were already some answers to your questions in various places, so be
sure to search around in the future in case folks take time to respond. In
particular,
(1) The failed boost make is a known problem. As it happens, NTRT only uses
boost libraries that successfully build, no reliance on the broken ones.
So, none of the developers have needed to fix this problem yet. Just run
the setup script twice (or more) until everything completes.
(2) Logging - see
https://ntrtsim.readthedocs.io/en/latest/data-management-and-logging.html.
It's linked in the README.
(3) Building new apps - yes, you will need to put a new CMakeLists file in
the directory you're using, or else your code won't be compiled. The video
tutorial (see the
https://github.com/NASA-Tensegrity-Robotics-Toolkit/NTRTsim/tree/NTRT_Intro
branch) has a bit on this, but does not necessarily cover using new
controllers with YAML files, which I'm assuming is why you're copying
BuildTensegrity around. You can look at any of the applications in src/dev
for example CMakeLists files with new app/model/controller combinations,
the pattern should be relatively self-evident.
Best of luck,
Drew
Andrew P. Sabelhaus
Postdoctoral Research Associate | Soft Machines Lab
Carnegie Mellon University | Mechanical Engineering
My pronouns are he, him, his. (What's this? www.mypronouns.org)
Phone:<PHONE_NUMBER> | www.apsabelhaus.com
On Mon, May 18, 2020 at 9:33 AM Zain Raza<EMAIL_ADDRESS>wrote:

A little guidance on the data logging part would be great tho. I have
copied the BuildTensegrity.cpp file for a yaml model and added the code in
it. Do I need to make it somehow?

On 18-May-2020, at 12:36 PM, Perry Bhandal<EMAIL_ADDRESS>wrote:
Hey Zain,
Sorry, unfortunately it won't be done until Thursday night. It's a
definite, though.
Perry
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/NASA-Tensegrity-Robotics-Toolkit/NTRTsim/issues/218#issuecomment-630185988,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXHUY3PTU5GZILOYGSN523RSE2LHANCNFSM4DTKB5KQ
.

I am having the same CMake for Bullet Physics failed error.
I am using Ubuntu
I installed:

g++ 7 (the compiler for cmake)

libglib2.0-dev
curl
freeglut3
freeglut3-dev (glut for bullet graphics)
cmake
build-essential

unzip

python2.7

I download and unzip everything. I run setup twice until I get a message saying setup is complete. The first time I run setup it indicates boost initialization failed which the install instruction says is ok.
Then I run build and I get the CMake Bullet physics error. I have tried installing, and updating dependencies multiple times. I have tried Ubuntu 20 and 18.  I have deleted and unzipped new master folders a few times.
Build Error Pastebin
https://pastebin.com/0gnDsbbJ
Setup Complete message
https://pastebin.com/sNuGL2QK
CMakeOutputLog
CMakeOutput.log
I am running on a raspberry pi4 4gb. I would try to use a virtualmachine on my main computer but the .ova link is not working.
I am not sure what else to try. Thank you for any advice you can give.

@jvmccall The CMake output tells you the issue:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
GLIB_LIB_INCLUDE_DIR

There seems to be a problem with however glib is set up or configured on your computer. I personally have not seen this error before, so it's likely that the problem is unique to your setup as opposed to an issue with NTRT. I would recommend searching around on the internet for similar errors and trying out different solutions. If you figure out what needs to be added to the INSTALL instructions, let us know.
For some debugging to compare to a working NTRT installation:
The environment variable GLIB_LIB_INCLUDE_DIR does not seem to be defined, so you wouldn't need it to be either:
drew@drewbook-linux:~$ echo $GLIB_LIB_INCLUDE_DIR

drew@drewbook-linux:~$

But it does appear to be set via CMake internally somehow:
drew@drewbook-linux:~/repositories/NTRTsim$ grep -r -i GLIB_LIB_INCLUDE_DIR .
./src/inc.CMakeBullet.txt:    FIND_PATH(GLIB_LIB_INCLUDE_DIR glibconfig.h
./src/inc.CMakeBullet.txt:                ${GLIB_LIB_INCLUDE_DIR})
./build/CMakeCache.txt:GLIB_LIB_INCLUDE_DIR:PATH=/usr/lib/x86_64-linux-gnu/glib-2.0/include
drew@drewbook-linux:~/repositories/NTRTsim$

My first suggestion is to check and see if the glib include directory is present on your computer in a similar enough place as mine, and if the glibconfig.h file is somewhere. If not, then you may not have actually installed everything you need. If so, then something may have gone wrong during your setup of CMake. Maybe try installing glib before cmake when apt install-ing the dependencies.

@apsabelhaus Thank you. I had seen that output and I tried installing libglib2.0 in addition to libglib2.0-dev in case that fixed the problem.
I think I did install libglib2.0-dev before cmake. I have been installing the dependencies in the order listed in the INSTALL document.
I will check and see if it is in the right location and will post if I find out the solution.
In the meantime, is there an active link for the .ova file so I can try setting up a virtualmachine for NTRT? The perry link is down.

@jvmccall No idea about the virtual machine file. It's been many years since we used it and many years since Perry moved on from the project. I would recommend signing up for the ntrt listservs (see the official website for NTRT on the NASA page) and sending out an ask to current users to see if someone could upload a vm image for you somewhere.


Documentation is lacking duration(...).toISOString

The duration part of the documentation is lacking documentation for the toISOString method.

I will close this here and reopen on momentjs.com


[incubator/schema-registry] can't disable zookeeper dependency in global chart

Is this a request for help?:
no
Is this a BUG REPORT or FEATURE REQUEST? (choose one):
BUG REPORT

Version of Helm and Kubernetes:
v2.9.1 and v1.10.0
Which chart:
schema-registry
What happened:
kafka.enabled: false is not going to stop zookeeper creation so it fails with Error: release wayfaring-gecko failed: services "wayfaring-gecko-zookeeper" already exists
What you expected to happen:
to not create zookeeper deployment if kafka  disabled
How to reproduce it (as minimally and precisely as possible):
requirements.yaml:
dependencies:
- name: kafka
  version: 0.8.1
  repository: https://kubernetes-charts-incubator.storage.googleapis.com/
- name: schema-registry
  version: 0.4.3
  repository: https://kubernetes-charts-incubator.storage.googleapis.com/

values.yaml:
## Kafka Settings
kafka:
  enabled: true
  replicas: 1
  image: "confluentinc/cp-kafka"
  imageTag: "4.1.1-2"
  imagePullPolicy: "IfNotPresent"
  resources:
     limits:
       cpu: 1000m
       memory: 2Gi
  kafkaHeapOptions: "-Xmx2g -XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 \
                     -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M \
                     -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80"
  updateStrategy:
    type: "OnDelete"
  podManagementPolicy: OrderedReady
  rbac:
    enabled: true
  storageClass: rook-block
  configurationOverrides:
    "offsets.topic.replication.factor": 1
    "auto.leader.rebalance.enable": true
    "auto.create.topics.enable": true
    "controlled.shutdown.enable": true
    "controlled.shutdown.max.retries": 100
    "log.retention.hours": 720
    "log.retention.bytes": "107374182400"
    "num.partitions": 1
  persistence:
    enabled: false

  jmx:
    configMap:
      enabled: true
    port: 5555
    whitelistObjectNames:  # []
    - kafka.controller:*
    - kafka.server:*
    - java.lang:*
    - kafka.network:*
    - kafka.log:*
  prometheus:
    jmx:
      enabled: true
      interval: 10s
    kafka:
      enabled: true

  ## Zookeeper:
  zookeeper:
    enabled: true
    servers: 1
    resources:
      limits:
       cpu: 1000m
       memory: 0.5Gi
      requests:
        cpu: 500m
        memory: 0.5Gi
    heap: "256M"
    persistence:
      enabled: false
    exporters:
      jmx:
        enabled: true
      zookeeper:
        enabled: true

## confluent schema registry settings
schema-registry:
  kafka:
    enabled: false
  replicaCount: 1
  configurationOverrides:
    kafkastore.topic.replication.factor: 1
    debug: false
    avro.compatibility.level: BACKWARD

helm create test
#copy requirements.yaml and values.yaml two files to test dir
helm dependency update test/
helm install test/

Anything else we need to know:

since kafka is a child chart for you your entry
kafka:
  zookeeper:
    enabled: true

should be made false yes?

Actually, I made kafka and schema-registry as requirements on the same level.
So kafka is first requirements with zookeeper configured and schema-registry is next dependency with kafka and zookeeper disabled.
Is that possible? For me it make sense to make kafka primary dependency, and later expand my umbrella chart with additional tools like schema-registry...

/assign @benjigoldberg

I have the same issue.
Client: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"}

I created a demo chart to show the problem here: https://github.com/arolls/helm-dependency-enable-disable
The chart is for Kafka and Schema Registry, both of which require Zookeeper. There are shared requirements in both charts so we have to be able to enable/disable them as required. Here is a map of the requirements:

helm-dependency-enable-disable:

Kafka

Zookeeper

Schema Registry

Kafka
Zookeeper

I want to enable Zookeeper in the Kafka Chart and disable it in the Schema Registry chart so I have a values file as follows:
kafka:
  enabled: true

schema-registry:
  enabled: true
  kafka:
    enabled: false

The nested enabled: false flag in the Schema Registry chart is not being honoured which results in:
helm install --name azure --namespace azure .
Error: release azure failed: poddisruptionbudgets.policy "azure-zookeeper" already exists


Expose max number of target as env variable

Currently the maximum number of targets if 100, this also means, for example, if a target opens 100 streams, no more identifier will be available.

[ ] TAPA
[ ] Load-balancer

https://github.com/Nordix/Meridio/blob/master/pkg/ambassador/tap/stream/consts.go#L22
https://github.com/Nordix/Meridio/blob/master/cmd/load-balancer/main.go#L58

This should really be a stream property, not an env variable. E.g in the proposed sctp solution all sctp streams will have just one target, and there will be many of them (up to 256). The current default N=100 gives;
# ls -hl /dev/shm
total 3.9M
-rw------- 1 root root   72 Feb 18 07:55 ftshm
-rw------- 1 root root 3.9M Feb 18 07:55 tshm-stream1

The allocated space is of O(N^2) so if just one stream needs 1000 targets and this is set with an environment variable to the then all streams, including the sctp ones with just one target, will consume an awful ammount of mem!

If so, an offset should be added in the stream too, the NSP API and configmap would require modifications.
The current implementation is a bit specific on this, all streams are sharing the same identifier range, so if a target registered with identifier 50 on stream-a, the targets are not allowed to choose the same identifier, even to register other stream.

I don't know the implementation details, but;
> nfqlb init --N=1000 --M=993997
> ls -lh /dev/shm
total 2.0G
-rw------- 1 uablrek lgekman 2.0G Feb 18 10:00 nfqlb

Times 256! I don't think this will be acceptable.

But a default N may be settable with an environment variable.

Obsoleted by https://github.com/Nordix/Meridio/issues/174


blazy not working when I load images dynamically with in jsViewsfortag

blazy not working when I load images dynamically with in jsViewsfortag,
Its working when i reinitialize the   bLazy = new Blazy() after templete rendering but its not feasible to do reinitialize after every templete rendering. can you please suggest me to do in the best way.
Attched zip file.. To run unzip > open home_listing_page.html in browser.
Uploading LazyLoad.zip…
Thanks,
Rohith Varala

updateing zip file
LazyLoad.zip


Language name of JavaScript is not pascal case formatted

https://github.com/highlightjs/highlight.js/blob/48b5cedf6887907a66cf3552c5c5709621f9afa4/src/languages/javascript.js#L453
If this is indeed a typo, I can open a PR.

sure!


Initial RISCV-I disassembler

It needs some more polish and testing, but basic functionality is working. Except for converting from a chisel UInt to scala long. I am not sure it is possible to do without going through treadle. Not ready for merging, just review.
#18

Thanks!


update award.complaintPeriod.endDate only in complaintPeriod

This change is

Coverage increased (+0.001%) to 96.23% when pulling bc8203c41b50d51a2c994c847d69bb7dd6d54006 on vmaksymiv:master into 574b16ab555ac641daca1bf38d8450edd2d8d0cb on openprocurement:master.


TimePicker padZero feature

This plugin should have the option to append a zero from 0 to 9 in hours.

Added the padZero option. Also there was added defaultTimeNoInput to auto-fill the default time in the input.


Feat: Support setting speed rate of video

Added support for setting speed rate of video.
There is a pull request in GSPlayer Repo which attached to this PR for exposing the ability to set speed rate in VideoPlayerView
Resolving Issue #49
Linked to this PR: https://github.com/wxxsw/GSPlayer/pull/84

Thanks


Add support for custom functions

Following the initial definitions in #8 here are the implementation of custom functions.
There are 2 changes from what was discussed:

Using a Map was making it a bit more complicated than necessary, so I chose a Record instead.
I've mentioned that the custom functions should not override the built-in ones, but that's not how Dentaku works, as we are allowed to override them, so I've allowed that too.

Let me know if there's anything missing.
Cheers!
Closes #8

@illright How do you prefer the fix ups? Actual fixup commits that can be squashed after reviewed (so that you can review just the requested changes), amends to the the existing commits with force push, or something else?

I prefer fixes in subsequent commits, that lets me use GitHub's "view changes since last review" feature. As for the final commit, we will squash it using GitHub's UI, so no worries about commit messages

@illright All done.
FYI: since it was not relevant for you, I've made fixup commits, as they were simpler in my workflow. ;)

The custom error messages object in the old version is incompatible with the new one, that's what's breaking. I've released it as 2.0.0 and documented the migration in GitHub Releases

@illright Oh, yeah! You're right. I've completely forgot that the old error messages were removed. My Bad.
Anyways, thanks for the release!
Cheers!