cli: strcasecmp function is defined in <strings.h>

Getting compile time warnings
linenoise.c:213: warning: implicit declaration of function ‘strcasecmp’
linenoise.c:213: warning: nested extern declaration of ‘strcasecmp’

Landed in ab56294, thanks! Out of curiosity, what compiler are you using? Any extra cflags you're setting? I'm unable to see the warning.

I am trying to integrate sjs into my project so I had to manually port the build using autotools.  OS is CentOS 6.7
OSS_SJS_CFLAGS = -D_XOPEN_SOURCE=700 -pedantic -std=c99 -Wall -fstrict-aliasing -fno-omit-frame-pointer -Wextra -O0 -g3
[joegen@main ~]$ gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Thanks! I test using GCC 5 and Clang and haven't seen it, but the fix was good so I landed it :-)
Let me know how the integration goes!
Cheers,

Saúl,
Integration went quite well.  As an experiment, I introduced threading by exposing sjs_vm API so we I can actually instantiate new vms within JavaScript.   Each new thread created will execute its own VM so each context is private for each thread.   Introducing an in and out FIFO using pollable pipes for each thread allowed for inter-thread cooperation.  Test script looks like this

const assert = require('assert');
const poll = require('io/poll');
const thread = require("karoo_thread");
var t1 = new thread.Thread();
var t2 = new thread.Thread();
var code = 'const thread = require("karoo_thread");' +
'var message = thread.thread_receive_event_object(thread_self());' +
'var obj = { threadid:thread_self(), message:message };' +
'thread.thread_push_event_object(thread_self(), obj);';
t1.runCode(code);
t2.runCode(code);
t1.sendEventObject("Hello, thread 1!");
t2.sendEventObject("Hello, thread 2!");
var recv = 0;
while (recv != 2)
{
var fdset = new Array(t1.fd, t2.fd);
var res = poll.poll(fdset, null);
if (res.fds[0].revents & poll.POLLIN)
{
print(JSON.stringify(t1.popEventObject()));
recv++;
}
else if (res.fds[1].revents & poll.POLLIN)
{
print(JSON.stringify(t2.popEventObject()));
recv++;
}
}
t1.join();
t2.join();
t1.destroy();
t2.destroy();

To give you an idea what I am working on, I am calling the project KarooJS which would wrap my SIP stack (http://github.com/joegen/oss_core).   The primary purpose is SIP test automation.   Test cases like SLA, BLF, Call Pickup etc are really hard to emulate using sipp.  The goal is to be able to run each test case using their own sjs_vm.   It should be opensource once iIm done with it.
Meanwhile, I am contemplating on adding zeromq C API and probable mysql driver or mongo.  I noticed that you want sjs to be as low level as possible.  I wonder if these modules can make it as my contribution?

Saúl,
Integration went quite well.

Glad to hear!

As an experiment, I introduced threading by exposing sjs_vm API so we I can actually instantiate new vms within JavaScript. Each new thread created will execute its own VM so each context is private for each thread. Introducing an in and out FIFO using pollable pipes for each thread allowed for inter-thread cooperation.

Fantastic! This is exactly what I had in mind for multi-threading! I plan to work on that and / or child process support for 0.3.0 (0.2.0 is due tomorrow). The fact that each VM is completely isolated makes it easy to implement multi-threading, but alas object sharing becomes a bit more cumbersome.
The example looks great. Care to share it in full?It might be helpul to shape up the threading API.

To give you an idea what I am working on, I am calling the project KarooJS which would wrap my SIP stack (http://github.com/joegen/oss_core). The primary purpose is SIP test automation. Test cases like SLA, BLF, Call Pickup etc are really hard to emulate using sipp. The goal is to be able to run each test case using their own sjs_vm. It should be opensource once iIm done with it.

w00t! I've worked in VoIP for the last 10 years, so this is near and dear to me :-) I hope sjs suits your needs!

Meanwhile, I am contemplating on adding zeromq C API and probable mysql driver or mongo. I noticed that you want sjs to be as low level as possible. I wonder if these modules can make it as my contribution?

Sure! Not usre if I'll use a repo or an organization, bur those would be really welcome additions!

Sure thing.  Here it is.   Though, it links to my library and uses C++ objects.
src.tar.gz

Thanks! I'll take a look!


"fix", "fixes", "fixed" Always change the work item state into "Closed". It must be a way to change the state into "Resolved" instead.

Using fix, fixes, fixed in GitHub Pull Request description always changes the work item state into Closed. It must be a way to change the state into Resolved instead.
It is very important to us, and we also considering replacing Azure Boards with "Linear App".

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: c82842d8-dd84-249f-cce1-9e93ecf703bf
Version Independent ID: eaf9a299-4492-8e09-287a-f10b63d15e29
Content: Link GitHub commits and PRs to work items - Azure Boards
Content Source: docs/boards/github/link-to-from-github.md
Service: azure-devops-boards
GitHub Login: @KathrynEE
Microsoft Alias: kaelli

@aliqaryan2 -- Ali, thank you for your feedback.  This article lists the keywords to Close an issue; I haven't found a way to auto-Resolve one.

Linking a pull request to an issue

Please consider these resources:

Azure DevOps Services
Azure DevOps on Stack Overflow

@KathrynEE -- Kathryn, please look into this potential documentation issue.

@aliqaryan2 today we only support closing an issue, not resolving. It is a nice ask and something for us to consider when updating the GitHub app.

@aliqaryan2 -- Ali, thank you for your follow-up and clarification.  Please add this product suggestion here:

Developer Community

@danhellem -- Dan, thank you for your reply.
I am closing this issue now.  You are welcome to @ mention me for any followup.  We hope to hear from you again.


Structure of user-facing macros

Enzyme's integration into Rust should give the user

precise control of what are constant, primary and adjoint variables
make it easy to mark a function as a candidate for differentiation
inline derivatives into existing structs or calls directly in code

There several ways how to structure macros.
fn test(a: f32, b: f32) -> f32 {
    a * b
}

derive_diff!(test, test_first, a: const, b: dup);
derive_diff!(test_first, test_second, a: const, b: dup);

/*
Created by the derive_diff! proc-macro:
fn test_second(a: f32, b: f32, b_dup: f32) -> f32 {
 unreachable!();
}

*/

or
#[diff(
   test_diff: (const, dup) -> active
)]
fn test(a: f32, b: f32) -> f32 {
    a * b
}

or
diff fn test(a: (f32, const), b: (f32, dup)) -> (f32, const) {
}

Playground for internal use / design tests, probably broken most of the time:
import simple_dep;

fn f(x: f32, y: f32) -> f32 {
 x * 2 + y
}

#[enzyme(f, Active, Active)]
fn df1(x: f32, y: f32) -> { f32, f32 } {
unreachable!()
}

#[enzyme(simple_dep::f, Active, Const)]
fn df2(x: f32, y: f32) -> { f32 } {
unreachable!()
}

Playground for internal use / design tests, probably broken most of the time:
import simple_dep;

fn f(x: f32, y: f32) -> f32 {
 x * 2 + y
}

#[enzyme(f, Active, Active)]
fn df1(x: f32, y: f32) -> { f32, f32 } {
unreachable!()
}

#[enzyme(simple_dep::f, Active, Const)]
fn df2(x: f32, y: f32) -> { f32 } {
unreachable!()
}

looking how track_callee is doing stuff, perhaps we can do it the following way:

attr macro for function to differentiate

the rosenbrock function
fn rosenbrock(a: f32, b: f32, x: f32, y: f32) -> f32 {
    (a - x).powf(2.0) + b*(y-x*x).powf(2.0)
}

becomes
mod rosenbrock {
    use super::DiffeType;

    pub trait TypeInfo {
        const RET: DiffeType = DiffeType::Const;
        const A: DiffeType = DiffeType::Const;
        const B: DiffeType = DiffeType::Const;
        const X: DiffeType = DiffeType::Const;
        const Y: DiffeType = DiffeType::Const;
    }

    pub struct Forward;
    impl TypeInfo for Forward {}

    pub fn generic_body<T: TypeInfo>(a: f32, b: f32, x: f32, y: f32, ty: T) -> f32 {
        (a - x).powf(2.0) + b*(y-x*x).powf(2.0)
    }

}

fn rosenbrock(a: f32, b: f32, x: f32, y: f32) -> f32 {
    rosenbrock::generic_body(a, b, x, y, rosenbrock::Forward)
}

the callee macro creates new variants of this generic function

derive_diff!(rosenbrock, rosenbrock_grad, a: const, b: const, x: dup, y: dup);

would become
pub struct RosenbrockGrad {}
impl rosenbrock::TypeInfo for RosenbrockGrad {
        const RET: DiffeType = DiffeType::Const;
        const A: DiffeType = DiffeType::Const;
        const B: DiffeType = DiffeType::Const;
        const X: DiffeType = DiffeType::Dup;
        const Y: DiffeType = DiffeType::Dup;
}

fn rosenbrock_grad(a: f32, b: f32, x: f32, _x_dup: &mut f32, y: f32, _y_dup: &mut f32) {
    rosenbrock::generic_body(a, b, x, y, RosenbrockGrad)
}

During monomorphization of the trait TypeInfo several copies of the function in question are generated with different diffe type information. Those can then be caught after MIR in the LLVM codegen to replace them with their differentiated counterparts.

it may also make sense to automatically generate structures containing all output parameters

we could also define a simpler call macro, only allowing constant and output parameters, which can be directly used
let (x,y) = (1.0, 1.0);
let (xd, yd) = call_diff!(rosenbrock, 0.0, 1.0, x, y);

and is similar to derive_diff but inlines the additional struct definition

the names differentiate, derive_diff and call_diff are highly subjective and should be more expressive

One thing I'll add to your plate to think about for UX/syntactic sugar.
We're shortly finishing up "forward mode" AD in addition to the existing "reverse mode AD". Reverse mode computes the derivatives of all inputs with respect to a single output (or more specifically can do with respect to a linear combination of outputs). Forward mode does all outputs with respect to a single input.
Forward mode is called in much the same way, except all inputs are duplicated (e.g. an f32 would be duplicated not active).
We're still thinking through what good syntax should exist for it for high level languages (have a tentative __enzyme_fwddiff, but wanted to make sure you were aware of for future naming conventions/collisions.

