Add files and documentation for cloudkey support.

I got this working as a service on my Unifi CloudKey. I thought I'd share this with you in case you wanted to include it with your project. I isolated the cloudkey related stuff to a new subdirectory, so it doesn't muddy up the project.
I did my best to create a clear README file for the procedure. I considered a script, but thought people would probably prefer to see what's going on when it comes to their networking gear. 😄

The CloudKey has node & npm installed? Or are there extra steps required to install them on the CloudKey?

Yep, I could hardly believe it when I first saw it. The CloudKey runs: several JVMs, MongoDB (?!), node, php, nginx, and who knows what else.

@Duttch Thanks for posting that question. I went back through the steps in my README one by one, and realized that I didn't make one very important update to them. Step 5 should NOT make a symbolic link for the service, because systemd fails to start the service as a result of too many levels of symlinks. I'll submit a patch to fix that one line, but to get you up and running, do the following:

unlink /lib/systemd/system/unifi-parental.service
ln /usr/local/src/unifi-parental/cloudkey/unifi-parental.service /lib/systemd/system/
systemctl daemon-reload (just to be sure)
systemctl enable unifi-parental
systemctl start unifi-parental
Within 20 seconds you should be able to access the unifi-parental webapp.

Let me know if that gets you up and running!
Paul

Fixed this with https://github.com/tdack/unifi-parental/pull/7

Hi Paul,
Removed the install and redid following the new steps etc.  I'm still getting a 502 Bad Gateway.
Maurice

Hi Maurice,
Thanks for trying that and giving feedback on the results. I appreciate you trying this out, as this wouldn't be a good contribution if it only works for me. :)
When you get a chance, can you please paste the results of the following?
systemctl status unifi-parental
ps aux | grep unifi-parental
ps aux | grep node
netstat -plnt | grep ':4000'

Also, I am using the most recent stable versions of the Controller (5.8.24-11016) and the CloudKey (0.11.4), fwiw.

Hi Paul,
Just before you replied I did notice that the service is not active due to the start limit.  I've rebooted the cloudkey, but haven't been able to reset the systemd.
Maurice
Last login: Mon Jul 16 10:38:36 2018
root@UniFi-CloudKey:~# systemctl status unifi-parental

unifi-parental.service - unifi-parental
Loaded: loaded (/lib/systemd/system/unifi-parental.service; enabled)
Active: failed (Result: start-limit) since Mon 2018-07-16 10:39:26 EDT; 5min ago
Process: 849 ExecStart=/usr/local/src/unifi-parental/cloudkey/unifi-parental.sh (code=exited, status=203/EXEC)
Main PID: 849 (code=exited, status=203/EXEC)
root@UniFi-CloudKey:~# ps aux | grep unifi-parental
root       910  0.0  0.0   2072   544 pts/0    S+   10:45   0:00 grep unifi-parental
root@UniFi-CloudKey:~# ps aux | grep node
root       377  2.6  1.3<PHONE_NUMBER>4 ?        Ssl  10:38   0:10 /usr/bin/node /usr/share/bt-proxy/bt-proxy.js
root       912  0.0  0.0   2076   544 pts/0    S+   10:45   0:00 grep node
root@UniFi-CloudKey:~# netstat -plnt | grep ':4000'
tcp        0      0 <IP_ADDRESS>:4000           <IP_ADDRESS>:*               LISTEN      399/nginx -g daemon
root@UniFi-CloudKey:~#

So it's failing repeatedly. Is it creating a log file at /usr/local/src/unifi-parental/cloudkey/unifi-parental.log? If so, is there anything in there giving you indication of a problem? Also, can you make sure that /usr/local/src/unifi-parental/cloudkey/unifi-parental.sh kept its execute bit from my commit?

Hi Paul,
It was the execute bit.  I see groups (2 - both undefined), but no mac addresses.
Thanks
Maurice

