Case sensitive PDB-IDs at home page

Make the PDB-ID input field on the home page (https://pdb-redo.eu/) case-insensitive, such that e.g. either 1cbs or 1CBS leads to the PDB-REDO entry page of that model

solved


Is maturin >=14,<15 still a hard requirement today ?

Hi,
I would like to know if trying to use maturin 15 would break this package or not today ?
Is it possible, or it would completely not work at all. It is in order to use unblob.

It should work with newer maturin as well. Will bump it shortly


Do we support NODE_PATH in server

When I use CRA, I defined NODE_PATH=src/ in .env file. It help me a lot on import. For example:
import Item from "components/item/Item"
When I start cra-universal, NODE_PATH is not apply, I have to tweak something like this  to make it work.
import Item from "../../components/item/Item"
Any suggestion on it. Thanks!

I think you can use https://webpack.js.org/configuration/resolve/#resolve-modules

I tried, but no luck
module.exports = {   app,   resolve: {     modules: ['src/', 'node_modules']   } };
module.exports = {   app,   resolve: {     modules: ['../src/', 'node_modules']   } };
module.exports = {   app,   resolve: {     modules: ['./src/', 'node_modules']   } };

I think it nice to have the feature support to custom some specific webpack config instead of overriding all.

I think I'll add NODE_PATH to modules entry internally, but it'll be shipped on v4

also I think NODE_PATH usage is discouraged  https://github.com/webpack/webpack/issues/4479#issuecomment-286701441

Thank you @antonybudianto !


1.0.7 on Windows, binding "Task Collector (TC) Mark with next" is not working for me

Not sure if I'm doing something dim.
#114 was closed as fixed in 1.0.7 but this is still not working for me. Have tried binding "Mark with next" to Ctrl-Enter and Ctrl-m, neither make any difference.
Works perfectly from the right-click menu.

I may have missed it in the other place. Thanks! Give me a few..

Appreciate it, thanks! Fixes to my other issues all working well. Happy to help test if necessary.

Trying the command in an editor view or reading mode?

Editor view - I live in preview mode, but I've tried reading mode and source mode too, nothing changes for me.
I tried mapping back to Ctrl-Enter in case there was some conflict with Ctrl-m, but with the same issue. Both hotkeys work in Obsidian OK when assigned to other commands..

I meant live preview.. SO. I'll have to look, but I think this is where the problem lies.. Those commands are tied to source mode (as you're on a line for real when you issue the keystroke so I can tell what line you're trying to change).
I'm fussing around with some things for live preview mode (right click menu works, but the direct click is mixed at best).
If you assign the command to a hotkey, I think you'll find it works correctly in source mode (should impact the line you're on.. ). Live preview rendering is a little more complicated.

I can't get it to work from a key binding in source mode either, not sure what is happening. If it is working for you, maybe it's a conflict between plug-ins. I'll try with a clean vault when I have a minute.
It is working correctly in Task Marker, which I think was forked from your code originally - once task collector works with the hot keys to move between statuses I plan on removing task marker, but I am using both at the moment.

Not working for me in any mode from a key binding in any mode on a clean vault with only TC installed. Definitely version 1.0.7

hmm. ok. will test. thanks. :)

I am happy to remain outcome-focussed 😁 was broken, now fixed - thank you!


Sway arranges layout far too often

Whenever the mouse is moving, the layout is being rearranged. Whenever there is a floating window, the layout is constantly being arranged. This makes the log impossible to read and probably has some implications for performance.

Can confirm this is fixed now. Thanks @mikkeloscar!

Great!


Added ARM tasks to CI config

Signed-off-by: mark-terry<EMAIL_ADDRESS>

PR description
Added ARM CircleCI tasks to verify compatibility.
Fixed Issue(s)

Documentation

[ ] I thought about documentation and added the doc-change-required label to this PR if
updates are required.

Changelog

[ ] I thought about the changelog and included a changelog update if required.

@mark-terry  is this PR still relevant or should it be closed?


Feat(eos_cli_config_gen): Support disable commands of spanning-tree bpduguard and bpdufilter

Change Summary
To support spanning-tree bpdufilter and bpduguard disable commands changes were made to jinja templates. Documentation already exists for these commands. Commands were added to both Ethernet and Port-channel interfaces in addition to spanning-tree global configuration.
Related Issue(s)
Fixes #1105
Component(s) name
arista.avd.eos_cli_config_gen
Proposed changes
README.md suggests disable commands are supported but they don't exist in the jinja templates. This was fixed in this PR.
How to test
molecule
Checklist
User Checklist

N/A

Repository Checklist

[x] My code has been rebased from devel before I start
[x] I have read the CONTRIBUTING document.
[x] My change requires a change to the documentation and documentation have been updated accordingly.
[x] I have updated molecule CI testing accordingly. (check the box if not applicable)

Yeah, I missed them. Will update with the new spanning-tree facts.


Per-Folder Blacklist

Feature Request:
Is there a way for the program to read a blacklist file from the selected download folder and use that in addition to the global blacklist?
Thank you for your consideration on the matter, and my sincerest apologies if this has already been implemented! I couldn't seem to find the issue / feature!

Any update on this, if I may ask...?

running the risk of deleting something

If disk space is your main concern, there is alternative way: convert duplicates to hardlinks - files appearing at multiple paths, but without storing several copies of their content (so changing anything other than filename will reflects on all its copies).
Example of a tool for this: https://github.com/Hopfengetraenk/DFHL
I kinda prefer to leave multiple copies around though, in case of accidents, disk corruption, etc.

Unfortunately, I work on multiple OS'; Windows hardlinks won't work on Linux, MacOS, etc. So that might not work out so well.


[Fix]  thread 'main' panicked at 'q3 = 0'

thread 'main' panicked at 'q3 = 0', src/tlsh.rs:211:13

@1crcbl please check code.


Make it compatible with browserify

Flip the 'module' and 'window' checks so the library can be used in Browserify

Can we get this merged? Works great!


A small bug when parsing the feedback text in the story generation task

I'm using gpt-4o-mini and I'm pretty sure (maybe ^_^) the code in thoughtsculpt/model/node.py line 228 that for feedback in feedbacks.split("\n")[:num_candidates]: should be replaced with for feedback in re.split(r'\n\s*\n', feedbacks)[:num_candidates]:. Otherwise, when you got feedback output like this:

Thought Process:
Outline items 1 and 2 both focus on Snowball's initial situation and his transition into the outside world. While they introduce important elements, the progression feels somewhat predictable and lacks unique engagement for the reader. The setup is standard for a pet adventure story, making it less compelling.
[reason: too repetitive/cliche plot] [1]-[2] [interesting level: 3]
Thought Process:
Outline items 2 and 3 discuss Snowball's venture into the outside world and his eventual return home. While they convey a sense of adventure and resolution, the themes of exploring dangers and appreciating home are common tropes. The transition could benefit from more unexpected twists or character development to enhance engagement.
[reason: unsurprising/too similar themes] [2]-[3] [interesting level: 4]
Thought Process:
Outline items 1 and 3 cover the beginning and end of Snowball’s journey. However, the first item establishes a familiar backstory that doesn't strongly hook the reader, while the conclusion is quite straightforward and lacks an intriguing climax or twist that could elevate the emotional stakes.
[reason: predictable/weak climax] [1]-[3] [interesting level: 2]

And the split result would probably be like:

['Thought Process:', "Outline items 1 and 2 both focus on Snowball's initial situation and his transition into the outside world. While they introduce important elements, the progression feels somewhat predictable and lacks unique engagement for the reader. The setup is standard for a pet adventure story, making it less compelling.", '[reason: too repetitive/cliche plot] [1]-[2] [interesting level: 3]']

While the expected spilt result should be like:

["Thought Process:\nOutline items 1 and 2 both focus on Snowball's initial situation and his transition into the outside world. While they introduce important elements, the progression feels somewhat predictable and lacks unique engagement for the reader. The setup is standard for a pet adventure story, making it less compelling.\n[reason: too repetitive/cliche plot] [1]-[2] [interesting level: 3]", "Thought Process:\nOutline items 2 and 3 discuss Snowball's venture into the outside world and his eventual return home. While they convey a sense of adventure and resolution, the themes of exploring dangers and appreciating home are common tropes. The transition could benefit from more unexpected twists or character development to enhance engagement.\n[reason: unsurprising/too similar themes] [2]-[3] [interesting level: 4]", "Thought Process:\nOutline items 1 and 3 cover the beginning and end of Snowball’s journey. However, the first item establishes a familiar backstory that doesn't strongly hook the reader, while the conclusion is quite straightforward and lacks an intriguing climax or twist that could elevate the emotional stakes.\n[reason: predictable/weak climax] [1]-[3] [interesting level: 2]"]

The wrong-parsed feedback text does harm candidates' generation quality, I guess.

Thank you for raising the issue. Do other models also have this similar problem? And yes, looking back rn, the parsing method is kind of bad.


Include Python 3.11 in nox tests and Github actions matrix

I tried running the nox tests against the latest Python 3.11 RC from the deadsnakes ppa, and it worked.  Hopefully it also works under Github actions.  This is in preparation of the release of 3.11 which happens in October.

I see that nox is using the python version as defined in the matrix.  I'll have to figure out how to disentangle that.

Since Python 3.11 has been released, the change is much simpler and just adds 3.11 into the matrix.


Use design system arrow icon across the app

The design system contains an icon set with carefully designed arrows. Their size, ratio and pointiness are designed to be visually appealing.

These elements currently use a different, much pointier arrow:

TODO

[ ] Use the arrow icons as defined in Figma for all elements

@martenbjork I'm experimenting with this. Because of the rotation animation, it's very advantageous to keep this thing a vector instead of a (raster) icon. I derived a linearised version of the path from a Figma-exported SVG:

This is it in action, at 250% UI zoom (top arrow only, the bottom two are the original ones):

Can't say it's not visible, but it's certainly discreet with 100% UI zoom:

I'm inclined to keep that rounded version because it looks better at scale for a minimum costs (that's very few points), mainly because it makes me feel good :)  Any thoughts? How about the size of that triangle w.r.t. the text?


fix(ec): Add check for EC operations that argument is indeed on the curve

Description
Problem*
std user isn't expected to sanitize every input to ec, so these constraints should be added by the lib.
Summary*
Add check for EC operations that argument is indeed on the curve
Additional Context
none
Documentation*
Check one:

[x] No documentation needed.
[ ] Documentation included in this PR.
[ ] [Exceptional Case] Documentation to be submitted in a separate PR.

PR Checklist*

[ ] I have tested the changes locally.
[x] I have formatted the changes with Prettier and/or cargo fmt on default settings.

Also there pending a quite obvious optimization to this; to separate external and internal calls of operations and keep minimum needed assert on the external call.
As that optimization is significantly less important than this fix I suggest creating an issue for it and assigning that to me (with the help from @Savio-Sou maybe).

Hi,
Thanks for the PR!
I don't think we want to add this check for each arithmetic operation, instead we should only do it when a point is being instantiated. This means that if you create a point using the new method then there is no need to check if each operation is on the curve.
We don't do these checks on parameters to main, so I think an issue for that should be created instead.
CC @TomAFrench as we discussed this internally

