Goal of Udacity Alumni Site

I think it is cool that we're building this app but I guess I missed the main vision for the purpose of work. Could you relay the purpose @RyanCCollins and @forbiddenvoid?

I will refer to David to give an official goal, but my goal is to connect Udacity Alumni in a meaningful way.  Great idea @bryanj4 !

Certainly think some context would really help!

I hope this site will help Udacity students to experience collaborative projects.

Hi @zhangtreefish I agree!! What else does every one hope for.  Ultimately, this is our project and your input is super valuable.  This application is something that all of us will hopefully use in a meaningful way to connect with each other.

We can use the site to share post graduation experiences, like what cool projects they are working on. It will inspire other students to keep on learning and if they want they can collaborate too.

I'm thinking this can be a networking/collaboration hub of Udacity alumni so we can help each other advance in life and in our jobs.

We are not just a group of individuals, we are a community. A community consisting of like-minded individuals who are constantly learning, and putting the skills they have learned into place. The Udacity Alumni Web Application was designed to host a community hob, where we can collaborate, and perceive things differently.
The Community will mean we can share all of our recent graduations, all of our new projects and news, in a more visual manor, as opposed to in a large amount of channels. This app will change the way we collaborate and think as a community, instead of just being a fun project to participate in.

I see the webapp as a "first-in-many"-adventure, which can take the project-based learning of the NDs to a next level.
Projects done collaboratively with other alumnis give us the chance to learn and practice some skills that I think are essential for the "real-life" work as software engineers. We built stuff in the NDs, but a lot of the setup, organization, and preparation has been done for us.
Building something like this from scratch, and in collaboration with others, holds a ton of new and exciting aspects to learn about and figure out. : )

In a way I see this project as a Capstone Project, our combined graduation task. It's that first job out of university when you realize that sure you learned a lot, but there are still all those other aspects to working that you maybe never even thought about.
I find it also very important that it is a real project with actual value. I've seen a lot of capacity and potential among Udacity students, and I find it beautiful when some of this is brought together and employed to make an actually useful project.
I think that's another aspect of "real-life" (or at least of how I'd want it to be).

Working as a Team, and creating value for the Udacity community, is in my opinion something that has the potential to benefit all those that are working on it, as well as all those future-alumnis out there and everywhere in the world ; )

@martin-martin Yeah! I have always felt that way.  That was the main reason we started Hacksmiths, to gain collaborative experience.  A couple people got jobs out of it too!  I totally agree that the learning doesn't really even start until your working with other people.   Nice post!!

Wow!
You guys made my day!
This is so inspiring. Thanks for making this whole thing more meaningful.
:-)

It's pretty much already been said, but I am really hoping to help create and take advantage of opportunities to collaborate and gain experience that will help us advance our skills and careers. It seems that is exactly what this project is already doing =)

There is enough already said here about the goal, I will like to share what I feel/expect from this project.
I feel that this project will be very useful for the existing Udacians to connect amongst each other while the app is being built. There is absolutely no doubt that the final product is going to be utterly useful to the future graduates.
But during the process, I hope to learn from the development team and wish to connect with the fellow Udacians! 😊

Hey everyone! I'm glad to see so much excitement and energy from this project! If you're curious about the goal/motivation for this, here's what I would say.

We need an alumni landing page to house news, updates, and information that is relevant to the interests of Udacity Nanodegree Alumni.

We need an opportunity for alumni to get practical, real world experience with their chosen fields. The app doesn't cover everything for that, but it's a good place to start.

If we want to have more project opportunities, it's important for us to try something and see where the challenges are. I've already learned a lot about what works and doesn't for these kinds of distributed team projects.

The app will server as a platform for some future alumni-based projects and eventually will be a place where alumni can find each other to work on their own projects. Right now, we're only building the CMS system, where we can place blog posts and news for alumni. In the future, we'll be adding additional features as components into the platform.

Let me know on Slack if you still have questions!


Replace the command line argument switches for GitVersion

This PR replaces slash with dash in the command line argument switches for gitversion.exe, so it is more Unix friendly. It will still fail exeucting on OS X due to GitTools/GitVersion#890, but once that has been fixed, this should ensure that GitVersion executes successfully on OS X.

Hi @asbjornu, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

This is related to https://github.com/cake-build/cake/issues/1025

@asbjornu this makes sense to me, and explains why I was seeing errors in the GitVersion build on Travis.

@cake-build/team I am going to go ahead and merge this, even though the Travis build failed, as there is a known issue with Travis.

@gep13 Excellent, thanks!


docs: add multiple selection docs

added docs for the multiple selection option following my question in #1851
I know it was asked not to add translations directly to the files, but I'm a bit lacking of how this can be done then for new features, so please let me know if I should remove them.
Also, the naming might be a bit unclear - I called it multiple selection, but it can also be named multiple discrete selection - gut it felt a bit too tedious and long.
I also saw that for other menu items that have multiple click actions, lie drawing a line, it was described as click, click, click - is this a convention? cause for multiple selection you also press shift and then click around, but again - it feels a bit too long to describe like this.
Open for your suggestions.

I know it was asked not to add translations directly to the files, but I'm a bit lacking of how this can be done then for new features, so please let me know if I should remove them.

Just add the en.json and remove the rest.
As for the label, maybe "Add element to selection"? Under "Select multiple elements" I imagine something like shift+drag, but maybe it's just me.

thanks @dwelle, removed unnecessary i18n changes.
I'm not sure I understood the other comment.

I meant that I'd use Add element to selection for the label, but I don't have a strong opinion. /cc @lipis

@dwelle I like yours better :-) changed

Cool, thanks for the PR!


ActionView::MissingTemplate

Hi there,
I am using rails 4.1.6 and ruby 2.1.3p242 and cocoon 1.2.6
.views/recipes/new.html.haml
.form-horizontal
   = form_for @recipe, :url => recipes_path, :html => { :multipart => true } do |f|
.form-group
  .col-sm-2.control-label= f.label :title
  .col-sm-6= f.text_field :title, class: "form-control"
.form-group
  .col-sm-2.control-label= f.label :description
  .col-sm-6= f.text_area :description, rows: 10, class: "form-control"
.form-group
  .col-sm-offset-2.col-sm-6= f.file_field :image
.row
  .col-md-6
    %h3 Ingredients
    #ingredients
      =f.fields_for :ingredients do |ingredient|
        = render 'ingredients_fields', f: ingredient
      .links
        = link_to_add_association 'Add Ingredient', f, :ingredients, class: "btn btn-default add-button",:partial => 'recipes/ingredients_fields'
 .form-group
  .col-sm-offset-2.col-sm-10
    = f.submit "Create", class: "btn btn-default"

.views/recipes/_ingredients_fields.html.haml
.form-inline.clearfix
  .nested-fields
    = f.text_field :name, class: "form-control"
    = link_to_remove_association "Remove", f, class: "form-button btn btn-default"

when I access /recipes/new. I got missing partial error message.

After I change the code in new.html.ham to
 = link_to_add_association 'Add Ingredient', f, :ingredients, class: "btn btn-default add-button",:partial => 'recipes/ingredients_fields'
which I add partial code in the end.
Everything works.
Why?

Cocoon will look by default for the singular form, in your case ingredient_fields. As documented. The error even clearly states which view he is looking for. A bit confused what you are asking me here?
You are free to use the plural, imho it is more logical to use the singular, since you are rendering a single item (from a collection).

Thanks for your explanation.
It seems like my bad which I should use singular form not plural.
:)

have u solve the error


Pytorch cuda image nvidia driver not installed?

RuntimeError: Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx

That is not RunPod issue as you run it on your own hardware. Drivers are handled on host level so it's saying that your PC do not have NVIDIA CUDA drivers installed.


data-header change

i cant change header dynamicly;
        var test = $("#a1").attr('data-header');
        console.log(test);
        var test2 = $("#a1").attr('data-header', 'new header');
        $("#a1").selectpicker('render');
                    $("#a1").selectpicker('refresh');
        console.log(test2);

i can see new header on console but not on select.

something to do wthi refresh function;
header = this.options.header ? this.$menu.find('.popover-title')[0].cloneNode(true) : null,
?

I believe the problem you experience can be solved in the same way as this issue was solved: data-icon doesn't update after refresh / render.

Fixed in v1.13.6.


Heartbeat miss problem with libevent

version
our product environment
AMQP-CPP:2.8.0
rabbitmq:3.7.7
also get the same problem in newest version
AMQP-CPP:4.1.7
rabbitmq:3.8.3
description
I use AMQP-CPP for connect to rabbitmq with libevent. I set a heartbeat with libevent handler, it works good at normal time. But when the client consume from a queue bind with a continuous send exchange, then the client cannot receive the rabbitmq's heartbeat any more,  consequently rabbitmq will close the client's connection.
I am not sure it is a rabbitmq's bug or a AMQP-CPP bug. please help me, thanks.
code
this just send message to a exchange "test_exchange",
5 messages per second
#!/usr/bin/python3
import pika
import sys
import time

connection = pika.BlockingConnection(
            pika.ConnectionParameters(host='localhost'))
channel = connection.channel()

channel.exchange_declare(exchange='test_exchange', exchange_type='fanout')

message = "info: Hello World!"
while True:
    time.sleep(0.2)
    channel.basic_publish(exchange='test_exchange', routing_key='', body=message)

connection.close()

the client, consume the queue "test" with libevent handler
the queue "test" is add before. and it bind without any exchange
 #include <iostream>
 #include "amqpcpp.h"
 #include "amqpcpp/libevent.h"
 #include "event.h"
 class MyEventHandler: public AMQP::LibEventHandler {
 public:
    MyEventHandler(struct event_base *evbase) : AMQP::LibEventHandler(evbase) {}
    virtual void onError(AMQP::TcpConnection *connection, const char *message) {
        std::cout << "ERROR: " << message << std::endl;
      }
    virtual uint16_t onNegotiate(AMQP::TcpConnection *connection, uint16_t interval) {
          return 5;
      }

    virtual void onHeartbeat(AMQP::TcpConnection *connection) {
          std::cout << "heartbeat"  << std::endl;
          connection->heartbeat();
      }
  };

  int main() {
      event_base* evbase = event_base_new();

      MyEventHandler handler(evbase);

      AMQP::TcpConnection connection(&handler,
                   AMQP::Address("amqp://guest:guest@localhost/"));

      AMQP::TcpChannel channel(&connection);

      channel.consume("test", AMQP::noack);

      event_base_dispatch(evbase);

      std::cout << "End" << std::endl;
      return 0;
  }

then compile and run the the send and consume client, when the queue "test" do not bind any exchange, I can see  consume client print a line "heartbeat" per 5 seconds. but when I bind "test" with "test_exchange"(the exchange have 5 messages per second) use rabbitmq web management, the consume client can not get rabbitmq's heartbeat any more, and print nothing, until rabbitmq check to close the connection.

