_get_column() change proposal

Hi Kevin,
I noticed some behavior which seemed confusing, at least to me. While using df.ta.hlc3(append=True), I noticed that the column that was created was exactly the 'close' column (mind that I have set df.ta.adjusted = close). Stepping through the code uncovered that this is because I didn't give explicit 'high', 'low' and 'close' columns, and if those are left to None, _get_column()  will return 'adjusted' ('close' in my case) unless that's not set, in which case it will return default which is passed as an argument.
line 388-389 in core.py
    elif series is None or default is None:
        return df[self.adjusted] if self.adjusted is not None else df[default]

What I found strange about this implementation is that even if a default is given ('high', 'low', 'close' respectively for hlc3), the function will still return the 'adjusted' column if it is set explicitely. To me that doesn't really make sense with the 'default' name of the argument.
I propose to change the _get_column() function along these lines:
    def _get_column(self, series, default):

        """Attempts to get the correct series or 'column' and return it."""
        df = self._df
        if df is None: return

        # def _get_case(column: str):
        #     cases = [column.lower(), column.upper(), column.title()]
        #     return [c for i, c in enumerate(cases) if column == cases[i]].pop()
        # default = _get_case(default)

        # Explicitly passing a pd.Series to override default.
        if isinstance(series, pd.Series):
            return series
        **# Apply default if no series, or adjusted if no default is passed.
        elif series is None:
            if default is not None:
                series = default
            else:
                series = self.adjusted

        # Try to interpret passed string as a column.
        if isinstance(series, str):**
            # Return the df column since it's in there.
            if series in df.columns:
                return df[series]
            else:
                # Attempt to match the 'series' because it was likely misspelled.
                matches = df.columns.str.match(series, case=False)
                match = [i for i, x in enumerate(matches) if x]
                # If found, awesome.  Return it or return the 'series'.
                cols = ', '.join(list(df.columns))
                NOT_FOUND = f"[X] Ooops!!!: It's {series not in df.columns}, the series '{series}' was not found in {cols}"
                return df.iloc[:,match[0]] if len(match) else print(NOT_FOUND)

This way the passed 'default' column gets priority over the 'adjusted' column. Moving the 'if isinstance(series,str)' to a separate 'if' statement also allows for slightly misspelled default column names to work as well.
Since this is a core function I wanted to first open a discussion before sending a PR as it may potentially break things that I'm not aware of, or there may be a particular reason why this has been implemented as it is right now. If that's the case, I'm happy to hear the reasoning as it may help me pay attention to usage of the _get_column() function in the future.
EDIT: cleaned up code markup
Best regards,
Wout

Hello @WoutGeeurickx,
Thanks for using Pandas TA!
Thanks for bringing this into a discussion before making a PR request on _get_column(**kwargs). The core, and namely the strategy method has gotten quite the work out this year from bugs to enhancements. So it's fitting that _get_column(**kwargs) gets some enhancement love as well.
From a brief test of the code you provided above would require each indicator to be changed like so:
    # From
    def hlc3(self, offset=None, **kwargs):
        high  = self._get_column(kwargs.pop("high", "high"))
        low   = self._get_column(kwargs.pop("low", "low"))
        close = self._get_column(kwargs.pop("close", "close"))
        ...

    # To (Correct?)
    def hlc3(self, offset=None, **kwargs):
        high  = self._get_column(kwargs.pop("high", "high"), "high")
        low   = self._get_column(kwargs.pop("low", "low"), "low")
        close = self._get_column(kwargs.pop("close", "close"), "close")
        ...

But that's an inconsequential change that search and replace can easily handle.
While that may solve the problem, my question is: Can it be done better? Is using _get_column(**kwargs) the proper solution? Or should the method definition be more explicit and _get_column(**kwargs) gets a makeover as well.
    def hlc3(self, high="high", low="low", close="close", offset=None, **kwargs):
        high  = self._get_column(high, "high")
        low   = self._get_column(low, "low")
        close = self._get_column(close, "close")
        ...

In short, I would like to make _get_column(**kwargs) more flexible while simplifying the core more. Since you have some familiarity of _get_column(**kwargs), perhaps you may have some other ideas, solutions and improvements? Currently I have additional enhancements pending that I want to get onto the library so my bandwidth for this topic is rather limited unfortunately. So I would appreciate fresh eyes on this topic and welcome to contributions.
Thanks,
Kevin

Hi Kevin,
I'm personally more a fan of the more explicit method definition as it helps to understand at a quick glance what the relevant columns are. It seems that I'm locally on an older version, because my hlc3 method still looks like this:
@finalize
def hlc3(self, high=None, low=None, close=None, offset=None, **kwargs):
    high = self._get_column(high, 'high')
    low = self._get_column(low, 'low')
    close = self._get_column(close, 'close')

    ...

Strangely I also see now that the _get_column() method no longer has the 'default' argument on the latest Github commit, while I thought I made sure to look at the latest version before posting this proposal. I'm running 0.1.66b locally, so back then the _get_column() method still had the 'default' argument at least. I couldn't tell when this has changed.
Indeed, changing
high  = self._get_column(kwargs.pop("high", "high"))

to
high  = self._get_column(kwargs.pop("high", "high"), "high")

will give the same functionality if the 'default' argument is added to _get_column() method again.
Probably there's a reason why the 'default' argument got removed over time. I'm also not arguing to get the 'default' argument back if there's no need for it. Maybe even just adding a warning to highlight that the column falls back to 'adjusted' in case series == None could already be an improvement that helps to prevent unexpected behavior.
I currently see three viable options:

A warning is generated when the 'series' argument in _get_columns() is None, to let the user know that it will fall back to 'adjusted'. Since there will be no indication of which call to _get_columns() generated this warning, a user will still have to step through the code to rectify this fallback if (s)he desires to do so. But at least they know that it's happening and may prevent unexpected behavior. If the _get_columns() method is called often with series left (intentionally) None, this may clutter the output though.

All indicator methods are made explicit again, but each column argument needs to be defined (contrary to leaving at as None by default). This will make users think about how the methods are used, but will also require a lot of manual input where this is not necessary with current implementation.

The default argument in the _get_column() method is restored and the implementation is changed as described in my original post compared to how it's done in 0.1.66b. This prevents the manual input from Option 2., while still giving (what I believe) more predictable behavior when the columns are not explicitly passed but a default has been set correctly. This can also be complemented with Option 1. in the sense that a warning can be generated if no 'default' argument is passed and the 'adjusted' column is returned as fallback.

I believe from my argumentation it's already clear which option I favor, I'm hoping others can jump in to give some feedback on which option they like most and if I'm maybe missing options or benefits/issues with one of these options.
Best regards,
Wout

Hello @WoutGeeurickx

I'm personally more a fan of the more explicit method definition as it helps to understand at a quick glance what the relevant columns are.

Same here. That is true for when using help on a specific indicator, like help(ta.macd) et al.

It seems that I'm locally on an older version, because ...

Yes. Please upgrade to the latest version so that we are on the same page.

Probably there's a reason why the 'default' argument got removed over time.

Yes. It was done while updating the ta.strategy method so @DrPaprikaa and I could get multiprocessing working for all the Strategy cases as well as reduce the complexity of defining a Strategy. We reduced complexity by adding additional kwargs: params and col_names for use in a Strategy. See the last example Additional Strategy Options in the Pandas TA Strategy Examples Notebook
Thanks for the providing some options for consideration. Perhaps they may change when you upgrade and do more tests. Hopefully @DrPaprikaa and others may join in with their ideas and suggestions before moving forward with potentially mass changes.
Thank you,
KJ

Hi,
If I'm not mistaken this bug is not happening in the current master version.
high = self._get_column(kwargs.pop("high", "high"))
here, pop searches for the value associated with the key high in kwargs (chained indicator), defaulting with the value high (normal indicators). So _get_column() is never passed None. If None is passed for whatever reason, _get_column() simply returns adjusted, or None if not present via the else None that I added a few versions back in line 384 :

elif series is None:
    return df[self.adjusted] if self.adjusted is not None else None

So I think that nothing needs to be changed, correct me if I'm wrong :)
DrPaprikaa

Hi @DrPaprikaa ,
You are absolutely correct! I'm less experienced with the usage of kwargs, so I wasn't aware that the second parameter in kwargs.pop() is the fallback in case the key is not found. This works exactly as what I tried to propose, and in a clean way (although I like the explicit method definition 'of old').
I'm sorry for raising this issue since it seems that everything would just have been solved if I had updated to the latest version. I still find it strange because I made sure to look up that piece of the source code on what I believed what was the latest version.
@twopirllc , I believe this issue can be closed, unless of course you want to keep this as a discussion thread for explicit method definition?

Hey guys,
Thanks for chipping in @DrPaprikaa.

I'm sorry for raising this issue since it seems that everything would just have been solved if I had updated to the latest version. I still find it strange because I made sure to look up that piece of the source code on what I believed what was the latest version.

No worries.

@twopirllc , I believe this issue can be closed, unless of course you want to keep this as a discussion thread for explicit method definition?

No need to keep it open if the issue is resolved. It will be under the closed issues if it needs linking for future discussions.
Thanks for having this discussion before making a Pull Request.
Best Regards,
KJ


Rename/Replace Riot.im to Element

The Matrix client Riot.im was quite recently renamed as Element and so the Service should be updated!

Thank you for your report. Riot has already been renamed a few weeks ago - this change will be released with the next update of Ferdi.

Great, thanks, can’t wait!
(well, I can, np ^^)


✨ Adds mount tracking to enzyme-utilities

Adding custom mount function
Adding tracking of wrappers via addMountedWrapper and unmountAllWrappers.
Tests, refactoring
docs

I've decided to make an issue in the enzyme repo for this functionality, instead of contributing it to @shopify/enzyme-utilities (see https://github.com/airbnb/enzyme/issues/1689). I'll offer them to make a PR, assuming they approve of the suggested changes.


Update Protect-RubrikVM -DoNotProtect to include new options for snapshot retention in 5.0

Is your feature request related to a problem? Please describe.
Unable to use Protect-RubrikVM (or Database/Fileset/HyperVVM/NutanixVM) to unprotect an object and set snapshot retention to one of the following (new in 5.0):

RetainSnapshots (Use current SLA domain for retention)
KeepForever
ExpireImmediately

Describe the solution you'd like
New switches to specify these options
Describe alternatives you've considered
Using the API endpoint directly with Invoke-RubrikRESTCall
Additional context

Hello @hughdeloughry,
Thanks for submitting this request for enchancement, we will take a look at how to implement this and take a look at how to integrate this into the module!

Hello @hughdeloughry,
Can you give an example of how you are currently using this with Rubrik RestAPICall. We would like to pick up this issue and start work on adding this functionality to the module.

