Query Builder dbprefix gets injected in the wrong place on Update.

#4086 and #4096 are similar.  Running CodeIgniter 3.1.9
$this->db->set('attribute_values.attribute_datetime','attribute_values.attribute_value');
$this->db->where('attribute_links.definition_id',$definition_id);
$success = $this->db->update('attribute_values JOIN attribute_links ON attribute_values.attribute_id = attribute_links.attribute_id');
Produces:
UPDATE `attribute_values
JOIN attribute_links ON attribute_values`.`ospos_attribute_id =` `attribute_links`.`attribute_id`
SET `ospos_attribute_values`.`attribute_datetime` = 'attribute_values.attribute_value'
WHERE `ospos_attribute_links`.`definition_id` = '8'

You can see that the order of the join turns out properly but that it's inserting dbprefix on the attribute_id column and it's inserting a backtick in improper places.  In other areas the Query builder is not inserting the dbprefix where it should.
I would like to be able to use db->join() with db->update() but for some reason that isn't a thing even though my code above accomplishes the join if I'm not using dbprefix, but dbprefix breaks it.  This should either be fixed to work properly with dbprefix or something should be put into place to temporarily not append dbprefix so that it can be hardcoded and it won't put dbprefix in the wrong place like it's doing now.
Before you say it, not using dbprefix isn't an option.

You can see that the order of the join turns out properly but that it's inserting dbprefix on the attribute_id column and it's inserting a backtick in improper places. In other areas the Query builder is not inserting the dbprefix where it should.

Well, I had to edit your post and add proper code formating before I could see this ... :)

I would like to be able to use db->join() with db->update() but for some reason that isn't a thing even though my code above accomplishes the join if I'm not using dbprefix, but dbprefix breaks it.

Yea, the problem here is that you're shoving arbitrary SQL into update() and it's not designed to work like that. You've linked other issues as similar because they mention "dbprefix", but if there's any issue related to this it's #2944 - it's kind of long, but if you read through it you'll find hints at why the combination of update() and join() isn't supported.
Either way, that's not a valid pretext for shoving a JOIN expression into update() and expecting it to work at all (I'm surprised it does), let alone in combination with another feature ...

This should either be fixed to work properly with dbprefix or something should be put into place to temporarily not append dbprefix so that it can be hardcoded and it won't put dbprefix in the wrong place like it's doing now.

I don't fully understand what you're suggesting, but there's nothing to fix. You're doing something that's just not supported.
The only alternative I can suggest is using raw SQL and query().

Before you say it, not using dbprefix isn't an option.

Oh, it's an option ... you just don't like that option.
I'm seriously itching to drop that feature entirely and remarks like this are really testing my resolve to keep it for the few poor souls who think it's a good idea. What I'm trying to say is, just stick to reporting actual problems and if there's a bug we'll fix it. This isn't helping your case.

@narfbg dbprefix is useful when you have two or more installs of the same CI driven software in the same database space. The reason I said it's not an option is not because it's not possible, we agree on that, but that involves a bunch of code rewrites and refactoring for code that already uses it.
You're saying join and update isn't supported and I can respect that, but as long as the database (MYSQL in this case) is capable of doing it, then you are going to get people trying to use Query Builder to do things like this, so it really shouldn't be surprising that people are asking.  Doing a search on "CI Query Builder Update Join" gives quite a number of hits in google on people trying to do this an similar.  For now I'm using Query builder and dividing it into two separate queries and making PHP do the work of the join via associated array.
The dbprefix suggestion was simply to have a means of disabling the appending of the dbprefix value for a block of code, or a flag specifically for querybuilder to disable the appending for that query.


Dump schema as SQL since we're using views

config.active_record.schema_format = :sql

http://edgeguides.rubyonrails.org/configuring.html
config.active_record.schema_format controls the format for dumping the database schema to a file. The options are :ruby (the default) for a database-independent version that depends on migrations, or :sql for a set of (potentially database-dependent) SQL statements.

Thank you @barrettclark for providing an answer after your great Rails Conf talk!

This is no longer needed, as we've removed dependency on views in #811.


added telemetry to faq

@GrantMeStrength, are you the appropriate authority to review this PR? Thanks.

I will approve this on Shawn's behalf.


Retrain model，num_fp=0, num_tp=0

@xuannianz
I retrain the model，get 0.000. Please help me, boss
Running network: 100% (1279 of 1279) |##########################################################################################| Elapsed Time: 0:02:15 Time:  0:02:15
Parsing annotations: 100% (1279 of 1279) |######################################################################################| Elapsed Time: 0:00:00 Time:  0:00:00
num_fp=0, num_tp=0
3076 instances of class person with average precision: 0.0000
937 instances of class person_1 with average precision: 0.0000
4007 instances of class body with average precision: 0.0000

@xuannianz
I retrain the model，get 0.000. Please help me, boss
Running network: 100% (1279 of 1279) |##########################################################################################| Elapsed Time: 0:02:15 Time: 0:02:15
Parsing annotations: 100% (1279 of 1279) |######################################################################################| Elapsed Time: 0:00:00 Time: 0:00:00
num_fp=0, num_tp=0
3076 instances of class person with average precision: 0.0000
937 instances of class person_1 with average precision: 0.0000
4007 instances of class body with average precision: 0.0000

I had a similar issue while training with my own csv dataset.On someone's suggestion here I tried using the exact same versions of keras and tf mentioned below and it seemed to work:
tensorflow 1.15.0
Keras 2.2.5
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.0
keras-vis 0.4.1
Though to be completely honest I'm still not sure as to what the issue is.

@xuannianz
I retrain the model，get 0.000. Please help me, boss
Running network: 100% (1279 of 1279) |##########################################################################################| Elapsed Time: 0:02:15 Time: 0:02:15
Parsing annotations: 100% (1279 of 1279) |######################################################################################| Elapsed Time: 0:00:00 Time: 0:00:00
num_fp=0, num_tp=0
3076 instances of class person with average precision: 0.0000
937 instances of class person_1 with average precision: 0.0000
4007 instances of class body with average precision: 0.0000

I had a similar issue while training with my own csv dataset.On someone's suggestion here I tried using the exact same versions of keras and tf mentioned below and it seemed to work:
tensorflow 1.15.0
Keras 2.2.5
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.0
keras-vis 0.4.1
Though to be completely honest I'm still not sure as to what the issue is.

I tried using the exact same versions of keras and tf mentioned below and it seemed not to work:
tensorflow 1.15.0
Keras 2.2.5
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.0
keras-vis 0.4.1
What else can I do？

@xuannianz
I retrain the model，get 0.000. Please help me, boss
Running network: 100% (1279 of 1279) |##########################################################################################| Elapsed Time: 0:02:15 Time: 0:02:15
Parsing annotations: 100% (1279 of 1279) |######################################################################################| Elapsed Time: 0:00:00 Time: 0:00:00
num_fp=0, num_tp=0
3076 instances of class person with average precision: 0.0000
937 instances of class person_1 with average precision: 0.0000
4007 instances of class body with average precision: 0.0000

I had a similar issue while training with my own csv dataset.On someone's suggestion here I tried using the exact same versions of keras and tf mentioned below and it seemed to work:
tensorflow 1.15.0
Keras 2.2.5
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.0
keras-vis 0.4.1
Though to be completely honest I'm still not sure as to what the issue is.

I tried using the exact same versions of keras and tf mentioned below and it seemed not to work:
tensorflow 1.15.0
Keras 2.2.5
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.0
keras-vis 0.4.1
What else can I do？

I'm sorry but I have no idea so it's better you check with the authors of this code.

i also encounter the same problem. Any suggestions?


[BUG]: Incorrect url validation

I'm submitting a

[ ] Regression (a behavior that used to work and stopped working in a new release)
[x] Bug report
[ ] Enhancement
[ ] Feature request
[ ] Documentation issue or request

Description
Validation failed when I type parameters in url input.
For example:

This url 100% correct.
Version Information
ngx-editor: 8.1.1
angular: 9.1.4

Browser

[x] Chrome - 90.0.4430.93
[ ] Mozilla Firefox - x.x.x
[ ] Opera - x.x.x
[ ] Microsoft Edge - x.x.x

I can't do it today. I have some personal emergency. At hospital. Feel free to raise a PR, the regex can be non strict. May be this https://regexr.com/39p0t. I will try to merge and release by tomorrow EOD

I fixed this bug in PR.
Review it please.

Fixed in v9.0.2


Submission author identifier box is not working

Per Randy Bush - selecting the button with his name as a label below has no effect:

The button appears to be selected, but the fields below are not populated (which is what the form in the eventual post relies on).

Fixed by #3850


Improve mempool metrics

Currently we scrape the mempool RPC and count the various kind's of operations. We record this as a GaugeValue.
Using a CounterValue would be better, but we are blocked in implementing this as we don't have a way of getting monotonic counts of mempool operations.
We have opened a feature request on the tezos gitlab issue tracker here:
https://gitlab.com/tezos/tezos/issues/512

The /chains/main/mempool/monitor_operations RPC satisfies what we need here.
Crude shell implementation;
while true; do curl -s --no-buffer http://localhost:8732/chains/main/mempool/monitor_operations\?applied | jq '.[].contents[].kind' | sort |uniq -c; done
The RPC server hangs up after every block, which means we would need to reconnect every-time the server disconnects. This means we could miss streamed operations during the reconnect window.
There are four filter args;

applied
branch_refused
refused
branch_delayed

Which I believe means we need to have four connections/listeners for each filter kind. Having a histogram metric for the re-connection time might be useful to spot long reconnect times.


No rule to make target 'kdd99extractor'

What is file kdd99extractor ?
how to run this step?
Exit the folder of build cache and compile the project
cd ..
cmake --build ./build-files --target kdd99extractor -- -j 4

I'm facing the same issue, have you found a solution?

What is file kdd99extractor ?
how to run this step?
Exit the folder of build cache and compile the project
cd ..
cmake --build ./build-files --target kdd99extractor -- -j 4

I found a solution to the issue. It turns out since I was using a clean VM Ubuntu Image, I forgot to install gcc and libpcap.
Please install libcap using: sudo apt-get install libpcap-dev
And use this tutorial to install gcc: https://linuxize.com/post/how-to-install-gcc-compiler-on-ubuntu-18-04/
After which, you'll have to open a terminal and drag and drop the "build-files/src/kdd99extractor' file, preceded by sudo (to gain packet capture priviledges).
Please let me know if anything doesn't work as expected.

@mohab-sameh It's showing me empty and no results when I execute the build package, any hints ?

@souravs17031999 I've made a prebuilt package here.
Maybe try giving it a shot if building is what is causing that issue.
Otherwise, maybe tell me more about your environment, steps, how the current issue looks like, etc.

