Allow Driving FFB Servo's through PCA9685

Allows connecting and driving your FFB servo's through a PCA9685 I2C board instead of needing them directly connected to the ESP/Arduino, allowing you to control all your servo's using only two pins.
I setup the PCA code to follow the input format of the ESP32Servo and Servo.h libraries, allowing the servo commands to be passed to the PCA without changes.

Well, I moved the I2C struct into its own file as a normal function. Doing so fixed the compile error by indirectly #including AdvancedConfig.h in haptics.ino (and also wire.h which I had missed before) Either way. It now compiles and from what I can tell fully works again.

Alright, I think that's everything from your original comments done.

Something may be very wrong. On a freshly configured copy of this branch I'm suddenly getting a bunch of compile errors and issues that I wasn't getting during my testing last night. I don't know what is different so I'll need to take a look at this tomorrow.


More intuitive inpainting

Is your feature request related to a problem? Please describe.
Currently inpainting is very difficult to use as is so please make it more availible.
Describe the solution you'd like
User actions:

Use any selection tool to select an area of the image to inpaint
Call the inpainting plugin, which warns the user if there is no selection availible or layer is empty / non rasterized.

The following actions are done by the plugin:

Fill the selected area with a solid color without antialiasing on a new (mask) layer;
(if needed) Convert the mask layer to a format the inference module understands;
Save image layer and mask layer as cache0.png / cache1.png;
Send them to the inference module which saves its output as result.png or produces an intelligible error text (The inference module should fill only pixels corresponding to non-transparent mask-layer pixels leaving the rest transparent.);
Replace the mask layer with result.png so the it will have only inpainted region;
Delete cache and inference result files.

Additional context
Currently if inpainting fails it does so silently without any intelligible error messages whatsoever, please fix it too.

We’ll update the inpainting model in gimp 3 ml branch

Please how line 126 to 160 in

inpainting.py
for UI change. Or directly ping on slack https://join.slack.com/t/gimp-mlworkspace/shared_invite/zt-rbaxvztx-GRvj941idw3sQ0trS686YA

Mm.. it's not exactly what I asked. Error checking is also part of it but... Can you at least help me with GIMP3 code for what I asked as the main points? Aka selection, layer generation and filling before sending to the inference module?

pl ping on slack

