laminas-code is not installable on PHP 8.1

Feature Request

Q
A

New Feature
yes (maybe?)

RFC
no

BC Break
no

Summary
PHP 8.1 was release on Nov 25th. Currently, it's not possible to install this library without using --ignore-platform-reqs.
From my tests on our code base it looks like everything works fine, I would like to ask you to tag a new version (4.4.4?) with PHP 8.2 included in the version range in composer.json.
You already have this change in your (untagged) 4.5.x branch, which I see still needs some PRs merged.
    "require": {
        "php": ">=7.4, <8.2"
    },

I can see you delibaretly chose to limit the supported version to ~8.0.0 in your 4.4.x branch. I'm not sure why, but there can be very good reasons for this.
If the main reason is that when you say you support a PHP version, then you actually want to support and make use of the features it brings. This is a high standard to have, and is probably the reason why laminas-code is depended on by so many projects.
This also means a lot of people can't migrate to 8.1 because this library. Maybe having the library installable on 8.1 does not mean you actively support 8.1 features yet.

Having the same issue!

Same here. Hope this changes soon 🤞🏼

Dockerhub has pushed 8.1 tag a few hours ago. Not being able to install doctrine/migrations is the main reason why this thread will explode with the impatient developers :)

Impatient, but still very grateful for the effort put into this project! :)

FWIW I added "laminas/laminas-code": "4.5.x-dev" to my composer json to see if anything will break, and all my tests passed on 8.1.

@akalineskou Maybe you haven't had time to start using enums or other features from 8.1? I think it's important to the maintainer of this project that these features work, not break.

@alshenetsky I'm not using this library directly, would me using new 8.1 features in my app have any issues with this library not supporting them?

@akalineskou I mean passing tests in your app does not indicate that laminas-code 4.5 can be released sooner. Sure enough that you using this library indirectly via doctrine/migrations or something, that should generate proxy classes. And such generation may break up in case of enums/other 8.1 features (which is you probably don't use yet). I don't know, I am just reasoning with you.
Let's just wait, I can see that development is going on actively.

IMHO, laminas-code 4.5 should support enums and other 8.1 features.
Version 4.4.4 should be installable on PHP 8.1, and runnable (it is). I'm OK with laminas generating php 8.0 code while running on 8.1, if that means I can migrate sooner.

See https://github.com/laminas/laminas-code/milestone/19
If Laminas is to generate symbols from a reflector, then it must run against PHP 8.1 (currently doesn't generate valid code).
As for the dependency range declaring ~8.0.0, it is intentional, and even moreso in this package, because even slight additions to the ext-reflection API represent a BC break. The next release branch also declares ~8.0.0 || ~8.1.0, and categorically excludes 8.2.0.
For the moment being, if you really cannot wait to install all your dependencies against php:8.1.0, run composer update --ignore-platform-req=php, and take your own responsibility in running a potentially broken dependency graph, as a conscious decision.
Closing here meanwhile.


I found this issue when I am trying to build my App

FAILURE: Build failed with an exception.

Where:
Build file 'E:\food\Delivery man app\android\app\build.gradle' line: 53

What went wrong:
A problem occurred evaluating project ':app'.

Could not get unknown property 'trueandroid' for DefaultConfig_Decorated{name=main, dimension=null, minSdkVersion=DefaultApiVersion{mApiLevel=21, mCodename='null'}, targetSdkVersion=DefaultApiVersion{mApiLevel=30, mCodename='null'}, renderscriptTargetApi=null, renderscriptSupportModeEnabled=null, renderscriptSupportModeBlasEnabled=null, renderscriptNdkModeEnabled=null, versionCode=1, versionName=1.0.0, applicationId=com.u6amtech.restaurant_delivery_boy, testApplicationId=null, testInstrumentationRunner=null, testInstrumentationRunnerArguments={}, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=null, mBuildConfigFields={}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}, mWearAppUnbundled=null} of type com.android.build.gradle.internal.dsl.DefaultConfig.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 59s
Exception: Gradle task assembleDebug failed with exit code 1

Hi @abdulrahmanahme, please provide the following information.

android/build.gradle
android/app/build.gradle
pubspec.yaml & pubspec.lock
Full logs of either flutter run -v or flutter build apk -v depending on which command you are experiencing this issue with. The verbose logs is likely to be huge so kindly put it into a .txt file and attach it here.

Thank you

I solved this error but l found another error could you help me .

Hi @abdulrahmanahme, Kindly share the full error log and any other files that may be important to investigate the issue.
Thank you

Thanks to you l solved the issue


Handle cargo native dependencies

Previously, when specifying a native dependency using links = "dependency", we would fail as we do not copy over the build.rs file,
which is needed to actually link to the binary. However, to run cargo update we don't actually need to link the dependency, we just need
cargo not to fail. So adding a dummy build.rs file, like we do for
src/main.rs fixes the issue.
Fixes: https://github.com/dependabot/feedback/issues/943

Thnx for the reviews! As an aside, I notice there's a bunch of duplication between the two edited files here, making a mental note to look into if it makes sense to extract some of that, or if it's accidental duplication.


If statement in many build scripts to set sourceCompatibility

In many subproject build scripts we have the line sourceCompatibility = javaVersion.java9Compatible ? 1.6 : 1.5. We should move that into a function of a Gradle extension.
Can someone shed some light on what is behind that check?

The reason behind this statement is that Java 9 does not support compiling to the target version 1.5. I guess the statement is even wrong now, since we don't necessarily use the version of Java which runs the build for compilation (see java7Home). Moreover, the build currently does not run with Java 9 at all, since the buildSrc tests are failing.


[Fix] fix incorrect kl_div_loss

The original knowledge_distillation_kl_div_loss in LD was mistakenly implementated as mentioned in https://github.com/HikariTJU/LD/issues/74.
Motivation
Fix the above issue. Now the kl_div is equal to the definition of KL Div.
Modification
Change the knowledge_distillation_kl_div_loss. And modify the corresponding loss_weight, so the final behavior should be identical to the original one.
BC-breaking (Optional)
No.

 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.

Hi, it seems that the CI got stuck, any ideas? @hhaAndroid

@ZaberKo Thank you very much for the feedback. I see that the author's comments don't necessarily indicate a need for modification. Do you think it is necessary to make the change? Perhaps training it this way will yield better results or there might be no difference at all?

@ZaberKo The main concern is that making such a fix now would result in significant backward compatibility breaking, causing issues for existing users.

@ZaberKo Thank you very much for the feedback. I see that the author's comments don't necessarily indicate a need for modification. Do you think it is necessary to make the change? Perhaps training it this way will yield better results or there might be no difference at all?

There is no difference in the final training mathematically.
However, the incorrect kl_div will cause a misusage for future developments. Currently, I didn't find any other models using this function except LD, so I don't think it breaks BC. I adivse we need fix it as soon as possible before any new algorithms using this function.

@hhaAndroid Hi, is there any new progress?


SOF-7178: CLI job workflow for DeePMD molecular dynamics calculation

Superseded by https://github.com/Exabyte-io/cli-job-examples/pull/13/files


V3 breaks webpack and jest

Please document how to get things working with jest and webpack like formatJS does for react-intl: https://formatjs.io/docs/react-intl#jest
Right now my webpack blows up with:
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: <path>/node_modules/node-fetch/src/index.js
require() of ES modules is not supported.
require() of <path>/node_modules/node-fetch/src/index.js from <path>/server.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from <path>/node_modules/node-fetch/package.json.

    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1080:13)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.node-fetch (<path>/external "node-fetch":1:1)
    at __webpack_require__ (<path>/build/webpack:/app/webpack/bootstrap:24:1)
    at fn (<path>/build/webpack:/app/webpack/runtime/hot module replacement:61:1)
    at Module../src/server/createNodeWretch.js (<path>/build/server.js:7943:68)
    at __webpack_require__ (<path>/build/webpack:/app/webpack/bootstrap:24:1)

and Jest with:
  ● Test suite failed to run

    Jest encountered an unexpected token

    Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.

    Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.

    By default "node_modules" folder is ignored by transformers.

    Here's what you can do:
     • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.
     • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
     • If you need a custom transformation specify a "transform" option in your config.
     • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

    You'll find more details and examples of these config options in the docs:
    https://jestjs.io/docs/configuration
    For information about custom transformations, see:
    https://jestjs.io/docs/code-transformation

    Details:

    <path>/node_modules/node-fetch/src/index.js:9
    import http from 'http';
    ^^^^^^

    SyntaxError: Cannot use import statement outside a module

      2 | import url from 'url';
      3 | import FormData from 'form-data';
    > 4 | import fetch from 'node-fetch';
        | ^
      5 |

Expected behavior
I've have always used the import syntax as described in the migration guide... but the guide is incomplete since webpack/jest now blow up when I try upgrading
Your Environment

software
version

node-fetch
3.0.0

node
14.16.0

npm
6.14.11

Operating System
macOS big sur

@heath-freenome
export NODE_OPTIONS="$NODE_OPTIONS --experimental-vm-modules"

// jest.config.js
module.exports = {
  // [...]
  preset: 'ts-jest/presets/default-esm', // or other ESM presets
  globals: {
    'ts-jest': {
      useESM: true,
    },
  },
}

@RedGuy12 If you check the source code of jest, you will find out the core problem here is not require.
Jest is running under vm module, and Node.js vm module support ESM is  experimental

--experimental-vm-modules

Documentation for getting this to work with Jest is here:
https://jestjs.io/docs/ecmascript-modules

@LinusU
Jest

Note that due to its experimental nature there are many bugs and missing features in Jest's implementation, both known and unknown. You should check out the tracking issue and the label on the issue tracker for the latest status.

Node.js

--experimental-vm-modules

We both want ESM world, but reality is ecosystem is not ready yet.
Instead of "just use all the experimental features", which seems like an uncontrolable black box,
Can't we just dual-modulize node-fetch?

Can't we just dual-modulize node-fetch?

this are being discussed here: #1227

We both want ESM world, but reality is ecosystem is not ready yet.

I'm not sure about that, Jest is just one of many test runners. I don't think that just because its support is experimental, the whole ecosystem isn't ready.

Can't we just dual-modulize node-fetch?

I think a better approach is to stick with node-fetch 2.x if you are having troubles, see the discussion here: https://github.com/node-fetch/node-fetch/pull/1227

@jimmywarting

this are being discussed here
I know. But here is a specific scenario, just jest, not some abstraction.

@LinusU

I'm not sure about that, Jest is just one of many test runners. I don't think that just because its support is experimental, the whole ecosystem isn't ready.

Node.js mark as --experimental-vm-modules, jest official document states many known and unknown bugs.
I don't think is not very convincing both Node.js and jest official state them as experimental.

Just use all the experimental features if you want node-fetch@3
If you don't, just don't update, and stay on node-fetch@2
Emm, seems very frustrating.