Thanks @mohab-sameh , I was able to execute it and get the kdd feature format from my pcap dump.
Btw, models will also have to be tuned according to only the features which are able to extract from this package , right ?
I was thinking of somehow getting all those 41 features (including the ones not being extracted from here).
Do you know any such tool ?

Also, there are some features such as duration, bytes transferred, packets count which are available in wireshark or in tcpdump but it gets printed only when it is killed and at last it prints these stats , have you encountered issues like that earlier ?

@souravs17031999 I used to synthesize data using CICFlowMeter. Haven't played around much with synthesizing the data from scratch using WS/tcpdump. But those features are logically only available upon killing the connection or the process altogether. Duration, bytes transferred, and packet count need the connection to terminate before being calculated.
I'm not sure how you're simulating your lab, but if you need to have those as features per each row (like KDD), I believe that they confine the scope of each packet to a separate connection, which then they kill, thereby having a duration and packets count per each row. I'm not 100% sure they did that while synthesizing the KDD-99, but it's what makes the most sense.


Can't verify CSRF token authenticity

Doing ruby-saml integration with okta. All things executed successfully in which, I am getting the SAMLResponse from okta after successfully login with okta and when I redirect it to any routes I see this message in the server log "can't verify CSRF token authenticity" and  "Invalid Authenticity token in HelloWorldController#Index" in browser.
What I am missing here can someone help please? Thanks!

It seems your ruby app has CSRF token protection so when the IdP sends the SAMLResponse to the Assertion Consumer Service endpoint of your app, since there is no CSRF token included in the POST you get that error.
You will need to whitelist the SAML endpoints to not require CSRF token (SAML has its own mechanism to maintain the integrity of the message, so CSRF protection is not required on those views).
See related:

https://github.com/apokalipto/devise_saml_authenticatable/issues/62#issuecomment-249935690
http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection.html

@pitbulk I tried the solution provided by you but It does not work.

That error does not belong ruby-saml, instead the ruby web framework that you are using.
You need to deactivate CSRF protection on SAML endpoints. I don't know how your app is, what framework you are using.. so can't help more than what I already provided to you, sorry.

@pitbulk - thanks for the quick reply. Can you please confirm why my response is not valid. when I am going to check response.is_valid? it always return false.

This is how I got my application controller to not validate CSRF for init and consume, the two methods i implemented in my saml_controller.rb:
class ApplicationController < ActionController::Base
  protect_from_forgery except: [:init, :consume], with: :exception


Enable auto merge of minor updates

I think you need to make some checks mandatory for this to work as intended.

I think you need to make some checks mandatory for this to work as intended.

👍 I added the current checks as required.


rustfmt fails to format a specific match statement

I couldn't manage to isolate the specific bug in this case, so I'm going to provide the definition of the function containing the match statement as-is:
#[derive(Debug)]
enum Error<'a> {
    RuntimeError(&'a str),
    IoError(io::Error),
}

impl<'a> std::error::Error for Error<'a> {
    fn source(&self) -> Option<&(std::error::Error + 'static)> {
        match self {
            Error::IoError(error) => Some(error),
            _ => None,
        }
    }
}

impl<'a> Display for Error<'a> {
    fn fmt(&self, f: &mut Formatter) -> fmt::Result {
        match self {
            Error::RuntimeError(description) => write!(f, "runtime error: {}", description),
            Error::IoError(error) => write!(f, "I/O error: {}", error),
        }
    }
}

impl<'a> From<std::io::Error> for Error<'a> {
    fn from(error: io::Error) -> Self {
        Error::IoError(error)
    }
}

type Result<'a, T> = std::result::Result<T, Error<'a>>;

enum Value {
    Str(String),
    Bool(bool),
    Number(Float),
}

impl Display for Value {
    fn fmt(&self, f: &mut Formatter) -> fmt::Result {
        match self {
            Value::Str(value) => write!(f, "{}", value),
            Value::Bool(value) => write!(f, "{}", value),
            Value::Number(value) => write!(f, "{}", value),
        }
    }
}

enum InputMode {
    Disabled,
    Simple(String),
    Nested(usize, String),
}

struct State {
    stack: Vec<Value>,
    input_mode: InputMode,
}

enum ArithmeticOperation {
    Addition,
    Subtraction,
    Multiplication,
    Division,
    Remainder,
}

fn apply_arithmetic_operation<'a>(op: ArithmeticOperation, state: &mut State) -> Result<'a, ()> {
    match       (       state.stack.pop           (),       state.stack.pop      ()                   )

    {
                    (Some(value1), Some(value2)) => {

                        match (value1, value2) {
                        (Value::Number(num1), Value::Number(num2)) => {
                            let result = match op {
                                ArithmeticOperation::Addition => num1 + num2,
                                ArithmeticOperation::Subtraction => num1 - num2,
                                ArithmeticOperation::Multiplication => num1 * num2,
                                    ArithmeticOperation::Division => num1 /num2,
                                ArithmeticOperation::Remainder => num1 % num2,
                            };
                            state.stack.push(Value::Number(result));
                            Ok(())
                        }
                        _ =>
                    Err(Error::RuntimeError(
                        "cannot sum values on top of stack: the two topmost values on the stack should be numbers",
                    ))
                    }}
                    _ =>
                                                return Err(Error::RuntimeError(
                        "cannot sum values on top of stack: there must be at least two values on the stack",
                    ))
                }
}

rustfmt seems to properly format that except for the whole outermost match statement where the whitespace still remains garbled.

A smaller example:
fn foo(input: Option<usize>) -> usize {
    match x {
                _ =>
                    Err(Error::RuntimeError(
                        "cannot sum values on top of stack: the two topmost values on the stack should be numbers",
                    ))
            }
}

Looks like rustfmt fails to format the entire match expression because of the string literal that exceeds max width. @rgeorgiev583 To work around this for now, please make the string literal shorter manually or by setting wrap_str = true to rustfmt.toml (though the configuration option is kind of buggish).

@topecongiro
I split the string literal manually and rustfmt now seems to format everything correctly.
The workaround with wrap_str = true did not work for me, though (rustfmt seems to ignore that option as it is not present in rustfmt --help=config at all).
Anyway, thanks for the suggestion because it solved my issue!

@rgeorgiev583 there is also the option format_strings that would split the long string for you.

@topecongiro did you mean format_strings instead of wrap_str ?


feat: Add onExportToBackend prop so host can handle it

Move onExportToBackend  logic to excalidraw app
Add a prop exportToBacked prop which host can use to self host the shareable link
Rename CHANGELOG.MD => CHANGELOG.md

Thanks @ad1992!


Swap SBOL ontology files

Replace our bespoke sbol.owl file with @goksel's version

Fixed in #34. Still needs to be used as a submodule or dependency rather than a cherrypicked copy.


nixos-rebuild targeting remote host fails  (maybe a Perl issue?)

Describe the bug
Trying to use nixos-rebuild with --target-host to install onto a remote host.  Fails at what I think is the last hurdle.
Here's the end of the output:
copying path '/nix/store/y4wx0h1vad0k20njmhxr6s0i3bx8hy7y-system-units' to<EMAIL_ADDRESS>copying path '/nix/store/6f97przhzd9l3p4xciqlmmgi0mhk8gv2-user-units' to<EMAIL_ADDRESS>copying path '/nix/store/mr72r6vr69gncnn3p86504135c3k6s4p-etc' to<EMAIL_ADDRESS>copying path '/nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe' to<EMAIL_ADDRESS>/nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe/bin/switch-to-configuration: line 3: use: command not found
/nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe/bin/switch-to-configuration: line 4: use: command not found
/nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe/bin/switch-to-configuration: line 5: syntax error near unexpected token `('
/nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe/bin/switch-to-configuration: line 5: `use File::Path qw(make_path);'
warning: error(s) occurred while switching to the new configuration

Steps To Reproduce
Steps to reproduce the behavior:
NIXOS_CONFIG=<cfg> nixos-rebuild --target-host root@host switch
Expected behavior
New system installed on remote machine.
Additional context
Command was run on a x86-64, target host is an i686.
Trying to do this, I had previously encountered bug #159082 which I worked around as I described in that issue.
Notify maintainers

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
jia:~/nixos$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 5.4.182, NixOS, 21.11 (Porcupine)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3.16`
 - channels(root): `"nixos-21.11.336755.efea022d6fe, nixos-unstable-22.05pre358986.062a0c5437b"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Here's the metadata for the remote host:
$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"i686-linux"`
 - host os: `Linux 5.4.46, NixOS, 20.03.2262.2b417708c28 (Markhor)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3.6`
 - channels(root): `"nixos-21.05.4726.530a53dcbc9"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

tried setting --build-host to the remote machine: that fails with "cannot execute binary file" when trying to run an x86_64 version of nix-store (presumably on the remote i686 machine).
I can't see a switch or env var for this, but should I be telling nixos-rebuild the target architecture?  I had presumed it would interrogate the target host...

I don't have any experience in cross compilation.
It seems that switch-to-configuration is treated as a bash script even though it's actually a Perl script. Could you try to run /nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe/bin/switch-to-configuration (don't worry, if you don't pass any arguments to this script it won't do anything) on both of your computers?
From a quick look I didn't notice anything at odds with the way pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh calls switch-to-configuration.

Running on the x86_64:
jia:~/nixos$ /nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe/bin/switch-to-configuration
Usage: /nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe/bin/switch-to-configuration [switch|boot|test]

switch:       make the configuration the boot default and activate now
boot:         make the configuration the boot default
test:         activate the configuration, but don't make it the boot default
dry-activate: show what would be done if this configuration were activated

and on the i686:
[jk@standus:~]$ /nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe/bin/switch-to-configuration
/nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe/bin/switch-to-configuration: line 3: use: command not found
/nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe/bin/switch-to-configuration: line 4: use: command not found
/nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe/bin/switch-to-configuration: line 5: syntax error near unexpected token `('
/nix/store/qdd3z2mwkyb9mmqchhsb3k696wbk8sb5-nixos-system-standus-21.11.336755.efea022d6fe/bin/switch-to-configuration: line 5: `use File::Path qw(make_path);'

the shebang for switch-to-configutation is:
#! /nix/store/4lfqnjvn4xm9nsm5mw78lvv31qmpjx1d-perl-5.34.0-env/bin/perl

and running that binary on the i686 gives:
[jk@standus:~]$ /nix/store/4lfqnjvn4xm9nsm5mw78lvv31qmpjx1d-perl-5.34.0-env/bin/perl -h
/nix/store/4lfqnjvn4xm9nsm5mw78lvv31qmpjx1d-perl-5.34.0-env/bin/perl: line 3: /nix/store/j4gm826s1ajlnqifayprzm528kjnznw2-perl-5.34.0/bin/perl: cannot execute binary file: Exec format error
/nix/store/4lfqnjvn4xm9nsm5mw78lvv31qmpjx1d-perl-5.34.0-env/bin/perl: line 3: /nix/store/j4gm826s1ajlnqifayprzm528kjnznw2-perl-5.34.0/bin/perl: Success

