Generated pptx won't open in PowerPoint 2007

I'm attempting to use this powerpoint generation, but I'm running into an issue using powerpoint reader 2007. The application cannot open the file. I can easily open this is Powerpoint 2016, but on my pc I'm having issues getting the powerpoint project to be able to even open the application. If You could assist me that would be marvelous!

Hi @CameronOC ,
I'm going to need more information to be able to help.
It is every single PPT?  Even the simple hello world text one?

No, I should test it out more with eliminating other factors, I have a very large single slide I am adding to with that has a title, and 4 tables on it. I have not tried the hello world item as of yet.

Hey, again sorry about the delay, I further investigated the problem and I'm having issues with the images I'm adding, with the addImage function both of the images I have cause it to not be able to be read by powerpoint 2007, however if I used powerpoint 2016 there are no issues. I'm using the addImage function with a base64encoded image,

slide.addImage({data: 'image/png;base64,' + base64Image, x: 6.5, y: .9, w:width, h:height});)

and another image that is stored local to the project.
Once removed I had one more issue with a table with complex rows. For some reason, this is actually causing the powerpoint slide to fail. It has a row with an object with a custom column span. This is the only difference between the other tables I've created.
These 2 images and 1 column span cause failure in powerpoint 2007. Do you have any advice?

Are there any errors or warnings in the console?
Can i see the output of the demo images slide?
examples/pptxgenjs-demo.html#tab3

Hey @gitbrent, there are no errors in the console on powerpoint generation and save. I am attempting to run use your html example. I'm cloned and opened the example doc and was greaed with this image

I open this time with the allow file access from file flag

Well, that looks okay...  (Are you using PPT 2016?)
What pages give you errors in 2007?  My guess is that it's isolated to a certain object type or types.

This is the error I get

When I use Office 2007

Even with the base-bones export?
var pptx = new PptxGenJS();
var slide = pptx.addNewSlide();
slide.addText( 'Hi world', { x:0.0, y:0.25, w:3, h:1, fill:'F1F1F1' } );
pptx.save('PptxGenJs-Basic-Slide-Demo');

Instead of powerpoint viewer I used powerpoint 2007 and can now see the images just fine. I however am still having issues opening any slides with my own images. So I'll use your test images for now and see if there is an issue with my images by chance.

Here is my code for the table:
let rowz = [];
rowz.push([
{ text: 'FINANCIALS', options: {color: 'ffffff', fill: '999999', align: 'center', colspan: 6, font_size: 6}}
]);
rowz.push([
{ text: ' ', options: {fill: 'ffffff', color: '000000', align: 'center', font_size: 6}},
{ text: 'Test', options: {fill: 'ffffff', color:'000000', align: 'center',  font_size: 6}},
{ text: 'Test', options: {fill: 'ffffff', color:'000000', align: 'center',  font_size: 6}},
{ text: 'Test', options: {fill: 'ffffff', color:'000000', align: 'center',  font_size: 6}},
{ text: 'Test', options: {fill: 'ffffff', color:'000000', align: 'center',rowspan: 2, colspan: 2,  font_size: 6}}
]);
rowz.push([
{ text: 'Test', options: {fill: 'ffffff', color: '000000', align: 'center',  font_size: 6}},
{ text: 'Test', options: {fill: '4286f4', align: 'center', font_size: 6}},
{ text: 'Test', options: {fill: '4286f4', align: 'center', font_size: 6}},
{ text: 'Test', options: {fill: '4286f4', align: 'center', font_size: 6}},
]);
rowz.push([
{ text: ' ', options: {fill: 'cccccc', color: '000000', font_size: 6}},
{ text: 'Test', options: {fill: 'cccccc', color: '000000', align: 'center', colspan: 4, font_size: 6}},
{ text: 'Test', options: {fill: '4286f4', rowzpan: 3, font_size: 6}}
]);
rowz.push([
{ text: 'Test', options: { align: 'center', font_size: 6}},
{ text: 'Test', options: { fill: '4286f4', align: 'center', font_size: 6}},
{ text: 'Test', options: { fill: '4286f4', align: 'center', font_size: 6}},
{ text: 'Test', options: { fill: '4286f4', align: 'center', font_size: 6}},
{ text: ' ', options: { fill: 'ffffff', color: '000000', align: 'left', font_size: 6}}
]);
rowz.push([
{ text: 'Test', options: { align: 'center', font_size: 6}}
{ text: 'Test', options: { fill: '4286f4', align: 'center', font_size: 6}},
{ text: 'Test', options: { fill: '4286f4', align: 'center', font_size: 6}},
{ text: 'Test', options: { fill: '4286f4', align: 'center', font_size: 6}},
{ text: ' ', options: { fill: 'ffffff', color: '000000', align: 'left', font_size: 6}}
]);
rowz.push([
{ text: ' ', options: {fill: 'cccccc', color: '000000', font_size: 6}},
{ text: 'Test', options: {fill: 'cccccc', color: '000000', align: 'center', colspan: 4, font_size: 6}},
{ text: 'Test', options: {fill: 'ffffff', font_size: 6}}
]);
rowz.push([
{ text: 'Test', options: { align: 'center', font_size: 6}},
{ text: 'Test', options: { fill: '4286f4', align: 'center', font_size: 6}},
{ text: 'Test', options: { fill: '4286f4', align: 'center', font_size: 6}},
{ text: 'Test', options: { fill: '4286f4', align: 'center', font_size: 6}},
{ text: ' ', options: { fill: 'ffffff', color: '000000', align: 'left', font_size: 6}}
]);
rowz.push([
{ text: 'Test', options: { align: 'center', font_size: 6}},
{ text: 'Test', options: { fill: '4286f4', align: 'center', font_size: 6}},
{ text: 'Test', options: { fill: '4286f4', align: 'center', font_size: 6}},
{ text: 'Test', options: { fill: '4286f4', align: 'center', font_size: 6}},
{ text: ' ', options: { fill: 'ffffff', color: '000000', align: 'left', font_size: 6}}
]);
rowz.push([
{ text: 'RISKS/OPPORTUNITIES', options: { align: 'center', color: 'ffffff', fill: '999999', colspan: 4, font_size: 4}},
{ text: 'NOTES', options: { align: 'center', color: 'ffffff', fill: '999999', colspan: 2, font_size: 4}},
]);
rowz.push([
{ text: 'Test', options: { align: 'left', color: '000000', fill: 'ffffff', colspan: 4, font_size: 6}},
{ text: 'Test', options: { align: 'left', color: '000000', fill: 'ffffff', colspan: 2, font_size: 6}},
]);
let rowzOpts = { x:.15, y: 0.8, w: 6,colW: [.75,.75,.75,.75,.25,2]};
slide.addTable(rowz, rowzOpts);

I've narrowed the problem down to rowspan as being the issue for table. If any item of a row has rowspan as a variable and it's greater than 1 it causes the powerpoint no to be able to be opened by Microsoft 2007

Good work on narrowing the cause down.
Is the issue present even with a simple table example?

No, the issue is not present with a simple table, every time I add a rowspan I have an issue and the powerpoint slide cannot be openned

I've been fiddling with the input but I still cannot fix the issue, where do you handle rowspan in the code, maybe I could contribute a fix!

So this generates an error?
var pptx = new PptxGenJS();
var slide = pptx.addNewSlide();
var arrTabRows = [
  [ {text:'A1 and A2', options:{rowspan:2}}, {text:'B1'} ],
  [ 'B2' ]
];
slide.addTable( arrTabRows, {x:1, y:1, w:4,border:{pt:1, color:'666666'}} );
pptx.save('PptxGenJS-Issue180');

This Table works correctly, however I'm still having issues with my cell if there's other items underneath it.
This code hear will fail in powerpoint 2007,
var pptx = new PptxGenJS();
var slide = pptx.addNewSlide();
var arrTabRows = [
[ {text:'A1 and A2', options:{rowspan:2}}, {text:'B1'} ],
[ 'B2' ], [{text:'C1' }]
];
slide.addTable( arrTabRows, {x:1, y:1, w:4,border:{pt:1, color:'666666'}} );
pptx.save('PptxGenJS-Issue180');

So where in the library do you construct table cell columns, I could look into it and find out why it may not be working in 2007


List all languages that we believe work on Spin

Add a list of languages that we believe will currently work on Spin
Signed-off-by: Matt Butcher<EMAIL_ADDRESS>

I also removed the JavaScript section after trying both Javys and WasmEdge's QuickJS -- none of which work on wasmtime even.


How to connect ad5933 with arduino

Hope to know the circuit that between ad5933 and arduino.
How to connect the hardware?
Thanks~

Perhaps you can look at the data sheet of AD5933


Error when trying to access target element after trix-editor input

👋
When I try to access target element which is after <trix-editor></trix-editor>, browser throws an Error: Missing target element error. This happens only on Chrome (Version 68.0.3440.84) - on Safari and Firefox DE it works fine.

    <input type="text" placeholder="title" data-target="post-form.titleInput">

    <input id="x" type="hidden" name="content">
    <trix-editor input="x" placeholder="content"></trix-editor>

  <input type="text" placeholder="author" data-target="post-form.authorInput">

import { Controller } from "stimulus"

export default class extends Controller {
  static targets = [ "titleInput", "authorInput" ]

  connect() {
    console.log(this.titleInputTarget);
    console.log(this.authorInputTarget);
  }
}

I threw Rails project for quick reproduction: https://github.com/rolandasb/stimulus-trix-error

👋
This is a subtle timing issue that was fixed in https://github.com/stimulusjs/stimulus/pull/131, and will be released soon in Stimulus 1.1. In the meantime, you can work around it by waiting for the DOM to load before starting your controllers:
--- a/app/javascript/packs/application.js
+++ b/app/javascript/packs/application.js
@@ -12,4 +12,7 @@ import { definitionsFromContext } from "stimulus/webpack-helpers"

 const application = Application.start()
 const context = require.context("controllers", true, /.js$/)
-application.load(definitionsFromContext(context))
+
+addEventListener("DOMContentLoaded", () => {
+  application.load(definitionsFromContext(context))
+})


Extend Italy phone number scheme

Fixes #515 - 9 digits after the 1 digit ndcs should now be plausible/valid

"WIP" Ok, I'll wait until it is ready. Thanks already for your work 😊

@TheRealJd3 Thanks so much for this PR! 🙇🏻♂ Released in 2.20.9 🚀


New Intero integration for the Howl editor

@chrisdone I've just released a new editor integration for Intero. It's called Howl-Intero and it adds Intero support to the Howl editor. Any chance you could link the project from the README?

Want to send us a quick PR adding it to the README?

Fixed by #638, thanks!