@jaapbrasser I just had to work through this with a partner, this is how we worked around it (follows the UI workflow):
$all_vms = get-rubrikvm
$all_vms = get-rubrikvm -PrimaryClusterID local
$all_vms.count
$my_vms = $all_vms | Where-Object name -like 'th-*'
$array = @()
foreach ($vm in $my_vms) { $array += $vm.id }
$my_json = @{}
$my_json['existingSnapshotRetention'] = 'KeepForever'
$my_json['managedIds'] = $array
$uri = 'sla_domain/UNPROTECTED/assign'
Invoke-RubrikRESTCall -endpoint $uri -Method POST -Body $my_json -api internal

Could replace existingSnapshotRetention with the options @hughdeloughry posted above

@railroadmanuk thanks for sharing that Tim, I will take a look at how we can implement this and make this part of the module.
I will update here shortly once I have some code up in a PR!

This is still on my radar, I expect to have working code by EOB tomorrow


fix: unwind stages with respect to commit threshold

Resolves https://github.com/paradigmxyz/reth/issues/2274

Codecov Report

Merging #2500 (350f7d5) into main (ebf13ec) will decrease coverage by 53.58%.
The diff coverage is 0.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff             @@
##             main    #2500       +/-   ##
===========================================
- Coverage   71.62%   18.04%   -53.58%
===========================================
  Files         487      488        +1
  Lines       60520    60845      +325
===========================================
- Hits        43346    10981    -32365
- Misses      17174    49864    +32690

Flag
Coverage Δ

integration-tests
18.04% <0.00%> (-0.07%)
:arrow_down:

unit-tests
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

crates/stages/src/pipeline/mod.rs
0.00% <0.00%> (-88.58%)
:arrow_down:

crates/stages/src/stage.rs
0.00% <0.00%> (-93.48%)
:arrow_down:

crates/stages/src/stages/execution.rs
0.00% <0.00%> (-93.42%)
:arrow_down:

crates/stages/src/stages/hashing_account.rs
0.00% <0.00%> (-96.30%)
:arrow_down:

crates/stages/src/stages/hashing_storage.rs
0.00% <0.00%> (-95.65%)
:arrow_down:

crates/stages/src/stages/index_account_history.rs
0.00% <0.00%> (-97.91%)
:arrow_down:

crates/stages/src/stages/index_storage_history.rs
0.00% <0.00%> (-98.00%)
:arrow_down:

... and 333 files with indirect coverage changes

Not sure what would be the proper way to test it, see several approaches:

Custom unwind CLI command akin to stage
Rust test with multiple blocks, so we can check that unwind happens one by one if commit_threshold = 1. Currently, we insert only 2 blocks: genesis and another one, so it's not possible to test it https://github.com/paradigmxyz/reth/blob/174316936baab8839970273a7fc681993148a3bf/crates/stages/src/stages/execution.rs#L389-L393 But that way, we could also test commit thresholds for stage execution, that's nice.

regarding reth stage CLI for unwinding, I added a --batch-size argument that allows to set the commit threshold, but it fails now because we previously expected commit_threshold == num_blocks
RUST_LOG=debug cargo run --bin reth -- stage --from 90000 --to 100000 --batch-size 10 execution
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
   Compiling reth v0.1.0 (/Users/shekhirin/Projects/reth/bin/reth)
    Finished dev [unoptimized + debuginfo] target(s) in 14.86s
     Running `target/debug/reth stage --from 90000 --to 100000 --batch-size 10 execution`
2023-05-02T05:40:14.779032Z  INFO reth 0.1.0 starting stage Execution
99990 100000 10
99990..=100000
2023-05-02T05:40:14.785799Z  INFO Unwind iteration finished to_block=90000 unwind_progress=99989 is_final_range=false
Error: Stage encountered a execution error in block 90002: EVM reported invalid transaction (0xff2465731e1247b42d0ad10456b28ba99825fd9321488b8e850520f9d3839449): Transaction(NonceTooLow { tx: 3, state: 27 }).

Caused by:
    EVM reported invalid transaction (0xff2465731e1247b42d0ad10456b28ba99825fd9321488b8e850520f9d3839449): Transaction(NonceTooLow { tx: 3, state: 27 })

Location:
    bin/reth/src/stage/mod.rs:188:17

So probably need to introduce the incremental execute/unwind logic to CLI too, as it works in the pipeline.

do we not need this unwind with thresholds logic in the other stages too?

yep, we need. Added to most of them, except:

Bodies, Headers, Merkle – iiuc we don't have commit threshold logic in execute now. Do we want to have it in unwind?
Finish – looks like we don't need it there

can't really comment on this,
@rkrasiuk wdyt?

@shekhirin apologies for the delay, i'll try to review it tonight ❤


sql_mode=traditional

things does not work when using sql_mode=traditional
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'created_at' (SQL: create table users (id int unsigned not null auto_increment primary key, name varchar(255) not null, email varchar(255) not null, password varchar(60) not nu
ll, remember_token varchar(100) null, created_at timestamp default 0 not null, updated_at timestamp default 0 not null) default character set utf8 collate utf8_unicode_ci)
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'created_at'
'mysql' => [
'driver'    => 'mysql',
'host'      => env('DB_HOST', 'localhost'),
'database'  => env('DB_DATABASE', 'forge'),
'username'  => env('DB_USERNAME', 'forge'),
'password'  => env('DB_PASSWORD', ''),
'charset'   => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix'    => '',
'options'   => [
PDO::MYSQL_ATTR_INIT_COMMAND => "SET sql_mode = 'TRADITIONAL'"
]
],

laravel 5

This is a very serious problem and indicates nobody is using mysql the proper way

@mathiasgrimm Everyone is using postgresql. :P

i guess so...
but i tried to use pgsql and had different problems as well.
transactional ddl does not work for example.

the way i solved... very bizarre
\DB::statement("select @sql_mode_tmp := @@sql_mode;");
\DB::statement("set sql_mode=''");
	Schema::create('users', function(Blueprint $table)
	{
    	$table->increments('id');
		$table->string('name');
		$table->string('email')->unique();
		$table->string('password', 60);
		$table->rememberToken();
		$table->timestamps();
	});

    \DB::statement("set sql_mode=@sql_mode_tmp;");

Well, not so much bizarre.
Clearly the default value ought to be '0000-00-00 00:00:00' (depending on the grammar) rather than 0.  When not in traditional mode, you can see that the structure is repeated back with the longer default syntax via SHOW CREATE TABLE.

either 0 or 0000-00-00 00:00:00 are invalid dates.
On 27 March 2015 at 00:25, Todd Christensen<EMAIL_ADDRESS>wrote:

Well, not so much bizarre.
Clearly the default value ought to be '0000-00-00 00:00:00' (depending on
the grammar) rather than 0. When not in traditional mode, you can see
that the structure is repeated back with the longer default syntax via SHOW
CREATE TABLE.
—
Reply to this email directly or view it on GitHub
https://github.com/laravel/framework/issues/8068#issuecomment-86769095.

I mean it's bizarre because it should be such a simple task and using valid values should be the default implementation but if you want to use mysql the right way with the right values, is not possible unless you hack the world

Oh right, 0000 is invalid in traditional as well.  Well, it can really default to anything, but most correct would be CURRENT_TIMESTAMP really.

to be honest i think it should not have any default at all. its up to the
application to set this value, which already works, therefore, no need for
default, specially if wrong, values.
this is simple enough change.
keeping this wrong will help developers being wrong and built stuff on top
of wrong stuff... its like building a house on the sand...
On Friday, March 27, 2015, Todd Christensen<EMAIL_ADDRESS>wrote:

Oh right, 0000 is invalid in traditional as well. Well, it can really
default to anything, but most correct would be CURRENT_TIMESTAMP really.
—
Reply to this email directly or view it on GitHub
https://github.com/laravel/framework/issues/8068#issuecomment-86858186.

Why would CURRENT_TIMESTAMP be a wrong default value for created_at (or updated_at, for that matter)?  It would be incorrect if MySQL wasn't under UTC, but that's not really a good idea anyway.
I don't think that default would encourage poor programming practices.  In fact, it could be an optimization - especially for inserting many rows, I'd imagine it'd be faster to use the default rather than send (and calculate) a created_at value for each row in PHP, as it currently does.  It would also facilitate command line tinkering (one less field you don't need to specify a value for, a value that MySQL already ought to know what should be.)

I meant poor programming practices regarding the sql_mode. We can't use it with recommended values unless we hack the migrations.

Closing due to inactivity.

this is a bug! how can it be closed?

@GrahamCampbell ?

this is a bug! how can it be closed?

Same way all other bugs have been closed. If people want bugs fixing, we accept PRs.

I understand, but i dont think closing a bug is good either.
just leave it open till some, including myself, submit the pr, otherwise people might not know there is a bug and therefore nobody will fix.
I would be glad to help on this bug

I have being using raw sql on my migrations due to bug like these.

i hate this 0000... php already has its own problems and then we are forced to include another one now in the database.
This might sound a little bit pedantic but this is one exemple that one might laugh about laravel.
I really like and enjoy laravel but this makes me sick

this is a bug! how can it be closed?

Same way all other bugs have been closed. If people want bugs fixing, we accept PRs.

I've submitted a couple of PRs to allow this problem to be worked around.
#9711 allows you to set a valid timestamp.  e.g. ->timestamp('created_at')->default('1970-01-01 00:00:01');
#9712 allows you to disable strict mode on a per-connection basis.

Thank you @fisharebest.

IMHO, the correct fix is to change the default from 0 to 1970-01-01 00:00:01 (the lowest value supported by MySQL).
Since laravel alway sets the values for its own created_at and updated_at columns, such a change could affect an application which:

stores its own timestamps
fails to initialise them
relies on the database-supplied default as some kind of sentinel value

I'd wager that nobody actually does this, but it would technically be a BC break, hence I just suggested some workarounds.
@GrahamCampbell - if you think such a change would be accepted, I'd be delighted to submit another PR.

The correct value is null or the right value. 1970 is just as bad as
0000-00-00
On 22 July 2015 at 13:11, Greg Roach<EMAIL_ADDRESS>wrote:

IMHO, the correct fix is to change the default from 0 to 1970-01-01
00:00:01 (the lowest value supported by MySQL).
Since laravel alway sets the values for its own created_at and updated_at
columns, such a change could affect an application which:

stores its own timestamps
fails to initialise them
relies on the database-supplied default as some kind of sentinel
value

I'd wager that nobody actually does this, but it would technically be a BC
break, hence I just suggested some workarounds.
@GrahamCampbell https://github.com/GrahamCampbell - if you think such a
change would be accepted, I'd be delighted to submit another PR.
—
Reply to this email directly or view it on GitHub
https://github.com/laravel/framework/issues/8068#issuecomment-123697313.