It's not that I didn't know about help...
I tried it like below and got a lot of type errors and I can't figure out what each type should be by myself:
    pdb = Gimp.get_pdb()

    interlace, compression = 0, 2

    drawable = pdb.run_procedure('gimp-image-get-active-drawable', [image])
    arr_drawable = Gimp.ObjectArray.new(Gimp.Drawable, [drawable.index(1)], 1)
    cut_result = pdb.run_procedure('gimp-edit-cut', [1, arr_drawable])
    mask_image = pdb.run_procedure('gimp-edit-paste-as-new-image', [])
    mask_layer_group = pdb.run_procedure('gimp-layer-group-new', [mask_image.index(1)])

    pdb.run_procedure('file-png-save', [
        GObject.Value(Gimp.RunMode, Gimp.RunMode.NONINTERACTIVE),
        GObject.Value(Gimp.Image, mask_layer_group),
        GObject.Value(GObject.TYPE_INT, 1),
        GObject.Value(Gimp.ObjectArray, arr_drawable),
# ...
    pdb.run_procedure('file-png-save', [
        GObject.Value(Gimp.RunMode, Gimp.RunMode.NONINTERACTIVE),
        GObject.Value(Gimp.Image, image),
        GObject.Value(GObject.TYPE_INT, 1),
        GObject.Value(Gimp.ObjectArray, arr_drawable),

sorry but there is not much documentation available, the best way is to see other plugin files and see usage.

this is the only documentation available for the time being https://github.com/GNOME/gimp/tree/master/devel-docs/GIMP3-plug-in-porting-guide


global quote request changes

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #207
Test URLs:

Before: https://main--moleculardevices--hlxsites.hlx.page/
After: https://quote-request--moleculardevices--hlxsites.hlx.page/quote-request

Use Cases:

Default form submission give credit to cmp<PHONE_NUMBER>0hlRa
Any URL with utm parameters, gclid parameters & cmp parameters will create a session cookie
Form (RFQ+Landing pages) submission in the above session will give credit to that particular parameter. e.g. hit test URL
https://quote-request--moleculardevices--hlxsites.hlx.page/?cmp=testcmp&utm_medium=cpc&utm_source=facebook&utm_keyword=microplate&gclid=Tester-123

and then submit https://quote-request--moleculardevices--hlxsites.hlx.page/quote-request submission under this session will go Salesforce cmp testcmp with other parameters.

On the parameters for the site/form do we miss a product parameter? Something replacing the pid param?


Move reusable parsing subroutines into a common lib file/Lambda Layer

Diff appears large, but it's mostly just moving code around.
The code being moved isn't optimal -- there are a number of things (in the API, and in Pythonicisms) that should be changed. As a Python expert I'm sure you'll have comments on it! Feel free to comment, or, it might simply be better to sync offline and for us to make changes in subsequent PR(s). And of course please do comment on anything that isn't a drag-and-drop.
There are a couple oddities (like the way parsers import the lib), that are mostly a function of the way AWS Lambda Layers work. The import shenanigans are specifically so that we can run pytest unit tests in addition to invoking the function locally via sam local invoke. This post is a pretty good summary of what this change does, albeit with node as the example runtime. In separate PRs, there are some things I'd like to tweak, including:

Seeing if we can shove the dependencies (as in requirements.txt) to the Layer level (in lieu of per-parser).
Seeing if we can shove os env params (e.g. params configured in template.yaml) to the Layer level.

On my to-do today is poking some folks to try and sort the question around AWS credentials and running locally. In the meantime, I'd be happy to set you up an account so that you can run the SAM commands, if you'd like.

 Prep ingestion parsing library for contributions from exo-G.h developers


Better selector !!

Hi,
Thanks for this great script. Now scripts works fine with
var rellax = new Rellax( '.relax' );
But i think it will be much better, if you improve selector detection like this:
var rellax = new Rellax( '[data-rellax-speed]' );
Or add [data-rellax-speed] inside script, in this case even we do not need to call relax and it will detect all elements rellax-speed by default.
Regards

Hey @Codevz appreciate you taking the time to create an issue.
I think you make a great point that we should automatically detect the rellax elements, but my main concern is that there are two relatively common scenarios where this wouldn't be ideal.

If a user decides to not specify speed or set a global speed for all their parallax elements, ie var rellax = new Rellax('.rellax', {speed: 3}) // {speed: 3} is optional.

Attribute selection is notoriously slow and Rellax is built on the ideal of gentle enhancement. Realistically this library was created to support static websites that have a little bit of js animation, so I'd prefer to not use data attributes as selectors. With all that said, I'm not entirely opposed, especially since my favorite frontend coder does it with his pro libraries (@metafizzy).

For me, it will be much better if you can allow user to accept query selector.
rellax = new Rellax(document.querySelector(".rellax"), {speed: 3});
rellax = new Rellax(document.getElementById("#rellax"), {speed: 3});

We just merged in a version to submit an ID or classname, or anything that querySelectorAll accepts. Going to close this for now.

Hi!
I know this issue is closed, but I don't wanna open another one just to suggest something ...
So, I think the selector could be moved inside the "options" object (on v2.0 maybe, because it'd probably break backwards compatibility).
I usually just go with the default .rellax selector, but if I wanna change the global speed for example, I'll still need to specify the .rellax before I can pass in the { speed: -1 } object.
Resuming, it could look something like:
var rellax = new Rellax({
	selector: '.rellax', // Optional
	speed: -1,
	center: true
});

It's not a biigg difference, but I'd like to see what you guys think.

I'm working on a lit-html project and since it uses Shadow DOM, I can't use the default selector like this
var rellax = new Rellax('.relax');

In order for it to work I would need a selector that looks like this:
var rellax = new Rellax(this.shadowRoot.querySelectorAll('.rellax'));

Otherwise I get the Error: The elements you're trying to select don't exist. message. Is there anything else I could try?

Didn't realize this but apparently you can pass a node to Rellax
var el = this.shadowRoot.querySelectorAll('.rellax');
var rellax = new Rellax(el);

Give this a show


Integrate linopy as solver framework

One problem here is that the linopy code will work for the 'overnight' optimization, but will fail for the 'myopic' mode. That happens because the name of components in pypsa-eur-sec networks change with the optimization mode (due to conventions in add_existing_baseyear.py).
Thus, in the pypsa-eur-sec network, the components can be named as {bus} {name}-{year}, instead of pypsa-eur network convention of {bus} {name}.  The code below will break, because [nodes + " discharger"] is not in the index of links
  def add_battery_constraints(n):
      nodes = n.buses.index[n.buses.carrier == "battery"]
      link_p_nom = n.model["Link-p_nom"]
      eff = n.links.efficiency[nodes + " discharger"].values
       ...

In genenral, any dataframe slicing like [nodes + " discharger"] is problematic if components name convention change.
The code below should work for any instance of pypsa-eur-sec network:
    def add_battery_constraints(n):
        """
        Add constraint ensuring that charger = discharger:
         1 * charger_size - efficiency * discharger_size = 0
        """
        discharger_bool = n.links.index.str.contains("battery discharger")
        charger_bool = n.links.index.str.contains("battery charger")

        dischargers_ext= n.links[discharger_bool].query("p_nom_extendable").index
        chargers_ext= n.links[charger_bool].query("p_nom_extendable").index

        eff = n.links.efficiency[dischargers_ext].values
        lhs = n.model["Link-p_nom"].loc[chargers_ext] - n.model["Link-p_nom"].loc[dischargers_ext] * eff

        n.model.add_constraints(lhs == 0, name="Link-charger_ratio")

Merging into ci-review as needed by CI


Remove lights using sprite netsync

Using visualizers means you can significantly cut down on bandwidth compared to sending the entire sprite state.

Should be closed by #5028? Was this about wall lights?

was handhelds as they dirty'd every tick and I did this at some stage.


expect  position can be auto fix

if the highlight element is too small or position is too close to the screen border, some part of the popover will be hidden.
i'm expecting if driver can calculate the position of the popover and its distance to the screen border before the popover  render just in case popover is hide again.

Duplicate https://github.com/kamranahmedse/driver.js/issues/18


Implement td result export operator

About this PR

This PR implements td_result_export operator
This operator acts like td export:result command

Sample
+execute_query:
  td_run>: saved_select_query_name

+execute_result_export:
  td_result_export>:
  job_id: ${td.last_job_id}
  result_url_key: result_output_secret_key

TODO

[x] Bump up td-client-java
[x] Solve independency conflicts
[x] Implement TDResultExportOperatorFactory
[x] Add Integration Test for td_result_export

result_url_key is my first word! digdag (Treasure Data users) doesn't know the word.
That's helpful if you write how we can use it.

@toru-takahashi

If we use td operator with Result output to mysql and we would like to export the result to another mysql, do we need to write another result output setting?

Firstly, we would implement like that.
But, when we talked with td-api team, we found that the td-api endpoint which is used by td_result_export does not support result_connection and result_settings style parameters, only support legacy url style parameter(e.g. mysql://user:password@host/db/table) . So we decided to support legacy url in td_result_export operator, for now.
In the future, if td-api supports result_connection and result_settings style parameters, I think it's better that user can specify an export resource.

Thank you!

@muga
I modified result_url parameter style https://github.com/treasure-data/digdag/pull/843/commits/3ee0422593482ffde085c4a8ca69cab68623937d and add document 37554f0 .
Could you review this? (Especially, I want you check the document. I am not good at English...)


Update Staking Weights

This PR updates the weights of staking based on our benchmarks.
This PR also adds validation logic and slightly updates the benchmarking code to be a bit better.
Raw data is included in the weight comments.
TODO:

[ ] submit_election_solution
[ ] submit_election_solution_unsigned

FYI I think this could be reviewed and merged without submit_election_solution weights. We wold add that after in another PR

@bkchr precision of these benchmarks are on the order of 50% of the final value. Rounding up and down really doesn't matter tbh, but i am happy to go back and make that consistent if that effects your opinion on the PR.

@bkchr precision of these benchmarks are on the order of 50% of the final value. Rounding up and down really doesn't matter tbh, but i am happy to go back and make that consistent if that effects your opinion on the PR.

I will not block on this, I just found it weird :D I just find consistent behavior better^^

what about on_initialize/on_finalize ?

@thiolliere fixed on initialize weight

How are you going to deal with the weight of new_era when it fallbacks to on-chain phragmen?

We have the same situation in council as well. Two options:
1- We can make a contract that for now on-chain phragmen is always full block. End of the story.
2- Phragmen is O(e) where E is the number of edges. I have a benchmark in council that computes the complexity based on this. I think we can also actually make a good model for the computation time of phragmen and use it here.

How are you going to deal with the weight of new_era when it fallbacks to on-chain phragmen?

indeed we could make SessionManager methods return their weight because they are all called in on_initialize anyway.
But for now session module is taking full block at the end of each session. We could improve on this later IMHO.

@thiolliere @apopiak @kianenigma All comments addressed. Please take a look

bot merge


Small spelling fixes

Signed-off-by: Tihomir Surdilovic<EMAIL_ADDRESS>Many thanks for submitting your Pull Request :heart:!
Please specify parts this PR updates:

[ ] Specification
[ ] Schema
[ ] Examples
[ ] Extensions
[ ] Roadmap
[ ] Use Cases
[ ] Community
[ ] TCK
[x ] Other

What this PR does / why we need it:
just spelling fixes
Special notes for reviewers:
Additional information (if needed):

Just small spelling fixes. Will merge


move everything to december 14-15th

unfortunately the Nov 30th date is right on top of the annual mozilla all-hands.  So that cuts out our local mozillians.  the best date for them is dec 14-15th.  That also buys us some more time.

[ ] eventbrite
[ ] facebook
[ ] meetup
[ ] sponsor docs
[ ] web site


[CSL-245] Use more reasonable exception handling in GodTossing onStart worker

@gromak
Currently we are using catchAll there, but catching all exception is usually bad thing to do. In this particular case I think it makes sense to catch only network-related errors. From TW/DHT it's not clear what one should catch :(

@gromak
This issue no longer makes sense and onStart doesn't make sense. I will remove onStart soon. After we added TTL, we need to resend certificates from time to time, not only on start.


fix: update maven urls

Web docs PR: https://github.com/WalletConnect/walletconnect-docs/pull/318

@TalhaAli00 ping

Let's also update the docs installation


possible bug in process_inlines

I have noticed that I get a strange assert (wrong insert_before for MIR_insn_t) in the following code in mir.c inside the process_inlines function:
        if (head_func_insn->code != MIR_LABEL)
          MIR_insert_insn_before (ctx, func_item, head_func_insn, func_top_alloca);
        else
          MIR_insert_insn_after (ctx, func_item, head_func_insn, func_top_alloca);

In my test code I have a function whose first instruction is a call, which from what I can tell gets inlined into the first function, that causes the head_func_insn to no longer actually point to the first instruction (func->insns->head), which makes for the assert to eventually fire.
The first function:
int32 [Corelib-v1]System.Random+ThreadSafeRandom::Next():	func	i32, p:this
	local	i64:exception, i64:si0, i64:ti0, i64:ti1
# 1 arg, 4 locals
L32680:
	call	[Corelib-v1]System.Random+XoshiroImpl [Corelib-v1]System.Random+ThreadSafeRandom::get_LocalRandom()$proto, [Corelib-v1]System.Random+XoshiroImpl [Corelib-v1]System.Random+ThreadSafeRandom::get_LocalRandom(), si0
L32681:
	mov	ti0, si0
	mov	ti1, u32:(ti0)
	call	int32 [Corelib-v1]System.Random+ImplBase::Next()$proto, int32 [Corelib-v1]System.Random+XoshiroImpl::Next(), si0, ti0
L32682:
	mov	ti0, si0
	ret	ti0
	endfunc

The second function:
[Corelib-v1]System.Random+XoshiroImpl [Corelib-v1]System.Random+ThreadSafeRandom::get_LocalRandom():	func	p
	local	i64:exception, i64:si0, i64:ti0, i64:si1
# 0 args, 4 locals
L32164:
	mov	ti0, [Corelib-v1]System.Random+ThreadSafeRandom::_random
	mov	si0, p:(ti0)
L32165:
	mov	ti0, si0
	mov	si0, ti0
	mov	si1, ti0
L32166:
	mov	ti0, si1
	bt	L32167, ti0
L32168:
L32169:
	call	[Corelib-v1]System.Random+XoshiroImpl [Corelib-v1]System.Random+ThreadSafeRandom::Create()$proto, [Corelib-v1]System.Random+XoshiroImpl [Corelib-v1]System.Random+ThreadSafeRandom::Create(), si0
L32167:
	mov	ti0, si0
	ret	ti0
	endfunc

After more inspection I think I understand more, the first instruction is a call that gets inlined, that causes the first instruction to then get removed from the insn list (since the call itself is no longer needed), then at a later stage the head_func_insn (which now has its prev and next being NULL) is used to insert another thing at the start, which fails because the instruction is no longer linked.

Thank you for reporting this and provide the test cases.  I'll try to fix the problem on this week.

Your analysis is right.  After some tries, I create a code which reproduces the bug.
I've pushed the fix https://github.com/vnmakarov/mir/commit/c476b61dbe86b1d9ea36d142b978b28c0b2ec21d into master and v_0_x branch.
Thank you again for reporting this.

Tested and it works great! Thanks!


Tile Cache

[ ] I added an entry to CHANGELOG.md if knowledge of this change could be valuable to users.

Here is a brief summary of what I did:

 Die Endergebnisse von WMS werden gecachet

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

333 of 690 (48.26%)  changed or added relevant lines in 48 files are covered.
6 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.2%) to 89.045%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

services/src/pro/contexts/in_memory.rs
4
5
80.0%

services/src/pro/contexts/mod.rs
7
8
87.5%

services/src/pro/contexts/postgres.rs
1
3
33.33%

operators/src/mock/mock_dataset_data_source.rs
1
4
25.0%

operators/src/mock/mock_feature_collection_source.rs
0
3
0.0%

operators/src/mock/mock_point_source.rs
1
4
25.0%

operators/src/mock/mock_raster_source.rs
1
4
25.0%

operators/src/plot/pie_chart.rs
4
7
57.14%

operators/src/plot/scatter_plot.rs
4
7
57.14%

operators/src/plot/temporal_raster_mean_plot.rs
2
5
40.0%

Files with Coverage Reduction
New Missed Lines
%

operators/src/source/ogr_source/mod.rs
1
95.35%

services/src/pro/server.rs
1
0%

services/src/pro/contexts/postgres.rs
4
96.61%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
95771

Relevant Lines:
107554

💛  - Coveralls

bors merge


[feat] Add a new ack timeout mode where a callback is called instead of nacking the message

Search before asking

[X] I searched in the issues and found nothing similar.

Motivation
When a Pulsar application has ordered processing requirements, it's necessary to use either Failover, Exclusive or Key_Shared subscriptions. Ack timeouts shouldn't be used at all since this could cause messages to be processed in the wrong order. The application should take responsibility of handling possible error cases.
Since ack timeouts aren't used, there's a chance that the application logic contains a bug and the application doesn't acknowledge a message. Detecting this is very hard currently. It's hard to tell whether lost acks are caused by a Pulsar bug or feature or it's a problem caused by the application. This should be made easier.
Solution
Since Pulsar already contains the ack timeout feature, it would be natural to use it as the basis for detecting when the application is not acknowledging a message in time.
example of configuring the ack timeout handler:
consumerBuilder.ackTimeout(10, TimeUnit.SECOND)
               .ackTimeoutHandler((consumer, messageIds) -> messageIds.forEach(messageId -> log.warn("message with id {} wasn't acknowledged!", messageId))

interface:
import java.util.Set;
import org.apache.pulsar.client.api.Consumer;
import org.apache.pulsar.client.api.MessageId;

public interface AckHandler {
    void handleAckTimeout(Consumer<?> consumer, Set<MessageId> messageIds);
}

Alternatives

Anything else?

Are you willing to submit a PR?

[X] I'm willing to submit a PR!

https://github.com/apache/pulsar-client-go/issues/403#issuecomment-735995132
https://github.com/apache/pulsar-client-go/issues/217#issuecomment-619384515
I have a doubt. Based on the discussion here, ackTimout is a legacy feature; do we still need to add new functionalities for this feature?

apache/pulsar-client-go#403 (comment) apache/pulsar-client-go#217 (comment)
I have a doubt. Based on the discussion here, ackTimout is a legacy feature; do we still need to add new functionalities for this feature?

@crossoverJie Thanks for sharing. Perhaps we rename this completely. :) However, it doesn't take away the usefulness of having a way to detect when the application is possibly misbehaving and missing to acknowledge a message.


does the web chat iframe support multiple messages in a response?

I embedded the iframe into a custom site for testing and when I call the bot framework nodejs API:
session.send("my message");
followed by:
builder.Prompts.text(session, 'Please enter y/n');
On the emulator locally, I get the follow-up prompt, but the web chat iframe doesnt even send the second message. Also, this occurs on Slack as well... Is that just a limitation of the iframe application/slack channel that was built?

It's likely your AppId or AppSecret aren't properly setup. Can you share your bots setup code?

Which code are you after exactly? The iframe code, or the nodejs bot setup?

The NodeJS code please.

I'll try to show you as best as I can, Im just going to remove some of my private code as best I can.
Note, I have removed the application id and subscription key from the code below, I can provide these to you privately if need be?
var restify = require('restify');
var builder = require('botbuilder');
var gd = require("./dialogs/greeting-dialog.js");
var model = 'https://api.projectoxford.ai/luis/v1/application?id=MY_APP_ID&subscription-key=SUB_KEY';

var dialog = new builder.LuisDialog(model);
var myBot = new builder.BotConnectorBot();
var server = restify.createServer();

myBot.add('/', dialog);
gd.welcomeDialog(dialog);

dialog.onDefault(builder.DialogAction.send("I'm sorry I didn't understand."));

// Serve a static web page
server.get(/.*/, restify.serveStatic({
	'directory': '.',
	'default': 'index.html'
}));

server.post('/api/messages', myBot.listen());

server.listen(process.env.port || 8080, function () {
    console.log('%s listening to %s', server.name, server.url);
});

On the line below you should provide your bots AppId & AppSecret:
var myBot = new builder.BotConnectorBot();

And on the line below you should probably include a call to myBot.verifyBotFramework().
server.post('/api/messages', myBot.listen());

It's not required but helps make your bot more secure. You can leave it out until you get everything else working.

Hey Stevenic, are you saying that this is the cause of the issue with the iframe/slack channel? Or is this just best practice?

The first issue is likely why your bot isn't working with the WebChat control. The second is a best practice.

Sorry Stevenic, I implemented your suggestions and it simply doesnt seem to respond with multiple responses... but still works fine in the emulator

Closing this issue. @xmark - please open a new issue if this issue is not fixed and needs further discussion. @Stevenic - reopen if necessary. Thanks!


[UNDERTOW-548] Adjustment to status code handling to better fit FORM auth with other challenge types.

Windows Build 1631 outcome was FAILURE using a merge of 9ebe1e12af82c2a5c472d249fd3e461b2bca1cba
Summary: Execution timeout (new); tests passed: 2781, ignored: 595 Build time: 00:30:06


az CLI command for AKS deploy sample is incorrect

Note the single dashes here:
az ml model deploy -ct myaks -m mymodel:1 -n myservice -ic inferenceconfig.json -dc deploymentconfig.json
It works if you use long form parameter style:
az ml model deploy --ct myaks -m mymodel:1 -n myservice --ic inferenceconfig.json --dc deploymentconfig.json

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d3783f41-ce06-3d23-8e2e-64abbb5c96c4
Version Independent ID: f66fcf5b-c259-8e77-20e2-9bbe750d52c5
Content: Deploy ML models to Kubernetes Service - Azure Machine Learning
Content Source: articles/machine-learning/how-to-deploy-azure-kubernetes-service.md
Service: machine-learning
Sub-service: core
GitHub Login: @jpe316
Microsoft Alias: jordane

@gerardsimons Thanks for finding this. I have created a PR to update this command.

@gerardsimons The change is now complete. The document will be updated in 24 hours.
We will now proceed to close this thread. If there are further questions regarding this matter, please tag @RohitMungi-MSFT in your reply.


Wrong spacing if rowspan is used

Take the example at https://developer.mozilla.org/en-US/docs/Learn/HTML/Tables/Basics, more specifically the code at https://github.com/mdn/learning-area/blob/master/html/tables/basic/animals-table-fixed.html and point it to this css instead of the provided one.
You get (with the latest Firefox on OSX) what you see in the attached image, which is not correct (Hen and Mare seem to have some white-space to their left).

Is this still open? Can i take a look once?

Apparently yes, see the codepen https://codepen.io/mapio/pen/VwwzRrR (notice how "Mare" in the "Horse" row has a space in front of it, differently from "Stallion")

hey @mapio i seen problem, where can i work this? can you make a Fork available in single html page?

I don't get you question and I'm not the mantainer of milligram… if you want to fix the bug, fork the repo and submit a pull request when done so that the repo owners can evaluate to accept it or not.

I opened a fork in this repo and submitted a pull request for my fix to this issue.
Im new to GitHub and not sure if I did this correctly.

oh I think I did this wrong. I just realized I edited an example file not a milligram file.

Ok I edited the minimal.css file from the milligram repo and I will see if they accept it or not.
I added classes so that when using rowspan and colspan the alignment of words in the subsequent columns is not thrown off.

Nope… I'm not the repo owner, but those files look to be generated (have a look at https://github.com/milligram/milligram/blob/master/.github/contributing.md#building) starting from sass files under the src directory.

@mapio thanks for helping @Lisagrant101
@mapio here you forgot adding the normalize.css support.
Besides, it seems there is something wrong with your example if you copied from MDN. Note, in your example don't have
 and
 elements.

@mapio thanks for helping @Lisagrant101
@mapio here you forgot adding the normalize.css support.
Please, let me know if you still need help.

@mapio here you forgot adding the normalize.css support.

I've added it now, it seems not to change the status of the issue.

@mapio I can is wrong, but as I understand it:
The problem is not when you use any attribute in this element but when you use the example structure:

        Animals

        Hippopotamus

        Horse
        Mare

        Stallion

        Crocodile

        Chicken
        Hen

        Rooster

Note, this behavior is generated by:
td,
th {
  padding: 1.2rem 1.5rem;
}
td:last-child,
th:last-child {
    padding-right: 0;
}
td:first-child,
th:first-child {
    padding-left: 0;
}

And even if you remove the attributes, there will still be "left white-space" in the same elements. Look: https://codepen.io/cjpatoilo/pen/yLYGQNy

@RamanaVem You can find the Table module here ./src/_Table.sass

@mapio I can is wrong, but as I understand it:
The problem is not when you use any attribute but when you use the example structure:

    Animals

    Hippopotamus

    Horse
    Mare

    Stallion

    Crocodile

    Chicken
    Hen

    Rooster

Note, this behavior is generated by:
td,
th {
  padding: 1.2rem 1.5rem;
}
td:last-child,
th:last-child {
    padding-right: 0;
}
td:first-child,
th:first-child {
    padding-left: 0;
}

And even if you remove the attributes, there will still be "left white-space" in the same elements. Look: https://codepen.io/cjpatoilo/pen/yLYGQNy
So, we need to find some solution to soften this behavior when there is this structure or remove this spacing by default in all table styles.

I'm not sure to get your point.
My bug report is based on https://github.com/mdn/learning-area/blob/master/html/tables/basic/animals-table-fixed.html that (coming from MDN) I assume to be authoritative (even if it does not include thead and tbody elements, that are indeed optional as per HTML standard).
Unfortunately I'm no CSS expert and I can't fix the bug, or understand the reason why your CSS style makes it happen.
What is sure is that the above HTML example is valid and is rendered correctly unless you use your CSS style.

@mapio to fix the behavior in this specific example:
th + td {
  padding-left: 0;
}

@mapio try to use:
th + td {
  padding-left: 0;
}

This code fixes the "white-space" in this specific example.

If what you suggest is a fix, please implement it in the library and release a new version.

@mapio the code above is not the final solution for a possible fix. There are other ways to get the same result. Look: https://codepen.io/cjpatoilo/pen/bGVOQzd
So, to make changes in Milligram I need to understand better all scenes to ensure that expected behavior. I've been work on a new version v1.4.0. Let me see what I can do for this.
Thank you for your contribution and for reporting this example.

Can I work on this issue?

Can I work on this issue?

I'm not the maintainer, but I can't see why you shouldn't!

Okay

hi @mapio , i made a PR for this issue, please review.

Dear @tusharck I'm not the maintainer of this project… for what it is worth, it seems that #274 fixes this bug, but I'm unable to accept PR for the project.

Hi @cjpatoilo , as @mapio , the PR i made fixes the issue, can you please review it.

Hello Sir,
I would like to contribute to this project,
I am new to hacktoctoberfest and this would be a great beginning.
Thank you...

Hello Sir,
I am new to Hactoberfest and I would like to contribute  to this project

I am a beginner, can i also contribute to this project?

I think, It was the previous years problem. Sent from Mail for Windows From: shaaoniSent: 07 October 2023 01:48To: milligram/milligramCc: Yugal Saini; CommentSubject: Re: [milligram/milligram] Wrong spacing if rowspan is used (#217) Hey @mapio Is this still open ? Then I want to contribute to it.—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID<EMAIL_ADDRESS>
I am new to Hacktoberfest. If this issue is still open, I wanna contribute to this.

The last commit appears to be in 2020. This is probably an abandoned project. Not sure the maintainer will accept PRs.


end point url not allowing extra parameters

HI we are using customer bing streaming api. our configuration is as below
{
"auth-endpoint": "https://eastasia.api.cognitive.microsoft.com/sts/v1.0/issueToken,
"auth-key": "83b03XXXXXXXXXXXXXX",
"stt-endpoint" : "https://eastasia.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?cid=38XXXXXXX"
}
It is not supporting extra parameter appending to stt-endpoint (cid=38xxxx) not get passed,
could you please support this.
Thanks,

Right, custom language models are not currently supported. Subject to a change request.

This feature has already been implemented in the latest Bing/Azure plugins.


⚠ Samsung has degraded performance

In 6db9114, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2256 ms

Resolved: Samsung performance has improved in 76f61c4.


How to discard self-published messages

Hello author, I want to know that the server subscribes to a topic, and then the server publishes a message using an inline client. The Client ID obtained in the callback function is always inline. I can't get the ID of other clients. I want to discard the message with the ID inline. How can I do it?

Hi @InfpHub,
If you're using the inline client subscription, in the callback, use the pk.Origin which contains the original clientID that published the message.
If you're using OnPublish hook, then cl is the original client that published the message.


[libxmp] Update to v4.6.0

[x] Changes comply with the maintainer guide
[x] SHA512s are updated for each updated download
[x] The "supports" clause reflects platforms that may be fixed by this new version
[x] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

All features are tested successfully in the following triplet:
x86-windows
x64-windows
x64-windows-static

The usage test passed (header files found):
libxmp provides CMake targets:

    find_package(libxmp CONFIG REQUIRED)
    target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:libxmp::xmp_shared>,libxmp::xmp_shared,libxmp::xmp_static>)


Added new @backstage/no-top-level-material-ui-4-imports rule

Hey, I just made a Pull Request!
Added new @backstage/no-top-level-material-ui-4-imports rule that forbids top level imports from Material UI v4 packages. Also updated imports from named to default imports to help with the Material UI v4 to v5 migration for the Azure DevOps, DevTools, and Linguist plugins using the new rule.
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

A suggestion on the name would be @backstage/no-top-level-material-ui-4-imports given this previous PR: #18558

Good call, I've updated it to that, thanks @benjdlambert 👍

Needs api report update!

Thanks for those last few comments @freben, cleaned things up nicely!
@benjdlambert @tudi2d read for your review, please :)

Thanks @benjdlambert and thanks again for the reviews @freben 🚀


Indexes and messages notation

The spec makes heavy use of lists of messages and indexes. We need a consistent way to represent those.
- Option 1:
Represent indexes with a consisted format like I_t, I_d corresponding to the total and disclosed messages. Represent the messages with something like,
(msg[i] for i in I_d)   // or I_t

As such spkGen for example will be,
spkGen(spk, PK, I_t, I_d, (msg[i] for i in I_d), pm)

- Option 2:
Define that all signatures on L messages will use the L first generators. With that, instead of the indexes of all the signed messages we can pass just the totalSignedMessages. That will also allow for a solution like here with
spkGen(spk, PK, revealedMessages, totalSignedMessages, pm)

where revealedMessages is a map between index and message. The drawback here is that when creating commitments for blind signatures, the user will need to choose the n first generators, with n = Total_Committed_Messages (i.e., always follow the example flow from the blind signatures spec), which could be restrictive for some applications.
- Option 3:
A compination of both, i.e.,
spkGen(spk, PK, Indexes, revealedMessages, pm)

where again revealedMessages is a map between index and message and Indexes the indexes of all the messages

With the merge of #64 is there anything outstanding with this issue @BasileiosKal? or can we close this?

Yeap. Further discussions on generators and indexes is better to be held elsewhere (like #68). Closing.


customize our own emojis

Is there a way for personalized emoji to come first?
For example, in the "custom" package, it goes much further back
I would like it to appear first as an option for emojis
I leave capture

I like the emojis that this package brings, but I would like the default emojis to be the personalized ones
Have the option that the emojis that the package brings are in the background
To be able to order which package of emojis go first
thank you

I also see the emojis plugins integrated in the global chat
the emojis button can also be seen when you submit a comment in the global chat

It would be nice to be able to order personalized emojis in order of importance
today by default they are in order by date
So we could put the most important first and the least important at the end

Please put your other requests in different issues


Docs

Adds a whole bunch of docs. See https://github.com/input-output-hk/ECIP-Checkpointing/tree/docs/docs for a start.

I just added a new section to the implementation explanation, describing the end-to-end process of how a checkpoint is issued: https://github.com/input-output-hk/ECIP-Checkpointing/blob/docs/docs/explanations/implementation.md#end-to-end-process.
@koslambrou This should help with your confusion in https://github.com/input-output-hk/ECIP-Checkpointing/pull/41#discussion_r616910798

AgreedOn 22 Apr. 2021 2:29 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/explanations/introduction.md:

@@ -0,0 +1,29 @@
+# Morpho Introduction

+This document explains what Morpho is and what it can be used for.
+
+Fundamentally, Morpho monitors a value on each node in a distributed network, and informs all nodes when they all agree on the same value. The implementation for this uses OBFT, which provides resilience against a limited number of byzantine nodes. The network requires a fixed number of nodes, with each node knowing and trusting the public key of every other node in the network.
+
+The main intended use case is to secure proof-of-work (PoW) blockchains against 51% attacks with checkpointing, as described in this paper. More specifically to secure the ETC chain, as proposed in ECIP1097, whose description of a checkpointing federation Morpho is based on. While the implementation has specifics to this use case, there is very little preventing it to be more generic.
+
+## Checkpointing and 51% attacks
+
+51% attacks are possible when an adversary has more than half of the hashing power in the entire network, meaning they can produce blocks at a faster rate than all other miners combined. Over time this allows them to create a forking chain in private which is arbitrarily longer than the longest public chain. At any point the attacker can then disclose their private chain to the public, at which point everybody will switch to the attackers chain, since it's longer. This is a problem because the attacker can choose which transactions are included in their chain. As an example, double spending is possible by not including an already considered confirmed transaction from the public chain in their private chain.
+
+An important aspect to consider is that 51% attacks become easier with lower mining participation, since an attacker only needs more mining power than the entirety of the lawful miners. Because of this, unpopular networks are at an increased risk, which can especially happen when they're new, or towards the end of their lifetime.
How about this:
An important aspect to consider is that 51% attacks become easier with lower mining participation since an attacker only needs more mining power than the entirety of the lawful miners. New chains or chains that are being migrated away from are therefore especially at risk.
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

AgreedOn 22 Apr. 2021 2:33 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/explanations/introduction.md:

+An important aspect to consider is that 51% attacks become easier with lower mining participation, since an attacker only needs more mining power than the entirety of the lawful miners. Because of this, unpopular networks are at an increased risk, which can especially happen when they're new, or towards the end of their lifetime.
+
+Checkpointing is a proposed mechanism to solve this problem, securing a proof-of-work chain against 51% attacks, even with low mining participation. The main idea is to use a small number of trusted community members, a checkpointing federation, to regularly insert checkpoints into the chain. Checkpoints are special non-proof-of-work blocks that cannot be reverted, essentially confirming all transactions in preceding blocks. Instead of always preferring the longest chain, network nodes should then always adopt the chain with the latest checkpoint. In order to ensure that checkpoint blocks can only be created by the checkpointing federation, the blocks include a list of member signatures signing the preceding block hash. The honest nodes will have to be aware of each members public key in order to verify such blocks. For more details, see especially section 3 of the paper, or the video discussing it.
+
+Morpho is an implementation of such a checkpointing federation, based on OBFT to provide consensus and byzantine fault tolerance among the federation members. It is built to interact with Mantis, an Ethereum Classic client that implements support for checkpoint blocks. This scheme has been proposed in ECIP 1097, which has been previously discussed, and demonstrated. A formal specification of Morpho is available here.
+
+## Topology
+
+The checkpointing federation consists of a fixed number of Morpho nodes (configured with NumCoreNodes), each of which is run by a trusted party. These Morpho nodes are connected to each other via TCP, striving for a fully connected network, meaning every node has a direct connection to every other node. The connections for this are handled by the OBFT library. The Morpho topology is specified with the file passed in TopologyFile, whose format is documented here.
+
+In addition to the Morpho nodes, each host of the federation also runs a passive Mantis node. This node allows the checkpointing federation to interact with the ETC network.
+
+In order for Morpho to know which proof-of-work blocks it can attempt to checkpoint, and to publish the created checkpoints, it issues JSON RPC requests to its corresponding Mantis node. These connections are local to the federation host and therefore not exposed to the internet. This RPC interface is documented here.
+
+Here is a diagram of how such a topology looks like. It consists of 5 Morpho nodes (green), fully connected with each other, each of which can issue JSON RPC requests to a Mantis node on the same host (red). The Mantis nodes meanwhile are connected to the ETC network (blue), which provides the federation with proof-of-work blocks to checkpoint, and receives checkpoints from the federation in return.
Flipping this around slightly to
Meanwhile, the Mantis nodes are connected to the ETC network (blue)
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

Can be confusing but I think it's unambiguous. That's probably the best we can do.On 22 Apr. 2021 2:19 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/explanations/introduction.md:

@@ -0,0 +1,29 @@
+# Morpho Introduction

+This document explains what Morpho is and what it can be used for.
+
+Fundamentally, Morpho monitors a value on each node in a distributed network, and informs all nodes when they all agree on the same value. The implementation for this uses OBFT, which provides resilience against a limited number of byzantine nodes. The network requires a fixed number of nodes, with each node knowing and trusting the public key of every other node in the network.
+
+The main intended use case is to secure proof-of-work (PoW) blockchains against 51% attacks with checkpointing, as described in this paper. More specifically to secure the ETC chain, as proposed in ECIP1097, whose description of a checkpointing federation Morpho is based on. While the implementation has specifics to this use case, there is very little preventing it to be more generic.
+
+## Checkpointing and 51% attacks
+
+51% attacks are possible when an adversary has more than half of the hashing power in the entire network, meaning they can produce blocks at a faster rate than all other miners combined. Over time this allows them to create a forking chain in private which is arbitrarily longer than the longest public chain. At any point the attacker can then disclose their private chain to the public, at which point everybody will switch to the attackers chain, since it's longer. This is a problem because the attacker can choose which transactions are included in their chain. As an example, double spending is possible by not including an already considered confirmed transaction from the public chain in their private chain.
This gives
As an example, double spending is possible by not including a transaction that has already been considered confirmed in the public chain in their private chain.
The last part might be a bit confusing, what do you think?
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

That's better.On 22 Apr. 2021 2:41 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/references/configuration.md:

+Type: integer
+
+Required: yes
+
+How many OBFT blocks are needed in order for it to be considered stable. With t being the number of byzantine nodes, this value should be 3t + 1. See the OBFT paper for the reasoning behind this.
+
+Example: 4
+
+### PoWNodeRpcUrl
+
+Type: string (url)
+
+Required: yes
+
+The JSON-RPC HTTP endpoint of the proof-of-work node that should.
Changed this to
The JSON-RPC HTTP endpoint of the proof-of-work node that should be queried for RPC calls.
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

That's fineOn 22 Apr. 2021 2:15 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/references/rpc.md:

+```

+
+
+## Method checkpointing_pushCheckpoint
+
+#### Parameters (list)
+0. (required, string): The block hash that is checkpointed
+1. (required, list of strings): List of ECDSA signatures over the block hash, signed by different Morpho nodes. There will always be RequiredMajority number of signatures.
+
+##### ECDSA signature format
+
+As explained in the crypto document, vote signatures consist of values r, s and v = 27|28, where r and s are each 256 bits or 32 bytes wide. In the RPC interface such a signature is encoded by concatenaning the hexadecimal encoding of r, s, and v, where v is encoded as a single byte. This means a signature string consists of 130 hexadecimal characters, each pair of which encoding 8 bits / 1 byte, resulting in a hex character count composition of 64|64|2 for r|s|v.
+
+#### Result (boolean)
+true or false, ignored.
Was just never implemented to return anything useful, and this is currently required since the code expects the calls to adhere to this schema. This is something that could be improved in the future.
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

Try 'represents'On 22 Apr. 2021 2:11 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/references/rpc.md:

},

"id": 1
+}
+```

+
+
+## Method checkpointing_pushCheckpoint
+
+#### Parameters (list)
+0. (required, string): The block hash that is checkpointed
+1. (required, list of strings): List of ECDSA signatures over the block hash, signed by different Morpho nodes. There will always be RequiredMajority number of signatures.
+
+##### ECDSA signature format
+
+As explained in the crypto document, vote signatures consist of values r, s and v = 27|28, where r and s are each 256 bits or 32 bytes wide. In the RPC interface such a signature is encoded by concatenaning the hexadecimal encoding of r, s, and v, where v is encoded as a single byte. This means a signature string consists of 130 hexadecimal characters, each pair of which encoding 8 bits / 1 byte, resulting in a hex character count composition of 64|64|2 for r|s|v.
The "encoding" is a noun here, I don't think that need to be changed
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

I replied on GitHubOn 22 Apr. 2021 2:08 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/references/rpc.md:

@@ -0,0 +1,142 @@
+# JSON RPC specification

+Morpho only interacts with the outside world by making JSON RPC requests to the server configured with PoWNodeRpcUrl. The server is assumed to participate in a proof-of-work blockchain, able to query the chain and send new blocks. The following sections describe all methods that Morpho issues requests for, along with their parameters, result types and expected semantics. Morpho's client-side specification of this interface is defined in JsonRpcProtocol.hs. A mostly working server-side implementation of this specification can be found in Mantis, see CheckpointingService.scala.
+
+## Method checkpointing_getLatestBlock
+
+#### Parameters (list)
+0. (required, number): The checkpointing interval, as configured with CheckpointInterval
+1. (required, null or string): The previously checkpointed block hash, or null if it doesn't exist
Should I add .'s to all such enumerations? Because there's also the above item, and the Result list below this one.
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

AgreedOn 22 Apr. 2021 2:07 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/references/rpc.md:

@@ -0,0 +1,142 @@
+# JSON RPC specification

+Morpho only interacts with the outside world by making JSON RPC requests to the server configured with PoWNodeRpcUrl. The server is assumed to participate in a proof-of-work blockchain, able to query the chain and send new blocks. The following sections describe all methods that Morpho issues requests for, along with their parameters, result types and expected semantics. Morpho's client-side specification of this interface is defined in JsonRpcProtocol.hs. A mostly working server-side implementation of this specification can be found in Mantis, see CheckpointingService.scala.
Hm but
The server is assumed to participate in a proof-of-work blockchain, query the chain and send new blocks.
Sounds off. The intent here is to say that it needs the capability/ability to do these actions, not that it does them in general. How about
The server is assumed to participate in a proof-of-work blockchain, with the ability to query the chain and send new blocks.
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

AgreedOn 22 Apr. 2021 2:04 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/references/configuration.md:

+### Verbosity
+
+Type: integer
+
+Required: no, defaults to 0
+
+Logged JSON values (with e.g. an ScJson scribe) are recursed into up to a default recursion depth, then cut off with the string "...". While usually this shouldn't be necessary, the recursion level can be increased/decreased with this option.
+
+### Logging
+
+Type: yaml/json value
+
+Required: yes
+
+Nested iohk-monitoring configuration. See here for a list of available options.
Changing it to [this example], since it's not the configuration file, but just an example of one.
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

AgreedOn 22 Apr. 2021 2:01 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/references/configuration.md:

+### RequiredMajority
+
+Type: positive integer
+
+Required: yes
+
+The number of votes for the same proof-of-work block required to generate a checkpoint. Should be more than half of NumCoreNodes but not more than all nodes.
+
+### StableLedgerDepth
+
+Type: integer
+
+Required: yes
+
+How many OBFT blocks are needed in order for it to be considered stable. With t being the number of byzantine nodes, this value should be 3t + 1. See the OBFT paper for the reasoning behind this.
For correctness, changing this to
The number of OBFT blocks needed in order for a past block to be considered stable.
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

OkOn 22 Apr. 2021 1:58 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/references/configuration.md:

+Type: list of strings
+
+Required: yes
+
+Hex-encoded 256-bit secp256k1 ECDSA public keys of all the nodes in the OBFT federation (including the own node). See NodePrivKeyFile for info on how to generate a key pair for a node. See the crypto document for how this is used.
+
+Example: 9aa5b5a7ba70b6f29c1d721f3cda3c3e5eb6d6836a608b0bc0866a780475e5f24793a07d8ff93dd49cb0e3938d8cd0fae7e69cfffedfe638ae5090b46307c1a8
+
+### CheckpointInterval
+
+Type: positive integer
+
+Required: yes
+
+The interval at which to generate checkpoints in the PoW chain. With a value of 4 it means that every 4th block on the proof-of-work chain is a checkpoint.
The specifics depend on the proof-of-work chain it is applied to, so I'd rather not give a range.
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

AgreedOn 22 Apr. 2021 1:56 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/references/configuration.md:

+Type: integer (seconds)
+
+Required: yes
+
+The number of seconds per OBFT slot.
+
+Example: 5
+
+### SecurityParam
+
+Type: integer
+
+Required: yes
+
+Number of blocks that can be rolled back. If chains differ by more than this amount, an OBFT hard fork occurs. Recommended to set to a high number.
I don't even know myself how important this parameter is, I wouldn't wanna give a range, but maybe
A value of about 2000 is the current recommendation.
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

OkOn 22 Apr. 2021 1:46 am, Silvan Mosberger @.***> wrote:
@Infinisil commented on this pull request.
In docs/explanations/implementation.md:

+(source)
+
+A vote as stored in currentVotes field of the ledger state contains the following fields:
+- votedPowBlock: The proof-of-work block that a node voted for as the next block to be checkpointed
+- voteSignature: A single signature by the node that cast the vote. See the crypto document for the components of such signatures.
+
+## Ledger state transitions
+
+(source)
+
+In OBFT, time is divided into slots, whose duration is controlled with SlotDuration. At every slot, the node whose NodeId equals the slot number modulo NumCoreNodes is the leader. This node collects transactions from all the other nodes into a mempool, then forges an OBFT block from them, which is then published to all the other nodes. In Morpho's case, a transaction is equivalent to a vote, and an OBFT block consists of an arbitrary number of transactions/votes.
+
+As new OBFT blocks are forged, the ledger state changes as follows:
+- morphoTip is updated to the new OBFT block's tip. This ensures that when Pushing a checkpoint to Mantis, the same checkpoint isn't pushed multiple times [2]
+- All the blocks transactions/votes are inserted into currentVotes, overriding previous votes by the same public key [3]
There's three different things going on:
There is the mempool, which the slot leader uses to collect all transactions/votes from the other nodes. This acts as a sort of staging area for votes, where they are just a potential candidate to be included in the next block.The slot leader then forges the block from the transactions in the mempool. Over time this gives you a chain of blocks, where each block is just a list of votes in our case.And finally, if we think of a chain of blocks as a sequence of state updates, where each block contains information on how the state should change. With this we can calculate a ledger state for a specific chain of blocks.
Here currentVotes is part of the ledger state, containing most recent votes from blocks that haven't been included in the last checkpoint. While blocks themselves only contain votes, we can calculate a ledger state for each of them (over the block and its predecessors). This can then be thought of as a chain of ledger states next to a chain of blocks. This looks something like this (with RequiredMajority = 3):
BlockState.currentVotesState.lastCheckpointGenesis[]Block1(v1)[v1]Block2(v2,v3)[]Checkpoint(, votes: [v1, v2, v3])Block3(v4, v5)[v4, v5]Checkpoint(, votes: [v1, v2, v3])
I'll probably make a diagram for this
—You are receiving this because your review was requested.Reply to this email directly, view it on GitHub, or unsubscribe.

I opened https://github.com/input-output-hk/ECIP-Checkpointing/pull/48 to improve the local testing infra. After that PR is merged I'll update this one a final time to point that out.

@NeilBurgess42 @koslambrou I rebased this PR on top of master. I also extended the tutorial with a fully working example of running a mining Mantis node in https://github.com/input-output-hk/ECIP-Checkpointing/pull/41/commits/7d156c9ea6f2062a18d0213f6b7aed3ee837b350). Unless you have any suggestions, I think this PR is ready to merge.

Included all feedback again


Add pkcs11 support to get_security_files

This implements ros2/design#332

Ping @clalancette or @mikaelarguedas ? Good to merge?

This pull request has been mentioned on ROS Discourse. There might be relevant details there:
https://discourse.ros.org/t/ros-2-tsc-meeting-minutes-2023-02-16/29927/1

@MiguelCompany any update on this pr?
Or should we wait REP-2015 to be approved first?

@SubaruArai I don't know what the process is. I guess we should wait for REP-2015, but I am just an external contributor, and I suppose that someone in the ROS 2 team should answer that.
Maybe @clalancette or @gbiggs can clarify?

@ahcorde I just rebased this. Will try to add tests in the test_security.cpp file

@ahcorde I updated the tests in test_security.cpp

Here is CI for this:

Linux
Linux-aarch64
Windows

A couple more pieces of CI, then I think this is good to go:

RHEL
Clang
Windows

All of the warnings here were also in the nightlies, so going ahead and merging this one in.


Fix failing build

Description of the change
The scheduled build is failing with this.

Type of change

[x] Bug fix (non-breaking change that fixes an issue);
[ ] New feature (non-breaking change that adds functionality);
[ ] Breaking change (fix or feature that would cause existing functionality not to work as expected);
[ ] Other (miscellaneous, GitHub workflow changes, changes to the PR template);

Checklists
Development

[ ] Parts of this pull request impacting core (user-facing, documented) product functionality have test coverage;

Code review

[ ] This pull request has a descriptive title and sufficient context for a reviewer. There may be a screenshot or screencast attached;
[ ] This pull request is no longer a draft;
[ ] You have reviewed this Pull Request yourself;

will merge it on Monday


Regen communication phone numbers

Checklists

[ ] Added impacted package name to the issue description

Packages impacted by this PR:
sdk\communication\communication-phone-numbers
Issues associated with this PR:
Solves https://github.com/Azure/azure-sdk-for-js/issues/19737
Describe the problem that is addressed by this PR:
Regenerate client with latest version of code generator, but keep using @azure/core-http instead of Core V2.
Summary of changes made:

Autorest version updated in swagger from "@autorest/typescript": "6.0.0-dev.20210223.1" -> "@autorest/typescript": "6.0.0-beta.15".
PhoneNumbers from ./generated/src/operations changed to PhoneNumbersImpl. Updated respective import declaration in phoneNumbersClient.ts.
The rest of the changes are the result from the regeneration.

What are the possible designs available to address the problem
If there are more than one possible design, why was the one in this PR chosen?
Does this PR needs any fixes in the SDK Generator? (If so, create an Issue in the Autorest/typescript repository and link it here)
Are there test cases added in this PR?(If not, why?)
No need to add new test cases since this PR only regenerates de client.
Provide a list of related PRs(if any)
Command used to generate this PR:(Applicable only to SDK release request PRs)

The code changes look fine. But the unit tests are failing in CI. Could you please check? Are they succeeding locally?

Issue has been closed


Sake Bottle for bartenders

About the PR
Adds a new sake bottle to the booze-o-mat. The bottle sprite is just a redone wine bottle.
Why / Balance
It was brought to my attention that, while not impossible, it was a hurdle to get sake for various drinks people may have come up with. This also means if people in future PRs make some drinks require sake, its not as difficult for bartenders to make them.
To my understanding it wasn't made scarce or rare for any particular reason, if it was intentional, then feel free to close this PR.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog
:cl:

tweak: Sake Bottles can now be found in the booze-o-mat.

Thanks for your contribution!


Mac ARM builds resulting in unusable wheels

Mac ARM builds resulting in unusable wheels
pip._internal.exceptions.UnsupportedWheel: polars-0.16.2-cp37-abi3-macosx_11_0_arm64.whl is not a supported wheel on this platform.

@conda-forge/help-osx-arm64  any ideas?

Have you considered unpinning maturin. It's currently at 0.14.12, you're pinning to <0.14.

It fails on >=0.14,<0.15 https://github.com/conda-forge/polars-feedstock/pull/94 which matches upstream pins

Is there anything we could do on polars repository to make it easier to publish on conda-forge?

im turning off osx-arm64 until its more stable: https://github.com/conda-forge/polars-feedstock/pull/98

adding --target aarch64-apple-darwin to Maturin didn't do anything

https://github.com/conda-forge/cryptography-feedstock/issues/78

I do not know really anything about rust or maturin ... but something is going strange with the build system.  First of all, I tried to build the latest version (basically the PR branch) by running a (Rosetta) x86 env on my osx-arm64 machine, and cross compiling to arm64.  (This usually is a good test, but sometimes does get tripped up).
   Compiling chrono-tz v0.6.3          ] 146/358: syn, hashbrown, lz4-sys(build), chrono, ...
error[E0554]: `#![feature]` may not be used on the stable release channeltz(build.rs), lz4...
  --> $BUILD_PREFIX/.cargo/registry/src/github.com-1ecc6299db9ec823/hashbrown-0.13.2/src/lib.rs:15:5
   |
15 | /     feature(
16 | |         test,
17 | |         core_intrinsics,
18 | |         dropck_eyepatch,
...  |
25 | |         build_hasher_simple_hash_one
26 | |     )
   | |_____^

So a) is it supposed to try to build 350 packages? b) what is this feature failure, and why is it not happening elsewhere?
Meanwhile, looking at the error above what looks like is happening is the build succeeds but then something is trying to install the cross-compiled build on the build system, which is then failing because it's the wrong architecture.  Is this for tests, or something about how the build system works?  And then the question is how it can be used for cross compilation ...

Okay, so the problem is that for cross-compilation you can't use maturin to build the wheels and then try to install the wheel (because the python is the wrong architecture).  But you can just call the cross-python pip directly and it will call out to maturin and everything works.  I've done this on #99 and it's working, but now the windows builds are failing (but maybe this is a known problem; is #95 relevant?


Meetup - Polkadot - Shenzhen, China

Hi, I am Anson based in HK, (@toxotguo) one of the team members from Chainx & me would like to organize polkadot meetup together to push Polkadot adoption in China.
What is the plan
the first meetup would be between 8 and 15 June (the exact date is not confirmed yet).
How many people:
50-70 Would be a good start.
Do you need help from the community
Help with promotion would be great, plus we would love for as many people as possible to attend.
Meetup Page
https://www.meetup.com/Polkadot-Shenzhen/

@ansonla3 let me know if you are doing more meetup in HK / SZ, and I will see how I can help.

let's keep in touch :)


New functions

Adds new function lookup_player()
If an exact matches are found for players with the same first and last name used in the search, it will output a list of those players found. This is useful for getting a players playerId number used in the mlb api

I looked at the statsapi again. To continue on my above thoughts. Teams have IDs, and I'm guessing games also have IDs. We should have functions for looking up IDs when they are not present for players, games, and teams.
Thoughts?

What do you mean by "functions for looking up IDs when they are not present for players, games, and teams"?
We have a function for looking up live games, but that could be changed to two, where one is get_games_date, and the other is live_games that just calls get_games_date for todays date and such.
Only issue with the just returning the ID's for the player is that if two players have the same name and play for different teams or what not, how will the user know what the id's they are receiving are?. Let me check if there are even players with the same name

It will be easier for me to show once I finish this example functions

Once my examples are finished, we will look into this!
Approving


Missing import entries in Mach-O Files

Version and Platform (required):

Binary Ninja Version: 4.1.5283
OS: macOS
OS Version: 14
CPU Architecture: arm64

Bug Description:
Mach-O "Dynamic Symbol Table" parsing appears to be missing imported symbols on certain Mach-O Files.
As shown in this screenshot, the address 0x3f538 contains no symbol information after being loaded by Mach-O View

However, viewing the binding information table directly allows us to see there is a
DO_BIND_ULEB_TIMES_SKIPPING_ULEB opcode at this address (in all cases DO_BIND will bind immediately at the cursor), and that there should ideally be a _OBJC_CLASS_$_NSObject import at this address. This tracks as this address is objc-metadata holding the superclass entry for VIVAManager.

Repro file used in this issue:
Viva.arm64.zip

Resolved in dev builds >= 4.1.5465


Undesired behavior within ~/.cheat directory

A description of the problem
The Python implementations of cheat (version 1.x and 2.x) assumed that configuration would live in ~/.cheat/conf.yaml. Since the introduction of "directory-scoped" cheatsheets in 3.3.0, this can cause an unexpected failure when running cheat within ~ when ~/.cheat exists.
Fundamentally, the problem is that cheat now interprets files contained within ~/.cheat to be directory-scoped cheatsheets, however the prior ~/.cheat/conf.yaml file would be shaped in a way that the current front-matter parser will not expect. This can cause cheat to crash with a runtime panic.
There are probably a few solutions here. Perhaps the most elegant would be simply to silently ignore malformed cheatsheets, rather than panic when they are encountered.
Feedback is welcomed on this and other solutions.
cheat version info
This affects 3.3.0 through 3.7.0.

@chrisallenlane I think this approach is fine 👍
But a message to the user should be printed.
Let’s say someone updates from a 2.x to 3.x version - that user could have personal cheatsheets he wants to keep.
So a message like „hey please move your stuff from a to b „ would help.
It could also just log a link to a help section in cheat‘s readme.
I happily support in writing this readme section and make a pull request.

Hi, @bernermic
Thanks for your :eyes: and your input.
I was thinking about this a bit more last night, as well as looking at the offending code. I think we have two separate issues here, really.
First: the frontmatter parser is just plain broken. When it encounters malformed frontmatter, it will panic. (This is straightforward to fix.) Thus, contrary to my ticket here, the problem isn't really the "home directory" - it's just that ~ is a common location where malformed "frontmatter" will be encountered.
Regarding your remarks:

Let’s say someone updates from a 2.x to 3.x version - that user could have personal cheatsheets he wants to keep.

I hadn't considered that, but that's important as well. In my opinion, this is a second, distinct issue: I didn't write "upgrading" instructions anywhere.
I've been working on a man page for cheat, which I'd like to include (probably) with the next release. I'll add an "UPGRADING" section there, as well as a quick blurb in the README. Thanks for spotting this!

This is now resolved in 3.7.1:
https://github.com/cheat/cheat/releases/tag/3.7.1


Error running README example with version 0.1.14

Sorry if this is a dumb issue. I am just trying to play with example from getting started readme.
!pip install crewai
Requirement already satisfied: crewai in /usr/local/lib/python3.10/dist-packages (0.1.14)
Requirement already satisfied: langchain<0.0.352,>=0.0.351 in /usr/local/lib/python3.10/dist-packages (from crewai) (0.0.351)
...

from crewai import Agent, Task, Crew, Process
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
[<ipython-input-12-87dde7b0a3c0>](https://localhost:8080/#) in <cell line: 1>()
----> 1 from crewai import Agent, Task, Crew, Process

5 frames
[/usr/local/lib/python3.10/dist-packages/langchain/callbacks/__init__.py](https://localhost:8080/#) in <module>
     43     StreamingStdOutCallbackHandler,
     44 )
---> 45 from langchain_core.tracers.context import (
     46     collect_runs,
     47     tracing_enabled,

ImportError: cannot import name 'tracing_enabled' from 'langchain_core.tracers.context' (/usr/local/lib/python3.10/dist-packages/langchain_core/tracers/context.py)

---------------------------------------------------------------------------

It appears to me that this library uses langchain version 0.0.351 but in that version langchain tracing flag was renamed from tracing_enabled to tracing_v2_enabled.

@andymalakov what's your pip freeze output ?

Someone else was able to replicate the problem, I bumped langchain version and it fixed the issue, thanks for flagging @andymalakov


[Studio] Validate new labels (from configured stories) by default

Non-validated labels are ignored when importing labels.
It would be convenient to validate new labels automatically (by default), at least from configured stories.

I chose to validate all new labels by default (not only from Configured Stories).


TF Lite conversion of minimal graph with tf.matmul fails on Linux but works on MacOS

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
16.04.6 LTS (GNU/Linux 4.15.0-47-generic x86_64) and macOS Mojave Version 10.14.4
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): pip install tf-nightly
TensorFlow version (use command below): 1.14.1-dev20190408
Python version: 2.7.16 (Mac) and 2.7.12 (Linux)
Bazel version (if compiling from source): N/A
GCC/Compiler version (if compiling from source): N/A
CUDA/cuDNN version: N/A
GPU model and memory: N/A

Describe the current behavior
The example code below creates a minimal TensorFlow graph that computes a tf.matmul between two input matrices and exports the graph to TensorFlow Lite from the current session via the Python API. It invokes the TF Lite Interpreter on example input and compares the output to the result of session.run.
The code works on Mac, but fails on Linux during TF Lite conversion (see logs below).
Describe the expected behavior
It should work (or at least behave the same) on both operating systems.
I know that the TF Lite Operator Compatibility states:

tf.matmul - as long as the second argument is constant and transposition is not used

This is not the case here, but it still curious that it works on Mac.
Code to reproduce the issue
import numpy
import tensorflow as tf

def export_tflite_from_session(session, input_nodes, output_nodes, tflite_filename):
    print("Converting to tflite...")
    converter = tf.lite.TFLiteConverter.from_session(session, input_nodes, output_nodes)
    tflite_model = converter.convert()
    with open(tflite_filename, "wb") as f:
        f.write(tflite_model)
    print("Converted %s." % tflite_filename)

def test_tflite_model(tflite_filename, examples):
    print("Loading TFLite interpreter for %s..." % tflite_filename)
    interpreter = tf.lite.Interpreter(model_path=tflite_filename)
    interpreter.allocate_tensors()
    input_details = interpreter.get_input_details()
    output_details = interpreter.get_output_details()
    print("input details: %s" % input_details)
    print("output details: %s" % output_details)

    for i, input_tensor in enumerate(input_details):
        interpreter.set_tensor(input_tensor['index'], examples[i])
    interpreter.invoke()
    model_output = []
    for i, output_tensor in enumerate(output_details):
        model_output.append(interpreter.get_tensor(output_tensor['index']))
    return model_output

def main():
    tflite_filename = "model.tflite"
    shape_a = (2, 3, 4)
    shape_b = (2, 4, 5)

    a = tf.placeholder(dtype=tf.float32, shape=shape_a, name="A")
    b = tf.placeholder(dtype=tf.float32, shape=shape_b, name="B")
    c = tf.matmul(a, b, name="output")

    numpy.random.seed(1234)
    a_ = numpy.random.rand(*shape_a).astype(numpy.float32)
    b_ = numpy.random.rand(*shape_b).astype(numpy.float32)
    with tf.Session() as session:
        session_output = session.run(c, feed_dict={a: a_, b: b_})
        export_tflite_from_session(session, [a, b], [c], tflite_filename)

    tflite_output = test_tflite_model(tflite_filename, [a_, b_])
    tflite_output = tflite_output[0]

    print("Input example:")
    print(a_)
    print(a_.shape)
    print(b_)
    print(b_.shape)
    print("Session output:")
    print(session_output)
    print(session_output.shape)
    print("TFLite output:")
    print(tflite_output)
    print(tflite_output.shape)
    print(numpy.allclose(session_output, tflite_output))

if __name__ == '__main__':
    main()

Other info / logs
Output on Mac:
2019-04-08 14:46:05.835019: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
Converting to tflite...
2019-04-08 14:46:05.837757: I tensorflow/core/grappler/devices.cc:53] Number of eligible GPUs (core count >= 8): 0 (Note: TensorFlow was not compiled with CUDA support)
2019-04-08 14:46:05.837803: I tensorflow/core/grappler/clusters/single_machine.cc:359] Starting new session
2019-04-08 14:46:05.839940: I tensorflow/core/grappler/devices.cc:53] Number of eligible GPUs (core count >= 8): 0 (Note: TensorFlow was not compiled with CUDA support)
2019-04-08 14:46:05.839979: I tensorflow/core/grappler/clusters/single_machine.cc:359] Starting new session
Converted model.tflite.
Loading TFLite interpreter for model.tflite...
INFO: Initialized TensorFlow Lite runtime.
input details: [{'index': 0, 'shape': array([2, 3, 4], dtype=int32), 'quantization': (0.0, 0L), 'name': 'A', 'dtype': <type 'numpy.float32'>}, {'index': 1, 'shape': array([2, 4, 5], dtype=int32), 'quantization': (0.0, 0L), 'name': 'B', 'dtype': <type 'numpy.float32'>}]
output details: [{'index': 2, 'shape': array([2, 3, 5], dtype=int32), 'quantization': (0.0, 0L), 'name': 'output', 'dtype': <type 'numpy.float32'>}]
Input example:
[[[0.19151945 0.62210876 0.43772775 0.7853586 ]
  [0.77997583 0.2725926  0.27646425 0.8018722 ]
  [0.95813936 0.87593263 0.35781726 0.5009951 ]]

 [[0.6834629  0.71270204 0.37025076 0.5611962 ]
  [0.50308317 0.01376845 0.7728266  0.8826412 ]
  [0.364886   0.6153962  0.07538124 0.368824  ]]]