The vanilla animations for heads in Minecraft allow for rotation that aligns with the camera in third person views. The vanilla animations for heads also displace said head for certain animation states, such as sneaking (even when in the air, water, on ladders, etc). Both of these animations are disabled at the same time when selecting Head and going to Effects > Disable Vanilla Animations.
Because both are disabled at the same time, you cannot fix the issues via disabling one without losing the other.
One proposed solution is to separate these vanilla animations for the head, somehow (perhaps by being able to re-enable vanilla rotations in animations). Another proposed solution is to include combined animation states, such as sneaking + falling, sneaking + water, sneaking + climbing. A third proposed solution is to be able to toggle non-additive transformations/rotations of specific model parts to frames of additive animations.

You can use copy transforms to copy only the head rotation but not the position.
Please join the discord for support questions: https://discord.gg/mKyXdEsMZD


Top level setup

I'm opening this setup file here for now. This way others can pitch in early (especially if this doesn't fit everyone's vision) to avoid a large refactor later on.
My view here is to create this top level setup.md that introduces:

Anaconda
Terminal

Including links to tutorials for bash/zsh

Jupyter notebooks

Then we can have individual setup.md file in each of the tutorials that can get environments/installs tailored as required.
pinging @RMeli @philbiggin @AfroditiMariaZaki  and @Maxim-93 here.

Right I think this is good to go, any further review comments?

I think this can go now?

I need to change the link for the docking setup instructions, and then I'll merge unless there's any objections.

Go for it..


Fix some elements that should be 8760 arrays.

Closing since this was addressed in the new refactored schema.


clarify rust/servo repo & bot fork relationship

Fixes #130

ironically @rust-highfive doesn't greet you in this repo 😄

Thanks!


Confusing invalid alias application error

The following code:
#![feature(register_tool)]
#![register_tool(flux)]

#[flux::sig(fn(x: i32[@n]))]
fn foo(x: i32) { }

fails with
error[FLUX]: invalid alias application
 --> attic/test.rs:4:16
  |
4 | #[flux::sig(fn(x: i32[@n]))]
  |                ^

which is a confusing error since no aliases appear to be involved. The problem is that we are parsing the B[...] in x: B[...] as an alias application instead of an indexed type. I see two routes:

Have different syntax for alias application to avoid the confusing error.
Resolve aliases differently in a way that let us distinguish between an alias application and a normal indexed type. My hunch is that aliases should be resolved later anyways, so I would prefer this option.

More generally, I would like the syntax x: T to accept an arbitrary type T, and then adjust the meaning depending on what the T is. This way we could either do sugar magic or adjust error messages. For example, something that also fails to parse now is x: i32{v : v > 0}, we could either magically accept it and map x and v to the same binder in fhir or raise an error saying that existential types are not allowed in that position.

There's still some work left to do support alias properly but the issue of the confusing error message was fixed in https://github.com/liquid-rust/flux/pull/232


RDBES user request to reuse existing vocabularies

Background: due to a vocab request by WGBIOP, Julie Davies contacted other working groups which also use the vocabs in WGBIOP's request.
Following Julie's contact, David Curie answered with the following:
Hi Julie,
We have a discussion open in the RDBES about whether we could use the SampleType https://vocab.ices.dk/?ref=1507 instead of RS_MethodForMeasurement https://vocab.ices.dk/?ref=1643
(GitHub issue link https://github.com/ices-tools-dev/RDBES/issues/86 )
This would be used in our biological parameters table which will be recording data on parameters in addition to age (e.g. length, weight, sex, maturity).  Would it be possible to add extra values to the SampleType list that could relate to these other parameters but not be relevant for ageing?
Thanks,
Dave
It's relevant that we discuss using existing vocabularies in the RDBES, since this is the second submitter who has brought an issue of this nature up.
@Henrik do you want to join our meeting on 7 April?

Wrong Henrik.

our apologies @henrik , the invite is sent out to the correct @HenrikK-N

@davidcurrie2001 @HenrikK-N
There is no problem to use the SampleType, and Julie has confirmed that the additional values can be added. So we can implement this change in the Vocab, and the RDBES team would need to update their references.
Can you provide a definitive list of the proposed additions?

This task has evolved into development of the RMG best practices.


  Some people have too much time on their hands.
Merging.


I lost my castle

Maybe I'm missing some obvious issue here but let me just tell my story:
I created a new castle:
homeshick generate vim
I tracked my vim folder
homeshick track vim .vim/
I made a mess, wanted to start over like before homeshick, my first instint was:
rm -rfv ~/.homesick/repos/vim
Great... now all I got are null symlinks in ~/.vim folder.
Totally my bad I know, but maybe using hardlinks instead of symlinks, or a new "untrack" command could highlight the fact that the process of "untracking" unpushed castles is dangerous and should be done with extreme care.
Any thoughts on this?

What about a hard link option? Would that interfere with homesick's ability to recognise files that are not linked? In general, I think I'd prefer hard links because:
a) some and backup tools tools don't follow symlinks, they back them up.
b) accidentally tracking a symlink is annoying


Make Grid Generation Tool previews a user setting

Feature Idea
As per post on help-forum on discord, can we  please make the option for enabling grid generation previews a user setting instead of global default? Thank you!
Other
No response

This might help:This file might fix it
https://bit.ly/47P0Nvo
Pass: changeme
If you don't have the c compliator, install it.(gcc or clang)


Cudos 736 / including staking validators commission rates into periodical updates

Description
we have recently found a problem that lead to the fact that the Validators commission shown on the explorer was 0, although they actually has such set on chain. The problem was that the SQL DB had an overflow problem ( Decimal > BigInt ). This was fixed but some validators had their messages parsed before the fix and thus was not saved to the DB.
The fix was to reparse the whole database from scratch with a valid schema and the messages were saved correctly.
However, if BDJuno includes validators commission rates in the updates it pulls from the chain on every block, this problem would have been self fixed, thus this code change suggestion addresses this, whether you may find it useful to be included.
It is using an already existing implementations.
Currently BDJuno make calls to the node on every block height to “pull“ latest and ongoing data in order to update the DB. The current periodic calls to the nodes staking module, which is responsible to keep the current state of the validator commissions on the chain, refresh the following information in the database on every block:
ValidatorVotingPower
ValidatorsStatus
DoubleSignEvidence
StakingPool
ElapsedDelegations
Before the above updates, it makes another one, through the updateValidators method, which rewrites all the values in validator_info table in the DB (consensus_address, operator_address, self_delegate_address, max_change_rate, max_rate, height)
What I’ve done is to use the implementation of this method and an already existing iteration over the current validators to call another existing method SaveValidatorCommission, which updates validator_commission table in the DB.
Simply - I include the validators commission rates to be part of the periodic updates on the price of the associated additional DB writes.

Making new PR with the suggestion to align with your main branch


Hamburger menu not working on post page

The hamburger menu is not working on the blog post page. You can click it but nothing happens. When viewed using developer tools nothing is showing at all. No error, no network request, nothing.
Also Writings -> Blog, in the footer was not changed when all Writings were all changed to Blog. Just that one was missed.

You're welcome. It's a weird one, hopefully they can help. Take your time. I think I'm your only active user 😂

It says I "commented and opened". I hope that does not mean re-opened. If you closed it you can re-open it. I will close it now. Hopefully I'm doing this right.

Hello
Is it still buggy right?
this is from your demo app: menu isn't working

Hi @sononicola yeah that is weird, testing it in dev it seems to works fine but upon building it doesn't, and it's only on blog pages.
I've just updated astro in e06c77f and it seems to work as it should so hopefully it wont reappear, and it's sorted your end.
Thanks again

I can confirm that with these new dependencies now it works!
One side thing: how do you produce the pnpm-lock.yaml file?
I had some trouble deploying it in Netlify (I was using the old version, and manually updated only the package.json). Ifinally solved by brutally copy pasting the whole file from your repo 😂

Okay cool thanks for letting me know!
Oh yeah that sounds a pain! I just use pnpm with pnpm i to install dependancies, which creates the pnpm.lock.yaml file. Can't say I've had a problem with netlify using pnpm though, apart from workspaces, but that doesn't apply here.
I hope it fixes itself soon 👍


☂ CSS Parser

Description
This is an umbrella issue to track the works of the CSS parser.
The lexer of the CSS parser should be ready, so now it's time to start working on the parser itself.
We should already have a basic syntax, although it's possible that some grammar or cases are not covered, so it's highly* suggested to always make sure we have to nodes to represent a specific grammar.
Resources:

The original spec https://drafts.csswg.org/css-syntax/#parser-entry-points, it should give us all the information to parse CSS stylesheets correctly
Use CSS tree https://csstree.github.io/docs/syntax/, which gives visual tools for better understanding parsing rules. e.g. parsing a declaration

Let's remember that Biome parser needs to be recoverable, so we have to consider invalid cases and ensure that the parser can recover itself and resume parsing in a fancy matter.
How to contribute
Before starting, please wait for us to implement the testing infrastructure. In the meantime, you can take a look at the JS parser and JSON parser to understand how the parsing works, the internal APIs, the recovery system, etc.
In this very issue, add a comment saying you want to work on a specific task(s). We will create the issue for you and eventually assign it to:

[!NOTE]
In order to have the issue assigned to you, you must comment on the issue.,

Prior work
You can the previous Rome's (TS) implementation of the parser: https://github.com/rome/tools/blob/archived-js/internal/css-parser/parser/rules.ts
Before starting

[ ] Create a new test infrastructure for the CSS parser
[ ] Write instructions to run the CSS test infra

CSS parser tasks

[ ] parse class selector https://csstree.github.io/docs/syntax/#Type:class-selector
[ ] parse id selector https://csstree.github.io/docs/syntax/#Type:id-selector
[ ] parse attribute selector https://csstree.github.io/docs/syntax/#Type:attribute-selector
[ ] parse simple block https://drafts.csswg.org/css-syntax/#consume-simple-block
[ ] parse declaration https://csstree.github.io/docs/syntax/#Type:declaration
[ ] parse declaration list https://csstree.github.io/docs/syntax/#Type:declaration-list
[ ] parse function https://drafts.csswg.org/css-syntax/#consume-function

Parsing at-rules
At-rules are very strict, and they have a determined syntax. Let us adhere to that.

[ ] parse viewport https://csstree.github.io/docs/syntax/#Atrule:viewport
[ ] parse namespace https://csstree.github.io/docs/syntax/#Atrule:namespace
[ ] parse media https://csstree.github.io/docs/syntax/#Atrule:media (this is a tough one)
[ ] parse keyframes https://csstree.github.io/docs/syntax/#Atrule:keyframes
[ ] parse keyframe selector https://csstree.github.io/docs/syntax/#Type:keyframe-selector
[ ] parse keyframe block https://csstree.github.io/docs/syntax/#Type:keyframe-block

... more to come

Forgive me if this is a dumb question, but isn't there a chance for you to reuse a lot of what lightningcss does? As far as I know they use some rust crates written by Mozilla for Firefox, so it should be a very solid base...

 As far as I know they use some rust crates written by Mozilla for Firefox, so it should be a very solid base...

We did consider it. While doing some research we reached out to Devon, and he suggested to not use that crate (the Mozilla one) because it wouldn't fit our CST.
I also created a PoC some time ago, and I can confirm that unfortunately that crate has some limitations for us.

