schema 2011-06 failing to parse

The attached ome xml fails to parse in ome-types.
Here's the error I get:
Traceback (most recent call last):
  File "scratch.py", line 7, in <module>
    ome_obj = from_xml("./test_ome.xml")
  File "/Users/danielt/opt/anaconda3/envs/scratch/lib/python3.8/site-packages/ome_types/__init__.py", line 37, in from_xml
    d = to_dict(xml)
  File "/Users/danielt/opt/anaconda3/envs/scratch/lib/python3.8/site-packages/ome_types/schema.py", line 254, in to_dict
    schema = schema or get_schema(xml)
  File "/Users/danielt/opt/anaconda3/envs/scratch/lib/python3.8/site-packages/ome_types/schema.py", line 71, in get_schema
    return _build_schema(resource.namespace)
  File "/Users/danielt/opt/anaconda3/envs/scratch/lib/python3.8/site-packages/ome_types/schema.py", line 48, in _build_schema
    schema = xmlschema.XMLSchema(namespace)
  File "/Users/danielt/opt/anaconda3/envs/scratch/lib/python3.8/site-packages/xmlschema/validators/schema.py", line 429, in __init__
    self.parse_error(e.reason, elem=e.elem)
  File "/Users/danielt/opt/anaconda3/envs/scratch/lib/python3.8/site-packages/xmlschema/validators/xsdbase.py", line 169, in parse_error
    raise error
xmlschema.validators.exceptions.XMLSchemaParseError: <Element '{http://www.w3.org/1999/xhtml}html' at 0x7fed78517a90> is not an element of the schema:

Schema:

          <title>Open Microscopy Environment OME Schema</title>

Open Microscopy Environment OME Schema

June 2011

Table of contents

Introduction

Status

Schema

Introduction

This document outlines the OME Schema created by the
  ...
  ...

Path: /html

test_ome.xml.zip

It looks like it is somehow reading the html document at http://www.openmicroscopy.org/Schemas/OME/2011-06 instead of the true xsd file?

@tloudis: the xsi:schemaLocation at least matches those in https://downloads.openmicroscopy.org/images/OME-XML/2011-06/z-series.ome.xml

Also looks like there are several enum issues:

'Spinning Disk Confocal' not a supported value of 'class ome.xml.model.enums.AcquisitionMode'
'Alternate source' not a supported value of 'class ome.xml.model.enums.IlluminationType'

If I replace those with "Other" then bfconvert will gladly create a black image from the XML.
output
(base) /tmp $bfconvert test_ome.xml test.ome.tif
test_ome.xml
OMEXMLReader initializing test_ome.xml
Populating metadata
Exception in thread "main" loci.formats.FormatException: loci.common.services.ServiceException: ome.xml.model.enums.EnumerationException: 'Alternate source' not a supported value of 'class ome.xml.model.enums.IlluminationType'
	at loci.formats.in.OMEXMLReader.initFile(OMEXMLReader.java:267)
	at loci.formats.FormatReader.setId(FormatReader.java:1421)
	at loci.formats.ImageReader.setId(ImageReader.java:849)
	at loci.formats.tools.ImageConverter.testConvert(ImageConverter.java:506)
	at loci.formats.tools.ImageConverter.main(ImageConverter.java:1095)
Caused by: loci.common.services.ServiceException: ome.xml.model.enums.EnumerationException: 'Alternate source' not a supported value of 'class ome.xml.model.enums.IlluminationType'
	at loci.formats.services.OMEXMLServiceImpl.createRoot(OMEXMLServiceImpl.java:417)
	at loci.formats.services.OMEXMLServiceImpl.createOMEXMLMetadata(OMEXMLServiceImpl.java:373)
	at loci.formats.services.OMEXMLServiceImpl.createOMEXMLMetadata(OMEXMLServiceImpl.java:360)
	at loci.formats.in.OMEXMLReader.initFile(OMEXMLReader.java:261)
	... 4 more
Caused by: ome.xml.model.enums.EnumerationException: 'Alternate source' not a supported value of 'class ome.xml.model.enums.IlluminationType'
	at ome.xml.model.enums.IlluminationType.fromString(IlluminationType.java:101)
	at ome.xml.model.Channel.update(Channel.java:240)
	at ome.xml.model.Channel.<init>(Channel.java:164)
	at ome.xml.model.Pixels.update(Pixels.java:367)
	at ome.xml.model.Pixels.<init>(Pixels.java:167)
	at ome.xml.model.Image.update(Image.java:357)
	at ome.xml.model.Image.<init>(Image.java:161)
	at ome.xml.model.OME.update(OME.java:314)
	at ome.xml.model.OME.<init>(OME.java:155)
	at ome.xml.meta.OMEXMLMetadataRoot.<init>(OMEXMLMetadataRoot.java:68)
	at loci.formats.services.OMEXMLServiceImpl.createRoot(OMEXMLServiceImpl.java:412)
	... 7 more
(base) /tmp $vi test_ome.xml
(base) /tmp $bfconvert test_ome.xml test.ome.tif
test_ome.xml
OMEXMLReader initializing test_ome.xml
Populating metadata
[OME-XML] -> test.ome.tif [OME-TIFF]
	Converted 14/300 planes (4%)
	Converted 46/300 planes (15%)
	Converted 77/300 planes (25%)
	Converted 107/300 planes (35%)
	Converted 138/300 planes (46%)
	Converted 169/300 planes (56%)
	Converted 200/300 planes (66%)
	Converted 231/300 planes (77%)
	Converted 261/300 planes (87%)
	Converted 292/300 planes (97%)
	Converted 300/300 planes (100%)
[done]
11.949s elapsed (0.53333336+34.21ms per plane, 1250ms overhead)

Yep, I can reproduce the "real" errors using bftools xmlvalid but we need to do this through a python codepath and so need to get past that weird schema error.   If bftools xmlvalid can work , then maybe something is really wrong on the python xmlschema side.(?)
The real intent here is :
We have some old data that we want to clean up and make sure is valid.  We kind of know it's invalid and so want to write python scripts to clean it up.  Using aicsimageio and ome-types.  But there might be a reasonable code path via just manipulating the xml directly before trying to parse/validate it.

I see XSLT in your future to clean it up ;) Ok. I don't have and leads on xmlschemas handling. I'll leave you in @tlambert03's capable hands and go to sleep.

thank you both for the helpful thread!  pretty busy today and tomorrow but will try to look asap.

Hi @toloudis, sorry for the delay here.
I don't have a lot of bandwidth to extend support to older schema (we made a decision a little while ago to focus on 2016 for now), but at first glance it looks like we'd need to solve two problems here:

first, as commented by @joshmoore in https://github.com/tlambert03/ome-types/issues/88#issuecomment-840058515, the xml file doesn't seem to be fully valid, and it doesn't validate with xmlschema directly, that part will need to be on your end:

In [1]: from xmlschema import validate
In [2]: validate('/Users/talley/Downloads/test_ome.xml')
XMLSchemaValidationError: failed validating 'Spinning Disk Confocal' with XsdEnumerationFacets("['WideField', 'LaserScanningConfocalMicroscopy', 'SpinningDiskConfocal', 'SlitScanConfocal', 'MultiPhotonMicroscopy', ...]"):

The incorrect fetching of the schema from the URL is a bug on our end and something I can fix soon

Thanks.  Number 2 is the only thing I am worried about and is the real issue I am reporting here.

Thanks, number 2 is an easy fix...  I'm more worried about how a valid  2011 schema will be handled here.  But if ome provides a converter, we could run that on it first.
For a while, I was making this in a schema agnostic way, but there were far too many special case things to handle so we just decided to focus on 2016.  Once you have a valid 2011 file, feel free to link it here, would be curious to see what happens with it

What I did instead was do a bunch of string and element manipulations to make it validate against 2016 :)
If we come up with some 2011 data that is valid, I'll give it a try and report here.

Awesome.  Thanks!

part 2 solved in #92...  do you want to keep this open until we figure out the 2011 support?  or treat that seperately

I think it's fine if it loads the schema that the xml says to load, and validates against that.  If I get ordinary validation errors then I'm in good shape.
I totally accept that the actual object model is intended to be the most current schema.

ok.  merged it!  let me know if/when you run into the next hurdle :)


Overlapping packages

I am trying to use StreamFactory  in my code but I get this exception:
Caused by: java.lang.ClassNotFoundException: com.googlecode.cqengine.query.StreamFactory not found by cqengine [90]
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574)[org.apache.felix.framework-5.4.0.jar:]
	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)[org.apache.felix.framework-5.4.0.jar:]
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_25]
	at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1415)[org.apache.felix.framework-5.4.0.jar:]
	at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1595)[org.apache.felix.framework-5.4.0.jar:]
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1525)[org.apache.felix.framework-5.4.0.jar:]
	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)[org.apache.felix.framework-5.4.0.jar:]
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_25]
	... 38 more

I know it is a separate package, and therefore it is included into my features file:
    <bundle>mvn:com.googlecode.cqengine/cqengine-stream-support/1.0.0</bundle>

And it shows up in the container:
> headers 91

CQEngine Stream Support (91)
----------------------------
Archiver-Version = Plexus Archiver
Bnd-LastModified =<PHONE_NUMBER>955
Build-Jdk = 1.8.0_73
Built-By = npgall
Created-By = 1.8.0_73 (Oracle Corporation)
Manifest-Version = 1.0
Tool = Bnd-<IP_ADDRESS>605172007

Bundle-ManifestVersion = 2
Bundle-Name = CQEngine Stream Support
Bundle-SymbolicName = cqengine-stream-support
Bundle-Version = 1.0.0

Require-Capability =
	osgi.ee;filter:=(&(osgi.ee=JavaSE)(version=1.8))

Export-Package =
	com.googlecode.cqengine.query;version=1.0.0

And in my own bundle, the respective package is imported:
Import-Package =
        ...
	com.googlecode.cqengine.query;version="[1.0,2)",

What is interesting here is, if you look into the stack trace, it says it is the cqengine bundle that can't find this class.
Upon further investigation, I can see that both main bundle and this one define the same package of com.googlecode.cqengine.query.
Main:
   com.googlecode.cqengine.query;
        uses:="com.googlecode.cqengine,
            com.googlecode.cqengine.attribute,
            com.googlecode.cqengine.attribute.support,
            com.googlecode.cqengine.query.logical,
            com.googlecode.cqengine.query.option,
            com.googlecode.cqengine.query.simple";
        version=1.0.0,

This is a no go in OSGi. Packages can not overlap. My suggestion is to change a package for this library. Thoughts?

Hi Yurii,
Thanks for the detailed investigation!
I see how this is a problem. So I'll fix it in the next release - I'll move SteamFactory to a different package such as: com.googlecode.cqengine.stream
Thanks,
Niall

