Use chainer.Sequential instead of chainerrl.links.Sequence

This change requires dropping Chainer v2 support. Does anyone still need it?

Chainer v2 support has been dropped.
chainerrl.links.Sequence is designed to work with an old stateful recurrent interface, so we need to switch to a new stateless recurrent interface #431 to deprecate it.


Recursive protection to _take_dump()

Summary of changes
This pull request includes following changes or fixes.

Fix of issue #411
Added a variable called recursive_counter to check how many times the function has been called.
Added a new warning message to alert when this issue happens.

Description
The _take_dump() function calls several functions in a specific order, which causes the _take_dump() function to be called again at the end of the sequence, creating a recursion problem. This occurs when trying to generate a drive dump of a faulty drive during startup.
Fixes #411
Type of change

Bug fix (non-breaking change which fixes an issue)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have confirmed my fix is effective or that my feature works

Hi, I added a pthread_mutex to  prevent errors when it is used in the multiple drive environment.

I added a pthread_mutex to prevent errors when it is used in the multiple drive environment

No. It's not what I'm saying.. And the mutex you aded is no meaning at all.
The problem is sharing the static unsigned char recursive_counter variable in multiple drives in the multiple drive environment like LE.
The scenario below might happen.

We have 2 drives in one ltfs process, driveA and driveB
driveA and driveB is accessing to the each drives by their each priv and each thread concurrently (but function is shared, in other words, each thread could call the same function concurently)
A driveA thread calls _take_dump()
The driveA thread have a bad response, increment recursive_counter to 1 and call _take_dump() recursively
Context switch happens here and a driveB calls _take_dump()
The driveB thread see the recursive_counter and it is 1 because it is incremented to by step4 above. As a result, _take_dump()@driveB returns immediately without taking dump and recursive_counter is return to 0
Context switch happens here and back to the driveA thread
The driveA thread see the recursive_counter and it is 0 because it is reverted to by step6 above. As a result, _take_dump()@driveA calls _take_dump() recursively with incrementing recursive_counter to 1 again

So I cannot accept this kind of code.

@juliocelon ,
Could you merge this with the Squash and merge button? Otherwise we might have so many meaningless commits in the master branch.
Please be careful and please feel free to contact me if you are feeling uneasy. Let's have a live session and do it together.

@juliocelon ,
I think you need to cherry-pick the commit a7916bf0b8d7264117341a5bcd06fb32a5c160f8@master to the v2.4-stable branch.

Hi Moises, I do not understand the following change.
const uint16_t page_len = ((uint16_t)logdata[2] << 8) | (uint16_t)logdata[3];
	uint16_t param_code, param_len;

Why page_len was defined as constant rather than a variable.
Thanks

From language spec point of view, it just declares page_len is initialed by ((uint16_t)logdata[2] << 8) | (uint16_t)logdata[3] and it is not changed at all in this function. In other words, the compiler report an error when it is changed by a fix in the future.
From logic point of view, there is no difference between const and non-const here. So it is not a bad definition. There is some side effects in this kind of declaration but I decided that it is good to respect the proposed code.


max to behave on ties like torch

backward pass now behaves like torch for ties on GPU
implemented CPU max similar to GPU so it passes tests as well. Unfortunately, currently adds lines.
see #226

It only fails test from the base


RYA-486 Updated the project's version to 4.0.0-incubating-SNAPSHOT.

Could a committer pull this in?


=act Refactory AsyncDnsResolver to fix the race condition of nextId()

The issue was first reported in akka/akka.
The nextId() can be called from different threads.

It passed on my pc, will check.

@kerr this is looking unlikely to get into the 1.0.0 release. Can we delay this to the 1.1.0 release?

I'm fine, but this is a known issue, let's roll out the first release then.

@mdedetrich What's your option, I can allocate one day this weekend to work on this. or should we defer this to the next release?

I think the committers (definitely myself) are a bit busy/anxious about getting a release out soon so if its not a big deal I would prefer if we look into this after the first release. My attention is already stretched pretty thin so after a release of Pekko I should be able to focus on issues like this a lot more.

@mdedetrich Then let's defer this

@He-Pin is there anything in this PR that we need to add to the code merged for #385 ?

@pjfanning I think this once can be closed now.


Quote command line parameters (except for Windows)

This compensates for https://github.com/Raku/nqp/commit/1517cf77db
and unbreaks nqp-j on non-Windows systems.
Fixes https://github.com/Raku/nqp/issues/644

This is a bit hacky, but should work. If I'm not mistaken, sh_allparams is only used in https://github.com/Raku/nqp/blob/db0c1088fc/tools/templates/jvm/nqp-j.in#L10
A somewhat cleaner approach would probably be to add a new variable like @sh_params_quote that is the empty string on Windows and a " otherwise.

The patch breaks the whole meaning of the parameter. Same problem with the "conditional quote" parameter you propose – it's way too specific, as I understand. Unfortunately, I'm not an expert in all Windows quirks and oddities. But so far I can see that the problem is only related to the "all params" shell variable. If it's true then better solution is to have on more parameter sh_allparams_quoted which would utilize your hack except that in this case it's not a hack anymore.
Another good solution would be a new macro in addition to @shquot()@ which would quote conditionally, depending on the current platform. Something like<EMAIL_ADDRESS>But this approach would make sense if there're other cases when Windows requires quote omission contrary to normal platforms.
@patrickbkr do you have suggestions? You know Win better than I do.

Ah, and in either case the good fix would involve patching of nqp-j.in.

@vrurg thanks for looking. Unfortunately, it's not easy for me to test on Windows and I'm not familiar with it anyway. (I just noticed that nqp-j is broken and looked for a simple way to repair it.)
You mentioned an additional parameter sh_allparams_quoted. If I'm not mistaken, in that case sh_allparams wouldn't be used anymore -- at least not for NQP or Rakudo. Would you prefer to keep it or could it go away -- which would basically mean that sh_allparams should be renamed in addition to the added quotes (also in nqp-j.in)?

sh_allparams is better stay where it is for now. We may remove it in the future. Anyway, I'd like to hear from @patrickbkr first.

From my knowledge (No guarantees!) there is no mechanism to reliably quote things on Windows when CMD is involved. So I think there won't be much of a point in trying to create an abstraction to do quoting reliably on CMD.
Having quickly glanced at the nqp-j.in file there is already an @if() statement involved. We may just as well add another one adding quotes conditionally. Alternatively we could just take the leap and have separate nqp-j.in files for Windows and the rest. Given that one is a bat file and the other a shell script this isn't far fetched.

From my knowledge (No guarantees!) there is no mechanism to reliably quote things on Windows when CMD is involved. So I think there won't be much of a point in trying to create an abstraction to do quoting reliably on CMD.

This is exactly the reason I summoned you into this PR!

Having quickly glanced at the nqp-j.in file there is already an @if() statement involved. We may just as well add another one adding quotes conditionally. Alternatively we could just take the leap and have separate nqp-j.in files for Windows and the rest. Given that one is a bat file and the other a shell script this isn't far fetched.

I didn't like any kind of splitting because if the command line executing java would ever change it will require changing in both files what makes a good source of potential errors. But keeping in mind that a big part of the template is already wrapped into two platform-testing @if()@ macros; and that the purpose of the wrap is to handle quotes – I think splitting is the lesser of two evils.
@usev6 I'm closing this PR as the fix should be done in nqp repo.


Try using random user agents for down sources

This is just a try to check if it'd work or not. Possibly not mergeable.
I think that it's quite possible that the down sources are using some kind of anti-scraper/DDoS protection service. So I'm using random user agents to try circumventing the DDoS protection.

Seems like it worked for MTLNovels but except scraping chapters and search :/

Thanks for fixing this.
I'll merge this and use puppeteer for chapters and search in MTL novel and LightNovelPub.

I thought I didn't fix it :0
I missed the part where some of the scraper functions used node fetch. No wonder it worked partially.


hello team help me i was trying all of possiblities like update python and remove another python version i have still updated version 3.7.3

Traceback (most recent call last):   File "bot.py", line 1, in      from chatterbot import ChatBot   File "C:\Users\M Arsalan\chatterbot.py", line 2, in      from chatterbot.storage import StorageAdapter ModuleNotFoundError: No module named 'chatterbot.storage'; 'chatterbot' is not a package
.
.
.
code
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
import os
bot:ChatBot('Bot')
bot.set_trainer(ListTrainer)
for files in os.listdir('C:/Users/M Arsalan\chatterbot-corpus-master/chatterbot_corpus/data/english/'):
data = open('C:/Users/M Arsalan\chatterbot-corpus-master/chatterbot_corpus/data/english/' + files  , 'r' ).readlines()
bot.train(data)
while true:
message = input('you:')
if message.strip() != 'Bye':
reply = bot.get_response(message)
print('ChatBot :', reply)
if message.strip() == 'Bye':
print('ChatBot:Bye')
break

Hello,
Rename your file to something else.
if you create a file named chatterbot, that will overlap the whole chatterbot library.
name it like testbot.py


Cannot edit diagram in new windows

Opening in new windows is introduced from Obsidian v0.15+. It looks like this plugin can only edit a diagram in the main window. When I try to click the Edit Diagram option from the menu, it's just not responsive.
By the way, thank you for bringing this best diagram editor ever to obsidian. I sincerely appreciate it!! @zapthedingbat

I also see this problem.  The Drawio diagrams display OK in new windows, but when I choose edit (pencil icon) or do Edit Diagram I only see a white screen.


feat: add option to enable logging on state machine

closes #148

I feel like it would be nicer if it shared the same logging style of other parts of the system. Other parts create the log stream for you and just request the retention period. Is there an importance here to using an existing log group?

fine :)
applying the same style as for all other parts definitely makes sense ...

If we can get the log group name into the status function too, even better.

@kichik
should I add unittests or is it ok like this ?

@kichik should I add unittests or is it ok like this ?

Yeah ideally let's add some unit tests as this is not covered by the integration tests. Just something basic that makes sure the log group is included in the step function definition.
Also, I'm sorry I missed it before, but other code doesn't let the user choose the log name. Unless there is a specific requirement for this here, let's remove that option.


Bug : Insert silence

The following action introduces a bug if we want to add a silence (a blank measure) in a project and if we have some tempo changes before the insertion point.
_S&M_INSERT_SILENCE_MB
To do the test, I suggest you to follow this process :

Create a short midi item and Quantize strongly all data (for example with a time duration of 4 measures)
unselect "loop" in the "item parameters"
introduce a tempo change before the insertion point you want to do...
put the cursor at the middle of the item and proceed the susnamed action
In the new item created at the right of the new "silence" you will see that all the notes are delayed... now not quantized... And the reason seems that this new item is a "looped" one ... I think if you cancel this automatic looping choice, the bug will be fixed... (I hope so !) .
It is a boring bug because we generally decide to introduce blank measures (uncorrectly named silence in this action) after ralentendo in a project... and ther is no reason to "loop" the new items if the original one was not looped...