(2, 3, 4)
[[[0.9331401  0.65137815 0.39720258 0.78873014 0.31683612]
  [0.56809866 0.8691274  0.4361734  0.8021476  0.14376682]
  [0.70426095 0.7045813  0.21879211 0.92486763 0.44214076]
  [0.90931594 0.05980922 0.18428709 0.04735528 0.6748809 ]]

 [[0.59462476 0.5333102  0.04332406 0.5614331  0.32966843]
  [0.5029668  0.11189432 0.6071937  0.5659447  0.00676406]
  [0.6174417  0.9121229  0.7905241  0.99208146 0.95880175]
  [0.7919641  0.28525096 0.62491673 0.4780938  0.19567518]]]
(2, 4, 5)
Session output:
[[[1.5545473  1.0208298  0.58792216 1.0921113  0.87367964]
  [1.8065444  0.98772776 0.636969   1.1275158  0.94971865]
  [2.0992541  1.6674836  0.93324846 1.812999   0.9258208 ]]

 [[1.437925   0.942041   1.1057518  1.422692   0.69494617]
  [1.4822663  1.226527   1.1926711  1.4789319  1.0796423 ]
  [0.86513305 0.43742114 0.679548   0.8042561  0.26889932]]]
(2, 3, 5)
TFLite output:
[[[1.5545473  1.0208298  0.58792216 1.0921113  0.87367964]
  [1.8065444  0.98772776 0.636969   1.1275158  0.94971865]
  [2.0992541  1.6674836  0.93324846 1.812999   0.9258208 ]]

 [[1.437925   0.942041   1.1057518  1.422692   0.69494617]
  [1.4822663  1.226527   1.1926711  1.4789319  1.0796423 ]
  [0.86513305 0.43742114 0.679548   0.8042561  0.26889932]]]