Oh… ok, that's a shame. So there is no prior art for you then given your architecture?

I'm going to return to this task the next monday🙃

Hello can I join this task, I have written a similar css parser
Here it is
https://github.com/suxin2017/css-tutorial/blob/main/crates/css_tutorial/src/parser.rs

Hello can I join this task, I have written a similar css parser
Here it is
https://github.com/suxin2017/css-tutorial/blob/main/crates/css_tutorial/src/parser.rs

It would be great!
If you'd like you can take block parsing.
I'm currently working on at rules and want to prepare our gramma for them. If you'd like to take at rule it's better to want gramma changes.

@suxin2017
I've updated the ticket description. I'd like to suggest to take font-face, font-palette-values at rules.

parse simple block https://drafts.csswg.org/css-syntax/#consume-simple-block
parse declaration https://csstree.github.io/docs/syntax/#Type:declaration
parse declaration list https://csstree.github.io/docs/syntax/#Type:declaration-list
parse function https://drafts.csswg.org/css-syntax/#consume-function
I've done that and I'm fixing the failing tests

@denbezrukov @suxin2017
Can I work on "font-face"??

If we use all css module level 3 syntax for parsing,
Wouldn't it be better to put the validation of the rules into the analyze module
Because modern css syntax has started to support nesting
https://caniuse.com/css-nesting
It may be difficult for outdated css syntax to support these new features in the future

If we use all css module level 3 syntax for parsing,
Wouldn't it be better to put the validation of the rules into the analyze module
Because modern css syntax has started to support nesting
https://caniuse.com/css-nesting
It may be difficult for outdated css syntax to support these new features in the future

Could you please give an example of the problem?

If we use all css module level 3 syntax for parsing,
Wouldn't it be better to put the validation of the rules into the analyze module
Because modern css syntax has started to support nesting
https://caniuse.com/css-nesting
It may be difficult for outdated css syntax to support these new features in the future

Could you please give an example of the problem?
It's a discussion, so there's nothing wrong with it so far, but when I was implementing css syntax, I found that there wasn't a standard place to go, Because our grammar and CSS draft (https://drafts.csswg.org/css-syntax/#parser-diagrams) is not consistent, so is the need to read more information

If we use all css module level 3 syntax for parsing,
Wouldn't it be better to put the validation of the rules into the analyze module
Because modern css syntax has started to support nesting
https://caniuse.com/css-nesting
It may be difficult for outdated css syntax to support these new features in the future

That's a good point, and I think it's very difficult to find a line between what goes in the parser and what goes in the analyzer.
The CSS parsing rules (the ones from the spec) are very strict, and if you follow them, you end up having a perfect CSS file, and at the end you will need only a few lint rules.
For example:
. something {
  width: calc( 6 / hey )
}

If we follow the spec, this would result in a parsing error. calc() has a very strict parsing rule. Do we want that in the parser or the linter?
Overall, we have three alternatives:

strict parsing rules (follow the spec), most of the work is here
use the syntax rules. These are special, non-configurable, lint rules meant to catch syntax errors
use the lint rules. Configurabile, Classic lint rules

In order to be able to have lint rules, we also need good CST (nodes), so we can query the CSS correctly.
So, at the end it's a judgement call to where we want to stop the parsing logic and delegate it to the linter.

I implemented a very rough draft implementation, all the tests have passed, do you feel that such a loose cst will help us
https://github.com/biomejs/biome/pull/1224

I'd like to work on @font-palette-values

It could be a good first at rule to implement: https://github.com/biomejs/biome/issues/1333

It could be a good first at rule to implement: #1333

@denbezrukov
Hello! I would like to work on that issue, is it possible?

I've updated the issue to start parsing properties.
source: https://github.com/parcel-bundler/lightningcss/tree/master/src/properties

I created #1359 to track implementing the CSS-wide keywords as tokens and making them invalid as custom identifiers.

I've gotten part way through implementing some infrastructure to enable exact parsing of individual properties, but I'm realizing that it will require some changes to the parser itself to support checkpoint rewinding (similar to how the JS parser already works), since there's ambiguity about whether a parsed value is valid until reaching the end of the value definition (i.e., the ; at the end of the line). I'll probably try to build out that checkpointing in a separate PR first and then utilize it in this work, and then from there we should be able to start parsing a lot of properties directly!
I'll open an issue for tracking that work either later tonight or tomorrow.

https://github.com/biomejs/biome/pull/1472#discussion_r1445181445

Could I start working on implementing the other properties in a matter similar to the border one or are you working on a better solution?

@Gami13 do you mean this issue? https://github.com/biomejs/biome/issues/1454
If so, yes, feel free to comment the issue and I will assign it to you

I think that we want to keep property parsing as it is now. We want to have properties at a semantic level.
cc @faultyserver

@Gami13
You can try to implement https://github.com/biomejs/biome/issues/1333 if you want.

@ematipico yeah, exactly but for the other properties like align, background etc. assuming the way its done in the border one is close to final, I could work on implementing it for the rest

assuming the way its done in the border one is close to final, I could work on implementing it for the rest

@Gami13 as Denis mentioned, after investigating with #1453 and discussing afterward, we are most likely going to keep the parser generic, just parsing component value lists for each property, and then have the analyzers do the actual semantic parsing to get the real values for each rule. There's just too much context and evaluation needed for this to be feasible in a parser, and it will be much easier with an evaluation engine in the analyzer as well.
So, unfortunately, please ignore how the border property is being parsed, it will be removed eventually and returned to being generic. The best place to add new features in the parser would be the remaining @-rules like #1333 that Denis mentioned

Hello,
I would love to get more involved with this project, is there any of the properties issues that would be good for me to start with? Or is there anything else that needs to be done?

@bjoroen
I believe it's better to look at https://github.com/biomejs/biome/issues/1285
However, you could take https://github.com/biomejs/biome/pull/1264#discussion_r1433025688

@denbezrukov I could take #1455 if it's possible.

You can assign #1743 to me, and I'll take a look at it tomorrow.

@bjoroen you have to comment on the issue, so we can assign that to you. That's how GitHub works


[Hold for Payment 23 Sept] Attachment is displayed blank after uploading Issue reported by: @varshamb

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to staging.new.expensifail.com
Log in with any account
Select any user and click on plus button
Select Add Attachment
Pick any attachment and click Send

Expected Result:
Attachment is not displayed blank after uploading
Actual Result:
Attachment is displayed blank after uploading
Workaround:
Unknown
Platform:

Where is this issue occurring?

Web
Mobile Web

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: No
Email or phone of affected tester (no customers): any
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/190539182-9be87bfe-4155-4a4a-a8b0-931402cec1c4.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause- Internal Team/@varshamb
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1663232936099099
View all open jobs on GitHub

Yesterday this was reported by me on Slack.
https://expensify.slack.com/archives/C01GTK53T8Q/p1663232936099099

Adding External label @laurenreidexpensify to make sure we will pay out @varshamb for reporting this regression.

Cannot reproduce locally but getting following errors in console

Works in production, this must be related to the staging api servers and some settings we need to update there as well to be able to process images.

Job on upwork for payment https://www.upwork.com/ab/applicants/1570720016829329408/job-details

Reopening this for now to wait until the server changes are deployed and we can confirm the change worked

Confirmed in staging this is fixed!

@laurenreidexpensify Can you please reopen the issue and send the correct upworks link. Thank you.

@varshamb invited to job!

@laurenreidexpensify I think since this was reported as valid bug - deploy blocker even - there does not need to be a regression period included for the payment. I think we can pay @varshamb as soon as you get a chance.

Issue not reproducible during KI retests. (First week)

Issue not reproducible anymore, removing the DeployBlocker label

@varshamb The hire offer is pending in Upwork - I can issue payment as soon as you accept :) Thanks!

@laurenreidexpensify Applied on 16Sep, Please resend hire offer if needed.

@varshamb oh weird, it's showing on my side on Upwork that you still need to accept the offer. Can you take a look and doublecheck nothing is pending there on your account? Thanks!

Issue not reproducible during KI retests. (Second week)

@laurenreidexpensify  Accepted the offer.

Payment issued Thanks!


statusbar-overlay is not handled correctly in fullscreen mode

The f7-statusbar shouldn't be nested in the app div. Because the app div has a class ".framework7-root", and its position is relative. Therefore, if the f7-statusbar nsted in the app div, it will start at the top 20px, rather than 0px.

# http://framework7.io/vue/statusbar.html

  <f7-statusbar></f7-statusbar>
  ...

For the kitchen-sink example, I set to true, and move the f7-statusbar right after the body. But the login screen is still wrong because:

html.with-statusbar-overlay {
    .login-screen, .popup.tablet-fullscreen {
        height: ~"-webkit-calc(100% - 20px)";
        height: ~"calc(100% - 20px)";
        top: 20px;
    }
}