re checks on parameters to main, we have a general method outlined in https://github.com/noir-lang/noir/issues/4218 which could work here.

@kevaundray
Ofc that would be better in the setting when Point has any info about the curve. But it's just coordinates. And since struct can't be private it's impossible to prohibit making Point off the curve, so check on instantiation would be like that door without fence in memes -- not really constraining the thing.

I don't think we want to add this check for each arithmetic operation, instead we should only do it when a point is being instantiated. This means that if you create a point using the new method then there is no need to check if each operation is on the curve.

Btw, could you outline how would including any Curve info into Point impact constraints/performance? I was trying to imagine, but lack of info left me with too many possibilities.
Could you explain this one, pls.

...parameters to main...

Could you explain this one, pls.

Hey, sorry for slow response on this. I mean that any curve points which are passed in as arguments to main can be checked to lie on the curve through a trait as laid out in that issue.

I'm going to close this issue as I think we're going to rely on the program validating any points which are user inputs and then it being the program developers responsibility to not pass any invalid points to these methods.


Added New Extension

Description
This pull request introduces a new Chrome extension named "Python Code Editor Extension" that provides users with quick and easy access to an online Python code editor. The extension includes a welcome page with a typewriter effect that greets users and invites them to start coding in Python.
Fixes:  #1072

Type of change

[X ] New feature (non-breaking change which adds functionality)

Checklist:

[X ] I have made this from my own
[ ] I have taken help from some online resourses
[ X] My code follows the style guidelines of this project
[ X] I have performed a self-review of my own code
[ X] I have commented my code, particularly in hard-to-understand areas
[ X] I have made corresponding changes to the documentation
[ X] My changes generate no new warnings

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

@Sulagna-Dutta-Roy added new extension please check


[WIP] Fix broken imagenet example

This PR fixes #5631 by rewriting a dummy function from a lambda to an explicitly defined local function.

Jenkins, test please.

Jenkins, test this please

Jenkins CI test (for commit e5e787042aab9d5dd7bed57f835f1405a13984f0, target branch master) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

A dummy function is not used in ChinaerCV example.
https://github.com/chainer/chainercv/blob/3726368c49b5d9476eafdc3081d8cf7db607e06e/examples/classification/train_imagenet_multi.py#L89
We may not need the dummy function.

Jenkins, test this please

I confirmed that the unittests for chainermn were passed

Jenkins CI test (for commit 00f81826b1c4cc8f614d04adb843b409a86faebb, target branch master) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)


Precalculus

Hi everyone,
is it okay to take the Precalculus course on KhanAcademy instead of futurelearn?

Yes, we are recommending the resources that we think are most appropriate, but every student makes modifications that bit themselves. Khan Academy creates high quality math resources.

Yes, we are recommending the resources that we think are most appropriate

@waciumawanjohi Could you please elaborate on this a bit, or point to a discussion where a comparison was made. I searched with various keyword combinations on the issues in this repository, and did not find anything comparing the Khan Academy precalculus course vs FutureLearn's.
Why does OSSU think that FutureLearn precalculus is the "most appropriate"?

Why is the precalculus course from the University of Padova in Extras/Courses? The largest factor is that it has very high reviews. In addition, I reached out the course developers with a question about future availability of the course and received a response within hours. Between good reviews and responsive faculty it earned a place in Extras.

@waciumawanjohi thanks a lot for explaining this.  I am right now in Week3 of this Pre-calculus FutureLearn course. I can also vouch that it is of a high standard. I have a PhD in engineering (with a thesis involving multivariable calculus, PDEs etc) and generally good at math, but I openly admit that in the first 2 weeks, I am learning quite a few concepts that I simply did not know or had forgotten before.  Highly recommend this course for the good teaching style and quality of content.

Why is the precalculus course from the University of Padova in Extras/Courses? The largest factor is that it has very high reviews. In addition, I reached out the course developers with a question about future availability of the course and received a response within hours. Between good reviews and responsive faculty it earned a place in Extras.

@waciumawanjohi You have now contradicted your previous statement. This high-quality pre-calculus course offered by Univ of Padova on FutureLearn has just been replaced in a recent PR #786 with Khan Academy. This is vacillation and confuses new entrants to OSSU.  I am just taking the FutureLearn pre-calculus and I can absolutely vouch for its high quality.


I18n of the admin menus

I would like to use apostrophe cms in another language, Geman to be specific. Unfortunately most of the built in text messages are static and can't be found in any message bundle. One could walk through the templates and replace all static strings with __(...) but there are a few places where this does not work. To make translations correctly all messages need to be resolved in context of a request. For admin menus and everything this should be ok. But there also exist component names and other labels that are set when a module is initialized e.g. module.exports = { extend: 'apostrophe-widgets', label: 'Link to Anywhere', ... }
How should their translation be handled? Are there any efforts or plans to make apostrophe cms usable in other languages?

Hello timaebi,
You're correct about how this should be solved for text in templates. Pull
requests adding the __() will be gratefully accepted.
As for the label for widgets, I think that would make sense to do in the
buttons.html macro file where the label is actually output, and so on. PRs
for that are welcome too.
In general, i18n is something we're happy to support and merge PRs for, but
can't commit internal resources for at this time because of a lack of
clients with a need for it.
On Tue, Dec 6, 2016 at 2:21 PM, timaebi<EMAIL_ADDRESS>wrote:

I would like to use apostrophe cms in another language, Geman to be
specific. Unfortunately most of the built in text messages are static and
can't be found in any message bundle. One could walk through the templates
and replace all static strings with __(...) but there are a few places
where this does not work. To make translations correctly all messages need
to be resolved in context of a request. For admin menus and everything this
should be ok. But there also exist component names and other labels that
are set when a module is initialized e.g. module.exports = { extend:
'apostrophe-widgets', label: 'Link to Anywhere', ... }
How should their translation be handled? Are there any efforts or plans to
make apostrophe cms usable in other languages?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/punkave/apostrophe/issues/771, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAB9fdlBhCNEVi0S4Z8CW1dagTEURkvwks5rFbW-gaJpZM4LFyb2
.

--
*THOMAS BOUTELL, *SUPPORT LEAD
P'UNK AVENUE |<PHONE_NUMBER>  |  punkave.com

I see an area where I might actually be able to help a bit, is this still something that is needed? I looked in a few of the views and see some of the work done but lots remaining.
If so I'll do some work and a PR for you.
Sandy

Yep, more __() calls for 2.x would be welcome as a PR.
On Tue, Sep 26, 2017 at 12:34 PM, Sandy Ganz<EMAIL_ADDRESS>wrote:

I see an area where I might actually be able to help a bit, is this still
something that is needed? I looked in a few of the views and see some of
the work done but lots remaining.
If so I'll do some work and a PR for you.
Sandy
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/punkave/apostrophe/issues/771#issuecomment-332258337,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAB9fQglJ1KntztOZu8svhJJFoBtGKxeks5smSewgaJpZM4LFyb2
.

--
*THOMAS BOUTELL, *SUPPORT LEAD
P'UNK AVENUE |<PHONE_NUMBER>  |  punkave.com

Will get cracking and do a few and submit a PR to make sure I'm good with it all. One question I saw a couple where the had something like __("abc" | d()) but couldn't find any reference to d(). Do I need to worry about that? Seems like a placeholder or something for menus?

Can you point to one specifically?
On Tue, Sep 26, 2017 at 12:43 PM, Sandy Ganz<EMAIL_ADDRESS>wrote:

Will get cracking and do a few and submit a PR to make sure I'm good with
it all. One question I saw a couple where the had something like __("abc" |
d()) but couldn't find any reference to d(). Do I need to worry about that?
Seems like a placeholder or something for menus?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/punkave/apostrophe/issues/771#issuecomment-332260924,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAB9fYfWUGsXuWqVJxWmFqmVfHqIoAtjks5smSmwgaJpZM4LFyb2
.

--
*THOMAS BOUTELL, *SUPPORT LEAD
P'UNK AVENUE |<PHONE_NUMBER>  |  punkave.com

Sure, it was actually d('') but it's in a bunch of views. Take a look at -


[WFLY-19517] Use a valid equals check when deciding whether to merge …

…default address settings
https://issues.redhat.com/browse/WFLY-19517
This will conflict with #18026, and if that one is wanted we should merge it and close this.

Closing; this was fixed via the commit in #18026


Feature: Add "Form.reset()"

What
Need to expose the method to clean/reset the form fields' values.
Why
There are various use cases when this is needed. For example, to reset the form after submit.
How

Add Form.reset()
Iterate over all fields and set their values to empty ones initial values.
Validate the fields which need validation and which value is not empty.

// utils/fields/resetField.js
export default function resetField(fieldProps) {
  let resetPatch = {};

  switch (fieldProps.get('type')) {
    case 'radio':
    case 'checkbox':
      resetPatch.checked = false;
      break;

    default:
      resetPatch.value = '';
      break;
  }

  return fieldProps.merge(resetPatch);
}

// Form.jsx
reset() {
  const nextFields = this.state.fields.map(fieldProps => fieldProps.set('value', '');
  this.setState({ fields: nextFields });
}

Turned out much more complicated that it seemed. The biggest part is done, only tests left to write.

Update

Aligned validate interface. Now fieldUtils.validate() returns a validation propsPatch:

{
  expected,
  [`validated${type}`]: true,
  [`valid${type}`]: expected
}

This change simplifies the usage of the validate method within the Form.

Update

Added a Sequence class to iterate over the entries using the given iterator function to accumulate the result of the entries execution
Used Sequence in fieldUtils.validate() to have a clean and declarative way of constructing a validation chain/sequence

@Vidlec I'm assigning this issue on you. Once you test it on Conrad, please close it if it works properly. Thanks.


unpublish fails when trying to remove artifact that should be skipped

I have a multi-project SBT build where the root project has skip in publish := true, but when I attempt to unpublish the entire project with bintrayUnpublish I receive an error when it attempts to unpublish the root project.
[error] java.lang.RuntimeException: failed to discard<EMAIL_ADDRESS>{"message":"Version '1.0.1-SNAPSHOT' was not found"}
[error]         at scala.sys.package$.error(package.scala:26)
[error]         at bintray.BintrayRepo.unpublish(BintrayRepo.scala:84)
[error]         at bintray.BintrayPlugin$.$anonfun$bintrayPublishSettings$19(BintrayPlugin.scala:108)
[error]         at bintray.BintrayPlugin$.$anonfun$bintrayPublishSettings$19$adapted(BintrayPlugin.scala:106)
[error]         at scala.Function1.$anonfun$compose$1(Function1.scala:44)
[error]         at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:40)
[error]         at sbt.std.Transform$$anon$4.work(System.scala:67)
[error]         at sbt.Execute.$anonfun$submit$2(Execute.scala:269)
[error]         at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error]         at sbt.Execute.work(Execute.scala:278)
[error]         at sbt.Execute.$anonfun$submit$1(Execute.scala:269)
[error]         at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error]         at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error]         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error]         at java.lang.Thread.run(Thread.java:748)
[error] (bintrayUnpublish) failed to discard<EMAIL_ADDRESS>{"message":"Version '1.0.1-SNAPSHOT' was not found"}

Fixed in #168.