@Duttch - I'm guessing that you may not have your host value set in the controller block of config.json, or your .env is not configured with your controller_user and controller_password?
If you create a new Group, you should be seeing the Clients group populating with all Unifi's "Known Clients" in the listbox. Mine is a mixture of Mac addresses and custom names for those clients I've updated manually in the Unifi Controller  previously.
For comparison, this is what my config.json looks like:
{
  "controller": {
    "host": "<IP_ADDRESS>",
    "port": 8443,
    "user": "",
    "password": "",
    "site": "default"
  },
  "server": {
    "key": "cloudkey.key",
    "cert": "cloudkey.crt",
    "host": "<IP_ADDRESS>",
    "port": 4000
  },

@potto007 - I dont have the site as default, but a secondary site.  Could that be the issue?

@Duttch - Reading what you said here, "...however when you add a group, the new data structure is different from the existing," led me to think that you may have started with the config.json-samplementioned in the main project README. Looking at that file, it wasn't updated to reflect @tdack's refactor adding Groups. I would recommend starting with the config.json with the data section cleansed... so start with your config.json looking like this:
{
  "controller": {
    "host": "<IP_ADDRESS>",
    "port": 8443,
    "user": "",
    "password": "",
    "site": "default"
  },
  "server": {
    "key": "cloudkey.key",
    "cert": "cloudkey.crt",
    "host": "<IP_ADDRESS>",
    "port": 4000
  },
  "data": {}
}

@potto007 - I did do a cleanup, and that took care of the unknown groups.  But the MAC/Clients are still not showing up,  I do wonder if its the site name.  The config.json uses "site" in the controller, but looking at the code in node-unifi, sites are referred to as "sites".

@potto007 - Solved the issue.  It is the site name.  However the config.json var "site" should contain the unifi internal referral ID, not the site name.  In case of the default, it is "default", otherwise it can be found in: /srv/unifi/data/sites
Thanks

@potto007 - The front end looks to work, however when I select a MAC addr and select access times and SAVE, the PC that is supposed to be blocked still has access to the internet.  Is it nessecary to do a forced provisioning ? or something else to apply the changes
I do have a USG 4 Pro, with cloudkey (all latest versions)

@Duttch it's not smart enough (yet) to see if there are clients that should
be blocked immediately when you hit save. Also you can check the eve like
event log in the Unifi Controller to see if the nodejs application logged
in and blocked/unblocked any clients.
On Tue, 17 Jul 2018 at 07:01, Duttch<EMAIL_ADDRESS>wrote:

@potto007 https://github.com/potto007 - The front end looks to work,
however when I select a MAC addr and select access times and SAVE, the PC
that is supposed to be blocked still has access to the internet. Is it
nessecary to do a forced provisioning ? or something else to apply the
changes
I do have a USG 4 Pro, with cloudkey (all latest versions)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tdack/unifi-parental/pull/6#issuecomment-405380702,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABnJFkRJ1xZ0SzokBDU5eZpCIVtqaNygks5uHP8egaJpZM4VPozj
.

--
Troy Dack
<EMAIL_ADDRESS>au

Hi @Duttch - That's on the project's todo list on the project README: https://github.com/tdack/unifi-parental#todo. In its current form, the project is trigger-based only, as opposed to evaluating the state of a resource vs. the expected state. @tdack has a WIP refactor which appears to address this and other issues. I'm definitely interested in extending this, if he doesn't have time at the moment.

Incidentally, I have contributed to https://github.com/capitalone/cloud-custodian 's OffHours filter, which takes the same approach. It follows the "cronjob" approach, which seems to be a pretty common approach... Unfortunately, it becomes a pretty significant undertaking by the time people realize they want to handle "in-progress" states.

@potto007 / @tdack - I've been diving a little deeper into the code and application of the parental controls.  I might have an idea around real-time application of the rules.
One could create a provisioning rule set based on the config.json of the current unifi-parental:
https://community.ubnt.com/t5/EdgeRouter/Firewall-source-Mac-address-fails-on-commit/m-p/1773367#M141017 - See time based blocking for EdgeRouter.
unifi-parental configures the config.json with the current input screen, then use the data in the config.json to create/update a config.gateway.json file https://help.ubnt.com/hc/en-us/articles/215458888-UniFi-USG-Advanced-Configuration and send a Forced Provision to the USG.

@Duttch - that's a great find! I read about advanced firewall rules a couple months ago but was specifically looking at it for blacklisting, hadn't thought about the possibility of using it for parental lockouts. The fact that times are allowed in the rules is awesome. This form of blocking would likely replicate the experience I was accustomed to with the Google Wifi system - which is nice, because the devices stay connected, they just cannot do anything with the Internet; Chromebooks see this and give UI feedback that they are currently disabled.
This would obviously significantly change the approach of unifi-parental, so completely up to @tdack whether he's okay with it... that said, I think it would be great as a configurable option: ex. "blocking_type": "wifi" or "firewall"

I did look at pushing a config.json file but was trying to find a solution that didn't need write access to whatever filesystem the Unifi Controller was running on (I know some people run it in a cloud based VM for instance).
It would be nice if the unified.sh API exposed some of the functionality that the controller front end application uses to set up firewall rules.
Ultimately I didn't pursue this as my use case was pretty simple and aimed at getting a couple of stubborn teenagers of the internet at night and in to bed :)


 Fix by reordering?

https://threejs.org/docs/#api/en/core/Object3D.renderOrder


const qualifier in reorder::execute?

Wondering if the src could be const here
void reorder::execute(stream astream, memory &src, memory &dst)

https://github.com/intel/mkl-dnn/blob/master/include/dnnl.hpp#L1982

Hi @pinzhenx,
For this particular case it probably could, but there few reasons why this is not done:

Unfortunately, when DNNL wraps memory buffer into memory objects it drops the const qualifier. In other words, const memory &src doesn't defend against writing to the memory buffer.
There is more to that. As you know, typical primitive execution happens using the map<argument_index, memory> (e.g. see here). That was made for the clarity of passing arguments, but this approach prevents from adding const qualifier (even just to designate what memories are constant).

So for uniformity we decided to not add const qualifier to memory altogether. The Read-Only property is tracked internally accordingly to each primitive (source):
switch (pd->arg_usage(arg)) { // input (const), output (mutable), or unused (dropped)
    case primitive_desc_t::arg_usage_t::input:
        if (args.count(arg) != 0) return invalid_arguments;
        args[arg] = {mem, true}; // <-- true means read-only
        n_inputs++;
        break;
    case primitive_desc_t::arg_usage_t::output:
        if (args.count(arg) != 0) return invalid_arguments;
        args[arg] = {mem, false}; // <-- false means read-write
        n_outputs++;
        break;
    case primitive_desc_t::arg_usage_t::unused: break;
}

The related discussion on const memory in general: #410.

Much appreciated! Closing this issue.


ID switch for some missed detection reappear

Idea for ID switch, doesn't need to merge and can be closed if it's not what we want

Add last known id for predicted ID that not nan
For crabs appear, if gt_id is in last_known_id, we check if the current_predicted_id has changed

Codecov Report
Attention: Patch coverage is 71.42857% with 4 lines in your changes missing coverage. Please review.

Project coverage is 46.33%. Comparing base (8fc0ed8) to head (8adb4bb).

Files
Patch %
Lines

crabs/tracker/evaluate_tracker.py
71.42%
4 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #225      +/-   ##
==========================================
+ Coverage   46.13%   46.33%   +0.20%
==========================================
  Files          24       24
  Lines        1461     1474      +13
==========================================
+ Hits          674      683       +9
- Misses        787      791       +4

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Thank you Sofia! I just add some test, let me know what you think.
I realised as well when debug for the test, that we need to filter out the gt_id for pred_id of np.nan. Otherwise, all gt_id will be in the continuous one right.

thanks Nik, the tests look great! ⭐
And I think you picked up something we had missed with this point:

we need to filter out the gt_id for pred_id of np.nan.

I think we actually don't need to do this.... I think the confusion comes because we were considering that an 'historical' ID switch (i.e. ID switch that is computed using info in last_known_predicted_ids) can only happen if a crab appears (according to the ground truth). However, It can also happen if a crab continues to exist.
I edited the code to add this second case and added two more tests. Let me know what you think!
If you give me your thumbs up, feel free to merge and I'll get the README for id switches wrapped up.


Translatable option labels are untranslated

Translatable labels of fields always show up in English even when a translation is available.
For example, when viewing the Vietnamese localization, the Surface field’s hard-coded options are all in English, including “Artifial Turf” for surface=artificial_turf, even though the corresponding message in Transifex has already been translated. These fields were added in openstreetmap/id-tagging-schema@92ae85603aedfcefeaa4687b039ad54cff40f7b3, which was released as v3.0.0. cb7f1c2b3ca93216df28c7b70a44b5e46f23c9e9 upgraded to v3.0.0.

Oh, I think the issue is that v2.20.0 didn’t pull the latest translations from Transifex. Only a Transifex project administrator can do that, unfortunately.

It seems you are partially correct. I did run fresh translations prior to release in iD  however it seems that preset translations are pulled in runtime from id-tagging-schema release. I am looking into this now, if this is the case just updating translations on id-tagging-schema side should resolve this.

v3.1.0 was finally released a few days ago (see https://www.npmjs.com/package/@openstreetmap/id-tagging-schema?activeTab=versions) and the CDN's cache already has the new version available. It could be that browsers still have the old version cached locally (expiry is set to 7 days AFAICS), but essentially this specific issue should be solved now.
I must say that I don't feel too good about the current setup for releasing the tagging database. Having to "deal" with two layers of caches which are out of our control on top of the existing build pipeline is not really ideal. For example, if at any point a release went wrong, it could take up to two weeks until end users get the fix. :unamused:
I think the way forward would be to move away from distributing the id-tagging-schema via a npm-based CDN to something else – potentially something self hosted on osm.org.

There is a simple way to purge the JSDelivr CDN cache and I am happy to share it with you.
The JSDelivr folks have asked me not to share it widely, otherwise I would just post it here.


View as Map not working for some locations

The ''View As Map'' feature is not working for some cities whereas for other cities it is working just fine.
Here are 3 screenshots : Lahore (not working), Mumbai (working), Dhaka (not working)
NOTE : Windows 10. Has no previous version of Fuckr installed. Everything else works fine.

The app works just fine, it's Grindr that is the reason you see no users pinpointed there.  They use "geofencing" to block distance in certain countries and certain regions, typically where it's not legal to be gay or where there is a potential threat to the people of that region.  This is normal opporation and not a problem with the app, so if you could, please scroll to the bottom and close this issue, thanks

Sure. Thanks


[png++] Fix compilation error in error.hpp on MSVC

Describe the pull request
This PR fixes a compilation issue on MSVC where programs that include png++ fail to compile with error C3861: 'strerror_r': identifier not found.

What does your PR fix?
No GitHub issue posted.

Which triplets are supported/not supported? Have you updated the CI baseline?
All, no

Does your PR follow the maintainer guide?

Yes

This PR has been inactive for a long time, please reopen it if there is any progress.


Error when syncing dimension and hierarchies

Hi,
I'm trying to sync up 2 dimensions between two different TM1 instances. I want the dimension with its hierarchies and attributes to be replicated on target. The dimension already exists in the target so I want to update it to reflect exactly what it is on source.
For that I'm using dimension.get and then pushing it to target using dimensions.update_or_create.
I'm getting an error message saying:
TM1py.Exceptions.Exceptions.TM1pyRestException: Text: {"error":{"code":"272","message":"ElementLeafConsolidationConflict"}}
There could be level mismatches between them, that why I want to sync it up with source. I've been testing this function to see what transformation of the element in the target is causing this, i.e.: it is 'N' in source but 'C' in target, or the other way around, but when I do this in dummy dimensions I don't get the same error.
Could you tell me what validations are behind the ElementLeafConsolidationConflict error?
Version

TM1py [e.g. 1.5.0]
TM1 Server Version: [e.g. PA Cloud 2.0.8]

Hi @nicolasbisurgi,
the ElementLeafConsolidationConflict comes from the TM1 server. TM1py just passes it through.
Is it possible, that you are creating a leaf element in a hierarchy that exists as consolidation in a different hierarchy in the same dimension or vice versa?

Maybe that's a bold suggestion, but if your model is not sensitive to C Elements (e.g. string data stored on C Elements or explicit references of C Elements in rules), perhaps you could delete all C elements in all hierarchies in the target dimension before you call the dimension update 🤔

HI @MariusWirtz ,
Thanks for the quick response! What you mentioned is possible, the dimension has more than 50k elements with 5 different hierarchies so spotting the differences is a bit hard but I could definitely see that situation as possible.
I will delete all C level elements on target before attempting to refresh, however: if I have a C level on source that is currently an N level on target, would I get the same message?
That's what I was wondering about the error message: what is validating on the back end before prompting this message. I understand this is not coming from Tm1Py, but maybe you knew the answer.
Thanks!
Nico

Hi @nicolasbisurgi,
I don't know currently. I will do more research and get back to you.

Hi,
in both scenarios TM1py will fail with the ElementLeafConsolidationConflict error. See below.
I don't think the fact that it fails with an Error is a problem per se.
With TM1py we can determine the elements that are defined differently in the 2 instances.
Then you can fix them manually or with TM1py. Here is a sample to identify the differences.

Find element type differences

from TM1py import TM1Service
from TM1py.Utils import CaseAndSpaceInsensitiveDict

DIMENSION_NAME = "d3"

with TM1Service(address="localhost", port=12354, ssl=True, user="admin", password="apple") as tm1_source:
    with TM1Service(address="localhost", port=12297, ssl=True, user="admin", password="apple") as tm1_target:

        elements_and_types_source = CaseAndSpaceInsensitiveDict()
        for hierarchy_name in tm1_source.hierarchies.get_all_names(dimension_name=DIMENSION_NAME):
            elements_and_types_source.update(tm1_source.elements.get_element_types(
                dimension_name=DIMENSION_NAME,
                hierarchy_name=hierarchy_name))

        elements_and_types_target = CaseAndSpaceInsensitiveDict()
        for hierarchy_name in tm1_target.hierarchies.get_all_names(dimension_name=DIMENSION_NAME):
            elements_and_types_target.update(tm1_target.elements.get_element_types(
                dimension_name=DIMENSION_NAME,
                hierarchy_name=hierarchy_name))

        for element_name in elements_and_types_source:
            element_type_source = elements_and_types_source.get(element_name)
            element_type_target = elements_and_types_source.get(element_name)

            if element_type_target:
                if not elements_and_types_source[element_name] == elements_and_types_target[element_name]:
                    print(f"Type inconsistency for element: '{element_name}'")

case 1

from TM1py import TM1Service, Dimension, Hierarchy

with TM1Service(address="localhost", port=12354, ssl=True, user="admin", password="apple") as tm1:
    dimension = Dimension(name="d3")
    hierarchy = Hierarchy(name="d3", dimension_name="d3")
    hierarchy.add_element("e1", "Numeric")
    hierarchy.add_element("c1", "Consolidated")
    dimension.add_hierarchy(hierarchy)
    tm1.dimensions.update_or_create(dimension)

    hierarchy = Hierarchy(name="alternative", dimension_name="d3")
    hierarchy.add_element("e1", "Consolidated")
    hierarchy.add_element("c1", "Consolidated")
    dimension.add_hierarchy(hierarchy)
    tm1.dimensions.update_or_create(dimension)

case 2

from TM1py import TM1Service, Dimension, Hierarchy

with TM1Service(address="localhost", port=12354, ssl=True, user="admin", password="apple") as tm1:
    dimension = Dimension(name="d3")
    hierarchy = Hierarchy(name="d3", dimension_name="d3")
    hierarchy.add_element("e1", "Numeric")
    hierarchy.add_element("c1", "Consolidated")
    dimension.add_hierarchy(hierarchy)
    tm1.dimensions.update_or_create(dimension)

    hierarchy = Hierarchy(name="alternative", dimension_name="d3")
    hierarchy.add_element("e1", "Numeric")
    hierarchy.add_element("c1", "Numeric")
    dimension.add_hierarchy(hierarchy)
    tm1.dimensions.update_or_create(dimension)

Hi @MariusWirtz
Thank you very much for this!
I agree that the error is not a problem within itself. I did a similar test on my end:
Source_dim:
A+B element (type=C)
Target_dim:
A+B element (type=N)
And the error didn't pop up, that's why I wondered about the validation behind this error is.
Thank you very much again for your help!
Nico


Cannot read property 'scrollTop' of undefined

Oftentimes, parentRef will have value undefined at first render. This breaks with TypeError: Cannot read property 'scrollTop' of undefined in react-virtual 2.2.4 and above. It works fine in 2.2.3.
See for example: https://codesandbox.io/s/trusting-shamir-05gpx
Changing to react-virtual 2.2.3 fixes it.

I think I've seen this as well. This is the change: https://github.com/tannerlinsley/react-virtual/compare/v2.2.3...v2.2.4
Specifically, this is the line that's causing the issue: https://github.com/tannerlinsley/react-virtual/compare/v2.2.3...v2.2.4#diff-1fdf421c05c1140f6d71444ea2b27638R74

Made a PR to help out a bit.

:tada: This issue has been resolved in version 2.2.6 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

I'm running into a new issue now :(
Cannot read property 'addEventListener' of undefined
See https://codesandbox.io/s/storybook-search-virtualized-jyq1u?file=/src/Tree.js (change to react-virtual 2.2.6)

We should probably add a test for this use case 😅


Segmentation fault when training DeepLab segmentation model

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04
TensorFlow installed from (source or binary): conda install tensorflow=1
TensorFlow version (use command below): 1.13.1
Python version: 3.6.7

Describe the current behavior
I am trying to train the DeepLab model following the directions in this DeepLab example using the following command:
$ python deeplab/train.py \
    --logtostderr \
    --training_number_of_steps=30000 \
    --train_split="train" \
    --model_variant="xception_65" \
    --atrous_rates=6 \
    --atrous_rates=12 \
    --atrous_rates=18 \
    --output_stride=16 \
    --decoder_output_stride=4 \
    --train_crop_size="513,513" \
    --train_batch_size=1 \
    --dataset="basins" \
    --tf_initial_checkpoint=/home/james/deeplab/pretrained/x65-b2u1s2p-d48-2-3x256-sc-cr300k_init.ckpt.data-00000-of-00001 \
    --train_logdir=./deeplab/datasets/basins/exp/train_on_train_set/train \
    --dataset_dir=./deeplab/datasets/basins

I get the following output/error:
<thousands of useless/confusing warning messages>
...
2020-01-25 16:03:48.084849: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2020-01-25 16:03:48.086476: I tensorflow/compiler/xla/service/service.cc:150] XLA service 0x559e7db9e710 executing computations on platform Host. Devices:
2020-01-25 16:03:48.086916: I tensorflow/compiler/xla/service/service.cc:158]   StreamExecutor device (0): <undefined>, <undefined>
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Starting Session.
INFO:tensorflow:Saving checkpoint to path ./deeplab/datasets/basins/exp/train_on_train_set/train/model.ckpt
INFO:tensorflow:Starting Queues.
Segmentation fault (core dumped)