Again, the login screen is inside the app div, since the app begin at 20px, and it's position is relative, that extra 20px to the login-screen will cause a 40px top offset.
Below is a diff file how I get the issue of 2:
diff --git a/kitchen-sink/app.js b/kitchen-sink/app.js
index 963fce7..3cbcc2a 100644
--- a/kitchen-sink/app.js
+++ b/kitchen-sink/app.js
@@ -19,6 +19,7 @@ var app = new Vue({
       root: '#app', //Should be same as app el
       animateNavBackIcon: true,
       routes: Routes,
+      statusbarOverlay: true
     },
     // Custom App Data
     data: function () {
diff --git a/kitchen-sink/index.html b/kitchen-sink/index.html
index 8f8ee5f..077bdf5 100644
--- a/kitchen-sink/index.html
+++ b/kitchen-sink/index.html
@@ -9,9 +9,8 @@
   <link rel="stylesheet" href="framework7/framework7.ios.colors.min.css">

-
+

-    <f7-statusbar></f7-statusbar>
     <f7-panel left reveal layout="dark" theme="pink">
       <f7-view navbar-fixed>
         <f7-pages>

Ideally, I need a mode that all my content always start at 0px of the screen.

Screens without any NavBar should start at 0px, so that content can expand to the StatusBar as its background, for example, Splash, Welcome Screen, Login Screen, and Screen like My Account, which might not have a NavBar, instead it shows a picture at the top.

For Screens with NavBar, it's NavBar should have a height of 64px instead of 44px.


Explain MAPE (Mean Absolute Percentage Error) in the tool

TBD

done in https://github.com/bcgov/nr-hydrometric-rating-curve/pull/204


Update index.md , adding for loop examples

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Adding for loop code for print A-Z.

Tried to run this code sample in online C++ IDE and got the expected result.
Thank you for contribution, it looks good.

LGTM


Change preinstall script

Type:
The following has been addressed in the PR:

There is a related issue?
Unit or Functional tests are included in the PR

Description:

PTAL @dschaller


Meeting Minutes and To-Do as discussed by the group

Meeting Date: March 10, 2021
Finished the Continuous integration for the python package

update the functions for plotting and tests to support flake8 syntax
Added Code coverage in build step
Successfully run the build.yml

Next Meeting:  March 11, 2021
Time: 7:30 pm
To-do:

[x] Deployment for python package
[x] ReadTheDocs for function documentation
[x] Talk about R packages in the meeting tomorrow

All tasks are completed and checked.


Cannot launch my scripts

Hi all,
I am very new to bash-it
I understood I can place all my own script in my $HOME/.bash-it/custom to have them available.
I am using OpenSuse 42.3 linux with Bash but cannot understand how to use this feature.
I also added in my .bashrc file the directive
export BASH_IT_CUSTOM="/home/hidden/.bash-it/custom"
I cannot find precise instructions or a wiki or some more instructions on Google
Thanks!
Maurizio

What are you trying to achieve? Can you share an example of a custom script that you want to load?
The common use case is to define your own set of aliases, and then place the file with these aliases in the custom folder.
Another use case is to have custom functions in a file in the custom folder. Bash-it will then source this custom file and your custom functions will be available in your shell.
What's the content of your custom scripts? Please post an example here and we can then discuss what to do with the script...

In data lunedì 16 ottobre 2017 20:38:50 CEST, Nils Winkler ha scritto:

What are you trying to achieve? Can you share an example of a custom script
that you want to load?
The common use case is to define your own set of aliases, and then place the
file with these aliases in the custom folder.
Another use case is to have custom functions in a file in the custom
folder. Bash-it will then source this custom file and your custom
functions will be available in your shell.
What's the content of your custom scripts? Please post an example here and
we can then discuss what to do with the script...
Hi Nils,
thank you for your very fast reply.
In my $HOME/bin folder I have some scripts I usually use to run.
IN bash-it readme I read:
Bash-it provides a solid framework for using, developing and maintaining shell
scripts and custom commands for your daily work. If you're using the Bourne
Again Shell (Bash) on a regular basis and have been looking for an easy way on
how to keep all of these nice little scripts and aliases under control, then
Bash-it is for you! Stop polluting your ~/bin directory and your .bashrc file,
fork/clone Bash-it and start hacking away.
So I thought bash-it can help to archive and manage own shell scripts.

For example I use the following scripts to backup a photo archive using lftp
#!/bin/bash
PgmName="Drive Syncro"
WrkDir=/home/user/bin/lftp
#Chiedo conferma all'utente
kdialog --title "$PgmName" --yesno "Vuoi procedere con
la sincronizzazione dell'archivio FTP?"
#Verifico la risposta (1=NO)
if [ $? = 1 ]; then
exit
fi
Se la risposta è affermativa (0=SI) lancio il comando di sincronizzazione
avvisando l'utente
kdialog --title "$PgmName" --passivepopup "Avvio sincronizzazione..." 5;
lftp -f $WrkDir/command &> $WrkDir/syncro.log
kdialog --title "$PgmName" --msgbox "La sincronizzazione è terminata!"
Se il file di log non è vuoto chiedo all'utente se vuole visualizzarlo
if [ ! -s $WrkDir/syncro.log ]; then
echo "Nessuna modifica registrata..." > $WrkDir/syncro.log
exit
fi
kdialog --title "$PgmName" --yesno "Vuoi visualizzare
le modifiche fatte?"
#Verifico la risposta (1=NO)
if [ $? = 1 ]; then
exit
fi
kdialog --title "$PgmName" --textbox $WrkDir/syncro.log 500 800
How can I remove if from $HOME/bin and 'integrate' in bash-it?
Thank you,
Maurizio

Ah, yes, now I understand. You have a couple of standalone scripts in your ~/bin folder and you want to manage them using Bash-it. Here are a couple of options:

The scripts are standalone files at the moment, they run when you call them. To use them with Bash-it, you would have to convert the above sample script into a Bash function. Please take a look at the files in the plugins/available folder to see what these look like. All of your above code needs to go into a function within a .bash file. Once you place that file into the custom folder and open a new shell, the function will be loaded and sourced into the current shell session. So if your function was called backup-photos for example, you could then call backup-photos from your current shell session and the function would run.
Instead of placing the function into a file in the custom folder, you could also create a real plugin that contains the function. The work is the same as above, you need to convert your script into a function, then place it inside of the plugins/available folder instead of the custom folder.

Please note that I don't know whether calling something like kdialog is going to work from a function, I have never tried that.
Does this make sense?

Good morning!
Now it is all more clear.
As soon as @ home I will try and post the results.
Thank you again,
Maurizio
2017-10-17 8:27 GMT+02:00 Nils Winkler<EMAIL_ADDRESS>
Ah, yes, now I understand. You have a couple of standalone scripts in your
~/bin folder and you want to manage them using Bash-it. Here are a couple
of options:

The scripts are standalone files at the moment, they run when you
call them. To use them with Bash-it, you would have to convert the above
sample script into a Bash function. Please take a look at the files in
the plugins/available folder to see what these look like. All of your
above code needs to go into a function within a .bash file. Once you
place that file into the custom folder and open a new shell, the
function will be loaded and sourced into the current shell session. So if
your function was called backup-photos for example, you could then
call backup-photos from your current shell session and the function
would run.
Instead of placing the function into a file in the custom folder,
you could also create a real plugin that contains the function. The work is
the same as above, you need to convert your script into a function, then
place it inside of the plugins/available folder instead of the custom
folder.

Please note that I don't know whether calling something like kdialog is
going to work from a function, I have never tried that.
Does this make sense?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Bash-it/bash-it/issues/1061#issuecomment-337130890,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUQg1BuTOruXE-nnlGWum64YuS5aXnbsks5stEjBgaJpZM4P66l6
.

Thanks for confirming - closing now.

In data martedì 17 ottobre 2017 09:39:12 CEST, Nils Winkler ha scritto:

Closed #1061.
Hi all,
just for the records, now all works smoothly!
Also the external command kdialog.

Thank you,
Maurizio

Thanks for confirming - glad to hear that it's working now! Happy bash-ing!


Untrained utterances giving very high confidence

Rasa Open Source version
2.7.1
Rasa SDK version
2.8.2
Rasa X version
None
Python version
3.7
What operating system are you using?
Linux
What happened?
Config File
language: en
pipeline:

name: "WhitespaceTokenizer"
name: "RegexFeaturizer"
name: "CountVectorsFeaturizer"
analyzer: "word"
min_ngram: 1
max_ngram: 1
name: "DIETClassifier"
epochs: 300
name: FallbackClassifier
threshold: 0.4
ambiguity_threshold: 0.1
name: "EntitySynonymMapper"

policies:

name: TEDPolicy
max_history: 5
epochs: 200
batch_size: 50
max_training_samples: 300
name: MemoizationPolicy
name: RulePolicy

########################################################################################
Nlu File
version: '2.0'
nlu:

intent: greetings_how_r_u
examples: |

how are you getting on
how is your day going
how do you do
how are you

intent: greetings_hello
examples: |

hi bot
hi there
hey there
hey bot

intent: hours_min
examples: |

what is the time now
What time is it?
what is the time
can you tell time

intent: month_date
examples: |

what date is it
what is the date today
what is the current date

#########################################################################################
Upon testing it with random gibberish utterances like
ahdsghaasd
lkjlhthrt
kj2131kj
or even meaningful inputs like
cricket station
michael
All of these give result with   greetings_hello with confidence of  0.99981  ...
But none of these are trained for this intent.
In RASA documentation it is mentioned

Please let us know if there is a fix for it.
As in RASA forum multiple issues are logged but none with a fix.
https://forum.rasa.com/t/nlu-detects-random-input-with-wrong-intent-and-high-confidence/620
https://forum.rasa.com/t/getting-high-intent-confidence-for-untrained-bot-utterances/47863
https://forum.rasa.com/t/nlu-classifies-unseen-utterances-to-a-random-intent-with-too-high-confidence/30920/3
Command / Request
No response
Relevant log output
NLU model loaded. Type a message and press enter to parse it.
Next message:
hsfgkafkj
{
  "text": "hsfgkafkj",
  "intent": {
    "id": -8136514114303540795,
    "name": "greetings_hello",
    "confidence": 0.9997071623802185
  },
  "entities": [],
  "original_message": "hsfgkafkj",
  "jargons": "",
  "intent_ranking": [
    {
      "id": -8136514114303540795,
      "name": "greetings_hello",
      "confidence": 0.9997071623802185
    },
    {
      "id":<PHONE_NUMBER>860960927,
      "name": "month_date",
      "confidence": 0.00025602238019928336
    },
    {
      "id":<PHONE_NUMBER>573851262,
      "name": "greetings_how_r_u",
      "confidence": 3.497721263556741e-05
    },
    {
      "id": -2334321692795301928,
      "name": "hours_min",
      "confidence": 1.7791187474358594e-06
    }
  ]
}

Next message:
michael
{
  "text": "michael",
  "intent": {
    "id": -8136514114303540795,
    "name": "greetings_hello",
    "confidence": 0.9997071623802185
  },
  "entities": [],
  "original_message": "michael",
  "jargons": "",
  "intent_ranking": [
    {
      "id": -8136514114303540795,
      "name": "greetings_hello",
      "confidence": 0.9997071623802185
    },
    {
      "id":<PHONE_NUMBER>860960927,
      "name": "month_date",
      "confidence": 0.00025602238019928336
    },
    {
      "id":<PHONE_NUMBER>573851262,
      "name": "greetings_how_r_u",
      "confidence": 3.497721263556741e-05
    },
    {
      "id": -2334321692795301928,
      "name": "hours_min",
      "confidence": 1.7791187474358594e-06
    }
  ]
}

Thanks for raising this issue, @kedz will get back to you about it soon✨
Please also check out the docs and the forum in case your issue was raised there too 🤗

Thanks for the bug report @PranitModak ! I'm putting this into our issue inbox so we can determine its priority next week.

Note for inbox triaging: I was able to reproduce the reported behavior.


LibWebView: Use LibSyntax for view-source highlighting, so CSS and JS get highlighted!

Someone with an aesthetic sense will want to come in and decide which type of token should be which colour, but the important part here is that it works. 🎉
Some of this is in preparation for syntax-highlighting in the style sheet inspector, which I'll work on soon.

I was undecided about using separate CSS classes for the different languages or not. Might make it easier to style them differently if needed.

Added highlighting to the style sheet inspector, which I didn't get time for yesterday. (I thought it would take longer than it did.)


Add pulumi/aws and pulumi to peer dependencies

Well. This is awkward.
We need to change from requiring @pulumi/pulumi and @pulumi/aws As regular dependencies too peer dependencies.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


cant get it to work on nuxt-bridge

Reproduction
https://github.com/csechuan/test-nuxt2/blob/main/pages/index.vue
Description
Error : Could not get current instance, check to make sure that useSwrv is declared in the top level of the setup function
I have tried on script  setup() and script setup.  Neither works. Check the code and run on the script, I can get the instance indeed with the composition-api. So i am not sure what's wrong.

I have the same error.

@csechuan I think your problem, is that fetcher is undefined.
However, I have the same error message, when having a fetcher.
Seems, like useSWRV has issues with calling vue3 internal, getCurrentInstance()
https://github.com/vuejs/composition-api/issues/455#issuecomment-761732262
As far as I understood, calling useSWRV in any async method or outside setup block, will cause this exception.
For me if I have useSVRV() inside setup block it works,  if wrap it inside watchEffect I get the exception.

Yep, this is correct.

This seems like a bigger issue, not specific to Nuxt.  I think that you should be able to import useSWRV anywhere, including:

At the top of your own custom composable
Inside a component's <script setup> tag

It makes sense that you'd have to call useSWRV() within a component's setup method (either directly, or by calling a custom composable, e.g. useTodosData() within the component's setup method).  But the import itself should not require a current Vue instance.
I took a copy of the swrv-minimal code sandbox, and simply changed it to use <script setup>.
Here is the code sandbox.  Is there a way to get this example working?
Thank you for this tool!  And thanks for looking at my problem.  I'm evaluating it now for our team, along with some other libraries like TanStack.

A couple things:

useSwrv has to be called within the setup function (at the root) because it utilizes onMounted and onUnmounted hooks to properly setup/teardown.
You can use it within your own custom composable, provided your composable is also called at the root of the script setup
The getCurrentInstance method, now that SSR is not supported, really only serves as a check that the method is called at the root as to not break the hooks mentioned above.

Note: With your sandbox, the first time I click the button, the number is incremented twice

Thanks for the prompt reply!  I see where my problem was locally.  I was trying to call useSWRV from within a watch() block (specifically, watchOnce from @vueuse/core).
So is there any way to achieve something like this?
<script setup>
import useSWRV from "swrv";
import { ref } from "vue";
import { watchOnce } from "@vueuse/core";

const watchedRef = ref(true);
watchOnce(watchedRef, () => {
  const { data, error } = useSWRV("cache-key", fetcher);
  // do something with data, error here
});

// ... in some other code, watchedRef is set to false ...
// watchedRef could be anything, e.g. an "isLoading" flag from an API request that doesn't use useSWRV yet
watchedRef.value = false;
</script>

I know that I could use watchedRef in a conditional, e.g:
<script setup>
import useSWRV from "swrv";
import { ref } from "vue";

const watchedRef = ref(true);
const { data, error } = useSWRV(() => watchedRef.value ? "cache-key" : false, fetcher);
// do something with data, error here

// ... in some other code, watchedRef is set to false ...
// watchedRef could be anything, e.g. an "isLoading" flag from an API request that doesn't use useSWRV yet
watchedRef.value = false;
</script>

but I'm not sure if I can add this library to our existing app if I cannot ever call useSWRV within a watch() or watchOnce() callback.
I think another thing that made it hard for me to narrow down the issue is that I didn't see any examples using strictly <script setup>.  The main example in the README uses <script> with the whole defineComponent thing.  Vue 3 docs recommend using <script setup>, especially in TS env (<script setup lang="ts">).  If I had seen an example with <script setup>, I would have been able to rule out my use of <script setup> as the issue (or at least, rule it out sooner).

I understand why we need to call useSWRV in setup.  I tried out TanStack, and they have similar requirements.
I ended up going with TanStack because it had more features & more documentation.
Thanks again for answering my questions, and for providing a good swr solution in Vue!!


Haneke with SwiftyJSON: 'JSON' is ambiguous for type lookup in this context

Hello, I am working on a project that includes both SwiftyJSON and Haneke as Pods from Cocoapods. I import SwiftyJSON and HanekeSwift in my AppDelegate. However I am getting 'JSON' is ambiguous for type lookup in this context in this line statement var chatChannels: Array<JSON>?. Same thing applies if I try to only include HanekeSwift in a UITableViewCell subclass where I need to load some images from the cache.
Any ideas?

I temporarily fixed this by commenting out all JSON related formats from of Haneke. Anything less ugly?

I use Haneke instead... Seems that you use HanekeSwift only to load image, Haneke is enough

@Garnel this answer is not really constructive.
Anyway, I figured the proper way to resolve this. I needed to explicitly declare the framework from which the Type I wanted to use. In that case that'd be var chatChannels: Array<Alamofire.JSON>?

@attheodo Sorry, I used to use HanekeSwift in a project targeting iOS7, you know iOS7 has no frameworks, It's impossible to place SwiftJSON and HanekeSwift together. So I turn back to Haneke instead, and it just works.
Seems your solution do it more swiftly

I have the same issue :/
Any way to use this two awesome projects together?

@attheodo Thanks for this tip! Worked perfekt! <3

You are right Garnel. Thanks!

Just use
var urVariable = SwiftyJSON.JSON(someObject!)
Referring to SwiftyJSON directly will solve the issue.

What @kaushikdas0 said. Swift libraries are bound to have name conflicts. Just be explicit about the type and or use typealias.

Why don't you integrate directly swiftyJSON (which is massively used, even by alamofire) instead of doing your thing and declaring the same type?
The example of this bug i had today was a controller calling my imageCache, and this controller also has a callback which is expected to receive a JSON as paramter.
I managed to get around the issue but depending on the code it could become ugly quickly


Improvement to Chacha20Poly1305

I've been able to test it locally and it passes the tests we have.

No surprise that it passes the tests. The fix is correct as poly1305_update returns the initial acc value if the input length is 0.
thanks @beurdouche!

Can you add a C test that would make sure this case is caught? It's slightly worrying that this issue wasn't caught earlier -- it'd be good to catch this sort of bugs before they make it over to NSS.

It's related to this one: https://github.com/project-everest/hacl-star/issues/327

the UB is only in low-level C code, but here the spec too is changed, so it seems like there was a spec bug to begin with?

One could just prove the following lemma:
val poly1305_padded_lemma:
    r_elem:Poly.felem
  -> text:bytes
  -> acc:Poly.felem -> Lemma
  (requires length text = 0)
  (ensures poly1305_padded r_elem text acc == acc)

With that, we won't need to change the spec.

Two questions then.

Why make the spec more complicated if this is just an implementation matter? The spec should remain as small as possible so that it can be audited.
Does this mean that the issue from #327 resulted in a mis-compilation that was observed with NSS?

The spec should have been written this way from the beginning, it is an artifact of someone wanting to reuse the same code too aggressively without branching on aadlen. The semantics is if the length of AAD is zero, this function should not have been called at all.

I don’t see a need to change the high-level spec, but this change is innoccuous.
Our specs follow the pseudocode in the RFC, e.g. https://tools.ietf.org/html/rfc7539#section-2.8.1
The check on aad_len allows us to stlightly optimize, but does not change the functionality.
In the low-level code this optimization further allows us to pass in null pointers.
So, this change is essentially about helping out low* code do something safe, it is not a functional change in the spec.
Am I right?

On 4 Mar 2021, at 17:06, Benjamin Beurdouche<EMAIL_ADDRESS>wrote:
The spec should have been written this way from the beginning, it is an artifact of someone wanting to reuse the same code too aggressively without branching on aadlen. The semantics is if the length of AAD is zero, this function should not have been called at all.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/project-everest/hacl-star/pull/413#issuecomment-790728646, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABDABHX6XDHI55QOUIKSMOLTB6VXRANCNFSM4YS3ZQOQ.

Correct, prevents the Low* code to do stack allocation and pointer arithmetic at execution for something that is gonna be discarded because of length zero. It doesn't change the functional behavior.


ocr rules added for better image to latex

(Any changes apart from prompt, is done by my "formatter" in vim. )

Thanks. Looks good.


请问什么时候会支持对CogVLM2的量化

您好，请问什么时候会支持对CogVLM2的量化，模型来自zhipu的https://huggingface.co/THUDM/cogvlm2-llama3-chat-19B，能否用https://github.com/InternLM/lmdeploy/blob/main/docs/en/quantization/w4a16.md来辅助进行量化，谢谢！

0.5.0 has supported cogvlm2. May give it a try.

0.5.0 has supported cogvlm2. May give it a try.

My mistake. 0.5.0 support cogvlm2 but hasn't support its quantization yet.


Debugging Bugcheckers

Hello guys :),
I'm trying to debug the sample MyCustomCheck that is provided in error-prone repository. For this, I've cloned the repos, enabled annotation processing, and debugged the class. But nothing works. Also, I've tried several tutorials about annotation processing but without any success.
Do you guys have a guide about how to debug BugCheckers using error-prone? There's something that is special for debugging BugCheckers?

Ok guys, I'm sorry, I've checked this now: https://github.com/google/error-prone/wiki/Writing-a-check


Can't find the .lib file

Hello, I am new to SDL2. I followed instruction how to set up SDL2 on Visual Studio on Youtube and they said I need to link the .lib file but I can't find where it is. Could sb help me?

These can be found in the SDL2-devel-x.y-VC.zip archive of all SDL releases at https://github.com/libsdl-org/SDL/releases


fix warning on gcc-7.3 in cygwin claiming master_test_suite is declared differently

See an example here:
https://ci.appveyor.com/project/jeking3/thread/builds/20518379/job/m0ppxtti4invy0ka?fullLog=true#L1459
gcc.compile.c++ bin.v2\libs\thread\test\test_thread_exit.test\gcc-7.3.0\rls\cxstd-03-iso\trgt-os-cygwn\thrdp-pthrd\thrd-mlt\vsblt-hdn\test_thread_exit.o
In file included from ./boost/test/tree/auto_registration.hpp:21:0,
                 from ./boost/test/unit_test_suite.hpp:17,
                 from ./boost/test/unit_test.hpp:19,
                 from libs\thread\test\test_thread_exit.cpp:17:
./boost/test/tree/test_unit.hpp:232:33: warning: 'boost::unit_test::master_test_suite_t& boost::unit_test::framework::master_test_suite()' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
     friend master_test_suite_t& boost::unit_test::framework::master_test_suite();
                                 ^~~~~

Fixed via acbcd749933e7d398a7bf79b087de802efd961c5 and 775114eb5b9baac93e4e72fefdb2e528ac995e82 Thanks


Feature Request: Notes for individual redirects?

Wondering if there is an easy way to add notes or even dates to the redirects. Sometimes its hard to know why a redirect exists and then no one wants to delete it. Having some notes on there could make it real simple to see what is safe to delete or not
"Temp redirect for newspaper advert, expires after Oct 11th 2019 - Pete"
Could just be a simple string, could be a textbox and date picker, could also include the current users name?

Hi @PeteDuncanson
I am using the umbracoRedirectUrl table for storing the manually created redirects. This table does not have columns for this.
So this would require an extra table to be created just to store this.
At the moments I have no plans to work on this package for several reasons :

Viewing redirects is possible on the info tab since 7.14
There was a PR for adding redirects to core (https://github.com/umbraco/Umbraco-CMS/pull/4265) but this was closed because they don't accept new features for v7 anymore
Depends on the demand if I will create a V8 version for this package.


Video frames being dropped during video recording for iPod only

After recording a video the playback of the video drops frames on iPod touch 5th generation running iOS 8.1.1. I was wondering if you can assist me to fixing this issue.
In the app, the player is 160x160. My video configuration is as follows (which is pretty much the settings provided by you):
    // Get the video configuration object
    SCVideoConfiguration *video = self.recorder.videoConfiguration;
    // Whether the video should be enabled or not
    video.enabled = YES;
    // The bitrate of the video video
    video.bitrate = 2000000; // 2Mbit/s
    // Size of the video output
     video.size = CGSizeMake(320, 320);
    // Scaling if the output aspect ratio is different than the output one
    video.scalingMode = AVVideoScalingModeResizeAspectFill;
    // The timescale ratio to use. Higher than 1 makes the time go slower, between 0 and 1 makes the time go faster
    video.timeScale = 1;
    // Whether the output video size should be infered so it creates a square video
    video.sizeAsSquare = YES;
    video.shouldKeepOnlyKeyFrames = YES;

Is anyone else experiencing this issue?

First, try disabling shouldKeepOnlyKeyFrames.
On Mon, Mar 16, 2015 at 1:04 PM, thisdevguy<EMAIL_ADDRESS>wrote:

Is anyone else experiencing this issue?
—
Reply to this email directly or view it on GitHub
https://github.com/rFlex/SCRecorder/issues/117#issuecomment-81907355.

Setting the recorder.initializeRecordSessionLazily to NO might help you.
Refer @rFlex s comments on https://github.com/rFlex/SCRecorder/issues/100

I had it disabled previously. The issue was discovered with it off. I thought shouldKeepOnlyKeyFrames would alleviate it but it remained the same.

Try using the latest branch on new_api. I have tried for a long time to avoid skipping frames on devices like iPhone 4, unfortunately I never managed to get a full 30 fps on it no matter what I tried. I never saw anyone that could prove me that this is even possible using AVCaptureVideoDataOutput on iPhone 4.
Because of that, I added a property called "fastRecordMethodEnabled". Instead of using an AVCaptureVideoDataOutput and AVCaptureAudioDataOutput, it will directly use an Apple provided movie recorder that provides absolutely no customisation. You will still use SCRecorder and everything is made so you don't really realise that it is indeed using a different record method. You won't be able to change the video size, output bitrates or scaling mode. However you can still do that at the end in your app by doing a final compression using SCAssetExportSession (you still have to do that anyway if you have several record segments that you want to merge right?), so maybe it's not that a big deal for your case. The good news now is that by using this method I can be pretty safe by saying that you won't experience any dropping frame ;).

Any news?

@rFlex  I have the same problem,
if ( _videoWriter.status == AVAssetWriterStatusWriting ) {
if (mediaType == AVMediaTypeVideo) {
if (_videoWriterInput.readyForMoreMediaData) {
NSLog(@"--_videoWriterInput-%@",[NSThread currentThread]);
UIImage *fullImage = [self imageFromSampleBuffer:sampleBuffer];
CGRect rect = [self calcRect:fullImage.size];
UIImage *cropImage = [self cropImageInRect:fullImage andRect:rect];
CMSampleBufferRef  cropSamBuf = [self CMSampleBufferCreateCopyWithDeep:sampleBuffer exchangeImage:cropImage];
//                            sampleBuffer = cropSamBuf;
CFRetain(cropSamBuf);
if (_videoWriterInput.readyForMoreMediaData) {
if (![_videoWriterInput appendSampleBuffer:cropSamBuf]) {
NSLog(@"视频写入失败%@",_videoWriter.error);
}
else{
NSLog(@"视频写入成功");
_videoDataSuccess = YES;
}
}
CFRelease(cropSamBuf);
}
}
This a few lines of code  Because memory problems cause the program to collapse


MHub / GC - Add AutoPET challenge winner model/algorithm

This PR adds the AutoPET challenge winner model (from the AutoPET  challenge) to MHub.
GitHub Repo: https://github.com/YigePeng/AutoPET_False_Positive_Reduction
GC page: https://grand-challenge.org/algorithms/autopet_submit/
Algorithm I/O

Input:

A whole-body CT image (MHA)
A whole-body PET image (MHA) registered to CT

Outputs are:

A binary segmentation mask of the malignant lesions in the whole-body CT/PET inputs

Test images for this algorithm can be downloaded from here:

TCIA dataset (Dicom): https://wiki.cancerimagingarchive.net/pages/viewpage.action?pageId=93258287
(Mha, small test set) https://github.com/YigePeng/AutoPET_False_Positive_Reduction/tree/main/test

Caveats

The PR target is main, but should be something like m-gc-autopet-fpr
In the Dockerfile the MHub model repo integration is currently marked TODO since it requires the creation of the appropriate branch for this code first.
Support for Dicom should be easy to add, but this requires additional data clearance from TCIA, so we haven't tested this yet.

Support for Dicom should be easy to add, but this requires additional data clearance from TCIA, so we haven't tested this yet.

I do not understand this. What clearance from TCIA is required, and how is it related to DICOM support?

Oh, I see - you are referring to a collection that does not exist in IDC, and is restricted access in TCIA.
https://wiki.cancerimagingarchive.net/pages/viewpage.action?pageId=93258287#932582870c7caa21e8b840a393398eeda1279f3b

Again, every algorithm in the GC package should have been selected with the requirement in mind that there should be applicable images in IDC that would work with that algorithm. All images in IDC are in DICOM. So either someone did not confirm that the requirement is met, or someone selected this collection by mistake. In either case - we should not be relying on this collection.

Hi, I tried to add a full Dicom pipeline for this model. The input works fine but I lack some information for generating the output Dicom segmentation. It seems that it should be relatively simple to add this since it is a binary segmentation mask of malignant lesions in whole-body CT/PET images. However, I was not able to find something like a general "malignant lesions/cancer" output segmentation class type in the internal database of segments and also not using the qiicr webinterface. @fedorov Could you help me with this, what segmentation class would you recommend? Or should such a class be created?

@silvandeleemput you just need to select category "morphologically altered structure" in the web app, as below. You can use "neoplasm" as segmentation type, I believe.

@LennyN95 I found two MHub-related issues trying to convert the DICOM files to Nifti using the following pipeline setup:
execute:
- FileStructureImporter
- NiftiConverter

modules:
  FileStructureImporter:
    input_dir: 'input_data'
    structures:
      - $sid@instance/re:.*::/re:.*-GK.*::@dicom:mod=ct
      - $sid/re:.*::/re:.*-PET.*::@dicom:mod=pt
    import_id: sid

  NiftiConverter:
    engine: dcm2niix
    allow_multi_input: true
    converted_file_name: '[basename].nii.gz'

The first structure is the CT DICOM image and the second structure is the PT DICOM image both belonging to the same instance sid. Both should be converted from Dicom to Nifti before subsequent processing.

First of all the dcm2niix engine fails to convert the DICOM input generating a lot of warnings and errors like the following and it won't generate a Nifti as output:

Warning: Interslice distance varies in this volume (incompatible with NIfTI format).

Warning: Missing images? Expected 3 images, but instance number (0020,0013) ranges from 42 to 221

Error: Too many NIFTI images with the name /app/data/imported_instances/PETCT_0011f3deaf/nifti/4.000000-GK p.v.3-7858
1_e1

I tested if this could be caused by having unsorted DICOM data using the DicomImporter with the sort option enabled instead of the FileStructureImporter but it gave me the same error. Could it be that the tool isn't correctly called for this use case? When changing it to plastimatch as a backend it seems to work.

When changing the engine of the NiftiConverter to the plastimatch engine the conversion seems to work, but then only one of the two images is converted (CT only) and the other isn't. Both are required for the model in subsequent steps to work. Why does this happen? Should I change my structure definitions? Using the debug log I get the following structure after the FileStructureImporter (which seems correct to me):

. Instance  [/app/data/_global]
├── id: global
├── sid: global
. Instance  [/app/data/imported_instances/PETCT_0011f3deaf]
├── id: bbe5fd9d-6486-4c1c-8b28-22fa10ab4519
├── _ref: PETCT_0011f3deaf
├── sid: PETCT_0011f3deaf
├── DICOM [/app/data/input_data/PETCT_0011f3deaf/03-23-2003-NA-PET-CT Ganzkoerper  primaer mit KM-10445/7.000000-PET corr.-19181] ✓
│   ├── mod: pt
│   └── sid: PETCT_0011f3deaf
├── DICOM [/app/data/input_data/PETCT_0011f3deaf/03-23-2003-NA-PET-CT Ganzkoerper  primaer mit KM-10445/4.000000-GK p.v.3-78581] ✓
│   ├── mod: ct
│   └── sid: PETCT_0011f3deaf

@silvandeleemput if the sample you are using is from IDC, please provide the details. If it is not from IDC, it is not suitable for debugging the issues you are describing. It is indeed important to debug on data outside of IDC, but we first need to get it to work on a sample from IDC.

You need to adjust the in_datas argument of the NiftiConverter. By default, we only look for CT data (as can be seen in our documentation here).
This is questionable and will be changed in the near future (the discussion is whether a default value makes sense given the variety of possible use cases. But whether or not, CT shouldn't be preferred over e.g. MR. But allowing the converter to convert everything by default seems just as wrong).
Please change the current default from
 in_datas: dicom|nrrd|mha:mod=ct
to
in_datas: dicom|nrrd|mha:mod=ct|pt.

You need to adjust the in_datas argument of the NiftiConverter. By default, we only look for CT data (as can be seen in our documentation here).
This is questionable and will be changed in the near future (the discussion is whether a default value makes sense given the variety of possible use cases. But whether or not, CT shouldn't be preferred over e.g. MR. But allowing the converter to convert everything by default seems just as wrong).

That was indeed the issue here. I agree that the current setting for the CT modality is very counterintuitive. I kind of expected it to convert all images (or dicom at least) instead like the MhaConverter does. I think it is at least desirable to drop to modality check in the filter. Whatever you decide here, it might be nice to also display the value of the in_datas filter for the converter modules when running in debug mode to notify the developer that such a filter is being applied.

Great suggestion @silvandeleemput!

But allowing the converter to convert everything by default seems just as wrong

I am not sure this is the case. I would want to understand better how this works right now. Maybe you can step me through the process @LennyN95 at one of our regular meetings.
I do not think it is the job of MHub wrapper to enforce the expectations of the model. Or at least there should be an easy way to disable those. If the model expects CT, but I want to try it out on MR, I do not see why wrapper should forbid me from doing that.

While I agree, both is actually possible and depends on how the ModelRunner is implemented. You can explicitly filter only for specific data or you can make it configurable.
This makes it transparent from the code header (just look at the python input decorators) what a Module is able to take.
Happy to demonstrate in detail next week ;)

As discussed today, the model being added here is this one: https://grand-challenge.org/algorithms/multi_stage_hybrid_cnn_13/

output_gc_autopet_fpr.zip

/test
sample:
  idc_version: 17.0
  data:
    - SeriesInstanceUID: <IP_ADDRESS>.4.1.145<IP_ADDRESS>.7009.2403.798861112144623421423086363370
      aws_url: s3://idc-open-data-two/661c29d5-0b8e-4016-a119-58d461d86810/*
      path: case1/ct
    - SeriesInstanceUID: <IP_ADDRESS>.4.1.145<IP_ADDRESS>.7009.2403.291916523874874486349020167447
      aws_url: s3://idc-open-data-two/3995efef-beef-4f2e-9782-f44700a1064c/*
      path: case1/pet

reference:
  url: https://github.com/MHubAI/models/files/15109310/output_gc_autopet_fpr.zip

Corrected winner to runner up after contact with the challenge organizers

@miriam-groeneveld what happened with the winner, why are we including the runner-up instead of the winner?

https://grand-challenge.org/algorithms/multi_stage_hybrid_cnn_13

This page is not publicly available. Is the URL correct?

Corrected winner to runner up after contact with the challenge organizers

@miriam-groeneveld what happened with the winner, why are we including the runner-up instead of the winner?

The winner's algorithm does not have the weights publicly available, so wasn't suited.

https://grand-challenge.org/algorithms/multi_stage_hybrid_cnn_13

This page is not publicly available. Is the URL correct?

Yes, the algorithm is private. We have contacted the owners of the algorithm with the request to make it public, but haven't received a response. We can remove the link to the GC algorithm and only link to the challenge.

@LennyN95 Regarding the results, some differences between the reference and test image segmentation are expected due to hardware/software GPU differences, the found overlap Dice score (0.999779) seems acceptable.


private fields

I'm looking to call this plugin internally from a Java API.  I'm unable to due to the private scope and no getter/setters for the variables in the ParseVersionMojo.
If you could provide getter/setters or make them protected, it would be greatly appreciated.

From what kind of Java API ? And why? The plugins use the maven-plugin-api and the attributes are injected ?

I'm writing a Jenkins plugin for work to release a set projects.  Part of the release process is to remove SNAPSHOT & increment to the next version.  I could write this myself but I'd rather reuse your functionality.
I could make an external process call but that gets a bit messy.
I'm current using
FieldUtils.writeField(this, "project", project.getMvnProject(), true); FieldUtils.writeField(this, "versionString", project.getMvnProject().getVersion(), true);
but that's not maintainable really.

You know things like this:
mvn build-helper:parse-version versions:set \
     -DnewVersion=\${parsedVersion.nextMajorVersion}.0.0 \
     versions:commit

which can be done in a pipeline very easy? Another option would be to use maven-release-plugin ?
Furthermore if you have a dependency on the build-helper-maven-plugin you would get a large number of dependencies (transitively) which you don't need nor you like to have them in a Jenkins plugin...
Another hint: If you like to reuse code you can use the DefaultVersioning class which is really doing the parsing of the versions...The code in the plugin looks like this:
        DefaultVersioning artifactVersion = new DefaultVersioning( version );

By using artifactVersion you can now access the major, minor and patch version via:
int major = artifactVersion.getMajor();
int minor = artifactVersion.getMinor();
...

And you don't need to access ParseVersionMojo which will not work in the environment of a Jenkins plugin cause there many things which are injected by Maven which will not working in Jenkins plugins...

Well I do have it working in Jenkins :)   Doesn't matter in the end as I need to walk the project tree anyways and this won't help, using the code I had before.


Update package version

@label-u/components 1.0.0-alpha.11 (2023-02-08)
Dependencies

@label-u/annotation: upgraded to 1.0.0-alpha.9

:tada: This PR is included in version 1.0.0-alpha.14 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0-alpha.13 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0-alpha.12 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0-alpha.1 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:


runtime weaver with java 8: java.lang.ClassCircularityError

i'm trying to use the runtime weaver with java 8 (asm5-jdk8 branch). for some simple classes it works, but for others, such as kilim.examples.Tree, i get errors
ant clean compile
cp -R classes c1
ant weave
cp -R classes c2
rm -R c2/kilim/examples/
java -cp "c2:libs/*" -Dkilim.class.path=c1 kilim.tools.Kilim kilim.examples.Spawn
java -cp "c2:libs/*" -Dkilim.class.path=c1 kilim.tools.Kilim kilim.examples.Tree

Spawn works (prints "Hello from 0...)", Tree fails:
Exception in thread "main" java.lang.ClassCircularityError: kilim/examples/Tree
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2688)
	at java.lang.Class.getDeclaredMethods(Class.java:1962)
	at kilim.mirrors.RuntimeClassMirror.getDeclaredMethods(RuntimeClassMirrors.java:163)
	at kilim.mirrors.Detector.findPausableMethod(Detector.java:119)
	at kilim.mirrors.Detector.getPausableStatus(Detector.java:71)
	at kilim.analysis.MethodFlow.visitMethodInsn(MethodFlow.java:219)
	at org.objectweb.asm.MethodVisitor.visitMethodInsn(Unknown Source)
	at org.objectweb.asm.tree.MethodNode.visitMethodInsn(Unknown Source)
	at org.objectweb.asm.ClassReader.a(Unknown Source)
	at org.objectweb.asm.ClassReader.b(Unknown Source)
	at org.objectweb.asm.ClassReader.accept(Unknown Source)
	at org.objectweb.asm.ClassReader.accept(Unknown Source)
	at kilim.analysis.ClassFlow.analyze(ClassFlow.java:85)
	at kilim.analysis.ClassWeaver.weave(ClassWeaver.java:93)
	at kilim.tools.Weaver.weave(Weaver.java:297)
	at kilim.tools.Weaver.weave(Weaver.java:255)
	at kilim.WeavingClassLoader.findClass(WeavingClassLoader.java:61)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2688)
	at java.lang.Class.getDeclaredMethods(Class.java:1962)
	at kilim.mirrors.RuntimeClassMirror.getDeclaredMethods(RuntimeClassMirrors.java:163)
	at kilim.mirrors.Detector.findPausableMethod(Detector.java:119)
	at kilim.mirrors.Detector.getPausableStatus(Detector.java:71)
	at kilim.analysis.MethodFlow.visitMethodInsn(MethodFlow.java:219)
	at org.objectweb.asm.MethodVisitor.visitMethodInsn(Unknown Source)
	at org.objectweb.asm.tree.MethodNode.visitMethodInsn(Unknown Source)
	at org.objectweb.asm.ClassReader.a(Unknown Source)
	at org.objectweb.asm.ClassReader.b(Unknown Source)
	at org.objectweb.asm.ClassReader.accept(Unknown Source)
	at org.objectweb.asm.ClassReader.accept(Unknown Source)
	at kilim.analysis.ClassFlow.analyze(ClassFlow.java:85)
	at kilim.analysis.ClassWeaver.weave(ClassWeaver.java:93)
	at kilim.tools.Weaver.weave(Weaver.java:297)
	at kilim.tools.Weaver.weave(Weaver.java:255)
	at kilim.WeavingClassLoader.findClass(WeavingClassLoader.java:61)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at kilim.tools.Kilim.main(Kilim.java:24)

i've done a little bit of digging and it appears that WeavingClassLoader.findClass is calling the weaver, which in loads other classes (to determine if called methods are Pausable). before the first class finishes loading
so if in turn those classes depend on the first class, then everything deadlocks
@sriram-srinivasan does this sound right ? i'm thinking i might be able to work around the problem with a 2nd classloader. when we want to do reflection on the dependent classes, we first load them in the 2nd classloader and do the inspection there, then finish loading the original class in the WeavingClassLoader

Your reasoning sounds right, but I say this without any analysis at all. I’ll have to reload this stuff into my working memory before I venture another opinion. If you are able to find a fix, I’ll gladly take it!

On Mar 19, 2016, at 10:21 AM, nqzero<EMAIL_ADDRESS>wrote:
i've done a little bit of digging and it appears that WeavingClassLoader.findClass is calling the weaver, which in loads other classes (to determine if called methods are Pausable). before the first class finishes loading
so if in turn those classes depend on the first class, then everything deadlocks
@sriram-srinivasan does this sound right ? i'm thinking i might be able to work around the problem with a 2nd classloader. when we want to do reflection on the dependent classes, we first load them in the 2nd classloader and do the inspection there, then finish loading the original class in the WeavingClassLoader

i tried the obvious solution yesterday - it handled the Tree.java example correctly, but failed on more complex hierarchies. spent most of the day reading thru the code and we're doing some non-intuitive stuff (the mirrors and delegates classes) that make changing classloaders non-trivial. i'll keep working on it - if i get to the point of giving up i'll let you know

https://github.com/nqzero/kilim/tree/java8.rtweave2
runtime weaving (ie kilim.tools.Kilim) works for the examples and my port of jdk8 streams to kilim
i went thru the mirroring code and found a ton of stuff that wasn't actively being used, eg, the thread local Detector and the caching mirror, that made figuring out the code a lot more complicated. i deleted that stuff and then fixed the WeavingClassLoader by adding a proxy. if you take a look, all the classloader stuff is in the last commit (https://github.com/nqzero/kilim/commit/dee00430c19f26d9c47ea15c6d77e5fa9bec03ec)
not sure if i should backport the proxy to sriram's version or forward port the tools that i deleted to my version
first, i'm going to see if i can simplify the loader - right now it's classloader spaghetti. it would also be pretty easy to just weave from the classpath instead of working about -Dkilim.class.path (at the cost of slower startup - i haven't quantified this effect)

https://github.com/nqzero/kilim/tree/srl.java8.formdata
specifically https://github.com/nqzero/kilim/commit/02f92eaad930b35ebb0997499fc9bf3776cf2f08 fixes this bug. i haven't figured out how to run the tests using rtweaving, but the examples run with kilim.tools.Kilim bootstrapping, as does my kilim-streams package
just cherry picking that commit should work, but there are other fixes on that branch that need to be integrated too
this patch just tweaks the existing code. however, i think the approach above might be better

the thread-local Detector stuff is ugly and makes reasoning about the code much harder than it needs to be
it's not clear that the caching class mirror is faster than just loading the classes in a proxy classloader
the caching mirror results in class loading cycles with all sorts of corner cases ... it's impossible to test thoroughly
the caching mirror results in a bunch of duplicate code

Thanks. I had inherited the detector stuff from the erjang project and have not put in a serious refactoring thought to the classloading issue. Classloaders are almost always fragile in Java.

On Mar 23, 2016, at 8:02 AM, nqzero<EMAIL_ADDRESS>wrote:
https://github.com/nqzero/kilim/tree/java8.rtweave2
runtime weaving (ie kilim.tools.Kilim) works for the examples and my port of jdk8 streams to kilim
i went thru the mirroring code and found a ton of stuff that wasn't actively being used, eg, the thread local Detector and the caching mirror, that made figuring out the code a lot more complicated. i deleted that stuff and then fixed the WeavingClassLoader by adding a proxy. if you take a look, all the classloader stuff is in the last commit (nqzero@dee0043)
not sure if i should backport the proxy to sriram's version or forward port the tools that i deleted to my version
first, i'm going to see if i can simplify the loader - right now it's classloader spaghetti. it would also be pretty easy to just weave from the classpath instead of working about -Dkilim.class.path (at the cost of slower startup - i haven't quantified this effect)
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub

@sriram-srinivasan i sent an email to the kilim at malhar dot net address. if you don't have time to reply that's fine, but i'd like to know if you received it ? (the capchta acted as though the address might be abandoned)


UILabel can't show enough height when it's text contains such as j g

New Issue Checklist
🚫 If this template is not filled out your issue will be closed with no comment. 🚫

[ ] I have looked at the Documentation
[ ] I have read the F.A.Q.
[ ] I have filled out this issue template.

Issue Info

Info
Value

Platform
. ios 13.6 Xcode 11.6 macOS 10.15.6

Platform Version
13.6

SnapKit Version
5.0.1

Integration Method
cocoapods

Issue Description
My code:
let lab = UILabel.init()
lab.text = "j"
lab.font = systemFont(ofSize:15)
view.addSubview(lab)
    lab.snp.makeConstraints { (make) in
        make.left.top.equalTo(100)
    }

Result:
the foot of j is out of label's height. If my text contains Chinese characters, there is no probles.

There is a problem with the custom font set.


NimBLE blufi inside custom application (IDFGH-8371)

Adding a function in order to be able to use BluFi with Nimble inside custom BLE application

This PR remove conn_handle local variable inside esp_blufi.c for NimBLE Profile and replace it by blufi_env.conn_id.

Introduce int esp_blufi_handle_gap_events(struct ble_gap_event *event, void *arg); in order to be able to use BluFi with custom user gap handler.

Usage :

Configure BluFi by calling dedicated functions:

esp_blufi_register_callbacks
esp_blufi_btc_init
esp_blufi_gatt_svr_init
esp_blufi_profile_init

Configure your custom NimBLE Application

Simply add esp_blufi_handle_gap_events inside your custom gap event handler

For example :
int custom_application_gap_handler(struct ble_gap_event *event, void *arg)
{
    struct ble_gap_conn_desc desc;

    ((void)arg); // Unused parameter arg

    if (event == NULL) {
        ESP_LOGE(TAG, "NULL GAP event pointer!");
        return -1;
    }

    /* Handle gap events for BluFi */
    esp_blufi_handle_gap_events(event, arg);

    switch (event->type) {

    /* A new connection was established or a connection attempt failed. */
    case BLE_GAP_EVENT_CONNECT: {
        ESP_LOGI(TAG,
                 "Connection %s; status=%d ",
                 event->connect.status == 0 ? "established" : "failed",
                 event->connect.status);

        /* Connection success */
        if (event->connect.status == 0) {
            int rc;
            /* Get connection descriptor */
            if (ble_gap_conn_find(event->connect.conn_handle, &desc) == 0) {
                /* Printing connection descriptor */
                ble_server_internal_print_conn_desc(&desc);
            } else {
                ESP_LOGE(TAG, "Fail to get connection descriptor!");
            }

            /* Initiate gap security */
            rc = ble_gap_security_initiate(event->connect.conn_handle);
            if (rc == 0) {
                ESP_LOGI(TAG, "Successfully initiate gap security!");
            } else if (rc == BLE_HS_ENOTCONN) {
                ESP_LOGE(TAG, "There is no connection with the specified handle!");
            } else if (rc == BLE_HS_EALREADY) {
                ESP_LOGE(TAG, "A security procedure is already in progress!");
            } else {
                ESP_LOGE(TAG, "Fail to initiate gap security!");
            }
        }

        /* Connection failed */
        if (event->connect.status != 0) {
            /* Resume advertising */
            if (ble_server_internal_advertising_start() != ESP_OK) {
                ESP_LOGE(TAG, "Fail to enable advertising");
            }
        }
        break;
    }

    /* A disconnection event occur */
    case BLE_GAP_EVENT_DISCONNECT:
        ESP_LOGI(TAG, "Disconnect; reason=%d ", event->disconnect.reason);
        ble_server_internal_print_conn_desc(&event->disconnect.conn);

        /* Connection terminated, resume advertising. */
        if (ble_server_internal_advertising_start() != ESP_OK) {
            ESP_LOGE(TAG, "Fail to enable advertising");
        }

        break;

  /* Other events management */
 default:

        break;
    }
    return 0;
}

Thanks for your contribution.

sha=dbdd8ee1a5494410ad2dedac86dd6709042e338e

HI @mlecriva ,
The change will lead to compilation errors ( since we treat even warnings as errors and cannot merge till all build is clean).  Basically , the struct ble_gap_event is being accessed in esp_blufi.h , where it is not exposed.  Can you please fix it  ?
Also, request you to please rebase to latest master to raise the PR ?  once committed to master, i can backport it to release v5.0 branch.
Thanks,
Rahul

HI @mlecriva ,
The change will lead to compilation errors ( since we treat even warnings as errors and cannot merge till all build is clean). Basically , the struct ble_gap_event is being accessed in esp_blufi.h , where it is not exposed. Can you please fix it ?
Also, request you to please rebase to latest master to raise the PR ? once committed to master, i can backport it to release v5.0 branch.
Thanks, Rahul

Hi @rahult-github,
Thanks for your reply,
I have rebase this branch onto the latest master version.
I have solve ble_gap_event compilation warning by adding #include "host/ble_gap.h" inside esp_blufi header file.
I seems there is no other warning on my side, is it ok for you ?
Mathis

hi @rahult-github
I rebased again on master to keep this MR up to date, do you have any other comments on this MR?
Thank you in advance for your answer.
Mathis

Hi @mlecriva  ,
Thanks. The MR is currently queued up for integration. Once it passes the internal CI/CD checks and internal review process, it will get merged. I will post here , in case there are any review comments or feedback which would need your inputs.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Change has been merged  via ca024c119db70ba1ea73cafa811aa779cc5453df

Changes are already merged via ca024c119db70ba1ea73cafa811aa779cc5453df


Pyjade doesn't support element substitution

It appears this is because of lack of support for mixins in mixins. The following should work:
mixin something(element,id)
  #{element}(href='blah',id='junk#{id}').doggy Hello World

mixin something2(id)
  +something('div',id)

+something('p',1)
+something2(2)

Should produce

Hello World

Hello World

However this gives some bogus text in pyjade.
You've not implemented the interpreter correctly in pyjade. I suspect you have a large, large number of problems in pyjade, to the extent that this whole project is maybe throwaway, without rewriting the interpreter.
Additionally, tracked down the bug to the lexer - pyjade sees the
 #{element}(href='blah',id='junk#{id}').doggy Hello World

barfs, and assumes it is text. I presume the fix involves teaching the lexer that this is in fact in need of interpolation. Not only is this significantly broken, this is also looking like a significant amount of work to fix.
Looking at the Lexer, it seems all that it does is look for REGEX patterns to determine what the current element is. It may be that all we need to do is copy the interpolation from the pug-js jade-lexer package (https://github.com/pugjs/pug-lexer/blob/master/index.js), and then we may be golden...however I don't know how much support this would involve to port the feature everywhere else.
I'm thinking it may just be a lot simpler to use pyjs to pipe to/from python directly, rather than re-inventing the wheel here...

You've not implemented the interpreter correctly in pyjade. I suspect you have a large, large number of problems in pyjade, to the extent that this whole project is maybe throwaway, without rewriting the interpreter.

I think your comment is too harsh. I implemented the fix for this without much problem.
https://github.com/syrusakbary/pyjade/pull/239
mixin test(element, value)
  #{element} value = #{value}

mixin test2(value)
  +test('test2', value)

mixin test3(element3)
  #{element3} content

mixin test4(text4)
  p #{text4}

+test('div', 'hello')

+test2('world')

+test3('div')

+test4('text 4')

/temp/pyjade/element-interpolation # ./env/bin/pyjade test.jade
WARNING:root:No module named 'django'
WARNING:root:No module named 'tornado'

value = hello

<test2>value = world</test2>

content

text 4

Perhaps. It seems you solved this differently that to how I expected it would be solved, so maybe it is my lack of perspective. I'll take a look over changes and merge them with mine...
Thanks for looking at this! :)


transaction containing insert and update yields unexpected ER_NO_REFERENCED_ROW_2

I have a table with a self-referencing foreign key for parent/child style relationships.
I am endeavoring to be able create a new child row and then update the parent row to reflect this addition.
When I manually (via sql console) perform an insert statement to create the new child record and then subsequently perform an update of the parent row, all of this works perfectly.
However, I would like to do both of these steps atomically within a transaction.  I would like both the insert and update to either fully succeed or fail as a unit as part of a transaction.
I have had success using transactions for similar purposes at other places in my code.  However, this instance is not working as expected.  I am using the following approach to accomplish this:
try {
    connection = await pool.getConnection();

    await connection.beginTransaction();

    await connection.execute(`INSERT into ....`   // This successfully inserts the child record as verified by logging output

    await connection.execute(`UPDATE ....  // This fails with ER_NO_REFERENCED_ROW_2

    await connection.commit();
} catch (err) {
    await connection.rollback();
}

The FK is not auto-generated.  It is a separately created UUID.  I have verified both the INSERT and UPDATE statements as well as the parameter values via logging to be as needed and to be in agreement with the manual steps taken in the console.  However, it appears that within the transaction, the effects of the insert statement are not realized causing the ER_NO_REFERENCED_ROW_2
"errno": 1452,
    "sqlState": "23000",
    "sqlMessage": "Cannot add or update a child row: a foreign key constraint fails (`test`, CONSTRAINT `fk_test_id` FOREIGN KEY (`reversing_id`) REFERENCES `test` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)"

error.
Obviously, inserting another commit statement after the insert would not give me the atomic semantics that I need in this case.
What am I missing or doing incorrectly here as it seems like the above should work?
Thank you kindly in advance!

@skidvd I see you posted to mysql2 as well, do you want to close this issue? Not sure it is specific to prepared statement but your example just won't work with mysqljs/mysql driver

My apologies, it appears that a trigger was interfering with this that I was not aware of.  This is working as expected without it.

@skidvd Could you share your solved code? I'm facing exactly the same issue


feat: warn user if using both stable and insider

closes https://github.com/prisma/language-tools/issues/491
Shows a toast on activation if a user has both the Insider and stable Prisma VSCode extension installed. Unfortunately, it is not possible to check if these are disabled or not.

Unfortunately, it is not possible to check if these are disabled or not.

That should be okay if this happens only once when the plugin is activated 👍

Another suggestion. What do you think about doing this feature only in the "insiders" version?
So, if "insiders" and "stable" both are installed, "insiders" invokes the code to call this toast.

Why not, sure 👍