NoSuchElementException when accessing list but .size() works ok

Hello,
I'm concatenating several videos to make one. It works for some videos (mainly rather short ones, the longest I tried with success was 5 min 56 sec total. But when I try to join longer set of videos I get exception on audio track .getSamples(). All audio tracks are cropped because of syncing issues so the are CroppedTrack in fact.
Now more into details.
I'm using version 1.1.7 which I believe is the latest.
This is how error looks like in Watch:

As you can see size() works but whole list not.
The code where this happens is:
public List<Sample> getSamples() {
    return origTrack.getSamples().subList(fromSample, toSample);
}

in CroppedTrack.java. If I get into origTrack.getSamples() and run watch on private variable samples I get the error that is attached.
I think something may be wrong with the implementation of AbstractArray for cropped list. I will try to debug further to find out what's happening but maybe you'll have time to make it even faster.
The problem is with test case. It doesn't happen for all videos. I crop all of them and some are concatenated without a problem and others throw exception. The one rule I noticed so far, but can't tell it's 100% is that it doesn't work for long video sets. But maybe it's not about time but number of tracks. In this example there are 14 video tracks appended to each other. The error is thrown on second audio track. I go back to debugging. Let me know if you need more details on this.
Btw. great job with the library! I will donate for sure when this finally works for me :).

I investigated this more and my best guess is that something in size() implementation in DefaultMp4SampleList.java is wrong in some circumstances:
public int size() {
    return l2i(trackBox.getSampleTableBox().getSampleSizeBox().getSampleCount());
}

Because it looks like it returns bigger size than in reality and for loop from toArray() tries to get element of index that doesn't exist. The audio track that fails for me is 5016 elements long so can be hard to check this theory but I'll try.
Maybe I messed cropping...
That's my code for cropping:
for (Track t : part.getTracks()) {
    if (t.getHandler().equals("soun")) {
        audioTrack = new CroppedTrack(t, 0, t.getSamples().size() - 12);
     }
}

More info. I've catched the exception that is in fact causing OutOfRangeException that in turn is causing NoSuchElementException:

Thank you for debugging this issue on your own that far. You are already
quite close to the problem:
this method call topLevel.getByteBuffer fails with an IOException: mmap
failed: EPERM (Operation not permitted).
The source of this IOException is most likely the getByteByteBuffer method
of the BasicContainer
public ByteBuffer getByteBuffer(long rangeStart, long size) throws IOException {
if (this.dataSource != null) {
synchronized (this.dataSource) {
return this.dataSource.map(this.startPosition + rangeStart, size);
}
}
the dataSource#map call delegates most likely to a FileDataSourceImpl and
there the mmap call fails (FileDataSourceImpl#57)
return fc.map(FileChannel.MapMode.READ_ONLY, startPosition, size);
So my guess is that the fileChannel#map call fails. Do you have read access
to the file?
I hope that helps you a bit with the debugging - I cannot do much as the
cause for it is within your system!
2015-09-27 14:03 GMT+02:00 Episodex<EMAIL_ADDRESS>
More info. I've catched the exception that is in fact causing
OutOfRangeException that in turn is causing NoSuchElementException:
[image: error_isoparser]
https://cloud.githubusercontent.com/assets/6061876/10122716/91ff9878-6520-11e5-976c-3aa64c4229e4.PNG
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-143545634.

Thanks for quick answer! That's what I initially thought, that maybe I don't have the access to the file or it was deleted or something. But would the size() method return anything then? Also this fails on index 2117 out of 5016 so almost half of samples were read ok. I don't have good understanding of how mp4 format works so I don't know if it is possible to have access to only part of the file. Also video track seems to work perfect. Can it be that the file is broken or the exception then would be different or thrown earlier?

This 'table of content' - where I find the offsets of the actual samples -
is typically in the beginning of the file and read in the beginning.
Sometimes the allowed number of memory map operation is restricted per
process. The first few hundred might succeed and then fail once the limit
is exceeded (try setting sysctl -w vm.max_map_count=524280). Or on some
Android's it's a problem to memory map parts of the file beyond 2GB.
Are you on Android? Linux? Windows?
Beste Grüße,
Sebastian
2015-09-27 18:42 GMT+02:00 Episodex<EMAIL_ADDRESS>
Thanks for quick answer! That's what I initially thought, that maybe I
don't have the access to the file or it was deleted or something. But would
the size() method return anything then? Also this fails on index 2117 out
of 5016 so almost half of samples were read ok. I don't have good
understanding of how mp4 format works so I don't know if it is possible to
have access to only part of the file. Also video track seems to work
perfect. Can it be that the file is broken or the exception then would be
different or thrown earlier?
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-143575873.

It's Android. The file is <2GB for sure. All the files are from the same source - Phone's Camera - and are stored in the same place - DCIM directory on SD card. I'm running tests on physical phone, not emulator.

It's super hard to debug over the distance.

I'll prepare a concat example with the 2.x branch (still alpha) of the
mp4parser tomorrow. In 2.x I'm only using InputStreams and you won't run
into those memorymap problems.
Wish you a pleasant rest of the Sunday!
Beste Grüße,
Sebastian
2015-09-27 19:10 GMT+02:00 Episodex<EMAIL_ADDRESS>
It's Android. The file is <2GB for sure. All the files are from the same
source - Phone's Camera - and are stored in the same place - DCIM directory
on SD card. I'm running tests on physical phone, not emulator.
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-143577733.

Thanks for help! I debugged it further yesterday and found out that it fails on different index each time but looks randomly to me... I'll dig into this EPERM issues on the net.
Is 2.x release matter of weeks, months, years? :)

Hey,
I just ran into the same issue on Android using 1.1.7, it worked before with 1.0-RC28. My original video is below 2GB, has a bitrate of 20mbit and 30fps.
This only happens if I append a track that is bigger than 1 min 10 secs and I call DefaultMp4Builder().build(movie). It does not happen if I append 4 tracks each 30 secs!
Here is my trace:
java.util.NoSuchElementException
at java.util.AbstractList$SimpleListIterator.next(AbstractList.java:59)
at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
at java.util.AbstractCollection.toArrayList(AbstractCollection.java:349)
at java.util.AbstractCollection.toArray(AbstractCollection.java:339)
at java.util.ArrayList.addAll(ArrayList.java:188)
at com.googlecode.mp4parser.authoring.tracks.AppendTrack.getSamples(AppendTrack.java:372)
at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder$InterleaveChunkMdat.(DefaultMp4Builder.java:686)
at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder$InterleaveChunkMdat.(DefaultMp4Builder.java:646)
at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.build(DefaultMp4Builder.java:127)
I guess the workaround for now is cutting bigger tracks into smaller ones and appending them.
Cheers,
Ralf

That is soooo weird. But good that you solved it
I'm working on the 2.x branch but it's still too alpha. I'll use
'appending' as a one of the first proof of concepts for the new API but I
won't finish that usecase today.
2015-09-28 19:02 GMT+02:00 rniebecker<EMAIL_ADDRESS>
Hey,
I just ran into the same issue on Android using 1.1.7, it worked before
with 1.0-RC28. My original video is below 2GB, has a bitrate of 20mbit and
30fps.
This only happens if I append a track that is bigger than 1 min 10 secs
and I call DefaultMp4Builder().build(movie). It does not happen if I append
4 tracks each 30 secs!
Here is my trace:
java.util.NoSuchElementException
at java.util.AbstractList$SimpleListIterator.next(AbstractList.java:59)
at
java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
at java.util.AbstractCollection.toArrayList(AbstractCollection.java:349)
at java.util.AbstractCollection.toArray(AbstractCollection.java:339)
at java.util.ArrayList.addAll(ArrayList.java:188)
at
com.googlecode.mp4parser.authoring.tracks.AppendTrack.getSamples(AppendTrack.java:372)
at
com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder$InterleaveChunkMdat.(DefaultMp4Builder.java:686)
at
com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder$InterleaveChunkMdat.(DefaultMp4Builder.java:646)
at
com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.build(DefaultMp4Builder.java:127)
I guess the workaround for now is cutting bigger tracks into smaller ones
and appending them.
Cheers,
Ralf
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-143805082.

@rniebecker Thanks for input!
I will try to do CroppedTracks out of longer segments then and I'll let here know if it worked.
@sannies Is there a way to know how many milliseconds one sample takes? Or is it fixed absolute value?

Track#getSampleDurations and track#getMetadata() #getTimeScale
Episodex<EMAIL_ADDRESS>schrieb am Mo., 28. Sep. 2015 7:47 PM:

@rniebecker https://github.com/rniebecker Thanks for input!
I will try to do CroppedTracks out of longer segments then and I'll let
here know if it worked.
@sannies https://github.com/sannies Is there a way to know how many
milliseconds one sample takes? Or is it fixed absolute value?
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-143818695.

Sorry guys,
this is not the solution, I just implemented it that way and sometimes it works and often it doesn't throwing the same exception. :(
Will look into the code to see if I can locate the issue.
Any chance to get my hands on the new 2.x lib early so I can test if the problem is still there?
Cheers,
Ralf

I used following code to segment long audiotracks:
Movie part = MovieCreator.build(dataSource);

Track videoTrack = null;
Track  audioTrack = null;

for (Track t : part.getTracks()) {
	if (t.getHandler().equals("soun")) {
		audioTrack = new CroppedTrack(t, 0, t.getSamples().size() - 12);

		long trackSize = audioTrack.getSamples().size();
		if(trackSize > 1000) {
			for(int i = 0; i * 1000 < trackSize; i++) {
				audioTracks.add(new CroppedTrack(audioTrack, i*1000, Math.min((i+1) * 1000, trackSize)));
			}
		} else {
			audioTracks.add(audioTrack);
		}
	}
	if (t.getHandler().equals("vide")) {
		videoTrack = t;
		videoTracks.add(videoTrack);
	}
}

But it doesn't work because still it iterates through original big track (probably to split them into pieces I declared, and probably inevitable :( ).
From my tests it looks like it has problem just after 1000th sample of only audio tracks.
But I just did the test and disabled audio tracks at all to leave only video tracks.
Now I get "mmap failed: ENOMEM (Out of memory)" Exception on 1304th sample of a video.
@sannies Silly question, but have you tested appending videos on clips longer than 1000 samples? Maybe there's some memory leak? Or it's something Android specific. But my device has 3GB of RAM...

Hey,
I switched back to using isoparser-<IP_ADDRESS>.jar which is working fine for me, just tested on Samsung S5 and S6.
I tested with 1.1.5 before but that failed as well. So the bug has been introduced somewhere between those versions. Would be nice to get access to versions 1.1.1 to 1.1.4 to verify where it has been introduced.
Cheers,
Ralf

Hi @rniebecker , can this version be used with Gradle or you had to have the .jar physically? Can this released be found somewhere? I'd do the test also on this version.

Hi Ralf, Episodex,
if you can would please try to use version 1.1.9 from
https://oss.sonatype.org/content/repositories/comgooglecodemp4parser-1079 ?
I removed the "late mapping" memory mapping (first parse pass only recorded
offsets and sizes of boxes, they were only read when properties of them
where accessed ). No the content of the boxes is directly read into the
heap (no worries actual sample data is not ).
the old releases have been uploaded to an S3 bucket. You should be able to
use http://com.mp4parser.s3.amazonaws.com/ as repsoitory. If not simply
download by hand:
http://com.mp4parser.s3.amazonaws.com/com/googlecode/mp4parser/isoparser/1.1.1/isoparser-1.1.1.jar
http://com.mp4parser.s3.amazonaws.com/com/googlecode/mp4parser/isoparser/1.1.2/isoparser-1.1.2.jar
http://com.mp4parser.s3.amazonaws.com/com/googlecode/mp4parser/isoparser/1.1.4/isoparser-1.1.4.jar
http://com.mp4parser.s3.amazonaws.com/com/googlecode/mp4parser/isoparser/1.1.5/isoparser-1.1.5.jar
http://com.mp4parser.s3.amazonaws.com/com/googlecode/mp4parser/isoparser/1.1.6/isoparser-1.1.6.jar
If the problem is potentially in 1.1.3 or 1.1.0 I can add them later. But
the releases listed here were still in my local repo.
Best Regards,
Sebastian
2015-09-29 13:46 GMT+02:00 Episodex<EMAIL_ADDRESS>
Hi @rniebecker https://github.com/rniebecker , can this version be used
with Gradle or you had to have the .jar physically? Can this released be
found somewhere? I'd do the test also on this version.
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-144035171.

Hi,
thanks for uploading these versions. Unfortunately for 1.1.9 I still get out of memory exception. I will try 1.1.1 now, but I would really like to try also the version that works for @rniebecker . I'll let you know if 1.1.1 worked in a moment.

wait wait wait, OutOfMemory? Haven't we had an IOException with mmap failed?
2015-09-29 21:20 GMT+02:00 Episodex<EMAIL_ADDRESS>
Hi,
thanks for uploading these versions. Unfortunately for 1.1.9 I still get
out of memory exception. I will try 1.1.1 now, but I would really like to
try also the version that works for @rniebecker
https://github.com/rniebecker . I'll let you know if 1.1.1 worked in a
moment.
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-144161422.

Same here 1.1.9 is not working. Will test the other versions as well...
I don't know where I got the version <IP_ADDRESS> from tbh, I had it in my download folder, must have downloaded it some weeks ago.
Cheers,
Ralf

Hmmm, I'm getting an access denied error when I try to download one of the other versions, looks like this:
AccessDeniedAccess Denied710A5961BFA26049DLIOmTgAkA1dNfJgeoeXqbKcMUAT1Bi3F5wRQSRwFqc/xuELLJnUjMI1DpwnyOrk/TGNVEiBLB8=
Cheers,
Ralf

It's "mmap failed: ENOMEM (Out of memory)" for video track after I totally removed audiotracks. I described this in detail some posts ago. Maybe one error is being triggered by another or something...

I'm still getting the NoSuchElementException with 1.1.9, nothing has changed for me.

Sorry, the files were not public. They are now readable for everyone.
2015-09-29 21:27 GMT+02:00 rniebecker<EMAIL_ADDRESS>
I'm still getting the NoSuchElementException with 1.1.9, nothing has
changed for me.
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-144164058.

Downloading now, thanks, will let you now ASAP ...

I think we need AspectJ to run this for 1.1.1?
I get an exception: "Failed resolution of: Lorg/aspectj/runtime/reflect/Factory;"
I'll try to download newest AspectJ and then try.

I have aspectj 1.8.2 in my libs folder, getting the same error for 1.1.1.:
E/AndroidRuntime(26280): java.lang.NoSuchMethodError: No interface method sort(Ljava/util/Comparator;)V in class Ljava/util/List; or its super classes (declaration of 'java.util.List' appears in /system/framework/core-libart.jar)
E/AndroidRuntime(26280): 	at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.createStco(DefaultMp4Builder.java:476)
E/AndroidRuntime(26280): 	at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.createStbl(DefaultMp4Builder.java:361)
E/AndroidRuntime(26280): 	at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.createTrackBox(DefaultMp4Builder.java:322)
E/AndroidRuntime(26280): 	at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.createMovieBox(DefaultMp4Builder.java:226)
E/AndroidRuntime(26280): at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.build(DefaultMp4Builder.java:116)
Cheers,
Ralf

Same here. I put aspectj-1.8.7.jar in libs and still same error :(.

Ok, so 1.1.1 and 1.1.2 I can't test because of the error in my last post.
1.1.4 is having the same issue as 1.1.7 and 1.1.9.
Will stick with <IP_ADDRESS> for now.
@Episodex if you have Skype add me, my Skype Id is niewi1, I can sent you the lib then.
Cheers,
Ralf

Some versions accidentally used java 8 API not available on android. I
never published these
I  guess I will need a way to reproduce on my phone to be able to debug and
understand.
Could you perhaps create a  HelloWorld-like activity that performs the
operation you are doing and reliably fails?
rniebecker<EMAIL_ADDRESS>schrieb am Di., 29. Sep. 2015 9:46 PM:

Ok, so 1.1.1 and 1.1.2 I can't test because of the error in my last post.
1.1.4 is having the same issue as 1.1.7 and 1.1.9.
Will stick with <IP_ADDRESS> for now.
@Episodex https://github.com/Episodex if you have Skype add me, my
Skype Id is niewi1, I can sent you the lib then.
Cheers,
Ralf
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-144168451.

I can confirm that it works a lot better with <IP_ADDRESS>. I mean I managed to append tracks totaling over 10 minutes with sound. It still crashes on one of my test sets of videos but I will investigate it later.
Tomorrow I will prepare simplest possible working example with merging two videos where one is over 100 seconds long. Hopefully this will reproduce the problem.

Thank you.  I would really like to make it work.
Episodex<EMAIL_ADDRESS>schrieb am Di., 29. Sep. 2015 10:39 PM:

I can confirm that it works a lot better with <IP_ADDRESS>. I mean I managed to
append tracks totaling over 10 minutes with sound. It still crashes on one
of my test sets of videos but I will investigate it later.
Tomorrow I will prepare simplest possible working example with merging two
videos where one is over 100 seconds long. Hopefully this will reproduce
the problem.
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-144185054.

Hi,
I created and uploaded test project to GIT: https://github.com/Episodex/TestIsoparser
You need to manually change videos list in the code. I left mine which are not meaningful to you at all, but you can see how many I try to merge. If you can't reproduce this with your videos then I will shoot and upload some mine.
Let me know if something is missing in this repo. That was first time I published something to GIT and I'm counting that Android Studio did it job well here ;).

Hey Sebastian,
is this fixed now? And if yes, where/when can I get the new version? ;)
Liebe Grüße nach Hamburg,
Ralf

checkin closed the issue before the release was done.
The staging repository is here: https://oss.sonatype.org/content/repositories/comgooglecodemp4parser-1080
I'll push it to central if you confirm that it's working.

First quick test showed that it didn't help in my case :(. Still NoSuchElementException. I'll try to dig deeper tomorrow also using my small test project.

Ohh my ...
I remove even more clutter and added logging in version 1.1.11
https://oss.sonatype.org/content/repositories/comgooglecodemp4parser-1081
On my Galaxy Note 3 I can no longer reproduce the issue with >=1.1.10
If you'd give 1.1.11 a try and check what the log says (I added logging in the DefaultSampleList in case an IOException is thrown )?

With 1.1.11 I have an error still.
Stacktrace:
DefaultMp4SampleList:java.io.IOException: mmap failed: EPERM (Operation not permitted)
        at java.nio.MemoryBlock.mmap(MemoryBlock.java:125)
        at java.nio.FileChannelImpl.map(FileChannelImpl.java:257)
        at com.googlecode.mp4parser.FileDataSourceImpl.map(FileDataSourceImpl.java:58)
        at com.googlecode.mp4parser.BasicContainer.getByteBuffer(BasicContainer.java:223)
        at com.googlecode.mp4parser.authoring.samples.DefaultMp4SampleList.get(DefaultMp4SampleList.java:176)
        at com.googlecode.mp4parser.authoring.samples.DefaultMp4SampleList.get(DefaultMp4SampleList.java:1)
        at com.coremedia.iso.boxes.mdat.SampleList.get(SampleList.java:41)
        at com.coremedia.iso.boxes.mdat.SampleList.get(SampleList.java:1)
        at java.util.AbstractList$SimpleListIterator.next(AbstractList.java:55)
        at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
        at java.util.AbstractCollection.toArrayList(AbstractCollection.java:349)
        at java.util.AbstractCollection.toArray(AbstractCollection.java:339)
        at java.util.ArrayList.addAll(ArrayList.java:188)
        at com.googlecode.mp4parser.authoring.tracks.AppendTrack.<init>(AppendTrack.java:74)
[...]
Caused by: android.system.ErrnoException: mmap failed: EPERM (Operation not permitted)
        at libcore.io.Posix.mmap(Native Method)
        at libcore.io.ForwardingOs.mmap(ForwardingOs.java:111)
        at java.nio.MemoryBlock.mmap(MemoryBlock.java:122)
        at java.nio.FileChannelImpl.map(FileChannelImpl.java:257)
        at com.googlecode.mp4parser.FileDataSourceImpl.map(FileDataSourceImpl.java:58)
        at com.googlecode.mp4parser.BasicContainer.getByteBuffer(BasicContainer.java:223)
        at  com.googlecode.mp4parser.authoring.samples.DefaultMp4SampleList.get(DefaultMp4SampleList.java:176)
        at   com.googlecode.mp4parser.authoring.samples.DefaultMp4SampleList.get(DefaultMp4SampleList.java:1)
        at com.coremedia.iso.boxes.mdat.SampleList.get(SampleList.java:41)
        at com.coremedia.iso.boxes.mdat.SampleList.get(SampleList.java:1)
        at java.util.AbstractList$SimpleListIterator.next(AbstractList.java:55)
        at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
        at java.util.AbstractCollection.toArrayList(AbstractCollection.java:349)
        at java.util.AbstractCollection.toArray(AbstractCollection.java:339)
        at java.util.ArrayList.addAll(ArrayList.java:188)
        at com.googlecode.mp4parser.authoring.tracks.AppendTrack.<init>(AppendTrack.java:74)

I can test more in the evening using my small app.

Hi,
I just started debugging again (haven't got time before) and I realized that this error is now in different place. Previously it was thrown during building of the movie, and all tracks before this were appended ok. But now it's thrown during appending tracks. The code never reaches building phase. Maybe this will help you? I'll continue with my tests.

OK, I tested it more with my small test app. I looks like the error is not related to the length of single clip, but to the length of total resulting video.
In my test app I get the error during build of video. I also have a Note 3 and for me the border length of video seems to be around 9 minutes. I was testing with clips longer than a minute and around 30 seconds long. I used same clips again and again to build up video long enough. It was ok, till I exceeded around 9 minutes.
Please test with a video of total length of let's say 11 minutes (you can just reuse same clip 20 times).

Ok, I can reproduce as well and I think I understood what's going on.
Dalvik is a 32bit VM even if it runs on a 64Bit Android OS. I'd therefore
conclude that the addressable memory per app is 2GB. Even though I don't
use the heap the dalvik VM nevertheless needs 'address space' to map parts
of the source files (chunks) into the memory with the FileChannel#map
operation. In this case we don't run out of memory in the strict sense -
I'd say we run out of address space!
My first patch reduced the amount of memory map operations and prevented
certain parts to be mapped into memory twice thereby saving address space
and that pushed the point of failure simply to a later point. At that point
I still thought that it would have something to do with mapping files into
memory twice but it had nothing to do with that.
I think that a simple DataSource implementation that reads the file to a
ByteBuffer on the heap on a call to #map will make everything work. I'll
check that tomorrow.
Best Regards,
Sebastian
2015-10-04 14:08 GMT+02:00 Episodex<EMAIL_ADDRESS>
OK, I tested it more with my small test app. I looks like the error is not
related to the length of single clip, but to the length of total resulting
video.
In my test app I get the error during build of video. I also have a Note 3
and for me the border length of video seems to be around 9 minutes. I was
testing with clips longer than a minute and around 30 seconds long. I used
same clips again and again to build up video long enough. It was ok, till I
exceeded around 9 minutes.
Please test with a video of total length of let's say 11 minutes (you can
just reuse same clip 20 times).
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-145340120.

Thank you for looking into this! I'm looking forward to results of your change :).

Thanks for checking this out. Wanted to echo that I'm seeing the same issue running version 1.1.9 of the lib on Android 5.1.1 (Nexus 5).
I get:
"Throwing OutOfMemoryError "pthread_create (1040KB stack) failed: Try again"" shortly before a java.util.NoSuchElementException
which fails on the line: new DefaultMp4Builder().build(result);
when I'm appending videos.
Videos that are only a few seconds long work fine.
I'm only appending 2 1-minute videos, but the rest of my app already uses a fair bit of memory. Might account for why I fail earlier.

Quick update. Didn't completely work cause after writing a sample there's
still a strong reference to it even though there should only be a soft
reference.  Ergo I have to check which object holds it.
I'll find the time tomorrow.
Best Regards, Sebastian
Hannah Mittelstaedt<EMAIL_ADDRESS>schrieb am Di., 6. Okt. 2015
9:31 PM:

Thanks for checking this out. Wanted to echo that I'm seeing the same
issue running version 1.1.9 of the lib on Android 5.1.1 (Nexus 5).
I get:
"Throwing OutOfMemoryError "pthread_create (1040KB stack) failed: Try
again"" shortly before a java.util.NoSuchElementException
which fails on the line: new DefaultMp4Builder().build(result);
when I'm appending videos.
Videos that are only a few seconds long work fine.
I'm only appending 2 1-minute videos, but the rest of my app already uses
a fair bit of memory. Might account for why I fail earlier.
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-145973202.

That took a while.
1.1.13 is here: https://oss.sonatype.org/content/repositories/comgooglecodemp4parser-1082
Please use com.googlecode.mp4parser.FileDataSourceViaHeapImpl for instead of FileDataSourceImpl.
            DataSource dataSource = new FileDataSourceViaHeapImpl(file);
            Movie part = MovieCreator.build(dataSource);

The chunks (group of samples) are loaded on the heap instead 'memorymapped'. The references to the chunks are SoftReference and can be gc'ed if memory is low. Same is true for the memory mapped stuff but unfortunately no one can guarantee that the memory is really freed: See http://bugs.java.com/view_bug.do?bug_id=4724038
I hope it works now for all of you.

I had rather bad day today. Just until this moment! You saved my day :). Now it works for my big videos! Thank you very much for your effort on fixing this! I will have more time for testing this over weekend but it looks very promising now.
Please let us know when 1.1.13 is published and I can switch back to using gradle for isoparser.