(2, 3, 5)
True

Output on Linux:
2019-04-08 14:47:09.730317: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-04-08 14:47:09.734305: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcuda.so.1
2019-04-08 14:47:10.718760: E tensorflow/stream_executor/cuda/cuda_driver.cc:320] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected
2019-04-08 14:47:10.718805: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:166] retrieving CUDA diagnostic information for host: everest6
2019-04-08 14:47:10.718811: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:173] hostname: everest6
2019-04-08 14:47:10.718867: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:197] libcuda reported version is: 410.104.0
2019-04-08 14:47:10.718890: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:201] kernel reported version is: 410.104.0
2019-04-08 14:47:10.718896: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:308] kernel version seems to match DSO: 410.104.0
2019-04-08 14:47:10.737178: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2019-04-08 14:47:10.737608: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x52d4340 executing computations on platform Host. Devices:
2019-04-08 14:47:10.737622: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): <undefined>, <undefined>
2019-04-08 14:47:10.738962: W tensorflow/compiler/jit/mark_for_compilation_pass.cc:1288] (One-time warning): Not using XLA:CPU for cluster because envvar TF_XLA_FLAGS=--tf_xla_cpu_global_jit was not set.  If you want XLA:CPU, either set that envvar, or use experimental_jit_scope to enable XLA:CPU.  To confirm that XLA is active, pass --vmodule=xla_compilation_cache=1 (as a proper command-line flag, not via TF_XLA_FLAGS) or set the envvar XLA_FLAGS=--xla_hlo_profile.
Converting to tflite...
2019-04-08 14:47:10.739692: I tensorflow/core/grappler/devices.cc:50] Number of eligible GPUs (core count >= 8): 0
2019-04-08 14:47:10.739747: I tensorflow/core/grappler/clusters/single_machine.cc:359] Starting new session
2019-04-08 14:47:10.741001: I tensorflow/core/grappler/devices.cc:50] Number of eligible GPUs (core count >= 8): 0
2019-04-08 14:47:10.741033: I tensorflow/core/grappler/clusters/single_machine.cc:359] Starting new session
Traceback (most recent call last):
  File "minimal_tflite_test.py", line 67, in <module>
    main()
  File "minimal_tflite_test.py", line 47, in main
    export_tflite_from_session(session, [a, b], [c], tflite_filename)
  File "minimal_tflite_test.py", line 9, in export_tflite_from_session
    tflite_model = converter.convert()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/lite/python/lite.py", line 742, in convert
    **converter_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/lite/python/convert.py", line 410, in toco_convert_impl
    input_data.SerializeToString())
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/lite/python/convert.py", line 176, in toco_convert_protos
    "TOCO failed. See console for info.\n%s\n%s\n" % (stdout, stderr))