Thanks for the report and steps to reproduce.
For now, Julian Sader has made a script called "js_Time selection - Insert empty beats at time selection (moving later items).lua" (can be found on ReaPack) which can be used as a workaround/replacement I think.


cigien: Watch windowserrortool.com

cigien requests the watch of the watch_keyword windowserrortool\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

windowserrortool\.com has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by tripleee in Charcoal HQ


remote call in typeAhead is working but selecting option is not working

I am using the typeAhead to show the suggestion and it's working fine with search but selecting option and tab is not working. anybody can help me?
<input type="text" class="form-control" id="tokenfield-typeahead" value="" />

var obj = new Bloodhound({
            remote: {
                url: '{{ route("admin.ajax.ingredients.autocomplete") }}?search=%QUERY',
                wildcard: '%QUERY'
            },
            datumTokenizer: Bloodhound.tokenizers.obj.whitespace('title_en'),
            queryTokenizer: Bloodhound.tokenizers.whitespace
        });

        $('#tokenfield-typeahead').tokenfield({
            typeahead: [null, {
                name: 'ingredients',
                limit: 10,
                display: 'title_en',
                minLength: 5,
                source: obj,
                templates:
                {
                    suggestion: Handlebars.compile("

@{{title_en}}

")
                }

        }]

my controller json response is:
[{"title_en":"custard cream cookies"},{"title_en":"cucumber juice"},{"title_en":"chocolatey fudge fondant"
},{"title_en":"chocolate flavour chips"},{"title_en":"cottonseed or soybean oil"}]

I am having the same problem for over a week now I have posted my issue as well https://github.com/sliptree/bootstrap-tokenfield/issues/242. I have tried every single thing. I believe that some extra filtering is needed once bloodhound gets the data, I do not think the tutorial is up to date for typeahead v0.11.1. I really think this matter needs to be addressed.


feat(state): add ifdefs to determine whether input system is enabled

The relevant input system code is now wrapped in ifdefs to only run if the Unity Input System is enabled and therefore will provide a warning if the code is run when it is not enabled.

:tada: This PR is included in version 2.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
v2.2.0
GitHub release

Your semantic-release bot :package::rocket:


Repo sync for protected CLA branch

The pull request is created from main637786442158635435 to main to fix git push error for protected CLA branch

@huypub : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Android App has various file extensions registered

The Android App should be the option for .eapconfig profiles, but it also seems to be registered for eg. manually downloaded .apk files or .p12's - probably more. It shouldn't be offered by the OS as an option for "open with".

Fixed in commit fa22644654f10a2612ead90c0956906207691199

Is this already fixed in the current version on Google Play? I installed the app and now it is offered for any file whatsoever, suggesting hat it could open JPG, GIF, etc.
(Also many Google Play reviews mention this.)

@m4lvin We released a new version in the beta channel. If we get enough positive feedback, we can release this for the majority of Android users (11+). Perhaps you can test this as well.
this beta can be joined from Android using:
https://play.google.com/store/apps/details?id=app.eduroam.geteduroam
or the web via:
https://play.google.com/apps/testing/app.eduroam.geteduroam
Our previous beta also resolved this issue, but we got mixed feedback for other changes. We have to be extremely careful updating the production app, because we use an API that we can no longer access with updates, due to restrictions in the Play store.

Thank you for the reply! I do not use Google Play, so I cannot join the beta and will wait for the actual release.

because we use an API that we can no longer access with updates, due to restrictions in the Play store.

That sounds annoying. I assume that https://f-droid.org/ would not restrict you in this way.

Sorry for the confusion. I stopped using geteduroam due to these issues and went "back" to the Secure W2 app from https://cloud.securew2.com/public/40655/uva/?device=Android
I might try out the beta apk you linked to, but probably only in a few days/weeks.

Ok, no worries. We would definitely appreciate feedback on the beta, both positive and negative! I think it addresses your concerns, but at least you can also compare the way it configures the network with the previous version you tried.

Just to be sure; that other App link you give is very institution specific. It's not a link other users from other organizations can use. (In case other people follow this issue.)

I have upgraded to the mentioned Beta Version from the Releases page and have noticed that the file association issue still exists. Might this be related to the PlayStore release which has been installed previously?

Droid however doesn't allow you to submit Ionic based Apps, so we can't publish the App there unfortunately. We are working on a solution for that as well.

I'm not a developer but looking at the metadata is seems like there are multiple examples of packages in f-droid, that use ionic.

Is it in the stable release yet?

Hi,
I have installed the 1.0.16 version from Google Playstore, and since then, geteduroam is the only app configured top open .docx file on my phone (Android 9).
I just entered Beta Test for this app, and will try as soon as possible if the file association remains.


Add affected users feedback before revoking access

Fixes #1963
Basically, get related visualizations and compare their owners against the users list and show affected state accordingly:

Frontend tests were OK :+1: (details)

@xavijam review plz

:dancer:

&& :+1:

Frontend tests were OK :+1: (details)


The primary key in GreptimeDB isn't the primary key in other databases

What type of enhancement is this?
API improvement, User experience
What does the enhancement do?
From Wikipedia, the primary key uniquely specifies a row in a relational table in the database industry. However, in GreptimeDB, the primary key specifies the tag columns in a time-series table, and the combination of these tags does not uniquely specify a row.
This difference in the meaning of the primary key between GreptimeDB and the industry standard leads to additional communication costs. When people see "primary key", they often assume it is the unique row identifier, which can lead to mistakes. GreptimeDB engineers then need to explain that the primary key does not function as users expect.
To address this issue, the creation statements need to be adjusted. For example, adding the time index to the primary key can align the primary key's behavior with users' expectations.
Change the following SQL:
CREATE TABLE grpc_latencies (
  ts TIMESTAMP TIME INDEX,
  host STRING,
  method_name STRING,
  latency DOUBLE,
  PRIMARY KEY (host, method_name)
);

to
CREATE TABLE grpc_latencies (
  ts TIMESTAMP TIME INDEX,
  host STRING,
  method_name STRING,
  latency DOUBLE,
  PRIMARY KEY (host, method_name, ts)
);

Implementation challenges
No response

Well I suggest deprecate the term "primary key" in GreptimeDB, use "tag" instead. Like this:
CREATE TABLE grpc_latencies (
  ts TIMESTAMP TIME INDEX,
  host STRING,
  method_name STRING,
  latency DOUBLE,

  -- "PRIMARY KEY" is replaced with "TAG":
  TAG (host, method_name)
);


5.x

Would love 5.x support

:+1: Thanks for the feedback @m-morris, I'll see if I can add support in the next week or so. It shouldn't be too difficult, just a matter of converting some PHP 7 shortcuts to longform (e.g. [] to array(), etc.)
I'll follow up here when it's done. Also if you'd like to contribute, feel free to submit a PR and/or comment here with any questions :)

Thanks @JeffreyHyer,
I've updated to php7 so I'll be playing with this tonight.
No rush on the 5.x

@Quazareth sounds great, let me know if you run into any issues.
Also note that the documentation is not up to date (it's on my todo list) but if you browse through the source under /Api/*.php it should be fairly obvious what has been implemented.
If anything is missing that you absolutely need let me know, I'd be glad to prioritize it higher on the list.

Closing this issue, with 5.x only getting further deprecated and 8 on the horizon I don't see a need to support it. If that changes feel free to open another issue and we can re-evaluate the situation.


Create a new hypothesis relating to new information obtained from Pedro

The most used tyre type is used during a race by a driver on a specific circuit. Do they follow a pattern?


Change deployment name "demo"

Is it possible to change the deployment name from "demo" to something that sounds more production ready. Even if it is stable, it scares people.

I'm working on a CLI to make the installation process more streamlined. The new CLI is expected to be released very soon.

The CLI has been released.
The instructions on this repository are now CLI-based and we'll move the demo to another repo soon.


Check the contiguous when wrapping tensor to julia array?

A small example:
julia> v = rand(3, 2)
3×2 Matrix{Float64}:
 0.071368    0.486031
 0.00750569  0.53865
 0.416978    0.316323

julia> sub_v = @views v[2:3,:] # which is a StridedArray
2×2 view(::Matrix{Float64}, 2:3, :) with eltype Float64:
 0.00750569  0.53865
 0.416978    0.316323

julia> py_sub_v = DLPack.share(sub_v, torch.from_dlpack)
Python Tensor:
tensor([[0.0075, 0.4170],
        [0.5387, 0.3163]], dtype=torch.float64)

julia> DLPack.wrap(py_sub_v, torch.to_dlpack) # get wrong data because py_sub_v is not C or F contiguous
2×2 Matrix{Float64}:
 0.00750569  0.486031
 0.416978    0.53865

julia> py_sub_v.numpy().flags
Python flagsobj:
  C_CONTIGUOUS : False
  F_CONTIGUOUS : False
  OWNDATA : False
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False

Although this situation is not so common in normal usage.

@pabloferz could you have a look at this?

@gdalle DLPack does not impede handling non contiguous arrays (but they need to be strided). That said, unfortunately JAX does check for that (at least it did some time ago, not sure that has changed) and errors if that's not the case, so for JAX in particular I believe you need to make sure arrays are contiguous before transferring.


Update diffusers library to support more lora formats

Just a small dependency update to enable use of different Lora formats in Replicate using the 0.17.0 release of diffusers library.
Fixes #3

Thank you 🙏

@cloneofsimo What do you think? 🙏

Looking forward to seeing the merge


Enable circle ci

Summary
The mono-repo already runs on CircleCI. It'll be more convenient to have a single place to look at when it comes to CI issues.
Note: an admin of the repo will have to enable CircleCI to test if it works ;)
Details
The proposed config should run as Travis does (there is not yet an "allow failure" option in CircleCI that said)
Types of changes
Does not apply.

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

Checklist:

[ ] I've added tests for my code
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

Great stuff! Did you look at the cucumber-ruby circle config? It uses caching to speed up the build.


create logger module for benders

Currently std::cout is used to display some information to user during optimisation.
We need to introduce a logger module so std::cout can display different information if we are using antares-xpansion as a user or as a developper.
This logger should also be able to add log to a log file.

For this feature we need to :

[ ] create an abstract class XpansionLogger defining an interface for the different log steps :

current options

current iteration investment candidate

current iteration solution

last solution

[ ]  add some generic log in the interface :

trace

debug

info

warning

error

[ ]  implement interface in 4 or more classes :

FileLogger : add log in a log file

StdCoutLogger : display log in std::cout

DevLogger : create log for developper use. Need a list of XpansionLogger which will be used for log. Default logger used are FileLogger and StdCoutLogger.

UserLogger : display information in std::cout for user. Use also a DevLogger but only with one FileLogger

Possible implementation
#include <iostream>
#include <fstream>
// Data to be logged
struct Data {
  int a;
};

// Interface class
class ILog {
public:
  virtual void output(const Data& d) = 0;
};

// Solver function that has to write data
void solver(ILog& log) {
  Data d{a:2};
  log.output(d);
}

// Log to file
class FLog : public ILog {
public:
  FLog(const char* path) : os{path} {}
  virtual void output(const Data& d) override final {
    os << d.a << std::endl;
  }
protected:
  std::ofstream os;
};

// Log to stream
class SLog : public ILog {
public:
  SLog(std::ostream& os) : os(os) {}
  virtual void output(const Data& d) override final {
    os << d.a << std::endl;
  }
protected:
  std::ostream& os;
};

// Use callback function
class CbLog : public ILog {
public:
  CbLog(void (*cb)(const Data&)) : cb(cb) {}
  virtual void output(const Data& d) override final {
    cb(d);
  }
protected:
  void (*cb)(const Data&);
};

// Test :)
int main() {
  FLog file_out("file_output.dat");
  auto v = solver; // Function alias
  v(file_out);

  SLog std_out(std::cout);
  v(std_out);

  SLog std_err(std::cerr);
  v(std_err);

  std::ofstream f("stream_output.dat");
  SLog std_file(f);
  v(std_file);

  CbLog cb_log([](const Data& d) {
                 std::cout << "cb " << d.a << std::endl;
               });
  v(cb_log);
}

That's the idea.
I assume that 4 "output" method will be in the interface (each dedicated to the step described by @jmkerloch), to be checked.
What should be the Data struct?

That's the idea.
I assume that 4 "output" method will be in the interface (each dedicated to the step described by @jmkerloch), to be checked.
What should be the Data struct?
Also, how to handle multiple loggers (file and standard output)?

We could have two interfaces :

As above, where to write data (file, stream, callback)
What data needs to be written : "user" or "debug"

To write data to multiple destinations, we could have an interface like
enum Format {
    User,
    Debug
};

addLoger(ILog& logger, Format format);

Or alternatively keep the format in the ILog class as a private member
// Interface class
class ILog {
public:
  virtual void output(const Data& d) = 0;
private:
   Format fmt;
};

In my opinion the Data struct should contain as much info as possible, letting the logger pick what to write and how.

I don't get it, sorry.
To have all needed  features, the base class should look like :
// Interface class
class ILog {
public:
   typedef std::shared_ptr<ILog> Ptr;
public:
  void call_log_at_initialization(const Data& d){
    for(auto const & i : _others){
      i->log_at_initialization(d);
    }
  }
  void call_log_at_iteration      (const Data& d){ // same idea as above}
  void call_log_at_ending        (const Data& d){ // same idea as above}
  void push_back(Ptr ptr){_others.push_back(Ptr))
protected:
  virtual void log_at_initialization(const Data& d) = 0;
  virtual void log_at_iteration      (const Data& d) = 0;
  virtual void log_at_ending        (const Data& d) = 0;

  std::list<Ptr > _others;
};

With this design, we can add any number of logger and mix User/Research/etc. Printing the solution and/or the candidates values are delegated to the log_at_iteration for example.

After some discussions with @klorel, here is what I suggest
#include <memory>
#include <list>

// Data to log
struct Data {
  int field1;
  float field2;
};

// Interface class
class ILog {
public:
  virtual void log_at_initialization(const Data& d) = 0;
  virtual void log_at_iteration      (const Data& d) = 0;
  virtual void log_at_ending        (const Data& d) = 0;
};

class MasterLog : public ILog {
private:
  std::list<std::shared_ptr<ILog>> logs;
public:
  virtual ~MasterLog() {}
  void addLogger(std::shared_ptr<ILog> log) {
    logs.push_back(log);
  }
  virtual void log_at_initialization(const Data& d) override {
    for (auto& log : logs)
      log->log_at_initialization(d);
  }
  virtual void log_at_iteration(const Data& d) override {
    // ...
  }
  virtual void log_at_ending (const Data& d) override {
    // ...
  }
};

#include <iostream>
#include <fstream>

class LogUser : public ILog {
public:
  LogUser(std::ofstream&& file_out, std::ostream& console_out) : file_out(std::move(file_out)), console_out(console_out) {
  }
  virtual void log_at_initialization(const Data& d) override {
    file_out << "field1=" << d.field1 << std::endl;
    console_out << "field2=" << d.field2 << std::endl;
  }
  virtual void log_at_iteration(const Data& d) override {
    // ...
  }
  virtual void log_at_ending (const Data& d) override {
    // ...
  }
private:
  std::ofstream file_out;
  std::ostream& console_out;
};

class LogExpert : public ILog {
public:
  virtual void log_at_initialization(const Data& d) override {
    // ...
  }
  virtual void log_at_iteration(const Data& d) override {
    // ...
  }
  virtual void log_at_ending (const Data& d) override {
    // ...
  }
};

void run(MasterLog& m) {
  Data d{field1:21, field2:332.4f};
  m.log_at_initialization(d);
  for (int i = 0; i < 5; i++)
      m.log_at_iteration(d);
  m.log_at_ending(d);
}

int main() {
  MasterLog masterLog;
  masterLog.addLogger(std::make_shared<LogUser>(std::ofstream("log.txt"),
                                                std::cout));
  masterLog.addLogger(std::make_shared<LogExpert>());
  run(masterLog);
}

@Blaxav does that fit your purposes ?

@flomnes , with LogUser having only a std::ostream& as an attribute, you can easily go to an implementation allowing :
  MasterLog masterLog;
  masterLog.addLogger(std::make_shared<LogUser>(std::ofstream("log.txt"));
  masterLog.addLogger(std::make_shared<LogUser>(std::cout));
  masterLog.addLogger(std::make_shared<LogExpert>());
  run(masterLog);

@klorel Indeed, class LogUser can be splitted. However, it seems that for users, we want to log different information in the console and in files.
So following your remark, we would have
MasterLog masterLog;
masterLog.addLogger(std::make_shared<LogUserFile>(std::ofstream("log.txt"));
masterLog.addLogger(std::make_shared<LogUserConsole>(std::cout));
masterLog.addLogger(std::make_shared<LogExpert>());
run(masterLog);

Is that right ?

Note : Data is an alias for BendersData, which contains all the data to be logged. Therefore, there is no need to create a new class.

@flomnes yes, if this behavior is needed, we need 2 implementations.
Regarding Data, ok, but it has to be checked if this class (Benders Data) is really the one used to print everything.
Just need @Blaxav to amend/comment all of this :)

I might seem pedantic but we could even have 3 types of dataStructures for each type of output
BeginningData IterationData FinalData

I like the idea in general, thanks

@klorel, Yes I checked yesterday, BendersData contains and is used to print everything.
@sgatto I don't know if doing three different dataStructures would be relevant. For example, the best candidate solution seen during optimisation, "bestx" for now, would be used in FinalData for solution print, and can be used in the optimization process at each iteration (in stabilization methods). Then this vector should be copied two times each time it is modified. If we want to tidy up things, maybe we could have a BendersData which contains everything, and BeginningData, IterationData and FinalData would contain only pointers on relevant datas in BendersData.


Android server browser

Might get some ideas from the android server browser that @francov did. Or maybe test it a bit and ask them if they want to add their repo to this org.

Neat!
Note that when the new site is up the master server will be rewritten in Python and save the current servers and player stats in a database. Then, we'll have an API to get player info. This is a more "standard" and reliable way of doing things, IMO. The site will then have a server-browser built in that people can embed via an iframe.


Usage of ThemeManager

Is there any detailed user guide re. the newly introduced ThemeManager? Can we use just a single one on the global level or do we have to create a new one on each component?

the main stuff is here....
http://material-ui.com/#/customization/themes
so in short, you need the theme manager once per application.
#797 will eventually help make this slightly more accessible.

Thanks @chrismcv


Fix Feature section alignment

Fixes #488
Checklist
(Add an x between the brackets to check the items)

[x] I have summarize what this PR fixes above
[x] I have provided the issue ID/URL above
[x] I have not added Bootstrap or jQuery and used correct styling guide.
[x] This PR fixes only the issue mentioned above (create separate PRs for separate issues)
[x] I was the first one to claim the issue or I created the issue -I was the first one to claim the issue

Lovely!


search query should not strip spaces

Spaces are significant. Right now the workaround is to use regexp search and replace spaces with \s, which is not ideal since it also matches EOL.
Narrow 0.65.0, Win7, Atom 1.26.1

Yes, that is limitation, you cannot search space surrounded keyword.
Current query spec is here https://github.com/t9md/atom-narrow/wiki/Query.
Using space as query keyword separator, I cannot keep bare white-space intact.
My suggestion is use \s. if it's not sufficient, try [\s].

Maybe having an option so we can toggle behavior to tokenize AND operator on & instead of SPACE?

That's one idea, then we have to escape & when we want to search literal &.
Another idea I implemented experimentally but removed is to "set query end manually by special command" such as narrow-ui:set-query-end.
Let's say you have "foo bar .|  buz" text at prompt line and | here is your cursor(not literal pipe char).
Then you execute narrow-ui:set-query-end via some short-cut.
Then "foo bar ." is passed to ag as one query. then remaining "buz" is used to filter ag's result as always.
What do you think of this idea?

Why not.. If I understand it correctly, to search for foo bar baz via AND, you'd place multiple cursors: foo|bar|buz and run narrow-ui:set-query-end?
Now, it depends on how much you use what. Can be a drag if user wants to use both AND operator and space in their regexes, on regular basis.
For me, I personally didn't know that foo bar baz does AND-search. I just quite heavily use space in my regex searches. But since learning about the AND-search behavior, I can imagine I'll use both AND-search and space-in-regexes, quite regularly -- and then  narrow-ui:set-query-end might become a bottleneck.
IMO, using & for AND-search and having to escape \& for literal & char isn't that crazy since people (only me?) don't to too many searches containing & char.
Either way, I'm not opposed to any solution that allows my beloved space to be added to regexes :)


Bite the bullet: snake_case -> camelCase

But my beautiful snake case...
edit README too

merged #30
closing this too


Is there compatibility with SpecFlow 2.0?

The plugin runs and is called fine from a SpecFlow 2.1 project, but do not upgrade the internal library to 2.1 unless you want to refactor the Gherkin Parsing.

@jermny, you can try to use my fork https://github.com/DamirAinullin/specflow-retry

@DamirAinullin will your plugin work for NUnit VS Adapter or nunit console runner?

@chevydensing it works well with nunit adapter, you can look at examples from repository.

Thanks @DamirAinullin, I made it working. I forgot it was a plugin and forgot to update the config file. Cheers mate!

@DamirAinullin could you add support for SpecFlow 2.2.1?
Unable to resolve dependencies. 'SpecFlow 2.2.1' is not compatible with 'SpecFlow.Retry <IP_ADDRESS> constraint: SpecFlow (= 2.1.0)'.


Baraitser Rodeck Garner syndrome and craniosynostosis-mental retardation-clefting syndrome

GARD ( https://rarediseases.info.nih.gov/diseases/817/index) has a record for Baraitser Rodeck Garner syndrome (MONDO_0021971).
GARD's page  provides a link to OMIM (https://www.omim.org/entry/218650) for CRANIOSYNOSTOSIS-MENTAL RETARDATION-CLEFTING SYNDROME  (MONDO_0009041) ,  for which the only reference is authored by Baraitser, M., Rodeck, C., Garner, A..
Is it possible that MONDO_0021971 and MONDO_0009041 represent the same disorder?

@gardinfocenter

We reviewed both Baraister Rodeck Garner syndrome and craniosynostosis-mental retardation-clefting syndrome and have determined that they are indeed the same condition. Additionally, the condition does not meet our inclusion criteria, as the condition has only been reported in one family. At this time, we have decided to retire both terms from our list.

action item:

[ ] obsolete MONDO_0021971, add term replaced by MONDO_0009041


[FIX] Order of default config definitions

SSL_CERT and SSL_KEY were being used before getting default values.
[Fixes #89535034]

+r

Review has been requested, but I see no reviewers assigned. Here's who wins:
+r assign stevenzeiler
Come on down and claim your prize!

Review has been requested, but I see no reviewers assigned. Here's who wins:
+r assign tdfischer
Come on down and claim your prize!

LGTM :+1:

The build is good and I'm seeing 1 +1s from the following folks:

tdfischer

As such, I'll attempt to merge and close this pull request.


Optimise detection of provider  from within podvm

Currently AWS and Azure provider are detected from within podvm by connecting to respective metadata service url.
Ref:
https://github.com/confidential-containers/cloud-api-adaptor/blob/main/pkg/adaptor/cloud/aws/misc.go#L19
https://github.com/confidential-containers/cloud-api-adaptor/blob/main/pkg/adaptor/cloud/azure/misc.go#L20
We perform potentially unnecessary roundtrips to the IMDS endpoints. Also when extending this approach to other providers, if the IMDS endpoints are same then we cannot determine the provider deterministically.
This issue is a tracker to investigate alternatives like build time option, getting the platform from sysfs etc.

cc @mkulke

this should be addressed with #2172  we can use cpuid as a heuristic to know the clowd provider


NetherEx Quartz ore blocks are transparent/xray while in Biomes O Plenty biomes

Minecraft version: 1.12.2
Forge version: forge-1.12.2-<IP_ADDRESS>38-universal
Modpack version (links to current modlist): 1.7.3
Mod versions: NetherEx-1.12.2-2.0.15, LibraryEx-1.12.2-1.0.12, BiomesOPlenty-1.12.2-<IP_ADDRESS>1-universal

One of my players sent me the following screenshot:

I logged into the server to check it out, and sure enough, the block seemed to have no texture, allowing people to see through the world. It's difficult to see in just a screenshot, so here's a video to show what I mean: https://gfycat.com/temptingchillyeel
In the creative menu, one's inventory, and JEI, it appears transparent (although I think this might be intended, because when placed it adopts textures based on biome, right?):

It seems to place correctly in the overworld and Twilight Forest. The biome in the screenshot is from Project: Vibrant Journeys.

And I discovered this while doing some testing - it works fine in NetherEx biomes and in vanilla Hell biomes. But in ones added by Biomes O Plenty, it fails to pick up a texture. These screenshots were taken in a limited modlist with just NetherEx, BoP, and some assorted QoL mods to make testing easier.

After doing some slightly more rigorous testing, I feel confident that this is only an issue with BoP biomes, although I have not been entirely comprehensive in checking biomes from all the mods that I have.
Hopefully this is enough to go on, but if you need more information, please let me know! Thank you! :)

I too have encountered this issue in my modpack as well. I can confirm that it only appears to happen in BoP Biomes.
Minecraft 1.12.2
Forge 2847
Star Tech modpack v2.3.1
NetherEx-1.12.2-2.0.15, LibraryEx-1.12.2-1.0.12, BiomesOPlenty-1.12.2-<IP_ADDRESS>1-universal

This issue should reoccur less in newer versions. It may still happen occasionally as it is a side effect from how I render the block.


synth.synthesize() tries to assign out of bounds values

When I try to synthesize a strategy with a variable defined as "player_turn": (1,2), I get an exception from synth.synthesize() stating:
  File "tulip-control\tulip\synth.py", line 1111, in synthesize
    return _synthesize(specs, solver, rm_deadends)
  File "tulip-control\tulip\synth.py", line 1139, in _synthesize
    return _trim_strategy(strategy, specs, rm_deadends=rm_deadends)
  File "tulip-control\tulip\synth.py", line 1155, in _trim_strategy
    ctrl = strategy2mealy(strategy, specs)
  File "tulip-control\tulip\synth.py", line 1290, in strategy2mealy
    mach.transitions.add(u, v, attr_dict=None, check=False, **d)
  File "tulip-control\tulip\transys\labeled_graphs.py", line 443, in add
    attr_dict=attr_dict, check=check, **attr)
  File "tulip-control\tulip\transys\labeled_graphs.py", line 974, in add_edge
    typed_attr.update(attr_dict)
  File "tulip-control\tulip\transys\mathset.py", line 787, in update
    self[key] = other[key]
  File "tulip-control\tulip\transys\mathset.py", line 774, in __setitem__
    raise ValueError(msg)
ValueError: key: player_turn, cannot be assigned value: 0
Admissible values are:
	{1, 2}

If I change to "player_turn": (0,3), I do not get that exception, but I also do not get a strategy.
If the specification is changed such that the variable range is shifted to start at zero, I do not get an exception, and I also get the expected correct strategy as a result. (The definition of the variable is changed to "player_turn": (0,1)  and all specifications are modified accordingly.)
This behavior is a bit unexpected. Bounds should probably be treated the same way regardless of the actual values. However, I cannot tell for sure whether this is an error in TuLiP/omega/dd, or in my understanding of the same.
I am on commit ce54897c242689f45ad33650f157bf1805b35ed6 of tulip-control, omega version 0.3.1, and dd version 0.5.5.
omega warns that I am using autoref
`omega.symbolic.symbolic` failed to import `dd.cudd`.
Will use `dd.autoref`.

During debugging I found that "player_turn": (1,2) is represented by two bits in the BDDs, while "player_turn": (0,1) is represented by one bit. That feels reasonable, but it makes me think that maybe the handling of bounds in the BDDs does not work correctly. I am too unfamiliar with the code base to be able to debug any further, though.
Code to reproduce
The code that does not work:
#!/usr/bin/env python
"""Stick picking game."""

from tulip import spec
from tulip import synth

sticks = 7
max_moves = 3

# Specifications
# Environment variables and assumptions
# Formulae governing the model of player 2

env_vars = {
    'player_2_picks': (0, max_moves),
}

env_init = {
    'player_2_picks = 0',
}

env_safe = {
    # If there are remaining sticks and it is player 2's turn
    # (s)he has to pick at least one stick.
    '(sticks > 0 && player_turn = 2) -> (player_2_picks = 1 || player_2_picks = 2 || player_2_picks = 3)',

    # If there is no sticks left, or not player 2's turn
    # player 2 should not be picking any sticks.
    '(sticks = 0 || player_turn != 2) -> player_2_picks = 0',

    # Noone can pick more sticks than what is left.
    'player_2_picks <= sticks',
}

# System variables and guarantees
# Formulae governing the model of player 1, and picking sticks from the stack

sys_vars = {
    'player_1_picks': (0, max_moves),
    'player_turn': (1, 2),
    'sticks': (0, sticks),
}

sys_init = {
    'player_1_picks = 1 || player_1_picks = 2 || player_1_picks = 3',
    'player_turn = 1',
    'sticks = {sticks}'.format(sticks=sticks),
}

sys_safe = {
    # Model of player 1:

    # Same as for player 2
    "(sticks > 0 && player_turn = 1) -> (player_1_picks = 1 || player_1_picks = 2 || player_1_picks = 3)",

    # Same as for player 2
    "(sticks=0 || player_turn != 1) -> player_1_picks = 0",

    # Same as for player 2
    "player_1_picks <= sticks",

    # Model of the game:

    # If it is player 1's turn to pick, subtract her/his choice of
    # number of sticks from the stack.
    "player_turn = 1 -> sticks' = sticks-player_1_picks",

    # Same as previous, but for player 2.
    "player_turn = 2 -> sticks' = sticks-player_2_picks",

    # The turn is alternating while the game goes on (there are sticks left).
    "sticks > 0 -> (player_turn' != player_turn)",

    # Winning strategies for player 1:
    # (Choose one of the three)

    # Player 1 shall never pick all remaining sticks.
    # "(sticks > 0 && player_turn = 0) -> player_1_picks < sticks"

    # If the sticks are depleted during the next step,
    # then it should be caused by player 2's turn.
    # "(sticks > 0 && sticks' = 0) -> player_turn = 1"

    # If the sticks are depleted during the next step,
    # then it should not be caused by player 1's turn.
    "(sticks > 0 && sticks' = 0) -> !(player_turn = 1)"
}

# Create the specification
specs = spec.GRSpec(env_vars, sys_vars, env_init, sys_init,
                    env_safe, sys_safe)
specs.qinit = '\A \E'
specs.moore = False
specs.plus_one = False

# Synthesize the built in TuLiP way.
print(synth.is_realizable(specs))
ctrl = synth.synthesize(specs)
ctrl._transition_dot_label_format['separator'] = r'\n'
assert ctrl is not None, 'unrealizable'

# Save the controller as a picture. The initial transitions will cover more
# than specified.
if not ctrl.save('two_bits.pdf'):
    print(ctrl)

The code that does work:
from tulip import spec
from tulip import synth

sticks = 7
max_moves = 3

# Specifications
# Environment variables and assumptions
# Formulae governing the model of player 2

env_vars = {
    'player_2_picks': (0, max_moves),
}

env_init = {
    'player_2_picks = 0',
}

env_safe = {
    # If there are remaining sticks and it is player 2's turn
    # (s)he has to pick at least one stick.
    '(sticks > 0 && player_turn = 1) -> (player_2_picks = 1 || player_2_picks = 2 || player_2_picks = 3)',

    # If there is no sticks left, or not player 2's turn
    # player 2 should not be picking any sticks.
    '(sticks = 0 || player_turn != 1) -> player_2_picks = 0',

    # Noone can pick more sticks than what is left.
    'player_2_picks <= sticks',
}

# System variables and guarantees
# Formulae governing the model of player 1, and picking sticks from the stack

sys_vars = {
    'player_1_picks': (0, max_moves),
    'player_turn': (0, 1),
    'sticks': (0, sticks),
}

sys_init = {
    'player_1_picks = 1 || player_1_picks = 2 || player_1_picks = 3',
    'player_turn = 0',
    'sticks = {sticks}'.format(sticks=sticks),
}

sys_safe = {
    # Model of player 1:

    # Same as for player 2
    "(sticks > 0 && player_turn = 0) -> (player_1_picks = 1 || player_1_picks = 2 || player_1_picks = 3)",

    # Same as for player 2
    "(sticks=0 || player_turn != 0) -> player_1_picks = 0",

    # Same as for player 2
    "player_1_picks <= sticks",

    # Model of the game:

    # If it is player 1's turn to pick, subtract her/his choice of
    # number of sticks from the stack.
    "player_turn = 0 -> sticks' = sticks-player_1_picks",

    # Same as previous, but for player 2.
    "player_turn = 1 -> sticks' = sticks-player_2_picks",

    # The turn is alternating while the game goes on (there are sticks left).
    "sticks > 0 -> (player_turn' != player_turn)",

    # Winning strategies for player 1:
    # (Choose one of the three)

    # Player 1 shall never pick all remaining sticks.
    # "(sticks > 0 && player_turn = 0) -> player_1_picks < sticks"

    # If the sticks are depleted during the next step,
    # then it should be caused by player 2's turn.
    # "(sticks > 0 && sticks' = 0) -> player_turn = 1"

    # If the sticks are depleted during the next step,
    # then it should not be caused by player 1's turn.
    "(sticks > 0 && sticks' = 0) -> !(player_turn = 0)"
}

# Create the specification
specs = spec.GRSpec(env_vars, sys_vars, env_init, sys_init,
                    env_safe, sys_safe)
specs.qinit = '\A \E'
specs.moore = False
specs.plus_one = False

# Synthesize the built in TuLiP way.
print(synth.is_realizable(specs))
ctrl = synth.synthesize(specs)
ctrl._transition_dot_label_format['separator'] = r'\n'
assert ctrl is not None, 'unrealizable'

# Save the controller as a picture. The initial transitions will cover more
# than specified.
if not ctrl.save('one_bit.pdf'):
    print(ctrl)

Summary
I could reproduce the error. A strategy for the first specification is synthesized by tulip.interfaces.omega, and the error is raised when converting the synthesized strategy to a Mealy machine. The strategy appears to be correct for the given first specification, as described below. The results are with ce54897c242689f45ad33650f157bf1805b35ed6.
The error is raised because the specification formulas allow system transitions outside the range of values that is defined in the variable declaration (and type-checked by tulip.transys.mathset.TypedDict). For variables that take positive values, this can occur for a specification where the variable declaration does not define a range of the form 0..(2^n - 1) (for some value of n).
Automatically generating specification formulas according to variable declarations to avoid this would be implicit. Explicit is better than implicit [PEP 20]. A solution is to include suitable constraints in the specification formulas, as described below.
Observations about the first specification
In the first specification, the system's safety includes the constraint "player_turn = 1 || player_turn = 1". It appears that "player_turn = 1 || player_turn = 2" may be intended.
The first specification allows the system to transition to player_turn' \notin {1, 2}, which allows winning by setting player_turn' = 0 to violate the environment safety constraint (the synthesized strategy is described below).
Specification modifications
Keeping the variable declaration 'player_turn': (1, 2), in the first specification and changing the system safety constraint "player_turn = 1 || player_turn = 1" to
"player_turn = 1 || player_turn = 2",
"player_turn' = 1 || player_turn' = 2",

ensures that the system maintains the invariant player_turn \in {1, 2}.
The synthesized strategy by the function tulip.synth.synthesize in this case is the following.

Strategy synthesized for the first specification
A strategy is synthesized by the interface tulip.interfaces.omega for the first specification ('player_turn': (1, 2) and system safety with "player_turn = 1 || player_turn = 1"), and appears to realize the specification.
The strategy graph is shown below. The system wins in a finite number of steps by either:

The environment transitioning to player_2_picks = 0 and the system reacting (the game is Mealy) by transitioning to player_turn = 2. In the next time step, this violates the environment safety conjunct '(sticks > 0 && player_turn = 2) -> (player_2_picks = 1 || player_2_picks = 2 || player_2_picks = 3)', so the system wins in a finite number of steps.

The environment transitioning to player_2_picks \in {1, 2, 3} and the system reacting by transitioning to player_turn = 0. In the next time step, this violates the environment safety constraint '(sticks = 0 || player_turn != 2) -> player_2_picks = 0', so the system wins in a finite number of steps.

The transition to player_turn = 0 raises an error when converting the synthesized strategy from a networkx.DiGraph to a tulip.transys.machines.MealyMachine at
https://github.com/tulip-control/tulip-control/blob/ce54897c242689f45ad33650f157bf1805b35ed6/tulip/synth.py#L1290
The reason for the error is that the Mealy machine attributes are type-checked using the variable declaration. The variable declaration describes the range 'player_turn': (1, 2) but this range is not specified in the specification formulas. As a result, the synthesized strategy includes states where variable player_turn is outside the range 1..2.
Whenever a variable range is not of the form 0..(2^n - 1) (for positive values, and a similar observation holds for negative values too), a symbolic (BDD) representation with a larger range is created by the GR(1) solver in omega.games.gr1.
Automatically generating formulas from the variable declaration 'player_turn': (1, 2) to specify that the variable remain in the range 1..2 would be implicit, so these constraints need to be explicitly included in the system safety specification (as described above for the modified specification).
(The type checking using the class tulip.transys.mathset.TypedDict for edge attributes of the class tulip.transys.labeled_graphs.LabeledDiGraph turns the variable declaration into a constraint for the Mealy machine, whereas for the GR(1) synthesizer omega.games.gr1, the variable declaration is only a type hint, in that it guides the selection of bits for representing the variable values.)
The strategy graph can be obtained by the following change to the module tulip.interfaces.omega.
diff --git a/tulip/interfaces/omega.py b/tulip/interfaces/omega.py
index a4fe595..8a97d35 100644
--- a/tulip/interfaces/omega.py
+++ b/tulip/interfaces/omega.py
@@ -22,6 +22,7 @@ try:
     from omega.games import gr1
     from omega.symbolic import temporal as trl
     from omega.games import enumeration as enum
+    from omega.symbolic import enumeration as sym_enum
 except ImportError:
     omega = None
 import networkx as nx
@@ -60,6 +61,7 @@ def synthesize_enumerated_streett(spec):
     gr1.make_streett_transducer(z, yij, xijk, aut)
     t2 = time.time()
     g = enum.action_to_steps(aut, 'env', 'impl', qinit=aut.qinit)
+    dump_graph_as_figure(g)
     h = _strategy_to_state_annotated(g, aut)
     del z, yij, xijk
     t3 = time.time()
@@ -73,6 +75,13 @@ def synthesize_enumerated_streett(spec):
     return h

+def dump_graph_as_figure(g):
+    """Create a PDF file showing the graph `g`."""
+    h, _ = sym_enum._format_nx(g)
+    pd = nx.drawing.nx_pydot.to_pydot(h)
+    pd.write_png('game_states.png')
+
+
 def is_circular(spec):
     """Return `True` if trivial winning set non-empty.

Details about edge attribute type checking for tulip.transys.machines.MealyMachine
The types for edges of the class tulip.transys.machines.MealyMachine are defined as follows.
The function tulip.synth.strategy2mealy calls the method tulip.transys.machines.MealyMachine.add_inputs.
https://github.com/tulip-control/tulip-control/blob/ce54897c242689f45ad33650f157bf1805b35ed6/tulip/synth.py#L1268-L1269
The function tulip.transys.machines.create_machine_ports sets the port 'player_turn' domain according to the variable declaration 'player_turn': (1, 2).
https://github.com/tulip-control/tulip-control/blob/ce54897c242689f45ad33650f157bf1805b35ed6/tulip/transys/machines.py#L78
The method tulip.transys.machines.Transducer.add_inputs sets the attribute _transition_label_def['player_turn'].
https://github.com/tulip-control/tulip-control/blob/ce54897c242689f45ad33650f157bf1805b35ed6/tulip/transys/machines.py#L259
The method tulip.transys.labeled_graphs.LabeledDiGraph.__init__ sets the attribute self._edge_label_types = self._transition_label_def.
https://github.com/tulip-control/tulip-control/blob/ce54897c242689f45ad33650f157bf1805b35ed6/tulip/transys/labeled_graphs.py#L793
The method tulip.transys.labeled_graphs.LabeledDiGraph.add_edge creates an instance of tulip.transys.mathset.TypedDict.
https://github.com/tulip-control/tulip-control/blob/ce54897c242689f45ad33650f157bf1805b35ed6/tulip/transys/labeled_graphs.py#L970-L974
The method add_edge then calls the method TypedDict.set_types with argument self._edge_label_types, which equals self._transition_label_def, which includes the range (1, 2) for the port 'player_turn'.
https://github.com/tulip-control/tulip-control/blob/ce54897c242689f45ad33650f157bf1805b35ed6/tulip/transys/mathset.py#L796-L809
the method add_edge then calls the method TypedDict.update with argument attr_dict. The attr_dict from the strategy includes the value 0 for the variable 'player_turn', and raises an error when type checked.
https://github.com/tulip-control/tulip-control/blob/ce54897c242689f45ad33650f157bf1805b35ed6/tulip/transys/mathset.py#L780-L787
https://github.com/tulip-control/tulip-control/blob/ce54897c242689f45ad33650f157bf1805b35ed6/tulip/transys/mathset.py#L755-L774
The method LabeledDiGraphs.add_edge is called from the method tulip.transys.labeled_graphs.Transitions.add
https://github.com/tulip-control/tulip-control/blob/ce54897c242689f45ad33650f157bf1805b35ed6/tulip/transys/labeled_graphs.py#L436-L443
The method Transitions.add is called by the function tulip.synth.strategy2mealy above.
Strategy synthesized for "player_turn": (0,3)
For the modified specification with "player_turn": (0,3) a strategy is synthesized and successfully converted to a Mealy machine. The strategy wins the game in a finite number of steps in this case. The removal of deadends would remove all nodes from the Mealy machine, so it is necessary to pass rm_deadends=False to the function tulip.synth.synthesize:
ctrl = synth.synthesize(specs, rm_deadends=False)

The strategy is the following (as a Mealy machine), and is the same with the strategy that is synthesized for the first specification (described above) by tulip.interfaces.omega that raises the error when converted to a Mealy machine.

omega message that dd.cudd is not installed
The message
`omega.symbolic.symbolic` failed to import `dd.cudd`.
Will use `dd.autoref`.

means that the Python implementation of BDDs in dd.autoref and dd.bdd is used, instead of the Cython module dd.cudd that interfaces to the C library CUDD.
This is not expected to affect the synthesis results for this example. The results would be the same when using dd.cudd.
Installing dd.cudd is possible with
pip download dd --no-deps
tar xzf dd-*.tar.gz
cd dd-*
python setup.py install --fetch --cudd

as described in the README of the package dd.

Thank you for your very swift and detailed response.
I tried to find a workaround by constraining the variable in the system safety specification, but I did not realize that I needed the primed variable as well. Thank you for pointing that out. It helps a lot.
I would argue that I have explicitly constrained the variable domain to (1, 2), and the implicit part is encapsulated and happening far away in omega.logic.bitvector. To me, it seems a bit confusing that I need to know the details of the implementation to be able to specify variables' domains correctly. A more pedagogical user interface (with the current way to create bitvectors) would not let me specify a range, but the number of bits needed for a variable instead.
It seems like I run into the same problem also when trying to do synthesis with finite state abstractions. I use tulip.abstract.discretize() and then synthesize tries to assign out of bounds values to loc. I can of course add a constraint to loc in the safety specification, but in this case I find it even more strange that I need to add constraints to a variable that is used completely under the hood of TuLiP.
import tulip as tlp
import tulip.hybrid
import tulip.abstract
import tulip.spec
import tulip.synth
import polytope as poly
import numpy as np

# Continuous state space
cont_state_space = poly.box2poly([[0., 100.], [0., 20.]])

# System dynamics (continuous state, discrete time): simple integrator
h = 1.0
A = np.array([[1.0, h], [0., 1.0]])
B = np.array([[h**2/2.0], [h]])
E = None

# Available control, possible disturbances
U = poly.box2poly(np.array([[-5., 5.]]))
W = None

# Construct the LTI system describing the dynamics
sys_dyn = tlp.hybrid.LtiSysDyn(A, B, E, None, U, W, cont_state_space)

print(sys_dyn)

# Define atomic propositions for relevant regions of state space
cont_props = dict()
cont_props['target'] = poly.box2poly([[99., 100.], [0., 1.]])
cont_props['init'] = poly.box2poly([[0., 1.], [0., 20.]])

# Compute the proposition preserving partition of the continuous state space
cont_partition = tlp.abstract.prop2part(cont_state_space, cont_props)
print(cont_partition)

disc_dynamics = tlp.abstract.discretize(
    cont_partition, sys_dyn,
    closed_loop=False, conservative=True,
    N=5, min_cell_volume=50, plotit=False
)

# disc_dynamics.plot()
print(disc_dynamics)

env_vars = {}

env_init = {}

env_safe = {}

env_prog = {}

sys_vars = {}

sys_init = {
    'init',
}

sys_safe = {
}

sys_prog = {
    'target',
}

spec = tlp.spec.GRSpec(env_vars=env_vars, sys_vars=sys_vars,
                       env_init=env_init, sys_init=sys_init,
                       env_safety=env_safe, sys_safety=sys_safe,
                       env_prog=env_prog, sys_prog=sys_prog)
spec.qinit = '\E \A'

ctrl = tlp.synth.synthesize(spec, sys=disc_dynamics.ts, ignore_sys_init=True)

A way to avoid the error without mentioning the internal variable loc is to define the initial states (nodes) of the transition system to be any state (node) of the transition system, as follows
disc_dynamics.ts.states.initial.add_from(disc_dynamics.ts.states)

ctrl = tlp.synth.synthesize(
    spec, sys=disc_dynamics.ts, ignore_sys_init=False)

The resulting specification is unrealizable.

Great! Thank you very much!
Yeah, the unrealizability of the last example is the next problem. But that is definitely not caused by TuLiP :) I think I have some hours of work in front of me :D

I've recently experienced the same problem so maybe keeping this open is better. I would also expect that defining the range of a variable should be enough in order to constrain the valuations of these variables during synthesis.


[fix][broker] Fix getPendingAckInternalStats redirect issue.

Motivation
When topic does not exist, the original logic will return TEMPORARY_REDIRECT, it will cause the client below exception :
Caused by: java.lang.NullPointerException: originalUrl
	at org.asynchttpclient.util.Assertions.assertNotNull(Assertions.java:23)
	at org.asynchttpclient.uri.UriParser.parse(UriParser.java:344)
	at org.asynchttpclient.uri.Uri.create(Uri.java:67)
	at org.asynchttpclient.netty.handler.intercept.Redirect30xInterceptor.exitAfterHandlingRedirect(Redirect30xInterceptor.java:128)
	at org.asynchttpclient.netty.handler.intercept.Interceptors.exitAfterIntercept(Interceptors.java:98)
	at org.asynchttpclient.netty.handler.HttpHandler.handleHttpResponse(HttpHandler.java:78)
	at org.asynchttpclient.netty.handler.HttpHandler.handleRead(HttpHandler.java:140)

Modification

Return NOT_FOUND instead of TEMPORARY_REDIRECT

Documentation

[x] no-need-doc

Please add some test case

Hi @eolivelli. The original issue is caused by missing using TEMPORARY_REDIRECT . I have replaced this wrong status . so the test could not verify. And the existing test has covered the current logic.

Please add some test case

Hi @eolivelli , the current AdminApiTransactionTest has covered this patch.

@Technoboy- can we add some assertions on test?

@Technoboy- can we add some assertions on test?

Updated. Add for Topic Not Found.

Please add some test case

Add assertions related to the modification.


Unstable downgrade with operator leading to uncleaned obsolete resources.

Unstable downgrade in prow.
I have not reproduced this issue locally, but it happens very often in the prow job pull-knative-operator-upgrade-tests.
After the operator downgrades knative into the previous version, the obsolete resources are not cleaned-up.
It does not happen every time, but it's really annoying as a blocker of prow build.

I'm willing to look into this, it seems like a good fit for one of the new CRDs I've been playing around with.


Implement Event Grid trigger binding.

This PR implements the Event Grid trigger binding for the type
EventGridEvent.
Fixes #162.

One remaining thing to do for this PR is to add a template for cargo func new.


React v0.14.0-rc1 and React-Router v1.0.0-rc1 support.

Gets rid of all react 0.14 and react-router 1.0 release candidate warnings.
EXCEPTION: ReactCSSTransitionGroup is only warning I'm finding right now. Looks like it has to do with dropdown animation or something.

oh, and closes #70

I'll see if I can figure out that one last warning tonight. Thanks for the PR :)


specgen: fix order for setting rlimits

Also make sure that the limits we set for rootless are not higher than
what we'd set for root containers.
Rootless containers failed to start when the calling user already
had ulimit (e.g. on NOFILE) set.
This is basically a cherry-pick of 76f8efc0d0d into specgen
Signed-off-by: Ralf Haferkamp<EMAIL_ADDRESS>

LGTM
@giuseppe @vrothberg @mheon @QiWang19 @ashley-cui @baude @jwhonce PTAL

Restarted the flake

/lgtm
/hold

LGTM, restarted tests once again

Nice catch!
/hold cancel
/approve
/ok-to-test


Issue 2081: Improve documentation about --inputs and --customSerdeInputs for pulsar functions

Motivation
Fixes #2081. flags --inputs and --customSerdeInputs are confused.
Changes

Update the descriptions of --inputs and --customSerdeInputs in functions admin command cli
Update the documentation in website

customSerdeInputs is replaced with schema related options. so this PR is not needed any more.


[Generator] PDF

Feature: `build` command

  Background:
    Given a directory with Gherkin source files

  Scenario: `--format=pdf` option
    When I run `featurebook build --format=pdf`
    Then I can access specification exported to PDF at "dist/pdf/specification.pdf"

There's a very simple implementation of PDF export. Any further improvements should be handled as dedicated issues.


RegressorChain similar to sklearn's MultiTaskLasso/MultiTaskElasticNet?

Hi I just noticed RegressorChain in the documentation and I was wondering if it simply trains several independent models on the same input features or if the models share information amongst each other like they would in sklearn's MultiTaskLasso and MultiTaskElasticNet.
Thanks!

Hello. RegressorChain predicts the output of the first output, and then includes that prediction as a feature for predicting the second output etc. etc. I'm not an expert on both methods you mentioned, but I believe they refer to a different approach.

Ah gotcha, thanks for the clarification!


Fastnlight: Watch demallorca.wordpress.com

Fastnlight requests the watch of the watch_keyword demallorca\.wordpress\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

demallorca\.wordpress\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Prestige calling card images

Following request #111 - Fetched all Calling Card Images for Prestige challenges and added to assets folder. Ensured naming convention matches as expected.

Awesome @carlssonemil - let me if you want me to do some tests once done, will verify they are all in place. (Can see in prod some green squares still).

@jamesallnutt, I've uploaded all the images now, it can take a few hours before the cache clears! I usually give it at least a day or two before checking for any issues 😄


How to generate attention heatmap about "docs/attention_temporal.png"?

Hi @AllenMao ,
Thank you for showing interest in our work. We compute the attention maps using relevancy maps obtained from various attention layers of the CLIP model following this paper. You can refer to their repository or this notebook for further implementation details. We replace the MHSA blocks in the residual blocks of our ViFiCLIP model here with a locally defined MHSA function to use forward hooks in its attention layers.
Hope this helps, Thank you.


cl_khr_fp16 is assumed to work on all hardware, even when this is not the case

When using certain older GPUs via the Rusticl backend (I am using a RX 570 for this,) the following error shows up when trying to perform any operations on float16 tensors:
`RuntimeError: OpenCL Compile Error
input.cl:1:26: warning: unsupported OpenCL extension 'cl_khr_fp16' - ignoring [-Wignored-pragmas]
input.cl:3:3: error: use of undeclared identifier 'half4'
input.cl:4:15: error: unknown type name 'half4'
input.cl:4:36: error: use of undeclared identifier 'half4'
input.cl:4:44: error: use of undeclared identifier 'val0'
input.cl:4:51: error: use of undeclared identifier 'val0'
input.cl:4:60: error: use of undeclared identifier 'val0'
input.cl:4:67: error: use of undeclared identifier 'val0'
input.cl:4:76: error: use of undeclared identifier 'val0'
input.cl:4:83: error: use of undeclared identifier 'val0'
input.cl:4:92: error: use of undeclared identifier 'val0'
input.cl:4:99: error: use of undeclared identifier 'val0'
Error executing LLVM compilation action.`
Here is the code that can be used to reproduce this bug provided you have the hardware:
`from tinygrad import Tensor, dtypes
t = Tensor([1, 2, 3, 4], dtype = dtypes.float16)
(t + t).realize()`
Given that cl_khr_fp16 is an optional OpenCL extension, it may be better to not assume that it exists on all backends, and to use type promotion or similar means of eliminating the issue.

implicitly upcasting to float32 if half is not available is bad, but maybe we can support a global flag to say all half should be interpret as float


Unable to run produced binary

Following the steps in the readme, I get this error:
❯ wasmtime serve target/server/wasm32-wasip2/debug/wasi_test.wasm
Error: component imports instance<EMAIL_ADDRESS>but a matching implementation was not found in the linker

Caused by:
    0: instance export `get-environment` has the wrong type
    1: function implementation is missing

Yep!
You need to add the -Scli arg to the command, I will add it to the default command because even in vanilla you need it.


Add minimum image size to models page

📚 Documentation
I am trying to test a bunch of different models from: https://pytorch.org/vision/stable/models.html. However, it is not clear if there are other changes that need to be made to my code like changing the image size in the transformation. Adding in a note on the image size under each model would be very helpful here!

Thanks for reporting the issue @logankilpatrick , you're right, this kind of information would be helpful.
I believe there has been some related discusion recently in https://github.com/pytorch/vision/issues/3921, so I'll close this one to avoid duplicates if you don't mind. You are more than welcome to contribute on the other thread!


Prop types changed with respect to new react-native setup

This repo is no longer maintained. Use this active fork that is published on npm:
https://github.com/peacechen/react-native-modal-selector


Sort all numbers into # placeholder

Task/Issue URL: https://app.asana.com/0/488551667048375/1202727215234443/f
Description
Sorts all numbers into the # placeholder group.
Steps to test this PR

Current dependencies on/for this PR:

develop

PR #2158   👈

This comment was auto-generated by Graphite.


Wallets immer 1

[x] root state
[x] null to undefined

This includes a helper to validate the old vs new state is the same

[ ] remove reducer double check


AMD/Require and use strict

Hey,
I really am quite interested in using this library for dev/testing however in its current state I am unable to use it.
Issues:

I use 'use strict' within my build process which rejects undeclared (var) variables. var is not used  when defining classes within this library.
Unless I am missing something obvious, there is no support for AMD/Require JS

Question:

I am more than willing to fork, change and submit a patch to resolve the above - is this something you would be willing to accept into your library?

If you are totally against strict and AMD then there is no point me spending time forking and patching.
Thanks
Davie

Apologies for being AWOL, family and work commitments.  I am actually getting time to do some of my own project coding again.
The new factory-guy is excellent btw.  Well done

Thanks @davetheninja .. mucho appreciado and glad to see you back :)

:relieved:


Tests cannot be run on a PR from a fork

See https://github.com/openedx/codejail/pull/138, which I opened from my personal fork of codejail.
When trying to run tests, GHA shows:
Error: Credentials could not be loaded, please check your action inputs: Could not load credentials from any providers

This is probably because my fork doesn't have access to secrets from the openedx organization.
This is not an issue from 2U or for most of tCRIL, but is an issue for anyone trying to contribute from an external organization.

This is expected behavior since the CI image is hosted on edX's ECR account and talking about that, would it make more sense if the CI docker image was hosted on openedX's dockerhub account since this is an openedX repo now. And even when the image is hosted there, forks would still need to setup some secrets for the login etc in CI. But currently there is no way forks can run tests since they wouldn't have access to the ECR registry that contains the image.

Good to know, thanks @aht007.


Added missing check for $separatorclass for single pages

For the single page view the separator class would be shown even if the $separatorclass was false

btw, is there a way to stop the travis checks if there is a newer commit by the same author? Now the second commit hasn't even started and the third one will be only checked once the second one is done, but i know it will fail.
It should be skipped...
Seems like a waste of resources...

Hm, it didn't fail after all, strange.
Anyhow it should just skip to the current commit by the user and forget all the in-between checks me thinx.

I know what you mean. I'll check what I can do in Travis settings.

I mean it all works fine, just an idea for optimization, energy saving and such ;)
Maybe thats how travis works and no way around it, i have no idea


Proper way to timeout an evaluation

Hello,
I have been running the following code:
import time

from wolframclient.evaluation import WolframLanguageSession
from wolframclient.language import wl

if __name__ == '__main__':
    session = WolframLanguageSession('/Applications/Mathematica.app/Contents/MacOS/WolframKernel')

    print('start now')
    start = time.time()
    result = session.evaluate(wl.Pause(10), timeout=2.0)
    print('end after: {:.2f} seconds'.format(time.time() - start))
    print('result is:', result)
    print()
    print('start now')
    start = time.time()
    result = session.evaluate(wl.TimeConstrained(wl.Pause(10), 2))
    print('end after: {:.2f} seconds'.format(time.time() - start))
    print('result is:', result)

    session.terminate()

which results in the following output:
start now
end after: 14.29 seconds
result is: None

start now
end after: 2.00 seconds
result is: $Aborted

This makes me think that the timeout argument of session.evaluate(...) does not work as expected, so I will assume that using TimeConstrained is the recommended way to set a timeout to an evaluation, is that right?
Mathematica® version: 12.2
OS version: macOS Big Sur 11.2.3
As a side question, is there any way to "kill" (stop/terminate) a long-running evaluation while keeping the corresponding kernel alive and ready to accept further evaluations?
If no, is it possible to "kill" (stop/terminate) a long-running evaluation together with its kernel?
I tried to dig in a bit in the code but I believe getting a reply directly from the developers will be more reliable and precise. Thank you.

That's correct. There is currently no way to interrupt, from python, the kernel evaluation, while preserving the kernel state.
Using TimeConstrained is the correct way to limit the execution time for a given computation.
The python side timeout is only impacting the python side code which will only wait for a result until the timeout is reached. It does not interrupt the current evaluation as you have noticed.
When the fix for #30 gets merged, one will be able to terminate a session even though the underlying kernel is busy.

Thank you for the clarification. Closing this issue as I expect the progress on this problem (e.g. future pull requests, etc.) to be tracked in #30 .


Add exception handling

Handle NPEs
Throw and handle IllegalStateExceptions for situations where contradict  rules are created (e.g. two exclusive rules with two overlapping set/range)

Implemented in #46


emergency IPC fix

About the PR
IPCs can emote now
Why / Balance
mocho is noob
Technical details
removes blacklist because only morons add beeping to species
also fixes harpies technically
Media
Requirements

[X] I have read and am following the Pull Request and Changelog Guidelines.
[X] I have added media to this PR or it does not require an ingame showcase.
[X] If this is a fix, I have spanked the original code author with a metallic belt.

Breaking changes

Changelog

:cl: router

fix: Unfucked ALL IPC and some Harpy/Moth emotes

ok technically this also breaks the emote wheel but it'll work for now because IPCs don't have any inherent IPC-unique components

when species... ... ...


Introduced SqlCommandSource to abstract away File/URL/Script/*Stream...

Reason: I want to add capabilities to load migration scripts from .jars (other module in multi-module projects) and I have 2 possibilities:

add another overload to SchemaConfig/EmbeddedMysql.Builder with type URL/InputStream and new name (withMigrations);
do what I did and allow to add arbitrary sources in future;

I did not feel comfortable with using InputStream/URL ? as another requirement might come-up and I'm screwed again (exausted with* names), so decided to rollout SqlCommandSource interface and helpers to build it from String/File/URL.
But the main question for me is:

should I introduce new operations (ScriptConfig.withMigrations(List sources)) and deprecate others + SqlCommandResolver.classPathFiles - no-breaking api change;
do current change (I found 1 obvious client in wix that would break) and just up major version signifying a breaking api change.

#1 is more javaish, #2 is cleaner (less migrations, less deprecated code, etc.). @ittaiz @hugebdu - which way would you go? Note that I have external clients as well (4-5 OSS on github, but it seems there would be no impact to them).

relates to #36

I think the main factors for me would be how annoying will it be to live
with the deprecated code for some time? How big and central is it?
If it's small and off to the side I'd deprecate, otherwise up the version
On יום ג׳, 7 ביוני 2016 at 1:31 Vilius Lukošius<EMAIL_ADDRESS>wrote:

relates to #36 https://github.com/wix/wix-embedded-mysql/issues/36
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/wix/wix-embedded-mysql/pull/52#issuecomment-224108999,
or mute the thread
https://github.com/notifications/unsubscribe/ABUIFydwfMtZLuHHeVFZtrs9fAgWr62Zks5qJJ_MgaJpZM4IvXdX
.

--
Ittai Zeidman
Cell:<PHONE_NUMBER>
40 Hanamal street, Tel Aviv, Israel
http://www.wix.com/

thanks @ittaiz I think I will go with break api - better do it sooner than later as I can clearly see that File does not work well and need another abstraction. Unless there is one from jvm I could use (interface), but I did not find one. Guava has it, but then again, I don't want to depend on it.

@viliusl break API 👍
regarding being dependent on guava - you already have commons-io dependency. Maybe guava can provide you what you get from commons-io plus other nicies?

@hugebdu I'm married to apache commons as it comes via flapdoodle, so I have no way out of there. guava is a choice and I need so little from it that I decided to drop it. Actually @liucijus decided and did that:)


Integrate Volcano as the job controller and scheduler

For now, we use a separate python API to handle all data processing work, it's not ideally, as it'll lack the isolation and scheduling capability if there are batch of tasks to run.

we should move data processing logic to a separate python image, and data processing should be focus on data and related SDK, so we can use them in the notebook later.
Use  Volcano as the advanced job controller and scheduler, it also has some nice features to manage batch jobs.

@zqq454224016  Please https://github.com/volcano-sh/volcano

ok

We can also use volcano as the RAG evaluation job scheduler

We can also use volcano as the RAG evaluation job scheduler

Job scheduler:

Data processing (Not now,maybe v0.3.0)
RAG Evaluation  (Now v0.2.0)

closed as it's not in our plan.


One typo in the need for speed

In the subsection Composite Types with Abstract Field Types under the section Fast and Slow Julia Code of The need for speed, there is one sentence saying

As we’ll see, the last of options these gives us the best performance, while still maintaining significant flexibility.

should it be

As we’ll see, the last of these options gives us the best performance, while still maintaining significant flexibility.

Thank you so much!  That whole lecture needs some revisiting in the next version or two.

Thanks @JackRab, just fixed this.
Hope you enjoyed the lecture.

Thank a lot for your work.


[transformer] remove concat after to simplify the code flow

We can still:

[x] load the previous pretrained model.
[x] decode works

@zwglory @yygle please pay attention to the PR, I think we can remove concat after in squeezeformer and efficient conformer.

https://github.com/wenet-e2e/wenet/blob/4467198fd03a77aca55bffd8b987686acc9f1205/wenet/bin/export_onnx_bpu.py#L545
这行是不是要删掉

后面分模块去删除


PRMan-for-Blender is not showing up in the addons tab.

I have renderman installed and PRMan-for-Blender extracted in the addons folder but its not even showing up to enable it.

I'm not sure what I did but it's there now.


Use pur to upgrade python packages

$ pur --skip django-tastypie,django,docker-py,elasticsearch,pyelasticsearch,commonmark,stripe,djangorestframework,mkdocs,django-allauth
Updated pip: 9.0.3 -> 10.0.0
Updated virtualenv: 15.1.0 -> 15.2.0
Updated Sphinx: 1.7.0 -> 1.7.2
Updated sphinx-rtd-theme: 0.2.5b1 -> 0.3.0
New version for readthedocs-build found (2.0.9), but current spec prohibits updating: readthedocs-build<2.1
Updated django-haystack: 2.7.0 -> 2.8.1
Updated django-extensions: 2.0.0 -> 2.0.6
Updated django-vanilla-views: 1.0.4 -> 1.0.5
Updated lxml: 4.1.1 -> 4.2.1
Updated httplib2: 0.10.3 -> 0.11.3
Updated GitPython: 2.1.8 -> 2.1.9
Updated pytz: 2018.3 -> 2018.4
Updated docker: 3.1.3 -> 3.2.1
Updated sphinxcontrib-httpdomain: 1.6.0 -> 1.6.1
Updated packaging: 16.8 -> 17.1
All requirements up-to-date.

I did some tests locally running different builds and it worked. The good side is that we have a newer version of docker daemon in our servers so it's more likely to be compatible without changes.


Function: NEWID()

NEWID() is a function which generates a random, unique ID.
T-SQL Spec
For now, this should be only for sled, which has a built in function to generate unique IDs.
Note that, compared to performance of AUTO_INCREMENT, this will be very slow.

However, is NEWID() designed only for uniqueidentifier?
More general one to have might be UUID(), then we can simply use https://docs.rs/uuid/0.8.2/uuid/

@panarch
Ah! Hmm, not sure whether it would be better to use sled's generate_id() or that; thoughts?

And if we did that should the function be called UUID()?
I mean we could add both

Oh this was a different issue, let's forget about UUID.
Why are you thinking about replacing generate_id()...?

generate_id is not public api, it should not be exposed as a store trait.

Huh??
Store traits are public?
So what, I'd just do storage.tree.generate_id() instead?

Oh this was a different issue, let's forget about UUID.

They'd serve the same purpose, very unique values.

For now, I cannot get the point about your intention.
I saw the pr codes and I cannot understand what is purpose of NEWID.
Why does we need NEWID which is only for uniqueidentifier data type in sql server?

It is a random ID, kinda like AUTO_INCREMENT but is meant to be cross database.
Functions like UUID.
Enables stuff like creating two parallel tables and unioning them while keeping unique IDs.

Then, we can just use UUID rather than NEWID?
More importantly, implementing uuid functionality and applying to store trait are independent issues. These should be in seperated prs.

Sounds good.

ref #364


Automatic port configuration

https://github.com/bernardolins/fail-whale/commit/02375599eba486267a766a7dd4643292284ccd50

https://github.com/bernardolins/fail-whale/commit/02375599eba486267a766a7dd4643292284ccd50


Update run_py3_core.sh

Changed the logic to find number of GPU
"VGA" changed to "controller"

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?


Roadmap is outdated

The roadmap in the Vumi documentation is outdated an wildly inaccurate and needs overhauling.

Roadmap updated committed in https://github.com/praekelt/vumi/commit/baaf1711b207d7ce5dfd5b4e1e8046f5005ed712.


Fix README file name

📝 Summary

README got accidentally renamed, fixing it back.
⛱ Motivation and Context

📚 References

✅ I have run these commands

[x] make lint
[x] make test-race
[x] make run-mergemock-integration
[x] go mod tidy

LGTM


Bump Tado to 0.4.11

0.4.11 created 09.10.2023
72 user
OK

@HGlab01
Please fix ad least sentry issue:

[ ] This adapter seems to use sentry, but no sentry info is added to Readme.md
This adapter seems to use sentry for error logging. Please add the suggested sentry information at the top of Readme.md
**This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers.** For more details and for information how to disable the error reporting see [Sentry-Plugin Documentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry reporting is used starting with js-controller 3.0.

[ ] Readme.md should contain a link to the manufacturer and/or device (non blocking but could be solved at once)
The README.md of any adapter related to device or m ultiple devices of a manufacturer should contain a link the manufacturers website and/or to a description of the device. This is to anable new users to easily check wether they associate the adapter with the correct device(s). (See https://github.com/ioBroker/ioBroker.repositories#requirements-for-adapter-to-get-added-to-the-latest-repository paragraph 4.)

@mcm1957 thanks, sentry info gots lost somewhen/somehow. Link added as well

0.4.11 created 09.10.2023
88 user
OK


Added action sheet options for photo taking and removal

...If this is something we want.

This is just a quick version of this functionality to see if we like it - it didn't take too long so if we use the other view we can discard this branch. Things that need to be addressed if we use this branch:

Orange X is probably not ideal, need to change so whatever we chose can be seen on all background colors
"noimage.jpg" needs to be updated with something that we make that is free for commercial use, this was just a placeholder to show how it might look
Needs to be tested on a phone
Currently has no unit/UI tests

When selecting "view image" it shows the oldest image attached to the run, not the most current. So if the user uploads a photo then selects "view image" they don't see their photo.
"remove this image" does not remove the image from the Jama web app just the local run to be submitted.
I think we need to add a "uploading image" popup for the duration of the upload. Right now when I take a picture and hit submit, while it is uploading (3 to 5 sec) I can still click on things and make changes to the run.
I tested using the Demo user and UAV Sample set/Integrated Testing/Lots of runs/Standard-sized screwdriver. You can look at the run on the web to see the photos I uploaded to it. All testing was done on my iPhone 6

Thank you for your feedback. A couple thoughts:

When selecting "view image" it shows the oldest image attached to the run, not the most current. So if the user uploads a photo then selects "view image" they don't see their photo.

Just from looking at the code I'm not sure why this would be the case, but since I have no way to test this on my phone I'm not sure how to go about fixing it. Maybe this is a side effect of the camera upload taking a few seconds? Do you have any suggestions?

"remove this image" does not remove the image from the Jama web app just the local run to be submitted.

This was the intention - maybe we should change the wording to be "remove image from this run submission" or something similar? Removing an image that was previously uploaded will only be possible for in progress runs, and I think in order to have the image locally we'll need to update our test run model and the API calls to also pull out and store the image. I feel like this is significant enough that it should be its own ticket.

I think we need to add a "uploading image" popup for the duration of the upload. Right now when I take a picture and hit submit, while it is uploading (3 to 5 sec) I can still click on things and make changes to the run.

This makes sense, but I feel like this is also enough of a change that it could be its own ticket - maybe for someone who's done a popup ticket before and knows it well enough to implement it quickly? I'm not sure I will have enough time to finish these changes within our time frame, while also allowing for testing and review.


http agent is not used and throws

Hi, currently the .agent option does not seem to be used in needle.js, and setting it in needle.defaults(opts) actually throws. Is this intentional / historical?

How are you using it?


Fix #825 - Implement editor.quickOpen.caseSensitive setting

Issue: The 'case-sensitivity' behavior of the QuickOpen is not very clear, and it is even less clear on how you can change the behavior to get preferred functionality (more discussion on this in #825).
Fix: This changes adds a new setting - editor.quickOpen.caseSensitive that accepts either a boolean value or smart. This change makes the pre-filter step case-agnostic, and then uses this setting for running the fusejs filter step.

Fixes #825

One issue I just realized is that the filtering logic is shared between Quick Open and the Command Palette. I think the behavior is reasonable, but it might influence how we name the configuration option (maybe it makes sense to be more general than just the quickOpen menu)

I decided to change the setting to menu.caseSensitive, because this filtering logic is the same across all menus - Quick Open, Command Palette, and (soon) symbol search through language servers.


Github API network timeout on every command

Every command partially fails with a timeout to a Github API:
✗ couldn't check latest releases: couldn't get releases: couldn't deliver request: Get "https://api.github.com/repos/vegaprotocol/vegawallet/releases": dial tcp: lookup api.github.com on ***.***.**.*:**: read udp ***.***.**.*:**:*****->***.***.**.*:**: i/o timeout

I am using vegawallet version 0.12.0
version 2 wallet
macOS 12.2 Intel chip

I can't reproduce it. Can you tell me from where you installed the software (brew, go install, or zip release) ?
Also, can you tell me what's the output of the following command?
curl https://api.github.com/repos/vegaprotocol/vegawallet/releases

I can't reproduce it. Can you tell me from where you installed the software (brew, go install, or zip release) ?

I downloaded the release from Github

Also, can you tell me what's the output of the following command?

This is a very long list of JSON releases (looks like it is working?) I can paste the actual list if you need.

However, if I do something like vegawallet service run --network fairground, it does start the service but the first output is the warning I posted in the issue.

That's pretty strange. If the curl command is working it means, nothing's stopping you to get this list.

We need to investigate this further.

I am happy to help debug this further.
if there is anything you want me to try, let me know. I can set a breakpoint or we can do a call sometime this next week

 Here is a screenshot as further evidence

I can set a breakpoint or we can do a call sometime this next week

That would be lovely. I will investigate on my side and discuss this with team. I will come back to you :)

@unparalleled-js just one last test, could you give us the output of:
time curl https://api.github.com/repos/vegaprotocol/vegawallet/releases > /dev/null

I haven't been able to reproduce it.

Closing as not able to reproduce


Selecting folder when opening a torrent file has no effect

When opening a torrent file from the android device's "Downloads" I get the put.io dialog. I choose a sub-folder of my put.io account, however the torrent always downloads to the top level folder no matter which folder I choose in the dialog.

I believe this is default put.io behavior. If you go to the web app settings, you can change the default download directory.


clear api gives wrong acknowledge response

Expected behavior
clear api should give the correct acknowledge response
Actual behavior

clear()
✔ Clicked
✔ [object Object]

Steps to reproduce

goto("Google.com")
write("java")
clear()

Versions
 0.7.0 (Chromium:74.0.3723.0)
commit: cc2c1dc

Fix available in commit d9e89e2

This bug has been verified and found fixed with the commit version d9e89e2


fix go to top on packages page

Title and Issue number

Title : fix go to top on packages page
Issue No. : #260
Close #260

Video/Screenshots (mandatory)

Checklist:

[x] I have mentioned the issue number in my Pull Request.
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have gone through the  contributing.md file before contributing

Additional context (Mandatory )
Are you contributing under any Open-source programme?

jwoc'24

@apu52 Please review this PR.


feat(forge script): ability to verify contracts on multiple explorers at once

Component
Forge
Describe the feature you would like
I'd like to verify my contracts on multiple explorers (e.g. Blockscout and Etherscan).
However forge script only lets you set a single verifier, and forge verify-contract requires you to manually input the constructor arguments, which is some case is quite difficult, and always leads to duplication of logic in any case.
I think the ideal solution would be to add options to forge verify-contract so that it can read from a broadcast output file and get the information it needs from there.
Additional context
No response

This should already be possible with forge script --resume. e.g. after you've broadcasted+verified on etherscan, you can run the same command with additional --resume --verifier-url <other url> args

@klkvr Great point, I only starting understanding how --resume works after posting this, but that would work indeed!


su: warning: cannot change directory to /seafile: Permission denied

When running initial setup, I get bunch of:
su: warning: cannot change directory to /seafile: Permission denied
-bash: /seafile/.bash_profile: Permission denied
/tmp/seafile.env: line 2: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

the only way to finish setup is to remove su -  and run everything as root

Hi, sorry for missing this. I belive this is because /seafile is mapped from an external host directory with incorrect permissions. I'll investigate this...
Thanks for the report.


[Request] Rotate log files

My verbose.log is currently 215 MB and contains 92000+ lines. It would be nice if logs could be rotated at a fixed size, say 50 MB, and the previous one renamed to verbose.log.bak1 etc. (basically like how qBittorrent does it).

Thanks for implementing this! Will older logs be pruned after some time?

2 weeks

Perfect!

Of course, LMK if it doesn't end up working.


Merging latest commits

@TaraMeyer,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/Azure/azure-docs-powershell, working directory: W:\wzku-s, target branch: live, target branch commit: 226527be7cb647acfe2ea9ab151185053ab3c6db, source branch: master, source branch commit: .

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.publish.config.json
:white_check_mark:Succeeded

azureps-cmdlets-docs/ResourceManager/docs-conceptual/overview.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.