I'll publish as soon as it's working. You might add this to your gradle
scripts to use the staging repository:
repositories {        maven {
url
"https://oss.sonatype.org/content/repositories/orgmp4parser-1001/"
}
}
2015-10-07 22:03 GMT+02:00 Episodex<EMAIL_ADDRESS>
I had rather bad day today. Just until this moment! You saved my day :).
Now it works for my big videos! Thank you very much for your effort on
fixing this! I will have more time for testing this over weekend but it
looks very promising now.
Please let us know when 1.1.13 is published and I can switch back to using
gradle for isoparser.
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/109#issuecomment-146312680.

If I don't hear anything it's typically a good sign. Just send me an email if you need a release pushed to central. The staging repository won't be there for long as sonatypes deletes them after some time


Client connection leak with chunked and compressed responses

Version: 3.0.7
TL/DR: dropwizard-default HTTP client leaks connections if the response is both chunked and compressed
Reproduction steps: run this app: https://github.com/eddsteel/zipped-chunked
Hi folks,
I'm seeing a connection leak in the HTTP client of a dropwizard app when calling another dropwizard app if the response is both chunked and compressed. We noticed it in the kotlin-based dropwizard 3.0 client app when upgrading the kotlin-based dropwizard server from DW 2.1 to 3.0 but I think the issue could be older (I'll explain). It seems to be 100% of the request connections are held open (in our dev environment metrics we see a 1:1 correlation of requests to a specific endpoint and leased connections, until the client app falls over).
I have reproduced the issue in a Java application with DW 3.0.7, using a single application as both client and server. I've tried to simplify/remove as much of our code as possible leaving only dropwizard core.
More background: the connection leak was discovered in the client after upgrading the server. When I investigated locally I discovered that the "working" combination of 3.0 client and 2.1 server was not actually using gzip encoding, and the problem only appeared with the 3.0 server when the client was using compression. Configuring it not to use gzip also fixed the problem with connections leaking. Since the 2.1/3.0 combo never used gzip it's possible the problem would exist with 2.1 too.
Reproduction
Anyway, to focus on the reproducible case with the latest v3 DW as both client and server. It should behave the same way as our systems as far as client creation and chunked data handling go, but with a lot of layers removed. The app has two endpoints to simulate server and client. POST / produces a ChunkedOutput response (just one chunk). GET /check will call POST / 1025 times and read/parse the full body. If compression is enabled (via application config) the 1025th attempt will fail due to an exhausted connection pool. None of the connections have been released.
[nix-shell:~/src/zipped-chunked]$ java -Ddw.client.compress=false -jar target/webapp-1.0-SNAPSHOT.jar server config.yml >/dev/null &
[1] 28790

[nix-shell:~/src/zipped-chunked]$ curl http://localhost:8080/check
done
[nix-shell:~/src/zipped-chunked]$ kill 28790

[nix-shell:~/src/zipped-chunked]$ java -Ddw.client.compress=true -jar target/webapp-1.0-SNAPSHOT.jar server config.yml >/dev/null &

[nix-shell:~/src/zipped-chunked]$ curl http://localhost:8080/check
{"code":500,"message":"Connections exhausted"}
[nix-shell:~/src/zipped-chunked]$ curl -v http://localhost:8080 -d {}
*   Trying [::1]:8080...
* Connected to localhost (::1) port 8080
> POST / HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/8.4.0
> Accept: */*
> Content-Length: 2
> Content-Type: application/x-www-form-urlencoded
>
< HTTP/1.1 200 OK
< Date: Thu, 06 Jun 2024 16:44:07 GMT
< Content-Type: application/json
< Vary: Accept-Encoding
< Transfer-Encoding: chunked
<
{"label":"test","integers":[1,2,3],"integerCount":3}
* Connection #0 to host localhost left intact

[nix-shell:~/src/zipped-chunked]$ curl --compressed -v http://localhost:8080 -d {}
*   Trying [::1]:8080...
* Connected to localhost (::1) port 8080
> POST / HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/8.4.0
> Accept: */*
> Accept-Encoding: deflate, gzip
> Content-Length: 2
> Content-Type: application/x-www-form-urlencoded
>
< HTTP/1.1 200 OK
< Date: Thu, 06 Jun 2024 16:44:52 GMT
< Content-Type: application/json
< Vary: Accept-Encoding
< Content-Encoding: gzip
< Transfer-Encoding: chunked
<
{"label":"test","integers":[1,2,3],"integerCount":3}
* Connection #0 to host localhost left intact

Investigation
As far as I can tell both the ChunkedOutput and ChunkedInput objects are correctly closed in the application code. The ChunkedInput with try with resources, and the ChunkedOutput directly. In the compressed=false case, the EOFSensorInputStream's EOF watcher's eofDetected method is called and the connection is released (here). It seems that when a GZIPInputStream is involved, -1 is never received and the connection is never released.
I took a trace dump from checkEOF for both versions and also logged each byte received from the breakpoint.
compressed
"pool-3-thread-7 - GET /check@4758" prio=5 tid=0x1b nid=NA runnable
  java.lang.Thread.State: RUNNABLE
	  at org.apache.hc.core5.http.io.EofSensorInputStream.checkEOF(EofSensorInputStream.java:195)
	  at org.apache.hc.core5.http.io.EofSensorInputStream.read(EofSensorInputStream.java:119)
	  at java.util.zip.CheckedInputStream.read(CheckedInputStream.java:59)
	  at java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:266)
	  at java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:258)
	  at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:164)
	  at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:79)
	  at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:91)
	  at org.apache.hc.client5.http.entity.GZIPInputStreamFactory.create(GZIPInputStreamFactory.java:61)
	  at org.apache.hc.client5.http.entity.LazyDecompressingInputStream.initWrapper(LazyDecompressingInputStream.java:51)
	  at org.apache.hc.client5.http.entity.LazyDecompressingInputStream.read(LazyDecompressingInputStream.java:57)
	  at org.glassfish.jersey.message.internal.EntityInputStream.read(EntityInputStream.java:69)
	  at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream.read(ReaderInterceptorExecutor.java:263)
	  at org.glassfish.jersey.client.ChunkedInput$AbstractBoundaryParser.readChunk(ChunkedInput.java:112)
	  at org.glassfish.jersey.client.ChunkedInput.read(ChunkedInput.java:471)
	  at com.eddsteel.resources.ClientResource.callServer(ClientResource.java:30)

This gets the following bytes: 31, 16, 139, 8, 0, 6, 57, which seems to only be the GZIP header from GZIPInputStream.readHeader in the constructor. However the application code is eventually getting the full body and parsing the JSON.
not compressed
This code gets the full body, ending with a -1.
"pool-3-thread-7 - GET /check@4741" prio=5 tid=0x1b nid=NA runnable
  java.lang.Thread.State: RUNNABLE
	  at org.apache.hc.core5.http.io.EofSensorInputStream.checkEOF(EofSensorInputStream.java:197)
	  at org.apache.hc.core5.http.io.EofSensorInputStream.read(EofSensorInputStream.java:119)
	  at org.glassfish.jersey.message.internal.EntityInputStream.read(EntityInputStream.java:69)
	  at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream.read(ReaderInterceptorExecutor.java:263)
	  at org.glassfish.jersey.client.ChunkedInput$AbstractBoundaryParser.readChunk(ChunkedInput.java:112)
	  at org.glassfish.jersey.client.ChunkedInput.read(ChunkedInput.java:471)
	  at com.eddsteel.resources.ClientResource.callServer(ClientResource.java:30)

