Use Java's rotateLeft in salsaCore to increase likelyhood of inlining

We use BouncyCastle's scrypt implementation in Aegis (an Android app) to derive a key from the user's password. We recently received a report from a user that key derivation was taking very long on their device (on the order of 2 minutes). The parameters we're using are: N=2^15, r=8, p=1.
Personally, I'm only able to reproduce this when running the app with a debugger attached on Android 13. In my case it takes 30 seconds. Since that user was seeing this on a release build of the app, we figured this was worth investigating. After some profiling, we noticed that a lot of time was being spent calling the Integers.rotateLeft function in Salsa20Engine.salsaCore. On a hunch I pulled a copy of that class and the SCrypt class into our codebase and replaced the calls of that wrapper function by directly calling Java's Integer.rotateLeft. With the patch applied, it takes 3 seconds instead of 30 seconds. A 10x performance improvement.
I suspect that previously the JVM was not inlining rotateLeft for some reason, but with the patch applied, it does. With our scrypt parameters, Integers.rotateLeft is called 2^25 times, so it makes sense that this starts to add up.
For now we're keeping a copy of the SCrypt and Salsa20Engine classes in our codebase with this patch applied, but I figured I'd submit the change here as well to your thoughts on whether this is something that should be upstreamed.

Did you only see this improvement in a debug build? It appears from: https://github.com/beemdevelopment/Aegis/blob/5dfdbabf30be3ec87c9f72e2da51634c7c50388b/app/build.gradle#L85
that Aegis only uses proguard-android-optimize.txt in release builds.
If you can't also see the dramatic improvement in a release build, then perhaps the user's issue is yet something else.

It's a bit of an odd situation. There are two places we've seen this:

This report of a user encountering this on a release build.
Personally I can only reproduce this while running a debug build on an Android 13 device with a debugger attached. Without a debugger attached, the issue does not appear (at least for me), even on the debug build.

Anyway, looks like I may have jumped the gun a little bit here. Looking at the generated code in release builds, Proguard already removes the Integers.rotateLeft wrapper and replaces it with Java's Integer.rotateLeft. I got confused because the flame graphs of the reporting user and mine looked so similar.
I'll close this for now. Apologies for the noise.


GpuMat or Pytorch tensor to pyglet

Hello, can i display cv2 gpumat or pytorch tensor in pyglet window without transfering texture to cpu?

pyglet windows are just OpenGL contexts, so a texture is required to display. What you can do is create a single texture that gets drawn every frame. You then make an ImageData object from your raw bytes, and update the texture with it wherever necessary.

Closing this for now, but please follow up if you have any additional questions.


Add support for options validation

Adds the ability to validate options via a new IValidateOptions interface that the IOptionsFactory consumes if registered:
General use case looks like this and is only exposed off of the OptionsBuilder:
            services.AddOptions<ComplexOptions>()
                .Configure(o =>
                {
                    o.Boolean = false;
                    o.Integer = 11;
                })
                .Validate(o => o.Boolean)
                .Validate(o => o.Integer > 12);
            var sp = services.BuildServiceProvider();
            var error = Assert.Throws<OptionsValidationException>(() => sp.GetRequiredService<IOptions<ComplexOptions>>().Value);
            var errors = error.Failures.ToArray();
            Assert.Equal(2, errors.Length);
            Assert.Equal("A validation error has occured.", errors[0]);
            Assert.Equal("A validation error has occured.", errors[1]);

Thoughts @davidfowl ?
I've already gone over the general idea with @ajcvickers and we think it looks promising.

The feature looks generally useful. What's the need for 2.2? Which components are going to use it?

@davidfowl Let's discuss in the leads sync today.

There isn't an explicit need for this in 2.2 as opposed to 3.0, Security/Auth would probably want to switch to using this in some form to validate options.
The other thing that we should try to tackle as part of this is enabling some way to trigger validation at startup instead of on first use, maybe via IStartupFilter like this blog post: https://andrewlock.net/adding-validation-to-strongly-typed-configuration-objects-in-asp-net-core/

Addresses https://github.com/aspnet/Home/issues/2388 which I've moved into 2.2

Gonna put this into 2.2, and look at triggering start up validation in a separate PR

cc @rynowak @anurse

@davidfowl @HaoK It's neat, is there a suggestion about any MVC features where we'd use it?


Update mxbikesupdates.json

Wrong repo xD

I disagree. I told you I'd handle your repo and I meant it. 😂


Calculator should evaluate addition of two numbers

Use case:

user starts calculator
user enters  +  string into command line
calculator prints sum of A and B
user closes application

Fixed by #9


Trains reverse backwards and forwards when a switcher sign is placed.

BkCommonLib version:  BKCommonLib v1.12-v4
TrainCarts version: Train_Carts v1.12-v2
Spigot version: git-Spigot-3fb9445-6e3cec8 (MC: 1.11.2)

Problem or bug: Bug
Expected behaviour: Trying to place down a switcher sign and the train reverses backwards and forwards.
Steps to reproduce: I would expect the train to switch to the track on the left or right.

Does this also happen when you explicitly define the directions to go to? For example:
[+train]
switcher
n:passenger
s:default

So it goes north when there is a passenger in the train/minecart, and south when there is not

I'll try this in a bit and let you know.
[!train]
switcher
1
1

This sign layout is what I'm currently using, and it worked when I was on 1.7.10, so it would toggle between one train to the left and right etc.

Ok I've made your sign
When I'm in the cart it will proceed along the track and when I'm not , the cart will reverse and head back.

Hi again
Sorry to waste your time. I've managed to get them working.  The reason they weren't working was due to where the signs were placed in relation to the rails. It's working as expected now.


RDkit MCS Subgraph search failed

I have a problem, that the MCS routine fails depending on atom ordering.
I manipulate a molecule and try to find my original atoms back.
Important is, that it fails when 'removeHs = False'.
Without H it works.
Here is a minimal example:
from rdkit import Chem
import lomap

print(lomap.__version__)
print('First example.')
small_mol = Chem.MolFromSmiles('O=CN1C[C@H]2C[C@H]2C1')
parent_mol = Chem.MolFromSmiles('O=CN1C[C@H]2C[C@H]2C1')

mapping = dict(lomap.MCS.getMapping(small_mol, parent_mol, hydrogens=True))
print(mapping)

print('second example')
mol1_str = """mol1
  MOE2024           3D

 17 18  0  0  1  0  0  0  0  0999 V2000
   -2.6702    1.3462    3.2300 O   0  0  0  0  0  0  0  0  0  0  0  0
   -2.4087    1.7256    2.1070 C   0  0  0  0  0  0  0  0  0  0  0  0
   -2.7301    2.7069    1.7906 H   0  0  0  0  0  0  0  0  0  0  0  0
   -1.7166    0.9354    1.2379 N   0  0  0  0  0  0  0  0  0  0  0  0
   -0.6849    1.4846    0.3171 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.1285    1.7012   -0.6378 H   0  0  0  0  0  0  0  0  0  0  0  0
   -0.2432    2.3779    0.7159 H   0  0  0  0  0  0  0  0  0  0  0  0
    0.3589    0.3840    0.1762 C   0  0  1  0  0  0  0  0  0  0  0  0
    0.8340    0.3334   -0.7872 H   0  0  0  0  0  0  0  0  0  0  0  0
    1.1364   -0.1545    1.3376 C   0  0  0  0  0  0  0  0  0  0  0  0
    1.1299    0.3888    2.2666 H   0  0  0  0  0  0  0  0  0  0  0  0
    2.0783   -0.6388    1.1487 H   0  0  0  0  0  0  0  0  0  0  0  0
   -0.1239   -0.8317    0.8873 C   0  0  1  0  0  0  0  0  0  0  0  0
   -0.3276   -1.8878    0.7103 H   0  0  0  0  0  0  0  0  0  0  0  0
   -1.4645   -0.5000    1.5383 C   0  0  0  0  0  0  0  0  0  0  0  0
   -2.2530   -1.0931    1.1098 H   0  0  0  0  0  0  0  0  0  0  0  0
   -1.4191   -0.6769    2.5995 H   0  0  0  0  0  0  0  0  0  0  0  0
  1  2  2  0  0  0  0
  2  3  1  0  0  0  0
  2  4  1  0  0  0  0
  4  5  1  0  0  0  0
  4 15  1  0  0  0  0
  5  6  1  0  0  0  0
  5  7  1  0  0  0  0
  5  8  1  0  0  0  0
  8  9  1  0  0  0  0
  8 10  1  0  0  0  0
  8 13  1  0  0  0  0
 10 11  1  0  0  0  0
 10 12  1  0  0  0  0
 10 13  1  0  0  0  0
 13 14  1  0  0  0  0
 13 15  1  0  0  0  0
 15 16  1  0  0  0  0
 15 17  1  0  0  0  0
M  END
$$$$
"""
mol2_str="""mol2
  MOE2024           3D

 17 18  0  0  1  0  0  0  0  0999 V2000
   -1.7017    0.3482    0.1455 N   0  0  0  0  0  0  0  0  0  0  0  0
   -2.3996    1.3949   -0.3379 C   0  0  0  0  0  0  0  0  0  0  0  0
   -2.4504    2.3158    0.2240 H   0  0  0  0  0  0  0  0  0  0  0  0
   -2.9721    1.3024   -1.4066 O   0  0  0  0  0  0  0  0  0  0  0  0
   -0.5629   -1.5416    2.7219 H   0  0  0  0  0  0  0  0  0  0  0  0
   -1.2277   -1.1501    1.9520 C   0  0  1  0  0  0  0  0  0  0  0  0
   -2.6433   -1.7097    1.7980 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.6057   -1.9776    0.7060 C   0  0  1  0  0  0  0  0  0  0  0  0
   -1.3576   -2.9039    0.1878 H   0  0  0  0  0  0  0  0  0  0  0  0
   -1.4953   -0.9910   -0.4764 C   0  0  0  0  0  0  0  0  0  0  0  0
   -0.9445    0.2700    1.4164 C   0  0  0  0  0  0  0  0  0  0  0  0
   -3.4411   -1.0028    1.5705 H   0  0  0  0  0  0  0  0  0  0  0  0
   -2.9255   -2.5453    2.4386 H   0  0  0  0  0  0  0  0  0  0  0  0
   -0.5155   -1.0703   -0.9473 H   0  0  0  0  0  0  0  0  0  0  0  0
   -2.2842   -1.1803   -1.2043 H   0  0  0  0  0  0  0  0  0  0  0  0
   -1.3044    1.0204    2.1202 H   0  0  0  0  0  0  0  0  0  0  0  0
    0.1222    0.4016    1.2340 H   0  0  0  0  0  0  0  0  0  0  0  0
  1  2  1  0  0  0  0
  1 10  1  0  0  0  0
  1 11  1  0  0  0  0
  2  3  1  0  0  0  0
  2  4  2  0  0  0  0
  5  6  1  0  0  0  0
  6  7  1  0  0  0  0
  6  8  1  0  0  0  0
  6 11  1  0  0  0  0
  7  8  1  0  0  0  0
  7 12  1  0  0  0  0
  7 13  1  0  0  0  0
  8  9  1  0  0  0  0
  8 10  1  0  0  0  0
 10 14  1  0  0  0  0
 10 15  1  0  0  0  0
 11 16  1  0  0  0  0
 11 17  1  0  0  0  0
M  END
"""
mol1 = Chem.MolFromMolBlock(mol1_str, removeHs = False)
mol2 = Chem.MolFromMolBlock(mol2_str, removeHs = False)