Node.js mark as --experimental-vm-modules, jest official document states many known and unknown bugs.
I don't think is not very convincing both Node.js and jest official state them as experimental.

Yes, but I don't think that vm-modules isn't often used that much at all? At least I've personally never seen it used outside of Jest...

Just use all the experimental features if you want node-fetch@3
If you don't, just don't update, and stay on node-fetch@2

Emm, seems very frustrating.

Why does this seem frustrating?

Yes, but I don't think that vm-modules isn't often used that much at all?
Here is the problem. Please check jest source code.
All jest running under vm.

Just use all the experimental features if you want node-fetch@3
If you don't, just don't update, and stay on node-fetch@2

Why does this seem frustrating?
Because there is a proper solution for current time point, dual-module.
But I know you against dual-module...

Yes, but I don't think that vm-modules isn't often used that much at all?

Here is the problem. Please check jest source code.
All jest running under vm.

Yes I know that Jest is using vm-modules. What I meant was that the majority of the ecosystem is not using vm-modules, and thus holding back the entire ecosystem just because Jest does it feels a bit strange to me 🤔

Just use all the experimental features if you want node-fetch@3
If you don't, just don't update, and stay on node-fetch@2

Why does this seem frustrating?

Because there is a proper solution for current time point, dual-module.
But I know you against dual-module...

Well, I am personally against dual-module, but that is because there are clear drawbacks with it which is discussed in the larger thread.
I think it's better if we concentrate specifically on Jest and WebPack compatibility (without going away from ESM-only) in this issue. In fact, it might be better to split it up into two issues: one for Jest, and one for WebPack.
I've used ESM-only modules in WebPack before so I'm not entirely sure what the problems are there, but I believe that there are workarounds/fixes available...

I'm using ESM and Rollup in my project but Jest still had the same problem with loading the package. Here's what worked for me:
jest.config.ts:
export default {
  preset: 'ts-jest/presets/js-with-ts-esm',
  transformIgnorePatterns: [
      'node_modules/(?!(fetch-blob|node-fetch)/)'
  ]
}

tsconfig.json:
{
  "compilerOptions": {
    "allowJs": true,
    "esModuleInterop": true
  }
}

Credit goes to: https://stackoverflow.com/a/66480267/8746088

@Thomasan1999... That did it for me!!! it was fetch-blob that was the savior...

@jimmywarting If you replicate the documentation for react-intl and for jest use:
  transformIgnorePatterns: [
      'node_modules/(?!(fetch-blob|node-fetch)/)'
  ]

And for webpack:
  include: [
    path.join(__dirname, 'node_modules/fetch-blob'),
    path.join(__dirname, 'node_modules/node-fetch'),
  ]

OR
exclude: /node_modules\/(?!fetch-blob|node-fetch)/,

@Thomasan1999... That did it for me!!! it was fetch-blob that was the savior...

False alarm... I forgot to npm update with node-fetch v3 :(

@heath-freenome Not false alarm. I saw and tested it! 😄
@Thomasan1999 Awesome! As long as node-fetch not using hard core ESM, like top level await, now I can get rid of experimental flag. 😘
[tempDir] $ pnpm i -D jest ts-jest ts-node typescript node-fetch && jest && tail -n +1 jest.config.ts tsconfig.json esmDeps.spec.ts

==> jest.config.ts <==
export default {
  preset: 'ts-jest/presets/js-with-ts-esm',
  transformIgnorePatterns: [
      'node_modules/\\.pnpm/(?!node-fetch|fetch-blob)',
  ]
}

==> tsconfig.json <==
{
  "compilerOptions": {
    "allowJs": true,
    "esModuleInterop": true
  }
}

==> esmDeps.spec.ts <==
import nf from 'node-fetch'

describe("esmDeps", () => {
  it("esmDeps", () => {
    console.warn(nf)
  });
});

@heath-freenome Not false alarm. I saw and tested it! 😄
@Thomasan1999 Awesome! As long as node-fetch not using hard core ESM, like top level await, now I can get rid of experimental flag. 😘

I'm not using typescript in my project (yet)

Since @Thomasan1999 got a solution without any experimental features!
I currently have no real-world problem with node-fetch. 😄
FYI @jimmywarting @LinusU, not hard core ESM yet, like top-level await will break this solution.

@heath-freenome
The core tech here is using transformer, exclude ALL ESM-only package from transformIgnorePatterns, which means

let transformer convert ALL ESM-only package to CJS on-the-fly of jest

Maybe you need babel-jest or jest-babel something, let babel convert ALL ESM-only package to CJS on-the-fly of jest.
FYI, ESM-only package node-fetch depends on ESM-only fetch-blob.
So, you need to at least node-fetch and fetch-blob, add adjust according to error msg.
Good luck!

@heath-freenome
For Node JS project that's worked for me, may be you can do the same for webpack:
jest.config.ts:
export default {
  transform: {
    '^.+\\.js$': 'babel-jest',
  },
  transformIgnorePatterns: [
      'node_modules/(?!(fetch-blob|node-fetch)/)'
  ]
}

babel.config.cjs
module.exports = {
  presets: [
    [
      '@babel/preset-env',
      {
        targets: {
          node: 'current'
        }
      }
    ]
  ],
  plugins: ['babel-plugin-transform-es2015-modules-commonjs', 'babel-plugin-transform-import-meta']
}

Thanks @xbreaker that worked great until node-fetch updated to v3.1.0 now.
The dependencies changed (https://github.com/node-fetch/node-fetch/blob/v3.1.0/package.json#L65) so the transformIgnorePatterns needs updating to include them
transformIgnorePatterns: [
    'node_modules/(?!(data-uri-to-buffer|formdata-polyfill|fetch-blob|node-fetch)/)',
]

There are other issues with<EMAIL_ADDRESS>which causes problems with jest, specifically the usage of node:prefixes. I have added another workaround details here: https://github.com/node-fetch/node-fetch/issues/1367#issuecomment-977473094
Hope this helps somebody


Add build instructions and build requirements to README.md

Thanks!

It will be added when the System is more stable. Currently the Commands are the following
to run: ./gradlew run
to build ./gradlew assemble


False Positives

Hello @brian-armstrong and others,
I am still evaluating libcorrect for one of my projects. In the application, an eight-byte payload exists, and it consists of 4 bytes data + 4 bytes RS error correction code. Please see my test code below. There are three functions:
1st  - A basic encoding/decoding code that works as expected.
2nd - This function works on five different payloads. Some bits of the payloads corrupted, but all of them are expected to recover. The library successfully decodes these payloads as expected.
3rd - This function encodes five different data (all is 4 bytes long) and obtains payloads. (4 bytes + 4 bytes = 8 bytes) Then, in the code, I intentionally distort ECC part of the payload. The expected behavior would be seeing all with decoding errors, but interestingly the library successfully decodes 3 of 5 payloads.
Is it a bug? Or am I doing something wrong?
Looking forward to seeing your feedback.
Thanks in advance.
meerd

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>

#include <correct.h>

/* ################################ ========================================= */

#define DATA_LENGTH     4
#define ECC_LENGTH      4
#define PAYLOAD_LENGTH  (DATA_LENGTH + ECC_LENGTH)

#define SAMPLE_COUNT   5

#define dump_bytes(msg, buf, size) \
    do { \
        unsigned int ctr_dump_bytes = 0; \
        printf("| %s | = ", msg); \
        for (; ctr_dump_bytes < (size); ++ctr_dump_bytes) \
            printf("0x%02x ", ((uint8_t *)(buf))[ctr_dump_bytes]); \
        printf("\n"); \
    } while (0)

/* ################################ ========================================= */
/* A simple encode & decode test. */
/* ################################ ========================================= */
void rs_test1(correct_reed_solomon *ctx)
{
    const uint8_t data[DATA_LENGTH]                 = { 0xde, 0xad, 0xbe, 0xef };
    const uint8_t expected_payload[PAYLOAD_LENGTH]  = { 0xde, 0xad, 0xbe, 0xef, 0x83, 0x86, 0xc9, 0xee };
    uint8_t encoded[PAYLOAD_LENGTH]                 = { 0x00 };
    uint8_t decoded[PAYLOAD_LENGTH]                 = { 0x00 };
    ssize_t result;

    fprintf(stdout, "Running %s...\n", __FUNCTION__);

    dump_bytes("Encoded bytes:", encoded, PAYLOAD_LENGTH);
    /* Compare */
    result = correct_reed_solomon_encode(ctx, data, DATA_LENGTH, encoded);
    /* 255 is returned by the library */
    assert(255 == result);

    /* Compare the expected output with encoded buffer.  */
    result = memcmp(expected_payload, encoded, PAYLOAD_LENGTH);
    dump_bytes("Encoded bytes:", encoded, PAYLOAD_LENGTH);
    assert(0 == result);

    /* Decode the encoded buffer. */
    result = correct_reed_solomon_decode(ctx, encoded, PAYLOAD_LENGTH, decoded);
    /* See if the remaining bytes are still zero. */
    dump_bytes("Decoded bytes:", decoded, PAYLOAD_LENGTH);
    assert(DATA_LENGTH == result);

    /* Compare the decoded buffer with the original data. */
    result = memcmp(data, decoded, DATA_LENGTH);
    assert(result == 0);

    fprintf(stdout, "###################################\n");
    fprintf(stdout, "%s passed!\n", __FUNCTION__);
    fprintf(stdout, "###################################\n");
}

/* ################################ ========================================= */
/* Some of the payloads includes errors, but all should be able to be recovered. */
/* ################################ ========================================= */

void rs_test2(correct_reed_solomon *ctx)
{
    uint8_t recoverable_payload[SAMPLE_COUNT][PAYLOAD_LENGTH] = {
                                                                   { 0x11, 0x11, 0x11, 0x11, 0x6a, 0xec, 0x1b, 0x9d },
                                                                   { 0x56, 0xd4, 0xaa, 0xe3, 0x19, 0x90, 0xac, 0xee },
                                                                   { 0xff, 0xff, 0xff, 0xff, 0x1c, 0x8d, 0x99, 0x60 },
                                                                   { 0xaa, 0x00, 0xaa, 0xaa, 0xa3, 0xf6, 0x00, 0xbb },
                                                                   { 0x24, 0x00, 0x38, 0x90, 0x8b, 0x71, 0xff, 0x76 }
                                                                };
    int failure = 0;
    int i;

    fprintf(stdout, "Running %s...\n", __FUNCTION__);

    for (i = 0; i < SAMPLE_COUNT; ++i) {
        uint8_t buf[DATA_LENGTH] = { 0x00 };
        ssize_t result = correct_reed_solomon_decode(ctx, recoverable_payload[i], PAYLOAD_LENGTH, buf);

        failure += (DATA_LENGTH != result);
        fprintf(stdout, "Decoding result for distorted input (idx: %d): %s\n", i, ((DATA_LENGTH == result) ? "SUCCESS" : "FAILURE")) ;
    }

    fprintf(stdout, "###################################\n");
    /* If no failures has been detected so far, then the test passed! */
    if (0 == failure)
        fprintf(stdout, "%s passed!\n", __FUNCTION__);
    else
        fprintf(stdout, "%s FAILED!\n", __FUNCTION__);
    fprintf(stdout, "###################################\n");
}

/* ################################ ========================================= */
/* The last four bytes of all payloads distorted intentionally. All of the
 * decoding attempts are expected to fail. */
/* ################################ ========================================= */
void rs_test3(correct_reed_solomon *ctx)
{

    uint8_t sample_data[SAMPLE_COUNT][DATA_LENGTH] = {
                                                        { 0xaa, 0xaa, 0xaa, 0xaa },
                                                        { 0xff, 0xff, 0xff, 0xff },
                                                        { 0x4f, 0xf3, 0x89, 0x18 },
                                                        { 0x12, 0x34, 0x56, 0x78 },
                                                        { 0x24, 0xff, 0x38, 0x90 }
                                                     };

    uint8_t expected_payload[SAMPLE_COUNT][PAYLOAD_LENGTH] = {
                                                                { 0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0xf6, 0xee, 0xbb },
                                                                { 0xff, 0xff, 0xff, 0xff, 0x7c, 0x8d, 0x99, 0x68 },
                                                                { 0x4f, 0xf3, 0x89, 0x18, 0x31, 0x23, 0x07, 0x38 },
                                                                { 0x12, 0x34, 0x56, 0x78, 0x54, 0x56, 0x20, 0x2a },
                                                                { 0x24, 0xff, 0x38, 0x90, 0x8b, 0x71, 0xff, 0x76 }
                                                            };

    uint8_t distorted_ecc[SAMPLE_COUNT][ECC_LENGTH] = {
                                                        { 0x00, 0x00, 0x00, 0x00 },
                                                        { 0xff, 0xff, 0xff, 0xff },
                                                        { 0xb7, 0x1f, 0xff, 0x75 },
                                                        { 0xff, 0xff, 0xff, 0xff },
                                                        { 0x8b, 0x71, 0xff, 0x76 }
                                                     };

    int failure = 0;

    uint8_t buf[PAYLOAD_LENGTH];
    int i;

    fprintf(stdout, "Running %s...\n", __FUNCTION__);

    for (i = 0; i < SAMPLE_COUNT; ++i) {
        /* Clean the contents */
        memset(buf, 0x00, sizeof(buf));
        /* Encode sample_data[i] */

        ssize_t result = correct_reed_solomon_encode(ctx, sample_data[i], DATA_LENGTH, buf);

        assert(255 == result);

        fprintf(stdout, "Checking encoded data integrity (%d)...\n", i);
        dump_bytes("Encoded value:", buf, PAYLOAD_LENGTH);

        if (memcmp(expected_payload[i], buf, PAYLOAD_LENGTH)) {
            dump_bytes("Expected payload:", expected_payload[i], PAYLOAD_LENGTH);
            fprintf(stdout, "\n Encoding failed!\n");
            abort();
        } else {
            fprintf(stdout, " OK!\n");
        }
    }

    for (i = 0; i < SAMPLE_COUNT; ++i) {
       uint8_t output[PAYLOAD_LENGTH] = { 0x00 };
       ssize_t result = 0;

       /* Copy data */
       memcpy(buf, sample_data[i], DATA_LENGTH);
       /* Intentionally distort ecc values completely */
       memcpy(buf + DATA_LENGTH, distorted_ecc[i], ECC_LENGTH);
       /* Print modified payload */
       dump_bytes("Data with distorted ECC:", buf, PAYLOAD_LENGTH);
       /* Decode modified payload. The function is EXPECTED to fail! */
       result = correct_reed_solomon_decode(ctx, buf, PAYLOAD_LENGTH, output);

       fprintf(stdout, "Decoding result for distorted input (idx: %d): %s\n", i, ((DATA_LENGTH == result) ? "DECODING SUCCESS (False Positive!)" : "DECODING FAILURE")) ;
       failure += (DATA_LENGTH == result);
    }

    fprintf(stdout, "###################################\n");
    /* If no failures has been detected so far, then the test passed! */
    if (0 == failure)
        fprintf(stdout, "%s passed!\n", __FUNCTION__);
    else
        fprintf(stdout, "%s FAILED!\n", __FUNCTION__);
    fprintf(stdout, "###################################\n");
}

/* ################################ ========================================= */

int main(void)
{
    const uint16_t primitive_polynomial   = correct_rs_primitive_polynomial_8_4_3_2_0;
    const uint8_t  first_consecutive_root = 0;
    const uint8_t  generator_root_gap     = 1;
    const uint8_t  num_roots              = 4;

    /* Create reed solomon codec instance */
    correct_reed_solomon *ctx = correct_reed_solomon_create(primitive_polynomial,
                                                            first_consecutive_root,
                                                            generator_root_gap,
                                                            num_roots);
    assert(0 != ctx);

    rs_test1(ctx);
    rs_test2(ctx);
    rs_test3(ctx);

    /* Destroy rs codec instance. */
    correct_reed_solomon_destroy(ctx);

    fprintf(stdout, "All tests completed successfully!\n");

    return 0;
}

Hi @meerd
In general, Reed-Solomon doesn't make any guarantees about what happens once you exceed the error-correction capabilities. There simply isn't enough information present to know whether this has happened. If you want to check the integrity of your data, add a checksum/CRC. You can verify your checksum after error correction, so that the checksum will only fail when the error rate exceeds the correction capacity.


Create 0000-01-02-gigamon-ui.md

this is from the training course, add a second slide

add my slide


Error impls seem to require unneccessary bounds

When trying to use the errors in certain ways, I get errors with certain error frameworks because simple things will not enable the Error impls such as
impl<Src, Dst> Error for SizeError<Src, Dst>
where
    Src: Deref
    Dst: KnownLayout+ ?Sized

Are these bounds really needed? It causes issues where I can't propogate errors in simple cases:
use std::error::Error;

use zerocopy::{FromBytes, Immutable, IntoBytes, KnownLayout, Unaligned, LE, U32};

#[derive(
    Debug, Clone, Copy, Hash, PartialEq, Eq, FromBytes, IntoBytes, KnownLayout, Immutable, Unaligned,
)]
#[repr(C)]
pub struct Test {
    pub test: U32<LE>,
}