Bytes received: (the full expected JSON + -1): 123, 34, 108, 97, 98, 101, 108, 34, 58, 34, 116, 101, 115, 116, 34, 44, 34, 105, 110, 116, 101, 103, 101, 114, 115, 34, 58, 91, 49, 44, 50, 44, 51, 93, 44,  34, 105, 110, 116, 101, 103, 101, 114, 67, 111, 117, 110, 116, 34, 58, 51, 125, 13, 10, -1
I think either the way the streams are layered, or the behavior of LazyDecompressingInputStream, is causing the EofSensorInputStream to be bypassed.
Next steps
The code at fault seems to be within Apache HTTPComponents or possibly how Jersey configures it, but I wanted to ask here first since you're the experts in combining these libraries:

Is this familiar to anyone?
Is there anything wrong in the example code wrt ChunkedInput/ChunkedOutput or compression configuration?
Should I be directly closing/ releasing connections somehow, and not relying on the EOF detection?
Does it seem like a bug?
Anything more I should do to isolate it?
Should I report to Apache folks directly?

I've not had any luck with any of the other jersey connector providers so far (even making a request to this endpoint successfully), but it might be an option.

Hi @eddsteel. This seems to be a Jersey issue. As you've correctly pointed out, the Apache resources will get cleaned up when then entity stream gets closed.
The specification of Response#readEntity(GenericType<T>) states:

Unless the supplied entity type is an input stream, this method automatically closes the an unconsumed original response entity data stream if open.

You're not directly using an InputStream but the stream is exposed in the ChunkedInput and hence should be closed when closing the ChunkedInput. Read entities should be closed, if they are not instances of Closable or Source. However, ChunkedInput is Closable, so the call to close() correctly should be deferred to allow chunked reads. But the Jersey ReaderInterceptorExecutor disables closing the stream. So the resources of the Apache client cannot be released correctly.
I'd suggest to open a Jersey issue to expose the underlying entity input stream. This comment states why the close() method is forbidden at the moment, but when exposing an entity holding an input stream, the stream should be closable IMHO.
But you also have an option to work around your current problem: When using the Response object and reading the entity in a second call, you can utilize Response#close() to free the resources. This would look somewhat like this in your client implementation:
Response resp = client
        .target(endpoint)
        .request()
        .post(Entity.entity("{}", MediaType.APPLICATION_JSON_TYPE));
ChunkedInput<EndpointResponse> entity = resp.readEntity(chunkedInputGenericType);

// ...

// after fully reading the entity
resp.close();

Jersey released the fix with the versions 2.45, 3.0.15, 3.1.8, 4.0.0-M2.


fix: determine type of combinedKeywords

Resolves #233

Checklist

[ ] run npm run test and npm run benchmark
[ ] tests and/or benchmarks are included
[ ] documentation is changed or added
[ ] commit message and code follows the Developer's Certification of Origin
and the Code of conduct

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 16 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
420

Relevant Lines:
420

💛  - Coveralls

Looking at the change, this seems counterintuitive. Why specifying the same thing twice?

I just implemented it to fix the reported issue.

Looking at it, it doesn't seems something we should fix. I've actually never used type with anyOf.

I've not found any JSONSchema specs that actually requires "type" with oneOf.. maybe we should consider raising #233 on AJV side?

Closing due to inactivity.

I've not found any JSONSchema specs that actually requires "type" with oneOf/anyOf.. maybe we should consider raising #233 on AJV side?

I've been waiting for some reply on this.. I have still a lot of spam in my logs for this issue..

I've been waiting for some reply on this.. I have still a lot of spam in my logs for this issue..

https://json-schema.org/understanding-json-schema/reference/combining#factoringschemas
type is not a requirement when using oneOf, anyOf or allOf.
All the additional properties when using oneOf, anyOf or allOf should be the common part. I don't think it is good to have union type there.


how to handle with the 48k wavs

if wavs sample rate is 48k,  how to set the upsample parameters?
when wavs sampler rate is 48k, the hop size is 600.the config in code is only upsampled 256.so it will run error when calculate the loss.

I'm able to train and inference & in 44100Hz from this config:
{
    "resblock": "1",
    "num_gpus": 3,
    "batch_size": 8,
    "learning_rate": 0.0002,
    "adam_b1": 0.8,
    "adam_b2": 0.99,
    "lr_decay": 0.9995,
    "seed": 1234,

    "upsample_rates":        [ 8, 8, 2, 2, 2],
    "upsample_kernel_sizes": [16,16, 4, 4, 4],
    "upsample_initial_channel": 512,
    "resblock_kernel_sizes": [3,7,11],
    "resblock_dilation_sizes": [[1,3,5], [1,3,5], [1,3,5]],
    "discriminator_periods": [3, 5, 7, 11, 17, 23, 37],

    "segment_size": 16384,
    "num_mels": 80,
    "num_freq": 1025,
    "n_fft"   : 2048,
    "hop_size": 512,
    "win_size": 2048,

    "sampling_rate": 44100,

    "fmin": 20,
    "fmax": 11025,
    "fmax_for_loss": null,

    "num_workers": 4,

    "dist_config": {
        "dist_backend": "nccl",
        "dist_url": "tcp://localhost:54321",
        "world_size": 1
    }
}

I'm not able to train with the hop size 512 when the sampling rate is 44100, but it works when the hop size is 441.

@Grace9994 could you share your config?


Same editor appears twice in tabs

Add a large-ish image to a repo (1080p)
Open SCM view
Click twice in untracked image

Two tabs will appears for that same file:

Git bisect shows me that the cause was this: https://github.com/microsoft/vscode/pull/88183

This was actually a bug in the text diff editor and the behaviour was right. I pushed a fix.


youtube video does not rotate or does not fill the screen after rotation

youtube video does not rotate or does not fill the screen after rotation

some video can't

youtube video does not rotate or does not fill the screen after rotation

well, if it's not working, try refresh the page. It's probably the same problem as this issue https://github.com/VideoRoll/VideoRoll/issues/50#issue-1358973054
The second issue probably because of the size of the video itself, then u need to use zoom function to resolve it.


Make it possible to enable encryption at host for a VM

Description
This adds a method to enable Encryption at Host when provisioning a VM.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

@microsoft-github-policy-service agree [company="Vespa.ai"]

@microsoft-github-policy-service agree company="Vespa.ai"

@weidongxu-microsoft Yeah, it's GAed:
https://azure.microsoft.com/en-us/updates/general-availability-encryption-at-host-for-premium-ssd-v2-and-ultra-disks/
@freva Thanks for the contribution. We'll probably need an update option as well. Let me add those in this PR.

Hi @freva , 2.35.0 has released with encryption at host support.

Thanks, @XiaofeiCao! :tada: :rocket:


Will this plugin be updated to support rootless?

https://theapplewiki.com/wiki/Rootless

Supported just now.


What are the dimensions of the actual card (not the pcb)? / no mechanical drawings

Saw the Framework on HN the other day, very interested. As someone who is into electronics, I'm in love with this whole "design your own expansion card" thing. However- there are a couple of snags I've ran into-

It isn't immediately obvious how far the USB-C plug should stick out of the card. This would be very helpful info for using different parts for the USB connector, which is nice for flexibility (i'm thinking this guy should allow for taller components) and sourcing.

There aren't any mechanical drawings of the card itself. The 3D files are great, but a diagram with all the critical external dimensions including stuff like the rail would be very handy for designing a case from scratch in whatever tool we want.

How tall are the feet of the laptop (for any potential sticky outy bits)

This extra documentation would be awesome, I've got some ideas that would be really helped out.

This is such an important open issue. I might be interested with doing stuff with these cards and I've done PCB design professionally but with the limited amount of info it is more difficult than it has to be.
There should be more measurements in this repo. The above mentioned dimensions are missing/unclear but also the outer dimensions of the laptop bays are not provided.


Fixed vector search with tensor_db exec_option without indra installed

🚀 🚀 Pull Request
Impact

[ ] Bug fix (non-breaking change which fixes expected existing functionality)

Description
Without libdeeplake (indra) installed, for example on Windows, vector search causes exception when exec_option is "tensor_db"
Additional Context
Traceback of exception without this fix:
Traceback (most recent call last):
File "C:\Program Files\Python310\lib\contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "E:\venv\lib\site-packages\llama_index\callbacks\base.py", line 133, in as_trace
yield
File "E:\venv\lib\site-packages\llama_index\indices\query\base.py", line 23, in query
response = self._query(str_or_query_bundle)
File "E:\venv\lib\site-packages\llama_index\query_engine\retriever_query_engine.py", line 147, in _query
nodes = self.retrieve(query_bundle)
File "E:\venv\lib\site-packages\llama_index\query_engine\retriever_query_engine.py", line 107, in retrieve
nodes = self._retriever.retrieve(query_bundle)
File "E:\venv\lib\site-packages\llama_index\indices\base_retriever.py", line 21, in retrieve
return self._retrieve(str_or_query_bundle)
File "E:\venv\lib\site-packages\llama_index\indices\vector_store\retrievers\retriever.py", line 85, in _retrieve
query_result = self._vector_store.query(query, **self._kwargs)
File "E:\venv\lib\site-packages\llama_index\vector_stores\deeplake.py", line 188, in query
data = self.vectorstore.search(
File "E:\venv\lib\site-packages\deeplake\core\vectorstore\deeplake_vectorstore.py", line 433, in search
return vector_search.search(
File "E:\venv\lib\site-packages\deeplake\core\vectorstore\vector_search\vector_search.py", line 51, in search
return EXEC_OPTION_TO_SEARCH_TYPE[exec_option](
File "E:\venv\lib\site-packages\deeplake\core\vectorstore\vector_search\indra\vector_search.py", line 44, in vector_search
return vectorstore.indra_search_algorithm(
File "E:\venv\lib\site-packages\deeplake\core\vectorstore\vector_search\indra\search_algorithm.py", line 41, in search
from indra import api  # type: ignore
ModuleNotFoundError: No module named 'indra'

 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.

@proDOOMman thx for contributing! lgtm

hey @proDOOMman thank you so much for the fix! Do you mind sending over a twitter handle if you have any so we can mention you in the next release notes? :)

hey @proDOOMman thank you so much for the fix! Do you mind sending over a twitter handle if you have any so we can mention you in the next release notes? :)
I haven't twitter handle )


[Question] Could you please share the extracted video frames in SEED-Bench by extract_video_frames.py

Question
The raw videos are too large to download

I guess there are some restrictions in terms of the dataset license? It may be better to consult the authors of SEED-Bench: https://github.com/AILab-CVC/SEED-Bench
And please let me know if there are convenient ways of downloading provided by the dataset authors and I am more than happy to include in the README. Thanks.

@yix-chen Hi! Have you solved your problem? Could you share me a link to download the extracted video frames in SEED-Bench by extract_video_frames.py? Thank you

@yix-chen Hi! Have you solved your problem? Could you share me a link to download the extracted video frames in SEED-Bench by extract_video_frames.py? Thank you


r.KMvalues.filter_by_organism  seems to make to difference between KKM and KM

Hello,
I have an impression that in some cases I got KKM in addition to KM while doing the following:
brenda = BRENDA("brenda_download_01mar22.txt") r = brenda.reactions.get_by_id('<IP_ADDRESS>') tmp = [] tmp.append(r.KMvalues.filter_by_organism('Homo sapiens'))
As a part of the output of the code above, I see the following:
{'value': 4731.6,     'species': ['Homo sapiens'],     'meta': '#80# wild-type enzyme, pH 8.0, 37Â°C <135,136>',     'refs': []},    {'value': 4731.6,     'species': ['Homo sapiens'],     'meta': '#80# wild-type enzyme, pH 8.0, 37Â°C <135,136>',     'refs': []},    {'value': 3404.2,     'species': ['Homo sapiens'],     'meta': '#80# enzyme mutant P156A, pH 8.0, 37Â°C <135>',     'refs': []},    {'value': 1497.6,     'species': ['Homo sapiens'],     'meta': '#80# enzyme mutant P303A, pH 8.0, 37Â°C <135>',     'refs': []}]}
When I grep brenda_download_01mar22.txt for these numbers, e.g.
grep "4731.6" brenda_download_01mar22.txt
I get:
KKM     #80# 4731.6 {NAD+}  (#80# wild-type enzyme, pH 8.0, 37°C <135,136>)
KKM     #80# 4731.6 {NAD+}  (#80# wild-type enzyme, pH 8.0, 37°C <135,136>)
Biochim. Biophys. Acta (1973) 309, 289-295. {Pubmed:4731963} (c)
(1973) 309, 307-317. {Pubmed:4731964}
{Pubmed:4731965}
tomatoes. Biochim. Biophys. Acta (1973) 309, 363-369. {Pubmed:4731966}
(2002) 132, 935-943. {Pubmed:12473196}
Mycoplasma pneumoniae. Protein J. (2008) 27, 303-308. {Pubmed:18473156}
and similarly only KKM on
grep "3404.2" brenda_download_01mar22.txt
KKM     #80# 3404.2 {NAD+}  (#80# enzyme mutant P156A, pH 8.0, 37°C <135>) <135>
Biochem. Parasitol. (1999) 99, 167-181. {Pubmed:10340482} (c)
and similarly only KKM on
grep "1497.6" brenda_download_01mar22.txt
KKM     #80# 1497.6 {NAD+}  (#80# enzyme mutant P303A, pH 8.0, 37°C <135>) <135>
Biofuels (2019) 12, 208. {Pubmed:31497068}
Biofuels (2019) 12, 208. {Pubmed:31497068}
Chem. Commun. (Camb. ) (2004) 5, 592-3. {Pubmed:14973623}
(2013) 169, 77-87. {Pubmed:23149716}
{Pubmed:23149756}
37, 230-237. {Pubmed:14972646}
J. Antimicrob. Agents (2011) 37, 585-587. {Pubmed:21497068}
reticulum. Eur. J. Biochem. (1975) 51, 353-361. {Pubmed:1149736} (c)
Biosci. (2004) 9, 1944-1953. {Pubmed:14977600}
1016-1025. {Pubmed:11497462}
54, 175-184. {Pubmed:1149746} (c)
erythrocytes. Anal. Biochem. (1984) 141, 510-514. {Pubmed:6149706} (c)
Also, I noticed that if I comment out "[(BRENDA_KMs < 1000) & (BRENDA_KMs >= 0)]" of the example from Readme:
BRENDA_KMs = np.array([v for r in brenda.reactions
                       for v in r.KMvalues.get_values()])