Describe the expected behavior
I am hoping that the model will train as advertised.
Code to reproduce the issue
Run a DeepLab model training as described in the DeepLab tutorial documentation referenced above.
BTW I have had this happen on two separate machines, both of which are running Ubuntu 18.04. One is a Dell laptop with CPU and the other is an AWS EC2 instance with T4 GPU. On the EC2 instance the TF version installed is 1.15.0 and I also tried using TensorFlow 2.0 but when I did that the code failed immediately with a message indicating that tf.contrib is no longer included in TensorFlow so my assumption is that this code has not been ported to work for TF2. Please advise if there is a known version of TF that this code works with, it appears to be broken in its current state using the versions of TF that I've tried.
Thanks in advance for any insight or suggestions. And/or if there is a more up-to-date semantic segmentation model from TensorFlow other than DeepLab then please point me in the right direction.

@monocongo Please post this issue in tensorflow/models repo as this issue belongs to models repo and also you can get a faster response there. Thanks!

Thanks for the good advice, @gowthamkpr
As suggested this issue was raised on the tensorflow/models issues tracker (see 8137)

Hi，I fix this issue!
I got exactly the same issue on cenos7 with tensorflow==1.15.0,  for me, it is only related with the dataset generation issues!
With cityscapes dataset, the generation of tfrecord following the tutorial doc would be
.
├── train-00002-of-00010.tfrecord
├── train-00003-of-00010.tfrecord
├── train-00004-of-00010.tfrecord
├── train-00005-of-00010.tfrecord
├── train-00006-of-00010.tfrecord
├── train-00007-of-00010.tfrecord
├── train-00008-of-00010.tfrecord
├── train-00009-of-00010.tfrecord
├── train-00000-of-00010.tfrecord
├── train-00001-of-00010.tfrecord
├── val-00000-of-00010.tfrecord
├── val-00001-of-00010.tfrecord
├── val-00002-of-00010.tfrecord
├── val-00003-of-00010.tfrecord
├── val-00004-of-00010.tfrecord
├── val-00005-of-00010.tfrecord
├── val-00006-of-00010.tfrecord
├── val-00007-of-00010.tfrecord
├── val-00008-of-00010.tfrecord
└── val-00009-of-00010.tfrecord

the shell commands for me (in the /reasearch folder),
python deeplab/train.py --dataset cityscapes \
--dataset_dir=deeplab/datasets/cityscapes/tfrecord/ \
--train_logdir deeplab/datasets/cityscapes/exp/train_on_train_set/train/ \
--train_split=train_fine --model_variant=mobilenet_v3_large_seg \
--train_crop_size=769,769 --training_number_of_steps=1000 \
--decoder_output_stride=8 --image_pyramid=1 \
--image_se_uses_qsigmoid=1 --decoder_output_is_logits=1 \
--decoder_filters=19 --decoder_use_sum_merge=1 \
--aspp_with_squeeze_and_excitation=1 --aspp_with_concat_projection=0 \
--aspp_convs_filters=128 \
--image_pooling_stride=4,5 --image_pooling_crop_size=769,769

I use pretrained weights from mobilenet_v3_large_seg,  since the L71-80 of script tells me it should be  --train_split=train_fine，
_CITYSCAPES_INFORMATION = DatasetDescriptor(
    splits_to_sizes={'train_fine': 2975,
                     'train_coarse': 22973,
                     'trainval_fine': 3475,
                     'trainval_coarse': 23473,
                     'val_fine': 500,
                     'test_fine': 1525},
    num_classes=19,
    ignore_label=255,
)

(note that the parameter --train_split=train_fine)

BUT tfrecord  dataset I have all start with train-0000-...,  HERE IS THE  INCONSISTENCE !!!!
I change the name of tfrecord dataset to train_fine-00000-of-00010.tfrecord by hands,  all Segmented fault gone !!!
and the screen outputs show as expected:
......lalalalalallala........
nagement) is deprecated and will be removed in a future version.
Instructions for updating:
Use standard file utilities to get mtimes.
INFO:tensorflow:Running local_init_op.
I0331 21:53:58.600903<PHONE_NUMBER>75424 session_manager.py:500] Running local_init_op.
INFO:tensorflow:Done running local_init_op.
I0331 21:54:19.723121<PHONE_NUMBER>75424 session_manager.py:502] Done running local_init_op.
INFO:tensorflow:Starting Session.
I0331 21:54:25.378759<PHONE_NUMBER>75424 learning.py:754] Starting Session.
INFO:tensorflow:Saving checkpoint to path deeplab/datasets/cityscapes/exp/train_on_train_set/train/model.ckpt
I0331 21:54:25.692887<PHONE_NUMBER>26816 supervisor.py:1117] Saving checkpoint to path deeplab/datasets/cityscapes/exp/train_on_train_set/train/model.ckpt
INFO:tensorflow:Starting Queues.
I0331 21:54:25.693168<PHONE_NUMBER>75424 learning.py:768] Starting Queues.
2020-03-31 21:54:40.171982: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 23 of 100
2020-03-31 21:54:50.836214: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 33 of 100
INFO:tensorflow:global_step/sec: 0
I0331 21:54:54.143480<PHONE_NUMBER>34112 supervisor.py:1099] global_step/sec: 0
2020-03-31 21:55:02.310592: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 35 of 100
2020-03-31 21:55:15.670713: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 41 of 100
2020-03-31 21:55:27.116835: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 45 of 100
2020-03-31 21:55:30.685718: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 47 of 100
2020-03-31 21:55:43.929746: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 54 of 100
2020-03-31 21:55:55.429286: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 59 of 100
2020-03-31 21:55:58.944730: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 66 of 100
2020-03-31 21:56:10.205733: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 78 of 100
2020-03-31 21:56:25.282349: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 85 of 100
2020-03-31 21:56:31.110601: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 89 of 100
2020-03-31 21:56:41.034107: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:145] Filling up shuffle buffer (this may take a while): 98 of 100
2020-03-31 21:56:41.034194: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:195] Shuffle buffer filled.
2020-03-31 21:56:55.479292: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-03-31 21:59:02.041739: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10.0
INFO:tensorflow:Recording summary at step 0.
I0331 21:59:05.214339<PHONE_NUMBER>41408 supervisor.py:1050] Recording summary at step 0.
INFO:tensorflow:global step 10: loss = 3.5340 (2.648 sec/step)
I0331 21:59:49.024268<PHONE_NUMBER>75424 learning.py:507] global step 10: loss = 3.5340 (2.648 sec/step)
INFO:tensorflow:global step 20: loss = 3.2525 (8.487 sec/step)
I0331 22:00:49.050415<PHONE_NUMBER>75424 learning.py:507] global step 20: loss = 3.2525 (8.487 sec/step)
INFO:tensorflow:global step 30: loss = 3.2256 (8.564 sec/step)
I0331 22:02:40.427151<PHONE_NUMBER>75424 learning.py:507] global step 30: loss = 3.2256 (8.564 sec/step)
INFO:tensorflow:global step 40: loss = 3.2458 (12.522 sec/step)
I0331 22:04:02.487207<PHONE_NUMBER>75424 learning.py:507] global step 40: loss = 3.2458 (12.522 sec/step)

thanks for the link in stackoverflow https://stackoverflow.com/questions/58938886/segmentation-fault-training-deeplab-with-cityscapes
Cheers !

Hi,
I just checked your solution @Papageno2
1- I could make tfrecords successfuly
ls /hdd/Deeplab/models/research/deeplab/datasets/PQR/dataset/tfrecord/
train-00000-of-00004.tfrecord     trainval-00002-of-00004.tfrecord
train-00001-of-00004.tfrecord     trainval-00003-of-00004.tfrecord
train-00002-of-00004.tfrecord     val-00000-of-00004.tfrecord
train-00003-of-00004.tfrecord     val-00001-of-00004.tfrecord
trainval-00000-of-00004.tfrecord  val-00002-of-00004.tfrecord
trainval-00001-of-00004.tfrecord  val-00003-of-00004.tfrecord
2- I have two classes one background and other class, I edited data_generator.py L82-90 as the following
I have 176 samples as shown below
_PASCAL_VOC_SEG_INFORMATION = DatasetDescriptor(
splits_to_sizes={
'train': 150,
'train_aug': 100,
'trainval': 176,
'val': 26,
},
num_classes=2,
ignore_label=255,
3- I have a file called SegmentationClass contains the segmented images using LabelMe like this example

In JPEGImages I have png images like this

in ImageSets/train.txt I have 150 items name of images without extension val.txt 26 item trainval.txt 150 items.
4- The tensorflow version is 1.14.0
5-When I run the local_test.sh it runs smoothly with no errors, just to check if the error from TF versions, but it seems not.
6-My images sizes are 512*512
Finally:
but When Im running the python train command I'm facing the Segmentation fault (core dumped)
python deeplab/train.py
--logtostderr
--training_number_of_steps=30000
--train_split="train"
--model_variant="xception_65"
--atrous_rates=6
--atrous_rates=12
--atrous_rates=18
--output_stride=16
--decoder_output_stride=4
--train_crop_size="513,513"
--train_batch_size=1
--dataset="pascal_voc_seg"
--tf_initial_checkpoint=${hdd/Deeplab/models/research/deeplab/datasets/PQR/dataset/exp/train_on_tranval_set/init_modelsinit_models/deeplabv3_pascal_train_aug/model.ckpt}
--train_logdir=${hdd/Deeplab/models/research/deeplab/datasets/PQR/dataset/exp/train_on_tranval_set/train/}
--dataset_dir=${hdd/Deeplab/models/research/deeplab/datasets/PQR/dataset/tfrecord/} > output.txt  2>&1
The error is still the same, here is the log file(part of it)
INFO:tensorflow:Running local_init_op.
I0429 10:23:24.512071<PHONE_NUMBER>54688 session_manager.py:500] Running local_init_op.
INFO:tensorflow:Done running local_init_op.
I0429 10:23:24.996261<PHONE_NUMBER>54688 session_manager.py:502] Done running local_init_op.
INFO:tensorflow:Starting Session.
I0429 10:23:26.720231<PHONE_NUMBER>54688 learning.py:754] Starting Session.
INFO:tensorflow:Starting Queues.
I0429 10:23:26.721034<PHONE_NUMBER>54688 learning.py:768] Starting Queues.
Fatal Python error: Segmentation fault
Thread 0x00007fd1d578c700 (most recent call first):
File "/home/jvipai/anaconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1429 in _call_tf_sessionrun
File "/home/jvipai/anaconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1341 in _run_fn
File "/home/jvipai/anaconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1356 in _do_call
File "/home/jvipai/anaconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1350 in _do_run
File "/home/jvipai/anaconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1173 in _run
File "/home/jvipai/anaconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 950 in run
File "/home/jvipai/anaconda3/envs/py35/lib/python3.5/site-packages/tensorflow/contrib/slim/python/slim/learning.py", line 490 in train_step
File "/home/jvipai/anaconda3/envs/py35/lib/python3.5/site-packages/tensorflow/contrib/slim/python/slim/learning.py", line 775 in train
File "deeplab/train.py", line 458 in main
File "/home/jvipai/anaconda3/envs/py35/lib/python3.5/site-packages/absl/app.py", line 250 in _run_main
File "/home/jvipai/anaconda3/envs/py35/lib/python3.5/site-packages/absl/app.py", line 299 in run
File "/home/jvipai/anaconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/platform/app.py", line 40 in run
File "deeplab/train.py", line 464 in

