1D Convolution with ScopedLayer

I'm trying to figure out how to use td.ScopedLayer() with tf.conv1d().  What am I doing wrong?
def conv1d_layer(x):
  return td.ScopedLayer(tf.nn.conv1d(x, tf.zeros([3, 1, 1]), stride=2, padding="VALID"))

test_seq = [[x for x in xrange(0,randint(1,10))] for v in xrange(randint(3,5))]

print((td.Map(td.Map(td.Scalar())) >> conv1d_layer).eval(test_seq))

Getting the following error:

Traceback (most recent call last):
  File "test.py", line 109, in
    print((td.Map(td.Map(td.Scalar())) >> conv1d_layer).eval(test_seq))
  File "/usr/local/lib/python2.7/dist-packages/tensorflow_fold/blocks/blocks.py", line 156, in __rshift__
    return Pipe(self, rhs)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow_fold/blocks/blocks.py", line 997, in Pipe
    return _pipe([convert_to_block(b) for b in blocks],
  File "/usr/local/lib/python2.7/dist-packages/tensorflow_fold/blocks/blocks.py", line 2036, in convert_to_block
    raise TypeError('%s cannot be converted to a block' % str(block_like))
TypeError: < function conv1d_layer at 0x7fc5e6c28320 > cannot be converted to a block

You need to >> to a layer or block, not to a function that returns a layer.
Incidentally I don't understand why you want to convolve with zeros, but I
guess this is just for testing purposes. Please note that when you wrap a
callable with a scoped layer it ought to take a scope keyword argument
(since the whole point of scoped layers is to encapsulate trainable
variables in a particular scope).
Try e.g.
def my_conv(x, scope):
mung some variables inside of scope and return a tensor
conv1d_layer = td.ScopedLayer(my_conv)
td.Map(td.Map(td.Scalar())) >> conv1d_layer
On Wed, Mar 22, 2017 at 7:04 AM, Justin Chen<EMAIL_ADDRESS>wrote:

I'm trying to figure out how to use td.ScopedLayer() with tf.conv1d().
What am I doing wrong?
def conv1d_layer(x):
return td.ScopedLayer(tf.nn.conv1d(x, tf.zeros([3, 1, 1]), stride=2, padding="VALID"))
test_seq = [[x for x in xrange(0,randint(1,10))] for v in xrange(randint(3,5))]
print((td.Map(td.Map(td.Scalar())) >> conv1d_layer).eval(test_seq))
Getting the following error:
Traceback (most recent call last):
File "test.py", line 109, in
print((td.Map(td.Map(td.Scalar())) >> conv1d_layer).eval(test_seq))
File "/usr/local/lib/python2.7/dist-packages/tensorflow_fold/blocks/blocks.py", line 156, in rshift
return Pipe(self, rhs)
File "/usr/local/lib/python2.7/dist-packages/tensorflow_fold/blocks/blocks.py", line 997, in Pipe
return _pipe([convert_to_block(b) for b in blocks],
File "/usr/local/lib/python2.7/dist-packages/tensorflow_fold/blocks/blocks.py", line 2036, in convert_to_block
raise TypeError('%s cannot be converted to a block' % str(block_like))
TypeError: < function conv1d_layer at 0x7fc5e6c28320 > cannot be converted to a block
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/fold/issues/38, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAsbjisXfjboidBhDni6LXfh0OPm54Qeks5roSp0gaJpZM4MlP1-
.

@moshelooks So in order to feed in arbitrary-length data, I need first convert it with np.array() and then tf.convert_to_tensor(), but in order to use that latter function, the np.array dimension must be rectangular, not jagged, so I cannot use, for instance, x = np.array([[0, 1, 2, 3], [0, 1, 2], [0, 1]]). I have to first do max_length = max(len(row) for row in x) and then x_padded = np.array([row + [0] * (max_length - len(row)) for row in x]), and then feed x_padded to tf.convert_to_tensor(), which can then be fed to (td.Map(td.Map(td.Scalar())) >> td.ScopedLayer(conv1d_layer)).eval(x_padded), correct?

Wat? No. What problem are you trying to solve here? There's almost never any need to call np.array() or tf.convert_to_tensor() in conjunction with TF or TF Fold; these conversions get performed automatically when the appropriate function gets called. If you have a layer that you want to invoke elementwise on a jagged array of python floats (e.g. a list of list of floats) then Map(Map(Scalar)) >> layer will do the job. If the element type is not float then replace Scalar() with td.Vector or td.Tensor. If you want to do apply a function over adjacent elements then you cannot use map directly, try td.NGrams.

@moshelooks Sorry for the confusion, so I'm trying to run a 1D convolution over a flattened parse tree. So I'm getting a batch of n lists where each list is a flattened tree. Does this make sense print (td.Map(td.Map(td.Vector())) >> td.ScopedLayer(conv1d_layer)).eval(batch), where batch is a list of arbitrarily sized lists.?

You need to start thinking in terms of types
https://github.com/tensorflow/fold/blob/master/tensorflow_fold/g3doc/types.md;
I recommend our tutorial
https://github.com/tensorflow/fold/blob/master/tensorflow_fold/g3doc/blocks.md.
The first question is what type you want for the individual inputs (not the
type of a batch of inputs!). Note that eval works on single inputs, whereas
the Compiler class deals in batches of inputs.
I'm going to assume that for a flattened parse tree this is a sequence of
vectors in R^n (sequences in Fold have indeterminate length), i.e.
td.SequenceType(td.TensorType(n)).
It looks like you're trying to apply a layer elementwise to the items in
your input sequence; assuming this is correct, you should just do
td.Map(td.Vector(n) >> my_scoped_layer)
Note the 'n' (tensor/vector shapes need to be fully specified) and note
that the individual elements of the vector get piped to my_scoped_layer,
not the entire sequence (layers can only take tensors as inputs, not
sequences). If you want to write a function that takes two tensors as
inputs and runs over adjacent elements of you input sequence that would be
td.Map(td.Vector(n)) >> td.NGrams(2) >> td.Map(my_scoped_layer)
On Mon, Mar 27, 2017 at 11:51 AM, Justin Chen<EMAIL_ADDRESS>wrote:

@moshelooks https://github.com/moshelooks Sorry for the confusion, so
I'm trying to run a 1D convolution over a flattened parse tree. So I'm
getting a batch of n lists where each list is a flattened tree. Does this
make sense print (td.Map(td.Map(td.Vector())) >>
td.ScopedLayer(conv1d_layer)).eval(batch), where batch is a list of
arbitrarily sized lists.?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/fold/issues/38#issuecomment-289548822, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAsbjrfqp4B_MtPCFHJITkv8AYK3bTAqks5rqAUVgaJpZM4MlP1-
.

Ah, I see. So if I want to have multiple 1D conv layers each with a different kernel length, how do I pass parameters to my functions that I wrap with td.ScopedLayer()? For example, if this is my conv layer block:
def conv1d_layer(x, kernel_size, scope):
  with tf.variable_scope(scope) as sc:
    conv = tf.nn.conv1d(x, tf.zeros([kernel_size,1,1]), stride=1, padding='SAME')
  return conv

print (td.Map(td.Scalar()) >> td.NGrams(3) >> td.ScopedLayer(conv1d_layer(kernel_size=3))).eval(range(10))

I get the following error:
Traceback (most recent call last):
  File "test.py", line 128, in <module>
    print (td.Map(td.Scalar()) >> td.NGrams(3) >> td.ScopedLayer(conv1d_layer(kernel_size=3))).eval(range(10))
TypeError: conv1d_layer() takes exactly 3 arguments (1 given)

In this example, I want to run the 1d conv with kernel width 3 to each 3-gram.


Fix tests

Updated xvfb setup for travis: https://docs.travis-ci.com/user/gui-and-headless-browsers/#using-xvfb-to-run-tests-that-require-a-gui
Fixed type mismatch in executeRubocop

Hi, @misogi thanks for the awesome gem. Can you please check this PR out.


Fail to generate perfect hash for reading when there are one or more unicode keys in struct

I was trying to read csv files which have unicode in keys and got this bug and debugged a little bit, turned out it was because of the unicode keys.
Using compiler: MSVC 19.38.33133 / Visual studio 2022 17.8.3 (it also doesn't work in 17.8.2)
Callstack from visual studio error report:

Code to reproduce
struct unicode_keys_t
{
    float field1;
    float field2;
    std::uint8_t field3;
    std::string field4;
    std::string field5;
    std::string field6;
    std::string field7;
};

// example 1
template <>
struct glz::meta<unicode_keys_t>
{
    using T = unicode_keys_t;
    static constexpr auto value = object("alpha",&T::field1,
                                         "bravo",&T::field2,
                                         "charlie",&T::field3,
                                         "♥",&T::field4,
                                         "delta",&T::field5,
                                         "echo",&T::field6, // wont compile if there are any unicode keys after this
                                         "😄",&T::field7 // fails
                                      // "foxtrot",&T::field7 // success
    );
};

// example 2
template <>
struct glz::meta<unicode_keys_t>
{
    using T = unicode_keys_t;
    static constexpr auto value = object("😄",&T::field1,
                                         "💔",&T::field2, // wont compile if there are any keys(both unicode and non-unicode) after this (order doesn't matter)
                                         "alpha",&T::field3
    );
};

Thanks for this bug report. Could you share some of the unicode keys that are failing for you? I haven't tested much with unicode keys, so I'll have to look into it and add more unit tests.

Sure, the struct for one of my csv files
struct FishRecord
{
     float Duration;
     float FishSize;
     std::uint8_t Amount;

     std::string FishBaitName;
     std::string SurfaceSlapFishName;
     std::string MoochFishName;
     std::string BuffName;
     std::string FishingSpotPlaceName;

     std::string BiteTypeName;
     std::string CaughtFishName;
     std::string HooksetName;
};

template <>
struct glz::meta<FishRecord>
{
    using T = FishRecord;
    static constexpr auto value = object("上钩的鱼", &T::CaughtFishName, //
                                         "间隔", &T::Duration, //
                                         "尺寸", &T::FishSize, //
                                         "数量", &T::Amount, //
                                         "鱼饵", &T::FishBaitName, //
                                         "拍水的鱼", &T::SurfaceSlapFishName, //
                                         "以小钓大的鱼", &T::MoochFishName, //
                                         "Buff", &T::BuffName, //
                                         "钓场", &T::FishingSpotPlaceName, //
                                         "咬钩类型", &T::BiteTypeName, //
                                         "提钩类型", &T::HooksetName //
    );
};

I went ahead and tested a little bit, "when there are one or more unicode keys in struct" doesn't seem to be the case.
With this struct with more than 2 unicode keys, it can be compiled:
template <>
struct glz::meta<unicode_keys_t>
{
    using T = unicode_keys_t;
    static constexpr auto value = object("简体汉字", &T::field0, // simplified chinese characters
                                         "漢字寿限無寿限無五劫", &T::field1, // traditional chinese characters / kanji
                                         "こんにちはむところやぶらこうじのぶらこうじパイポパイポパイポのシューリンガンシューリンガンのグーリンダイグーリンダイのポンポコピーのポンポコナの", &T::field2, // katakana
                                         "한국인", &T::field3, // korean
                                         "русский", &T::field4, // cyrillic
                                         "สวัสดี", &T::field5, // thai
                                         "english", &T::field6
    );
};

however, when I replace field2 with こんにちはむところやぶら, which basically removes a bunch of katakanas, it just fails to compile

@Nukoooo, I'm looking into this now. I'm wondering how you're using these structures with CSV reading. Glaze is designed to read into containers like std::vector<std::string> or std::deque<float>. Are you trying to read into a structure, like std::vector<FishRecord>? This is a reasonable desire/request, but it is currently not supported. Could you provide an example CSV for one of these use cases? I'm curious that sometimes things are working for you. I converted the types to std::vector<int> and was not able to replicate the unicode issues you are having, so there's something going on with the structure.
If you can clarify your use case a little bit more I think we can resolve this. Thanks!

Active branch here: #671

Ah, I just realized I was providing the struct I used for testing and I'm sorry for that.

Are you trying to read into a structure, like std::vector

No, it was for testing in JSON, because I originally thought it was because of the CSV format so I tried removing std::vector in the struct.
I was reading into std::vector<float>, std::vector<std::uint8_t>, std::vector<std::string> for user-readable data and std::vector<std::int32_t>, std::vector<bool> for raw data:
struct FishRecord
{
    std::vector<float> Duration;
    std::vector<float> FishSize;
    std::vector<std::uint8_t> Amount;

    std::vector<std::string> FishBaitName;
    std::vector<std::string> SurfaceSlapFishName;
    std::vector<std::string> MoochFishName;
    std::vector<std::string> BuffName;
    std::vector<std::string> FishingSpotPlaceName;

    std::vector<std::string> BiteTypeName;
    std::vector<std::string> CaughtFishName;
    std::vector<std::string> HooksetName;
    std::vector<std::string> IsLargeSizeName;
    std::vector<std::string> IsCollectableName;
};

struct FishRecordRaw
{
    std::vector<float> Duration;
    std::vector<float> FishSize;
    std::vector<float> Amount;

    std::vector<std::int32_t> FishBaitIds;
    std::vector<std::int32_t> SurfaceSlapFishIds;
    std::vector<std::int32_t> MoochFishIds;
    std::vector<std::int32_t> BuffFlags;
    std::vector<std::int32_t> FishingSpotPlaceNameId;

    std::vector<std::uint8_t> BiteType;
    std::vector<std::uint32_t> CaughtFishId;
    std::vector<std::uint8_t> Hookset;
    std::vector<bool> IsLargeSize;
    std::vector<bool> IsCollectable;
}

The user readable csv data:
上钩的鱼,间隔,尺寸,数量,鱼饵,拍水的鱼,以小钓大的鱼,Buff,钓场,咬钩类型,提钩类型,大尺寸,收藏品
珊瑚蝶,8.365,12.5,1,万能拟饵,无,无,撒饵,利姆萨·罗敏萨下层甲板,重杆,提钩,否,否
海港鲱,7.586,11.1,1,万能拟饵,无,无,撒饵,利姆萨·罗敏萨下层甲板,重杆,提钩,否,否
猛犸章鱼,26.044,55.6,1,万能拟饵,无,海港鲱,撒饵,利姆萨·罗敏萨下层甲板,鱼王杆,提钩,否,否

The raw data:
上钩的鱼,间隔,尺寸,数量,鱼饵,拍水的鱼,以小钓大的鱼,Buff,钓场,咬钩类型,提钩类型,大尺寸,收藏品
4876,8.365,12.5,1,29717,0,0,2,29,2,1,0,0
4874,7.586,11.1,1,29717,0,0,2,29,2,1,0,0
7707,26.044,55.6,1,29717,0,4874,2,29,3,1,0,0

Thanks for this. I made some progress today figuring it out. It has to do with the naive_map and unicode. Will hopefully have a fix soon.

@Nukoooo, I think I fixed the bug with #670. The issue was with hashing unicode characters, I was casting char bytes to uint64_t, which would make the values enormous for unicode bytes. The fix was to use: uint64_t(uint8_t(character)), this way the uint64_t value is between 0 and 255 as intended.
If you run into more issues, please let me know.


Astro.build Vue Error

I did a test using Astro and the React and Svelte packages loaded fine but the Vue package threw errors re not being a proper es module or named .mjs. Will gather proper errors when back at a computer.
Should try building vue package with type: "module" and also try bringing in Astro as a test app and comment things out until we can figure out what/why we're getting failure.
➜  astro npm run dev

><EMAIL_ADDRESS>dev
> astro dev

  🚀  astro  v0.24.3 started in 349ms

  ┃ Local    http://localhost:3000/
  ┃ Network  use --host to expose

7:41:38 AM [vite] Failed to load source map for /node_modules/agnostic-react/dist/esm/index.css.
[Vue warn]: Failed to resolve component: Button
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.
07:41:39 AM [serve] 500    /
07:41:39 AM [error] TypeError: Invalid value used as weak map key
    at WeakMap.set (<anonymous>)
    at normalizePropsOptions (/Users/roblevin/workspace/opensource/misc/astro/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3345:15)
    at createComponentInstance (/Users/roblevin/workspace/opensource/misc/astro/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6851:23)
    at renderComponentVNode (/Users/roblevin/workspace/opensource/misc/astro/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:197:22)
    at Proxy.ssrRenderComponent (/Users/roblevin/workspace/opensource/misc/astro/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:629:12)
    at _sfc_ssrRender (/src/components/VueCounter.vue:43:31)
    at renderComponentSubTree (/Users/roblevin/workspace/opensource/misc/astro/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:269:13)
    at renderComponentVNode (/Users/roblevin/workspace/opensource/misc/astro/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:214:16)
    at renderVNode (/Users/roblevin/workspace/opensource/misc/astro/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:310:22)
    at renderComponentSubTree (/Users/roblevin/workspace/opensource/misc/astro/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:275:13)

There was another error I can't repro at the moment but message was:
package doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.

NTS Astro docs on adding vue integration are misleading atm. This helped
https://stackblitz.com/github/withastro/astro/tree/latest/examples/framework-vue?file=README.md
npm init astro -- --template framework-vue

I'm trying to repro in agnosticui locally in agnostic-vue/example_astro
npm i ../agnostic-vue-1.0.19.tgz

May be able to work around this by importing the src/* modules directly and including the file extension

Working now -- https://github.com/AgnosticUI/agnosticui/tree/master/agnostic-vue/example_astro


Cannot read property 'isView' of undefined

Hi All,
Here are my dev environment details.

node: v10.2.1
npm: 5.6.0
mysql: 8.0
xmysql: 0.4.5

Tried to generate the API for the a basic database with a single table with two columns. I got the following error:
Call Stack
(node:3444) [DEP0095] DeprecationWarning: timers.enroll() is deprecated. Please use setTimeout instead.
(node:3444) [DEP0096] DeprecationWarning: timers.unenroll() is deprecated. Please use clearTimeout instead.
C:\Users\ashan\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\Parser.js:80
throw err; // Rethrow non-MySQL errors
^
TypeError: Cannot read property 'isView' of undefined
at Xsql.iterateToCacheTables (C:\Users\ashan\AppData\Roaming\npm\node_modules\xmysql\lib\xsql.js:75:74)
at Query.self.pool.query [as _callback] (C:\Users\ashan\AppData\Roaming\npm\node_modules\xmysql\lib\xsql.js:46:14)
at Query.Sequence.end (C:\Users\ashan\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\sequences\Sequence.js:88:24)
at Query._handleFinalResultPacket (C:\Users\ashan\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\sequences\Query.js:139:8)
at Query.EofPacket (C:\Users\ashan\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\sequences\Query.js:123:8)
at Protocol._parsePacket (C:\Users\ashan\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\Protocol.js:279:23)
at Parser.write (C:\Users\ashan\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\Parser.js:76:12)
at Protocol.write (C:\Users\ashan\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\Protocol.js:39:16)
at Socket. (C:\Users\ashan\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\Connection.js:103:28)
at Socket.emit (events.js:182:13)

@ashankasr : looks like it is compatibility with mysql v8.0.
I haven;t tested it with mysql v8.0.
Could you please paste this from your mysql console
describe information_schema.VIEWS;

( .. ran into mysqljs connectivity issue whilst setting up mysql 8. Will give it a try later )

How to solve this problem

I've the same problem, any solution?

@tmlzx @asllamas : could you please paste the error stack you are seeing.
I tried connecting to mysql8 on my machine and encountered following error from mysql module
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
This looks like issue in npm module mysql - and they are resolving this issue here - https://github.com/mysqljs/mysql/pull/1962. Once this is resolved I will have a look.
Note:
Mysql workbench 6.x.x had issues connecting to mysql 8 server. Had to update workbench to latest dev version 8.0.1 to connect.

The error:
` Generating REST APIs at the speed of your thought..
C:\Users\alex\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\Parser.js:80
throw err; // Rethrow non-MySQL errors
^
TypeError: Cannot read property 'isView' of undefined
at Xsql.iterateToCacheTables (C:\Users\alex\AppData\Roaming\npm\node_modules\xmysql\lib\xsql.js:75:74)
at Query.self.pool.query (C:\Users\alex\AppData\Roaming\npm\node_modules\xmysql\lib\xsql.js:46:14)
at Query. (C:\Users\alex\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\Connection.js:502:10)
at Query._callback (C:\Users\alex\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\Connection.js:468:16)
at Query.Sequence.end (C:\Users\alex\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
at Query._handleFinalResultPacket (C:\Users\alex\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\sequences\Query.js:139:8)
at Query.EofPacket (C:\Users\alex\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\sequences\Query.js:123:8)
at Protocol._parsePacket (C:\Users\alex\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\Protocol.js:278:23)
at Parser.write (C:\Users\alex\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\Parser.js:76:12)
at Protocol.write (C:\Users\alex\AppData\Roaming\npm\node_modules\xmysql\node_modules\mysql\lib\protocol\Protocol.js:38:16)`

@asllamas : thank you.
Could you please paste the output of the following mysql query on your machine. This will be helpful.
describe information_schema.VIEWS;
Note:
Strangely, from your and original log in this issue - it appears mysql connection was made successfully(!) and there was an issue with reading views table. However with my setup - it is failing to connect.

Field,Type,Null,Key,Default,Extra
TABLE_CATALOG,varchar(64),YES,,NULL,
TABLE_SCHEMA,varchar(64),YES,,NULL,
TABLE_NAME,varchar(64),YES,,NULL,
VIEW_DEFINITION,longtext,YES,,NULL,
CHECK_OPTION,"enum('NONE','LOCAL','CASCADED')",YES,,NULL,
IS_UPDATABLE,"enum('NO','YES')",YES,,NULL,
DEFINER,varchar(93),YES,,NULL,
SECURITY_TYPE,varchar(7),YES,,NULL,
CHARACTER_SET_CLIENT,varchar(64),NO,,NULL,
COLLATION_CONNECTION,varchar(64),NO,,NULL,

@asllamas:  Thank you. Please check if latest version of xmysql is of any help.
There was an issue accessing isView property which was overlooked (as I am still not clear on how xmysql is able to access mysql 8)
Update or install latest xmysql (0.4.8)
npm update -g xmysql
Please let me know the result.

works perfectly! , thank you

Can you upgrade on docker please? Thank you! <3


aoc10: 80x80 canvas?

I was wondering how you determined from the instructions that the points would all fit within an 80x80 canvas when the message was being displayed?
https://github.com/BurntSushi/advent-of-code/blob/6285296770ee7f47003cf9b55a70e875f331000e/aoc10/src/main.rs#L29-L37

See here: https://github.com/BurntSushi/advent-of-code/commit/bbdce2175ab49494319a8c6af8117806d71ba4cf#r31621663

thanks!


Fixing bug for float mod 1 for fixed point. Adding tests for this.

This PR is currently breaking checkpointing tests


support for tailwind 3

this adds support to tailwind3, drops support to v2. Not sure if that deserves another repo instead. closes #1

Thanks for this pull request! Changes to Tailwind and Tailwind Typography have made this fork unnecessary, so I've removed it from new builds of _tw (starting with the migration to Tailwind 3). I'm going to accept your pull request, add a message to the readme, and then archive this repository.


The set-output command is deprecated and will be disabled soon

Github Actions is deprecating set-output command soon.

Warning: The `set-output` command is deprecated and will be disabled soon.
Please upgrade to using Environment Files.
For more information see:
https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

So following lines need to be reviewed / fixed.
https://github.com/snok/container-retention-policy/blob/main/.github/workflows/clean_packages.yml#L66
https://github.com/snok/container-retention-policy/blob/main/main.py#L509
https://github.com/snok/container-retention-policy/blob/main/main_tests.py#L578-L580

Neat, thanks for letting me know. Would you be interested in creating a fix?


New Error: union narrowing

Bug Report

🔎 Search Terms
union, narrowing
🕗 Version & Regression Information

This changed between versions 4.2.3 and nightly

⏯ Playground Link
Playground link with relevant code
💻 Code
Reduced from https://github.com/ant-design/ant-design

declare const prefixList: string[];
declare const str: string;

let hitPrefix: string | null = null;

prefixList.some(prefixStr => {
  const startStr = str.slice(0, prefixStr.length);
  if (startStr === prefixStr) {
    hitPrefix = prefixStr;
    return true;
  }
  return false;
});

if (hitPrefix !== null) {
  const q = {
    prefix: hitPrefix, // type here was and is `never`
    value: str.slice(hitPrefix!.length), // type here used to be `string | null` but is now `never`
  };
}

🙁 Old behavior
hitPrefix was never as a standalone expression but string | null when dotted into.
🙁 New behavior
hitPrefix is never in both contexts (more consistent).
🙂 Expected behavior
hitPrefix is string, since it may have been set in the some call above and the null check rules out the alternative.

I think @ahejlsberg has been looking at union narrowing.

The change here appears to be that in hitPrefix!.length, when hitPrefix was previously narrowed to never we'd revert to the declared type whereas now we keep the never type. I'm not sure which PR changed this, but our new behavior definitely seems preferable from a consistency standpoint.

@ahejlsberg It's definitely more consistent, but how come neither behavior accounts for the possible assignment of the variable in the lambda?  (We can't know that the lambda will run, but can't know that it won't either, AFAICT.)

The reason we don't account for the assignment in the lambda is #9998.

If not considering the possible assignment is by-design, then the new error is an improvement.


Domain exception while decoding token

I am getting domain whlile decoding token.
{"status":false,"error":{"classname":"DomainException","message":"Unexpected control character found"}}

I'm getting same error

Can you please check if the generated token contains any special character.
Also can you forward me steps to reproduce the issue with sample data / token?

{"status":false,"error":{"classname":"DomainException","message":"Unexpected control character found"}}
Same error


update to cloud

Coverage remained the same at 92.815% when pulling 3ba709e793d8c922052135fbc196a1f8bc18e1cf on cloud-urls into 83200cd95a800469157fba7b68b978181a66c1b5 on development.


[RFC] Use release v0.2.0

@josemarluedke thanks, this update to formula will work!
However, with 0.2.0 neovim introduces pre-built macOS packages, so maybe the formula could be updated to point to that?


Error: Filename specified with batch Tabula-Java usind cmd

@jazzido @batterseapower @marado @mtigas  Hello, Im trying to use Tabula-Java using Using the command line tabula extractor tool. Using this code:
for %i in (c:/Tabular/RealistReportIn/*.pdf) do java -jar tabula.jar -a 113.603,199.283,187.808,255.128 -p 1 "$1" -a 114.368,258.188,187.043,318.623 -p 1 "$1" -a 112.838,321.683,186.278,381.353 -p 1 "$1" -a 115.133,384.413,184.748,471.623 -p 1 "$1" -a 193.163,26.393,250.538,306.383 -p 1 "$1" -a 190.103,307.913,258.953,597.083 -p 1 "$1" -a 264.308,25.628,403.538,301.028 -p 1 "$1" -a 268.898,303.323,411.188,597.848 -p 1 "$1" -a 36.338,24.098,186.278,302.558 -p 2 "$1" -a 35.573,307.148,195.458,592.493 -p 2 "$1" -a 201.578,24.863,299.498,305.618 -p 2 "$1" -a 318.623,25.628,359.168,302.558 -p 2 "$1" -a 441.023,24.863,492.278,305.618 -p 2 "$1" -a 441.788,307.913,492.278,584.078 -p 2 "$1" -b ./c:/Tabular/RealistReportIn/ -n -o ./c:/Tabular/RealistReportOut/%~ni.csv ./RealistReportIn/
Give this error:
Error: Filename specified with batch
Try --help for help
Check this image: https://i.stack.imgur.com/PPhrh.png
Any Help, will be appreciated.
Regards!

Hi @aralom,
Batch mode does not accept a filename as an argument. You're providing one with the "$1" shell argument.

Hello @jazzido how this will be fixed, been honest I'm lost. :(
The "$" i take it from my template generated from tabula.

That looks like a bug in the template that we generate. Try removing the $1s

Already do, like this:
for %i in (c:/Tabular/RealistReportIn/*.pdf) do java -jar tabula.jar -a 113.603,199.283,187.808,255.128 -p 1 -a 114.368,258.188,187.043,318.623 -p 1 -a 112.838,321.683,186.278,381.353 -p 1 -a 115.133,384.413,184.748,471.623 -p 1 -a 193.163,26.393,250.538,306.383 -p 1 -a 190.103,307.913,258.953,597.083 -p 1 -a 264.308,25.628,403.538,301.028 -p 1 -a 268.898,303.323,411.188,597.848 -p 1 -a 36.338,24.098,186.278,302.558 -p 2 -a 35.573,307.148,195.458,592.493 -p 2 -a 201.578,24.863,299.498,305.618 -p 2 -a 318.623,25.628,359.168,302.558 -p 2 -a 441.023,24.863,492.278,305.618 -p 2 -a 441.788,307.913,492.278,584.078 -p 2 -b ./c:/Tabular/RealistReportIn/ -n -o ./c:/Tabular/RealistReportOut/%~ni.csv ./RealistReportIn/
And Same message :/

I think you don't need the for loop if you're using batch mode.
Jeremy B. Merrill
Sent from my mobile device
On Thu, Nov 22, 2018, 10:54 PM aralom<EMAIL_ADDRESS>wrote:

Already do, like this:
for %i in (c:/Tabular/RealistReportIn/*.pdf) do java -jar tabula.jar -a
113.603,199.283,187.808,255.128 -p 1 -a 114.368,258.188,187.043,318.623 -p
1 -a 112.838,321.683,186.278,381.353 -p 1 -a
115.133,384.413,184.748,471.623 -p 1 -a 193.163,26.393,250.538,306.383 -p 1
-a 190.103,307.913,258.953,597.083 -p 1 -a 264.308,25.628,403.538,301.028
-p 1 -a 268.898,303.323,411.188,597.848 -p 1 -a
36.338,24.098,186.278,302.558 -p 2 -a 35.573,307.148,195.458,592.493 -p 2
-a 201.578,24.863,299.498,305.618 -p 2 -a 318.623,25.628,359.168,302.558 -p
2 -a 441.023,24.863,492.278,305.618 -p 2 -a 441.788,307.913,492.278,584.078
-p 2 -b ./c:/Tabular/RealistReportIn/ -n -o
./c:/Tabular/RealistReportOut/%~ni.csv ./RealistReportIn/
And Same message :/
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tabulapdf/tabula-java/issues/262#issuecomment-441152017,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAhdmgDZHR-ZEdjaTPYVeXauH41KKLRzks5ux3GEgaJpZM4YtxQF
.


add seaport

deployment: https://okgraph.xyz/?q=messari%2Fopensea-seaport-ethereum

@this-username-is-taken let me add these fields for all nft marketplace in one PR

Looks really good to me 👍
Are there a list of edge cases and transactions for those cases you have on hand? Maybe it might be worth documenting so they can be found easily?

check out comments of method handleOrderFulfilled - I have tried my best to put almost an essay there 😆


does not build OOTB

missing repository for log4j 2.1 stuff, log4j-core is refererred to as "2.1.0" although "2.1" is the correct (?!?) published version, also bindings contain windows paths , which prevent building on other (normal) operating systems. I suggest adding an automatic build pipeline.

An automatic build pipeline exists in Kela, and the code builds normally there (Jenkins running on Linux). However, our Nexus has a version 2.1.0 of this library available, perhaps it was introduced manually at some point. Will review this dependency.

@itmo thank you for indicating the Windows paths in bindings. Which operating system do you use? So far, we have not faced problems with them (schemaLocation="..\Schemas\POCD_MT000040_Fi.xsd") on Windows on Linux. Will change the path anyway.

Thats why there should also be  a basic build pipeline AFTER publishing the code. I use Fedora 25.

Fixed.


Icons not truly centered on web

As with you I used https://github.com/NikSWE/flutter_brand_icons but ran in to the issue with null safety. Fortunately I came over your comment on an issue on that repo that led me to this repo https://github.com/NikSWE/flutter_brand_icons/issues/1#issuecomment-772851138. So I know you took inspiration from that repo. Unfortunately this repo is not centering the icons as the other repo did. This is not a breaking issue, but annoying.
flutter_brand_icons:

this repo:

Both libraries just export IconData, so I highly doubt that this is an issue with the package.
If you'd like to provide an minimal example of the error you encounter, I will be more than happy to take a look :smile:

Thanks for the fast reply. I have had a lot on my plate lately and haven't had the chance to look into this before now. After doing some testing it looks like this only is a problem on web (which is where I am using the package). Here is a minimal example:
import 'package:flutter/material.dart';
import 'package:flutter_brand_icons/flutter_brand_icons.dart';
import 'package:simple_icons/simple_icons.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text("Icon Demo"),
        ),
        body: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                InkedIconButton(
                  icon: BrandIcons.apple,
                ),
                SizedBox(
                  width: 1,
                ),
                InkedIconButton(
                  icon: SimpleIcons.apple,
                ),
              ],
            ),
            SizedBox(
              height: 10,
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                InkedIconButton(
                  icon: BrandIcons.googleplay,
                ),
                SizedBox(
                  width: 1,
                ),
                InkedIconButton(
                  icon: SimpleIcons.googleplay,
                ),
              ],
            )
          ],
        ),
      ),
    );
  }
}

class InkedIconButton extends StatelessWidget {
  final IconData icon;

  const InkedIconButton({Key key, this.icon}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Ink(
      decoration: ShapeDecoration(
        color: Colors.black,
        shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.all(Radius.circular(10))),
      ),
      child: IconButton(
        iconSize: 35,
        icon: Icon(
          icon,
          color: Colors.white,
        ),
        onPressed: () {},
      ),
    );
  }
}

Thanks for limiting the issue to flutter web.
Because the library just exports IconData and it does not differenciate between web or app, the only explanation I can think if is that there is an issue directly with the flutter web framework.
But I agree, that is is weird that such a problem did not occur with the brand_icon.
Maybe  @NikSWE (author of brand_icons) has an idea.

Let's hope he answers!

It's the font file.  Had the same issue with flutter web and html renderer.  Issue doesn't appear with canvaskit.  To validate it's something with the ttf file, I can download the SVGs I want from simpleicons.org, upload them to fluttericon.com, download the result, and use them as-is with the rendering as expected in both html and canvaskit rendering.

It's the font file

I agree with @jmarkham's explanation, also @jlnrrg how are you converting the svg from simpleicons to ttf file? (I've used icomoon to convert the svg's set to ttf file, manual process)

if we could use svg instead of ttf on flutter web that would be great, would suggest @jlnrrg to ask this on the flutter repo for better guidance.

@Trulsmatias apart from the two icons mentioned which other icons are showing such difference ?

I only use those two. Have not checked other icons.

@Trulsmatias @jmarkham in the latest version 6.1.0 the issue should have been fixed.
Can you please confirm, that the error is also resolved on your side?

This is how it looks like now. Red is SimpleIcons, blue is BrandIcons.
Versions in pubspec.yaml
  simple_icons: ^6.1.0
  flutter_brand_icons: 1.1.0

web - canvaskit. Blue looks correct as it gets all the way to the top edge

web - html. Even worse unfortunately.

web - html - centered to better visualize the problem. Red goes outside the screen.

Double-checked on mobile and the problem was there too, so maybe the scope of this issue should be reverted back to including mobile again:
Android emulator. Blue gets all the way to the top, red doesn't.

iPhone simulator. This was interesting, on all the other images blue was higher than red. On iPhone this was reversed, so red overshoots outside the screen. Again blue reaches the edge as expected.

Code I used:
import 'package:flutter_brand_icons/flutter_brand_icons.dart';
import 'package:simple_icons/simple_icons.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    const double iconSize = 400;
    return MaterialApp(
      home: Scaffold(
        body: Stack(
          children: [
            Icon(
              SimpleIcons.apple,
              color: Colors.red,
              size: iconSize,
            ),
            Icon(
              BrandIcons.apple,
              color: Colors.blue,
              size: iconSize,
            ),
          ],
        ),
      ),
    );
  }
}

@Trulsmatias thank you for your feedback. I was able to reproduce the issue.
@NikSWE I tried your flutter_brand_icons package with the most recent SimpleIcons.ttf file and it had the same missalignment as mine. So the question is, if you created the brand.ttf of your package yourself or if it was just a renamed SimpleIcons.ttf of that year (3 years ago).

I think it would be better to raise this concern on the simpleicons repo, as this issue is in the font file. Could be that they have fixed this issue and not updated the font file.

@NikSWE thanks for the fast answer.
Can you go a little bit more into detail if I am not correct?
I would assume it was like this:

download all simple-icons svgs
import them all in icomoon
export icomoon as font

Correct, this is the process I followed to create the TTF font file

you could try one thing just create another font file containing only the apple icon and then import that in the code to see the difference between all the three

Because I am always searching for the correct issue:
I escalated the problem back then and now it is opened again at simple-icons.
https://github.com/simple-icons/simple-icons-font/issues/113


RouteGeneric types (reply typings)

Right now I use the following pattern to describe a route:
interface Post
  extends NowRequestHandler<{
    Body: MyRequestBody;
    Headers: MyRequestHeaders;
    Params: MyRequestParams;
    Querystring: MyRequestQuerystring;
  }> {}

// POST /path/to/this/route
export const POST: Post = async (request, reply): Promise<MyReply> => {
  return { something: "something" };
};

POST.opts = { /* options here */ };

I don't know yet how feasible that would be, but it would be pretty neat to have the NowRequestHandler's RequestGeneric replaced by a RouteGeneric extending Fastify's RouteGenericInterface instead of RequestGenericInterface.
Maybe it should be a new NowRouteHandler interface?
This would make the following snippet work, which would allow a better separation of route interfaces and route definitions, and would be a bit easier to read in case the MyReply interface was embedded instead of imported from somewhere else.
interface Post
  extends NowRequestHandler<{ // or NowRouteHandler
    Body: MyRequestBody;
    Headers: MyRequestHeaders;
    Params: MyRequestParams;
    Querystring: MyRequestQuerystring;
    Reply: MyReply;
  }> {}

// POST /path/to/this/route
export const POST: Post = async (request, reply) => {
  return { something: "something" };
};

POST.opts = { /* options here */ };

What do you think?

Didn't take a look on RouteGenericInterface yet, but sounds legit
feel free to suggest a PR so I could jump in and push it forward


Checkbox changes value to empty string on Blur

I have a simple checkbox field:
<Field
  name="isCompleteReset"
  component={Checkbox}
  label="alle anderen Mittel auf 0 setzen"
/>

When the checkbox is selected, everything is fine.
However, when the user unchecks the box, then at first the value changes to false as expected, but when the focus is moved to another component, the value changes to an empty string.

Any way to keep the boolean value?

I'm facing the same issue.
Because I was unable to get a better answer, here is what I did:
import _ from 'lodash';

<Field
    name="isActive"
    component="input"
    type="checkbox"
    normalize={(v) => { return _.isBoolean(v) ? v : false; }}
/>

This is also related to: https://github.com/erikras/redux-form/issues/2857 & https://github.com/erikras/redux-form/pull/2863

Maybe a good solution here would be to provide a BooleanField component to use in place of Field when the consumer requires their values to be either true or false. This could default to an initialValue of false (unless one already existed on the form) and normalize its values to either true or false. Thoughts?

I agree with @TomMahle that since this has caused so much confusion with things going back and forward on how we should handle checkboxes (true/false values) it's probably better to introduce some new concept that encapsulates this behavior instead of making changes in core that either breaks peoples forms or introduces new unexpected behavior. Personally I've encapsulated this myself in a custom ReduxFormCheckBox component that wraps a Field with a CheckBox and uses normalization to guard myself from these breaking changes but I get that that's not for everyone. Keep up that great work!!

Same here.. I used this as fix:
<Field     name="isActive"     component="input"     type="checkbox"     normalize={(v) => !!v} />


Standalone... requires Facade

Hello,
I have been exploring the most starred options in what regards VAT validation and company information retrieval and I've come up with your repository.
As I've moved forward the documentation and the installation I have faced some problems regarding your Facade implementation.
I have a project where I am using Yii2 as the framework. From what I've seen the main focus of this repo is Laravel and Standalone options. I would guess that Standalone would work for me, however my framework does not seem to accept facades as Laravel does.
I would like to ask, if removing the Facade Pattern dependency would eventually come to the roadmap?
Thanks and congrats for the great work!

Hello,
can you tell me where you found the facade pattern dependency? I know that this library comes with a facade than can be dropped into an existing Laravel application, but it is by no means a requirement/dependency and the whole code works just fine without Laravel at all.

Hey again.
As the time you replied, I have just noticed I had imported the wrong dependency
Mpociot\VatCalculator\Facades\VatCalculator instead of Mpociot\VatCalculator\VatCalculator and that's why it was reporting a missing dependency.
Looks like solved, I guess.
Thanks once again!

Hi thanks @IvoPereira for your comment on PHPStorm's autocompletion, I got fooled by the exact same issue, great you provided your answer here!
However maybe it is an idea to check why the autocompletion does not work with mpociot/vatcalculator where it does with other repo's for laravel.

I have to correct myself: I have to use use Mpociot\VatCalculator\Facades\VatCalculator;  to run code like this:
$grossPrice = VatCalculator::calculateNet( 24.00, 'DE' );

Otherwise I have to use use Mpociot\VatCalculator\VatCalculator and then:
$vatCalc = new VatCalculator();
$grossPrice = $vatCalc->calculateNet( 24.00, 'DE' );

Information:

Plain Laravel 5.6.*
did composer require mpociot/vat-calculator
then above code


Honda: Port 2024 Integra

Checklist

[ ] added entry to CAR in selfdrive/car/*/values.py and ran selfdrive/car/docs.py to generate new docs
[x] test route added to routes.py
[x] route with openpilot: 3f8ae015ce70365f/0000002b--d07abeff02
[x] route with stock system: 3f8ae015ce70365f/0000002d--eae3aa3f16
[X] car harness used (if comma doesn't sell it, put N/A): Bosch B

Requires

[ ] https://github.com/commaai/openpilot/pull/31022
[ ] https://github.com/commaai/panda/pull/1814
[ ] https://github.com/commaai/panda/pull/1930
[ ] https://github.com/commaai/opendbc/pull/1034

Have looked this over, and as @vanillagorillaa outlined, it boils down into three basic pieces:

HONDA_BOSCH_RADARLESS button spam fixes, @csouers is reworking this, not Integra specific and not a blocker
Manual trans support, for which I'll open a standalone PR, likewise not Integra specific and not a blocker
A simple HONDA_BOSCH_RADARLESS model port with a different wheel speed message, will work on this

I have manual transmission stuff in an accord branch. It's pretty simple. Never tried op long though. Will post it here when I have a moment today.

The code changes are meh but i think you'll get the gist. Lots of driving (years) on this w/ stock ACC. Mainly used on the 2.0l. Also the 1.5l too, IIRC.
car
https://github.com/csouers/openpilot/commit/93cb7882c3e9db98f144fc2e2afce6384c37a563?diff=split

set up gearbox for the shifter "positions"
only check for wrong gear when the clutch is engaged/pedal is at rest. OP throws the wrongGear event in between gears otherwise.
set the TransmissionType to manual. I did the others here but they are probably out of scope.
include the clutch bits; there are two on the accord (at least the 2.0l).

The first triggers at the very beginning of the stroke which the ACC uses to stop accelerating.

The second triggers much further down the stroke and is likely the neutral safety switch.

Probably need to make the clutchPressed part of the pedalPressed event. I did at one time but didn't bother here.
dbc
https://github.com/csouers/opendbc/commit/79fe33a013420ca67c0b7bc75634323e78ad1ced


Sources have its own package

so that we can group ingestion, usage, etc in a single package instead of having a ton of files around in database... etc

Lets not keep opening new github issues, Instead create a epic and as a task


FrayCompoundState : change ready ordering for substate

Welcome back.
Didn't play too much with new features yet, but I appreciate the get_node function. Reduce my code size by a lot.
here is my change for the ready function :
func ready(context: Dictionary) -> void:
	if not context.is_read_only():
		context.make_read_only()
	_ready_impl(context) # <--- new emplacement
	for state_name in _states:
		var state: FrayState = _states[state_name]

		if state is FrayCompoundState:
			state.ready(context)
		else:
			state._ready_impl(context)
        #_ready_impl(context) # <--- Changed ordering

I use _ready_impl to create new states and keep things together in the code.
Substate are created in _ready_impl, then each of them are made ready afterward.
Thank you

There is a _enter_tree_impl method which is invoked when a state is added to the hierarchy. You should be able to create new sub-states within this... That is unless you're using the context as part of your setup. Though i'd argue the sub-states could just read from the context themselves.
Let me know your thoughts. I'm not opposed to changing the ready order since, at this moment, I don't see any downsides to readying the parent then the children. I just don't believe this change is necessary for what you're trying to do.

I tried the _enter_tree_impl, however at this point not all nodes are ready, so I am missing some content when initialized. Then it become fighting my node tree order of initialization..
I tried to fixes this by modifying the _ready part, and it work correctly so I'm quite happy with this.


Polymer doesn't handle Boolean attributes properly

This issue was originally filed by @jolleekin

What steps will reproduce the problem?

Create a new web application with Polymer
Create a polymer element with one published Boolean property called "disabled"

    /// This element is intended to wrap a label and an input/textarea.
    /// The element exposes a Boolean attribute for styling and controlling the input/textarea.
    @CustomTag('my-field')
    class MyField extends PolymerElement {
      @published bool disabled = false;
      MyField.created() : super.created() {
      }
      void disabledChanged() {
        print('disabled = $disabled');
        var e = this.querySelector('input, textarea');
        if (e != null) e.disabled = disabled;
      }
    }

Use the element in the template of another polymer element

    <polymer-element name="click-counter" attributes="count">
      <template>

          <button on-click="{{increment}}">Click me</button>

          (click count: {{count}})
          <my-field disabled?="{{ count % 2 == 1 }}">
            Name:
            <input type="text" />
          </my-field>

      </template>

    </polymer-element>

Add some CSS to style my-field element

    html /deep/ my-field[disabled] * {
      color: #999;
    }

Run the app

Click the button several times

What is the expected output? What do you see instead?
EXPECTED: When the button is clicked,

MyField.disabledChanged is called
The disability of the input is toggled
The colors of both the input and label are toggled

ACTUAL: When the button is clicked,

MyField.disabledChanged is **NOT** called
The disability of the input is **NOT** toggled
The colors of both the input and label are toggled

What version of the product are you using? On what operating system?
polymer 0.11.0+5
Please provide any additional information below.
The source code is attached.

Attachment:
test.zip (3.30 MB)

This issue has been moved to dart-lang/polymer-dart#232.


References to VDI (old, amd-internal name) in code.

hip-config.cmake.in (and possibly, other files as well) have several references to VDI. E.g.:
https://github.com/ROCm-Developer-Tools/HIP/blob/master/hip-config.cmake.in#L114
Since VDI is an old/internal name for what is publicly known as ROCCLR, this is confusing for users. I would strongly suggest to bring the names in the code up-to-date with the public name for the runtime.

@rwvo github/master branch is not being updated. Please refer to rocm-3.7.x branch.


License, copyright and changing the site?

Three questions

No license fee? if commercial use?
Any cost if remove PH7cms logo/copyright?
Free to modify any thing if ask programmer?
thanks

Den

@rental66 Hi !
https://github.com/pH7Software/pH7-Social-Dating-CMS/wiki/Can-I-resell-the-software-and-make-money-with-it%3F
Go out and Google "GPL" and you'll get your answer.

The software is published under General Public License 3 or later
https://github.com/pH7Software/pH7-Social-Dating-CMS#-license
As you can understamd, the copyright in the source files cannot be removed.
Hope it helps! Enjoy your weekend :) Good luck!
Any mentions of pH7CMS or contributions are also really welcome if you appreciate the hard work behind the software. Thank you in advance for considering pH7CMS. I hope it will help you making your dream service!


Apply referrer customizations to document.referrer

Currently, referrer customizations (via the referrer-directive flag) only apply to the HTTP headers, and not to document.referrer. This is problematic for a few reasons:

This mismatch makes the browser easily fingerprintable when the flag is set to anything but the default value.
document.referrer can used to trigger malicious code for certain referrers.
The current behaviour is simply quite counterintuitive.

This PR addresses that by adapting the existing referrer customization logic to the Referrer::SanitizeForRequest function. I've only applied it to the second overload of that function, as adding it to the first one didn't seem to impact anything.
EDIT: This PR now uses a different approach, where all locations that check enable_referrers (or a similar variable) are modified to call a new sanitize_referrer function, which checks a few newly added feature flags, namely:

remove-cross-origin-referrers
minimal-referrers

The reason for splitting the old referrer-directive into multiple feature flags was because other threads need to check values of these flags, which is something that switches don't support.
In addition, I've added a remove-referrers  feature flag, which should behave exactly how --enable-features=NoReferrers behaves.
These changes can be tested by querying document.referrer in devtools with the appropriate flag set.

Will it somehow impact performance?

Merging this before the update to 113 will likely make the latter need rebasing. Should we merge it before or after that one?

Yes, it would be best to hold off on merging this until 113 is merged.  This PR shouldn't need any changes to be applied afterwards.

The new changes look good to me and worked as expected in my build.
The only thing I can suggest is to update docs/flags.md to remove the old flag and add the new ones.

For me compilation fails with ../../net/base/referrer_sanitizer.h:9:10: fatal error: 'services/network/public/mojom/referrer_policy.mojom-shared.h' file not found, did that regress in the most recent release?

It looks like net/BUILD.gn is missing //services/network/public/mojom in the public_deps, and I was lucky to have that header generated before getting to the new files.  It might be a better idea to move them to content/public/common/ instead.

It seems the new location has a similar problem:
In file included from ../../src/chromium/content/public/common/referrer_sanitizer.cc:7:
../../src/chromium/chrome/common/chrome_features.h:18:10: fatal error: 'chrome/common/buildflags.h' file not found

I wasn't aware that chrome_features relied on a generated header before suggesting that location. Since this relies on the existing noreferrers flag it might be better to move the new files to chrome/common.  This time I tested the idea to be sure that wouldn't also run in to problems:
diff
--- a/patches/extra/ungoogled-chromium/add-flags-for-referrer-customization.patch
+++ b/patches/extra/ungoogled-chromium/add-flags-for-referrer-customization.patch
@@ -17,6 +17,25 @@
 +     "Removes all cross-origin referrers and strips same-origin referrers down to the origin. Has lower precedence than remove-cross-origin-referrers. ungoogled-chromium flag.",
 +     kOsAll, FEATURE_VALUE_TYPE(features::kMinimalReferrers)},
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
+--- a/chrome/common/BUILD.gn
++++ b/chrome/common/BUILD.gn
+@@ -143,6 +143,8 @@ static_library("common_lib") {
+     "pref_names_util.cc",
+     "pref_names_util.h",
+     "ref_counted_util.h",
++    "referrer_sanitizer.cc",
++    "referrer_sanitizer.h",
+     "search/instant_mojom_traits.h",
+     "search/instant_types.cc",
+     "search/instant_types.h",
+@@ -267,6 +269,7 @@ static_library("common_lib") {
+     "//components/no_state_prefetch/common:mojo_bindings",
+     "//components/page_load_metrics/common:common",
+     "//components/password_manager/content/common",
++    "//services/network/public/mojom",
+   ]
+
+   if (enable_pdf) {
 --- a/chrome/common/chrome_features.cc
 +++ b/chrome/common/chrome_features.cc
 @@ -842,6 +842,14 @@ BASE_FEATURE(kNewMacNotificationAPI,
@@ -47,44 +66,8 @@
  #if BUILDFLAG(IS_WIN)
  COMPONENT_EXPORT(CHROME_FEATURES)
  BASE_DECLARE_FEATURE(kNotificationDurationLongForRequireInteraction);
---- a/content/browser/renderer_host/navigation_request.cc
-+++ b/content/browser/renderer_host/navigation_request.cc
-@@ -119,6 +119,7 @@
- #include "content/public/common/content_features.h"
- #include "content/public/common/content_switches.h"
- #include "content/public/common/network_service_util.h"
-+#include "content/public/common/referrer_sanitizer.h"
- #include "content/public/common/url_constants.h"
- #include "content/public/common/url_utils.h"
- #include "mojo/public/cpp/system/data_pipe.h"
-@@ -425,10 +426,10 @@ void AddAdditionalRequestHeaders(
-       net::HttpRequestHeaders::kUserAgent,
-       ComputeUserAgentValue(*headers, user_agent_override, browser_context));
-
--  if (!render_prefs.enable_referrers) {
--    *referrer =
--        blink::mojom::Referrer(GURL(), network::mojom::ReferrerPolicy::kNever);
--  }
-+  auto sanitized_referrer = content::sanitize_referrer(
-+      referrer->url, url, referrer->policy, render_prefs.enable_referrers);
-+  *referrer = blink::mojom::Referrer(std::move(sanitized_referrer.first),
-+                                     std::move(sanitized_referrer.second));
-
-   // Next, set the HTTP Origin if needed.
-   if (NeedsHTTPOrigin(headers, method)) {
---- a/content/public/common/BUILD.gn
-+++ b/content/public/common/BUILD.gn
-@@ -192,6 +192,8 @@ source_set("common_sources") {
-     "pseudonymization_util.h",
-     "referrer.cc",
-     "referrer.h",
-+    "referrer_sanitizer.cc",
-+    "referrer_sanitizer.h",
-     "referrer_type_converters.cc",
-     "referrer_type_converters.h",
-     "resource_request_blocked_reason.h",
 --- /dev/null
-+++ b/content/public/common/referrer_sanitizer.cc
++++ b/chrome/common/referrer_sanitizer.cc
 @@ -0,0 +1,48 @@
 +// Copyright 2023 The ungoogled-chromium Authors
 +// Use of this source code is governed by a BSD-style license that can be
@@ -95,7 +78,7 @@
 +#include "chrome/common/chrome_features.h"
 +#include "url/origin.h"
 +
-+namespace content {
++namespace referrer_sanitizer {
 +
 +static GURL sanitize_referrer_internal(const GURL& origin,
 +                                       const GURL& destination) {
@@ -133,51 +116,75 @@
 +          referrer_policy};
 +}
 +
-+}  // namespace content
++}  // namespace referrer_sanitizer
 --- /dev/null
-+++ b/content/public/common/referrer_sanitizer.h
-@@ -0,0 +1,31 @@
++++ b/chrome/common/referrer_sanitizer.h
+@@ -0,0 +1,30 @@
 +// Copyright 2023 The ungoogled-chromium Authors
 +// Use of this source code is governed by a BSD-style license that can be
 +// found in the LICENSE file.
 +
-+#ifndef CONTENT_PUBLIC_COMMON_REFERRER_SANITIZER_H_
-+#define CONTENT_PUBLIC_COMMON_REFERRER_SANITIZER_H_
++#ifndef CHROME_COMMON_REFERRER_SANITIZER_H_
++#define CHROME_COMMON_REFERRER_SANITIZER_H_
 +
 +#include <string>
 +#include <utility>
-+#include "content/common/content_export.h"
 +#include "net/url_request/referrer_policy.h"
 +#include "services/network/public/mojom/referrer_policy.mojom-shared.h"
 +#include "url/gurl.h"
 +
-+namespace content {
++namespace referrer_sanitizer {
 +
-+CONTENT_EXPORT std::pair<GURL, net::ReferrerPolicy> sanitize_referrer(
++std::pair<GURL, net::ReferrerPolicy> sanitize_referrer(
 +    const GURL& origin,
 +    const GURL& destination,
 +    const net::ReferrerPolicy& referrer_policy,
 +    bool enable_referrers);
 +
-+CONTENT_EXPORT std::pair<GURL, network::mojom::ReferrerPolicy>
-+sanitize_referrer(const GURL& origin,
-+                  const GURL& destination,
-+                  const network::mojom::ReferrerPolicy& referrer_policy,
-+                  bool enable_referrers);
++std::pair<GURL, network::mojom::ReferrerPolicy> sanitize_referrer(
++    const GURL& origin,
++    const GURL& destination,
++    const network::mojom::ReferrerPolicy& referrer_policy,
++    bool enable_referrers);
 +
-+}  // namespace content
++}  // namespace referrer_sanitizer
 +
-+#endif  // CONTENT_PUBLIC_COMMON_REFERRER_SANITIZER_H_
++#endif  // CHROME_COMMON_REFERRER_SANITIZER_H_
+--- a/content/browser/renderer_host/navigation_request.cc
++++ b/content/browser/renderer_host/navigation_request.cc
+@@ -39,6 +39,7 @@
+ #include "base/types/pass_key.h"
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
++#include "chrome/common/referrer_sanitizer.h"
+ #include "components/attribution_reporting/os_registration.h"
+ #include "components/attribution_reporting/os_support.mojom.h"
+ #include "content/browser/attribution_reporting/attribution_manager.h"
+@@ -425,10 +426,10 @@ void AddAdditionalRequestHeaders(
+       net::HttpRequestHeaders::kUserAgent,
+       ComputeUserAgentValue(*headers, user_agent_override, browser_context));
+
+-  if (!render_prefs.enable_referrers) {
+-    *referrer =
+-        blink::mojom::Referrer(GURL(), network::mojom::ReferrerPolicy::kNever);
+-  }
++  auto sanitized_referrer = referrer_sanitizer::sanitize_referrer(
++      referrer->url, url, referrer->policy, render_prefs.enable_referrers);
++  *referrer = blink::mojom::Referrer(std::move(sanitized_referrer.first),
++                                     std::move(sanitized_referrer.second));
+
+   // Next, set the HTTP Origin if needed.
+   if (NeedsHTTPOrigin(headers, method)) {
 --- a/content/renderer/render_frame_impl.cc
 +++ b/content/renderer/render_frame_impl.cc
-@@ -71,6 +71,7 @@
- #include "content/public/common/content_switches.h"
- #include "content/public/common/extra_mojo_js_features.mojom.h"
- #include "content/public/common/isolated_world_ids.h"
-+#include "content/public/common/referrer_sanitizer.h"
- #include "content/public/common/url_constants.h"
- #include "content/public/common/url_utils.h"
- #include "content/public/renderer/content_renderer_client.h"
+@@ -52,6 +52,7 @@
+ #include "build/chromeos_buildflags.h"
+ #include "cc/base/switches.h"
+ #include "cc/trees/ukm_manager.h"
++#include "chrome/common/referrer_sanitizer.h"
+ #include "content/common/associated_interfaces.mojom.h"
+ #include "content/common/content_navigation_policy.h"
+ #include "content/common/content_switches_internal.h"
 @@ -4249,10 +4250,13 @@ void RenderFrameImpl::WillSendRequestInt

    request.SetHasUserGesture(frame_->HasTransientUserActivation());
@@ -186,7 +193,7 @@
 -    request.SetReferrerString(WebString());
 -    request.SetReferrerPolicy(network::mojom::ReferrerPolicy::kNever);
 -  }
-+  auto sanitized_referrer = content::sanitize_referrer(
++  auto sanitized_referrer = referrer_sanitizer::sanitize_referrer(
 +      WebStringToGURL(request.ReferrerString()),
 +      WebStringToGURL(request.Url().GetString()), request.GetReferrerPolicy(),
 +      GetWebView()->GetRendererPreferences().enable_referrers);
@@ -198,14 +205,14 @@
  void RenderFrameImpl::DidLoadResourceFromMemoryCache(
 --- a/services/network/network_service_network_delegate.cc
 +++ b/services/network/network_service_network_delegate.cc
-@@ -13,6 +13,7 @@
+@@ -12,6 +12,7 @@
+ #include "base/strings/utf_string_conversions.h"
  #include "base/types/optional_util.h"
  #include "build/build_config.h"
++#include "chrome/common/referrer_sanitizer.h"
  #include "components/domain_reliability/monitor.h"
-+#include "content/public/common/referrer_sanitizer.h"
  #include "net/base/features.h"
  #include "net/base/isolation_info.h"
- #include "net/base/load_flags.h"
 @@ -59,9 +60,14 @@ NetworkServiceNetworkDelegate::~NetworkS
  void NetworkServiceNetworkDelegate::MaybeTruncateReferrer(
      net::URLRequest* const request,
@@ -214,9 +221,9 @@
 -    request->SetReferrer(std::string());
 -    request->set_referrer_policy(net::ReferrerPolicy::NO_REFERRER);
 +
-+  auto sanitized_referrer =
-+      content::sanitize_referrer(GURL(request->referrer()), effective_url,
-+                                 request->referrer_policy(), enable_referrers_);
++  auto sanitized_referrer = referrer_sanitizer::sanitize_referrer(
++      GURL(request->referrer()), effective_url,
++      request->referrer_policy(), enable_referrers_);
 +  if (sanitized_referrer.first != effective_url.spec() ||
 +      sanitized_referrer.second != request->referrer_policy()) {
 +    request->SetReferrer(sanitized_referrer.first.spec());
@@ -230,7 +237,7 @@
  #include "base/ranges/algorithm.h"
  #include "base/synchronization/waitable_event.h"
  #include "base/task/single_thread_task_runner.h"
-+#include "content/public/common/referrer_sanitizer.h"
++#include "chrome/common/referrer_sanitizer.h"
  #include "mojo/public/cpp/bindings/pending_remote.h"
  #include "services/network/public/cpp/wrapper_shared_url_loader_factory.h"
  #include "third_party/blink/public/common/loader/loader_constants.h"
@@ -247,7 +254,7 @@
 -    request.SetReferrerString(WebString());
 -    request.SetReferrerPolicy(network::mojom::ReferrerPolicy::kNever);
 -  }
-+  auto sanitized_referrer = content::sanitize_referrer(
++  auto sanitized_referrer = referrer_sanitizer::sanitize_referrer(
 +      WebStringToGURL(request.ReferrerString()),
 +      WebStringToGURL(request.Url().GetString()), request.GetReferrerPolicy(),
 +      renderer_preferences_.enable_referrers);
@@ -263,7 +270,7 @@
  #include "base/task/sequenced_task_runner.h"
  #include "base/task/single_thread_task_runner.h"
  #include "base/task/thread_pool.h"
-+#include "content/public/common/referrer_sanitizer.h"
++#include "chrome/common/referrer_sanitizer.h"
  #include "services/network/public/cpp/wrapper_shared_url_loader_factory.h"
  #include "third_party/blink/public/common/features.h"
  #include "third_party/blink/public/common/loader/loader_constants.h"
@@ -283,7 +290,7 @@
 -    request.SetReferrerString(WebString());
 -    request.SetReferrerPolicy(network::mojom::ReferrerPolicy::kNever);
 -  }
-+  auto sanitized_referrer = content::sanitize_referrer(
++  auto sanitized_referrer = referrer_sanitizer::sanitize_referrer(
 +      WebStringToGURL(request.ReferrerString()),
 +      WebStringToGURL(request.Url().GetString()), request.GetReferrerPolicy(),
 +      renderer_preferences_.enable_referrers);

@implicitfield  All in all was the original functionality preserved?

@implicitfield Awesome, thanks!


Slot Controller

This PR adds a slot controller that allows <slot> tags to be used by Web Components that have disabled their Shadow DOM. The existing simple table and modal components have been updated to use the controller.

@alancleary this looks good to me. I really like this, "It also has the added benefit that you can use any element as your slot! This is nice when you're trying to slot content into an element your not allowed to put a slot in (see the simple table component for an example)."


fix(curriculum): use numbers in english challenges

We were getting gatsby warnings about types in the english curriculum:

This fixes the challenge files and forces the types.
Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #XXXXX

Want to take a quick look at this one @Sembauke - I changed some of the challenge schema. It's saying to notify mobile team.

blocked until we get the go-ahead from the mobile team


Separate device/window render

This PR lets sites render something to the window and something
different to the HMD.
You can test using the following sites. (Press P to load into VR.)
A standard VR site: http://emkolar.ninja
A site that renders differently in the HMD than the window<EMAIL_ADDRESS>NOTE: if a user site uses window.RAF instead of device.RAF while VR is enabled, the HMD will be one frame behind, which is pretty jarring. You can see this for yourself in the first site.
I'm not sure how to do better than this. Thoughts?

I think this PR is stale and would need a rethink.


Windows Installer: Add option to add Oni to %PATH%

Oni should be available on the %PATH% in Windows, so that a user can type oni from a terminal and start up Oni.
The installer currently provides no option to do this - we should add a checkbox / option that states Add Oni to %PATH%

This was added with #613.

Verified it's working for me with the latest Windows installer - nice!

I guess you can't claim the bounty until the issue is closed - bountysource should give you a "Claim Bounty" option now.


I received build errors.

Problem encountered on https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/run
Operating System: windows
Provide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.

What is the build error you got?


Avatars not stored in DB?

Prerequisites

[x] Did you read FAQ section?
[x] Did you test with the latest releases or commit ?

Description
I use a image compression program to convert jpgs into .lep files, but every time i run the util it redownloads the avatars.
It would be nice to either have them in the db or have the option to ignore file extensions and only check names.
Steps to Reproduce

Download avatars.
Remove/rename them
Try to download again

Expected behavior: Nothing happens
Actual behavior: It redownloads it
Versions
using latest 20200726

nope, as it can be updated anytime, also it has fixed filename not like image post.

Any suggestions for work arounds? Either making an option to ignore extensions or never update profile pictures after downloaded?

you can disable the avatar download in config.ini by setting downloadavatar = False


Include option to parse date/time to plain text (instead of link)

First off, thank you for the wonderful plugin 👍👏
I am using your Date Parsing Plugin in conjunction with the Day Planner Plugin by James Lynch to create timers for focused work on the spot.
Example:
## Day Planner
- [ ] now Morning review
- [ ] in 15m Read
- [ ] in 1h BREAK

Selecting the natural dates/times (now, in 15m, in 1h) and using the shortcut or command from your plugin translates them to the desired times. So when executed for example at 7am the resulting output would be:
## Day Planner
- [ ] [[07:00]] Morning review
- [ ] [[07:15]] Read
- [ ] [[08:00]] BREAK

For this to work I set the output date format to HH:mm.
This functionality is already highly useful. However the Dat Planner plugin can only parse times in plain text. So at the moment I manually remove the [[, ]] from each timestamp again to obtain my desired output:
## Day Planner
- [ ] 07:00 Morning review
- [ ] 07:15 Read
- [ ] 08:00 BREAK

Is there a possibility for adding an option to parse dates and times without creating a link?
Alternatively, could you maybe point me to the location in the codebase where the parsing takes place? Then I can try if I can change the replacement behaviour locally for the time being. Many thanks!

Added this in my pull-request here: https://github.com/argenos/nldates-obsidian/pull/16

Added this in my pull-request here: https://github.com/argenos/nldates-obsidian/pull/16

Thank you so much @pyjamads. By looking at the Obsidian Sample Plugin for reference I managed to incorporate your changes locally in a new build and everything works as desired. 👍
(I primarily know Python and up to this point had little exposure to JS & Node, so it took me a moment to grok the compilation step from main.ts to main.js.)

Thank you so much @pyjamads. By looking at the Obsidian Sample Plugin for reference I managed to incorporate your changes locally in a new build and everything works as desired. 👍
(I primarily know Python and up to this point had little exposure to JS & Node, so it took me a moment to grok the compilation step from main.ts to main.js.)


"403 Forbidden" on simple identity request

The SDK fails on a simple identity request on PHP AppEngine.
static $SCOPES = 'identity';

require_once("reddit.php");
$reddit = new reddit();
print_r($reddit);
$userData = $reddit->getUser();

403 Forbidden
Request forbidden by administrative rules.

I am having the exact same issue.

I just ran a simple test on a localhost instance (Apache server) as well as an app engine sample application, using the same single identity scope, and had my data returned back correctly. Typically that error response is related to scope issues.
If you are setting the scopes up as above, that may be the issue. You are defining SCOPES before you include reddit.php. reddit.php will include config.php, which includes a definition of the SCOPES variable, so make sure those aren't being overwritten.


Server crashes on connection

I have a feeling this is a caching issue but at any rate I've run into an issue. I had set this up on a new mac that I'm using as a server and it worked as expected the first time I ran it. I quit everything and copied over my Messages folder from my laptop so that the server would have the full archive of messages. I rebooted and the launch services script auto launched the server.
When I try to connect now with the client the server immediately crashes. I've tried rebuilding from scratch and scouring the hard drive for cached data but still can't figure out why it's not working.
This is the pertinent section from the log, but I can post the full thing if that's helpful. Thanks!
Crashed Thread:        2  Dispatch queue: com.apple.root.default-qos

Exception Type:        EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes:       0x0000000000000001, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Illegal instruction: 4
Termination Reason:    Namespace SIGNAL, Code 0x4
Terminating Process:   exc handler [0]

Application Specific Information:
fatal error: unexpectedly found nil while unwrapping an Optional value

The problem seems to occur when the server's screen is sleeping and requires password to wake. This is because the password box is filled automatically (I guess it is the message).  The crash report is attached.
crashreport.txt

I did some experiment. As long as the screen goes to sleep (only the screen not the whole machine), the message will not send. I guess the shortcut is disabled whenever the screen goes to sleep?  I can't keep the server's screen on all the time. It would be great it can support off-screen.

@harveson
Yeah I use UI automation requires that the server be unlocked and awake the entire time. There's currently no other way to send messages without UI automation. It shouldn't crash, mind you, so thanks for the crash reports.
@neilio
You are building from source, can you tell paste the line where it crashes when you run from Xcode? It'll crash and Xcode will dump the crash and give you a trace. Click around in the navigator until you get some call in DatabaseConnector

Thanks for the fast reply, @shusain93. I think this is what you need, at the end?
http://o.neil.io/NSymz

@neilio If you go to ~/Library/Messages do you see a file named chat.db? Does the messaging app work normally? I also copied the database to a new laptop and it works properly. I can't seem to symbolicate the crash so could you also build and run directly from Xcode, no script, and then send a screenshot of the line that it crashes at? Sorry to make you go through this, I've made some changes in the server so I can't get the crash line specifically.
It looks to me like it can't read/find the message database and so it just throws when it tries to read.

Yes to the presence of chat.db and Messages. working. Here's a screenshot of the line that gets highlighted.
http://o.neil.io/sjcHs
By the way, when the mobile client connects I see a flash of messages before the server crashes, so it's getting something.

@neilio In that line if you change as! to as? do you still crash there? You hopefully shouldn't. Also can you make sure that all your conversations show up?
It looks like one of your conversations doesn't have a valid name and when it tries to forcibly read it the application crashes.

So the good news is that code change fixed the crashing problem - I now get the conversation list loading properly. The bad news is when I tap into any of the conversations I get a new error on the client that says "Unable to parse json data org.json.JSONexception: Value invalid of type java.lang.String cannot be converted to J..." and then the rest of message is truncated. Anything I can send you to help figure out what's going on?

@neilio If you run the server from the command line you should get a rubbing log of all the data it sends. Could you copy and paste what happens in the server log when you pick a conversation? Does this happen for all of them? Also, did this happen previously? Something is very odd with your message database

Alright so I pulled up the error in the crash reporting software, it hits a parse error immediately when it reads the conversation response. To fix this I'll definitely need to see what data it's returning because I've never seen this before. You've won the broken software lottery, sorry haha.

I'm good at breaking things, it's true. I just refreshed here and when I build now I get an error. Ha ha!
http://o.neil.io/yybKC

I just tried the pre-compiled binary and it totally works, so I'm wondering if this should be closed as a pebkac.

I think the issue is that I improperly committed the pods. I get this problem on my laptop when building so if you just run pod deintegrate and then pod install it'll work.
I'll push a new binary later tonight with that other fix you found. It shouldn't hurt anyways even if it's working. It'll bring auto updating which should help with this oddity with being on all sorts of versions at once.

Yup, pulling down the pods fixed the build issue. I think this one can be closed.

Let me know if the latest released binary works for you. You should be able to autoinstall it if you're running v1.1 (it'll have the GUI config). It's got a few other fixes and I want to make sure it still works and updates properly for you

It seemed to update okay, though the version number in the UI is still 1.1.

It might not be installing then. I assume it goes through the process fine, no errors? When you hit install does it just quit and you have to launch it yourself? I had this issue on one test machines and couldn't find anything in my logs and I hoped it was a localized issue.

I solved the updater issue in version 1.2


Respect user's initial stop positions for first and last color when easing

E.g. If user sets their gradient stop positions to 20% and 80%, this will let the plugin interpolate the easing between those two stop points instead of easing from 0% to 100%.
re: Your previous comment about interpolating on the "outside" of the color stops - this could be a special case for the conic gradient, since it wraps back around to the start color, but for other gradients we don't need this. I'll leave that change to you if you decide to make it.
Demo

This also fixes an issue with the conic gradient preview in the plugin which was occurring when the stops are not at 0% and 100%. Figma does a weird thing where it wraps the conic gradient around to get rid of the sharp edge when there are no offsets at 0% and 100%. See sections commented // Figma "wraps" conic gradients by putting the start and end color at +/- 360 degrees from their original positions
I've only used Vue once before so pardon me if I made errors there, happy to fix :)
Plugin preview before

Plugin preview after

Works like a charm, thank you for this PR @gsajith 🎉
I've made a small change to also respect the original gradient stops when using steps instead of a bézier-curve.
Cheers,
Alex


Windows Hello For Business Azure MFA Certificate Trust Deployment Issue

Hi,
We tried to implement Windows Hello for Business with Azure MFA in a Hybrid Azure AD Joined Certificate Trust Deployment according to the documentation (https://docs.microsoft.com/en-us/windows/security/identity-protection/hello-for-business/hello-hybrid-cert-trust).
All the prerequisites were fulfilled, but the Windows Hello for Business provisioning didn't start and the PIN couldn't be set until we configured the AD FS Global Authentication Policy - Primary Authentication Methods to use Forms Authentication on the Intranet section as well. (Certificate Authentication, Microsoft Passport Authentication and Windows Authentication were already added to the configuration.)
The error appeared both on AD FS server and W10 client side in the Event Log and the user didn't get the appropriate certificate.
On the client side the dsregcmd /status Ngc Prerequisite Check section showed the following:
AdfsRefreshToken: No
PreReqResult: WillNotProvision
After adding Forms Authentication to the Primary Authentication Methods, the provisioning has started (Azure MFA worked as a second factor for provisioning) and the user certificate has been enrolled automatically.
On the client side the dsregcmd /status Ngc Prerequisite Check section now showed the following:
AdfsRefreshToken: Yes
PreReqResult: WillProvision
Thanks and Regards,
Marta
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0b6560ef-2f8c-0c12-6074-8e0d446a1a42
Version Independent ID: 9e3072f3-d962-92f2-9088-dd5a6a247a50
Content: Hybrid Certificate Trust Deployment (Windows Hello for Business) - Microsoft 365 Security
Content Source: windows/security/identity-protection/hello-for-business/hello-hybrid-cert-trust.md
Product: w10
Technology: windows
GitHub Login: @mapalko
Microsoft Alias: mapalko

Hello @martikardos - Thank you for sharing your findings. Can you please suggest if there are any changes required in the document. What I have presumed that the document worked as expected and all the instruction are cleared as required. If there is anything that needs to be added in the document, please feel free to let me know. I will be happy to add in the document.
Thanks.
Imran.


QR code from custom fields

Good day! Please tell me how can I change the generation of the request URL to an arbitrary text? For example: when I read the QR, it should not show me the URL, but the entry from the comment or custom field!
Thank a lot!

Hi @romarioZ1000 ! You can't do it now. If you need this feature - I can make it.


youtube user's playlist videos in separate subfolders not working

Hi,
I am trying to download all videos in all playlists in a channel and putting them in sub-folders.
Instead of putting them in sub-folders, it puts them in Uploads_by_Username
I have tried reading the docs. But might have missed something..
Here is my command line and output.
zubairlk@zubairlk-linux /mnt/khan $ youtube-dl -cw -f '(webm)[height<480]'  -o '/mnt/khanurdu/%(playlist)s_2/%(playlist_index)s_%(title)s_%(id)s.%(ext)s' --yes-playlist --restrict-filenames ytuser:khanacademy -R 10000 -v
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-cw', u'-f', u'(webm)[height<480]', u'-o', u'/mnt/khanurdu/%(playlist)s_2/%(playlist_index)s_%(title)s_%(id)s.%(ext)s', u'--yes-playlist', u'--restrict-filenames', u'ytuser:khanacademy', u'-R', u'10000', u'-v']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2015.11.19
[debug] Python version 2.7.6 - Linux-3.13.0-37-generic-x86_64-with-LinuxMint-17.1-rebecca
[debug] exe versions: none
[debug] Proxy map: {}
[youtube:user] khanacademy: Downloading channel page
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading webpage
[download] Downloading playlist: Uploads from Khan Academy
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #1
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #2
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #3
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #4
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #5
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #6
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #7
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #8
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #9
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #10
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #11
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #12
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #13
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #14
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #15
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #16
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #17
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #18
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #19
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #20
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #21
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #22
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #23
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #24
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #25
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #26
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #27
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #28
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #29
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #30
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #31
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #32
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #33
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #34
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #35
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #36
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #37
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #38
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #39
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #40
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #41
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #42
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #43
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #44
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #45
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #46
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #47
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #48
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #49
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #50
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #51
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #52
[youtube:playlist] UU4a-Gbdw7vOaccHmFo40b9g: Downloading page #53
[youtube:playlist] playlist Uploads from Khan Academy: Downloading 5285 videos
[download] Downloading video 1 of 5285
[youtube] DJfNr8WoXW4: Downloading webpage
[youtube] DJfNr8WoXW4: Downloading video info webpage
[youtube] DJfNr8WoXW4: Extracting video information
[youtube] DJfNr8WoXW4: Downloading DASH manifest
[youtube] DJfNr8WoXW4: Downloading DASH manifest
[debug] Invoking downloader on u'https://r1---sn-8pgbpohxqp5-ac5l.googlevideo.com/videoplayback?dur=0.000&ipbits=0&sver=3&lmt=1447726729336414&expire=1447996922&ratebypass=yes&signature=D740238E226D39DB6F5F07E8B6278B828A663DD3.6A059F287B52866874789A6EC0CEDA2DC91F9927&mn=sn-8pgbpohxqp5-ac5l&mm=31&pl=22&id=o-ANXS7uAy9x_UcusTqyEv_nxAY7LTJfUXblmNNtu7DDvg&requiressl=yes&ip=<IP_ADDRESS>&fexp=9407190%2C9408013%2C9408710%2C9408939%2C9416007%2C9416126%2C9416985%2C9417342%2C9417683%2C9418145%2C9420452%2C9421561%2C9422596%2C9422618%2C9423662%2C9423667%2C9424135%2C9424194%2C9424508%2C9424632&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&mv=m&mt=1447975223&ms=au&initcwndbps=2043750&upn=F5Pmo3tQspw&source=youtube&itag=43&key=yt6&mime=video%2Fwebm'
[download] Destination: /mnt/khanurdu/Uploads_from_Khan_Academy_2/0001_Cell_signaling_in_yeast_reproduction_DJfNr8WoXW4.webm
[download] 100% of 9.59MiB in 00:01
[download] Downloading video 2 of 5285
[youtube] i7z7f-wnews: Downloading webpage
[youtube] i7z7f-wnews: Downloading video info webpage
[youtube] i7z7f-wnews: Extracting video information
[youtube] i7z7f-wnews: Downloading DASH manifest
[youtube] i7z7f-wnews: Downloading DASH manifest
[debug] Invoking downloader on u'https://r2---sn-8pgbpohxqp5-ac5e.googlevideo.com/videoplayback?pl=22&upn=1UM6t547bTU&ipbits=0&mm=31&mn=sn-8pgbpohxqp5-ac5e&id=o-ACGR5zJExf4qp01BMhJv3FEaSa-MyqUoIM0hd6Vom90L&source=youtube&initcwndbps=2043750&ip=<IP_ADDRESS>&signature=44BA2536CA0F24BAACB6FD90F0C6B11EA9946EC9.3B878258FE8C48B5543CFC29F830D75A49ACD331&mt=1447975223&mv=m&ms=au&lmt=1447698156065546&dur=0.000&mime=video%2Fwebm&key=yt6&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&expire=1447996925&fexp=9407190%2C9408013%2C9408710%2C9408939%2C9416007%2C9416126%2C9416985%2C9417342%2C9417683%2C9418145%2C9420452%2C9421561%2C9422596%2C9422618%2C9423662%2C9423667%2C9424135%2C9424194%2C9424508%2C9424632&sver=3&requiressl=yes&itag=43&ratebypass=yes'
[download] Destination: /mnt/khanurdu/Uploads_from_Khan_Academy_2/0002_Example_of_signal_transduction_pathway_i7z7f-wnews.webm
[download] 100% of 12.91MiB in 00:02
[download] Downloading video 3 of 5285
[youtube] RmFDLCwePAo: Downloading webpage
[youtube] RmFDLCwePAo: Downloading video info webpage
[youtube] RmFDLCwePAo: Extracting video information
[youtube] RmFDLCwePAo: Downloading DASH manifest
[youtube] RmFDLCwePAo: Downloading DASH manifest
[debug] Invoking downloader on u'https://r1---sn-8pgbpohxqp5-ac5e.googlevideo.com/videoplayback?ip=<IP_ADDRESS>&key=yt6&signature=73A8E592B23CAE1041BD6C3A207D3026B93E92C3.933F496EBD3789C0846DB2FD9BCBDDC4BA443352&mm=31&mn=sn-8pgbpohxqp5-ac5e&mt=1447975223&mv=m&id=o-AKX5SiIw5TkT69Xh5z93Sjyy81vQHFrRf8R2jiz3-g7D&ms=au&source=youtube&lmt=1446773700302667&dur=0.000&sver=3&pl=22&fexp=9407190%2C9408013%2C9408710%2C9408939%2C9416007%2C9416126%2C9416985%2C9417342%2C9417683%2C9418145%2C9420452%2C9421561%2C9422596%2C9422618%2C9423662%2C9423667%2C9424135%2C9424194%2C9424508%2C9424632&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&itag=43&upn=IhX_P2ShgO8&mime=video%2Fwebm&requiressl=yes&ipbits=0&ratebypass=yes&expire=1447996928&initcwndbps=2043750'
[download] Destination: /mnt/khanurdu/Uploads_from_Khan_Academy_2/0003_Introduction_to_nouns_and_verbs_RmFDLCwePAo.webm
[download] 100% of 6.06MiB in 00:00
[download] Downloading video 4 of 5285
[youtube] FQFBygnIONU: Downloading webpage
[youtube] FQFBygnIONU: Downloading video info webpage
^C
ERROR: Interrupted by user
zubairlk@zubairlk-linux /mnt/khan $
Is this a case of waiting until all those not in a playlist are downloaded, then the rest of the playlists will be downloaded?
Feels like the playlist id/title isn't being read correctly.
I tried reading the json output. Takes a ton of time for that channel, might want to try a different user.
But the playlist titles were all uploads by khanacademy. :/
Thanks,
ZubairLK
btw. youtube-dl is extremely awesome! +1 for the devs behind it!

This is expected behavior. See #7372.

Thank-you for the quick response!

This feature will be supported in the next version for URLs of the following format: http://www.youtube.com/user/<user>/playlists.


convert hypenated files to camelCase

I think such a library could use the implicit conversion from hypenated (simple-string) to camelCase (simpleString), so that it can be called like this:
modules/simple-string.js:
module.exports = 'Hello World';

main.js:
var bulk = require('bulk-require');
var modules = bulk(__dirname, ['modules/*.js]);
console.log(modules.simpleString);
// instead of
console.log(modules['simple-string']);

I think this would make most sense to remain outside this module, since it is a user-preference and could create confusion about module names.
This can be easily done with a small amount of code:
const camelCase = require('camelcase')
modules = Object.keys(modules).reduce(function (acc, name) {
  acc[camelCase(name)] = modules[name]
  return acc
}, {})


Hotbar only updates on collect, not on place_block

Picking up dug items works nicely: the slots fill, counters increase.
But when a block is placed the number of blocks shown in a hotbar slot do not decrease. The accurate number is only obtained when you pick up another identical item and it is added to the slot.

When collecting a dug item, the bot.inventory.slot value is updated and increased.
When placing an item it is placed, the bot.inventory.slot value is not decreased. The server seems to know about it though.

Probably a flying squid issue, with fs sending slotUpdates for collection, but not for placement.

@Karang determined that it is indeed an fs issue and produced a fix that I've tested manually. I'll submit a PR tomorrow.


Use browserHistory for cleaner URL

This brilliant idea lets you use browserHistory URLs for the SPA. Make use of it

https://github.com/bogas04/SikhJS/tree/browserHistory
Tries to fix it but it currently has problems with react-router not updating view on drawer links.

I think we should postpone this until we get our own domain (v0.9.0 maybe ?)


Enhance TapirSupport to support non-string Params property types

Hi @adrobisch ,
Currently, TapirSupport unconditionally types properties of the generated path parameters as String found here:
  private def pathParamsFromResource(resource: Resource): List[Term.Param] =
    resource.getFullUriParameters.asScala.map { uriParam =>
      Term.Param(
        Nil,
        Term.Name(uriParam.getName),
        Some(
          Type.Name("String")
        ),
        None
      )
    }.toList

This eliminates typed support for:

AnyVal's
enum types

The goal of this enhancement is to enable support for scalar types in addition to String for TapirSupport generated Params types.  I believe this can be accomplished roughly by:

Retaining the synthesized Params type name as displayName.
Aggregate the RAML queryString, queryParameters, baseUriParameters, and uriParameters of each endpoint (if any) as synthetic object properties.
Default the type of a property to be string if no type is provided.
Fail if the type is not a scalar.
Generate an in-memory rmf definition.
Run each in-memory rmf definition definition through scraml code generation, excluding TapirSupport and having a fixed FieldMatchPolicy of IgnoreExtra.
Emit the generated case classes and objects (if needed).

If this approach proves feasible, a PR will follow.  If it is not feasible, the reason(s) why will be added to this issue as a comment for posterity.

Thanks a lot! I liked the approach from https://github.com/commercetools/scraml/pull/48. Personally,  I could not think about a good example for a complex type in the path param that would justify steps 4 and below. Do you have one?
This got me thinking if we could have a nicer way to handle templated path params like /key=somevalue/, so that it would be possible to type somevalue. I can't make a strong case there though, the usages I saw would always have a string-ish value on the right-hand side (but maybe could be good to put constraints/validation there).

Thanks a lot! I liked the approach from #48. Personally, I could not think about a good example for a complex type in the path param that would justify steps 4 and below. Do you have one?

The main use-case I can see for steps 5-7 is to enable RefinedSupport for the generated Params types, thus being able to have atomic validations generated.  Having CirceSupport and/or SphereJsonSupport could be useful for persisting Params as JSON as well (such as for logging requests in a persistent store).  There may be uses for cats and monocle, too, but those are harder for me to envision.
Related to this is issue #13 .  Whether or not all the steps above are incorporated for Params, I think the ability to synthesize types is what issue #13 needs.  What do you think?

This got me thinking if we could have a nicer way to handle templated path params like /key=somevalue/, so that it would be possible to type somevalue. I can't make a strong case there though, the usages I saw would always have a string-ish value on the right-hand side (but maybe could be good to put constraints/validation there).

PR #48 should enable typing for this if the resource uses uriParameters.  For example, if an endpoint such as stores.raml were:
/key={key}/:
  uriParameters:
    key:
      type: integer

I could see refined support helping to validate the form of somevalue in this example (such as a string having maxLength, minLength, and pattern facets).  Using the same resource example as above:
/key={key}/:
  uriParameters:
    key:
      type: string
      minLength: 2
      maxLength: 128
      pattern: "^[a-z][a-z0-9.-]+$"

The overall form of /constant={value}/ might benefit from enum support for value, though as you identified this would most likely not help for /key=somevalue/ situations.

Related to this is issue https://github.com/commercetools/scraml/issues/13 . Whether or not all the steps above are incorporated for Params, I think the ability to synthesize types is what issue https://github.com/commercetools/scraml/issues/13 needs. What do you think?

:+1:  in the context of #13 that makes perfect sense.

PR https://github.com/commercetools/scraml/pull/48 should enable typing for this if the resource uses uriParameters. For example, if an endpoint such as stores.raml

:ok_hand: thats nice, was not aware that it would enable that, thanks for all the details!


Why does rewriteAssetPath forbid trailing = (equals)?

The regular expression in rewriteAssetPath() forbids trailing equals, so this means if I have an asset key like path/to/asset.png this will successfully rewrite path/to/asset.png?1234 but not path/to/asset.png?v=1234.
My feeling is that it's a bug that the former is allowed but the latter is not, but I'm unsure as to whether they should both be allowed or forbidden,

Why would you need to have your own version query string on an asset?

It's not my CSS file. I'm using the addon to rewrite a web font path to the location in which the font asset actually resides relative to the vendor-supplied CSS file.

Can you please investigate if this is still an issue for you with the most recent version? If so, a failing test case would be very helpful.