Send all events from event loop to subscribers

ping @tonistiigi

LGTM
Some of the produced events, for example getContainer is a bit weird now as it doesn't modify any state. Also exit,delete,stopStats all happen after each other so are not really useful as 3 separate events. But we can think about these cases later.

Actually, this does not solve one of my main use cases where I need to get an event for container state changes. I only get an update event but don't know the new state. Making an extra query would introduce lots of new race conditions.

Another problem with this is that exit event created from reap() doesn't have container ID field.

Ya, some of these internal "events" are not really good for consumers to depend on.  I say we change the internal "things" from events to jobs or tasks, and external things that consumers can rely on to "events"

okay


Scaling traffic of model one broadcaster and many receivers

Chat room model (many broadcasters) is pretty scalable. In my case, we have one big room with many receivers and only one broadcaster. Is there any possibility how to scale resources and network traffic to more servers to provide sufficient bandwidth to many receiver connections? EizoAgent creates ErizoJS processes for each broadcaster (by documentation), which can be scaled to more servers. But how to scale more receivers or multiplex broadcaster's stream to more servers?
Thanks.

Hello, I would like to ask whether in this area is really something new, or a similar field does anyone experience. In the moment I'm trying to find solutions to similar problems and to choose between different technologies for large chat rooms.

This is something we have in our roadmap. We plan to implement the possibility to create erizoJS trees that you could use in this kind of scenario.
Can't give you a timeframe yet, though.

Timeframe will be good, it is possible to have it on test in Q2/Q3?

Since "viewers scaling" is not yet implemented, is it possible to define which server (erizoController) will provide resources for specific room, where we expect high number of viewers? Can you point me to sources which could manage this case?
Thanks.

Is it possible to just mix the streams somehow like one big one small (if multiple parties are chatting) and shoot it over to a Wowza instance to stream?

any progress on this topic? we are looking for the same solution

No progress yet, we're currently focused on testing Simulcast/SVC. TBH we don't plan to do it in the very short term and we don't have a timeframe for the long term yet.


[Filter] Unable to filter dates with MongoDB

System Info
Platform: Mac M1
Python: 3.8.18
Lanchain: 0.0.350
Who can help?
No response
Information

[ ] The official example notebooks/scripts
[X] My own modified scripts

Related Components

[ ] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[X] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction

Install Lanchain
Execute the code:

from datetime import datetime
from datetime import timedelta
from langchain.vectorstores.mongodb_atlas import MongoDBAtlasVectorSearch
from langchain.embeddings import OpenAIEmbeddings
from langchain.chat_models.openai import ChatOpenAI
from langchain.chains import RetrievalQA

db_name = 'YOUR_DB_NAME'
collection_name = 'YOUR_COLLECTION_NAME'
db_connection_string = 'YOUR_STRING'

def perform_retrieval_qa(
    query: str,
    from_date: str = (datetime.now() - timedelta(days=6)).strftime("%Y-%m-%d"),
    to_date: str = datetime.now().strftime("%Y-%m-%d"),
):
    print(from_date, to_date)
    vector_search = MongoDBAtlasVectorSearch.from_connection_string(
        db_connection_string,
        f"{db_name}.{collection_name}",
        OpenAIEmbeddings(),
        index_name="default"
    )

    llm = ChatOpenAI(
        model="gpt-3.5-turbo",
        temperature=0)
    retrieval_qa_chain = RetrievalQA.from_chain_type(
        llm,
        retriever=vector_search.as_retriever(
            search_kwargs={
                'k': 70,
                'filter':{
                    'date': {
                        '$gte': from_date,
                        '$lte': to_date
                    }
                }
            },
        )
    )

    result = retrieval_qa_chain(
        {"query": query},
        return_only_outputs=True
    )

    return result["result"]

Expected behavior
I wish the RAG should be performed with the records from the filtered dates ranges, but it is not happening. The filter is not applied and the RAG is performed with the entire data.

@dosu-bot
First I tried replacing it with the modified version of given function, it didn't workout
Then, I added print statement and ran the program. It is printing so the interpretor is not entering the function, isn't it?
def date_filter(metadata):
    from_date = (datetime.now() - timedelta(days=5)).strftime("%Y-%m-%d")
    to_date = datetime.now().strftime("%Y-%m-%d")
    date = datetime.strptime(metadata['date'], "%Y-%m-%d")  # assuming the date is stored as a string in the "date" field
    print(f'from_date: {from_date}, \nto_date: {to_date}, \ndate: {date}')
    return from_date <= date <= to_date

Please let me know, how to connect with the support, any maintainers


CORS error only occurs when NODE_ENV=production

Hi👋
The following CORS error occurs only with NODE_ENV=production.
Access to fetch at 'https://api.xxx.jp/graphql' from origin 'https://xxx.xxx.jp' has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

This does not occur with

NODE_ENV=development
Any request other than GraphQL multipart requests, regardless of environment.

Do you know the cause?
Reference Codes
Apollo Server 4 should be configured as per the official documentation
https://www.apollographql.com/docs/apollo-server/security/cors/
NestJS GraphQL API
// main.ts
import { NestFactory } from '@nestjs/core'
import { ValidationPipe } from '@nestjs/common'
import { AppModule } from './app.module'
import { graphqlUploadExpress } from 'graphql-upload-ts'

async function bootstrap() {
  const app = await NestFactory.create(AppModule)

  app.enableCors()
  app.useGlobalPipes(new ValidationPipe({ transform: true }))
  app.use(graphqlUploadExpress({ maxFileSize: 1000000, maxFiles: 10 }))

  await app.listen(8080, '<IP_ADDRESS>')
}
bootstrap()

environment

.node-version: 18.11.0
"graphql-upload-ts": "^2.0.6"
"graphql": "^16.6.0"
"@apollo/server": "^4.7.0"
"@nestjs/apollo": "^11.0.5"
"@nestjs/graphql": "^11.0.5"
"@nestjs/core": "^9.4.0"

Next.js Frontend
const client = new ApolloClient({
  link: createUploadLink({
    uri: `${process.env.NEXT_PUBLIC_API_URL}/graphql`,
    headers: { 'Apollo-Require-Preflight': 'true' },
  }),
  cache: new InMemoryCache(),
})

environment

.node-version: 18.11.0
"@apollo/client": "^3.7.13"
"apollo-upload-client": "^17.0.0"

It was due to an incorrect bucket name in the process of uploading to GCS on the API logic...
Therefore, it is closed.🙏


Usage with babel readme updates

Closes https://github.com/gcanti/babel-plugin-tcomb/issues/99. If you'd like to see any changes let me know and I'll update.

Thanks @hrisblossom


feat(grid): [grid] support resizable config

PR
PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our Commit Message Guidelines
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?

Issue Number: #1602
What is the new behavior?
We can use resizableConfig.limit: ({ field, width }) => number to handle the min-max of each column width limit
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Summary by CodeRabbit

New Features

Introduced resizable columns feature in grid and transfer box components.
Added multilingual support for resizable column descriptions.

Enhancements

New configuration options to set and limit column width adjustments.
Improved drag behavior for resizing columns.

Testing

Added test scenarios to validate resizing functionality using Playwright.

Documentation

Updated demos with examples of resizable grid configurations.

@gweesin 麻烦解决下冲突~


Fix inconsistent code formatting

Definitions:
Fixes - fixes inconsistent code formatting inside JSON files
Updates - updates my old name in the Contributors list inside PokemonGo-Bot/README.md

Thank you! The JSON files were a mess and causing me a headache. This looks much better.


Exclude problematic testcases from AIX platform