tensorflow.lite.python.convert.ConverterError: TOCO failed. See console for info.
2019-04-08 14:47:11.490702: I tensorflow/lite/toco/graph_transformations/graph_transformations.cc:39] Before Removing unused ops: 1 operators, 3 arrays (0 quantized)
2019-04-08 14:47:11.490766: I tensorflow/lite/toco/graph_transformations/graph_transformations.cc:39] Before general graph transformations: 1 operators, 3 arrays (0 quantized)
2019-04-08 14:47:11.490876: I tensorflow/lite/toco/graph_transformations/graph_transformations.cc:39] After general graph transformations pass 1: 11 operators, 25 arrays (0 quantized)
2019-04-08 14:47:11.490918: F tensorflow/lite/toco/graph_transformations/propagate_fixed_sizes.cc:1800] Check failed: axis >= 0 (-323499096 vs. 0)
Aborted (core dumped)

The error occurs during TF Lite conversion. The erroneous axis value (-323499096) is different every time the script is called. If the value is positive, the error is:
2019-04-08 15:14:43.877396: F tensorflow/lite/toco/graph_transformations/propagate_fixed_sizes.cc:1801] Check failed: axis < input_shape.dimensions_count() (539352088 vs. 3)

@sklampfl , i ran your code and it works fine on my ubuntu 18.04.2 LTS with python version 3.6.7and tensorflow version 1.13.1. To me this looks like the configuration issue only.
Regards
Amit