The correct value is null

There are two issues here.

timestamp columns in general
laravel's created_at, updated_at and deleted_at columns

In MySQL <=5.6, when you create TIMESTAMP NOT NULL columns, the first one gets the behaviour "ON UPDATE CURRENT TIMESTAMP".  The only way to stop this behaviour is to set a default value.
The database adapters need to suppress this MYSQL behaviour, so we can have consistency between different database engines.  So, we need a default - and to work with MySQL, it cannot be zero.
(Yes, MySQL provides DEFAULT CURRENT_TIMESTAMP and ON UPDATE CURRENT_TIMESTAMP, but we cannot use them if we also want portability.)
For laravel's timestamps, it does not matter that there is a default.  These columns are for laravel to use.  Laravel sets the values when it creates/updates them.

thats why they should have no default values. Laravel will always set them
with the correct values. The dafault should be null, which is valid to any
mysql version.
On 22 July 2015 at 13:41, Greg Roach<EMAIL_ADDRESS>wrote:

The correct value is null
There are two issues here.

timestamp columns in general
laravel's created_at, updated_at and deleted_at columns

In MySQL <=5.6, when you create TIMESTAMP NOT NULL columns, the first one
gets the behaviour "ON UPDATE CURRENT TIMESTAMP". The only way to stop this
behaviour is to set a default value.
The database adapters need to suppress this MYSQL behaviour, so we can
have consistency between different database engines. So, we need a
default - and to work with MySQL, it cannot be zero.
(Yes, MySQL provides DEFAULT CURRENT_TIMESTAMP and ON UPDATE
CURRENT_TIMESTAMP, but we cannot use them if we also want portability.)
For laravel's timestamps, it does not matter that there is a default.
These columns are for laravel to use. Laravel sets the values when it
creates/updates them.
—
Reply to this email directly or view it on GitHub
https://github.com/laravel/framework/issues/8068#issuecomment-123708019.

thats why they should have no default values. Laravel will always set them

Laravel will only set them for its own created_at and updated_at columns.
It won't set any other columns.
Here's an example of what happens when there are no defaults:
mysql> CREATE TABLE t (a VARCHAR(10), b TIMESTAMP NOT NULL);
Query OK, 0 rows affected (0.06 sec)

mysql> INSERT INTO t (a, b) VALUES ('foo', '1970-01-02 03:04:05');
Query OK, 1 row affected (0.02 sec)

mysql> SELECT * FROM t;
+------+---------------------+
| a    | b                   |
+------+---------------------+
| foo  | 1970-01-02 03:04:05 |
+------+---------------------+
1 row in set (0.00 sec)

mysql> UPDATE t SET a='bar' WHERE a='foo';
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM t;
+------+---------------------+
| a    | b                   |
+------+---------------------+
| bar  | 2015-07-22 13:46:01 |
+------+---------------------+
1 row in set (0.00 sec)

See that column b was updated to the current time with out me telling it to.
This is why we need a default.

thats the problem actually. sometimes you don't want to update the values
when running manually a query. the sql_mode=TRADITIONAL requires us to be
very specific/explicit and stop mysql from guessing things. There're no
warning. Everything is error. it's like program php without
error_reporting. It's a 2000's approach.
If you want to update that field, do so, explicitly.
Most problems from mysql comes from this non-TRADITIONAL standard that
guesses everything.
Watch this video. https://www.youtube.com/watch?v=emgJtr9tIME
This is what mysql does without sql_mode=TRADITIONAL
when using it, it behaves in a very nice way where the developer is in
charge.
If we introduce this 1970 it's really going to be a shame.
created_at timestamp not null
updated_at timestamp null
deleted_at timestamp null
actually I don't even like to use timestamps, I use always datetime which
is more appropriate.
Timestamp causes lots of problems and misleadings.
On 22 July 2015 at 13:49, Greg Roach<EMAIL_ADDRESS>wrote:

thats why they should have no default values. Laravel will always set them
Laravel will only set them for its own created_at and updated_at columns.
It won't set any other columns.
Here's an example of what happens when there are no defaults:
mysql> CREATE TABLE t (a VARCHAR(10), b TIMESTAMP NOT NULL);
Query OK, 0 rows affected (0.06 sec)
mysql> INSERT INTO t (a, b) VALUES ('foo', '1970-01-02 03:04:05');
Query OK, 1 row affected (0.02 sec)
mysql> SELECT * FROM t;
+------+---------------------+
| a    | b                   |
+------+---------------------+
| foo  | 1970-01-02 03:04:05 |
+------+---------------------+
1 row in set (0.00 sec)
mysql> UPDATE t SET a='bar' WHERE a='foo';
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> SELECT * FROM t;
+------+---------------------+
| a    | b                   |
+------+---------------------+
| bar  | 2015-07-22 13:46:01 |
+------+---------------------+
1 row in set (0.00 sec)
See that column b was updated to the current time with out me telling it
to.
This is why we need a default.
—
Reply to this email directly or view it on GitHub
https://github.com/laravel/framework/issues/8068#issuecomment-123709483.

created_at timestamp not null
updated_at timestamp null
deleted_at timestamp null

If you want to update that field, do so, explicitly.

We are trying to prevent a column being updated.  With these columns, if you change udpated_at or deleted_at, then the created_at column gets updated as well.  The only way to stop this is to set a default value.
  But, we have to write applications that work on the databases that our customers use - not the ones we would like them to have.

I use always datetime which is more appropriate

datetime is not appropriate here, because the value depends on the timezone.

I use always UTC, so datetime suits better, specially when visualising,
specially if we have people working in different timezones, but this is out
of the scope of this issue anyway.
"We are trying to prevent a column being updated. With these columns, if
you change udpated_at or deleted_at, then the created_at column gets
updated as well. The only way to stop this is to set a default value."
This couldn't be more wrong. Sorry.
No default values, thats the solution. Nothing would get updated/changes
without explicitly asking for it. And laravel would still works the way it
always did.
Any automatic values from database will cause problems for the ORM as well
because the database would have one value for a column with default value,
while the model would not necessarily have the same value, which would be a
failure in mapping the values in the first moment.
say we have a field called used_at timestamp default CURRENT_TIMESTAMP
than when doing
$object = new MyModel();
$object->used_at = null;
$object->save();
then $object->used_at would have null while the database would have the
current timestamp. Unless after saving we read again that row, which would
be waste of resources.
// this would be wrong using default database values.
if ($object->used_at) {
//do stuff
} else {
// do other stuff
}
On 22 July 2015 at 14:10, Greg Roach<EMAIL_ADDRESS>wrote:

created_at timestamp not null
updated_at timestamp null
deleted_at timestamp null
If you want to update that field, do so, explicitly.
We are trying to prevent a column being updated. With these columns, if
you change udpated_at or deleted_at, then the created_at column gets
updated as well. The only way to stop this is to set a default value.
 But, we have
to write applications that work on the databases that our customers use -
not the ones we would like them to have.
I use always datetime which is more appropriate
datetime is not appropriate here, because the value depends on the
timezone.
—
Reply to this email directly or view it on GitHub
https://github.com/laravel/framework/issues/8068#issuecomment-123714671.

On 22 July 2015 at 14:21, Mathias Grimm<EMAIL_ADDRESS>wrote:

I use always UTC, so datetime suits better, specially when visualising,
specially if we have people working in different timezones, but this is out
of the scope of this issue anyway.
"We are trying to prevent a column being updated. With these columns,
if you change udpated_at or deleted_at, then the created_at column gets
updated as well. The only way to stop this is to set a default value."
This couldn't be more wrong. Sorry.
No default values, thats the solution. Nothing would get updated/changes
without explicitly asking for it. And laravel would still works the way it
always did.
Any automatic values from database will cause problems for the ORM as well
because the database would have one value for a column with default value,
while the model would not necessarily have the same value, which would be a
failure in mapping the values in the first moment.
say we have a field called used_at timestamp default CURRENT_TIMESTAMP
than when doing
$object = new MyModel();
$object->used_at = null;
$object->save();
then $object->used_at would have null while the database would have the
current timestamp. Unless after saving we read again that row, which would
be waste of resources.
// this would be wrong using default database values.
if ($object->used_at) {
//do stuff
} else {
// do other stuff
}
On 22 July 2015 at 14:10, Greg Roach<EMAIL_ADDRESS>wrote:

created_at timestamp not null
updated_at timestamp null
deleted_at timestamp null
If you want to update that field, do so, explicitly.
We are trying to prevent a column being updated. With these columns,
if you change udpated_at or deleted_at, then the created_at column gets
updated as well. The only way to stop this is to set a default value.
 But, we have
to write applications that work on the databases that our customers use -
not the ones we would like them to have.
I use always datetime which is more appropriate
datetime is not appropriate here, because the value depends on the
timezone.
—
Reply to this email directly or view it on GitHub
https://github.com/laravel/framework/issues/8068#issuecomment-123714671
.

This couldn't be more wrong. Sorry.

First, try without default values on TIMESTAMP NOT NULL columns:
mysql> CREATE TABLE t (id INTEGER UNSIGNED AUTO_INCREMENT PRIMARY KEY, value VARCHAR(10), created_at TIMESTAMP NOT NULL, updated_at TIMESTAMP);
Query OK, 0 rows affected (0.08 sec)

mysql> INSERT INTO t (value, created_at) VALUES ('foo', '2015-07-22 14:05:53');
Query OK, 1 row affected (0.02 sec)

mysql> SELECT * FROM t;
+----+-------+---------------------+---------------------+
| id | value | created_at          | updated_at          |
+----+-------+---------------------+---------------------+
|  1 | foo   | 2015-07-22 14:05:53 | 0000-00-00 00:00:00 |
+----+-------+---------------------+---------------------+
1 row in set (0.00 sec)

mysql> UPDATE t SET updated_at = NOW() WHERE id=1;
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM t;
+----+-------+---------------------+---------------------+
| id | value | created_at          | updated_at          |
+----+-------+---------------------+---------------------+
|  1 | foo   | 2015-07-22 14:26:53 | 2015-07-22 14:26:53 |
+----+-------+---------------------+---------------------+
1 row in set (0.00 sec)

Second, try with default values on TIMESTAMP NOT NULL columns:
mysql> CREATE TABLE t (id INTEGER UNSIGNED AUTO_INCREMENT PRIMARY KEY, value VARCHAR(10), created_at TIMESTAMP NOT NULL DEFAULT '1970-01-01 00:00:01', updated_at TIMESTAMP);
Query OK, 0 rows affected (0.07 sec)

mysql> INSERT INTO t (value, created_at) VALUES ('foo', '2015-07-22 14:05:53');
Query OK, 1 row affected (0.00 sec)