the log for the error:
output.txt

What bothered me for several days was that the file path was wrong and the shell script was not written correctly, so I simply converted to the following, which was a bit ugly but useful.
!python train.py --logtostderr --num_clones 1 --fine_tune_batch_norm False --training_number_of_steps 5000 --train_split "train" --model_variant "xception_65" --atrous_rates 4 --atrous_rates 6 --atrous_rates 12 --output_stride 8 --decoder_output_stride 4 --train_crop_size 513,513 --train_batch_size 1 --dataset "pascal_voc_seg" --initialize_last_layer False --last_layers_contain_logits_only False --train_logdir ./checkpointwrited --dataset_dir ./datasets/pascal_voc_seg/tfrecord

The error in my case was that --dataset_dir was not pointed correctly to the tfrecord file (wrong path)


[Masthead v2.0.0]: Conduct design QA for the L0/Masthead v2.0.0 (Phase 1)

Engineering info:

JIRA Ticket: https://jsw.ibm.com/browse/INTF-241
DPO consulting: @oliviaflory

Description

This issue aims to capture the design QA task needed for the L0/Masthead v2.0.0 (Phase 1).

Storybook Environment

Visit the default Masthead preview - https://carbon-design-system.github.io/carbon-for-ibm-dotcom/masthead-v2/web-components/?path=/story/components-masthead--default
Adust the Masthead data (data-endpoint) knob to masthead v2
If nothing changes, visit the direct preview link
NOTE: We might look at moving the endpoint updating out of the knobs as this feature is inconsistent.

Additional information