rabbitmq server log:
2020-05-07 13:39:16.301 [info] <0.824.0> accepting AMQP connection <0.824.0> (<IP_ADDRESS>:56326 -> <IP_ADDRESS>:5672)
2020-05-07 13:39:16.362 [info] <0.824.0> connection <0.824.0> (<IP_ADDRESS>:56326 -> <IP_ADDRESS>:5672): user 'guest' authenticated and granted access to vhost '/'
2020-05-07 13:40:58.839 [info] <0.1087.0> accepting AMQP connection <0.1087.0> (<IP_ADDRESS>:56390 -> <IP_ADDRESS>:5672)
2020-05-07 13:40:58.843 [info] <0.1087.0> connection <0.1087.0> (<IP_ADDRESS>:56390 -> <IP_ADDRESS>:5672): user 'guest' authenticated and granted access to vhost '/'
2020-05-07 13:41:38.850 [error] <0.1087.0> closing AMQP connection <0.1087.0> (<IP_ADDRESS>:56390 -> <IP_ADDRESS>:5672):
missed heartbeats from client, timeout: 5s

This is because any valid messages from rmq should be treated as heartbeats:
https://www.rabbitmq.com/heartbeats.html
"Any traffic (e.g. protocol operations, published messages, acknowledgements) counts for a valid heartbeat. Clients may choose to send heartbeat frames regardless of whether there was any other traffic on the connection but some only do it when necessary."
You need send heartbeats by timeout like this:
std::uint16_t AMQPConnectionHandler::onNegotiate(AMQP::TcpConnection */*connection*/, std::uint16_t interval_sec)
{
    LOG_DUMP_FUNCTION(logger_);

    if (interval_sec != 0) {
        LOG4CPLUS_DEBUG(logger_, interval_sec << " sec heartbeat interval was agreed with server");
        server_heartbeat_interval_ = std::chrono::milliseconds(std::chrono::seconds(interval_sec));
        heartbeat_timer_.start(server_heartbeat_interval_ / 2); !! start async timer with callback  sendHeartbeat !!
    } else {
        LOG4CPLUS_WARN(logger_, "heartbeats disabled");
    }
    return interval_sec;
}

void AMQPConnectionHandler::sendHeartbeat() const
{
    LOG_DUMP_FUNCTION(logger_);

    if (!checkOnLostHeartbeats()) {
        std::ostringstream oss;
        oss << "Did not receive last " << connection_params_.max_lost_heartbeats_count() << " "
               "heartbeats from the server, seems like lost connection";
        LOG4CPLUS_ERROR(logger_, oss.str());
        on_error_cb_(oss.str().c_str());
    } else if (!connection_->heartbeat()) {
        const char *error{"Can not send heartbeat to server"};
        LOG4CPLUS_ERROR(logger_, error);
        on_error_cb_(error);
    } else {
        LOG4CPLUS_TRACE(logger_, "Heartbeat to server was sent");
    }
}

bool AMQPConnectionHandler::checkOnLostHeartbeats() const noexcept
{
    LOG_DUMP_FUNCTION(logger_);

    const time_utils::DurationMS max_interval{
        server_heartbeat_interval_ * connection_params_.max_lost_heartbeats_count()
    };
    return (time_utils::currentTimestamp() - last_heartbeat_time_) < max_interval;
}

But here's the problem: AMQP :: LibEventHandler does not allow you to read any messages as heartbeats, so at some point your code may decide that the server has stopped sending you heartbeats and this is a disconnection.
I am planning to make a request with this fix.

Thanks for @f0rtung 's reply, I just understand this problem.  It look's like may not be resolved recently.
Because our project network is intranet , so I just disable heartbeat for a temporary solution.


Where is download link?

Hello where is the download link? there is no download link to any information!!

Look at the configuration of the function "def UP104D7060F113(path)" which is responsible for uploading files.


Include laravel 11

@samehdoush can you work on this:
.github/workflows/run-tests.yml
Hence the test on Laravel 11 is passed by github action?

@samehdoush can you fix .github/workflows/run-tests.yml to pass the Laravel 11 tests?


Minor Syntax Issues

Add support for:

[x] Append :::
[x] Operators like >= etc.
[x] choose
[x] :-

Fixed in master.


Bug in Compare validation(compareAttribute)

What steps will reproduce the problem?
in this validation code :
['second_attribute', 'compare', 'compareAttribute' => 'first_attribute', 'operator' => '<'],
i tried to compare second attribute to first attribute and if second one is greater than first one show the error.
it means second attribute must be less than first one.
What is the expected result?
i expected when i set first attribute value and second one if the second one is greater than first one show the error tha contain (second attribute must be less than "first attribute".)
and when i set correctly don't show error and validate it.
What do you get instead?
But when the digits of first attribute are not equal to second on it show error wrongly.
i mean for example when first one value is 10 and second one is 7 its true and it hasn't error but yii show error for me, like this :

but when i set first attribute value 10 and second one 07 it work correctly. like this :

Additional info

Q
A

Yii version
2.0

PHP version
PHP Version 5.6.4-4ubuntu6.4

Operating system
Ubuntu x86_64

You should set CompareValidator::type to be 'nubmer'.
https://github.com/yiisoft/yii2/blob/master/framework/validators/CompareValidator.php#L51


Feature/binary

Problem
SimulariumIO only outputs the JSON version of .simularium format, it would be nice to also output binary.
closes #30
Solution
Split file writing functionality from TrajectoryConverter into a few writer objects, including abstract base Writer, JSONWriter, and BinaryWriter. Each of those implements Writer.save(), which replaces the old TrajectoryConverter.write_external_JSON(). The old TrajectoryConverter.write_JSON() functions are replaced with TrajectoryConverter.save() which uses the writers and defaults to writing binary (but can set binary=False to write JSON).
Note this changes the TrajectoryConverter API, renaming write_JSON() to save() and removing write_external_JSON(). There's also a new module writers.
Type of change