mysql> UPDATE t SET updated_at = NOW() WHERE id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM t;
+----+-------+---------------------+---------------------+
| id | value | created_at          | updated_at          |
+----+-------+---------------------+---------------------+
|  1 | foo   | 2015-07-22 14:05:53 | 2015-07-22 14:30:10 |
+----+-------+---------------------+---------------------+
1 row in set (0.00 sec)

Look at the first example.  The created_at column was wrongly updated.
Look at the second example.  The (unused) default value prevents this.

We want a nice framework that hides all this from us, so we can concentrate on writing applications.

Then, thats why datetime instead.
Try with that.
On 22 July 2015 at 14:35, Greg Roach<EMAIL_ADDRESS>wrote:

This couldn't be more wrong. Sorry.
First, try without default values on TIMESTAMP NOT NULL columns:
mysql> CREATE TABLE t (id INTEGER UNSIGNED AUTO_INCREMENT PRIMARY KEY, value VARCHAR(10), created_at TIMESTAMP NOT NULL, updated_at TIMESTAMP);
Query OK, 0 rows affected (0.08 sec)
mysql> INSERT INTO t (value, created_at) VALUES ('foo', '2015-07-22 14:05:53');
Query OK, 1 row affected (0.02 sec)
mysql> SELECT * FROM t;
+----+-------+---------------------+---------------------+
| id | value | created_at          | updated_at          |
+----+-------+---------------------+---------------------+
|  1 | foo   | 2015-07-22 14:05:53 | 0000-00-00 00:00:00 |
+----+-------+---------------------+---------------------+
1 row in set (0.00 sec)
mysql> UPDATE t SET updated_at = NOW() WHERE id=1;
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> SELECT * FROM t;
+----+-------+---------------------+---------------------+
| id | value | created_at          | updated_at          |
+----+-------+---------------------+---------------------+
|  1 | foo   | 2015-07-22 14:26:53 | 2015-07-22 14:26:53 |
+----+-------+---------------------+---------------------+
1 row in set (0.00 sec)
Second, try with default values on TIMESTAMP NOT NULL columns:
mysql> CREATE TABLE t (id INTEGER UNSIGNED AUTO_INCREMENT PRIMARY KEY, value VARCHAR(10), created_at TIMESTAMP NOT NULL DEFAULT '1970-01-01 00:00:01', updated_at TIMESTAMP);
Query OK, 0 rows affected (0.07 sec)
mysql> INSERT INTO t (value, created_at) VALUES ('foo', '2015-07-22 14:05:53');
Query OK, 1 row affected (0.00 sec)
mysql> UPDATE t SET updated_at = NOW() WHERE id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> SELECT * FROM t;
+----+-------+---------------------+---------------------+
| id | value | created_at          | updated_at          |
+----+-------+---------------------+---------------------+
|  1 | foo   | 2015-07-22 14:05:53 | 2015-07-22 14:30:10 |
+----+-------+---------------------+---------------------+
1 row in set (0.00 sec)
Look at the first example. The created_at column was wrongly updated.
Look at the second example. The (unused) default value prevents this.

We want a nice framework that hides all this from us, so we can
concentrate on writing applications.
—
Reply to this email directly or view it on GitHub
https://github.com/laravel/framework/issues/8068#issuecomment-123722099.


Jobber command with custom socket location

When using jobber with a custom / different command socket path / location, I cannot seem to use the jobber command to list / manage the jobber daemon.
Could you please add a flag to override the socket path / location that the jobber command uses.
edit:
As a workaround for others having this issue, you may symlink the /var/jobber/0/cmd.sock with the custom socket location (substitute the 0 with the user id jobber runs as if not run as root)

Good idea


Incorrect display of GridBox in Internet Explorer and Edge

Hello,
I'm trying to use a GridBox to display items like in a table, but it doesn't work well in Internet Explorer (version 11) and Edge (not tested with Chrome): the elements put themselves under each other instead of making a grid.
The desired display (Firefox):

The display in Internet Explorer 11:

The display in Edge:

Hello @Derriick,
I'm unable to reproduce the problem. Can you show me an example script that causes this problem?

Hello @dddomodossola,
I am on another computer (workday is over), which has the same version of Internet Explorer but another version of Edge.
The problem still appears in IE 11, but no longer in Edge, probably more up-to-date than on my work computer (Windows Enterprise).
I would have liked to do without Internet Explorer, but unfortunately it won't be possible for me, and Remi is just perfect for my project.
Here is a script that reproduces the problem:
#!/usr/bin/env python3

import remi.gui as gui
from remi import start, App

class MyApp(App):
	def __init__(self, *args):
		super(MyApp, self).__init__(*args)

	def main(self):
		wid  = gui.VBox(width='80%', margin='20px auto 0 auto')
		grid = gui.GridBox(width='80%')

		grid.define_grid([
			['label1', 'value1'],
			['label2', 'value2'],
			['label3', 'value3'],
			['label4', 'value4']
		])
		grid.append({
			'label1': gui.Label('Label 1'), 'value1': gui.CheckBox(False),
			'label2': gui.Label('Label 2'), 'value2': gui.CheckBox(True),
			'label3': gui.Label('Label 3'), 'value3': gui.TextInput('Value 3'),
			'label4': gui.Label('Label 4'), 'value4': gui.Label('Value 4')
		})

		wid.append(grid)
		return wid

if __name__ == "__main__":
	start(
		MyApp,
		debug=False,
		address='<IP_ADDRESS>',
		port=8080,
		multiple_instance=False,
		enable_file_cache=False,
		start_browser=False
	)

Note that IE implements an older version of grid-layout specifications while Edge got fixed at v16. (see: https://caniuse.com/#feat=css-grid).
Could this be a problem?

@mcondarelli that's right, as you correctly report grid layout is incompatible with ie11.
@Derriick here is an alternative implementation with Widget container
#!/usr/bin/env python3

import remi.gui as gui
from remi import start, App

class MyApp(App):
	def __init__(self, *args):
		super(MyApp, self).__init__(*args)

	def main(self):
		wid  = gui.Widget(width='800px', margin='0px auto')

		children = [
			{'label': gui.Label('Label 1', width="50%"), 'value': gui.CheckBox(False, width="50%")},
			{'label': gui.Label('Label 2', width="50%"), 'value': gui.CheckBox(True, width="50%")},
			{'label': gui.Label('Label 3', width="50%"), 'value': gui.TextInput('Value 3', width="50%")},
			{'label': gui.Label('Label 4', width="50%"), 'value': gui.Label('Value 4', width="50%")}
		]

		for c in children:
			wid.append(gui.Widget(children=(c['label'], c['value']), width="100%", height=50, layout_orientation=gui.Widget.LAYOUT_HORIZONTAL))

		return wid

if __name__ == "__main__":
	start(
		MyApp,
		debug=False,
		address='<IP_ADDRESS>',
		port=8080,
		multiple_instance=False,
		enable_file_cache=False,
		start_browser=False
	)

It's not perfect yet, but it's IE's fault. At least I have a grid 😄
I'll start with that, thanks for the help!

In fact, I also need to regularly update the displayed data (once or several times a second), but I can't find something that doesn't blink (I see the lines disappear and appear).
Any ideas?

How do you update the content? Never seen blinking

I haven't understood that I could indicate a key in addition to the value to be displayed to update it.
At first, I was trying to create lines and add them instead of others in my widget (with add_child).
Then I tried with append, thinking that I had to empty and fill my widget every time.
Now everything is working fine.

@Derriick well done ;-)


⚠ Bofrost.es has degraded performance

In 4187ec7, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1412 ms

Resolved: Bofrost.es performance has improved in 01cce02 after 6 minutes.


[doc] CIP interrupt doc updates

To go along with future interrupt type-alignment tasks, tighten-up the documentation of comportable interrupts, particularly around prim_intr_hw and the distinction between Status and Event type interrupts.
Add some new block diagrams to support these changes, mirroring the hardware implementations provided by 'prim_intr_hw'. Diagrams were taken from the original RFC which proposed the addition of the Status-type interrupt.
Update the existing wavejson waveforms to explicitly include the effects of enabling the output flop (which is the default, and currently the only behaviour used within the codebase).

I would particularly appreciate any feedback/suggestion for content in the final paragraph of the section (### CIP Interrupt Types), which (currently, only vaguely) describes how such a distinction can help to make the software handler ergonomic.

Some sample screenshots....

Just a kokoro failure on this one, hence merging.

Thanks for adding this to the docs @hcallahan-lowrisc, and apologies for my late reply here - this LGTM!

Just a kokoro failure on this one, hence merging.

This kokoro failure was accurate, though:

W   LINE_LENGTH:   prim_intr_hw.sv:25          Line length of 101 exceeds 100 character limit                 New

Fixed in https://github.com/lowRISC/opentitan/pull/21729.


How to use other base model

I want to change the base model sd1.5 to other model like realisticVisionV51_v51VAE,but how to use the node to load a safetensors model.

I wish we can simply do that, but the base model is integrated and re-trained, so if you want to use another base model then you have to find another re-trained base model yourself
But you can change the VAE though, as long as you make sure they have same output size


Issue starting VM

Hi!
I am following the setup instructions, and am running into a roadblock.
I seem to be missing dockerbridge, and am getting the error BdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found. The process appears to die after waiting for a response 1-3 times. I waited for 30 minutes to make sure it wasn't just working in the background, but no luck.
Below are screenshots of how far I get with this command: ./run-local.sh --use-kvm false --browser-port 8000 --prepare-image true
Terminal:

Browser localhost:

Let me know if I'm missing a step.

You can ignore that log based on this comment. I don’t see any errors in the log. However, it’s important that you don’t manually exit the process; let it continue running until it exits automatically. You can use this video as a reference.

That video link is broken for me. Okay, so even if the process appears to stop (see 2nd screenshot), then I should just wait?
I removed the contents of storage/ and restarted the process, but it seems to stop quickly:
❯ Windows has started successfully. You can connect using either a web browser or RDP, both accessible at localhost on the specified ports...
BdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found
BdsDxe: loading Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)
BdsDxe: starting Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)
(winarena) [beaker] piperw /data/piperw/projects/WindowsAgentArena/scripts $ channel 3: open failed: connect failed: Connection refused
channel 3: open failed: connect failed: Connection refused

In this section, you’ll find the preparation walkthrough video. The error in your later attempt is different from your previous run.
I recommend restarting the Docker daemon and ensuring that no other processes are using the browser port 8000. Keep in mind that performance of the agent with use-kvm false may not be ideal. We recommend using this option only for preparing the image and then copying the storage folder image to run the benchmark on an Azure D-series VM or another system that supports nested virtualization.

I started from scratch with a new port and the installation seems to just stop (see screenshot below). The video suggests that the process stopping for me is incorrect. I do not see anything running in the background.