@amitsrivastava78 Thank you for checking this out! I also have the same problem with Python3 (3.5.2) and tensorflow 1.13.1 (with or without gpu). Do you have a specific configuration issue in mind?
Since the error occurs on C++ level, I believe there might be an issue with system libraries then, rather than Python dependencies.

I quickly created a small Google Cloud instance with Ubuntu 18.04.2 LTS, Python 3.6.7, and tensorflow 1.13.1, and ran into the same issue there.
@amitsrivastava78 do you have any specific libraries installed?

@sklampfl apart from this i have just CUDA 9.2 version installed on my system. which i think should not be the issue try g++ vesion mentioned below : -
and g++ (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
Regards
Amit

I don't think g++ is relevant either, since I installed tensorflow via pip, but for the sake of completeness this is the result of g++ --version on both systems:
MacOS: Apple LLVM version 10.0.1 (clang-1<IP_ADDRESS>) Target: x86_64-apple-darwin18.5.0
Linux: g++ (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609

@sklampfl , We can try one more thing, lets build the tensorflow from source(and install it) and then try to run the convert_test.py cases can check if you still face the same problem. If not then try to run the example code that you posted, i am pasting my configuration file(.tf_configure.bazelrc) as below , you already know my python and tensorflow configuration : -
build --action_env PYTHON_BIN_PATH="/usr/bin/python"
build --action_env PYTHON_LIB_PATH="/usr/lib/python3/dist-packages"
build --python_path="/usr/bin/python"
build:xla --define with_xla_support=true
build --action_env TF_NEED_OPENCL_SYCL="0"
build --action_env TF_NEED_ROCM="0"
build --action_env TF_NEED_CUDA="1"
build --action_env CUDA_TOOLKIT_PATH="/usr/local/cuda"
build --action_env TF_CUDA_VERSION="9.2"
build --action_env CUDNN_INSTALL_PATH="/usr/lib/x86_64-linux-gnu"
build --action_env TF_CUDNN_VERSION="7"
build --action_env TF_NCCL_VERSION=""
build --action_env TF_CUDA_COMPUTE_CAPABILITIES="6.1"
build --action_env LD_LIBRARY_PATH="/usr/local/cuda-9.2/lib64:/usr/local/cuda-9.2/extras/CUPTI/lib64:"
build --action_env TF_CUDA_CLANG="0"
build --action_env GCC_HOST_COMPILER_PATH="/usr/bin/gcc"
build --config=cuda
test --config=cuda
build:opt --copt=-march=native
build:opt --copt=-Wno-sign-compare
build:opt --host_copt=-march=native
build:opt --define with_default_optimizations=true
build:v2 --define=tf_api_version=2
test --flaky_test_attempts=3
test --test_size_filters=small,medium
test --test_tag_filters=-benchmark-test,-no_oss,-oss_serial
test --build_tag_filters=-benchmark-test,-no_oss
test --test_tag_filters=-gpu
test --build_tag_filters=-gpu
build --action_env TF_CONFIGURE_IOS="0"
Regards
Amit

@amitsrivastava78 Thank you for investing your time in this.
I managed to get it to work on a fresh Ubuntu 18.04 instance, with Python 3.6.7 and TensorFlow compiled from source (both r1.13 and master, with gcc 7.3.0).
It still does not work on my original Ubuntu 16.04 machine, even if I compile TensorFlow from source (Python 2 or Python 3). I have not yet figured out which configuration breaks it (e.g. gcc version? other libraries? exact Python version?).
I can work with Ubuntu 18.04 for now, but I think it is still a bug that some TFLite conversions only work under certain conditions.
PS: Thank you for pointing out the convert_test.py script. These test cases are always successful for me, regardless of whether the minimal test I posted fails or not.

@sklampfl , Great to hear that things have worked out well on the newer version of Ubuntu for you.
Cheers!
Regards
Amit

@amitsrivastava78 i have the same problem on my machine: Debian GNU/Linux 9 (stretch), gcc 6.3.0

Small code for reproducing:
new_input_data = np.random.randn(2, 100, 100, 3).astype(np.float32)
new_w = np.random.randn(2, 1, 3, 3).astype(np.float32)

input_data = tf.convert_to_tensor(new_input_data)
input_w = tf.convert_to_tensor(new_w)

concrete_func = root.f.get_concrete_function(input_data, input_w)

m_concrete_functions([concrete_func])
tflite_model = converter.convert()

Log:
ConverterError: TOCO failed. See console for info.
2019-07-26 11:45:58.103201: I tensorflow/lite/toco/graph_transformations/graph_transformations.cc:39] Before Removing unused ops: 2 operators, 4 arrays (0 quantized)
2019-07-26 11:45:58.103298: I tensorflow/lite/toco/graph_transformations/graph_transformations.cc:39] Before general graph transformations: 2 operators, 4 arrays (0 quantized)
2019-07-26 11:45:58.120208: I tensorflow/lite/toco/graph_transformations/graph_transformations.cc:39] After general graph transformations pass 1: 410 operators, 823 arrays (0 quantized)
2019-07-26 11:45:58.122977: F tensorflow/lite/toco/graph_transformations/propagate_fixed_sizes.cc:1812] Check failed: axis >= 0 (-1015774856 vs. 0)
Fatal Python error: Aborted