thanks!


Possible citation updates -- not clear whether appropriate.

I'm unclear whether these changes folllow the correct form, but I  suspect anyway that the existing format where it says "doi = {10.5281/zenodo.7386117}" is possibly wrong : this is not a complete valid url.
TBD

https://github.com/SciTools/iris/pull/5324#issuecomment-1553704427

@SciTools/peloton Connects to #5161 ?


[sharded_shuffle] Shard picker

Simple implementation of shard picker (first step of  @danielmasny' algorithm)

We are taking a different approach that allows parallelization.


Title is missing in personal copy pdf.

-Title is missing in personal copy pdf for the 8th share.

-This issue is not reproducible in dev 1.7.5(296)


Adding preprocessor checks before using DevelopmentCerts:kDac* constants

Fixes https://github.com/project-chip/connectedhomeip/issues/25388
Change summary
This change adds a necessary preprocessor check in src/credentials/examples/DeviceAttestationCredsExample.cpp to allow the code to build if CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID is set to a value outside of the range of test values i.e. [0x8000, 0x801F]. (see src/credentials/examples/ExampleDACs.cpp) If we do not make this change, we end up with compilation failures like this when building an app (say the tv-casting-app) if the product id is outside the test range:
Undefined symbols for architecture arm64:
  "chip::DevelopmentCerts::kDacPublicKey", referenced from:
      chip::Credentials::Examples::(anonymous namespace)::ExampleDACProvider::SignWithDeviceAttestationKey(chip::Span<unsigned char const> const&, chip::Span<unsigned char>&) in libTvCastingCommon.a(libCredentials.DeviceAttestationCredsExample.cpp.o)
  "chip::DevelopmentCerts::kDacPrivateKey", referenced from:
      chip::Credentials::Examples::(anonymous namespace)::ExampleDACProvider::SignWithDeviceAttestationKey(chip::Span<unsigned char const> const&, chip::Span<unsigned char>&) in libTvCastingCommon.a(libCredentials.DeviceAttestationCredsExample.cpp.o)
  "chip::DevelopmentCerts::kDacCert", referenced from:
      chip::Credentials::Examples::(anonymous namespace)::ExampleDACProvider::GetDeviceAttestationCert(chip::Span<unsigned char>&) in libTvCastingCommon.a(libCredentials.DeviceAttestationCredsExample.cpp.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Testing
Successfully able to build the tv-casting-app with a CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID set to a value outside the range of test values, like 0x7FFF.

It seems like this should be some GN compile flag deciding if example is compiled in or not. I.e. compilation should just not try to compile in instead of getting some link error.

Done, in this PR: https://github.com/project-chip/connectedhomeip/pull/25953
Closing this one.


Setup PHP-CS-Fixer GitHub Action

It would be great to get some code formatting setup for the PHP files. There's 2 approaches we could take here:

Automatically run the formatting action when somebody pushes to a PR (annoying because you would have to pull down between each push if changes have been committed back).
Automatically run the formatting action when a PR is merged into develop (can cause merge conflicts if develop's formatting is newer than the branches).
Manually trigger the action using a comment on the PR, such as /format-php (good because we can still run on an individual branch just before merging in).

Would be interested in your thoughts @danharrin and @ryanscherler.

Add it to the composer test script and strongly encourage everyone who submits a PR to run that to make sure they didn't break anything.
 But that doesn't help on user-submitted PRs.

Add it to the composer test script and strongly encourage everyone who submits a PR to run that to make sure they didn't break anything.
 But that doesn't help on user-submitted PRs.

Yeah, that could work. I like the idea of running it manually too, the most annoying thing is when I have to re-pull my code before pushing to a PR / branch.
Another alternative would be using Git hooks, so it runs before the code is even pushed but that's another piece of setup for the contributor.


Feat: monster importer stat block formatting

This just makes the formatting for the monster importer more closely match the monsters that come from the compendium

@arcos This is a nice touch, I like it. There's just some problems with your regex that don't account for special characters in features titles. See lich for example:

or

@PrototypeESBU  "Fixed". Though I am wondering if we should include other characters. I don't seem to see anything different than this pattern in the stat blocks.

Best to not make any assumptions. I think in parsing these I just matched everything that wasn't a "." leading up to the first "."

I rolled up these changes as part of #698


[SPARK-46396][SQL] Timestamp inference should not throw exception

What changes were proposed in this pull request?

When setting spark.sql.legacy.timeParserPolicy=LEGACY, Spark will use the LegacyFastTimestampFormatter to infer potential timestamp columns. The inference shouldn't throw exception.
However, when the input is<PHONE_NUMBER>2, there is exception:

For input string: "23012150952"

java.lang.NumberFormatException: For input string: "23012150952"

at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)

at java.base/java.lang.Integer.parseInt(Integer.java:668)

at java.base/java.lang.Integer.parseInt(Integer.java:786)

at org.apache.commons.lang3.time.FastDateParser$NumberStrategy.parse(FastDateParser.java:304)

at org.apache.commons.lang3.time.FastDateParser.parse(FastDateParser.java:1045)

at org.apache.commons.lang3.time.FastDateFormat.parse(FastDateFormat.java:651)

at org.apache.spark.sql.catalyst.util.LegacyFastTimestampFormatter.parseOptional(TimestampFormatter.scala:418)

This PR is to fix the issue.
Why are the changes needed?

Bug fix, Timestamp inference should not throw exception
Does this PR introduce any user-facing change?

NO
How was this patch tested?

New test case + existing tests
Was this patch authored or co-authored using generative AI tooling?

No

cc @Hisoka-X as well

Merging to master/3.5


Add embed::servo

Resolves #171

Hmmm, I'm closing this for now and pushing this interface further down the line. I'm conflicted about this. I like my interfaces to be as closed as possible and I see that there is an issue with servo. Mainly that servos has a wide range of potential angles they can reach.
Currently we have an api like this:

bounds (gives you the bounds of the servo)
angle (can return an error if it is out of bounds or something else occurred)

Some questions that have been buzzing around in my head is this:

What if the bounds changes for some reason with servo? Maybe some off interface function was called at some later point that limits the range of the servo?
If angle can transmit the bounds of the servo why do we need a bounds? Is using an error a good idea? How do you bounds check before hand to see if servo is even suitable for a driver? Is there anyway to determine this at compile time (super doubtful especially if it can change as indicated by #1).
Should bounds be locked in and unchanging or should it be something that can be customized? Should software simply be the limiting factor here? Maybe a servo has to have its bounds limited at the start and no time later?
Maybe we can eliminate the servo angle bounds issue by using percentages? We an make the bounds just some place between -100% and 100% but this feels even more unnatural than using radians to communicate angle.
Maybe we can eliminate bounds and simply have angles above and below the bounds of the device be clamped? But then the calling driver or application code couldn't know if they hit the limit? Do they need to know?

These are the questions that have me doubtful that the servo interface as it is makes any sense.


feat: Edit README.md file

🔄 Changes Made
The changes made were:

Update README.md
Add a structure for the readme, with project description, references, maintainer and groups

Gj so far @josephpdf! Just a little change.

Could you please add it again, something like this?

LGTM! Great job @josephpdf


Read language cookie from altinnPersistentContext

Description
Adds code that tries to read language from AltinnPersistence cookie first.
Related Issue(s)

#733

Verification

[ ] Your code builds clean without any errors or warnings
[ ] Manual testing done (required)
[ ] Relevant automated test added (if you find this hard, leave it and we'll help out)
[ ] All tests run green

Documentation

[ ] User documentation is updated with a separate linked PR in altinn-studio-docs. (if applicable)

Oh no!
I was 2 minutes too late with my comment! 😅

@allinox  Ahh that's true... Problem is that HomeController is static and I got error when trying to read cookie from a static class. I'll make something new and try to fix it


[Sage-761] Card - Add Interactivity

Description

Adds new Card prop for interactivity.
The main/primary link or button in the Card should make the entire card clickable. When a secondary link is present, the z-index should elevate it above the primary link's hitbox to make it clickable.
Figma
Screenshots

https://user-images.githubusercontent.com/14791307/184443551-45237a24-b732-4f32-9b19-7cb990a68cfe.mov
Testing in sage-lib

View Card
Check that entire Interactive Card is clickable with proper focus and hover states
Add a second SageLink to docs/app/views/examples/components/card/_preview.html.erb line:56 and change style to secondary
Ensure that secondary link is clickable

Testing in kajabi-products

(LOW) Adds new Card prop for interactivity.
Related

Sage-761

Updated to make the Sage Card primary action resemble primary links in tables and lists.

I see your most recent comment about updating link styles. Just want to confirm (I'm still learning here) the expected visual is how its shown in my attached screenshot and not what's shown in the PR description?

I see your most recent comment about updating link styles. Just want to confirm (I'm still learning here) the expected visual is how its shown in my attached screenshot and not what's shown in the PR description?

Thanks for calling that out @goodwinchris, I've replaced the video in the description.


Add json format for metrics

This PR resolves what we've discussed in issue #1108. What do you think?

 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.:x: rafaelldi sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Hello! @philliphoff, could you take a look at my request if you have time?

@philliphoff I'm not sure what I should do next. I've fixed formatting, but one workflow doesn't start automatically. Could you help me, please?


Expanding unit tests to include L2 basis with MapType INTEGRAL [l2-integral-dev]

The goal of this PR is to expand the unit tests to identify and remove any inconsistencies that may exist in the implementation of BilinearForm and LinearForm integrators related to the two map types supported by the L2 basis functions.  Some of these issues have already been addressed in other PRs, notably PR #1931.
This PR was created in response to issue #1037.

PR
Author
Editor
Reviewers
Assignment
Approval
Merge

#1995
@mlstowell
@v-dobrev
@barker29 + @kmittal2
01/25/21
⌛due 02/08/21
⌛due 02/15/21

Just for the record.  @kmittal2 pointed out the style issues to me and generously offered to fix them.  I fully support and appreciate his additions to this PR. Thanks again, @kmittal2!

Just for the record. @kmittal2 pointed out the style issues to me and generously offered to fix them. I fully support and appreciate his additions to this PR. Thanks again, @kmittal2!

Happy to help @mlstowell.

@v-dobrev, any objections to merge this in next?

Merged in next for testing...


Formatting broken on Slackbot tutorial

https://www.pulumi.com/docs/tutorials/aws/aws-ts-slackbot/

Hugo's markdown renderer is super finicky (with code blocks within lists especially). When I was porting the site from Jekyll to Hugo, I had to massage some of our content to get it to render correctly.


Got TypeError: activePage.locator is not a function when using variable as parameter on "Click" keyword

When using variable as parameter on "Click" keyword.
For example
FOR    ${num}    IN RANGE    1    51
    Click    xpath=//*[@id="grid"]/div[text()="${num}"]
END
It used to work on version  2.5.0. After I update to current version I got error message
TypeError: activePage.locator is not a function
To Reproduce
New Browser    chromium    headless=false
New Page     http://zzzscore.com/1to50/en/
FOR    ${num}    IN RANGE    1    51
    Click    xpath=//*[@id="grid"]/div[text()="${num}"]
END
Desktop
MacOS Catalina 10.15.7

@allcontributors please add @laguna357 for bugs

I tried the example, but I can not reproduce the issue with current development version. I tried both strict and not strict modes. If this is still a problem, please provide more details. Also please try use clean installation with venv.

One thing came to my mind, did you run rfbrowser init after the update?

One thing came to my mind, did you run rfbrowser init after the update?

No, I did not.
Just seen the update instructions.
Should I retry again with proper update step ?

One thing came to my mind, did you run rfbrowser init after the update?

Sorry, I did not.
Just tried update to v10.0.2 follow by update instruction step 2 and 3. It's work !!
BTW I also tried with v10.0.3. It's work even I did not do step 2 and 3.
Sorry for troubled you guys.

You should always do all the steps,  because it ensures that node dependencies are installed correctly.


added spinner to loginform button

sub-branch created from development branch

has been reworked into the code using the current development branch. Pull request #57


Add new "Features" layout to the HomeMain section

We will implement a new optional section called features that will belong to the HomeLayout and will be placed in the homeMain section.
So the user can choose between the original homeMain style or the new one, features.
This section will be similar to the freestyle features section, in which the user could highlight three main concepts of the library.

Finally the design team decide to add a new layout called FeaturesLayout instead of adding a new section to the HomeLayout


Decentralised Web Summit demo

Science Fair will be demoed at the Decentralised Web Summit by @karissa
This is the stuff we need to do to prep:

[x] sync the eLife corpus (@blahah) --> https://github.com/codeforscience/sciencefair-elife
[x] generate eLife bibJSON metadata collection by parsing the XML (@blahah)
[x] code for linked metadata and files hyperdrive live feeds (@mafintosh)
[x] strip back Science Fair to the core features (@blahah)
[x] electron OSX app packaging script (@freeman-lab)
[x] publish the eLife metadata and files as a linked feed (@blahah + @mafintosh)
[x] seed the feed from a bunch of places so it's fast (@mekarpeles ?)
[x] incorporate the feed as the default data source (@blahah)
[ ] run through the planned demo and iron out bugs (@karissa)
[ ] BONUS: add this paper + PDF viewing [landing, DOI record, PDF]

Working in the dat branch...

toy feed for eLife papers is seeding, people welcome to join the swarm:
dat b7266cf1be1d61ccf422ec854fca814b87cf7bdce960fc2c5e9a138b7bc98021

OK, the toy feed is now retired and we have a real feed:
dat c0b6950cde25661786cc75b8951e0bf4a6a20e10dc8f3025ab8b60ba16682dbb

@karissa here's a workflow that should work:

fresh clone, make sure you're on node v6
git checkout dat
npm install && npm run rebuild
npm run dev

Now you'll see the message 'Loading data sources...' while it connects to the hyperdrive for the first time and syncs the metadata. When that's done, you should see something like...

If you search for cancer you'll see...

Pick a paper and hover over it, you'll see the downward arrow indicating that the paper needs to be downloaded.

Click it and the paper files (XML + figures) will download from hyperdrive, and then the icon will change to a lens.

Click the lens and you'll open the paper in the reader. You can show the figures panel on the right - all the figures are served off hyperdrive.

In the reader view you can see the doi on the left just above the word Abstract, e.g. 10.7554/eLife.02242. All the files for the this paper are stored in this dat:
c0b6950cde25661786cc75b8951e0bf4a6a20e10dc8f3025ab8b60ba16682dbb

under the subdirectory
02242

@karissa @mafintosh @maxogden hopefully you can then demonstrate that you can pull those same files from the dat somehow in another place, like the browser?
Do we need anything else for this? I need to prep for a 3 month trip, so can only do little bits after this - hopefully someone else can hack it together if more is needed?
Here's the place where I butchered hyperdrive into the app https://github.com/codeforscience/sciencefair/blob/dat/app/lib/hyperdrive.js.

@blahah your code looks great. thanks for your hard work the last few days. i'll try to get science fair working as a hybrid client today so it can seed to the browser

@mafintosh sweet :)
@karissa I forgot to point out explicitly, but the subdirectory that the files are found in is the last part of the DOI, so 10.7554/eLife.02242 -> 02242. You probably already noticed but I realised I wasn't clear.

@karissa just noticed that when I created the feed I messed up the metadata for some of the articles - some have authors missing and don't seem to sync properly. When demoing choose a paper that's displaying the author :D

I guess I should be able to update the original feed with fixed info... @mafintosh what do I edit here to make it so that I'm appending to the feed I served up earlier?
var hyperdrive = require('hyperdrive')
var level = require('level')
var raf = require('random-access-file')
var walker = require('folder-walker')
var through = require('through2')

var drive = hyperdrive(level('./elife_webdemo.db'))
var archive = drive.createArchive({
  file: function (name) {
    return raf('./elife/' + name)
  },
  live: true
})

walker('./elife').pipe(through.obj(visit))
.on('finish', function () {
  var link = archive.key.toString('hex')
  console.log(link, '<-- this is your hyperdrive link')
})
.on('error', console.trace)

function visit (data, enc, cb) {
  archive.append({ type: data.type, name: data.relname }, cb)
}

var discovery = require('discovery-swarm')
var defaults = require('datland-swarm-defaults')

var swarm = discovery(defaults({
  hash: false,
  stream: function () {
    return archive.replicate()
  }
}))

swarm.join(archive.discoveryKey)

@blahah pass the archive key in the createArchive constructor (this needs to be on the same computer where you originally created the feed - that one has the private key)
var archive = drive.createArchive(<insert-key-here>, {
  file: function (name) {
    return raf('./elife/' + name)
  },
  live: true
})

then just filter the files you don't want to update here,
function visit (data, enc, cb) {
  if (data.relname !== 'the-files-you-are-looking-for') return cb()
  archive.append({ type: data.type, name: data.relname }, cb)
}

alternatively you can just create new feed with the updated data if thats easier right now

It took ages to build to feed originally - it's 12GB, so I think I'll fix the metadata and just append it. Thanks for the help :D

cool! i'll do a module soon that'll just re-index new files so o/ becomes a lot easier

nice :) I've got most of a cli made for creating science fair data feeds - if you make that module I'll swap it in

perfect!

this reminded me that we really need an undo function hehe, https://github.com/mafintosh/hypercore/issues/27

Attempt at a 'fresh start' script:
nvm use 6 # or whatever your favourite way to make sure you use node 6
rm -rf ~/.sciencefair/data/elife.*
git clone git@github.com:codeforscience/sciencefair.git
cd sciencefair
git checkout dat
npm install
npm run rebuild
npm run dev

cc @karissa @mafintosh

Culminated in @karissa's demo:
https://youtu.be/Yth7O6yeZRE?t=8h16m


ucbrowser detect as safari on android os

@yinlianwei could you please provide at least the UserAgent-string of your browser and if possible a code snippet how you test it?

            alert(window.navigator.userAgent)
            alert(md.os());
            alert(md.userAgent());```

the out put:
`Mozilla/5.0 (Linux; U; Android 4.1.2; zh-CN; HUAWEI C8815 Build/HuaweiC8815) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/<IP_ADDRESS>4 U3/0.8.0 Mobile Safari/534.30`
`AndroidOS`
`Safari`

my ucbrowser version V<IP_ADDRESS>4 Android

That's a general problem. There is always a (unsorted) map of regular expressions and the first match exits with the result. In your case, the browser fakes to be Mobile Safari.
I've opened an issue serbanghita/Mobile-Detect#451 which could mitigate this, but then you'd have to call md.is('UC Browser') and would again not have 'UCBrowser' as result of calling md.userAgent().
If you want, you can overwrite part of the implementation of MobileDetect. Look for examples in the test cases.

OK! thanks.


esp-wifi: wrong size event data

Bug description
esp-wifi 0.11.0 seems to panic when scan_n() is called.
====================== PANIC ======================
panicked at /home/user/cargo/registry/src/index.crates.io-6f17d22bba15001f/esp-wifi-0.11.0/src/wifi/event.rs:193:5:
assertion `left == right` failed: wrong size event data
  left: 8
 right: 0

It looks like there has been a recent change (#2453 ) to esp-wifi:
https://github.com/esp-rs/esp-hal/blame/b06c7a470c0242eace7d5ef616a3ccbad4d52239/esp-wifi/src/wifi/event.rs#L196
This is an example on how I'm trying to use scan_n:
    controller.start().unwrap();
    esp_println::println!("is wifi started: {:?}", controller.is_started());

    esp_println::println!("Start Wifi Scan");
    let res: Result<
        (heapless::Vec<esp_wifi::wifi::AccessPointInfo, 10>, usize),
        esp_wifi::wifi::WifiError,
    > = controller.scan_n();
    if let Ok((res, _count)) = res {
        for ap in res {
            esp_println::println!("{:?}", ap);
        }
    }

and it results in the above error, after passing all the other lines:
wifi_set_configuration returned Ok(())
is wifi started: Ok(true)
Start Wifi Scan

Following is a partial backtrace:
0x4201453e
0x4201453e - core::panicking::assert_failed
    at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/panicking.rs:367
0x4200bd20
0x4200bd20 - esp_wifi::wifi::event::dispatch_event_handler
    at ??:??

This happens on an ESP32-C3
To Reproduce

Try to use scan_n on an ESP32-C3, using esp-wifi 0.11.0
The application will panic

Expected behavior
The list of APs is returned and the application doesn't panic.
Environment

ESP32-C3
esp-wifi 0.11.0

There was indeed a problem, but it should only fail when compiling with debug-assertions enabled.
Compiling in debug mode is not recommended - did you manually enable debug-assertions?

I didn't, but I was running in debug mode (therefore I assume that debug assertion were enabled because of that)

I didn't, but I was running in debug mode (therefore I assume that debug assertion were enabled because of that)

Thanks for the reply - that explains it. Just using release (which is highly recommended) will make it work - while the assert is technically correct nothing bad will happen

Confirmed.  Thanks!

No worries! This uncovered a weakness in our testing so it's a good thing 👍


ChatYuan-large-v2模型加载失败

实际结果 / Actual Result
flagging username: cb77933e5363447487319b5beab7afe0

Explicitly passing a `revision` is encouraged when loading a model with custom code to ensure no malicious code has been contributed in a newer revision.
Explicitly passing a `revision` is encouraged when loading a model with custom code to ensure no malicious code has been contributed in a newer revision.


We should we waiting for the stateful set instead as sometimes a race condition can occur and the pod doesn't exist causing kubectl wait to exit early and never return.

Verified on a call with Squizz

/retest

Using #423 so we can fix the pr check failure at the same time.


Image aspect ratio

Some images have a wrong aspect ratio (set in the html attributes):

[x] gifs in  https://github.com/turcantuna/SMB_Assembly-Manual/wiki/Building-The-AL-Frame
[x] images in https://github.com/turcantuna/SMB_Assembly-Manual/wiki/Building-Plexiglass-Stack#side-wall-stack

Improved the aspect ratio attribute of the images on that page, let me know if they still feel wrong.


Problem when canvas labels are not unique across items

We're using this code to support a project that is creating and harvesting IIIF annotations for a number of related objects: issues of a magazine. https://github.com/pbinkley/annotate . We've found that when two issues have a canvas with the same label (in our case simple integers), the annotations for the earliest issue will be displayed on the same page of subsequent issues. E.g. if you create annotations on issue 4 p. 127 and issue 6 p. 127, then the issue 4 annotations will be displayed when you view that page of issue 6. This is because the labels include only the canvas id and not the issue id:
https://github.com/mnyrop/annotate/blob/e966d00a5ea9897e79d8c080b1884c1a40d1bd55/annotations/haemisphaerium/0001/list.json#L3
I'll share a fix for this this week.

Hi @pbinkley. First off, I hope you are well and I'm glad this has been of some use! That said, this was really meant as a proof of concept awhile back, and I've known for some time that a lot of the code doesn't make as much sense as it should. I started writing a newer version when I was still at Columbia but didn't have the time to complete it.
With that preface, I'd be happy to collaborate on a newer version with you if you think it'd be worth it? Basically, I think I should either archive the repo or overhaul it entirely with some help. Incremental patches seem like more trouble than they're worth. Thoughts?

This has been a very handy utility for this project - we knew it was meant as a demo, and we've been able to make it do what we needed. I think our current project will wrap up before a new app could be built, but I'd love to collaborate on a new version - something with options for connecting to an external annotation store, and that works as part of a workflow to enhance and reuse other peoples' manifests. Could we pick this conversation up in a month or so? I'll have time then to think it through. (Or hey! If you're available for remote conversation on Oct. 2, maybe we could make this a whiteboard project at the Hackfest at the Access conference we're hosting https://accessconference.ca/workshops-and-hackfest/ - there's a Wax presentation on the program and probably another Wax group will form at Hackfest as well)

That all sounds great! I really am glad it has been of use. It's a good reminder for me to not let the perfect be the enemy of the good.
I don't think I'll have time Oct 2nd though this does look amazing. I'll let you know if something changes and I can participate. Regardless I'd love to hear how it goes! I know that folks are using Wax in the wild, but it's rare that I actually hear about it. Any feedback from your event would be really valuable.


[mastodon] bridgy sometimes misses replies when poster replies to themself

This may be the intended behavior, but it's surprising.  On this mastodon thread, https://fosstodon.org/web/statuses/103972016434753794 the top level comments and it's first reply are picked up, but the rest don't end up walking up to the original post.

They are discovered by the search, but they don't get associated with the link back to the original post.

btw, not high priority, I can investigate after working on reddit support if you want to assign to me as a reminder.

hmm, interesting! definitely possible.
we use the statuses/[id]/context API call to get replies, which the docs there say is to View statuses above and below this status in the thread. that, and the fact that the responses field is descendants, makes/made me think it should find indirect replies...but maybe not? i doubt i ever actually tested.
here's our current code for fetching mastodon replies. hopefully we won't have to do anything like all the extra manual work we currently do for twitter to get replies at all.
thanks for offering to look! definitely not urgent.

I was curious so I looked into this a little more today.  (apologies for long update) You are right that descendants does include all of the replies.  I believe that the source of the issue might be that since I replied to myself, the same status will show up as a descendant for multiple of my statuses, but the webmention is only attempted for a subset of them.
I'm wondering if perhaps at the time of polling, it showed up as the descendant only to the closest ancestor? In my example, that appears to be the case.

I replied to my "Woohoo📣..." post with "and it's working!...". The reply "@bonkerfield There you go :) " was in the descendants of both and it was sent to both.  However, this reply

was only associated with the "and it's working!..." at the time, even though now it is in the descendants of "Woohoo📣.." as well.  I'm guessing in bridgy that once it is sent as a reply to one post it never gets resent if it's later found as a reply to another.
Would it be legit to make a small workaround that just ignores replies to my own replies to myself?

I'm wondering if perhaps at the time of polling, it showed up as the descendant only to the closest ancestor? In my example, that appears to be the case.

huh. you mean, mastodon only shows it as a reply to its direct parent, not all ancestors up the chain? if so, that makes sense, and is probably technically correct in a narrow sense. probably isn't specific to you ie the original post's author though, ie could happen to anyone, right?
i think the ideal indieweb solution to this is salmentions, but those are not widely supported. bridgy probably does support them, but it's been hard to find test cases (or interest). see #458.
historically, twitter has been the only silo with this issue, and we handled it by making granary manually find and include all descendants in the AS activity's object.replies, not just the direct replies.
maybe we should make mastodon do the same? alternatively, should we change this response de-duping logic to merge?
https://github.com/snarfed/bridgy/blob/bbf465b4b5ff0d20b06f699ff135f97c737da579/tasks.py#L315-L324

Sorry maybe I didn't make what I was trying to say clear. Eventually it looks like all of the replies show up in the descendants of the top status.
But I'm wondering if there are no guarantees that this will happen right away (since the API for any instance has to be updated from other instances first).  So since bridgy doesn't send for the same status more than once, it sends it for the direct parent early, and then by the time the top reply is linked, it's too late.
Does that make sense?
Also, yeah wouldn't me specific to me, but it was easier to explain that way.

yes! makes sense. i think that's what i understood, and i think my proposed changes would both still address it? or at least changing de-duping to merging would?

Cool, I think that walking up the tree might work.  The trick with this hypothesis is that it seems we'll need to see live examples as they happend.
I'm not sure I understand the deduping->merging solution. Does line 319 look at all the statuses that have ever been returned or just the ones on that specific call to backfeed.

good catch! you're right, i was looking at the wrong part of the poll code. line 319 only looks at duplicate responses within the ones fetched during this poll. that catches eg a reply that also has a link to your site, but isn't what we're talking about here.
i think the relevant code is actually this:
https://github.com/snarfed/bridgy/blob/bbf465b4b5ff0d20b06f699ff135f97c737da579/tasks.py#L382-L399
we construct a Response with the right id (eg tweet id), then call get_or_save() on line 399. if we've already seen the response with that id, we load it from the datastore and use that instead of creating a new one. get_or_save then tries to detect if the response has changed and needs to be re-sent, and if so, updates its data and restarts it:
https://github.com/snarfed/bridgy/blob/bbf465b4b5ff0d20b06f699ff135f97c737da579/models.py#L893-L907
we'd want to check if activity_changed() notice when the in-reply-to(s) in response_json change, and then we'd want to merge the new ones in, instead of replacing resp.response_json wholesale like we do now.
i'm only like 75% confident that this ^ is the right analysis and fix. still, that's something i guess. 😁

OK, I reran it locally with a clean DB and it did indeed pick up the one from that example.

So that gives me some confidence in the problem. I'll look into making the fix you suggested tonight.


Impl Serialize/Deserialize for std::num::Saturating

It would be nice if we could get
use std::num::Saturating;

impl Deserialize for Saturating<T: Deserialize> { ... }
impl Serialize for Saturating<T: Serialize> { ... }

so that it is possible to handle wrapped types, that already support those traits.

Never mind. Serde already implements Serialize and Deserialize for Wrapping<T>. I need to figure out why the compiler says that it doesn't.


Profile cache time for performance purpose

Q
A

Is bugfix?
no

New feature?
yes

Breaks BC?
no

Tests pass?
yes

Fixed issues
#12775

     * a complex data structure consisting of factors representing the key.```
@samdark , this function really using mixed argument or strings only?

Yes, mixed is correct. See buildKey().

I have changed code and create new PR #12911


New version: TestExtras v0.2.0

Registering package: TestExtras
Repository: https://github.com/Jutho/TestExtras.jl
Created by: @Jutho
Version: v0.2.0
Commit: 345a7b82176fa558433a3e531d43767ea57fe020
Reviewed by: @Jutho
Reference: https://github.com/Jutho/TestExtras.jl/commit/345a7b82176fa558433a3e531d43767ea57fe020#commitcomment-122848497
Description: Some useful additions to the Julia Test Standard Library

block this from automatic merging, I want to make a further change to the package before tagging

block


telescope-nvim broken in nixos-21.05

Describe the bug
Attempt to build HomeManager config that includes Neovim with vimPlugins.telescope-nvim from same nixpkgs revision of nixos-21.05 fails. Telescope at 2021-05-16 requires Neovim 0.5+ while Neovim in exact same revision is only at 0.4.4.
Steps To Reproduce
Steps to reproduce the behavior:

Ensure HomeManager installed.
Prepare dummy-home.nix file with:{ pkgs, ... }:
{
  programs.neovim = {
    enable = true;
    plugins = with pkgs.vimPlugins; [ telescope-nvim ];
  };
}

Try run HOME_MANAGER_CONFIG=dummy-home.nix home-manager build

Expected behavior
You can use Neovim plugins with version of Neovim from same nixpkgs snapshot.
Screenshots
Error detected while processing /nix/store/lnpiw0rjzfszajlpygwb3a2gx24r2rph-vimplugin-telescope-nvim-2021-05-16/share/vim-plugins/telescope-nvim/plugin/telescope.vim:
line    2:
Telescope.nvim requires at least nvim-0.5. Please update or uninstall

Additional context
It seems that some plugins are updated without testing and Telescope is one of them.
As a work-around I have to use:
      (telescope-nvim.overrideAttrs (prev: {
        version = "2020-09-10";
        src = pkgs.fetchFromGitHub {
          owner = "nvim-telescope";
          repo = "telescope.nvim";
          rev = "37152f07fea32a2ae232d98519e0833e986a7c81";  # last supporting 0.4 as per README.md
          hash = "sha256-ufb6Y2pLFFxRfnhELEcwMEsR+fG1gBHXaa/6A4dLeA0=";
        };
      }))

(though still struggling to get it working)
Notify maintainers

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
nix shell nixpkgs\#nix-info --command nix-info -m

system: "x86_64-linux"
host os: Linux 5.10.75, NixOS, 21.05.20211213.c5f1ee9 (Okapi)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.4pre20211006_53e4794
channels(root): "nixos-21.05.4481.c5f1ee98224"
channels(nikolay): "nixpkgs-unstable-21.11pre310022.14b0f20fa1f"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute: vimPlugins.telescope-nvim
# a list of nixos modules affected by the problem
module:

I would suggest updating to 21.11 since 21.05 will be EOL by the end of the month.

@Kranzes , that's what I did in the end. But I suspect that problem is still there even in 21.11 I suspect existed in 21.05 before November. It just might be smaller right now when we freshly forked 21.11 from unstable.

Closing since either it has been fixed by now or no one will.
Note that I am working towards a soluton that should spot this https://github.com/NixOS/nixpkgs/pull/171064


Fixed both xxxAmbientToLux

iac can't go negative as per data sheet
denominator needs gain factor and not gain register value

Thanks for your contribution. Can you confirm you tested it and it works? I don't have time to set up a testing environment.
Thanks

In bright light, channel 1 and 0 give a value of 1024. And the Lux calculated by this is no longer negative, but rather zero. Looking at the datasheet, the calculations done are correct, but shouldn't this the max measurable lux instead of zero?

Also now the lux value measured is drastically small. Increasing the denominator had decreased the lux value.

Shouldn't "DEFAULT_ATIME" be 0xED which is recommended as ALSIT will be 50ms.

I went through the changes, I agree that the implementation by @ElFishi is as per the documentation. But at high light values instead of negative, we get a zero. If the documentation says that, we got to live with it. Please merge! But before merging, change the DEFAULT_ATIME to 0xED so ASIT is 50ms, and DEFAULT_AGAIN to AGAIN_1X. These changes can give a broader range of lux values.


Saving User Data in db.

Fixes # 158
Checklist:
give a X on it which is applicable

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my 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
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] Any dependent changes have been merged and published in downstream modules

Noice work @sristy17  🚀


None data node does not appear in Cluster menu

It seems none data node does not appear in client section.
but appears in node section.

here is nodes settings
501-data false, master true <--- not appear in cluster menu
502-data false, master true <--- not appear in cluster menu
503-data true, master true
60X data true, master false
please check it out!
thanks!.

@jeesim2 this is the expected behaviour. Even though this tab says cluster, what it really means(and probably I should change this in the feature) is shard allocation. As non data nodes cannot host shards, it's pointless and cluttering to show them there.

@lmenezes  thanks for the explanation.
btw, I think if cluster section is the default view, we want to see which one is master or which node is over loading at that place.
And I'd prefer to use cluster section than node section for monitoring the basic load.
because cluster section's indicators are more stands out and more recognizable than node sections' values.
it will be more convenient if non data node displayed at the cluster section too.

@jeesim2 it would be really unlikely that a master node only would be overloaded. normally you would only see this on a data node(which is visible there).
Also, that might work for smaller clusters, but for large cluster, you cannot see all nodes in that screen anyway(for me, I can see all data nodes, but if I include client/master nodes, I can't).
kopf is at the moment a administration tool, not so much a monitoring tool, and I think overloading it with so much monitoring(which is again not good, since it only gives you the current state of the cluster) is not the right way.
sorry for that :)

OK! got it! Agree with you :)
btw, do you have or are there feature request about query notebook?
some feature like save favorite query, bookmark, the upgraded version of rest section.
it will be greate!

I don't think so. The issue with this is that this information would need to either be kept on the browser or on the cluster.
I'm currently considering extending the functionality of kopf to offer proper monitoring(and this implies storing data on the cluster). I guess this could happen there as well.
Haven't had a lot of time lately, but hopefully will have more time in the near future.


california-housing: suppress "literal string will be frozen in the future" warning

Before change:
$ ruby test/run-test.rb -t CaliforniaHousingTest 2>&1 | grep red-datasets
/Users/zzz/src/github.com/red-data-tools/red-datasets/lib/datasets/california-housing.rb:42:
warning: literal string will be frozen in the future

After change:
$ ruby test/run-test.rb -t CaliforniaHousingTest 2>&1 | grep red-datasets

Thanks.

Thanks for your review!


all_or_nothing transactions

This is to address issue:
https://github.com/betcode-org/flumine/issues/542

Thanks for the comments. I have updated the PR accordingly.

Next problem is the runner_context in the transaction we update this but we would need to either delay or unwind when atomic


[bug] Get forbidden error when no api key

OpenSea is throwing a forbidden error.  Your code is checking if ApiKey is null or empty and no longer sends the empty apikey to opensea. See fix in #2

Well there are some endpoints that require an API Key -which one did you test?

Yes, it seems like some endpoints just need the header - pushed new version https://www.nuget.org/packages/OpenSeaClient/1.0.3


minor restructuring, adding hand-holding text

I'm now incorporating these comments & other points from #84

I'm now incorporating these comments & other points from #84


Is it ready for production?

Hi @rghorbani ,
Thanks for this package. Is it ready for production or is a beta version?

Yes, it is. But there is a problem with the width that it take the whole.
You are welcome to submit a pull request to fix this bug.


Added anchors for FAQ question headers.

Fixes #3333. Please review @techtonik, @whit537, @rohitpaulk   or anyone else.

@techtonik Can you review this?

Look good to me, a few screenshots:


Incompatible with python-Levenshtein >=0.20

>>> process.extractOne('abc', ['abc', 'def', 'ghi'])
Traceback (most recent call last):
  File "/home/ziddey/projects/biyombo/venv_biyombo/lib/python3.10/site-packages/thefuzz/process.py", line 108, in extractWithoutOrder
    for key, choice in choices.items():
AttributeError: 'list' object has no attribute 'items'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ziddey/projects/biyombo/venv_biyombo/lib/python3.10/site-packages/thefuzz/process.py", line 168, in extract
    return heapq.nlargest(limit, sl, key=lambda i: i[1]) if limit is not None else \
  File "/usr/lib/python3.10/heapq.py", line 563, in nlargest
    result = [(key(elem), i, elem) for i, elem in zip(range(0, -n, -1), it)]
  File "/usr/lib/python3.10/heapq.py", line 563, in <listcomp>
    result = [(key(elem), i, elem) for i, elem in zip(range(0, -n, -1), it)]
  File "/home/ziddey/projects/biyombo/venv_biyombo/lib/python3.10/site-packages/thefuzz/process.py", line 117, in extractWithoutOrder
    score = scorer(processed_query, processed)
  File "/home/ziddey/projects/biyombo/venv_biyombo/lib/python3.10/site-packages/thefuzz/fuzz.py", line 276, in WRatio
    base = ratio(p1, p2)
  File "/home/ziddey/projects/biyombo/venv_biyombo/lib/python3.10/site-packages/thefuzz/utils.py", line 38, in decorator
    return func(*args, **kwargs)
  File "/home/ziddey/projects/biyombo/venv_biyombo/lib/python3.10/site-packages/thefuzz/utils.py", line 29, in decorator
    return func(*args, **kwargs)
  File "/home/ziddey/projects/biyombo/venv_biyombo/lib/python3.10/site-packages/thefuzz/utils.py", line 47, in decorator
    return func(*args, **kwargs)
  File "/home/ziddey/projects/biyombo/venv_biyombo/lib/python3.10/site-packages/thefuzz/fuzz.py", line 28, in ratio
    return utils.intr(100 * m.ratio())
  File "/home/ziddey/projects/biyombo/venv_biyombo/lib/python3.10/site-packages/thefuzz/StringMatcher.py", line 64, in ratio
    self._ratio = ratio(self._str1, self._str2)
NameError: name 'ratio' is not defined

python-Levenshtein is now a metapackage, installing Levenshtein
https://github.com/maxbachmann/Levenshtein/blob/main/src/Levenshtein/__init__.py

Disregard. Seems the upgrade failed to properly install Levenshtein.
#34 may be related?

I encountered the original NameError when updating an existing install (specifically poetry updated  python-levenshtein from 0.12.2 to 0.20.5). Uninstalling and re-installing all related packages fixed the issue:
pip uninstall Levenshtein python-Levenshtein rapidfuzz thefuzz
pip install -U "thefuzz[speedup]"

The reason for the issue appears to be that historically the package was named python-Levenshtein but installed as Levenshtein, which was always kind of messed up.
Now in the newer releases this is somewhat resolved by having a separate package called Levenshtein and python-Levenshtein just installing this package. I hoped pip would be able to figure this out when upgrading the package, but apparently it fails to do so (not sure whether that's a bug, or something like this is just not intended). Sorry for the unexpected breakage.
As you noted uninstalling python-Levenshtein and simply installing it again should fix the issue.


Update README.md

any updates on the lies you tell yourself?

seriously why?

we need answers

@matthewgrossman maybe you could add a PR description here? I'm told it's bad etiquette not to have one


Mongo uri problem

Hi! I dont know if you're example is still working, i'm trying to run it now. Problem is I cannot seem to get the right MONGO_URI. Any suggestions?
app_1   | Traceback (most recent call last):
app_1   |   File "run.py", line 1, in
app_1   |     from app import app
app_1   |   File "/code/app/init.py", line 15, in
app_1   |     mongo = PyMongo(app)
app_1   |   File "/usr/local/lib/python2.7/site-packages/flask_pymongo/init.py", line 98, in init
app_1   |     self.init_app(app, config_prefix)
app_1   |   File "/usr/local/lib/python2.7/site-packages/flask_pymongo/init.py", line 230, in init_app
app_1   |     cx = connection_cls(_args, *_kwargs)
app_1   |   File "/usr/local/lib/python2.7/site-packages/pymongo/mongo_client.py", line 369, in init
app_1   |     raise ConnectionFailure(str(e))
app_1   | pymongo.errors.ConnectionFailure: [Errno -2] Name or service not known
while i did create the secrets.py
Any suggestions much appreciated!

Hi, I cannot validate the problem right now myself.
Please double check that you have the MongoDB running properly and are able to get a proper Mongo URI for it.

AltLayer Airdrop Season One Announcement

Exciting news! AltLayer token (ALT) is set to launch on Binance on January 25, 2024. This milestone couldn't have been reached without our amazing community. Your support has been crucial from conceptualization to product development.
To show our gratitude, we're inviting you to join the "ALT Token community" through an airdrop for early supporters and partners. Below is a summary:

Total Allocated ALT Tokens: 300,000,000 (3% of total supply)
Distribution Categories:

NFT Holders
Altitude Campaign Participants
EigenLayer Restakers
EigenLayer Ecosystem Partners
Celestia Stakers and others

For detailed criteria and information, check the full announcement here.
Claim opens from January 25 to February 25, 2024. Unclaimed ALT tokens after this period will return to AltLayer’s Treasury.
Thank you for being part of AltLayer's success! More to come in Season One, stay tuned.
Note: Certain regions are restricted from the airdrop. Please review the disclaimer before participating.
Winners: @PjMpire, @giuliomartinelli, @fabiomen10, @owl4ce, @sdas1503, @namazu510, @greglong83, @tommyliu9, @cbrnrd, @870788541, @artkirienko, @wwkenwong, @alexkab, @QUSIR, @endang121, @eulerlan, @gebv, @playplaya, @notredamedude3, @tomierna


Added more Lua functions and LogScripts

Added addNpc, faceEntity, faceLocation and printDebug to lua
printDebug calls qCDebug(logScripts) with the string to log.
Added logScripts checkbox to AdminTool as well

Maybe @nemerle can provide some insight into why this is failing CI.

Another fail.
Should I change it from a std::vector to 3 separate floats in the function signature or is there another option beside std::vector to store all 3 floats?


Can we create the nodes only on right side?

Thank you for creating this package and making it open source.
Currently, we have a layout in which child nodes are arranged both on the left and right sides, as shown in the image below

Can we update the layout in such a way that only nodes are displayed on the right side?

In this  issue you mentioned that it is not possible to modify the layout in such a way, but what we want is somewhat different than this issue so I created a new issue.
Also, I had one more question -
Can we stop/disable the collapse functionality?

I don't think that it will be possible without a significant rework.

Also, I had one more question -
Can we stop/disable the collapse functionality?

If you want to completely disable expand as well as collapse, you can just hide the root element of expand/collapse click area (you can find it in inspect element).
If you just want to stop disable but keep expand, then no, it won't be possible out of the box

If you want to completely disable expand as well as collapse, you can just hide the root element of expand/collapse click area (you can find it in inspect element).

Yes, I wanted to disable the expand/collapse functionality and it worked. Thank You
I am closing this issue now.


Slider congestion reserve neighbourhood battery keeps changing back to 20%

In the following LES https://moses.energytransitionmodel.com/testing_grounds/471/edit the slider for the congestion reserve of the neighbourhood battery changes back to 20%. I'm not sure when or why this happens exactly, but when I run into it again I will update this issue.
@ChaelKruip who do I need to assign to fix this?

Update: I changed the output capacity and the volume of the Neighbourhood battery at Buurtbatterij (1) , clicked the blue save button and clicked the green save all and view les button. When I viewed the LES the slider had changed back to 20% instead of the 33% I set it to.

@ChaelKruip who do I need to assign to fix this?

Don't worry too much about that; we can assign to an appropriate person. :smiley:
I can't actually reproduce this myself, but I have noticed that  boxes are always showing the default (first) option instead of the real selected value.

Ok, this keeps happening everytime I work with the neighbourhood battery. As a work-around I save and load the LES one time to ensure the new numbers for capacity and volume are being changed. Then I reopen "edit the LES" to adjust the slider to 33% congestion again. This works, but it takes a lot of time to save and load the LES two times every time I change something.

@JeroenvdLogt and I discovered that the same thing happens to the profiles you change for the different technologies and profiles you add. When I change the profile of the space heating to tussenwoning_midden it keeps changing back to appartement_hoog (in the same LES) and for residential PV panel the profile keeps changing back from solar_pv_amsterdam to solar_pv_amsterdam. Jeroen has the same problem with profiles he created and added himself.
Could you please look into this again if you can reproduce it? Because these errors make it really hard for us to use ETMoses at the moment.

Could you please look into this again if you can reproduce it?

I know this isn't very helpful, but I'm fairly sure the congestion percentage and profile settings are being saved. It's just that when you visit the "Edit LES" page it's showing you the default options instead of what is really selected. I'm looking into it now.

I'm fairly sure the congestion percentage and profile settings are being saved

Not all the time. I tried to reproduce it myself in the LES I mentioned in the first post (buurtbatterij - overzicht) and couldn't do so. The slider was showing the default setting, but it calculated with the 33% I changed it to.
However I reproduced the error it in the following LES: https://moses.energytransitionmodel.com/testing_grounds/476 by taking these steps:

Opened the LES and saw in the electricity load graph that the slider was indeed set to 33%, because there was no congestion at the MSR.
Clicked edit LES. I saw that the congestion slider of the neighbourhood battery showed that it was set to 20%.
Without changing anything I clicked the blue save button.
Clicked the green save all and view LES button. Looking at the electricity load graph now I know that it calculating with a congestion of lower than 33% because there is congestion at the MSR.

Does this help?

It indeed looks like the settings are saved but not displayed correctly in the technology table (at least for the profiles, I don't know for the neighborhood battery). Strange thing is that it is correcly displayed in the overall dashboard.
https://moses.energytransitionmodel.com/testing_grounds/490 - eerste trial route kaar hof van twente → MV customer Amt Delden

I have fixed the technology profile drop-down showing the wrong option.
However, I can't reproduce any situation in which the congestion battery percentage is incorrect. I set it to 20% and the value was correctly saved (and refreshing the "Edit LES" page showed the correct value). I set it to 80% and, likewise, the value was saved and the slider showed the correct value.

Opened the LES and saw in the electricity load graph that the slider was indeed set to 33%, because there was no congestion at the MSR.

Changing the congestion percentage should have no effect on the behaviour of the battery in times of network congestion. The slider controls what percentage of the battery is reserved for responding to periods of excess production or consumption in the LES.
If you set it to 40% it means the battery may not discharge below 20% of it's volume – or charge above 80% – unless doing so alleviates network congestion (by removing it entirely, or at least reducing the severity of the event). At 40% reserved, it means that 60% of the battery volume may be charged and discharged like any other P2P battery.
Basically: the slider controls the battery in times where there is no network congestion. When there is congestion, the battery will behave the same way regardless of what value you choose.
Here's an example from your LES. I set the reserve percentage to 20% and 80% respectively:

20% reserved
80% reserved

When the slider is set to 80%, the battery charges less because more of the volume is being reserved to respond to congestion.

Changing the congestion percentage should have no effect on the behaviour of the battery in times of network congestion.

I don't understand this: because I think it does the change the behaviour of the battery in times of network congestion. If you have a really big battery and more storage volume of the battery is available for congestion (slider set to a lower percentage), more kWh can be stored in the battery which would otherwise have caused overcapacity. Could you explain to me what goes wrong in my reasoning?

If you have a really big battery and more storage volume of the battery is available for congestion (slider set to a lower percentage), more kWh can be stored in the battery which would otherwise have caused overcapacity.

That's a fair point; you're completely right. This does actually happen in your LES on 22nd April:

30% Reserved
70% Reserved

In this case, because more of the battery is reserved, it has more empty volume to prevent the excess production coming from "Huizen achter buurtbatterij".

Ah great! Then i understood it correctly. I'll close this issue for now, since i wasn't able to reproduce this error either. If i encounter it again i'll reopen this issue.


Fix dependabot's handling of nuget dependencies

Summary
(NOTE there still may be some minor issues, but I'll have to verify this once it's checked into our repo, my fork's dependabot is in a weird state from all of my testing).
Fix our shim dependabot projects so they work with the new dependabot nuget core. I've left comments in the relevant files describing some of the changes, but of changes of note:

Use real symlinks for our NuGet.config dependabot files.
Update the shim dependabot projects to have a TFM as msbuild is now evaluating them.
Move tfm-independabot dependencies into their own folder (dependabot/independent).
Remove System.CommandLine from dependabot as it's managed by maestro. The new dependabot core would fail on unresolvable package references.
Remove PLATFORM and TOOL nuget dependencies. The new dependabot core will use msbuild in it's second phase to evaluate the project so we can't have package references on these types.
Prevent Directory.Packages.props and Directory.Build.targets in parent folders from being evaluated by dependabot's new msbuild core. This was incorrectly resulting in Arcade targets/props being added to our dependabot projects, as well as the centralized package references.

NOTE:
We'll still see some odd dependabot descriptions where it thinks it's updating more than it actually is. This is ok and doesn't actually impact the PR's content. Dependabot's nuget core is split into 2 pieces. First it tries to parse the project using ruby, and once it has an understanding of the packages/versions, it then hands it off to its new nuget core which uses msbuild to evaluate and update the project. The ruby-parsing step is messing up and incorrectly reading all Directory.Builds.{props,targets} and Directory.Packages.props files it can find in the directory hierarchy, even without any imports. We could fix this by moving all of our dependabot projects into a new dependabot folder at the root of our repo, and moving /Directory.Packages.props inside of /src or /eng. However I'd prefer that be a separate PR if we decide it's needed.
Example:

Release Notes Entry

/backport to release/8.0


Inconsistent override capability between OIDCStrategy and BearerStrategy

In OIDCStrategy one can override a couple of important strategy properties such as client id, client secret, redirect url and so forth in passport.authenticate() call through options. This is very important if one needs to apply strategies dynamically on a request basis.
BearerStrategy does not allow to override it in such a way which makes the whole approach inconsistent.

@przemos The OIDCStrategy and BearerStrategy are meant for different scenarios, which is why they have different configurations, but I agree that we should be allowing for override of key options. We will address this in the new version of the middleware library.

We are working on middleware scenarios that will be built on top of msal-node, and will keep this issue in mind. Closing as no issue activity.


PoS Multi Session Restaurant

Hi,
There's a way to install this module without having to install those dependencies?
it have two modules as dependencies, and those modules have other dependencies as well, it is like a never ending loop.
thnks

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Hello,
The presence of a large number of dependencies is due to the technical complexity of the software product. From the point of view of software architecture and application debugging, this is the best solution. Part of the software is also used by other modules, and it would be foolish and not rational to repeat ourselves.
And to be honest, for the first time I hear that someone is complaining about the presence of a large number of dependencies, especially if you take the module through the store, then there are no such problems.
Best regards


Add MinaSpaleta's file

created a branch, created a file and made a commit, and opened a pull request


Cannot see modules

I cannot see modules inside the bar.
I used example configuration with little changes:
[bar/test]
monitor = ${env:MONITOR:eDP1}
width=100%
height=30

background = ${colors.background}
foreground = ${colors.foreground}

line-size = 3
line-color = #f00

border-size = 2
border-color = #00000000

padding-left = 0
padding-right = 2

module-margin-left = 1
module-margin-right = 2

font-0 = fixed:pixelsize=10;1
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
font-2 = siji:pixelsize=10;1

modules-left = i3 memory
;modules-center = mpd
;modules-right = filesystem xbacklight volume xkeyboard memory cpu wlan eth battery temperature date powermenu

Memory module:
[module/memory]
type = internal/memory
interval = 2
format-prefix = "M:"
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #4bffdc
label = %percentage_used%%

Are you getting an error when launching it? Note that the ; at the beginning of the line means that the line is commented out.

Nope.
I execute command polybar test.

Command log level info:
$ polybar --log=info test
* Loaded /home/adp/.config/polybar/config
* Environment var ${MONITOR} is undefined, using defined fallback value "eDP1"
* Loaded monitor eDP1 (1366x768+0+0)
* Bar geometry: 1366x34+0+0
* Starting application
* Starting module/i3
* Starting module/memory
* Entering event loop (thread-id=1)
* Eventqueue worker (thread-id=4)
* Configured DPI = 96x96
* Loaded font "fixed:pixelsize=10" (name=DejaVu Sans, offset=1, file=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf)
* Loaded font "unifont:fontformat=truetype:size=8:antialias=false" (name=Unifont, offset=0, file=/usr/share/fonts/truetype/unifont/unifont.ttf)
* Loaded font "siji:pixelsize=10" (name=DejaVu Sans, offset=1, file=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf)
* Bar window: 0x2000002
* Disabling tray manager (reason: missing `tray-position`)
* module/i3: Rebuilding cache
* module/memory: Rebuilding cache
* Redrawing bar window
* module/memory: Rebuilding cache
* module/memory: Rebuilding cache
* module/memory: Rebuilding cache
* module/memory: Rebuilding cache
* module/memory: Rebuilding cache
* module/memory: Rebuilding cache
warn: Termination signal received, shutting down...
* module/i3: Disconnecting from socket
* module/i3: Stopping
* Deconstruction of module/i3 took 0 ms.
* module/memory: Stopping
* Deconstruction of module/memory took 0 ms.
* Waiting for spawned processes to end
* Reached end of application...

Looks like it's running fine. Can you see the bar at all?

Just an empty bar.
I can edit background and dimensions, just i cannot see modules.

That's odd... Are you running a compositor?

What exactly is it?

Problem fixed.
The problem it was: font-0 = fixed:pixelsize=10;1

@AlessioDP I'm confused as to why this works, and why it seems I can't load my own font? Or what's the issue exactly?


Adding multi language support system✨

I want to add multi language support system to the website which can help us understand in their native language. @YadavAkhileshh can you please assign me this issue.

Duplicate #364


How can I host this theme on GitHub Pages?

I'm trying to push the theme to an gh-pages branch but jekyll complains about "_config.yml".
When I tried to move for an example, the contents of example or docs folder and commit and push to gh-pages it continues going wrong.
Can you help me?

I would take the contents of /docs/ and use that as the site you push to GitHub.
Then remove sample posts in /_posts/, remove or edit sample about.md and cv.md pages, customize _config.yml, /_data/ files, and you should be good to go.

Thank You!!!
I think I've managed how to do it. It wasn't very intuitive, how about make an script to automize it for us?

A script is out of scope for this project.
Once 3rd party themes are whitelisted for GitHub Pages it will be trivial to install/update. The whole fork a theme idea was a necessarily evil in the past but is horrible in practice. Dealing with merge conflicts just to update is a pain in the 🦋.

@mmistakes , I don't understand how "fork a theme was a necessarily evil" if in the installation instructions you add this note.

"Note: 3rd-party Ruby gem themes aren't currently supported on sites hosted with GitHub Pages. Basically Basic can still be used on GH Pages, but you will need to fork the theme instead. "

Actually, there is no other way to use the theme on GH Pages or am I wrong?
If I am, please explain.
.ps.: Sorry for my bad english. :disappointed:

I meant forking shouldn't be how Jekyll themes are installed. The new Ruby gem method is superior in so many ways, and that is the experience this theme was optimized for.
I'm hoping to push theme gems forward with this and hopefully nudge the GitHub Pages maintainers along to open up support for all 3rd party gems.
I only mentioned the forking method as it is the only way to use the them on GH. Most of my Jekyll themes use this method and it's less than ideal for everyone involved.
I plan on improving the documentation around forking the theme, but don't want to take away from the preferred method of installation.


Gallery UI improvements

There are a few improvements I'd like for the gallery.
First, I'd love to have collapsible sections in the menu, using something like https://jqueryui.com/accordion/
Second, there should be a description for each entry, which is shown beside or below the canvas when it is clicked.  Once that's done, the optional source links added by @nomeata can be moved into the description rather than the button.

Can I take this?

Yes, definitely!


Prevent negative production values, for small negative

When the CT is logically wired behind the Relay, it will measure about 3.5 watts of usage per relay. So a small relay usage when the sun is down should not be counted as real production value, but just report a production value of 0 watts.

I'm in doubt if we should fix this in the integration. Shouldn't we keep the measurements equal to the Envoy platform, to prevent deviation? And also basically this is a CT placement error that should be fixed.

I'll see if i can create a option for it in the settings. That way users can choose for themselves (and it'll be disabled by default).
For me it is not possible to wire it differently because of placement constraints in the fuse box / PV distributor.

Another great feature would be to integrate the stream endpoint, so you can have updates every second 😇

I looked at the stream endpoint before. But since I have an Envoy standard it is not available 😞

So now, i've added it in a entry option (you can do configure now), where you enable or disable this option.
You'd need to reload the plugin to make settings activate for now.

Are we sure it makes sense to update more often than every 60 seconds? For example the devstatus endpoint (where most of the metrics come from) does not even update every 60 seconds on the Envoy itself. I don't know about the production numbers on a metered Envoy, those might update more often, can you check @mnederlof?
I do think we should keep the default on 60, because of the large number of sensors (especially with a larger amount of solar panels/inverters). We don't want to put a big load on Home Assistant. If people then want to decrease the interval it is their own risk.

I'd vote for 60 as default as that seems common all around and my EU Envoy-S standard only provides 5 min updates anyway. Those that want to run faster will change it anyway.

Ah yes, i will change the default option value to use the SCAN_INTERVAL value from init (and put it in const.py, while i'm at it. ), as this still is 60 seconds.

One could argue though, that we would want different intervals for different urls (depending on what we can fetch from which url), for example, the devstatus would not make sense more than once every 5 minutes, but fetching the current power production might make sense to get it more often (as for metered envoys, this is the current production value))
(that is not for this PR though, but just to share a thought.

I'm done with this PR though 😄
I've changed the default value back to 60 (and it is configurable for all users now also)

@mnederlof Can you maybe just change the minimum amount to 5, so people cannot set an invalid value.

One could argue though, that we would want different intervals for different urls (depending on what we can fetch from which url), for example, the devstatus would not make sense more than once every 5 minutes, but fetching the current power production might make sense to get it more often (as for metered envoys, this is the current production value)) (that is not for this PR though, but just to share a thought.

I was also thinking about this. Would be nice, but a lot more work 😄


error while connecting to cassandra 2.2

i was trying to connect cassandra 2.2.4 on our network; but unfortunately rust panicked
source code
below is the stacktrace which I got
RUST_BACKTRACE=1 ./target/debug/cassandraaccess Hello, world! thread 'main' panicked at 'Unexpected Cassandra version [0]', /Users/hachandr/.cargo/registry/src/github.com-1ecc6299db9ec823/cdrs-0.2.0/src/frame/mod.rs:117 stack backtrace:    1:        0x10e414d28 - std::sys::backtrace::tracing::imp::write::h6f1d53a70916b90d    2:        0x10e41730f - std::panicking::default_hook::{{closure}}::h137e876f7d3b5850    3:        0x10e416095 - std::panicking::default_hook::h0ac3811ec7cee78c    4:        0x10e4165e6 - std::panicking::rust_panic_with_hook::hc303199e04562edf    5:        0x10e416484 - std::panicking::begin_panic::h6ed03353807cf54d    6:        0x10e4163a2 - std::panicking::begin_panic_fmt::hc321cece241bb2f5    7:        0x10e3fca1f - <cdrs::frame::Version as core::convert::From<collections::vec::Vec<u8>>>::from::h32cd9558c9a9ab7d    8:        0x10e3faedb - cdrs::frame::parser::parse_frame::hd0b56c419b3c4827    9:        0x10e3c76c1 - <cdrs::client::CDRS<T>>::start::hb87ef6d337d3d9e4   10:        0x10e3cff4a - cassandraaccess::main::haeac6d31fbfd637f   11:        0x10e4178ca - __rust_maybe_catch_panic   12:        0x10e415bd6 - std::rt::lang_start::h538f8960e7644c80   13:        0x10e3d0289 - main

Thanks @harrydevnull for reporting.
Seems that it panics on https://github.com/AlexPikalov/cdrs/blob/master/src/frame/mod.rs#L117
Will try on cassandra 2.2.4.
Could you please provide an output of
cqlsh> show VERSION;

In my case it's
[cqlsh 5.0.1 | Cassandra 3.9 | CQL spec 3.4.2 | Native protocol v4]
Thank you

5.0.1 | Cassandra 2.2.8 | CQL spec 3.3.1 | Native protocol v4]

and one more server is speaking "tls"

Thank you.
I'll try to reproduce it on my local environment and probably come up with something more concrete.

Btw if you were to use docker on local your will be able to switch between
versions of Cassandra easily.
My test code uses a rudimentary docker Cassandra image
My 2 cents..
On Wed, Dec 14, 2016 at 9:43 AM Alex Pikalov<EMAIL_ADDRESS>wrote:

Thank you.
I'll try to reproduce it on my local environment and probably come up with
something more concrete.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AlexPikalov/cdrs/issues/2#issuecomment-267051108, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AM2UnV2mraculrsvKUvjEFi1uCLFQ9CDks5rIACigaJpZM4LMjN4
.

@harrydevnull
I've checked this issue on CDRS 0.7.0 + Cassandra SSL-encrypted client-node connection. For me it works fine.
It would be great if you could confirm the same from your end.

I'm closing this issue. If you have any issues with connection via SSL-encrypted connection to Cassandra 2.2 feel free to open new issue

@AlexPikalov : I tried with tls and i started with a wrong certificate and so it was supposed to return error instead it was panicking.
{code}
thread 'main' panicked at 'called Result::unwrap() on an Err value: Failure(MidHandshakeSslStream { stream: SslStream { stream: TcpStream { addr: V4(xxx:64067), peer: V4(xxxx:9042), fd: 3 }, ssl: Ssl { state: "error", verify_result: X509VerifyError { code: 19, error: "self signed certificate in certificate chain" } } }, error: Ssl(ErrorStack([Error { code: 336134278, library: "SSL routines", function: "ssl3_get_server_certificate", reason: "certificate verify failed" }])) })', /Users/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-mac/build/src/libcore/result.rs:837
stack backtrace:
1:        0x10f8e0dda - std::sys::imp::backtrace::tracing::imp::write::hd8952e96bd20f4b7
2:        0x10f8e255f - std::panicking::default_hook::{{closure}}::hfd6ba86ea4dd6ba9
3:        0x10f8e2207 - std::panicking::default_hook::h44ade8c78c995294
4:        0x10f8e2a26 - std::panicking::rust_panic_with_hook::h3e771863e3ed8403
5:        0x10f8e2874 - std::panicking::begin_panic::h0af46715c5e7593e
6:        0x10f8e27e2 - std::panicking::begin_panic_fmt::h9509a584fa230ae8
7:        0x10f8e2747 - rust_begin_unwind
8:        0x10f9051f0 - core::panicking::panic_fmt::h5c28b8150c75bd71
9:        0x10f879ee0 - core::result::unwrap_failed::h3e2777ab86f331c6
10:        0x10f86e86c - <core::result::Result<T, E>>::unwrap::h8624c0fc54826597
11:        0x10f8a645e - cdrs::transport_ssl::Transport::new::{{closure}}::h2f0231b2a03a7ed4
12:        0x10f86df87 - <core::result::Result<T, E>>::map::ha45322ee1b6c6507
13:        0x10f8a630d - cdrs::transport_ssl::Transport::new::h517c6ceb7fe0f49d
14:        0x10f8598aa - cdrs_dart::main::h7080965054f13a02
15:        0x10f8e389a - __rust_maybe_catch_panic
16:        0x10f8e2dc6 - std::rt::lang_start::hefd96b70277e8a4a
17:        0x10f85a5c9 - main
{code}

I'll probably need to revise unwraps.
Were you able to connect to your server with a correct certificate?


fix(ControlledDropdown): add style prop

@julesbarr can this wait for the regular Wednesday release window or do you need it ASAP?


SignInAnonymously function type error

Bug report

[ x] I confirm this is a bug with Supabase, not with my own application.
[ x] I confirm I have searched the Docs, GitHub Discussions, and Discord.

Describe the bug
the SignInAnonymously function gets a type error in Next JS server actions
To Reproduce
Steps to reproduce the behavior, please provide code snippets or a repository:

setup NextJS app router project
configure supabase SSR
write a server action with a server supabase client
call the supabase.auth.signInAnonymously() function

Expected behavior
No type errors on the signInAnonymously
Screenshots

System information

OS: Windows (WSL)
Browser (if applies): Chrome
Version of supabase-js: 2.93.3
Version of Node.js: 18.17.1

fixed by updating supabase js verison


Merge 2.31 to master

See detailed description in the commit message.

@gergopapi2 My code change in "CB-9055" is already in master branch. https://github.com/hortonworks/cloudbreak/commit/b1f5b8a9ccb2c2b8b7e78c99fa52d640917faade. I committed the change to master branch, and then to 2.31.0 branch. I am not sure why you need to merge my change back to master branch.
If you rebase on master, will you be able to pick up my change and you don't have to merge my change to master branch again?
What is the process to commit code change?

developer commits to master, then commits to other branches OR
developer commits to other release branches, then another person commits multiple commits to master?

@gergopapi2 My code change in "CB-9055" is already in master branch. b1f5b8a. I committed the change to master branch, and then to 2.31.0 branch. I am not sure why you need to merge my change back to master branch.
If you rebase on master, will you be able to pick up my change and you don't have to merge my change to master branch again?
What is the process to commit code change?

developer commits to master, then commits to other branches OR
developer commits to other release branches, then another person commits multiple commits to master?

@LinaAtAustin Its actually rather 2.: you commit something to a release branch and then merge it up to master (i.e. if you had a commit to 2.29, then you merge all the way through 2.30, 2.31 to master). Currently the developer doing the commit to a release branch is responsible to do the merge as soon as possible.

@gergopapi2 My code change in "CB-9055" is already in master branch. b1f5b8a. I committed the change to master branch, and then to 2.31.0 branch. I am not sure why you need to merge my change back to master branch.
If you rebase on master, will you be able to pick up my change and you don't have to merge my change to master branch again?
What is the process to commit code change?

developer commits to master, then commits to other branches OR
developer commits to other release branches, then another person commits multiple commits to master?

Git merge will get the commit from 2.31 as the commit ID is different. The content is the same so it will not cause any problems.

updated merge pr: https://github.com/hortonworks/cloudbreak/pull/9149


Maybe, the loss at epoch 2 is the smallest, isn't it?
But it is strange that the loss of hardly fluctuates.
I will investigate this matter.

Yes, the loss starts out at 96.45 at epoch 2 and never gets better than this. I don't think this is normal?
Even the MAE isn't stable. I see it hit 10.3 at epoch 72.

I checked my code, but I couldn't find the cause.
It takes time to find the cause.

I fixed this bug. The cause is that the softmax function is applied twice to the output of full connection layers in the evaluation phase. The softmax function is applied in mean-variance loss function, thus the output which the softmax function is not applied to should be input to mean-variance loss.

 In your graphs you show the MAE decreasing and staying stable. For me, it changes drastically at each epoch and even by epoch 97 you can see val MAE as 9.8.

It is natural that you cannot reproduce my results, because random numbers are used in the dataloader function, the dropout function and the initial parameter weights. If you reproduce results, please set these random seeds to specific numbers whenever you use them.

I don't expect to get the exact numbers you get, but I expect the graph to look similar to yours.
Your graph shows MAE starting high and converging to somewhere between 2.5-5 by epoch 60 and staying there until epoch 100.
Meanwhile, mine just moves randomly up and down and never converges.

Thanks, graph looks a bit better now. It seems to always get best epoch around 40 though so maybe milestone should be earlier?

Yes, you may get converged results earlier.

The graph looks normal now in terms of loss/MAE but I still get very different results.
Considering we have the same random seed (2019) now I'm not expecting any differences.
My training result at epoch 100:
best_loss_epoch: 46, best_val_loss: 6.134555, best_mae_epoch: 93, best_val_mae: 3.673469
The example, subject #1 that you give:
python3 main.py -pi /d/FGNET/images/001A43a.JPG -pm result/model_best_loss
Age: 27
Yours: 41
Mine is out by 15, yours is out by 2 in this example.

Just a note, I had to increase the initial learning rate to 0.01 to get things working better.

Also, some notes:
I changed the backend architecture to EfficientNet-b1 and optimiser to Adam. Then changed input size to 128 (with centecrop from 160). Cropped image helps a lot because the dataset has a lot of background in the image right now.
I get much better loss and MAE now. Especially on real data (rather than FGNET).


Str::slug now returns different results

Laravel Version: 8.40.0
PHP Version: 7.4.20
Database Driver & Version: MySQL 8
Description:
I have a slug from string with Russian text in DB such as 'Анимационная студия Паровоз' and after update from Laravel 6 to Laravel 8 Str::slug generates different version Slug from this string.
Steps To Reproduce:
Laravel 6:
>>> Str::slug('Анимационная студия Паровоз')
=> "animatsionnaya-studiya-parovoz"

Laravel 8:
>>>  Str::slug('Анимационная студия Паровоз')
=> "animacionnaya-studiya-parovoz"

It's a problem for me right now because sometimes I need to find DB row by sluggable string

I don't know russian, but based on a random tool that I found on google the Laravel 8 behavior seems to be correct. In this case you probably should update your links (which is probably not possible) or add a compatibility fallback to try the old style name if the new one fails.
You should compare the
6.x ascii method: https://github.com/laravel/framework/blob/6.x/src/Illuminate/Support/Str.php#L84 and the
8.x ascii method: https://github.com/laravel/framework/blob/8.x/src/Illuminate/Support/Str.php#L97

Feel free to send a note to the upgrade guide if you want 👍

I don't know russian, but based on a random tool that I found on google the Laravel 8 behavior seems to be correct. In this case you probably should update your links (which is probably not possible) or add a compatibility fallback to try the old style name if the new one fails.
You should compare the
6.x ascii method: https://github.com/laravel/framework/blob/6.x/src/Illuminate/Support/Str.php#L84 and the
8.x ascii method: https://github.com/laravel/framework/blob/8.x/src/Illuminate/Support/Str.php#L97

Thank you. I saw the difference between laravel 6.x and 8.x ascii method. New version uses external lib instead of laravel native ascii method.
This means I need regenerate slugs in DB via new ascii method. I hope this helps me!

Yeah, if the original data is available then just simply update the old slugs with the new slugs. If you have external links you may want to store the old ones somewhere and use it to map them to the new ones.


Link to environment in notification

It will be helpful if in notification about environment state we will add a link to this environment

Done in Prod.


revert crossplane channel to unblock canary

Signed-off-by: Daniel Fan<EMAIL_ADDRESS>

/lgtm


How can I output wave with tensorflow-tex-wavenet's generate.py?

Hi! I can't output wave file in genarate.py . How can I output wav?

@yuuSiVo how did you do it?


[DOCU-2849] Update: Introduction section

This PR updates the navigation bar according to the IA rework spreadsheet.
https://konghq.atlassian.net/browse/DOCU-2849
I closed #1250 in favor of this PR.

@slonka  could you take a look? I would like to get this PR merged.


Tf/cloudflare

Description of the change
Moves and updates cloudflare terraform resource configuration
Benefits
One step closer to bloopysphere expansion
Possible drawbacks
Accidental deletion of something important
Applicable issues

fixes #

Additional information

Tag #2218


Convert UTCTime to datetime should care about century

Hi, thanks for the great work!!
I noted that the conversion from utc_datetime() don't try to guess the century. As documented in https://www.obj-sys.com/asn1tutorial/node15.html the year is just 2 chars and asn1c use 19 if the year is greater than 0x35 and 20 otherwise.
I guess that the right behavior of asn1-rs should be the same.
I can file a pull request if you are agree.

Hi,
Indeed, this should be added to this crate. Currently, callers must take care of changing the offset (for ex in https://github.com/rusticata/x509-parser/blob/master/src/time.rs#L99-L109).
Please submit a PR, I will merge it for the next release (which I plan to do very soon).
Thanks!


Share config

Sharing is possible today by downloading and sharing the config file via the config editor. This is still much better than it used to be but it should be easier. Something like scanning a qr code. The biggest self imposed restriction I've set for myself here is to keep this completely client side. There are a few reasons for this:

Hiccup can remain a static site
Your data never reaches a server and the config and it's links can remain private

Options considered:

Store the whole config in a qr code generated on the client side
webrtc for p2p file transfer
encrypted storage with connectors for common storage providers ( bring your own storage)

Chosen approach:
Load config from URL
Tasks

[x] config URL Param to change default config URL
[x] Config picker and url editor
[x] Update docs

One option would be to have a config url option on the client side that the user can point to and fetch a config from any source and render it. This can be anything from a drive link to a paste bin url. It can also be a relative path in the same server.  We can also have a config manager so that you can switch between multiple config profiles and even cache/clear them.

#33 adds this