the same binary behaves as expected on the x86_64 (prints perl help)
so it's trying to use an x86_64 binary on an i686?

Okay! That is valuable output! Yes, I agree that it's trying to use an x86_64 binary on an i686. A workaround fix for that concrete issue would be to change the shebang line into #!/usr/bin/env perl, which would (hopefully) find the correct perl to use at runtime.
However, that's probably not the best solution. The shebang line is specified in [nixos/modules/system/activation/switch-to-configuration.pl] as #! @perl@/bin/perl, which is in [nixos/modules/system/activation/top-level.nix] then rewritten by a call to substituteAll so that @perl@ gets replaced by the path to whatever perl package which is currently in evaluation scope.
I hope that people who are more familiar with cross compilation can use this information to devise a good fix :-)

I tried to reproduce this here. Since all my machines are x86-64, I cannot use --target-host and instead tried cross compiling with nix-build '<nixpkgs/nixos>' -A system -I nixos-config=i686.nix where i686.nix has the following contents:
{ config, pkgs, ... }:

{
  boot.enableContainers = true;
  boot.isContainer = true;
  nixpkgs.crossSystem = {
    config = "i686-unknown-linux-gnu";
    system = "i686-linux";
  };
}

However, this approach produces a switch-to-configuration file which references the correct (i686) perl.
I still assume that someone who is knowledgeable with the nixpkgs cross compilation architecture could resolve this very quickly, but time permitting I will also continue to think about this. @jkozak, do you have tuits to raise this issue over at our Discourse?

I have raised this on the discourse

@iblech's comment has the answer I believe: --build-host and --target-host just tell nixos-rebuild where to run things without any regard to their system architecture. You need to make sure that your system configuration is cross compiled properly when going from x86_64 to i686.

Oh cool, thank you @sternenseemann! I didn't realize I had the solution :-)
So we are looking at a documentation bug, not at an implemention bug.
@jkozak, it looks like you need to add a nixpkgs.crossSystem section similar to my example in the relevant configuration.nix.

Thanks!  I have inserted such a section and this almost works now, except that the cross-compile fails on nghttp2 with ld failing on missing -lz, which I'll investigate separately.
A caveat in the docs would be nice.


⚠ SkipTheCommericals has degraded performance

In 476f526, SkipTheCommericals ($STC) experienced degraded performance:

HTTP code: 200
Response time: 2181 ms

Resolved: SkipTheCommericals performance has improved in 65519c1.


one qustion plz

is ur code work in psn ?

What is psn?

playstation
or can we contact in skype i won to make one program i have the source only u make it
if u make i will pay to u

Lol. This program is only for Tera on a pc.
Can you give me a short description what the task would be?

i will explan to u in skype can u add me

Okay, add me. Addy is GoneUp2

OKAY DONE


Missing Project.toml

This repo is missing a project file.

Added Project.toml in commit number bf831d1.


Make nodejs 18.14.0 installation work, changed npm --unsafe-perm behavior

The Issue
Fixes https://github.com/drud/ddev/issues/4614
How This PR Solves The Issue
Implements the same change to the npm command in the Dockerfile as https://github.com/drud/ddev/pull/4610 did.
Manual Testing Instructions
Automated Testing Overview

Related Issue Link(s)
Release/Deployment Notes

@rfay After I test that, what would be the brew command to run to go back to the stable release like normal?

Testing now on local.

Tried testing this on my local (which needs the pre.Dockerfile.certificates to load in extra certificates) and I got the following error:
ddev restart
Restarting project houston9...
Instrumentation is opted in, but SegmentKey is not available. This usually means you have a locally-built ddev binary or one from a PR build. It's not an error. Please report it if you're using an official release build.
failed to solve: executor failed running [/bin/sh -c curl -sSL --fail -o /tmp/setup_node.sh https://deb.nodesource.com/setup_18.x  ||  curl -sSL --fail -o /tmp/setup_node.sh https://deb.nodesource.com/setup_18.sh >/tmp/setup_node.sh]: exit code: 60
Failed to restart houston9: ComposeCmd failed to run 'COMPOSE_PROJECT_NAME=ddev-houston9 docker-compose -f /Users/R654600/code/houston9/.ddev/.ddev-docker-compose-full.yaml up --build -d', action='[up --build -d]', err='exit status 17', stdout='#1 [drud/ddev-dbserver-mariadb-10.3:v1.21.4-houston9-built internal] load build definition from Dockerfile
#1 transferring dockerfile: 612B done
#1 DONE 0.0s

#2 [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built internal] load build definition from Dockerfile
#2 transferring dockerfile: 2.12kB done
#2 DONE 0.0s

#3 [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built internal] load .dockerignore
#3 transferring context: 2B done
#3 DONE 0.0s

#4 [drud/ddev-dbserver-mariadb-10.3:v1.21.4-houston9-built internal] load .dockerignore
#4 transferring context: 2B done
#4 DONE 0.0s

#5 [drud/ddev-dbserver-mariadb-10.3:v1.21.4-houston9-built internal] load metadata for docker.io/drud/ddev-dbserver-mariadb-10.3:v1.21.4
#5 DONE 0.0s

#6 [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built internal] load metadata for docker.io/drud/ddev-webserver:20230128_xdebug_build_time
#6 DONE 0.0s

#7 [drud/ddev-dbserver-mariadb-10.3:v1.21.4-houston9-built 1/2] FROM docker.io/drud/ddev-dbserver-mariadb-10.3:v1.21.4
#7 DONE 0.0s

#8 [drud/ddev-dbserver-mariadb-10.3:v1.21.4-houston9-built 2/2] RUN (groupadd --gid 20 "r654600" || groupadd "r654600" || true) && (useradd  -l -m -s "/bin/bash" --gid "r654600" --comment '' --uid 503 "r654600" || useradd  -l -m -s "/bin/bash" --gid "r654600" --comment '' "r654600" || useradd  -l -m -s "/bin/bash" --gid "20" --comment '' "r654600" || useradd -l -m -s "/bin/bash" --comment '' r654600 )
#8 CACHED

#9 [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built  1/13] FROM docker.io/drud/ddev-webserver:20230128_xdebug_build_time
#9 DONE 0.0s

#10 [drud/ddev-dbserver-mariadb-10.3:v1.21.4-houston9-built] exporting to image
#10 exporting layers done
#10 writing image sha256:7ee6865cfc3d2148217a86dcb2fa3b3fb48eee855d78c729b8740c6e9e772cfb done
#10 naming to docker.io/drud/ddev-dbserver-mariadb-10.3:v1.21.4-houston9-built done
#10 DONE 0.0s

#11 [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built internal] load build context
#11 transferring context: 2B 1.8s done
#11 DONE 1.8s

#12 [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built  4/13] RUN update-ca-certificates --fresh
#12 CACHED

#13 [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built  5/13] RUN export XDEBUG_MODE=off; composer self-update --stable || composer self-update --stable || true; composer self-update --2 || composer self-update --2 || true
#13 CACHED

#14 [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built  6/13] RUN mkdir -p /home/r654600 && chown r654600 /home/r654600 && chmod 600 /home/r654600/.pgpass
#14 CACHED

#15 [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built  2/13] RUN (groupadd --gid 20 "r654600" || groupadd "r654600" || true) && (useradd  -l -m -s "/bin/bash" --gid "r654600" --comment '' --uid 503 "r654600" || useradd  -l -m -s "/bin/bash" --gid "r654600" --comment '' "r654600" || useradd  -l -m -s "/bin/bash" --gid "20" --comment '' "r654600" || useradd -l -m -s "/bin/bash" --comment '' r654600 )
#15 CACHED

#16 [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built  3/13] COPY *.crt /usr/local/share/ca-certificates/
#16 CACHED

#17 [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built  7/13] RUN (apt-get remove -y nodejs || true) && (apt purge nodejs || true)
#17 CACHED

#18 [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built  8/13] RUN curl -sSL --fail -o /tmp/setup_node.sh https://deb.nodesource.com/setup_18.x  ||  curl -sSL --fail -o /tmp/setup_node.sh https://deb.nodesource.com/setup_18.sh >/tmp/setup_node.sh
#18 0.578 curl: (60) SSL certificate problem: self signed certificate in certificate chain
#18 0.578 More details here: https://curl.se/docs/sslcerts.html
#18 0.578
#18 0.578 curl failed to verify the legitimacy of the server and therefore could not
#18 0.578 establish a secure connection to it. To learn more about this situation and
#18 0.578 how to fix it, please visit the web page mentioned above.
#18 1.011 curl: (60) SSL certificate problem: self signed certificate in certificate chain
#18 1.011 More details here: https://curl.se/docs/sslcerts.html
#18 1.011
#18 1.011 curl failed to verify the legitimacy of the server and therefore could not
#18 1.011 establish a secure connection to it. To learn more about this situation and
#18 1.011 how to fix it, please visit the web page mentioned above.
#18 ERROR: executor failed running [/bin/sh -c curl -sSL --fail -o /tmp/setup_node.sh https://deb.nodesource.com/setup_18.x  ||  curl -sSL --fail -o /tmp/setup_node.sh https://deb.nodesource.com/setup_18.sh >/tmp/setup_node.sh]: exit code: 60
------
 > [drud/ddev-webserver:20230128_xdebug_build_time-houston9-built  8/13] RUN curl -sSL --fail -o /tmp/setup_node.sh https://deb.nodesource.com/setup_18.x  ||  curl -sSL --fail -o /tmp/setup_node.sh https://deb.nodesource.com/setup_18.sh >/tmp/setup_node.sh:
#18 0.578
#18 0.578 curl failed to verify the legitimacy of the server and therefore could not
#18 0.578 establish a secure connection to it. To learn more about this situation and
#18 0.578 how to fix it, please visit the web page mentioned above.
#18 1.011 curl: (60) SSL certificate problem: self signed certificate in certificate chain
#18 1.011 More details here: https://curl.se/docs/sslcerts.html
#18 1.011
#18 1.011 curl failed to verify the legitimacy of the server and therefore could not
#18 1.011 establish a secure connection to it. To learn more about this situation and
#18 1.011 how to fix it, please visit the web page mentioned above.
------
', stderr='failed to solve: executor failed running [/bin/sh -c curl -sSL --fail -o /tmp/setup_node.sh https://deb.nodesource.com/setup_18.x  ||  curl -sSL --fail -o /tmp/setup_node.sh https://deb.nodesource.com/setup_18.sh >/tmp/setup_node.sh]: exit code: 60'

I don't have the same cert setup as @davereid-pfg 's project, and head worked fine! So, I don't think this PR is needed.
$ ddev version
 ITEM             VALUE
 DDEV version     vHEAD-1f93c39
$ ddev exec node --version
v18.14.0

Since NODE_LTS here is 16, this PR won't be necessary, but we'll definitely have to sort out when we switch the LTS default to 18. Which should be pretty soon.
Thanks so much for taking the time to do this. Continuing conversation on short-term approaches in

#4614

@davereid-pfg this PR couldn't not have worked OOTB because it doesn't reference the docker image that would be built from it.


feat: Add customRenderStyle

:tada: This PR is included in version 1.0.0 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:


"Call to unknown plugin: CallNumber" when installing 1.0.4 (broken in Cordova 8)

Because the npm package refers to version 1.0.1 instead of 1.0.4, I have added the Cordova plugin to my Ionic 4 project from Github directly with ionic cordova plugin add git+https://github.com/rohfosho/CordovaCallNumberPlugin.git, to get the latest version.
But when I then run the app on a phone and try to launch the dialler, I get an error:
D/PluginManager: exec() call to unknown plugin: CallNumber

Does anybody have a solution for this?

Any support for this? The recent merge I referenced above has broken this plugin on Cordova 8.

Having the same problem.

It doesn't work for me @dogofpavlov

@ewerton94 sorry. I'd say double check. I just did it again for another project I'm working on and it worked. Be sure to remove/add the project again.

@dogofpavlov it worked for me, thanks.

FYI, this is fixed by #88


Maintenance updates (releaser v2, hatch)

Perform a couple of maintenance updates:

[x] Update config and workflows for the new releaser v2
[x] Align the repo with the upstream cookiecutter (configuration, switch to hatch)
[x] Require Python 3.7+

Testing on Binder: https://mybinder.org/v2/gh/jtpio/jupyterlab-plugin-playground/releaser-v2

CI is now passing, also looking good on Binder.


PHOENIX-7309 Support specifying splits.txt file while creating a table

Checkstyle warnings and unit failures are not related. Merging the PR.
Thank you @tkhurana  and @virajjasani  for the review.


Conda cache

We added a task to the main workflow to use the cache for conda packages:
      - name: Cache Conda
        uses: actions/cache@v2
        if: ${{ !env.ACT }} # It seems cache doesn't work locally using act. Error: Attempt 1 of 2 failed with error: Cache Service Url not found, unable to restore cache.
        env:
          # Increase this value to reset cache if environment.yml has not changed
          CACHE_NUMBER: 0
        with:
          path: ~/conda_pkgs_dir
          key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ hashFiles('environment.yml') }}