[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update
[x] This change requires updated or new tests

Change summary:

move JSON writing to Writer and JsonWriter
add BinaryWriter to write to binary format
split binary files so they don't exceed size limit by bytes
update TrajectoryConverter functions
add tests that check the float values in the buffer before writing binary are correct
update tests and docs
update jupyter notebook examples
add spec to the file format for binary
update binary writing to match new spec

Keyfiles:
I tried to comment on the diff too to make this easier to review.

file_format.md - updated spec to include binary files
simulariumio/init.py - added writers to main API
simulariumio/constants.py - added constants for binary format
simulariumio/trajectory_converter.py - moved _read_trajectory_data() to JsonWriter.format_trajectory_data() and moved part of _get_spatial_bundle_data_subpoints() to Writer._get_frame_buffer() so it can also be used by BinaryWriter. Updated to_JSON() to use JsonWriter, changed write_JSON() to save(binary=True), and removed write_external_JSON() since that's now handled by JsonWriter.save().
simulariumio/writers/binary_chunk.py - added this object to store info about a chunk of data that will be saved to binary, which allows the trajectory to be split into multiple files if the data is too large
simulariumio/writers/binary_values.py - added this object to store values to be saved in binary and their corresponding format strings
simulariumio/writers/binary_writer.py - format data and save as binary in save()
simulariumio/writers/json_writer.py - moved TrajectoryData reading and JSON writing from TrajectoryConverter here, except moved parts of the old TrajectoryConverter._read_trajectory_data() to Writer in order to reuse it for writing binary.
simulariumio/writers/writer.py - abstract base Writer that defines an API with format_trajectory_data() and save() and also has a few functions used by both implementing classes.

Codecov Report

Merging #60 (c5e8fbd) into main (042f7a1) will increase coverage by 0.07%.
The diff coverage is 86.13%.

@@            Coverage Diff             @@
##             main      #60      +/-   ##
==========================================
+ Coverage   90.49%   90.56%   +0.07%
==========================================
  Files          76       82       +6
  Lines        2451     2608     +157
==========================================
+ Hits         2218     2362     +144
- Misses        233      246      +13

Impacted Files
Coverage Δ

simulariumio/trajectory_converter.py
65.30% <50.00%> (-9.94%)
:arrow_down:

simulariumio/writers/json_writer.py
61.62% <61.62%> (ø)

simulariumio/writers/binary_writer.py
87.50% <87.50%> (ø)

simulariumio/writers/binary_chunk.py
94.73% <94.73%> (ø)

simulariumio/writers/writer.py
96.49% <96.49%> (ø)

simulariumio/__init__.py
90.90% <100.00%> (+0.90%)
:arrow_up:

simulariumio/constants.py
100.00% <100.00%> (ø)

simulariumio/file_converter.py
95.00% <100.00%> (ø)

...ariumio/tests/converters/test_cytosim_converter.py
100.00% <100.00%> (ø)

...ulariumio/tests/converters/test_mcell_converter.py
100.00% <100.00%> (ø)

... and 24 more

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 042f7a1...c5e8fbd. Read the comment docs.

from meeting early September:

trajectoryInfo and plotData blocks are still in JSON only, can be saved to same file with binary spatialData
to pack different types into binary: https://docs.python.org/3/library/struct.html#struct.pack (from Dan)

A couple of issues as I start writing a typescript parser for this.

The example file you gave me is little endian.  Make sure that the python code is enforcing/guaranteeing this.
For the headers of individual blocks, the spec says that blocktype comes before block size but in the file you gave me, block size came first.
The block size saved into the block actually is the block offset, not its size. (This one renders the file unreadable till it's fixed)
Make sure (I haven't checked) that the block size includes the block header data (its size and type). We should note that in the spec.  To get the raw data from the block you have to read (blocksize-blockheadersize) bytes from (blockoffset+blockheadersize) offset.

One more thing I have noticed.  I think for the spatial data, it will be convenient (and possibly necessary) to have a byte length as a part of each frame in the spatial data info.  I think the back end needs to be able to transmit bundles of data that don't necessarily end on frame boundaries, and having that byte length would allow us to know where the frame was split. (Much like the EOF signature).

@toloudis ok 1 is done.
For 2-4, my tests are checking those things, or I just checked them, and they should be correct. But I didn't do the offsets correctly, I forgot to go back and multiply to put them in bytes, seems like that would do it. Now all offsets and lengths are in bytes.
I also updated the offsets within the spatial block to be local to the block and added frame lengths. Just like for the blocks in the file header they are intermixed with frame offsets (i.e. frame 0 offset, frame 0 length, frame 1 offset, frame 1 length, ...).
Data is updated at same URL. Let me know if anything else is off!


about bash compile_3rdparty.sh

Thank you for your sharing and good work
I use sudo docker build -t rnnpose .  built workplace,
And run contrainer like that, sudo docker run  -it  --runtime=nvidia --ipc=host  --volume="/home/ivclab:/home/ivclab"  -e DISPLAY=$DISPLAY -e QT_X11_NO_MITSHM=1  rnnpose bash
But when i cd scrips I got error:
(py37) root@167304171d64:/home/RNNPose# cd RNNPose
bash: cd: RNNPose: No such file or directory
And i downloaded the code in /home/RNNPose
Could you please give me some advice?
I am a fresh man for docker and sorry to ask a silly problem

it works now, thanks!


Make unit test faster (from 360s down to 110s)

Issue Number

Overview

2a545b7f885a974ff64261538e83e6a250facd35
:round_pushpin: sprinkle some 'parallel' in unit tests
Some visible gain in time from a baseline of 362s down to 277s with
-j4 & +RTS -N4. Unfortunately, we can't parallelise the database tests
as easily.

44c88ad1326c7f12412ee581ca26427ee055b5e2
:round_pushpin: make db properties tests parallelisable and parallelise them.

c3f48d92240097ff9e7b5ab197bcea0fb873b48d
:round_pushpin: make pool db unit tests run faster (80s -> 16s)
I've mainly relaxed some of the coverage constraints (which are really only there to make sure that tests are going through enough interesting cases, but there's no need to expect a strict coverage). I've also made sure to not generate lists that are too large if not needed to not burn CPU for no reason.

0d15e194955cf3e3f4229dbc69758a3db0e2ba20
:round_pushpin: reduce required number of successes for some long properties

We've seen the rebalance selection property fail in 1400 and 1997 tests, there's no need to go to 10000.

The timing test for the logging middleware could really be a unit test, we are using QuickCheck here just
for the reporting and because we were too lazy to think about good arbitrary values. Testing with 10 values
is already more than sufficient.

depleteUTxO is long, and we are testing for 5 different values, although some have very similar results. I've
picked a more sparse scale to still get to test various scenarios, but reduce the overall property time.

Various properties for 'depleteUTxO' were run with max success of 1000, that's unecessary large.

60a6b1993ccc1f6c8648c36e49dc5ff669473aa8
:round_pushpin: remove 'JormungandrKey' and surroundings.
Fortunately, 'ShelleyKey' is a drop-in replacement for everything that referred to 'JormungandrKey' in the database. It's good to finally do this because, most of the tests were still executed on the 'JormungandrKey' whereas most of what's used in production is actually 'ShelleyKey' ... we know that the underlying implementation is equal, but that's a bit dodgy :| ...

Comments

Note: this is eating up to 40% of my available RAM though, so about 10 GB. Seems still okay-ish ?

bors merge


Check for alignment of variables used in atomic access.

From sync/atomic:
On both ARM and x86-32, it is the caller's responsibility to arrange for 64-bit alignment of 64-bit words accessed atomically. The first word in a global variable or in an allocated struct or slice can be relied upon to be 64-bit aligned.

This should be possible to diagnose statically and warn about.

I am going to postpone this until staticcheck has better (i.e. automatic) support for build tags.


[html] Add charset and author meta to suggestions

Can this common uses added to list also like meta:desc and meta:kw was added?
meta:charset = <meta charset="UTF-8">{ End cusrsor here }
meta:auth = <meta name="author" content="{ End cusrsor here }">

And here also one suggestion could improve Its end cursor position
meta expanded to <meta>{ End cusrsor here } it should be <meta { End cusrsor here }>

Hi @pixieaka,  meta:utf already sets the charset=UTF-8. As for the meta:auth, it is awaiting approval, hopefully it will be merged soon.

@justinemojal meta:utf expanded to <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">. My request for meta:charset = <meta charset="UTF-8">

You are right, @pixieaka. meta:charset now added to pull request

@justinemojal Also meta expanded to <meta>{ End cusrsor here } it should be <meta { End cusrsor here }>. Can you add this change also to your PR?

Hi @pixieaka, will see if I am able to implement that behavior.

Now added to PR, @pixieaka. #https://github.com/emmetio/emmet/pull/646

@justinemojal That's great! Hopefully it will be merged soon.

@rzhao271 Can you track this?


Doesn't actually work?

This has only worked once, and only with Titan EX. Why? I have tried with a ton of things and no radar or anything. Is there a discord that people can use for support or something?

Discord: https://discord.gg/Zzrcc8kmvy
I assume you didn't do any supported content - it is really mostly aimed at extremes/savages/ultimates type of things, and mostly for endwalker content. You can look at the sources (modules/) to see what exact modules are supported.


Fix mapping service ports

Bumps release to v0.25.0
Fixes a missing port in mapping-service that is used for probes in staging and produciton, although not for service

/kind release
/kind bug
/kind documentation
/priority important-soon
/assign

/lgtm

/approve


Improve poll versus watchman selection

[ ] Detect if watchman is broke and fallback to poll
[x] Add parameters to force a selection
[ ] Maybe figure out why watchman failed in my dev container and try to prevent that?

Its worth calling out that crab eye, which doesn't exist yet, is intended to be a universal replacement for watchman and would ideally perform better


Build rc wheels in parallel to main wheels

This will greatly speed up our time to release (now docker artifacts will be the bottleneck, though we could do something similar for them if needed

Example of this running on a non-rc - https://github.com/apache/beam/actions/runs/10516450029 - technically used some extra compute, but all the (empty) RC stages took <30 seconds, takes 3.5 hours
Example of this running on a (fake) RC - RC faked with https://github.com/apache/beam/commit/1048b6e1b7b4dac47538af649d5dc63c857a50b6 - https://github.com/apache/beam/actions/runs/10516478683 - takes 5 hours. I expect this may be on the higher end since the RC wheels themselves took quite long despite being the same as the normal wheels, which took 4 hours. Still is an improvement regardless, but hopefully it will be more like <4 hours in general. It should also be driven down when we deprecate python 3.8
Example of running without this change on an RC - https://github.com/apache/beam/actions/runs/10408455748 - takes 7 hours

Fixes #32217

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

Still experimenting, but I think https://github.com/apache/beam/pull/32297 is actually a better way of achieving the goal of faster builds here. We could do both, but I think that PR will be good enough so we can avoid the extra complexity of doing both.


fix(search): fixed search

Fixes #4149
Describe the changes you have made in this PR -
Screenshots of the changes (If any) -
Note: Please check Allow edits from maintainers. if you would like us to assist in the PR.

@VaibhavUpreti @vedant-jain03 please review

https://github.com/CircuitVerse/CircuitVerse/assets/13868@VaibhavUpreti /83107ce8-a155-4664-89f1-c9d02f15681c
@VaibhavUpreti

https://github.com/CircuitVerse/CircuitVerse/assets/138685168/218e4e70-803d-4a08-8a90-22c8ae7b72c7
@VaibhavUpreti

a7cbf74f-c006-473a-81fb-cdf334d24870.1.mp4
@VaibhavUpreti

In the mobile screen keep the selector and textbox at same line and the button on next line with full width


Default prefix

Great Nuxt module! ✨
I wonder whether it would make more sense to set the default prefix to HeadlessUi instead? This makes it more distinctive and whoever reads the code knows immediately where the component comes from. Headless on its own could be, in theory, related to anything (e.g. a component coming from a headless CMS).

Hey 👋 Thank you for your feedback. I personally thought that the Headless prefix is sufficient to distinguish from other components and HeadlessComponent or headless-component is easier to write than HeadlessUiComponent or headless-ui-component. However you made a point about headless CMS.
Still, I believe that for the majority of people the current prefix is the most convenient and changing it would be a breaking change. However, I can consider it for a v2 release, if there is enough demand for it. In the meantime, you can just change the prefix for your project if that works better for you.
Note that you can also set the prefix to an empty string in which case you can just use the component names directly. Beware that this might conflict with your own components.

Appreciate your comprehensive response! Fully agree on all the points. Being able to set a custom prefix is completely sufficient to satisfy everyone's preferences, regardless of the defaults.
Closing :)


Fix memory leak with light maps

Should fix leak(created with recent reduz commit):
WARNING: 2 RIDs of type 'StorageBuffer' were leaked.
     at: _free_rids (drivers/vulkan/rendering_device_vulkan.cpp:7185)

Direct leak of 49168 byte(s) in 1 object(s) allocated from:
    #0 0x7f61343e8517 in malloc (/lib/x86_64-linux-gnu/libasan.so.6+0xb0517)
    #1 0x116503bb in Memory::alloc_static(unsigned long, bool) core/os/memory.cpp:82
    #2 0x101005d2 in RasterizerSceneHighEndRD::LightmapData* memnew_arr_template<RasterizerSceneHighEndRD::LightmapData>(unsigned long, char const*) core/os/memory.h:150
    #3 0x100afe04 in RasterizerSceneHighEndRD::RasterizerSceneHighEndRD(RasterizerStorageRD*) servers/rendering/rasterizer_rd/rasterizer_scene_high_end_rd.cpp:3106
    #4 0x1000552a in RasterizerRD::RasterizerRD() servers/rendering/rasterizer_rd/rasterizer_rd.cpp:186
    #5 0x1a37f89 in RasterizerRD::_create_current() servers/rendering/rasterizer_rd/rasterizer_rd.h:83
    #6 0xf8fe9b2 in Rasterizer::create() servers/rendering/rasterizer.cpp:67
    #7 0xfa59cd4 in RenderingServerRaster::RenderingServerRaster() servers/rendering/rendering_server_raster.cpp:263
    #8 0x1a97b85 in Main::setup2(unsigned long) main/main.cpp:1299
    #9 0x1a926b2 in Main::setup(char const*, int, char**, bool) main/main.cpp:1200
    #10 0x19928aa in main platform/linuxbsd/godot_linuxbsd.cpp:49
    #11 0x7f61331ce0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

I didn't check yet if it works(or even if compile), because my computer is busy now, but it should.

When I read the PR title, I thought you found a bug that caused light leaks in lightmaps :smile:

Thanks!


[7.3.x] JBPM-6210: Triple click on full screen button breaks layout

@paulovmr Could you please include comments if a PR is a cherry-pick.. it makes review easier :-)


syntax highlighting breaks with inline when statements.

Hi, it seems that syntax highlighting has an issue with odin's single line when statement.  Attached are screenshots demonstrating what I mean.

as per the comment on #13 , I'll look into this but I'm not prioritizing it. It's likely that I just forgot to add a rule for that.


[Bug Report] media_kit takes to long to dispose of mpv instances

found a small issue on windows and verified it on linux, mpv doesn't release the ram mpv_terminate_destroy() is called which is fine, but due to how the lock is setup the time for it takes for the lock to unlock increases seemingly linearly to an extent for every new instance created before the last instance is destroyed. (10s for the first instance, 20s, 30s)
this means if you are flicking through and mpv is auto playing you can be waiting more then 40+ seconds for each instance to release it's memory. (reproducible on media_kit_test tabs stress test by rapidly swapping between tabs) the worst I measured was 6m to release the ram to initial ram usage after about 30s of rapidly swapping between tabs. it had gotten up to 1.2gb of ram usage.
as a aside note, I wonder if this is causing an issue with linux too. I'm now wondering if GDK isn't releasing the memory because G_OBJECT_CLASS(video_output_parent_class)->dispose(object); is called before mpv_terminate_destory()? not something I have the time to test until a later point in time.
optimizing the lock is needed, but either optimizing the time the lock takes until it's not noticeable, or making sure the lock doesn't take extra time per instance, either would be fine in isolation but probably both should be done if possible
this may be related to #263.

Closing in favor of #263; which will be kept open until next stable release.
The referenced commit will fix the issue & thus the memory release behavior.

Please re-open this, the issue still persists and can be replicated on the tab test downloaded from here https://github.com/alexmercerind/media_kit/actions/runs/5637133921 on both windows and linux.
this makes applications that primarily watch short videos or applications where a user could swipe past a video nearly unusable on low ram systems since after 20 or so videos ram usage can climb really high.

Please re-open this, the issue still persists and can be replicated on the tab test downloaded from here https://github.com/alexmercerind/media_kit/actions/runs/5637133921 on both windows and linux.
this makes applications that primarily watch short videos or applications where a user could swipe past a video nearly unusable on low ram systems since after 20 or so videos ram usage can climb really high.

Your issue is #68 not this.

that issue seems specific to linux? I verified this behaviour on windows too

that issue seems specific to linux? I verified this behaviour on windows too
EDIT: monitoring ram for the application has ram drop as each new one gets added
flutter: media_kit: Player.dispose:<PHONE_NUMBER>384
flutter: media_kit: Player.dispose:<PHONE_NUMBER>328
flutter: media_kit: Player.dispose:<PHONE_NUMBER>464
flutter: media_kit: Player.dispose:<PHONE_NUMBER>408
flutter: media_kit: Player.dispose:<PHONE_NUMBER>928

The majority of memory is freed right after Player.dispose. Only 5MB is released upon mpv_terminate_destroy.
The most precise explanation can be: A previously mpv instance is only terminated once no Player class method is called in last 10 seconds... Sorry memory does get freed & this behavior is better than crashing your application.

as explained by OP the issue is that it is not 10s, it's that it takes longer and longer each run
diff --git a/media_kit/lib/src/player/native/player/real.dart b/media_kit/lib/src/player/native/player/real.dart
index 7d75c16..d7abadd 100644
--- a/media_kit/lib/src/player/native/player/real.dart
+++ b/media_kit/lib/src/player/native/player/real.dart
@@ -92,6 +92,8 @@ class NativePlayer extends PlatformPlayer {

       Initializer.dispose(ctx);

+      //
+      Stopwatch stopwatch = new Stopwatch()..start();
       TaskQueue.instance.add(
         () {
           bool safe = true;
@@ -102,10 +104,13 @@ class NativePlayer extends PlatformPlayer {
           if (safe) {
             mpv.mpv_terminate_destroy(ctx);
             print('media_kit: Player.dispose: ${ctx.address}');
+            print('terminate_destroy_after: ${stopwatch.elapsed}');
           }
           return safe;
         },
       );
+
+      //
     }

flutter: media_kit: Player.dispose:<PHONE_NUMBER>256
flutter: terminate_destroy_after: 0:00:20.003949
flutter: media_kit: Player.dispose:<PHONE_NUMBER>488
flutter: terminate_destroy_after: 0:00:29.795794
flutter: media_kit: Player.dispose:<PHONE_NUMBER>584
flutter: terminate_destroy_after: 0:00:39.766335
flutter: media_kit: Player.dispose:<PHONE_NUMBER>984
flutter: terminate_destroy_after: 0:00:49.732073
flutter: media_kit: Player.dispose:<PHONE_NUMBER>880
flutter: terminate_destroy_after: 0:00:59.707014
flutter: media_kit: Player.dispose:<PHONE_NUMBER>568
flutter: terminate_destroy_after: 0:01:09.678630
flutter: media_kit: Player.dispose:<PHONE_NUMBER>400
flutter: terminate_destroy_after: 0:01:19.502111
flutter: media_kit: Player.dispose:<PHONE_NUMBER>592
flutter: terminate_destroy_after: 0:01:29.444567
flutter: media_kit: Player.dispose:<PHONE_NUMBER>248
flutter: terminate_destroy_after: 0:01:36.242731
flutter: media_kit: Player.dispose:<PHONE_NUMBER>624
flutter: terminate_destroy_after: 0:01:45.827320
flutter: media_kit: Player.dispose:<PHONE_NUMBER>856
flutter: terminate_destroy_after: 0:01:55.373365
flutter: media_kit: Player.dispose:<PHONE_NUMBER>448
flutter: terminate_destroy_after: 0:02:04.935463
...

it gets longer and longer and longer, when testing the app Im working on it only took about 2-3min to use 2.8gbs of ram in release mode, this WILL cause the app to crash, well not crash, but cause windows to OOM it on systems with low ram.

as explained by OP the issue is that it is not 10s, it's that it takes longer and longer each run
diff --git a/media_kit/lib/src/player/native/player/real.dart b/media_kit/lib/src/player/native/player/real.dart
index 7d75c16..d7abadd 100644
--- a/media_kit/lib/src/player/native/player/real.dart
+++ b/media_kit/lib/src/player/native/player/real.dart
@@ -92,6 +92,8 @@ class NativePlayer extends PlatformPlayer {

       Initializer.dispose(ctx);

+      //
+      Stopwatch stopwatch = new Stopwatch()..start();
       TaskQueue.instance.add(
         () {
           bool safe = true;
@@ -102,10 +104,13 @@ class NativePlayer extends PlatformPlayer {
           if (safe) {
             mpv.mpv_terminate_destroy(ctx);
             print('media_kit: Player.dispose: ${ctx.address}');
+            print('terminate_destroy_after: ${stopwatch.elapsed}');
           }
           return safe;
         },
       );
+
+      //
     }

flutter: media_kit: Player.dispose:<PHONE_NUMBER>256
flutter: terminate_destroy_after: 0:00:20.003949
flutter: media_kit: Player.dispose:<PHONE_NUMBER>488
flutter: terminate_destroy_after: 0:00:29.795794
flutter: media_kit: Player.dispose:<PHONE_NUMBER>584
flutter: terminate_destroy_after: 0:00:39.766335
flutter: media_kit: Player.dispose:<PHONE_NUMBER>984
flutter: terminate_destroy_after: 0:00:49.732073
flutter: media_kit: Player.dispose:<PHONE_NUMBER>880
flutter: terminate_destroy_after: 0:00:59.707014
flutter: media_kit: Player.dispose:<PHONE_NUMBER>568
flutter: terminate_destroy_after: 0:01:09.678630
flutter: media_kit: Player.dispose:<PHONE_NUMBER>400
flutter: terminate_destroy_after: 0:01:19.502111
flutter: media_kit: Player.dispose:<PHONE_NUMBER>592
flutter: terminate_destroy_after: 0:01:29.444567
flutter: media_kit: Player.dispose:<PHONE_NUMBER>248
flutter: terminate_destroy_after: 0:01:36.242731
flutter: media_kit: Player.dispose:<PHONE_NUMBER>624
flutter: terminate_destroy_after: 0:01:45.827320
flutter: media_kit: Player.dispose:<PHONE_NUMBER>856
flutter: terminate_destroy_after: 0:01:55.373365
flutter: media_kit: Player.dispose:<PHONE_NUMBER>448
flutter: terminate_destroy_after: 0:02:04.935463
...

it gets longer and longer and longer, when testing the app Im working on it only took about 2-3min to use 2.8gbs of ram in release mode, this WILL cause the app to crash, well not crash, but cause windows to OOM it on systems with low ram.

Yeah... There's a 10 seconds gap as I said.

If your whole intention is to stress test to the limits, obviously you're gonna get high memory usage & that's how it'd work. You're working in a garbage collected programming language, the stuff is going to be freed in future.
If this was an issue, I would've been bombarded.

this is not a 10sec gap, this is +10sec per video opened before the previous was terminated. Not a single video was open before the first termination. that is 2minutes it took to dispose despite no video playing at all for the last 1 minute 50 seconds. and this scales like this,
this is not a stress test, this is normal usage on the booru app, all it takes is skipping 2-4 videos, after that if you keep using it, it will just endlessly get worse and worse

You can just read the implementation to understand the 10 seconds gap. I can't help more, sorry.

understood, seems like media_kit wont possible for my project, sorry for wasting your time here

@Quackdoc
@drwankingstein
I spent some time yesterday & it appears that delay isn't necessary after recent tweaks.
4c372fedd038ebd5525134b31473157731647498
5fd45b6becdaf7de655404a32806678542a48719
You can depend upon media_kit from main branch till then (other packages media_kit_* can be used from pub.dev).
@drwankingstein
After having a look at the project, I don't think it's necessary to create a new Player/VideoController each time you enter the screen, you can re-use already created ones. Re-writing the code & optimizing how you allocate/release resources one way or another can yield improvements in most cases.
For instance, tabs example in the demo application was merely made to eliminate race conditions during initial-stage development, that's not how one should implement tabs with videos in actual project (who likes a black screen during scroll).


Do not load ast transformation for {{title}} in addons/engines

In order to enable #38 and #31, we cannot load the ast transformation in addon context. While this PR is not an ideal fix, it at least enables the usage of {{page-title}} in addons/engines.

I can merge this as a temporary fix once the build passes :)

I fixed the remaining issue, but the build is still failing due to No CODECLIMATE_REPO_TOKEN found. A CODECLIMATE_REPO_TOKEN must be specified as an environment variable.


FirestoreChangeListeners throwing unhandled System.AggregateException if any network problems

Hello,
I am creating several FirestoreChangeListeners (following the User Guide at https://googleapis.github.io/google-cloud-dotnet/docs/Google.Cloud.Firestore/userguide.html) and everything is working fine, but when there is a network problem, multiple unhandled System.AggregateExceptions are being thrown with the inner exception being a Grpc.Core.RpcException with Status of "Transport Closed" or "Failed to connect".
The problem is not the exception itself, but how to catch or handle these inner exceptions.
I've tried adding try/catch in multiple places, tried adding ContinueWith to the listener, but regardless I still get many unhandled System.AggregateExceptions. A single network error and single listener causes multiple exceptions in a row.

My code is:
public void Connect()
{
// Authentication code...
  if (authenticated) CreateFirestoreChangeListeners();
}

public void CreateFirestoreChangeListeners()
{
  foreach (var docRef in documentReferences.Values)
  {
    FirestoreChangeListener listener = docRef.Listen(querySnapshot =>
    {
      try
      {
        ProcessSnapshot(querySnapshot);
      }
      catch (Exception ex)
      {
        Debug.WriteLine("FirestoreChangeListener: " + ex);
      }
    });

    listener.ListenerTask.ContinueWith((task) =>
    {
      Console.WriteLine("Task faulted");
      var ae = task.Exception;
      if (ae != null)
      {
        ae.Flatten().Handle(ex =>
        {
          Console.WriteLine("Exception Handled");
          return true;
        });
      }
    });
    firestoreChangeListeners.Add(listener);
  }
}

Interestingly, after a network problem the ContinueWith is firing correctly, but the Exception is null, meaning it is never caught or handled inside that method. Instead, an unhandled System.AggregateException will follow.
Thanks for your help.
Damian

Thanks, I'll try to take a look at this today.

One side note: could you let me know which version of .NET you're using, and which version of the Firestore library?

Thanks! I'm using .NET Framework 4.7.2 and Google.Cloud.Firestore v2.2.0

Okay, progress in terms of creating a minimal example... I originally reproduced in .NET 4.7.2 with an app.config file, but we get cleaner exceptions using .NET Core 2.1, using the TaskScheduler.UnobservedTaskException event:
Project file:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Google.Cloud.Firestore" Version="2.2.0" />
  </ItemGroup>
</Project>

Program.cs:
using Google.Cloud.Firestore;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        TaskScheduler.UnobservedTaskException += (sender, args) =>
            Console.WriteLine($"Unhandled exception: {args.Exception.InnerException}");
        FirestoreDb db = FirestoreDb.Create("bad-project-id");
        var listener = db.Document("collection/doc").Listen(snapshot => Console.WriteLine("Callback executed"));

        // Give it time to try to connect...
        await Task.Delay(5000);

        // Wait for any failed tasks to be garbage collected
        GC.Collect();
        GC.WaitForPendingFinalizers();
    }
}

Run with dotnet run -c Release:
Unhandled exception: Grpc.Core.RpcException: Status(StatusCode="NotFound", Detail="...", ...)
   at Grpc.Core.Internal.ClientResponseStream`2.MoveNext(CancellationToken token) in T:\src\github\grpc\src\csharp\Grpc.Core\Internal\ClientResponseStream.cs:line 60
   at Google.Cloud.Firestore.WatchStream.<>c__DisplayClass15_0.<<StartAsync>g__GetNextResponse|0>d.MoveNext() in /_/apis/Google.Cloud.Firestore/Google.Cloud.Firestore/WatchStream.cs:line 160
--- End of stack trace from previous location where exception was thrown ---
   at Google.Cloud.Firestore.WatchStream.StartAsync() in /_/apis/Google.Cloud.Firestore/Google.Cloud.Firestore/WatchStream.cs:line 101
   at Google.Cloud.Firestore.WatchStream.StartAsync() in /_/apis/Google.Cloud.Firestore/Google.Cloud.Firestore/WatchStream.cs:line 138

So that gives a reasonably clear place to look within Google.Cloud.Firestore...

However, when I add your ContinueWith code, that does handle the exception, and no exceptions are deemed unreported.
Will try generating a different failure mode...

Okay, I can reproduce it by providing a bad endpoint:
FirestoreDb db = new FirestoreDbBuilder
{
    ProjectId = "bad-project-id",
    Endpoint = "<IP_ADDRESS>"
}.Build();

The connection loop within the watch stream repeatedly tries to connect - but I haven't yet worked out whether this is something where we're not observing the exception, or whether gRPC isn't even exposing it.

This may well be related: https://github.com/grpc/grpc/issues/24421

Okay, I've made some progress - oddly enough, it looks like the Firestore library code is catching exceptions representing the same failures... but it's as if two exceptions are generated internally in Grpc.Core, only one of which is propagated out to the caller, leaving the other to be unhandled.
I'll see if I can reproduce it with "just bare gRPC code" at which point it would definitely be a gRPC bug rather than one in the Firestore library. (The jury's out on that right now...)
As a workaround, you might want to just add a TaskScheduler.UnobservedTaskException handler to mark any RpcExceptions as handled.

Okay - I've reproduced this using only the gRPC-generated code, showing that this really is a gRPC bug. I'll add the repro to grpc/grpc#24421, but I'm going to close this issue now as we can't fix it within this library.
In terms of the workaround, I believe this should work for you:
TaskScheduler.UnobservedTaskException += (sender, args) =>
{
    if (args.Exception is AggregateException && args.Exception.InnerException is RpcException)
    {
        args.SetObserved();
    }
};

Of course, you may want to add some logging...

Hi Jon,
Thank you very much for your investigation and suggested workaround. That works fine and is a suitable solution.
Thanks again!
Damian


How can i use the version "OS X" it doesn*t work for me

Hey,
this is the HookConfig, but if i try to join a Server it says "Modified Client"
Thanks:
[Config]
outprefix=[OUT]
outsuffix=
inprefix=[IN ]
insuffix=
ignorecmds=
blockcmds=connectioninfoautoupdate,setconnectioninfo
clientversion=3.1.9 [Build:<PHONE_NUMBER>]|OS X|WVaMmYPig4eG2JUM8cMMW2MA7+IoRoPUSr74CPe7oS8TLHGjYxPr1FP88op6YsFFQrPJysWmIsnGR7BiFXjHCQ==
bypass_modalquit=1
teaspeak_anti_error=1

Duplicate of #36


async AXI support

TODOs depend on how the adapters will implement burst-support.
Can discuss asynchronously for syncing up implementations

Hi, no need to delete and open new PRs. It's easier to keep track if you push to the original PR

Yeah sorry, there were no reviews/comments; since there were also intermediate unmergeable commits, this was easier.

Requesting review

@dpetrisko, can we merge this?


missing DataID download link in the Databus interface

In the previous version of Databus the DataIDs could be downloaded, but this is no longer the case with the latest version of the Databus.
In fact, the Version webpage do not provide a download link for the DataID.
It only provides the Issue Data and license but not the download link for the DataID. Moreover, there is missing also info for the  Publisher.
Compare: https://dev.databus.dbpedia.org/kirikiki/test_group/test_artifact/2023-06-13/ (new databus)
and https://databus.dbpedia.org/fabian/webids/uniformedWebIds/23-06-20 (old databus)

Added a download button to the version page.


Add individual owners files to each top-level test folder.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: ozevren
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

tests/integration/OWNERS [ozevren]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: nmittler, ozevren
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

tests/integration/OWNERS [nmittler,ozevren]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ozevren: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-test.sh
3c15312a2277dccfe759dfe97896f1d117752a46
link
/test release-test

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ozevren: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-test.sh
3c15312a2277dccfe759dfe97896f1d117752a46
link
/test release-test

prow/istio-integ-k8s-tests.sh
3c15312a2277dccfe759dfe97896f1d117752a46
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


The timeout parameter is only applied to the assertion part of the step

What happened:
While working on a test that includes a webhook, I noticed that timeout parameter is not used when the test step fails in the apply-phase:
    harness.go:66: going to run test suite with timeout of 3000000 seconds for each step
    --- FAIL: kudo/harness (0.02s)
        --- FAIL: kudo/harness/terminal-failed-job (7.67s)
            logger.go:37: 14:51:05 | terminal-failed-job | Ignoring failjob-operator as it does not match file name regexp: ^(\d+)-([^.]+)(.yaml)?$
            logger.go:37: 14:51:05 | terminal-failed-job | Ignoring job-timeout-operator as it does not match file name regexp: ^(\d+)-([^.]+)(.yaml)?$
            logger.go:37: 14:51:05 | terminal-failed-job | Creating namespace: kudo-test-heroic-dodo
            logger.go:37: 14:51:05 | terminal-failed-job/0-install | starting test step 0-install
            logger.go:37: 14:51:05 | terminal-failed-job/0-install | running command:  {kubectl kudo install --instance failjob-operator-instance ./failjob-operator %!s(bool=true) %!s(bool=false) %!s(bool=false)}
            logger.go:37: 14:51:12 | terminal-failed-job/0-install | Error: failed to install instance failjob-operator-instance: installing Instance: Internal error occurred: failed calling webhook "instance-admission.kudo.dev": Post https://kudo-controller-manager-service.kudo-system.svc:443/admit-kudo-dev-v1beta1-instance?timeout=30s: dial tcp <IP_ADDRESS>:443: connect: connection refused

            logger.go:37: 14:51:12 | terminal-failed-job/0-install | operator.kudo.dev/v1beta1/failjob-operator created
                operatorversion.kudo.dev/v1beta1/failjob-operator-0.1.0 created

            case.go:156: exit status 255
            case.go:159: failed in step 0-install

The code suggests that the timeout is only respected during the assertion phase of the step. I  often use the timeout to "pause" the execution of the failing step and look into the cluster (using kubectl). A number of k8s admission controllers might reject applied resources so it might be beneficial to extend timeout to the whole step and not just the assertion phase.
What you expected to happen:
The timeout should be applied to the whole step.
How to reproduce it (as minimally and precisely as possible):
Using any step command that fails (e.g. false)
Anything else we need to know?:
Environment:

Kubernetes version (use kubectl version):
KUTTL version (use kubectl kuttl version):
Cloud provider or hardware configuration:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

nice issue!   I think my mental model on this might be off... thanks for raising awareness on this.
We need to be clear on when we apply timeout.  is it:

For a teststep
For individual elements of a teststep
1/2 step (test setup) and teststep assertion (are they separate or all part of the timeout?

I've recently added command timeouts and used the testsuite timeout for the command timeout.. but that is an expectation that each individual element of the step use this timeout.
We need to clearly define this and document this.


bazel-bin support - how is it meant to work?

We have some libsonnets loaded like so:
local foo = (import "foo.libsonnet");

but that file is from a remote repository tracked by bazel; I can't click through to resolve the symbols in the LSP. Is that something that is meant to Just Work ? I can provide more info on our bazel setup if thats useful.
Thanks!

So I understand the setup better -- is this working out of a single bazel monorepo which has a genrule which would output foo.libsonnet (//:foo), or is foo.libsonnet in some other bazel repo like @some_other_repo//:foo?
By default it'll try and detect if it's running in a bazel workspace and include bazel-bin in the jpaths for jsonnet (which will pick up generated files)
If it's the latter I'm assuming the remote repos would land in an external directory under bazel-bin but I'm not entirely sure if that could easily be made generic (maybe it implicitly includes all the external repos?)


Add confusion matrix analysis

As an example of another analysis type enabled by the new analysis levels, we can add confusion matrices.

Done


Tweak various flags using tramlines to use a consistent base component

To help makes thing more consistent, I’ve add a fimbriation property to the base triband components, and updated several flags that use this, so that they all have consistent sizing of strokes. Additionally, I’ve updated a couple of instances of colours:

ss changed blue to light blue
th changed blue to navy

Would it make sense to also try to normalize the locations of the divisions where the difference is negligible, even if they deviate a bit from the official proportions? e.g. so that e.g. cr and th would have the same band sizes (not just width of the dividing stripes)?
In fact, this seems to have been done for the flags with narrow dividing stripes, e.g. et-si, gm, ke, etc. (except sz, which I suppose was deliberate?)


passport-remember-me is not working with passport 0.5.2

Hi.
I've updated to passport 0.5.2.
With this version passport-remember-me isn't working anymore.
TypeError: Cannot set properties of undefined (setting 'user')
    at [mydir]\node_modules\passport-remember-me\node_modules\passport\lib\passport\http\request.js:45:35
    at pass ([mydir]\node_modules\passport\lib\authenticator.js:274:43)
    at serialized ([mydir]\node_modules\passport\lib\authenticator.js:283:7)
    at UserSerializer.serializeUser ([mydir]\dist\auth\user.serializer.js:23:9)
    at [mydir]\node_modules\@nestjs\passport\dist\passport\passport.serializer.js:8:61
    at pass ([mydir]\node_modules\passport\lib\authenticator.js:291:9)
    at Authenticator.serializeUser ([mydir]\node_modules\passport\lib\authenticator.js:296:5)
    at IncomingMessage.req.login.req.logIn ([mydir]\node_modules\passport-remember-me\node_modules\passport\lib\passport\http\request.js:43:29)
    at [mydir]\node_modules\@nestjs\passport\dist\auth.guard.js:63:64
    at new Promise (<anonymous>)

I think it is because the dependency of this package is ~0.1.1
  "dependencies": {
    "pkginfo": "0.2.x",
    "passport": "~0.1.1"
  },

When i replace the passport dependency manually with the content of version 0.5.2 its working again:

Can confirm here that I ran into exactly the same issue.

@jaredhanson could you please take a look at this and release a new version? (same problem with version 0.5.3)

@gritschf @davidzwa Take a look at #10. Yes, it's from 2015; yes, it still fixes the problem. No, I don't know why it's never been merged.

Can confirm it is still a problem with passport 0.6.0 and yes https://github.com/jaredhanson/passport-remember-me/pull/10 still fixes the problem.

It looks very much like this is just not being maintained anymore.  Rather than patch or fork, I'm just going to abandon this strategy.


Integrated montgomery multiplication

Integrated montgomery multiplication with the modular multiplication function and refactored. 96-bit key test still failing.

Grabbed the Mont refactor and integrated with my branch julian/mont-attempt, closing for now


Reorganisation of existing FAQ entries

The current non-dev-FAQ entries are a bit of a mess because they've organically grown. We should spend some time reorganising them so that they're easier for people to approach and find information within; the addition of categories should be a useful first step.
@ArcaneDisgea mentioned some interest in approaching this.

#55 addresses this to an extent, though more categories maybe in order.


coverage for in-product upsell messaging

Rationale
This adds regression coverage for our local-configuration of in-product upsell messaging
Related Pull Requests
n/a
Changes

[x] add support for marketingMessage to EditUpgradeMessagePage
[x] new test class

I added in the logout/login to confirm re-showing dismissed message, also updated to correctly verify guest scenario

FYI, the mothership tests are failing.


Slow run and error generating flamegraph

Bug Report
Current Behavior Running memray on a HPC cluster took several hours, when the same input runs in minutes on my laptop. After the run finally finished, I got the following error trying to generate the flamegraph:
Traceback (most recent call last):
  File "/cluster/software/Python/3.9.6-GCCcore-11.2.0/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/cluster/software/Python/3.9.6-GCCcore-11.2.0/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/cluster/projects/nn4654k/hmcezar/venv/hymd/lib/python3.9/site-packages/memray/__main__.py", line 6, in <module>
    sys.exit(main())
  File "/cluster/projects/nn4654k/hmcezar/venv/hymd/lib/python3.9/site-packages/memray/commands/__init__.py", line 124, in main
    arg_values.entrypoint(arg_values, parser)
  File "/cluster/projects/nn4654k/hmcezar/venv/hymd/lib/python3.9/site-packages/memray/commands/common.py", line 117, in run
    self.write_report(result_path, output_file, args.show_memory_leaks, **kwargs)
  File "/cluster/projects/nn4654k/hmcezar/venv/hymd/lib/python3.9/site-packages/memray/commands/common.py", line 86, in write_report
    reporter = self.reporter_factory(
  File "/cluster/projects/nn4654k/hmcezar/venv/hymd/lib/python3.9/site-packages/memray/reporters/flamegraph.py", line 116, in from_snapshot
    transformed_data = with_converted_children_dict(data)
  File "/cluster/projects/nn4654k/hmcezar/venv/hymd/lib/python3.9/site-packages/memray/reporters/flamegraph.py", line 31, in with_converted_children_dict
    the_node["children"] = [child for child in the_node["children"].values()]
AttributeError: 'list' object has no attribute 'values'

Input Code

REPL or Repo link if applicable: https://github.com/Cascella-Group-UiO/HyMD

python -m memray run --native --follow-fork --trace-python-allocators -m hymd dpc.toml final_step1_centered.hdf5 --seed 400755

python -m memray flamegraph memray-hymd.78911.bin

Expected behavior/code I expected to run memray in about the same time it takes on my laptop, and in the end get a flamegraph.
Environment

Python(s): Python 3.9
Modules

Currently Loaded Modules:
  1) StdEnv                        (S)   7) XZ/5.2.5-GCCcore-11.2.0          (H)  13) gompi/2021b                         19) Tcl/8.6.11-GCCcore-11.2.0   (H)
  2) GCCcore/11.2.0                      8) libxml2/2.9.10-GCCcore-11.2.0    (H)  14) Szip/2.1.1-GCCcore-11.2.0      (H)  20) SQLite/3.36-GCCcore-11.2.0  (H)
  3) zlib/1.2.11-GCCcore-11.2.0    (H)   9) libpciaccess/0.16-GCCcore-11.2.0 (H)  15) HDF5/1.13.1-gompi-2021b             21) GMP/6.2.1-GCCcore-11.2.0    (H)
  4) binutils/2.37-GCCcore-11.2.0  (H)  10) hwloc/2.5.0-GCCcore-11.2.0       (H)  16) bzip2/1.0.8-GCCcore-11.2.0     (H)  22) libffi/3.4.2-GCCcore-11.2.0 (H)
  5) GCC/11.2.0                         11) hpcx/2.9                              17) ncurses/6.2-GCCcore-11.2.0     (H)  23) OpenSSL/1.1                 (H)
  6) numactl/2.0.14-GCCcore-11.2.0 (H)  12) OpenMPI/4.1.1-GCC-11.2.0              18) libreadline/8.1-GCCcore-11.2.0 (H)  24) Python/3.9.6-GCCcore-11.2.0

PyPI packages

attrs==21.4.0
commonmark==0.9.1
Cython==0.29.30
guppy3==3.1.2
h5py==3.7.0
-e git+https://github.com/hmcezar/HyMD.git@5fbd0a56c3259fa3838e449b11401b42bacc1694#egg=hymd
iniconfig==1.1.1
Jinja2==3.1.2
MarkupSafe==2.1.1
memory-profiler==0.60.0
memray==1.2.0
mpi4py==3.1.3
mpmath==1.2.1
mpsort==0.1.17
networkx==2.8.4
numpy==1.23.0
packaging==21.3
pfft-python==0.1.21
pluggy==1.0.0
plumed==2.9.0.dev0
pmesh==0.1.56
psutil==5.9.1
py==1.11.0
Pygments==2.12.0
pyparsing==3.0.9
pytest==7.1.2
pytest-mpi==0.6
rich==12.5.1
sympy==1.10.1
tomli==2.0.1

Extra information memray table runs, giving the following output:
memray-table-hymd.78911.zip

I believe I see the bug. Are you able to check whether removing or commenting out line 23 of memray/reporters/flamegraph.py fixes the issue? That's the line that assigns "children": {}, in MAX_STACKS_NODE.

Scratch that, I don't think that's it... I'm still trying to see how we could have gotten that error.

Nope, I was right the first time. That is the cause, and removing line 23 does fix it. The steps for reproducing this locally were just much more complicated than I thought they'd be, but I eventually managed to figure out how to do it, and to confirm that removing that line fixes the problem.

As for slowness, was your run on your laptop using --native and --trace-python-allocators? Each of those options slows things down a lot, and combining them both is pretty much a worst-case stress test for how much overhead Memray can add.

I installed and ran your fix (PR #164) and apparently the flamegraph bug is fixed.
Also, I don't know if it's because I had to recompile the C stuff myself, but it's also running much faster (comparable to my laptop).
Previously, it was much slower even if I didn't use the --trace-python-allocators.
Thanks for the fix!

Fix landed on main, and will be included in the next release. Thanks for the report!


Icons are not seen in mode inline

Example : https://jsfiddle.net/drgLsrc2/
How do I show the icons back and forward to put browsing in the months?

For me the problem is that it renders icon-arrow-right (bootstrap v2) instead of glyphicon-arrow-right (bootstrap v3).

It might be time to drop boostrap v2 ...

it might be time to add v4 @AuspeXeu

This repository has been deprecated.


Two sided arnoldi

A relatively simple implementation of the two-sided Arnoldi factorization is implemented. It works out of the box although it could benefit eventually from some upgrades, most notably some restarting procedure.

Note also that I moved all the lapack wrappers (i.e. evd, hevd, svd, lstsq) from IterativeSolvers.f90 to Utils.f90 for re-usability.


[scheduler] replaced soft polling with events driven scheme

Signed-off-by: Dmitry Ermilov<EMAIL_ADDRESS>

-1 from myself. Minor change is needed.

@ogolikov , please look at mpeg2e changes


[Wallet] Add support for -walletnotify to execute custom shell tasks for incom…

Closes #3016

Add a shell helper to execute shell commands.
Add a new option to configure the wallet notify.

Fix conflicts please :)

The code is not based on the Bitcoin implementation, other than in the nature of how it works. Here are the interesting parts from Bitcoin source that perhaps the PR should be updated with:
Here is a repo search in the bitcoin source on "walletnotify": https://github.com/bitcoin/bitcoin/search?utf8=✓&q=walletnotify&type=
Argument comment could maybe be copied?
gArgs.AddArg("-walletnotify=<cmd>", "Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)", false, OptionsCategory::WALLET);
wallet.ccp:
    // notify an external script when a wallet transaction comes in or is updated
    std::string strCmd = gArgs.GetArg("-walletnotify", "");

    if (!strCmd.empty())
    {
        boost::replace_all(strCmd, "%s", wtxIn.GetHash().GetHex());
        std::thread t(runCommand, strCmd);
        t.detach(); // thread runs free
    }

So the execution of the thread is simpler in C++, it does basically the same by not waiting for the new thread to complete.
Could consider removing the additional support for waiting for exit in the ShellHelper, to not have code that is not actually used yet.

@sondreb any chance this can be a standalone feature that depend on wallet?

Added details from bitcoin implementation:
void runCommand(const std::string& strCommand)
{
    if (strCommand.empty()) return;
#ifndef WIN32
    int nErr = ::system(strCommand.c_str());
#else
    int nErr = ::_wsystem(std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>,wchar_t>().from_bytes(strCommand).c_str());
#endif
    if (nErr)
        LogPrintf("runCommand error: system(%s) returned %d\n", strCommand, nErr);
}

@sondreb any chance this can be a standalone feature that depend on wallet?

I will try to refactor it and see, and thanks to @mikedennis for the Bitcoin explain, I'll make sure it is even more similar in an update.

I'm refactoring this PR to utilize the new EventHub implementation, but I have something that must be clarified:

Should this feature be "standalone" and loaded in the daemon using .UseWalletNotify()
Should WalletFeature depends on the WalletNotifyFeature? If so, then the "FoundTransaction" event must be stored globally, not in the Wallet feature.

I'm leaning towards making the WalletNotifyFeature dependent on Wallet, there is no other dependency between WalletNotifyFeature and WalletFeature than the event class at the moment.

@sondreb @dangershony What is the status of this PR? Can this be closed or is still in active development?

I think you can close its already part of a repo with collections of features
https://github.com/block-core/blockcore-features/tree/master/Blockcore.Features.WalletNotify

Thank @dangershony !


[delegate-cash] Add VaultList

Implements support for delegate.cash to allow linking a hot ("delegate") wallet which then looks up associated cold ("vault") wallet(s) that have been proven to be owned by the same entity.
We'll be doing this in different PRs based on the original PR: https://github.com/Shopify/blockchain-components/pull/13
ℹ What is the context for these changes?
Adds the list of vaults inside the ConnectButton popover.
🕹 Demonstration

🎩 How can this be tophatted?

...
✅ Checklist

[ ] Tested on mobile
[x] Tested on multiple browsers
[ ] Tested for accessibility
[ ] Includes unit tests
[ ] Updated relevant documentation for the changes (if necessary)

/snapit


Recording free emotional german dataset

Because there exist some interesting papers based on emotional speech datasets i've decided to go back to the microphone and record a free to use emotional german dataset.
I've prepared a german corpus:

304 phrases
length between 25 and 115 chars

I'll record every phrase in following emotions:

Amused (Erfreut)
Angry (Wütend)
Disgusted (Angeekelt)
Sleepy (Schläfrig)
Surprised (Überrascht)
Normal

I'm no professional voice actor so quality might be not as good as some might expect.
Will keep you updated on recording process.

Recording of "angry" phrases for emotional dataset is in progress. Always keep in mind that i'm no professional voice artist.
https://soundcloud.com/thorsten-mueller-395984278/sets/thorsten-emotional-dataset
@monatis what do you think?

@thorstenMueller Wow you're doing an amazing job --I can easily get the emotion in the sample. I strongly believe that it will have a substantial impact in the literature.

Thanks @monatis  i highly appreciate your nice words :+1: .
If my dataset would be mentioned in literature this would be a honor for me, but i just hope my voice contribution is useful for someone.

Short update:

[x] Record "normal"
[x] Record "angry"
[x] Record "disgusted"
[ ] Record "sleepy" (I'm currently recording "sleepy")
[ ] Record "surprised"

I've published some clips on soundcloud:

Angry: https://soundcloud.com/thorsten-mueller-395984278/sets/thorsten-emotional-dataset
Disgusted: https://soundcloud.com/thorsten-mueller-395984278/sets/thorsten-emotional-dataset-1
Sleepy: https://soundcloud.com/thorsten-mueller-395984278/sets/thorsten-emotional-dataset-2

A comparison of two sentences in all current recorded emotions can be heard here:

"Das ist genau mein Humor."
"Er tut, wie ihm geheißen."
https://soundcloud.com/thorsten-mueller-395984278/sets/thorsten-emotional-dataset-3

Recording of emotional dataset is finished :speech_balloon: :partying_face:
It's been harder and took longer than i thought pronouncing emotions on phrases which do not match these emotion, but i tried my best.

Please keep in mind that i'm just a guy sharing his voice with you folks, i'm no professional voice artist.

@domcross is now doing his audio optimization magic on recordings and once he's done with that i'll publish them.
Until then - here are two samples on how the results sound:

Mist, wieder nichts geschafft.
Es kann doch nicht so schwer sein, einen Ring ins Feuer zu werfen.

Samples are spoken in following emotion order:

Normal :slightly_smiling_face:
Disgusted :nauseated_face:
Angry :angry:
Amused :grinning:
Surprised :astonished:
Sleepy :pensive:

https://soundcloud.com/thorsten-mueller-395984278/sets/thorsten-de-emotional-dataset

@thorstenMueller This is awesome! Congrats on the hard work and the great job you're doing here 👏
Looking forward to the release of processed full version.
I'm truely happy to witness such great dataset contributions to the community. Can't wait to work with this one 🚀

Audio optimisation for my emotional dataset contribution is finished (thanks @domcross). I've compressed the audio files + csv metadata and upload is ready to go. Release is planned as a gift for easter holidays :rabbit:.
See my twitter account for updates (https://twitter.com/ThorstenVoice) and of course, this topic here.

Great news! Thank you @thorstenMueller and @domcross.
By the way, Google published a parallel version of Tacotron 2, which is non-autoregressive thus faster, more stable and more natural according to subjective listening tests. I started to work on this version.

I wonder how you have chosen these 304 phrases?
It is quite difficult to find phrases that match the emotion

@snakers4 Phrases are not emotion specific. All sentences are generic and i just pronounced these in different emotions. As good as i could since i am  no professional voice talent.

Well, you did a great job, since when I was listening to the "Wütend" phrases, I instantly remembered that scene from "Der Untergang".
On a more serious note, looks like it was very difficult to record ~300 phrases per emotion, since it took ~2 months?
Were there any non-obvious issues? I am asking because we are planning to record something similar as well.

Also check this out - https://silyfox.github.io/iscslp-98-demo/ - sounds like anime
Similar work to yours in essence

Well, you did a great job, since when I was listening to the "Wütend" phrases, I instantly remembered that scene from "Der Untergang".
On a more serious note, looks like it was very difficult to record ~300 phrases per emotion, since it took ~2 months?
Were there any non-obvious issues? I am asking because we are planning to record something similar as well.

Thanks :-)
It's not easy to get into the right emotion on sentences which do not match these emotion.
300 phrases in 5 emotions = 1.500 recordings. I didn't record every day so it took some time until it was finished.

300 phrases in 5 emotions = 1.500 recordings.

When we recorded speakers for "normal", they could do about 15k phrases in 3-4 weeks, also not every day.
Looks like recording with emotion is more difficult

Also I have found @ThorstenMueller on telegram, is it you?

Also I have found @thorstenMueller on telegram, is it you?

No, i'm not using telegram.

Hello.
I hope you've some relaxing easter holidays :rabbit: :slightly_smiling_face:.
As promised i've released my emotional "Thorsten" dataset :partying_face:.
I hope it's useful for someone and (as always) please keep in mind that i'm no professional voice talent, just a guy sharing his voice.
Infos and download links can be found here:
https://github.com/thorstenMueller/deep-learning-german-tts/#dataset-Thorsten-emotional

I'll close this issue due my emotional dataset has been released. But feel free to post here for feedback on this.

After release means before new ideas are coming to mind. See here for "drunk" samples (just pronounced this way, i'm not drunk while recording ;-) )
https://twitter.com/ThorstenVoice/status/1386060775488430085

Hi @thorstenMueller, I listened to some samples and it sounded quite promising. Unfortunately I was dealing with health problems of my parents at that time so I just missed a feedback. Sorry for that.
Currently working on a NLP project in Turkish, then I want to return to working with Emotional Thorsten dataset to make some experiments with the following:
(1) Introducing an emotion vector to the architecture of Tacotron2 and finetuning it for Emotional TTS.
(2) Training few-shot adaptation methods like AdaDurIAN.
Let's see what we can build.

Hi @monatis .
Thanks for your fast response and sorry to hear your parents had health problems. Hopefully things are doing well now.
I justed wanted to be sure, that you know my emotional dataset is ready for "whatever". Your ideas sounds promising.

@thorstenMueller  Yes they are up and running now 😃
Thanks for the reminder and of course for the great dataset you're giving away to the community 😊
By the way, I'm leading the TensorFlow Turkey community and we're holding regular online events to talk about TensorFlow things and broader machine learning. If you would like to, I want to have you as a guest in one of such events to talk about your motivation and experience in building and sharing this dataset. I'm pretty sure that it will be a great inspiration for a lot of people. If you agree, you can simply say hello at the email address on my profile to talk about the details.

After release means before new ideas are coming to mind. See here for "drunk" samples (just pronounced this way, i'm not drunk while recording ;-) )
https://twitter.com/ThorstenVoice/status/1386060775488430085

Today i've released version 2 of my emotional dataset :tada:.
In addition to emotions from version 1:

Neutral
Disgusted
Angry
Amused
Surprised
Sleepy

It now includes:

Drunk
Whispering

Check details and download on my Github page https://github.com/thorstenMueller/deep-learning-german-tts/#dataset-Thorsten-emotional
@monatis: Just in case it's interesting for you.


First time running Use MLflow to track jobs.ipynb didn't overwrite or catch up on train-model-autolog.py

Module: Track model training with MLflow in jobs
Lab/Demo: 08
Task: https://microsoftlearning.github.io/mslearn-azure-ml/Instructions/08-Script-mlflow-tracking.html
Step: 03 of Submit MLflow jobs from a notebook
Description of issue
I experienced a problem upon running the Python notebook Use MLflow to track jobs.ipynb upon following instruction. The first job train-model-mlflow.py smoothly logged the info that is written in the notebook. However, the second job train-model-autolog.py did not give any output, also no model/ or std_out was there. So when I researched within the Code module what happened, I saw an empty train-model-autolog.py file.
I can't wrap my head around it, since when I went back to the Notebooks module, I could see the script has been successfully written in train-model-autolog.py. I think the job started running a split second after the contents were written in that file, which looks to me a corner-case, but I wanted to report it anyway.
So I reran the same notebook and of course, it worked as it should.


Add health-check endpoint for app

Suggested at an earlier dev meeting:
We might like to have a more useful /health-check endpoint on the app. This would allow us to check at a glance how the various services were functioning.
I would suggest the action does the following:

Check the DB connection is working fine
Check the cache is working fine
Check the server is responding fine (implied by a successful 200 response)

Are there security requirements we have to consider?
Thanks.
(Examples:)
def db_ok?
  ActiveRecord::Base.connection # instantiate connection
  ActiveRecord::Base.connected?
end

# Something like:
def cache_ok?
  Rails.cache.fetch("health-check") { Time.current } < Time.current
end

@raycarrick-ed @xsrust @briri

@briri and @xsrust is still still relevant?

yes, this is covered by the new api/v1/heartbeat endpoint


Accordion menus

Adds accordion menu

I have two comments -

Collapse behavior (JS)
One when you open a section, it seems to collapse another.  I don't see a good reason for this as I think it makes it harder to find a page when you're browsing from section to section

Vague categories should be avoided (content)
I noticed a section called Advanced which has all sorts of different things mixed in.  This seems like it will make it hard to find the pages in here naturally. If things don't have a logical grouping, can we just ungroup them? (have a mix of accordion and non-accordion links)

Happy to remove the animation and also restructure stuff as we see fit. We could definitely have a mixture.

Related to the auto collapse: this has the odd effect that if you are on a page in Section A, and expand Section B, your current page is no longer highlighted (or even visible) in the TOC.  So maybe another reason to remove the auto-collapse.
On the other hand I can see after someone has visited a few pages it could leave them with half the groups open and effectively back to a super long TOC.  Not sure what the compromise is.

@flynnduism The trouble with breaking the rag-bag of "advanced" topics up to top level is that it makes the most esoteric topics the most visible.  99.7% of users don't need to know how to author a template or how the registry cache is laid out: those shouldn't be the few pages that are always there asking to be clicked on.
We can for sure try to break out themes or move pages to other groups.  But there's a good chance we'll always be left with a few "look this is something we need to write down for the few niche users who care about it but it doesn't really relate to much else" kind of pages.  I'm not too uncomfortable with an "Advanced" or "Other Topics" kind of dumping area for those.  But yes we could always be more disciplined about using it!

Wow, I'm sorry @karthik2804, I went straight to the one thing that niggled me.  I really like this.  It looks good and definitely helps keep things tidy.  And that should have been my main message!

@itowlson i appreciate the feedback. One potential solution is to have the currently active section always be open while closing the rest when browsing. It should be straightforward to implement that.

Oooh, @itowlson nice catch! That is an easy fix. Fix on its way.


Fix typo

Just rename from .Net to .NET

Thank you for fixing these, @Potapy4! Your changes will go live within the next 24 hours.


Add the 'first-operator' package

This is the example operator described in the KUDO documentation.
It can be used to deploy a simple operator for testing purposes.

what do you think about a publish: false field in our operator.yaml in the next version that would prevent automation from publishing it to the index?

otherwise this lgtm

This package should be part of the index. It's supposed to be installed with kubectl kudo install first-operator.


Support relative json pointers

I discovered that these exist when i was looking through the ajv code.
Spec: https://tools.ietf.org/id/draft-handrews-relative-json-pointer-00.html

👍 @flitbit I encountered the need while working with the json schema spec too. I have some bandwidth if you would like any assistance. I can do the docs, tests, or implementation. Thanks for your work!

API Thoughts (for feedback)
Relative pointers relate to a relative point in the object graph in relation to a fixed point. I think the fixed point can be any ole JsonPointer. So to work with relatives, I'm inclined to a semantic like this:
// ...
const fixed = new JsonPointer('/some/pointer');
const relative = fixed.relative('1/other/value');

const hasRelative = relative.has(target);
const relativeValue = relative.get(target);
// etc. etc.

This implies a new class RelativePointer which is fixed/prepared for the two locations in the object graph. It also enables compiling/preparing the RelativePointer to perform well when reused.

.has(target) would return false if either path does not exist on target
.get(target) would return undefined if either path does not exist on target
.set(target, value, force) would throw if the fixed point does not exist on target but behave like JsonPointer.set() otherwise
.unset(target) would throw if the fixed point does not exist on target, otherwise remove the relative if it exists

Makes sense to me.
Perhaps there could also be a pointer.resolve() similar to path.resolve(), etc. and other similar static helper methods.

@forivall Can you elaborate with a code sample?

@forivall if I understand your .resolve() suggestion, it would be a new method on JsonPointer such that:
import { JsonPointer } from 'json-ptr';
import { ok } from 'assert';

const data = {
  foo: ['bar', 'baz'],
  highly: {
    nested: {
      objects: true
    }
  }
};
const p0 = new JsonPointer('/foo/1');
const p1 = p0.resolve('1/0');
assert.ok(p1.pointer === '/foo/0');
assert.ok(p1.get(data) === 'bar');

I like it.

ok, actually digging into the current API, i think it's simplest to just update the JsonPointer.concat method instead adding a new method.
The resolve() function i was thinking of would be a static helper method. actually, it's better to just call it join(), since we don't want to confuse it with JsonReference.resolve()
so, for example:
import { JsonPointer } from 'json-ptr';
import { ok } from 'assert';

const data = {
  foo: ['bar', 'baz'],
  highly: {
    nested: {
      objects: true
    }
  }
};
const p0 = new JsonPointer('/foo/1');
const p1 = p0.concat('1/0');
assert.ok(p1.pointer === '/foo/0');
assert.ok(p1.get(data) === 'bar');

const p2 = JsonPointer.join('/foo/1', '1/0');
assert.ok(p2.pointer === p1.pointer);

yeah, it makes sense for it to be join and not resolve since in the path analogy, there's no "current directory" that we can resolve from.

This is something I could use right now. The proposed API looks good, except a pointer passed in in my use case, and perhaps many others, need not be a relative pointer, so perhaps it would be good to change the name to something more general. I suggest ref or rel (which is short for relative but used in places where it doesn't strictly mean relative, like <link rel> when referencing a stylesheet).

I have an easy workaround - I just use a regex to check if it starts with a number, and if it does split it into the number and the rest of the pointer. I get the node a number of levels up from my point of reference, and pass that node into new JsonPointer, and use the rest of the pointer to get a value.

Building off of @benatkin 's thoughts on using rel or ref, I'd like to suggest a new instance and static method named .relative() This makes clear it clear that it's implementing the Relative JSON Pointer spec. Modifying concat() means that the method would be supporting both the JSON Pointer and Relative JSON Pointer spec, which conflicts the SRP and may misguide users into thinking that their pointers abide to RFC 6901 when its actually a Relative JSON Pointer. Alternatively, this could result in unexpected behavior for existing codebases, like falsely resulting in valid resolutions to existing code, which would break backwards compatibility.


Mobile Version?

Might be good to make a figma for how these things will resize

maybe you don't need to modify the figma, but maybe just think about how this will resize? I actually think this is quite important as many people will look at the donor page on mobile

Major issues:
home page: fix awkward padding and margins between components in mobile view.

Issues:
Fix text going over the page in mobile page

About us:
place icons above text instead of over

Minor issues:
Issues, About Us:
Images simply get cropped horizontally as the screen narrows. See if resizing the images work better.

Home Page, Issues:
At some places, components are not vertically centered when they are on the full page


Clear token from cookie and local storage to better clean

Prevent the state where we are disconnected (from the app point of view
since we did not login) while the UI shows us still connected because we
still have a token in cookie/localstorage
Another option would be to call the logout function from navbar, but I don't know how to do it. What do you think?

ℹ Unfortunately the Travis-CI pipeline is still unavailable due to missing OSS credits. I've pinged them on the respective support ticket once again, but haven't heard back from them yet. Reviews and merging of open PRs will resume once our CI/CD is back online. Thanks for your contribution and patience! 👍


Add a setting to control the function of F14 / F15 keys.

Hi
The request contains the change which add a preference / checkbox to control whether if F14 / 15 key acts as brightness control or not.
The request also contains minor fix to Japanese localized text.
Feel free to drop this since there are still  many unlocalized text anyway.

Hi @koyama-tadayoshi, thanks for the contribution! The solution looks solid. The only issue I have that a lot of things were rewritten in 3.1.0 and even though I can commit this into master, it won't be compatible with the new code and merging would be tedious.
The setting could go to the Keyboard tab of 3.1.0 but probably there will be a new Shortcuts tab, where the keyboard shortcuts (including custom shortcuts which is an old request) will be managed in general.

Wow
3.1.0 looks cooler. I'm looking forward to it.

including custom shortcuts which is an old request
When you provide the way to customize shortcut, there may be no need for this option (about F14 / F15).
since we can have MediaKeyTap.useAlternateBrightnessKeys always be set to false
and the user who want to control brightness with F14 / F15 still be able to do it using customize key  feature.

Anyway Thanks lot for bringing the great tool.
I'm using your application everyday.

Hi @vnts, I'll leave this here for now and marked it with Conflicts. I'll use your code to add the F14/F15 thing to 3.1.0 if it is ok with you.
@JoniVR - alternatively we might add this to 3.0.0 and maybe release this and the recent translations as 3.1.0 and the version I am working on in the current 3.1.0 branch could be reclassified to 4.0.0 as it is shaping to be a rather big release with probably even more things in it than 2.1.0->3.0.0. It will take time to properly finish and test it, also it will need some betas as well. What do you think?

I'll use your code to add the F14/F15 thing to 3.1.0 if it is ok with you.

of course, it's ok.

Hi @JoniVR, @the0neyouseek - what should be the way forward regarding this? I renamed the existing 3.1.0 branch to 4.0.0 as it is still in development. If you agree with the change made by @vtns then we could merge this to the master and release s 3.1.0 with this and the updated translations that were added during the past two weeks. What do you say?

@waydabber Sounds good to me, Do we want to go ahead and release v3.1.0 in combination with 4.0.0 beta or do we wait with v4.0.0 betas for a bit?

Related to #100

@waydabber Sounds good to me, Do we want to go ahead and release v3.1.0 in combination with 4.0.0 beta or do we wait with v4.0.0 betas for a bit?

I am still work on it and also I did not test it properly so it might not be entirely stable yet. Now I am trying to do something different than last time - I'll implement whatever should be implemented and then use the betas to actually aim for stability instead of having a moving target. :)

One thing we should note with this change is that the default behaviour changes from these keys being enabled to being disabled, so we might get some issues regarding this.
We could either default the toggle to enabled or just leave it as is and deal with the issues. Though I doubt many people will notice.

Hmm you are right. It would have been better to add this as a false-default option that does not upset existing behavior (it could have been named disableAltBrightnessKeys or something as having the alternative keys working is the normal state of the app).

Alright, let me know whenever you feel like we're ready for beta, my recent weeks have been pretty busy, as will this week be, but I'll make time for some releases when necessary. I was also still working on the slider but that's going pretty slowly..

About the default, I honestly don't think it matters that much, 97% of users probably don't even have a keyboard with f14/15 keys, and the other 3% probably doesn't even know/care about it doubling as brightness keys.

Probably you are right. I don't know how many PC/generic keyboard users there are. I wasn't avare that F14/F15 maps to ScrLK and Pause until I tried to use MonitorControl on the Hackintosh I had to install to debug the Intel stuff and I stumbled upon it by accident even then.

Yeah, I had added the option in MediaKeyTap a while back but didn't get to implementing it in MonitorControl yet. It has been a long standing issue.


Don't require BOOST_ROOT and BOOST_INCLUDEDIR when installing boost with brew

Why do these variables have to be set? Maybe they don't?

This is only because you install from a unzipped package rather than searching system.
In fact, you have disabled system libraries from being found:
https://github.com/vinniefalco/Beast/blob/master/CMakeLists.txt#L51

Should I remove that line? What do you suggest to fix this?

Those root and includedir are needed on jenkins for extracted boost.
Otherwise just install libboost.

Setting this to ON
set (Boost_NO_SYSTEM_PATHS ON)

only skips searching system paths, it still looks in BOOST_ROOT and BOOST_INCLUDEDIR, see:
https://lists.gnu.org/archive/html/discuss-gnuradio/2011-12/txta1SOQqu6kA.txt
The question becomes then, why skip the system paths?

Yeah I do not know why it was skipping system paths. I just remove it when I need to actually use it. I assumed there was a reaaon.

I'm not a cmake expert by any means I just keep hacking away at it until it works!  I must have copied that line from somewhere...


define INADDR_* constants in unix platforms

@bors: r+

:pushpin: Commit 76bf829 has been approved by alexcrichton

:hourglass: Testing commit 76bf82927f892212f1049184790d15fe6889750c with merge 598469fc8d3afd616bfc11146a40e1e442694c3e...

:sunny: Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing 598469fc8d3afd616bfc11146a40e1e442694c3e to master...


feature: Array of directories to be created

It would be nice if you could pass an array of directories to be created.
mkdirp(['x/y/z', 'x/y/a'], function (err) {

Refering to the documentation: usage: mkdirp [DIR1,DIR2..] {OPTIONS}
I thought we actually could create several paths at once, but it looks like I don't understand the documentation properly...

@Vadorequest , you can do so with the command-line app, yes, here is how that's done:
https://github.com/substack/node-mkdirp/blob/d4eff0f06093aed4f387e88e9fc301cb76beedc7/bin/cmd.js#L19-L33

Ah, okay!
Thanks :)

This issue should be closed.


Hey, is the good Idea.