Follow-up for what is seen during Jan release, related (https://github.com/adoptium/aqa-tests/issues/4983#issuecomment-1896554846)

exclude renaissance-philosophers for AIX

check on  jck-skytap-aix72-ppc64-4 as per note below, in the event some machines have enough memory to support this test, and query whether all machines could have similar configuration

jdk_tools ->JliLaunchTest.sh as non-blocking, to be excluded and Bad address issue to be investigated after the release period
mark jdk_jdi -> com/sun/jdi/ThreadMemoryLeakTest.java as non-blocking, to be excluded and investigated post-release.

@sxa  noted that he was able to get this to pass on a particular machine (SXA: Assuming my invocation was correct and valid, I've managed to get this to pass from the command line on jck-skytap-aix72-ppc64-4) - before exclusion, rerun in Grinder with multi ITERATIONS to determine if intermittent and/or different behaviour on different machines

Recheck com/sun/jdi/ThreadMemoryLeakTest.java status.
Grinder https://ci.adoptium.net/view/Test_grinder/job/Grinder/9196/
JliLaunchTest.sh. --> JliLaunchTest.java

See JDK22 dry run triage here:
https://github.com/adoptium/aqa-tests/issues/5141#issuecomment-2005565917
where ThreadMemoryLeakTest and JliLaunchTest both fail.


Changed requirement from decord to eva-decord

This allows video2dataset to be used on Macs.
See https://github.com/dmlc/decord/issues/213.

Sure, updated.


Could not read driver image header at 0xFFFFF80666E40000

C:\vmhardld>loader.exe
VirtualBox Hardened Loader v<IP_ADDRESS>2
[>] Entering VBoxLdrMain
LDR: Listing process token privileges...
LDR: SeIncreaseQuotaPrivilege Disabled
LDR: SeSecurityPrivilege Disabled
LDR: SeTakeOwnershipPrivilege Disabled
LDR: SeLoadDriverPrivilege Disabled
LDR: SeSystemProfilePrivilege Disabled
LDR: SeSystemtimePrivilege Disabled
LDR: SeProfileSingleProcessPrivilege Disabled
LDR: SeIncreaseBasePriorityPrivilege Disabled
LDR: SeCreatePagefilePrivilege Disabled
LDR: SeBackupPrivilege Disabled
LDR: SeRestorePrivilege Disabled
LDR: SeShutdownPrivilege Disabled
LDR: SeDebugPrivilege Disabled
LDR: SeSystemEnvironmentPrivilege Disabled
LDR: SeChangeNotifyPrivilege Enabled (Default Enabled)
LDR: SeRemoteShutdownPrivilege Disabled
LDR: SeUndockPrivilege Disabled
LDR: SeManageVolumePrivilege Disabled
LDR: SeImpersonatePrivilege Enabled (Default Enabled)
LDR: SeCreateGlobalPrivilege Enabled (Default Enabled)
LDR: SeIncreaseWorkingSetPrivilege Disabled
LDR: SeTimeZonePrivilege Disabled
LDR: SeCreateSymbolicLinkPrivilege Disabled
LDR: SeDelegateSessionUserImpersonatePrivilege Disabled
LDR: VirtualBox version 6.1.2
LDR: Windows version: 10.0 build 18363
LDR: Maximum User Mode address 0x7FFFFFFEFFFF

Pattern matching: 'VBOX'

Pattern FACP (pre v6.1) was not found
FACP (v6.1+)            0x351d7
Pattern RSDT (pre 6.1) was not found
RSDT (6.1+)             0x3543e
XSDT            0x35595
APIC            0x357eb
HPET            0x35994
MCFG            0x35a98
VBOXCPU         0x3fbd0
Pattern VBOX generic (pre 6.1) was not found
VBOX (6.1+)             0x12da3c

Pattern matching: 'VirtualBox'

VirtualBox      0x132a18
VirtualBox__    0x142178
VirtualBox GIM  0x1427f8
VirtualBox VMM  0x142fd0

Pattern matching: 'Configuration'

Pattern Configuration (pre 6.1) was not found
Configuration (6.1+)            0x13f255

Pattern matching: Hardware ID

80EE            0x92e1
80EE            0x20e21
80EE            0x20e45
80EE            0x47b05
BEEF            0x20e37
BEEF            0x20e51
CAFE            0x47bad
LDR: Patch table created
[>] Entering MapTsugumi
[>] Entering ProviderCreate
[>] Entering StartVulnerableDriver
LDR: Vulnerable driver "IntelNal" loaded
LDR: Vulnerable driver opened
[<] Leaving StartVulnerableDriver
[<] Leaving ProviderCreate
LDR: Victim driver map attempt 1 of 3
LDR: Victim driver already loaded, force reload
LDR: Attempt to unload PROCEXP152
LDR: Previous instance of victim driver unloaded
LDR: Extracting victim driver "PROCEXP152" as "C:\Users\Glenn\AppData\Local\Temp\PROCEXP152.sys"
LDR: Victim driver loaded, handle 0x00000000000000E4
LDR: Reading FILE_OBJECT at 0xFFFFC50A57058C80
LDR: Reading DEVICE_OBJECT at 0xFFFFC50A5564DE00
LDR: Reading DRIVER_OBJECT at 0xFFFFC50A53457E30
[!] Could not read driver image header at 0xFFFFF80666E40000
[>] Entering ProviderRelease
[>] Entering StopVulnerableDriver
LDR: Vulnerable driver unloaded
LDR: Vulnerable driver file removed
[<] Leaving StopVulnerableDriver
[<] Leaving ProviderRelease
[<] Leaving MapTsugumi
LDR: Cannot inject monitor code
[<] Leaving VBoxLdrMain

Followed #60 for advice on this topic but I uninstalled every NAL driver I could find but it appears to have fixed the previous issue but a new issue now persists.

+1

drivers.txt

You have https://github.com/hfiref0x/VBoxHardenedLoader/issues/71
Creating multiple same issues

won't help you solve this
eventually will lead to your block

Closed as duplicate.


The AsCollection::class cast does not behave the same as "collection" cast when mutating the collection object.

Laravel Version
10.43.0
PHP Version
8.3.2
Database Driver & Version
Postgres 16
Description
TLDR: the "collection" cast is not able to handle mutations but AsCollection:class handles mutations correctly. These casts should both behave the same as how the AsCollection::class cast behaves.
Consider the following models.
// testAttr is a non-nullable json column with default = "[]"
class MyAsCollectionModel extends Model
{
    protected $casts = ["testAttr" => AsCollection::class];

    protected $attributes = ["testAttr" => "[]"];
}

class MyCollectionModel extends Model
{
    protected $casts = ["testAttr" => "collection"];

    protected $attributes = ["testAttr" => "[]"];
}

The following are examples of the behaviour of the casted attribute for the two models respectively (in the tinker interactive console).
$x = MyAsCollectionModel::first();
// App\Models\MyAsCollectionModel {#6219
//     id: 1,
//     testAttr: "[]",
//   }

$x->testAttr;
// Illuminate\Support\Collection {#6220
//     all: [],
// }

$x->testAttr[] = 'hi taylor';
// "hi taylor"

$x->testAttr;
// Illuminate\Support\Collection {#6220
//     all: [
//         "hi taylor",
//     ],
// }

$x;
// App\Models\MyAsCollectionModel {#6219
//     id: 1,
//     testAttr: "["hi taylor"]",
//   }

$x->testAttr = collect(["I'm a new collection"]);
// Illuminate\Support\Collection {#6221
//     all: [
//         "I'm a new collection",
//     ],
// }

$x->testAttr;
// Illuminate\Support\Collection {#6221
//     all: [
//         "I'm a new collection",
//     ],
// }

$x;
// App\Models\MyAsCollectionModel {#6219
//     id: 1,
//     testAttr: "["I'm a new collection"]",
//   }

vs
$x = MyCollectionModel::first();
// App\Models\MyCollectionModel {#6232
//     id: 1,
//     testAttr: "[]",
//   }

$x->testAttr;
// Illuminate\Support\Collection {#6233
//     all: [],
// }

$x->testAttr[] = 'hi taylor';
// "hi taylor"

$x->testAttr;
// Illuminate\Support\Collection {#6234
//     all: [],
// }

$x;
// App\Models\MyCollectionModel {#6232
//     id: 1,
//     testAttr: "[]",
//   }

$x->testAttr = collect(["I'm a new collection"]);
// Illuminate\Support\Collection {#6235
//     all: [
//         "I'm a new collection",
//     ],
// }

$x->testAttr;
// Illuminate\Support\Collection {#6236
//     all: [
//         "I'm a new collection",
//     ],
// }

$x;
// App\Models\MyCollectionModel {#6232
//     id: 1,
//     testAttr: "["I'm a new collection"]",
//   }

As we can see, appending items to the collection doesn't behave the same for these casts. This seems to be because the "collection" cast is instantiating a new collection every time by JSON decoding the model's data, where as AsCollection doesn't do the same and is able to handle mutations correctly.
I believe that both of these casts should be behaving how AsCollection behaves.
I can provide a minimum recreation of this issue if required and might also endeavour to try creating a PR providing a fix.
Steps To Reproduce
Create a model with a json column that is getting cast to "collection", and an identical model which is casting the column to AsCollection::class. These casts will not behave the same as demonstrated in the description.

I think this is the intended behavior. The AsArrayObject and AsCollection casts where added later to support mutating the array/collection directly.
See: https://github.com/laravel/framework/pull/36245

Ooh, that's interesting. And of course, this makes a lot of sense given the history. In this case, I think that perhaps nuance with the difference in mutability should be mentioned in the documentation. Should I open a PR against laravel/docs?

Feel free to submit PR to the docs.


Optimize parseEvery & nextEvent

Closes: https://github.com/metarhia/metautil/issues/123
Refs: https://github.com/metarhia/metautil/pull/125

[x] tests and linter show no problems (npm t)
[x] tests are added/updated for bug fixes and new features
[x] code is properly formatted (npm run fmt)

Close in favour of ChatGPT version https://github.com/metarhia/metautil/pull/161


Include IotHub part of the API profile 2019-03-01-hybrid

Resource Provider
IOTHub , AzureStack
Description of Feature or Work Requested
Azurestack recently added IotHub as one of the supported services. We have decided to add the IOTHub as part of the existing profile 2019-03-01-hybrid profile. 2019-03-01-hybrid profile for CLI does not include IOTHub. This request is to add the IOTHub part of the profile and add necessary conditions if needed
Minimum API Version Required
https://aka.ms/2019profile defines the api versions needed for each supported resource types in azurestack
Swagger Link
https://aka.ms/2019profile
Target Date
March 16th

add to S166.


Update Project Portfolio Page

Include developer guide implementation.
Edit overview
Remove other projects.

Signed-off-by: jjlee050<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build 469

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 78.848%

Totals

Change from base Build 462:
0.0%

Covered Lines:
2039

Relevant Lines:
2586

💛  - Coveralls


Go through FDA approval list and see if we should update any on our list...

https://www.fda.gov/media/136528/download
I just became aware that the FDA is publishing that list; most of them are not open, but let's run through it as a cross-reference.  The MVM seems to be on the list, for example.

In my discussions with the Fraunhofer team, it seems they intend to help incorporate this data into the spreadsheet


Add CLA for contributors

Just want to make a suggestion to have a CLA for contributors to https://github.com/pokedextracker/pokedextracker.com and https://github.com/pokedextracker/api.pokedextracker.com.
Might not be needed as I don't think there are lots of people contributing PRs, but might be nice to have.

hey @ashcoding - thanks for the suggestion! at this point, we think a CLA will be overkill, since we don't have that many contributors. we may re-evaluate this in the future, though!


spacing issue using prompt-sync and chalk

Hello! I have a small project I was working on. I was rewriting it, starting from scratch, because I had written my own, slower functions for color-coding. So this time, I decided to use chalk. However, when I used my code, some weird spacing issue occurred in between where the cursor should be and where it was. A screenshot, and the code, are attached below.
Here's the code I was using:
const chalk = require("chalk");
const prompt = require("prompt-sync")();
console.log(prompt(chalk.green("$ ")));

If it isn't visible in the image, the cursor is almost always 10 spaces in front of where it should be (at the typed text)

Another note: there is no space when not using the chalk coloring.

Because prompt-sync is doing .length on the input string, which will also report all of the escape codes needed to display colored text. However, what's actually printed to the screen has less characters.
This is a bug in prompt-sync, I suppose - either they shouldn't be taking into account the length of the input, or they should strip escape codes prior to taking the length, if they want to support color codes at all. You'd have to open an issue with them, though.
There's one hack you might be able to try, though no guarantees:
const wrapPrompt = text => ({
    length: text.length,
    toString: () => chalk.green(text)
});

promptSync(wrapPrompt("$ "));

Though even if it works I don't really recommend doing that for anything other than toy scripts. If you do, I suggest hard-pinning the version of prompt-sync in your package.json (i.e. remove any range characters like ^ or ~) just to avoid any surprises.
Hope that helps! Closing this since there's nothing actionable from our end.


Library not found: libmetasec_ov.so

i always get the message
Library not found: libmetasec_ov.so
even though i can find this library via the File manager app

i dont have an android phone to test on right now so i ran the server on a memu player emulator
i edited injector.py to make it work but got the above error
`import frida
import subprocess
class Inject:
def init(self, target: str, is_emulator: bool = False):
"""
Initialize the class with the target name or process ID.
Set is_emulator to True if the target is an emulator.
"""
self.target = target
self.is_emulator = is_emulator
def attach(self):
    """
    Attach to the target device or emulator.
    """
    device = frida.get_usb_device()

    if self.is_emulator:
        # Attach to the emulator process
        pid = self.get_emulator_pid()
        if not pid:
            raise Exception(f"Could not find the emulator: {self.target}")
        session = device.attach(pid)
    else:
        # Attach to a physical device using the package name or PID
        app = device.get_frontmost_application()
        if app:
            target_pid = app.pid
        else:
            target_pid = self.target
        session = device.attach(target_pid)

    return device, session

def get_emulator_pid(self) -> int:
    """
    Get the process ID (PID) of the emulator using ADB.
    """
    result = subprocess.run(['adb', 'shell', 'ps'], stdout=subprocess.PIPE)
    processes = result.stdout.decode('utf-8').splitlines()

    for process in processes:
        if self.target in process:
            return int(process.split()[1])

    return None

def source(self, session, code):
    """
    Inject JavaScript code into the Frida session.
    """
    return session.create_script(code)`

Is the App on Emulator started before executing the Injector?

@vanbac91 please reopen if the problem occurs again.


https://material.angular.io/ url is resolving <IP_ADDRESS> IP Address  which is being reported as Malicious by virustotal.com, another reiuomz.web.app site is also resolves same IP  <IP_ADDRESS> , probably reiuomz.web.app is malacious.

Please help

Please help

Closing since this is likely down to your proxy settings. E.g. the IP for me is <IP_ADDRESS>.

Closing since this is likely down to your proxy settings. E.g. the IP for me is <IP_ADDRESS>.


Input Parameters Not Honored when conf=0 or iou=0 in model.predict

🐛 Describe the bug
When setting conf=0 or iou=0 as inputs to the model.predict function, the resulting prediction does not adhere to the parameter provided, but instead uses the default parameters.
The issue is specifically observed in the YOLO-NAS implementation, but similar occurrences are noted in other files in the repository as well.
In the file customizable_detector.py, the following lines are responsible for this behavior:
iou = iou or self._default_nms_iou
conf = conf or self._default_nms_conf

As per these lines, if either conf or iou equals 0, the or statement utilizes the default values instead.
Expected Behavior:
The model.predict function should consistently honor the input parameters, even when conf=0 or iou=0 is provided as input.
Versions
super-gradients==3.5.0

Thanks @ido-greenfeld , indeed it's a bug.
However, I am not sure allowing iou=0 is a desired behaviour as it would result in only filtering according to the confidence, which can be simply achieved without NMS.
We will introduce a fix soon.

I agree @shaydeci
Thanks for the fast response!

btw, how can I disable the NMS in inference time?

Short answer you can't disable it completely but you can set conf to 1e-6 and iou to 0.9999 which would effectively make NMS step as noop

This PR partially address issue raised here

Fixed in 3.6 release


Is it possible to extend the prelude?

I'm looking at using Gluon to implement a command-line-like utility, much like Gluon's own REPL. However, I would like certain custom-defined items to be automatically in scope, so that they don't have to be imported by the user each time they want to type a command. In other words, to have a custom prelude that includes not only the standard Gluon prelude, but my own definitions as well. Is it possible to do this?

Was this implemented? I see that PR was merged but I couldn't find any documentation.

+1 for extended / custom prelude.
As long as it's not possible to extend the prelude, what's the best workaround?
I currently inject my custom prelude (which contains some imports and type defs) before the script like this:
let code = format!("{}\n{}", CUSTOM_PRELUDE, code);
But the problem is, this makes the line numbers in the compiler errors invalid.
I thought I could just modify the compiler errors and subtract the number of lines that my custom prelude has from each error's line, but the error type doesn't expose those fields nor any methods to remap line numbers :(
https://docs.rs/gluon_base/0.18.0/gluon_base/error/struct.InFile.html
Any idea how else I can get a custom prelude without a hacky workaround?


feature(webpack): webpack bundling support

Looking good :)

Hi @danbucholtz, I've just used ionic-app-scripts from this branch to check out if it will work. I'm getting error in sass transform part. Using rollup works just fine.
The error I'm getting is:
[15:55:00]  sass failed: Path must be a string. Received null
[15:55:00]  ionic-app-script task: "build"
[15:55:00]  TypeError: Path must be a string. Received null

I've traced the error to generateSassData function in sass.ts anonymous function at line 111. Webpack bundling process seems to add null to context.moduleFiles. Simple filtering solves the problem: context.moduleFiles.filter(m => !!m).forEach(...). Apart from that everything works out of the box for all my projects :+1:

Publish in NPM last version

@marsanla,
Soon. It's not quite ready yet.
Thanks,
Dan

Hello,
I'm trying this pull request and i get this error :
Running 'run:before' npm script before run

alopeyk-customer-app@ watch /Users/mehrshadpezeshk/Sites/alopeyk/customerapp
ionic-app-scripts watch

module.js:457
throw err;
^
Error: Cannot find module '../dist/index'
at Function.Module._resolveFilename (module.js:455:15)
at Function.Module._load (module.js:403:25)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object. (/Users/mehrshadpezeshk/Sites/alopeyk/customerapp/node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js:19:3)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
npm ERR! Darwin 16.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "watch" "--color"
npm ERR! node v6.7.0
npm ERR! npm  v3.10.3
npm ERR! code ELIFECYCLE
npm ERR! alopeyk-customer-app@ watch: ionic-app-scripts watch
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the alopeyk-customer-app@ watch script 'ionic-app-scripts watch'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the alopeyk-customer-app package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     ionic-app-scripts watch
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs alopeyk-customer-app
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls alopeyk-customer-app
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /Users/mehrshadpezeshk/Sites/alopeyk/customerapp/npm-debug.log
Caught exception:
undefined
Mind letting us know? https://github.com/driftyco/ionic-cli/issues
Thanks

@mehrshadpezeshk,
Run npm install @ionic/app-scripts@beta. That'll pull down the webpack version.
Thanks,
Dan

Thanks @danbucholtz it worked

Hi Dan, It takes about 12seconds for the webpack to bundle. Is this normal @danbucholtz ?

For the first run? it's very fast.

I have a bundle process with webpack and Ionic 2 beta.11 and first run most of the time takes 20~30 depending if i'm in a machine with SSD or not, while subsequent runs take max 4 seconds in non SSD machines.

@Luchillo All of mine are taking 12seconds +
[09:20:03]  transpile update started ...
[09:20:03]  transpile update finished in 277 ms
[09:20:03]  webpack update started ...
JS changed:   www/build/main.js
[09:20:17]  webpack update finished in 13.20 s  <=========
[09:20:17]  watch ready
[09:20:17]  transpile update started ...
[09:20:18]  transpile update finished in 967 ms
[09:20:18]  webpack update started ...
JS changed:   www/build/main.js
[09:20:33]  webpack update finished in 15.88 s <=========
[09:20:33]  watch ready

Which version of webpack, are you using awesome-typescript-loader?

It's version: "version": "2.1.0-beta.25"
I basically ran this: npm install @ionic/app-scripts@beta as per @danbucholtz

Hmm, i'm about to test this new ionic-app-scripts beta, however can't find any docs on it, i'll be trying things for now.

Anyone knows what's up with that ionic-loader? i don't seem to understand how it works since all i see in it's source code is some sort of caching mechanism.

"@ionic/app-scripts": "0.0.38" loose the ability to show the ts file into browser. we could not debug the code

@jaspal27, install 0.0.39 which has this in place. We also have 0.0.40 coming out in the coming days that has even "better" source maps.
Thanks
Dan

Thanks it is working with me.
On Wed, Nov 2, 2016 at 10:40 PM, Dan Bucholtz<EMAIL_ADDRESS>wrote:

@jaspal27 https://github.com/jaspal27, install 0.0.39 which has this in
place. We also have 0.0.40 coming out in the coming days that has even
"better" source maps.
Thanks
Dan
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/driftyco/ionic-app-scripts/pull/158#issuecomment-258067984,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACFYgMhe59CuqKRMqXTxTqRuJGSzZzOVks5q6XO5gaJpZM4KWsz-
.

--
Thanks,
Jaspal Singh


Poor DPDK Performance

Hi, I'm using this plugin with the mellanox connectx-5 100G card with DPDK. On bare metal with SRIOV off, I can hit 100Gbps with 2 transmitting threads with 4KB packets. When I use this plugin, I'm not able to get higher than about 70Gbps, regardless of how many threads I have sending out the VFs. I've tried both more queues per VF, and more VFs on the same interface to no avail. All transmitting cores are on the same NUMA node.
Since it's mellanox, I don't specific dpdk in the CRD because of their bifurcated driver. Dpdk recognizes the devices properly, so I didn't think that was the cause either. Does anyone have any ideas to try?

@cliffburdick
How do you compare the results? Is this performance in Container vs non-container/VM?
I'm trying to understand the the real cause. The sriov-cni and sriov device plugin does nothing special to improve or degrade a NIC's performance. They are used to bring the interfaces up in the container environment.

@Mmduh-483 @moshe010
Any input on this from your sides?

@cliffburdick, Did you open a support case for Mellanox on this?
I think it is better to work with them so they can validate that you have  all the required tuning

Hi @ahalim-intel , the first case was SR-IOV off in a container with host networking on. The physical device was used. I'm wondering if it's a configuration issue on my end, so I will close this for now and go back try trace the root problem. Thanks.


jobInfoChips does not display the correct value for 'type'

TO DISPLAY THE PRIORITY ASSIGNED TO THE JOB BY RECRUITERS IN BULLHORN ATS
Current behavior

When you update the 'jobInfoChips' json object in app.json to display 'type'--which is the priority a job is assigned by the recruiter in Bullhorn ATS. However, the returned value is an integer and not the actual string value selected by the recruiter in the backend.

Expected behavior

According to the documentation for 'jobInfoChips', we should be receiving the actual value selected in the backend.

Steps to replicate behavior

Install the Career Portal in WordPress and connect it to your Bullhorn account.
In the Career Portal settings page, find the field that says "fields to use in API requests" and add type to the field list. This is the priority field recruiters use to select the priority for a job.
Then find a field called "fields to display as chips on your jobs. default is 'employmentType'" and enter the field type.
Now load the Career Portal and you should see integers instead of the Priorities available to assign a job.

Screenshots
Current

Expected

Hi Victor,  I may be able to help.
Try removing the values in Bullhorn, so you have just the labels
We have had to filter this a few times in Matador Jobs
If the client can't then reach out.
Paul

Thanks for sharing, Paul. I will look into.

Hi Victor,
This is fixable in matador Jobs as we have filters that allow this
Contact me at<EMAIL_ADDRESS>and we'll jump on a call so I can show you how.
Paul

Hi Paul,
Nevermind. After some debugging, we found the issue and fixed it.


Page content overflow "cuts off" - Scrolling not available

I think I fixed this ..
the .header class wasn't playing nice in both "/" and "/schrute-bucks" so I made a new class called .videoscreen below:
.videoscreen {
width: 100%;
height: 100vh;
overflow-y: scroll;
margin-bottom:1rem;
padding-left: 25px;
}
Takes care of the scrolling issue.. doesn't break anything else. Ideal would be to make .header reusable across both I guess. but right now doesn't seem to want to.
Anyways, would love to collabo on this. Give me access so I can make PRs!!


Finder Answer Box A/B Test

Test name/reference
Finder answer boxes

Problem: Evidence and insight
Our user research has shown that users find long lists of finder results overwhelming.

Solution hypothesis
By highlighting with a box when the top search result is much more relevant than other results, we will make it clear to user where to find the content to meet their need.

URL being tested
https://www.gov.uk/find-eu-exit-guidance-business?keywords=

Metrics we will be measuring
% users clicking the top search result, Time on search results page

How will we know our hypothesis has been validated?/ what does success look like?
If we see a significant increase in user clicking the top result when it is in an answer box, we would also hope to see a reduction of the time before a result was clicked on

Detailed description of hypothesis and measurement
https://docs.google.com/document/d/16LzL-D-v-5E4etLgfUMnbe6okscxcgJsrm0wN7I1EXo

When will the test run?
28/03/2019

Cookie name
ABTest-FinderAnswerABTest

Weighting split
33% No answer box

33% Answer box

33% Answer box with explainer text

Cookie expiry
6 weeks

GA Custom Dimension Index
69

GA Custom Dimension Name
A/B Brexit finder (69)

Custom Dimension Values
A

B

C

Should we be committing changes to spec/test-outputs/*?

@vanitabarrett - this is what I used as a reference: https://github.com/alphagov/govuk-cdn-config/pull/133/files

It looks fine to me. I'm not sure why the tests are failing though,

Seems fine! Don't forget the cookies page (if that's relevant any more)

@sihugh  - I don' think it's relevant anymore - we have this: https://www.gov.uk/help/cookies#multivariate-testing


wip: deps install refactor

To fix issue with conflicting deps between profiles with differing levels and versions this patch changes from installing all deps for a profile to installing a level at a time. For example: rebar3 as nondef compile will install level 0 of nondef profile, hold on to level 1 deps for nondef in a list, install level 0 of default profile, store its level 1 deps, and so on until there are no more {profile, deps} tuples in the list.

Confirmed to work by Garret Smith.


Create demo project card repository.

As part of our effort to create a node registry which would reside within a project card registry, please create an example repository on github which we could use for testing and demonstration purposes.
Repo Settings:

[x] Travis CI
[x] Make the repository a template
[x] Add me (E) as a collaborator
[x] Create a staging and sandbox branches
[x] Make master a protected branch requiring PR reviews and required status checks and make "include administrators" for the checks

Repo Contents:

[x] node_registry.csv  with columns node,project
[x] registry_config.yml with the contents start_node_number: 1000
[x] projects directory with a project card that adds a few nodes (1000).
[x]  test_projects.py with a test that reads the node additions from project cards, checks for conflicts, and outputs an updated node_registry.csv with a list of all used nodes in the projects.
[x] travis.yml which installs and runs pytest
[x] README.md
[x] LICENSE: either ODC-BY or CC-BY

Note:

I'd like to make this able to operate independent of the base network by using the start_node_number but a future enhancement would be to feed in the base network as well;

@kulshresthaa: start here once you get going on the broad problem.

@e-lo: This is ready for your review here. I deviated a bit from your spec, using GitHub Actions rather than Travis.

@e-lo: This is ready for your review here. I deviated a bit from your spec, using GitHub Actions rather than Travis.


Remove Renderer2 usage

Remove any usage of the Renderer2 from the codebase. Usage is no longer necessary after Angular switched to Domino which is closer to the native DOM API.
While Renderer2 is an actual class, Renderer3 is an interface subset of the DOM API; basically, there is no Renderer3 - it's just the DOM element.
//render2
renderer.setAttribute(someElement, 'foo', 'bar');

//render3
someElement.setAttribute('foo', 'bar');

Closing. Completed.


Roadmap: Task 2d: Dashboard deployment with AE

Deployment of any of the above types of dashboards with Anaconda Enterprise using Anaconda Project

Now implemented; see https://anaconda.org/jbednar/project/pyviz_overview4 for an example.


First names are duplicated

Not sure if this is already in the data or only a display issue.

Hmmm - looks like a problem with the data:


Database/set up

Pull Request Template
Description
Please include a summary of the change and/or which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] I have checked my code and corrected any misspellings

was there a specific reason for the recording of title, description, and docs_url in app = FastAPI()?

It puts a title on the documentation when you run the code in the browser

was there a specific reason for the recording of title, description, and docs_url in app = FastAPI()?

It puts a title on the documentation when you run the code in the browser

do we need to hard code pdf_file CaseObject or would it be better to use a 'file_path_name'? (line32)

that's the table schema that will hold the case information, it's to accommodate manual input of a case file or scraped input

do we need to hard code pdf_file CaseObject or would it be better to use a 'file_path_name'? (line32)

that's the table schema that will hold the case information, it's to accommodate manual input of a case file or scraped input


Could the feedback parameter be used to signal that a waveform plays in reverse?

Just brainstorming of features I'd like and can work on.
In the short-term, this is most relevant to me for the PCM wave-type.

That is a fun and probably easy to implement idea!

I did this in some very horrible ways:

added a capture buffer to steal rendered frames
allow moving a capture to a "user PCM" slot
various capture manipulation, including a "reverse" function
This is a horrible hack at the moment, so I made a fork until it's a bit cleaner
See it in action @ https://youtu.be/yLpVCpF2w2I


function to add percentiles

Similar to adding STD or SEM, there should be the possibility to add certain percentiles to EPO data. Instead of overloading the proc_average function with more functionality, I suggest to create a new function that adds(classwise!) percentiles to EPO data. The percentiles can be calculated with stat_percentiles.
Make sure, that plot_channel is able to use the percentile information (e.g. plotting tubes from 25-percentile to 75-percentile around the mean), see issue #31.

Daniel takes care of this one.

closed?!

Thanks!


1.3.0 version not compatible with "crosswalk" by PGB

hi @macdonst
I am using PGB 5.2.0 version with gradle build (for now is support)
when I install the crosswalk plugin from different resource，it will cause Android build fail (if only install push 1.3.0，it will build success)
like these way
<preference name="phonegap-version" value="cli-5.2.0" />
<preference name="android-build-tool" value="gradle" />
<gap:plugin name="phonegap-plugin-push" source="npm" version="1.3.0" />
<gap:plugin name="cordova-plugin-crosswalk-webview" source="npm" version="1.3.1" />

<preference name="phonegap-version" value="cli-5.2.0" />
<preference name="android-build-tool" value="gradle" />
<gap:plugin name="phonegap-plugin-push" source="npm" version="1.3.0" />
<gap:plugin name="dispatch-cordova-plugin-crosswalk-webview " source="npm" version="1.4.1" />

<preference name="phonegap-version" value="cli-5.2.0" />
<preference name="android-build-tool" value="gradle" />
<gap:plugin name="phonegap-plugin-push" source="npm" version="1.3.0" />
<gap:plugin name="cordova-plugin-crosswalk-webview-pgb-adapt " source="npm" version="1.4.0-dev-5" />

so...hope this issue can solve by push 1.4.0 version

@bau720123 Sorry which ones of those 3 different snippets builds correctly and which ones do not?

oh @macdonst
let me explain it
the "cordova-plugin-crosswalk-webview" is the official，others are forks
if only install the one of them (crosswalk plugin)，it will all build success
but after add "phonegap-plugin-push" 1.3.0，it become all fail
hope my explain is clear

by the way
if install the resource from PGB
them are all forks
<gap:plugin name="phonegap-plugin-push" source="npm" version="1.3.0" />
<gap:plugin name="com.flyacts.crosswalk.engine" source="pgb" version="1.3.1" />

or
<gap:plugin name="phonegap-plugin-push" source="npm" version="1.3.0" />
<gap:plugin name="org.crosswalk.engine" source="pgb" version="1.3.0" />

although it will build success，but I think is is not a Long-term solution

hi @macdonst
I have already contact to the "cordova-plugin-crosswalk-webview-pgb-adapt" author
there are related information and want to feedback to you too
This is related to xwalk 16.4x versions which use android support lib v13. Phonegap-plugin-push use it as well but not with the same version and when you try to compile it, there's a conflict. This issue is discussed in the official crosswalk bug tracker : https://crosswalk-project.org/jira/browse/XWALK-5092

I forked quickly the official phonegap-puglin-push and removed the support lib v13 compilation instruction and it seems to work.

If you want to use my forked copy of the plugins, you have to add these lines in your config.xml :
<gap:plugin name="cordova-plugin-crosswalk-webview-pgb-adapt" source="npm" version="1.4.0-dev-9"/>
<gap:plugin name="phonegap-plugin-push-without-android-support-v13" source="npm" version="1.3.0-dev-1" />

The npm page is here :
https://www.npmjs.com/package/phonegap-plugin-push-without-android-support-v13

Hope it will help you.

@bau720123 where did you have this conversation with Crosswalk team? I want to chime in as it doesn't seem like they are including the support library correctly. Possibly I can help or downgrade the version of the library used with this plugin to match them.

hi @macdonst
above conversation all in email (I contact with "cordova-plugin-crosswalk-webview-pgb-adapt" author，and he gives me a reply)
maybe the link that is you want it ?
https://crosswalk-project.org/jira/browse/XWALK-5092

Different versions of android-support shouldn't make it fail, gradle is made to handle such cases gracefully, unless the difference between said versions is too big so that it can't find a minimal common path. They are probably including the jar in some way.

I'm having the same issue on my Meteor application:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)

Only happend when I add this plugin. I'm also using cordova-plugin-crosswalk-webviewl

I am in holiday but i know that my build causes problems so i did a build using xwalk 15.44.384 (without dependency with android support vx) so i guess you should be able to build  your projects without failure.
Add these lines to your config.xml :+1:

<gap:plugin name="phonegap-plugin-push" source="npm" version="1.3.0" />
<gap:plugin name="cordova-plugin-crosswalk-webview-pgb-adapt" source="npm" version="1.4.0-dev-11"/>

hi @berthnipub
when using these
<preference name="android-build-tool" value="gradle" />
<gap:plugin name="phonegap-plugin-push-without-android-support-v13" source="npm" version="1.3.0-dev-1" />
<gap:plugin name="cordova-plugin-crosswalk-webview-pgb-adapt" source="npm" version="1.4.0-dev-9" />

Android build success
after using these
<preference name="android-build-tool" value="gradle" />
<gap:plugin name="phonegap-plugin-push" source="npm" version="1.3.0" />
<gap:plugin name="cordova-plugin-crosswalk-webview-pgb-adapt" source="npm" version="1.4.0-dev-11"/>

PGB appear a warning message that only in android
Error - Some official plugins have to be updated if using PhoneGap >= 4.0.0. Please upgrade the version of any plugins that may include the following file: XWalkWebViewEngine.java - You can fix this here
after using these

1.4.0 was just working for me the other day but now what  happens is "Error - Plugin repo install has timed out on the following plugin, please try building again: cordova-plugin-crosswalk-webview-pgb-adapt" possibly a pgb problem or problem with the server? 1.3.0 still works but want to use 1.4.0 again...will try again later its late sunday afternoon/night here...


RNN operator produces inconsistent gradients for h2h_bias for stacked RNNs

The RNN operator produces different inconsistent values for gradient for h2h_bias in the topmost stack in different mxnet variants.
This only happens when num_layers > 1. I compared the values after one forward pass and one backward pass. I compared between osx-cpu-mkl and linux-gpu-mkl (both built from source. Snapshot versions are not up-to-date, and the versions available are really flaky in this case). In the cpu variant, the gradient for is all zeros.
These differences are leading to exception in DJL in CPU context. I also confirmed these differences in the values exist in Python.
Error Message
I don't see any error in Python but in DJL we have observed Nan values during the training process.
To Reproduce
I used the following script to look at gradients.
import mxnet as mx
from mxnet import gpu, cpu, gluon
from mxnet import np, npx
from mxnet import autograd as ag
from mxnet.gluon import nn

npx.set_np()

def check_param(net):
    param_dict = net.collect_params()
    array = ('lstm0_{}{}_{}_{}'.format(d, l, g, t)
             for t in ['weight', 'bias']
             for l in range(2)
             for d in ['l', 'r'][:1]
             for g in ['i2h', 'h2h'])
    for key in array:
        param = param_dict[key]
        print("checking param: " + str(param))
        print("weight sum: " + str(param.data().sum()))
        print("weight mean: " + str(param.data().mean()))
        print("weight max: " + str(param.data().max()))
        print("weight min: " + str(param.data().min()))
        if param.grad_req != "null":
            print("checking the gradient of para: " + str(param))
            print("grad sum: " + str(param.grad().sum()))
            print("grad mean: " + str(param.grad().mean()))
            print("grad max: " + str(param.grad().max()))
            print("grad min: " + str(param.grad().min()))

def print_ndarray_stats(ndarray, name) :
    print("#####", name, "#####")
    print("checking " + name)
    print("sum: " + str(ndarray.sum()))
    print("mean: " + str(ndarray.mean()))
    print("max: " + str(ndarray.max()))
    print("min: " + str(ndarray.min()))
    print("Shape: " + str(ndarray.shape))

batch = 32
time = 28
channel = 28
state = 64
num_layers = 2

mx.random.seed(1234)
data = np.random.uniform(0, 10, size=(batch, time, channel))
mx.random.seed(1234)
labels = np.random.uniform(0, 1, size=(batch, time, state))

net = gluon.rnn.LSTM(state, num_layers=2, h2h_weight_initializer=mx.initializer.Xavier(), i2h_weight_initializer=mx.initializer.Xavier(), layout='NTC')
loss = gluon.loss.SoftmaxCrossEntropyLoss(sparse_label=False, from_logits=True)
net.collect_params().initialize()

with ag.record():
    z = net(data)
    L = loss(z, labels).mean()
    print_ndarray_stats(z, "OUTPUT")
    print("Loss = ", L)
L.backward()
check_param(net)

Steps to reproduce
(Paste the commands you ran that produced the error.)

Install the appropriate mxnet version
Run the above script (python rnntest.py)

@mxnet-label-bot add [Backend]

cc @PatricZhao

@zixuanweeei @ciyongch please help take a look of this issue, thanks.

@zixuanweeei @ciyongch please help take a look at this issue, thanks.

Thanks for reporting this issue. I can reproduce the result by your script. I will take a look. @keerthanvasist

@keerthanvasist thanks to reporting the issue.
Could you give us some background on your application, DJL, and how it works?

DJL is an open-source, framework-agnostic deep learning java library. You can check it out at https://djl.ai. We are using the MxNet engine through a JNA layer.

Hi, @keerthanvasist . Thanks for the information about the DJL.
We provided a patch for this issue https://github.com/zixuanweeei/mxnet/tree/rnn/gradients. It would be highly appreciated if you could give it a try. BTW, we need some extra fix for the unit test before it is ready to be merged into MASTER branch.

@zixuanweeei Thank for your quick response. We will try it out and let you know the results.
By the way, we need this fix in 1.x branch as well.

@zixuanweeei Thank you for your fix. I verified that it does fix the issue in CPU. We verified it with the 1.7.x branch as well.

@zixuanweeei Thank you for your fix. I verified that it does fix the issue in CPU. We verified it with the 1.7.x branch as well.

Thanks for trying out this. PR is on the way.


[coap] fix copying option

remove typo that passed a uint64_t pointer to a function which need a sufficiently large buffer #9884

this bug has led to segmentation faults.

fix bug that coap copying uri path option or any other long option failed

this bug causes coap fail to request next block.

This has been done.


Updated README instruction

Hi, I was able to use this on my heroku app so I thought I would update the README to include more information based on what I did to get it to work.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Patch for itunes:image in entries

This implements feature request #76

@OpenHaus — I've changed the target branch to develop (since this is a new feature), rebased your branch based on that, and added tests. I also ensured both the entry and feed renderers will emit the tag now.

@OpenHaus I've also added itunes:image support within the reader for entries/episodes. We previously supported it at the feed level only, but the spec allows both.


waiting for d to get ready screen

Had everything setup and upgraded to 0.99 after reboot my screen has been sitting at
Waiting for d to get ready
---> Starting Up
Can take longer if device was off.
its been sitting for 3 straight days now and the bitcoin wallet is synced up to the most recent block and continues to sync normally.
any help would be appreciated!
TIA

Hi. I had the same. My solution was to make a new sd card image with 0.99... Maybe there is another solution I hope

Had everything setup and upgraded to 0.99 after reboot my screen has been sitting at
Waiting for d to get ready
---> Starting Up
Can take longer if device was off.
its been sitting for 3 straight days now and the bitcoin wallet is synced up to the most recent block and continues to sync normally.
any help would be appreciated!
TIA

Paste the output of running ./XXdebugLogs.sh from an SSH shell

I'm seeing the same issue - looks like it might be the same as issue #217.  In the logs below I see that it can't bind to port 8332.  Here's the output of ./XXdebugLogs.sh:
blitzversion: 0.99
chainnetwork: bitcoin / main
 19:06:46 up 0 min,  2 users,  load average: 0.34, 0.09, 0.03

*** CHAINNETWORK SYSTEMD STATUS ***
● bitcoind.service - Bitcoin daemon
   Loaded: loaded (/etc/systemd/system/bitcoind.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Fri 2018-12-28 19:06:13 PST; 33s ago
  Process: 669 ExecStart=/usr/local/bin/bitcoind -daemon -conf=/home/bitcoin/.bitcoin/bitcoin.conf -pid=/home/bitcoin/.bitcoin/bitcoind.pid (code=exited, status=0/SUCCESS)
 Main PID: 679 (code=exited, status=1/FAILURE)
   CGroup: /system.slice/bitcoind.service

Dec 28 19:06:13 razblitz systemd[1]: bitcoind.service: Failed with result 'exit-code'.

*** LAST 20 CHAINNETWORK LOGS ***
2018-12-29T03:06:13Z Bitcoin Core version v<IP_ADDRESS> (release build)
2018-12-29T03:06:13Z InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1
2018-12-29T03:06:13Z Assuming ancestors of block<PHONE_NUMBER>000000002e63058c023a9a1de233554f28c7b21380b6c9003f36a8 have valid signatures.
2018-12-29T03:06:13Z Setting nMinimumChainWork=0000000000000000000000000000000000000000028822fef1c230963535a90d
2018-12-29T03:06:13Z Using the 'standard' SHA256 implementation
2018-12-29T03:06:13Z Default data directory /home/bitcoin/.bitcoin
2018-12-29T03:06:13Z Using data directory /mnt/hdd/bitcoin
2018-12-29T03:06:13Z Using config file /home/bitcoin/.bitcoin/bitcoin.conf
2018-12-29T03:06:13Z Using at most 40 automatic connections (1024 file descriptors available)
2018-12-29T03:06:13Z Using 16 MiB out of 32/2 requested for signature cache, able to store 524288 elements
2018-12-29T03:06:13Z Using 16 MiB out of 32/2 requested for script execution cache, able to store 524288 elements
2018-12-29T03:06:13Z Using 4 threads for script verification
2018-12-29T03:06:13Z scheduler thread start
2018-12-29T03:06:13Z libevent: getaddrinfo: address family for nodename not supported
2018-12-29T03:06:13Z Binding RPC on address <IP_ADDRESS> port 8332 failed.
2018-12-29T03:06:13Z Unable to bind any endpoint for RPC server
2018-12-29T03:06:13Z Error: Unable to start HTTP server. See debug log for details.
2018-12-29T03:06:13Z Shutdown: In progress...
2018-12-29T03:06:13Z scheduler thread interrupt
2018-12-29T03:06:13Z Shutdown: done

*** LND SYSTEMD STATUS ***
● lnd.service - LND Lightning Daemon
   Loaded: loaded (/etc/systemd/system/lnd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-12-28 19:06:13 PST; 33s ago
 Main PID: 680 (lnd)
   CGroup: /system.slice/lnd.service
           └─680 /usr/local/bin/lnd --externalip=

Dec 28 19:06:14 razblitz lnd[680]: 2018-12-28 19:06:14.954 [INF] RPCS: password gRPC proxy started at [::]:8080
Dec 28 19:06:14 razblitz lnd[680]: 2018-12-28 19:06:14.954 [INF] LTND: Waiting for wallet encryption password. Use `lncli create` to create a wallet, `lncli unlock` to unlock an existing wallet, or `lncli changepassword` to change the password of a…g wallet and unlock it.
Hint: Some lines were ellipsized, use -l to show in full.

*** LAST 20 LND LOGS ***
-- Logs begin at Fri 2018-12-28 19:06:01 PST, end at Fri 2018-12-28 19:06:47 PST. --
Dec 28 19:06:13 razblitz systemd[1]: Started LND Lightning Daemon.
Dec 28 19:06:14 razblitz lnd[680]: 2018-12-28 19:06:14.914 [INF] LTND: Version: 0.5.1-beta commit=, build=production, logging=default
Dec 28 19:06:14 razblitz lnd[680]: 2018-12-28 19:06:14.914 [INF] LTND: Active chain: Bitcoin (network=mainnet)
Dec 28 19:06:14 razblitz lnd[680]: 2018-12-28 19:06:14.947 [INF] CHDB: Checking for schema update: latest_version=7, db_version=7
Dec 28 19:06:14 razblitz lnd[680]: 2018-12-28 19:06:14.953 [INF] RPCS: password RPC server listening on [::]:10009
Dec 28 19:06:14 razblitz lnd[680]: 2018-12-28 19:06:14.954 [INF] RPCS: password gRPC proxy started at [::]:8080
Dec 28 19:06:14 razblitz lnd[680]: 2018-12-28 19:06:14.954 [INF] LTND: Waiting for wallet encryption password. Use `lncli create` to create a wallet, `lncli unlock` to unlock an existing wallet, or `lncli changepassword` to change the password of an existing wallet and unlock it.

- RTL is OFF by config```

Did you apply the 3 line conf file change stated #217 ?

I did - no luck.   It looks like bitcoin may be starting too early in the boot process. The same error is described here:  https://github.com/bitcoin/bitcoin/issues/7701
That tracks with my debugging - restarting the bitcoin service manually after boot seems to work fine.

Yesterday after a small hiccup I have to reboot after that lightning stop working I read your help here and right now it’s working fine again

@GeorgeSpark-Stahl the bitcoind gets started by systemd when everything else is ready ... and if it is not able to start it will try to restart it again. How do you manually restart it to get it to work in your situation?

Maybe I was just impatient then?  That could be.  I was using the command sudo systemctl restart bitcoind to restart the service manually, but maybe I should have just waited.  I'll try that.

Same problem here. Try to follow a guide to link Shango app to my node (https://github.com/neogeno/shango-lightning-wallet) and since then i m blocked on this screen. I try to come back to the previous lnd.conf (as i deleted .conf and .cert files as stated in the guide) but it do not work.

Same problem here. Try to follow a guide to link Shango app to my node (https://github.com/neogeno/shango-lightning-wallet) and since then i m blocked on this screen. I try to come back to the previous lnd.conf (as i deleted .conf and .cert files as stated in the guide) but it do not work. Any ideas ?

What is your output of running:
./XXdebugLogs.sh
and
tail -n 100 /mnt/hdd/bitcoin/debug.log

For ./XXdebugLog.sh :
*** RASPIBLITZ LOGS ***
blitzversion: 0.99
chainnetwork: bitcoin / main
19:44:33 up 1 min,  2 users,  load average: 1.34, 0.45, 0.16
*** CHAINNETWORK SYSTEMD STATUS ***
● bitcoind.service - Bitcoin daemon
Loaded: loaded (/etc/systemd/system/bitcoind.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-01-02 19:43:13 GMT; 1min 20s ago
Process: 672 ExecStart=/usr/local/bin/bitcoind -daemon -conf=/home/bitcoin/.bitcoin/bitcoin.conf -pid=/home/bitcoin/.bitcoin/bitcoind.pid (code=exited, status=0/SUCCESS)
Main PID: 683 (bitcoind)
CGroup: /system.slice/bitcoind.service
└─683 /usr/local/bin/bitcoind -daemon -conf=/home/bitcoin/.bitcoin…id
Jan 02 19:43:12 Gabinou systemd[1]: Starting Bitcoin daemon...
Jan 02 19:43:13 Gabinou systemd[1]: Started Bitcoin daemon.
*** LAST 20 CHAINNETWORK LOGS ***
2019-01-02T19:43:13Z Cache configuration:
2019-01-02T19:43:13Z * Using 2.0MiB for block index database
2019-01-02T19:43:13Z * Using 12.2MiB for transaction index database
2019-01-02T19:43:13Z * Using 8.0MiB for chain state database
2019-01-02T19:43:13Z * Using 77.8MiB for in-memory UTXO set (plus up to 47.7MiB of unused mempool space)
2019-01-02T19:43:13Z init message: Loading block index...
2019-01-02T19:43:13Z Opening LevelDB in /mnt/hdd/bitcoin/blocks/index
2019-01-02T19:43:13Z Opened LevelDB successfully
2019-01-02T19:43:13Z Using obfuscation key for /mnt/hdd/bitcoin/blocks/index:<PHONE_NUMBER>000000
2019-01-02T19:43:37Z LoadBlockIndexDB: last block file = 1482
2019-01-02T19:43:37Z LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=66, size=67323732, heights=556665...556730, time=2019-01-02...2019-01-02)
2019-01-02T19:43:37Z Checking all blk files are present...
2019-01-02T19:43:38Z Opening LevelDB in /mnt/hdd/bitcoin/chainstate
2019-01-02T19:43:48Z Opened LevelDB successfully
2019-01-02T19:43:48Z Using obfuscation key for /mnt/hdd/bitcoin/chainstate: eadc35e843c5834c
2019-01-02T19:43:49Z Loaded best chain: hashBestChain=0000000000000000000de6e814d0f09c74edf5820b4182adaf8dce704100dff5 height=556730 date=2019-01-02T19:33:46Z progress=0.999996
2019-01-02T19:43:49Z init message: Rewinding blocks...
2019-01-02T19:43:57Z init message: Verifying blocks...
2019-01-02T19:43:57Z Verifying last 6 blocks at level 3
2019-01-02T19:43:57Z [0%]...[16%]...
*** LND SYSTEMD STATUS ***
● lnd.service - LND Lightning Daemon
Loaded: loaded (/etc/systemd/system/lnd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-01-02 19:43:13 GMT; 1min 20s ago
Main PID: 684 (lnd)
CGroup: /system.slice/lnd.service
└─684 /usr/local/bin/lnd --externalip=
Jan 02 19:43:14 Gabinou lnd[684]: 2019-01-02 19:43:14.941 [INF] RPCS: passw…0009
Jan 02 19:43:14 Gabinou lnd[684]: 2019-01-02 19:43:14.941 [INF] LTND: Waiti… it.
Hint: Some lines were ellipsized, use -l to show in full.
*** LAST 20 LND LOGS ***
-- Logs begin at Wed 2019-01-02 19:43:03 GMT, end at Wed 2019-01-02 19:44:34 GMT. --
Jan 02 19:43:13 Gabinou systemd[1]: Started LND Lightning Daemon.
Jan 02 19:43:14 Gabinou lnd[684]: 2019-01-02 19:43:14.730 [INF] LTND: Version: 0.5.1-beta commit=, build=production, logging=default
Jan 02 19:43:14 Gabinou lnd[684]: 2019-01-02 19:43:14.737 [INF] LTND: Active chain: Bitcoin (network=mainnet)
Jan 02 19:43:14 Gabinou lnd[684]: 2019-01-02 19:43:14.903 [INF] CHDB: Checking for schema update: latest_version=7, db_version=7
Jan 02 19:43:14 Gabinou lnd[684]: 2019-01-02 19:43:14.941 [INF] RPCS: password gRPC proxy started at [::]:8080
Jan 02 19:43:14 Gabinou lnd[684]: 2019-01-02 19:43:14.941 [INF] RPCS: password RPC server listening on [::]:10009
Jan 02 19:43:14 Gabinou lnd[684]: 2019-01-02 19:43:14.941 [INF] LTND: Waiting for wallet encryption password. Use lncli create to create a wallet, lncli unlock to unlock an existing wallet, or lncli changepassword to change the password of an existing wallet and unlock it.

RTL is OFF by config

That looks OK. What does this show:
sudo tail -n 100 /mnt/hdd/bitcoin/debug.log

Ok, just make it through. My node seems to be running but when I want to 'listchannels' or other lncli command I got :
[lncli] rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: authentication handshake failed: x509: certificate signed by unknown authority

I added :
rpcport=8332
rpcallowip=<IP_ADDRESS>
rpcbind=<IP_ADDRESS>:8332
in the .conf but when I run 'lnd' i got : /home/admin/.lnd/lnd.conf:10: unknown option: rpcport
any idea ?

I added :
rpcport=8332
rpcallowip=<IP_ADDRESS>
rpcbind=<IP_ADDRESS>:8332
in the .conf but when I run 'lnd' i got : /home/admin/.lnd/lnd.conf:10: unknown option: rpcport
any idea ?

You put those lines in the lnd.conf file?  The belong in /mnt/hdd/bitcoin/bitcoin.conf

oups, ok. made the change, but I still got the same errors.
I don't have access to my machine right now. I'll try new stuff later.
Thank you for the help

Ok, just make it through. My node seems to be running but when I want to 'listchannels' or other lncli command I got :
[lncli] rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: authentication handshake failed: x509: certificate signed by unknown authority

This problem was found here and resolved: https://github.com/rootzoll/raspiblitz/issues/35

Hello !
Thank you, I tried 'su bitcoin' and when I do 'lnd' i got that :
bitcoin@Gabinou:/home/admin $ lnd
2019-01-03 17:08:54.868 [INF] LTND: Version: 0.5.1-beta commit=, build=production, logging=default
2019-01-03 17:08:54.868 [INF] LTND: Active chain: Bitcoin (network=mainnet)
and nothing happen (i no longer have the hand on the shell) even ctrl+C doesnt give me the hand back.
when I run 'lnd' from "admin" not "bitcoin" I got :
admin@Gabinou:~/.lnd $ lnd
2019-01-03 17:05:36.578 [INF] LTND: Version: 0.5.1-beta commit=, build=production, logging=default
2019-01-03 17:05:36.578 [INF] LTND: Active chain: Bitcoin (network=mainnet)
2019-01-03 17:05:36.579 [INF] CHDB: Checking for schema update: latest_version=7, db_version=7
2019-01-03 17:05:36.583 [ERR] LTND: password RPC server unable to listen on <IP_ADDRESS>:10009
2019-01-03 17:05:36.583 [INF] LTND: Shutdown complete
listen tcp <IP_ADDRESS>:10009: bind: address already in use
The wierdest is that my node seems to be running but I can't do anything.

Ok, I think I just broke all my lnd.conf file. Can someone send some "clean" .conf file ?

Ok, I think I just broke all my lnd.conf file. Can someone send some "clean" .conf file ?

# lnd configuration

[Application Options]
debuglevel=debug
restlisten=<IP_ADDRESS>:8080
tlsextraip=<IP_ADDRESS>
maxpendingchannels=5
alias=thundahub
color=#68F442
nat=false

# RPC open to all connections on Port 10009
rpclisten=<IP_ADDRESS>:10009
# Domain, could use https://freedns.afraid.org
#tlsextradomain=lightning.yourhost.com

[Bitcoin]
bitcoin.active=1
bitcoin.node=bitcoind
# enable either testnet or mainnet
#bitcoin.testnet=1
bitcoin.mainnet=1

[Bitcoind]
bitcoind.rpcuser=raspibolt
bitcoind.rpcpass=satnak
bitcoind.rpchost=<IP_ADDRESS>
bitcoind.zmqpubrawblock=tcp://*:28332
bitcoind.zmqpubrawtx=tcp://*:28333

[autopilot]
autopilot.active=0
autopilot.maxchannels=5
autopilot.allocation=0.6

Hello !
Thank you, I tried 'su bitcoin' and when I do 'lnd' i got that :
bitcoin@Gabinou:/home/admin $ lnd
2019-01-03 17:08:54.868 [INF] LTND: Version: 0.5.1-beta commit=, build=production, logging=default
2019-01-03 17:08:54.868 [INF] LTND: Active chain: Bitcoin (network=mainnet)
and nothing happen (i no longer have the hand on the shell) even ctrl+C doesnt give me the hand back.
when I run 'lnd' from "admin" not "bitcoin" I got :
admin@Gabinou:~/.lnd $ lnd
2019-01-03 17:05:36.578 [INF] LTND: Version: 0.5.1-beta commit=, build=production, logging=default
2019-01-03 17:05:36.578 [INF] LTND: Active chain: Bitcoin (network=mainnet)
2019-01-03 17:05:36.579 [INF] CHDB: Checking for schema update: latest_version=7, db_version=7
2019-01-03 17:05:36.583 [ERR] LTND: password RPC server unable to listen on <IP_ADDRESS>:10009
2019-01-03 17:05:36.583 [INF] LTND: Shutdown complete
listen tcp <IP_ADDRESS>:10009: bind: address already in use
The wierdest is that my node seems to be running but I can't do anything.

You shouldn't have to do these things by hand. The scripts should do it for you when you reboot/startup.
You could try running the LND setup script:
./70initLND.sh

ok, I just change my .conf with yours, and ran ./70initLND.sh
and i got that at the end :
(30/33) still waiting ..
(31/33) still waiting ..
(32/33) still waiting ..
(33/33) still waiting ..
*** TAKES LONGER THEN EXCEPTED ***
1546540541
result()
error(./70initLND.sh: line 30: -cli: command not found)
tail: cannot open '/mnt/hdd//debug.log' for reading: No such file or directory
If you see an error -28 relax, just give it some time.
Waiting 1 minute and then trying again ...

this is prob caused by your raspiblitz.info file does not have correct content.
did you try rebooting?  I think the boot script and other scripts automatically sets this up on every boot.

You could try putting these lines in raspiblitz.info and running 70initLND.sh again:
state=
network=bitcoin
chain=main
message=
setupStep=0

Anywhere in the file ?

Ok I did it again because i noticed that my raspiblitz.info haad change to its former form.
here is what I get :
admin@Gabinou:~ $ sudo nano raspiblitz.info
admin@Gabinou:~ $ ./70initLND.sh
*** Checking bitcoin ***
OK - bitcoind is running
*** Wait until bitcoind is ready ...
OK - chainnetwork is working
*** LND Config ***
OK - exists
*** Starting LND ***
OK - LND is running
walletExists(1)
--> lets wait 60 seconds for LND to get ready
then :

So I restarted and got :

then

then

then

And here it loops, asking to unlock my wallet again without incrementing the progress. I finnally go through after unlocking my wallet 3-4 times :

And the error I got is still there ...

Cool. that is good progress.

That info screen shows you have channels open and 3382710 satoshis in there.

I do.

My node worked perfectly well until I tried to link it with Shango.
And I don't understand what I broke following this tutorial : https://github.com/neogeno/shango-lightning-wallet
But it do not work well at all now (needless to say that the connexion with shango was a fail)

What do you see when you run from the SSH terminal:
lnbalance bitcoin

well from that info screen, it looks at least like your node is up and running correctly, so that's good progress. I don't know enough about how the channel stuff works yet, so cannot help much there.

Here is what I see

You actually have TOR working which is more than I do.  I tried enabling it but it didn't work first time for me so I reverted to non-TOR.  It's not important for me right now.

and if you run ./00infoBlitz.sh do you see the same info screen as you posted above?

Here we are :

Damn. I think that last error "line 70" is due to your raspiblitz.info file still not correct.
If I run $ lnbalance + I get the same error and all values zero...

/usr/local/bin/lnbalance: line 70: +  : syntax error: operand expected (error token is "+  ")

for what reason my raspiblitz.info is back to :

My node is:
038d3eb5339f78774697448ce2414b429b41edd8f65dcc2edc33e591001476c948@<IP_ADDRESS>:9735
how do I set the minimum channel sats?

huuum

always the same error on lncli ...

always the same error on lncli ...

sudo tail -n 50 /mnt/hdd/lnd/logs/bitcoin/mainnet/lnd.log

admin@Gabinou:~ $ sudo tail -n 50 /mnt/hdd/lnd/logs/bitcoin/mainnet/lnd.log
2019-01-03 20:40:37.932 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=606455429588254721, flag=2, update_time=2019-01-03 20:40:01 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:37.933 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=596669776075292672, flag=3, update_time=2019-01-03 20:40:15 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:37.933 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=606376264783101953, flag=258, update_time=2019-01-03 20:39:49 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:37.934 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=606376264783101953, flag=259, update_time=2019-01-03 20:39:52 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:37.934 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=605060149341585408, flag=1, update_time=2019-01-03 20:40:10 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:37.934 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=612134407107903489, flag=0, update_time=2019-01-03 20:40:09 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:37.934 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=605733050395066368, flag=1, update_time=2019-01-03 20:40:15 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:37.935 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=610558807011164160, flag=0, update_time=2019-01-03 20:40:10 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:37.935 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=605108527812444160, flag=1, update_time=2019-01-03 20:40:10 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:40.425 [DBG] RPCS: [walletbalance] Total balance=0.01859908 BTC
2019-01-03 20:40:40.514 [DBG] RPCS: [walletbalance] Total balance=0.01859908 BTC
2019-01-03 20:40:40.839 [INF] RPCS: [listchannels] fetched 5 channels from DB
2019-01-03 20:40:44.750 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=608498322163105792, flag=3, update_time=2019-01-03 19:46:26 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.759 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=600049674878713857, flag=2, update_time=2019-01-03 19:46:19 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.763 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=605060149341585408, flag=1, update_time=2019-01-03 20:40:10 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.766 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=608495023714861056, flag=2, update_time=2019-01-03 20:40:00 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.768 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=605108527812444160, flag=1, update_time=2019-01-03 20:40:10 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.841 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=603179984429711361, flag=256, update_time=2019-01-03 20:39:53 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.842 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=608234439447740416, flag=3, update_time=2019-01-03 20:39:57 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.842 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=608695134822596609, flag=2, update_time=2019-01-03 19:46:31 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.843 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=612177288038973440, flag=0, update_time=2019-01-03 20:39:51 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.843 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=608774299582922752, flag=0, update_time=2019-01-03 20:39:54 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.844 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=605733050395066368, flag=1, update_time=2019-01-03 20:40:15 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.844 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=610558807010639872, flag=0, update_time=2019-01-03 20:40:10 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.845 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=606455429588254721, flag=2, update_time=2019-01-03 20:40:01 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.845 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=595496597177827328, flag=0, update_time=2019-01-03 20:40:15 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.845 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=603179984429711361, flag=259, update_time=2019-01-03 20:40:19 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.846 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=606376264783101953, flag=258, update_time=2019-01-03 20:39:49 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.862 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=609233895585415169, flag=256, update_time=2019-01-03 20:39:00 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.867 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=606376264783101953, flag=259, update_time=2019-01-03 20:39:52 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.872 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=612133307681472513, flag=0, update_time=2019-01-03 20:40:22 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.877 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=608633562209255424, flag=3, update_time=2019-01-03 19:46:35 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.885 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=611297678901837824, flag=1, update_time=2019-01-03 20:39:52 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.892 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=596669776075292672, flag=3, update_time=2019-01-03 20:40:15 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:44.914 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=610558807011164160, flag=0, update_time=2019-01-03 20:40:10 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.659 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=603179984429711361, flag=259, update_time=2019-01-03 20:40:19 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.661 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=603179984429711361, flag=256, update_time=2019-01-03 20:39:53 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.666 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=612133307681472513, flag=0, update_time=2019-01-03 20:40:22 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.667 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=608495023714861056, flag=2, update_time=2019-01-03 20:40:00 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.668 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=600049674878713857, flag=2, update_time=2019-01-03 19:46:19 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.668 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=612177288038973440, flag=0, update_time=2019-01-03 20:39:51 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.668 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=606455429588254721, flag=2, update_time=2019-01-03 20:40:01 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.670 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=608633562209255424, flag=3, update_time=2019-01-03 19:46:35 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.671 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=608774299582922752, flag=0, update_time=2019-01-03 20:39:54 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.671 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=611297678901837824, flag=1, update_time=2019-01-03 20:39:52 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.673 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=606376264783101953, flag=259, update_time=2019-01-03 20:39:52 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.673 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=605060149341585408, flag=1, update_time=2019-01-03 20:40:10 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.675 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=608234439447740416, flag=3, update_time=2019-01-03 20:39:57 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.676 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=608498322163105792, flag=3, update_time=2019-01-03 19:46:26 +0000 GMT) from <IP_ADDRESS>:9735
2019-01-03 20:40:50.676 [DBG] PEER: Received ChannelUpdate(chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, short_chan_id=608695134822596609, flag=2, update_time=2019-01-03 19:46:31 +0000 GMT) from <IP_ADDRESS>:9735

That "huuum" output, did that come from using the menu system to connect or are you running from the command line?

it is just a line I type in git up answer before pasting the screeshot :)

but the screen shot is the result of selecting a menu option or from running something in the shell?

what do you see if you run:
sudo -u bitcoin lnbalance bitcoin
is it still all zeros with errors?

works with bitcoin but not admin ...

yep, that's what I thought.  This is what they were talking about here:
https://github.com/rootzoll/raspiblitz/issues/35#issuecomment-411467669

I'm not sure to understand everything in this. I tried to copy the cert and tls from btc to admin earlier, didn't seems to work ..

according to #35 you don't need to do that.  Just run as user (bitcoin). The question is why the scripts are not running as user (bitcoin) as they should be.

And once i m in shell mode, is there a command to come back to the 'menu mode' (with blue back etc ..)

Still can't connect to your node :

try
sudo -u bitcoin lncli connect ...

I got that :
bitcoin@Gabinou:~ $ sudo -u bitcoin lncli connect 038d3eb5339f78774697448ce2414b429b41edd8f65dcc2edc33e591001476c948@<IP_ADDRESS>:9735
bitcoin is not in the sudoers file.  This incident will be reported.

and these:
sudo -u bitcoin lncli --chain=bitcoin --network=mainnet connect ...
sudo -u admin lncli --chain=bitcoin --network=mainnet connect ...

All three give me the same mistake ...
bitcoin is not in the sudoers file. This incident will be reported.

All three give me the same mistake ...
bitcoin is not in the sudoers file. This incident will be reported.

then how did you get that "connection refused" screenshot then?

just with :
bitcoin@Gabinou:~ $ lncli connect 038d3eb5339f78774697448ce2414b429b41edd8f65dcc2edc33e591001476c948@<IP_ADDRESS>:9735
[lncli] rpc error: code = Unknown desc = dial tcp <IP_ADDRESS>:9735: connect: connection refused

no, my channels were all created from the menu
and once I run ./00mainMenu.sh from bitcoin user, after i log in i got a loop of :

don't run 00mainMenu as bitcoin user, just as normal admin user.

Ok, I just drop on the menu.

but when i try to open a channel with you, I got

try opening a channel with https://satoshis.place/
024655b768ef40951b20053a5c4b951606d4d86085d51238f2c67c7dec29c792ca@<IP_ADDRESS>:9735

also fail. same error.

I give up for tonight. Thank you so much for your help.
Maybe try to open a channel with me, see if it's work in this direction.
I'll be back tomorrow with a new batch of question :-)
again, thank you dude

well @rootzoll may have to take over. I don't understand this stuff well enough. Good luck.

If i start all over again (re-write the SD card and erase the HDD, will it be possible to recover my node ? with the channels etc ... ?

I don't know. At least using the seed it seems no at this time:
https://github.com/rootzoll/raspiblitz/issues/221
But is there another way @rootzoll?

Actually I tried and it seems it worked. I deleted .lnd and the admin file, re-write the image on SD card. Launch the Raspberry and now it works.
Not sure to understand what was/is the issue (I hate that).

Actually I tried and it seems it worked. I deleted .lnd and the admin file, re-write the image on SD card. Launch the Raspberry and now it works.
Not sure to understand what was/is the issue (I hate that).

What "admin file"? glad you got it working finally.

The admin file : /home/admin


Occlusion Transformation [Request]

Two papers this week confirm that data augmentation with occlusion has a large effect size (unlike techniques like rotation or color scaling).
https://arxiv.org/pdf/1708.04896v1.pdf
https://arxiv.org/pdf/1708.04552v1.pdf
I think this is powerful enough to add.

This seems like it would be easy to add. @fmassa do you think this is something that would be valuable to a wide enough audience? If so I can send a PR

Here is example code for the tougher occlusion algorithm.

class Occlude(object):
    def __init__(self, p=0.5, s_min=0.02, s_max=0.04, r_min=0.3):
        self.p = p  # erasing probability
        self.s_min = s_min
        self.s_max = s_max
        self.r_min = r_min
        self.r_max = 1./r_min

    def __call__(self, tensor):
        if np.random.uniform() > self.p:
            return tensor
        while True:
            Se = np.random.uniform(self.s_min,self.s_max) * 32 * 32
            re = np.random.uniform(self.r_min, self.r_max)
            He, We = np.sqrt(Se * re), np.sqrt(Se/re)
            xe, ye = np.random.uniform(0,32), np.random.uniform(0,32)
            if int(xe + We) <= 32 and int(ye + He) <= 32:
                tensor[:, int(ye):int(ye + He), int(xe):int(xe + We)].fill_(np.random.uniform())
                return tensor

I'm unsure about adding support for such a transform for the moment.
There are many possible ways of parametrizing random occlusions, and there will always be missing cases.
I think it is easier to let the user implement their occlusion transform themselves.
I'm closing this issue, but we can revisit/reopen if you disagree.


Add 'has_key' builtin for maps

This is so we can check if a map has a key
instead of relying on the wrong way by seeing
if the value is 0.
kprobe:dummy {
  @scalar = 1;
  @associative[1,2] = 1;

  if (has_key(@scalar)) {
    print(("hello"));
  }

  if (!has_key(@associative[1,3])) {
    print(("bye"));
  }
}

Checklist

[x] Language changes are updated in man/adoc/bpftrace.adoc
[x] User-visible and non-trivial changes updated in CHANGELOG.md
[x] The new behaviour is covered by tests

This is definitely functionality that we need, but I'm not sold on the syntax.
The name has_key doesn't make sense on a scalar - a scalar by definition will never have a key. Is some kind of has-value / is-set functionality needed for scalars in the first place? A scalar map is just like a global variable in other languages and they don't have any way of determining if the value has been updated from the default value of 0.
has_key(@associative[1,3]) - this is replicating the delete() syntax, but I kind of consider that a bad design choice too (although one that we have to keep for compatibility). It looks as if it's looking up a value in the @associative map and then passing that value to the has_key function.
I did a quick survey of how some other systems programming languages handle maps and there seem to be three main approaches.
C: has_key(mymap, mykey)
Languages using methods on maps:
C++ mymap.contains(mykey)
Rust: mymap.contains_key(mykey)
Nim: mymap.hasKey(mykey)
Languages which return some sort of optional value on looking up a key:
Zig: if (mymap.get(mykey)) |v| { got value v } else { key doesn't exist }
Swift: if let v = dict[key] { got value v } else { key doesn't exist }
Go: value, exists := mymap[mykey]
I'd favour going with the "map methods" approach. I don't think the C method is very ergonomic (backed up by the fact that no other modern language has chosen it). The optional method isn't bad, but might involve changing the return value of our map-lookups, which would break backwards compatibility. The "map methods" can be a pure language extension without breaking existing behaviour.
We'll also want to add some more functions to operate on maps in the future too, e.g. "insert_if_doesnt_exist" and "update_if_already_exists", to expose more features to the user and make BpfScript capable of expressing more complex programs.

I'd favour going with the "map methods" approach.

In general, I'm a big fan of methods on objects BUT that's a big language change for bpftrace. If we added something like @my_map.contains(mykey) I think we'd also need to provide methods for current functions like len, clear, delete and zero - and perhaps eventually deprecate the current map functions that take a map as the first arg. If there is consensus that we should go that direction, then I'm happy to work on that change. That being said, I think that providing a has_key(mymap, mykey) (C-like) builtin would be valuable for the time-being, as it aligns with the current map functions - then perhaps we can deprecate all at once (after we add map methods).

The name has_key doesn't make sense on a scalar

I agree. Perhaps I can add a semantic_analyser check to not allow scalar maps.

We'll also want to add some more functions to operate on maps in the future too, e.g. "insert_if_doesnt_exist" and "update_if_already_exists", to expose more features to the user and make BpfScript capable of expressing more complex programs.

@ajor - I feel like I'm channeling you when I say this but I think those additional methods just add language bloat and won't be necessary once we land a has_key method/function as folks can just use has_key themselves before they insert or update.

In general, I'm a big fan of methods on objects BUT that's a big language change for bpftrace. If we added something like @my_map.contains(mykey) I think we'd also need to provide methods for current functions like len, clear, delete and zero - and perhaps eventually deprecate the current map functions that take a map as the first arg. If there is consensus that we should go that direction, then I'm happy to work on that change. That being said, I think that providing a has_key(mymap, mykey) (C-like) builtin would be valuable for the time-being, as it aligns with the current map functions - then perhaps we can deprecate all at once (after we add map methods).

Agreed that we'd want to provide methods for the other existing map functions too. I think we should sort out the syntax before merging new functions though, as once they're in, they're pretty much in forever. A C-like function would also be somewhat out-of-place, given that the delete() function's syntax is so unique and we don't have any other function which accepts a map key as a separate argument.

@ajor - I feel like I'm channeling you when I say this but I think those additional methods just add language bloat and won't be necessary once we land a has_key method/function as folks can just use has_key themselves before they insert or update.

Haha fair point. I was just thinking about exposing the functionality that the underlying BPF maps already provide - I guess the advantage of these functions would be efficiency (1 function call instead of 2), but they're not essential.

I think we should sort out the syntax before merging new functions though, as once they're in, they're pretty much in forever.

I'll create an RFC issue with some options though I think @.method(...) seems like the obvious choice. But just curious, why is stuff "in forever" - breaking changes are a thing right? They just require a major version bump though since we're not even at version 1 yet, the API is not considered stable and according to the semver docs: "Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable." I know this isn't a good user experience but I think some warnings for deprecated functions followed by removal is legit.

I guess the advantage of these functions would be efficiency (1 function call instead of 2),

Yeah true. I guess we can add as requested/needed.

Ok not really forever, I just meant it in the sense that while theoretically we can (and I'd say should!) deprecate and remove some things, in practice we've very rarely done it.

Methods RFC: https://github.com/bpftrace/bpftrace/issues/3361

I just meant it in the sense that while theoretically we can (and I'd say should!) deprecate and remove some things, in practice we've very rarely done it.

Let's start making some issues! I'm happy to start deprecating things - I love deleting 🔥

The name has_key doesn't make sense on a scalar - a scalar by definition will never have a key. Is some kind of has-value / is-set functionality needed for scalars in the first place? A scalar map is just like a global variable in other languages and they don't have any way of determining if the value has been updated from the default value of 0.

Agreed - not sure what has_key() would do on a scalar given that they're now backed by an array map.

If we decide to introduce new syntax for map methods, then the most pragmatic way would be to introduce new functionality and deprecate the old functionality over some number of releases. It sounds like we are in agreement over that.
So I don't see the harm in introducing a potentially "old style" has_key() consistent with the design of delete(). Better to solve real user problems, be consistent, and then maybe deprecate later IMO.