We followed the instructions from the official documentation of the GitHub Action but It seems it's not working because it takes the same time for the workflow task to setup conda (approx 3m).
This is the way GitHub restores the cache
/usr/bin/tar --use-compress-program zstd -d -xf /home/runner/work/_temp/0ab39142-6d27-4ba5-9746-1666e1aed07a/cache.tzst -P -C /home/runner/work/data-version-control/data-version-control

And this is how conda setup defines the cache dir:
/usr/share/miniconda3/condabin/conda config --add pkgs_dirs /home/runner/conda_pkgs_dir

Apparently, both dirs do not match.

The DVC setup action is using this env variable:
CONDA_PKGS_DIR: /home/runner/conda_pkgs_dir

It matches the one used by conda setup.


doesn't use default config

I would like to use this library for setting up notifications.
After I entered my api keys into the configuration.php I get this error:

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Cannot read credentials from /.ebay_sdk/credentials' in C:\xampp\htdocs\ebay\ebay-sdk-php\DTS\eBaySDK\Credentials\CredentialsProvider.php:132 Stack trace: #0 C:\xampp\htdocs\ebay\ebay-sdk-php\DTS\eBaySDK\Credentials\CredentialsProvider.php(83): DTS\eBaySDK\Credentials\CredentialsProvider::DTS\eBaySDK\Credentials{closure}() #1 C:\xampp\htdocs\ebay\ebay-sdk-php\DTS\eBaySDK\Credentials\CredentialsProvider.php(58): DTS\eBaySDK\Credentials\CredentialsProvider::DTS\eBaySDK\Credentials{closure}() #2 C:\xampp\htdocs\ebay\ebay-sdk-php\DTS\eBaySDK\functions.php(61): DTS\eBaySDK\Credentials\CredentialsProvider::DTS\eBaySDK\Credentials{closure}() #3 C:\xampp\htdocs\ebay\ebay-sdk-php\DTS\eBaySDK\ConfigurationResolver.php(55): DTS\eBaySDK\applyCredentials(Object(Closure), Array) #4 C:\xampp\htdocs\ebay\ebay-sdk-php\DTS\eBaySDK\Services\BaseService.php(53): DTS\eBaySDK\ConfigurationResolver->resolve(Array) #5 C:\xampp\htdocs\ebay\ebay-sdk-php\DTS\eBaySDK\Shoppin in C:\xampp\htdocs\ebay\ebay-sdk-php\DTS\eBaySDK\Credentials\CredentialsProvider.php on line 132

my structure of folder:

index.php
ebay-sdk
configuration.php
all other sdk files

Config looks like: Screenshot

Without seeing how you are creating the service object I can only guess what is going wrong. What I can tell you is that the SDK does not automatically load the credentials from configuration.php. You need to load that file yourself and pass it's contents to the SDK.
Have you read the guide on how to pass credentials to the SDK?
http://devbay.net/sdk/guides/guide/credentials.html

One thing I can see from the error message is that the SDK may be trying to load your credentials from   /.ebay_sdk/credentials Ensure that it exists and that is a valid ini file format.

by the way, this seems to be the old branch.
I've used the latest version now. I use this code to create the service object:

// Create te service object.
$service = new Services\ShoppingService([
'authToken'   => '',
'credentials' => [
'appId'  => ',
'certId' => '',
'devId'  => ''
],
'siteId'      => 0
]);

What's the "sideId"? Can't find this in the ebay API settings area? And authToken is this endless long token, correct https://i.imgur.com/gIUW3fE.png

If you are using the Shopping service you won't need the authToken.

Information about siteId can be found in the guide http://devbay.net/sdk/guides/guide/configuration.html#siteid

Okay fine, solved, big thanks. Will drop you an email regarding something other (question of design).


grass: 8.3.2 -> 8.4.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/OSGeo/grass/releases.
meta.description for grass is: GIS software suite used for geospatial data management and analysis, image processing, graphics and maps production, spatial modeling, and visualization
meta.homepage for grass is: https://grass.osgeo.org/
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 8.4.0 with grep in /nix/store/snpid65cmqvhf5w46w6r2w3zc88r710w-grass-8.4.0
found 8.4.0 in filename of file in /nix/store/snpid65cmqvhf5w46w6r2w3zc88r710w-grass-8.4.0

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

4 package rebuild(s)

First fifty rebuilds by attrpath

grass
qgis
qgis-ltr

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/snpid65cmqvhf5w46w6r2w3zc88r710w-grass-8.4.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A grass https://github.com/r-ryantm/nixpkgs/archive/909b1789b816c35ba0d6d971b02ecc1095fb61db.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/909b1789b816c35ba0d6d971b02ecc1095fb61db#grass

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/snpid65cmqvhf5w46w6r2w3zc88r710w-grass-8.4.0
ls -la /nix/store/snpid65cmqvhf5w46w6r2w3zc88r710w-grass-8.4.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

3 packages built:

grass
qgis
qgis-ltr

Maintainer pings
cc @autra @imincik @l0b0 @nh2 @nialov @sikmir @willcohen @mpickering for testing.

Changes look good, but it would be great to merge it with https://github.com/NixOS/nixpkgs/pull/326291 .

I was able to build GRASS 8.4.0 with #326291 and #331118 applied.


GEODE-8302: Fixed 'events not queued conflated' stats when group-tran…

…saction-events is true
Batch conflation is not compatible with group-transaction-events.
It must be prevented that both are enabled at the same time for
a given gateway sender.
Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, check Concourse for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

When the following diff is applied, the modified test testPartitionedSerialPropagationHA() also fails with incorrectly conflated events. Since this test does not set groupTransactionEvents to true, it seems like there is more to this issue.
`diff --git a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/SerialWANPropagation_PartitionedRegionDUnitTest.java b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/SerialWANPropagation_PartitionedRegionDUnitTest.java
index 9e80bab9aa..59b5b7a903 100644
--- a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/SerialWANPropagation_PartitionedRegionDUnitTest.java
+++ b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/SerialWANPropagation_PartitionedRegionDUnitTest.java
@@ -330,6 +330,8 @@ public class SerialWANPropagation_PartitionedRegionDUnitTest extends WANTestBase
inv.join();
vm2.invoke(() -> WANTestBase.validateRegionSize(getTestMethodName() + "_PR", 1000));
vm3.invoke(() -> WANTestBase.validateRegionSize(getTestMethodName() + "_PR", 1000));

vm4.invoke(() -> WANTestBase.checkConflatedStats("ln", 0));
vm5.invoke(() -> WANTestBase.checkConflatedStats("ln", 0));
}

@Test
`

@albertogpz Good material - thanks for writing the docs for this feature.
I have some edits for clarification and consistency, in both user guide files and the javadoc comments in class files. I will send these to you in email for you to incorporate as you see fit. Thanks!

Thanks for the review, Dave. I have accepted all  your proposals with the exception of the javadoc on GatewaySenderQueue.java which had not ended up describing correctly the peekedIdsWithoutExtra member variable. I changed it to a simpler sentence. Let me know if you are ok with the change.

In the last commit I reverted most of the code added in the second 4ff9b1d and just added a simpler fix.
The comment from @davebarnes97 about the javadoc in GatewaySenderQueue.java would not apply anymore as that javadoc would not change.

Thank you for incorporating my previous suggestions. Just two more items:
In geode-docs/tools_modules/gfsh/command-pages/create.html.md.erb:
Please change "gatewaysenders" to "gateway senders".
In CreateGatewaySenderCommand.java and four other files, please reword the error message
"GatewaySender %s cannot be created with group transaction events set to true and batch conflation enabled"
to clarify that the two properties are mutually exclusive. Suggestion, add "both":
"GatewaySender %s cannot be created with both group transaction events set to true and batch conflation enabled"

Thanks for the comments, Dave.
Changes done on the erb file and on four java files. I hope you meant four files counting with CreateGatewaySenderCommand.java. I could not find the string in a fifth file.

It appears that the failing StressNewTest seen in this PR is caused by https://issues.apache.org/jira/browse/GEODE-8320 and has not been introduced by these changes, so with a clean pre-checkin, this should be okay to merge.