I've been reconsidering what we need for an interface. For simplicity, I assumed that we are allowed to implement a macro with extra rights (similar to concat!). We require that the macro can look up a function header. Type handling is usually done after macro expansion. However, we could even accept the header as a string, since that is enough to calculate how the header of our generated function will look like.
This also aims to be exhaustive. It's hard to claim that an interface is future-proof. At least we have an advantage here since the underlying theory based on the chain-rule is unlikely to change. I'm also making use of #[non_exhaustive] enums.
We still need to specify the internal representation and the interface on THIR / MIR level w.r.t. the different cg_backend.
But that's probably less critical, as it is internal (although we obviously should still have to take it serious).
differentiate!(primary_fnc : FncPointer, gradientName : str,
    inputActivity : Activities, outputActivity : Activities)

#[non_exhaustive]
enum Activities {
AllFloats,
Some(Vec<Activity>) // one per input / output parameter
}

enum Activity {
Active,      // calculate the primary and the gradient
Gradient,  // calculate the gradient but not the primary
Constant, // calculate the primary  but not the gradient
}

#[non_exhaustive]
enum Mode {
Forward,
Reverse,
// ReverseSplit
// Mixed(more-details)
}

A minimal codegen implementation should then support ForwardMode and expects all (non-int) inputs to be active.
Unsupported Types (like currently globals or dyn trait for Enzyme) should then lead to a panic if there is no good falll-back.
There are a few open questions.

Can we remove the gradient_name and default to d_<primary_name> ?
That will collide if we differentiate the same function in the same module multiple times (with different arguments).
That's probably quite rare, so we can ask users to work around it using wrappers or modules, that's easy. Libraries might
even be able to do that.
I am not sure about atomicAdd and uncacheable args. I feel like we don't need either in Rust, but I might be wrong. Needs to
be verified.
We can support higher order derivatives by (later) adding new Modes. Mode::ForwardForward implies a Hessian, but there are
probably much better ways to name Modes. We can also generate higher orders recursively, macros already support an ordered expansion.
I marked Activities as non_exhaustive, since people later might want to support finer-than-typelevel activities.
An example would be a request for gradients only for the first half of an array.
The exact activity specification of input/output parameters (and the primary_ret) probably requires some more love.
As mentioned by william above there are some implications based on the Mode.
I propose ignoring Enzyme's OUT_DIFF vs DUP_ARG option. If we have an active f32 input we can just set it as DUP_ARG
and add &mut f32. This makes the interface simpler and more consistent. It is nice that enzyme zero-initializes scalars for you,
but imho that can also be done by a user-space wrapper macro. In the backend we can easily wrap functions generated by
enzyme, I already wrote two LLVM-IR wrappers in the past one of which does almost the same job.
Are we missing information in this interface which either Enzyme or another AD tool for a differend codegen backend might require? TypeTrees can be generated internally.

Libraries might then provide more convenient wrappers like forward!(fnc) or reverse!(fnc) which might generate
d_<fnc_name> while assuming that all floats are active.

@wsmoses I wrote this reply two weeks ago via Email but apparently it never came through :sweat_smile:

Reverse mode computes the derivatives of all inputs with respect to a single output [..]

those are mutual exclusive and running in forward or backward accumulation? I'm not sure about application for "forward mode" AD in situ or even for Jacobi matrices

Forward mode is called in much the same way, except all inputs are duplicated [..]

can you explain this a bit more, I thought that you only have a single input in forward mode

We're still thinking through what good syntax should exist for it for high level languages

From an UX standpoint they can be put at the end of a parameter list, though this magic will probably confuse users a bit too much, cause there is no clear association anymore. We also have to bail out for MIMO functions. Don't have much free-time at the moment but will take this into consideration, thanks!

For simplicity, I assumed that we are allowed to implement a macro with extra rights (similar to concat!). We require that the macro can look up a function header. Type handling is usually done after macro expansion. However, we could even accept the header as a string, since that is enough to calculate how the header of our generated function will look like.

best we can catch unaligned arguments as early as possible and that should happen during macro expansion, so there is a bit of magic involved

This also aims to be exhaustive. It's hard to claim that an interface is future-proof. At least we have an advantage here since the underlying theory based on the chain-rule is unlikely to change. I'm also making use of #[non_exhaustive] enums.
That is hopefully sufficient to be prepared for other AD tools handling other codegen backends.

but matching against enums will only happen for codegen's and for user-facing part it's a breaking change anyways

That will collide if we differentiate the same function in the same module multiple times (with different arguments).
That's probably quite rare, so we can ask users to work around it using wrappers or modules, that's easy. Libraries might
even be able to do that.

but this is the kind of magic, which should be avoided and will decrease chance to get accepted into rustc
.. will revise that tomorrow ..

those are mutual exclusive and running in forward or backward accumulation? I'm not sure about application for "forward mode" AD in situ or even for Jacobi matrices

At minimum this can be useful for controlling/reducing allocation. E.g. you can store the derivative result in an existing location.

Forward mode is called in much the same way, except all inputs are duplicated [..]

can you explain this a bit more, I thought that you only have a single input in forward mode

Yeah: Suppose you have a multi-input, multi-output function out[:] = f(in[:]), where the dimension of in is I and the dimension of out is O.
There are I * O potential derivatives one might want to individually compute (e.g. the derivative of every output with respect to every input): J[i, j] = dout_j/din_i.
Reverse mode can get you J[:, j] for any individual j (e.g. the derivative of any input with respect to a given output) in a single call, and forward mode can get you J[i, :] for any individual i (e.g. the derivative of a given input with respect to all outputs).
Enzyme for both modes, actually implements a more general (and thus more useful) version of both of these. Specifically, reverse mode computes the adjoints. That is to say given any vector v, it computes \sum_j v[j] J[i, j] = \sum_j v[j] dout_j/din_i. In other words it can compute the sum of gradients with respect to a vector of outputs. If v is set to 1 at one index and 0 elsewhere this gets you the "traditional" gradient wrt one output.
We have a similar implementation for forward-mode in which say we're given a vector u,  it computes \sum_u u[j] J[i, j] = \sum_i v[i] dout_j/din_i. In other words it can compute the sum of derivatives with respect to a vector of inputs. Again, if u is set to 1 at one index and 0 elsewhere this gets you the "traditional" derivative. This can also be thought of as the directional derivative.

I've implemented a differentiate attribute proc-macro here: https://github.com/ZuseZ4/autodiff
At some point we should probably discuss the naming of some parameters, but that's easy to update.
Using it revealed that one of of my llvm wrappers here doesn't cover all cases, once I fixed that I'll use that macro for this repo,
as it's much more convenient.

I just merged the new macro, I guess now it's time for more testing / documenting, to see if we want to have another iteration on the user-frontend.

The frontend seems to work fine, despite needing some smaller updates for fwd-mode (-vector).
I guess atm. there is no reason to have larger discussions on that, so closing here.


Download and install powershell modules using ruby

This will allow the powershell_module to work on Core installations of
Windows. It does however it adds a dependency on the rubyzip gem.

Hi. I am an automated pull request bot named Curry. There are commits in this pull request whose authors are not yet authorized to contribute to Chef Software, Inc. projects or are using a non-GitHub verified email address. To become authorized to contribute, you will need to sign the Contributor License Agreement (CLA) as an individual or on behalf of your company. You can read more on Chef's blog.
GitHub Users Who Are Not Authorized To Contribute
The following GitHub users do not appear to have signed a CLA:

@RyanJarv

Please sign the CLA here.

Hi. Your friendly Curry bot here. Just letting you know that all commit authors have become authorized to contribute. I have added the "Signed CLA" label to this issue so it can easily be found in the future.

Thanks for the PR.  I've got a bit of manual testing to do, but I should be able to get this merged early next week.

Thanks! Let me know if I can help in any way. FYI, Just fixed a typo in one of the doc lines I added.

Merged in #63


Allow arbitrary env variables passed to the Min.io Dev Service

It is best practice to accept arbitrary env variables being passed to the dev service container. Examples for this can be found at the official Quarkus guide on Dev Services. E.g., quarkus.amqp.devservices.container-env."environment-variable-name"
Use case: I want the dev service to be preconfigured with
ENV MINIO_NOTIFY_KAFKA_ENABLE_LOCAL="on"
ENV MINIO_NOTIFY_KAFKA_BROKERS_LOCAL="localhost:55003"

If the feature gets approved, I could do the PR on my own.

Not 100% sure what you want to do.
You wan't to be able to setup arbitrary env var that would be passed on to the dev service at startup ? In the example you give, they make use of withEnv("AMQ_EXTRA_ARGS", extra);, how exactcly would you reproduce that ?
Anyhow, please feel free to provide a PR, I would certainly have a better understanding of what you want to achieve.

I made the PR and used the same pattern as the other extensions are using.

@d135-1r43 many thanks for your involvement, will release soon.


Client: Replace httpHost with httpBaseURL to better indicate what it represents

Merge https://github.com/lxc/lxd/pull/10043 first.

Testsuite passed


Fix when meteor apps is served under a subdomain

I'm not sure I completely understand the issue with subdomains. Can you explain?
This user also mentioned something similar: https://github.com/mizzao/meteor-timesync/pull/14#issuecomment-147519871

I think #40 fixes this for you, but please open a new PR if you still have a question.


Attaching events to dynamically added items

Problem Most data binding libraries like knockout and Angular allow to dynamically add DOM elements. When this happens, itemslide does not attach events to the newly added items.
example

/* JS */
$scope.items = [
{label: "one"},{label: "two"},
];

$scope.items.push(,{label: "new item"});

Note: I am aware that addSlide can be used but this defeats the purpose of using such libraries and frameworks.
Possbile solutions

Somehow listening to the carousel DOM item changes and attach events when change is detected.
Extending itemslide with a new method that calls carousel.nav.createEvents(); and slides.reload(); so users call it after they change the array of items, ie add items.

i'll update reload so that it will call createEvents as well so that user can call reload when changing the array of items.


elements is Select multiple native interfering with input label

i Think that this will add a margin between the Input label and the list elements in the select multiple native because as of now when scrolling the elements will interfere with the label

[x] I have followed (at least) the PR section of the contributing guide.