print('Mapping')
mapping = dict(lomap.MCS.getMapping(mol1, mol2, hydrogens=True))

But why do you need to set hydrogens=True? In general, rdkit MCS works much slower with hydrogens, and can produce poor results.

I defined a dihedral angle by the atoms with ids 0,1,2,3.
Then I make some transformations. (Normally i start from a big atom and truncate it). Now I want to know, what are the atom ids in this transformed molecule so I can make a mapping.

I believe, that with hydrogen=False the MCS should still return the mapping that returns hydrogens. The only difference is that hydrogens are not taken into account when computing MCS, which makes sense.
Also, I think that you can achieve what you want, without using a get_mapping method. Just running a wrapper should be enough:
mcs = lomap_mcs.MCS(mol1, mol2)
mapping_string = mcs.all_atom_match_list()
mapping_dict = dict(
    (map(int, v.split(':')) for v in mapping_string.split(','))
)

With the example above, I get this:
mapping = dict(lomap.MCS.getMapping(small_mol, parent_mol, hydrogens=True))
print("Hydrogen = True",mapping) # 17 atoms are matched  {0: 2, 1: 1, 2: 3, 3: 0, 4: 9, 5: 13, 6: 14, 7: 7, 12: 5, 14: 10, 15: 15, 16: 16, 9: 6, 10: 11, 11: 12, 13: 4, 8: 8}

mapping = dict(lomap.MCS.getMapping(small_mol, parent_mol, hydrogens=False))
print("Hydrogen = False",mapping) # 8 atoms are matched {0: 2, 1: 1, 2: 0, 3: 6, 4: 5, 6: 3, 7: 7, 5: 4}

mcs = lomap.MCS(mol1, mol2)
mapping_string = mcs.all_atom_match_list()
print('mapping_string',mapping_string)
mapping_dict = dict(
    (map(int, v.split(':')) for v in mapping_string.split(','))
)
print("Mapping dict", mapping_dict) # 2 atoms are matched, {1: 1, 2: 2}

It works when I change the following lines

        if mcs_mol.HasSubstructMatch(mcs_mol):
            mcs_sub = mcs_mol.GetSubstructMatch(mcs_mol)
        else:
            raise ValueError('RDkit MCS Subgraph search failed')

to

        if mcs_mol.HasSubstructMatch(mcs_mol):
            mcs_sub = mcs_mol.GetSubstructMatch(mcs_mol)
        #else:
            #raise ValueError('RDkit MCS Subgraph search failed')

mcs_sub is only needed if a png file is generated. Maybe, this code block could go into if fname:?

I am getting 17 atoms matched:
mcs = MCS(mol1, mol2, threed=True)
mapping_string = mcs.all_atom_match_list()
print("mapping_string", mapping_string)
mapping_dict = dict(
    (map(int, v.split(":")) for v in mapping_string.split(","))
)
print("Mapping dict", mapping_dict)

# mapping_string 0:3,1:1,2:2,3:0,4:10,5:15,6:16,7:5,8:4,9:6,10:11,11:12,12:7,13:8,14:9,15:14,16:13
# Mapping dict {0: 3, 1: 1, 2: 2, 3: 0, 4: 10, 5: 15, 6: 16, 7: 5, 8: 4, 9: 6, 10: 11, 11: 12, 12: 7, 13: 8, 14: 9, 15: 14, 16: 13}

Note, that I am using threed=True

With threed, I get the same results. I have to test, if this method will give me the right results for all other molecules.
(I inheritated the program, so have to add some test cases here.)
Is it an option for you to move the block I showed in my last comment to the if clause?
For me, it seems it may be a problem with HasSubstructMatch().

I am not sure what getMapping method is doing. It has a part of MCS class functionality, but it is not doing lomap-style mcs. Also, the method is not tested and is not wrapped in the gufe_bindings. So, I think it is better to not use the method, and use the class instead, since the mapping in the class is supported, up-to-date, and well tested. As for getMapping method, it either should be reworked, or documentation has to be updated. Currently, at least to me, it is not 100% clear what is the purpose of the method and how it is related to the lomap mapping rules.


CC Release Notes December

Closes https://cockroachlabs.atlassian.net/browse/CC-3672

This change is

Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @gemma-shay, @kevin-v-ngo, and @thtruo)

releases/cockroachcloud-12062021.md, line 17 at r2 (raw file):