We're working to support KVM Acceleration in our docker containers, but for now trying to prepare the image without it. Maybe this setup is not working due to the nature of our containers.

It seems the process is being terminated halfway through the image preparation. A quick check you could try is:

Start with a plain dockur Docker image:

docker run -it --rm -p 8006:8006 -e KVM=N --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows

Ensure that the Windows 11 VM has started successfully at port 8006.

If the issue persists, please file an issue on dockur and reference this one. We're constantly working to improve our setup, and contributions are always welcome. Thanks in advance!

./run-local.sh --prepare-image true --ram-size 4G --cpu-cores 4
Terminal

Browser

Windows installation is blocked, Please give me some advice.

I'm also having this issue; I've had it happen on my desktop while trying to install UEFI/GPT mbr's conflicting with my system. Will have to take a further look int it.

I've got a, hopefully, working win10e version here: https://github.com/matbee-eth/WindowsAgentArena/tree/win10e-support
It does seem like the issue is related to GPT/MBR, but I'm unable to figure out why.

Having the same issue as well!

This problem has troubled me for a long time, and it is the same when I change a server. Have you solved it?-------"Install driver to show hardware"


Add speach to gesture project

Is your feature request related to a problem? Please describe.
data = https://keithito.com/LJ-Speech-Dataset/ and self-made data for gesture
model = CTC  and Ranforest for gesture
This project takes the speech and gives the gesture for the same to help the deaf.
Describe the solution you'd like
This project is meant to help the deaf communicate better
Describe alternatives you've considered
No response
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Assign me


Implement configuration caching

Kinesis Lambda trigger will trigger Lambda function at least once a second for each shard.
AWS Lambda API allows only very limited amount of requests per second. It throttles any excessive requests.
This PR reduces number of Lambda API calls and allows to run Kinesis Tee with streams with more shards. The trade-off is that updates to the configuration done in DynamoDB will be visible only after 1 minute.
It is achieved by caching Lambda configuration for 60 seconds.
Please, let me know what do you think about it. I could also:

make cache duration configurable
cache only Lambda function description instead of whole configuration. Only call to fetch Lambda function description is problematic as a problem of configuration fetching can be solved by increasing DynamoDB table capacity

This problem appeared for us when we run KinesisTee on a stream with 16 shards.

@kazjote has signed the Software Grant and Corporate Contributor License Agreement. Thanks so much

@BenFradet Any chance to have this PR accepted and released?


Info: Hacktoberfest

Noblox.js is participating in Hacktoberfest.
Sign up on that website and submit 4, valid helpful pull requests (which are accepted) to participating open source repositories, and you can win a T-shirt!
If you want to see if a repo is participating, look for the "hacktoberfest" topic.
What sort of stuff needs done?

Documentation (Make it automatically generated, update it - Could use TS Typings/JSDOC?)

Linked issue: https://github.com/suufi/noblox.js/issues/9
Documentation is a priority!

Investigate and resolve issues with circular dependencies in v14.

This is a very important fix that is needed as soon as possible
this is quite an involved/difficult task. I've started some work towards it and would be happy to work with you on fixing it.
see #195 for more info!

Add new features

There are a lot of missing features that could be added
You could prepare a manual/automated coverage report on how much of the API noblox covers.

Improve errors and make them more consistent
* Linked: https://github.com/suufi/noblox.js/issues/181
* This is something that could be improved throughout the library. The linked issue has a PRed fix, however.

- Investigate getGroups issues
* Linked: https://github.com/suufi/noblox.js/issues/187
Big improvements you could make

Work on moving away from request. Preferably to node-fetch or something similar! (v5 has some progress - speak to Suufi/Qxest)
Work on v5 (see above). Should try to use more a OOP-style
Improve events

Events have some issues with emitting connection reset errors. Could these be prevented?
Allow for event delay to be customisable on every function call (and try to move away from using a json file)

Please do not submit invalid requests or ones that fix tiny issues like spacing. Unless it's actually a problem!
Please make sure all code you submit complies with StandardJS. Check this with npm test before PRing.
If you'd like to tackle any of these please let me know and I'll assign the relevant issue to you.
I'm happy to help if you come across any problems while working on the library. Cheers!
Sign up here.

Thanks to those who took part!


c# Botframework update gives error 500

C# bot framework when updated the NuGet package from 3.4.0 to 3.5.0 gives internal error 500. rolling back fixes this issue.

Can you send us a call stack?

@willportnoy can i know how i can make a call stack?

@willportnoy
Exception thrown: 'System.ArgumentNullException' in mscorlib.dll
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-131291218319763603): Loaded 'Anonymously Hosted DynamicMethods Assembly'.
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.f57bdccecf5943fab2ee9b78a19de425.RemoteDependency","time":"2017-01-17T10:17:18.7041326Z","iKey":"f57bdcce-cf59-43fa-b2ee-9b78a19de425","tags":{"ai.internal.sdkVersion":"rddf:2.2.0-738","ai.internal.nodeName":"ARS","ai.operation.id":"Aej3vFGKe0U=","ai.location.ip":"<IP_ADDRESS>","ai.cloud.roleInstance":"ARS","ai.operation.name":"POST messages","ai.operation.parentId":"Aej3vFGKe0U="},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"/common/v2.0/.well-known/openid-configuration","id":"FUhXEQ+G6YI=","data":"https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration","duration":"00:00:00.2990000","resultCode":"200","success":true,"type":"Http","target":"login.microsoftonline.com","properties":{"DeveloperMode":"true"}}}}
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.f57bdccecf5943fab2ee9b78a19de425.RemoteDependency","time":"2017-01-17T10:17:19.0221684Z","iKey":"f57bdcce-cf59-43fa-b2ee-9b78a19de425","tags":{"ai.internal.sdkVersion":"rddf:2.2.0-738","ai.internal.nodeName":"ARS","ai.cloud.roleInstance":"ARS"},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"/common/discovery/v2.0/keys","id":"ZI593qHKwrQ=","data":"https://login.microsoftonline.com/common/discovery/v2.0/keys","duration":"00:00:00.1670000","resultCode":"200","success":true,"type":"Http","target":"login.microsoftonline.com","properties":{"DeveloperMode":"true"}}}}
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-131291218319763603): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http.WebRequest\v4.0_<IP_ADDRESS>__b03f5f7f11d50a3a\System.Net.Http.WebRequest.dll'. Cannot find or open the PDB file.
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.f57bdccecf5943fab2ee9b78a19de425.RemoteDependency","time":"2017-01-17T10:17:19.5157017Z","iKey":"f57bdcce-cf59-43fa-b2ee-9b78a19de425","tags":{"ai.internal.sdkVersion":"rddf:2.2.0-738","ai.internal.nodeName":"ARS","ai.cloud.roleInstance":"ARS"},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"/botframework.com/oauth2/v2.0/token","id":"BSjcWnHk7Ko=","data":"https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token","duration":"00:00:00.6770000","resultCode":"200","success":true,"type":"Http","target":"login.microsoftonline.com","properties":{"DeveloperMode":"true"}}}}
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.f57bdccecf5943fab2ee9b78a19de425.RemoteDependency","time":"2017-01-17T10:17:19.5056951Z","iKey":"f57bdcce-cf59-43fa-b2ee-9b78a19de425","tags":{"ai.internal.sdkVersion":"rddf:2.2.0-738","ai.internal.nodeName":"ARS","ai.cloud.roleInstance":"ARS"},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"/botframework.com/oauth2/v2.0/token","id":"4ImzAQPRpHw=","data":"https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token","duration":"00:00:00.6920000","resultCode":"200","success":true,"type":"Http","target":"login.microsoftonline.com","properties":{"DeveloperMode":"true"}}}}
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.f57bdccecf5943fab2ee9b78a19de425.RemoteDependency","time":"2017-01-17T10:17:20.2202417Z","iKey":"f57bdcce-cf59-43fa-b2ee-9b78a19de425","tags":{"ai.internal.sdkVersion":"rddf:2.2.0-738","ai.internal.nodeName":"ARS","ai.cloud.roleInstance":"ARS"},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"/v3/conversations/73em003ii4f4befnf/activities/lfh05n1mk58c4m6j3","id":"ApuHYepiMH8=","data":"http://localhost:9002/v3/conversations/73em003ii4f4befnf/activities/lfh05n1mk58c4m6j3","duration":"00:00:00.7470000","resultCode":"401","success":false,"type":"Http","target":"localhost","properties":{"DeveloperMode":"true"}}}}
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.f57bdccecf5943fab2ee9b78a19de425.RemoteDependency","time":"2017-01-17T10:17:20.2202417Z","iKey":"f57bdcce-cf59-43fa-b2ee-9b78a19de425","tags":{"ai.internal.sdkVersion":"rddf:2.2.0-738","ai.internal.nodeName":"ARS","ai.cloud.roleInstance":"ARS"},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"/v3/conversations/mll30gfkc43j72l13/activities/9504a9ge44mklel7l","id":"N0v9ccXMMrI=","data":"http://localhost:9002/v3/conversations/mll30gfkc43j72l13/activities/9504a9ge44mklel7l","duration":"00:00:00.7500000","resultCode":"401","success":false,"type":"Http","target":"localhost","properties":{"DeveloperMode":"true"}}}}
Exception thrown: 'Microsoft.Rest.TransientFaultHandling.HttpRequestWithStatusException' in Microsoft.Rest.ClientRuntime.dll
Exception thrown: 'Microsoft.Rest.TransientFaultHandling.HttpRequestWithStatusException' in Microsoft.Rest.ClientRuntime.dll
Exception thrown: 'Microsoft.Rest.TransientFaultHandling.HttpRequestWithStatusException' in mscorlib.dll
Exception thrown: 'Microsoft.Rest.TransientFaultHandling.HttpRequestWithStatusException' in mscorlib.dll
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.f57bdccecf5943fab2ee9b78a19de425.RemoteDependency","time":"2017-01-17T10:17:21.0468163Z","iKey":"f57bdcce-cf59-43fa-b2ee-9b78a19de425","tags":{"ai.internal.sdkVersion":"rddf:2.2.0-738","ai.internal.nodeName":"ARS","ai.cloud.roleInstance":"ARS"},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"/botframework.com/oauth2/v2.0/token","id":"L8nCFkAl274=","data":"https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token","duration":"00:00:00.6310000","resultCode":"200","success":true,"type":"Http","target":"login.microsoftonline.com","properties":{"DeveloperMode":"true"}}}}
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.f57bdccecf5943fab2ee9b78a19de425.RemoteDependency","time":"2017-01-17T10:17:21.6816579Z","iKey":"f57bdcce-cf59-43fa-b2ee-9b78a19de425","tags":{"ai.internal.sdkVersion":"rddf:2.2.0-738","ai.internal.nodeName":"ARS","ai.cloud.roleInstance":"ARS"},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"/v3/conversations/73em003ii4f4befnf/activities/lfh05n1mk58c4m6j3","id":"DEb4nnmQKPA=","data":"http://localhost:9002/v3/conversations/73em003ii4f4befnf/activities/lfh05n1mk58c4m6j3","duration":"00:00:00.0030000","resultCode":"401","success":false,"type":"Http","target":"localhost","properties":{"DeveloperMode":"true"}}}}
Exception thrown: 'Microsoft.Rest.TransientFaultHandling.HttpRequestWithStatusException' in Microsoft.Rest.ClientRuntime.dll
Exception thrown: 'Microsoft.Rest.TransientFaultHandling.HttpRequestWithStatusException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in Microsoft.Bot.Connector.dll
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.f57bdccecf5943fab2ee9b78a19de425.RemoteDependency","time":"2017-01-17T10:17:21.0463141Z","iKey":"f57bdcce-cf59-43fa-b2ee-9b78a19de425","tags":{"ai.internal.sdkVersion":"rddf:2.2.0-738","ai.internal.nodeName":"ARS","ai.cloud.roleInstance":"ARS"},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"/botframework.com/oauth2/v2.0/token","id":"AohKt7iFq5o=","data":"https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token","duration":"00:00:00.6600000","resultCode":"200","success":true,"type":"Http","target":"login.microsoftonline.com","properties":{"DeveloperMode":"true"}}}}
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.f57bdccecf5943fab2ee9b78a19de425.RemoteDependency","time":"2017-01-17T10:17:21.7411975Z","iKey":"f57bdcce-cf59-43fa-b2ee-9b78a19de425","tags":{"ai.internal.sdkVersion":"rddf:2.2.0-738","ai.internal.nodeName":"ARS","ai.cloud.roleInstance":"ARS"},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"/v3/conversations/mll30gfkc43j72l13/activities/9504a9ge44mklel7l","id":"xYGb6MHO0H8=","data":"http://localhost:9002/v3/conversations/mll30gfkc43j72l13/activities/9504a9ge44mklel7l","duration":"00:00:00.0250000","resultCode":"401","success":false,"type":"Http","target":"localhost","properties":{"DeveloperMode":"true"}}}}
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'Microsoft.Rest.TransientFaultHandling.HttpRequestWithStatusException' in Microsoft.Rest.ClientRuntime.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'Microsoft.Rest.TransientFaultHandling.HttpRequestWithStatusException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in Microsoft.Bot.Connector.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in System.Web.Http.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in System.Web.Http.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.f57bdccecf5943fab2ee9b78a19de425.Request","time":"2017-01-17T10:17:18.2948160Z","iKey":"f57bdcce-cf59-43fa-b2ee-9b78a19de425","tags":{"ai.internal.sdkVersion":"web:2.2.0-738","ai.operation.id":"Aej3vFGKe0U=","ai.location.ip":"<IP_ADDRESS>","ai.cloud.roleInstance":"ARS","ai.operation.name":"POST messages"},"data":{"baseType":"RequestData","baseData":{"ver":2,"id":"Aej3vFGKe0U=","name":"POST messages","duration":"00:00:03.9150000","success":false,"responseCode":"500","url":"http://localhost:3979/api/messages","properties":{"DeveloperMode":"true"}}}}
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.f57bdccecf5943fab2ee9b78a19de425.Request","time":"2017-01-17T10:17:18.5544894Z","iKey":"f57bdcce-cf59-43fa-b2ee-9b78a19de425","tags":{"ai.internal.sdkVersion":"web:2.2.0-738","ai.operation.id":"dQK4SBmBf/o=","ai.location.ip":"<IP_ADDRESS>","ai.cloud.roleInstance":"ARS","ai.operation.name":"POST messages"},"data":{"baseType":"RequestData","baseData":{"ver":2,"id":"dQK4SBmBf/o=","name":"POST messages","duration":"00:00:03.6550000","success":false,"responseCode":"500","url":"http://localhost:3979/api/messages","properties":{"DeveloperMode":"true"}}}}
The thread 0x37a0 has exited with code 0 (0x0).
The thread 0x3b34 has exited with code 0 (0x0).
The thread 0x3af8 has exited with code 0 (0x0).
The thread 0x2cdc has exited with code 0 (0x0).
The thread 0x38a0 has exited with code 0 (0x0).
The thread 0x3dbc has exited with code 0 (0x0).
this is the log i could make out