Overview and scope of the engineering work should be included in the linked epic (#9208)

Design Specs

Desktop - https://www.figma.com/file/35JfN0Sg4ltIIjM7jBDKMk/Navigation?node-id=1970%3A110816
Mobile - https://www.figma.com/file/35JfN0Sg4ltIIjM7jBDKMk/Navigation?node-id=1970%3A111059

Acceptance criteria

[ ] Masthead v2 is able to authenticate using the different auth methods.

Breakpoints

[ ] 1. Mega menu should change to the hamburger menu at 956px browser width, see 3.4 in the Functional spec

Currently the mega menu is maintaining past 960px and appears broken with content falling below the tabbed section


Fixing check for gfm linting

Linting doesn't work any longer if Markdown linting is disabled.

Oh thank you I've encountered another issue with while using semistandard as well, going to release a patch version with your PR and this fix.
Thanks @timdp


Better communication between publisher and rops

Is there an existing issue for this?

[X] I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?
In Houdini addon we faced a problem when ROP node's parameters needs to be updated to match user selection in the publisher.
e.g. changing the render target requires updating some parameters on the ROP node respectively.

Currently, The logic responsible for setting ROP's attributes to favorite values, lives in the extractors.
which is against pyblish concepts.
https://github.com/ynput/ayon-core/blob/6df1a97446d485badcd91c5ae353c5a7962ac757/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_render.py#L25-L43
How would you imagine the implementation of the feature?
We need to figure out a way to sync the ROP's state with the selected options in the publisher.
Are there any labels you wish to add?

[X] I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:
There was an experimental PR https://github.com/ynput/ayon-core/pull/418 but it increased the complexity of the plugin.
Its idea was to set node's parameters when clicking save in the publisher and set the options to match the node when resetting the publisher.
Additional context:
No response

I'd like to mention that https://github.com/ynput/ayon-houdini/pull/2 implements a logic that achieves the mentioned enhancement request in this issue.
As the node parameters and the publisher attributes are synced.
From the node to the publisher and from the publisher to the node.
That logic is implemented in collect_instances by reading the rop parameters, creating the instance manually and adding it to the context and update_instances by the imprint method that propagates the changes from the publisher to the node.
Tagging @BigRoy for visibility.

I've linked this issue to #2 so it will resolve this. Is there anything else needed?
This https://github.com/ynput/ayon-core/pull/860 can help with syncing per instance attributes.

Is there anything else needed?

I think it's cool as my test here is https://github.com/ynput/ayon-core/pull/860#pullrequestreview-2326349076 the desired behavior.


Load video not longer works

When a video is loaded only the first frame is loaded and the video won't play

Partial fix https://github.com/i3drobotics/stereo-vision-toolkit/commit/a6175f9abd10c249743f175baf9e55f4b5f84f2f
Should at least play now.


VSX-LX505 doesn't work

Hallo,
I hope you can help me. I am a "normal" user in HA.
I have add the HACS ha-pioneer_async integration and die install wizard starts
I add the ip-adress and test some ports 8102, 23 and try some other ports there are open on the pioneer.
But I can´t integrate the receiver VSX-LX505.
I got this Error Message:
Cannot connect to AVR: [Errno 111] Connect call failed ('192.168.xxx.xxx', 8102)
2024-03-29 20:24:45.430 ERROR (MainThread) [custom_components.pioneer_async.config_flow] unexpected exception: AVR connection not available
2024-03-29 20:28:06.771 ERROR (MainThread) [aiopioneer.pioneer_avr] cannot execute system_query_mac_addr command: AVR connection not available
2024-03-29 20:28:06.772 ERROR (MainThread) [aiopioneer.pioneer_avr] cannot execute system_query_software_version command: AVR connection not available
2024-03-29 20:28:06.774 ERROR (MainThread) [custom_components.pioneer_async.config_flow] unexpected exception: AVR connection not available
Have someone a idee?
Where I can get more Logs?

This integration is unlikely to support your model of Pioneer AVR. The manual that I found online for your model of AVR is dated 2021, so it probably uses a newer protocol than the one implemented in this integration. You can try the Onkyo integration - the same company owns the Pioneer, Onkyo and Integra brands now, and apparently hardware is shared across all of the brands.
There is more discussion on AVR models that work with this integration here: https://github.com/crowbarz/ha-pioneer_async/issues/20

Hello, I have tried some Onkyo and Integra integration build-in HA and from HACS/Github.
Unfortunately no integration work.
Is there anybody with other ideas?
Is it possible to use RS232 AV control interface?
Here are websites with information:
https://www.reddit.com/r/homeautomation/comments/5olz46/home_assistant_and_rs232_av_control/
https://www.pioneerelectronics.com/StaticFiles/PUSA/Files/Home Custom Install/VSX-23TXH-RS232.pdf
https://github.com/Priyantha/nl.priyantha.pioneer-vsx-rs232

Is it possible to use RS232 AV control interface?

If it has an RS232 port, you should be able to use a ser2net bridge to use this integration (or similar such as https://github.com/yuri-rage/ESP-Serial-Bridge). Quick glance, the protocol itself appears to be identical to what has been built.
The initial error you've got though appears to say that what ever service is running on the ports you have tried, isn't responding on IP you have. Check the settings of the AVR to confirm its IP address and port numbers.

That is a feature rich unit you got there.  I think you should check the native services of HA:

DLNA Digital Media Renderer (Windows Media Player reference in the manual)
Sonos
Alexa Media Player
Amazon Alexa
Google Cast
web port looks to be 80 (admin/admin) maybe https (but unlikely)

If it is a Onkyo then you should see a when telneting to port 42424 , if that is the place then you would try https://github.com/miracle2k/onkyo-eiscp as crowbarz mentioned from that discussion.


Resign first responder when hiding keyboard

Fixes #610
Ended up doing this when the keyboard will hide, so it happens at that point immediately. Thought that would make more sense then doing so when the view will disappear.

@rnystrom how would I do that target-action with a notificationcenter observer?

It’s just an objc selector, so you should be able to send a param-less method like resignFirstResponder. So searchBar as the target and UISearchBar.resignFirstResponder as the action? Something like that.
Sent with GitHawk

Trying to do that, I can't seem to get around the Argument of '#selector' does not refer to an '@objc' method, property, or initializer, whatever I do.

Ah, cool. Fixed.

Super clean, love it.

Thanks for the help as well! :D


replace "talk" to "community"

have gitter link there instead

Easy, will do.
You can manage the entire menu yourself if you wish — https://github.com/resin-io/docs/blob/master/config/index.coffee#L12.

@emirotin I did this in: https://github.com/resin-io/docs/pull/239


[libjxl] update to 0.7.0

Library name: libjxl
New version number: 0.7.0
Other information that may be useful (release notes, etc...)
https://github.com/libjxl/libjxl/releases/tag/v0.7.0
Build notes:
libjxl now supports the CMake BUILD_SHARED_LIBS option, so the portfile needs be updated to use that.
The patches need to be updated.

Fixed by #27593


better bower configuration

currently when installing from bower, its copying all files which are not necessary
so please modify bower.json to ignore files which are not necessary

@lorvent what files would you suggest ignoring? For people creating custom builds, all the files in the repo may be desired.

@daneden for bower.json only two files are important (main files) animate.css animate.min.css
for custom builds, i guess people will download from repo or they can hack animate.css

@lorvent hmm, I think given that the Bower package has thus far included everything, and this is the first time this issue has come up, I’m going to leave the config unchanged.
I’ll consider this with the upcoming 4.0 release, but I’m betting that there are more people who will use the Bower package to get all of Animate.css—those who just want the compiled CSS will probably download it directly.

min!!!! please XD


New package: CTFlows v0.4.5

Registering package: CTFlows
Repository: https://github.com/control-toolbox/CTFlows.jl
Created by: @ocots
Version: v0.4.5
Commit: 072356af88a52ff9f4210793cdb703563b4448a2
Reviewed by: @ocots
Reference: https://github.com/control-toolbox/CTFlows.jl/issues/27#issuecomment-2212400105
Description: Flows: classical, Hamiltonian, from OCP and more

[noblock] Dear Admin,
Mainly with @jbcaillau, @PierreMartinon and @joseph-gergaud, we develop an optimal control toolbox :

GitHub repo
Documentation

This toolbox is composed of several packages:
flowchart TD
O(OptimalControl) --> B(CTBase)
O --> D(CTDirect)
O --> F(CTFlows)
F --> B
D --> B

We intend if accepted to switch from our local registry to the general. We should move CTBase.jl, CTDirect.jl, CTFlows.jl and the main package OptimalControl.jl.
Note that we have presented it at the last JuliaCon: see the presentation.


Answers to some common questions

I already put this in the latest pull request, but thought I should put it here too.

Some people have been asking about what will happen when 2.0 releases. I will rebase this project to that version, however, it won't be quick. v2.0 adds type-hints to the entire project, completely removes everything user-related, and changes a lot of things internally.
A lot of people have asked me to rename the project, because it conflicts with the original discord.py. I will not be doing this. I have chosen to keep the same package name in the name of backwards-compatibility. There is a scary amount of closed-source selfbots that cannot be easily edited to change import discord to import packagename as discord. Python has a great feature called virtual environments that can help people wanting to use both libs.

I also want to address another thing
I see a lot of Python beginners using this project to create something that would work perfectly fine as a regular bot. I want to make it clear that you shouldn't break the Discord ToS for no reason (no matter how bad it is), and that working with a library such as this or the original discord.py for your first coding adventure is not a good idea. Get familiar with Python first, and then come back to the mess that is the Discord API. If you do come back, consider using a regular bot.
I don't want script-kiddies getting banned for being curious. Been there, done that.
The reason I created this fork was to fix/improve upon discord.py's support of selfbots, and keep it maintained when discord.py removes it. Even though selfbots are against Discord ToS, I believe people should have a choice; writing code isn't against ToS, but using this library, unfortunately, is.

 It hasn't stopped bad actors from using them, it has only affected regular people trying to enhance their chat experience on what is (or at least used to be) a wonderful platform, with a wonderful community, and caring staff.
They had good intentions, but the selfbot detection is easy to work around (and always will be). Raids, dm spam, and all the other cons of selfbots still occur. Raiders, spammers, and advertisers don't care if their alts get disabled, or even if their mains get banned; they'll just generate a few hundred more tokens and continue. Disabled accounts only affect the people that aren't raiding, spamming, or advertising; just having fun. The selfbot ban only stops people that actually use Discord for keeping in touch with friends and being a part of communities they love, and wanted to tinker, carry around some extra chatting features, and add functionality to their servers.
Selfbotting is very low-risk to people that will abuse it, and high-risk to people that want to mess around and create cool things on their account.
The solution is not banning selfbotting as a whole. It is acting against people who abuse the Discord API.
If you support this, please go vote here and tell Discord how you feel.
For all of you saying "just use a bot":

You can't invite your bot to all the servers you're in
Certain actions are user-only
You can't impersonate yourself with a bot
...amongst other things

~Dolfies

A lot of people have asked me to rename the project, because it conflicts with the original discord.py. I will not be doing this. I have chosen to keep the same package name in the name of backwards-compatibility. There is a scary amount of closed-source selfbots that cannot be easily edited to change import discord to import packagename as discord. Python has a great feature called virtual environments that can help people wanting to use both libs.

I have yet to see a closed-source selfbot that isn't bundled as an exe? If they are bundled as an exe, they include the functions of the library that was released at the time of bundling. Maybe I'm missing something?

A lot of people have asked me to rename the project, because it conflicts with the original discord.py. I will not be doing this. I have chosen to keep the same package name in the name of backwards-compatibility. There is a scary amount of closed-source selfbots that cannot be easily edited to change import discord to import packagename as discord. Python has a great feature called virtual environments that can help people wanting to use both libs.

I have yet to see a closed-source selfbot that isn't bundled as an exe? If they are bundled as an exe, they include the functions of the library that was released at the time of bundling. Maybe I'm missing something?

The problem is that standard discord.py barely functions for selfbots. And, in versions that have intents, message.content is broken.

Ah okay. Though wouldn't it be the selfbot programmer's fault for releasing code that is no longer supported. I definitely love the approach towards backwards compatibility, but I feel like the programmers should get caught on with the times and spend time to update their software.


Prometheus' metrics in the operator are only exposed when the metrics server requests the metrics

Report
I have seen that metric keda_scaler_metrics_value  is updated when the value is queried by the ms (and the same for keda_scaler_error_totals and keda_scaled_object_error_totals), I think that it makes sense to update the metric after GetMetricsAndActivity  (inside GetScaledObjectState) because it has been read
KEDA Version
2.9.1

Is this related to the fact that apart from Metrics exposed by the Operator SDK, I only see keda_resource_totals and keda_trigger_totals metrics?
I was expecting to see keda_scaler_metrics_value, keda_scaler_errors, keda_scaler_error_totals and keda_scaled_object_error_totals, even if they were zero.

So you don't see these values once you create a ScaledObject?

I was able to see them after following this https://keda.sh/docs/2.9/operate/metrics-server/.
I can now see:

keda_resource_totals
keda_scaled_errors
keda_scaler_errors (don't appear in the docs or have a different name)
keda_scaler_metrics_value
keda_trigger_totals

Missing:

keda_scaler_error_totals
keda_scaled_object_error_totals

The latest official Grafana dashboard depends on some of these metrics.

So the supported metrics are (for 2.9.1.)
keda_scaler_metrics_value
keda_scaler_errors
keda_scaler_error_totals
keda_scaled_object_errors     # due to a bug this is now reported as keda_scaled_errors, has been fixed already
keda_resource_totals
keda_trigger_totals

Will try it and provide feedback @zroubalik. Thanks!

Is this related to the fact that apart from Metrics exposed by the Operator SDK, I only see keda_resource_totals and keda_trigger_totals metrics?
I was expecting to see keda_scaler_metrics_value, keda_scaler_errors, keda_scaler_error_totals and keda_scaled_object_error_totals, even if they were zero.

Not sure if this was supposed to be fixed since I'm rolling with the latest release v.2.9.3 and I am having the same problem.

This is what I'm getting
I was trying to get the grafana dashboard to work but as @nunoadrego pointed out, the dashboard depends on some of these metrics. I'm also unable to set some most of the variables for the dashboard apart from the data-source.
Any tips?


Add sample for document message pattern

$title

I think this could have gone two ways:

main that reads a file.
service that receive the file.
But we have here is service that read a file. This may work if we imagine user first ftp file to the server and then trigger the copy. But this a more difficult case to explain.

I think this could have gone two ways:

main that reads a file.
service that receive the file.

But we have here is service that read a file. This may work if we imagine user first ftp file to the server and then trigger the copy. But this a more difficult case to explain.

Are you referring below case for main ?
public function main() returns error? {
    string path = "./tests/leads.csv";
    http:Request request = new;
    request.addHeader("CRM_ORG", "123456789");
    request.addHeader("feature", "bulk-write");
    request.setFileAsPayload(path, contentType = mime:MULTIPART_FORM_DATA);

    http:Client zohoClient = check new ("http://api.zoho.com.balmock.io");
    ZohoResponse res = check zohoClient->/crm/v5/upload.post(request);
}


rotating MNIST

Use (sin(a), cos(a)) as output targets to handle periodic boundary conditions
For eval, measure performance on some range (eg input images from -45 to 45) and also the current task
Compare SGD+RB, offline SGD, Lofi with q in {0, 0.1} x alpha in {0, 0.1}, gamma=1, R=fixed, eta_0=0.01 (say)

The paper below uses a CNN with target ouputs
$[max(0, α), max(0, −α)]$. and uses L1 loss. They can predict orientation of natural images to within 3 degrees if the input is rotated within -30..30 degrees.
P. Fischer, A. Dosovitskiy, and T. Brox, “Image Orientation Estimation with Convolutional Networks,” in German Conference on Pattern Recognition, 2015, pp. 368–378, doi: 10.1007/978-3-319-24947-6_30 [Online]. Available: https://lmb.informatik.uni-freiburg.de/Publications/2015/FDB15/image_orientation.pdf
Other links

https://github.com/ZJCV/RotNet/tree/master
https://d4nst.github.io/2017/01/12/image-orientation

Also try classification as a task (with the same input data)


I'm just running a test here.

🤖
Automated submit by PRB0t

@imadeDev Here is an example using PR Bot. It doesn't let us set the person that authored the commits. I bet we could add it pretty easily though.

Feel free to close this.

@BassamAjam @imadeDev please close this PR.


shell: fixing printing macros

Update macros: shell_warn and shell_info to use correct
colour formatting.
Signed-off-by: Jakub Rzeszutko<EMAIL_ADDRESS>

Codecov Report

Merging #11653 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #11653   +/-   ##
=======================================
  Coverage   48.23%   48.23%
=======================================
  Files         279      279
  Lines       43291    43291
  Branches    10359    10359
=======================================
  Hits        20881    20881
  Misses      18270    18270
  Partials     4140     4140

Impacted Files
Coverage Δ

include/shell/shell.h
100% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


#591 Enhance Dark Mode Experience: Add a New Logo for Improved Visibility

🚀 Pull Request
Description
In this pull request, I added two new logo images: cabz.png (light mode) and cabz-dark.png (dark mode). I updated the image sources in the code to switch between these logos based on the theme (light or dark mode).
Fixes # (issue)

Added two new images (cabz.png and cabz-dark.png) in the /img folder.
Updated the src attributes of the logo images in the code to reflect the theme switch.
Ensured that the dark mode logo (cabz-dark.png) appears when dark mode is enabled, and the light mode logo (cabz.png) appears when dark mode is disabled.

Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update

Checklist:

[ ] I have added the new images to the /img folder.
[ ] I have correctly updated the src attributes in the code where required.
[ ] I have tested the logo switching functionality in both light and dark mode.
[ ] I have verified that both logos are displayed correctly based on the current theme.
[ ] I have ensured no other functionality was broken in the process.
[ ] My changes generate no new warnings or errors in the console.
[ ] I have added relevant comments or explanations where necessary in the code.
[ ] Screenshots of the final output are attached.

Screenshot of final output/video

@07sumit1002 pls check


How are the "Plural-Form" indices determined?

Hello!
What determines the "Plural-Form" formula in PO translation files?
I see that the actual way is to use the same order the plural forms appear in this JSON file https://github.com/php-gettext/Languages/blob/master/src/cldr-data/supplemental/plurals.json , which, I suspect, comes from https://github.com/unicode-org/cldr/blob/main/common/supplemental/plurals.xml
Is it how it should be though? Is the CLDR data not just the source of grammar laws in different languages, but also determines the order of "Plural-Form" indices in the PO file format?
My inquiry is based on the problems of different plural form formulas existing for the same language (in my case – the Latvian language). More specifically, formulas with different order of the plural forms.
If we use numbers "1", "2", "0" to denote the three existing plural forms in Latvian (the first one contains "1", the second one contains "2", the third one contains "0"), then the two different formulas being used are
"1" => 0, "2" => 1, "0" => 2
"1" => 1, "2" => 2, "0" => 0.
Poedit switched between the two formulas on 2018-05-11 (my isssue about that).
The previously used format matched the English better: singular = 0, plural = 1, third case (zero) = 2.
And it would be fine if the CLDR had the zero case put as the last one, but they didn't (for whatever reasons).
For Latvian, it is now zero = 0, singular = 1, plural =2.
Which differs from the English and differs from a lot of translation files already made with the old formula. Which is still correct, from the grammar point of view. But the automatic CLDR data importing tools introduced a different order that crated problems because various PO file editors and readers/users didn't expect different formulas (different forms index orders) for the same language.

The order of plural forms reflects the order of the Unicode CLDR names:

Zero
One
Two
Few
Many
Other

When languages don't define one or more of these cases, we simply take out that case from the indexes, but keeping the order of the remaining cases.
For example, in English we only have the one and other rules, so:

index 0 is for one
index 1 is for others

It could be that CLDR guy who wrote that list didn't give any special thought to the order of it though. And if they change the order (but keep the string keys, so who can blame them?), would you reorder indexes in the plural form formula?
I tried your tool back to 2015 version when it was built, and, yes, it does output the indexes in that order, so it's consistent all right. :) But PO files were created and used and "Plural-Forms" formulas were created (manually) also before that, so who defined the order then? What was the original consideration when creating those formulas? I don't think that CLDR used the same considerations, or even had PO files in mind at all.
As for the CLDR's "naming" of the plural forms.
"zero" is used only for 8 languages, and in the other 7 it actually consists just of the 0. So, is the naming even appropriate in the Latvian case?
Lithuanian is a similar language to Latvian. Their similar plural form that is called "zero" in Latvian, is called "other" in Lithuanian, and what is called "other" in Latvian, is called "few" in Lithuanian. So I don't think that the naming was done very rigidly and unambiguously to use it as the basis of determining PO plural form indices.
I guess that before auto-updating from CLDR, the more English-fitting version was mostly used by PO editors: 0 for singular, 1 for plural, 2 for special cases. And then CLDR named the special cases "zero" and put it as the first in their list (just because zero seemed to fit the first position best because it's the smallest of them all, right?), and plural form generators and, in turn, systems that use them started generating the other formula: 0 for special cases, 1 for singular, 2 for plural.
And it happened rather silently, so it created incorrect translations because the translation entries did not match the PO header and the plural forms formula. This problem is still in effect in some (maybe most, I don't know) WordPress translation projects, and "Loco Translate" does not support this new formula as well.

AFAIK there plural rule order is not standardized, and changing it within this library would be a breaking change.
BTW you can build your own order by using the categories property of the language instanced


CSS Theme breaks typing in list with Chrome

It's impossible to use the keyboard to type in the list when using Chrome browser. Normally, if we type the first letter, it will moves the focus to the first item having that letter in the list.
After some test on my side, I finally discovered that something in the stylesheet of selectric break this standard behavior only in special themes. We can reproduce the issue by going to demo page http://selectric.js.org/demo.html. When using the default theme, all is working well, but when choosing any other theme, it breaks the use of the keyboard,
Thank you.

@ymercille, we have not really an issue here. There was recently a minor update (1.11.0) which changed the way how elements are highlighted. Take a look at this commit.
I've checked the demo and can confirm that the highlighting is not working as expected. But it is working technically! We miss only some lines of css...
As a simple workaround just add the following rules to your css and change it to your needs. Pretty sure there will be an update as soon as possible. If you are interested, you could provide a pull request :)
.highlighted {
  background: grey;
  color: white;
}
``

I've updated the themes on demo page to reflect the latest changes.


DOCS-3416: Add information about processing output in SQL queries.

Added a section on how to process the query output, datasense support for it and added a link to the for each scope.

These comments have been resolved and added to the new templates in the DB doc. Closing this PR.


[Bug]: Duplicate key in default-config data.

Contact Details
What happened?
Some keys like

server.directories.import
server.jvm.additional
are duplicated across the data section of the default config map, causing errors in config map creation and/or helm rendering the templates.

Chart Name
neo4j
Chart Version
5.2.0
Environment
Issue seen on all the cloud providers (GCP , AWS , AKS)
Relevant log output
# values.yaml
neo4j:
  name: neo-name
  password: ""
volumes:
  data:
    mode: "defaultStorageClass"
services:
  neo4j:
    enabled: false
jvm:
  useNeo4jDefaultJvmArguments: true

# in the output of:
# helm template -n my-namespace -f values.yaml my-graph neo4j/neo4j

# Source: neo4j/templates/neo4j-config.yaml
# Default Neo4j config values, these are overridden by user-provided values in my-graph-user-config
apiVersion: v1
kind: ConfigMap
metadata:
  name: "my-graph-default-config"
  namespace: "my-namespace"
  labels:
    app: "neo-name"
data:

  # Neo4j defaults
  server.directories.import: import
  server.bolt.enabled: 'true'
  server.http.enabled: 'true'
  server.https.enabled: 'false'
  db.tx_log.rotation.retention_policy: 1 days
  server.jvm.additional: -XX:+UseG1GC
  server.jvm.additional: -XX:-OmitStackTraceInFastThrow
  server.jvm.additional: -XX:+AlwaysPreTouch
  server.jvm.additional: -XX:+UnlockExperimentalVMOptions
  server.jvm.additional: -XX:+TrustFinalNonStaticFields
  server.jvm.additional: -XX:+DisableExplicitGC
  server.jvm.additional: -Djdk.nio.maxCachedBufferSize=1024
  server.jvm.additional: -Dio.netty.tryReflectionSetAccessible=true
  server.jvm.additional: -Djdk.tls.ephemeralDHKeySize=2048
  server.jvm.additional: -Djdk.tls.rejectClientInitiatedRenegotiation=true
  server.jvm.additional: -XX:FlightRecorderOptions=stackdepth=256
  server.jvm.additional: -XX:+UnlockDiagnosticVMOptions
  server.jvm.additional: -XX:+DebugNonSafepoints
  server.jvm.additional: --add-opens=java.base/java.nio=ALL-UNNAMED
  server.jvm.additional: --add-opens=java.base/java.io=ALL-UNNAMED
  server.jvm.additional: --add-opens=java.base/sun.nio.ch=ALL-UNNAMED
  server.jvm.additional: -Dlog4j2.disable.jmx=true
  server.windows_service_name: neo4j
  server.panic.shutdown_on_panic: 'true'

  server.logs.config: /config/server-logs.xml/server-logs.xml
  server.logs.user.config: /config/user-logs.xml/user-logs.xml

  # Helm defaults

  # Bolt keep alive
  # this helps to ensure that LoadBalancers do not close bolt connections that are in use but appear idle
  server.bolt.connection_keep_alive: "30s"
  server.bolt.connection_keep_alive_for_requests: "ALL"
  server.bolt.connection_keep_alive_streaming_scheduling_interval: "30s"

  # If we set default advertised address it over-rides the bolt address used to populate the browser in a really annoying way
  # dbms.default_advertised_address: "$(bash -c 'echo ${SERVICE_DOMAIN}')"

  # Other
  internal.dbms.ssl.system.ignore_dot_files: "true"
  # Logging
  server.directories.logs: "/logs"
  # Import
  server.directories.import: "/import"

  # Use more reliable defaults SSL / TLS settings for K8s
  dbms.ssl.policy.bolt.client_auth: "NONE"
  dbms.ssl.policy.https.client_auth: "NONE"

Code of Conduct

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

Hi @Mahanmmi
I checked this out and don't see a problem.
running  helm install server1 neo4j --set volumes.data.mode=defaultStorageClass --set neo4j.password=test-auth --set neo4j.name=v5 --set jvm.useNeo4jDefaultJvmArguments=true --set services.neo4j.enabled=false works and I don't see any error in the logs

I won't cause any issues when used directly with helm, but in a FluxCD automated environment using its HelmRelease, it causes errors in Kustomize YAML parsing.

I see, I think it's because we have this function in the chart to deduplicate the YAML
{{- define "neo4j.configJvmAdditionalYaml" -}}
  {{- /* This collects together all server.jvm.additional entries */}}
  {{- range ( regexFindAll "(?m)^\\s*(server\\.jvm\\.additional=).+" . -1 ) }}{{ trim . | replace "server.jvm.additional=" "" | trim | nindent 2 }}{{- end }}
{{- end -}}

In the future, we would like to make the configuration more declarative with less "template magic". I'm not sure when we will get round to doing that though.
In the meantime, you could create the config in the config section or env section as environment variables

Yes, I want to do that, but since there is no option to keep the default config from getting created, the error stands as is. It would be nice to have the option to prevent the creation of the default config map entirely.

Ah, I see that has been disallowed
Error: execution error at (neo4j/templates/neo4j-statefulset.yaml:46:63): server.jvm.additional properties cannot be set in values.config. Set additional JVM arguments in values.jvm.additionalJvmArguments

Setting them as in env should work eg NEO4J_server_jvm_additional='-XX:+ExitOnOutOfMemoryError'

Yes, I want to do that, but since there is no option to keep the default config from getting created, the error stands as is. It would be nice to have the option to prevent the creation of the default config map entirely.

There was another request for users to provide their own configmap instead of creating a default. This does seem like a reasonable suggestion we can look into

related https://github.com/neo4j/helm-charts/pull/99

Hey @Mahanmmi @ojhughes
How did you guys end up resolving this? I'm still getting reconciliation issues with Helm irrespective of whether I put my config in config, env, or remove it all together.
I would prefer not to downgrade to 4.x where this wasn't an issue
Last Helm logs:
  Warning  error  4m36s (x8 over 6m13s)  helm-controller  reconciliation failed: Helm install failed: error while running post render on files: map[string]interface {}(nil): yaml
: unmarshal errors:
  line 57: mapping key "server.directories.import" already defined at line 14
  line 20: mapping key "server.jvm.additional" already defined at line 19
  line 21: mapping key "server.jvm.additional" already defined at line 19
  line 22: mapping key "server.jvm.additional" already defined at line 19
  line 23: mapping key "server.jvm.additional" already defined at line 19
  line 24: mapping key "server.jvm.additional" already defined at line 19
  line 25: mapping key "server.jvm.additional" already defined at line 19
  line 26: mapping key "server.jvm.additional" already defined at line 19
  line 27: mapping key "server.jvm.additional" already defined at line 19
  line 28: mapping key "server.jvm.additional" already defined at line 19
  line 29: mapping key "server.jvm.additional" already defined at line 19
  line 30: mapping key "server.jvm.additional" already defined at line 19
  line 31: mapping key "server.jvm.additional" already defined at line 19

I ended up using the helm template output to reconcile the actual resource manifests with the intent to use the chart again in the future when there is an option to override defaults, it is not the best solution but it works.

this is fixed in the following PR
https://github.com/neo4j/helm-charts/pull/165
Will be released as part of the next upcoming release


duration is returning negative value in IOS

it returns -2147483648 when I tried to get the duration of an audio

This will help https://www.youtube.com/watch?v=IMQdSTlTXjA


changing language from another package

adding my own language file in a cloned version and also adding it to the package.js import does not work. I get:
Errors prevented startup:
While building package wavy-status:
i18n\package-tap.i18n: Can't find the languages files path of the package `i18n'

Hi @JohanTh, do you still have issues with this? If you want I can include your translation into the official package so you don't have to.
Cheers.


Callback latency

Hi,
I'm using this project on my MCU to power a Ledstrip from HomeAssistant. Now when I toggle the strip from HomeAssistant, it responds immediatelly.
But HomeAssistant expects a state change callback. When it doesn't receive this within a few seconds, the UI will be reverted to the previous state.
McLightning gives this callback, however it seems to be delayed around 5 seconds. Does anyone know if this is a "bug" or some configuration issue that can fix this?
My hass configuration:
- platform: mqtt_json
  name: "LED Strip"
  state_topic: "home/NodeMCU_3_ha/state/out"
  command_topic: "home/NodeMCU_3_ha/state/in"
  on_command_type: 'last'
  effect: true
  brightness: true
  color_temp: true
  rgb: true
  optimistic: false
  qos: 0
  retain: true
  effect_list:
    - omitted

Not a bug, done intentionally to not overwhelm the esp8266 (and wdt reset) when one button mashes on HA.

Hi, i stumbled across this feature, too.
To change this behavior edit request_handlers.h
(change the 5 to something lower.
@debsahu is there any side effect beside the one you mentioned, when changing this value?


fatal error: cuda/include/cuda.h: No such file or directory

hi,
how can i solve this problem? very thanks.

I use cuda 9.0  ubuntu16.04 tensorflow1.6 python3.5


CYF_Glasgow | Mansoor Munawar | Module-User-Focussed-Data | Week 1

Self checklist
[ ✅] I have committed my files one by one, on purpose, and for a reason
[✅ ] I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
[✅ ] I have tested my changes
[✅ ] My changes follow the style guide
[✅ ] My changes meet the requirements of this task
Briefly explain your PR.
I have linked CSS style sheet within my index.html.
I have added style to my CSS style sheet within the body tag.
I have also added header and main tag to my index.html which contains content of the website.
I also removed the changes to css  style sheet +index.html file of multipage clone project as it was meant for Wire frame project
Questions
Ask any questions you have for your reviewer.

Hi @MansoorM11 Great job for make your first PR.
Have you tried to make your page look similar to the Wireframe picture in README.md file?
Looking into your code I see you added header and a paragraph. Would you be able to add those 3 articles with pictures, title, description in each, and a footer?

Hi @MansoorM11 Nice commits.
Here are my new suggestions for you:

Go to ttps://validator.w3.org/ and check your page for html errors. Make an attempt to apply their suggestions.
Head to https://pagespeed.web.dev and check your page there. Try to understand why your page falls below 50 in Performance and pay attention to their suggestions, especially about images on your page.

Hi @islam95  thanks for the feedback. I have tried to fix the images by compressing it,resizing, changing the format to webp . Also i used the "/validator.w3.org" to fix html errors. Let me know if their are anything else i need to do? thanks.

Looks good.


Adds random promoted image to win module

Fixes #4809
Calls reportback item with random & count 1 parameters to get a random promoted image. Adds the URI to the win module variables.

@angaither ready for review!

:+1:


Suggest: Replace text demo with movie demo on README.md

The current demo of the plugin in action is text, but I think it would be easier to see if it were replaced with a video.
(e.g. gif file)

Thank you. I had overlooked it. You're right.


(1.19.2) Multiple blocks don't have set tools or mining levels for mining them

Sieves, Barrels, and Crucibles don't have a proper tool or mining level set for them. For example, I cannot use an Iron Pickaxe for the Fired Crucible to pick it back up, nor can I use an Iron Axe for the Sieve.

I fixed this on the 1.20 branch. @LordDeatHunter do we care about backporting the fix?


Workshop to define a contribution

What
Hold a workshop in order to come up with a working definition of a community contribution.
Why
So the team and users of the service manual can understand exactly what a contribution is and how it works.
Relates to
EPIC: Community contribution #685
Depends on
Done when
Tasks we need to do:

[x] Schedule workshop to define contribution
[x] Complete workshop
[ ] Share finalised contribution definition with the rest of the team

First working draft of a contribution definition:

A contribution is when you add or change something in the service manual. Anyone using the service manual can provide a contribution. A contribution should be based on evidence or research insights and be available to be shared with the wider service manual community. By contributing to the service manual, you can help improve it for others in the future and make sure we are doing things right.
There are lots of different ways you can contribute to the service manual. Some of the ways you can contribute include [from smallest to largest?]:

Joining in with discussion by adding a comment to an issue
Documenting discussions about issues in GitHub
Correcting spelling mistakes or small errors on service manual pages
Submitting a bug report when something isn't working
Changing the code on a service manual page
Submitting research or evidence for existing components, patterns or style guide entries
Suggesting changes to existing components, patterns or style guide entries
Proposing a new component, pattern or style guide entry

I think this captures the combination of all the things we got from the research. Will read it again tomorrow because it probably needs refinement or perhaps, we play this back to the community and see what they think?

There are lots of different ways you can contribute to the service manual. Some of the ways you can contribute include [from smallest to largest?]:

Perhaps it could say big or small? @amyj2110

I really like the first paragraph @amyj2110, I think it covers everything from the contribution definition workshop well!
In the examples of how people can contribute, would "Correcting spelling mistakes or small errors on service manual pages" and "Submitting a bug report when something isn't working" completely cover "Changing the code on a service manual page", or are there other instances people would change service manual page code @davidhunter08 @sarawilcox?
Also, do we want to add another bullet to the list of examples that covers "Develop a component or pattern that has been approved by the design working group" to include the development for new parts of the design system?

I think this captures the combination of all the things we got from the research. Will read it again tomorrow because it probably needs refinement or perhaps, we play this back to the community and see what they think?

There are lots of different ways you can contribute to the service manual. Some of the ways you can contribute include [from smallest to largest?]:

Perhaps it could say big or small? @amyj2110

Ah sorry, I put the [from smallest to largest] in there as a suggestion for us, like should we list them from smallest to largest so we're not leading with the biggest and most complicated one.
Or did you mean say big or small somewhere in the sentence?

Also, do we want to add another bullet to the list of examples that covers "Develop a component or pattern that has been approved by the design working group" to include the development for new parts of the design system?

Yep, that's a good one. Could say something like that and also include:

"Develop a content style guide entry that has been approved by the content style council"?

Nice work @amyj2110
You got me thinking about contribution types last night and came up with this:
Contribution types for…
All repos (frontend, service manual, prototype kit):

Commenting (sharing research, discussing, asking a question) on a backlog issue
Reporting a bug (Create GitHub issue)
Fixing a bug / improving code or documentation (Create GitHub PR)

Content style guide:

Proposing a new addition to the content style guide (Create GitHub issue)
Developing a new addition to the content style guide (Create GitHub PR)

Design system:

Proposing a new component or pattern (Create GitHub issue)
Developing a new component or pattern (Create GitHub PR)

Prototype kit:

Proposing a new prototype kit feature (Create GitHub issue)
Developing a new prototype kit feature (Create GitHub PR)

@davidhunter08 that's great! Do you think it's worth mentioning that in the definition (about different repos) or will that confuse people further? 😄
Could be something we could use to direct people to the right place depending on what they want to do?

It's looking good. You say: "A contribution is when you add or change something in the service manual" but that would exclude some of the examples, like making a comment or sharing research. Is it that "A contribution is when you do something to help add or change something in the service manual"?
I can suggest some changes to wording but perhaps I should do that when we're closer to finalising things?

Ah sorry, I put the [from smallest to largest] in there as a suggestion for us, like should we list them from smallest to largest so we're not leading with the biggest and most complicated one.
Or did you mean say big or small somewhere in the sentence?

Now that you mention, i think it's a good idea to introduce the smallest contribution first. I was thinking about adding that within the sentence but it's not important.

that's great! Do you think it's worth mentioning that in the definition (about different repos) or will that confuse people further?

I think there is an idea for user type pathways on the Miro board as well as templates to quick-start their contribution type. I would not worry much about mentioning it as it could intimidate some users i feel. @amyj2110
Big fish can correct me @davidhunter08

Great to see this going on there.
In the first paragraph, you've got:
"A contribution should be based on evidence or research insights and be available to be shared with the wider service manual community. "
I'm always on the look out for 'should' because of my oft-quoted motto "seek and destroy 'should'"
In this case, I think that 'must' is too sweeping, as I don't need any evidence or research insights in order to point out a typo, or comment on something such as (ahem) the use of the word 'should'.
In fact, I think that this needs to be nuanced according to the type of contribution.
As you've also probably heard me say many times, I'm a great believer in keeping design systems as small as possible for many reasons, so I'd make the evidence requirements for new components really strict:
'If you plan to propose a new component, please try to design with our existing components first. Any proposal for a new component must be supported by evidence that a design with our existing components does not work well for users, as well as evidence that the new component clearly works better".
But I'd make the evidence requirements for small comments minimal to none.
In between, we have things like adding a new word to the content style guide where I believe that you want some evidence but it doesn't need to be quite as stringent as for a new component.
By the way: I do have evidence for these comments!

@amyj2110 Yeah I wouldn't mention the different repos in the definition, or else 🤯
It was the "right place" I had in mind. I've been told on a few occasions by designers that they are unsure of what goes where when it comes to creating issues, as we multiple repos (that all look the same).
My hypothesis would be something like:
If we group the types of contribution by the product (or even profession)
Then people will be clearer about what type of contribution goes where

Sorry I went a bit off topic from discussing the 'definition' @amyj2110

@amyj2110 I'm not sure that content designers will understand "develop" in "Develop a content style guide entry that has been approved by the content style council". (They might think develop is what devs do.) But they'd probably understand "Add or amend and publish a content style guide entry that has been approved by the Content Style Council".

@sarawilcox yes, perhaps you and I can thrash it out a bit more next week. And I take your point about the "Develop", I think what you've written there is a better way of framing it.
@davidhunter08 I get where you're coming from about the repos. Would it be beneficial to have different definitions within each repo?
@Tosin-Balogun agreed, it's nice to start with the smallest thing people could do! We'll try to keep this as simple and understandable as possible!
@cjforms thank you for contributing to the contribution definition! 😄 I am loathe to add "should" too, but like you say, not absolutely everything in that list requires "evidence" per se. I like your idea to nuance the amount and type of evidence depending on the level of contribution. I think that's something we could probably weave into the definition easily enough. I am of the mind that we want to make it as easy and simple for as many people as possible to contribute. If we can remove some perceived hurdles like this, then it will make it better. (I nearly typed should then and caught myself! 😅 )

The outputs from our workshop created these themes for the definition:

Mention the process (broadly) - what might the contribution process be, in simple terms
Should be based on evidence or research insights - contributions based on experience, evidence, insights or research
Sharing and documented discussion - discussion that is captured or documented in some way, and sharing could be a motivation for some
Where can you contribute? - understanding what forums people can contribute in, be it Slack, GitHub, backlogs or community forums
Motivations to contribute - feedback and improving the service manual, supporting others, helping the service manual and the NHS as a whole
Practical examples of what a contribution is - helping people understand the different ways to contribute through practical examples they can relate to
Who can contribute? - reiterating that anyone can contribute in some way

A word cloud to show the top 15 words used by participant to define a contribution to the service manual in their own words.

Version 2 of the contribution definition is here! Please read below, all comments welcome:

A contribution is when you do something to grow or improve the service manual. Anyone who uses the service manual can make a contribution.
Contributions should be based on evidence or research insights, where possible, and shared openly with the wider service manual community. By contributing to the service manual, you can help keep it relevant and up-to-date and make sure everything in it is high quality and meeting user needs.
There are lots of different ways you can contribute to the service manual, small or big. For example, you can:

join the discussion by commenting on an issue
document discussions about issues in GitHub
correct spelling mistakes or small HTML errors or fix other code on service manual pages
report a bug when something isn't working
share research or evidence for existing components, patterns or content style guide entries
suggest changes to existing components, patterns or style guide entries
make approved changes to the service manual after a Style Council or Design Working Group meeting
propose or create a new component, pattern or style guide entry

This is really coming along nicely.
I'm happy with everything apart from the sentence "Contributions should be based on evidence or research insights, were possible, and shared openly with the wider service manual community'.

I think it's in the wrong place. If you move it to AFTER the bullet list, then it will make more sense.
It's got two topics in one sentence. If you split it into two, it will be easier for us to work on it to get it right.
I don't know what "shared openly with the wider service manual community" means and I don't know why I have to share everything with everyone. For example, I recently spotted that someone had shared a document with the frequent typo "pubic" for "public". For obvious reasons, I preferred to mention that typo in private.
I don't agree with the 'should' and 'if possible' construct. It's confusing. My suggestion for that sentence is to make it more definite and more explicit, like this: "We prefer it when you mention any evidence or research insights that support your contribution. We need research before we create a new component, pattern or style guide entry and your research can help us to speed up the process".

Thanks @cjforms. I think you're right that we're addressing 2 things in 1 sentence. And yes, we could put it underneath the bulleted list because it's additional info. I'll have a go at rewording this.

How about these 2 sentences underneath the bulleted list?
We base new components, patterns and style guide entries on user research and insight. By including evidence in your contributions, you will help speed up the process.
We work in the open in GitHub so that as many people as possible can contribute and review the community's work.

@sarawilcox Your version is much, much better than mine. Thanks.

Closed this issue as we will start to test the working contribution definition with people using the service manual. This is tracked in https://github.com/nhsuk/nhsuk-service-manual/issues/826 #826


bug:  [14] is dangling at #20864.

Bug Report
Cairo version:
2.4.0-rc2
Note: This bug occured after updating our codebase to 2.4.0-rc2 while adding a feature, and could be a regression
Current behavior:
Running tests for this specific commit  in the SSJ codebase results in the error
scarb test
     Running cairo-test contracts
   Compiling test(contracts_unittest) contracts v0.1.0 (/Users/msaug/kkrt-labs/kakarot-ssj/crates/contracts/Scarb.toml)
    Finished release target(s) in 5 seconds
testing contracts ...
Error: Failed setting up runner.

Caused by:
    [14] is dangling at #20864.

After playing around a bit, it looks like the but was introduced by changing the type of the to parameter to Option<Address> instead of Option<EthAddress> in handle_execute  (previously handle_call), where
#[derive(Copy, Drop, PartialEq, Default)]
struct Address {
    evm: EthAddress,
    starknet: ContractAddress,
}

Before upgrading our codebase from 2.3.1 to 2.4.0-rc2, this was working fine. After the update, we had to revert this modification and bring back to: Option<EthAddress>. It is unclear where the bug is actually coming from and I didn't manage to isolate it.
We managed to get around it with the changes made in this pull request.
Steps to reproduce:
Checkout https://github.com/greged93/kakarot-ssj/commit/ae9fc7b323e8ac4a3393c5164dc56ce6194dc1d1, run scarb test -p contracts using scarb 2.4.0-rc2.
Check the pull request linked above to see which diffs solved the problem in the kakarot_core.cairo file.

I believe it is already solved at rc3. can you check?

Indeed, it's fixed! Thanks 💪


Professions details page

This PR:

Setups up an endpoint for displaying professional details via professions/{professionSlug}
Displays professional detail following the design here
Adds a slug column to the Profession entity
Adds a method to ProfessionsService for adding a new profession with a unique slug, and updates existing code for creating a profession to use this

This PR punts on the problem of where the back link should go. Given this needs to work without Javascript, we'll need to keep track of where the user has come from. It may be that this is worthy of its own story, to handle back links across the service. If a page has multiple entry points, it may be non-trivial where 'Back' should go.
Where we don't yet have data, I've err-ed towards making it obvious we're using placeholder data, rather than risk dummy static data getting left in the page.

/rebase


Fix condition in Kotlin project

The condition for the configuration and device descriptors in the Kotlin project was reversed (see Java project).

Good catch. Thanks!


Apple Podcast embed styled strangely

Link: https://www.matthewcassinelli.com/automators-70/
Code:

<iframe style="width: 100%; max-width: 660px; overflow: hidden; border-top-left-radius: 10px; border-top-right-radius: 10px; border-bottom-right-radius: 10px; border-bottom-left-radius: 10px; background-color: transparent; background-position: initial initial; background-repeat: initial initial;" src="https://embed.podcasts.apple.com/us/podcast/matthew-cassinelli-and-changing-your-shortcuts-usage/id1406364168?i=1000510908723&itsct=podcast_box&itscg=30200" height="175px" frameborder="0" sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation-by-user-activation">

Actual behavior:

Expected behavior:

It looks like the frameborder is being ignored/stripped and like the height is being ignored.

The ignoring of the height param can probably be fixed by changing this line:
https://github.com/Ranchero-Software/NetNewsWire/blob/098141eb7fdcfd4a5b75abf8a1c23f852b2ddd2e/Shared/Article Rendering/main.js#L4
to do parseInt(element.height) > 0.


add benchmark test for ipam

[ ] Make sure you have followed Kube-OVN Code Style.

What type of this PR
Examples of user facing changes:

Features
Bug fixes
Docs
Tests

add serial and Parallel test cases
serial:

add/del 10000  ipv4/ipv6/dual subnets
allocate/free 10000 ipv4/ipv6/dual pod ips

Parallel :

add/del 1000 ipv4/ipv6/dual subnets with 10 worker
allocate/free 10000 ipv4/ipv6/dual pod ips with 10 worker

Which issue(s) this PR fixes:
Fixes #(issue-number)

Benchmark results should be attached.

We should avoid the massive logs in benchmark ut:
I1205 02:17:27.082457    2717 subnet.go:455] release v4 <IP_ADDRESS> mac 00:00:00:8E:B7:2D for pod4381, add ip to released list
I1205 02:17:27.082473    2717 subnet.go:455] release v4 <IP_ADDRESS> mac 00:00:00:50:7A:8B for pod4382, add ip to released list
I1205 02:17:27.082503    2717 subnet.go:455] release v4 <IP_ADDRESS> mac 00:00:00:D2:7D:0D for pod4383, add ip to released list
I1205 02:17:27.082537    2717 subnet.go:455] release v4 <IP_ADDRESS> mac 00:00:00:A5:5A:F1 for pod4384, add ip to released list
I1205 02:17:27.082552    2717 subnet.go:455] release v4 <IP_ADDRESS> mac 00:00:00:39:53:6D for pod4385, add ip to released list
I1205 02:17:27.082567    2717 subnet.go:455] release v4 <IP_ADDRESS> mac 00:00:00:C2:2B:BE for pod4386, add ip to released list
I1205 02:17:27.082599    2717 subnet.go:455] release v4 <IP_ADDRESS> mac 00:00:00:9A:41:71 for pod4387, add ip to released list
I1205 02:17:27.082614    2717 subnet.go:455] release v4 <IP_ADDRESS> mac 00:00:00:87:3A:7B for pod4388, add ip to released list