- New {{ site.data.products.db }} clusters will now run [v21.2.1](v21.2.1.html).
- New {{ site.data.products.db }} clusters will now have [Admission Control](../{{site.versions["stable"]}}/architecture/admission-control.html) enabled by default.
- {{ site.data.products.dedicated }} clusters will now run on new [machine types and disks](../cockroachcloud/create-your-cluster.html#step-2-select-the-cloud-provider). Clusters created before December 1, 2021 will be transitioned to the new hardware configurations by the end of the month, and pricing may change slightly.

Not blocking but if we are sure about how the pricing will change (I believe it was lower pricing) it would be nice to state it here so existing customers don't get concerned.

It was originally going to be a lot lower, but it ended up being almost exactly the same.


SiteConfig.RemoteDebuggingEnabled doesn't take effect while creating multiple app service at the same time

After tested, I try to create multiple app services whose SiteConfig.RemoteDebuggingEnabled is set as true at the same time but SiteConfig.RemoteDebuggingEnabled of some of them are still false. Could you help to have a look? Thanks.

Hi @neil-yechenwei , do you use ARM template for deployment? Are you saying you set the value to true however it appeared as false after deployment for some of the application.

Hi @raych1, we are using azure go sdk to create this resource. Yes, I set the value of SiteConfig.RemoteDebuggingEnabled property to true however it appeared as false after deployment for some of the app services.


installing Revolution EDA on Ubuntu (Virtual box)

Hi
I have unsuccessfully attempted installing Revolution EDA on  Ubuntu (on Virtual box) a few times. My installation hangs on this step


Fix HAWKULAR_APM_TENANT_ID env variable

This would make the HAWKULAR_APM_TENANT_ID environment variable consistent with other references.

@jtescher Thanks!


Inconsistency when resolving libs with relative symbolic links

odin version: dev-2024-03:4c35633e0
ols.json:
{
  "collections": [
    {"name": "shared", "path": "shared"}
  ]
}

Does it work with Odin compiler? Don't think there is any os features in the odin core to support symlinks, so this won't be supported until then.

I've created an issue here showing another side of this problem.
I was thinking that it wouldn't be necessary to create an issue here, but I don't know how ols resolves links, I believe that if the problem is resolved in the compiler it will be resolved in ols without changing anything

It won't be resolved here.  I have to implement whatever Odin decides to do. So the issue is fine here as well.


Wenbo ver 2.0

Upgraded the whole Wenbo algorithm to version 2.0;
Redesigned _encode() and '_decode()' to be more accurate and efficient;
Wenbo tfm detaches boolean_indicator(). Now boolean_indicator() is never called, to decrease runtime by 1/6;
Wenbo tfm now supports both Int or Float values as input;
Wenbo tfm now supports input values to be continuous within [0,1], instead of discrete (either 0 or 1). This will benefit applying Wenbo tfm onto prediction masks from NN because the output from NN will lie within [0,1]. Time is reduced by not needing to call round.();
Rewrote 50% code in a more professional way;
Performance on edge cases increased by ~20X;
Passed all test.

Codecov Report
Patch coverage: 81.29% and project coverage change: +5.19 :tada:

Comparison is base (2984522) 44.17% compared to head (9b31bba) 49.36%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #41      +/-   ##
==========================================
+ Coverage   44.17%   49.36%   +5.19%
==========================================
  Files           5        5
  Lines         713      873     +160
==========================================
+ Hits          315      431     +116
- Misses        398      442      +44

Impacted Files
Coverage Δ

src/wenbo.jl
41.82% <81.29%> (+9.03%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Suggested Tech Stack?

I'm thinking since this site will be all about highlighting .NET OSS, we probably should use primarily OSS ourselves. Some of it I'm not so familiar with, so I'm thinking
Eventually, I think we'll need the following:

A web site
An IDE
Some sort of caching mechanism (built into the site or not) to cache query results from 3rd-party APIs, like OpenHub, that we might use.
A database of some sort if we end up wanting to store anything.
(and thus potentially, some sort of lightweight ORM).
Continuous integration / deployment (which all the other components will have to play nicely with).

From the web perspective, I'd like to use NancyFx to have an excuse to get to use it. :) Other items that stick out are Dapper for the ORM, TravisCI for build/deploy.
While an IDE is obviously anyone's preference, I think I might try to force myself to do this whole thing in the Visual Studio Code editor to underscore its potential.
Not sure where to host it that best exemplifies open source (would go with GitHub pages but that would push us more toward Jekyll/ruby when we're trying to highlight .NET).  Azure seems a likely candidate given ease of deployment from Travis and the free web application hosting they offer.
I'd love any opinions on potential pieces of this puzzle and making sure that each one highlights some good OSS.
Thoughts on which components we use are always welcome -- we have a while before we'll even know what we need to build, so this is mostly brainstorming.

Check out wyam.io for making the site.
It's a static site tool in .net that also plays nicely with github pages.


Add request feature detection

Add several tests for each request property available on the HTTP
interface.
Add support for request abstractions such as Koa and Express.
Improve error handling for malformed or incomplete request objects.
Add support for X-Forwarded-Port for more robus HTTPS detection.

It looks like this reverted the changes made in #78. What's the desired way to set the user when running behind a proxy that sets X-Forwarded-For now? To write your own middleware like:
/* @flow */

import Raven from 'raven';
import type {
  $Request as Request,
  $Response as Response,
  NextFunction,
  Middleware,
} from 'express';

export default function sentryContextMiddleware(): Middleware {
  return (req: Request, res: Response, next: NextFunction) => {
    const remoteIp =
      (req.headers['x-forwarded-for'] || '').split(',')[0] ||
      (req.connection && (req.connection: any).remoteAddress);

    const user: { [string]: mixed } = {
      ip_address: remoteIp, // eslint-disable-line camelcase
    };

    Raven.mergeContext({ user });

    next();
  };
}

Should that (or is that) documented somewhere?


Jarek/5597 make widgets publishable

this looks great. i installed it on npmjs and tried to view one of the test notebooks (http://nbviewer.jupyter.org/github/twosigma/beakerx/blob/eedce0b380ae8e2bb02c3ecbf97ba581147b2a8e/doc/contents/nbviewer/NbviewerCategoryPlot.ipynb) but i am getting this error:
beakerx.js Failed to load resource: the server responded with a status of 404 (Not Found)
unpkg.com/jupyter-js-widgets@2.0.33/dist/embed.js:12220 Uncaught (in promise) TypeError: Cannot read property 'PlotModel' of undefined
    at unpkg.com/jupyter-js-widgets@2.0.33/dist/embed.js:12220
    at <anonymous>


[BUG]: The window extra is required to run apps inside of a window. Run pip install "rio-ui" to install it.

Describe the bug
Bug: trying to run basic unmodified tic-tac-toe app from powershell inside VS Code shows error message with instructions to install rio-ui..
Note: web-app examples work fine, and look very promising!
(venv) PS C:\Users\vsaules\Github\rio_ui_test\tic-app> rio run
ERROR: The `window` extra is required to run apps inside of a window. Run `pip install "rio-ui"` to install it.

Steps to Reproduce
plain Python 3.12.6 on Windows
python -m venv venv
/venv/scripts/activate.ps1
pip install rio-ui

requirements.txt
rio new tic_app
select tic-tac-toe
select app
cd tic-app
rio run

This is on:
Edition	Windows 10 Pro
Version	22H2
Installed on	01.09.2023
OS build	19045.4894
Experience	Windows Feature Experience Pack 1000.19060.1000.0
Screenshots/Videos
No response
Operating System
Windows
What browsers are you seeing the problem on?
Other
Browser version
No response
What device are you using?
Desktop
Additional context
No response

Welp, this was a fun one. Our error message does tell you to add the [window] feature, but the terminal control library interpreted it as BBCode and stripped it right out. Thanks for letting us know!


feat(decide): add a new set of decide apis

Summary
Add a new set of Decide APIs:

define OptimizelyUserContext/OptimizelyDecision/OptimizelyDecideOption
add createUserContext API to Optimizely
add defaultDecideOption to Optimizely constructor and builder
decide/decideAll/trackEvent

Pull Request Test Coverage Report for Build 1578

316 of 355 (89.01%)  changed or added relevant lines in 19 files are covered.
4 unchanged lines in 3 files lost coverage.
Overall coverage increased (+0.03%) to 89.738%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core-api/src/main/java/com/optimizely/ab/config/audience/AudienceIdCondition.java
3
4
75.0%

core-api/src/main/java/com/optimizely/ab/config/audience/EmptyCondition.java
0
1
0.0%

core-api/src/main/java/com/optimizely/ab/config/audience/NullCondition.java
0
1
0.0%

core-api/src/main/java/com/optimizely/ab/config/audience/UserAttribute.java
11
13
84.62%

core-api/src/main/java/com/optimizely/ab/internal/ExperimentUtils.java
12
14
85.71%

core-api/src/main/java/com/optimizely/ab/notification/DecisionNotification.java
32
34
94.12%

core-api/src/main/java/com/optimizely/ab/optimizelyjson/OptimizelyJSON.java
5
7
71.43%

core-api/src/main/java/com/optimizely/ab/Optimizely.java
91
94
96.81%

core-api/src/main/java/com/optimizely/ab/bucketing/DecisionService.java
55
62
88.71%

core-api/src/main/java/com/optimizely/ab/OptimizelyUserContext.java
24
33
72.73%

Files with Coverage Reduction
New Missed Lines
%

core-api/src/main/java/com/optimizely/ab/config/audience/EmptyCondition.java
1
33.33%

core-api/src/main/java/com/optimizely/ab/internal/ExperimentUtils.java
1
89.47%

core-api/src/main/java/com/optimizely/ab/bucketing/DecisionService.java
2
92.92%

Totals

Change from base Build 1565:
0.03%

Covered Lines:
4320

Relevant Lines:
4814

💛  - Coveralls

Lgtm

@thomaszurkan-optimizely I'm wondering why you think it's not thread-safe. Each decide-api call in a thread will keep track of its own reason instance, so should be thread-safe.
As discussed above, I'm also wondering if we have any better solutions and keep it open. I'll follow up other SDKs alternative solutions and get back to fix if needed.


Issue 57: Reorganise repo directory structure

This PR closes #57.
Reorganises the repo directory structure as planned in #57:

demos dir has the hosp-only model as a subdir.
pipelines has the pipeline nssp as a subdir. IMO each pipeline should have a tests subdir eventually.
pyrenew-hew/utils.py already existed.
scoringutilhelpers has been removed as not used directly. These functions might end up in a forecastoolsr package, but at the moment are superceded by R scripts in the nssp pipeline.

NB: This PR has not moved any functions, I think we can sequence that over future issues.

Thanks @SamuelBrand1! Appreciate the chunking of these gargantuan tasks into manageable pieces.
I think  to the extent there are multiple pipelines, they should be for different tasks, e.g. real time forecasting vs retrospective evaluation, not different data streams.

Thanks @SamuelBrand1! Appreciate the chunking of these gargantuan tasks into manageable pieces.
I think to the extent there are multiple pipelines, they should be for different tasks, e.g. real time forecasting vs retrospective evaluation, not different data streams.

I think we might want both, or an update in the structure of the code. At the moment its set up to do multiple pathogens on the same data stream(s), but I think the easiest way to split is a seperate pipeline for

nssp
nssp + ww

With space to add hosp stream.
The RT forecasting should be an evolving structure? We've worked hard for the retro to use vintaged data, which means that is logically flows to have the "now" vintage.


Example from README seems to ignore config

Running the example from README creates empty config.ini file (I expected it to contain options I specified on command line or default options). Trying to set, for example, timeout from config.ini fails.
If I add explicit conf(section), it reading that field from file starts working, but created config file is still empty.
README should be extended and include multiple launchers and example config file.

Hi! Sorry for the late reply.

Running the example from README creates empty config.ini file (I expected it to contain options I specified on command line or default options). Trying to set, for example, timeout from config.ini fails.

Now that you mention it I'm not exactly sure why config.ini is created when it's initialized if it's going to be empty anyway. The intended usage, which does write a different config file, is with write_file. This is a modified version of the showcase.rs example, after which a full config file will be created:
    let app = clap::App::new("demo");
    let mut conf = Config::parse(app, "config.ini").unwrap();
    conf.optional_field = Some(String::from("hola"));
    conf.write_file("config.ini").unwrap();
    println!("Parsed config: {:#?}", conf);

Perhaps the file could be created only when write_file is used? Anyhow, if you have this config file before running the example:
[Defaults]
timeout = 1000

The value for timeout is indeed 1000.


Fix EthSoftwareSigner

What does this implement/fix? Explain your changes.
给 EthSoftwareSigner 添加 https://github.com/OneKeyHQ/electrum/pull/804 引入的接口 get_prvkey
Does this close any currently open issues?
If it fixes a bug or resolves a feature request, be sure to link to that issue.
…
Pull request type

Put an x in the boxes that apply

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

Where has this been tested?
…
Any other comments?
…

应该只是为了跟随abstractmethod吧，没有发生实际问题

嗯，是的


feat(field): add Enum type support

This is a proposal as I agree with the author of the issue. Feel free to close it if need be
Change Summary
Support Enum type as follows
class Model(BaseModel):
    fruit: Enum

Related issue number
closes #1735
Checklist

[ ] Unit tests for the changes exist
[ ] Tests pass on CI and coverage remains at 100%
[ ] Documentation reflects the changes where applicable
[ ] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)

@zabzug-pfpt You're absolutely right! I even changed the attribute name to be more explicit. Thanks!

Thanks @samuelcolvin! PR updated. Feedback welcome!

Thanks @samuelcolvin! PR updated. Feedback welcome!

👍


Code Comments

Before we get too far into hacking on Anserini, we should probably decide on how we want to deal with comments.
Do we want to do Javadoc? Something else?

If it was hard to write it should be hard to read?

Simple solution: write self-documenting code :)
Java is so braindead and verbose that this isn't so difficult.
Javadoc for API documentation:
/** foo
*/

Everything else can be inline:
// Here is an explanation of some complex algorithm.


Use the officially supported apache mina sshd in m2k-func

The various git command we use in m2k func now uses the officially
supported ssh implementation for the transport.
Added tests to see the transport is working well with ed25519 keys
Notice - the StrictHost option is now set using a standard ssh_config
(see man ssh_config) file which is assumed to be where the key is located -
so now we can just drop the id_rsa file in a well known location along
with the rest of the .ssh files:
/etc/.ssh/config
/etc/.ssh/known_hosts
/etc/.ssh/id_rsa
Signed-off-by: Roy Golan<EMAIL_ADDRESS>

@rgolangh Please also update the manifest related to m2k-kfunc and make sure the newly needed file is also added in the initContainer and update the install readme accordingly

@rgolangh Please also update the manifest related to m2k-kfunc and make sure the newly needed file is also added in the initContainer and update the install readme accordingly

ack , I'll also update the e2e resource in this repo

@gabriel-farache Fixed the e2e and now they run on the tip of of the PR
There is a race between the deployment of the m2k workflow and the e2e tests because there's no wait to see the workflow is visible from backstage, probably because it takes time till the data-index registers it. We should address that in another PR


XMLSocketAppender file descriptors remain open upon unsuccessful connect

Description
Log4cxx 1.1.0 (default available on Ubuntu 24.04) does not close file descriptors when the log server, e.g., chainsaw is not running. The counting number of sockets remain open.
Code example:
#include <memory>
#include <log4cxx/patternlayout.h>
#include <log4cxx/net/xmlsocketappender.h>
#include <thread>

int main( int argc, char *argv[] )
{
    auto logger = log4cxx::Logger::getRootLogger( );
    auto appender = std::make_shared<log4cxx::net::XMLSocketAppender>( "localhost", 1234 );
    auto layout =
        std::make_shared<log4cxx::PatternLayout>( LOG4CXX_STR( "[%-4p] (%F:%L) %d{mm:ss,SSS} %X{application} %m%n" ) );
    appender->setLayout( layout );
    log4cxx::helpers::Pool pool;
    appender->activateOptions( pool );
    logger->addAppender( appender );
    logger->setLevel( log4cxx::Level::getInfo( ) );

    while ( true )
    {
        LOG4CXX_ERROR( logger, "Something went wrong" );
        LOG4CXX_INFO( logger, "Very important information" );
        std::this_thread::sleep_for( std::chrono::seconds( 1 ) );
    }

    return 0;
}

Listing and counting the open file descriptors periodically results in a constantly growing number:
# ls -l /proc/$(pidof log4cxxdemo)/fd | wc -l
123
# sleep 600
# ls -l /proc/$(pidof log4cxxdemo)/fd | wc -l
141

The socket should be closed after connection failures.
Configuration
Version: [Log4cxx 1.1.0]
Operating system: [Linux, Ubuntu 24.04]
Logs
Program output
log4cxx: Could not connect to [localhost:1234]. We will try again in 30000 ms
log4cxx: IO Exception : status code = 111(Connection refused)

Reproduction
Compile the code above and link with log4cxx library, then execute.

Moved to log4cxx project.


browserify

Is anyone aware of a browserified fork of peerflix, or are there any plans to incorporate something like this? Thanks in advance!

btapp.js does indeed expose the torrented files and a lot more info about the torrent + advanced settings of Torque (invisible clone of uTorrent).
I've worked a lot with it trying to stream to WebChimera (based on libvlc) on a website, only to come to the conclusion that it's practically impossible because it does not support true sequential download, so VLC just breaks video or sound on the first missing byte and doesn't recover.
With that said, how about making a browser plugin based on Peerflix and Firebreath? There aren't any working / stable solutions out there for a plugin that simply plays torrents (except Ace Stream, but they are closed source and do black hat marketing on your PC).
As long as the plugin will be open source and reliable, I can really see this having a place in the online world. I remember Ninja Video (website) that also made their own streaming plugin and they had more then 1 million unique visitors daily, so visitors installing a plugin for something like this seems ok to me.
It could come bundled with WebChimera Plugin (which is highly customizable) for video format support and I could make a fork of WebChimera Player to also fetch subtitles from the OpenSubtitles API. It would practically be a "Popcorn Time" plugin for websites, and I'm sure a lot of web developers would have fun playing with something like this.
I know this is what Feross plans on doing without plugins. But bringing Peerflix to websites with a browser plugin might be the best way to also start seeding through WebRTC and help WebTorrent grow into the future pluginless implementation of this concept. :)

You will need a plugin installed for this.
Check out: Powder NPAPI Plugin
It also has a demo of it streaming torrents directly on a GitHub page. ;)