Help wanted!

I see a lot of UnauthorizedAccessException - are you using the correct authentication information?
https://docs.botframework.com/en-us/support/troubleshooting-bot-framework-authentication/

I have the exact same issue.  Something is broken with the Skype integration.  Replying back via other channels (e.g. web chat) works fine.

@alokraj68 , @g4mb10r , still having this issue?

@eanders-MS I presume localhost:9002 is the emulator - why would it throw a 401 when login.microsoftonline.com seems to return a 200 just a few lines earlier?
(I'll also take a look at the SDK - @msft-shahins for FYI)

@alokraj68, @g4mb10r I believe you are using old emulator. Try to install the new emulator: https://docs.botframework.com/en-us/tools/bot-framework-emulator/#navtitle
New emulator looks like following:

old emulator doesn't accept the v3.1 auth token sent by sdk version > 3.5. You can read more about changes here: https://docs.botframework.com/en-us/restapi/authentication/#changes

Sorry @msft-shahins I didn't catch that - thank you.

This issue was because we were trying access https url for http one. Its resolved.


Unable to build after install on new project

After installing pico-setup-windows-x64-standalone when I load Pico - Visual Studio Code and created a new project, when I try to CMAKE:PROJECT OUTLINE and build a copy of the picow_tcp_client.c I get the below.  All files are in the root of the project.
Does it only do cmake -DPICO_BOARD=pico .. rather than cmake -DPICO_BOARD=pico_w .. and it does not have the right board?  If so what is the fix?
CMakeLists.txt
lwipopts_examples_common.h
lwipopts.h
pico_sdk_import.cmake
picow_tcp_client.c

picow_tcp_client.c:11:10: fatal error: pico/cyw43_arch.h: No such file or directory
[build]    11 | #include "pico/cyw43_arch.h"
[build]       |          ^~~~~~~~~~~~~~~~~~~
[build] compilation terminated.

my CMakeLists.txt

cmake_minimum_required(VERSION 3.13)

# Pull in SDK (must be before project)
include(pico_sdk_import.cmake)

project(badge1 C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)

set(PICO_EXAMPLES_PATH ${PROJECT_SOURCE_DIR})

# Initialize the SDK
pico_sdk_init()

add_compile_options(-Wall
        -Wno-format          # int != int32_t as far as the compiler is concerned because gcc has int32_t as long int
        -Wno-unused-function # we have some for the docs that aren't called
        -Wno-maybe-uninitialized
        )

if (PICO_CYW43_SUPPORTED) # set by PICO_BOARD=pico_w
    if (NOT TARGET pico_cyw43_arch)
        message("Skipping Pico W examples as support is not available")
    else()

        if (DEFINED ENV{WIFI_SSID} AND (NOT WIFI_SSID))
            set(WIFI_SSID $ENV{WIFI_SSID})
            message("Using WIFI_SSID from environment ('${WIFI_SSID}')")
        endif()

        if (DEFINED ENV{WIFI_PASSWORD} AND (NOT WIFI_PASSWORD))
            set(WIFI_PASSWORD $ENV{WIFI_PASSWORD})
            message("Using WIFI_PASSWORD from environment")
        endif()

        set(WIFI_SSID "${WIFI_SSID}" CACHE INTERNAL "WiFi SSID for examples")
        set(WIFI_PASSWORD "${WIFI_PASSWORD}" CACHE INTERNAL "WiFi password for examples")
    endif()
endif()

set(WIFI_SSID "${WIFI_SSID}" CACHE INTERNAL "WiFi SSID for examples")
set(WIFI_PASSWORD "${WIFI_PASSWORD}" CACHE INTERNAL "WiFi password for examples")

add_executable(badge1
        picow_tcp_client.c
        )
target_compile_definitions(badge1 PRIVATE
        WIFI_SSID=\"${WIFI_SSID}\"
        WIFI_PASSWORD=\"${WIFI_PASSWORD}\"
        TEST_TCP_SERVER_IP=\"${TEST_TCP_SERVER_IP}\"
        )
target_include_directories(badge1 PRIVATE
        ${CMAKE_CURRENT_LIST_DIR}
        ${CMAKE_CURRENT_LIST_DIR}/.. # for our common lwipopts
        )
target_link_libraries(badge1
        pico_cyw43_arch_lwip_threadsafe_background
        pico_cyw43_arch_lwip_poll
        pico_stdlib
        )

pico_add_extra_outputs(badge1)

Update
Setting the board type explicitly within CMakeLists.txt fixes this.  I will close this issue but wanted to share with the dev team so they may think about adding this info to the readme.
# Set the board type
set(PICO_BOARD pico_w)

Thanks for figuring it out and documenting your fix.
I'd like to point out that this is not specific to the Windows installer, it is about using the SDK and the specific example you chose. Setting PICO_BOARD is documented in the pico-examples ReadMe: (where you copied picow_tcp_client.c from)

These examples are for the Pico W, and are only available for PICO_BOARD=pico_w

The Windows + VS Code specific instructions for setting PICO_BOARD are in the FAQ.


Preload locales to fix native crash

Details
I'm not sure why it was only an issue on native, or why it was not reproducible on a dev build, but this seems to fix the crash.
Fixed Issues
$ https://github.com/Expensify/Expensify.cash/pull/3606
Tests

Run npm i -g ios-deploy
Plug your phone into your computer (I was testing on a physical device - it may be reproducible on a sim, but I'm not sure).
Run npm run ios --configuration Release --device "Target Device Name"
Go to Settings -> Preferences and toggle the language picker. The app should not crash and the language should switch in the app.

QA Steps
Go to Settings -> Preferences and toggle the language picker. The app should not crash and the language should switch in the app.
Tested On

[x] Web
[ ] Mobile Web
[ ] Desktop
[x] iOS
[ ] Android

Screenshots
Web

Mobile Web

Desktop

iOS
https://user-images.githubusercontent.com/47436092/123349203-50fdc980-d50e-11eb-806e-10baccfa8c15.MP4
Android

:warning: :warning: Heads up! This pull request has the CP Staging label. :warning: :warning:
Merging it will cause it to be immediately deployed to staging, even if the open StagingDeployCash deploy checklist is locked.

🚀 Cherry-picked to staging in version: 1.0.73-3🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production in version: 1.0.73-3🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging in version: 1.0.73-4🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production in version: 1.0.74-0🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Add training step callback hook before .backward

🚀 Feature
The proposal is to add a callback hook for the training step before .backward. Current hooks run either after .backward (on_after_backward) or after optimizer.step (on_train_batch_end, on_batch_end). The proposed callback hook would complement the existing hooks.
Motivation
Adding this hook allows one to create callbacks related to loss calculations as well as batch operations for loss calculations. The current hooks cannot be used for this because the automatic pl optimizer is already called before the existing hooks.
Adding the proposed hook would increase the flexibility and usability of pytorch lightning without modifying existing functionality.
Pitch
Concretely, it would suffice to add an additional callback hook, named for example "on_before_backward",  that takes in trainer and pl_module as arguments.
Alternatives
Without the proposed callback, the alternative for the end user is to modify their own code to create their own hook in all the pl modules they use.

Dear @GR4HAM,
Do you want to give it a try ?
Here are the steps:

Add the new hook to the pytorch_lightning/callbacks/base.py::Callback

Add the new hook inside pytorch_lightning/trainer/callbacks.py

Find in the TrainLoop where the hook should be call and use self.trainer.call_hook("on_before_backward")

Add the new callback to the FXValidator (same as training_step)

5: Resolve failing tests. Lambda Callback + FXValidator.

Best,
T.C


Fix: Use code-server reference in all the files

Fix: Use code-server reference in all the files
Description

Fix: Use code-server reference in all the files
Related-to: https://issues.redhat.com/browse/RHOAIENG-2188
How Has This Been Tested?

NA
Merge criteria:

[x] The commits are squashed in a cohesive manner and have meaningful messages.
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has manually tested the changes and verified that the changes work

I can see that you updated also functional code. Then we have to check that we really didn't break anything with this one :smile:

I can see that you updated also functional code. Then we have to check that we really didn't break anything with this one 😄

all good, tested this , it works without issue.
podman run -it -p 8888:8787 quay.io/opendatahub/workbench-images:codeserver-ubi9-python-3.9-pr-390

Do we need to rename the extension files as well? Example

Do we need to rename the extension files as well? Example

I suggest maintaining the current file name as it was downloaded from the marketplace. We may lost traceability otherwise

Do we need to rename the extension files as well? Example

The names are named exactly as the files are named on https://open-vsx.org, I checked https://open-vsx.org/extension/ms-toolsai/vscode-jupyter-cell-tags. So I think we should not rename them.

/LGTM

Thanks for all the reviews.
Merging this in.
/approve


HDDS-6771. EC: ReplicationManager - make ContainerReplicaPendingOps into a SCM service

What changes were proposed in this pull request?
add a background  service to schedule thread to purge the expired replication ops.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-6771
How was this patch tested?
UT

thanks @sodonnel for the review. i will update this PR later

i have force-updated this patch. in the new patch:
1 add a common background scm service final class. after investigating , i think no need to add an abstract class, a final class is enough. we can create different background scm service just by changing the parameters in the builders. the task schedule logic can be shared naturally. for backgroundPipelineScrubber, we can just change the periodical task to pipelineManager.scrubPipelines(). for ReplicationManager, we can add a internal background scm service and set the periodical task to processALL()
2 I also am not sure if we should be adding config in the way i have done here, or using the "Type Safe" approach. so i keep the approach like this for now, and can be changed later after we reach an agreement on this top. seems not complex.

Nice work @JacksonYao287 and @sodonnel

thanks @sodonnel and @umamaheswararao for the review!


Remove 2.0.0 file

I noticed we added this file by mistake 😊
(I'm also using this PR to check that the release comment still works)

Hi, thanks for contributing to Strawberry 🍓!
We noticed that this PR is missing a RELEASE.md file. We use that to automatically do releases here on GitHub and, most importantly, to PyPI!
So as soon as this PR is merged, a release will be made 🚀.
Here's an example of RELEASE.md:
Release type: patch

Description of the changes, ideally with some examples, if adding a new feature.

Release type can be one of patch, minor or major. We use semver, so make sure to pick the appropriate type. If in doubt feel free to ask :)
Here's the tweet text:
🆕 Release (next) is out! Thanks to @patrick91 for the PR 👏

Get it here 👉 https://github.com/strawberry-graphql/strawberry/releases/tag/(next)


Flag position indicator incorrectly showing in warmup

This seems to be a consequence of a game update. Any idea what actually changed?


[.github/scripts/auto-backport.py] improve label logic

In this commit there few improvments to the backport automation process based on the work done in https://github.com/scylladb/scylla-machine-image/pull/541

Create new parameter --commit to be use only when --pull-request is provided
Trigger workflow when label is backport/x.y only, rather then backport/ as it was defined before. This way we will not trigger to flow when backport/x.y-done was added
when running on specific PR with --pull-request make sure we don't pass an empty commit
fix get_prs_from_commits() while trying to do get_commit on the wrong sha1 value

@yaronkaikov are you gonna apply those on dtest/sct as well ?

@yaronkaikov are you gonna apply those on dtest/sct as well ?

yep, soon


feat: add lobbies_server demo

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#145  👈
#144
#143
#142
#141
#140
#139
#138
#137
#136
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @NathanFlurry and the rest of your teammates on  Graphite


[migrator] Removed the aui:button-item Tag and Replaced with aui:button

Date: 2016-Feb-04
https://issues.liferay.com/browse/LPS-62922
https://github.com/liferay/liferay-portal/blob/master/readme/7.0/BREAKING_CHANGES.markdown#removed-the-auibutton-item-tag-and-replaced-with-auibutton
type:jsp

Moved to here: https://github.com/gamerson/liferay-blade-cli/issues/7


Social Curiosity Module implementation and MOA fixes

@eugenevinitsky As discussed in our email conversation.
Highlights:

Optimizations/bugfixes in map_env
Move the MOA predictions to a single tensor evaluation rather than handling them in postprocessing
On the whole, experiments run a lot faster now
Upgrade to ray 0.8.4, tensorflow-gpu 2.1.0, other misc library upgrades
Fix tests
Add isort, pre-commit and black config files.
Add a simple environment where a single agent has to pull a set of switches, then walk through a door. This can be used for testing purposes.
The addition of my own model, the social curiosity module (often denoted in the code as scm): a combination of the social influence reward with Burda's intrinsic curiosity module.

Hi, this is really great work, and thank you for implementing all of these changes. However, currently, the patches that are made to raylib are only applied to the dynamic and not the eager version of the library. As a result, using running the train scripts with --eager fails (due to the type mismatch corrected in the patch) whereas running it normally doesn't. Not being able to use --eager definitely complicates debugging models built on the repo.

Hi, this is really great work, and thank you for implementing all of these changes. However, currently, the patches that are made to raylib are only applied to the dynamic and not the eager version of the library. As a result, using running the train scripts with --eager fails (due to the type mismatch corrected in the patch) whereas running it normally doesn't. Not being able to use --eager definitely complicates debugging models built on the repo.

Thank you!
I agree, and aside from the defect you stated the patch is brittle and breaks on ray updates as well, it was a quick hack to avoid having to fork ray. Personally I never got eager mode to run, even before I created that patch, but that was some ray versions ago. If you want to update the patch, feel free to make a PR in my fork.

Hey, I'm down to merge this since it mostly doesn't touch the envs and all the tests pass. Let me know when you feel it's ready?

Wow, you've done a crazy amount of work. Going to tweet this out whenever it's merged so let me know if you have a handle I can tag.

Wow, you've done a crazy amount of work. Going to tweet this out whenever it's merged so let me know if you have a handle I can tag.

I don't have a twitter, if you could link to my personal website that would be great! Also, feel free to mention that I'm job-hunting for ML Engineer positions.


Fix broken link

Fixes broken link to QSG from Introduction.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Samuel Mervyn Gnaniah seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


ipfilter

Hey there! So I started working #2129 tonight. This is a first draft and does not contain all the Subnet/CIDR filter stuff yet, as these are really just implementations of filter rules and I would like to ask for feedback on the design of the handler from @trustin and @normanmaurer and anyone who is reading this.
Using the IpFilterRuleHandler would be quite similar to the netty3.x version:
IpFilterRuleHandler handler = new IpFilterRuleHandler ();
handler.addRule(new IpFilterRule() {
    @Override
    public boolean matches(InetAddress ipAddress) {
        // logic goes here. return true/false for accepted/rejected.
    }

    @Override
    public IpFilterRuleType ruleType() {
        // return either IpFilterRuleType.ALLOW or IpFilterRuleType.DENY;
    }
})
.addRule(...)
.addRule(...);

pipeline().addFirst("ipfilter", handler);

However, I got rid of the IpFilterListener and introduced AbstractIpFilteringHandler#rejected(ChannelHandlerContext ctx, InetSocketAddress ipAddress) instead. So if a connection gets rejected this method will be called (it replaces IpFilterListener#refused). Always? No only if it is not annotated with Skip. Very similar to channelRegistered/Active/... methods, to avoid unnecessary function calls.
So if a developer decides that he would like to do something with the rejected channels, his code would look similar to this:
IpFilterRuleHandler handler = new IpFilterRuleHandler () {
    @Override
    protected ChannelFuture rejected(ChannelHandlerContext ctx, InetSocketAddress ipAddress) {
        // logic goes here
        return ctx.writeAndFlush(...);
    }
}

Since the Skip annotation is not inherited, this works just fine.
Let me know what you think. Thanks :).

is there a replacement for Netty3 PatternRule or  has anybody though about a migration path?

@s1monw not that I am aware of. Can you show me how you used it ?

@normanmaurer we used it internally for something else (basically reused the functionality) or rather abused. I think I can simply fork the 3.x version for our purpose I was just curious if I missed something.

if you can make it work for netty 4 again I would be happy to review a PR :)