Hey @fahdmk, I think this is a good idea 🙌🏼
But I can still see the bug in your branch (see https://deploy-preview-42201--material-ui.netlify.app/material-ui/react-select/#native):

Since this PR is inactive, I am closing it.


Text menu overlapping with icon

Prerequisites

[X] I have searched the backlog for duplicate or closed feature requests

Your test device
Huawei mate  20 pro
OS Version
10
App version
Pr #86
Describe the issue
In the navigation bottom menu the text is overlapping with the icon

Expected Behavior
No overlap -  when text too long add "..."

tested today


Wrong UBI balance

Describe the Bug
Wrong UBI balance being displayed in the user's profile;
To Reproduce
Compare the balance displayed by visiting:
https://app.proofofhumanity.id/profile/0x245Bd6B5D8f494df8256Ae44737A1e5D59769aB4?network=mainnet
with the one returned by calling balanceOf in the the UBI contract:
https://etherscan.io/token/0xdd1ad9a21ce722c151a836373babe42c868ce9a4?a=0x245Bd6B5D8f494df8256Ae44737A1e5D59769aB4#readProxyContract

I believe this occurs because the amount displayed on the web is the amount of UBI accrued by the account, calculated using accruedSince and accruedPerSecond, not their actual balance. We could change the wording to something like "Accrued UBI", or actually querying balanceOf to get the correct account balance. What do you think?

Yes, I'll pick this one up and change it to actually query balanceOf


Group > GroupLevel

Overview

Test Notes/Sample Code

Notes:

This fixed that Group error, but unfortunately another one popped up. Looks like we also need to change status to Status (and possibly other column name adjustments that we see in the Params column in the wiki)


*: drop golang 1.4 support

after 2.3 release we can drop golang 1.4

drop any build tag that support < 1.4

drop CI test on 1.4

/cc @gyuho

Sure, will do right after release.


Problem with export

Problem with export
I am using blender 2.8.3(with Python version 3.7.4), version 8 of the addon, and the Manjaro-Gnome os with 5.26 kernel .(i also have tried newer versions and version 7 of the addon, and every time I have the same result). Also, I don't use the pre-baked lighting and my settings for the export are the defaults except for the export directory.

Also, i don't know if this is relevant but when I was trying to import the gltf model inside the aframe entity i was getting an error about custom UV lighting and that why i tried to use this addon.

Hi!
The latest exporter version is tested on blender 3.0 or above.
Your issues seems to be related to the version of the gltf exporter.
Please check out it, this should be GLTF 2.0 (since version 1.7.33 or above)

Hi,
I am on mac running the 3.3.0 version of blender and getting a similar error. I am new to blender, I am not sure if there is anything I am doing wrong to get the error. I can't export to aframe. I was following this tutorial but failed to continue after not being able to export to aframe. I'd appreciate suggestions on how to make this error go away.

I too am new to both Blender and A-Frame. I'm seeing the same error as OP.
I have glTF 2.0 format and the A-Frame exporter enabled and I'm running Blender 3.3 on Windows 10.
I was previously running Blender from Steam (installed via the Steam store). I've tried removing and installing the program directly from Blender's website just in case there was some permission issue with the Steam version.

Also, if I click 'Start Serving', then click 'Open Preview', I get a directory listing page,

Check the latest version


Error initialising Intercom in app.module.ts

I've installed Intercom throughnpm install ng-intercom@beta --save
When trying to import the Intercom in app.module.ts
import { IntercomModule } from 'ng-intercom';
..
    IntercomModule.forRoot({
      appId: "your_app_id",
      updateOnRouterChange: trueDefault: `false`
    })
..

I get the following two errors:
Argument of type '{ appId: string; updateOnRouterChange: boolean; }' is not assignable to parameter of type 'IntercomConfig'.
Object literal may only specify known properties, and 'appId' does not exist in type 'IntercomConfig'.

I'm using Angular 4.

Okay, I've just went through some other issues reported here and I've made it work based on a code snipped from an unrelated topic. Two things:
It's not "appID" anymore it's "app_id" and once i remove updateOnRouterChange It works. I'm not sure if it's just a matter of readme update or a bug in the code.
So switching from this:
IntercomModule.forRoot({
    appId: "your_app_id",
    updateOnRouterChange: trueDefault: `false`
})

To this:
IntercomModule.forRoot({ app_id: "your_app_id" })

Okay, for some strange reason this now works, I've installed intercom again by using
npm install ng-intercom --save and it works, however the chat icon is not showing up. I'm also using the code from the readme with one addition, which is user_id.

The beta has been moved to the latest tag, so that has the latest version. The code from the readme should not take a user_id property in forRoot(), so that may be your issue. Are you getting any console logs or errors?

I've used user_id in my component when I wanted to display the intercom chat widget. I used the exact same code as the example in readme and initially i get Intercom.init is deprecated and will be removed in a future release. Please use Intercom.boot. After I replace to this.intercom.boot nothing happens. No errors in the console. not widget in the corner.

To clarify: init works, and boot does not?

No, nothing works, the only difference is that init throws console warning and boot doesn't show anything. In both cases, I don't see the chat widget in the corner. Just to test it, I've included a vanilla JS code in my index.html file in the header and the chat button shows up, so it's definitely an issue with the library.

@newPrimitives init is deprecated in favor of boot to more closely match the IntercomJS API.
Can you please share a repo so I can see the issue?

It's a private repo but here's how I integrate it in the component:
In the app.module.ts
...

import { IntercomModule } from 'ng-intercom';

@NgModule({
  declarations: [
    ...
  ],
  imports: [
    ....
    IntercomModule.forRoot({ appId: "XXXX", updateOnRouterChange: true })
  ],
})

In the component:
....

import { Intercom } from 'ng-intercom';

...

export class ManageSpacesComponent implements OnInit {

constructor(private router: Router, private db: AngularFireDatabase, private auth: AuthService, public intercom: Intercom) {

  }

ngOnInit() {
    this.intercom.boot({
      app_id: "XXXXX",
      widget: {
        "activator": "#intercom"
      }
    });
  }
}

For the sake of testing I just want to see a blue chat bubble in the bottom right corner.

just call this.intercom.boot, and appId should be app_id

If that is the issue, let me know so I can fix the docs

Unfortunately, not. My IntercomConfig looks like this:
export interface IntercomConfig {
    appId: string;
    updateOnRouterChange?: boolean;
    apiToken?: string;
}

so app_id instead of appId throws an error. Calling just this.intercom.boot() doesn't help either.

What version are you on?

npm-list shows<EMAIL_ADDRESS>

Ok I’ll try to take a look tonight. Thanks for letting us know!

Thank you, let me know the results, really appreciate it.

I'm having the same issue. I've been investigating a bit:

To display the default button, the correct boot config option is #IntercomDefaultWidget:

widget: {
  activator: "#IntercomDefaultWidget"
}

IntercomModule.forRoot({appId: environment.intercom.app_id}), seems to be the right syntax appId is only used to initialise Intercom JS code (cf. https://github.com/CaliStyle/angular2-intercom/blob/master/src/intercom/intercom.ts#L19)

The only issue that I encounter now is that I can't use alignment: 'left'. It is working when using the vanilla JS, but not using the lib.

I'm beginning to think it's something wrong with loading intercom asynchronously. I may need to dive in and investigate more. PRs would be accepted and greatly appreciated

Update: I can reproduce this error. It seems to be a whitelist error, but it could be something entirely different. Open to suggestions and PRs.

Alright folks, I just released beta.7. Thanks for your patience! I've verified that it is working locally.
As an aside, make sure that you have whitelisted localhost so that Intercom knows requests are coming from you. I recommend using the TEST app so that you don't go into production with localhost whitelisted!


Can't run from src directory

Hi, thanks for this. I was trying to change your code to only update the store if the matchmedia changed, not with every window resizing. It looked like the package had a main specified of the build directory. I tried to change the package.json file to refer to the src directory to pick up the few changes I made, but got this error:
ERROR in ./~/redux-responsive/src/index.js
Module parse failed: D:\projects\rrum\node_modules\redux-responsive\src\index.js Line 2: Unexpected token
You may need an appropriate loader to handle this file type.
| // local imports
| import createResponsiveStateReducer from 'util/createResponsiveStateReducer'
| import addResponsiveHandlers from 'util/addResponsiveHandlers'
|
 @ ./src/redux/create.js 18:23-50

How can I set the the package up to be able to include the changed src files in my build process?
Thanks again,

Hey Caleb,
Thanks for contributing. It seems like webpack is saying that it doesn't know how to compile the es6 syntax in this file. My guess is that your webpack configuration excludes the node_modules directory. The quickest way to have your changes take effect would be to change the main attribute of the package.json to point back to build/index.js and run the following command at the root of your project:
npm install ./node_modules/redux-responsive
That will cause npm to rebuild redux-responsive with your changes (using the configuration included by this repo).
Let me know if that command doesn't work for you. I can't test it as I don't have a Windows machine (but it works on my mac).

You bring up a good point about only updating the store if the mediaType changed. If you're interested in sharing it I'd love to see what you come up with!

:+1: on seeing Caleb's changes!
(if he wants)

awesome thanks, still hacking my way up the learning curve, but I'll give a go and share if it works

Awesome! I'll close this issue then. Feel free to reopen if you run into any more problems.

ok, got through some windows errors, but now have this:
<EMAIL_ADDRESS>prepublish D:\projects\rrum\node_modules\redux-responsive
 gulp build-production

00:35:40] Requiring external module -babel-core/register
:\projects\rrum\node_modules\redux-responsive\node_modules\babel-core\lib\transformation\file\plugin-manager.js:164
     throw new TypeError(messages.get("pluginNotTransformer", name));
     ^

ypeError: The plugin "typecheck" didn't export a Plugin instance

Hey Caleb, sorry it took me awhile to get back to you. I tried looking up your problem but couldn't find anything. Unfortunately, I'm not very familiar with Windows machines so I can't be much help :(
But hopefully you can figure it out - I'd love to see what you're working on!

Ok, thanks, it's probably something basic with javascript or config.


#2kwg0wf Global variables don't initialize from modules that are not imported in the main file

Summary or solution description
Refactored the importing process so that the Code Analyser of the entry file has access to all the imported files accessed during the compilation.
How to Reproduce
https://github.com/CityOfZion/neo3-boa/blob/014d6f7b4a704821b97bede84296409b6cafa870/boa3_test/test_sc/import_test/variable_import/VariableFromImportedModule.py#L1-L12
https://github.com/CityOfZion/neo3-boa/blob/014d6f7b4a704821b97bede84296409b6cafa870/boa3_test/test_sc/import_test/ImportUserClassInnerFiles.py#L1-L7
Tests
https://github.com/CityOfZion/neo3-boa/blob/014d6f7b4a704821b97bede84296409b6cafa870/boa3_test/tests/compiler_tests/test_import.py#L125-L143
https://github.com/CityOfZion/neo3-boa/blob/014d6f7b4a704821b97bede84296409b6cafa870/boa3_test/tests/compiler_tests/test_import.py#L378-L388
Platform:

OS: Windows 10 x64
Python version: Python 3.7

Task linked: CU-2kwg0wf Global variables don't initialize from modules that are not imported in the main file


can't add certificate for https here

it fails if i add listener like that:
  listener = [
    {
      instance_port     = "8020"
      instance_protocol = "HTTP"
      lb_port           = "443"
      lb_protocol       = "SSL"
      ssl_certificate_id = "${module.cert.cert_arn}"
    },
  ]

How exactly does it fail? Show the error message.

module.elb_new.aws_elb.this: "listener.0.instance_port": required field is not set
module.elb_new.aws_elb.this: "listener.0.instance_protocol": required field is not set
module.elb_new.aws_elb.this: "listener.0.lb_port": required field is not set
module.elb_new.aws_elb.this: "listener.0.lb_protocol": required field is not set

when i remove the ssl_certificate_id
or add it as static string, all good

It looks like the issue is in Terraform - https://github.com/terraform-providers/terraform-provider-aws/issues/48 .
You need to make sure that you create aws_iam_server_certificate before passing its value to ssl_certificate_id. You need to avoid using calculated values (eg, data sources, resources, modules), because Terraform does not build dependency between aws_elb and ssl_certificate_id values.
This code will work:
  listener = [
    {
      instance_port     = "8020"
      instance_protocol = "HTTP"
      lb_port           = "443"
      lb_protocol       = "SSL"
      ssl_certificate_id = "arn:aws:iam::815361859851:server-certificate/terraform-test"
    },
  ]

as well as this:
  listener = [
    {
      instance_port     = "8020"
      instance_protocol = "HTTP"
      lb_port           = "443"
      lb_protocol       = "SSL"
      ssl_certificate_id = "${var.cert_arn}"
    },
  ]
# ...
}
variable "cert_arn" { default = "arn:aws:iam::815361859851:server-certificate/terraform-test" }