values = BRENDA_KMs #[(BRENDA_KMs < 1000) & (BRENDA_KMs >= 0)]
import matplotlib.pyplot as plt

plt.hist(values)
plt.title(f'Median KM value: {np.median(values)}')
plt.xlabel('KM (mM)')
plt.show()
print(f'Minimum and maximum values in database: {values.min()} mM, {values.max()} mM')

Then min and max from Brenda txt file downloaded on 1st Mar 2022 are:
Minimum and maximum values in database: -1995000000.0 mM,<PHONE_NUMBER>.0 mM
which don't look like correct Km mM values
Am I missing something or is it a bug?
Thank you in advance for addressing this issue

Hi @PolinaShichkova ,
thanks for reporting this issue, by looking at the relevant part of the code:
https://github.com/Robaina/BRENDApyrser/blob/1b2f08f76040ff699f1c8876d9d30f1735f3fc83/brendapyrser/parser.py#L300
I think that your are right. The regex pattern in that case is picking up both "KM" and "KKM".
I'll fix it up and let you know,
Cheers

So, I think the issue should be fixed by the latest commit. KMs should be of course non-negative since they are concentrations. The large negative values you were observing were due to the same problem (KKM + KM). However, I still get a minimum value of -999 for the set of all KM's in BRENDA. I checked this and this value is included in the database file.
Perhaps is BRENDA's way to include an undefined KM value... For now it would make sense to restrict values to be non-negative...

Thank you very much! I will test it out soon. Meanwhile, I am also working on some (less time-efficient than yours) regex based parser-script just to be double-sure (and to also extract some other stuff specific to my use case).

For now it would make sense to restrict values to be non-negative...
-- Yes, I know these -999 are in the source file too, I'm filtering them out

Thanks a lot!

Thank you!