Do we have any workaround now?

@Oktai15 I'm running Ubuntu 19.04 and building from source did solve the problem on my machine

Got the same thing working on Ubuntu 18.04 when compiled from source. It doesn't work on 16.04 compiled from source though.

I also came across this problem on Ubuntu 16.04、python3.7、tensorflow-gpu2.1


Jena integration – add support for content negotiation

I tried calling a SPARQL endpoint in Jena Fuseki with a CONSTRUCT query and the application/x-jelly-rdf media type, but it still returns the results in Turtle. There must be something missing in the registration there.
Probably the same applies to the graph store protocol. We should check this as well.
After adding this:

[ ] Remove this note from the docs: https://github.com/Jelly-RDF/jelly-jvm/pull/142

Looks like I can't implement this for now, as we are missing an interface for this in Fuseki. See: https://github.com/apache/jena/issues/2700
Moving this to a future release.

You can get around this by adding an output=application/x-jelly-rdf parameter. Then it skips the entire content negotiation logic and forces Fuseki to use Jelly to serialize the response. Nice.
I will document this on the plugin doc page.

The upstream patch got merged, so it should land in Jena 5.2.0. We should write this feature in such a way that it only loads only if Fuseki is loaded... preferably it should also do a Jena version check to make sure this new interface is available.
Let's wait for the 5.2.0 release.