It appears that the failing StressNewTest seen in this PR is caused by https://issues.apache.org/jira/browse/GEODE-8320 and has not been introduced by these changes, so with a clean pre-checkin, this should be okay to merge, although ideally, it would be better to fix the underlying issue and then allow the StressNewTest to pass 100% of the time before merging this.

I'd rather have this PR merged first because fixing the flaky test case will probably take longer and I plan to do it on top of this solution.

Hi Alberto, I would suggest splitting up the commit for GEODE-8320 fix separate from GEODE-8302.
You can still work on multiple commits for GEODE-8320

This helps to maintain clear records in the release notes for releases.
In case we have to revert the fix for GEODE-8320 we don't have to also revert the fix for GEODE-8302 and vice versa,

Hi Alberto, I would suggest splitting up the commit for GEODE-8320 fix separate from GEODE-8302.
You can still work on multiple commits for GEODE-8320
* This helps to maintain clear records in the release notes for releases.

* In case we have to revert the fix for GEODE-8320 we don't have to also revert the fix for GEODE-8302 and vice versa, as these two fixes are clubbed together

Hi Naba. What you are proposing makes a lot of sense. Nevertheless, in this case, I do not know if it is worth it as the solution for both tickets is shared, i.e., the solution for GEODE-8320 is a subset of the solution for GEODE-8302.
If I split the solution into two PRs I would have to repeat the solution on both PRs, have it reviewed twice, do changes if needed on both...
Do you still think I should do it like that or could we just have the PR for GEODE-8302 solve both GEODE-8302  and GEODE-8320?

@nabarunnag I agree that is not recommended to include more than one ticket solution in the same commit, but in this case one ticket is a subset of the other one. Luckily Alberto has solved the bigger one, that as a side effect solves the other. Or even you can think that it is invalidating the other one, as it cannot be reproduced after merging GEODE-8302.
Anyway independently of the decision taken, GEODE-8302 can be merged into develop if there is no other problem with the review. Then Alberto could prepare a separate PR with the code of GEODE-8320 that will result on an empty commit in develop because the code is already there.

It appears that the failing StressNewTest seen in this PR is caused by https://issues.apache.org/jira/browse/GEODE-8320 and has not been introduced by these changes, so with a clean pre-checkin, this should be okay to merge, although ideally, it would be better to fix the underlying issue and then allow the StressNewTest to pass 100% of the time before merging this.

I'd rather have this PR merged first because fixing the flaky test case will probably take longer and I plan to do it on top of this solution.

@DonalEvans Could you please review my latest commit? It was targeted at fixing a failing test case that was actually not the same as the one in GEODE-8320 but this last commit fixes the problem in both test cases.

As it has two approvals I will merge it. Thank you all!


Where is the sources without amalgamation ?

Hello !
Nice project but I wonder why you do not also show the individual src files (no amalgamation) for other to see what changes you did to original sqlite3 or even contribute to your project.
Cheers !

Hi!
I don't use the individual files, I use the amalgamation. It is the same method I used in litereplica and LiteSync.
To check the modifications we need to use a diff tool and diff between the original amalgamation file and the modified one. I prefer this method.


Update composer-plugin-api dependency

Installing wellcommerce/composer-plugin (dev-master 9a72afd)
Cloning 9a72afddecd9b86136afffc1060e2e8eb0c94e24

The "wellcommerce/composer-plugin" plugin requires composer-plugin-api 1.0.0, this WILL break in the future and it should be fixed ASAP (require ^1.0 for example).

Fixed in https://github.com/WellCommerce/ComposerPlugin/commit/7e2643dae62d56e265b907a7872b8c964d3f0007


Unique role names

Role names must be unique.
This is enforced by RoleValidator.
Shouldn't this be also enforced in the EntityFramework model?
File IdentityDbContext.cs line 170 would be:
b.HasIndex(r => r.NormalizedName).HasName("RoleNameIndex").IsUnique();

5d759abcde8e652fa83ad1a7099fffffb53ca648


Headers sometime marked as C++, Object-C or just C

Hi guys,
Here is my repo, https://github.com/whitedrop/whitedrop
Everything is C++ but some headers are C or Object-C instead of C++
Thanks in advance

@vinz243 this should be addressed in #1866


Visualization and Test speed

Hi, it's a excellent work! But I meet some questions.
Q1: Can you upload your code of  visualization about  spatial path and stage3 with detail guidence?
Q2: My speed is 93 FPS about STDC2-Seg50 on 2080Ti, I just get a half of your result 188.6 FPS.Can you upload your code about testing speed?
Q3: Can you upload the code of calculating params and flops?

Hi, it's a excellent work! But I meet some questions. Q1: Can you upload your code of visualization about spatial path and stage3 with detail guidence? Q2: My speed is 93 FPS about STDC2-Seg50 on 2080Ti, I just get a half of your result 188.6 FPS.Can you upload your code about testing speed? Q3: Can you upload the code of calculating params and flops?

请问您得到解决了吗，特别是第一个问题，空间路径的可视化代码


conhost crashes silently after SetConsoleScreenBufferSize

Environment
Windows build number: [run "ver" at a command prompt]
- 10.0.18362.116
- 10.0.18362.267

Windows Terminal version (if applicable):
- No

Any other software?
- No

Steps to reproduce

Unpack the attached project: BufferSizeBug.zip
Open in Visual Studio
Compile & Run
After a MessageBox appears: open window properties, go to Layout tab, uncheck "Wrap text output on resize", close the properties window.
Press OK in the MessageBox

Expected behavior

Conhost doesn't crash.
Actual behavior

Conhost crashes silently.
If you attach the VS debugger to conhost.exe before triggering a crash, it will show something like:
onecore\windows\core\console\open\src\buffer\out\textbuffercelliterator.cpp(49)\conhost.exe!00007FF6AD97FB34: (caller: 00007FF6AD95CACE) Exception(1) tid(22a0) 80070057 The parameter is incorrect.

Exception thrown at 0x00007FFFE34EA839 in conhost.exe: Microsoft C++ exception: wil::ResultException at memory location 0x000000EE660FDFB0.

Stack trace:
 	KernelBase.dll!RaiseException()	Unknown
 	ucrtbase.dll!_CxxThrowException()	Unknown
 	conhost.exe!wil::details::ThrowResultExceptionInternal(struct wil::FailureInfo const &)	Unknown
 	conhost.exe!wil::details::ReportFailure()	Unknown
 	conhost.exe!wil::details::ReportFailure_Hr(void *,unsigned int,char const *,char const *,char const *,void *,enum wil::FailureType,long)	Unknown
 	conhost.exe!wil::details::in1diag3::Throw_Hr(void *,unsigned int,char const *,long)	Unknown
 	conhost.exe!TextBufferCellIterator::TextBufferCellIterator()	Unknown
 	conhost.exe!RenderData::IsCursorDoubleWidth()	Unknown
 	conhost.exe!Microsoft::Console::Render::Renderer::_PaintFrameForEngine()	Unknown
 	conhost.exe!Microsoft::Console::Render::Renderer::PaintFrame()	Unknown
 	conhost.exe!Microsoft::Console::Render::RenderThread::_ThreadProc()	Unknown
 	kernel32.dll!BaseThreadInitThunk()	Unknown
 	ntdll.dll!RtlUserThreadStart()	Unknown

Presumably here: textBufferCellIterator.cpp

This seems the same as #1976


unix,tcp: allow 0 delay in uv_tcp_keepalive

The removed check was introduced in
https://github.com/libuv/libuv/pull/4272 but it breaks previously working (and documented) behavior: https://nodejs.org/api/net.html#socketsetkeepaliveenable-initialdelay

Will do!

@bnoordhuis Done, PTAL!

Alright, down the rabbithole we go...
I found this discussion from a couple of years ago... and I think I was quite wrong there: https://github.com/libuv/libuv/issues/3487
I think the source of the confusion regarding this API is the fact that it works differently depending on when you call it.
If called before the socket it's actually create it we just store a flag and ignore the actual delay value passed. If called after the socket is created (by using uv_tcp_init_ex for example, the real value is applied.
At a glance it looks like 0 has never worked on Linux: https://github.com/torvalds/linux/blob/e8f897f4afef0031fe618a8e94127a0934896aba/net/ipv4/tcp.c#L3321 (I can trace similar looking code all the way back to 2.6).
On macOS it seems to work: https://github.com/apple-oss-distributions/xnu/blob/1031c584a5e37aff177559b9f69dbd3c8c3fd30a/bsd/netinet/tcp_usrreq.c#L2402
On Windows it seems erraric according to https://github.com/libuv/libuv/issues/3487

So, at this point I am more confused than I was before starting this exercise.
On one hand I guess we could allow it and document that the behavior is platform depepdent. Writing a test for it will be annoying because of this.
On the other hand, its usefulness feels so narrow and nuanced that we might as well return UV_EINVAL on all platforms.
Users who want to tweak things in a very specific way for a very specific platform an always uv_fileno the handle and set the options directly anyway...

FTR, that other PR is #4356.


Diffs when json key order changes

Describe the bug
If we update a json field with an identical value, only with a different key order, it's present in changeset (and thus triggers updates).
TLDR:
// pre-existing row.someJsonField = { a: 1, b: 2 }
row.someJsonField = { b: 2, a: 1 }
// the json didn't really changed, yet changeset and updates won't be empty

To Reproduce
Minimal full repro: https://stackblitz.com/edit/mikro-orm-repro-svx3gr?file=test.ts
Expected behavior
The JSON are identical, there should be nothing in changeset and no updates.
(or at least there should be an option to enable this behaviour)
I'm opening a PR with a suggested improvement right away.
Versions

Dependency
Version

node
v16.14.2

typescript
4.8.3

mikro-orm
5.4.2

your-driver
Postgres (repro in SQLite)

@B4nan could you reopen this one ?
according to the json spec, it's not
https://www.json.org/json-en.html

An object is an unordered set of name/value pairs.

also, postgres jsonb are specifically order independent (only json, not jsonb use field order)

So you say that the native implementation is not spec complaint, but that is rather a problem for TC39, right? JK :]

yeah, fair point 😅
deep object comparing have always been a pain in js 🙃
Sorry if that came out a bit harsh.

I dont mind the proposed solution in https://github.com/mikro-orm/mikro-orm/pull/3584 (lets discuss the implementation there)

🙏

but I dont think it should be the default if its slower than the native implementation.

yeah, I tend to agree

But depends on how much slower, if its like 20%, I dont mind, if its 200% percent, its a different story.

No idea how much slower it is; I guess it is an acceptable compromise for those with the need to avoid unnecessary diffs.
I also think there could be an other implementation if Type had the ability to define custom comparer. for JSON, it would probably be a good alternative to stringifying.