On 16 Nov 2016, at 15:14, Simon Willnauer<EMAIL_ADDRESS>wrote:
@normanmaurer https://github.com/normanmaurer we used it internally for something else (basically reused the functionality) or rather abused. I think I can simply fork the 3.x version for our purpose I was just curious if I missed something.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/netty/netty/pull/2286#issuecomment-260956713, or mute the thread https://github.com/notifications/unsubscribe-auth/AAa0Qi4vtOca002Zl1wVx98bO1EZf7ncks5q-w-vgaJpZM4Bm2gM.


Mavenize Play! Framework v.1.5.0

Version 1.5.0 was released recently.

mavenize this version,
create play15-app-default-parent parent pom

Version 1.5.0 deployed to Maven central repository.


Data Science with Python : Logistic Regression Algorithm

Welcome to 'DSWP' Team, good to see you here.
This issue will helps readers in acquiring all the knowledge to learn about getting involved with Logistic Regression Algorithm. Tutorial to Logistic Regression Algorithm and how it's applied using sample code.
To get assigned to this issue, add your serial numbers mentioned in the spreadsheet of "Data Science with Python", the approach one would follow and choice you prefer (Documentation, Audio, Video). You can go with all three or any number of options you're interested to work on.
This issue is created for beginners and who aren't assigned to any issues yet.
If you had referred any resources, add them up in "DS Resources". Similarly if you had used datasets, include them in "DS Datasets".
Domain : Machine Learning
Mentors Assigned : Aishani Singh / Yash Goel
Points to Note :
The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.
"Issue Title" and "PR Title should be the same. Include issue number along with it.
Changes should be made inside the Datascience_With_Python/ directory & Datascience_With_Python branch.
Follow Contributing Guidelines & Code of Conduct before start Contributing.
This issue is only for 'GWOC' contributors of 'DSWP' domain.
All the best. Enjoy your open source journey ahead. 😎