There seems to be a bug in how the Fuseki webapp loads modules: https://github.com/apache/jena/issues/2774
But we can still progress with this task. The functionality does work if you use the "Fuseki Main" distribution.


[FEATURE] Enable chunked transfer encoding as a connection parameter

Is your feature request related to a problem?
We currently support http compression but not chunked encoding. This will help keep connection alive when transporting large amount of data when using the bulk API for example.
What solution would you like?
A similar approach to other client libraries, we give users the option to set chunked_encoding true/false in the connection parameters. Due to existing issues with Sigv4 support for compression and encoding [1] we will have to hard code a false condition when signing requests.
[1] https://github.com/opensearch-project/OpenSearch/issues/3640

The parameter should be transfer_encoding=chunked, there are other transfer encoding options.

The parameter should be transfer_encoding=chunked, there are other transfer encoding options.

Makes sense, will update the approach.


Expose FramebackController and emit events

Request instance available via FramebackController.getCurrent()
Events emitted:

showFrame
hideFrame

LGTM


Unable to build or run microsoft/iis image due to error: The driver was not loaded because it failed its initialization call.

Issue: Unable to build or run microsoft/iis docker images
Environment: Microsoft Windows 10 Version 1803 (OS Build 17134.165)
Error:
container <sha1> encountered an error during Start: failure in a Windows system call: The driver was not loaded because it failed its initialization call. (0x287)

Procedure:

Pulled microsoft/iis image. (also attempted on microsoft/iis:windowsservercore-1803 image)
Attempted to build the pulled microsoft/iis image

Dockerfile:
FROM microsoft/iis

RUN powershell -NoProfile -Command Remove-Item -Recurse C:\inetpub\wwwroot\*

WORKDIR /inetpub/wwwroot

COPY ./Executables/ .
COPY ./HostWebServer/ .

Output:
PS C:\Users\xxxxx\Documents\WORKDIR\xxxxx> docker build -t testimg .
Sending build context to Docker daemon  3.714MB
Step 1/6 : FROM microsoft/iis
 ---> 248afbbe0fd1
Step 2/6 : SHELL ["powershell"]
 ---> Running in fea62fa54616
Removing intermediate container fea62fa54616
 ---> 8c0aa999c671
Step 3/6 : RUN Remove-Item -Recurse C:\inetpub\wwwroot\*
 ---> Running in 9090104f6805
container 9090104f6805d52797163bb335174a5ca45e674282e0b12a395af6c6220bc5eb encountered an error during Start: failure in a Windows system call: The driver was not loaded because it failed its initialization call. (0x287)

Docker info
Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 4
Server Version: 18.03.1-ce
Storage Driver: windowsfilter
 Windows:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: ics l2bridge l2tunnel nat null overlay transparent
 Log: awslogs etwlogs fluentd gelf json-file logentries splunk syslog
Swarm: inactive
Default Isolation: hyperv
Kernel Version: 10.0 17134 (17134.1.amd64fre.rs4_release.180410-1804)
Operating System: Windows 10 Pro
OSType: windows
Architecture: x86_64
CPUs: 8
Total Memory: 15.89GiB
Name: MyComputer
ID: H6NA:JZQF:OU6J:Q4RB:KF2N:APGW:2Z7Z:V6RP:MS5C:H73U:KWNN:DLF3
Docker Root Dir: C:\ProgramData\Docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: -1
 Goroutines: 27
 System Time: 2018-07-23T17:48:15.7928097+09:00
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

Making a container directly from the microsoft/iis image gives the same error:
PS C:\Users\xxxxx\Documents\WORKDIR\xxxxx> docker run -it microsoft/iis powershell
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: container 306db7788b403d8e468c82d45de8a23bf27f95787676733cc9ec5e19a09b95e9 encountered an error during Start: failure in a Windows system call: The driver was not loaded because it failed its initialization call. (0x287).

If there are any other information needed, I will gladly provide.
This is driving me nuts. Haha

I believe this issue better belongs under docker/for-win.
Please refer to newly created issue.


cochlear disease

It is weird to classify this as a disease of facial skeleton, and I do not think it is correct anyway

Will be fixed next release of Uberon


⚠ Bofrost.lu has degraded performance

In 09de185, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1078 ms

Resolved: Bofrost.lu performance has improved in 51fb4ed after 9 minutes.


Support PushEventRepository.ArchiveURL

Added support for PushEventRepository.ArchiveURL per https://developer.github.com/v3/activity/events/types/#pushevent

I signed it!

Sure. But I'll make it a separate commit, since this change doesn't break the API.


enableShellIntegration breaks PowerShell PSReadLine module in terminal

VS Code Version: 1.64.0
OS Version: Windows 10 x64 21H1 (Build 19043)

Steps to Reproduce:

Add "terminal.integrated.enableShellIntegration": true to settings.json
Restart the shell (pwsh v7.2)

Previous Behavior
My existing PowerShell is setup with PSReadLine module
// profile.ps1
// omitted
Import-Module PSReadLine
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineOption -EditMode Windows
// omitted

It would look like the following (with listview of history)

New behavior
When enableShellIntegration is configured/enabled and restarted the shell, this is how it looks like

The history does not show up
Note
I do have other modules installed such as Oh-My-Posh and from the looks of it, it seems to be working fine since the theme is showing correctly as before
Not sure if any other modules are affected as well

fix
this function
https://github.com/microsoft/vscode/blob/61ff43bafe4b2e8cd69f18cfe4df691579970522/src/vs/workbench/contrib/terminal/browser/media/shellIntegration.ps1#L45
should be:
function Global:PSConsoleHostReadLine {
                $lastRunStatus = $?
                Microsoft.PowerShell.Core\Set-StrictMode -Off
                $tmp = [Microsoft.PowerShell.PSConsoleReadLine]::ReadLine($host.Runspace, $ExecutionContext, $lastRunStatus)
                # Write command executed sequence directly to Console to avoid the new line from Write-Host
                [Console]::Write("`e]133;C`a")
                return $tmp
        }

Had to revert, see https://github.com/microsoft/vscode/pull/142211#issuecomment-1030355580

looks fixed to me


Initialize an EventHandler for dynamic vars

Summary
When constructing a class dynamically using add_var, the auto generated set_XXX method is not an EventHandler so pc complains:
ValueError: Lambda <function app_state.add.set_a at 0x7fb248e5f520> must have 0 or 1 arguments.

This changes the _create_setter method to wrap the prop setter in an EventHandler and also adds a check in the __init__subclass__ to prevent double wrapping of the EventHandler
Type of change

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

New Feature Submission:

[x] Does your submission pass the tests?
[x] Have you linted your code locally prior to submission?

Changes To Core Features:

[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Have you successfully ran tests with your changes locally?

I remember adding 'add_var' when we first released the library, this was when list and dictionary did auto update when modified. I'm thinking now there's not really a situation when you would want a bunch of individual vars vs using a data structure such as dictionary that can contain all the things you are trying to keep track of.

I'm using add_var as I'm constructing a State subclass dynamically here
https://github.com/barnjamin/blah/blob/master/blah/pc_app.py#L119
Maybe there is a better way?

I'm using add_var as I'm constructing a State subclass dynamically here
https://github.com/barnjamin/blah/blob/master/blah/pc_app.py#L119
Maybe there is a better way?

I'm using add_var as I'm constructing a State subclass dynamically here
https://github.com/barnjamin/blah/blob/master/blah/pc_app.py#L119
Maybe there is a better way?

Went through your example and it makes sense to use it that way