Not at all, and sorry from my end if my insta-close sometimes looks harsh, its just a way of me saying I dont plan to work on something as I feel its out of scope, especially if its something you can easily worked around (like this particular issue, the proposed PR can be used without any changes to the ORM, you can just extend the JsonType and use that in your codebase, you could even override the default type mapping via discover.getMappedType option).

I also think there could be an other implementation if Type had the ability to define custom comparer. for JSON, it would probably be a good alternative to stringifying.

Thats a great idea!


UAR:433 - Summary view new BO's

JIRA link
https://companieshouse.atlassian.net/browse/UAR-433
Change description
Add summary table of newly added BO's
Work checklist

[ ] Tests added where applicable
[ ] UI changes meet accessibility criteria

Merge instructions
We are committed to keeping commit history clean, consistent and linear.  A BREAKING CHANGE can be part of commits of any type,
types other than fix: and feat: are allowed, for example build:, chore:, ci:, docs:, style:, refactor:, perf:, test:, and others,
footers other than BREAKING CHANGE: <description> may be provided.

Duplication sitting at 5% at the minute but after looking at it, difficult to reduce this below 3% due to the nature of existing code and refactoring too much of registration code to satisfy Sonar's duplication metrics by another 2%. So, happy to approve and would be happy for it to still be merged

It's estimating 1.2% duplication after merge so I agree.


Verify gofmt fix

Removing go version check from verify-gofmt.sh. Go version checks have been already removed from all other verify scripts.

/lgtm

/lgtm


attempt to detect stage2

To detect stage 2, the windows check could also run on wine!
For wine the equivalent would be:
/home/fox2code/.wine/drive_c/users/fox2code/AppData/Roaming
Where you replace fox2code by the username of whoever.
This code should work correcly on Linux to detect the appdata folder of the main wine instance.
Paths.get(System.getProperty("user.home"), ".wine", "drive_c", "users", System.getProperty("user.name"), "AppData", "Roaming")

For wine, are you assuming the program is running under it, or just detecting the existence of a compromised wine "machine"


Not working in laravel for large url address

I am new in laravel. I have tried to use adminLTE in laravel. It works fine for small route like-
example.dev/home
or,
localhost/myapp/public/home.
or, route('/home')
But it's not working for the address like-
example.dev/user/home
or,
localhost/myapp/public/user/home
or, route('/user/home')
or, any large url.
I don't know why, please help me.

Hello @salambdm
This is mainly a backend PHP issue. You may want to try our tutorial on Integrating AdminLTE with Laravel.
If you still encounter problems, please provide us with some more description, screenshots and code.
Thanks!

Thank you so much brother, for your response.
I have installed a fresh laravel 5.1 sometimes ago.
Added  the downloaded copy of AdminLTE theme in public folder, then copy the html code from index.html of theme into laravel's welcome view page.
After that, I have tested the theme by changing the route and final results are same which I explained before.
It's maybe laravel's internal issue but I want to use your theme, because it's a great theme.

@salambdm you don't just copy and paste the static HTML code into Laravel to make it work. Using fixed hard-coded routes to asset files will most probably break it in a situation or another. You need to use Laravel's own way of referring to assets. Try something like asset('img/photo.jpg') as mentioned in http://laravel.com/docs/5.1/helpers#method-asset so assets locations are dynamically linked inside each page according to the page they are called in.
This is mainly a Laravel issue. As @almasaeed2010 mentioned, you better refer to the blog post he referred to or another resource for that.

@YasserHassan,
Thanks for your valuable suggestions, brother. My problem is solved. Yes, I have used asset('asset files') helpers and everything is ok now.


Waypoints for trusted starting point

Waypoints
Terminology:
Node: In the context of this document, a node refers to any of validator node, full node, or wallet/client node which wants to synchronize to the Libra chain.

Motivation

When a node comes online for the first time or after being offline for an extended period of time, in the face of old validator keys potentially being compromised, there is no way for that node to be certain that updates it receives are relative to the current state of the Libra blockchain.  In addition, it may take a longer period of time to fully synchronize to the blockchain and/or old data may have already been pruned by the seeding nodes, and it is thus needed to have a trusted starting place for nodes.
Waypoints are the way to provide nodes with an external source of information about the history of the blockchain. A Waypoint at version n commits to a specific history of transactions T_0...T_n as well as the resulting states S_0...S_n.
Waypoints help nodes in multiple ways. First, waypoints provide an extra layer of validation on top of the history of validator signatures. If a node is configured with a waypoint from a trustworthy source, it will not be misled if the majority of a historical validator set is compromised (see Weak Subjectivity and Long Range Forks). Second, waypoints can be used to configure the genesis of the system — attesting to the first transaction.  In addition, waypoints can be used to move past a hard fork in the chain.
Waypoints will be embedded within node code as a trusted “starting place”.  A node may also have a trusted source from which it can query for waypoints - perhaps this is a value checked into GitHub for example.  By knowing this information, a node can have an increased level of assurance that the data it is receiving from queries is indeed valid.

Waypoint Specification

Waypoints are defined as the following:
version:transaction_accumulator_root_hash:previous_reconfiguration_event_seq_number

Field
Definition
Use

version
The version Vw specified by this waypoint
Becomes the "known_version" when performing a subsequent update against a peer node

transaction_accumulator_root_hash
The accumulator root hash at version Vw
Used in verification of returned data in any queries.  The data returned from a query would be relative to this known root hash, so any proof would require this root hash as verification

previous_reconfiguration_event_seq_number
Reconfigurations of the validator set emit events upon reconfiguration which contain the new validator set.  The previous reconfiguration event sequence number field is the event sequence number of the event prior to Vw of the last reconfiguration event emission
This event sequence number is used to look up the validator set at the version of this waypoint.  This is the event sequence number of the reconfiguration event immediately prior to the version represented by this waypoint.  The validator set is then used in proof verification to ensure that any ledger info returned by a query is signed by this validator set (or subsequent validator sets which are proven by the resultant data)

This creates a single value that can be easily copied from a trusted online resource and plugged into a node on startup.  The generation of the waypoint is performed by the following:
version = get_latest_version();
accumulator_root_hash = get_root_hash_at_version(version);
previous_event_reconfig_number = get_latest_reconfiguration_event_seq_number();
waypoint =
    version + ":" + accumulator_root_hash + ":" + previous_event_reconfig_number;

Waypoint Utilization

Waypoints are used by all types of nodes — validators, full nodes and wallets - and the node would be configured with a specific waypoint.  This can be done via the waypoint being embedded in code, being pulled from a known resource or config file, or manually entered by the user.  For all node types, initial syncing is based off of this waypoint once the waypoint is loaded as the trusted version.
When a node comes online, it must perform an update to the latest ledger info and request the event at the event sequence number specified by the waypoint.  The data that is fetched by this query is used to determine the current validator set.  The proof returned by updating to the latest ledger info will contain signed ledger infos at each validator transition and these ledger infos will contain the new validator set.  This can be used to prove the current validator set.  Once the event proof is verified, the node can begin normal operation.
Waypoint utilization is shown in the following pseudocode:
// Pull the values out of the waypoint
(version, accumulator_root_hash, event_number) =
    parse_waypoint(waypoint);

// To learn of the validator set at "version", perform an update_to_latest_ledger
// to update to the latest ledger info and fetch the event at "event_number".
// The response will contain the validator set at "version" as well as a proof
// from our known version through the latest version known by the node
// from which we are querying.
// Note that the access_path is TBD but will be a consistent account
GetEventsByEventAccessPathRequest get_event_req =
    {
        access_path: "/{association_account}/recon_events",
        start_event_seq_num: event_number,
    };

(latest_li, event_with_proof) =
    other_node.update_to_latest_ledger_info(get_event_req);

validator_set = events_with_proof.get_validator_set();

// Verify the proof.  See "Proof explanation" section below.
// Note that the validator set is included on the signed LIs which
// are also returned by this query for each epoch.  The proof verification
// will verify these signed LIs
events_with_proof.verify_proof(
    version /*known_version*/,
    accumulator_root_hash /*known_root_hash*/,
    validator_set /*known_validator_set*/,
);

Proof explanation

Definitions
Waypoint contains the following values which we trust because we trust the waypoint source:
Vw = Version of waypoint
Hw = Accumulator root hash at Vw
Ew = Event sequence number specified by waypoint
At the latest ledger version on chain:
Vc = Version at current latest on-chain version
Hc = Accumulator root hash at current latest on-chain version Vc
What must be verified
There are several items which must be verified:

Hw must be under Hc

What does this prove: This proves that Hc is a parent to Hw and thus a continuation of the same chain
How do we verify this: updateToLatestLedger() provides the hash proof from Hw to Hc

The path from Hw to Hc must include signed ledger info proofs for all epoch changes between times w and c

What does this prove: This proves that if we trust the validator set VSw, then we can trust the current validator set VSc
How do we verify this: updateToLatestLedger() provides the signed ledger info proofs from Hw to Hc

Ew must be under Hw.

What does this prove: Proves that we can trust the validator set VSw represented by Ew
How do we verify this: updateToLatestLedger() returns a proof from Ew to Hc.  Since in (2)/(3) we proved that Hw is under Hc, and since we trust the waypoint to be valid - meaning that Ew is the last reconfiguration event prior to Vw, we can infer that Ew is under Hw.  We could also verify this if desired, but it is unnecessary due to the logical inference.

Procedure for proving results
This means that to perform verification, we do a single query via updateToLatestLedger().  The request item is for the event Ew with a known version of Vw.
The proof returned by this query includes multiple elements used to verify the entire proof:
1. Verify **(1)** by verifying the hash proof from Hw to Hc (this is how we always verify any response from updateToLatestLedger(), so nothing is different here).  This is verified by checking the hashes going up the accumulator from Hw to the latest signed ledger info’s accumulator root Hc.
2. The signed ledger infos at every epoch.  These will contain the new validator set for that epoch.  There will also be a proof returned for the accumulator root hash of each of these up to the latest accumulator root hash at Vc.  Proof verification must first verify the accumulator proof for each of these.  It must then verify the signatures on each signed ledger info.  The result of this entire process will allow the client to know the latest validator set.  This will also verify **(2)** since any updateToLatestLedgerInfo will also verify the signed ledger infos at epochs.
3. The latest signed ledger info at Vc.  The client must use the latest validator set derived from (b) to verify the signatures on this ledger info.

By verifying the above, we can now infer that **(3) **is also true.  So we can now trust the latest version Vc.

Appendix: Alternatives Considered