I want to contribute through documentation in this issue.

Hello, I am Deepthi M with a serial number:172. I would like to do documentation on this issue.
my approach: a detailed explanation and a data set to explain the code.

Name: Rahul Singhal
Serial No. 608
Documentation
Approach:
Definition, Theory explaining how it works, Code implementation

This issue is @rahulsinghal1904 is assigned to documentation
This issue is created from request of a contributor at discord thread.
@deepthi1107, I guess you had already been allotted to an issue. Correct me if i am wrong
@Aaksha-sharma, there are issues coming up. If you want to work on this, you can through audio / video

yes I would like to work audio

yes, I have been assigned with the issue, soonly I will do pr.

Hello, I am Deepthi M with serial number:172. I would like work on this issue.
a detailed explanation of code dealing with dataset.

Issue is assigned to @Aaksha-sharma for audio contribution

Hello , I'm Nayanika Mishra
batch: 9
I would like to work on this issue.

@prathimacode-hub add me as assignee

@rahulsinghal1904 @Aaksha-sharma any updates?

Yes I have sent pr link to @prathimacode-hub

@rahulsinghal1904 @Aaksha-sharma any updates?

I have sent the PR info. and link in the Discord PR thread.


Heketi endpoint is changing after each reboot

I'm using the heketi endpoint like the docs say for the resturl of the storage class but this endpoint change after all reboot so I have to change the storageclass each time. there's any way to prevent this ?

yes thank you @jarrpa


Use native comparison instead of regexp

mmm but the i on the regex means "ignore case"

improved and released as v4.0.1.
Thank you for your contribution!


Hunk #1 FAILED at 541. 1 out of 1 hunk FAILED -- saving rejects to file kenlm/util/file.cc.rej

Hi yhwang, thanks for sharing your work.
I am trying to patch files but getting error. Could you point me to some resource that ll help me resolve the error
inside kenlm-wasm
patch -p0 < kenlm.patch
I get the following error
patching file kenlm/CMakeLists.txt
patching file kenlm/lm/CMakeLists.txt
patching file kenlm/lm/builder/CMakeLists.txt
patching file kenlm/lm/filter/CMakeLists.txt
patching file kenlm/lm/interpolate/CMakeLists.txt
patching file kenlm/util/CMakeLists.txt
patching file kenlm/util/double-conversion/utils.h
patching file kenlm/util/file.cc
Hunk #1 FAILED at 541.
1 out of 1 hunk FAILED -- saving rejects to file kenlm/util/file.cc.rej

I am running this code on ubuntu

I manually edited the file.cc


Creating songlist database

We need to change song_list to DT, which will contain information about songs (e.g. name, author, length, associated names). Songs should be saved as their hashes, though still be callable by their names.

As this issue is too complex, I'll consider it solved as the primary point (creating a database) has been achieved (see SQLAlchemy branch).


core: Update bonder address structure

👍  LGTM

I believe there are other places that need to be addressed in order for this to work as intended. The ones I came up with are as follows:
* [FE stats context 1](https://github.com/hop-protocol/hop/blob/0bad45032eec85811d7f91f432bda12cb1c149a9/packages/frontend/src/pages/Stats/StatsContext.tsx#L215)

* [FE stats context 2](https://github.com/hop-protocol/hop/blob/0bad45032eec85811d7f91f432bda12cb1c149a9/packages/frontend/src/pages/Stats/StatsContext.tsx#L402)

* [SDK base](https://github.com/hop-protocol/hop/blob/0bad45032eec85811d7f91f432bda12cb1c149a9/packages/sdk/src/Base.ts#L116)

Please let me know if you can think of any others, as I think there may be even more given how broad this change is. I will think through once more as well, but things are looking good!

This is a great find. I'll get the frontend updated

The following functions in the SDK are unintuitive now. If both a bonder and destination chain is passed in, then destination is completely ignored, even if the caller expects to get the value at the specific destination.
* `getCredit()`

* `getDebit()`

* `getTotalDebit()`

* `getAvailableLiquidity()`

I think it makes sense to update the function signature of those functions to getXxx(chain: TChain, bonder: string). This would do a few things:
1. The bonder would be explicitly passed in, as to avoid any implicitness and confusion

2. The destination chain would not be used during the call, which I believe is expected since those functions should only care about a single chain and be unconcerned with source/destination.

I agree and meant to bring it up friday. Resolved with https://github.com/hop-protocol/hop/commit/460cd62d1f1399a6d44661a8b355b6c688114bb2

I think getFrontendAvailableLiquidity() should be updated as well, since it is subject to the same issues WRT mismatched destination/bonder.
I think I was wrong about changing setConfigAddresses() in my last comment. You did not update it, which I believe is correct. Just to be explicit, you believe that this line is good as-is, correct?
Other than that, changes look great to me. Ready for merge IMO after addressing those final comments 🎉
@miguelmota

There's 2 reasons I think getFrontendAvailableLiquidity should be left as is

This method requires both source and destination chain already so it can read the bonder for the route easily already
It won't require a manual look up for bonders in our fronend and also third parties that use our sdk (like polymarket which is using this method)

I didn't update setConfigAddresses because I think it's good the way it is (it takes in the whole object)

I see. Do you think it makes sense to take bonder out of the function signature and define it within the function itself?
@miguelmota

@shanefontaine yeah I think so because it's not being manually passed in anywhere

Perfect 👍


Add Performance/CallerLocations cop

Example
# bad
caller.first

# good
caller_locations(1, 1).first.to_s

Benchmark
require 'benchmark'

MAX = 100_000

def record(count = 100, &block)
  count.zero? ? yield : record(count - 1, &block)
end

def report(benchmark, name, &block)
  benchmark.report(name) do
    record { MAX.times(&block) }
  end
end

Benchmark.bm do |x|
  report(x, 'caller')                    { caller[0] }
  report(x, 'caller(1, 1)[0]')           { caller(1, 1)[0] }
  report(x, 'caller_locations(1)[0]')    { caller_locations(1)[0] }
  report(x, 'caller_locations(1, 1)[0]') { caller_locations(1, 1)[0] }
end

# =>
#        user     system      total        real
# caller 12.050000   0.220000  12.270000 ( 12.907449)
# caller(1, 1)[0]  0.230000   0.040000   0.270000 (  0.287975)
# caller_locations(1)[0]  2.630000   0.020000   2.650000 (  2.860490)
# caller_locations(1, 1)[0]  0.140000   0.020000   0.160000 (  0.172659)

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Used the same coding conventions as the rest of the project.
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] All tests are passing.
[x] The new code doesn't generate RuboCop offenses.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Updated cop documentation with rake generate_cops_documentation (required only when you've added a new cop or changed the configuration/documentation of an existing cop).

Rails4.2.8なら通りそうな気がする... 😇

Some more background on this would be useful as the replacement code seems way more complex than the straightforward "slow" code.

@alpaca-tc Seems like it's fixable (lazy enumerator instead of Array, lazy hash, lazy array, etc) (function is vm_backtrace_to_ary).
Also, caller(1..1) would be a good compromise IMHO (https://ruby-doc.org/core-2.4.0/Kernel.html#method-i-caller_locations)

@bbatsov I fixed to simply replace with caller(1..1) rather than complex caller_locations.
@Dorian Thank you for reviewing 👍

Seems like it's fixable (lazy enumerator instead of Array, lazy hash, lazy array, etc) (function is vm_backtrace_to_ary).

hmm, could you tell me more details to what should i fix? 🤔

Just two more things:

in the first commit message drop the final .
in the second commit message - replace to with with

Btw, shouldn't this cop be more generic? If you do caller[n] it should be replaced with caller(n..n)? Seems a bit odd to optimize just for one case.

Any progress here? If not - I'll be forced to close this due to lack of activity.

Sorry, I kept you waiting. I try to improve this pr :pray:

Just adding a bit more bench-marking information because I was curious.
[14] pry(main)> Benchmark.ips do |x|
[14] pry(main)*   x.report('caller.first') { caller.first }
[14] pry(main)*   x.report('caller(1..1).first') { caller(1..1).first }
[14] pry(main)*   x.compare!
[14] pry(main)* end
Warming up --------------------------------------
        caller.first     2.314k i/100ms
  caller(1..1).first    36.661k i/100ms
Calculating -------------------------------------
        caller.first     24.241k (±13.5%) i/s -    120.328k in   5.055955s
  caller(1..1).first    490.166k (±16.5%) i/s -      2.383M in   5.028717s

Comparison:
  caller(1..1).first:   490166.1 i/s
        caller.first:    24240.7 i/s - 20.22x  slower

Most of the ideas for our performance cops came from fast-ruby. I didn't see this one listed. It might be nice to make a PR against their project as well.

@bbatsov Fixed 👍

@alpaca-tc You have to rebase and resolve conflicts.

The messages at least still mention 1 explicitly instead of being a generic index. Perhaps you forgot about them? I also don't see any tests for anything but 1.

You should rebase this on top of the current master.

@alpaca-tc how come this suggests 1..1 instead of 1, 1? Either one has the same number of characters, but the former doesn't also require creating a Range object.

@aripollak yeah, it sounds nice

I too noticed that the message could use some clarification. "Use caller(n..n) instead of caller[n]" isn't fully accurate. Wouldn't the correction need to be caller(n..n)[n]?


Clarified the use of 'inner distance' vs 'insert size'

Proposed fix for Issue 4

Switched the target branch from master to dev

Fantastic, thanks!


Manual corrections to kbdgr

Docs Build status updates of commit 31b1259:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: GitBranchDeletedOrForcePushed] Cannot sync git repo to specified commit because branch u/jowilco/issue174_GermanKeyboard has been deleted or has been force pushed

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Better non-admin difficulty selection menu

The difficulty selection menu should always be available, but non-admins will start a vote instead of an immediate difficulty change.

Resolved via commit d03005eb61f7dcc3738d393a7b613ea9c29e1b21.