Anton, question:
i create the whole core (vpc, sgs, elbs, subnets) in one play
but then i can't do it anymore because i need the cert first...
do you have an idea how to mange this?
thanks

@antonbabenko , are you saying it's impossible to create a monolithic config file for a service?


Option for disabling the karma (tests) using just a flag --nokarma

Example output with a flag:

@justame Please take a look if this is what you wanted.
# Dangerous code goes below. Use with precaution!
grunt serve:clean --nokarma

Actually the same stuff could be accomplished by temporary renaming on test from it to iit.

why do we need this?

@shahata Not required anymore. Previously we were trying to speed up the grunt:server when you modify only haml files and stylesheets and images. Closing this pull request now.


doc in english

!!!do not merge yet!!!
I started translation to english. let me know what is a good file structure (for now I just append -en to file names).

Thank you so much for your contributions :)
As for the translation, it'd be alright to focus on only the chapters like Getting Started, Functionality, and Cheat Sheet since Function List is generated automatically and other essays in Studying Design Tools are less relevant to the tool and still working-in-progress.

i think it's done for now :)

we need to edit README / README-en to include links to each other. Maybe, for example, get-started should have a link to get-started-en and vise versa?


Xiaomi X20+ how to integrate "cornerLessOmission"

xiaomi.vacuum.c102gl
par Dreametech™
Micrologiciel : 4.3.9_1083
With Xiaomi VES on Android and the 1018443 plugin, it's possible to make the robot move closer to corners, using the ‘cornerLessOmission’: ‘Focus on corners & edges’ parameter. And it's great.
https://www.youtube.com/watch?v=hHYvVXoPK2k
Is it possible to integrate this for Home Assistant? Thank you.

First of all, thank you very much for your lightning-fast response. And thank you again for the clear, well-argued explanation.


Add script for merging data sources

This PR adds a script merge_kg.py that uses KGX to merge data sources, as defined in sample-merge-config.yaml.
This is just to demonstrate how we can use KGX to merge and it can serve as a starting point for the process of building a KG.

@deepakunni3 if you want, we could merge this, and I could make another PR that does what I describe above - I don't want to interrupt all this progress!

@justaddcoffee Yes, I'll make the changes and push in a few mins 👍

+1 thanks @deepakunni3 !

@justaddcoffee Ready for review again

Looks great thanks @deepakunni3 !


Not working at all with Edge-Chrome

Hi.
I'm testing the plugin on https://apex.oracle.com/pls/apex/f?p=1448:5 and does not work at all.
All 3 numeric fields accept alpha characters, unless I did not understand how it works.

Edge Version 80.0.361.62

Hi, thanks Gaspar for test the plugin in Edge,
I rejects the alpha characters with Javascript, It seems that is not working on Edge or Internet Explorer browser, perhaps I have to investigate in order to give support to that browsers
Regards


Reduce the vertical strip width limit to 32px.  instead of default 64

Description of the new feature / enhancement
make a vertical panel - the way it should be
Scenario when this would be used?
when the panel is vertical - ugly :)
before https://imgur.com/a/MpqTKj2
after https://imgur.com/a/R6PsM6u
Supporting information
No response

You can go to Windows settings for task bar and use small icons. Which is exactly the result you want, if I'm not mistaken. Or maybe hide the task bar?
(Funny, just yesterday I tried a vertical task bar, also on the left)

You can go to Windows settings for task bar and use small icons. Which is exactly the result you want, if I'm not mistaken. Or maybe hide the task bar? (Funny, just yesterday I tried a vertical task bar, also on the left)

take a closer look at the "before" picture
such a result cannot be achieved just like that.

Please file on windows feedback hub. I do not believe this something powertoys team will do.


Sprint 2

Assignment
Points
Grade
Evidence

JSON Object & Arrays
1

Input and Output
1

Data Types
1

Square and Red Squares
2

Game Work
2

Total
7

Skill
Points
Grade
Evidence

Work Habits (Analytics)
1

Advocacy
1

Beyond Perfunctory Memory
1

Total
3

This Popcorn hack number 2 changing it to square