One option instead of storing in events is to store in state.  But this requires a validator remembering the state and exposing queries against non-current states (something that doesn’t currently exist).
Since the Ledger Info (LI) struct contains both the version and the transaction accumulator root hash, one could wonder why the entire LI struct isn’t used as the waypoint.  The LI struct contains additional information that isn’t relevant to proving validity, and in addition would be too large to be an easily copyable value in the case where a user wishes to set a waypoint within their node via copying from an online source.
Another alternative could be to use the hash of the LI.  In this proposal, a node would query a validator for the LI at that hash value and then use the resultant version/accumulator root hash in future API calls to get_with_proof (or perhaps modify that API and simply use the LI hash in those API calls).  Unfortunately, this also isn’t an option since LI hashes are not stored by validators with the exception of the most recent LI root hash and the LI root hash at validator rotation boundaries.  This would imply that waypoints could only exist at validator rotation boundaries.

After several rounds of discussions it seems that we're going to use a slightly different design for the waypoints described in #1384


Good but....

Instructions are good.
However permissions need to be more granular. I need staff to be able to add devices to auto-pilot but not have access to manage permissions or app purchases or distribution etc...
I just need someone to add devices.

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

ID: 78e62232-54ab-fa9d-1e31-7a65e7506a12
Version Independent ID: 51a94f92-9ff4-12e7-2f97-1bbe34855400
Content: Roles and permissions in Microsoft Store for Business and Education (Windows 10)
Content Source: store-for-business/roles-and-permissions-microsoft-store-for-business.md
Service: unspecified
Product: w10
GitHub Login: @TrudyHa
Microsoft Alias: TrudyHa

@officedocsbot assign @mypil

@Joewen101 - Thank you for engaging with the community here for the docs.
I know the product teams are always looking for user feedback on how to make Windows 10 better. They keep a close tab on user feedback and it would be awesome if you could add your voice in
User Voice https://support.microsoft.com/en-za/help/4021566/windows-10-send-feedback-to-microsoft-with-feedback-hub
You might find others have made a similar request that you can add to, or you can open a new one. Let us know here if you do so we can up-vote your request.
Thank you for your contribution to make the docs better! Much appreciated!

@officedocsbot close


Unable to run the code

Hi,
I am trying to run the code using already train models on one of the available images. I basically just want to test how it works.
I am in cnn-number-detection folder and I run python3 Tester/test_model.py -h and get the following error:
from Tester.tester import Tester
ModuleNotFoundError: No module named 'Tester'
I am not sure what and how to change, the dependencies look ok so I have no idea what is wrong. Could you please help?

The imports in the project are done by importing them as modules. Thus you have to start all scripts with the respective flag -m from python as follows: python3 -m Tester.test_model -h

Hi,
Thank you for your reply, it did solve the initial issue.
Now I get another error when I try to run the code.
I run:
python3 -m Tester.test_model
and I get this error:
2022-01-13 14:53:43,006 - Model - INFO - Creating model: CNN-gnet-deep-Tester
/usr/local/lib/python3.7/dist-packages/keras/optimizer_v2/adam.py:105: UserWarning: The lr argument is deprecated, use learning_rate instead.
super(Adam, self).init(name, **kwargs)
2022-01-13 14:53:43.111379: E tensorflow/stream_executor/cuda/cuda_driver.cc:271] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected
Traceback (most recent call last):
File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/content/cnn-number-detection/Tester/test_model.py", line 57, in
main()
File "/content/cnn-number-detection/Tester/test_model.py", line 33, in main
tester = Tester(model_obj, args.model_path)
File "/content/cnn-number-detection/Tester/tester.py", line 15, in init
model_obj.create_model(weights_path=model_path)
File "/content/cnn-number-detection/Trainer/Models/model_gnet_deep.py", line 46, in create_model
self.model.load_weights(weights_path)
File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 67, in error_handler
raise e.with_traceback(filtered_tb) from None
File "/usr/local/lib/python3.7/dist-packages/h5py/_hl/files.py", line 427, in init
swmr=swmr)
File "/usr/local/lib/python3.7/dist-packages/h5py/_hl/files.py", line 190, in make_fid
fid = h5f.open(name, flags, fapl=fapl)
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py/h5f.pyx", line 96, in h5py.h5f.open
OSError: Unable to open file (file signature not found)

Thank you!
I seem to have the code working now. But I encounter few more issues. When I run the code on picture without numbers I get:
Total params: 57,482
Trainable params: 57,482
Non-trainable params: 0

2022-01-13 15:35:07,428 - Tester - INFO - [Prediction] type: info, category: -1 (100.00%)
: cannot connect to X server
Which seems fine, category is -1 so no digit detected, but when I run it on the picture with digits I get:
Total params: 57,482
Trainable params: 57,482
Non-trainable params: 0

and thats it! What is the detected digit? There is no prediction displayed anywhere....
Also another thing is I tried to run the code on my image and I get the error message as below:
Total params: 57,482
Trainable params: 57,482
Non-trainable params: 0

Traceback (most recent call last):
File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/content/cnn-number-detection/Tester/test_model.py", line 57, in
main()
File "/content/cnn-number-detection/Tester/test_model.py", line 37, in main
tester.test_model_with_image(args.test_image)
File "/content/cnn-number-detection/Tester/tester.py", line 25, in test_model_with_image
regions_of_interest = self.isolator.get_regions_of_interest(image_array)
File "/content/cnn-number-detection/Isolator/isolator.py", line 25, in get_regions_of_interest
cropped_images = self.__crop(image)
File "/content/cnn-number-detection/Isolator/isolator.py", line 78, in __crop
info_start = self.CONSTANTS.CROP_INFO_HEIGHT_START
AttributeError: 'NoneType' object has no attribute 'CROP_INFO_HEIGHT_START'
Not sure how I can give my image those attributes
Could you please advice?
Thanks,
Kornelia


Load master room availability and floor options in parallel on the client

Current implementation executes the master room availability and floor options lookup on the server and renders the page only when both are resolved.
We can improve our UX and Time-To-Interactive metric by instead querying room availability and floor options concurrently on the client in two separate GraphQL queries:
ask for floorMasterRoom -> render the master room status as soon as it arrives
at the same time
ask for roomsOnMasterFloor  and show the progress bar in the meantime
This can be achieved by splitting the current query in two and by extracting available rooms on master floor to a separate component.

Broken by 9c9aa54

Reverted 9c9aa54.


winston not in package.json

You are using winston in your library but you did not put it as a package dependency. Could you correct that please?

OMG!  Thank you so much what an oversight on my part!  Will correct that ASAP.  Thanks alot

I have added it now to the dependencies under package.json.  thanks alot for calling my attention once again.


Fix build

use gus build commands and get newer version of schema
install nextflow which can be used for any plugin moving forward
better error handling in bash scripts

The change for the corretto version to 21* conflicts with the env var used in the current Dockerfile version on main.


Make socketConnections NSDictionary thread-safe

Please select one of the following

[ ] I am removing an existing difference between facebook/react-native and microsoft/react-native-macos :thumbsup:
[ ] I am cherry-picking a change from Facebook's react-native into microsoft/react-native-macos :thumbsup:
[x] I am making a fix / change for the macOS implementation of react-native
[ ] I am making a change required for Microsoft usage of react-native

Summary:
We've seen a crash when we have multiple instances of React Native running in an app. It appears to be caused by multiple threads accessing +[RCTInspectorDevServerHelper connectWithBundleURL:] at the same time.
To fix this, we put all accesses to the socketConnections dictionary in a @synchronized block. This brings the iOS/macOS implementations up to speed with Android, which uses a ConcurrentHashMap.
Changelog:
[IOS] [FIXED] - Improve RCTInspectorDevServerHelper thread safety
Test Plan:
Tested this change in an internal app that consumes React Native and confirmed that it doesn't crash. (Without this change, crashes happened intermittently but frequently enough that it was noticeable.)

Coming across this change in the latest merge, I think this is an upstream candidate.


Improvements

Last week at the office @ndmitchell was looking for a debugging tool and I tried to demo the new version of Hoed. Unfortunately it didn't work very well, we couldn't observe even a simple example.
These changes are a first stab at improving the first experience with Hoed, the main bits are:

Fixed a couple of odd bugs (head of empty list, empty regex, indexing errors, incomplete pattern matches)
Fixed regexes in Windows
Re-added the TH primitive that I contributed to the previous version of Hoed
Added a new command to show the list of available observations
Made a couple of minor performance fixes (avoid nub and use atomicModify instead of locks)

There is still a lot of work to do:

The documentation and the haddocks still refer to the GUI instead of the new CLI.
The CLI itself needs a bit of love to become as usable as the GUI.
The original Hood had the ability to do nested observations, but Hoed removed that.

Apologies for the large number of changes. Let me know if there is any way I can make them easier to review.

Hi Pepe
Thank you for the many valuable contributions. I'll review your changes between Christmas and New Years, and, time permitting, I will also try to address your other remarks.
Could you maybe give an example of a nested observation?

Thanks Maarten,
I will raise issues for my other remarks so that we can track them and avoid duplicate work.
Nested observations are described in section 4.4 of the Hood paper, but it occurs to me that perhaps in Hoed one does not need the explicit nesting operator, as according to your PLDI paper the hierarchy of dependency should be already in the Computational Tree.

I've updated the pull request to include nested observations, extracted from the computational tree. This works by having the observe command to also print the first level of descendants comp statements which correspond to constants.
It looks like this:
hdb> observe
--- stmt-1 ------------------------------------------
quickSort2 "ae"

  = "ae"
  where
    lt = []
    gt = "e"
--- stmt-2 ------------------------------------------
quickSort2 "e"

  = "e"
  where
    lt = []
    gt = []
--- stmt-3 ------------------------------------------
quickSort2 "haskell"

  = "aehklls"
  where
    lt = "ae"
    gt = "skll"