Adding support for float and it's variant

Adding the following line at (https://github.com/hexon/mysqltsv/blob/2b86f827d04d8756e4837073ecf512595e49bc90/mysqltsv.go#L213C2-L213C9)](https://github.com/hexon/mysqltsv/blob/2b86f827d04d8756e4837073ecf512595e49bc90/mysqltsv.go#L213C2-L213C9) fixes the issue for float64. We have to handle all the other variants of float.
This is causing issue in https://github.com/sqlc-dev/sqlc/issues/3677
case float64:
    return []byte(strconv.FormatFloat(v, 'f', -1, 64)), nil

Would you mind testing this with go get github.com/hexon/mysqltsv@01b8881b2730ac29e76ef072d53691acb8e59908? If it works I'll tag it.

Yes, it worked.

Tagged v0.2.2. Thanks!


[files/install-deps(-worker).yaml] install python3-celery & python3-redis

They'd be pip installed anyway, but better be explicit.
Fixes https://sentry.io/organizations/red-hat-0p/issues/1707007212

LGTM


RG405M - Stuck in SD format loop

Every time the device boots up it tells me the sd card needs to be reformatted for Portable Storage.
I've let the device format, same issue.
I've tried exFAT and FAT32 formats, same issue.
Cannot get the device to recognize the stock SD card or a Samsung 512 Evo.
Please help! It was working fine 2 days ago.
Thank you.

I flashed GammaOS and now it's working fine, reading SD cards as normal.