This popcorn hack 1 for popcorn hack 1 where we describe the function of [each

background/ RPG. Md code

forloops

Most of the notebooks are fully completed and done, but don't forget to fix the issue with your for loops notebook with the sprite sheet, as that isn't working. Also, remember to update your homepage with links to your work, as you will need to change the sites they are linking to to your own pages (+ don't forget to add every notebook in the notebooks section).

okay


refactor: improve the public interface by using triats

What does this PR do

Replace argument type &str with S: AsRef<str>
Replace argument type &[u8] with B: AsRef<[u8]

With the usage of traits, these public interfaces can accept more types, take S: AsRef<str> as an example, you can pass the following types to it:

&str
String
&String
...

and will thus be more ergonomic and rusty

BTW, there is a test failure:
test test_get_language_extensions ... FAILED

failures:

---- test_get_language_extensions stdout ----
-------------- TEST START --------------
thread 'test_get_language_extensions' panicked at 'assertion failed: `(left == right)`
  left: `[".py", ".cgi", ".fcgi", ".gyp", ".gypi", ".lmi", ".py3", ".pyde", ".pyi", ".pyp", ".pyt", ".pyw", ".rpy", ".spec", ".tac", ".wsgi", ".xpy"]`,
 right: `[".py", ".cgi", ".fcgi", ".gyp", ".gypi", ".lmi", ".py3", ".pyde", ".pyi", ".pyp", ".pyt", ".pyw", ".rpy", ".smk", ".spec", ".tac", ".wsgi", ".xpy"]`', tests/test_enry.rs:183:5
stack backtrace:
   0: rust_begin_unwind
             at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:593:5
   1: core::panicking::panic_fmt
             at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/panicking.rs:67:14
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed
             at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/panicking.rs:229:5
   4: test_enry::test_get_language_extensions::test_get_language_extensions
             at ./tests/test_enry.rs:183:5
   5: test_enry::test_get_language_extensions
             at ./tests/test_enry.rs:176:1
   6: test_enry::test_get_language_extensions::{{closure}}
             at ./tests/test_enry.rs:176:1
   7: core::ops::function::FnOnce::call_once
             at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/ops/function.rs:250:5
   8: core::ops::function::FnOnce::call_once
             at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

failures:
    test_get_language_extensions

But since this repo is just about bindings, it is probably something changed in the upstream


writing to files

this thread was on the how list. i don't think it was ever resolved. if it was, because it was not obvious, it deserves a page

execute script?

See the contents of file File in the LCB dictionary.  The actual name is FileContents

You should have chimed in on the thread on the How list...


Integrate SPICE into GLOWS L1B

Summary
Glows L1B requires some inputs from SPICE, including spacecraft location information. Once SPICE tools are completed, integrate them into GLOWS L1B.
Depends on SPICE tooling, so blocked for now.

The notes I took during our SPICE meeting indicated GLOWS needs the following list (checked items are available)
GLOWS Needs:
a. IMAP spacecraft	b.

[ ] Spin axis orientation
[x] Spin phase
[ ] Spin phase change rate
[x] Spacecraft position and velocity and their uncertainty

No uncertainty in SPK I don't know if uncertainty is possible - Tim

[ ] IMAP x, y, z axes and rates of change of those vectors (ECLIPJ2000)
[x] IMAP state vectors (position and velocity Relative to Sun, Earth)

b. GLOWS instrument

[ ] GLOWS spin phase
[ ] Instrument pointing at given time

Cartesian heliocentric coordinates in ecliptic reference system???


Override init and create usage template so that it uses "invoker" instead of "command".

Fixes #502
Fixes https://github.com/projectriff/riff/pull/518

should we move the command invoker into the core repo now?

I did too. But the markdown docs don't use the same templates apparently


Handling 'Unhandled Interrupts' blocks interface

I ran into following situation with setup:
Folie2 on RasPi -> BluePill/SerPlus -> JeeNode Zero
For some reason, which unfortunately i can't replay, the Jeenode Zero continuously sends 'Unhandled Interrupt 00000003 !'. Reset doesn't help because history repeats. I think the only way to come out of this loop is to put the Jeenode Zero in bootmode and reflash, but with this incoming datastream it's not possible to submit a new !u  command from Folie2.
I found following workaround:
•	Disconnect power to the Jeenode Zero
•	Start uploading a *.bin file from Folie2 ( f.i. Mecrisp)
•	Reconnect power to the JeeNode Zero.
Now communication starts and the new Mecrisp is loaded and works!!
Maybe Folie2 can force a bootmode if this datastream of Unhandled Interupts is received?

Glad you found a workaround! - This infinite loop can have several causes, and is probably worth figuring out in much more detail. Recent board.fs files include ../flib/mecrisp/calltrace.fs which turn such errors into a stack trace + hang, which is a lot more useful.
Maybe the best thing now is to rename this issue slightly and leave it open, to collect more examples and try and get a grip on what's causing them?

If calltrace.fs indeed always catches these unhandled interrupts then maybe we can close this issue?

Yes, I never get this anymore - the trick is to add this line to init:
['] ct-irq irq-fault !

Ok, I'll close this issue. But there is still a problem whereby a cornerstone is defined in RAM instead of flash, which then generates an exception when called. Let's just keep an eye on it and create a new issue for it when we have a better view of what's going on.


BILL-1786 removing IPS kb articles

deleting all IPS kb articles. A separate PR will cover all the redirects.

@RickCoxDev Can you take a look at this and see what I did wrong?

@RickCoxDev I think this is ready to go!


Use of Digital Trigger for Analog Acquisition

Is it possible to use the digital input trigger to start the acquisition of the analog channels? I know this is possible via Waveforms, but I would like to acquire data in a more defined fashion. The analog_in_record.py example uses either channel 0 or 1 for the trigger:
  scope[0].setup(range=5)
  scope.setup_edge_trigger(
      mode='normal', channel=0, slope='rising', level=0, hysteresis=0.01, position=-0.25
  )
  recorder = scope.record(sample_rate=100e3, length=2, configure=True, start=True)

Is there a way to change the trigger channel source to logic.setup_trigger(source='detector-digital-in')  or an equivalent digital pin?

Yes, you can access all trigger properties directly via the AnalogInputTrigger class.
scope.trigger.source = TriggerSource.DIGITAL_IN
scope.trigger.condition = TriggerSlope.RISE


refactor melody pattern into a global const to ease re-use

I would like to use the pattern to detect melody-style scripts before passing them over to melody.
An alternative implemenation could also be adding a new api.method which checks a source-string for the pattern, instead of publishing the pattern itself.

Thanks @staabm.


Unable to resolve module url from [path]/node_modules/ws/lib/WebSocket.js

Hi,
I created a new React Native v 0.42.0 project with the following libraries installed
react-native-ble: 1.0.8
bleat: 0.1.1
In addition to the welcome page. I added the two following lines to load the bleat and noble and an remote android tablet.
var noble = ('noble');
var bleat = require('bleat').classic;
Noble loads, but everytime I try to load bleat I get this error.
==============================================
The development server returned error code: 500
URL: http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false
Unable to resolve module url from [path]/node_modules/ws/lib/WebSocket.js
Module does not exist in the module map or in these directories
/node_modules/
===============================
Would you have any suggestions how I can fix this error?

That looks like an error with your websocket library, which I don't believe is anything to do with bleat.


refactor: improve requires_... strategy

Current approach is a bit sloppy. It would better for the install script to detect dependencies and first install the required script and then the script to install

fixed with #67


Fix panic when mouse is moved while buttons with id > 5 are pressed

SDL lib handles mouse buttons state as a bitmask where each bit
corresponds to a currently pressed button. Constants that map bits
to buttons are defined in C headers, but there are defines only
for the first 5 buttons (left, middle, right, X1, X2). SDL may still
set bits for buttons with num > 5 if they are present and pressed.
Current code runs from_bits(..).unwrap() on them and panics. This patch
replaces the code with from_bits_truncate() that ignores unknown bits.

I'll merge this once Rust starts working on my machine again :)

Cheers :)

Thanks )
BTW, I've not found a good way to preserve information about pressed buttons with id > 5. One possibility is to spam MouseState with additional 27 flags for "unknown" buttons. SDL doesn't define what those bits do and how they are named, so that would be undocumented interface extension that can break at any time (though highly unlikely). To use those bits user will have to look at wrapper's source code, since SDL docs won't be of any help. Another possibility is to leave it as it is now, but then information about some buttons is lost. Much better than crash, but is not ideal either. Better solution would be to have some kind of direct passthough in bitflags!, but it doesn't look possible with current implemenation. Do you have any thoughts on this?

For now, I think if it's undefined we shouldn't allow it - if people really need it, they can use the raw bindings to fish it out.

Oh, well, I haven't thought of using raw bindings. I agree, that solves the problem.

Once I get around to doing some proper documentation, we'll pop some notes in about what happens.


Error with Webpack building the site

Using Gatsby (newest version), when I try to use gatsby build on my site that uses this library, I get a build error:
error Building static HTML failed

See our docs page on debugging HTML builds for help https://gatsby.dev/debug-html

  773 |     if (windowLocalStorageAvailable()) {
  774 |       localStorage = window.localStorage;
> 775 |     } else if (window.globalStorage) {
      |      ^
  776 |       // Firefox 2-3 use globalStorage
  777 |       // See https://developer.mozilla.org/en/dom/storage#globalStorage
  778 |       try {

  WebpackError: ReferenceError: window is not defined

Currently, my fix is to just exclude the amplitude file when building HTML. It's happening because the window object doesn't exist at the stage of the build this occurs at.

You can make Webpack skip processing libraries that are not "SSR-ready" by adding a rule for it with a null-loader plugin: https://www.gatsbyjs.org/docs/debugging-html-builds/#fixing-third-party-modules


Setting up a Noray Instance

Hi there.
I've been developing my multiplayer game for several months now using the tomfol.io instance provided and it's been working great. The game is ready to alpha launch feature-wise, and I wanted to move over from your instance to a custom one that I handle myself.
Although I have followed the setup instructions on the noray repository, I can't have it working properly. I managed to connect to the Noray instance and "register_host". I'm getting both an OID and PID successfully. When it comes to the register_remote call, on the other hand, it times out (error 24). Seems like no packets come from the UDP relay.
I wonder if I'm doing something wrong/forgetting something, or something else entirely.
Could you provide some insight on the issue? Perhaps share your setup of the tomfol.io instance so we can replicate it?
As extra info, I've tried hosting the Noray instance using docker and also locally with pnpm. I've also changed the host to IPv4 (<IP_ADDRESS>).
Any help would be appreciated!

Hey, thanks for the quick reply!
I've tried both hosting it with docker (both locally and in a server), and locally with pnpm start.
I had already assumed I had to expose port 8809 so I had already tried that. I hadn't tried exposing the relay ports as well though.
Sadly, none of the solutions that you propose are working 😞. "network_mode: host" does not seem to be working at all weirdly enough, as in the service doesn't even respond to the "register-host" command anymore.
As an extra note, exposing 130 ports is indeed slow when docker starts. I wonder if it hinders general performance as well.
Any ideas?

Regarding the showcasing of the game, sure! Just need to make sure that it's stable and working before I publish the alpha. When that's done, I'll be glad to send a message and move it forward.

Gotcha, in that case let's debug with running through pnpm on localhost - I'm wondering where does the connectivity break. Try running noray with NORAY_LOGLEVEL=trace and then connect to it. If you get a Received UDP relay request, then the UDP packets arrive to noray, but it fails to relay for whatever reason.
If it doesn't arrive, then it's either a config issue ( noray is listening on a different address/port where the game is sending the packets ), or some mysterious network issue.
Also, do you get the same issue with Forest Brawl? Alternatively, how's your game using the noray addon?

Ok, good news!
Turns out that my local docker had issues with "network_mode: host", since I'm using Docker Desktop with WSL. If I try it on the external server, on the other hand, it works properly. So, I guess it was a config issue. I'll keep troubleshooting on my local computer just to figure it out for everybody else having the same issue as me.
Another possible bug I noticed now that I got it working:

Run the game via the Godot Editor
Connect to noray (I do it automatically for now)
Shut the game down using the Stop button in the editor
Noray server crashes with ECONNRESET.

If I shut down the game normally (by get_tree().quit(), or by pressing the X button on the main window) everything is fine.
For now, it's not a big issue for dev, because I could just "restart: always" the dev noray server. Nevertheless, it could cause problems in the future. LMK if I should post this as a different issue.

Thanks! Could you please file an issue under noray for the crash?

Hi, I'm using a similar setup (WSL + Docker) and running into the same issue when trying to connect via localhost. Were you able to figure out any solution besides moving to an external server? Thanks!

Hi @MattStory,
So to confirm, you're running noray locally from Docker, you're able connect to it from your game, get an OID/PID pair, but the game fails at registering the remote address?
Some ideas for troubleshooting:

Is traffic getting through to the remote registrar? This is by default on port 8809

If that's working, you should see "Received UDP relay request" debug log messages
Note that you might need to run noray with NORAY_LOG_LEVEL=debug to see these logs
If traffic doesn't get through, check if the remote registrar port is exposed from the container

Are the remote address registrations failing?

Check the value of the noray_remote_registrar_fail metric at http://localhost:8891/metrics
If something somehow fails even more catastrophically, you should see some error messages in the logs

Is the relay failing?

If relays get lost for whatever reason, noray will drop their traffic
Check the value of the noray_relay_drop_count metric at http://localhost:8891/metrics

Hope I'm not adding to this unnecessarily, but since I've also struggled to set up a docker instance I noticed some issues in the documentation of the docker instance:
The udp port is never mentioned in the docs and not exposed as an udp port with 8809/udp. Additionally, the docker command shown and the ports set up in the .env.example are vastly different. The udp port range is never exposed at all and shouldn't work as far as I'm aware unless also specifically exposed (which can make creating the instance take a lot longer, like ~142 seconds all of a sudden). I would also suggest setting the TCP connection port and UDP registar port to the same port to save up and avoid any confusion as there is no reason not to use the same port with different protocols.

Closing issue as there hasn't been much discussion in a while. The linked PR has been merged to update the noray README.


Scheduling hangs due to duplicate scheduling specification ID

Checked for duplicates
Yes - I've already checked
Is this a regression?
Yes - This worked in a previous version
Version
1.6.0
Describe the bug
When running scheduling our database got into a state where scheduling would fail with this error in the scheduler_worker log:
Exception in thread "main" java.lang.Error: Claiming a scheduling request for specification id 100 returned more than one result row.

Reproduction
Not sure yet how to reproduce. We are rebuilding the database to try again.
Logs
[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
[main] ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
com.impossibl.postgres.jdbc.PGSQLSimpleException: Connection Error: Connection refused: postgres/<IP_ADDRESS>:5432
	at com.impossibl.postgres.jdbc.ErrorUtils.makeSQLException(ErrorUtils.java:138)
	at com.impossibl.postgres.jdbc.ConnectionUtil.createConnection(ConnectionUtil.java:326)
	at com.impossibl.postgres.jdbc.AbstractDataSource.createConnection(AbstractDataSource.java:125)
	at com.impossibl.postgres.jdbc.PGDataSource.getConnection(PGDataSource.java:71)
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359)
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100)
	at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)
	at gov.nasa.jpl.aerie.scheduler.worker.SchedulerWorkerAppDriver.main(SchedulerWorkerAppDriver.java:58)
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: postgres/<IP_ADDRESS>:5432
Caused by: java.net.ConnectException: Connection refused
	at java.base/sun.nio.ch.Net.pollConnect(Native Method)
	at java.base/sun.nio.ch.Net.pollConnectNow(Unknown Source)
	at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source)
	at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330)
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:707)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "main" com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Connection Error: Connection refused: postgres/<IP_ADDRESS>:5432
	at com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:596)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:582)
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100)
	at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)
	at gov.nasa.jpl.aerie.scheduler.worker.SchedulerWorkerAppDriver.main(SchedulerWorkerAppDriver.java:58)