Would it be possible to split this into two separate pull requests?
Your original changes seem quit straightforward improvements and I am happy to merge these very soon.
I have some concerns about soundness for algorithmic debugging of your work on nested observations, and I need a bit more time to study what it exactly does. In Chapter 7 of my phd thesis I discuss these concerns in some more detail (http://maartenfaddegon.nl/#pub).
Travis also indicates that not all versions of GHC can compile the code you later added to the pull request.

The GHC < 7.10 issues have been fixed in commit 9c45b11.
Although I've only skimmed through your thesis (including chapter 7), I read the PLDI paper in full. The debug TH command adds observations to bindings defined in where clauses; correct me if I'm wrong, but as long as these bindings are constants, then soundness is preserved. If we wanted, it would be trivial to handle lambdas with no free variables as well, although I am happy with just constants for now.
Let me know if you still have concerns and I will split the TH command out to a separate package.

These changes have enabled the development of debug-hoed. See an example of a debugging session with debug-hoed.

Awesome, thanks !

Any chance of a Hackage release this week ?

Would that help you? Because then I can do, but otherwise I wait until I have more time to dig up some of the more "tricky" example programs from my phd research to convince myself of soundness for algorithmic debugging with the new annotations.

No worries, take your time. I want to release debug-hoed, but I can do that with an embedded snapshot of Hoed, and turn that into a dependency once you have a chance to review in depth.


Not working with webpack-dev-server

seems like this plugin not working with webpack-dev-server

@vlio20 could you explain some specific configs you are using? I found it's working okay with the latest version of webpack and webpack-dev-server, which is like below.
"dependencies": {
    "webpack": "^2.6.1",
    "webpack-dev-server": "^2.4.5",
    "webpack-simple-progress-plugin": "^0.0.1"
}

Here is my full configuration:
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = () => {

  return {
    stats: {
      assets: true,
      cached: false,
      cachedAssets: false,
      children: false,
      chunks: true,
      chunkModules: false,
      chunkOrigins: false,
      colors: true,
      depth: false,
      entrypoints: false,
      errors: true,
      errorDetails: true,
      maxModules: 0,
      modules: false,
      performance: false,
      providedExports: false,
      publicPath: true,
      reasons: false,
      source: false,
      timings: true,
      usedExports: false,
      version: true,
      warnings: false
    },
    performance: {
      hints: false
    },
    entry: {
      app: './src/app/app.modules.ts',
      vendor: './src/app/vendor/vendor.ts',
      mock: './src/mock/states.ts'
    },
    output: {
      path: require('path').resolve('./static'),
      filename: '[name].js',
      publicPath: '/erapp/static/'
    },
    resolve: {
      extensions: ['.js', '.ts', '.less', '.css', '.html'],
      alias: {
        'jquery': require.resolve('jquery')
      }
    },
    devtool: 'source-map',
    module: {
      rules: [
        {
          test: /\.ts?$/,
          use: ['ts-loader']
        },
        {
          test: /\.css$/,
          loader: ExtractTextPlugin.extract(
            {
              fallbackLoader: 'style-loader',
              loader: 'css-loader'
            })
        },
        {
          test: /\.less$/,
          loader: ExtractTextPlugin.extract(
            {
              fallbackLoader: 'style-loader',
              loader: 'css-loader!less-loader'
            })
        },
        {
          test: /\.(ttf|eot|svg|woff(2)?)(\?[a-z0-9=&.]+)?$/,
          use: [
            'file-loader?name=fonts/[name].[ext]?[hash]'
          ]
        },
        {
          test: /\.(gif|png(2)?)(\?[a-z0-9=&.]+)?$/,
          use: [
            'file-loader?name=images/[name].[ext]?[hash]'
          ]
        },
        {
          test: /\.html$/,
          use: [
            'html-loader'
          ]
        },
        {
          test: /\/leonardo.js/,
          use: [
            'script-loader'
          ]
        }
      ]
    },
    plugins: [
      new webpack.HotModuleReplacementPlugin(),
      new webpack.optimize.CommonsChunkPlugin({
        names: ['vendor', 'manifest']
      }),
      new webpack.ProvidePlugin({
        moment: 'moment',
        Highcharts: 'highcharts',
        'jQuery': 'jquery',
        '$': 'jquery',
        'window.jQuery': 'jquery'
      }),
      new ExtractTextPlugin('[name].css'),
      new HtmlWebpackPlugin({
        filename: 'index.dev.html',
        hash: false,
        template: './src/app/index.tpl',
        chunks: ['manifest', 'vendor', 'mock', 'app'],
        env: 'dev'
      })
    ],
    devServer: {
      port: 5151,
      inline: true,
      stats: 'errors-only',
      open: true,
      publicPath: '/erapp/site/',
      historyApiFallback: {
        index: '/erapp/site/index.dev.html'
      },
      proxy: {
        '/erapp/static': {
          target: 'http://localhost:5151',
          pathRewrite: {'static': 'site'}
        }
      }
    }
  }
};

Adding the plugin to this configuration just doesn't change the output when webpack is building - both in startup nor while in hot module is running

@vlio20 thanks, I should look into it

@vlio20 Here's a repo for mimicking your configs. I still see the progress bar's working, Please let me know some clues. Thanks.
https://github.com/hyunchulkwak/temporary-webpack-test

How are you running the dev server? With what command?

@vlio20 I globally installed it so just run it by typing webpack-dev-server

@vlio20 please let me know if there's any progress.. thanks a lot!

close this since I can't reproduce and haven't got further responses. thanks.


Add GhostNet-600 to model zoo

Hi there, while browsing the official GhostNet repository on Gitee.com, I found a potentially very interesting version of GhostNet termed GhostNet-600 which claims 80.2 top1 accuracy on ImageNet for only 0.6GFLOPS and 11.9M parameters. It is not mentioned in the paper but the source code is available on Gitee.
Could you reproduce this performance and provide latency information ?

Sounds interesting,I'll try it later.

Hi @fmahoudeau , I only get 77% top1 on ImageNet same train setting with GhostNet1.3x.

Well thanks for giving it a try ! We should ask for clarification from the authors...

I think they may use more tricks while training, still hard to believe getting 80% top1 in such low MAdds.

Yes that's hard to believe, and if it's true then they might not want to open source that part of their research.
Nevertheless, can you please upload the weights ? 77% is still useful because that's 1.5 points better than RegNetY-600MF and GhostNets have faster inference speed on CPU.

I'm sorry for some reason I can't get the weights.
You could train it by yourself with same setting as GhostNet1.3x if you need it.
Notice that GhostNet using no_decay_bias and LabelSmoothing by default but RegNet not, they training epochs are also different.


jacobian computation throws ValueError for LinearOperatorFullMatrix: object of type 'LinearOperatorFullMatrix' has no len()

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
Yes
Source
source
Tensorflow Version
2.14.0-dev20230621
Custom Code
Yes
OS Platform and Distribution
Linux Ubuntu 20.04
Mobile device
No response
Python version
3.9
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
When computing jacobian for a LinearOperatorFullMatrix, TF throws an error: ValueError: TypeError: object of type 'LinearOperatorFullMatrix' has no len().
I think the problem here might be that len() or shape is not implemented for LinearOperatorFullMatrix. If I just take the shape of a LinearOperatorFullMatrix, I can see the same error.
import tensorflow as tf
linop = tf.linalg.LinearOperatorFullMatrix(mat)
print(tf.shape(linop)) # Fails
# ValueError: TypeError: object of type 'LinearOperatorFullMatrix' has no len()

Standalone code to reproduce the issue
import tensorflow as tf

mat = tf.Variable([[1., 2.], [3., 4.]])

with tf.GradientTape(persistent=True) as tape:
    tape.watch(mat)
    output = tf.linalg.LinearOperatorFullMatrix(mat)
    grad = tape.gradient(output, mat) # This works
    print('grad: ', grad)
    jac = tape.jacobian(output, mat) # This fails
    # ValueError: TypeError: object of type 'LinearOperatorFullMatrix' has no len()

Relevant log output
grad:  tf.Tensor(
[[1. 1.]
 [1. 1.]], shape=(2, 2), dtype=float32)

Traceback
.../tensorflow/python/framework/constant_op.py", line 101, in convert_to_eager_tensor
    return ops.EagerTensor(value, ctx.device_name, dtype)
ValueError: TypeError: object of type 'LinearOperatorFullMatrix' has no len()

Hi @trickiwoo ,
I can able to replicate the behaviour reported behaviour and attached gist for reference. tf.linalg.LinearOperatorFullMatrix has no gradient implementation in TF2.12 but in tf-nightly it seems implemented.
However LinearOperatorFullMatrix has an attribute called shape that can return the shape of its object.You can refer the same in gist.
IMO jacobians seems not implemented yet for tf.linalg.LinearOperatorFullMatrix which might be the reason for the error. It might be a feature request. I will escalate the issue to the Dev team and let's hear from them.
Thanks!

Thanks @SuryanarayanaY for looking into this!
It is very interesting that for LinearOperatorFullMatrix objects x.shape can return the correct shape, but tf.shape(x) will result in an error. IMO this also seems to be an error in the LinearOperatorFullMatrix implementation (probably unrelated to the gradient implementation).

@trickiwoo @SuryanarayanaY It seems TensorFlow isn't able to handle this operation because LinearOperatorFullMatrix isn't a tensor, but a linear operator. So, we must make sure we're operating on tensor values within the context of the GradientTape and use mat directly, since LinearOperatorFullMatrix isn't directly supported as a gradient source or target. Try running
import tensorflow as tf

mat = tf.Variable([[1., 2.], [3., 4.]])
mat_reshaped = tf.reshape(mat, [-1])

with tf.GradientTape(persistent=True) as tape:
    tape.watch(mat)
    # Suppose the function we're interested in is simply the sum of the matrix elements
    output = tf.reduce_sum(mat)
    # Compute the gradient
    grad = tape.gradient(output, mat)
    print('Gradient:', grad)

    # To compute the Jacobian, we use a 1-D tensor
    tape.watch(mat_reshaped)
    output_reshaped = tf.reduce_sum(mat_reshaped)
    jac = tape.jacobian(output_reshaped, mat_reshaped)
    print('Jacobian:', jac)

Also, computing the gradient outside of the with tf.GradientTape(persistent=True) as tape: block as suggested by the console warning WARNING:tensorflow:Calling GradientTape.gradient on a persistent tape inside its context is significantly less efficient than calling it outside the context (it causes the gradient ops to be recorded on the tape, leading to increased CPU and memory usage). Only call GradientTape.gradient inside the context if you actually want to trace the gradient in order to compute higher order derivatives. is very straightforward:
import tensorflow as tf

mat = tf.Variable([[1., 2.], [3., 4.]])
mat_reshaped = tf.reshape(mat, [-1])

with tf.GradientTape(persistent=True) as tape:
    tape.watch(mat)
    output = tf.reduce_sum(mat)
    tape.watch(mat_reshaped)
    output_reshaped = tf.reduce_sum(mat_reshaped)

# Compute the gradient outside of the context
grad = tape.gradient(output, mat)
print('Gradient:', grad)

# Compute the Jacobian outside of the context
jac = tape.jacobian(output_reshaped, mat_reshaped)
print('Jacobian:', jac)

Hi,
Thank you for opening this issue. Since this issue has been open for a long time, the code/debug information for this issue may not be relevant with the current state of the code base.
The Tensorflow team is constantly improving the framework by fixing bugs and adding new features. We suggest you try the latest TensorFlow version with the latest compatible hardware configuration which could potentially resolve the issue. If you are still facing the issue, please create a new GitHub issue with your latest findings, with all the debugging information which could help us investigate.
Please follow the release notes to stay up to date with the latest developments which are happening in the Tensorflow space.


where is the coresponding source code of the drone/drone:1.0.0-rc.1

The lastest master branch tagged with 0.8.9 cannot match drone/drone:1.0.0-rc.1

We know that... The 1.0.0 source haven't been made public yet because @bradrydzewski is managing some legal stuff because the enterprise source will be part of the repository.

discussed here