Web Chimera Plug-in has no support for Linux yet, it works only on windows and mac.  found a torrent streaming client written for firefox , check the code might be helpful somehow sockets.js
https://addons.mozilla.org/en-US/firefox/files/browse/298232/file/resource/TCPSocket.js#top
Torrent Tornado 2.05
https://github.com/mafintosh/peerflix/issues/100#

@omgbox WebChimera Plugin does not stream torrents, it's a web player based on libvlc.dll.
It offers versions for Windows and Mac on the download page and also a way to build it on Linux, but on Linux it's still very new and lacking some features.
Powder NPAPI is the Peerflix Interface for the browser that streams the torrents (currently only made it for windows) that can be used in combination with ANY WEB PLAYER that supports the required video types (VLC Web Player, Divx Web Player, etc)
Powder NPAPI should be easy to port to Mac and Linux as it is a very basic Plugin that simply communicates with Peerflix through the command line. But personally I have to many projects these days (including being one of the developers for the WebChimera Project) to have time to port it to other OS's.


Typography color property values textPrimary and textSecondary with ThemeProvider

Hello,
I'm trying to understand how to use the the ThemeProvider with a custom theme that extends the default theme, as mentioned in the docs.
I'm trying to have a custom color for Typography elements that would be selected via props of the Typography elements instead, e.g <Typography color="textPrimary" ... > inside a component.
What I did is:

As the root element of my app, I have a ThemeProvider component that has a prop theme with the value of a cutom theme object I created..
Inside of it, I have a component <LeftSection> that has a separate file.
In the file of <LeftSection>, in the component declaration (it's a functional component) I have a <Typography> element.

This gives the color primary defined in my theme: ` ... '
This does not provide the color (no change)  ` ... '.

The thing is that I don't know where textPrimary should be declared and how to "select" it such that it's passed down and applied by the ThemeProvider - in the case of primary, the color itself is defined in my theme, the theme is provided to ThemeProvider, and ThemeProvider passes it down to the <LeftSection> component. I don't understand why what I did doesn't work since both primary and textPrimary are mentioned in the docs in the same possible list of values for the color prop for <Typography components. Although, I didn't see a textPrimary prop anywhere in the default palette object.
Please help me understand how this system and its flow work - it's complex which is fine, but I think the docs still make the flow a bit unclear in some cases.

I think you make be looking for theme.palette.text.primary.

Great, that's exactly what I was looking for! Thank you.
I think that there should be an API for the palette object for all of its properties and what they represent - would have made it easier to find this (I ended up checking what you said against the default theme object).


Declare requirements as PURLs

[!warning]
This is a public repository, ensure not to disclose:

[x] personal data beyond what is necessary for interacting with this pull request, nor
[x] business confidential information, such as customer names.

What kind of PR is this?
Required: Mark one of the following that is applicable:

[ ] kind/feature
[x] kind/improvement
[ ] kind/deprecation
[ ] kind/documentation
[ ] kind/clean-up
[ ] kind/bug
[ ] kind/other

Optional: Mark one or more of the following that are applicable:

[!important]
Breaking changes should be marked kind/admin-change or kind/dev-change depending on type
Critical security fixes should be marked with kind/security

[ ] kind/admin-change
[ ] kind/dev-change
[ ] kind/security
[ ] kind/adr

What does this PR do / why do we need this PR?
This PR declares ck8s-apps requirements as PURLs. PURL (Package URL) is a standardized way of identifying software from different ecosystems.
I believe this will benefit us in that the requirements aren't sprawling all over the place and not declared deeply in some script.
Later this could also make it easier to replace Ansible as the installation mechanism (if we want to get rid of that) with something more lightweight as well as, and even more importantly, making vulnerability scanning easy.
Information to reviewers
I pinned the deb packages to Ubuntu 22.04. I'm not sure if this is still what we officially support or if it's something else? Please let me know if this is incorrect or if you have any ideas on how to improve this!
The PURLs now are also a mix of source packages and binary packages. I think vulnerabilities are usually targeting source packages but it would be nice to capture them all. Let me know if you have ideas in this regard as well!
Checklist

[x] Proper commit message prefix on all commits

Change checks:

[x] The change is transparent
[ ] The change is disruptive
[x] The change requires no migration steps
[ ] The change requires migration steps
[ ] The change upgrades CRDs
[ ] The change updates the config and the schema

Metrics checks:

[ ] The metrics are still exposed and present in Grafana after the change
[ ] The metrics names didn't change (Grafana dashboards and Prometheus alerts are not affected)
[ ] The metrics names did change (Grafana dashboards and Prometheus alerts were fixed)

Logs checks:

[ ] The logs do not show any errors after the change

Pod Security Policy checks:

[ ] Any changed pod is covered by Pod Security Admission
[ ] Any changed pod is covered by Gatekeeper Pod Security Policies
[ ] The change does not cause any pods to be blocked by Pod Security Admission or Policies

Network Policy checks:

[ ] Any changed pod is covered by Network Policies
[ ] The change does not cause any dropped packets in the NetworkPolicy Dashboard

Audit checks:

[ ] The change does not cause any unnecessary Kubernetes audit events
[ ] The change requires changes to Kubernetes audit policy

Falco checks:

[ ] The change does not cause any alerts to be generated by Falco

Bug checks:

[ ] The bug fix is covered by regression tests

Note that I didn't grab the idea of using PURLs out of thin air. It's something I've used in previous engagements and it has been adopted in large projects: https://github.com/package-url/purl-spec?tab=readme-ov-file#users-adopters-and-links

In regards to pining deb packages, I don't think we have an official supported version of Ubuntu. And unless we are supposed to think about these as the minimum versions then we need to do something to automate this process. And use that to widen the version scope so that people are less restricted, by automatically test and pull in new requirements for supported versions. (Preferable also in distro scope.) Or make it graceful in case you aren't on a supported one and let the user know that and install what it can.

What prevents us from saying "this is what we officially support and make sure is tested, if you use a different distro/version then it's up to you to install things properly and you're on your own"?

BTW, does the type strictly have to match the defined ones or can one add custom ones? (I'm thinking about an overhaul of the charts script, but currently there is no defined helm type.)

The PURL spec list "known types" and "candidate types" where helm is a candidate: https://github.com/package-url/purl-spec/blob/master/PURL-TYPES.rst
To answer your question directly though, no there is nothing preventing you from introducing your own custom types but they won't be useful outside of your own project then.

In regards to pining deb packages, I don't think we have an official supported version of Ubuntu. And unless we are supposed to think about these as the minimum versions then we need to do something to automate this process. And use that to widen the version scope so that people are less restricted, by automatically test and pull in new requirements for supported versions. (Preferable also in distro scope.) Or make it graceful in case you aren't on a supported one and let the user know that and install what it can.

What prevents us from saying "this is what we officially support and make sure is tested, if you use a different distro/version then it's up to you to install things properly and you're on your own"?

Nothing, I'm mainly thinking about the admin and contrib experience to make it more flexible.
And if we have that automation in place it would update the requirements for us.

BTW, does the type strictly have to match the defined ones or can one add custom ones? (I'm thinking about an overhaul of the charts script, but currently there is no defined helm type.)

The PURL spec list "known types" and "candidate types" where helm is a candidate: https://github.com/package-url/purl-spec/blob/master/PURL-TYPES.rst

Yeah I did see that, but since it is a candidate type and lacks a definition I assume it behaves as a unknown type anyway.

To answer your question directly though, no there is nothing preventing you from introducing your own custom types but they won't be useful outside of your own project then.

Yes, of course, but I do see advantages for our purpose to reuse this representation.

LGTM; can't test since I'm on noble 😅
But yeah we should probably add what distro is supported for the get-requirements scrip!!

I wonder how many have upgraded. Maybe it's time to switch over?


- How I did it
I've changed the version in every Dockerfile.
- Description for the changelog
Dockerfile*: bump Go to 1.7.1

LGTM

LGTM

btw, we can now use compiled go for s390x


Changed project to APPLICATION_EXTENSION_API_ONLY = YES

The framework still builds and tests still pass, so I think this is better to ensure that the library continues to work with the more restrictive option.
This is a follow up to #352 and #351.

Hey @NachoSoto! Thanks for another PR. We use XcodeGen to automatically generate our Xcode project file;
https://github.com/pointfreeco/swift-snapshot-testing/blob/master/project.yml#L14-L17
Can you make the changes there instead, and then run swift run xcodegen from the root of the repo to regenerate the project file? If not no big deal. I can make the change in a bit.

Ooooh of course, I'll do that :)

Done!


Update Liscence to make github recognise it as MIT

I noticed GitHub didn't recognize the license, so i removed the ** around "MIT License" in line 1

Thanks

That issue number though lol


Error:locator degree does not match number of roots in the callback function while trying to decode images.

Error: Error locator degree does not match number of roots

Hello, @abhinav1602 ! Did you find a solution ?

@gansky-alexander  no. I moved to some other library


undefined reference at cc/inference sample

Environment

info
output

os
Ubuntu 16.04

cmake
3.5.1

TF version
1.9.0

TF is working
python -c "import tensorflow as tf; sess=tf.InteractiveSession()" works

bazel version
0.21.0

TF from source version(*.so)
r1.13

tensorflow-gpu
1.9.0

tensorflow-estimator
1.13.0

`Linux FOO 4.15.0-70-generic #79~16.04.1-Ubuntu SMP Tue Nov 12 14:01:10 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
numpy                         1.16.2
protobuf                      3.7.1
tensorflow                    1.9.0
tensorflow-estimator          1.13.0
tensorflow-gpu                1.9.0
RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb
RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb
/home/FOO/.local/lib/python2.7/site-packages/requests/init.py:83: RequestsDependencyWarning: Old version of cryptography ([1, 2, 3]) may cause slowdown.
warnings.warn(warning, RequestsDependencyWarning)
path = /home/FOO/.local/lib/python2.7/site-packages/tensorflow/init.pyc
tf.GIT_VERSION = v1.9.0-0-g25c197e023
tf.VERSION = 1.9.0
tf.COMPILER_VERSION = v1.9.0-0-g25c197e023
2020-01-02 13:45:53.258578: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-01-02 13:45:53.368100: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:897] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-01-02 13:45:53.369103: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1392] Found device 0 with properties:
name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582
pciBusID: 0000:01:00.0
totalMemory: 10.91GiB freeMemory: 9.90GiB
2020-01-02 13:45:53.442601: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:897] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-01-02 13:45:53.443560: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1392] Found device 1 with properties:
name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582
pciBusID: 0000:02:00.0
totalMemory: 10.92GiB freeMemory: 10.77GiB
2020-01-02 13:45:53.444523: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1471] Adding visible gpu devices: 0, 1
2020-01-02 13:45:54.033465: I tensorflow/core/common_runtime/gpu/gpu_device.cc:952] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-01-02 13:45:54.033490: I tensorflow/core/common_runtime/gpu/gpu_device.cc:958]      0 1
2020-01-02 13:45:54.033495: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0:   N Y
2020-01-02 13:45:54.033499: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 1:   Y N
2020-01-02 13:45:54.033684: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1084] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 9572 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:01:00.0, compute capability: 6.1)
2020-01-02 13:45:54.134601: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1084] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:1 with 10422 MB memory) -> physical GPU (device: 1, name: GeForce GTX 1080 Ti, pci bus id: 0000:02:00.0, compute capability: 6.1)
Sanity check: array([1], dtype=int32)
Thu Jan  2 13:45:54 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.67       Driver Version: 418.67       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:01:00.0  On |                  N/A |
| 23%   23C    P0    60W / 250W |    894MiB / 11176MiB |    100%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  Off  | 00000000:02:00.0 Off |                  N/A |
| 23%   22C    P0    62W / 250W |      2MiB / 11178MiB |     72%      Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0       856      G   ...ps/CLion/ch-0/193.5233.144/jbr/bin/java     3MiB |
|    0      1861      G   /usr/lib/xorg/Xorg                           472MiB |
|    0      3486      G   compiz                                       385MiB |
|    0     14914      G   ...yCharm-P/ch-0/193.5233.109/jbr/bin/java    23MiB |
|    0     18373      G   /usr/lib/firefox/firefox                       2MiB |
|    0     24926      G   ...wnloads/Nextcloud-2.5.2-x86_64.AppImage     3MiB |
+-----------------------------------------------------------------------------+
`
Issue
I can't build the inference example for cc. The make command fails with a linkage error.
Context:
I cloned this repo and followed the instructions.
Reproduce:

git clone https://github.com/tensorflow/tensorflow/ && cd tensorflow
git checkout r1.13
./configure (python2.7, cuda version 9.0)
export TENSORFLOW_SOURCE_DIR and TENSORFLOW_BUILD_DIR
mkdir ${TENSORFLOW_BUILD_DIR}
6) cp ${TENSORFLOW_SOURCE_DIR}/bazel-bin/tensorflow/*.so ${TENSORFLOW_BUILD_DIR}/
The following command is an instruction of this repo, but will fail, since the subdirectories do not exist yet:
cp ${TENSORFLOW_SOURCE_DIR}/bazel-genfiles/tensorflow/cc/ops/*.h ${TENSORFLOW_BUILD_DIR}/includes/tensorflow/cc/ops/
Therefore I did a mkdir -p ${TENSORFLOW_BUILD_DIR}/includes/tensorflow/cc/ops/
before.
cd inference/cc
mkdir build
cmake .. (Tried it with cmake .. -DPYTHON_EXECUTABLE=python as well)
make

Output
[ 50%] Building CXX object CMakeFiles/inference_cc.dir/inference_cc.cc.o [100%] Linking CXX executable inference_cc CMakeFiles/inference_cc.dir/inference_cc.cc.o: In functionLoadModel(tensorflow::Session*, std::string, std::string)':
inference_cc.cc:(.text+0x79): undefined reference to tensorflow::ReadBinaryProto(tensorflow::Env*, std::string const&, google::protobuf::MessageLite*)' CMakeFiles/inference_cc.dir/inference_cc.cc.o: In function main':
inference_cc.cc:(.text+0x18ca): undefined reference to tensorflow::Tensor::DebugString() const' inference_cc.cc:(.text+0x1957): undefined reference to tensorflow::Tensor::DebugString() const'
inference_cc.cc:(.text+0x19e7): undefined reference to tensorflow::Tensor::DebugString() const' inference_cc.cc:(.text+0x1a77): undefined reference to tensorflow::Tensor::DebugString() const'
CMakeFiles/inference_cc.dir/inference_cc.cc.o: In function tensorflow::TfCheckOpHelper(tensorflow::Status, char const*)': inference_cc.cc:(.text._ZN10tensorflow15TfCheckOpHelperENS_6StatusEPKc[_ZN10tensorflow15TfCheckOpHelperENS_6StatusEPKc]+0x38): undefined reference to tensorflow::TfCheckOpHelperOutOfLine(tensorflow::Status const&, char const*)'
CMakeFiles/inference_cc.dir/inference_cc.cc.o: In function tensorflow::Status::operator==(tensorflow::Status const&) const': inference_cc.cc:(.text._ZNK10tensorflow6StatuseqERKS0_[_ZNK10tensorflow6StatuseqERKS0_]+0x4d): undefined reference to tensorflow::Status::ToString() const'
inference_cc.cc:(.text.ZNK10tensorflow6StatuseqERKS0[ZNK10tensorflow6StatuseqERKS0]+0x5e): undefined reference to tensorflow::Status::ToString() const' CMakeFiles/inference_cc.dir/inference_cc.cc.o: In function std::string* tensorflow::internal::MakeCheckOpString<long, int>(long const&, int const&, char const*)':
inference_cc.cc:(.text._ZN10tensorflow8internal17MakeCheckOpStringIliEEPSsRKT_RKT0_PKc[_ZN10tensorflow8internal17MakeCheckOpStringIliEEPSsRKT_RKT0_PKc]+0x75): undefined reference to tensorflow::internal::CheckOpMessageBuilder::NewString()' CMakeFiles/inference_cc.dir/inference_cc.cc.o: In function std::string* tensorflow::internal::MakeCheckOpString<unsigned long, unsigned long>(unsigned long const&, unsigned long const&, char const*)':
inference_cc.cc:(.text._ZN10tensorflow8internal17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc[_ZN10tensorflow8internal17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc]+0x75): undefined reference to tensorflow::internal::CheckOpMessageBuilder::NewString()' CMakeFiles/inference_cc.dir/inference_cc.cc.o: In function std::string* tensorflow::internal::MakeCheckOpString<long long, long long>(long long const&, long long const&, char const*)':
inference_cc.cc:(.text._ZN10tensorflow8internal17MakeCheckOpStringIxxEEPSsRKT_RKT0_PKc[_ZN10tensorflow8internal17MakeCheckOpStringIxxEEPSsRKT_RKT0_PKc]+0x75): undefined reference to tensorflow::internal::CheckOpMessageBuilder::NewString()' clang: error: linker command failed with exit code 1 (use -v to see invocation) CMakeFiles/inference_cc.dir/build.make:96: recipe for target 'inference_cc' failed make[2]: *** [inference_cc] Error 1 CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/inference_cc.dir/all' failed make[1]: *** [CMakeFiles/inference_cc.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2
Expectation
Successful make build.
Investigation
I tried several linking flags in the cmake file (-ltensorflow, -tensorflow_cc, -ltensorflow_framework) suggested at https://github.com/tensorflow/tensorflow/issues/14632.
I tried this steps described above on two different machines (Both Ubuntu 16.04, one with cuda as shown above, the other without cuda), but both failed with the error shown above.
I tried the Custom Operation guide in the tensorflow-cmake repo as well, but this didn't succeed neither.

Are the env-var LD_LIBRAR_PATH and LIBRARY_PATH correct? They have to contain the libraries of tensorflow (*.so files)

Are the env-var LD_LIBRAR_PATH and LIBRARY_PATH correct? They have to contain the libraries of tensorflow (*.so files)

I tried this, but I get the exact same error message when doing a make.

Minor: Should be LD_LIBRARY_PATH=$TENSORFLOW_BUILD_DIR:$LD_LIBRARY_PATH and likewise LIBRARY_PATH to make sure the tensorflow libraries are the first which are considered.
I cannot reproduce this issue here.

I updated my post and put detailed information about my bazel configuration. Maybe this helps.

I am a bit confused. You built TensorFlow from source (v1.13) and installed tensorflow pip (v1.9). If this is correct, then there is likely the following issue:

FindTensorFlow.cmake (in this git) calls python to ask for the tensorflow library and version

Since you have installed tensorflow-gpu v1.9, python will only see this. But you will need to compile against v1.13 for inference. When compiled TensorFlow from source, you should also be able to compile the pip wheel and install the pip wheel to have a consistent tensorflow version in python and the *.so files.
This would at least explain the linker errors you observed.


Blueprint issues - placeholder

Hey,
I've started to play around w/ the Blueprint annotation and I'm gonna use this ticket to triage ideas/issues

Just noticed that int is used for Aiken's Int type which from the docs is Aiken's only number type is an arbitrary sized integer. This means there is no underflow or overflow.. I think this should be at least a long or better a BigInteger. EDIT, this break in fact POSIXTime => https://preprod.cexplorer.io/datum/db864f402bd7aadf9919522cfb201fbc4f164bcdf705e998253d42db9e8a3211 there's a negative number that should be the time
Replace snake notation w/ camelCase
Blueprint class generation breaks for https://github.com/easy1staking-com/cardano-recurring-payment (I'd be happy to debug if you point me to a test or something, gradle swallows the error and just ... crashes.)

Note on issue (3)
It looks like the following container classes are not supported:

Tuple
Option

Once I remove all the references, the blueprint compiles no problem

Thanks @nemo83 for tying this out .
Let me run a quick test with your plutus.json, and I will update you here.
I agree that:

int should be converted to BigInteger
snake_case should be converted to camelCase

For debugging, you can find the annotation processor implementation inside the annotation-processor module. There are many test plutus.json files. you can copy your plutus.json to the test or it package and try it.

@nemo83 This PR fixes BigInteger issue https://github.com/bloxbean/cardano-client-lib/pull/433
While BigInteger will be the default option, we can later plan to enhance the @Blueprint annotation with additional metadata to select the appropriate Java integer type (BigInteger, Integer, int) based on the application's requirements.

WRT to Option and Tuple

Option: After talking w/ ktorz he mentioned that Option is a sum-type of object, technically we could forget w/ have native Option in java, and just do the same we do w/ any other sum-type(s)
Tuple, blueprint is a list of lists, I think as an immediate solution this could be okay. Alternatively just implement two pojos (which CCL already have) of Tuple and Triple, nothing more coz at that point a proper container object would be recommended.


Incomplete instruction on getting a Server key for Firebase Cloud Messaging API V1 (current)

If Firebase Cloud Messaging API V1 the Server key is not shown (I assume, it's no longer in [direct] use in this version anymore). To get the one for configuring Notifications Hub, you have to enable Cloud Messaging API (Legacy) as described here https://stackoverflow.com/a/72719766/1310228 and then the Server key will be shown.,

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

ID: 6fd4915d-64a9-b703-f139-91338412825a
Version Independent ID: e731d0e6-e063-d209-7faf-82db773e5d30
Content: Send push notifications to Android using Azure Notification Hubs and Firebase SDK version 1.0.0-preview1
Content Source: articles/notification-hubs/android-sdk.md
Service: notification-hubs
GitHub Login: @sethmanheim
Microsoft Alias: sethm

@webmaxru , thank you for your feedback. We'll review this and get back to you shortly!

webmaxru, Thanks for sharing the steps/discussion thread which outlines the solution. For the doc update, we are tracking this on https://github.com/MicrosoftDocs/azure-docs/issues/93552, so we will close this thread. We have shared the feedback with the author. Much appreciate you taking time to share your feedback.


Unknown CSI inputs result in garbage key events

When a terminal CSI sequence is not recognized by bubbletea, it is not completely ignored; instead, bubbletea will match the initial escape byte and the character immediately afterwards as a single key with the alt modifier, then interpret the rest as regular key inputs. For example, ESC [ 1003 h  gets parsed as alt+1, then 0, then 0, then 3, then h.
Since the CSI sequences all have a regular structure, they could be parsed and ignored as a single unit.
(The definition is strict: a CSI sequence starts with ESC [ and terminates with a byte value in the range 0x40 to 0x7E.)

Could you elaborate how such a sequence would be triggered?

Could you elaborate how such a sequence would be triggered?

For example until #396 gets merged, if you press Shift+Home in xterm you get:

1 key message for Alt+1
1 separate message for a single l character
1 separate message for 2
1 final message for H.


zoneminder doesn't start in 0.63

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version):
0.63
Python release (python3 --version):
3.5.2
Component/platform:
Camera/Zoneminder
Description of problem:
Zoneminder doesn't start and generates errors
Expected:
Zoneminder starts normally as it does in 0.62.1
Problem-relevant configuration.yaml entries and steps to reproduce:
platform: zoneminder

just start homeassistant after upgrade to 0.63

Traceback (if applicable):
2018-02-10 16:24:41 ERROR (MainThread) [homeassistant.components.camera] Error while setting up platform zoneminder
Traceback (most recent call last):
  File "/srv/jhass/lib/python3.5/site-packages/homeassistant/helpers/entity_platform.py", line 84, in async_setup
    SLOW_SETUP_MAX_WAIT, loop=hass.loop)
  File "/usr/lib/python3.5/asyncio/tasks.py", line 392, in wait_for
    return fut.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 274, in result
    raise self._exception
  File "/usr/lib/python3.5/asyncio/tasks.py", line 239, in _step
    result = coro.send(None)
  File "/usr/lib/python3.5/asyncio/coroutines.py", line 206, in coro
    res = func(*args, **kw)
  File "/srv/jhass/lib/python3.5/site-packages/homeassistant/components/camera/zoneminder.py", line 56, in async_setup_platform
    monitors = zoneminder.get_state('api/monitors.json')
  File "/srv/jhass/lib/python3.5/site-packages/homeassistant/components/zoneminder.py", line 124, in get_state
    return _zm_request('get', api_url)
  File "/srv/jhass/lib/python3.5/site-packages/homeassistant/components/zoneminder.py", line 104, in _zm_request
    cookies=ZM['cookies'], timeout=DEFAULT_TIMEOUT)
KeyError: 'cookies'
2018-02-10 16:25:03 WARNING (MainThread) [homeassistant.components.camera] Setup of platform ring is taking over 10 seconds.

Additional info:

I have the same problem after upgrading to 0.63. Deactivating zoneminder makes the error go away and homeassistant starts...

i have the same issue with HASSIO...... but HASSIO starts up ok with the error with no ZoneMinder

I think yajrendrag meant that no zoneminder component works. I just upgrade and got the same problem. HA starts ok, but none of my zoneminder cameras/sensors works/shows up on web interface.

Strangely my ZoneMinder Switch within HA works fine I can successfully turn the camera mode from Modect to Monitor. So some of the integration is working.

@clyra - correct, hass starts fine, just the zoneminder error and no zoneminder cameras show up on web ui.  Also, am running hass on desktop machine, running ubuntu 16.04 in a venv, not hassio.

Same issue here with ZoneMinder under 0.63.  I'm running on pyvenv (Python 3.6) on CentOS-7. Same cookie error message.

Same issue here. I'm running the HASS docker.

Same problem I am seeing in front end it says "The following components and platforms could not be set up: zoneminder , Please check your config."

although the 0.63.1 release info doesn't mention anything specific to this error, thought i'd try 0.63.1 anyway.   Zoneminder starts ok now - no more error messages and no messages in front end.

Cool, i will Try HASSIO 0.63.1 when its available... and feedback....

0.63.1 fixed it for me.


Scoped nested css does not emit properly after vite build

Here is the minimal reproduction of the issue.
https://github.com/ycmjason/vite-issue-reproduction-scoped-nested-css
I've included the dist in the repo.
This is the css emitted (formatted):
.fine[data-v-b9dfe1ae] {
  color: green;
}
.fine[data-v-b9dfe1ae]__not {
  color: red;
}

The scope id is placed incorrectly as shown above.
Thanks for the amazing tool. Vite made development much less painful.

Please note that the correct CSS is emitted in dev mode.


Update styles.css

Make words easier to read

Before:

After:

That makes it look awesome, thanks for the update.


Apply-PnPProvisioningTemplate : The remote server returned an error: (403) Forbidden.

Can anyone help with this issue, I'm not sure what am I doing wrong, please.
New-PnPSite : App-Only is currently not supported, unless you provide a Microsoft Graph Access Token.
At C:\Users\Ali.Gomaa\OneDrive -
ProAmpac\Downloads\requestteam\microsoft-teams-apps-requestateam-master\Deployment\Scripts\deploy.ps1:309 char:9

    New-PnPSite -Type TeamSite -Title $RequestsSiteName -Alias $r ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : WriteError: (:) [New-PnPSite], Exception
FullyQualifiedErrorId : EXCEPTION,PnP.PowerShell.Commands.NewSite
Site created
TEAMS REQUESTS SITE CREATION COMPLETE

REQUESTS SPO SITE CONFIGURATION
Configuring SharePoint site...
Applying provisioning template...
Apply-PnPProvisioningTemplate : The remote server returned an error: (403) Forbidden.
At C:\Users\Ali.Gomaa\OneDrive -
ProAmpac\Downloads\requestteam\microsoft-teams-apps-requestateam-master\Deployment\Scripts\deploy.ps1:340 char:9

    Apply-PnPProvisioningTemplate -Path (Join-Path $packageRootPa ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : WriteError: (:) [Apply-PnPProvisioningTemplate], WebException
FullyQualifiedErrorId : EXCEPTION,PnP.PowerShell.Commands.Provisioning.Site.ApplyProvisioningTemplate
Applied template
Error occured while configuring the SharePoint site: Exception calling "ExecuteQuery" with "0" argument(s): "The remote server returned an error: (403) Forbidden."

@alig26 this is a bug with the latest version of PnP, see issue #134

Just for the record I am experiencing the same issue..

@alig26 I have also updated the deployment guide to state this is a known issue. Please downgrade PnP as per this note.
I will close this issue for now and please re-open if you are still stuck.
Thanks


PDF and HTML exporting temperamental formats

Describe the bug
Exporting content in HTML and in PDF formats can create a series of peculiar issues:

Exporting to HTML creates file sizes approximately twice the size of PDF.
PDF files often do not maintain the appropriate formatting.

Feature request:

PDF files do not contain the Table of Contents metadata (i.e. the table of contents that can be used within the Table of Contents panels available in PDF viewers).

Steps To Reproduce
Steps to reproduce the behavior:

Go to the demo BookStack site.
Export various content to HTML or PDF

Below are a few examples pulled from the demo site:
Overlapping cropped images:
my-lorem-ipsum-book.pdf
Page 6, misaligned text next to image when compared to HTML version/BookStack interface:
dummy-content-book.pdf
dummy-content-book.html.zip
File sizes of the last two files:
dummy-content-book.pdf size = 377KB
dummy-content-book.html size = 741KB

Hi @maggie0002,

Exporting to HTML creates file sizes approximately twice the size of PDF.

Yeah, This doesn't surprise me. We could be more efficient with the styles we're adding to the HTML version but that will only save about 50kb perhaps. Generally though, these are two very different file formats. The main size consumer will be images. The image encoding used within the HTML export is known to have a size overhead whereas PDF can make optimizations here.

PDF files often do not maintain the appropriate formatting.

Yeah, It's tricky. There are other open issues regarding PDF rendering quirks. If PDF rendering is important to you I'd recommend our documentation on using the alternative wkhtmltopdf renderer:
https://www.bookstackapp.com/docs/admin/pdf-rendering/
This generally provides a more stable and consistent output.

PDF files do not contain the Table of Contents metadata

Again the default PDF renderer does not support this but you can use the wkhtmltopdf to get this working. This is discussed within #2052.

A follow up here, since I’m now back into BookStack work.
Is there the ability to have a html package export? I see some advantages in the consolidated html file, but a zip archive of a html package would leave the images in their original form, benefiting from their compression, resolve image cropping issues, and would also help resolve some of the video export issues as it could export videos that have been uploaded into the archive.
By package I’m referring to a similar export system as we see in browsers where the index.html is accompanied by a folder containing components that index.html refers to locally.

A follow up here, since I’m now back into BookStack work.
Is there the ability to have a html package export? I see some advantages in the consolidated html file, but a zip archive of a html package would leave the images in their original form, benefiting from their compression, resolve image cropping issues, and would also help resolve some of the video export issues as it could export videos that have been uploaded into the archive.
By package I’m referring to a similar export system as we see in browsers where the index.html is accompanied by a folder containing components that index.html refers to locally.

Hi @maggie0002,

Is there the ability to have a html package export?

Not at the current time.

but a zip archive of a html package would leave the images in their original form, benefiting from their compression, resolve image cropping issues, and would also help resolve some of the video export issues as it could export videos that have been uploaded into the archive.

A zip archive would not solve/perform those actions alone, We'd have to go to a fair amount of extra effort to accommodate each of those.
If that feature would be really important to you feel free to open a new feature request issue.

Hi @maggie0002,

Is there the ability to have a html package export?

Not at the current time.

but a zip archive of a html package would leave the images in their original form, benefiting from their compression, resolve image cropping issues, and would also help resolve some of the video export issues as it could export videos that have been uploaded into the archive.

A zip archive would not solve/perform those actions alone, We'd have to go to a fair amount of extra effort to accommodate each of those.
If that feature would be really important to you feel free to open a new feature request issue.

Hi @ssddanbrown,
I was thinking Pandoc integration as an optional module. It would add some efficiencies to the various exports by keeping the assets seperate as discussed above, but also a bunch of additional options, such as EPUB (https://github.com/BookStackApp/BookStack/issues/1949), video export support (https://github.com/BookStackApp/BookStack/issues/883; https://github.com/BookStackApp/BookStack/issues/2412) and a bunch more.
Here are a few shortcuts to try it out:

Here is Pandoc: https://pandoc.org
In most repositories so apt-get install pandoc or brew install pandoc should do the trick (if installing in a docker container, may need to install build-essential and/or curl).
An example Markdown I have tested with:

test.md
# Test file
Test MD File.

[![Build Status](https://cdn.vox-cdn.com/thumbor/zEZJzZFEXm23z-Iw9ESls2jYFYA=/89x0:1511x800/1600x900/cdn.vox-cdn.com/uploads/chorus_image/image/55717463/google_ai_photography_street_view_2.0.jpg)](https://travis-ci.org/joemccann/dillinger)
Dillinger is a cloud-enabled, mobile-ready, offline-storage, AngularJS powered HTML5 Markdown editor.

  - Type some Markdown
  - Convert some Markdown

![](https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4)

# New Features!

  - sdfsdf
  - sdfsdvldkvnc

You can also:
  - send

Execute the command:
pandoc test.md -o example2.html --extract-media ./assets

Hi @ssddanbrown,
I was thinking Pandoc integration as an optional module. It would add some efficiencies to the various exports by keeping the assets seperate as discussed above, but also a bunch of additional options, such as EPUB (https://github.com/BookStackApp/BookStack/issues/1949), video export support (https://github.com/BookStackApp/BookStack/issues/883; https://github.com/BookStackApp/BookStack/issues/2412) and a bunch more.
Here are a few shortcuts to try it out:

Here is Pandoc: https://pandoc.org
In most repositories so apt-get install pandoc or brew install pandoc should do the trick (if installing in a docker container, may need to install build-essential and/or curl).
An example Markdown I have tested with:

test.md
# Test file
Test MD File.

[![Build Status](https://cdn.vox-cdn.com/thumbor/zEZJzZFEXm23z-Iw9ESls2jYFYA=/89x0:1511x800/1600x900/cdn.vox-cdn.com/uploads/chorus_image/image/55717463/google_ai_photography_street_view_2.0.jpg)](https://travis-ci.org/joemccann/dillinger)
Dillinger is a cloud-enabled, mobile-ready, offline-storage, AngularJS powered HTML5 Markdown editor.

  - Type some Markdown
  - Convert some Markdown

![](https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4)

# New Features!

  - sdfsdf
  - sdfsdvldkvnc

You can also:
  - send

Execute the command:
pandoc test.md -o example2.html --extract-media ./assets

@maggie0002 I do like pandoc, and although it might in theory solve a couple of those existing issues, It would likely bring a lot more as this kind of thing quickly gets complex.
I'm going to close this off since the original issue and discussion here is for non-pandoc related thoughts; Please could you open this as a new issue (Pretty much just copy and paste your last message as a new issue)

@maggie0002 I do like pandoc, and although it might in theory solve a couple of those existing issues, It would likely bring a lot more as this kind of thing quickly gets complex.
I'm going to close this off since the original issue and discussion here is for non-pandoc related thoughts; Please could you open this as a new issue (Pretty much just copy and paste your last message as a new issue)


[Layer] Add requireLabel() function

[Layer] Add requireLabel() function

Add a simple function `Layer::requireLayer()`.
This function is used to detect if a certain layer requires a layer.

**Self evaluation:**
1. Build test: [X]Passed [ ]Failed [ ]Skipped
2. Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #1261. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.

:octocat: cibot: @zhoonit, Applications/SimpleShot/layers/centroid_knn.h does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md


Update mlops-technical-paper.md

Added "cse" to metadata for FCP PowerBI reporting

@bricewmiller : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


Suggestion: Remove blue glow around search/address bar when active

Before/current:

After/potential fix:

In older versions of Firefox (not sure when the transition period was), the search and address bars wouldn't produce a blue glow when activated. I've always preferred the older design, the blue glow never looked that great in my opinion. Is it possible to add (well, technically remove) this feature to WaveFox? Other than that, WaveFox works really well for me, and I love its customizable group of settings!

Highlighting the search bar helps the user interact with the interface. So I'll leave it as is, but you can make changes yourself.


Build failed with latest DPDK v17

Build of 'ans' failed with following error due to API mismatch.
$ make
CC ans_kni.o
/home/upawar/projects/dpdk-ans/dpdk-ans/ans/ans_kni.c: In function ‘ans_kni_sendpkt_burst’:
/home/upawar/projects/dpdk-ans/dpdk-ans/ans/ans_kni.c:148:12: error: too few arguments to function ‘rte_ring_enqueue_bulk’
return rte_ring_enqueue_bulk(ring,(void **)mbufs,nb_mbufs);
^
In file included from /home/upawar/projects/dpdk-ans/dpdk-stable-17.05.1/x86_64-native-linuxapp-gcc/include/rte_mempool.h:78:0,
from /home/upawar/projects/dpdk-ans/dpdk-stable-17.05.1/x86_64-native-linuxapp-gcc/include/rte_mbuf.h:65,
from /home/upawar/projects/dpdk-ans/dpdk-stable-17.05.1/x86_64-native-linuxapp-gcc/include/rte_ether.h:52,
from /home/upawar/projects/dpdk-ans/dpdk-ans/ans/ans_kni.c:64:
/home/upawar/projects/dpdk-ans/dpdk-stable-17.05.1/x86_64-native-linuxapp-gcc/include/rte_ring.h:644:1: note: declared here
rte_ring_enqueue_bulk(struct rte_ring *r, void * const *obj_table,
^
/home/upawar/projects/dpdk-ans/dpdk-ans/ans/ans_kni.c: In function ‘kni_ring_to_kni’:
/home/upawar/projects/dpdk-ans/dpdk-ans/ans/ans_kni.c:325:13: error: too few arguments to function ‘rte_ring_dequeue_burst’
nb_rx = rte_ring_dequeue_burst(p->ring,(void **)&pkts_burst, PKT_BURST_SZ);
^
In file included from /home/upawar/projects/dpdk-ans/dpdk-stable-17.05.1/x86_64-native-linuxapp-gcc/include/rte_mempool.h:78:0,
from /home/upawar/projects/dpdk-ans/dpdk-stable-17.05.1/x86_64-native-linuxapp-gcc/include/rte_mbuf.h:65,
from /home/upawar/projects/dpdk-ans/dpdk-stable-17.05.1/x86_64-native-linuxapp-gcc/include/rte_ether.h:52,
from /home/upawar/projects/dpdk-ans/dpdk-ans/ans/ans_kni.c:64:
/home/upawar/projects/dpdk-ans/dpdk-stable-17.05.1/x86_64-native-linuxapp-gcc/include/rte_ring.h:1096:1: note: declared here
rte_ring_dequeue_burst(struct rte_ring *r, void **obj_table,
^
/home/upawar/projects/dpdk-ans/dpdk-stable-17.05.1/mk/internal/rte.compile-pre.mk:138: recipe for target 'ans_kni.o' failed
make[1]: *** [ans_kni.o] Error 1
/home/upawar/projects/dpdk-ans/dpdk-stable-17.05.1/mk/rte.extapp.mk:42: recipe for target 'all' failed
make: *** [all] Error 2

These libs were compiled based on  dpdk-17.02, you shall use  dpdk-17.02 instead of  dpdk-17.05.

Are you planning to update project to support newer releases of DPDK ?

Yes, plan to update.


adding a readme for Adversarial Nibbler

Thanks for the PR! I have added some requests

I addressed them all (added relative links just now)


OAuth redirect URL behind ELB using HTTPS over port 80

I have API Umbrella behind an AWS ELB, with SSL termination at the ELB (443 -> 80 on the API Umbrella instances). On trying OAuth at /admin/login I'm getting a redirect URL of https://my-domain:80/admin/login. That's HTTPS over port 80, which of course doesn't work.
It looks like the redirect URL in the request is being set to port 80, I assume by API Umbrella....? From Google's OAuth:
400. That’s an error.
Error: redirect_uri_mismatch
The redirect URI in the request, https://my-domain.com:80/admins/auth/google_oauth2/callback, does not match the ones authorized for the OAuth client.

If I set the authorized callback URL for OAuth to use port 80, I'll just get an ERR_SSL_PROTOCOL_ERROR on redirect.

I'm suspecting something to do with SSL termination at the LB...?

I'm going to close this. Got it working by going to non-default ports.

How did you workaround this?  This is related to https://github.com/NREL/api-umbrella/issues/329

There's additional documentation on potential port issues and additional configuration options in v0.14.0: https://api-umbrella.readthedocs.io/en/latest/server/listen-ports.html


Server Object needs HTMLEncode HTMLDecode

Reported by brian on 1 Jan 1970 00:19 UTC
These functions don't exist yet.

Modified by brian on 1 Jan 1970 00:19 UTC

Modified by clinton on 1 Jan 1970 00:20 UTC


Add support to use system installed tinyobjloader

The tinyobjloader library is now available in several distributions (see https://repology.org/project/tinyobjloader/versions), so it could make sense to provide an option to use the system version if it is available.
Related issue: https://github.com/robotology/robotology-superbuild/issues/383 .

@traversaro I think this is a good idea. A note from the repology site: it appears that this won't be in Ubuntu until 20.10 (at least).
I don't know how soon we'll be able to address this, so a Pull Request would be appreciated.


What is the intended behavior of the VERIFY_AND_SAVE action of SetForwardingPipelineConfig ?

Version 1.2.0 of the specification says this about the VERIFY_AND_SAVE action of the SetForwardingPipelineConfig message in this section: https://p4.org/p4runtime/spec/v1.2.0/P4Runtime-Spec.html#sec-setforwardingpipelineconfig-rpc
VERIFY_AND_SAVE: saves the config if the P4Runtime target can realize it. The forwarding state in the target is not modified. However, any subsequent Read / Write requests must refer to fields in the new config. Returns an INVALID_ARGUMENT error if the forwarding config is not provided or if the provided config cannot be realized.
Suppose a device currently has P4 program P1 loaded and operating in it.  A client has successfully added many table entries into multiple tables, and the device is humming along happily executing program P1 with that configuration.
P1 has table T1 with actions T1A1 and T1A2
Now a client sends SetForwardingPipelineConfig with action VERIFY_AND_SAVE with program P2, where P2 is a program that the device is capable of loading and executing.  The server returns success.
From my reading of the text above, the device should still be executing P1, with the same set of table entries as before the SetForwardingPipelineConfig message was processed successfully.
P2 also has table T1, with actions:

T1A1 that is the same as in P1
T1A2 is different between P2 and P1 - in P2 it has an additional parameter t1a2_new_param with type bit<8>
T1A3 is a new action for table T1 that is in P2, but appears nowhere in P1

If a client now attempts to add a table entry T1 with action T1A1, and the device has space to add that new entry, should it immediately be added into the device's table, and thereby change the packet processing behavior of the device?
If a client now attempts to add a table entry to T1 with action T1A3.  Should it be successful, because program P2 can add it?  Or should it fail because it does not exist in P1?  If it succeeds, should the packet processing behavior of the device change in any way?
If a client now attempts to add a table entry to T1 with actin T1A2, should it be an error if no parameter value t1a2_new_param is provided, because program P2 needs that parameter value?  If the client does provide a value t1a2_new_param for the action, should the device's packet processing behavior be changed immediately, adding the action with all parameters except for t1a2_new_param?
Because of the questions above, and others I could make up for other kinds of changes between P1 and P2, it seems to me that the job of the server is drastically simplified if, when in this state where it has successfully processed a SetForwardingPipelineConfig message with action VERIFY_AND_SAVE, the server rejects all kinds of run-time configuration messages except another SetForwardingPipelineConfig message, perhaps with restrictions on which kinds of SetForwardingPipelineConfig messages it can succeed on in this state.
If that restriction isn't intended, is there a description somewhere in the spec that answers what to do in all of the example scenarios described above?

As soon as the SetForwardingPipelineConfig with action VERIFY_AND_SAVE succeeds, program P1 is out of the picture from a P4Runtime perspective. You can no longer affect packet processing in any way until the COMMIT action. For example, you cannot react to a port down event to update some forwarding table. Every subsequent Write is valid if and only if it is valid for program P2.
The 2-step update (VERIFY_AND_SAVE -> COMMIT) is meant to let you build your new forwarding state (think of it in terms of memory contents) without affecting packet processing. This can be done over several seconds if you need to push a lot of table entries to the P4Runtime server (even if you only have one Write with a bunch of entries). Once you are ready, you perform the COMMIT action and the device should try to "swap" {P1 + entries} with {P2 + entries} as "atomically" as possible. I gave a talk around this feature and its implementation on Tofino in 2018: https://www.youtube.com/watch?v=qlwIlw0dxJk

Thanks for that info.  I may look over the P4Runtime API spec and see if anything might be changed slightly there to make what you say above more explicit there.
Suppose a client did VERIFY_AND_SAVE, followed by many attempted additions of table entries to the new, but not yet active, P4 program.  Suppose the client software wished to operate in a way such that if any of the table additions failed, it wanted to "undo" the VERIFY_AND_SAVE operation, i.e. go back to a state where it could perform operations on the currently running P4 program, and abandon the new one it gave in the VERIFY_AND_SAVE operation.  Is that possible using operations in the current P4Runtime API spec?

Of course the client can just implement this manually and "undo" its actions using DELETE write RPCs. But I agree it would be convenient to be able to use the VERIFY_AND_SAVE action again to start again. The spec does not say anything about that, so it is possible that some targets implement this behavior already. IIRC correctly, bmv2 will fail with a "swap already in progress" error message. However, it does seem that it should not be too hard to implement (on bmv2 or any other target). If a target only builds state in software in reaction to write RPCs that occur between a VERIFY_AND_SAVE action and a COMMIT action, clearing this state again should not be an issue. If a target starts building state in hardware (e.g. because available memory allows it and there exists some versioning system in the hardware to have multiple datapath versions, but only one active for any given packet), it may be more involved.
So in a nutshell, I think it would be good to have and we should probably propose this change when we resume P4 API WG meetings.

At the 2020-Sep-11 P4 API working group meeting, I volunteered for two things:
(1) Create a PR for the spec that clarifies the currently intended VERIFY_AND_SAVE behavior, which is that it puts the server into a different "state", where write requests and read requests all go to an initially empty state for the new program (that isn't committed to the hardware yet), and those read and write requests do not affect the currently operating data plane at all.  It seems that perhaps a simple state diagram might be useful here, even if it only has 2 states, to show all of the ways that the server can change between those states.
I think this current issue has a good title for this, and rather than creating a new issue for it, will use this one, and link to any PR for proposed spec clarifications from here.
(2) Create a separate issue for a proposed new command ABORT, which has been done: https://github.com/p4lang/p4runtime/issues/314

Now that I think of writing the clarification for this issue, I have a question for others about the current intended behavior:
It seems clear that if there is a single client session that does a successful VERIFY_AND_SAVE operation, that all previously sent read and write requests from that same client that haven't completed ought to refer to the currently operating data plane, and be allowed to finish operating on that state, even if they haven't finished yet at the time the server receives the VERIFY_AND_SAVE operation.
Any new read/write requests received from the same client after the server accepts and processes (with a successful result) a VERIFY_AND_SAVE operation, should refer to the new P4 program provided in the VERIFY_AND_SAVE call.
Should that be the case for all clients?  That is, if there is a second and third client that did not do the VERIFY_AND_SAVE operation, they need to cooperate with the client performing the VERIFY_AND_SAVE so that they stop doing read/write requests on the current program before the VERIFY_AND_SAVE is sent to the server?
And if they do not stop sending such read/write requests, then after the server processes the VERIFY_AND_SAVE command with successful result, all clients read/write requests will now operate on the new P4 program state (the one not in the data plane yet)?
Or is it the intent that somehow some clients can continue operating on the current P4 program in the data plane, whereas other clients only operate on the new P4 program state that is not in the data plane?

After a successful VERIFY_AND_SAVE operation, is it intended that the server continues sending out digests, timeout notifications, and PacketIn messages to client(s) for the current program in the data plane?
Should the server still accept PacketOut messages from clients for the current data plane?
If yes, then the clients are in a state where they cannot write/read table entries for the current data plane, but they are receiving these other kinds of notifications about the current data plane program?
This question is out of scope for clarifying the existing P4Runtime API spec, I think, since it sounds like a change to me, but did folks consider providing the capability for write and read requests to refer to 'currently operating P4 program' versus 'next P4 program' as the target of the operation?  (where 'next P4 program' means 'the P4 program provided by the last successful VERIFY_AND_SAVE operation')

So here is my interpretation of the spec:

after a successful VERIFY_AND_SAVE, the client will not receive any more messages on the stream, save for those related to arbitration, until after COMMIT: no packet-ins, no digests.
after a successful VERIFY_AND_SAVE, the client should not attempt to send messages on the stream, save for those related to arbitration. If a packet-out message is received by the stream, it should be dropped, and an error may be logged / reported to the client.
regarding other clients: First only a single client can have write access at a given time. For clients with read-access only, I agree that things are not optimal as: they don't get notified by P4Runtime of the pipeline change (but may be notified by some distributed control plane logic) and their only recourse is periodic GetForwardingPipelineRequest RPCs. One thing that is not covered by the spec I believe is a change in leadership after a VERIFY_AND_SAVE has been initiated. There is no mechanism baked into P4Runtime right now that would enable the new leader to figure out that a pipeline change is ongoing and that a COMMIT is still required. So maybe this is information that GetForwardingPipelineRequest should be able to return to the new leader. Once again it is possible that in practice, there is some distributed data base shared across clients that would be able to provide that information.

The rationale for 1 & 2 is simply that the P4Runtime implementation is expected to support a single P4 pipeline version at any given time. So if that version does not match the one currently being implemented by the device (as is the case between VERIFY_AND_SAVE and COMMIT), things like Packet IO are not possible (metadata handling). I would actually be in favor of supporting operations on both versions of the pipeline, but that's a big decision which would potentially introduce more complexity, so I think it requires a discussion across both ends of the spectrum (people who write controllers and vendors who need to implement this support).

Any plans to clarify the state changes for  SetForwardingPipelineConfig RPC?  It is not clear to me what happens if control plane calls VERIFY_AND_SAVE and then calls VERIFY_AND_COMMIT rather than COMMIT (Is target just accepting COMMIT when the previous command is VERIFY_AND_SAVE?)


.spice netlist is messed up due to label placement

The .spice netlist seems to contain a lot of gibberish. It turns out that the standard cells of gf180 contains a lot of extra labels, which is wrongfully extracted as pin labels.

Recent versions of the magic tech file from open_pdks removes these labels (which have not been converted to the naming conventions of the open PDK, anyway).  The installation of the standard cells using open_pdks does not have this issue.


fixes #220 added empty depedency in useEffect

fixedd #220
i have added an empty depedency array in useEffect to stop infinite loop fetching issue.

We have tried to fix this issue before @love-sonkar.


Fix CI issues

https://github.com/travis-ci/travis-ci/issues/6422

Current coverage is 99.58% (diff: 100%)

No coverage report found for master at a77168a.

Powered by Codecov. Last update a77168a...07083f9

Current coverage is 99.58% (diff: 100%)

No coverage report found for master at a77168a.

Powered by Codecov. Last update a77168a...764cb42

Current coverage is 99.58% (diff: 100%)

Merging #128 into master will not change coverage

@@             master       #128   diff @@
==========================================
  Files            10         10
  Lines           479        479
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            477        477
  Misses            2          2
  Partials          0          0

Powered by Codecov. Last update fccffee...764cb42

Current coverage is 99.58% (diff: 100%)

Merging #128 into master will not change coverage

@@             master       #128   diff @@
==========================================
  Files            10         10
  Lines           479        479
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            477        477
  Misses            2          2
  Partials          0          0

Powered by Codecov. Last update fccffee...c1d1b55


Show code samples

This pull request:

Replaces the content block in the YAML with one called examples which
holds an array of code snippets
Puts these code snippets onto the documentation pages in order
Adds a <pre> block after each example for easily copy-and-pasteable code

Examples

It would be worth taking the overflow: scroll off the code examples. User research has shown they don;t mind having a long page if it means they can see all the code.

@tombye: a4326dc

@tombye: 2c44b8cbfc3610bc9667069b3135564aa39f77de


loader: fix issue where errors cancelled compile cause error logs.

On Linux/Unix based implementations, exec/cmd.Run will return either context.ContextCancelled or the error "signal: killed" depending on whether the cancellation occured while the process was running.
There's several places we check on is.Errors(err, context.Cancelled) on whether to emit high level logs about failed program compilations.  Because already running cmd.Run() doesn't return an error that satisfies this, this will result in spurious error logs about failed compilation (i.e. "signal: killed")
This meant that in cases where a compilation is legitimately cancelled, we would still log an error such as
msg="BPF template object creation failed" ... error="...: compile bpf_lxc.o: signal: killed"
This can occur occasionally in CI, which enforces no error to pass, causing failures.
example:
	ctx, c := context.WithTimeout(context.Background(), time.Second)
	go func() {
		time.Sleep(time.Second)
		c()
	}()
	cmd := exec.CommandContext(ctx, "sleep", "2")
	fmt.Println(cmd.Run())

	ctx, c = context.WithTimeout(context.Background(), time.Second)
	c()
	cmd = exec.CommandContext(ctx, "sleep", "2")
	fmt.Println(cmd.Run())

To fix this, this will join in the ctx.Err() if it is:

context.Cancelled
The process has not exited itself.
The process appeared to be SIGKILL'ed.

Addresses: #2886

/test

/test

/test

/test

@julianwiedmann I didn't notice it happening in other branches, I think the uptick in these failing CI was also related to other changes in 0.16.0.  However, this does seem like a minor bug either way so I think we can justify backporting this.


Android button

Creating Search and Resolve Android Button

@roserafini overall this is looking great!
Broader feedback: there's some code duplication in the *Button classes, so I'd recommend considering if you can extract a parent class to encapsulate some of the common functionality (grabbing API keys, resolving a URL) and member variables (AndroidClient, Context, API_KEY_STRING).
Also, it looks like it would be worthwhile to throw in some unit tests both for the Button classes as well as for Util.createQueryFromParameters, since those a both pretty logic-heavy code paths.

@roserafini overall, great job getting this code together, the results look awesome. Most of the comments I've made pertain to code style and clarity, which is a good thing! If you're available tomorrow, I'd be down to go through this code review with you in-person so we can address all of the comments from above and push this to completion.