Caused by: com.impossibl.postgres.jdbc.PGSQLSimpleException: Connection Error: Connection refused: postgres/<IP_ADDRESS>:5432
	at com.impossibl.postgres.jdbc.ErrorUtils.makeSQLException(ErrorUtils.java:138)
	at com.impossibl.postgres.jdbc.ConnectionUtil.createConnection(ConnectionUtil.java:326)
	at com.impossibl.postgres.jdbc.AbstractDataSource.createConnection(AbstractDataSource.java:125)
	at com.impossibl.postgres.jdbc.PGDataSource.getConnection(PGDataSource.java:71)
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359)
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
	... 3 more
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: postgres/<IP_ADDRESS>:5432
Caused by: java.net.ConnectException: Connection refused
	at java.base/sun.nio.ch.Net.pollConnect(Native Method)
	at java.base/sun.nio.ch.Net.pollConnectNow(Unknown Source)
	at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source)
	at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330)
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:707)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at java.base/java.lang.Thread.run(Unknown Source)
[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
[main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.impossibl.postgres.jdbc.PGDirectConnection@5876a9af
[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
[main] INFO io.javalin.Javalin - Starting Javalin ...
[main] INFO org.eclipse.jetty.server.Server - jetty-11.0.12; built: 2022-09-14T02:38:00.723Z; git: d5b8c29485f5f56a14be5f20c2ccce81b93c5555; jvm 19.0.2+7
[main] INFO org.eclipse.jetty.server.session.DefaultSessionIdManager - Session workerName=node0
[main] INFO org.eclipse.jetty.server.handler.ContextHandler - Started i.j.j.@4d18aa28{/,null,AVAILABLE}
[main] INFO org.eclipse.jetty.server.AbstractConnector - Started<EMAIL_ADDRESS>(http/1.1)}{<IP_ADDRESS>:8080}
[main] INFO org.eclipse.jetty.server.Server - Started Server@1e636ea3{STARTING}[11.0.12,sto=0] @1614ms
[main] INFO io.javalin.Javalin -
       __                  ___          ______
      / /___ __   ______ _/ (_)___     / ____/
 __  / / __ `/ | / / __ `/ / / __ \   /___ \
/ /_/ / /_/ /| |/ / /_/ / / / / / /  ____/ /
\____/\__,_/ |___/\__,_/_/_/_/ /_/  /_____/

       https://javalin.io/documentation

[main] INFO io.javalin.Javalin - Listening on http://localhost:8080/
[main] INFO io.javalin.Javalin - You are running Javalin 5.1.2 (released October 24, 2022. Your Javalin version is 226 days old. Consider checking for a newer version.).
[main] INFO io.javalin.Javalin - Javalin started in 253ms \o/
[PG-JDBC I/O (1)] INFO gov.nasa.jpl.aerie.scheduler.worker.ListenSchedulerCapability - Received PSQL Notification: 470, scheduling_request_notification, {"specification_revision":33,"specification_id":100,"analysis_id":29}
Exception in thread "main" java.lang.Error: Claiming a scheduling request for specification id 100 returned more than one result row.
	at gov.nasa.jpl.aerie.scheduler.server.remotes.postgres.PostgresResultsCellRepository.claim(PostgresResultsCellRepository.java:77)
	at gov.nasa.jpl.aerie.scheduler.worker.SchedulerWorkerAppDriver.main(SchedulerWorkerAppDriver.java:85)
[PG-JDBC I/O (1)] INFO gov.nasa.jpl.aerie.scheduler.worker.ListenSchedulerCapability - Received PSQL Notification: 470, scheduling_request_notification, {"specification_revision":4,"specification_id":108,"analysis_id":30}
[PG-JDBC I/O (1)] INFO gov.nasa.jpl.aerie.scheduler.worker.ListenSchedulerCapability - Received PSQL Notification: 691, scheduling_request_notification, {"specification_revision":5,"specification_id":108,"analysis_id":31}

System Info
Chrome, MacOS

Severity
Moderate

I have seen the same happening when attaching a debugger for too long : https://jpl.slack.com/archives/CJ07FGRPH/p1685147826066289

Just to have it documented here, after briefly looking with @Mythicaeda at this, it looks like the UI is polling the schedule function to get a status. If that status is not "complete" or "failed", it will keep polling every 500 ms until those conditions are met.

Just to have it documented here, after briefly looking with @Mythicaeda at this, it looks like the UI is polling the schedule function to get a status. If that status is not "complete" or "failed", it will keep polling every 500 ms until those conditions are met.

That is accurate :+1: This should not result in a new request unless the scheduling specification's revision has changed in the interrim.
Here is the "claim" logic - looks like if there are multiple pending requests for the same specification_id, this query will return multiple rows:
https://github.com/NASA-AMMOS/aerie/blob/2a3b67cae5a333d83f3c1d52895fd170f9ff71dd/scheduler-server/src/main/java/gov/nasa/jpl/aerie/scheduler/server/remotes/postgres/ClaimRequestAction.java#L10-L13
A happy path is:

Issue scheduling request 1
Scheduling worker claims request 1
Modify scheduling specification
Issue scheduling request 2
Scheduling worker claims request 2

(Steps 2 and 3 can switch places without triggering this bug)
The sad path is:

Issue scheduling request 1
Modify scheduling specification
Issue scheduling request 2
Scheduling worker tries to claim both requests and gets confused

The simulate action, which works similarly, doesn't have the same vulnerability; the simulation worker's query filters by dataset_id, which can return at most one row, because the dataset_id is constrained to be unique:
https://github.com/NASA-AMMOS/aerie/blob/2a3b67cae5a333d83f3c1d52895fd170f9ff71dd/merlin-server/src/main/java/gov/nasa/jpl/aerie/merlin/server/remotes/postgres/ClaimSimulationAction.java#L11-L14

That is accurate 👍 This should not result in a new request unless the scheduling specification's revision has changed in the interrim.

I took another look into this, and it looks like everytime a scheduling request is made, the spec's revision is incremented for some reason.

When scheduling from the UI we first update the specs plan_revision, which I'm assuming is causing the revision field to increment?
Yeah, exactly

Regarding the plan_revision column on the scheduling spec table: what's the purpose of this column? I understand why it's useful on the scheduling rq table, but the spec's revision history is unrelated to the plan's revision history.

what's the purpose of this column?

AFAIK it exists to tell the scheduler what plan revision to schedule to (that's how we use it on the front-end at least).

Just noting that I verified smashing on the schedule button in the UI easily reproduces this error.

AFAIK it exists to tell the scheduler what plan revision to schedule to (that's how we use it on the front-end at least).

By this do you mean it's used to fill in the plan_revision column on the requests table or something else? If it's the former, then maybe we should have the schedule action fetch that data rather than having the UI/API users maintain it on the spec table, especially since there's already code in the scheduler server to fetch the revision data.

By this do you mean it's used to fill in the plan_revision column on the requests table or something else?

I don't see a plan_revision on the scheduling_request table, are we talking about the same thing?

I don't see a plan_revision on the scheduling_request table, are we talking about the same thing?

Huh, you're right, must've been thinking of sim_dataset. Why isn't plan_revision on scheduling_request?

Why isn't plan_revision on scheduling_request?

Historically the "scheduling specification" has been used as input to the scheduler to associate scheduling configuration with plans, where the scheduling request is more like an output record. It made more sense when we we also had a "scheduling template" to associate scheduling configuration with models, but we descoped that.

We discussed this briefly in a huddle, and agreed on the following path forward:

We will refactor the scheduler's tables' schema by moving the plan_revision column from scheduling_specification to scheduling_request. It will become part of the unique key on scheduling_specification
We will implement an auto-cancel trigger, when a new scheduling request comes in, it will cancel the previous scheduling request for the same specification, provided that the plan_revision is different


Backport: Project edit view has missing name of AzureAD group added to it

backport  https://github.com/rancher/rancher/issues/18425

Available in master and ui tag 2.2.31

Can be tested on rancher/rancher:v2.2.2-rc1

Replication Steps:
v2.2.1

Create any cluster. Enable Azure AD Auth.
Edit a project (such as Default, does not matter) Add an Azure AD group to members list such as Project member. Save.
Edit that project again. Now you'll see the issue -- the group name is blank as pictured below.

Verification Steps:
v2.2.2-rc1

Create any cluster. Enable Azure AD Auth.
Edit a project (such as Default, does not matter) Add an Azure AD group to members list such as Project member. Save.
Edit that project again. Now you'll see the issue IS FIXED as pictured below we see the group name:

Ignore that you see a different project owner in the first screenshot. That was a unique project that I had tested with before for another issue. I remove that user,  created a new project and still replicated in v2.2.1


There's no limit on the sidebar size

Context
If you create an environment with a very long name, the sidebar will scale to accommodate it.
I think there should be limit on how big this is rendered.
Yes, I understand it's an extreme example, but there might be envs with long names.

Value and/or benefit
Better UX.
Anything else?
No response

I added an example case for a long environment name. The environment name should be truncated when number of characters is more than 30, and an ellipsis (...) should be appended at the end. The max characters we can display is 30 + ellipsis

The said truncation should also happen wherever the env name is printed (such as in the tabs bar and above environment metadata). Otherwise, it hides the close tab button (x):

A quick fixup might be using the max-width: 20px; in CSS, in one of the sidebar divs. This is shown on the screenshot above, but the proposed design above looks way better.


Allow partially erasing date by keyboard without moving rest of date string

Is your feature request related to a problem? Please describe.
Deleting characters in the middle of a date/time/datetime string through the keyboard results in the rest of the string shifting left.

https://material-ui-pickers.dev/demo/datepicker

Describe the solution you'd like
I'd like to able to edit parts of the date and time without the rest of the date/time/datetime being affected. This is the standard behavior for most datepickers and the keyboard pickers used by Material-UI result in unexpected behavior for users.
This is a demo of the desired behavior, using the native picker.
https://material-ui.com/components/pickers/

Yes, this is a very bad user experience.
When nothing is selected but cursor is in the field:

DEL sets the next figure to "_" or the letter representation of the figure ("d", "m", "y"). I don't know if the cursors position should change or stay where it was?
backspace sets the previous figure to "_" or the letter representation of the figure. The cursor should move 1 figure back.

When some figures are selected then:

DEL should put all these figures to "_" or letter representation of the figures. Not sure where the cursor position should end?
backspace should put all these figures to "_" or letter representation of the figures. The cursor should be set to the beginning of the selection.

Already fixed in v4-alpha👨🏭


Docker images not found

When trying to use the latest two releases (November 14th and June 26th), the images inside docker-compose.yml don't seem to be available.
This has been checked from two different networks. Also, I don't seem to find the tags in here https://hub.docker.com/r/stefanprodan/swarmprom-grafana/tags/

Any ideas?

I've updated the stack to Prometheus 2.5 and pushed the new images, can you please try it out and see if it works?
Thanks

Does not work, because there is a wrong ref in docker-compose.yml to:
grafana:
    image: stefanprodan/swarmprom-grafana:5.1.0

I changed it and created pull request.
Unfortunately it still doesn't work on my VM. Docker logs:
docker service logs mon_grafana

.. says something like:
GF_PATHS_DATA='/var/lib/grafana' is not writable.

You need to delete the stack because Grafana changed the user id mare info here: https://github.com/stefanprodan/dockprom#updating-grafana-to-v522

Thanks. I fixed it by deleting the volume "mon_grafana". Not a good way, but works for my one day old stack.

This all looks alright from last commit bfc3cf7. Closing the issue.
Thanks for the quick reaction!


readme doesnt show how to request location - howto generate 'send location' button ?

howto generate 'send location' button ?
Please give me an example :)
and maybe add it to the readme file...
Thank You

I read somewhere that all messenger api functions are available in fbmq.
So what am i doing wrong? since i cant do this?


Allow index.css.php files to be processed and read?

This is more of an enhancement, or a support question if you already have it
handled.

I'm currently using php to generate my css files, so I can define things like
colors and custom fonts in php and include it in the document where its
required.

This works great after I setup apache to server the files w/o the php
extension, all they get is index.css.

But for minify, how would I go about processing the index.css.php file and then
feeding it into minify to cache the pages?

I'm doing the same thing for my js files.

If there isn't a solution, I'll have to create a script to produce the
index.css file from index.css.php and then run minify on it and not reference
the index.css.php anymore.

Thanks, let me know,
Jason.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 1 Feb 2012 at 8:28

Check the wiki for CustomSource. Apache has to execute you script and because
it's dynamic you have to have a caching strategy.

Original comment by<EMAIL_ADDRESS>on 2 Feb 2012 at 11:28

Changed state: Invalid


Add a quick fix to wait for utag before tracking first ad impression

The problem is that utag is undefined when the page loads because it is loaded at the bottom of the page. Napkyn says "ideally [utag] init should be as close to the opening <body> tag as possible."
Therefore, I've added a setTimeout to wait until utag has been defined and then load the first add and track the impression. There may be a better way to do this, but for now, I believe this will do the trick.

Clever, clever. :+1:


Intellij IDEA plugin for getter and setter for each Property annotated field, like lombok.

@Property annotation will create;
XXX getXXX();
void setXXX(XXX xxx);
methods for each field that has property annotation.

The set method contains:
this.field_name = new_value;
this.set("field-name", new_value);


Support for multiple files and user-specified templates

I have a reporting system that requires one file per Nessus plugin to be created in a directory, and for the contents of the files to be defined by a user-specified template. For example, I would like to be able to pass into Risu two flags -d <dirname> and -t <filename>, with <dirname> being a directory that may or may not exist, and <filename> being a text file written in a template language such as Liquid.
Ideally, the template language would have access to a data structure containing the aggregated results of all runs of the plugin over all hosts so that it would be possible in the template to write pseudocode such as:
#+FILENAME: {{ plugin.name | downcase | replace: " ", "_" }}.tex
\section{Affected Hosts}
\begin{itemize}
{% for host in plugin %}
  \item {{ host.ip }}:{{ host.port }}
{% endfor %}
\end{itemize}

With the value of FILENAME being used to create <dirname>/<FILENAME>, though the exact syntax of that specifier is not important, I just stole it from Org-mode.

Interesting. Seems doable. You mention liquid templates is there any others that would be required?

Liquid just happens to be what I'm familiar with, but anything that supports loops, conditionals, and indexing through multiple layers will work. For my purposes I need a per-plugin object that contains all hosts and results, but I suspect others would find a per-host object useful as well. If it helps, an example of a real-world output file (that I currently write per hand) is:
\begin{finding}{plugin_name_here}
  \findingsection{Description}
  \par plugin_description_here

  \findingsection{Solution}
  \par plugin_solution_here

  \findingsection{Affected Hosts}
  \begin{itemize}
  \item ip_1
  \item ...
  \item ip_N
  \end{itemize}
\end{finding}

Ok. I will see what I can do after work.

Personally, I don't require this anymore. We've developed our own custom parsing and templating system in the meantime.


Adding new projects has not supported temporarily

@wesleytodd
According to https://github.com/expressjs/expressjs.com/pull/1103#issuecomment-586562680 we should delete this description that does not waste the time developers who want to add new project here.

Awesome!! Thanks for doing this!  I will let this sit for a few days in case one of the other maintainers raises an objection.  But otherwise, LGTM.

Thanks for the PR @anton-marchenko ... I agree it makes sense remove the information that's not specifically about Express, since it just increases the doc. maintenance burden.
Note that  several other pages have similar text:

http://expressjs.com/en/resources/companies-using-express.html
http://expressjs.com/en/resources/template-engines.html

We should probably make similar changes on those pages.


A Second Page and a Link

https://redwoodjs.com/tutorial/a-second-page-and-a-link
yarn redwood generate page about

~/desktop/redwoodblog
$ yarn redwood generate page about
yarn run v1.21.1
$ /Users/tagawahirotaka/Desktop/redwoodblog/node_modules/.bin/redwood generate page about
  ✔ Generating page files...
    ✔ Successfully wrote file `./web/src/pages/AboutPage/AboutPage.stories.js`
    ✔ Successfully wrote file `./web/src/pages/AboutPage/AboutPage.test.js`
    ✔ Successfully wrote file `./web/src/pages/AboutPage/AboutPage.js`
  ✔ Updating routes file...

https://github.com/wafuwafu13/redwoodblog/commit/db9c7eeb9dda8ffb6b6cdaf318df982476ff31c9


Removing useless call to fs/path for defining a pseudo Version

Removing useless call to fs/path for defining a pseudo Version

Detailed Description

This patch also enable this Module to work in the Browser.
This also add a minor patch to loras that add the "is_version" field

Why this is needed
The first part allow people to use that module in the Browser (because fs/path are Nodejs related), supermap don't need any NodeModule so it work well.
The second part just add the "is_version" field on Loras, it was recently added the 2 January, and it can be usefull ^^

Completely removing the version is not acceptable.

Completely removing the version is not acceptable.

Then you could enforce User to put their Own Version no, this option don't need to be optionnal i guess

Also this seem to be only used to define a "VERSION" field, that doesn't rely with the Horde itself

Also this seem to be only used to define a "VERSION" field, that doesn't rely with the Horde itself

The version field is used so clients like the official discord bot can display which version of the package they are using.

Optionally you could add a check to see if the package is used in the browser and then not load the version

Has the latest commit been tested?

Has the latest commit been tested?

It need to be tested actually

It may not throw any Errors but it doesn't load the package version in NodeJS.

It may not throw any Errors but it doesn't load the package version in NodeJS.
It's fixed i just added a Minor fix ! Sorry (I need to refactor that a bit)

Alright, I confirmed that it is working.
I accept this solution

Before I merge though please don't format the code with your personal code styling in future pull requests.


Cannot register LaunchAgent

When starting hotel, I get:
/Users/finn/Library/LaunchAgents/hotel.plist: Operation not permitted
When visiting http://localhost:2000 , I get:

Hi @tonekk,
Thank you for reporting, this is the first time I see this issue, so it would be helpful if you could you run a few commands and paste the output?
ls -la /Users/finn/Library/LaunchAgents/ to check hotel.plist permissions.
cat /Users/finn/Library/LaunchAgents/hotel.plist to check that everything points to the correct path.
And could you get the output of ~/.hotel/daemon.log also, there should be some errors just after you run hotel start.
Finally, it would be interesting to run manually launchctl load /Users/finn/Library/LaunchAgents/hotel.plist (this is what hotel start does).
I suspect there might be some permissions issues.

Closing it. Feel free to open it again if you still have the issue.

@typicode Got the same thing on a clean install.  I found that if I open a new terminal tab, the command runs w/o issue.

Hi @clekstro,
Thanks for the report, I don't really know why it's happening and it's strange that it works with a new tab.
Do you use sudo at some point like sudo npm install hotel -g?
I wonder if it's related to some rights issues or the content of the .plist file. If you get the issue again, could you run:
ls -la ~/Library/LaunchAgents/
cat ~/Library/LaunchAgents/hotel.plist

@typicode I am running into this exact issue as well. Here's the permission for the .plist file
-rw-r--r--  1 tnguyen staff         586 Aug 25 22:08 hotel.plist

Here's the content of the file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>hotel</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/node</string>
    <string>/usr/local/lib/node_modules/hotel/lib/daemon</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>StandardOutPath</key>
  <string>/Users/tnguyen/.hotel/daemon.log</string>
  <key>StandardErrorPath</key>
  <string>/Users/tnguyen/.hotel/daemon.log</string>
</dict>
</plist>

Starting it on a new tab gives me localhost:2000 working, but hotel.dev is still not working.

This is related to tmux. You have to start hotel on another terminal

I'm not using tmux and am getting the same issue.
bash-3.2$ npm install -g hotel && hotel start

><EMAIL_ADDRESS>uninstall /usr/local/lib/node_modules/hotel
> node bin/uninstall.js

/usr/local/bin/hotel -> /usr/local/lib/node_modules/hotel/lib/cli/bin.js
/usr/local/lib
└──<EMAIL_ADDRESS>
/usr/local/lib/node_modules/hotel/node_modules/yargs/yargs.js:1078
      else throw err
           ^

Error: EACCES: permission denied, open '/Users/rickysmith/Library/LaunchAgents/hotel.plist'
    at Object.fs.openSync (fs.js:584:18)
    at Object.fs.writeFileSync (fs.js:1314:33)
    at add (/usr/local/lib/node_modules/hotel/node_modules/user-startup/lib/startup/darwin.js:43:6)
    at Object.create (/usr/local/lib/node_modules/hotel/node_modules/user-startup/lib/startup/darwin.js:51:14)
    at Object.start (/usr/local/lib/node_modules/hotel/lib/cli/daemon.js:22:11)
    at Object.handler (/usr/local/lib/node_modules/hotel/lib/cli/index.js:77:19)
    at Object.self.runCommand (/usr/local/lib/node_modules/hotel/node_modules/yargs/lib/command.js:231:22)
    at Object.Yargs.self._parseArgs (/usr/local/lib/node_modules/hotel/node_modules/yargs/yargs.js:990:30)
    at Object.get [as argv] (/usr/local/lib/node_modules/hotel/node_modules/yargs/yargs.js:930:19)
    at module.exports (/usr/local/lib/node_modules/hotel/lib/cli/index.js:80:467)

The hotel.plist file does not exist in ~/Library/LaunchAgents/

In my case, my local user didn't own ~/Library/LaunchAgents.
The fix: sudo chown whoami /Users/whoami/Library/LaunchAgents

Same problem to me.


docs - project readme with technical cli user reference

From #76: List supported services.

Add description:

Need to add documentation to the DockerHub page too.

Need to add documentation to the DockerHub page too.

Have it on GitHub and link to it from DockerHub... o/w will have to double the maintenance (or to neglect one, which often happens).


fix: missing hashed storage entries

Found it while working on https://github.com/paradigmxyz/reth/pull/994
Some entries were missing from HashedStorage. Turns out we were inserting them into a BTreeMap, while using the Account's Address as key. As the same Address can have multiple StorageEntrys, these were treated as duplicates, leaving Accounts with missing storage entries.

I expanded the seeding to allow for accounts with more than one different storage keys. That should include this case.


Crash when receiving two confirmable responses with same message ID & token

Hi,
I'm getting a crash with a long running process that happens very rarely. I've been able to write a test that shows the crash:
https://gist.github.com/neich/b4788c093a100ade7cfe
It seems that if by accident you receive two CON responses with the same message ID & token, it crashes with the second because the library believes is an observable request: there is a req.response from the previous response, but it an OutgoingMessage, an not an ObservableStrem, so .append() fails.
Right now I've solved with this:
  if (req.response) {
    if (req.response.append) {
      // it is an observe request
      // and we are already streaming
      return req.response.append(packet)
    } else {
      // TODO There is a previous response but is not an ObserveStream !
      req.response = null
    }

but I'm not sure if it's right. Should I PR?

Yes please :)


Some minor README changes

Adds yaramail logo
Centers main project elements such as the logo and badges
Adds formatting around the project name

Thanks!


Breakpoints not hit when debugging jest with inspector

VSCode Version: 1.12.2
OS Version: Win 10

I had existing nodejs project setup with debug launch configuration as below:
        {
            "type": "node",
            "request": "launch",
            "name": "Jest Tests",
            "program": "${workspaceRoot}\\node_modules\\jest\\bin\\jest.js",
            "args": [
                "-i"
            ],
            "preLaunchTask": "build",
            "sourceMaps": true,
            "internalConsoleOptions": "openOnSessionStart",
            "outFiles": [
                "${workspaceRoot}/dist/**/*"
            ],
            "envFile": "${workspaceRoot}/.env"
        }

When I debug with node 6.10.3 the latest LTS version which is recommend for VScode the debugging works correctly.  Output command generated by vscode shown below:
Debugging with legacy protocol because Node.js v6.10.3 was detected.
node --debug-brk=31454 --nolazy node_modules\jest\bin\jest.js -i

However, I updated to node 8 and ran the same launch configuration and stopped hitting the breakpoints. Output of command generated:
Debugging with inspector protocol because Node.js v8.0.0 was detected.
node --inspect=11120 --debug-brk node_modules\jest\bin\jest.js -i
Debugger listening on ws://<IP_ADDRESS>:11120/5bc05720-def6-451b-8658-fe128d2ea624
For help see https://nodejs.org/en/docs/inspector
(node:7960) [DEP0062] DeprecationWarning: `node --inspect --debug-brk` is deprecated. Please use `node --inspect-brk` instead.
(node:7960) [DEP0062] DeprecationWarning: `node --inspect --debug-brk` is deprecated. Please use `node --inspect-brk` instead.

My debug configuration is a little unconventional/more complex than normal use case since i'm using VScode debugger to invoke jest library which then dynamically loads test files as opposed to the more normal scenario of directly targeting the entry point to server startup or library file.
I think it would be nice to start with smaller project to see if I could reproduce but this is in a simpler scenario without Jest involved but this is the info i have now.

https://github.com/Microsoft/vscode/issues/27731

Tagging @weinand since he was helping me out in the Gitter chat.

Can you try debugging with Node 6.10, and "protocol": "inspector" and tell me what happens?

Using "protocol": "inspector" did not work and was actually worse.  It did not hit breakpoints, but also it appears that it is not even executing jest.  I don't see any test results output when using that protocol.
Command that was generated:
node --inspect=27933 --debug-brk node_modules\jest\bin\jest.js -i
Debugger listening on port 27933.
Warning: This is an experimental feature and could change at any time.

Hm, I haven't used jest before. Is this a project that I can try out?

Yea, it's an open source project: https://facebook.github.io/jest/
I think it was internal at Facebook for a while, and they did some major updates a few months back to make it more easily consumable publicly and it's quickly becoming standard for testing.  It basically combines and improves all the best features of the existing frameworks like jasmine, mocha, etc...  such as having async support for all methods, and built in coverage reporting which were usually add-ons to others.  I think they use jasmine internally use for the assertions, mocking and stuff but add some other helper syntax to make things little more friendly.
If there is a better way to debug jests tests I can try that as well.  The jest docs recommend a different approach which uses chrome, but the work flow is really poor and I wanted to do it in VScode.
I created video demonstrating: https://www.youtube.com/watch?v=OSA1t3y3Mns&lc=z122wrno3pvydrzmd22lvbnggza5cdruq and this pattern was working for node 6 and stopped working with node 8.
It seems like either this is a non-issue (debugging actually works fine with node 8 but my particular combination of launch config and jest config is causing problems) or maybe issue of VScode debugger not properly attaching to node debugger.
If there is alternate more appropriate way to test using jest with vscode I will try it.  This was just the most straight forward solution I could think of.  All TypeScript is built and output to dist folder, jest is configured to look at files in dist folder, debugger invokes jest in interactive (sequential) mode

I actually meant, can I try your jest project, in case there's some problem specific to your particular project?

Yea, project i was playing on was here: https://github.com/mattmazzola/interview-questions

Trying it, I can't get it to work with chrome devtools either. The -i flag would be necessary, but it's like it doesn't work because I don't even hit 'debugger' statements in code.
Seems like there are other issues too? https://github.com/Microsoft/vscode/issues/19566#issuecomment-301254539
I see the official guidance for debugging which uses the legacy debug protocol in node (via --debug), but Node 8 doesn't have that protocol. So I wonder what the official recommendation is for debugging jest in Node 8.

FYI, If you look inside the comments of reference issues in Jest library they closed this saying it is issue with Node:
https://github.com/nodejs/node/issues/7593
Given that new information, it seems this is confirms to not be an issue with VSCode, and also not an issue with Jest, but a limitation of node debugging when using the special vm context stuff.  This issue can be closed

@mattmazzola thanks for the upstream issue.

set "type": "node", will fix this issue

@roblourens I just fixed my Jest debugging setup nightmare by downgrading Node 8 to 7.10.1 as there appear to be issues with the inspector protocol like you mentioned. Details on SO:

Debugging Jest unit tests with breakpoints in VS Code with React Native
How to debug jest test with code maps

Can do some real work now, and getting nice debugger experience that I remember from old .NET days :)

@aschrijver Does not work for me either

@ds82 My previous comment appears wrong.  VS Code probably working properly. But now it focuses on Jest: https://github.com/facebook/jest/issues/4028#issuecomment-315273833 and its use in Ignite CLI: https://github.com/infinitered/ignite/issues/1107
I'll update SO and issues with my findings.

same as @aschrijver, forced to downgrade Node 8 to 7.10.1 to be able to debug my jest tests.

Same issue, downgrade Node 8 to 7.10.1 make Jest debug work.

I was unable to use breakpoints with a launch configuration similar to @mattmazzola's under Node 8.3.0, and upgrading to Node 8.4.0 (and Code 1.15.1) fixed this issue for me. So I believe this is now resolved upstream.

I had the same issue (downgraded to 7.10.1 -- where I got it working but only after pre-compiling ts -> js and using a custom jest config when debugging).
Its now working for me on node/8.5.0 while using runtime compilation with ts-jest.  Magic!
I am seeing an issue still though -- there is no console output in the debug console (or anywhere else) -- makes it hard to see whether the test case actually passes/fails.
Is this a bug or expected behavior?  Is there a way to see console output while debugging?

@breathe, you can try adding "console": "integratedTerminal" to your launch.json configuration. This has enabled me to get console output when debugging Jest tests.

"console" : "integratedTerminal" works for me for this.  Its not at all clear to me as a user why the debugger console configuration's exist as they do ...  It would be great if vscode could motivate the reasoning behind these options to help users understand why they exist/when they might be needed ...  I guess its useful sometimes to unclutter the debugger output stream?  Seems like it would be nice to have the console output from the debugged program available somewhere in the ui though even if you didn't want it in the debug console ...

I was running with Node 8.1.4 and it wasn't working. With Node 8.6.0, I can debug.
I have found two different launch.json configuration to make it works with VsCode
    {
            "type": "node",
            "request": "launch",
            "name": "Jest 1",
            "program": "${workspaceRoot}/node_modules/jest/bin/jest",
            "args": [
                "-i"
            ],
            "preLaunchTask": "tsc: build - tsconfig.json",
            "internalConsoleOptions": "openOnSessionStart",
            "console": "integratedTerminal",
            "outFiles": [
                "${workspaceRoot}/build/dist/**/*"
            ],
            "envFile": "${workspaceRoot}/.env"
        }

and
     {
            "name": "Jest 2",
            "type": "node",
            "request": "launch",
            "program": "${workspaceRoot}/node_modules/jest-cli/bin/jest.js",
            "stopOnEntry": false,
            "args": [
                "--runInBand"
            ],
            "cwd": "${workspaceRoot}",
            "preLaunchTask": null,
            "runtimeExecutable": null,
            "runtimeArgs": [
                "--nolazy"
            ],
            "env": {
                "NODE_ENV": "test"
            },
            "console": "integratedTerminal",
            "sourceMaps": true
        }

I am hitting breakpoints in my Jest spec with this configuration, however, I am not able to hit break points in the imported source. Any ideas why that might be the case? Thanks.

@pebanfield I'm seeing similar behavior.

I noticed an error on the breakpoint. It says "Breakpoint ignored because generated code not found (source map problem?).
I am using babel-jest. My understanding what that babel-jest should be generating the source maps? I am also generating source maps via a webpack build, but these should not really be involved. It's not clear how I can correct this in the VS Code configuration? Where do I see where to set the path? And is there a way to see what path is incorrect so that I can have a chance of fixing it?