Use nativescript-pulltorefresh in a Nativescript/angular project

Hello everyone
Has anyone used this Nativescript plugin https://github.com/bradmartin/nativescript-pulltorefresh in a Nativescript/Angular project and if so, can he/she tell me how to integrate the plugin properly ?
Thank you

I've looked (as I plan to add it), but have not got around to adding it. Nathan may have ... however a few of the controls are not that hard to add (some can be challenging however).
Firstly Ignore the xml namespaces.

Add in the package.json
The element needs to be registered to be a valid element. (add to a component somewhere:)

import { registerElement, ViewClass } from "nativescript-angular/element-registry";
//use <pullToRefresh></pullToRefresh> to use in xml
registerElement("pullToRefresh", require("nativescript-pulltorefresh").PullToRefresh)

That's the start at least. I'll have to look at it in the evening to work out the rest or if there is any challenges with it. .

Ok before adding the pull-to-refresh feature here's what my page looks like

And when I add the 2 lines in the typescript file (+the pullToRefresh element in the xml), I get this error in the execution :
EXCEPTION: TypeError: viewClass is not a function in [{title: 'Notifications'}

You need to add:
"nativescript-pulltorefresh" : "~1.1.0", to your root package.json and run npm install on the directory to get the package. The error suggests it cant find what it needs.
The register element is definately correct :)
registerElement("PullToRefresh", () => {
    var viewClass = require("nativescript-pulltorefresh").PullToRefresh;
    console.log("PullToRefresh viewclass:");
    console.log(viewClass);

    return viewClass;
});

page component (The example above)
pull to refresh component (probably not needed, but fits into my application better)
Any more problems then let us know.