Hello,
I did a quick test and I think the issue has been fixed, but apparently it seems like there are still 101 Km entries with the value higher than 1000, even in the Brenda source file. So that I went to Brenda website to check one of the enzymes with such value (EC <IP_ADDRESS>, https://www.brenda-enzymes.org/enzyme.php?ecno=<IP_ADDRESS> ), and it was indeed even there! Then I checked the paper referenced in Brenda for this particular value (https://www.brenda-enzymes.org/literature.php?e=<IP_ADDRESS>&r=689887), and the units in the source publication didn't match Brenda's units! uM (micro) in source paper (https://link.springer.com/article/10.1007/s10930-008-9131-6/tables/1), mM in Brenda. I have created a Brenda-support ticket on their website for that.
Also just in case, if it may be useful for anyone in the future, I like testing regex stuff with https://regex101.com/
Thank you!

Wow, thanks for letting us know. Crazy that there are unit mismatches in the database... one must be careful here


Test Explorer and GitHub Explorer Stuck in Discovery Mode

Type: Bug
Since installing the latest update (1.96), both the Test Explorer and GitHub Explorer are stuck in discovery mode and do not complete. Also, not sure if it's related, but the Dev Container I've been running for months has completely died.

Do the Test Explorer and GitHub Explorer work locally and in WSL?

@chrmarti I am experiencing the same issue than @graysddoman and I can confirm that the problem seems to happen in devcontainer, but not in WSL. Also running VSCode 1.96.

Do the Test Explorer and GitHub Explorer work locally and in WSL?

They appear to work locally and in WSL.
The issue appears when I try to work with a Dev Container. The Dev Container worked perfectly fine for months, however this has become unstable since installing the update. I'm using WSL with Ubuntu 24.04. Others in the team are experiencing the same issue as well.

This is the output from python console:
2024-12-18 09:49:51.718 [info] Discover tests for workspace name: all - uri: /workspaces/project-name
2024-12-18 09:49:51.719 [info] Running discovery for pytest using the new test adapter.
2024-12-18 09:49:51.719 [info] Discover tests for workspace name: project1 - uri: /workspaces/project-name/src/project1
2024-12-18 09:49:51.719 [info] Discover tests for workspace name: project1_api - uri: /workspaces/project-name/src/project1_api
2024-12-18 09:49:51.719 [info] Running discovery for pytest using the new test adapter.
2024-12-18 09:49:51.719 [info] Discover tests for workspace name: project2 - uri: /workspaces/project-name/src/project2
2024-12-18 09:49:51.719 [info] Running discovery for pytest using the new test adapter.
2024-12-18 09:49:51.719 [info] Discover tests for workspace name: project3 - uri: /workspaces/project-name/src/project3
2024-12-18 09:49:51.719 [info] Running discovery for pytest using the new test adapter.
2024-12-18 09:49:51.719 [info] Discover tests for workspace name: project4 - uri: /workspaces/project-name/src/project4
2024-12-18 09:49:51.719 [info] Running discovery for pytest using the new test adapter.
2024-12-18 09:49:51.719 [info] Discover tests for workspace name: project5 - uri: /workspaces/project-name/src/project5
2024-12-18 09:49:51.719 [info] Running discovery for pytest using the new test adapter.
2024-12-18 09:53:28.441 [info] Discover tests for workspace name: all - uri: /workspaces/project-name
2024-12-18 09:53:28.441 [info] Running discovery for pytest using the new test adapter.
2024-12-18 09:53:28.441 [info] Discover tests for workspace name: project1 - uri: /workspaces/project-name/src/project1
2024-12-18 09:53:28.441 [info] Discover tests for workspace name: project1_api - uri: /workspaces/project-name/src/project1_api
2024-12-18 09:53:28.441 [info] Running discovery for pytest using the new test adapter.
2024-12-18 09:53:28.441 [info] Discover tests for workspace name: project2 - uri: /workspaces/project-name/src/project2
2024-12-18 09:53:28.441 [info] Running discovery for pytest using the new test adapter.
2024-12-18 09:53:28.441 [info] Discover tests for workspace name: project3 - uri: /workspaces/project-name/src/project3
2024-12-18 09:53:28.441 [info] Running discovery for pytest using the new test adapter.
2024-12-18 09:53:28.441 [info] Discover tests for workspace name: project4 - uri: /workspaces/project-name/src/project4
2024-12-18 09:53:28.441 [info] Running discovery for pytest using the new test adapter.
2024-12-18 09:53:28.441 [info] Discover tests for workspace name: project5 - uri: /workspaces/project-name/src/project5
2024-12-18 09:53:28.441 [info] Running discovery for pytest using the new test adapter.
2024-12-18 09:53:28.448 [error] Test discovery already in progress, not starting a new one.
2024-12-18 09:53:28.448 [error] Test discovery already in progress, not starting a new one.
2024-12-18 09:53:28.448 [error] Test discovery already in progress, not starting a new one.
2024-12-18 09:53:28.448 [error] Test discovery already in progress, not starting a new one.
2024-12-18 09:53:28.448 [error] Test discovery already in progress, not starting a new one.
2024-12-18 09:53:28.448 [error] Test discovery already in progress, not starting a new one.
2024-12-18 09:53:28.448 [error] Test discovery already in progress, not starting a new one.

and it stays here forever

I am experiencing the same symptoms and same Pytest discovery log file as above. This coincided with an update to macOS Sequoia the night before.
I have tried clearing ~/Library/Application Support/Code and ~/.vscode, and all caches in the project workspace and restarting my computer.
Also, there are other extensions that don't seem to work (never return results to UI) such as Github Copilot chat, running the Python Debugger, the Source Control commit graph, etc.

Actually seems to be related to the vscode-python extension, check this issue: https://github.com/microsoft/vscode-python/issues/24613 - switching to the pre-release fix the hanging issue in the Test Explorer for me.

Could others seeing this also try with the latest pre-release of the Python extension and let us know if that fixes it? Thanks! /cc @eleanorjboyd

Switching to the pre-release version also stops the hanging issue for me. Thank you! /cc @eleanorjboyd

Great, thanks! Closing as duplicate of https://github.com/microsoft/vscode-python/issues/24613.
If the Python extension is installed automatically with the Dev Container you can add the following to the devcontainer.json to automatically get the pre-release version next time you rebuild:
	"customizations": {
		"vscode": {
			"extensions": [
				"ms-python.python@prerelease"
			]
		}
	}


UAVCAN Compass Yaw

With PX4 and a Zubax GPS it is impossible to have the flight control yawed and the compass facing straight. If the flight controller is yawed the compass has to be yawed in the same direction for a proper calibration and flight.

@mhkabir @pavel-kirienko Can you comment on that?

Yes, the description is correct.
If we want to fix this, we'll need to add necessary transformation of the magnetic field vector in the UAVCAN --> uORB compass bridge.

New API fixed this sometime back.


Add a FTE button on the Project detail Page

Describe the task
Add a button for the FTE page on the project details page.
Expected behavior
Users should be able to go to the project FTE page directly from the Project details page. The button style should be similar to the other button on the page.
Rough design:

The FTE button has been added as mentioned in https://github.com/ColoredCow/portal/pull/1172
Refer screenshot

closing as task is implemented


Split Payments Extension Not Firing Split Events on core api send_events

Commit version: e6bf9797a4f5e04c75d341256274deb47e352d0f
This is not happening for me.
When the source wallet receives a payment, the extension will automatically split the corresponding values to every wallet
The invoice paid event never gets fired, even though the listener is registered...
what I am expecting is that when core api calls the send_events method
    async def send_events():
        print("send_events")
        try:
            async for typ, data in event_to_send:
                message = [f"event: {typ}".encode("utf-8")]

                if data:
                    jdata = json.dumps(dict(data._asdict(), pending=False))
                    message.append(f"data: {jdata}".encode("utf-8"))

                yield b"\n".join(message) + b"\r\n\r\n"
        except trio.Cancelled:
            return

that the splt payment on payment event is fired
async def on_invoice_paid(payment: Payment) -> None:
    print(f"on_invoice_paid: {payment}")
    if "splitpayments" == payment.extra.get("tag") or payment.extra.get("splitted"):
        # already splitted, ignore
        return

This is not occurring, the transaction settles as if there were no registered splits:
check_invoice_status services
 - marking 'in' lntx_2iBumwlR97nqZZ5W54l7pAX as not pending anymore: settled

What is the funding source?

What is the funding source?

LNPay

For LNPay you must set up webhooks manually otherwise none of the reactive things will work. Please see the docs somewhere I don't remember for more information.

https://github.com/lnbits/lnbits-legend/blob/master/docs/guide/wallets.md#lnpay

For LNPay you must set up webhooks manually otherwise none of the reactive things will work. Please see the docs somewhere I don't remember for more information.

HELPFUL! Will attempt and reopen a different issues if I find.


Placeholder API doesn't work with ask message

What is your Quests version / build number (do not say "latest")?
Quests Build [# 375]
Describe the problem and how to replicate it.
Using the lastest version of Citizens, Quests, and Placeholder API with correct modules on a paper server. I am unable to use placeholders from placeholder api such as %player_name%, or %player_displayname% in the ask-message for a quest
below is an example

These are the logs
log.txt
Any console errors to share?
There is no console errors other than these unrelated PlaceholderAPI Warnings
[23:31:34 WARN]: [PlaceholderAPI] Cannot load expansion playerstats due to a missing plugin: PlayerStats
[23:31:34 WARN]: [PlaceholderAPI] Cannot load expansion playertime due to a missing plugin: PlayerTime

If applicable, can you provide an example quest from quests.yml?
default2:
    name: Mob Hunter
    ask-message: <yellow>%player_name%, Mine <pink>2<yellow> blocks of <pink>Iron Ore<yellow>.
    finish-message: §eExcellent. Here is a §dDiamond Sword§e.
    npc-giver-uuid: 645d5c3d-e0c4-4bdc-8b0d-85c0adcabc11
    stages:
      ordered:
        '1':
          mobs-to-kill:
          - Pig
          mob-amounts:
          - 3
          finish-event: NiceFinish
          death-event: DeathFail
        '2':
          mobs-to-kill:
          - Zombie
          mob-amounts:
          - 2
          finish-event: NiceFinish
          death-event: DeathFail
        '3':
          mobs-to-kill:
          - Skeleton
          mob-amounts:
          - 1
          death-event: DeathFail
    rewards:
      items:
      - ==: org.bukkit.inventory.ItemStack
        v: 3120
        type: DIAMOND_SWORD
      quest-points: 1
      exp: 100
    planner:
      override: false
    options:
      allow-commands: true
      allow-quitting: true
      ignore-silk-touch: true
      use-parties-plugin: true
      share-progress-level: 1
      same-quest-only: true
      share-distance: 0.0
      handle-offline-players: false
      ignore-block-replace: true

Thanks for the report. What version of Minecraft are you using?

@CorruptCreeper I've created a 1.19.2 server with the exact same PaperMC, Quests, PlaceholderAPI, and Citizens builds as your log, then added the example quest verbatim, but the placeholder works fine for me. Beyond removing those other extensions and telling me which system OS you're using, I'm at a loss on how to proceed.

Blitz from the HelpChat discord had this suggestion:

Get them to run /papi dump when the server is running and the issue is happening and ask them to send the generated link. Also ask them to check at the same time if /papi parse me %player_name% returns the player name or returns back just %player_name%

Hi @PikaMug the /papi parse me %player_name% returns the player name. and the /papi dump returned this (https://paste.helpch.at/esitabutoj)

In your example quest, try replacing the ask-message and finish-message with:
ask-message: '<yellow>%player_name%, Mine <pink>2<yellow> blocks of <pink>Iron Ore<yellow>.'
finish-message: '<yellow>Excellent. Here is a <pink>Diamond Sword<yellow>.'

My thoughts being single quotes might be needed, and Quests does not support the § character.

Even using those same ask message and finish message this is the result.

Would you be willing to rebuild the Quests Jar file? It may be the problem.

You can get the latest builds at https://ci.codemc.io/job/PikaMug/job/Quests/


Websocket type inference not on parity with normal routes

Hello, when using plugins like the official bearer plugin, you can access bearer object in request context in http routes and it is type-safe and all, but not when you use websockets even though the object is actually there, simple demonstration :
export const app = new Elysia()
    .derive((app) => ({ someKey: "someValue" }))
    .get("/", (ctx) => {
        console.log(ctx.someKey, typeof ctx.someKey); // Output : someValue string
    })
    .ws("/ws", {
        open(ws) {
            console.log(ws.data.someKey, typeof ws.data.someKey); // Output : someValue string, but IDE complains
        },
    })
    .listen(3000);

IDE complains that property someKey doesn't exist in ws.data  even though it exists
Property 'someKey' does not exist on type '{ body: unknown; query: Record<string, string | null>; params: never; headers: Record<string, string | null>; cookie: Record<string, Cookie<any>>; set: { ...; }; path: string; request: Request; store: {}; }'.
JSON.stringify(ws.data, null, 2) output :
{
  "request": {},
  "store": {},
  "qi": -1,
  "path": "/ws",
  "set": {
    "headers": {},
    "status": 200
  },
  "headers": {
    "host": "localhost:3000",
    "connection": "Upgrade",
    "upgrade": "websocket",
    "sec-websocket-version": "13",
    "sec-websocket-key": "uhTheQDaIsRhC2tY4TlBhg=="
  },
  "cookie": {},
  "query": {},
  "someKey": "someValue"
}

My environment :
Bun : v1.0.3
Elysia : 0.7.15

Doesn't seem to happen on the latest version (0.7.26).

Closing as assuming that the issue is fixed in some version.
Feels free to reopen if the issue stills persists

can confirm it's working, good work thank you :+1:


problem in calculating inverse of complex matrix with cupy.linalg.pinv

Hello,
I am using cupy.linalg.pinv to calculate inverse of complex matrix. And the result is different from numpy.linalg.pinv, only imaginary part.
I know that if
 is the SVD of A, then pseudoinverse is .
And there is no code in the cupy source to consider the conjugate transpose U * or V*.
I think you need to add
a = a.conj()
before calculating svd of A or
return core.dot(vt.T.conj(), s1[:, None] * u.T.conj())
Thank you.

@YoujinShin Thank you for raising an issue, do you have interest in sending a PR?

Ok, I will send PR.

Thanks!

This issue has been fixed in #2657. Thanks @YoujinShin for raising an issue and pointing out the root cause.


Add attribute for custom path to wasm_bindgen

This adds two new attributes: wasm_bindgen and wasm_bindgen_futures, which allow to specify the path to both crates if they were renamed or re-exported from a different crate.
This is analogous to Tokio, Serde or Pollster.

The latest wasm-pack v0.11 release broke our CI somehow.


Added typescript support for animations

Hi thanks for this library and the latest typescript updates in 2.0,
This PR adds typescript support for animations
tested with:

Fox with multiple animations from
https://github.com/KhronosGroup/glTF-Sample-Models/blob/master/2.0/Fox/glTF-Binary/Fox.glb
and a custom blender exported glb

The main changes are:

root bones are added to the GLTFResult type

type GLTFResult = GLTF & {
  nodes: {
    fox: THREE.SkinnedMesh
    _rootJoint: THREE.Bone
  }
  materials: {
    fox_material: THREE.MeshStandardMaterial
  }
}

which removes type errors for <primitive object={nodes._rootJoint} />

an ActionName and GLTFActions type are added

type ActionName = 'Survey' | 'Walk' | 'Run'
type GLTFActions = Record<ActionName, THREE.AnimationAction>

default values/types are given to actions and mixer

  const actions = useRef(null as null | GLTFActions)
  const [mixer] = useState(() => new THREE.AnimationMixer(nodes.fox))

the mixer uses the first skinned mesh it finds, otherwise null
Note:
the  "npx lint-staged" isn't required,  and was due to having trouble commiting

nice, thanks!


Exiting Full Screen Mode When Network Has Reliability Issues

I'm building from the latest master version and everything is working perfectly. The only problem that I always have is that my connection has some reliability issues and it frequently suffers from delays and dropped connections. Unfortunately, when that happens while I'm in full screen mode it would stop accepting any commands, not even Ctrl+Shift+F works. This would force me to restart the computer!
I think that Ctrl + Shift + F should work regardless of the state of the connection, right?

The command to leave fullscreen mode is ctrl + alt + enter and works on current master. (In case of connectivity issues it might be handled with a short delay)
This is a freerdp internal key combination as it is similar to how virtualbox et al handle keyboard grabbing and therefore disable all window manager / system keybindings.

I meant to say Ctrl + Alt + Enter sorry
When I have network problems and timouts the application just hangs and I cannot exit full screen


Screenshot out of date

Screenshot under section Enable self-service sign-up for your tenant is out-of-date - UI has changed.

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

ID: 2c05d9cd-275d-4585-f25f-fa5b88f1ec10
Version Independent ID: a3d263e6-20a6-9cea-f60c-a9f772a7f444
Content: Add a self-service sign-up user flow - Azure AD
Content Source: articles/active-directory/external-identities/self-service-sign-up-user-flow.md
Service: active-directory
Sub-service: b2b
GitHub Login: @msmimart
Microsoft Alias: mimart

@tictag
Thanks for your feedback! I've assigned this issue to the author who will investigate and update as appropriate.

Hi @tictag, thanks so much for your feedback. We've updated the article and changes should publish shortly. This issue will close automatically once the changes are merged. Thanks again.