fn impls_err(_err: impl Error) {}

fn main() {
    let mut buf = vec![0u8; 32];
    let buf = &mut buf;

    impls_err(Test::ref_from_bytes(&buf[..4]).unwrap_err().map_src(drop));
}

which gives the error
error[E0277]: the trait bound `(): Deref` is not satisfied
  --> src/main.rs:19:15
   |
19 |     impls_err(Test::ref_from_bytes(&buf[..4]).unwrap_err().map_src(drop));
   |     --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deref` is not implemented for `()`, which is required by `ConvertError<AlignmentError<(), Test>, SizeError<(), Test>, Infallible>: std::error::Error`
   |     |
   |     required by a bound introduced by this call
   |
   = help: the trait `std::error::Error` is implemented for `ConvertError<A, S, V>`
   = note: required for `AlignmentError<(), Test>` to implement `std::fmt::Display`
   = note: required for `ConvertError<AlignmentError<(), Test>, SizeError<(), Test>, Infallible>` to implement `std::error::Error`
note: required by a bound in `impls_err`
  --> src/main.rs:13:25
   |
13 | fn impls_err(_err: impl Error) {}
   |                         ^^^^^ required by this bound in `impls_err`

There are other impls that have the same problem

After you bubble up the error, are you reflecting on the structure of the error (e.g., downcasting it back to its concrete type and matching on it) or are you just pretty-printing it as a human readable message?
If it's the latter, then instead we recommend eagerly calling .to_string() on the error, and bubbling up that message instead. For example, if you were use eyre, you might do: .map_err(|error| Report::msg(error.to_string())).

No there is nothing particularly special I am doing, various error frameworks take anything that implements Error. The new error types have a Src that can be very useful, but due to lifetime constraints it often cannot be returned. The documentation notes this and explicitly recommends .map_src(drop), but due to the strange bounds (the traits don't seem to actually be used unless I am missing something obvious?). I could just use .ok() and propogate a None instead, but it would be nice to have the new extra error information. I also definitely do not want to allocate strings in my use case.
The definition in the source code is
impl<Src, Dst: ?Sized> Error for AlignmentError<Src, Dst>
where
    Src: Deref,
    Dst: KnownLayout,
{
}

but why is the Deref bound required in the first place? Maybe there is some alternate error format that can easily be converted to with some other function on the CastError type?

For AlignmentError, we require Deref so we can print the source address and what power of 2 it's a multiple of.


Decrease container size for files that have no preview, and no need for space

We could make it flexible so the text has a standard 'x' amount of padding, but the true size is determined by the content. Then each regular file opener widget would be different sizes depending on the text. We probably need to set a max and min size too though


Replaced master with main

THIS REQUEST SOLVES #984 .
In some code lines master was not replaced as it was indicating a path to a directory or link. Below is the output obtained by git grep -n master
.ci/dffml-install.sh:4:if [ "x${DFFML_RELEASE}" == "xmaster" ]; then
.ci/run.sh:161:  added_to_changelog=$(git diff origin/master --numstat -- CHANGELOG.md
.ci/run.sh:216:  # Make master docs
.ci/run.sh:217:  master_docs="$(mktemp -d)"
.ci/run.sh:218:  TEMP_DIRS+=("${master_docs}")
.ci/run.sh:222:  mv pages "${master_docs}/html"
.ci/run.sh:249:  mv "${master_docs}/html" "${release_docs}/html/master"
.ci/run.sh:256:  mv build/ "${release_docs}/html/master/webui"
.ci/run.sh:266:  # Don't push docs unless we're running on master
.ci/run.sh:267:  if [ "x${GITHUB_ACTIONS}" == "xtrue" ] && [ "x${GITHUB_REF}" != "xrefs/heads/master" ]; then
.ci/run.sh:285:  git checkout master
.ci/run.sh:293:  docker build --build-arg DFFML_RELEASE=master -t intelotc/dffml .
CHANGELOG.md:272:  documentation for the master branch (on GitHub pages).
CONTRIBUTING.md:3:Please see the contributing docs page.
Dockerfile:89:# The release of dffml we're using, latest is the latest PyPi release, master is
Dockerfile:90:# the master branch
README.md:3:
README.md:5:
README.md:37:Documentation for the master branch is hosted at
README.md:38:https://intel.github.io/dffml/master/index.html
README.md:42:The contributing page
configloader/image/setup_common.py:42:    url=f"https://github.com/dffml/blob/master/configloader/image/README.md",
configloader/yaml/setup_common.py:42:    url="https://github.com/intel/dffml/blob/master/configloader/yaml/README.md",
dffml/df/memory.py:968:        # Acquire the master lock to find and or create needed locks
dffml/skel/model/README.md:9:
docs/conf.py:5:# http://www.sphinx-doc.org/en/master/config
docs/conf.py:95:    "github_version": "master",
docs/contributing/dev_env.rst:35:   The version you want is https://intel.github.io/dffml/master/ if you are
docs/contributing/dev_env.rst:39:   looking at should say /master/ in the URL. The URL you are currently on
docs/contributing/dev_env.rst:40:   should be https://intel.github.io/dffml/master/contributing/dev_env.html
docs/contributing/dev_env.rst:42:   This docs without /master/ in the URL are built from the latest release.
docs/contributing/dev_env.rst:44:   The docs with /master/ in the URL are built from the master branch.
docs/contributing/dev_env.rst:45:   The master branch is what you get when you clone the Git repo, which we're
docs/contributing/git.rst:26:    $ git checkout -b my_new_thing origin/master
docs/contributing/git.rst:99:latest changes from the master branch and merge or rebase them into your
docs/contributing/git.rst:143:|              | because you need to merge or rebase origin/master into your   |
docs/contributing/git.rst:149:- You need to grab the latests changes from the master branch. Maybe you need to
docs/contributing/gsoc/2019.md:59:- Follow the README and make sure you can run the tensorflow and git examples, Looking at the [Travis CI](https://
travis-ci.org/intel/dffml) may come in handy here.
docs/contributing/gsoc/2019.md:60:- Run the tests. DFFML has unit tests which are at about 90% coverage (amount of lines of code tested) for the main li
brary, the Git features, and the Tensorflow model. Make sure you know h
ow to run them, and if you've never done Python unittests before you might want to read up on python's unittest library.  Figure out how to run a single
test! Running one test instead of all of them will speed up your workflow when you are writing your tests!
docs/contributing/gsoc/2019.md:64:  - Write a new feature! Features can do anything you want, they generate some data based on a unique key, think of them like
a scraper, see the new feature guide for more info. Make sure to include tests!
docs/contributing/gsoc/2019.md:65:  - Write a new model! Models are wrappers around any machine learning implementation or library, see the [new model guide](ht
tps://github.com/intel/dffml/tree/master/docs/tutorial/MODEL.md) for more info. Make sure to include tests!
docs/contributing/gsoc/2021.md:18:Read more on the about page: https://intel.github.io/dffml/master/about.html
docs/contributing/gsoc/2021.md:52:  contributing page
docs/contributing/gsoc/2021.md:63:- Run the tests. DFFML has
docs/contributing/gsoc/2021.md:91:    new model tutorials
docs/contributing/gsoc/2021.md:115:Here's a template
docs/contributing/gsoc/2021.md:122:Please see the rubric page for the project proposal
docs/contributing/maintainers.rst:55:- Switch to the master branch
docs/contributing/maintainers.rst:59:- Push the master branch
docs/contributing/maintainers.rst:73:    $ git checkout master
docs/examples/shouldi.rst:158:    examples/shouldi <https://github.com/intel/dffml/blob/master/examples/shouldi/>_
docs/examples/webhook/deploy.rst:13:    examples/ffmpeg <https://github.com/intel/dffml/blob/master/examples/ffmpeg/>_
docs/examples/webhook/deploy.rst:100:to be output to. An example video is available here <https://github.com/intel/dffml/raw/master/examples/ffmpeg/input.mp4>_ .
docs/index.rst:4:.. image:: https://github.com/intel/dffml/workflows/Tests/badge.svg?branch=master&event=push
docs/index.rst:7:.. image:: https://codecov.io/gh/intel/dffml/branch/master/graph/badge.svg
docs/index.rst:36:This is the documentation for the latest release, documentation for the master
docs/index.rst:37:branch can be found here <master/index.html>.
docs/index.rst:82:    Master Branch Docs https://intel.github.io/dffml/master/
docs/installation.rst:116:the master branch.
docs/installation.rst:125:            $ python -m pip install -U "https://github.com/intel/dffml/archive/master.zip#egg=dffml"
docs/installation.rst:131:            (.venv) C:\Users\username> python -m pip install -U "https://github.com/intel/dffml/archive/master.zip#egg=dffml"
docs/installation.rst:144:            $ python -m pip install -U "https://github.com/intel/dffml/archive/master.zip#egg=dffml"
docs/installation.rst:145:                "https://github.com/intel/dffml/archive/master.zip#egg=dffml-feature-git&subdirectory=feature/git"
docs/installation.rst:151:            (.venv) C:\Users\username> python -m pip install -U "https://github.com/intel/dffml/archive/master.zip#egg=dffml" ^
docs/installation.rst:152:                "https://github.com/intel/dffml/archive/master.zip#egg=dffml-feature-git&subdirectory=feature/git"
docs/installation.rst:156:right away. However, it comes with the master branch installed, you'll need to
docs/tutorials/dataflows/chatbot.rst:22:    examples/dataflow/chatbot <https://github.com/intel/dffml/blob/master/examples/dataflow/chatbot>
docs/tutorials/dataflows/locking.rst:11:    examples/dataflow/locking <https://github.com/intel/dffml/blob/master/examples/dataflow/locking>_
docs/tutorials/models/docs.rst:180:consoletest <https://github.com/intel/dffml/tree/master/dffml/util/testing/consoletest>_
examples/shouldi/README.md:3:
examples/shouldi/README.md:53:  - golangci-lint
examples/shouldi/setup.cfg:11:url = https://github.com/intel/dffml/blob/master/examples/shouldi/README.md
examples/swportal/README.rst:8:examples/swportal <https://github.com/intel/dffml/blob/master/examples/swportal/>_
feature/auth/setup.py:29:    url="https://github.com/intel/dffml/blob/master/feature/auth/README.md",
feature/git/README.md:7:
feature/git/setup.py:30:    url="https://github.com/intel/dffml/blob/master/feature/git/README.md",
model/autosklearn/dffml_model_autosklearn/init.py:25:    $ curl https://raw.githubusercontent.com/automl/auto-sklearn/master/requirements.txt | xargs -n 1 -L 1 python3 -m pip install
model/autosklearn/dffml_model_autosklearn/init.py:27:For more information about installation visit https://automl.github.io/auto-sklearn/master/installation.html#installation
model/autosklearn/dffml_model_autosklearn/autoregressor.py:50:    Implemented using AutoSklearnRegressor <https://automl.github.io/auto-sklearn/master/api.html#regression>_.
model/daal4py/README.md:9:
model/scikit/setup.py:41:    url="https://github.com/intel/dffml/blob/master/model/scikit/README.md",
model/scratch/setup.py:32:    url="https://github.com/intel/dffml/blob/master/model/scratch/README.md",
model/spacy/setup_common.py:42:    url="https://github.com/intel/dffml/blob/master/model/spacy/README.md",
model/tensorflow/README.md:5:
model/tensorflow/setup.py:30:    url="https://github.com/intel/dffml/blob/master/model/tensorflow/README.md",
model/tensorflow_hub/README.md:13:For tokenizatin needed by BERT models dffml_model_tensorflow_hub uses code from ,
model/tensorflow_hub/dffml_model_tensorflow_hub/tfhub_utils.py:3:https://github.com/google-research/bert/blob/master/tokenization.py.
model/tensorflow_hub/dffml_model_tensorflow_hub/tfhub_utils.py:5:https://github.com/google-research/bert/blob/master/LICENSE (Apache License 2.0)
model/tensorflow_hub/setup.py:30:    url="https://github.com/intel/dffml/blob/master/model/tensorflow_hub/README.md",
model/vowpalWabbit/setup.py:41:    url="https://github.com/intel/dffml/blob/master/model/vowpalWabbit/README.md",
news/origin_master_August_15_2019.txt:1:========================= origin/master news everyone! =========================
news/origin_master_August_15_2019.txt:5:happing lately in the master branch. We're due for a release soon! The next
news/origin_master_August_15_2019.txt:16:Labels for CSV sources were merged into master. Enabling users to save multiple
news/origin_master_August_15_2019.txt:50:learning library (sklearn) have been merged into master. With these additions
operations/binsec/setup.py:30:    url="https://github.com/intel/dffml/blob/master/operations/binsec/README.md",
operations/deploy/tests/test_operations.py:62:            "ref": "refs/master",
operations/deploy/tests/test_operations.py:65:                "default_branch": "master",
operations/image/dffml_operations_image/operations.py:56:    # Reference: https://docs.opencv.org/master/d8/d01/group__imgproc__color__conversions.html#ga4e0972be5de079fed4e3a10e24ef5ef0
scripts/check_literalincludes.py:47:        ["git", "diff-index", "origin/master"]
scripts/docs.sh:34:  curl -sSL -o pages/_static/copybutton.js "https://raw.githubusercontent.com/python/python-docs-theme/master/python_docs_theme/static/copybutton.js"
service/http/docs/conf.py:5:# http://www.sphinx-doc.org/en/master/config
service/http/setup.py:41:    url=f"https://github.com/{ORG}/dffml/tree/master/service/http",
source/mysql/setup_common.py:42:    url=f"https://github.com/{ORG}/dffml/blob/master/source/{NAME}/README.md",
tests/db/test_sqlite.py:43:                "SELECT count(name) FROM sqlite_master "
tests/operation/test_sqlite_query.py:85:                        "SELECT count(name) FROM sqlite_master "

@pdxjohnny let me know if any change needs to be done

Codecov Report

Merging #1031 (bbec612) into master (1618014) will decrease coverage by 0.07%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1031      +/-   ##
==========================================
- Coverage   84.85%   84.78%   -0.08%
==========================================
  Files         143      143
  Lines        9434     9430       -4
  Branches     1602     1602
==========================================
- Hits         8005     7995      -10
- Misses       1107     1114       +7
+ Partials      322      321       -1

Impacted Files
Coverage Δ

dffml/util/data.py
72.92% <0.00%> (-2.77%)
:arrow_down:

tests/util/test_net.py
98.24% <0.00%> (-1.76%)
:arrow_down:

dffml/noasync.py
78.18% <0.00%> (-1.13%)
:arrow_down:

dffml/util/testing/consoletest/commands.py
75.35% <0.00%> (-0.06%)
:arrow_down:

dffml/source/df.py
76.54% <0.00%> (ø)

Continue to review full report at Codecov.

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

We're going to wait for #732 to be complete before merging this


Generalize Nextflow pipeline

Find a way to get all the scripts running without OM-specific / CPL-specific things hard-coded.

Done!


Build Issue with Netty io.netty:netty-tcnative-classes Dependency

Build failure with the below failure. I was able to get past it build and tests complete successfully by adding it to the exclusion list for the Spark Core dependency. I can open a PR with that change but am curious whether others have seen the same and/or whether someone knows whether netty-tc-native-classes are needed.
It does appear to be included in the netty-all pom.xml as an explicit dependency so it should be fine to exclude here.
The same is done inside of the netty-all pom for the netty-handler then it is explicitly added as a dependency with the appropriate version to netty-all.
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for onetable 0.1.0-SNAPSHOT:
[INFO]
[INFO] onetable ........................................... SUCCESS [  1.097 s]
[INFO] api ................................................ SUCCESS [  4.518 s]
[INFO] hudi-support ....................................... SUCCESS [  0.020 s]
[INFO] hudi-utils ......................................... SUCCESS [  3.001 s]
[INFO] core ............................................... FAILURE [  0.633 s]
[INFO] utilities .......................................... SKIPPED
[INFO] hudi-extensions .................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  9.371 s
[INFO] Finished at: 2023-12-09T00:26:27-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project onetable-core: Could not resolve dependencies for project io.onetable:onetable-core:jar:0.1.0-SNAPSHOT: Failed to collect dependencies at org.apache.spark:spark-core_2.12:jar:3.2.1 -> org.apache.spark:spark-network-common_2.12:jar:3.2.1 -> io.netty:netty-all:jar:4.1.74.Final -> io.netty:netty-tcnative-classes:jar:2.0.48.Final: Failed to read artifact descriptor for io.netty:netty-tcnative-classes:jar:2.0.48.Final: Could not transfer artifact io.netty:netty-tcnative-classes:pom:2.0.48.Final from/to central (https://repo.maven.apache.org/maven2): /home/lmccay/.m2/repository/io/netty/netty-tcnative-classes/2.0.48.Final/netty-tcnative-classes-2.0.48.Final.pom.part.lock (No such file or directory) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn  -rf :onetable-core

Okay, I've verified that the following class from the netty-tcnative-classes ends up in the ./utilities/target/utilities-0.1.0-SNAPSHOT-bundled.jar after packaging even with the exclusion.
I will open a PR to get the exclusion in.

@lmccay I haven't seen this issue before and the build is passing on CI where we also create that jar. Have you tried clearing that entry from your local maven cache (.m2 dir)? I'll take a look at your PR as well

That does seem to have fixed it. Don't understand why that would be but I didn't understand why it wasn't working to begin with. I did have to sudo to clear it though - maybe it was a permissions issue from another build or something.
Ahh - that does seem to be it - here is an example...
rwxrwxr-x  6 lmccay lmccay 4096 Dec  8 23:20 netty-codec-stomp
drwxrwxr-x  6 lmccay lmccay 4096 Dec  8 23:20 netty-codec-xml
drwxrwxr-x 15 lmccay lmccay 4096 Dec  8 23:20 netty-common
drwxrwxr-x 14 lmccay lmccay 4096 Dec  8 23:20 netty-handler
drwxrwxr-x 10 lmccay lmccay 4096 Dec  8 23:20 netty-handler-proxy
drwxr-xr-x  3 root   root   4096 Dec 14  2022 netty-handler-ssl-ocsp
drwxrwxr-x 18 lmccay lmccay 4096 Dec  8 23:20 netty-parent
drwxrwxr-x 14 lmccay lmccay 4096 Dec  8 23:20 netty-resolver
drwxrwxr-x  9 lmccay lmccay 4096 Dec  8 23:20 netty-resolver-dns
drwxrwxr-x  6 lmccay lmccay 4096 Dec  8 23:20 netty-resolver-dns-classes-macos
drwxrwxr-x  6 lmccay lmccay 4096 Dec  8 23:20 netty-resolver-dns-native-macos
We must not be pulling in netty-handler-ssl-ocsp which is why it is working and now netty-tcnative-classes is lmccay which is why it is working.
We can ignore the PR though it does seem to be redundantly pulled from spark-core and netty-all anyway. Might run into version issues that way.

Ok can you mark the PR and this issue as closed if you think things are ok for now? If others report something similar we can spend some more time looking at it.


Proposal: Computed Indices

Though pouchdb offers user friendly access to powerful functionality, it is fundamentally limited compared to map/reduce (see https://github.com/nolanlawson/pouchdb-find/issues/21#issuecomment-91207774). Even with adding more and more features to the selector, this will still leave the computational load in the find routine rather than shifting it into the indexing where it could be performed once and allow highly efficient queries like they can be performed with map/reduce.
I propose the introducion of "computed indices", which will allow most - if not all - of the performance of map/reduce as a clean and elegant extension of the existing pouchdb-find concept:
+Proposal:+
The db.createIndex function could have an optional argument 'map' of type 'function(doc)' that processes each document and returns a list of values that should be placed into the index. The 'fields' argument would in this case not refer to actually existing fields, but instead to "virtual" fields available for use in the find selector just like regular indexed fields.
+Notes:+

I am not quite sure how the plural form "fields" should be adjusted. Even now, it is not clear to me what the difference is between one index with multiple fields and multiple indices...
instead of a function returning values, one could also use the 'emit' function call syntax as in map/reduce. This is mostly a matter of taste.

With this straightforward extension, one could do complex combination of fields and costly computations at indexing time while greatly reducing the complexity and cost of the selection process.

I think your analysis is fairly correct but the goal of pouchdb-find is to just copy exactly what the Cloudant/CouchDB Mango query language provides. For computed indexes I think the stance of Cloudant/CouchDB folks is that precomputed fields should be added directly to the document so that you can then index them directly. I agree it's not a perfect solution, though.
For all other cases map/reduce is still supported and will be indefinitely supported. :)

Pre-computed fields are not an alternative to a powerful indexing mechanism. They do not offer any internal consistency guarantee, which is one of essential features of a database system.
From the pouchdb-find intro page, it sounds like map/reduce is kept only for legacy reasons but considered deprecated. Without a more powerful indexing mechanism, I would rather call pouch-find the comfortable entry-level solution and map/reduce the full-featured expert solution.
Personally, I find it rather diappointing to be able to start with the comfortable solution and then have to re-learn a very different syntax when I reach more advanced use-cases. Specifically, I have started pouchdb-live-find, which offers exactly the features I need. Now I need to rewrite lots of code to use map/reduce instead.
Are the Cloudant developers open to suggestions? Do you have an idea where to bring up this kind of suggestion? Is there any place where the pre-computed field solution has been discussed?

Hi @NNemec, the best way to bring up this idea is on the CouchDB dev mailing list - scroll down to the mailing list section.
Your proposal feels a lot like just using Map/Reduce. But I do agree PouchDB-Find/Mango is a bit limited at the moment. We do need to add more functionality. The best way to do that is through the CouchDB mailing list.
I'm going to close this PR.

After an encouragement from the mailing list, I just created https://issues.apache.org/jira/browse/COUCHDB-3280


Create sol1.cpp

provided the solution for project euler question 26

just tried to help out with project euler problem 26 bute force algorithm.

just provided the in depth solution of 3 project euler problems and would be contributing other problems too


Update OB Build Pipeline to Pass Build Tag as Var

Which issue this PR addresses:
Fixes
https://dev.azure.com/msazure/AzureRedHatOpenShift/_workitems/edit/13675519
What this PR does / why we need it:
OneBranch pipelines do not support building from a release tag (fails pre-build validation steps).  This is a workaround to support the RH team to still use release tags.
So long a commitid has a release tag associated with it, we will be able to derive the tag and attach it to the container at build time.  Otherwise, we will attach the commitid.
Test plan for issue:
https://dev.azure.com/msazure/AzureRedHatOpenShift/_build/results?buildId=53181311&view=results
Is there any documentation that needs to be updated for this PR?
https://dev.azure.com/msazure/AzureRedHatOpenShift/_wiki/wikis/ARO.wiki/233405/Performing-Release

/azp run ci

/azp run ci

/azp run ci

@mikeandescavage I need to clarify how the trigger works. Is the pipeline triggered for each commit or it is triggered manually? I cannot find it in the templates and I see trigger none.
Maybe we can trigger the pipeline after our successful checks?

@petrkotas the trigger is defined in the UI of ADO for the pipeline.  I'll send a screenshot via Teams


Add BCRMSE to the list of zero_perf_score_stats

Zero is the perfect score for both RMSE and BCRMSE. Need to apply to BCRMSE the same significance testing as for RMSE
Describe the Problem
significance testing is not applied to BCRMSE
Expected Behavior
Add BCRMSE to the list of the zero perfect score statistics in R script perfectScoreAdjustment and Python perfect_score_adjustment
Environment
To Reproduce
Relevant Deadlines
NONE.
Funding Source
NONE.
Define the Metadata
Assignee

[ ] Tatiana Burek
[ ] Select scientist(s) or no scientist required

Labels

[ ] Select component(s)
[ ] Select priority
[ ] Select requestor(s)

Projects and Milestone

[ ] Review projects and select relevant Repository and Organization ones
[ ] Select milestone

Define Related Issue(s)
Bugfix Checklist
See the METplus Workflow for details.

[ ] Complete the issue definition above.
[ ] Fork this repository or create a branch of master_<Version>.
Branch name:  bugfix_<Issue Number>_master_<Version>_<Description>
[ ] Fix the bug and test your changes.
[ ] Add/update unit tests.
[ ] Add/update documentation.
[ ] Push local changes to GitHub.
[ ] Submit a pull request to merge into master_<Version>.
Pull request: bugfix <Issue Number> master_<Version> <Description>
[ ] Iterate until the reviewer(s) accept and merge your changes.
[ ] Delete your fork or branch.
[ ] Complete the steps above to fix the bug on the develop branch.
Branch name:  bugfix_<Issue Number>_develop_<Description>
Pull request: bugfix <Issue Number> develop <Description>
[ ] Close this issue.

deployed to AWS as a patch


import error

Traceback (most recent call last):
File "C:/Users/GAURAV/PycharmProjects/Object_Detection/object", line 9, in
from utils import label_map_util
ImportError: cannot import name 'label_map_util'

@gauravbisht098 hey! try this from object_detection.utils import label_map_util and see if it works!

I did but then it said no object detection module found
On Wed, 10 Apr, 2019, 9:59 AM Aman Patel<EMAIL_ADDRESS>wrote:

@gauravbisht098 https://github.com/gauravbisht098 hey! try this from
object_detection.utils import label_map_util and see if it works!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/27693#issuecomment-481528138,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYOKGq2vAmh51hBuU80DSSDnxKO_-BT4ks5vfWiwgaJpZM4clLtn
.

@gauravbisht098 pip install utils again and see if it works! also update me if it worked

I already did
On Wed, 10 Apr, 2019, 10:30 AM Aman Patel<EMAIL_ADDRESS>wrote:

@gauravbisht098 https://github.com/gauravbisht098 pip install utils
again and see if it works! also update me if it worked
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/27693#issuecomment-481533623,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYOKGuroJe2OyIDYnPKQBrpd5cMCC_1Pks5vfW_2gaJpZM4clLtn
.

This issue is more suitable on tensorflow/models repo. Please take a look at duplicate issue https://github.com/tensorflow/models/issues/1990

Can you send me a best object detection code..???
On Thu, 11 Apr, 2019, 9:00 AM ymodak<EMAIL_ADDRESS>wrote:

This issue is more suitable on tensorflow/models
https://github.com/tensorflow/models/issues/new repo. Please take a
look at duplicate issue tensorflow/models#1990
https://github.com/tensorflow/models/issues/1990
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/27693#issuecomment-481950610,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYOKGgGNyntkoiaHEdDwg9Bf2LFM9yjfks5vfqxygaJpZM4clLtn
.


scipy.cluster.hierarchy.optimal_leaf_ordering does not return the right ordering (though it does implicitly compute it)

It computes enough data to find the correct answer with dynamic programming, but if you look at how the loop works in identify_swaps it is actually building the returned ordering greedily as it traverses the tree of clusters bottom-up.  The assumption that would justify this is if the optimal ordering for a subtree must appear (possibly reversed) as part of the ordering of the entire tree, but if this were true the entire computation could use a greedy algorithm and finish in linear time.  Unfortunately it is not true.  A small test case:
import scipy.cluster.hierarchy as hi
import numpy as np

print(hi.linkage(np.array([2,10,10000,1,3,100],dtype=np.float),optimal_ordering=True))

resulting in
[[2. 1. 1. 2.]
 [4. 0. 2. 3.]
 [3. 5. 3. 4.]]

The inter-leaf distances for this ordering are 100, 1, 2 for a total of 103.  The optimal leaf ordering is
[[1. 2. 1. 2.]
 [4. 0. 2. 3.]
 [3. 5. 3. 4.]]

with leaves 1 and 2 reversed.  The inter-leaf distances here are 3, 1, 10 for a total of 14.  As you can see by playing with this example, the result can be off by an arbitrarily large factor even when clustering only 4 points.

@jamestwebber any thoughts on this one?

Oh no! @adrianveres might have more useful thoughts, as my PR was primarily an integration of their project polo. But I should have tested this more thoroughly.
On the other hand this issue is obsolete if we implement the suggestion in #11228 and switch algorithms.

Ah, now that I have the time to look into this: the given example does not satisfy the triangle inequality and I don't know if any solution can guarantee good performance in that case (besides enumeration). So I'm not sure if this is as big a defect as I initially feared, if we assume that we're clustering a distance matrix. But I have read the other algorithm and it seems relatively straight-forward--I'll try to implement something this week.

The original paper doesn't claim to require a metric, but if you want an example for that case, [101,103,203,100,102,202] works.  By padding with more zeros in the middle (e.g. [100001,100003,200003,100000,100002,200002] you can get arbitrarily close to a 4/3 ratio of produced/optimal.  Probably can't do "better" than a fixed ratio here, at least without adding additional points.

Yeah I didn't see any mention of requiring a metric but I have a hunch that it's implicitly assumed (given that they have a tree as input). Maybe not though. The O(n^3) paper does assume a metric though.
Clearly I didn't get to this last week, but implementing the new algorithm is on my to-do list. I will refrain from giving an estimate this time as it will depend on other obligations.

The O(n^4) paper https://people.csail.mit.edu/tommi/papers/BarGifJaa-ismb01.pdf definitely doesn't assume a metric as it even states the problem as maximizing a sum of similarities rather than minimizing a sum of distances ... the O(n^3) does state the assumption, but I couldn't find a place where this assumption is actually used in their algorithm.

Just ran into this issue, and came to post a reproduction. Surprised to find there is already an open issue from years ago.
Anyway, here's my reproduction if it's any help:

import numpy as np
import matplotlib.pyplot as plt
import itertools

from scipy.spatial.distance import squareform
from scipy.cluster.hierarchy import linkage, dendrogram, leaves_list

D = np.array([[0.        , 0.46680166, 0.7747411 , 0.79942054],
       [0.46680166, 0.        , 0.28626558, 0.68441929],
       [0.7747411 , 0.28626558, 0.        , 0.74692541],
       [0.79942054, 0.68441929, 0.74692541, 0.        ]])

condensed_dist = squareform(D)
Z_scipy_optimal = linkage(condensed_dist, method='complete', optimal_ordering=True)
dendrogram(Z_scipy_optimal)
plt.show()

Output:

But, the optimal order is actually just 0,1,2,3. Clearly the 2 and 1 swapping places is a valid order.
Showing that:
def find_adjacent_sum(M, leaf_order):
    total_sum = 0

    for i, _ in itertools.islice(enumerate(leaf_order), len(leaf_order) - 1):
        n1, n2 = leaf_order[i], leaf_order[i + 1]
        s = M[n1, n2]

        print(f'Sim between {n1} and {n2} is {s}.')

        total_sum += s

    print(f"Total sum is {total_sum}")

    return total_sum

# this order is actually optimal:
optimal_order = [0, 1, 2, 3]

find_adjacent_sum(D, leaves_list(Z_scipy_optimal))
print()
find_adjacent_sum(D, optimal_order)

Output:
Sim between 0 and 2 is 0.7747411.
Sim between 2 and 1 is 0.28626558.
Sim between 1 and 3 is 0.68441929.
Total sum is 1.7454259699999999

Sim between 0 and 1 is 0.46680166.
Sim between 1 and 2 is 0.28626558.
Sim between 2 and 3 is 0.74692541.
Total sum is 1.49999265

As @xplat says, the triangle inequality is not involved at all.
I've implemented (variants of) optimal ordering algorithms from these three papers (I used one to find the example above):
Rainer E. Burkard, Vladimir G. Deĭneko, and Gerhard J. Woeginger, “The Travelling Salesman and the PQ-Tree,” Mathematics of Operations Research 23, no. 3 (August 1, 1998): 613–23, https://doi.org/10.1287/moor.23.3.613.

Ziv Bar-Joseph, David K. Gifford, and Tommi S. Jaakkola, “Fast Optimal Leaf Ordering for Hierarchical Clustering,” Bioinformatics 17, no. suppl_1 (June 1, 2001): S22–29, https://doi.org/10.1093/bioinformatics/17.suppl_1.S22.

Ziv Bar-Joseph et al., “K-Ary Clustering with Optimal Leaf Ordering for Gene Expression Data,” Bioinformatics 19, no. 9 (June 12, 2003): 1070–78, https://doi.org/10.1093/bioinformatics/btg030.

The first and third are O(n^3) time. The latter two papers contain several variants some of which are claimed to offer speed improvements (dubiously at least according to my initial testing). Unfortunately, I haven't optimized my implementations, and implementing them all in Cython and benchmarking etc to get one ready for scipy is a daunting task.
Anyway, the algorithm currently in scipy is by no means optimal and probably shouldn't claim to be such until someone gets around to fixing it (or providing a better, functioning one).

Believe it or not, the email about this issue is one of the few items that stays in my near-zero inbox, because I always intend to get to it someday...but you have exactly summarized the main obstacle:

Unfortunately, I haven't optimized my implementations, and implementing them all in Cython and benchmarking etc to get one ready for scipy is a daunting task.

If you can share your implementations that would be helpful, maybe someone else will find the motivation to optimize the code and get it into a PR (clearly I cannot commit to that).


Not updating user agent on Android since latest commit

There is a mistake in the Android set method implementation:
@PluginMethod(returnType = PluginMethod.RETURN_NONE)
    public void set(PluginCall call) {
        String newUA = call.getString("userAgent", null);
        String ua = settings.getUserAgentString();
        if (!Objects.equals(newUA, ua)) {
----->          settings.setUserAgentString(ua);
          if (Boolean.TRUE.equals(call.getBoolean("reloadOnChange", false))) {
            bridge.getWebView().reload();
          }
        }
        call.resolve();
    }

settings.setUserAgentString(ua) should be changed to settings.setUserAgentString(newUA)

Fix available in version 0.1.2 - was broken in 0.1.1. Previous versions were fine.


Mobile Device Compatibility

Hello, first of all, excellent plugin, I would like to ask what is the compatibility with mobile devices, I tried to download it on my phone but it shows a message that says “This plugin does not support your device”. My phone is an Oppo Reno 7
Greetings.

Not compatible on mobile in its current form. Would be amazing though!


Use meta description instead of description

Rebuild #68 because it was merge on master instead of dev.
Already QA approved.

Thanks again!


Add PDF preview

This PR adds a PDF preview for published modules.
This chooses option 3 from #354 -  @react-pdf-viewer/core. Before merging, the license needs to be bought in order to permit usage. I will do that after the tests complete.
I chose this option because it seemed to provide the most scalable solution into the future. It provides accessibility features and seems to be in active development overall. Also, option 4 fell by the wayside because testing the previewer for other file formats seemed like it would create scope creep for this specific issue. I'd rather revisit previewing data separately and ensure everything works then instead of semi doing it now.
This is a bare bones implementation and does not go beyond displaying the PDF. There are plugins we can implement in the future.
Screenshot

Todo

[ ] Buy license

All works - license bought - merging in 3-2-1 🚀


[10.1.x] ISPN-11349 lock leak in SIFS FileProvider

https://issues.redhat.com/browse/ISPN-11349

Integrated into 10.1.x, thanks @ryanemerson !


Fix PHPDoc typo which breaks some PHP analyzer tools

Hi,
Fix PHPDoc typo which breaks some analysis tools like Scrutinizer PHP Analyzer.
PR here: https://github.com/guzzle/guzzle3/pull/52
I know this version is deprecated and will be EOL this year but because of some 3rd party libraries we still have to use it. Until they upgrade, could be possible to merge the PR?

Scrutinizer team fixed their tool.
The issue is really small so probably not worth to merge.
Leave it up to you.
You can merge the PR or not.


Class based transaction

I need to create an ORM manager who'd control a connection to the databse and perform actions towards the table.

Manager has been initialized


Persist chat history while running on Docker

Describe the bug
I'm running the Docker Compose stack of this great UI and I see that the chat history is not kept if I remove browser data.
Is there a way to keep it on the system storage, e.g. using Docker volumes to persist some folder where they are stored?
Desktop (please complete the following information):

OS: Ubuntu 22.04
Browser: Firefox 120

Hi, Thanks for the suggestion. This feature will be added once #216 gets merged to main. Stay tuned! Duplicate of #68

Thanks


How do I update to version 0.10?

I am currently using Express+nuxt with version 0.09
How do I update to nuxt version 0.10?
Cheers.

If you are using yarn: yarn upgrade
Or in your package.json:
"dependencies": {
  "nuxt": "^0.10"
}

And then:
rm -rf node_modules/
npm install


Fix highlighting of developer sidebar

Pull Request Test Coverage Report for Build 339

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 54.167%

Totals

Change from base Build 334:
0.0%

Covered Lines:
4251

Relevant Lines:
7278

💛  - Coveralls


Scrum 3013 - added validation and display_tag to topic_entity_tags

Added display_tag as a new column to the main topic_entity_tag table and removed the old qualifier table
Added validation fields (author, curator, curation_tools)
Added 'negated' field to source table to indicate positive/negative annotations
Added automated validation on insertion/deletion of sources

We need to update the UI to work with the new fields

This is ready for stage - it includes alembic changes


Adaptions for Qt 5.13

This patch replaces "qSort" with "std::sort" and "QFontMetrics::width" with "QFontMetrics::horizontalAdvance" if compiled with QT 5.13.

Thanks, but I don't like how you did the sort change.
I'd rather put a define in a common .h file (e.g. engine/src/utils.h), like:
#if (QT_VERSION >= QT_VERSION_CHECK(5,13,0))
#define qSort(b, e, c)  std::sort(b, e, c)
#endif

i think that would be useful for this special situation. but how to definde this for qSort(container) vs. std::sort(container.begin(), container.end())?

i think that would be useful for this special situation. but how to definde this for qSort(container) vs. std::sort(container.begin(), container.end())?

You just change container to container.begin(), container.end()

i can change the modifications as you sugested.. but in what for i file should i use? this covers the whole source tree?

...or we can just use std:sort eveywhere.
I think qSort was just a wrapper anyway, and std:sort could have been used since the beginning, even during Qt4 times.
My only concern is toolchain compatibility, but apparently std:sort if C++98, so should be fine

i removed the version check but in rgbtext.cpp and rgbtext_test.cpp it is needed (imho)

Looks ok now, thanks


Export - define ProGenDef outside of the loop

This saves ~329 calls
@screamerbg @sg- @sarahmarshy @theotherjimmy

Any update to this?
tested using python tools\project.py -m LPC1768  -i iar -n MBED_10 for iar, uvision

linking to https://github.com/mbedmicro/mbed/pull/2245

What's the update for this? anyone run any tests?


feat(client): support ANY queries

Change Summary
In case the outcome of  https://github.com/RobertCraigie/prisma-client-py/issues/293 is to officially support ANY queries, this PR attempts attempts to add support for it.
Unfortunately I was unable to support both OR and ANY, due to mypy issues. I was unable to resolve them, so have opted to just replace OR with ANY. This is certainly not ideal, but this is where it stands for now.
The mypy error encountered was:
ERROR: InvocationError for command /tmp/tox/prisma-client-py/mypy/bin/coverage run -m mypy --show-traceback --namespace-packages

Checklist

[x] Unit tests for the changes exist
[x] Tests pass without significant drop in coverage
[x] Documentation reflects changes where applicable
[x] Test snapshots have been updated if applicable

Agreement
By submitting this pull request, I confirm that you can use, modify, copy and redistribute this contribution, under the terms of your choice.

Hi, I'm also in favor of ANY FWIW :)


[Python] DB-API 2.0 execute query behaves is not as expected

Describe the usage question you have. Please include as many useful details as  possible.
I use the following code to connect to flight sql server to execute query, two unexpected behaviors occur:

First call createPreparedStatement of flight server,

If throw CallStatus.UNIMPLEMENTED, then getFlightInfoStatement will be called to using the direct-execution RPC.
Otherwise, if createPreparedStatement is implemented and returns ActionCreatePreparedStatementResult, then getFlightInfoPreparedStatement will be called to prepare and execute query.
Is this behavior expected? If so, why is it designed like this? Using the Low-level api to execute_query will directly call getFlightInfoStatement to using the direct-execution RPC.

If createPreparedStatement is implemented, cursor.execute executes multiple queries, similar to the following code. closePreparedStatement will be called once after each cursor.execute. Is this as expected?

  conn = flight_sql.connect(uri=my_uri, db_kwargs={
              adbc_driver_manager.DatabaseOptions.USERNAME.value: "root",
              adbc_driver_manager.DatabaseOptions.PASSWORD.value: "",
          })
  cursor = conn.cursor()
  cursor.execute("use clickbench;")
  cursor.execute("SELECT SearchPhrase, COUNT(*) as c FROM hits WHERE URL LIKE '%google%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10;")

Component(s)
FlightRPC

Arrow Version 13.0.0

https://github.com/apache/arrow/issues/35777

For Python: the Python code will try to create a prepared statement (this is to fit DBAPI, IIRC) and if the server raises any error except for NotImplemented it will fail. (If it gets NotImplemented, it will ignore and execute without a prepared statement.)


deprecate 'inline object' textures in the scene file

https://github.com/tangrams/tangram/commit/18d79786c4d3fccc24be967a6058d2fdb74c04b1

…in fact I could use a review of the entire textures page, not sure all of those examples are working properly. eg:
styles:
    points:
        texture: images/ghost.png

Was naming a url as the value of a texture key like this ever valid?

Oh hey I was just looking at this :P https://github.com/tangrams/tangram-docs/pull/113

That PR was perfectly timed, thanks! :D
Resolves with #113


VM & Image added lock & unlock methods

New in OpenNebula 5.6
Signed-off-by: Kristián Feldsam<EMAIL_ADDRESS>

👍
Will ping when published :)

thanks

Published v1.0.12


Failed to build gem native extension

Having an issue with installing this gem in a new Rails instance (3.0.7) with the error below.  Mac OSX 10.6.7 -    Getting the same error using ree.  Any suggestions?
[11:47][brett@quislet:~/Work/capybara-webkit]$ bundle
Fetching source index for http://rubygems.org/
Installing rake (0.9.2)
Installing abstract (1.0.0)
Installing activesupport (3.0.7)
Installing builder (2.1.2)
Installing i18n (0.5.0)
Installing activemodel (3.0.7)
Installing erubis (2.6.6)
Installing rack (1.2.3)
Installing rack-mount (0.6.14)
Installing rack-test (0.5.7)
Installing tzinfo (0.3.27)
Installing actionpack (3.0.7)
Installing mime-types (1.16)
Installing polyglot (0.3.1)
Installing treetop (1.4.9)
Installing mail (2.2.19)
Installing actionmailer (3.0.7)
Installing arel (2.0.10)
Installing activerecord (3.0.7)
Installing activeresource (3.0.7)
Using bundler (1.0.12)
Installing celerity (0.8.9)
Installing culerity (0.2.15)
Installing nokogiri (1.4.4) with native extensions
Installing ffi (1.0.9) with native extensions
Installing childprocess (0.1.9)
Installing json_pure (1.5.1)
Installing rubyzip (0.9.4)
Installing selenium-webdriver (0.2.1)
Installing xpath (0.1.4)
Installing capybara (<IP_ADDRESS>)
Installing capybara-webkit (0.4.1) with native extensions /Users/brett/Developer/.rvm/rubies/ruby-1.8.7-p248/lib/ruby/site_ruby/1.8/rubygems/installer.rb:483:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/Users/brett/Developer/.rvm/rubies/ruby-1.8.7-p248/bin/ruby extconf.rb
/Users/brett/Developer/bin/qmake
cd src/ && /Users/brett/Developer/bin/qmake /Users/brett/Work/capybara-webkit/gems/gems/capybara-webkit-0.4.1/src/webkit_server.pro -spec /Users/brett/Developer/Cellar/qt/4.7.2/mkspecs/macx-g++ -o Makefile.webkit_server
/bin/sh: line 0: cd: src/: No such file or directory
make: *** [sub-src-webkit_server-pro-qmake_all] Error 1
make
cd src/ && /Users/brett/Developer/bin/qmake /Users/brett/Work/capybara-webkit/gems/gems/capybara-webkit-0.4.1/src/webkit_server.pro -spec /Users/brett/Developer/Cellar/qt/4.7.2/mkspecs/macx-g++ -o Makefile.webkit_server
/bin/sh: line 0: cd: src/: No such file or directory
make: *** [src/Makefile.webkit_server] Error 1
Gem files will remain installed in /Users/brett/Work/capybara-webkit/gems/gems/capybara-webkit-0.4.1 for inspection.
Results logged to /Users/brett/Work/capybara-webkit/gems/gems/capybara-webkit-0.4.1/gem_make.out
from /Users/brett/Developer/.rvm/rubies/ruby-1.8.7-p248/lib/ruby/site_ruby/1.8/rubygems/installer.rb:446:in each' 	from /Users/brett/Developer/.rvm/rubies/ruby-1.8.7-p248/lib/ruby/site_ruby/1.8/rubygems/installer.rb:446:in build_extensions'
from /Users/brett/Developer/.rvm/rubies/ruby-1.8.7-p248/lib/ruby/site_ruby/1.8/rubygems/installer.rb:198:in install' 	from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/lib/bundler/source.rb:96:in install'
from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/lib/bundler/installer.rb:55:in run' 	from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/lib/bundler/spec_set.rb:12:in each'
from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/lib/bundler/spec_set.rb:12:in each' 	from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/lib/bundler/installer.rb:44:in run'
from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/lib/bundler/installer.rb:8:in install' 	from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/lib/bundler/cli.rb:225:in install'
from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/lib/bundler/vendor/thor/task.rb:22:in send' 	from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/lib/bundler/vendor/thor/task.rb:22:in run'
from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/lib/bundler/vendor/thor/invocation.rb:118:in invoke_task' 	from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/lib/bundler/vendor/thor.rb:246:in dispatch'
from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/lib/bundler/vendor/thor/base.rb:389:in start' 	from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/gems/bundler-1.0.12/bin/bundle:13 	from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/bin/bundle:19:in load'
from /Users/brett/Developer/.rvm/gems/ruby-1.8.7-p248/bin/bundle:19
[11:49][brett@quislet:~/Work/capybara-webkit]$

Thanks for the help.
on ubuntu this worked for me:
sudo apt-get install libqtwebkit-dev

Had this same issue. 'libqtwebkit-dev' didn't exist and I had to install 'libqt4-dev'. Seems to work now.


Image(gif,w,h); does not work anymore?

Hi, your library worked great and I'm thankful for your work. But, recently I found out that my web stops working. The part that is broken is when placing a gif image. Image(gif,w,h); When comments it out, everything work the same.

Same here--any clues much appreciated; this was a fun library to use in class.

The applicable error message:

Uncaught DOMException: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image argument is a canvas element with a width or height of 0.

Ya this sounded really cool, it would be great if someone could get it working on the latest version of P5 / openprocessing


Removed plist argument from install function because it isn't used and caused the devicetypeid not to be recognized

The install function in lib.js was expecting as a second argument the
the Info.plist path but this is never passed and the function calculates
it based on the App path. This was causing that the devicetypeid not be
recognized even though it was being passed because it was passed as the
second argument to the function by the install function in commands.js
Software Versions:
1.MacOS version: 10.10.5
2. ios-sim version: 5.0.2
3. Xcode version: Xcode 7.0.1 Build version 7A1001
4. xcode-select: /Applications/Xcode.app/Contents/Developer
5. gcc version: Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/c++/4.2.1
Apple LLVM version 7.0.0 (clang-700.0.72)
Target: x86_64-apple-darwin14.5.0
Thread model: posix

Good catch!
This is where it was called for reference: https://github.com/czambran/ios-sim/blob/bbfd40a0ab320fe3073fa0820c5461d561f50432/src/commands.js#L72


WIP: Adding etcd config to user-facing config

#1395 Added etcd configuration to the internal Microshift config structure, but not the user-facing configuration. This PR adds the etcd config to the user-facing configuration file.

/assign @pmtk @dhellmann

@dusk125 , if we are making this change, we need to also update the following files:

Docs: https://github.com/openshift/microshift/blob/main/docs/howto_config.md
Default config file: https://github.com/openshift/microshift/blob/main/packaging/microshift/config.yaml

/retest

/approve
/assign @pmtk

/cherry-pick release-4.13

/lgtm

/retest


Add bundled files to .gitignore

Bundled files should not be commit into version control system, IMHO.

@fkleuver Anything to say?

I don't believe this is a black-and-white rule that applies in all cases. There are valid reasons to commit build outputs:

Makes it easier for people just downloading the files from a specific release
Enables use of rawgit in tools like plunkr or stackblitz
Build outputs per release are deterministic and locked in place
Enables use of git diff to see how the compiled outputs are affected by changes we make during development
Easier for us to compare and keep an eye on the build output size

Reasons not to do it:

Skews the graphs that show how many changes there were (small change can look like a huge one)
Large messy git diffs (though this can be fixed with .gitattributes settings to ignore those diffs)
Makes it tempting for contributors to perform fixes in build outputs rather than in sources (we ought to manage this)

All that said, I think committing build outputs should be strictly limited to when we're doing a release. And those commits should contain only the build outputs, and nothing else. Those are the "release commits". This is a rule we're not currently applying and we should.
For the rest, I believe the pros outweigh the cons in our case but I'm open for discussion of course.

You're right. There are some real-world projects which commits build files, such as the Vue.js repo. However, they only commit those files when publish new version, as what you said.

@KFlash Let's completely stop committing build outputs unless it's for a release followed directly by a publish. Example:

The last work is done, commit those changes as you normally would (without building) -> working directory is clean
Bump the version in package.json, build the project, commit package.json + dist folders with commit message "chore(all): prepare release 1.x.x"
Npm publish

Under no other circumstances (and with no other changes committed) should the dist folders ever be committed. This is the only way to keep it clean and reviewable.

vue has put the dist/*.js in .gitignore. thought I'm not sure how it been added it to git repo --might be something like git add dist -f.
https://github.com/vuejs/vue/blob/dev/.gitignore#L13

Closing in favor of #133


Variable overrides in the BOM are ignored in the terraform generation

Raised by @mjperrins

It turns out the problem was a name mismatch between the value provided in the BOM and the actual name of the variable in the module. At the very least we should give a warning if the names don't match

Closing this one and tracking enhancement in #27


Add support for event exports.

After some discussion the consensus appears to be something along the lines of:

Being able to export events would be good.
Exporting should be provided by a separate event exporting resource (to go with the ones for inbound and outbound)
We should not retrieve events by looking up the events for particular outbound messages, because this results in a Riak index query per outbound message (which is very bad for performance).
This leaves us retrieving events by event timestamp (not the most terrible thing).

Ready for review.
Aside: The outbound and inbound message exporting has a lot of tests. I added fewer for the events because all of the range-parsing code being tested is shared between the three implementations.

What's the reason for adding the keys_only param to the existing methods?

keys_only option removed. It was there to allow list(page) to return a list of keys, but I've worked around that.

Merged in develop to fix test that was fixed in develop.
Ready for re-review.

Build failures are only on Twisted 13 and seem unrelated.

Ready for re-re-review. :)

:+1: when Travis is finished.


IconMenu, DropDownMenu not changing menus visibility state onClick

I am using material-ui exact implementation of both of these components in a sandboxed environment. For some reason the menus never become visible. This is my entire react component, I'm not sure if i have done something wrong here.
I can go into my console and set the visibility state to true on the drop downs and get them to show, But I can't click the DropDownMenu or IconMenu and have it work
** sorry for the ugly code
/* eslint-disable */
import React from 'react';
import { DropDownMenu, Styles, IconMenu, AppBar, IconButton, FontIcon } from 'material-ui';
import Logo from './Logo.jsx';
import LogoImage from './images/BrandLogoDesktop.png';
let Menu = require('../node_modules/material-ui/lib/menus/menu');
let MenuItem = require('../node_modules/material-ui/lib/menus/menu-item');
let MenuDivider = require('../node_modules/material-ui/lib/menus/menu-divider');
const themeManager = Styles.ThemeManager();
const menuItems = [
{ payload: '1', text: 'Never' },
{ payload: '2', text: 'Every Night' },
{ payload: '3', text: 'Weeknights' },
{ payload: '4', text: 'Weekends' },
{ payload: '5', text: 'Weekly' },
];
export default React.createClass({
childContextTypes: {
	muiTheme: React.PropTypes.object,
},

getChildContext() {
	return {
		muiTheme: themeManager.getCurrentTheme(),
	};
},
render() {
	const appbarHeader = (
  <Logo image={LogoImage} style="width: 100%" />
);
	return (
		<div>
			<AppBar
				title="Catlyst"

				showMenuIconButton={false} />
			<DropDownMenu menuItems={menuItems} />
			<IconMenu iconButtonElement={
				<IconButton tooltip="Dashboard">
					<FontIcon className="material-icons">dashboard</FontIcon>
				</IconButton>}>
				<Menu>
					<MenuItem primaryText="Maps" />
					<MenuItem primaryText="Books" />
					<MenuItem primaryText="Flights" />
					<MenuItem primaryText="Apps" />
				</Menu>
			</IconMenu>
		</div>
	);
},
openDrop() {
	console.log('heythere');
},

});

I was able to fix this by deleting my externals in my webpack.config file. I am not sure how this worked but it did.


LightMaps

Since Yoru Engine has a focus on Cross platform compatibility and performance.
Personally i like Radiosity, Radiosity offers Realistic shadows and light bounces, Normally it is pre computed during a maps compile process (back in the days of Source and Quake). These engines used BSP but unfortunately BSP isn't vary modern and im guessing your going to use a more modern and accessible platform.
For reference Here's a small game engine that uses Radiosity lightmapping:
https://www.cafu.de/

Here's a photo of Source engine of what also uses radiosity lightmaps:

Radiosity has issues with compile times (on my custom version of source has a decade long lightmap compile time)
but you can use CUDA to accelerate this (https://github.com/darthryking/SilkRAD). Its due to how it is calculated on CPU, and how you have to devide the map into patches of whom become luxels (lightmap texture).
There is also a real-time implementation of radiosity.
https://www.youtube.com/watch?v=0-0aMo_qkGo
But these are things to be done wayyyy in the future.

Because radiosity is a technique primarily used in 3D graphics, (and in a context where we have more control over the rendering), it wouldn't necessarily apply directly to Yoru Engine. I do plan to introduce a more global SKShader context to all elements being drawn (or to have certain elements extend from perhaps a LitElement or ShaderElement class) so we have more control over rendering through the use of the Skia shading language (SkSL). If we pass relevant values from the element to a shader, along with values from an ApplicationContext (eg. LightingContext) we could potentially begin to work with the likes of lighting or other effects.


Multi-threaded macro

This adds a new macro which, instead of adding @simd to the innermost loop, adds Threads.@threads to the outermost. For this to be faster on some test cases, it writes directly into the array, rather than defining local accumulators, as now shown in the readme.
I added this macro to a few of the tests. Some other tests fail on 1.0, namely things like @einsum A[i] := X[i+:offset]. I tried for a bit to make the function unquote_offsets work correctly, but failed, so for now I have simply commented out those tests. I also edited .travis to test on 1.0, and added Compat so that the remaining tests now pass on both 0.6 and 1.0.

Thanks!
I understand about maintenance and time. Does anyone else have permission to commit things, and tag new releases?

@mcabbott I have push access as well.  A couple of months ago I had time and motivation to rewrite a few things in my fork, but then became lazy again (and forgot most of the stuff I wrote there...)
My original plan was to change the workings to use some common abstract representation for an index expression and convert that to loops, similar to what TensorOperations does.  But if someone wants to brush up and update things, I'm willing to participate.
After all, it would be nice to still have a working package which allows to use non-strided arrays and non-contracting operations.  On the other hand, the TensorOperations maintainer has repeatedly claimed that they are open for adding support for such operations.

OK, good to know -- this package seems valuable to keep alive, as simple loops are the right way to do some things, despite being a terrible way to do matrix multiplication.
I got interested on realising that some calculations I was doing by broadcasting (into some huge tensor) and then reducing, could be made both faster and more readable using @einsum. Mine tend to have some exp or log functions, expensive enough that @threads helps. I don't see how to squeeze such operations into how TensorOperations acts right now, although maybe there's a way.
For now though, let's see whether adding this PR has created any problems, before tagging. I don't think it should have affected the output of ordinary @einsum at all.


Can I use ID server with PHP or does it need to be JS call???

Trying to see if I can have our PHP/Wordpress guy use ID server(4) to call my ASP.NET Web API services.  Will try to use this under the new ASP.NET 5 Core...Do you think that is possible?  Hints on how to get there?

Yes, it should be possible since it's all about the OIDC protocol.

But in all the samples I see, the ASP.NET MVC app needs a reference to the ID Server library/package...PHP couldn't do that...Not sure what the "Client" would be when I configure the ID Server...Sorry/thanks...

If you're not a .NET developer, then there are many other platforms that have OIDC support: https://openid.net/developers/libraries/

I see the PHP example...Looks like it takes "ClientId" and "ClientSecret"...So the OpenIdConnectClient("IDSERVERURLGOESHERE???").  That is my guess...Will try to get the ID Server running and have my PHP Developer try it out...Thanks...

np


How to convert my onnx model to hailo format?

There is no downloadable tools on hailo.ai, is this not opened?

As far as I've found, you can get the conversion instructions as shown here
hailo-ai/onnxruntime
Found a conversion sample instructions here:
ONNX model with Hailo
It seems that you need a Hailo Dev Accound to access the documentation
Hailo Repository hailo-ai/Hailo-Application-Code-Examples claims to have a conversion example but I couldn't find it under the 'model_compilation' directory

@Anguinru Thank you very much, very helpful.


Add Action that runs tests

Added a linter and a matrix of node versions. I'll leave it alone now.

It just uploads the zip. The automatic release to npm is next on my list after this one.

I was hoping you'd say that. Added a secret on the org for ya: NPM_TOKEN