So I checked the links you gave me and I already have an error when I compile with tsc :(
At first I was told that they couldn't find the module nativescript-pulltorefresh when I typed this line
"import { PullToRefresh } from "nativescript-pulltorefresh";"
Then I realized it was because I forgot to add this line ///
But now that I did it, I have this error on the console :
node_modules/nativescript-pulltorefresh/pulltorefresh.d.ts(13,18): error TS2415: Class 'PullToRefresh' incorrectly extends base class 'ContentView'.
Types of property 'on' are incompatible.
Type '(event: "refresh", callback: (args: EventData) => void, thisArg?: any) => any' is not assignable to type '{ (eventNames: string | GestureTypes, callback: (data: EventData) => void, thisArg?: any): any; (...'.
node_modules/nativescript-pulltorefresh/pulltorefresh.d.ts(34,25): error TS2304: Cannot find name 'UIRefreshControl'.
node_modules/nativescript-pulltorefresh/pulltorefresh.d.ts(44,9): error TS2382: Specialized overload signature is not assignable to any non-specialized signature.
Well maybe it's because my code doesn't look exactly like yours (I mean I don't have all these subfolders in the app folders)

I forgot about that reference as well. I hid the cardview reference in tsconfig.json file and forgot about it.
And that is during the build (typescript) stage?
How does your tsconfig.json file look?
Here is mine
I might have errors in the typesript files but it should still run.
Sub folders dont matter much (good for separation) ... just ends up with more or less ../ in <reference path="../../../node_modules
Looking at the errors however...
error TS2382: Specialized overload signature is not assignable to any non-specialized signature

I think its referring to this
on(event: "refresh", callback: (args: observable.EventData) => void, thisArg?: any);
//Typescript wants a simple version like ... probably
on(event: stinrg, callback : (args: observable.EventData) => void, thisArg? : any);

import contentView = require("ui/content-view"); returns any so it doesnt know about the base methods (I could be wrong - i so rarely use require).
So how does it know about this:
Types of property 'on' are incompatible. Type '(event: "refresh", callback: (args: EventData) => void, thisArg?: any) => any' is not assignable to type '{ (eventNames: string | GestureTypes, callback: (data: EventData) => void, thisArg?: any): any

Lastly
Cannot find name 'UIRefreshControl'. node_modules/nativescript-pulltorefresh/pulltorefresh.d.ts(44,9): error TS2382

that should be in tns core I believe (another reference)... this line in tsconfig.json might help
"node_modules/tns-core-modules/tns-core-modules.base.d.ts",

And make sure you have TypeScript set to not include node_modules

Here is my tsconfig.json file :
{
"compilerOptions": {
"outDir": "app",
"rootDir": "app",
"module": "commonjs",
"target": "es5",
"inlineSourceMap": true,
"experimentalDecorators": true,
"removeComments": false,
"emitDecoratorMetadata": true,
"noEmitOnError": true
},
"exclude": [
"node_modules",
"platforms"
],
"atom": {
"rewriteTsconfig": true,
"formatOnSave": true
}
}
When I write the tsconfig.json this way I only get the error I mentioned above but once I add the files section like you did with just this line :
"node_modules/tns-core-modules/tns-core-modules.base.d.ts"
I don't have the error anymore but I have other ones, always of the same type (TS2304 cannot find name ...).
And if I add the other .ts files in the files section, I have all the mentioned errors

If you just try and run it: tns run android for example how far does it get?
... boring errors ... like
node_modules/angular2/src/router/router.d.ts(138,19): error TS2314: Generic type 'Promise<R, T>' requires 2 type argument(s).
node_modules/angular2/src/router/router.d.ts(146,70): error TS2314: Generic type 'Promise<R, T>' requires 2 type argument(s).
node_modules/nativescript-angular/application.d.ts(9,95): error TS2314: Generic type 'Promise<R, T>' requires 2 type argument(s).

and then
node_modules/nativescript-pulltorefresh/pulltorefresh.d.ts(13,18): error TS2415: Class 'PullToRefresh' incorrectly extends base class 'ContentView'.
  Types of property 'on' are incompatible.
    Type '(event: "refresh", callback: (args: EventData) => void, thisArg?: any) => any' is not assignable to type '{ (eventNames: string | GestureTypes, callback: (data: EventData) => void, thisArg?: any): any; (...'.
      Type '(event: "refresh", callback: (args: EventData) => void, thisArg?: any) => any' provides no match for the signature '(eventNames: string | GestureTypes, callback: (data: EventData) => void, thisArg?: any): any'
node_modules/nativescript-pulltorefresh/pulltorefresh.d.ts(34,25): error TS2304: Cannot find name 'UIRefreshControl'.
node_modules/nativescript-pulltorefresh/pulltorefresh.d.ts(44,9): error TS2382: Specialized overload signature is not assignable to any non-specialized signature.

... well i get the same thing but it deploys and runs.
Successfully prepared plugin nativescript-cardview for android.
Successfully prepared plugin nativescript-intl for android.
Successfully prepared plugin nativescript-pulltorefresh for android.
Successfully prepared plugin tns-core-modules for android.
Project successfully prepared

:config phase:  createDefaultIncludeFiles
        +found plugins: nativescript-cardview

:config phase:  createPluginsConfigFile
        +creating product flavors include.gradle file in configurations folder...

:config phase:  pluginExtend
        +applying configuration from: H:\WhatsMyScore2\WhatsMyScoreNativeScript\platforms\android\configurations\include.gradle
        +applying configuration from: H:\WhatsMyScore2\WhatsMyScoreNativeScript\platforms\android\configurations\nativescript-cardview\include.gradle

:config phase:  copyAarDependencies

:config phase:  addAarDependencies
        +adding dependency: H:\WhatsMyScore2\WhatsMyScoreNativeScript\platforms\android\libs\aar\widgets-release.aar
:preBuild UP-TO-DATE
:preNativescriptcardviewDebugBuild UP-TO-DATE
:checkNativescriptcardviewDebugManifest
:preNativescriptcardviewReleaseBuild UP-TO-DATE
:prepareComAndroidSupportAppcompatV72311Library
:prepareComAndroidSupportCardviewV72311Library
:prepareComAndroidSupportSupportV42311Library
:prepareWidgetsReleaseLibrary
:prepareNativescriptcardviewDebugDependencies
:compileNativescriptcardviewDebugAidl
:compileNativescriptcardviewDebugRenderscript
:generateNativescriptcardviewDebugBuildConfig
:generateNativescriptcardviewDebugAssets UP-TO-DATE
etc

BUILD SUCCESSFUL

Total time: 1 mins 16.725 secs
Project successfully built
Successfully deployed on device with identifier '<IP_ADDRESS>:5555'.
JS: Setup App annotations
JS: DEPRECATION WARNING: 'enqueueTask' is no longer supported and will be removed in next major release. Use addTask/addRepeatingTask/addMicroTask
JS: Page loaded
JS: BOOTSTRAPPING...
JS: Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.
JS: ANGULAR BOOTSTRAP DONE.

I can get only this far :
`node_modules/nativescript-pulltorefresh/pulltorefresh.d.ts(13,18): error TS2415: Class 'PullToRefresh' incorrectly extends base class 'ContentView'.
Types of property 'on' are incompatible.
Type '(event: "refresh", callback: (args: EventData) => void, thisArg?: any) => any' is not assignable to type '{ (eventNames: string | GestureTypes, callback: (data: EventData) => void, thisArg?: any): any; (...'.
Type '(event: "refresh", callback: (args: EventData) => void, thisArg?: any) => any' provides no match for the signature '(eventNames: string | GestureTypes, callback: (data: EventData) => void, thisArg?: any): any'
node_modules/nativescript-pulltorefresh/pulltorefresh.d.ts(34,25): error TS2304: Cannot find name 'UIRefreshControl'.
node_modules/nativescript-pulltorefresh/pulltorefresh.d.ts(44,9): error TS2382: Specialized overload signature is not assignable to any non-specialized signature.
TypeScript compiler failed with exit code 1`

The project structure is for my own benefit really - easier to find things (I keep disagreeing with myself on naming and folders). Some parts are just to learn angular2 and nativescript.
The decorators are extending @component and set most of my directives / providers (saving effort on pages and components. I might split them all off into a new project that can be included in new projects as I'll probably reuse most of it again in a new project.
Back to the problem:
This should fix TS2415, TS2382:
https://github.com/bradmartin/nativescript-pulltorefresh/pull/6
You can always edit the file in node_modules in the meantime.
TS2304
simple fix - ios.dummy.d.ts
which I have referenced in tsd.d.ts
and tsd.d.ts is included in tsconfig.json
which is then globally available for typescript, which makes the compiler happier when it runs for pull to refresh.
Any more typescript errors if you make those two changes?

So I tried what you said with the same view you put in your second post (the one with the gif) and it worked (even though I don't really have the refresh animation). But when I try with another view (like this one), I have this error.
Here's what my compoment looks like : home.component.ts

Now that I updated angular2 to RC1, the code doesn't seem to work : "Failed to find module "nativescript-pulltorefresh", relative to /app/tns_modules/"

I have a similar problem. When launching the app, it crashes with this exception:
Error in pages/list/connectionList.html:4:2 	ORIGINAL EXCEPTION: TypeError: undefined is not a constructor (evaluating 'new viewClass()')
connectionList.html:
<StackLayout class="list">
  <PullToRefresh (refresh)="refresh($event)">
    <ListView [items]="connectionList | async" class="connection-list">
      <template let-connection="item">
        […]
      </template>
    </ListView>
  </PullToRefresh>
</StackLayout>

connectionList.component.ts:
/// <reference path="../../../node_modules/nativescript-pulltorefresh/pulltorefresh.d.ts" />
[…]
import {registerElement, ViewClass} from "nativescript-angular/element-registry";
import {PullToRefresh} from "nativescript-pulltorefresh";
registerElement("PullToRefresh", () => { return PullToRefresh });

@Component({
    selector: "connectionList",
    providers: [RequestService],
    templateUrl: "pages/list/connectionList.html",
    changeDetection: ChangeDetectionStrategy.OnPush,
    directives: [PullToRefresh]
})
[…]

If I add the reference to tsconfig.json - with tns-core-module -, the compiler fails with node_modules/nativescript-pulltorefresh/pulltorefresh.d.ts(34,25): error TS2304: Cannot find name 'UIRefreshControl'.
Can anyone reproduce it? Thank you!


Is there a way to have a button visible in the menu but disable it?

What's the way to have a button in menu but disabled?
Best regards

Checkout issue #104. If it doesn't answer your question define what you mean by a button exactly (f.e. the  Menu Button?). It would be really helpful if you add some screenshots.

A button in the menu is created this way:
builder.add("Menu button XXX", VaadinIcons.FACTORY, new XXXView());
At this point there is a new entry in the menu "Menu button XXX" and when it's clicked it opens the XXXView. Is it possible to have this disabled somehow?

Bingo! it's something like:
menu.getMenuElementHolder().getComponent(i).setEnabled(false);
Thank you


The program took more than 60000 ms to process one of the initial test cases.

Getting the following error:
C:\Users\akirilov\Desktop\test3>afl-fuzz.exe -i "inputs_small" -o "outputs" -D "C:\DynamoRIO-Windows-6.2.0-2\bin64" -t 60000 -f (redacted) -- -coverage_module (redacted) -coverage_module (redacted) -coverage_module (redacted) -fuzz_iterations 1 -target_module (redacted) -target_offset 0x11AC -nargs 2 -- "C:\xxxx\xxxx\(redacted)" (redacted)
WinAFL 1.02 by<EMAIL_ADDRESS>Based on AFL 1.96b by<EMAIL_ADDRESS>[*] Setting up output directories...
[+] Output directory exists but deemed OK to reuse.
[*] Deleting old session data...
[+] Output dir cleanup successful.
[*] Scanning 'inputs_small'...
[+] No auto-generated dictionary tokens to reuse.
[*] Creating hard links for all input files...
[*] Attempting dry run with 'id_000000'...

[-] The program took more than 60000 ms to process one of the initial test cases.
    Usually, the right thing to do is to relax the -t option - or to delete it
    altogether and allow the fuzzer to auto-calibrate. That said, if you know
    what you are doing and want to simply skip the unruly test cases, append
    '+' at the end of the value passed to -t ('-t 60000+').

[-] PROGRAM ABORT : Test case 'id_000000' results in a hang
         Location : perform_dry_run(), ..\afl-fuzz.c:2511

My modules are just the module name (foo.dll) so not using the full path this time. I see the target program launch and exit cleanly, and it takes significantly less than a minute, yet I still get the same error message no matter how high I set the timeout. I tried without any coverage modules too in case that was the issue, and still no luck.

Also tried with various fuzz-iterations values. I figured 1 would be safe since it won't expect more than 1 iteration in the timeout period.

Besides timeout, hangs like this typically occur when the target fails to report back to afl-fuzz, which can happen if the target_offset is incorrect or the target function does not return cleanly. These issues should be caught by the debug mode though. What does your debug log look like for this particular sample?

Ah, it's possible the target function isn't returning. I take it the app can't exit without the target function returning?
Where do I find the debug log?

I'm seeing a possibly related issue where module names are incorrectly case-sensitive.
"FOO.DLL" (the way it is in the filesystem) causes the timeout error
"foo.dll" (all lower) gives me a "No instrumentation detected" error
"fookdsjfklsjdklfs.dll" (not a real module) also gives me the timeout
This leads me to think that module names are converted to all lower and made case-sensitive?

Your target_function needs to return normally (except in the case of crash or a hang) in order for WinAFL to be able to redirect the execution back to its beginning.

Please see the README for info on the debug mode. Once you run in the debug mode, the debug log should be created in the current directory.

Module names are indeed case sensitive and should be exactly the same as in the debug log (this may or may not correspond to the filename). This is also mentioned in the README.

Changed to a function that returns normally
Module names changed according to the debug mode list
Still have the issue listed above where it never finishes the dry run
With the -debug flag, it fails saying it cannot find and kill the child process (I assume this is normal)

Log file contents (filenames removed and long sequences of module loads truncated):
Module loaded,
...
Module loaded,
In OpenFileW,
Module loaded,
...
Module loaded,
In OpenFileW, reading C:\Windows\Microsoft.NET\Framework64\\v2.0.50727\clr.dll
In OpenFileW, reading C:\Windows\Microsoft.NET\Framework64\\v2.0.50727\mscorwks.dll
In OpenFileW, reading C:\Windows\Microsoft.NET\Framework64\\v4.0.30319\clr.dll
In OpenFileW, reading C:\(redacted)\(redacted)\(THE APP).exe.config
Module loaded,
...
Module loaded,
In OpenFileW, reading
Module loaded,
...
Module loaded,
In OpenFileW, reading
Module loaded,
...
Module loaded,
In OpenFileW,
Module loaded,
In OpenFileW,
In OpenFileW,
In OpenFileW,
In OpenFileW,
Module loaded,
In OpenFileW,
Module loaded,
Module loaded,
Module loaded,
In pre_fuzz_handler
In OpenFileW, reading (THE FUZZED FILE)
In OpenFileW, reading (THE FUZZED FILE)
In OpenFileW,
In OpenFileW,
In OpenFileW,
In OpenFileW,
Module loaded,
...
Module loaded,
In OpenFileW,
In post_fuzz_handler
In pre_fuzz_handler
In post_fuzz_handler
In pre_fuzz_handler
In post_fuzz_handler
In pre_fuzz_handler
In post_fuzz_handler
In pre_fuzz_handler
In post_fuzz_handler
In pre_fuzz_handler
In post_fuzz_handler
In pre_fuzz_handler
In post_fuzz_handler
In pre_fuzz_handler
In post_fuzz_handler
In pre_fuzz_handler
In post_fuzz_handler
In pre_fuzz_handler
In post_fuzz_handler

Looking at your debug output, it seems that your (THE FUZZED FILE) is being opened outside the target function. This has the effect that WinAFL will not be able to replace the input file for every iteration and will need to kill the target process for every iteration in order to do it. That's why the dry run is taking a long time and you're getting messages about nudging/terminating the child process.

Not sure I understand. It seems to be opening inside the target function, at least the first time:
In pre_fuzz_handler
In OpenFileW, reading (THE FUZZED FILE)
In OpenFileW, reading (THE FUZZED FILE)
In OpenFileW,
In OpenFileW,
In OpenFileW,
In OpenFileW,
Module loaded,
...
Module loaded,
In OpenFileW,
In post_fuzz_handler

Above behaviour is consistent with selecting a function that does contain the file access, but is too high up in the execution. By that i mean that the function does return, but only after running the appropriate function down the line. The sequence of In pre-and post-fuzz messages without file open seem like the target function only opens the file once. Hence i suspect your target function is too "broad".
I'm curious what info ivan can provide.

I can definitely believe "too broad". I chose a function very high up to ensure that the file open is contained (and I just moved it even higher up with the same result).
I'm not sure if it's possible to scope it down any further. The file open happens very early into the parsing. Any clue why "too broad" is an issue with AFL?

This is dependent on the execution flow of the program. I suggest using IDA to get a visual impression of how it runs. My feeling is the function you selected only eventually opens the file if given certain parameters or in a certain state of the program; it's behaviour under DynamoRIO seems to be very variable in your case.
To find a suitable function, i tend to open the file while running ProcMon, then filter for file access. Then right-click the desired file access and view the associated stack trace. Again, i'd love to get some feedback from the developer on an optimal strategy to select an appropriate function.

Ah, interesting. I was just following up with procmon as well to confirm. I understand the scenario you're talking about but I'd be somewhat surprised if that's the way the execution is working. The broadest function I used is before argument parsing, so as far as I can tell it would have to open the file each time (clearly that's not happening).
I wonder if it's some interaction between the program, DynamoRIO, and/or AFL. How does DynamoRIO interact with Control Flow Guard? It shouldn't matter since control flow is redirected to a valid function, but maybe I'm missing something?
Also, am I correct in understanding that AFL basically jumps back to the target function after it's done running every time for (# OF ITERATIONS) times? In which case, I wonder if some global state might be causing issues.

This is where my expertise ends as far as i can tell :). But one thing i would like to mention is the bit abour argument parsing; by parameters i don't mean the options passed to STDIN but rather the internal functions of the executable. The functions these get passed to are only visible with symbols.
https://msdn.microsoft.com/en-us/library/windows/hardware/ff552052(v=vs.85).aspx

Yeah, I got what you meant :)
I specifically picked the function that parses the command line arguments since that seems to be the least likely to maintain some kind of weird global state (and should definitely enclose the file open, since the filename is specified in the command line).
And I do have full symbols and source for my target, thought that hasn't helped much with debugging AFL/DynamoRIO

Ah sorry, I didn't see that the file was open inside the target function the first time.
Another thing that could cause this behavior (besides the global state as mentioned previously) is incorrect restoring of the target function parameters (in which case it's possible the target function errors out before it can open the file). Take a look if nargs param is correct.
In general, I can't provide much guidance for selecting the target function apart from what was already said. Unless a target is a simple command line utility that exits after processing the input (like a typical target for linux AFL would be) where just using main or a similar function will do, it will take some reversing to find a good offset.

Ooooh.... -nargs specifies the number of arguments to the function, not the command line! That certainly explains a lot.
However, I would expect -fuzz_iterations 1 to still work correctly even with the wrong -nargs parameter. How many iterations does the dry run do? Am I just not waiting long enough for it to finish?

Yes :). I already suspected there was a misunderstanding there. STDIN (standard input) in cmd is the keyboard input so maybe that was a bit unclear.
You indicate that an iteration takes ~0.5 minutes, this means there is still something going wrong.
This means the function you selected -is- returning, but only after doing a ton of work.
Your input files should be as small as possible, optimally <1kb. The purpose of selecting a target function is to speed up the process, which is very important in fuzzing. So the function you target should be as narrow and self-contained as possible.
I can imaging a lot is happening in the time your test case takes; this makes the fuzzing effort quite unmanageable because the behaviour is so unpredictable.

As for the question of the iterations on the dry run, afl-fuzz.c:2440 has this comment:
/* Perform dry run of all test cases to confirm that the app is working as
expected. This is done only for the initial inputs, and only once. */

Unfortunately, there isn't much to be done to speed up the run. 30 seconds is longer than average for the app (I assume DynamoRIO instrumentation is slowing it down a lot), but this is a very large program with extremely complicated parsing code. Is there any way to get WinAFL working with long parse times like that?

No. The function you selected is so high-up that it seems to present two fundamental problems:

The code is so complex that not every fuzz iteration behaves the same, leading to the function not restoring or false positives in instrumentation.
The chance of finding bugs is greatly decreased at slow speeds,  AFL needs a lot of iterations to 'learn'.
The more complex the code, the more iterations it needs.

You still needs days if not weeks to get good coverage on a medium sized media DLL at 100 execs / s. So you need to find a balance between how much code you want to cover and the speed, this will increase your chance of success literally thousandfold. Trying to get low speeds to work kind of misses the point in my view.
I think we might be able to help you better if you provide some info of your target and the size of your input files. I highly doubt a large part of those 30 seconds of work is useful to the fuzzing process.

@akirilov Normally setting fuzz_iterations to something larger than 1 is how you'd get the largest speedup. WinAFL would be at its slowest the first time it passes through the code, because at that time the code needs to be translated. Afterwards, it is cached so subsequent runs (especially those that do not encounter new coverage) should not exceed 2x native speed. I'm not sure if with correct nargs you can increase fuzz_iterations or is there still a problem.
However if it takes seconds to process the input file natively, I agree with @mrpeppels that it might take a very long time for AFL to get good coverage. In fact it will take a very long time to finish even a single pass over a single file. One thing you can do is to use the -S id option to have WinAFL run in a non-deterministic mode and tamper with the code to reduce the iteration count per sample. This won't make a single iteration run faster but might discover new coverage more quickly (at the expense of thoroughness) for slower targets.

I think I was unclear when I was talking about opening times. It takes <1s normally and about 15 seconds under WinAFL. I suspect something else may be going on that's slowing it down.
I did try increasing fuzz_iterations using several different functions up and down the callstack, but even with the correct number of args, the process had to be killed every time. I suspect the program has so much stored global state that restoring the function is incredibly difficult.
I couldn't find this anywhere, but what are the rules for coverage modules? I noticed that if I have too few it says there's no instrumentation. I'm wondering if I have the right amount now or if I have too many (or if some of them are too big). Is there a way to know which ones or how many AFL expects? Or a good rule of thumb?

The "no instrumentation" message means that no code in the modules you specified was ever ran. You can probably discard those modules as they are not relevant for parsing input files. The good rule is to only use modules that do input file parsing and no other modules (every additional module is going to introduce a slowdown and possibly flaky coverage you don't care about).

Ah, I see. I removed a bunch of coverage modules and it seems to be a little faster now. Letting it run to completion goes into the main fuzzing logic so I guess I was just impatient with killing it after 5 minutes. I'll mark this as closed and maybe we can follow up offline for ideas on how to speed it up if you're ok with that.

If I was you I'd concentrate on figuring out why multiple iterations don't work as this is the best bet to speed it up. You wrote you had the source code for a target so perhaps there is a reasonable way to patch it.

Yeah, that's my big goal right now. However I'm concerned that won't even help that much. Basically, the issue I'm running into is this:

The code I'm targeting is in one massive binary
The file open effectively happens in the main function, so I can't target a function lower down because then we would always be looking at the same file

I'm guessing there isn't an easy way to address this

The executable always loads the same filename, the contents of the file is what changes during iterations.
FYI, the parameters of the function don't change during runs, AFL just needs the -nargs to restore the state if i'm not mistaken.

If the file open happens in main, then you should use main as the target function, otherwise (in general, might vary depending on how the file is actually open) WinAFL might not be able to replace a file that is at the same time open by the target. But the main problem I see is that the file isn't being opened on subsequent iterations of main as seen in the debug log you posted earlier - I'd concentrate on fixing that.

What calling conventions are you using for saving the arguments? I can't find where it's specified in the source. I'm guessing x64 uses DRWRAP_CALLCONV_MICROSOFT_X64?

I'm not explicitly specifying a calling convention and assuming drwrap selects the correct default for the platfrom (see DRWRAP_CALLCONV_DEFAULT in https://github.com/DynamoRIO/dynamorio/blob/a71bf92fb995dada7bfb93046655b6f7c94a22e0/ext/drwrap/drwrap.h#L381)


Development

What type of PR is this?
release
What this PR does / why we need it:
Release version 1.6.0
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Additional documentation e.g., usage docs, etc.:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Documentation typo and question

Hello,

Typo in the doc at http://semantic-ui.com/behaviors/form.html
")" is missed in the code:
if( $('.ui.form').form('is valid') { // form is valid (both email and name) }
Question for examples at http://semantic-ui.com/behaviors/form.html#/examples
Blur event causes only pink for the invalid field.
Submit causes pink for the invalid field and message.
Is it possible to provide the same behavior for blur?
Thanks,
LP

There's a PR sent by @Gsuz. Closing this since that PR will probably be merged soon.
PR: https://github.com/Semantic-Org/Semantic-UI-Docs/pull/293

Hi @duselguy, on your second question, we’ll be tracking the issue in a separate thread #3574.


Add support for making bitcoin spend transactions

In order to support client-side transaction generation in the blockstack-browser (https://github.com/blockstack/blockstack-browser/issues/1242 and specifically https://github.com/blockstack/blockstack-browser/issues/1239), we need to add support for bitcoin transaction generation in blockstack.js
I'm working on this in: https://github.com/blockstack/blockstack.js/tree/feature/bitcoin-transaction
Will open a PR for this shortly -- and we can discuss changes to the interface there.

Closing, as this has shipped in blockstack.js


[flutter_test] more docs, tests for within; simpler _sizeDistance

Document missing value types supported by within. Add missing tests. Simplify _sizeDistance implementation.


MDB file created with <IP_ADDRESS> and Server 2012 R2 WMF5

Hey guys,
I've used the recently released <IP_ADDRESS> version of the xPSDesiredStateConfiguration module to set up a demo Pull Server. It seems you've changed the db provider to ESENT for Server 2012 R2 in #88. But here's the thing: my "C:\inetpub\PSDSCPullServer\web.config" contains these lines:
<appSettings>
    <add key="MaxConcurrentRequests" value="10000" />
    <add key="MaxRequestsPerTimeslot" value="10000" />
    <add key="TimeslotSize" value="1" />
    <add key="dbprovider" value="ESENT" />
    <add key="dbconnectionstr" value="C:\Program Files\WindowsPowerShell\DscService\Devices.edb" />
    <add key="ConfigurationPath" value="C:\Program Files\WindowsPowerShell\DscService\Configuration" />
    <add key="ModulePath" value="C:\Program Files\WindowsPowerShell\DscService\Modules" />
    <add key="RegistrationKeyPath" value="C:\Program Files\WindowsPowerShell\DscService" />
  </appSettings>

Yet it still creates an mdb in the DSC Service directory:
PS H:\> ls "C:\Program Files\WindowsPowerShell\DscService"

    Verzeichnis: C:\Program Files\WindowsPowerShell\DscService

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d---s-       17.03.2016     16:49                Configuration
d---s-       17.03.2016     16:49                Modules
-a----       13.01.2016     04:59        1310720 Devices.mdb
-a----       21.03.2016     17:26             39 RegistrationKeys.txt

Upon registration of a Pull server client via ReportServerWeb resource the edb is created:
PS H:\> ls "C:\Program Files\WindowsPowerShell\DscService"

    Verzeichnis: C:\Program Files\WindowsPowerShell\DscService

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d---s-       17.03.2016     16:49                Configuration
d---s-       17.03.2016     16:49                Modules
-a----       21.03.2016     18:33        1056768 Devices.edb
-a----       13.01.2016     04:59        1310720 Devices.mdb
-a----       21.03.2016     18:33           8192 edb.chk
-a----       21.03.2016     18:33         131072 edb.log
-a----       21.03.2016     18:33         131072 edb00001.log
-a----       21.03.2016     18:33         131072 edbres00001.jrs
-a----       21.03.2016     18:33         131072 edbres00002.jrs
-a----       21.03.2016     18:33         131072 edbtmp.log
-a----       21.03.2016     17:26             39 RegistrationKeys.txt
             21.03.2016     18:33        1056768 tmp.edb

I guess it makes sense to point this out in the documentation. Thoughts?

I see that the Errors and StatusData are now binary fields in comparison to plain text in the mdb :(

@megamorf ,
Devices.mdb is created in DSC Service directory for supporting downlevel OS such as Win8 and Win2008 R2 Server. xWebService resource automatically installs the database provider for you based on the OS type you are installing pull server on. It is documented in xWebService resource. On Windows 2012 R2 full sku you can still switch to mdb if that is a requirement for you by changing the app setting in the web.config to use OLE, but keep in mind that OLE is not supported on Windows 2012 R2 Core and its is deprecated provider starting 2016.

Ah thanks for the clarification. I didn't know that OLE isn't supported on 2012 R2 Core.
I think it's worth adding this to the documentation. I'll go ahead and create a PR for that.
PS: Can you recommend a tool that allows me to read the binary fields in the edb?

@megamorf
If you use REST API to query Errors and StatusData fields you will see them in plain text regardless you use ESENT or OLE providers.
For a given node (identified by AgentID that can be retrieved by running glcm cmdlet in powershell) you can get the assiated reports as shown in below example:
Invoke-WebRequest –Uri "http://name:port/PSDSCPullServer/PSDSCPullServer.svc/Nodes(AgentId='your_agent_id')/Reports"  -ContentType "application/json;odata=minimalmetadata;streaming=true;charset=utf-8"
-UseBasicParsing `
-Headers @{Accept = "application/json";ProtocolVersion = "2.0"}


[ADAP-515] [Regression] persist_docs on column type RECORD causes HTTP 400 Bad Request: Policy tags can only be attached to a leaf field

Is this a regression in a recent version of dbt-bigquery?

[X] I believe this is a regression in dbt-bigquery functionality
[X] I have searched the existing issues, and I could not find an existing issue for this regression

Current Behavior
When applying description to a RECORD column with persist_docs, the table/view gets created in BigQuery but fails to be updated with the documentation. The dbt invocation gets an unhandled error and completes with an error.
400 PATCH https://bigquery.googleapis.com/bigquery/v2/projects/<project_id>/datasets/<dataset_id>/tables/<table_id>?prettyPrint=false: Policy tags can only be attached to a leaf field.
No policy tags are defined the model.yml but the error message still claims it is a policy tag issue.
Note: This is about documentation on the record itself, not on any of its struct properties.
Expected/Previous Behavior
I expect the documentation to be added on the RECORD column in BigQuery.
Previous behavior was that it was not added at all, but the code still ran.
Steps To Reproduce
Create a table/view that contains a column of type RECORD
CREATE TABLE dbt_bigquery_issues.record_documentation_bug (
  my_record_col RECORD
    <field1 STRING,
     field2 STRING>
);

Create a view on top of this table, remember to persist_docs. record_documentation_bug_view.sql
{{ config(
  persist_docs={"relation": true, "columns": true}
) }}

select
*
from `project_id.dbt_bigquery_issues.record_documentation_bug`

and add documentation to the model.yml
version: 2
models:
  - name: record_documentation_bug_view
    columns:
      - name: my_record_col
        description: test

Run the model.
Relevant log output
No response
Environment
- OS: Windows 10 (and Ubuntu 22.04 tested)
- Python: 3.11.2
- dbt-core (working version): 1.4.1.
- dbt-bigquery (working version): 1.4.1
- dbt-core (regression version): 1.5.0
- dbt-bigquery (regression version): 1.5.0

Additional Context
No response

Thanks for reporting this @emilmar !
I think this is the same as https://github.com/dbt-labs/dbt-bigquery/issues/687 (which will have a fix shipped in our next patch release).
I'm going to close this as a duplicate, but let me know if this looks unique and we can re-open it.

Hi @dbeatty10, thank you for the quick triage. You're correct, it is the same. I did my best to search for the issue but to no avail.
Thanks for making a great product.

You're welcome @emilmar ❤
Thank you for noticing this and taking the time to report it and make sure it didn't slip through the cracks -- much appreciated! 🏆


Fix masonry not populating tweets

📝 Changed routes:

/create
/thank-you

(view full size)
(view full size)

Commit 88363716efbc65f7f5748c7d6fa0d1a38db2b0ad (https://tweetic-ih7gniqy4-zernonia.vercel.app).


Consider inlining Newtonsoft for JSON Serialization

I serialized the ServiceDirectory manually now, but I don't know, if that's good to Keep here.
I'm considering pulling Newtonsofts.JSON for Deserializing the JSON directly into the types.
Essentially the conversion should work oobe, but it didn't in practice...

Using own Classes for Return types - so Closing this again

I guess one approach might be some sort of intermediate translator that is aware of all the core entities, but then can transform them or just de/serialize them from/to whatever backend storage is used.
For example, for just files or even a JSON document store, you would use a JSON serializer (like Netwonsoft or JsonUtil) but perhaps if you use a RDMBS store, it would translate using some ORM technology like EF or dapper.
HOWEVER, I think with the current protocol client, that concern sits at a higher level and can be deferred to the client implementation, such as this PWSH module.  After some experience and feedback, we may be able to come up with a more generalized set of tools and abstractions that can be shared by all clients.


[FIX] regular expression for no moderators

Closes # .

Changes proposed in this pull request:

merging and creating a pre-release


Error help

@Awish-Senpai @dylanjamesdev @WindowsCmd Idk who the owner of this project is but if you are the owner or you can help me with an error, Please dm me on discord. DairyWeb3638077#8556 (ID:<PHONE_NUMBER>90450186)

Please add the error here.

ok so I ran npm install and got this
added 594 packages, and audited 1029 packages in 2m
1 package is looking for funding
run npm fund for details
19 vulnerabilities (2 low, 5 moderate, 12 high)
To address issues that do not require attention, run:
npm audit fix
To address all issues possible (including breaking changes), run:
npm audit fix --force
Some issues need review, and may require choosing
a different dependency.
Run npm audit for details.
then i ran npm audit fix and got this
npm WARN audit fix<EMAIL_ADDRESS>node_modules/npm/node_modules/y18n
npm WARN audit fix<EMAIL_ADDRESS>is a bundled dependency of
npm WARN audit fix<EMAIL_ADDRESS><EMAIL_ADDRESS>at node_modules/npm
npm WARN audit fix<EMAIL_ADDRESS>It cannot be fixed automatically.
npm WARN audit fix<EMAIL_ADDRESS>Check for updates to the npm package.
npm WARN audit fix<EMAIL_ADDRESS>node_modules/npm/node_modules/hosted-git-info
npm WARN audit fix<EMAIL_ADDRESS>is a bundled dependency of
npm WARN audit fix<EMAIL_ADDRESS><EMAIL_ADDRESS>at node_modules/npm
npm WARN audit fix<EMAIL_ADDRESS>It cannot be fixed automatically.
npm WARN audit fix<EMAIL_ADDRESS>Check for updates to the npm package.
npm WARN audit fix<EMAIL_ADDRESS>node_modules/npm/node_modules/ssri
npm WARN audit fix<EMAIL_ADDRESS>is a bundled dependency of
npm WARN audit fix<EMAIL_ADDRESS><EMAIL_ADDRESS>at node_modules/npm
npm WARN audit fix<EMAIL_ADDRESS>It cannot be fixed automatically.
npm WARN audit fix<EMAIL_ADDRESS>Check for updates to the npm package.
added 12 packages, removed 28 packages, changed 52 packages, and audited 1013 packages in 30s
4 packages are looking for funding
run npm fund for details
npm audit report
markdown  *
Regular Expression Denial of Service - https://npmjs.com/advisories/1330
No fix available
node_modules/markdown
ws  5.0.0 - 5.2.2 || 6.0.0 - 6.2.1 || 7.0.0 - 7.4.5
Severity: moderate
Regular Expression Denial of Service - https://npmjs.com/advisories/1748
fix available via npm audit fix --force
Will install<EMAIL_ADDRESS>which is a breaking change
node_modules/@pm2/agent/node_modules/ws
@pm2/agent  1.0.3 - 1.0.8
Depends on vulnerable versions of ws
node_modules/@pm2/agent
pm2  4.5.2 - 4.5.6
Depends on vulnerable versions of @pm2/agent
node_modules/pm2
4 vulnerabilities (1 low, 3 moderate)
To address all issues possible (including breaking changes), run:
npm audit fix --force
Some issues need review, and may require choosing
a different dependency.

What’s the problem? That’s a normal report when you run an audit.

I shouldn't get that error when running npm install than npm audit fix. I have never gotten that error for any other project

That’s not an error tho, it’s telling you the audit for the node modules… it’s not related to this project.

ok than when I run npm start I get this
><EMAIL_ADDRESS>start
> node src/index.js

(node:11308) Warning: Accessing non-existent property 'MongoError' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:11308) Warning: Accessing non-existent property 'route' of module exports inside circular dependency
(node:11308) DeprecationWarning: Listening to events on the Db class has been deprecated and will be removed in the next major version.
Connected to database on mongodb+srv://discordbotserverlist:discordbotserverlist@cluster0.oojpt.mongodb.net/discordbotserverlist?retryWrites=true&w=majority
body-parser deprecated bodyParser: use individual json/urlencoded middlewares src\index.js:173:11
body-parser deprecated undefined extended: provide extended option node_modules\body-parser\index.js:105:29
MONGO IS CONNECTED AND READY
node:events:371
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use :::80
    at Server.setupListenHandle [as _listen2] (node:net:1306:16)
    at listenInCluster (node:net:1354:12)
    at Server.listen (node:net:1441:7)
    at Function.listen (E:\botrix-main\node_modules\express\lib\application.js:618:24)
    at E:\botrix-main\src\index.js:180:7
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Emitted 'error' event on Server instance at:
    at emitErrorNT (node:net:1333:8)
    at processTicksAndRejections (node:internal/process/task_queues:83:21) {
  code: 'EADDRINUSE',
  errno: -4091,
  syscall: 'listen',
  address: '::',
  port: 80
}

wait

nvm

Something is using port 80, I suggest learning the basics of node.js before attempting to run something of this nature.

I got this
><EMAIL_ADDRESS>start
> node src/index.js

(node:23512) Warning: Accessing non-existent property 'MongoError' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:23512) Warning: Accessing non-existent property 'route' of module exports inside circular dependency
(node:23512) DeprecationWarning: Listening to events on the Db class has been deprecated and will be removed in the next major version.
Connected to database on mongodb+srv://discordbotserverlist:discordbotserverlist@cluster0.oojpt.mongodb.net/discordbotserverlist?retryWrites=true&w=majority
body-parser deprecated bodyParser: use individual json/urlencoded middlewares src\index.js:173:11
body-parser deprecated undefined extended: provide extended option node_modules\body-parser\index.js:105:29
MONGO IS CONNECTED AND READY
Discord Client attached to express, logged in as: discord-bot-list#1830
BTX Internal Blockchian online and awaiting requests.
Botrix Network online.
discord-server-list#2163 Is online and tracking guilds!
E:\botrix-main\src\routes\index.js:78
    const botsize = req.app.get("client").guilds.cache.get("721282458708082713").members.cache.filter((m) => m.user.bot).size
                                                                                ^

TypeError: Cannot read property 'members' of undefined
    at E:\botrix-main\src\routes\index.js:78:81
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

That’s a known error, it doesn’t matter and you can ignore it.

Something is using port 80, I suggest learning the basics of node.js before attempting to run something of this nature.

yes i found that issue

That’s a known error, it doesn’t matter and you can ignore it.

well it stopped the terminal

Change the  “721282458708082713” to your guild ID in E:\botrix-main\src\routes\index.js:78.
It probably didn’t stop the terminal, it probably had nothing else to console log.

So I hit login and it says Invalid OAuth2 redirect_url

You’ll need to set the oauth url in discord. Read the instructions on the discord api portal for more info.

i did

in the server bot I set the OAuth url to http://disbotlist.gq/api/callback and in the bot bot I set the url to the server invite

Check the routes and see what the callback is, the config file doesn’t set the callback it only passes it to discord.

https://i.gyazo.com/02312cac127ecbe9c6d54143185a6734.png
https://i.gyazo.com/c6ab75a473f10c3459da1eb304ba2f81.png
that is what i did in the dev portal

You did the oauth wrong. I would read the docs on that more. Find the callback route, and your oauth link would be that.
Yourwebsite.com/auth/callback or whatever it is, off the top of my head I don’t remember it.

You did the oauth wrong. I would read the docs on that more. Find the callback route, and your oauth link would be that.
Yourwebsite.com/auth/callback or whatever it is, off the top of my head I don’t remember it.

I could not find the callback route

also, can i get an invite to the support server?

also, can i get an invite to the support server?

If you need anymore support you can have it here. Since our support server is no longer that active as it used to be. But here's the link https://discord.gg/ZyBAaMZN

This login concern and very persistent your discord does not work
Lนcαѕ#7323

If you're trying to run this and you cant find the callback route I suggest learning nodejs and express first


Integration tests

I'd like to run full commands in docker, probably with shelltestrunner, to test they do as expected. The only thing we can't do is actual Erlang builds. So the docker image should have Erlang already installed in a place for beamup to recognize it and use.
Though there should be tests of the future features of erroring if wx or openssl aren't found, when an option like --warnings-as-errors is added to change future warnings of those missing into errors.

Partially done with shelltestrunner in #35


Remove interactive styles from sidebar item without URL

Description

Currently, sidebar items without URL (null) still have hover and focus-visible styles. This PR ensures those interactive styles aren't applied for link placeholders.

[x] Visual changes (if any) are shown using screenshots/recordings of before and after.

Code style

[x] composer cs command has been run.

Testing

[x] Changes have been tested.

Documentation

[x] Documentation is up-to-date.

Can we just remove these classes if the URL is blank?

Updated, @danharrin.


no sublist error

Under :h sublist it says that "indexes out of range cause an error".
So why does :echo [1,2][5:9] not cause an error?

That is the correct behaviour, this is explained in :h list-index
If the first index is beyond the last item of the List or the second item is
before the first item, the result is an empty list.  There is no error
message.

If the second index is equal to or greater than the length of the list the
length minus one is used:

Therefore the empty list should be (and is) returned.  i.e. [1,2][5:9] is evaluated as [1,2][5:], the 9 does not need to be even checked.
Funny enough this is analogous to the behaviour of lists in python.

Shouldn't the docs under sublist be changed to reflect that then?


Continuous Crash of the Files App for windows 11

Description
after making a few new folders the app just starts spamming crashes no matter now often you open it. Practically making it unusable.
Steps To Reproduce
Seems to occur after scrolling down a log list
Go to a folder with a long list of items that would necessitate about 3 scrolls minimum
scroll to the bottom
then scroll a bit up the list
the app will crash
Expected behavior
I expected to scroll down to the bottom of my desktop folder and  to find some files
Files Version
Version: <IP_ADDRESS> OS Version: 10.0.22000.527
Windows Version
Windows 11 21H2
Relevant Assets/Logs

You will need to upload the logs files directly to github. You can get them in files settings > about > open log folder.

debug.log
debug_fulltrust.log

Is this still an issue?

While you're at it, you can see if it's resolved in the preview version https://files.community/download/preview.


HelpTexr.AutoBuild() returns a double copy of the help text...

Hi,
Using 1.9.71, when I call  GetUsage() I get the output for the help screen twice as per the screenshot below.

What am I doing wrong?
    public class CommandLineOptions
    {
        [Option("db-catalog", HelpText = "Database to use when connecting to the database server.")]
        public int DbCatalog { get; set; }

        [Option("db-host", HelpText = "Host to use when connecting to the database server.")]
        public int DbHost { get; set; }

        [Option("db-pass", HelpText = "Password to use when connecting to the database server.")]
        public int DbPassword { get; set; }

        [Option("db-tablename", HelpText = "Table we will place the contents of the input file into.")]
        public int DbTableName { get; set; }

        [Option("db-user", HelpText = "Username to use when connecting to the database server.")]
        public int DbUser { get; set; }

        [Option("input", Required = true, HelpText = "Input file to read.")]
        public string InputFile { get; set; }

        [Option("log", Required = false, HelpText = "Log file to write to.")]
        public string LogFile { get; set; }

        [HelpOption]
        public string GetUsage()
        {
            return HelpText.AutoBuild(this);
        }
    }

What happens if you don't include GetUsage at all? I haven't looked at the stable branch in a while, but I think usage is printed automatically.

@nemec Thanks, commenting it out works. You may want to update the QuickStart example for Parse Command Line as it has it in the sample code.

Thanks, I'll take a look at it.


Will this replace the HAProxy bouncer?

During a search for an HAProxy WAF, I came across the HAProxy bouncer. From what I understand:

The bouncer talks to the Security Engine
The Security Engine can optionally be extended with AppSec component
AppSec is short for 'Application Security', which is what CrowdSec calls its WAF
When the Security Engine can is extended with the AppSec component, the bouncer must support it

As far as I can see, the HAProxy bouncer does not support AppSec, effectively not providing a WAF. This hunch is confirmed by:

HAProxy is not mentioned as a supported web server in the AppSec documentation.
The HAProxy bouncer documentation talks only about 'checking IPs', not full-fledged WAF functionality. E.g.: "This component leverages haproxy lua's API to check e IP address against the local API."
The blog doesn't mention 'WAF' nor 'AppSec'

I did however come across this experimental SPOA repository, which says it provides 'WAF protection'.
Is it safe to assume that this project will replace the Lua-based bouncer (as SPOA is native to HAProxy)? If so, is there a timeline? The roadmap does not mention it.

Is it safe to assume that this project will replace the Lua-based bouncer (as SPOA is native to HAProxy)? If so, is there a timeline? The roadmap does not mention it.

Yes our plan since there is alot of limitation of the lua-based bouncer to use this implementation as the primary integration into HAProxy since we not reliant (so heavily) on the lua code and as you said SPOA is natively supported which means better integration.
At the moment, the roadmap doesnt have a confirmed timeline as we are currently rolling out features to CrowdSec itself and this has taken a lot of resources, since we have to ensure backwards compatibility.
Once we have released 1.6.4 which should hopefully be tomorrow, we can take a step back and evaluate a proper timeline such as:

[ ] Beta
[ ] GA

Hi @LaurenceJJones ,
Thanks for the information! Does CrowdSec take bounties? The ability to use its WAF with HAProxy would be very useful.

Does CrowdSec take bounties? The ability to use its WAF with HAProxy would be very useful. Coraza SPOA - which seems to be the only full-fledged alternative - is still 'experimental'.

In what regards, as we offer bounties? if so we feel bounties takes away from the spirit of open source and community contributions, we know this is a wanted feature for HAProxy so it is at the top of our todo lists.

If it's already at the top of the todo, then there's no need for a bounty ;). Thanks for the answer.


Request: Report Clocks as Percent/Fraction/Ratio

Great tool, love it.  Found your reference in radeontop issue thread.
I like how radeontop reports clocks as ratio & percent of maximums.  I think it would be cool in this tool, too.  Most stats already report that way, but this could done for a few more stats, too.  Just a suggestion.

My concern is that users may confuse each usage rate with a percentage of the maximum clock.
Higher clocks do not necessarily mean higher usage.
Also, the GPU/Memory clock plot is implemented in GUI mode.

Would this really help?


Slack invite app is down

http://bootstrap-slack.herokuapp.com/ returns An error occurred in the application and your page could not be served. Please try again in a few moments.
Just a heads up

/cc @mdo

Restarted dynos, back up. Sorry, and thanks!

It's still down

Updated the app and redeployed. Let's see if that helps.

Annnnnnd down again.

Yep, still down 😭

Back up again I think. Let's see how this one goes—switched to a fork of the Slackin project that apparently doesn't have the Heroku deploy issue I'm running into.

Appears to be alright, still up after 6+ hours. Closing out.


Close Modal from javascript function

How does one close a modal using javascript
I tried using

puyModal(removeDisplayedModal())

and

removeDisplayedModal()

but it throws an error I tried to use

('#puyModal').modal('hide');

Without success

You can try this:
$('#puyModal').modal('hide')


Add 9.24.27 SP Release Notes

This PR is reviewed and good to go after the release date is updated.


fix histogram for empty inputs & no data,

 Histogram-Operator on no data raster with range type data: Operator: DataTypeError: Plot exception: Histograms max value must be larger than its min value

Pull Request Test Coverage Report for Build 834968397

74 of 76 (97.37%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 82.859%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

operators/src/plot/histogram.rs
65
67
97.01%

Totals

Change from base Build 830741915:
0.1%

Covered Lines:
16783

Relevant Lines:
20255

💛  - Coveralls


adding a bad channel detection method using LOF algorithm

Reference issue
NA
What does this implement/fix?
This PR contains a new feature for bad channel detection using Local Outlier Factor (LOF) algorithm.
File name: mne/preprocessing/detect_bad_channels.py
Additional information
The proposed algorithm is used in Newborns EEG Artifact Removal (NEAR) pipeline published earlier this year. Recently, we analyzed data from adult subjects and the algorithm is adaptable to different populations. This contribution is a first step towards a fully-automated preprocessing pipeline based on MNE-Python. Your feedback is greatly appreciated.
Best regards,
Velu

@vpKumaravel what I would do is to take some MEG data in openneuro and see how this compares with find_bad_channels_maxwell. Just report the amount of overlap.
Now you should start with the data we use in our tutorials here. For example on MNE sample there 2 clear bad channels (one grad and one EEG)

@vpKumaravel what I would do is to take some MEG data in openneuro and see how this compares with find_bad_channels_maxwell. Just report the amount of overlap.
Now you should start with the data we use in our tutorials here. For example on MNE sample they are 2 clear bad channels (one grad and one EEG)

@agramfort Sorry for the delay! I was busy with my PhD thesis defense.
Here are the notebook files in which I validated LOF against Maxwell in both MNE and an OpenNeuro MEG dataset. This is the first time, I validated LOF in MEG data. I think the results are promising. Please let me know what you think.
If you want, I can also do the same for EEG datasets and compare the results against "Auto-reject" as Maxwell does not deal with EEG. However, auto-reject considers epoched data, while LOF works in continuous data.
Notebook 1: https://colab.research.google.com/drive/15MiXEWGyExvpQxuM7HedxT0zogwwzjVk?usp=sharing
Notebook 2: https://colab.research.google.com/drive/17X7DJ3p231B20fNb6A75pwX1WSN0Qnm4?usp=sharing
Thanks for your time :)

this looks like single dataset experiment and using our eyes to evaluate
the method. I would say
it needs a more quantitative evaluation on a relevant metric and computed
over a few datasets
to be fully convincing. You can maybe find inspiration on this in the
autoreject paper?
On Fri, Mar 31, 2023 at 5:02 PM Velu Prabhakar Kumaravel <
@.***> wrote:

@vpKumaravel https://github.com/vpKumaravel what I would do is to take
some MEG data in openneuro and see how this compares with
find_bad_channels_maxwell
https://mne.tools/dev/generated/mne.preprocessing.find_bad_channels_maxwell.html#mne.preprocessing.find_bad_channels_maxwell.
Just report the amount of overlap.
Now you should start with the data we use in our tutorials here. For
example on MNE sample they are 2 clear bad channels (one grad and one EEG)
@agramfort https://github.com/agramfort Sorry for the delay! I was busy
with my PhD thesis defense.
Here are the notebook files in which I validated LOF against Maxwell in
both MNE and an OpenNeuro MEG dataset. This is the first time, I validated
LOF in MEG data. I think the results are promising. Please let me know what
you think.
If you want, I can also do the same for EEG datasets and compare the
results against "Auto-reject" as Maxwell does not deal with EEG. However,
auto-reject considers epoched data, while LOF works in continuous data.
Notebook 1:
https://colab.research.google.com/drive/15MiXEWGyExvpQxuM7HedxT0zogwwzjVk?usp=sharing
Notebook 2:
https://colab.research.google.com/drive/17X7DJ3p231B20fNb6A75pwX1WSN0Qnm4?usp=sharing
Thanks for your time :)
—
Reply to this email directly, view it on GitHub
https://github.com/mne-tools/mne-python/pull/11234#issuecomment-1492071960,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABHKHHJNTIMXY4ABOOB3XDW63WWXANCNFSM6AAAAAARBQFCF4
.
You are receiving this because you were mentioned.Message ID:
@.***>

this looks like single dataset experiment and using our eyes to evaluate the method. I would say it needs a more quantitative evaluation on a relevant metric and computed over a few datasets to be fully convincing. You can maybe find inspiration on this in the autoreject paper?
…
On Fri, Mar 31, 2023 at 5:02 PM Velu Prabhakar Kumaravel < @.> wrote: @vpKumaravel https://github.com/vpKumaravel what I would do is to take some MEG data in openneuro and see how this compares with find_bad_channels_maxwell https://mne.tools/dev/generated/mne.preprocessing.find_bad_channels_maxwell.html#mne.preprocessing.find_bad_channels_maxwell. Just report the amount of overlap. Now you should start with the data we use in our tutorials here. For example on MNE sample they are 2 clear bad channels (one grad and one EEG) @agramfort https://github.com/agramfort Sorry for the delay! I was busy with my PhD thesis defense. Here are the notebook files in which I validated LOF against Maxwell in both MNE and an OpenNeuro MEG dataset. This is the first time, I validated LOF in MEG data. I think the results are promising. Please let me know what you think. If you want, I can also do the same for EEG datasets and compare the results against "Auto-reject" as Maxwell does not deal with EEG. However, auto-reject considers epoched data, while LOF works in continuous data. Notebook 1: https://colab.research.google.com/drive/15MiXEWGyExvpQxuM7HedxT0zogwwzjVk?usp=sharing Notebook 2: https://colab.research.google.com/drive/17X7DJ3p231B20fNb6A75pwX1WSN0Qnm4?usp=sharing Thanks for your time :) — Reply to this email directly, view it on GitHub <#11234 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABHKHHJNTIMXY4ABOOB3XDW63WWXANCNFSM6AAAAAARBQFCF4 . You are receiving this because you were mentioned.Message ID: @.>

Thanks, Alexandre!
For EEG datasets, I have already done such extensive analysis in the past, where we used F1 Score metric for comparative evaluation (results here).
I will try to look for MEG datasets with labeled ground truth for bad sensors to do the same.
-V

@agramfort let's discuss at our next dev meeting; on quick look the Sensors paper looks like a reasonable quantification of benefit for EEG at least.

👌
On Tue, Apr 11, 2023 at 6:32 PM Daniel McCloy @.***>
wrote:

@agramfort https://github.com/agramfort let's discuss at our next dev
meeting; on quick look the Sensors paper looks like a reasonable
quantification of benefit for EEG at least.
—
Reply to this email directly, view it on GitHub
https://github.com/mne-tools/mne-python/pull/11234#issuecomment-1503733721,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABHKHEI7DGIIV74ZNV52U3XAWBSDANCNFSM6AAAAAARBQFCF4
.
You are receiving this because you were mentioned.Message ID:
@.***>

autoreject is pretty "comprehensive" ... it detects artifacts at the level of single trials, then uses that to detect bad epochs and/or repair bad segments of the data using physics-based interpolation.
I quickly read the code of the LOF algorithm and it seems similar to the FASTER/RANSAC family of algorithms in that they work on the entire time period or epoch. The threshold of such algorithms is typically tuned on a large dataset, so they tend to work fine for a wide variety of cases and it can be useful as a "quick" preprocessing step for other algorithms like maxwell filtering, ICA etc.
However, I suspect there is a chance of losing "good" data by removing channels where all the data is not bad. Or conversely, if a channel has 20% of the trials bad, those 20% of trials will be completely removed during epoching if the channel is not marked bad. I think these algorithms are hard to test empirically because it depends how the performance metric is chosen/designed and what it is sensitive to. Also it might be worth considering whether there is an advantage for the user to bake domain-agnostic outlier detection methods that are already available in sklearn.
Having said that, if many users find such a function useful in their workflows, I would say why not.

autoreject is pretty "comprehensive" ... it detects artifacts at the level of single trials, then uses that to detect bad epochs and/or repair bad segments of the data using physics-based interpolation.
I quickly read the code of the LOF algorithm and it seems similar to the FASTER/RANSAC family of algorithms in that they work on the entire time period or epoch. The threshold of such algorithms is typically tuned on a large dataset, so they tend to work fine for a wide variety of cases and it can be useful as a "quick" preprocessing step for other algorithms like maxwell filtering, ICA etc.
However, I suspect there is a chance of losing "good" data by removing channels where all the data is not bad. Or conversely, if a channel has 20% of the trials bad, those 20% of trials will be completely removed during epoching if the channel is not marked bad. I think these algorithms are hard to test empirically because it depends how the performance metric is chosen/designed and what it is sensitive to. Also it might be worth considering whether there is an advantage for the user to bake domain-agnostic outlier detection methods that are already available in sklearn.
Having said that, if many users find such a function useful in their workflows, I would say why not.

Thanks, everyone, for the nice discussion.
If I may add, LOF is also a lot different compared to the FASTER algorithm: Firstly, LOF does not assume any distribution for the data (unlike FASTER) as it detects outliers based on the density of the clusters. Second, even if it considers the entire time period, LOF finds outliers within a "local" neighborhood determined by the k-nearest neighbors algorithm. In other words, LOF does not consider each channel separately, and it computes the outlier score based on the relative density distribution of different M/EEG channel clusters. However, I completely agree and suggest the users calibrate both LOF threshold (a default value of 1.5 seems a good starting point) and the number of nearest neighbors (a default value of 20 seems a good point to start).
Moreover, there are researchers who look for channel-wise bad channels rather than epoch-wise. I did a survey on Twitter over a year ago, and here are the responses (link)

@vpKumaravel one sticking point will be performance on different channel types. MNE is used for EEG but also (quite often) MEG. Would it be possible for you to compare find_bad_channels_maxwell to your algorithm when applied to MEG data on some datasets (e.g., subjects from https://openneuro.org/datasets/ds000117 and maybe another MEG dataset?)? FYI you'll probably have to process magnetometer (meg='mag') and gradiometer (meg='grad') separately since they generally have very different scales (and units).

@vpKumaravel one sticking point will be performance on different channel types. MNE is used for EEG but also (quite often) MEG. Would it be possible for you to compare find_bad_channels_maxwell to your algorithm when applied to MEG data on some datasets (e.g., subjects from https://openneuro.org/datasets/ds000117 and maybe another MEG dataset?)? FYI you'll probably have to process magnetometer (meg='mag') and gradiometer (meg='grad') separately since they generally have very different scales (and units).

Hi @larsoner thanks for your comment. I would actually be interested to see how LOF performs on MEG datasets and compare the results with Maxwell function. But, as I stated somewhere earlier in this thread, I couldn't find open-source MEG datasets with annotated bad channels. If you know any, kindly suggest.
Nevertheless, I took the datasets you've shared here and ran the LOF scripts just for the subject 01. The results are stored in the csv files here. You will also find the LOF outlier scores for each of these detected bad channels to interpret the results. I have set the threshold to 1.5 (empirically).
Surprisingly, none of the channels were found by the Maxwell method. If it helps, I filtered the data between 1 and 40 Hz.
Cheers,
Velu

Having thought about the problem and the results a bit, I'm +1 for including this. I think:

The maintenance overhead will be low
Mostly we have to think about how to handle multichannel data and the details of the actual API
The multichannel use case (EEG, MEG-mag, MEG-grad) for example for the sample dataset should take care of itself in normal use cases, too, since neighbors should be found within a particular channel type automatically. So we might not even need scalings (though it might make sense to add it)
We probably do want a picks parameter, though, which should default to using the good data channels. And we should just return a list of (additional) bad channels rather than modifying raw itself

@drammock WDYT?

I'm still in favor of including this in MNE. Other thoughts:

As far as returns, I'd say a list of bads and a scores dict (optional, if return_scores=True), just like find_bad_channels_maxwell. Agree on not modifying the Raw object. This means:

you probably don't need to make a copy of Raw anymore
the function name should be find_bad_channels_lof (instead of mark_...)

The new file should not be called mne/preprocessing/detect_bad_channels.py.  I would suggest mne/preprocessing/_lof.py
There are several unaddressed comments from my review last october (re: docstring formatting / content)

@vpKumaravel Note that we've recently started using black for code formatting and ruff for code linting (instead of flake8).  Both of these are set up to run on pre-commit hooks too, so you may need to update your environment to get all that working. See this recently changed section of our contributor guide.

@drammock, could you please guide me how to fix the build error "ModuleNotFoundError: No module named 'sklearn'"?

Hey @vpKumaravel do you have time to come back to this? It would be nice to get this in!

@vpKumaravel there was a bit of cruft following the rebase, I pushed a commit to fix that and clean up / streamline some stuff. Along the way I added a picks option to the function. Can you see if the diff looks reasonable to you now?

@vpKumaravel there was a bit of cruft following the rebase, I pushed a commit to fix that and clean up / streamline some stuff. Along the way I added a picks option to the function. Can you see if the diff looks reasonable to you now?

Thank you very much @larsoner. Yes, it all looks good to me. And thanks for helping me clear the PR checks! Hope the contribution is useful.


feat(l1): initiate rlpx connections from discv4

Motivation
DiscV4 protocol discovers new peers, and after deciding it is a valid peer, a TCP connection is established and RLPx protocol starts
Description
Now, when receiving a DiscV4 Pong message and after evaluating the peer, a RLPx connection is created and established. If handshake fails it removes the peer from the Kademlia table.
Closes #837.
Also removed some hard-coded testing code.
Once the listen loop is built (#840) there may be other conditions where a peer has to be discarded. (eg. when the other peer sends a Disconnect message). After #840 is completed we may create some more issues on this regard.

Left some comments, is there a proper way I can test this yet?

I'm testing it locally setting up a geth node and connecting it with ours. Eventually this will be tested on hive tests that test the eth capability (couldn't find tests for p2p capability)


Update newsletter's style

Related to https://github.com/premieroctet/digestclub/issues/92
Update newsletter's style
Description
Update of the newsletter UI:

Increase font sizes
Add team color
Add a link to web version

Screenshots
Before

After

Maybe increase also the line-height of article description in the newsletter, otherwise it's better :+1:


Added release notes for 1.8.1 version

This release includes a couple of fixes. One in the backend and another one in the CLI

Thanks for the feedback @omnomagonz ! Applied all of them!

@omnomagonz Could you give another pass to the review? I added a new entry for the bugfix section Fixed a regression which was preventing the deploy dialog to load automatically the list of repositories accesible in GitHub for new users when the authentication provider was GitHub.
Thanks in advance!


cmd/test2json: tests that panic are marked as passing

What version of Go are you using (go version)?

$ go version
go version go1.15beta1 darwin/amd64

Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/zolotov/Library/Caches/go-build"
GOENV="/Users/zolotov/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/zolotov/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/zolotov/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/Users/zolotov/go/go1.15beta1"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/Users/zolotov/go/go1.15beta1/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/pg/md95lhn52rj2x8jtfdr_d1cc0000gp/T/go-build033989892=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

Compile test with go test -c

package main

import (
	"testing"
)

func TestColor(t *testing.T) {
	panic(123)
}

run it with test2json tool

get the output like that

/Users/zolotov/go/go1.15beta1/bin/go tool test2json -t /private/var/folders/pg/md95lhn52rj2x8jtfdr_d1cc0000gp/T/___1TestColor_in_awesomeProject21
{"Time":"2020-07-06T23:35:36.37331+03:00","Action":"output","Test":"TestColor","Output":"--- FAIL: TestColor (0.00s)\n"}
{"Time":"2020-07-06T23:35:36.375884+03:00","Action":"output","Test":"TestColor","Output":"panic: 123 [recovered]\n"}
{"Time":"2020-07-06T23:35:36.375897+03:00","Action":"output","Test":"TestColor","Output":"\tpanic: 123\n"}
{"Time":"2020-07-06T23:35:36.375906+03:00","Action":"output","Test":"TestColor","Output":"\n"}
{"Time":"2020-07-06T23:35:36.375911+03:00","Action":"output","Test":"TestColor","Output":"goroutine 21 [running]:\n"}
{"Time":"2020-07-06T23:35:36.375917+03:00","Action":"output","Test":"TestColor","Output":"testing.tRunner.func1.1(0x411d400, 0x416e6c8)\n"}
{"Time":"2020-07-06T23:35:36.375923+03:00","Action":"output","Test":"TestColor","Output":"\t/Users/zolotov/go/go1.15beta1/src/testing/testing.go:1057 +0x30d\n"}
{"Time":"2020-07-06T23:35:36.375934+03:00","Action":"output","Test":"TestColor","Output":"testing.tRunner.func1(0xc000082900)\n"}
{"Time":"2020-07-06T23:35:36.375938+03:00","Action":"output","Test":"TestColor","Output":"\t/Users/zolotov/go/go1.15beta1/src/testing/testing.go:1060 +0x41a\n"}
{"Time":"2020-07-06T23:35:36.375943+03:00","Action":"output","Test":"TestColor","Output":"panic(0x411d400, 0x416e6c8)\n"}
{"Time":"2020-07-06T23:35:36.375947+03:00","Action":"output","Test":"TestColor","Output":"\t/Users/zolotov/go/go1.15beta1/src/runtime/panic.go:969 +0x175\n"}
{"Time":"2020-07-06T23:35:36.375952+03:00","Action":"output","Test":"TestColor","Output":"awesomeProject21.TestColor(0xc000082900)\n"}
{"Time":"2020-07-06T23:35:36.376078+03:00","Action":"output","Test":"TestColor","Output":"\t/Users/zolotov/go/src/awesomeProject21/go_test.go:9 +0x39\n"}
{"Time":"2020-07-06T23:35:36.376086+03:00","Action":"output","Test":"TestColor","Output":"testing.tRunner(0xc000082900, 0x414f870)\n"}
{"Time":"2020-07-06T23:35:36.376089+03:00","Action":"output","Test":"TestColor","Output":"\t/Users/zolotov/go/go1.15beta1/src/testing/testing.go:1108 +0xef\n"}
{"Time":"2020-07-06T23:35:36.376092+03:00","Action":"output","Test":"TestColor","Output":"created by testing.(*T).Run\n"}
{"Time":"2020-07-06T23:35:36.376095+03:00","Action":"output","Test":"TestColor","Output":"\t/Users/zolotov/go/go1.15beta1/src/testing/testing.go:1159 +0x386\n"}
{"Time":"2020-07-06T23:35:36.376305+03:00","Action":"pass","Test":"TestColor","Elapsed":0.07}

What did you expect to see?
The last event will be fail
What did you see instead?
The last event is pass

/cc @jayconrod @bcmills @matloob

CC @eliben @mvdan (by way of #31969)
Perhaps cmd/test2json with an explicit command argument should check the exit code of the binary; but then it still wouldn't be able to correctly annotate test logs supplied via standard input. The log of a test binary is fundamentally not sufficient to tell whether it passed or failed.
Since test functions that call os.Exit(0) should be exceedingly rare anyway (#29062), I agree with @mvdan's comment in https://github.com/golang/go/issues/31969#issuecomment-526813288 that we should interpret a not-affirmatively-passing test as a failure rather than a success.

This issue sounds related to #38382

I agree with @mvdan's comment in #31969 (comment) that we should interpret a not-affirmatively-passing test as a failure rather than a success.

I had to write that logic in gotestsum to handle the case of missing Action=fail events. It would be great if this could be handled by test2json or go test.

@gopherbot, please backport to Go 1.15. This seems like a significant regression.


Environment variables in Manifest

There is a new sub-command to kibe-vip which is to allow tighter integration with kubeadm:
kube-vip kubeadm init --<flags>
kube-vip kubeadm join
The init will generate a manifest (no configuration file) with everything required for the first node. Currently some of the configuration has been reverted due to breaking changes in #39

This has been added in #46


adds section commenting status and inheritance

adds comment related fields in the section
by default page comment status will be inherited
if article commenting status is inherited then ancestors will be used to determine the commenting status
updated content migration to handle section commenting fields

@geoo89 fixed


List of suggested URLs to block

@StevenBlack
Would it be fine to make an issue (like this) where people who have say 1-10 URLs they think* should be blocked that they can just comment on here instead of opening a new issue? Is there a better place to go about this? Thanks.
think* meaning someone such as yourself or another list maintainer should check them for validity.
If this is not a good idea just go ahead and close/lock this after you reply 👍

Ads:
media.net
mnetads.net
mnetads.com

@Jezza-x3 please, no.
This repo amalgamates curated hosts files.
Please see the data folder for those who curate ads and malware hosts files.
I'm going to close this now.


PhageParser

[ Project Lead ] @mbonsma
[ GitHub Repo ] https://github.com/goyalsid/phageParser
[ Track ] Tools: you are building a tool others can help you build
[ Level ] Intermediate
Description
This project seeks to accelerate our understanding of disease immunity by leveraging open genetic data.

Want to Contribute?
Join us at the Global Sprint June 2-3. Leave a comment in this issue to let the project lead know you're interested in contributing during #mozsprint 2016!

Note to the Project Lead
Congrats, @mbonsma! This is your official project listing for the Mozilla Science Global Sprint 2016. Please comment on this issue to confirm your project submission and complete the following:

[x] Provide a GitHub repository for work and discussion on your project
[x] Confirm in a comment that at least one person will be available to review and answer questions on this project from 9-5 in their timezone on both June 2 & 3.

Thanks @acabunoc! I'll be participating in the sprint (at the Toronto site) for both days.

What kind of computing resources does this application need ?

@brucellino, do you mean what resources does a contributor need or what resources does the project need?
Contributor: a standard laptop on any OS is probably fine - that's what people have been working with until now. All scripts are made with small test datasets that don't take a crazy long time to run.
Project: ultimately it'll be hosted on a server somewhere, and more than that we're not sure! As far as I know, bioinformatics generally uses a lot of RAM.

Hi @mbonsma
I was referring to the project, not the contributor. I am coordinating a distributed computing infrastructure in Africa and was wondering what would be needed to get the application onto it. The final aim would be to engage researchers and users of the project in our region.

Wow, that's a really cool project! I love that idea, and it would be great to hear what you have in mind. My feeling is that phageParser is still in too early a stage to be deployed for end users, but we could definitely talk about getting some developers on board from your region. My email is<EMAIL_ADDRESS>if you're interested in chatting more about this.


⚠ Samsung has degraded performance

In 036a2a5, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2224 ms

Resolved: Samsung performance has improved in 99f7079.


Condense the report to include only the deny and allow entries

@christinach commented on Mon May 18 2020
Compact Overlap: https://docs.google.com/drawings/d/1JnKVpQOKvJsu8kdB7UKNJSEBfEkREGBmNOe-U6kWqj0/edit

closed by #659


Add Dockerfile

Supports creating docker images.
Additionally creates a release, including docker image, upon pushing a tag.

Sorry, created the PR in the wrong repo.  Will open a new one, once I finished it.


Markdown does not display bold

Input code

This is tests.js in the test dir
/**
 * Foo **logs** 'foo'
 *
 * @export
 */
export function foo() {
    console.log('foo')
}

JSDoc configuration

'use strict'

module.exports = {
    plugins: ['plugins/markdown'],
}

It is run by npx jsDoc  -c jsdoc.config.js   test.js
JSDoc debug output

The resulting documentation looks like:

Expected behavior

The document should show "logs" bold. It does not
Current behavior

The logs does not show bold, BUT if I simply comment out the css in styles/jsdoc-default.css, I get:

Note: the **logs** DOES correctly convert to  logs:

Foo logs 'foo'

This does suggest a css issue, not a markdown transpile issue.
Your environment

Software
Version

JSDoc
3.6.6

Node.js
v12.4.0

npm
6.14.8

Operating system
mac Mojave 10.14.6

This is probably caused by a reset.


Untyped?

starlark-go README calls Starlark an "untyped dynamic language." I'm a bit confused about why it is untyped since types are clearly there. https://github.com/bazelbuild/starlark calls it "dynamically typed language," which sounds closer to the truth.

The meaning of the term "type" has been debated for nearly a century, and there are several different viewpoints. To a logician, a type is a collection of values over which a function is defined. To a runtime implementer, a type is a value that describes the structure and operations of another value. To a compiler writer or type theorist, a type is a static classification of expressions by the values they compute, that may be used to prove the absence of certain errors. The documentation alludes to this last meaning.
I don't think "dynamically typed" is a particularly useful description as there are exceptionally few languages that are not dynamically typed. (The only examples I can think of are B and assembly languages, whose sole data type is 'machine word'.)

I think it would be clearer to drop the word "untyped". "Untyped" is misleading when we have a type() function and the user can get type errors.
The terms "dynamic language" or "dynamically typed language" are more common (meaning that the type information is not known statically).


Not clear how to use

Your Java script looks really great and I would like to use it. Unfortunately, it is not clear to me what I have to pass: I have locally a SPARQL server (Jene Fukesi apache) installed. And I passed its URL to your testing HTML:

http://http://graves.cl/visualRDF/?url=http://localhost:3030/Proteins
-> http://localhost:3030/Proteins returns the RDF in Turle format
http://http://graves.cl/visualRDF/?url=http://localhost:3030/Proteins/query
-> http://localhost:3030/Proteins/query answers SPARQL queries
http://graves.cl/visualRDF/?url=file:///C:/Users/njagiella/Downloads/Proteins.rdf
-> file:///C:/Users/njagiella/Downloads/Proteins.rdf is my local RDF file in XML format

Any idea why it doesn't process my onthology?

Hi,
There are a couple of issues: First, you are passing a localhost URI to graves.cl. graves.cl CANNOT access your localhost, that's your local machine.

Hi thank you for your fast answer!
I guessed that this might be a problem. As I understand your test page, it loads some Java scripts which do the job of visualizing the RDF graphs. So, if it doesn't work with localhosts, it's due to passing the URL (of the RDF) to an external page then?
I tried as well an openly accessible onthology server, but had no success either:
http://graves.cl/visualRDF/?url=http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl
Any clue, why it doesn't work?

My bad, it also happened that I had a misconfiguration on my server :-)
You can try now


Fix proto import definitions

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

19 of 27 (70.37%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+4.8%) to 83.524%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

authorize/program.go
2
4
50.0%

internal/plugin/plugin.go
6
12
50.0%

Totals

Change from base Build<PHONE_NUMBER>:
4.8%

Covered Lines:
365

Relevant Lines:
437

💛  - Coveralls